gnewsense-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gNewSense-users] Comments on HowToCreateYourOwnGNULinuxDistribution: St


From: Danny Clark
Subject: [gNewSense-users] Comments on HowToCreateYourOwnGNULinuxDistribution: Steps 1-4
Date: Thu, 19 Jun 2008 12:03:10 -0400
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

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>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]