Created new branch for Debian Live live-cd build system development. This

commit includes the default configuration files, which don't work with Debian 
"etch".
This commit is contained in:
frisco 2008-06-09 00:10:03 +00:00
commit ec818dbbc3
253 changed files with 6460 additions and 0 deletions

View file

@ -0,0 +1,6 @@
by scp or webdav - the last one is the better choice
1) webdav
apt-get install davfs2
modprobe coda
mount -t davfs https://upload.codecoop.org/groups/cryptobox/ /mnt/ttt

5
hints/dev-requirements Normal file
View file

@ -0,0 +1,5 @@
developer requirements:
- dfsbuild
- wget
- curl
- (qemu)

View file

@ -0,0 +1,13 @@
The current official debian package of dfsbuild (v0.99.2) is not working due
to three ugly but small bugs.
If you are using dfsbuild v0.99.2, then you should do the following:
- create a new directory and change into it
- apt-get source dfsbuild
- apply all dfsbuild-bug-?.patch files to the source directory
- debuild -uc -us
- install the freshly built package
Alternatively you could also install the patched version:
packages/dfsbuild_0.99.2.1_i386.deb

View file

@ -0,0 +1,26 @@
as there is no debian-package for the perl bindings of clearsilver, you have to add it manually to the tree of the cbox-tree
1) download
- get it from: http://www.clearsilver.net/downloads
- unpack (tar xzf . ...)
2) configuration
./configure --disable-python --disable-ruby --disable-csharp --disable-apache --disable-java --disable-compression --enable-perl --enable-gettext --prefix=/tmp/clearsilver-perl
3) fix a problem in scripts/document.py
change the first line to "#!/usr/bin/env python"
4) build it
- make
- make install
5) cp to the cbox
cp -a /tmp/clearsilver-perl/local/lib/perl/5.8.7/. cryptobox.conf.d/usr/lib/perl5
rm cryptobox.conf.d/usr/lib/perl5/perllocal.pod
6) dependencies
add python-clearsilver to the box (dfsbuild.conf)

23
hints/kernel-build.txt Normal file
View file

@ -0,0 +1,23 @@
Hints for building and integrating a new kernel into the cryptobox:
1) get the source
download it from http://kernel.org (at least 2.6.11)
2) configure
- copy the current kernel config from the cryptobox/trunk/kernel
directory to the kernel source directory as ".config" (the .config
can also be found in the current kernel-image-cryptoboxX.Y.deb packagefile)
- make menuconfig
- make-kpkg --rootcmd fakeroot --revision=cryptoboxY.X kernel_image
(replace "Y.X" by the current cryptobox release)
3) integrating
- copy the debian kernel package (see above) and the config file to cryptobox/trunk/kernel
- change the "unpackdebs" setting in cryptobox/trunk/etc-default.d/dfs-cbox.conf
- add the new kernel package and the config file to the repository (svn add)
4) afterwork
- run "cryptobox/trunk/scripts/cbox-build.sh dfsbuild" to create a fresh base system
including the new kernel
- test the box with your new kernel
- enjoy it! :)

View file

@ -0,0 +1,56 @@
## fixed bugs:
## - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=404563
## - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=404555
diff -ruN dfsbuild.orig/dfsbuild-0.99.2/Bootloader/Grub.hs dfsbuild/dfsbuild-0.99.2/Bootloader/Grub.hs
--- dfsbuild.orig/dfsbuild-0.99.2/Bootloader/Grub.hs 2006-04-20 00:10:11.000000000 +0200
+++ dfsbuild/dfsbuild-0.99.2/Bootloader/Grub.hs 2007-01-02 00:56:45.000000000 +0100
@@ -40,8 +40,11 @@
grub_generic env =
do createDirectory (targetdir env ++ "/boot/grub") 0o755
- grubfiles <- glob "/lib/grub/*/*"
- safeSystem "cp" $ ["-rv"] ++ grubfiles ++ [targetdir env ++ "/boot/grub/"]
+ -- since etch (Debian 4.0) grub files are located in /usr/lib instead of /lib
+ grubfiles_pre_etch <- glob "/lib/grub/*/*"
+ grubfiles_since_etch <- glob "/usr/lib/grub/*/*"
+ safeSystem "cp" $ ["-rv"] ++ grubfiles_pre_etch ++ grubfiles_since_etch ++
+ [targetdir env ++ "/boot/grub/"]
menuText <- grubMenu env
writeFile (targetdir env ++ "/boot/grub/menu.lst") menuText
diff -ru dfsbuild.orig/dfsbuild-0.99.2/Actions/Mirror.hs dfsbuild/dfsbuild-0.99.2/Actions/Mirror.hs
--- dfsbuild.orig/dfsbuild-0.99.2/Actions/Mirror.hs 2006-04-20 00:10:11.000000000 +0200
+++ dfsbuild/dfsbuild-0.99.2/Actions/Mirror.hs 2007-01-01 22:09:26.000000000 +0100
@@ -33,7 +33,7 @@
archargs ++ debugargs ++ ["-d", suite, targetdir env, mirror]
-- Next, copy them into the mirror.
codename <- getCodeName
- (targetdir env ++ "/var/cache/bootstrap/Release")
+ (targetdir env ++ "/var/cache/bootstrap/")
dm $ "Codename for this is " ++ codename
mapM_ (\x -> handle (\_ -> return ()) (createDirectory x 0o755))
[mirrordir, mirrordir ++ "/conf"]
diff -ru dfsbuild.orig/dfsbuild-0.99.2/Utils.hs dfsbuild/dfsbuild-0.99.2/Utils.hs
--- dfsbuild.orig/dfsbuild-0.99.2/Utils.hs 2006-04-20 00:10:11.000000000 +0200
+++ dfsbuild/dfsbuild-0.99.2/Utils.hs 2007-01-01 22:40:34.000000000 +0100
@@ -16,6 +16,7 @@
import MissingH.ConfigParser
import MissingH.Cmd
import System.IO.Unsafe
+import System.IO.Error
import Text.Regex
import MissingH.Path.FilePath
import System.Directory(doesFileExist)
@@ -72,7 +73,11 @@
getCodeName :: FilePath -> IO String
getCodeName fp =
- do c <- readFile fp
+ do c_old <- System.IO.Error.catch (readFile (fp ++ "Release"))
+ (\e -> if System.IO.Error.isDoesNotExistError e then return "" else ioError e)
+ c_new <- System.IO.Error.catch (readFile (fp ++ "_dists_._Release"))
+ (\e -> if System.IO.Error.isDoesNotExistError e then return "" else ioError e)
+ c <- if length(c_old) > 0 then return c_old else return c_new
let cr = mkRegex "Codename: ([a-z]+)"
case matchRegex cr c of
Just [cn] -> return cn

View file

@ -0,0 +1,60 @@
## this patch allows the addition of custom scripts to prepare/cleanup the target
## directory before/after package installation
## it is necessary for the samba package as it requires /proc/ during installation
--- dfsbuild.orig/dfsbuild-0.99.2/Actions.hs 2006-04-20 00:10:11.000000000 +0200
+++ dfsbuild/dfsbuild-0.99.2/Actions.hs 2007-01-03 15:36:59.000000000 +0100
@@ -43,6 +43,11 @@
finished Bootstrapped
Bootstrapped -> -- Time to install shared files
do installlib env
+ finished EnvironmentPrepared
+ EnvironmentPrepared -> -- execute configurable hook scripts
+ do im $ "Executing preparation scripts"
+ mapM_ (safeSystem `flip` [ targetdir env ])
+ (splitWs $ eget env "preparescripts")
finished LibsInstalled
LibsInstalled -> -- Install additional packages
do installpkgs env
@@ -68,6 +73,11 @@
do safeSystem "mkcramfs" [(targetdir env) ++ "/opt/initrd",
(targetdir env) ++ "/boot/initrd.dfs"]
recursiveRemove SystemFS $ (targetdir env) ++ "/opt/initrd"
+ finished EnvironmentCleaned
+ EnvironmentCleaned -> -- execute configurable hook scripts
+ do im $ "Executing preparation scripts"
+ mapM_ (safeSystem `flip` [ targetdir env ])
+ (splitWs $ eget env "cleanupscripts")
finished RamdiskBuilt
RamdiskBuilt -> -- Install the bootloader
do (isoargs, blfunc) <- Bootloader.install env
--- dfsbuild.orig/dfsbuild-0.99.2/Utils.hs 2007-01-01 23:06:17.000000000 +0100
+++ dfsbuild/dfsbuild-0.99.2/Utils.hs 2007-01-03 15:33:00.000000000 +0100
@@ -30,10 +31,10 @@
marker :: String,
datestr :: String}
-data DFSState = Fresh | Initialized | Mirrored | Bootstrapped | Installed
- | LibsInstalled | DebsInstalled | CfgHandled | InitPrepped
+data DFSState = Fresh | Initialized | Mirrored | Bootstrapped | EnvironmentPrepared
+ | Installed | LibsInstalled | DebsInstalled | CfgHandled | InitPrepped
| RDPrepped
- | KernelsInstalled | RamdiskBuilt | BootloaderInstalled
+ | KernelsInstalled | EnvironmentCleaned | RamdiskBuilt | BootloaderInstalled
deriving (Eq, Show, Read, Ord)
im = infoM "dfs"
--- dfsbuild.orig/dfsbuild-0.99.2/dfs.cfg 2006-07-02 01:46:22.000000000 +0200
+++ dfsbuild/dfsbuild-0.99.2/dfs.cfg 2007-01-03 15:40:22.000000000 +0100
@@ -115,6 +115,12 @@
/var/log/dpkg.log
/var/log/bootstrap.log
+# Scripts that should be executed after bootstrapping and before package installation
+#preparescripts =
+
+# Scripts that should be executed after package installation and before iso generation
+#cleanupscripts =
+
######################################################################
# Arch settings: i386
######################################################################

51
hints/release-policy.txt Normal file
View file

@ -0,0 +1,51 @@
For a new live-CD follow steps 1a and 2a.
For a language update live-CD follow steps 1b and 2b.
0) manually update files:
- ntfs-3g debian package (from lenny)
1a) set current version
- cover/cover_[en|de].[odt|pdf]
- etc/defaults.d/dfs-cbox.conf (version setting)
1b) upgrade language files of an old live-cd
- rm -rf _builddir/
- mount -o loop old_live_cd.iso /mnt/ttt
- cp -a /mnt/ttt _builddir/target
- update all binary language files by issuing scripts/update_po_files.py
in the project's language branch
- copy all language files (*.mo) of the updated languages to
_builddir/target/usr/locale/....
- update the list of available languages in
_builddir/target/etc/cryptobox-server/cryptobox.conf
- update the version in _builddir/target/boot/grub/menu.lst
- update cover/conver_[en|de].[swx|pdf]
2a) build image
- 'scripts/cbox-build.sh release'
2b) build image and create signatures
- 'scripts/cbox-build.sh isoz'
- cd _builddir
- sha1sum ISO_FILE > ISO_FILE.sha1sum
- md5sum ISO_FILE > ISO_FILE.md5sum
3) release notes
- update website
- update CHANGELOG
4) upload to codecoop
- check the validity of your ssh-key in your codecoop user account
- type "scp $FILE $USERNAME@shell.codecoop.org:."
- upload a dummy file with the same name via upload-web-interface to codecoop
- ask Jan Kanzleiter <idfx_at_codecoop.org> to replace the dummy with the
scp-file and to manually set the filesize (otherwise: it is not displayed at all)
- upload the checksumfile created by "md5sum cryptobox_vY.X.iso >cryptobox_vY.X.iso.md5sum"
- add release notes and changelog
- upload cover_[en|de].pdf
5) release announcement
- http://codecoop.org
- http://distrowatch.com
- http://livedistro.org
- http://linuxlinks.com

7
hints/starting_uml.txt Normal file
View file

@ -0,0 +1,7 @@
# sample startup file for running the cryptobox in a user-mode-linux environment
#
# it does not work, as the dfsbuild-cd-image is not being recognized during boot
#
# just as a reminder ...
#
kernel/uml-kernel-2.6.12.3-cryptobox dfscd=/dev/ubd1 ubd1r=_builddir/cd1/image.iso ubd0=_builddir/cd1/image-working/opt/dfsruntime/initrd.dfs con=null con0=fd:0,fd:1

27
hints/trac-wiki.txt Normal file
View file

@ -0,0 +1,27 @@
some useful macros:
* [[TOC]] - at the beginning of the document
* [[AutoNav]] - below [[TOC]], followed by a line with "----"
* [[AddComment]] - at the end of the page (below "----")
* [[WikiInclude($PAGENAME)]] - include another wiki page
* [[redirect(wiki:$PAGENAME)]] - redirect to another page (useful to redirect to default lang)
* [[Image(file/trunk/cbox-tree.d/var/www/cryptobox-img/screenshots/$NAME)]] - beware: you may use "wiki" or "ticket" instead of "file" - very unusual syntax
* [[FootNote(Text)]] - creates a reference to a footnote - the list of footnotes is expanded by "[[FootNote]]"
special things:
* the first level heading ("= TEXT =") is considered as the page title - only lower level headings will be a part of the table of contents
* links like "CryptoBoxUser/de" are not recogniced - use "[wiki:CryptoBoxUser/de CryptoBoxUser]" instead
* for a deeper level of items or enumerations, you have to add two(!) additional spaces in front of the symbol ("*" or "1.") - this is obviously strange ...
default page layout:
[[TOC]]
[[AutoNav]]
----
= Title =
== Heading ... ==
...
----
== Comments ==
[[AddComment]]