Ubuntu – What does the “-ng” suffix mean in package names

naming conventionspackage-management

Several package names contain the suffix -ng:

$ apt-cache search "\-ng$"
linux-wlan-ng - utilities for wireless prism2 cards
aircrack-ng - wireless WEP/WPA cracking utilities
apt-cacher-ng - caching proxy server for software repositories
bwm-ng - small and simple console-based bandwidth monitor
etpan-ng - console mail user agent based on libEtPan!
fakeroot-ng - Gives a fake root environment
fillets-ng - puzzle game about witty fish saving the world sokoban-style
fprobe - export captured traffic to remote NetFlow Collector
fprobe-ng - export captured traffic to remote NetFlow Collector (meta)
lemonldap-ng - Lemonldap::NG Web-SSO system
lincity-ng - City simulator game with polished graphics
netsniff-ng - a high performance network sniffer for packet inspection
performous - karaoke game that allows user supplied songs
procinfo - reporter for system information from /proc and /sys
python-cap-ng - Python bindings for libcap-ng
scribus-ng - Open Source Desktop Page Layout - developmental branch
syslog-ng - Next generation logging daemon
tictactoe-ng - fun, simple, tic tac toe game
turnin-ng - assignment submitter and manager
ultrastar-ng - karaoke game - transitional package
xpilot-ng - Multi-player tactical game for X (NG version)

What does this mean?

Just expanding the acronym isn't very helpful. While I am familiar with, for example, such terms as beta and long term support, the term next generation still doesn't mean anything to me.

(What is a generation? Does it have something to do with version numbers? If a package is currently in the repositories, why isn't it current generation?)

Best Answer

NG stands for "Next Generation".

In the context of software, "generation" is the successor of the previous version. I've seen it being used with forked software, either because someone decides that the original work had a messy codebase or if the original maintainer does not want to continue development on a software project under the current name.

I haven't seen authors renaming their projects to *-ng as they would rather increment their project's version number.

Examples of *-ng applications with their history:

  • util-linux-ng - A fork, util-linux-ng—with ng meaning "next generation"—was created when development stalled
  • aircrack-ng - Aircrack-ng is a fork of the original Aircrack project.