public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] logical extention of /var/db/pkg to /var/db/repos/pkg
@ 2021-03-15 14:37 Igor
  0 siblings, 0 replies; only message in thread
From: Igor @ 2021-03-15 14:37 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 4832 bytes --]

Dear All,

I want to share some ideas on conception of /var/db/pkg design and portage.

/var/db/pkg is basically an extended version of a local overlay, it's a database that 
contains all the installed packages and it's data. It could be viewed as an extended 
gentoo overlay but due to possible logical misconception it looks like 
overlay and more than just an overlay but at the same time doesn't have enough information 
to be an overlay. And that problem is the one that I want to focus on and put on your 
consideration. 

The bold suggestion is to propagate /var/db/pkg to a "pkg" overlay that contains all installed 
packages files including distfiles. Therefore /var/db/pkg turns into for example /var/db/repos/pkg special overlay,
which co-exists with ../gentoo and other overlays on equality basis but unlike other 
overlays it contains extended information (files, patches, distfiles and current /var/db/pkg usual data)

* I assume portage --sync is not frozen, the portage is updated the usual

Benefits: 

*  it will be possible in most of the cases to do minimal installs, when you surgically update a required 
   package only - helpful for enterprises (one of the most wanted features over the years BTW)
   (I suggest to add emerge flag --minimal AKA -min AKA -m and a global flag: MINIMAL in make.conf which would 
   imply --minimal for each emerge by default)

*  It will be possible to freeze stable system config. Config freeze is the only option with 
   Gentoo in practical world. You find a stable config, freeze it and then use for years to come 
   and then upgrade it with the new hardware or spend some time for upgrade if it worth it

*  again in the frozen state it will be possible to re-configure the system putting partial not system 
   wide updates during all the frozen stable system service time yet upgrading portage. For example fixing some critical 
   security issues by upgrading packages or re-configuring the use flags.

*  It will open a new chapter in gentoo installation process. Today if we go from
   scratch we have to spend months and months before a stable config found. We upgrade, patch, 
   find bugs and move on and on until we discover a stable configuration which works. That process is 
   tedious and time consuming and the most difficult with gentoo. But if we had a /var/db/pkg overlay
   we would be able to link a profile to a stable /var/db/pkg overlay database and when a user first installs 
   gentoo he or she will be able to choose between the usual pre-atomic profiles and the profiles linked to a stable pre-set 
   /var/db/pkg (local stable overlay proven and configured by gentoo). I bet the majority will choose not to mess with 
   the atomic profiles - I wouldn't. If a stable profile with pre-set 
   config is chosen then gentoo pulls in with the profile a stable /var/db/pkg database and compile and merge
   all the packages from the pulled /var/db/pkg. That will produce a stable system ready-to use (about 3 months of work 
   saved at least)

*  A new feature could be introduced to the portage : profile update with /var/db/pkg : users wouldn't have to mess with 
   the packages on atomic level but will update one stable system on another stable globally making huge steps. 
   Today when disc space or wideband is not a problem - sure it is possible to build for example desktop systems with 
   wide range of applications pre-installed and then bundle the updates to the /var/db/pkg database. 

*  a maintainer(s) will manage /var/db/pkg stable snapshots for desktop / sever applications just like the common packages

*  in almost all of the cases it will be possible to re-compile the system to it's current state with all the packages 
   currently installed without any Internet connection or distfiles current availability 
   
It does look like a hybrid - taking benefits of a binary distro and merging it with a source based distro 

I can see only one problem (which implies a wrong design?) eclass EAPI backward compatibility. But even without that 
compatibility that would be a logical thing to do with /var/db which is and always was a representative of an
overlay of installed packages for Gentoo but was not treated by emerge like that

If EAPI were backward-compatible the system could be maintained indefinitely but even with the present backward-compatiblity 
a local database would maintain full-rebuild capability for at least 4 years and partial for many many years

Anyway when more experience received something could be done with /var/db/pkg/eclass which could differ from /var/db/gentoo/eclass 
in a way they would support more EAPIs 

Thanks for reading that long. 

-- 
Best regards,
 Igor                          mailto:lanthruster@gmail.com 

[-- Attachment #2: Type: text/html, Size: 6134 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-15 14:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-15 14:37 [gentoo-dev] logical extention of /var/db/pkg to /var/db/repos/pkg Igor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox