User:Maffblaster/Todo

My personal list of Article description::Gentoo stuff to do in order to get Gentoo stuff done.


 * Go to completed tasks.

Todo
Anything in the Todo category, but especially Open discussions in the Handbook namespace.

Protect Council and Trustee election forms, properties, and templates
It would be wise to protect council elections forms, properties, and templates:


 * Nominee
 * Nominee properties: Has Name, Has Acceptance State, Has Linked Resource, Is Council Member, Is Trustee, Is Comrel Member, Is QA Member
 * Election
 * Has Title, Has ID, Has Election Official, Has Election Infra Contact, Has Election Cutoff Date, Has Nomination Start Date, Has Start Date,
 * Downstream properties (research).

...

Catch up on all open discussions in the Handbook namespace

 * Open discussions

As I continue to clean up our docs in 2022, I am working to catch up with and hopefully close out all open discussions in the Handbook: namespace. Will move this section to Completed tasks when caught up to this point. Aiming for January, 2021 and plan to tackle (at least) one discussion per week, but hopefully multiple per day.

Project lead elections improvement
Provide automagic calculation based on queried project election date and current time to provide visual cue or other notification that the project needs to hold re-election... mgorny has laid the framework: Project:Gentoo/Project Lead Elections.

Gentoo handbook development and maintenance
Fork and provide updates to 's script. This will help with Handbook testing and development.

Dev with KVM/QEMU

 * 1) Verify system firmware has virtualization support enabled; setup if necessary.
 * 2) Verify KVM support is available in the system's kernel.
 * 3) Verify QEMU has been installed and configured properly for the appropriate arch(es).
 * 4) Create testing disks:
 * 5) * MBR disk on legacy x86 BIOS
 * 6) * MBR with hybrid GPT on legacy x86 BIOS.
 * 7) * GPT on legacy x86 BIOS.
 * 8) * GPT on x86_64 EFI.
 * 9) Create a VM.
 * 10) * Snapshot VM

Dev with Docker
The following repo needs copied to gitweb.g.o if it is missing: https://github.com/gentoo/gentoo-docker-images


 * 1) Get the tools:
 * 2) Start the service(s):
 * 3) * OpenRC:
 * 4) * systemd:
 * 5) When running from a Gentoo system:
 * 6) * Get a fresh copy of the gentoo:: ebuild repository:
 * 7) * Pull the stage3 image:
 * 8) * Run the a container, sharing in a copy of the freshly updated gentoo:: repo, and mounting the (512 MiB) and  (16 GiBs) directories in memory (saves SSD writes). Adjust or remove these options if the host system does not have enough memory.
 * 9) ** Alternatively, the mount command can be used, however an extra remount step is necessary in the container:
 * 10) *** When in the container,  must be removed from the  and  tmpfs mounts:
 * 11) When running from a non-Gentoo system, it is easy to also pull down a gentoo:: snapshot and mount into the container as a volume. For example:
 * 12) * Pull the images:
 * 13) * Create a volume:
 * 14) * Run the container with the volume attached
 * 1) ** Alternatively, the mount command can be used, however an extra remount step is necessary in the container:
 * 2) *** When in the container,  must be removed from the  and  tmpfs mounts:
 * 3) When running from a non-Gentoo system, it is easy to also pull down a gentoo:: snapshot and mount into the container as a volume. For example:
 * 4) * Pull the images:
 * 5) * Create a volume:
 * 6) * Run the container with the volume attached
 * 1) * Create a volume:
 * 2) * Run the container with the volume attached
 * 1) * Run the container with the volume attached
 * 1) * Run the container with the volume attached

When finished hacking, clean up the mess.


 * 1) Deletes all containers:
 * 2) Deletes all volumes:
 * 3) Deletes all images (re-download will be necessary):
 * 1) Deletes all images (re-download will be necessary):
 * 1) Deletes all images (re-download will be necessary):

Vocational OSS maintainer
TODO: Explain how a Gentoo developer could approach vocational full time (considered 40 hours a week) or even part time (considered at 20 hours but up to 30 hours a week) work on Gentoo.

Rationale
Audit, compliance, hardening, security, and risk assessment, etc. directly relates to the amount of time a project dedicates these various fields. In Gentoo, a security project exists to cite and inform endpoint systems of vulnerabilities related to package versions and (occasionally) security issues.

Funding (money) and time go hand-in-hand. Most developers work a primary/day job to put food on their tables and care for families. Gentoo is typically a secondary job, or hobby function. Due to this, Gentoo ends up getting the leftover daily bandwidth and minimal compute time in a developer's mind.

Really good blog entry along this theme can be found here: https://sethmlarson.dev/blog/security-for-package-maintainers

Ideas
Use GSOC as an entry point and introduction into the Gentoo ecosystem on a certain project.

Funding options
The following list are some of the methods used by open source developers to fund their efforts improving the quality of software offered (most typically) for no money:


 * https://github.com/sponsors - Gentoo developers would enroll independently; no organizational oversight.
 * https://opencollective.com

Other options include donating directly to the developer via crypto wallet address for various services, which some developers may prefer, however this generally involves transactional network fees and/or cash out conversion fees into national/fiat currencies.

Post-rsync world Handbook improvements
Looks like there are a couple of URIs available to sync the Gentoo ebuild repository via git:


 * https://github.com/gentoo-mirror/gentoo.git
 * https://gitweb.gentoo.org/repo/sync/gentoo.git

Notes from : Project:Portage/Repository_verification and Portage_Security

It would not be terribly bad idea to add an alternative section in the handbook to sync via git instead of rsync. One blocking issue is that Portage will depend upon git for runtime support... just as it depends upon rsync for runtime syncing 'out of the box' (stage) file. The difference here is that is included in the system set, whereas  is not.

IMO, Portage "sync system" dependencies should be better defined in the ebuild itself with new runtime USE flags such as,  ,  ,  ,  , and. TODO: Look at adding bitkeeper support (both to Gentoo and to Portage sync types). (See also: )

In order to obtain a copy of of the Gentoo ebuild repository in order to install git, before creating the  directory, obtain git, create the directory...

Then create the following file and.

Reproducible builds
https://reproducible-builds.org/

Also look at.

Wikidata
Wikidata implementation.

See Wikidata.

https://www.mediawiki.org/wiki/Wikibase

Link developer nickname to developer map on www.g.o
This will require some investigation into the possibility of linking a name to a coordinate on www.g.o.

https://www.gentoo.org/inside-gentoo/developers/map.html

Preferable to link to a location with using an  tag such as   on the ending. The link would originate the from the LDAP generated location and point to the map.

Convert home directories to systemd homed
homed support became available in Gentoo around 2021-02-01.

Follow the upstream guide. Determine how it applies to our users and the systemd article: https://systemd.io/CONVERTING_TO_HOMED/

Rebuild and  with   support. systemd will also require  as well. Alternatively, add  in, which may help prevent additional USE flag maintenance in the future.

Enable the systemd-homed service:

Unless specifically assigned at user creation time, most single user Gentoo systems will have the primary user's ID set as 1000. Very using the following commands (according to upstream):

Create backups of important files to be modified:

Backup the user(s) home directories:

(Re)create the home directory (optionally entering the same password as the user account had before the migration):

Move the old files into the new home directory:

When the command finishes, all files will be moved into the new home directory; only empty directories will be left inside the  location. It can be finally removed with:

GDM
Although no notification is displayed on the greeter, Gnome Display Manager will prompt users to login twice...

For the time being, the best answer as to why is likely describing in. One password to authenticate the user via, which will leave the home directory unactivated. The password is needed a second time to activate the home directory (via ). If the user does not enter the password a second time (presses Enter past the second prompt; needs testing to confirm), the user will login, but HOME will be set to, which is not expected or desired.

auth	[success=2 default=ignore]	pam_unix.so nullok try_first_pass auth	[success=1 default=ignore]	pam_systemd_home.so

Manual mount and repair
In case a filesystem is marked as dirty, which can happen due to disk corruption, the filesystem can be manually mounted and fsck'd. Use in order to determine filesystem is dirty.

If the check completes successfully, then the device can be mounted manually and operated on:

Moving a home directory to a new system
TODO: Verify both and  files are needed for proper home migration...

Home directories can be moved between systems by the following steps.


 * 1) Copy the home directory from the homed directory ( by default) on the old system to the homed directory on the new system.
 * 2) Copy the  and  files found under the  directory on the old system to the new system.
 * 3) Restart the systemd-homed service on the new system.
 * 4) Login on the new system.
 * 1) Login on the new system.

pam.d configuration changes
With the  flag set on pambase, three files change to add homed support. This section simply provides an overview of what changes are needed in the pam files in order to properly integrate authentication when using homed.

The file:

The file.

The file.

Home directory fails to mount: not enough free space
When using a underlying filesystem such as btrfs and experiencing mount issues after filling the home directory with too many files, then...

Activate luks discard offline support:

Now attempt to activate the home directory:

Create a community maintained disk space document
See this discussion. Handbook should reference basic disk space requirements, whereas community page can document in more specificity how much space is necessary for typical installations on a per-profile basis.


 * Profile space requirements
 * distfiles space requirements (btrfs) as of 2021/09/22: 282G
 * gentoo repository space requirements (btrfs) as of 2021/09/22: 562M

Should be able to hook this up to an automated export available via HTTPS somehow...

