Below are my notes from getting Builder steps 1-4 working (MediaWiki syntax, but should be pretty human-readable); currently do-update is compiling things...
I'd welcome comments/corrections, and any useful bits being integrated into the main doc (which I'd be happy to do myself if given access - I am djbclark on wiki.gnewsense.org.) One thing I'm not sure about is what REPOAPT is actually used for... Time to go look at the code... -- Danny Clark # Sys Admin, Free Software Foundation # http://www.fsf.org # http://opensysadmin.com == Using Builder == External Instructions: http://www.gnewsense.org/Builder/HowToCreateYourOwnGNULinuxDistribution - below are just notes on those instructions, some of which should be contributed back (write access to that page is restricted) === Step 2: Debmirror (optional) === At the moment, we are using local mirrors. We should identify a machine to use for this that is shared, either by the whole office, or also externally. To get the GPG key debmirror needs: gpg --keyserver-options http-proxy --keyserver hkp://subkeys.pgp.net --recv-keys 437D05B5 (and then verify/sign it using your preferred methods) Because debmirror looks for trustedkeys.gpg, not pubring.gpg: cd ~/.gnupg; ln -s pubring.gpg trustedkeys.gpg Then: <pre> HOST=ubuntu.media.mit.edu TARGET=/srv/universe debmirror --nocleanup --verbose --progress --method=http --host=$HOST --arch=i386 \ --source --dist=hardy,hardy-security,hardy-updates,hardy-backports \ --section=main,universe --ignore-release-gpg --root=ubuntu $TARGET debmirror --nocleanup --verbose --progress --method=http --host=$HOST --arch=i386 \ --nosource --dist=hardy,hardy-security,hardy-updates,hardy-backports --section=main/debian-installer \ --root=ubuntu $TARGET </pre> Note that the second debmirror line has ",hardy-security,hardy-updates,hardy-backports" added to the dists section (vs. the gNS site doc as of 2008-06-19) - otherwise, <code>linux32 ./do-update</code> fails, complaining it can't find some files. === Step 4: Configuration === Do not edit the config file directly; instead, set the variables in a "config.local" file. Any changes you make to config will be overwritten during the next "svn update". You need to <code>chmod +x config.local</code>, because for some reason <code>config</code> tests for it with the "<code>test -x</code>" command. Possible errors in config file text: * "SIGNINGKEY is your GPG fingerprint from step 1, it should not contain any spaces." - They actually mean "GPG Key ID", not "GPG fingerprint". * "LOGOLETTER is the letter that will be your logo." - This should actually read "LOGO_LETTER". ==== Example config.local (stock) ==== This uses stock values copied from the stock config file (svn r192). <pre> # gNewSense Builder - config.local file # "Steps" reference http://cluestick/index.php?title=GNewSense # MIRROR is either the mirror you setup in step 3, or an Ubuntu # mirror. It should contain the security packages. MIRROR=http://localhost/~bbrazil/srv/ubuntu # MIRRORDIST is the distribution in the mirror, usually 'hardy'. MIRRORDIST=hardy # DISTRONAME is what you want to call your distribution which should # consist of only letters and numbers. DISTRONAME=gNewSense # RELEASE is the name of your release. Your release should be all # lowercase as it will appear in paths. RELEASE=deltah # TAGLINE is used in the bootsplash and login screen. TAGLINE="Free as in Freedom" # SIGNINGKEY is your GPG fingerprint from step 1, it should not # contain any spaces. SIGNINGKEY=91854607 # BASEDIR is the directory under which the repository, livecd and # temporary files will be put. BASEDIR=/srv/gnewsense # REPODST is where the mirror will be built in the filesystem # ($BASEDIR/(lowercase distribution name)). ## Not changed from config # REPOAPT is where the build scripts will pull packages from, so you # should setup Apache to serve this. REPOAPT=http://127.0.0.1/~bbrazil/srv/gnewsense/gnewsense # DOMAIN is used to create the default sources.list when # installing. We assume an Ubuntu-like setup where you have # archive.DOMAIN and security.DOMAIN and subdomains for all the # country codes. DOMAIN=gnewsense.org # RSYNC_DEST is where the generated repo and livecds should be rsynced # to by a push-repo or push-cd. ## Not changed from config # LOGO_LETTER is the letter that will be your logo. LOGO_LETTER=g # META_*_{ADD,REMOVE} control what packages you'd like added and # removed from the ubuntu-meta package when your meta packages are # being created. META_desktop_ADD="${DISTRONAME_L}-artwork ${DISTRONAME_L}-gdm-themes epiphany-browser" META_KDE_desktop_ADD="k${DISTRONAME_L}-default-settings k${DISTRONAME_L}-artwork-usplash" META_minimal_ADD="" META_standard_ADD="emacs nethack bsdgames build-essential" META_desktop_ADD="${DISTRONAME_L}-artwork ${DISTRONAME_L}-gdm-themes epiphany-browser" META_minimal_REMOVE="" META_standard_REMOVE="popularity-contest friendly-recovery" META_desktop_REMOVE="ubuntu-docs ubuntu-artwork apport-gtk hwtest-gtk usplash usplash-theme-ubuntu ubuntu-gdm-themes firefox ubufox firefox-gnome-support jockey-gtk" META_KDE_desktop_ADD="k${DISTRONAME_L}-default-settings k${DISTRONAME_L}-artwork-usplash" META_KDE_desktop_REMOVE="ubuntu-docs kubuntu-docs kubuntu-artwork-usplash kubuntu-default-settings apport-qt" # *_VERSION are the numbers appended to created packages versions. You # *will need to increment these every time you rebuild a package. You # *will probably want to set these all to 1 when starting. LIVECD_VERSION=2.0 UBIQUITY_VERSION=17 BASE_FILES_VERSION=4 UPDATE_MANAGER_VERSION=3 ARTWORK_VERSION=16 META_VERSION=18 KERNEL_VERSION=6 LAUNCHPAD_INTEGRATION_VERSION=1 BUILDER_VERSION=1 EXAMPLE_CONTENT_VERSION=3 KDEFAULT_SETTINGS_VERSION=8 KMETA_VERSION=1 FIREFOX_VERSION=5 MESA_VERSION=1 XORG_SERVER_VERSION=2 GNOME_DESKTOP_VERSION=1 YELP_VERSION=1 HUMAN_ICON_THEME_VERSION=2 GNOME_PANEL_VERSION=1 EPIPHANY_BROWSER_VERSION=2 PYTHON_APT_VERSION=9 LINUX_UBUNTU_MODULES_VERSION=1 APP_INSTALL_DATA_UBUNTU_VERSION=1 </pre> ==== Example config.local (dclark) ==== <pre> # gNewSense Builder - config.local file # "Steps" reference http://cluestick/index.php?title=GNewSense # MIRROR is either the mirror you setup in step 3, or an Ubuntu # mirror. It should contain the security packages. MIRROR=http://127.0.0.1 # MIRRORDIST is the distribution in the mirror, usually 'hardy'. MIRRORDIST=hardy # DISTRONAME is what you want to call your distribution which should # consist of only letters and numbers. DISTRONAME=gNS4FSF # RELEASE is the name of your release. Your release should be all # lowercase as it will appear in paths. RELEASE=deltah # TAGLINE is used in the bootsplash and login screen. TAGLINE="Free as in the Free Software Foundation" # SIGNINGKEY is your GPG fingerprint from step 1, it should not # contain any spaces. SIGNINGKEY=7E2BF282 # BASEDIR is the directory under which the repository, livecd and # temporary files will be put. BASEDIR=/srv/gnewsense # REPODST is where the mirror will be built in the filesystem # ($BASEDIR/(lowercase distribution name)). ## Not changed from config # REPOAPT is where the build scripts will pull packages from, so you # should setup Apache to serve this. REPOAPT=http://us.archive.gnewsense.org/gnewsense # DOMAIN is used to create the default sources.list when # installing. We assume an Ubuntu-like setup where you have # archive.DOMAIN and security.DOMAIN and subdomains for all the # country codes. DOMAIN=gnewsense.org # RSYNC_DEST is where the generated repo and livecds should be rsynced # to by a push-repo or push-cd. ## Not changed from config # LOGO_LETTER is the letter that will be your logo. LOGO_LETTER=f </pre> _______________________________________________ gNewSense-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/gnewsense-users
