User:Maffblaster/Raising Gentoo to prominence

From Gentoo Wiki
Jump to:navigation Jump to:search

This article is a dedicated location to write to improvement ideas of a broad scope for Gentoo.


Long term projects (LTPs)


  • Audit Gentoo using The Update Framework as the reference.
  • Pim Vullers is working to bring Pantheon (Elementary OS's Desktop Environment) to Gentoo. His efforts can be found in Pim's overlay.
  • I'm currently (slowly) working on a Python 3 based installer for Gentoo-based Linux distributions. I've dubbed it stager. Visit the project article and GitHub page to see more.
  • I have started work on a Linux-based distribution called Vitality. Vitality will be a lightweight, arm friendly (I'm talking to you, Raspberry PI users!), Gentoo-based Linux distribution. This project is halted while I take a break to study operating system essentials and Linux on embedded systems...
  • I run an organization called Digital Survival (currently a blog), that discusses, among other things, how to become as self-sufficient (digitally) as possible. Contact me on Freenode IRC at #digital-survival (webchat).
  • Am a member of the PR team and regularly post Gentoo-related news to our social sites.

These projects will take a long time to complete (months/years), but are worth working toward.


  • Installer - A way to automate the installation of Gentoo Linux. Goals include:
    • Ability to pass configuration file at install time.
      • Place a configuration file at the root of the installation USB and the installer will 'run with it.'
      • Upload a configuration file at the beginning of the install via web UI.
      • Point the installer to a web-based configuration hosted on GitHub created by someone else, etc. The idea is that you can start from a 'seed' system from a Gentoo influencer.
    • Custom kernel .config generation based on detected devices.
    • REST API (write your own front end)
      • Support web and CLI out of the box, but BYO.

Automated testing

Need more research on this front.

  • Gentoo Ebuild Repository Test Suite (GERTS)
    • Performs quality assurance and package pre-stabilization across various ebuild repositories.
    • Works with QEMU to perform packages testing across stable arches (needs packaged up in a container).
    • Parses atomic ebuild information and prioritizes security related atoms via Bugzilla API.
  • Automated package testing based on Docker and a test harness. This should be relatively simple. Idea based upon this talk.

Portage news

I really like the way task displays updates between releases and I'm wonder what Gentoo-maintained core system components could integrate this feature. For Gentoo, it may look like integrating better with eselect news... or perhaps stand alone reader program?

user $task news
Taskwarrior 2.6.0 Major Release highlights

(1/5) 'Writeable' context

  Background - what is context?
  The 'context' is a feature (introduced in 2.5.0) that allows users to apply a
  predefined filter to all task reports.

    $ task context define work "project:Work or +urgent"
    $ task context work
    Context 'work' set. Use 'task context none' to remove.

  Now if we proceed to add two tasks:
    $ task add Talk to Jeff pro:Work
    $ task add Call mom pro:Personal

    $ task
    ID Age   Project Description  Urg
     1 16s   Work    Talk to Jeff    1

  The task "Call mom" will not be listed, because it does not match
  the active context (its project is 'Personal' and not 'Work').

  What changed in 2.6.0?
  The currently active context definition is now applied as default modifications
  when creating new tasks using 'task add' and 'task log'.

  Consider following example, using contex 'work' defined as 'project:Work' above:

    $ task context work
    $ task add Talk to Jeff
    $ task
    ID Age  Project Description  Urg
     1 1s   Work    Talk to Jeff    1

  Note that project attribute was set to 'Work' automatically.

  What was the motivation behind this feature?
  This was a popular feature request. Now, if you have a context active,
  newly added tasks no longer "fall outside" of the context by default.

  What do I have to do?
  You don't have any contexts defined, so you're good to go as is!
  Read more about how to use contexts in CONTEXT section of 'man task'.

Automated package manager porting

Automated Portage error reporting

Ubuntu uses Apport along with an opt-in feature that automates error reporting (crash report data, even includes the core dump!) for their user base. I believe Apport only catches and reports on runtime crashes. It should be possible for Gentoo to do something similar with Portage failures.

Tinderbox already exists for a similar purpose, but it does not catch many real-world failures (or at least not packages/USE combinations that are rarely used together).

This new user utility would accept a users Bugzilla credentials, would need a application key, but then would automatically create a directory containing metadata from compilation (or other issues), then upload them to Bugzilla. It would be able to weed out invalid cases (out of disk space or out of memory failures). I'm sure there could be some other useful features to add to it given enough thought.


Gentoo update manager (GUM)

GUM: Portage wrapper that can run via cron or timers that will inform system administrator on a regular (configurable) basis when packages on their system are out of date (whether moved out of testing to stable, or newly added to testing).

  • rsync will keep the typical daily sync limit
  • git will sync however often necessary using the Gentoo GitHub mirror.
  • Permits users to define a "favorites list" of packages.
  • How will the system notify admins of changes are ready for their systems? Email? DE popup (inotify)? Web interface?
    • Build a web front-end to browse the package database? Would be a cool project to learn python better.

Gentoo mirror

Make it easy to setup a Gentoo distfiles and ebuild repository mirror for normies -> Pointed toward Digital Survival.

Short term projects (STPs)

Every developer should have a blog!


These projects will take a short amount of time to complete (days/weeks), but are worth working toward. This initiative I'm calling "Every developer should have a blog" project. :)

  • Templates for static developer blogs:
    • Enable each developer to quickly start writing entries on his/her statically generated blog.
    • Write article about hosting developer static blogs/sites on${USER}/
    • Make it easy to RSS tag/subpage side-projects

Generate InfoBoxes from ebuilds using SMW properties

Use data from Portage database to generate URLs on the wiki for each package...