Since "desktop" profiles are becoming available, it should be possible nab uncompressed filesystem sizes from RelEng builds, this data can be used to generate a table that can be used on the main site.... alternatively link to my space on pecker.

Prefix/Termux
Packages required to be installed in Termux (GitHub) for Gentoo Prefix to run with Termux:

Prefix/Cygwin
Packages required to be installed in Cygwin for Gentoo Prefix/Cygwin to run:

Tyrian

 * Devmanual should be added to the sites drop down menu...

Bound to fail
Using too high a MAKEOPS value and  set to   (or some other N), is a bad idea when compiling source in tmpfs or when Gentoo has been allocated only a small partition to PORTAGE_TMPDIR. In the example below the following default values are set in :

The previous example is bound to result in job failure output similar to the following:

Why does this happen?
The above occurs as explained in the OSError output from Portage: OSError: [Errno 28] No space left on device

In other words, space runs out in the directory Portage uses for compilation ( PORTAGE_TMPDIR ).

The fastest solution
Run + to close the Python interpreter, then do whatever is appropriate to obtain more disk space. Typically this can look like running and purging any failed compilations from Portage's TMPDIR:

Finally, resuming the with a smaller MAKEOPTS or jobs value (or both!) should work around the build failure:

Building stages with clang
Reddit discussion here.

This Debian sites keeps a nice list of packages that are successfully built with LLVM/Clang.

Captive portals
Explain how to access Cisco (and other annoying) captive portals that are typically present when using (at least) Chromium/FireFox and NetworkManager.

Explain how to connect to a captive portal while booted to a Gentoo admin or minimal installation media to avoid no network problems.

Nice to be able to do this via CLI as well... what tools or techniques can we come up with in order to help our community get past captive portals

Here are some links for research:


 * https://words.filippo.io/captive-browser/ - A dedicated Chrome instance to log into captive portals without messing with DNS settings.
 * https://github.com/FiloSottile/captive-browser/
 * https://www.geeksforgeeks.org/automated-login-for-captive-portals-in-linux/
 * https://github.com/authq/captive-login - Captive-portal login utility for headless environments written in pure bash.
 * https://github.com/SadeghHayeri/Mili - Mili is an open source tool for auto login hotspot pages! (MacOS + Linux)
 * https://unix.stackexchange.com/a/303807 and https://andrewwippler.com/2016/03/11/wifi-captive-portal/
 * https://github.com/topics/captiveportal

Troubleshooting
Sometimes attempting to browse to any site without using HTTPS will help trigger the captive portal to load.

Add information on enabling FreeSync on AMDGPU

 * AMDGPU

Resolve PPC bootloader installation instructions
Handbook probably needs to be migrated from yaboot to GRUB2. See discussion on Handbook_Talk:PPC/Installation/Bootloader.

Pending testing with VOID Linux on a separate HDD. 11/16/2020

Add networking setup example to the Handbooks using ip command
Transision the Handbook to use the command with CIDR format rather than.

Finish new Gentoo wallpapers

 * Add new wallpapers to www.g.o. and create a package for quick and easy installation on Gentoo.
 * Work on getting a resize script for common supported display resolutions. Start with 4K, resize down as appropriate per form factor.
 * Consider mobile device resolutions. What are they?
 * Upload wallpapers sources (with attribution) to maffblaster's GitHub.
 * Cut releases on GitHub.
 * Write imagemagick resize script for end user reproducibility?
 * See this tutorial for possible options. Or this Digital Ocean article.
 * Pseudo-code from Robin:

Terminology update: Overlay -> ebuild repository
Figure out how to address the following articles (man pages will also need updated):

Layman references:


 * PORTDIR_OVERLAY variable.
 * command.

Continue work on: https://wiki.gentoo.org/index.php?title=Special:WhatLinksHere/Overlay&action=purge

Add new recentchanges bot to #gentoo-wiki
Investigate: https://wikitech.wikimedia.org/wiki/EventStreams

Right now I'm researching mw-bot (source).

Code for a similar recentchanges output:

Waiting on a response to issue 62 to add a new wiki to the bot's command.


 * Link from cronolio: https://www.mediawiki.org/wiki/Manual:$wgRCFeeds#Example
 * Setting up ircII with recentchanges: https://wikitech.wikimedia.org/wiki/IRCD#How_to_do_it_on_your_own_server

TODO: write a module to watch recent changes for sopel.

In Unix, what do some obscurely named commands stand for?
Link this somewhere: https://kb.iu.edu/d/abnd

Someone please work on these. Someone. ANYONE?! PLEASE!!

 * GitLab - Clean up article: meld it into proper article layout/formatting according to wiki Guidelines, review for correctness.
 * Work on bringing GitLab to Gentoo. This would be of use to infra as a GitHub fall back (since GitHub isn't nicely open source).
 * Start with a Gentoo-based container (if necessary), and build from there.