diff options
-rw-r--r-- | AUTHORS | 4 | ||||
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | Makefile | 48 | ||||
-rw-r--r-- | TODO | 10 | ||||
-rw-r--r-- | TODO-1.0 | 4 | ||||
-rw-r--r-- | debian/changelog | 8 | ||||
-rw-r--r-- | debian/control | 10 | ||||
-rw-r--r-- | debian/docs | 1 | ||||
-rwxr-xr-x | debian/rules | 2 | ||||
-rw-r--r-- | doc/make-live.8 | 175 | ||||
-rw-r--r-- | doc/make-live.conf.8 | 89 | ||||
-rw-r--r-- | make-live.8 | 192 | ||||
-rw-r--r-- | make-live.conf | 90 | ||||
-rw-r--r-- | make-live.conf.8 | 119 | ||||
-rwxr-xr-x | make-live.sh | 287 | ||||
-rw-r--r-- | scripts/00-defaults.sh | 130 | ||||
-rw-r--r-- | scripts/00-init.sh | 18 | ||||
-rw-r--r-- | scripts/01-bootstrap.sh | 43 | ||||
-rw-r--r-- | scripts/01-chroot.sh | 185 | ||||
-rw-r--r-- | scripts/02-iso.sh | 46 | ||||
-rw-r--r-- | scripts/02-net.sh | 40 | ||||
-rw-r--r-- | src/config | 73 | ||||
-rw-r--r-- | src/lists/gnome (renamed from lists/gnome) | 0 | ||||
-rw-r--r-- | src/lists/gnome-core (renamed from lists/gnome-core) | 0 | ||||
-rw-r--r-- | src/lists/gnome-full (renamed from lists/gnome-full) | 0 | ||||
-rw-r--r-- | src/lists/kde (renamed from lists/kde) | 0 | ||||
-rw-r--r-- | src/lists/kde-core (renamed from lists/kde-core) | 0 | ||||
-rw-r--r-- | src/lists/kde-core-i18n (renamed from lists/kde-core-i18n) | 0 | ||||
-rw-r--r-- | src/lists/kde-extra (renamed from lists/kde-extra) | 0 | ||||
-rw-r--r-- | src/lists/kde-extra-i18n (renamed from lists/kde-extra-i18n) | 0 | ||||
-rw-r--r-- | src/lists/kde-full (renamed from lists/kde-full) | 0 | ||||
-rw-r--r-- | src/lists/kde-full-i18n (renamed from lists/kde-full-i18n) | 0 | ||||
-rw-r--r-- | src/lists/kde-i18n (renamed from lists/kde-i18n) | 0 | ||||
-rw-r--r-- | src/lists/standard-i18n (renamed from lists/standard-i18n) | 0 | ||||
-rw-r--r-- | src/lists/x11 (renamed from lists/x11) | 0 | ||||
-rw-r--r-- | src/lists/x11-core (renamed from lists/x11-core) | 0 | ||||
-rw-r--r-- | src/lists/xfce (renamed from lists/xfce) | 0 | ||||
-rwxr-xr-x | src/main.sh | 321 | ||||
-rw-r--r-- | src/scripts/01init.sh | 20 | ||||
-rw-r--r-- | src/scripts/02defaults.sh | 171 | ||||
-rw-r--r-- | src/scripts/11bootstrap.sh | 36 | ||||
-rw-r--r-- | src/scripts/12patch.sh (renamed from scripts/01-patch.sh) | 36 | ||||
-rw-r--r-- | src/scripts/13chroot.sh | 116 | ||||
-rw-r--r-- | src/scripts/21image.sh (renamed from scripts/02-image.sh) | 110 | ||||
-rw-r--r-- | src/scripts/22iso.sh | 36 | ||||
-rw-r--r-- | src/scripts/23net.sh | 55 |
46 files changed, 1243 insertions, 1244 deletions
@@ -1,9 +1,9 @@ -Main authors +Main Authors: * Daniel Baumann <daniel@debian.org> * Marco Amadori <marco.amadori@gmail.com> -Patches (alphabetical order) +Patches (alphabetical order): * Frederic Lehobey <Frederic.Lehobey@free.fr> * Jason D. Clinton <me@jasonclinton.com> @@ -1,3 +1,15 @@ +2006-08-22 Daniel Baumann <daniel@debian.org> + + * Reorganised sources. + * Added staging support. + * Cleaned up parameter names. + * testing is now supported, switched default distribution to etch. + +2006-08-02 Marco Amadori <marco.amadori@gmail.com> + + * Rewrote netboot support. + * Added support for pure directory rootfs images. + 2006-07-28 Daniel Baumann <daniel@debian.org> * Added DEBIAN_FRONTEND to chroots(), now completely non-interactive. @@ -1,36 +1,42 @@ # Makefile -all: install +all: install install: - # Install main script - install -D -m 755 make-live.sh $(DESTDIR)/usr/sbin/make-live - install -d -m 755 $(DESTDIR)/usr/share/make-live + # Installing make-live + @# Install main script + install -D -m 0755 src/main.sh $(DESTDIR)/usr/sbin/make-live - # Install package lists - cp -a lists $(DESTDIR)/usr/share/make-live + @# Install configuration file + install -D -m 0644 src/config $(DESTDIR)/etc/make-live.conf - # Install sub scripts - cp -a scripts $(DESTDIR)/usr/share/make-live + @# Install package lists + install -d -m 0755 $(DESTDIR)/usr/share/make-live/lists + install -m 0644 src/lists/* $(DESTDIR)/usr/share/make-live/lists - # Install configuration templates - cp -a templates $(DESTDIR)/usr/share/make-live + @# Install sub scripts + install -d -m 0755 $(DESTDIR)/usr/share/make-live/scripts + install -m 0755 src/scripts/*.sh $(DESTDIR)/usr/share/make-live/scripts - # Install manpages - install -d -m 755 $(DESTDIR)/usr/share/man/man8 - cp -a make-live.8 make-live.conf.8 $(DESTDIR)/usr/share/man/man8 + @# Install templates + cp -r templates $(DESTDIR)/usr/share/make-live - # Install configuration file - install -D -m 644 make-live.conf $(DESTDIR)/etc/make-live.conf + @# Install manpages + install -d -m 0755 $(DESTDIR)/usr/share/man/man8 + install -m 0644 doc/*.8 $(DESTDIR)/usr/share/man/man8 uninstall: - # Remove main script - rm -rf $(DESTDIR)/usr/sbin/make-live + # Uninstalling make-live + @# Remove main script + rm -f $(DESTDIR)/usr/sbin/make-live - # Remove shared data - rm -rf $(DESTDIR)/usr/share/make-live + @# Remove configuration file + rm -f $(DESTDIR)/etc/make-live.conf - # Remove configuration file - rm -f $(DESTDIR)/etc/make-live.conf + @# Remove shared data + rm -rf $(DESTDIR)/usr/share/make-live + + @# Remove manpages + rm -f $(DESTDIR)/usr/share/man/man8/make-live.* reinstall: uninstall install @@ -0,0 +1,10 @@ +Todo: + + * logfile support + * output hiding + * multiple other repositories + * d-i/g-i integration + * documentation + * source images + * investigate about /proc + * fixing sources.list before image generation. diff --git a/TODO-1.0 b/TODO-1.0 deleted file mode 100644 index e0e392e..0000000 --- a/TODO-1.0 +++ /dev/null @@ -1,4 +0,0 @@ -logfile and output hiding -multiple other repositories -d-i/g-i -documentation diff --git a/debian/changelog b/debian/changelog index fe994d0..83d719c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +live-package (0.99.3-1) unstable; urgency=low + + * New upstream release: + - fixed configuration file handling (Closes: #384598). + * Update long descriptiong (Closes: #382473). + + -- Daniel Baumann <daniel@debian.org> Mon, 21 Aug 2006 00:00:00 +0200 + live-package (0.99.2-1) unstable; urgency=low * New upstream release. diff --git a/debian/control b/debian/control index 5859b97..57d0de7 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,11 @@ Standards-Version: 3.7.2 Package: live-package Architecture: all -Depends: cdebootstrap (>= 0.3.10) | debootstrap (>= 3.3), dpkg-dev, genext2fs, mkisofs, squashfs-tools +Depends: cdebootstrap (>= 0.3.10), dpkg-dev, genext2fs, mkisofs, squashfs-tools Provides: make-live -Description: Debian Live framework - The Debian Live framework lets you automagically create live system images. +Description: utility to build Debian Live systems + The Debian Live framework provides all necessary tools to create Debian Live + systems. make-live is the utility used to automagically build CD/DVD images and + netboot tarballs. + . + Homepage: <http://live.debian.net/> diff --git a/debian/docs b/debian/docs index 62deb04..7d96d4e 100644 --- a/debian/docs +++ b/debian/docs @@ -1 +1,2 @@ AUTHORS +TODO diff --git a/debian/rules b/debian/rules index e47f520..1517afe 100755 --- a/debian/rules +++ b/debian/rules @@ -3,7 +3,7 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -upstream: +upstream: # Needs svn cd .. && svn co svn://live.debian.net/live-package || exit 0 find . -type d -name .svn -exec rm -rf {} \; || exit 0 diff --git a/doc/make-live.8 b/doc/make-live.8 new file mode 100644 index 0000000..a1496cd --- /dev/null +++ b/doc/make-live.8 @@ -0,0 +1,175 @@ +.TH MAKE-LIVE 8 "Mon, 22 Aug 2006" "0.99.3" "Debian Live framework" + +.SH NAME +make-live \- utility to build Debian Live systems + +.SH SYNOPSIS +.B make-live +.RB [\| \-a \||\| \-\-architecture +.IR ARCHITECTURE \|] +.RB [\| \-b \||\| \-\-bootappend +.IR KERNEL_PARAMETER \||\| \|"KERNEL_PARAMETERS\|" \|] +.RB [\| \-\-config +.IR FILE \|] +.RB [\| \-c \||\| \-\-chroot +.IR DIRECTORY \|] +.RB [\| \-d \||\| \-\-distribution +.IR DISTRIBUTION \|] +.RB [\| \-\-filesystem +.IR FILESYSTEM \|] +.RB [\| \-f \||\| \-\-flavour +.IR BOOTSTRAP_FLAVOUR \|] +.RB [\| \-\-hook +.IR COMMAND \||\| \|"COMMANDS\|" \|] +.RB [\| \-\-include-chroot +.IR FILE \||\| DIRECTORY \|] +.RB [\| \-\-include-image +.IR FILE \||\| DIRECTORY \|] +.RB [\| \-k \||\| \-\-kernel +.IR KERNEL_FLAVOUR \|] +.RB [\| \-m \||\| \-\-mirror +.IR URL \|] +.RB [\| \-\-mirror-security +.IR URL \|] +.RB [\| \-p \||\| \-\-packages +.IR PACKAGE \||\| \|"PACKAGES\|" \|] +.RB [\| \-\-package-list +.IR FILE \|] +.RB [\| \-\-proxy-ftp +.IR URL \|] +.RB [\| \-\-proxy-http +.IR URL \|] +.RB [\| \-r \||\| \-\-root +.IR DIRECTORY \|] +.RB [\| \-s \||\| \-\-sections +.IR SECTION \||\| \|"SECTIONS\|" \|] +.RB [\| \-\-server-address +.IR HOSTNAME \||\| IP \|] +.RB [\| \-\-server-path +.IR DIRECTORY \|] +.RB [\| \-\-templates +.IR DIRECTORY \|] +.RB [\| \-t \||\| \-\-type +.IR TYPE \|] +.RI [\| LIST \|] +.PP +.B make-live +.RB \-h \||\| \-\-help +.br +.B make-live +.RB \-u \||\| \-\-usage +.br +.B make-live +.RB \-v \||\| \-\-version + +.SH DESCRIPTION + The Debian Live framework provides all necessary tools to create Debian Live systems. make-live is the utility used to automagically build CD/DVD images and netboot tarballs. + +.SH OPTIONS +.TP +.BI "\-a, \-\-architecture " ARCHITECTURE +build an image for another architecture than the autodetected one. This is usefull for e.g. building i386 images on an amd64 machine. Instead of this flag, the environment variable LIVE_ARCHITECTURE can be used (Default: `dpkg-architecture -qDEB_BUILD_ARCH`). +.TP +.BI "\-b, \-\-bootappend " KERNEL_PARAMETER \||\| \|"KERNEL_PARAMETERS\|" +passes kernel parameters to the bootloader, e.g. 'quiet' or 'vga=792' etc. Instead of this flag, the environment variable LIVE_BOOTAPPEND can be used (Default: empty). +.TP +.BI "\-\-config " FILE +uses another configuration file in addition to the default one. Settings in the additional configuration file do overwrite the settings from /etc/make-live.conf. Instead of this flag, the environment variable LIVE_CONFIG can be used (Default: /etc/make-live.conf). +.TP +.BI "\-c, \-\-chroot " DIRECTORY +specifies the chroot directory. Instead of this flag, the environment variable LIVE_CHROOT (Default: $LIVE_ROOT/chroot"). +.TP +.BI "\-d, \-\-distribution " DISTRIBUTION +specifies the distribution to be used. Allowed values are distributions names like unstable and testing, or codenames like sid and etch. Instead of this flag, the environment variable LIVE_DISTRIBUTION can be used (Default: sid). +.TP +.BI "\-\-filesystem " FILESYSTEM +Specifies the filesystem for the compressed image. At the moment, ext2, plain and squashfs are supported. Instead of this flag, the environment variable LIVE_FILESYSTEM can be used (Default: squashfs for iso, plain for net). +.TP +.BI "\-f, \-\-flavour " BOOTSTRAP_FLAVOUR +specifies the bootstrap flavour. This can be either standard or minimal. Instead of this flag, the environment variable LIVE_FLAVOUR can be used (Default: standard). +.TP +.BI "\-\-hook " COMMANDS +specifies one or more commands to be executed in the chroot. Instead of this flag, the environment variable LIVE_HOOK can be used (Default: empty). +.TP +.BI "\-\-include-chroot " FILE \||\| DIRECTORY +specifies a file or a directory to be included into the chroot. Instead of this flag, the environment variable LIVE_INCLUDE_CHROOT can be used (Default: empty). +.TP +.BI "\-\-include-image " FILE \||\| DIRECTORY +specifies a file or directory which will be copied inside the image. Instead of this flag, the environment variable LIVE_INCLUDE_IMAGE can be used (Default: empty). +.TP +.BI "\-k, \-\-kernel " KERNEL_FLAVOUR +specifies the kernel image flavour. Instead of this flag, the environment variable LIVE_KERNEL can be used (Default: auto-detected). +.TP +.BI "\-m, \-\-mirror " URL +specifies the debian mirror where make-live will download the packages from. Instead of this flag, the environment variable LIVE_MIRROR can be used (Default: http://ftp.debian.org/debian). +.TP +.BI "\-\-mirror-security" URL +specifies the debian security mirror where make-live will download the packages from. Instead of this flag, the environment variable LIVE_MIRROR_SECURITY can be used (Default: http://security.debian.org/debian). +.TP +.BI "\-p, \-\-packages " PACKAGE \||\| \|"PACKAGES\|" +specifies a list of packages to install into the chroot. Instead of this flag, the environment variable LIVE_PACKAGES can be used (Default: empty). +.TP +.BI "\-\-package-list " FILE +specifies an external package list file, one package for each line. It overrides list option. Instead of this flag, the environment variable LIVE_PACKAGE_LIST can be used (Default: empty). +.TP +.BI "\-\-proxy-ftp " URL +specifies the value of ftp_proxy inside the chrooted environment. Instead of this flag, the environment variable LIVE_PROXY_FTP can be used (Default: empty). +.TP +.BI "\-\-proxy-http " URL +specifies the value of http_proxy inside the chrooted environment. Instead of this flag, the environment variable LIVE_PROXY_HTTP can be used (Default: empty). +.TP +.BI "\-r, \-\-root " DIRECTORY +specifies the root directory where the images/tarballs are built. Instead of this flag, the environment variable LIVE_ROOT can be used (Default: `pwd`/debian-live). +.TP +.BI "\-s, \-\-sections " SECTIONS +specifies the debian sections. Instead of this flag, the environment variable LIVE_SECTIONS can be used (Default: main). +.TP +.BI "\-\-server-address " HOSTNAME \||\| IP +specifies the server address you want to use for netboot. Instead of this flag, the environment variable LIVE_SERVER_ADDRESS can be used (Default: 192.168.1.1). +.TP +.BI "\-\-server-path" DIRECTORY +specifies the directory on the server, where you have unpacked the netboot image. Instead of this flag, the environment variable LIVE_SERVER_PATH can be used (Default: /srv/debian-live). +.TP +.BI "\-\-templates " DIRECTORY +specifies a templates directory to use instead of the default one. Instead of this flag, the environment variable LIVE_TEMPLATES can be used (Default: /usr/share/make-live/templates). +.TP +.BI "\-t, \-\-type " TYPE +specifies the image type to generate. Currently, only iso and net are available. Instead of this flag, the environment variable LIVE_TYPE can be used (Default: iso). +.TP +.B \-h, \-\-help +display help and exit +.TP +.B \-u, \-\-usage +show usage and exit +.TP +.B \-v, \-\-version +output version information and exit + +.SH LISTS +Every list does already include the Debian standard package selection. +.TP +.B gnome | gnome-core | gnome-full +include GNOME. +.TP +.B kde | kde-core | kde-full | kde-extra +include KDE. +.TP +.B x11 | x11-core +include X-Window-System only. +.TP +.B xfce +include Xfce. + +.SH BUGS +.B make-live +works fully on amd64 and i386, partially on alpha, hppa, ia64, mips, mipsel, powerpc, s390 and sparc. Other architectures, such as arm and m68k, as well as non-linux ports of Debian, like hurd-i386, are currently not supported. + +.SH HOMEPAGE +Debian Live project <http://live.debian.net/> + +.SH SEE ALSO +.BR make-live.conf(8) + +.SH AUTHOR +make-live was written by Daniel Baumann <daniel@debian.org> and Marco Amadori +<marco.amadori@gmail.com>. diff --git a/doc/make-live.conf.8 b/doc/make-live.conf.8 new file mode 100644 index 0000000..0a8aa9e --- /dev/null +++ b/doc/make-live.conf.8 @@ -0,0 +1,89 @@ +.TH MAKE-LIVE.CONF 8 "Mon, 22 Aug 2006" "0.99.3" "Debian Live framework" + +.SH NAME +make-live.conf \- configuration file for make-live(8) + +.SH DESCRIPTION +The Debian Live framework provides all necessary tools to create Debian Live systems. make-live is the utility used to automagically build CD/DVD images and netboot tarballs. + +.SH ENVIRONMENT +.TP +.B LIVE_ARCHITECTURE +build an image for another architecture than the autodetected one. This is usefull for e.g. building i386 images on an amd64 machine. Instead of this environment variable, the flag \-a, \-\-architecture can be used (Default: `dpkg-architecture -qDEB_BUILD_ARCH`). +.TP +.B LIVE_BOOTAPPEND +specifies additional bootparameters to the kernel (Default: none). +.TP +.B LIVE_CONFIG +uses another configuration file in addition to the default one, if existing, in /etc/make-live.conf. Settings in the additional configuration file do overwrite the settings from /etc/make-live.conf. Instead of this variable, the flag \-c or \-\-config can be used (Default: empty). +.TP +.B LIVE_DISTRIBUTION +specifies the distribution to be used. Allowed values are all Debian distributions (oldstable, stable, testing, unstable), although only unstable (default) is possible for now. Instead of this environment variable, the flag \-d, \-\-distribution can be used (Default: unstable). +.TP +.B LIVE_FLAVOUR +specifies the bootstrap flavour. This can be either standard (default) or minimal. Instead of this environment variable, the flag \-f, \-\-flavour can be used. +.TP +.B LIVE_FILESYSTEM +specifies the filesystem to be used for the root filesystem image +(Default: squashfs). +.TP +.B LIVE_FTPPROXY +specifies the value of ftp_proxy inside the chrooted environment. Instead of this environment variable, the flag \-\-ftp-proxy can be used (Default: empty). +.TP +.B LIVE_HOOK +specifies one or more commands to be executed in the chroot. Instead of this environment variable, the flag \-\-hook can be used (Default: empty). +.TP +.B LIVE_INCLUDE_ROOT +specifies a file or a directory to be included into the chroot. Instead of this environment variable. the flag \-\-include-root can be used (Default: empty). +.TP +.B LIVE_KERNEL +specifies the kernel image flavour. Instead of this environment variable, the flag \-k, \-\-kernel can be used. +.TP +.B LIVE_MIRROR +specifies the debian mirror where make-live will download the packages from. Instead of this environment variable, the flag \-m, \-\-mirror LIVE_MIRROR can be used (Default: http://ftp.debian.org/debian). +.B LIVE_MIRROR_KEY +specifies the archive signing key. Instead of this environment variable, the flav \-\-mirror-key can be used (Default: http://ftp-master.debian.org/ziyi_key_2006.asc). +.TP +.B LIVE_PACKAGES +specifies a list of packages to install into the chroot. Instead of this environment variable, the flag \-p, \-\-packakges can be used (Default: empty). +.TP +.B LIVE_PACKAGE_LIST +specifies a file which contains a list of packages to install, separated by +newlines, if LIVE_PACKAGE_LIST exists, default LIST option will be ignored. +.TP +.B LIVE_PROXY_FTP +specifies the value of ftp_proxy inside the chrooted environment. Instead of this environment variable, the flag \-\-ftp-proxy can be used (Default: empty). +.TP +.B LIVE_PROXY_HTTP +specifies the value of http_proxy inside the chrooted environment. Instead of this environment variable, the flag \-\-http-proxy can be used (Default: empty). +.TP +.B LIVE_ROOT +specifies the root directory where the images/tarballs are built. Instead of this environment variable, the flag \-r or \-\-root can bse used (Default: `pwd`/debian-live). +.B LIVE_SECTIONS +specifies the debian sections. Instead of this environment variable, the flag \-s, \-\-sections can be used (Default: main). +.B LIVE_SERVER_ADDRESS +specifies the IP address or hostname of the netboot server (Default: none). +.TP +.B LIVE_SERVER_PATH +specifies the directory of the chroot on the netboot server (Default: none). +.TP +.B LIVE_TEMPLATES +specifies a directory to be used for templates instead of the default one. +(Default: "/usr/share/make-live/templates") +.TP +.B LIVE_TYPE +specifies the image type. + +.SH BUGS +.B make-live +works fully on amd64 and i386, partially on alpha, hppa, ia64, mips, mipsel, powerpc, s390 and sparc. Other architectures, such as arm and m68k, as well as non-linux ports of Debian, like hurd-i386, are currently not supported. + +.SH HOMEPAGE +Debian Live project <http://live.debian.net/> + +.SH SEE ALSO +.BR make-live(8) + +.SH AUTHOR +make-live was written by Daniel Baumann <daniel@debian.org> and Marco Amadori +<marco.amadori@gmail.com>. diff --git a/make-live.8 b/make-live.8 deleted file mode 100644 index fd8df5d..0000000 --- a/make-live.8 +++ /dev/null @@ -1,192 +0,0 @@ -.TH MAKE-LIVE 8 "Jul, 27 2006" "0.99" "Debian Live framework" - -.SH NAME -make-live \- An utility for building Debian Live systems. - -.SH SYNOPSIS -.B make-live -.RB [\| \-a \||\| \-\-architecture -.IR ARCHITECTURE \|] -.RB [\| \-c \||\| \-\-conffile -.IR FILE \|] -.RB [\| \-\-clone -.IR DIRECTORY \|] -.RB [\| \-d \||\| \-\-distribution -.IR DISTRIBUTION \|] -.BR [\| \-\-debug \|] -.RB [\| \-f \||\| \-\-filesystem -.IR FILESYSTEM \|] -.RB [\| \-\-flavour -.IR FLAVOUR \|] -.RB [\| \-\-hook -.RI \|" COMMAND .\|.\|.\|"\|] -.RB [\| \-\-include\-image -.IR FILE \||\| DIRECTORY \|] -.RB [\| \-\-include\-rootfs -.IR FILE \||\| DIRECTORY \|] -.BR [\| \-\-interactive \|] -.RB [\| \-\-linux\-image -.IR FLAVOUR \|] -.RB [\| \-\-logfile -.IR FILE \|] -.RB [\| \-p \||\| \-\-package-list -.IR FILE \|] -.RB [\| \-\-preseed -.IR FILE \|] -.RB [\| \-\-rootfs -.IR DIRECTORY \|] -.RB [\| \-s \||\| \-\-section -.RI \|" SECTION \|.\|.\|.\|"\|] -.RB [\| \-\-splashy -.RI [\| THEME \|]\|] -.RB [\| \-t \||\| \-\-type -.IR TYPE \|] -.RB [\| \-\-templates -.IR DIRECTORY \|] -.RB [\| \-\-verbose \|] -.RI [\| LIST \|] -.PP -.B make-live -.RB [\| \-h \||\| \-\-help \|] -.br -.B make-live -.RB [\| \-u \||\| \-\-usage \|] -.br -.B make-live -.RB [\| \-v \||\| \-\-version \|] - -.SH DESCRIPTION -The Debian Live framework lets you automagically create live system images. -.PP - -.SH OPTIONS -.TP -.BI "\-a, \-\-architecture " ARCHITECTURE -Build an image for another architecture than the autodetected one. This is -usefull for e.g. building i386 images on an amd64 machine. Instead of this flag, -the environment variable LIVE_ARCHITECTURE can be used. -.TP -.BI "\-c, \-\-conffile " FILE -Uses another configuration file in addition to the default one, if existing, in -/etc/make-live.conf. Settings in the additional configuration file do overwrite -the settings from /etc/make-live.conf. Instead of this flag, the environment -varibale LIVE_CONFFILE can be used. -.TP -.BI "\-\-clone " DIRECTORY -Clones the package selection and configuration from a given root directory. It -will output the settings to $LIVE_ROOT/preseed.cloned and $LIVE_ROOT/plist.clone -for easy reuse with \-\-preseed and \-\-package-list. Instead of this flag, the -environment variable LIVE_CLONE can be used. -.TP -.BI "\-d, \-\-distribution " DISTRIBUTION -Specifies the distribution to be used. Allowed values are all Debian -distributions (oldstable, stable, testing, unstable), although only unstable -(default) is possible for now. Instead of this flag, the environment variable -LIVE_DISTRIBUTION can be used. -.TP -.B \-\-debug -Enables debut output of make-live itself (this includes \-\-verbose too). -Instead of this environment variable, LIVE_DEBUG can be used. -.TP -.BI "\-f, \-\-filesystem " FILESYSTEM -Specifies the filesystem for the compressed image. At the moment, only squashfs -(default) and ext2 are allowed values. Instead of this flag, the environment -variable LIVE_FILESYSTEM can be used. -.TP -.BI "\-\-flavour " FLAVOUR -Specifies the bootstrap flavour. This can be either standard (default) or -minimal. Instead of this flag, the environment variable LIVE_FLAVOUR can be -used. -.TP -.\" FIXME -.BI "\-\-hook " COMMAND "\|.\|.\|.\|" -Specifies a command which will be executed at the end of the chroot setup and -before the mastering of the image. Instead of this flag, the environment -variable LIVE_HOOK can be used. -.TP -.BI "\-\-include\-image " FILE \||\| DIRECTORY -specifies a file or directory which will be copied inside the image. Can be also -set through LIVE_INCLUDE_IMAGE environment variable. -.TP -.BI "\-\-include\-rootfs " FILE \||\| DIRECTORY -specifies a file or directory which will be copied inside the root filesystem of -the image. Can be also set through the LIVE_INCLUDE_ROOTFS environment variable. -.TP -.BI \-\-interactive -lets you interactively customize the package selection. -.TP -.BI "\-\-linux\-image " FLAVOUR -.TP -.BI "\-p, \-\-package-list " FILE -specifies a package list file, one package for each line. It overrides list option. -.TP -.BI "\-\-logfile " FILE -specifies the location of the logfile. It can be set through LIVE_LOGFILE, -default is \$LIVE_ROOT/make-live.log -.TP -.BI "\-\-preseed " FILE -clone the packages selection and configuration from the provided -root directory. -.TP -.BI "\-\-rootfs " DIRECTORY -skip all phases of rootfs generation and just install casper and the -kernel in the specified root directory (must be a debian). -.TP -.BI "\-s, \-\-section " SECTION "\|.\|.\|.\|" -specifies which sections are going to be availble for the package selection inside the chroot (Default: main). Can be set to every combination of "main contrib non-free", also through LIVE_SECTIONS. -.TP -.BI "\-\-splashy [\|" THEME \|] -specifies that splashy should be installed and included in initamfs, an optional -official THEME could be selected or an exernal theme could be installed, in the -second case the .tar.gz theme should be passed without extension and must be in -the current directory. Can be also set through LIVE_SPLASHY and -LIVE_SPLASHY_THEME environment variables. -.TP -.BI "\-t, \-\-type " TYPE -specifies the image type to generate. Currently, only iso and net are available. -.TP -.BI "\-\-templates " DIRECTORY -specifies a templates directory to use instead of the default one. -.TP -.B \-\-verbose -providing debug information for third-party tools. -.TP -.B \-h, \-\-help -display this help and exit. -.TP -.B \-u, \-\-usage -show usage and exit. -.TP -.B \-v, \-\-version -output version information and exit. - -.SH LISTS -Every list does already include the Debian standard package selection. -.TP -.B gnome | gnome-core | gnome-full -include GNOME. -.TP -.B kde | kde-core | kde-full | kde-extra -include KDE. -.TP -.B x11 | x11-core -include X-Window-System only. -.TP -.B xfce -include Xfce. - -.SH BUGS -.B make-live -works fully on amd64 and i386, partially on alpha, hppa, ia64, mips, mipsel, -powerpc, s390 and sparc. Other architectures, such as arm and m68k, as well as -non-linux ports of Debian, like hurd-i386, are currently not supported. - -.SH HOMEPAGE -Debian Live project <http://live.debian.net/> - -.SH SEE ALSO -.BR make-live.conf (8). - -.SH AUTHOR -make-live was written by Daniel Baumann <daniel@debian.org> and Marco Amadori -<marco.amadori@gmail.com>. diff --git a/make-live.conf b/make-live.conf deleted file mode 100644 index 9b6d82b..0000000 --- a/make-live.conf +++ /dev/null @@ -1,90 +0,0 @@ -# /etc/default/make-live: configuration file for make-live(8) - -# Where do we want to build our images? -# Default: `pwd`/live -#LIVE_ROOT="`pwd`/live" - -# Which Debian mirror do we use? -# Default: http://ftp.debian.org/debian -#LIVE_MIRROR="http://ftp.debian.org/debian" - -# Where is the public key of the mirror? -# Default: none -LIVE_MIRROR_KEY="http://ftp-master.debian.org/ziyi_key_2006.asc" - -# Which other repository do we want to add? -# Default: none -#LIVE_REPOSITORY="http://live.debian.net/debian unstable main" - -# Where is the public key of the other repository? -# Default: none -#LIVE_REPOSITORY_KEY="http://ftp-master.debian-unofficial.org/key_2006.asc" - -# Which FTP proxy do we want to use inside the chroot? -# Default: none -#LIVE_FTPPROXY="" - -# Which HTTP proxy do we want to use inside the chroot? -# Default: none -#LIVE_HTTPPROXY="" - -# What distribution are we going to use? -# Default: unstable -#LIVE_DISTRIBUTION="unstable" - -# What sections are we going to use? -# Default: main -#LIVE_SECTIONS="main contrib non-free" - -# What packages do we want to install in *addition* to the flavour? -# Default: none -LIVE_PACKAGES="less locales screen sudo vim" - -# What boot parameters do we want to give to the kernel? -# Default: none -#LIVE_BOOTAPPEND="" - -# What IP address or hostname is assigned to the netboot server? -# Default: none -LIVE_SERVER_ADDRESS="192.168.1.1" - -# Where is the chroot on the netboot server? -# Default: none -LIVE_SERVER_PATH="/srv/debian-live/chroot" - -# Which filesystem should be used for the rootfs image (squashfs/ext2)? -# Default: squashfs -#LIVE_FILESYSTEM="squashfs" - -# Which command should be executed in the chroot before mastering the image? -# Default: none -#LIVE_HOOK="" - -# Which file or directory should be copied into the rootfs? -# Default: none -#LIVE_INCLUDE_ROOTFS="" - -# Which file or directory should be copied into the image? -# Default: none -#LIVE_INCLUDE_IMAGE="" - -# Which preseed file should be used for configuring packages ? -# Default: none -#LIVE_PRESEED="" - -# Does splashy should be installed and configured for live system? -# Default: no -#LIVE_SPLASHY="" -#LIVE_SPLASHY_THEME="" - -# Which architecture should we install for ? -# Default: auto detected -#LIVE_ARCHITECTURE="" - -# Which file contains package list we would like to use for install ? -# Default: LIST option specified as last argument in command line -#LIVE_PACKAGE_LIST="" - -# Which directory should be used for templates ? -# Default: "/usr/share/make-live/templates" -#LIVE_TEMPLATES="" diff --git a/make-live.conf.8 b/make-live.conf.8 deleted file mode 100644 index b499727..0000000 --- a/make-live.conf.8 +++ /dev/null @@ -1,119 +0,0 @@ -.TH MAKE-LIVE.CONF 8 "Jul, 17 2006 "0.99" "make-live configuration" - -.SH NAME -make-live.conf \- make-live configuration file. - -.SH DESCRIPTION -The Debian Live framework lets you automagically create live system images. -.PP - -.SH ENVIRONMENT -Note that environment variables are overwritten, if they are set in the -configuration file at /etc/make-live.conf. -.TP -.B LIVE_ARCHITECTURE -specifies the build root (Default: `pwd`/live). -.TP -.B LIVE_BOOTAPPEND -specifies additional bootparameters to the kernel (Default: none). -.TP -.B LIVE_CONFFILE -specifies alternative configuration file. -.TP -.B LIVE_CLONE -.TP -.B LIVE_DISTRIBUTION -specifies which distribution will be used (Default: unstable). -.TP -.B LIVE_DEBUG -enables debug output. -.TP -.B LIVE_FILESYSTEM -specifies the filesystem to be used for the root filesystem image -(Default: squashfs). -.TP -.B LIVE_FLAVOUR -specifies the bootstrap flavour, either standard (default) or minimal. -.TP -.B LIVE_FTPPROXY -specifies your ftp_proxy you want to use inside the chroot (Default: none). -.TP -.B LIVE_HOOK -specifies a command to be executed inside the chroot before mastering the -image (Default: none). -.TP -.B LIVE_HTTPPROXY -specifies your http_proxy you want to use inside the chroot (Default: none). -.TP -.B LIVE_INCLUDE_IMAGE -specifies a file or directory which should be copied into the image -(Default: none). -.TP -.B LIVE_INCLUDE_ROOTFS -specifies a file or directory which should be copied into the to root filesystem -(Default: none). -.TP -.B LIVE_LINUX_FLAVOUR -specifies the linux-image flavour. -.TP -.B LIVE_LOGFILE -specifies the location of the logfile (Default: $LIVE_ROOT/make-live.log). -.TP -.B LIVE_MIRROR -specifies the used Debian mirror (Default: http://ftp.debian.org/debian). -.TP -.B LIVE_MIRROR_KEY -specifies the public key of the used Debian mirror (Default: none). -.TP -.B LIVE_PACKAGE_LIST -specifies a file which contains a list of packages to install, separated by -newlines, if LIVE_PACKAGE_LIST exists, default LIST option will be ignored. -.TP -.B LIVE_PACKAGES -specifies additional packages to install (Default: none). -.TP -.B LIVE_PRESEED -specifies a preseed file useful for configuring packages -(Default: none). -.TP -.B LIVE_REPOSITORY -specifies another repository used (Default: none). -.TP -.B LIVE_REPOSITORY_KEY -speficies the public key of the other repository (Default: none). -.TP -.B LIVE_SECTIONS -specifies which sections will be available (Default: main). -.TP -.B LIVE_SERVER_ADDRESS -specifies the IP address or hostname of the netboot server (Default: none). -.TP -.B LIVE_SERVER_PATH -specifies the directory of the chroot on the netboot server (Default: none). -.TP -.B LIVE_SPLASHY -specifies that splashy should be installed and initramfs patched -(Default: no). -.TP -.B LIVE_SPLASHY_THEME -if LIVE_SPLASHY exists this could be used to select a theme as the default -splashy theme, could also install external .tar.gz splashy themes specified -with file name without extension and in the current directory. -(Default: none). -.TP -.B LIVE_TEMPLATES -specifies a directory to be used for templates instead of the default one. -(Default: "/usr/share/make-live/templates") - -.SH BUGS -.B make-live -works fully on amd64 and i386, partially on alpha, hppa, ia64, mips, mipsel, -powerpc, s390 and sparc. Other architectures, such as arm and m68k, as well as -non-linux ports of Debian, like hurd-i386, are currently not supported. - -.SH HOMEPAGE -Debian Live project <http://live.debian.net/> - -.SH AUTHOR -make-live was written by Daniel Baumann <daniel@debian.org> and Marco Amadori -<marco.amadori@gmail.com>. diff --git a/make-live.sh b/make-live.sh deleted file mode 100755 index fb3349d..0000000 --- a/make-live.sh +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/sh - -# make-live - An utility for building Debian Live systems. -# -# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> -# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -set -e - -PROGRAM="`basename ${0}`" -VERSION="0.99" - -# Source default configuration -if [ -r /etc/make-live.conf ] -then - . /etc/make-live.conf -fi - -# Source alternate configuration -if [ ! -z "${LIVE_CONFFILE}" ] -then - if [ -r "${LIVE_CONFFILE}" ] - then - . "${LIVE_CONFFILE}" - else - echo "W: could not read ${LIVE_CONFFILE}, using defaults." - fi -fi - -# Source scriptlets -for SCRIPT in /usr/share/make-live/scripts/*.sh -do - . "${SCRIPT}" -done - -Help () -{ - echo "make-live - An utility for building Debian Live systems." - echo - echo "Usage: ${PROGRAM} [-a ARCHITECTURE] [-c FILE] [--clone DIRECTORY] [-d DISTRIBUTION] [--debug] [-f FILESYSTEM] [--flavour FLAVOUR] [--hook \"COMMAND...\"] [--include-image FILE|DIRECTORY] [--include-rootfs FILE|DIRECTORY] [--interactive] [--linux-image FLAVOUR] [--logfile FILE] [-p|--package-list FILE] [--preseed FILE] [--rootfs DIRECTORY] [-s|--section \"SECTION...\"] [--splashy [THEME]] [-t|--type TYPE] [--templates DIRECTORY] [--verbose] [LIST]" - echo - echo "Values:" - echo " Architectures: alpha, amd64, arm, hppa, i386, ia64, m68k, powerpc, s390, sparc." - echo " Distributions: oldstable, stable, testing, unstable." - echo " Filesystems: ext2, squashfs, xfs." - echo " Flavours: bootable, build, minimal, standard." - echo " Linux Images: alpha-generic, alpha-smp, alpha-legacy, amd64-k8, amd64-k8-smp, em64t-p4, em64t-p4-smp, footbridge, ixp4xx, nslu2, rpc, s3c2410, parisc, parisc-smp, parisc64, parisc64-smp, 486, 686, k7, itanium, itanium-smp, mckinley, mckinley-smp, amiga, mac, r4k-ip22, r5k-ip32, sb1-bcm91250a, sb1a-bcm91480b, r5k-cobalt, r3k-kn02, r4k-kn04, powerpc, powerpc-smp, powerpc-miboot, powerpc64, s390, s390x, sparc32, sparc64, sparc64-smp." - echo " Sections: main, contrib, non-free." - echo " Types: iso, net." - echo " Lists: gnome, gnome-core, gnome-full, kde, kde-core, kde-core-i18n, kde-extra, kde-extra-i18n, kde-full, kde-full-i18n, kde-18n, standard-i18n, x11, x11-core, xfce." - echo - echo "Options:" - echo " -h, --help: display this help and exit." - echo " -u, --usage: show usage and exit." - echo " -v, --version: output version information and exit." - echo - echo "Environment:" - echo " All settings can also be done through environment variables. Please see make-live.conf(8) for more information." - echo - echo "Report bugs to Debian Live project <http://live.debian.net>." - exit 1 -} - -Usage () -{ - echo "make-live - An utility for building Debian Live systems." - echo - echo "Usage: ${PROGRAM} [-a ARCHITECTURE] [-c FILE] [--clone DIRECTORY] [-d DISTRIBUTION] [--debug] [-f FILESYSTEM] [--flavour FLAVOUR] [--hook "COMMAND..."] [--include-image FILE|DIRECTORY] [--include-rootfs FILE|DIRECTORY] [--linux-image FLAVOUR] [--logfile FILE] [-p|--package-list FILE] [--preseed FILE] [--rootfs DIRECTORY] [-s|--section "SECTION..."] [--splashy [THEME]] [-t|--type TYPE] [--templates DIRECTORY] [--verbose] [LIST]" - echo - echo "Try \"${PROGRAM} --help\" for more information." - exit 1 -} - -Version () -{ - echo "make-live, version ${VERSION}" - echo - echo "Copyright (C) 2006 Daniel Baumann <daniel@debian.org>" - echo "Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>" - echo - echo "This program is free software; you can redistribute it and/or modify" - echo "it under the terms of the GNU General Public License as published by" - echo "the Free Software Foundation; either version 2 of the License, or" - echo "(at your option) any later version." - echo - echo "This program is distributed in the hope that it will be useful," - echo "but WITHOUT ANY WARRANTY; without even the implied warranty of" - echo "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" - echo "GNU General Public License for more details." - echo - echo "Homepage: Debian Live project <http://live.debian.net/>" - exit 1 -} - -Main () -{ - ARGUMENTS=`getopt --shell=sh --name="${PROGRAM}" \ - --options="a:c:d:f:p:s:t:huv" \ - --longoptions="architecture:,conffile:,clone:,distribution:,debug,filesystem:,flavour:,hook:,include-image:,include-rootfs:,interactive,linux-image:,logfile:,package-list:,preseed:,rootfs:,section:,splashy::,type:,templates:,verbose,help,usage,version" \ - -- "${@}"` - - if [ "${?}" != "0" ] - then - echo "Terminating..." >&2 - exit 1 - fi - - eval set -- "${ARGUMENTS}" - - while true - do - case "${1}" in - -a|--architecture) - LIVE_ARCHITECTURE="${2}"; shift 2 - ;; - - -c|--conffile) - LIVE_CONFIG="${2}"; shift 2 - ;; - - --clone) - LIVE_CLONE="${2}"; shift 2 - ;; - - -d|--distribution) - LIVE_DISTRIBUTION="${2}"; shift 2 - ;; - - --debug) - LIVE_DEBUG="1" - LIVE_VERBOSE="1"; shift - ;; - - -f|--filesystem) - LIVE_FILESYSTEM="${2}"; shift 2 - ;; - - --flavour) - LIVE_FLAVOUR="${2}"; shift 2 - ;; - - --hook) - LIVE_HOOK="${2}"; shift 2 - ;; - - --include-image) - LIVE_INCLUDE_IMAGE="${2}"; shift 2 - ;; - - --include-rootfs) - LIVE_INCLUDE_ROOTFS="${2}"; shift 2 - ;; - - --interactive) - LIVE_INTERACTIVE="1"; shift - ;; - - --linux-image) - LIVE_LINUX="${2}"; shift 2 - ;; - - --logfile) - LIVE_LOGFILE="${2}"; shift 2 - ;; - - -p|--package-list) - LIVE_PACKAGE_LIST="${2}"; shift 2 - ;; - - --preseed) - LIVE_PRESEED="${2}"; shift 2 - ;; - - --rootfs) - LIVE_ROOTFS="${2}"; shift 2 - ;; - - -s|--section) - LIVE_SECTIONS="${2}"; shift 2 - ;; - - --splashy) - LIVE_SPLASHY="1" - case "${2}" in - "") - shift 2; - ;; - *) - LIVE_SPLASHY_THEME=${2} ; shift 2 - ;; - esac - ;; - - -t|--type) - LIVE_TYPE="${2}"; shift 2 - ;; - - --templates) - LIVE_TEMPLATES="${2}"; shift 2 - ;; - - --verbose) - LIVE_VERBOSE="1"; shift - ;; - - -h|--help) - Help; shift - ;; - - -u|--usage) - Usage; shift - ;; - - -v|--version) - Version; shift - ;; - - --) - shift; break - ;; - - *) - echo "Internal error!" - exit 1 - ;; - esac - done - - LIVE_LIST="${1}" - - # Enabling debug - if [ "${LIVE_DEBUG}" ] - then - set +x - fi - - # Setting defaults - Defaults - - # Initial checks - Init - - # Bootstrap chroot - Bootstrap - - # Customize chroot - Chroot - - # Create type - if [ "${LIVE_TYPE}" ] - then - case ${LIVE_TYPE} in - iso) - LIVE_TYPE="Iso" - ;; - - net) - LIVE_TYPE="Net" - ;; - - *) - echo "You specified a wrong image type" - Help - ;; - esac - - ${LIVE_TYPE} - else - Iso - fi -} - -Main "${@}" diff --git a/scripts/00-defaults.sh b/scripts/00-defaults.sh deleted file mode 100644 index 4c2c3bd..0000000 --- a/scripts/00-defaults.sh +++ /dev/null @@ -1,130 +0,0 @@ -# scripts/00-defaults.sh - -Defaults () -{ - # Set architecture name - if [ -z "${LIVE_ARCHITECTURE}" ] - then - LIVE_ARCHITECTURE="`dpkg-architecture -qDEB_BUILD_ARCH`" - fi - - # Set build directory - if [ -z "${LIVE_ROOT}" ] - then - LIVE_ROOT="`pwd`/live" - fi - - # Set rootfs directory - if [ -d "${LIVE_ROOTFS}" ] - then - LIVE_CHROOT="${LIVE_ROOTFS}" - else - LIVE_CHROOT="${LIVE_ROOT}/chroot" - fi - - # Set distribution name - if [ -z "${LIVE_DISTRIBUTION}" ] - then - LIVE_DISTRIBUTION="unstable" - fi - - # Set bootstrap flavour - if [ -z "${LIVE_FLAVOUR}" ] - then - LIVE_FLAVOUR="standard" - fi - - # Set linux-image flavour - if [ -z "${LIVE_LINUX}" ] - then - case "${LIVE_ARCHITECTURE}" in - alpha) - LIVE_LINUX="alpha-generic" - ;; - - amd64) - if [ "${LIVE_DISTRIBUTION}" == unstable ] - then - LIVE_LINUX="amd64-k8" - else - LIVE_LINUX="amd64-generic" - fi - ;; - - arm) - echo "E: You need to specify the linux flavour." - exit 1 - ;; - - hppa) - LIVE_LINUX="parisc" - ;; - - i386) - LIVE_LINUX="486" - ;; - - ia64) - LIVE_LINUX="itanium" - ;; - - m68k) - echo "E: You need to specify the linux flavour." - exit 1 - ;; - - powerpc) - LIVE_LINUX="powerpc" - ;; - - s390) - LIVE_LINUX="s390" - ;; - - sparc) - LIVE_LINUX="sparc32" - ;; - - *) - echo "FIXME: Architecture not yet supported." - exit 1 - ;; - esac - fi - - # Set logfile - if [ -z "${LIVE_LOGFILE}" ] - then - LIVE_LOGFILE="${LIVE_ROOT}/make-live.log" - fi - - # Set mirror server - if [ -z "${LIVE_MIRROR}" ] - then - LIVE_MIRROR="http://ftp.debian.org/debian" - fi - - # Set package list - if [ -z "${LIVE_PACKAGE_LIST}" ] && [ ! -z "${LIVE_LIST}" ] - then - LIVE_PACKAGE_LIST="/usr/share/make-live/lists/${LIVE_LIST}" - fi - - # Set sections names - if [ -z "${LIVE_SECTIONS}" ] - then - LIVE_SECTIONS="main" - fi - - # Set templates directory - if [ ! -z "${LIVE_TEMPLATES}" ] - then - if [ ! -d "${LIVE_TEMPLATES}" ] - then - echo "E: ${LIVE_TEMPLATES} is not a directory." - exit 1 - fi - else - LIVE_TEMPLATES="/usr/share/make-live/templates" - fi -} diff --git a/scripts/00-init.sh b/scripts/00-init.sh deleted file mode 100644 index 43aa251..0000000 --- a/scripts/00-init.sh +++ /dev/null @@ -1,18 +0,0 @@ -# scripts/00-init.sh - -Init () -{ - # Check if user is root - if [ "`id -u`" -ne "0" ] - then - echo "E: ${PROGRAM} requires superuser privilege." - exit 1 - fi - - # Check if build directory already exists - if [ -d "${LIVE_ROOT}" ] && [ ! -d "${LIVE_ROOTFS}" ] - then - echo "E: found an (unfinished) system, remove it and re-run ${PROGRAM}." - exit 1 - fi -} diff --git a/scripts/01-bootstrap.sh b/scripts/01-bootstrap.sh deleted file mode 100644 index 934737c..0000000 --- a/scripts/01-bootstrap.sh +++ /dev/null @@ -1,43 +0,0 @@ -# scripts/01-bootstrap.sh - -Bootstrap () -{ - if [ -z "${LIVE_ROOTFS}" ] - then - # Create chroot directory - mkdir -p "${LIVE_CHROOT}" - - if [ -z "${LIVE_VERBOSE}" ] - then - if [ -x /usr/bin/cdebootstrap ] - then - # Bootstrap with cdebootstrap - cdebootstrap --arch="${LIVE_ARCHITECTURE}" \ - --flavour="${LIVE_FLAVOUR}" \ - "${LIVE_DISTRIBUTION}" \ - "${LIVE_CHROOT}" "${LIVE_MIRROR}" - elif [ -x /usr/sbin/debootstrap ] - then - # Bootstrap with debootstrap - debootstrap --arch="${LIVE_ARCHITECTURE}" \ - "${LIVE_DISTRIBUTION}" \ - "${LIVE_CHROOT}" "${LIVE_MIRROR}" - fi - else - if [ -x /usr/bin/cdebootstrap ] - then - # Bootstrap with cdebootstrap (debug) - cdebootstrap --arch="${LIVE_ARCHITECTURE}" \ - --debug --flavour="${LIVE_FLAVOUR}" \ - "${LIVE_DISTRIBUTION}" \ - "${LIVE_CHROOT}" "${LIVE_MIRROR}" - elif [ -x /usr/sbin/debootstrap ] - then - # Bootstrap with debootstrap (debug) - debootstrap --arch="${LIVE_ARCHITECTURE}" \ - --verbose "${LIVE_DISTRIBUTION}" \ - "${LIVE_CHROOT}" "${LIVE_MIRROR}" - fi - fi - fi -} diff --git a/scripts/01-chroot.sh b/scripts/01-chroot.sh deleted file mode 100644 index 6d5d4ed..0000000 --- a/scripts/01-chroot.sh +++ /dev/null @@ -1,185 +0,0 @@ -# scripts/01-chroot.sh - -chroots () -{ - # Execute commands chrooted - chroot "${LIVE_CHROOT}" /usr/bin/env -i HOME="/root" \ - PATH="/usr/sbin:/usr/bin:/sbin:/bin" TERM="${TERM}" \ - ftp_proxy="${LIVE_FTPPROXY}" http_proxy="${LIVE_HTTPPROXY}" \ - DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical ${1} -} - -Chroot () -{ - # Configure chroot - Patch_chroot apply - - # Configure network - Patch_network apply - - # Configure /etc/apt/sources.list - echo "deb ${LIVE_MIRROR} ${LIVE_DISTRIBUTION} ${LIVE_SECTIONS}" > \ - "${LIVE_CHROOT}"/etc/apt/sources.list - chroots "apt-get update" - - # Install gnupg - chroots "apt-get install --yes --force-yes gnupg wget" - - # Import archive signing key - if [ ! -z "${LIVE_MIRROR_KEY}" ] - then - chroots "wget ${LIVE_MIRROR_KEY}" - chroots "apt-key add `basename ${LIVE_MIRROR_KEY}`" - chroots "rm -f `basename ${LIVE_MIRROR_KEY}`" - fi - - # Add other repository - if [ ! -z "${LIVE_REPOSITORY}" ] - then - # Configure /etc/apt/sources.list - echo "deb ${LIVE_REPOSITORY}" >> \ - "${LIVE_CHROOT}"/etc/apt/sources.list - - # Import archive signing key - if [ ! -z "${LIVE_REPOSITORY_KEY}" ] - then - chroots "wget ${LIVE_REPOSITORY_KEY}" - chroots "apt-key add `basename ${LIVE_REPOSITORY_KEY}`" - chroots "rm -f `basename ${LIVE_REPOSITORY_KEY}`" - fi - fi - - # Update indices - chroots "apt-get update" - - # Configure linux-image - Patch_linuximage apply - - # Install linux-image - case "${LIVE_DISTRIBUTION}" in - unstable) - chroots "apt-get install --yes linux-image-2.6-${LIVE_LINUX}" - chroots "apt-get install --yes --force-yes casper \ - squashfs-modules-2.6-${LIVE_LINUX} \ - unionfs-modules-2.6-${LIVE_LINUX}" - ;; - - testing) - chroots "apt-get install --yes linux-image-2.6.16-2-${LIVE_LINUX}" - chroots "apt-get install --yes --force-yes casper \ - squashfs-modules-2.6.16-2-${LIVE_LINUX} \ - unionfs-modules-2.6.16-2-${LIVE_LINUX}" - ;; - esac - - # Rebuild initial ramdisk - chroots "dpkg-reconfigure `basename ${LIVE_CHROOT}/var/lib/dpkg/info/linux-image-2.6.*-${LIVE_LINUX}.postinst .postinst`" - - # Deconfigure linux-image - Patch_linuximage deapply - - # --- Begin FIXME --- - if [ -d "${LIVE_CLONE}" ] - then - # swapping chroots - LIVE_TMP="${LIVE_CHROOT}" - LIVE_CHROOT="${LIVE_CLONE}" - - # get info - chroots "apt-get install --yes debconf-utils" - chroots "debconf-get-selections" > "${LIVE_ROOT}"/preseed.cloned - chroots "dpkg --get-selections" | grep -v deinstall | cut -f1 > "${LIVE_ROOT}"/package-list.cloned - - # swapping out - LIVE_CHROOT="${LIVE_TMP}" - - LIVE_PRESEED="${LIVE_ROOT}"/preseed.cloned - LIVE_PACKAGE_LIST="${LIVE_ROOT}"/package-list.cloned - fi - - if [ -f "${LIVE_PRESEED}" ] - then - chroots "apt-get install --yes debconf-utils" - cp ${LIVE_PRESEED} ${LIVE_CHROOT}/tmp/preseed - chroots "debconf-set-selections /tmp/preseed" - rm ${LIVE_CHROOT}/tmp/preseed - fi - - # Add splashy and conditionally a theme - if [ ! -z "${LIVE_SPLASHY}" ] - then - chroots "apt-get install --yes splashy splashy-themes" - - if [ ! -z "${LIVE_SPLASHY_THEME}" ] - then - # not already installed ? Then its a new theme to install! - if [ ! -d "${LIVE_CHROOT}"/etc/splashy/themes/"${LIVE_SPLASHY_THEME}" ] - then - if [ -f "${LIVE_SPLASHY_THEME}".tar.gz ] - then - cp "${LIVE_SPLASHY_THEME}".tar.gz "${LIVE_CHROOT}"/tmp/"${LIVE_SPLASHY_THEME}".tar.gz # this permits simlink to theme - chroots "splashy_config -i /tmp/${LIVE_SPLASHY_THEME}.tar.gz" - rm "${LIVE_CHROOT}"/tmp/"${LIVE_SPLASHY_THEME}".tar.gz - chroots "splashy_config -s ${LIVE_SPLASHY_THEME}" - else - echo "Specify the local splashy theme without extension, it also must be in the cwd" - fi - else - chroots "splashy_config -s ${LIVE_SPLASHY_THEME}" - fi - fi - fi - # --- End FIXME --- - - if [ -z "${LIVE_ROOTFS}" ] - then - if [ -z "${lIVE_INTERACTIVE}" ] - then - # Install packages list - if [ ! -z "${LIVE_PACKAGE_LIST}" ] - then - chroots "apt-get install --yes `cat ${LIVE_PACKAGE_LIST}`" - fi - - # Install extra packages - if [ ! -z "${LIVE_PACKAGES}" ] - then - chroots "apt-get install --yes ${LIVE_PACKAGES}" - fi - else - # Run aptitude - chroots "apt-get install --yes aptitude" - chroots "aptitude" - fi - fi - - # Copy external directory into the chroot - if [ -d "${LIVE_INCLUDE_ROOTFS}" ] - then - cd "${LIVE_INCLUDE_ROOTFS}" - find . | cpio -pumd "${LIVE_CHROOT}"/ - cd "${OLDPWD}" - fi - - # Execute extra command in the chroot - if [ ! -z "${LIVE_HOOK}" ] - then - chroots "${LIVE_HOOK}" - fi - - # Clean apt packages cache - rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/*.deb - rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/partial/*.deb - - # Clean apt indices cache - rm -f "${LIVE_CHROOT}"/var/cache/apt/*pkgcache.bin - - # Remove cdebootstrap packages cache - rm -rf "${LIVE_CHROOT}"/var/cache/bootstrap - - # Deconfigure network - Patch_network deapply - - # Deconfigure chroot - Patch_chroot deapply -} diff --git a/scripts/02-iso.sh b/scripts/02-iso.sh deleted file mode 100644 index 838b219..0000000 --- a/scripts/02-iso.sh +++ /dev/null @@ -1,46 +0,0 @@ -# scripts/02-iso.sh - -Iso () -{ - mkdir -p "${LIVE_ROOT}"/image/casper - - if [ "${LIVE_FILESYSTEM}" = "ext2" ] - then - DU_DIM="`du -ks ${LIVE_CHROOT} | cut -f1`" - REAL_DIM="`expr ${DU_DIM} + ${DU_DIM} / 20`" # Just 5% more to be sure, need something more sophistcated here... - - genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 \ - \--root="${LIVE_CHROOT}" \ - "${LIVE_ROOT}"/image/casper/filesystem.ext2 - else - if [ -f "${LIVE_ROOT}"/image/casper/filesystem.squashfs ] - then - rm "${LIVE_ROOT}"/image/casper/filesystem.squashfs - fi - - if [ -z "${LIVE_VERBOSE}" ] - then - mksquashfs "${LIVE_CHROOT}" "${LIVE_ROOT}"/image/casper/filesystem.squashfs - else - mksquashfs -info "${LIVE_CHROOT}" "${LIVE_ROOT}"/image/casper/filesystem.squashfs - fi - fi - - # Installing syslinux - Syslinux iso - - # Installing linux-image - Linuximage iso - - # Installing memtest - Memtest iso - - # Installing templates - cp -a "${LIVE_TEMPLATES}"/iso/* "${LIVE_ROOT}"/image - - # Calculating md5sums - md5sums - - # Creating image - mkisofss -} diff --git a/scripts/02-net.sh b/scripts/02-net.sh deleted file mode 100644 index 1736e74..0000000 --- a/scripts/02-net.sh +++ /dev/null @@ -1,40 +0,0 @@ -# scripts/02-net.sh - -Net () -{ - # Installing smbfs - chroots "apt-get install --yes smbfs" - - if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] - then - mkdir "${LIVE_CHROOT}"/etc/mkinitramfs - - # Configuring initramfs for NFS -cat >> "${LIVE_CHROOT}"/etc/mkinitramfs/initramfs.conf << EOF -MODULES=netboot -BOOT=nfs -EOF - fi - - # Installing syslinux - Syslinux net - - # Installing linux-image - Linuximage net - - # Installing memtest - Memtest net - - if [ -z "${LIVE_VERBOSE}" ] - then - # Creating tarball - cd "${LIVE_ROOT}" && cd .. && \ - tar cfz netboot.tar.gz `basename "${LIVE_ROOT}"` && \ - mv netboot.tar.gz "${LIVE_ROOT}" - else - # Creating tarball (debug) - cd "${LIVE_ROOT}" && cd .. && \ - tar cfvz netboot.tar.gz `basename "${LIVE_ROOT}"` && \ - mv netboot.tar.gz "${LIVE_ROOT}" - fi -} diff --git a/src/config b/src/config new file mode 100644 index 0000000..b4f32b2 --- /dev/null +++ b/src/config @@ -0,0 +1,73 @@ +# /etc/make-live.conf - configuration file for make-live(8) + +# make-live does work out of the box. However, if you want to customize it, +# you can edit the variables below. Look make-live.conf(8) for more information. + +# Root directory (Default: `pwd`/debian-live) +#LIVE_ROOT="`pwd`/debian-live" + +# Image type (Default: iso) +#LIVE_TYPE="iso" + +# Bootstrap architecture (Default: auto-detected) +#LIVE_ARCHITECTURE="i386" + +# Boot parameters (Default: empty) +#LIVE_BOOTAPPEND="" + +# Chroot directory (Default: ${LIVE_ROOT}/chroot) +#LIVE_CHROOT="${LIVE_ROOT}/chroot" + +# Configuration file (Default: /etc/make-live.conf) +#LIVE_CONFIG="/etc/make-live.conf" + +# Debian distribution (Default: sid) +#LIVE_DISTRIBUTION="sid" + +# Image filesystem (Default: squashfs for iso, plain for net) +#LIVE_FILESYSTEM="squashfs" + +# Bootstrap flavour (Default: standard) +#LIVE_FLAVOUR="standard" + +# User command (Default: empty) +#LIVE_HOOK="" + +# Chroot includes (Default: empty) +#LIVE_INCLUDE_CHROOT="" + +# Image includes (Default: empty) +#LIVE_INCLUDE_IMAGE="" + +# Kernel flavour (Default: auto-detected) +#LIVE_KERNEL="" + +# Debian mirror (Default: http://ftp.debian.org/debian) +#LIVE_MIRROR="http://ftp.debian.org/debian" + +# Debian security mirror (Default: http://security.debian.org/debian) +#LIVE_MIRROR_SECURITY="http://ftp.debian.org/debian-security" + +# Packages (Default: empty) +LIVE_PACKAGES="cdebootstrap less locales screen sudo vim" + +# Package list (Default: empty) +#LIVE_PACKAGE_LIST="" + +# Chroots ftp_proxy (Default: empty) +#LIVE_PROXY_FTP="" + +# Chroots http_proxy (Default: empty) +#LIVE_PROXY_HTTP="" + +# Debian section (Default: main) +#LIVE_SECTION="main" + +# Netboot server (Default: 192.168.1.1) +#LIVE_SERVER_ADDRESS="" + +# Netboot path (Default: /srv/debian-live/chroot) +#LIVE_SERVER_PATH="" + +# Image templates (Default: /usr/share/make-live/templates) +#LIVE_TEMPLATES="/usr/share/make-live/templates" diff --git a/lists/gnome b/src/lists/gnome index c8b48f0..c8b48f0 100644 --- a/lists/gnome +++ b/src/lists/gnome diff --git a/lists/gnome-core b/src/lists/gnome-core index e751336..e751336 100644 --- a/lists/gnome-core +++ b/src/lists/gnome-core diff --git a/lists/gnome-full b/src/lists/gnome-full index 50e8607..50e8607 100644 --- a/lists/gnome-full +++ b/src/lists/gnome-full diff --git a/lists/kde b/src/lists/kde index 7918920..7918920 100644 --- a/lists/kde +++ b/src/lists/kde diff --git a/lists/kde-core b/src/lists/kde-core index f1f4c7c..f1f4c7c 100644 --- a/lists/kde-core +++ b/src/lists/kde-core diff --git a/lists/kde-core-i18n b/src/lists/kde-core-i18n index 4159acc..4159acc 100644 --- a/lists/kde-core-i18n +++ b/src/lists/kde-core-i18n diff --git a/lists/kde-extra b/src/lists/kde-extra index 1180267..1180267 100644 --- a/lists/kde-extra +++ b/src/lists/kde-extra diff --git a/lists/kde-extra-i18n b/src/lists/kde-extra-i18n index ca5faff..ca5faff 100644 --- a/lists/kde-extra-i18n +++ b/src/lists/kde-extra-i18n diff --git a/lists/kde-full b/src/lists/kde-full index 13fe000..13fe000 100644 --- a/lists/kde-full +++ b/src/lists/kde-full diff --git a/lists/kde-full-i18n b/src/lists/kde-full-i18n index 097bc27..097bc27 100644 --- a/lists/kde-full-i18n +++ b/src/lists/kde-full-i18n diff --git a/lists/kde-i18n b/src/lists/kde-i18n index aa2b4ba..aa2b4ba 100644 --- a/lists/kde-i18n +++ b/src/lists/kde-i18n diff --git a/lists/standard-i18n b/src/lists/standard-i18n index 6530405..6530405 100644 --- a/lists/standard-i18n +++ b/src/lists/standard-i18n diff --git a/lists/x11 b/src/lists/x11 index db285e5..db285e5 100644 --- a/lists/x11 +++ b/src/lists/x11 diff --git a/lists/x11-core b/src/lists/x11-core index dda2615..dda2615 100644 --- a/lists/x11-core +++ b/src/lists/x11-core diff --git a/lists/xfce b/src/lists/xfce index 81cec99..81cec99 100644 --- a/lists/xfce +++ b/src/lists/xfce diff --git a/src/main.sh b/src/main.sh new file mode 100755 index 0000000..2d8fda9 --- /dev/null +++ b/src/main.sh @@ -0,0 +1,321 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# On Debian systems, the complete text of the GNU General Public License +# can be found in /usr/share/common-licenses/GPL file. + +set -e + +# Set static variables +BASE="/usr/share/make-live" +CONFIG="/etc/make-live.conf" +PROGRAM="`basename ${0}`" +VERSION="0.99.3" + +CODENAME_OLDSTABLE="woody" +CODENAME_STABLE="sarge" +CODENAME_TESTING="etch" +CODENAME_UNSTABLE="sid" + +# Source sub scripts +for SCRIPT in "${BASE}"/scripts/* +do + . "${SCRIPT}" +done + +Help () +{ + echo "${PROGRAM} - utility to build Debian Live systems" + echo + echo "Usage: ${PROGRAM} [-a|--architecture ARCHITECTURE] [-b|--bootappend KERNEL_PARAMETER|\"KERNEL_PARAMETERS\"] [--config FILE] [-c|--chroot DIRECTORY] [-d|--distribution DISTRIBUTION] [--filesystem FILESYSTEM] [-f|--flavour BOOTSTRAP_FLAVOUR] [--hook COMMAND|\"COMMANDS\"] [--include-chroot FILE|DIRECTORY] [--include-image FILE|DIRECTORY] [-k|--kernel KERNEL_FLAVOUR] [-m|--mirror URL] [--mirror-security URL] [-p|--packages PACKAGE|\"PACKAGES\"] [--package-list FILE] [--proxy-ftp URL] [--proxy-http URL] [-r|--root DIRECTORY] [-s|--section SECTION|\"SECTIONS\"] [--server-address HOSTNAME|IP] [--server-path DIRECTORY] [--templates DIRECTORY] [-t|--type TYPE] [LIST]" + echo "Usage: ${PROGRAM} [-h|--help]" + echo "Usage: ${PROGRAM} [-u|--usage]" + echo "Usage: ${PROGRAM} [-v|--version]" + echo + echo "Lists: gnome, gnome-core, gnome-full, kde, kde-core, kde-core-i18n, kde-extra, kde-extra-i18n, kde-full, kde-full-i18n, kde-i18n, standard-i18n, x11, x11-core, xfce." + echo + echo "Values:" + echo " Architectures: alpha, amd64, arm, hppa, i386, ia64, m68k, powerpc, s390, sparc." + echo " Distributions: etch, sid, or testing, unstable." + echo " Filesystems: ext2, plain, squashfs." + echo " Boostrap flavours: minimal, standard." + echo " Kernel flavours: Debian Kernel flavour of your architecture." + echo " Types: iso, net." + echo + echo "Options:" + echo " -a, --architecture: specifies the bootstrap architecture." + echo " -b, --bootappend: specifies the kernel parameter(s)." + echo " --config: specifies an alternate configuration file." + echo " -c, --chroot: specifies the chroot directory." + echo " -d, --distribution: specifies the debian distribution." + echo " --filesystem: specifies the chroot filesystem." + echo " -f, --flavour: specifies the bootstrap flavour." + echo " --hook: specifies extra command(s)." + echo " --include-chroot: specifies file or directory for chroot inclusion." + echo " --include-image: specifies file or directory for image inclusion." + echo " -k, --kernel: specifies debian kernel flavour." + echo " -m, --mirror: specifies debian mirror." + echo " --mirror-security: specifies debian security mirror." + echo " -p, --packages: specifies aditional packages." + echo " --package-list: specifies additonal package list." + echo " -r, --root: specifies build root." + echo " --proxy-ftp: specifies \${ftp_proxy}." + echo " --proxy-http: specifies \${http_proxy}." + echo " -s, --section: specifies the debian sections." + echo " --server-address: specifies the netboot server address." + echo " --server-path: specifies the netboot server path for chroot." + echo " --templates: specifies location of the templates." + echo " -t, --type: specifies live system type." + echo + echo "Environment:" + echo " All settings can be also specified trough environment variables. Please see make-live.conf(8) for more information." + echo + echo "Report bugs to Debian Live project <http://live.debian.net>." + exit 1 +} + +Usage () +{ + echo "${PROGRAM} - utility to build Debian Live systems" + echo + echo "Usage: ${PROGRAM} [-a|--architecture ARCHITECTURE] [-b|--bootappend KERNEL_PARAMETER|\"KERNEL_PARAMETERS\"] [--config FILE] [-c|--chroot DIRECTORY] [-d|--distribution DISTRIBUTION] [--filesystem FILESYSTEM] [-f|--flavour BOOTSTRAP_FLAVOUR] [--hook COMMAND|\"COMMANDS\"] [--include-chroot FILE|DIRECTORY] [--include-image FILE|DIRECTORY] [-k|--kernel KERNEL_FLAVOUR] [-m|--mirror URL] [--mirror-security URL] [-p|--packages PACKAGE|\"PACKAGES\"] [--package-list FILE] [--proxy-ftp URL] [--proxy-http URL] [-r|--root DIRECTORY] [-s|--section SECTION|\"SECTIONS\"] [--server-address HOSTNAME|IP] [--server-path DIRECTORY] [--templates DIRECTORY] [-t|--type TYPE] [LIST]" + echo "Usage: ${PROGRAM} [-h|--help]" + echo "Usage: ${PROGRAM} [-u|--usage]" + echo "Usage: ${PROGRAM} [-v|--version]" + echo + echo "Try \"${PROGRAM} --help\" for more information." + exit 1 +} + +Version () +{ + echo "${PROGRAM}, version ${VERSION}" + echo + echo "Copyright (C) 2006 Daniel Baumann <daniel@debian.org>" + echo "Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>" + echo + echo "This program is free software; you can redistribute it and/or modify" + echo "it under the terms of the GNU General Public License as published by" + echo "the Free Software Foundation; either version 2 of the License, or" + echo "(at your option) any later version." + echo + echo "This program is distributed in the hope that it will be useful," + echo "but WITHOUT ANY WARRANTY; without even the implied warranty of" + echo "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" + echo "GNU General Public License for more details." + echo + echo "You should have received a copy of the GNU General Public License" + echo "along with this program; if not, write to the Free Software" + echo "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA" + echo + echo "On Debian systems, the complete text of the GNU General Public License" + echo "can be found in /usr/share/common-licenses/GPL file." + echo + echo "Homepage: <http://live.debian.net/>" + exit 1 +} + +Configuration () +{ + # Source default configuration + if [ -r "${CONFIG}" ] + then + . "${CONFIG}" + fi + + # Source alternate configuration + if [ -n "${LIVE_CONFIG}" ] + then + if [ -r "${LIVE_CONFIG}" ] + then + . "${LIVE_CONFIG}" + fi + fi +} + +Main () +{ + ARGUMENTS="`getopt --longoptions root:,type:,architecture:,bootappend:,config:,chroot:,distribution:,filesystem:,flavour:,hook:,include-chroot:,include-image:,kernel:,mirror:,mirror-security:,packages:,package-list:,proxy-ftp:,proxy-http:,section:,server-address:,server-path:,templates:,help,usage,version --name=${PROGRAM} --options r:t:a:b:c:d:f:k:m:p:s:huv --shell sh -- ${@}`" + + if [ "${?}" != "0" ] + then + echo "Terminating." >&2 + exit 1 + fi + + eval set -- "${ARGUMENTS}" + + while true + do + case "${1}" in + -r|--root) + LIVE_ROOT="${2}"; shift 2 + ;; + + -t|--type) + LIVE_TYPE="${2}"; shift 2 + ;; + + -a|--architecture) + LIVE_ARCHITECTURE="${2}"; shift 2 + ;; + + -b|--bootappend) + LIVE_BOOTAPPEND="${2}"; shift 2 + ;; + + --config) + LIVE_CONFIG="${2}"; shift 2 + ;; + + -c|--chroot) + LIVE_CHROOT="${2}"; shift 2 + ;; + + -d|--distribution) + case "${2}" in + testing) + LIVE_DISTRIBUTION="${CODENAME_TESTING}" + ;; + + unstable) + LIVE_DISTRIBUTION="${CODENAME_UNSTABLE}" + ;; + + *) + LIVE_DISTRIBUTION="${2}" + ;; + esac + + shift 2 + ;; + + --filesystem) + LIVE_FILESYSTEM="${2}"; shift 2 + ;; + + -f|--flavour) + LIVE_FLAVOUR="${2}"; shift 2 + ;; + --hook) + LIVE_HOOK="${2}"; shift 2 + ;; + + --include-chroot) + LIVE_INCLUDE_CHROOT="${2}"; shift 2 + ;; + + --include-image) + LIVE_INCLUDE_IMAGE="${2}"; shift 2 + ;; + + -k|--kernel) + LIVE_KERNEL="${2}"; shift 2 + ;; + + -m|--mirror) + LIVE_MIRROR="${2}"; shift 2 + ;; + + --mirror-security) + LIVE_MIRROR_SECURITY="${2}"; shift 2 + ;; + + -p|--packages) + LIVE_PACKAGES="${2}"; shift 2 + ;; + + --package-list) + LIVE_PACKAGE_LIST="${2}"; shift 2 + ;; + + --proxy-ftp) + LIVE_PROXY_FTP="${2}"; shift 2 + ;; + + --proxy-http) + LIVE_PROXY_HTTP="${2}"; shift 2 + ;; + + -s|--section) + LIVE_SECTION="${2}"; shift 2 + ;; + + --server-address) + LIVE_SERVER_ADDRESS="${2}"; shift 2 + ;; + + --server-path) + LIVE_SERVER_PATH="${2}"; shift 2 + ;; + + --templates) + LIVE_TEMPLATES="${2}"; shift 2 + ;; + + -h|--help) + Help; shift + ;; + + -u|--usage) + Usage; shift + ;; + + -v|--version) + Version; shift + ;; + + --) + shift; break + ;; + + *) + echo "Internal error." + exit 1 + ;; + esac + done + + # Check for package lists + if [ -n "${1}" ] + then + LIVE_PACKAGE_LIST="${BASE}/lists/${1}" + + if [ ! -r "${LIVE_PACKAGE_LIST}" ] + then + LIVE_PACKAGE_LIST="" + fi + fi + + # Initialising + Init + Configuration + Defaults + + # Building live system + Bootstrap + Chroot + + # Building live image + "${LIVE_TYPE}" +} + +Main "${@}" diff --git a/src/scripts/01init.sh b/src/scripts/01init.sh new file mode 100644 index 0000000..6947f6f --- /dev/null +++ b/src/scripts/01init.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Init () +{ + # Check if user is root + if [ "`id -u`" -ne "0" ] + then + echo "E: ${PROGRAM} requires superuser privilege." + exit 1 + fi +} diff --git a/src/scripts/02defaults.sh b/src/scripts/02defaults.sh new file mode 100644 index 0000000..9a0342d --- /dev/null +++ b/src/scripts/02defaults.sh @@ -0,0 +1,171 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Defaults () +{ + # Set root directory + if [ -z "${LIVE_ROOT}" ] + then + LIVE_ROOT="`pwd`/debian-live" + fi + + # Set image type + if [ -n "${LIVE_TYPE}" ] + then + case "${LIVE_TYPE}" in + iso) + LIVE_TYPE="Iso" + ;; + + net) + LIVE_TYPE="Net" + ;; + + *) + echo "E: image type wrong or not yet supported." + ;; + esac + else + LIVE_TYPE="Iso" + fi + + # Set bootstrap architecture + if [ -z "${LIVE_ARCHITECTURE}" ] + then + LIVE_ARCHITECTURE="`dpkg-architecture -qDEB_BUILD_ARCH`" + fi + + # Set chroot directory + if [ -z "${LIVE_CHROOT}" ] + then + LIVE_CHROOT="${LIVE_ROOT}/chroot" + fi + + # Set debian distribution + if [ -z "${LIVE_DISTRIBUTION}" ] + then + LIVE_DISTRIBUTION="${CODENAME_UNSTABLE}" + fi + + # Set bootstrap flavour + if [ -z "${LIVE_FLAVOUR}" ] + then + LIVE_FLAVOUR="standard" + fi + + # Set filesystem + if [ -z "${LIVE_FILESYSTEM}" ] && [ "${LIVE_TYPE}" = "Iso" ] + then + LIVE_FILESYSTEM="squashfs" + elif [ -z "${LIVE_FILESYSTEM}" ] && [ "${LIVE_TYPE}" = "Net" ] + then + LIVE_FILESYSTEM="plain" + fi + + # Set kernel flavour + if [ -z "${LIVE_KERNEL}" ] + then + case "${LIVE_ARCHITECTURE}" in + alpha) + LIVE_KERNEL="alpha-generic" + ;; + + amd64) + if [ "${LIVE_DISTRIBUTION}" = "${CODENAME_UNSTABLE}" ] + then + LIVE_KERNEL="amd64" + else + LIVE_KERNEL="amd64-generic" + fi + ;; + + arm) + echo "E: You need to specify the linux kernel flavour manually on arm." + exit 1 + ;; + + hppa) + LIVE_KERNEL="parisc" + ;; + + i386) + if [ "${LIVE_DISTRIBUTION}" = "${CODENAME_STABLE}" ] || [ "${LIVE_DISTRIBUTION}" = "${CODENAME_OLDSTABLE}" ] + then + LIVE_KERNEL="386" + else + LIVE_KERNEL="486" + fi + ;; + + ia64) + LIVE_KERNEL="itanium" + ;; + + m68k) + echo "E: You need to specify the linux kernel flavour manually on m68k." + exit 1 + ;; + + powerpc) + LIVE_KERNEL="powerpc" + ;; + + s390) + LIVE_KERNEL="s390" + ;; + + sparc) + LIVE_KERNEL="sparc32" + ;; + + *) + echo "FIXME: Architecture not yet supported." + exit 1 + ;; + esac + fi + + # Set debian mirror + if [ -z "${LIVE_MIRROR}" ] + then + LIVE_MIRROR="http://ftp.debian.org/debian" + fi + + # Set debian security mirror + if [ -z "${LIVE_MIRROR_SECURITY}" ] + then + LIVE_MIRROR_SECURITY="http://security.debian.org/debian" + fi + + # Set debian sections + if [ -z "${LIVE_SECTION}" ] + then + LIVE_SECTION="main" + fi + + # Set netboot server + if [ -z "${LIVE_SERVER_ADDRESS}" ] + then + LIVE_SERVER_ADDRESS="192.168.1.1" + fi + + # Set netboot path + if [ -z "${LIVE_SERVER_PATH}" ] + then + LIVE_SERVER_PATH="/srv/debian-live" + fi + + # Set templates directory + if [ -z "${LIVE_TEMPLATES}" ] + then + LIVE_TEMPLATES="${BASE}/templates" + fi +} diff --git a/src/scripts/11bootstrap.sh b/src/scripts/11bootstrap.sh new file mode 100644 index 0000000..f0a6715 --- /dev/null +++ b/src/scripts/11bootstrap.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Bootstrap () +{ + if [ ! -f "${LIVE_ROOT}"/.stage/bootstrap ] + then + # Create chroot directory + if [ ! -d "${LIVE_CHROOT}" ] + then + mkdir -p "${LIVE_CHROOT}" + fi + + # Bootstrap system + cdebootstrap --arch="${LIVE_ARCHITECTURE}" --flavour="${LIVE_FLAVOUR}" "${LIVE_DISTRIBUTION}" "${LIVE_CHROOT}" "${LIVE_MIRROR}" + + # Remove package cache + rm -rf "${LIVE_CHROOT}"/var/cache/bootstrap + + # Touching stage file + if [ ! -d "${LIVE_ROOT}"/.stage ] + then + mkdir "${LIVE_ROOT}"/.stage + fi + + touch "${LIVE_ROOT}"/.stage/bootstrap + fi +} diff --git a/scripts/01-patch.sh b/src/scripts/12patch.sh index c990032..16be344 100644 --- a/scripts/01-patch.sh +++ b/src/scripts/12patch.sh @@ -1,14 +1,23 @@ -# scripts/01-patches.sh +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. Patch_chroot () { # Some maintainer scripts can detect if they are in a chrooted system. - # Therefore, we create the corresponding file. + # Therefore, we create the needed file. case "${1}" in apply) # Create chroot file - echo "live" > "${LIVE_CHROOT}"/etc/debian_chroot + echo "debian-live" > "${LIVE_CHROOT}"/etc/debian_chroot ;; deapply) @@ -28,15 +37,13 @@ Patch_network () # Save host lookup table if [ -f "${LIVE_CHROOT}"/etc/hosts ] then - cp "${LIVE_CHROOT}"/etc/hosts \ - "${LIVE_CHROOT}"/etc/hosts.orig + cp "${LIVE_CHROOT}"/etc/hosts "${LIVE_CHROOT}"/etc/hosts.orig fi # Save resolver configuration if [ -f "${LIVE_CHROOT}"/etc/resolv.conf ] then - cp "${LIVE_CHROOT}"/etc/resolv.conf \ - "${LIVE_CHROOT}"/etc/resolv.conf.orig + cp "${LIVE_CHROOT}"/etc/resolv.conf "${LIVE_CHROOT}"/etc/resolv.conf.orig fi # Copy host lookup table @@ -48,8 +55,7 @@ Patch_network () # Copy resolver configuration if [ -f /etc/resolv.conf ] then - cp /etc/resolv.conf \ - "${LIVE_CHROOT}"/etc/resolv.conf + cp /etc/resolv.conf "${LIVE_CHROOT}"/etc/resolv.conf fi ;; @@ -57,30 +63,28 @@ Patch_network () # Restore host lookup table if [ -f "${LIVE_CHROOT}"/etc/hosts.orig ] then - mv "${LIVE_CHROOT}"/etc/hosts.orig \ - "${LIVE_CHROOT}"/etc/hosts + mv "${LIVE_CHROOT}"/etc/hosts.orig "${LIVE_CHROOT}"/etc/hosts fi # Restore resolver configuration if [ -f "${LIVE_CHROOT}"/etc/resolv.conf.orig ] then - mv "${LIVE_CHROOT}"/etc/resolv.conf.orig \ - "${LIVE_CHROOT}"/etc/resolv.conf + mv "${LIVE_CHROOT}"/etc/resolv.conf.orig "${LIVE_CHROOT}"/etc/resolv.conf fi ;; esac } -Patch_linuximage () +Patch_linux () { # The linux-image package asks interactively for initial ramdisk # creation. Therefore, we preconfigure /etc/kernel-img.conf. + # FIXME: preseeding? case "${1}" in apply) # Write configuration option - echo "do_initrd = Yes" >> \ - "${LIVE_CHROOT}"/etc/kernel-img.conf + echo "do_initrd = Yes" >> "${LIVE_CHROOT}"/etc/kernel-img.conf ;; deapply) diff --git a/src/scripts/13chroot.sh b/src/scripts/13chroot.sh new file mode 100644 index 0000000..dd177df --- /dev/null +++ b/src/scripts/13chroot.sh @@ -0,0 +1,116 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Chroot_exec () +{ + # Execute commands chrooted + chroot "${LIVE_CHROOT}" /usr/bin/env -i HOME="/root" PATH="/usr/sbin:/usr/bin:/sbin:/bin" TERM="${TERM}" ftp_proxy="${LIVE_PROXY_FTP}" http_proxy="${LIVE_PPROXY_HTTP}" DEBIAN_FRONTEND="noninteractive" DEBIAN_PRIORITY="critical" ${1} +} + +Chroot () +{ + if [ ! -f "${LIVE_ROOT}"/.stage/chroot ] + then + # Configure chroot + Patch_chroot apply + + # Configure network + Patch_network apply + + # Configure sources.list + echo "deb ${LIVE_MIRROR} ${LIVE_DISTRIBUTION} ${LIVE_SECTION}" > "${LIVE_CHROOT}"/etc/apt/sources.list + + case "${LIVE_DISTRIBUTION}" in + "${CODENAME_TESTING}") + echo "deb ${LIVE_MIRROR} ${CODENAME_TESTING}-proposed-updates ${LIVE_SECTION}" >> "${LIVE_CHROOT}"/etc/apt/sources.list + echo "deb ${LIVE_MIRROR_SECURITY} ${CODENAME_TESTING}/updates ${LIVE_SECTION}" >> "${LIVE_CHROOT}"/etc/apt/sources.list + ;; + + "${CODENAME_STABLE}") + echo "deb ${LIVE_MIRROR_SECURITY} ${CODENAME_STABLE}/updates ${LIVE_SECTION}" >> "${LIVE_CHROOT}"/etc/apt/sources.list + ;; + + "${CODENAME_OLDSTABLE}") + echo "deb ${LIVE_MIRROR_SECURITY} ${CODENAME_OLDSTABLE}/updates ${LIVE_SECTION}" >> "${LIVE_CHROOT}"/etc/apt/sources.list + ;; + esac + + Chroot_exec "apt-get update" + + # Install secure apt + if [ "${LIVE_DISTRIBUTION}" = "${CODENAME_TESTING}" ] || [ "${LIVE_DISTRIBUTION}" = "${CODENAME_UNSTABLE}" ] + then + Chroot_exec "apt-get install --yes --force-yes debian-archive-keyring" + fi + + # Update indices + Chroot_exec "apt-get update" + + # Configure linux-image + Patch_linux apply + + # Install linux-image, modules and casper + Chroot_exec "apt-get install --yes linux-image-2.6-${LIVE_KERNEL} squashfs-modules-2.6-${LIVE_KERNEL} unionfs-modules-2.6-${LIVE_KERNEL} casper" + + # Rebuild initial ramdisk + Chroot_exec "dpkg-reconfigure `basename ${LIVE_CHROOT}/var/lib/dpkg/info/linux-image-2.6.*-${LIVE_KERNEL}.postinst .postinst`" + + # Deconfigure linux-image + Patch_linux deapply + + # Install packages list + if [ -n "${LIVE_PACKAGE_LIST}" ] + then + Chroot_exec "apt-get install --yes `cat ${LIVE_PACKAGE_LIST}`" + fi + + # Install extra packages + if [ -n "${LIVE_PACKAGES}" ] + then + Chroot_exec "apt-get install --yes ${LIVE_PACKAGES}" + fi + + # Copy external directory into the chroot + if [ -d "${LIVE_INCLUDE_CHROOT}" ] + then + cd "${LIVE_INCLUDE_CHROOT}" + find . | cpio -pumd "${LIVE_CHROOT}" + cd "${OLDPWD}" + fi + + # Execute extra command in the chroot + if [ -n "${LIVE_HOOK}" ] + then + Chroot_exec "${LIVE_HOOK}" + fi + + # Clean apt packages cache + rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/*.deb + rm -f "${LIVE_CHROOT}"/var/cache/apt/archives/partial/*.deb + + # Clean apt indices cache + rm -f "${LIVE_CHROOT}"/var/cache/apt/*pkgcache.bin + + # Remove cdebootstrap packages cache + rm -rf "${LIVE_CHROOT}"/var/cache/bootstrap + + # Deconfigure network + Patch_network deapply + + # Deconfigure chroot + Patch_chroot deapply + + # Touching stage file + touch "${LIVE_ROOT}"/.stage/chroot + + echo "done." + fi +} diff --git a/scripts/02-image.sh b/src/scripts/21image.sh index 85b7cc6..51be0a1 100644 --- a/scripts/02-image.sh +++ b/src/scripts/21image.sh @@ -1,67 +1,58 @@ -# scripts/02-image.sh - -md5sums () +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Md5sum () { # Calculating md5sums - cd "${LIVE_ROOT}"/image - find . -type f -print0 | xargs -0 md5sum > "${LIVE_ROOT}"/md5sum.txt - cd "${OLDPWD}" - - if [ -d "${LIVE_INCLUDE_IMAGE}" ] - then - cd "${LIVE_INCLUDE_IMAGE}" - find . -type f -print0 | xargs -0 md5sum >> \ - "${LIVE_ROOT}"/md5sum.txt - cd "${OLDPWD}" - fi + cd "${LIVE_ROOT}"/image + find . -type f -print0 | xargs -0 md5sum > "${LIVE_ROOT}"/md5sum.txt + cd "${OLDPWD}" + + if [ -d "${LIVE_INCLUDE_IMAGE}" ] + then + cd "${LIVE_INCLUDE_IMAGE}" + find . -type f -print0 | xargs -0 md5sum >> "${LIVE_ROOT}"/md5sum.txt + cd "${OLDPWD}" + fi mv "${LIVE_ROOT}"/md5sum.txt "${LIVE_ROOT}"/image } -mkisofss () +Mkisofs () { if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] then - # Create image - if [ -z "${LIVE_VERBOSE}" ] - then - mkisofs -quiet -A "Debian Live" -p "Debian Live; http://live.debian.net/; live@lists.debian-unofficial.org" -publisher "Debian Live; http://live.debian.net/; live@lists.debian-unofficial.org" -o "${LIVE_ROOT}"/image.iso -r -J -l -V "Debian Live `date +%Y%m%d`" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "${LIVE_ROOT}"/image ${LIVE_INCLUDE_IMAGE} - else mkisofs -A "Debian Live" -p "Debian Live; http://live.debian.net/; live@lists.debian-unofficial.org" -publisher "Debian Live; http://live.debian.net/; live@lists.debian-unofficial.org" -o "${LIVE_ROOT}"/image.iso -r -J -l -V "Debian Live `date +%Y%m%d`" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table "${LIVE_ROOT}"/image ${LIVE_INCLUDE_IMAGE} - fi else - echo "FIXME: Bootloader on your architecture not yet supported (Continuing in 5 seconds)." + echo "W: Bootloader on your architecture not yet supported (Continuing in 5 seconds)." sleep 5 - if [ -z "${LIVE_VERBOSE}" ] - then # Create image - mkisofs -quiet -o "${LIVE_ROOT}"/image.iso -r -J -l -V "Debian Live `date +%Y%m%d`" "${LIVE_ROOT}"/image ${LIVE_INCLUDE_IMAGE} - else - # Create image (debug) mkisofs -o "${LIVE_ROOT}"/image.iso -r -J -l -V "Debian Live `date +%Y%m%d`" "${LIVE_ROOT}"/image ${LIVE_INCLUDE_IMAGE} - fi fi } - Linuximage () { case "${1}" in iso) # Copy linux-image - cp "${LIVE_CHROOT}"/boot/vmlinuz-* \ - "${LIVE_ROOT}"/image/isolinux/vmlinuz - cp "${LIVE_CHROOT}"/boot/initrd.img-* \ - "${LIVE_ROOT}"/image/isolinux/initrd.gz + cp "${LIVE_CHROOT}"/boot/vmlinuz-* "${LIVE_ROOT}"/image/isolinux/vmlinuz + cp "${LIVE_CHROOT}"/boot/initrd.img-* "${LIVE_ROOT}"/image/isolinux/initrd.gz ;; net) # Copy linux-image - cp "${LIVE_ROOT}"/chroot/boot/vmlinuz-* \ - "${LIVE_ROOT}"/tftpboot/vmlinuz - cp "${LIVE_ROOT}"/chroot/boot/initrd.img-* \ - "${LIVE_ROOT}"/tftpboot/initrd.gz + cp "${LIVE_ROOT}"/chroot/boot/vmlinuz-* "${LIVE_ROOT}"/tftpboot/vmlinuz + cp "${LIVE_ROOT}"/chroot/boot/initrd.img-* "${LIVE_ROOT}"/tftpboot/initrd.gz ;; esac } @@ -72,35 +63,60 @@ Memtest () then # Install memtest Patch_network apply - chroots "apt-get install --yes memtest86+" + Chroot_exec "apt-get install --yes memtest86+" case "$1" in iso) # Copy memtest - cp "${LIVE_ROOT}"/chroot/boot/memtest86+.bin \ - "${LIVE_ROOT}"/image/isolinux/memtest + cp "${LIVE_ROOT}"/chroot/boot/memtest86+.bin "${LIVE_ROOT}"/image/isolinux/memtest ;; net) # Copy memtest - cp "${LIVE_ROOT}"/chroot/boot/memtest86+.bin \ - "${LIVE_ROOT}"/tftpboot/memtest + cp "${LIVE_ROOT}"/chroot/boot/memtest86+.bin "${LIVE_ROOT}"/tftpboot/memtest ;; esac # Remove memtest - chroots "apt-get remove --purge --yes memtest86+" + Chroot_exec "apt-get remove --purge --yes memtest86+" Patch_network deapply fi } +Genrootfs () +{ + case "${LIVE_FILESYSTEM}" in + ext2) + DU_DIM="`du -ks ${LIVE_CHROOT} | cut -f1`" + REAL_DIM="`expr ${DU_DIM} + ${DU_DIM} / 20`" # Just 5% more to be sure, need something more sophistcated here... + + genext2fs --size-in-blocks=${REAL_DIM} --reserved-blocks=0 --root="${LIVE_CHROOT}" "${LIVE_ROOT}"/image/casper/filesystem.ext2 + ;; + + plain) + cd "${LIVE_CHROOT}" + find . | cpio -pumd "${LIVE_ROOT}"/image/casper/filesystem.dir + cd "${OLDPWD}" + ;; + + squashfs) + if [ -f "${LIVE_ROOT}"/image/casper/filesystem.squashfs ] + then + rm "${LIVE_ROOT}"/image/casper/filesystem.squashfs + fi + + mksquashfs "${LIVE_CHROOT}" "${LIVE_ROOT}"/image/casper/filesystem.squashfs + ;; + esac +} + Syslinux () { if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] then # Install syslinux Patch_network apply - chroots "apt-get install --yes syslinux" + Chroot_exec "apt-get install --yes syslinux" case "${1}" in iso) @@ -109,7 +125,7 @@ Syslinux () cp "${LIVE_CHROOT}"/usr/lib/syslinux/isolinux.bin "${LIVE_ROOT}"/image/isolinux # Install syslinux templates - cp -a "${LIVE_TEMPLATES}"/syslinux/* \ + cp -r "${LIVE_TEMPLATES}"/syslinux/* \ "${LIVE_ROOT}"/image/isolinux rm -f "${LIVE_ROOT}"/image/isolinux/pxelinux.cfg @@ -126,7 +142,7 @@ Syslinux () # Install syslinux templates mkdir -p "${LIVE_ROOT}"/tftpboot/pxelinux.cfg - cp -a "${LIVE_TEMPLATES}"/syslinux/* \ + cp -r "${LIVE_TEMPLATES}"/syslinux/* \ "${LIVE_ROOT}"/tftpboot/pxelinux.cfg mv "${LIVE_ROOT}"/tftpboot/pxelinux.cfg/pxelinux.cfg "${LIVE_ROOT}"/tftpboot/pxelinux.cfg/default rm -f "${LIVE_ROOT}"/tftpboot/pxelinux.cfg/isolinux.* @@ -139,7 +155,7 @@ Syslinux () esac # Remove syslinux - chroots "apt-get remove --purge --yes syslinux" + Chroot_exec "apt-get remove --purge --yes syslinux" Patch_network deapply fi } diff --git a/src/scripts/22iso.sh b/src/scripts/22iso.sh new file mode 100644 index 0000000..bb67ef9 --- /dev/null +++ b/src/scripts/22iso.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Iso () +{ + mkdir -p "${LIVE_ROOT}"/image/casper + + # Generating rootfs image + Genrootfs + + # Installing syslinux + Syslinux iso + + # Installing linux-image + Linuximage iso + + # Installing memtest + Memtest iso + + # Installing templates + cp -r "${LIVE_TEMPLATES}"/iso/* "${LIVE_ROOT}"/image + + # Calculating md5sums + Md5sum + + # Creating image + Mkisofs +} diff --git a/src/scripts/23net.sh b/src/scripts/23net.sh new file mode 100644 index 0000000..816d05a --- /dev/null +++ b/src/scripts/23net.sh @@ -0,0 +1,55 @@ +#!/bin/sh + +# make-live - utility to build Debian Live systems +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# make-live comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +Net () +{ + # Installing smbfs + Chroot_exec "apt-get install --yes smbfs" + + if [ "${LIVE_ARCHITECTURE}" = "amd64" ] || [ "${LIVE_ARCHITECTURE}" = "i386" ] + then + if [ ! -d "${LIVE_CHROOT}"/etc/initramfs-tools ] + then + mkdir "${LIVE_CHROOT}"/etc/initramfs-tools + fi + + # Configuring initramfs for NFS +cat >> "${LIVE_CHROOT}"/etc/initramfs-tools/initramfs.conf << EOF +MODULES=netboot +BOOT=nfs +NFSROOT=auto +EOF + Chroot_exec "update-initramfs -tu" + fi + + # Generating rootfs + Genrootfs + + # Installing syslinux + Syslinux net + + # Installing linux-image + Linuximage net + + # Installing memtest + Memtest net + + # Creating tarball + LIVE_BASENAME=`basename "${LIVE_ROOT}"` + LIVE_BASE_SERVER_PATH=`basename "${LIVE_SERVER_PATH}"` + cd "${LIVE_ROOT}" && \ + mv image "${LIVE_BASE_SERVER_PATH}" && \ + cd .. && \ + tar cfz netboot.tar.gz "${LIVE_BASENAME}/${LIVE_BASE_SERVER_PATH}" "${LIVE_BASENAME}/tftpboot" && \ + mv netboot.tar.gz "${LIVE_ROOT}" && \ + cd "${OLDPWD}" && \ + mv "${LIVE_BASE_SERVER_PATH}" image +} |