This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
User:Maffblaster/Gentoo ideas
This page lists various improvement ideas I have for Gentoo (as a distribution).
Portkey - Cool name for software.
Apport
Apport is program that catches crash dumps and renames them according to some qualifying parameters.
- Homepage: https://wiki.ubuntu.com/Apport
- Source: https://code.launchpad.net/~apport-hackers/apport/trunk
- Releases: http://archive.ubuntu.com/ubuntu/pool/main/a/apport/
Also look into Whoopsie.
Portage
repo.presync.d/* hooks
Presently Portage has a repos.postsync.d/ hook directory in /etc/portage for post-repository syncs. This enables custom scripts to act on various repositories after a sync. The primary purpose for repos.postsync.d/ scripts is to generate package metadata, which in turn speeds up Portage's operations.
Similarly, the repos.presync.d/ directory could enable pre-sync hooks to be executed before Portage syncs the repositories. There may be little benefit to having this option, however some users may which to do things like "snapshot" the repository before syncing.
I guess the same thing could be done with a cron job or timer.
Options
- Output (
--list
?) the packages in a set, display a count of the total installed packages in the set. Example:
root #
emerge --list @world
- This can presently be performed with equery:
user $
equery list @world
- Add a
--verify
option to verify the integrity of installed packages. The digests seem to already exist; Portage just needs to reference them. Would be similar to the qcheck command from app-portage/portage-utils, but accepts sets/package atoms/globs. Examples:
root #
emerge --verify @profile
root #
emerge --verify @system
root #
emerge --verify @world
root #
emerge --verify www-client/chromium
- Add a progress bar when using
--jobs
.
Better progress indicators
Portage could have a progress bar for updates?
Something like:
# Demo code
Can be enabled/disabled via the FEATURE variable (disabled by default for now).
/etc/portage/make.conf
Progress bar for PortageFEATURES="progress-bar"
GPG signing for binpkgs (on binhost)
Now that Portage includes GPG signing by developers on all ebuilds in the Gentoo ebuild repo it is possible to verify the integrity of upstream package releases (mostly tarballs) by running:
root #
emerge --fetchonly --emptytree @world
It is possible to get package releases directly from upstream (instead of from the Gentoo distfile mirrors) by enabling
Currently system administrators have the option of downloading the source tarball directly from upstream (via RESTRICT="mirror"
).
From Gentoo mirrors (via GENTOO_MIRRORS).
If they have setup a binary package server (after setting USE defaults across the board). For upstream projects/developers who offer a GPG signed checksum, it would be of high quality and value to have Portage automatically ensure the tarball has not been compromised. This would probably be a new feature to include in a future EAPI release.
Output
#
emerge --sync
(Could take a couple of minutes if you have a lot of binary packages.)
.='update pass' *='binary update' #='/var/db update' @='/var/db move' s='/var/db SLOT move' %='binary move' S='binary SLOT move' p='update /etc/portage/package.*'/usr/portage/profiles/updates/1Q-2017......................................
How much disk space should I estimate for Gentoo?
In a non-special case, if everything (except /home and /boot/efi) is going to be mounted under / (root partition), I would recommend at least 120 GBs of space.
Special cases would be anything outside of desktop scope; mainly servers.
Userspace hardening
- Disable udev (new device creation/management) when the screen is locked. This way devices that can harm the system cannot be created unless there is a known user at the keyboard.
- If you have to replace/re-plug the keyboard you'll be in trouble, however it would avoid things like PoisonTap, which is a newer example of this.
Zorin OS
It would be nice to see Zorin OS shell themes available in Gentoo.
Subgraph OS
I might make use of the user space application firewall present in Subgraph OS.
oz looks pretty neat as well.
Virtual workspaces in VR
Get a VR headset. Get an open source display engine. Create a virtual workspace. Configure the display however you want. Display would forward windows directly to the canvas in VR. Could show as physical monitors in a virtual space, or as a 180 or 360 degree curved environment.
I imagine this will not be more useful until VR headsets attain higher resolution, since the primary mode in this case would be viewing text.
eclean improvements
eclean -d distfiles should remove old items that are no longer listed in the main repo. It should at least ask if the user would like to clean them.
user $
eclean -d distfiles
* Building file list for distfiles cleaning... * Your distfiles directory was already clean. The following unavailable installed packages were found app-crypt/gnupg-2.1.15-r1 app-shells/bash-4.4-r1 app-text/hunspell-1.4.1-r1 dev-libs/libical-2.0.0-r1 dev-python/cryptography-1.5.3 dev-qt/qtcore-5.6.2 media-gfx/imagemagick-6.9.6.4 media-libs/libsndfile-1.0.27 sys-apps/openrc-0.22.3 sys-libs/readline-7.0-r1 virtual/perl-CPAN-Meta-2.150.5 ...distfile name(s) not known/saved virtual/perl-CPAN-Meta-Requirements-2.140.0 ...distfile name(s) not known/saved virtual/perl-CPAN-Meta-YAML-0.18.0 ...distfile name(s) not known/saved virtual/perl-Carp-1.400.0 ...distfile name(s) not known/saved virtual/perl-Compress-Raw-Zlib-2.69.0 ...distfile name(s) not known/saved virtual/perl-Data-Dumper-2.160.0 ...distfile name(s) not known/saved virtual/perl-Digest-1.170.0-r6 ...distfile name(s) not known/saved virtual/perl-Exporter-5.720.0-r1 ...distfile name(s) not known/saved virtual/perl-ExtUtils-CBuilder-0.280.225 ...distfile name(s) not known/saved virtual/perl-ExtUtils-Install-2.40.0-r1 ...distfile name(s) not known/saved virtual/perl-ExtUtils-MakeMaker-7.100.100_rc ...distfile name(s) not known/saved virtual/perl-ExtUtils-Manifest-1.700.0-r2 ...distfile name(s) not known/saved virtual/perl-ExtUtils-ParseXS-3.310.0 ...distfile name(s) not known/saved virtual/perl-File-Path-2.120.100_rc ...distfile name(s) not known/saved virtual/perl-File-Spec-3.630.0 ...distfile name(s) not known/saved virtual/perl-File-Temp-0.230.400-r4 ...distfile name(s) not known/saved virtual/perl-Getopt-Long-2.480.0 ...distfile name(s) not known/saved virtual/perl-IO-1.360.0 ...distfile name(s) not known/saved virtual/perl-JSON-PP-2.273.0-r1 ...distfile name(s) not known/saved virtual/perl-MIME-Base64-3.150.0-r1 ...distfile name(s) not known/saved virtual/perl-Module-Metadata-1.0.31 ...distfile name(s) not known/saved virtual/perl-Parse-CPAN-Meta-1.441.700 ...distfile name(s) not known/saved virtual/perl-Perl-OSType-1.9.0 ...distfile name(s) not known/saved virtual/perl-Pod-Simple-3.320.0 ...distfile name(s) not known/saved virtual/perl-Scalar-List-Utils-1.420.200_rc ...distfile name(s) not known/saved virtual/perl-Storable-2.560.0 ...distfile name(s) not known/saved virtual/perl-Test-Harness-3.360.0 ...distfile name(s) not known/saved virtual/perl-Text-ParseWords-3.300.0-r1 ...distfile name(s) not known/saved virtual/perl-Time-Local-1.230.0-r3 ...distfile name(s) not known/saved virtual/perl-parent-0.234.0 ...distfile name(s) not known/saved virtual/perl-podlators-4.70.0 ...distfile name(s) not known/saved virtual/perl-version-0.991.600 ...distfile name(s) not known/saved virtual/python-ipaddress-1.0 ...distfile name(s) not known/saved www-client/chromium-55.0.2883.35 www-client/firefox-49.0 www-client/google-chrome-54.0.2840.90 x11-drivers/xf86-video-intel-2.99.917_p20161103 x11-libs/libdrm-2.4.71 xfce-extra/xfce4-battery-plugin-1.0.99 xfce-extra/xfce4-datetime-plugin-0.6.99 xfce-extra/xfce4-netload-plugin-1.2.99 xfce-extra/xfce4-smartbookmark-plugin-0.4.99