From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/grss:master commit in: /
Date: Tue, 4 Aug 2015 19:32:21 +0000 (UTC) [thread overview]
Message-ID: <1438716922.85b44d605e6a85095a16f81b5eee9c380567acae.blueness@gentoo> (raw)
commit: 85b44d605e6a85095a16f81b5eee9c380567acae
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 4 19:35:22 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Aug 4 19:35:22 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=85b44d60
README: bring in line with wiki page.
README | 171 +++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 87 insertions(+), 84 deletions(-)
diff --git a/README b/README
index 626f80d..8bd1b7f 100644
--- a/README
+++ b/README
@@ -1,89 +1,92 @@
-
-What is this?
-
-The Gentoo Reference System (GRS) Suite is a set of utilities for producing and
-maintaining identical Gentoo systems from a series of configuration files housed
-on a central git repository. As a 'from source' distribution, Gentoo allows
-a large degree of customization. The space of all possible packages and USE flags
-is vast, not to speak of more radical choices such as different kernels (eg. Gentoo
-on FreeBSD), different C Standard Libraries (eg. glibc, uClibc or musl) and different
-providers of core userland utilities (eg. busybox vs. coreutils). In contrast
-to other distributions where each instance of an installed system is nearly identical
-to another, the large array of choice in Gentoo means that any two systems are
-unlikely to be sufficiently similar that executables or libraries from one will
-"just work" on the other, even if the architecture and other hardware factors are
-the same; assuming, of course, there is no conscious effort to build identical
-Gentoo systems. This is where the Gentoo Release System (GRS) suite comes in.
-It does precisely this, namely, it provides an automated method for repeatedly
-and predicably generating identical Gentoo systems.
-
-GRS is designed to work roughly as follows: Periodic release tarballs are generated
-which are "polished". For example, releases can provide preconfigured display
-managers, windowing systems, user accounts and home directories. Installation
-should be as simple as unpacking the release tarball on pre-formated partitions
-with minimal or no further configuration. There is no need to build any packages
-or a kernel and everything is ready to go out of the box. A release tarball can
-be downloaded from some server or alternatively can be built locally. While may
-not be identical because they were build at different times, after updating, both
-approaches should yield identical systems.
-
-Updating a GRS system can proceed by either building packages localy, or downloading
-prebuilt binpkgs. As long as one does not deviate from the GRS defined set of USE
-flags, maskings and other configuration parameters, both approaches should yield
-identical systems. A GRS system is always a Gentoo system, so at any time, one can
-elect to part ways from GRS and venture out on one's own! The GRS suite provides a
-utilities to make sure that configurations in /etc/portage are properly in a
-manner consistant with GRS, but emerge and other portage utilities will always work.
-Even if one does deviate from the GRS defined parameters, it should be possible to
-return to strict GRS using the GRS utilities, provided one has not deviated too far.
-
-GRS is provided by app-portage/grs. The same package is installed on either a
-server responsible for building the release tarballs and binpkgs, or on an actual
-GRS system. On the server, a daemon called grsrun will either do a release run,
-in which case it builds the release tarballs, or it will do an update run where
-it either builds or updates a bunch of extra binpkgs. For example, for GRS =
-desktop-amd64-uclibc-hardened, the release run builds a little under 900 packages,x
-while the update builds/updates about 5700 packages. he first update run after a
-new release is very time consuimgin becuase some 5700 new packages must be built,
-but subsequent update runs need only build packages which were bumped since the last
-update run.
-
-On the client, a utility called grsup acts as a wrapper to emerge. grsup will both
-manage the configuration files in /etc/portage as well as either builds or download
-the binpkg from a PORTAGE_BINHOST. After the initial installation of a GRS system,
-one need only run grsup to update it up to date. While releases tarballs will be
-pushed out periodically, these are not used to update an existing GRS system, only
-to start new one. Rather, one GRS release should smoothly update to the next; in
-other words, each GRS release is equivalent to the previous release plus any updates
-since. The only reason to push out a new release tarball is to avoid having to
-subsequently push out a download a large number of updates for each new installation.
-
-CAVEAT: This is work in progress. A few of the above point are marginally working
-or implemented. This warning will disappear after this whole project moves past
-being experimental.
-
+Description
+
+The Gentoo Reference System (GRS) Suite is a set of tools for building and
+maintaining a well defined Gentoo system in which all choices in building the
+system are predefined in configuration files housed on a central git
+repository. All systems built according to a particular GRS spec should be
+identical. As a "from source" distribution, Gentoo allows a large degree of
+customization. The space of all possible packages and USE flags is vast, not to
+speak of more radical choices such as different kernels (eg. Linux or FreeBSD),
+executable formats (eg. ELF or Mach-O), different C Standard Libraries (eg.
+glibc, uClibc or musl) and different providers of core userland utilities (eg.
+busybox or coreutils). In contrast to other distributions where each instance
+of an installed system is nearly identical to another, the large array of
+choice in Gentoo means that any two systems are unlikely to be sufficiently
+similar that executables or libraries from one will "just work" on the other,
+even if the architecture and other hardware factors are the same; assuming, of
+course, there is no conscious effort to build identical systems. This is where
+the Gentoo Release System (GRS) Suite comes in. It does precisely this, namely,
+it provides an automated method for repeatedly and predictably generating
+identical Gentoo systems.
+
+GRS is designed to work roughly as follows: Periodic release tarballs are
+generated which are "polished". For example, releases can provide
+pre-configured display managers, windowing systems and desktop themes, even
+user accounts and home directories. Installation should be as simple as
+unpacking the release tarball on pre-formated partitions with minimal or no
+further configuration. There is no need to build any packages or a kernel and
+everything is ready to go out of the box. A release tarball can be downloaded
+from some server or alternatively can be built locally. While these may not
+initially be identical because they were build at different times, after
+updating, both approaches should yield identical systems.
+
+Updating a GRS system can proceed by either building packages locally, or
+downloading pre-built binpkgs. As long as one does not deviate from the GRS
+defined set of USE flags, maskings and other configuration parameters, both
+approaches should yield identical systems. A GRS system is always a Gentoo
+system, so at any time, one can elect to part ways from GRS and venture out on
+one's own! The GRS Suite provides a utilities to make sure that configurations
+in /etc/portage are properly maintained in a manner consistent with GRS, but
+emerge and other portage utilities will always work. Even if one does deviate
+from the GRS specs, it should be possible to return to strict GRS using the
+Suite's utilities, provided one has not deviated too far.
+
+GRS is provided by the app-portage/grs package. The same package is installed
+on either a server responsible for building the release tarballs and binpkgs,
+or on an actual GRS system. On the server, a daemon called grsrun will either
+do a release run, in which case it builds the release tarballs, or it will do
+an update run where it either builds or updates a bunch of extra binpkgs. For
+example, for GRS = desktop-amd64-uclibc-hardened, the release run builds a
+little under 900 packages and produces the polished release tarball, while the
+update run builds/updates about 5700 packages. The first update run after a new
+release is time consuming because some 5700 new packages must be built, but
+subsequent update runs need only build packages which were bumped since the
+last update run.
+
+On the client, a utility called grsup acts as a wrapper to emerge. grsup will
+both manage the configuration files in /etc/portage as well as either builds or
+download the binpkg from a PORTAGE_BINHOST. After the initial installation of a
+GRS system, one need only run grsup to bring it up to date. While releases
+tarballs will be pushed out periodically, these are not used to update an
+existing GRS system, only to start new one. Rather, one GRS release should
+smoothly update to the next; in other words, each GRS release is equivalent to
+the previous release plus any updates since. The only reason to push out a new
+release tarball is to avoid having to subsequently push out a large number of
+updates for each new installation.
+
+CAVEAT: This is work in progress. A few of the above point are marginally
+working or implemented. This warning will disappear after this whole project
+moves past being experimental.
Features:
- * The GRS suite does not hard code any steps for the release or update runs.
- Rather, a build script on the git repo describes the steps for building each
- particular GRS system. This makes GRS runs highly flexible. One need only
- transcribe the steps one would manually take in a chroot in build the system
- into the build script, and grsrun will automatically repeat them.
-
- * It is possible to script a GRS system to do the equivalent of catalyst runs.
- [TODO: there is still one more build script directive required here, pivot_chroot.]
-
- * The use of Linux cgroup make management easy. There is no need to trap or
- propagate signals when writing the scripts that are to be run in the chroot.
- A simple SIGTERM to grsrun will ensure that all children process are properly
- terminated and that any bind-mounted filesystems are unmounted.
-
- * A GRS system acts as a "tinderbox-lite" in that build failures are reported.
- So as a GRS system evolves over time, as package are bumped, any breakages that
- are introduced will be caught and reported.
-
+* The GRS suite does not hard code any steps for the release or update runs.
+Rather, a build script on the git repository describes the steps for building
+each particular GRS system. This makes GRS runs highly flexible. One need only
+transcribe the steps one would manually make in a chroot to build the system
+into build script directives, and grsrun will automatically repeat them.
+* It is possible to script a GRS system to do the equivalent of catalyst runs.
+* The use of Linux cgroup make management easy. There is no need to trap or
+propagate signals when writing the scripts that are to be run in the chroot. A
+simple SIGTERM to grsrun will ensure that all children process no matter how
+deep are properly terminated and that any bind-mounted filesystems are
+unmounted.
+* A GRS system acts as a "tinderbox lite" in that build failures are reported.
+So as a GRS system evolves over time, as package are bumped, any breakages that
+are introduced will be caught and reported. [TODO: get these reports
+automatically into bugzilla.]
Authors:
- * Anthony G. Basile <blueness@gentoo.org.>
-
+* Anthony G. Basile <blueness@gentoo.org.>
+Homepage:
+* https://wiki.gentoo.org/wiki/Project:RelEng_GRS
next reply other threads:[~2015-08-04 19:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 19:32 Anthony G. Basile [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-04-02 22:06 [gentoo-commits] proj/grss:master commit in: / Anthony G. Basile
2015-08-08 20:26 Anthony G. Basile
2015-08-08 17:52 Anthony G. Basile
2015-08-04 21:41 Anthony G. Basile
2015-08-04 19:25 Anthony G. Basile
2015-07-25 22:06 Anthony G. Basile
2015-07-25 15:32 Anthony G. Basile
2015-07-25 1:51 Anthony G. Basile
2015-07-25 1:24 Anthony G. Basile
2015-07-10 21:13 Anthony G. Basile
2015-07-07 12:38 Anthony G. Basile
2015-07-07 0:41 Anthony G. Basile
2015-07-06 19:57 Anthony G. Basile
2015-07-06 19:49 Anthony G. Basile
2015-07-06 1:39 Anthony G. Basile
2015-07-05 23:56 Anthony G. Basile
2015-07-05 16:33 Anthony G. Basile
2015-07-05 16:20 Anthony G. Basile
2015-07-05 16:11 Anthony G. Basile
2015-07-05 15:19 Anthony G. Basile
2015-07-05 12:40 Anthony G. Basile
2015-07-04 14:13 Anthony G. Basile
2015-07-02 16:51 Anthony G. Basile
2015-07-01 18:12 Anthony G. Basile
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1438716922.85b44d605e6a85095a16f81b5eee9c380567acae.blueness@gentoo \
--to=blueness@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox