Especially meaning the 9999 ebuilds that are in portage. These ebuilds emerge applications from the development trunk tree.

Here is an example of such an development/trunk/HEAD/9999 (you name it) ebuild:

user@host ~ % eix -I mbpfan
[I] app-laptop/mbpfan
         Available versions:  (~)1.9.1^t (~)2.0.0^t (~)2.0.1^t (**)9999^t{tbz2}
         Installed versions:  9999^t{tbz2}(12:36:41 09/05/18)
         Homepage:            https://github.com/dgraziotin/mbpfan
         Description:         A simple daemon to control fan speed on all Macbook/Macbook Pros

Usually there are only a few such ebuilds on a productive gentoo system and it can time consuming finding ebuilds have been keyworded, if not using the right tools. Using gentoo's portage emerge command, with the right option, it is easy:

user@host ~ % emerge -a @live-rebuild
These are the packages that would be merged, in order:

Calculating dependencies                     ... done!
[ebuild   R   *] app-vim/airline-themes-9999
[ebuild   R   *] www-client/otter-9999
[ebuild   R   *] x11-themes/qtcurve-9999
[ebuild   R   *] media-gfx/pinta-9999
[ebuild   R   *] app-laptop/mbpfan-9999

Would you like to merge these packages? [Yes/No]

This command would at first step search all installed and keyworded ebuilds on the local gentoo system, and emerge then no matter if the development tree has been updated or not.

The upper command does its job very good, but what if one would like update only if trunk has been updated. For this to work one would first need a portage tool. Emerge smart-live-rebuild:

root@host # emerge app-portage/smart-live-rebuild

After app-portage/smart-live-rebuild has been emerged use following command which is a additional option to the emerge. The resulting command is only slightly different to the previous one:

root@host # emerge -a @smart-live-rebuild

These are the packages that would be merged, in order:

Calculating dependencies                         d*** Forking to drop superuser privileges ...
*** Updating the repositories using 6 parallel jobs...
->  https://github.com/dgraziotin/mbpfan.git [HEAD]
--> git ls-remote https://github.com/dgraziotin/mbpfan.git HEAD
->  https://anongit.kde.org/qtcurve [HEAD]
--> git ls-remote https://anongit.kde.org/qtcurve HEAD
->  https://github.com/vim-airline/vim-airline-themes.git [HEAD]
--> git ls-remote https://github.com/vim-airline/vim-airline-themes.git HEAD
->  https://github.com/OtterBrowser/otter-browser [HEAD]
--> git ls-remote https://github.com/OtterBrowser/otter-browser HEAD
->  https://github.com/PintaProject/Pinta.git [master]
--> git ls-remote https://github.com/PintaProject/Pinta.git master
->  [x11-themes/qtcurve:0] https://anongit.kde.org/qtcurve [HEAD]
--> at rev 9aae21bb68308d9017977a53059dd75b347d7bbd (no changes)
->  [app-laptop/mbpfan:0] https://github.com/dgraziotin/mbpfan.git [HEAD]
--> at rev 237eae73e8151e6c24210e027aecf7c461ff0338 (no changes)
->  [www-client/otter:0] https://github.com/OtterBrowser/otter-browser [HEAD]
--> at rev 28fa2bfcf110ec90e54fdcecdef2e0098f30f4a8 (no changes)
->  [app-vim/airline-themes:0] https://github.com/vim-airline/vim-airline-themes.git [HEAD]
--> at rev 4a9595d91eab89f919907b38ef9ae19344029a93 (no changes)
->  [media-gfx/pinta:0] https://github.com/PintaProject/Pinta.git [master]
--> at rev c6ac090832db72db74bf6b301f57952f8a70ecdf (no changes)
*** No updates found (in 5 live packages)                                        ... done!

Nothing to merge; quitting.

The resulting command, searches installed and keyworded ebuilds, compares the development tree - HEAD with local HEAD, then finally builds a list of ebuilds where trunk has been updated. This results in fewer ressources and energy spent to and smarter update routine.

Comparing and summarizing both emerge options live-rebuild will emerge trunk code unconditionally while smart-live-rebuild only rebuilds trunk that has been updated upstream by the upstream developers. The latter will need an previous installation since it is not installed by default.

The main reason why 9999 ebuild are of particular interest, is simple. After updating the gentoo portage tree, these particular ebuild, are never updated by the regular update routine. Like for example using:

root@host # emerge -vauDN system

root@host # emerge -vauDN world

One has to update such ebuilds manually by using the emerge command with the ebuild name.

Thanks to the #gentoo IRC channel OP wraeth who has pointed me to this particular emerge option.