From 6647050978c40f023db7400302f66f4cdbf1225a Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 3 Feb 2012 08:42:07 -0500 Subject: [PATCH] Update READMEs a bit --- README-build.md | 128 ------------------------------------------------ README.md | 87 ++++++++++++++++++-------------- gnomeos/README | 42 ++++++---------- 3 files changed, 66 insertions(+), 191 deletions(-) delete mode 100644 README-build.md diff --git a/README-build.md b/README-build.md deleted file mode 100644 index a9311c8c..00000000 --- a/README-build.md +++ /dev/null @@ -1,128 +0,0 @@ -NOTE THIS STUFF IS OUT OF DATE! I'm working on merging some of these -ideas into jhbuild for now. - -== The recipe set == - -A recipe is similar to Bitbake's format, except just have metadata - -we don't allow arbitrary Python scripts. Also, we assume -autotools. Example: - -SUMMARY = "The basic file, shell and text manipulation utilities." -HOMEPAGE = "http://www.gnu.org/software/coreutils/" -BUGTRACKER = "http://debbugs.gnu.org/coreutils" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504\ - file://src/ls.c;startline=5;endline=16;md5=e1a509558876db58fb6667ba140137ad" -SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.gz \ - file://remove-usr-local-lib-from-m4.patch \ - " -DEPENDS = "gmp foo" - -Each recipe will output one or more artifacts. - - -In GNOME, we will have a root per: - - major version (3.0, 3.2) - - "runtime", "sdk", and "devel" - - Build type (opt, debug) - - Architecture (ia32, x86_64) - -/gnome/root-3.2-runtime-opt-x86_64/{etc,bin,share,usr,lib} -/gnome/root-3.2-devel-debug-x86_64/{etc,bin,share,usr,lib} -/gnome/.real/root-3.2-runtime-opt-x86_64 -/gnome/.real/root-3.2-devel-debug-x86_64 - -A "runtime" root is what's necessary to run applications. A SDK root -is that, plus all the command line developer tools (gcc, gdb, make, -strace). And finally the "devel" root has all the API-unstable -headers not necessary for applications (NetworkManager.h etc.) - -Hmm, maybe we should punt developer tools into a Unix app framework. - -== Artifact == - -An artifact is a binary result of compiling a recipe (there may be -multiple). Think of an artifact as like a Linux distribution -"package", except there are no runtime dependencies, conflicts, or -pre/post scripts. It's basically just a gzipped tarball, and we -encode metadata in the filename. - -Example: - -gdk-pixbuf-runtime,o=master,r=3.2-opt-x86_64,b=opt,v=2.24.0-10-g1d39095,.tar.gz - -This is an artifact from the gdk-pixbuf component. Here's a decoding of the key/value pairs: - -o: The origin of the build - there are just "master" and "local" -r: The name of the root this artifact was compiled against -b: The name of the build flavor (known values are "opt" and "debug") -v: The output of "git describe". - -To build a root, we simply unpack the artifacts that compose it, and -run "git commit". - -hacktree will default to splitting up shared libraries' unversioned .so -link and header files into -devel, and the rest into -runtime. - -All binaries default to runtime. - -Local modifications == - -A key point of this whole endeavour is that we want developers to be -able to do local builds. This is surprisingly something not well -supported by the Debian/Fedora's tools at least. - -=== Updating a root with a new local artifact === - -Whenever you install a local artifact, if no "local" branch exists for -that root, it's created. - -Let's say we're debugging gdk-pixbuf, tracking down a memory -corruption bug. We've added a few printfs, and want to rerun things. -GCC optimization is screwing us, so we build it in debug mode (-O0). -The active root is root-3.2-opt. - -$ pwd -~/src/gdk-pixbufroot -$ echo $HACKTREE_ROOT -/gnome/root-3.2-opt - -$ hacktree make debug -