* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-01 18:12 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-01 18:12 UTC (permalink / raw
To: gentoo-commits
commit: 28e04f00d36766d8aa78c9ffabe5bcfeb6f1ee88
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 1 18:15:15 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Wed Jul 1 18:15:15 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=28e04f00
grsup: fix syntax error in arg order.
grsup | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grsup b/grsup
index 3bab876..69decfc 100755
--- a/grsup
+++ b/grsup
@@ -21,7 +21,7 @@ from portage.exception import IsADirectory, ParseError, PermissionDenied
from portage import setting
-def install_kernel(version = 'latest', logfile):
+def install_kernel(version = 'latest', logfile = CONST.LOGFILE):
""" doc here
more doc
"""
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-02 16:51 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-02 16:51 UTC (permalink / raw
To: gentoo-commits
commit: d3c490a9411769f6dfdf241dbcee7ae6b717eab4
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 2 16:53:33 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Thu Jul 2 16:53:33 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=d3c490a9
make-worldconf: sort the sections of world.conf.
make-worldconf | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 5ab0b46..09de316 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -121,7 +121,7 @@ def main():
config = configparser.RawConfigParser(delimiters=':', allow_no_value=True, comment_prefixes=None)
for p in mydepgraph.altlist():
- # Prepare a section for this atom
+ # Prepare an empty section for this atom
try:
config[p.slot_atom] = {}
except AttributeError:
@@ -136,11 +136,19 @@ def main():
# Populate package.env and env/*
envvars(config, p)
+ # Remove any empty sections
if config[p.slot_atom] == {}:
config.remove_section(p.slot_atom)
+ # Recontruct a RawConfigParser from the above which has sorted sections.
+ all_slot_atoms = config.sections()
+ all_slot_atoms.sort()
+ sorted_config = configparser.RawConfigParser(delimiters=':', allow_no_value=True, comment_prefixes=None)
+ for s in all_slot_atoms:
+ sorted_config[s] = config[s]
+
with open('world.conf', 'w') as configfile:
- config.write(configfile)
+ sorted_config.write(configfile)
if __name__ == "__main__":
main()
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-04 14:13 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-04 14:13 UTC (permalink / raw
To: gentoo-commits
commit: e6015978f8ee88ffadcdfaacc0d3c8b78ff02ba9
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 4 14:15:52 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 4 14:15:52 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=e6015978
README: add blurb about cgroup.
README | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/README b/README
index c9af472..626f80d 100644
--- a/README
+++ b/README
@@ -70,9 +70,14 @@ Features:
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.
+ * 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.
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 12:40 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 12:40 UTC (permalink / raw
To: gentoo-commits
commit: 4ca8d87b69a8552da9e6ad575d831e6c9dab2e2b
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 12:43:08 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 12:43:08 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=4ca8d87b
make-worldconf: search package.{,un}mask
make-worldconf | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 09de316..9f27266 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -89,21 +89,27 @@ def keywords(config, p):
def envvars(config, p):
- try:
- fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, 'package.env')
+ fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, 'package.env')
+ if os.path.isfile(fpath):
with open(fpath, 'r') as g:
for l in g.readlines():
# This matching needs to be made more strick.
if re.search('%s' % re.escape(p.cpv_split[1]), l):
- config[p.slot_atom]['+package.env'] = '%s %s' % (p.slot_atom,
- re.sub('[/:]', '_', p.slot_atom))
+ p_slot_atom = re.sub('[/:]', '_', p.slot_atom)
+ config[p.slot_atom]['+package.env'] = '%s %s' % (p.slot_atom, p_slot_atom)
m = re.search('(\S+)\s+(\S+)', l)
env_file = os.path.join(CONST.PORTAGE_CONFIGDIR, 'env')
env_file = os.path.join(env_file, m.group(2))
with open(env_file, 'r') as h:
- config[p.slot_atom]['env/%s' % re.sub('[/:]', '_', p.slot_atom)] = h.read()
- except FileNotFoundError:
- pass
+ config[p.slot_atom]['env/%s' % p_slot_atom] = h.read()
+
+
+def others(config, p, subdir):
+ rpath = '%s/%s' % (subdir, re.sub('[/:]', '_', p.slot_atom))
+ fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, rpath)
+ if os.path.isile(fpath):
+ with open(fpath, 'r') as g:
+ config[p.slot_atom][rpath] = g.read()
def main():
@@ -127,15 +133,19 @@ def main():
except AttributeError:
continue
- # Populate package.use
+ # Populate package.use - these are read out of p
useflags(config, p)
- # Populate package.accept_keywords
+ # Populate package.accept_keywords - these are read out of p
keywords(config, p)
- # Populate package.env and env/*
+ # Populate package.env and env/* - these are read out of /etc/portage
envvars(config, p)
+ # Others - these are read out of /etc/portage
+ others(config, p, 'package.mask')
+ others(config, p, 'package.unmask')
+
# Remove any empty sections
if config[p.slot_atom] == {}:
config.remove_section(p.slot_atom)
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 15:19 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 15:19 UTC (permalink / raw
To: gentoo-commits
commit: fc18c3375970978638680c0b7195deeecb6ae6ef
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 15:22:20 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 15:22:20 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=fc18c337
make-worldconf: replace package.env file with directory.
make-worldconf | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 9f27266..4b962d4 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -96,7 +96,8 @@ def envvars(config, p):
# This matching needs to be made more strick.
if re.search('%s' % re.escape(p.cpv_split[1]), l):
p_slot_atom = re.sub('[/:]', '_', p.slot_atom)
- config[p.slot_atom]['+package.env'] = '%s %s' % (p.slot_atom, p_slot_atom)
+ config[p.slot_atom]['package.env/%s' % p_slot_atom] = \
+ '%s %s' % (p.slot_atom, p_slot_atom)
m = re.search('(\S+)\s+(\S+)', l)
env_file = os.path.join(CONST.PORTAGE_CONFIGDIR, 'env')
env_file = os.path.join(env_file, m.group(2))
@@ -107,7 +108,7 @@ def envvars(config, p):
def others(config, p, subdir):
rpath = '%s/%s' % (subdir, re.sub('[/:]', '_', p.slot_atom))
fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, rpath)
- if os.path.isile(fpath):
+ if os.path.isfile(fpath):
with open(fpath, 'r') as g:
config[p.slot_atom][rpath] = g.read()
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 16:11 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 16:11 UTC (permalink / raw
To: gentoo-commits
commit: a41470af307df90f2be041900dceeed7114d4b74
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 16:13:39 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 16:13:39 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=a41470af
make-worldconf: change structure of world.conf.
make-worldconf | 33 ++++++---------------------------
1 file changed, 6 insertions(+), 27 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 4b962d4..85f63b0 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -66,8 +66,7 @@ def useflags(config, p):
# Insert nicely sorted flags.
if len(flags) > 0:
flags.sort()
- config[p.slot_atom]['package.use/%s' % re.sub('[/:]', '_', p.slot_atom)] = \
- p.slot_atom + ' ' + ' '.join(flags)
+ config[p.slot_atom]['package.use'] = p.slot_atom + ' ' + ' '.join(flags)
def keywords(config, p):
@@ -84,33 +83,14 @@ def keywords(config, p):
except AttributeError:
pass
if keyword:
- config[p.slot_atom]['package.accept_keywords/%s' % re.sub('[/:]', '_', p.slot_atom)] = \
- '=%s %s' % (p.cpv, keyword)
-
-
-def envvars(config, p):
- fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, 'package.env')
- if os.path.isfile(fpath):
- with open(fpath, 'r') as g:
- for l in g.readlines():
- # This matching needs to be made more strick.
- if re.search('%s' % re.escape(p.cpv_split[1]), l):
- p_slot_atom = re.sub('[/:]', '_', p.slot_atom)
- config[p.slot_atom]['package.env/%s' % p_slot_atom] = \
- '%s %s' % (p.slot_atom, p_slot_atom)
- m = re.search('(\S+)\s+(\S+)', l)
- env_file = os.path.join(CONST.PORTAGE_CONFIGDIR, 'env')
- env_file = os.path.join(env_file, m.group(2))
- with open(env_file, 'r') as h:
- config[p.slot_atom]['env/%s' % p_slot_atom] = h.read()
+ config[p.slot_atom]['package.accept_keywords'] = '=%s %s' % (p.cpv, keyword)
def others(config, p, subdir):
- rpath = '%s/%s' % (subdir, re.sub('[/:]', '_', p.slot_atom))
- fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, rpath)
+ fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, subdir)
if os.path.isfile(fpath):
with open(fpath, 'r') as g:
- config[p.slot_atom][rpath] = g.read()
+ config[p.slot_atom][subdir] = g.read()
def main():
@@ -140,10 +120,9 @@ def main():
# Populate package.accept_keywords - these are read out of p
keywords(config, p)
- # Populate package.env and env/* - these are read out of /etc/portage
- envvars(config, p)
-
# Others - these are read out of /etc/portage
+ others(config, p, 'env')
+ others(config, p, 'package.env')
others(config, p, 'package.mask')
others(config, p, 'package.unmask')
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 16:20 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 16:20 UTC (permalink / raw
To: gentoo-commits
commit: b5d9509982de6463c68c4c2dfd9ee248f3a31996
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 16:22:32 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 16:22:32 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=b5d95099
make-worldconf: fix reading from /etc/portage.
make-worldconf | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 85f63b0..9408aef 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -86,8 +86,11 @@ def keywords(config, p):
config[p.slot_atom]['package.accept_keywords'] = '=%s %s' % (p.cpv, keyword)
-def others(config, p, subdir):
- fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, subdir)
+def from_etc_portage(config, p, subdir):
+ # We could add better matching intelligence here so as to match
+ # these subdirs+files for /etc/portage not maintained by GRS.
+ fpath = os.path.join(CONST.PORTAGE_CONFIGDIR, '%s/%s' % \
+ (subdir, re.sub('[/:]', '_', p.slot_atom)))
if os.path.isfile(fpath):
with open(fpath, 'r') as g:
config[p.slot_atom][subdir] = g.read()
@@ -121,10 +124,10 @@ def main():
keywords(config, p)
# Others - these are read out of /etc/portage
- others(config, p, 'env')
- others(config, p, 'package.env')
- others(config, p, 'package.mask')
- others(config, p, 'package.unmask')
+ from_etc_portage(config, p, 'env')
+ from_etc_portage(config, p, 'package.env')
+ from_etc_portage(config, p, 'package.mask')
+ from_etc_portage(config, p, 'package.unmask')
# Remove any empty sections
if config[p.slot_atom] == {}:
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 16:33 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 16:33 UTC (permalink / raw
To: gentoo-commits
commit: d87fae8b90e536410e9cdb3b91cbaf436752e947
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 16:35:34 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 16:35:34 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=d87fae8b
make-worldconf: cleanup config file format.
make-worldconf | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/make-worldconf b/make-worldconf
index 9408aef..c991817 100755
--- a/make-worldconf
+++ b/make-worldconf
@@ -93,7 +93,7 @@ def from_etc_portage(config, p, subdir):
(subdir, re.sub('[/:]', '_', p.slot_atom)))
if os.path.isfile(fpath):
with open(fpath, 'r') as g:
- config[p.slot_atom][subdir] = g.read()
+ config[p.slot_atom][subdir] = g.read().strip()
def main():
@@ -124,10 +124,10 @@ def main():
keywords(config, p)
# Others - these are read out of /etc/portage
- from_etc_portage(config, p, 'env')
- from_etc_portage(config, p, 'package.env')
from_etc_portage(config, p, 'package.mask')
from_etc_portage(config, p, 'package.unmask')
+ from_etc_portage(config, p, 'package.env')
+ from_etc_portage(config, p, 'env')
# Remove any empty sections
if config[p.slot_atom] == {}:
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-05 23:56 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-05 23:56 UTC (permalink / raw
To: gentoo-commits
commit: 19942482c18d4d358c89d5db5736d8843af3ae99
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 5 23:58:44 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sun Jul 5 23:58:44 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=19942482
grsup: fix kernel install and other errors.
grsup | 56 ++++++++++++++++++++++++++++++++------------------------
1 file changed, 32 insertions(+), 24 deletions(-)
diff --git a/grsup b/grsup
index 57029a7..bb5330f 100755
--- a/grsup
+++ b/grsup
@@ -12,6 +12,7 @@ from getopt import getopt, GetoptError
from html.parser import HTMLParser
from grs import CONST
+from grs import Execute
from grs import Log
from grs import Synchronize
from grs import WorldConf
@@ -44,7 +45,7 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE):
return
try:
- request = urllib.request.urlopen(baseurl)
+ request = urllib.request.urlopen('%s/%s' % (baseurl,'linux-images'))
dload = request.read().decode('utf-8')
except urllib.error.HTTPError:
print('Cannot open %s' % baseurl)
@@ -56,7 +57,11 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE):
kernels.sort()
if version == 'latest':
- kernel = kernels[-1]
+ try:
+ kernel = kernels[-1]
+ except IndexError:
+ print('No linux-image available')
+ return
else:
for k in kernels:
m = re.search('linux-image-(.+).tar.xz', k)
@@ -67,20 +72,25 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE):
print('No linux-image %s available' % version)
return
- # Download the linux-image tarball to packages/linux-image
- request = urllib.request.urlopen('%s/%s' % (baseurl, kernel))
- package = '/usr/portage/packages/linux-images'
- os.makedirs(package, mode=0o755, exist_ok=True)
- kpath = os.path.join(package, kernel)
- with open(kpath, 'wb') as f:
- shutil.copyfileobj(request, f)
+ # Download the linux-image tarball to packages/linux-image
+ request = urllib.request.urlopen('%s/%s/%s' % (baseurl, 'linux-images', kernel))
+ package = '/usr/portage/packages/linux-images'
+ os.makedirs(package, mode=0o755, exist_ok=True)
+ kpath = os.path.join(package, kernel)
+ with open(kpath, 'wb') as f:
+ shutil.copyfileobj(request, f)
+
+ # Try to mount /boot. Fail silently since it may not be mountable.
+ if not os.path.ismount('/boot'):
+ cmd = 'mount /boot'
+ Execute(cmd, timeout=60, failok=True, logfile=logfile)
- # Untar it at '/'. tar will not clobber files.
- cwd = os.getcwd()
- os.chdir('/')
- cmd = 'tar -Jxf %s' % kpath
- Execute(cmd, timeout=600, logfile=logfile)
- os.chdir(cwd)
+ # Untar it at '/'. tar will not clobber files.
+ cwd = os.getcwd()
+ os.chdir('/')
+ cmd = 'tar --overwrite -Jxf %s' % kpath
+ Execute(cmd, timeout=600, logfile=logfile)
+ os.chdir(cwd)
def usage(rc=1):
@@ -127,15 +137,17 @@ def main():
elif o == '-d':
if len(myfiles) == 0 or exclude > 1:
usage()
- args.insert(0, '-q --unmerge')
+ args.insert(0, '--unmerge')
+ args.insert(0, '-q')
exclude += 1
elif o == '-C':
if len(myfiles) > 0:
usage()
args = ['-gefq', '@world']
- elif o == '=k':
+ elif o == '-k':
if len(sys.argv[1:]) != 2:
usage()
+ version = a
do_install_kernel = True
if len(CONST.names) > 1:
@@ -165,7 +177,7 @@ def main():
WorldConf.install()
if do_install_kernel:
- install_kernel(a)
+ install_kernel(version=version)
else:
try:
emerge_main(args)
@@ -182,10 +194,8 @@ def main():
sys.exit(1)
WorldConf.clean()
- try:
+ if os.path.exists(CONST.PORTAGE_DIRTYFILE):
os.remove(CONST.PORTAGE_DIRTYFILE)
- except (FileNotFoundError, IsADirectoryError):
- pass
if __name__ == "__main__":
@@ -194,7 +204,5 @@ if __name__ == "__main__":
except KeyboardInterrupt:
sys.stderr.write("Cleaning up /etc/portage. This make take some time.\n")
WorldConf.clean()
- try:
+ if os.path.exists(CONST.PORTAGE_DIRTYFILE):
os.remove(CONST.PORTAGE_DIRTYFILE)
- except (FileNotFoundError, IsADirectoryError):
- pass
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-06 1:39 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-06 1:39 UTC (permalink / raw
To: gentoo-commits
commit: 743853d076e647b383fd7762168cc708d1f9709a
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 6 01:41:51 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jul 6 01:41:51 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=743853d0
grsup: some bug fixes.
grsup | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/grsup b/grsup
index bb5330f..d956af9 100755
--- a/grsup
+++ b/grsup
@@ -95,16 +95,11 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE):
def usage(rc=1):
usage = """
-usage: grsup -C
- grsup -k kernel
- grsup [-r|-d] pkg(s)
- grsup -h
-
-flags: -C download all world packages
- : -k kernel version, or 'latest'
- : -r re-emerge the pkgs(s)
- : -d unmerge the pkgs(s)
- : -h print this help file
+usage: grsup [pkg(s)] : update @world or pkg(s) if given
+ grsup [-r|-d] pkg(s) : re-install or delete pkg(s)
+ grsup -C : download all @world pkgs, don't install
+ grsup -k kernel : install 'kernel' version, or 'latest'
+ grsup -h : print this help
"""
print(usage)
sys.exit(rc)
@@ -112,38 +107,39 @@ flags: -C download all world packages
def main():
myaction, myopts, myfiles = parse_opts(sys.argv[1:])
- args = copy.deepcopy(myfiles)
try:
opts, x = getopt(sys.argv[1:], 'Ck:rdh')
except GetoptError:
usage()
+ do_install_kernel = False
if len(opts) == 0:
- args.insert(0, '-gKuDq')
+ args = ['-g', '-K', '-u', '-D', '-q']
if len(myfiles) == 0:
- usage()
+ myfiles = ['@world']
+ args.extend(myfiles)
else:
exclude = 0
- do_install_kernel = False
for o, a in opts:
if o == '-h':
usage(rc=0)
elif o == '-r':
if len(myfiles) == 0 or exclude > 1:
usage()
- args.insert(0, '-gKDq')
+ args = ['-g', '-K', '-D', '-q']
+ args.extend(myfiles)
exclude += 1
elif o == '-d':
if len(myfiles) == 0 or exclude > 1:
usage()
- args.insert(0, '--unmerge')
- args.insert(0, '-q')
+ args = ['-C', '-q']
+ args.extend(myfiles)
exclude += 1
elif o == '-C':
if len(myfiles) > 0:
usage()
- args = ['-gefq', '@world']
+ args = ['-g', '-e', '-f', '-q', '@world']
elif o == '-k':
if len(sys.argv[1:]) != 2:
usage()
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-06 19:49 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-06 19:49 UTC (permalink / raw
To: gentoo-commits
commit: 154058c5bc85f6b92cd01880bd418648e317ab2c
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 6 19:52:12 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jul 6 19:52:12 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=154058c5
Add TODO so I don't forget things to do when they come to mind.
TODO | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..db32c13
--- /dev/null
+++ b/TODO
@@ -0,0 +1,8 @@
+My TODO list:
+
+1. A local copy of PORTDIR should be created in CONST.TMPDIR + GRS name. This is
+to prevent wierdness in case /usr/portage changes during a run.
+
+2. Upon building a system we should make use of the binpkgs in CONST.TMPDIR + GRS name
+as a time saver. This is something to go into the build scripts in the GRS repo and not
+in the GRS suite.
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-06 19:57 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-06 19:57 UTC (permalink / raw
To: gentoo-commits
commit: 8b091dc01c96d36036ebcaef12342b2790213829
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 6 20:00:02 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jul 6 20:00:02 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=8b091dc0
grsup: change to -D to download all binpkgs.
grsup | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/grsup b/grsup
index d956af9..5362d46 100755
--- a/grsup
+++ b/grsup
@@ -97,7 +97,7 @@ def usage(rc=1):
usage = """
usage: grsup [pkg(s)] : update @world or pkg(s) if given
grsup [-r|-d] pkg(s) : re-install or delete pkg(s)
- grsup -C : download all @world pkgs, don't install
+ grsup -D : download all @world pkgs, don't install
grsup -k kernel : install 'kernel' version, or 'latest'
grsup -h : print this help
"""
@@ -136,7 +136,7 @@ def main():
args = ['-C', '-q']
args.extend(myfiles)
exclude += 1
- elif o == '-C':
+ elif o == '-D':
if len(myfiles) > 0:
usage()
args = ['-g', '-e', '-f', '-q', '@world']
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-07 0:41 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-07 0:41 UTC (permalink / raw
To: gentoo-commits
commit: d1a7af9843c12553d86a1c9480402e7551c843f7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 7 00:44:04 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Jul 7 00:44:04 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=d1a7af98
grsup: don't unnecessarily record in world file.
grsup | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/grsup b/grsup
index 5362d46..816e982 100755
--- a/grsup
+++ b/grsup
@@ -115,7 +115,7 @@ def main():
do_install_kernel = False
if len(opts) == 0:
- args = ['-g', '-K', '-u', '-D', '-q']
+ args = ['-1', '-g', '-K', '-u', '-D', '-q']
if len(myfiles) == 0:
myfiles = ['@world']
args.extend(myfiles)
@@ -127,7 +127,7 @@ def main():
elif o == '-r':
if len(myfiles) == 0 or exclude > 1:
usage()
- args = ['-g', '-K', '-D', '-q']
+ args = ['-1', '-g', '-K', '-D', '-q']
args.extend(myfiles)
exclude += 1
elif o == '-d':
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-07 12:38 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-07 12:38 UTC (permalink / raw
To: gentoo-commits
commit: b3bbbbb83528c3309a806bd6b7cdc71ad21031d7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 7 12:41:16 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Jul 7 12:41:16 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=b3bbbbb8
systems.conf: add [stages-amd64-hardened]
systems.conf | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/systems.conf b/systems.conf
index fae9bdf..3e9ae15 100644
--- a/systems.conf
+++ b/systems.conf
@@ -1,8 +1,14 @@
[desktop-amd64-uclibc-hardened]
-nameserver : 192.168.3.1
+nameserver : 8.8.8.8
repo_uri : git://anongit.gentoo.org/proj/grs.git
-stage_uri : ftp://distfiles.gentoo.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64-uclibc-hardened/stage3-amd64-uclibc-hardened-20150610.tar.bz2
+stage_uri : http://distfiles.gentoo.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64-uclibc-hardened/stage3-amd64-uclibc-hardened-20150705.tar.bz2
-#[desktop-amd64-musl-hardened]
-#repo_uri : git://anongit.gentoo.org/proj/grs.git
-#stage_uri : ftp://distfiles.gentoo.org/pub/gentoo/experimental/amd64/musl/stage3-amd64-musl-hardened-20150405.tar.bz2
+[desktop-amd64-hardened]
+nameserver : 8.8.8.8
+repo_uri : git://anongit.gentoo.org/proj/grs.git
+stage_uri : http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-hardened/stage3-amd64-hardened-20150702.tar.bz2
+
+[stages-amd64-hardened]
+nameserver : 8.8.8.8
+repo_uri : git://anongit.gentoo.org/proj/grs.git
+stage_uri : http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-hardened/stage3-amd64-hardened-20150702.tar.bz2
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-10 21:13 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-10 21:13 UTC (permalink / raw
To: gentoo-commits
commit: d00f70f71b9f002e099601cc0d7a85ddcc82e519
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 10 21:16:37 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Jul 10 21:16:37 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=d00f70f7
systems.conf: add desktop-amd64-musl-hardened.
systems.conf | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/systems.conf b/systems.conf
index 3e9ae15..138ea57 100644
--- a/systems.conf
+++ b/systems.conf
@@ -3,6 +3,11 @@ nameserver : 8.8.8.8
repo_uri : git://anongit.gentoo.org/proj/grs.git
stage_uri : http://distfiles.gentoo.org/pub/gentoo/releases/amd64/autobuilds/current-stage3-amd64-uclibc-hardened/stage3-amd64-uclibc-hardened-20150705.tar.bz2
+[desktop-amd64-musl-hardened]
+nameserver : 8.8.8.8
+repo_uri : git://anongit.gentoo.org/proj/grs.git
+stage_uri : http://distfiles.gentoo.org/experimental/amd64/musl/stage3-amd64-musl-hardened-20150609.tar.bz2
+
[desktop-amd64-hardened]
nameserver : 8.8.8.8
repo_uri : git://anongit.gentoo.org/proj/grs.git
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-25 1:24 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-25 1:24 UTC (permalink / raw
To: gentoo-commits
commit: 60492d29bc4cad13e376b17b6efc63a51c8729e4
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 25 01:26:45 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 25 01:26:45 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=60492d29
grsrun: add 'select' flag -s.
grsrun | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/grsrun b/grsrun
index 86b33ea..2e69c71 100755
--- a/grsrun
+++ b/grsrun
@@ -15,11 +15,13 @@ from getopt import getopt, GetoptError
def usage(rc=1):
usage = """
-usage: grsrun [-m|-u|-h]
+usage: grsrun [-m|-u|-h|-s <name>]
-flags: -m Mock run. Don't really execute.
- : -u Update run.
- : -h print this help file
+flags: Release run. Do every step in build script.
+ : -u Update run. Do only '+' steps.
+ : -m Mock run. Log what would be done.
+ : -s <name>. Only run for GRS system <name>.
+ : -h Print this help file.
"""
print(usage)
sys.exit(rc)
@@ -28,12 +30,13 @@ flags: -m Mock run. Don't really execute.
def main():
try:
- opts, x = getopt(sys.argv[1:], 'muh')
+ opts, x = getopt(sys.argv[1:], 'mus:h')
except GetoptError as e:
usage()
mock_run = False
update_run = False
+ grsname = None
for o, a in opts:
if o == '-h':
usage(0)
@@ -41,6 +44,8 @@ def main():
mock_run = True
elif o == '-u':
update_run = True
+ elif o == '-s':
+ grsname = a
os.makedirs(CONST.GRS_CGROUPDIR, mode=0o555, exist_ok=True)
if not os.path.ismount(CONST.GRS_CGROUPDIR):
@@ -49,6 +54,9 @@ def main():
count = 0
for name in CONST.names:
+ if grsname:
+ if name != grsname:
+ continue
if not os.fork():
subcgroup = 'run-%s' % name
subcgroupdir = os.path.join(CONST.GRS_CGROUPDIR, subcgroup)
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-25 1:51 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-25 1:51 UTC (permalink / raw
To: gentoo-commits
commit: 83a2ce2e43cf2163cba458e8c133b0de71ec32b4
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 25 01:26:45 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 25 01:53:37 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=83a2ce2e
grsrun: add 'select' flag -s.
grsrun | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/grsrun b/grsrun
index 86b33ea..c5e5240 100755
--- a/grsrun
+++ b/grsrun
@@ -15,11 +15,13 @@ from getopt import getopt, GetoptError
def usage(rc=1):
usage = """
-usage: grsrun [-m|-u|-h]
+usage: grsrun [-m|-u|-h|-s <name>]
-flags: -m Mock run. Don't really execute.
- : -u Update run.
- : -h print this help file
+flags: Release run. Do every step in build script.
+ : -u Update run. Do only '+' steps.
+ : -m Mock run. Log what would be done.
+ : -s <name>. Only run for GRS system <name>.
+ : -h Print this help file.
"""
print(usage)
sys.exit(rc)
@@ -28,12 +30,13 @@ flags: -m Mock run. Don't really execute.
def main():
try:
- opts, x = getopt(sys.argv[1:], 'muh')
+ opts, x = getopt(sys.argv[1:], 'mus:h')
except GetoptError as e:
usage()
mock_run = False
update_run = False
+ grsname = None
for o, a in opts:
if o == '-h':
usage(0)
@@ -41,6 +44,8 @@ def main():
mock_run = True
elif o == '-u':
update_run = True
+ elif o == '-s':
+ grsname = a
os.makedirs(CONST.GRS_CGROUPDIR, mode=0o555, exist_ok=True)
if not os.path.ismount(CONST.GRS_CGROUPDIR):
@@ -49,6 +54,10 @@ def main():
count = 0
for name in CONST.names:
+ if grsname:
+ if name != grsname:
+ count = count + 1
+ continue
if not os.fork():
subcgroup = 'run-%s' % name
subcgroupdir = os.path.join(CONST.GRS_CGROUPDIR, subcgroup)
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-25 15:32 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-25 15:32 UTC (permalink / raw
To: gentoo-commits
commit: 4042dbd16a841211c454b10d89fcf56ad315261e
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 25 15:34:39 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 25 15:34:39 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=4042dbd1
grsup: improve usage() for kernel.
grsup | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grsup b/grsup
index 816e982..2e726f0 100755
--- a/grsup
+++ b/grsup
@@ -98,7 +98,7 @@ def usage(rc=1):
usage: grsup [pkg(s)] : update @world or pkg(s) if given
grsup [-r|-d] pkg(s) : re-install or delete pkg(s)
grsup -D : download all @world pkgs, don't install
- grsup -k kernel : install 'kernel' version, or 'latest'
+ grsup -k <version> : install kernel <version> or 'latest'
grsup -h : print this help
"""
print(usage)
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-07-25 22:06 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-07-25 22:06 UTC (permalink / raw
To: gentoo-commits
commit: b82b07c6d52cd2cc3bef1f0e7bdf9ed9c2153565
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 25 22:09:31 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Jul 25 22:09:31 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=b82b07c6
systems.conf: switch definition of desktop-amd64-hardened to multilib.
systems.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/systems.conf b/systems.conf
index 138ea57..c2f0b51 100644
--- a/systems.conf
+++ b/systems.conf
@@ -11,7 +11,7 @@ stage_uri : http://distfiles.gentoo.org/experimental/amd64/musl/stage3-amd64-mus
[desktop-amd64-hardened]
nameserver : 8.8.8.8
repo_uri : git://anongit.gentoo.org/proj/grs.git
-stage_uri : http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-hardened/stage3-amd64-hardened-20150702.tar.bz2
+stage_uri : http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-hardened+nomultilib/stage3-amd64-hardened+nomultilib-20150723.tar.bz2
[stages-amd64-hardened]
nameserver : 8.8.8.8
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-08-04 19:25 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-08-04 19:25 UTC (permalink / raw
To: gentoo-commits
commit: 9b7f11ebb6ea1fcdf459641ddfe3d66b793c516f
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 4 19:28:10 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Aug 4 19:28:10 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=9b7f11eb
TODO: note problem with orphaned files in /etc/portage.
TODO | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/TODO b/TODO
index db32c13..ed1164c 100644
--- a/TODO
+++ b/TODO
@@ -6,3 +6,9 @@ to prevent wierdness in case /usr/portage changes during a run.
2. Upon building a system we should make use of the binpkgs in CONST.TMPDIR + GRS name
as a time saver. This is something to go into the build scripts in the GRS repo and not
in the GRS suite.
+
+3. grsup and clean-worldconf should remove files form /etc/portage that correspond to
+sections that were removed from world.conf since the last time grsup or install-worldconf
+was run. Currently, if a section is removed from world.conf on the remote repo, then any
+files in canonical form in /etc/portage are orphaned. This can lead to trouble because
+the the flags they define are not removed. This needs to be fixed in clean() in grs/WorldConf.py.
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-08-04 19:32 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-08-04 19:32 UTC (permalink / raw
To: gentoo-commits
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
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-08-04 21:41 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-08-04 21:41 UTC (permalink / raw
To: gentoo-commits
commit: 88693dc02295ea79ba4f9379996cb176462545dc
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 4 21:44:31 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Aug 4 21:44:31 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=88693dc0
Update MANIFEST.in.
MANIFEST.in | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/MANIFEST.in b/MANIFEST.in
index 077e093..9afc0fc 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,7 +1,5 @@
include LICENSE
include README
-include grsrun
-include grsup
-include install-worldconf
-include systems.conf
+include bin/*
+include conf/*
include grs/*
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-08-08 17:52 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-08-08 17:52 UTC (permalink / raw
To: gentoo-commits
commit: 307676bee4cfd5b1e9f5f34221ad5aa0957bdee7
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 8 17:55:21 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Aug 8 17:55:21 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=307676be
TODO: update
TODO | 6 ------
1 file changed, 6 deletions(-)
diff --git a/TODO b/TODO
index ed1164c..db32c13 100644
--- a/TODO
+++ b/TODO
@@ -6,9 +6,3 @@ to prevent wierdness in case /usr/portage changes during a run.
2. Upon building a system we should make use of the binpkgs in CONST.TMPDIR + GRS name
as a time saver. This is something to go into the build scripts in the GRS repo and not
in the GRS suite.
-
-3. grsup and clean-worldconf should remove files form /etc/portage that correspond to
-sections that were removed from world.conf since the last time grsup or install-worldconf
-was run. Currently, if a section is removed from world.conf on the remote repo, then any
-files in canonical form in /etc/portage are orphaned. This can lead to trouble because
-the the flags they define are not removed. This needs to be fixed in clean() in grs/WorldConf.py.
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2015-08-08 20:26 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2015-08-08 20:26 UTC (permalink / raw
To: gentoo-commits
commit: 99ff5b6f43192790e1ed76b5e6b96c14f486410c
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 8 20:30:06 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Aug 8 20:30:06 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=99ff5b6f
TODO: update
TODO | 2 ++
1 file changed, 2 insertions(+)
diff --git a/TODO b/TODO
index db32c13..2cb96b2 100644
--- a/TODO
+++ b/TODO
@@ -6,3 +6,5 @@ to prevent wierdness in case /usr/portage changes during a run.
2. Upon building a system we should make use of the binpkgs in CONST.TMPDIR + GRS name
as a time saver. This is something to go into the build scripts in the GRS repo and not
in the GRS suite.
+
+3. Fix log rotation which adds extra empy "seeds" which it rotates before using!
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [gentoo-commits] proj/grss:master commit in: /
@ 2016-04-02 22:06 Anthony G. Basile
0 siblings, 0 replies; 25+ messages in thread
From: Anthony G. Basile @ 2016-04-02 22:06 UTC (permalink / raw
To: gentoo-commits
commit: a342cf8a3602273751da751978f5120e234c10cb
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 2 22:14:04 2016 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Apr 2 22:14:04 2016 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=a342cf8a
README.md: update
README => README.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/README b/README.md
similarity index 96%
rename from README
rename to README.md
index 8bd1b7f..db5edcb 100644
--- a/README
+++ b/README.md
@@ -64,10 +64,6 @@ 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 repository describes the steps for building
^ permalink raw reply related [flat|nested] 25+ messages in thread
end of thread, other threads:[~2016-04-02 22:07 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-05 23:56 [gentoo-commits] proj/grss:master commit in: / Anthony G. Basile
-- strict thread matches above, loose matches on Subject: below --
2016-04-02 22:06 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:32 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 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox