Initial checkin
authorMichael Prokop <devnull@localhost>
Thu, 1 Nov 2007 22:16:50 +0000 (23:16 +0100)
committerMichael Prokop <devnull@localhost>
Thu, 1 Nov 2007 22:16:50 +0000 (23:16 +0100)
62 files changed:
COPYING [new file with mode: 0644]
Makefile [new file with mode: 0644]
bin/live-getty [new file with mode: 0755]
bin/live-login [new file with mode: 0755]
bin/live-preseed [new file with mode: 0755]
bin/live-reconfigure [new file with mode: 0755]
bin/live-snapshot [new file with mode: 0755]
conf/live.conf [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/init [new file with mode: 0644]
debian/postinst [new file with mode: 0644]
debian/postrm [new file with mode: 0644]
debian/rules [new file with mode: 0755]
docs/AUTHORS [new file with mode: 0644]
docs/CREDITS [new file with mode: 0644]
docs/ChangeLog [new file with mode: 0644]
docs/ChangeLog.casper [new file with mode: 0644]
docs/parameters.txt [new file with mode: 0644]
hooks/live [new file with mode: 0755]
manpages/Makefile [new file with mode: 0644]
manpages/live-initramfs.en.7.txt [new file with mode: 0644]
manpages/live-snapshot.en.1.txt [new file with mode: 0644]
manpages/live-snapshot.it.1.txt [new file with mode: 0644]
patches/grml_patch_add_rsync.diff [new file with mode: 0644]
patches/grml_patch_toram.diff [new file with mode: 0644]
scripts/live [new file with mode: 0755]
scripts/live-bottom/01integrity_check [new file with mode: 0755]
scripts/live-bottom/02etc_live_conf [new file with mode: 0755]
scripts/live-bottom/02timezone [new file with mode: 0755]
scripts/live-bottom/05mountpoints [new file with mode: 0755]
scripts/live-bottom/10adduser [new file with mode: 0755]
scripts/live-bottom/12fstab [new file with mode: 0755]
scripts/live-bottom/13swap [new file with mode: 0755]
scripts/live-bottom/14locales [new file with mode: 0755]
scripts/live-bottom/15autologin [new file with mode: 0755]
scripts/live-bottom/18hostname [new file with mode: 0755]
scripts/live-bottom/19keyboard [new file with mode: 0755]
scripts/live-bottom/20xconfig [new file with mode: 0755]
scripts/live-bottom/21xvidemode [new file with mode: 0755]
scripts/live-bottom/22gnome_panel_data [new file with mode: 0755]
scripts/live-bottom/22screensaver [new file with mode: 0755]
scripts/live-bottom/23etc_modules [new file with mode: 0755]
scripts/live-bottom/23networking [new file with mode: 0755]
scripts/live-bottom/24preseed [new file with mode: 0755]
scripts/live-bottom/25configure_init [new file with mode: 0755]
scripts/live-bottom/30accessibility [new file with mode: 0755]
scripts/live-bottom/31disable_update_notifier [new file with mode: 0755]
scripts/live-bottom/32disable_hibernation [new file with mode: 0755]
scripts/live-bottom/33enable_apport_crashes [new file with mode: 0755]
scripts/live-bottom/34disable_kpersonalizer [new file with mode: 0755]
scripts/live-bottom/34disable_kwallet [new file with mode: 0755]
scripts/live-bottom/35fix_language_selector [new file with mode: 0755]
scripts/live-bottom/36disable_trackerd [new file with mode: 0755]
scripts/live-bottom/38disable_restricted_manager [new file with mode: 0755]
scripts/live-bottom/41apt_cdrom [new file with mode: 0755]
scripts/live-bottom/42disable_apparmor [new file with mode: 0755]
scripts/live-functions [new file with mode: 0644]
scripts/live-helpers [new file with mode: 0644]
scripts/local-top/live [new file with mode: 0755]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..d511905
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,339 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..347d449
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,118 @@
+# Makefile
+
+TRANSLATIONS="it"
+
+all: build
+
+test:
+       set -e; for SCRIPT in bin/* hooks/* scripts/live scripts/live-functions scripts/live-helpers scripts/*/*; \
+       do \
+               sh -n $$SCRIPT; \
+       done
+
+build:
+
+install: test build
+       # Installing configuration
+       install -D -m 0644 conf/live.conf $(DESTDIR)/etc/live.conf
+
+       # Installing executables
+       mkdir -p $(DESTDIR)/sbin
+       cp bin/live-getty bin/live-login bin/live-snapshot $(DESTDIR)/sbin
+
+       mkdir -p $(DESTDIR)/usr/share/live-initramfs
+       cp bin/live-preseed bin/live-reconfigure $(DESTDIR)/usr/share/live-initramfs
+
+       mkdir -p $(DESTDIR)/usr/share/initramfs-tools
+       cp -r hooks scripts $(DESTDIR)/usr/share/initramfs-tools
+
+       # Installing documentation
+       mkdir -p $(DESTDIR)/usr/share/doc/live-initramfs
+       cp -r COPYING docs/* $(DESTDIR)/usr/share/doc/live-initramfs
+
+       mkdir -p $(DESTDIR)/usr/share/doc/live-initramfs/examples
+       cp -r conf/live.conf $(DESTDIR)/usr/share/doc/live-initramfs/examples
+
+       # Installing manpages
+       set -e; for MANPAGE in manpages/*.en.1; \
+       do \
+               install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/man1/`basename $$MANPAGE .en.1`.1; \
+       done
+
+       set -e; for MANPAGE in manpages/*.en.7; \
+       do \
+               install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/man7/`basename $$MANPAGE .en.7`.7; \
+       done
+
+       set -e; for TRANSLATIONS in $$TRANSLATIONS; \
+       do \
+               for MANPAGE in manpages/*.$$TRANSLATION.1; \
+               do \
+                       install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/$$TRANSLATION/man1/`basename $$MANPAGE .$$TRANSLATION.1`.1; \
+               done; \
+               for MANPAGE in manpages/*.$$TRANSLATION.7; \
+               do \
+                       install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/$$TRANSLATION/man7/`basename $$MANPAGE .$$TRANSLATION.7`.7; \
+               done; \
+       done
+
+       # Temporary symlinks
+       ln -sf live-initramfs.7.gz $(DESTDIR)/usr/share/man/man7/live-getty.7.gz
+       ln -sf live-initramfs.7.gz $(DESTDIR)/usr/share/man/man7/live-login.7.gz
+
+uninstall:
+       # Uninstalling configuration
+       rm -f $(DESTDIR)/etc/live.conf
+
+       # Uninstalling executables
+       rm -f $(DESTDIR)/sbin/live-getty $(DESTDIR)/sbin/live-login $(DESTDIR)/sbin/live-snapshot
+       rm -rf $(DESTDIR)/usr/share/live-initramfs
+       rm -f $(DESTDIR)/usr/share/initramfs-tools/hooks/live
+       rm -rf $(DESTDIR)/usr/share/initramfs-tools/scripts/live*
+       rm -f $(DESTDIR)/usr/share/initramfs-tools/scripts/local-top/live
+
+       # Uninstalling documentation
+       rm -rf $(DESTDIR)/usr/share/doc/live-initramfs
+
+       # Uninstalling manpages
+       set -e; for MANPAGE in manpages/*.en.1; \
+       do \
+               rm -f $(DESTDIR)/usr/share/man/man1/`basename $$MANPAGE .en.1`.1; \
+       done
+
+       set -e; for MANPAGE in manpages/*.en.7; \
+       do \
+               rm -f $(DESTDIR)/usr/share/man/man7/`basename $$MANPAGE .en.7`.7; \
+       done
+
+       set -e; for TRANSLATIONS in $$TRANSLATIONS; \
+       do \
+               for MANPAGE in manpages/*.$$TRANSLATION.1; \
+               do \
+                       install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/$$TRANSLATION/man1/`basename $$MANPAGE .$$TRANSLATION.1`.1; \
+               done; \
+               for MANPAGE in manpages/*.$$TRANSLATION.7; \
+               do \
+                       install -D -m 0644 $$MANPAGE $(DESTDIR)/usr/share/man/$$TRANSLATION/man7/`basename $$MANPAGE .$$TRANSLATION.7`.7; \
+               done; \
+       done
+
+       # Temporary symlinks
+       rm -f $(DESTDIR)/usr/share/man/man7/live-getty.7.gz
+       rm -f $(DESTDIR)/usr/share/man/man7/live-login.7.gz
+
+update:
+       set -e; for FILE in docs/parameters.txt; \
+       do \
+               sed -i  -e 's/2007\\-10\\-29/2007\\-11\\-05/' \
+                       -e 's/2007-10-29/2007-11-05/' \
+                       -e 's/29.10.2007/05.11.2007/' \
+                       -e 's/1.110.4/1.110.5/' \
+               $$FILE; \
+       done
+
+clean:
+
+distclean:
+
+reinstall: uninstall install
diff --git a/bin/live-getty b/bin/live-getty
new file mode 100755 (executable)
index 0000000..6781ea5
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+AUTOLOGIN="1"
+
+for ARGUMENT in "${@}"
+do
+       if [ "${ARGUMENT}" = "-l" ] || [ "${ARGUMENT}" = "-n" ]
+       then
+               AUTOLOGIN="0"
+       fi
+done
+
+if [ "${AUTOLOGIN}" = "1" ]
+then
+       exec /sbin/getty -n -l /sbin/live-login ${*}
+else
+       exec /sbin/getty ${*}
+fi
diff --git a/bin/live-login b/bin/live-login
new file mode 100755 (executable)
index 0000000..c2cc5a1
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+USERNAME="root"
+
+if [ -f /etc/live.conf ]
+then
+       . /etc/live.conf
+fi
+
+exec /bin/login -f "${USERNAME}"
diff --git a/bin/live-preseed b/bin/live-preseed
new file mode 100755 (executable)
index 0000000..36154ea
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -e
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+
+root="${1}"
+question="${2}"
+value="${3}"
+seen="${4}"
+
+[ "${seen}" ] || seen=true
+
+if ! (echo "SET ${question} ${value}"; echo "FSET ${question} seen ${seen}") | chroot "${1}" debconf-communicate -fnoninteractive live-initramfs >/dev/null
+then
+
+chroot "${1}" debconf-communicate -fnoninteractive live-initramfs >/dev/null << EOF
+REGISTER debian-installer/dummy ${question}
+SET ${question} ${value}
+FSET ${question} seen ${seen}
+EOF
+
+fi
+
+exit 0
diff --git a/bin/live-reconfigure b/bin/live-reconfigure
new file mode 100755 (executable)
index 0000000..16cb51d
--- /dev/null
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+set -e
+
+export PATH=/usr/bin:/usr/sbin:/sbin:/bin
+
+frontend=noninteractive
+
+findcommandinroot ()
+{
+       ROOT="${1}/"
+       shift
+
+       while [ "${#}" -ge 1 ]
+       do
+               P="${PATH}"
+
+               while [ "${P}" ]
+               do
+                       D=${P%%:*}
+                       P=${P#*:}
+
+                       if [ "${D}" = "${P}" ]
+                       then
+                               P=
+                       fi
+
+                       if [ -z "${D}" ]
+                       then
+                               D=.
+                       fi
+
+                       if [ -x "${ROOT}${D}/${1}" ]
+                       then
+                               echo "${D}/${1}"
+                               return 0
+                       fi
+               done
+
+               shift
+       done
+
+       return 1
+}
+
+runcommandinroot ()
+{
+       C=$(findcommandinroot "${1}" "${2}")
+       ROOT="${1}"
+
+       shift
+       shift
+
+       [ -n "${C}" ] && chroot "${ROOT}" "${C}" "${@}"
+}
+
+root="${1}"
+package="${2}"
+
+version=$(runcommandinroot "${root}" dpkg-query -W --showformat='${Version}' "${package}" 2>/dev/null) || version=""
+
+if [ -z "${version}" ]
+then
+       echo >&2 "${0}: package '${package}' is not installed"
+       exit 0
+fi
+
+runcommandinroot "${root}" dpkg-reconfigure -fnoninteractive --no-reload "${package}"
+
+exit 0
diff --git a/bin/live-snapshot b/bin/live-snapshot
new file mode 100755 (executable)
index 0000000..a6b4154
--- /dev/null
@@ -0,0 +1,357 @@
+#!/bin/sh
+
+# live-snapshot - utility to manage Debian Live systems snapshots
+#
+#   This program mount a device (fallback to /tmpfs under /mnt/snapshot
+#   and save the /live/cow (or a different dir) filesystem in it for reusing
+#   in another live-initramfs session. Look at manpage for more info.
+#
+# 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-2 file.
+
+PROGRAM="$(basename $0)"
+VERSION=0.0.1
+
+# Source live conf
+if [ -e /etc/live.conf ]
+then
+       . /etc/live.conf
+else
+       USERNAME=$(cat /etc/passwd | grep "999" | cut -f1 -d ':')
+       HOSTNAME=$(hostname)
+fi
+
+export USERNAME USERFULLNAME HOSTNAME
+
+# Source helper functions
+helpers="/usr/share/initramfs-tools/scripts/live-helpers"
+
+if [ -e "${helpers}" ]
+then
+       . "${helpers}"
+else
+       echo "Error: I cannot found helper functions \"${helpers}\"."
+       exit 1
+fi
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+MOUNTP=""
+COW=""
+DEV=""
+DEST=""
+TYPE=""
+DESKTOP_LINK=""
+
+Header ()
+{
+       echo "${PROGRAM} - utility to do Debian Live snapshots"
+       echo
+       echo "Usage: ${PROGRAM} [-c|--cow DIRECTORY] [-d|--device DEVICE] [-o|--output FILE] [-t|--type TYPE]"
+       echo "Usage: ${PROGRAM} [-r|--resync-string STRING]"
+       echo "Usage: ${PROGRAM} [-h|--help]"
+       echo "Usage: ${PROGRAM} [-u|--usage]"
+       echo "Usage: ${PROGRAM} [-v|--version]"
+}
+
+Usage ()
+{
+       MESSAGE=${1}
+
+       Header
+
+       echo
+       echo "Try \"${PROGRAM} --help\" for more information."
+
+       if [ ! -z "${MESSAGE}" ]
+       then
+               echo -e "${MESSAGE}"
+               exit 1
+       else
+               exit 0
+       fi
+}
+
+Help ()
+{
+       Header
+
+       echo
+       echo "Options:"
+       echo "  -c, --cow: specifies the copy on write directory (default: /live/cow)."
+       echo "  -d, --device: specifies the output snapshot device (default: none)."
+       echo "  -o, --output: specifies the output image file (default: ${type} dependent)."
+    echo "  -r, --resync-string: internally used to resync previous made snapshots."
+       echo "  -t, --type: specifies the snapshot type between \"squashfs\", \"ext2\", \"ext3\" or \"cpio\".gz archive (default: cpio)"
+    echo -e "\nLook at live-snapshot(1) man page for more information."
+
+       exit 0
+}
+
+Version ()
+{
+       echo "${PROGRAM}, version ${VERSION}"
+       echo
+       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-2 file."
+       echo
+       echo "Homepage: <http://debian-live.alioth.debian.org/>"
+
+       exit 0
+}
+
+Do_snapshot ()
+{
+       case "${TYPE}" in
+               squashfs)
+                       echo "./tmp/exclude_list" > /tmp/exclude_list
+                       ( cd "${COW}" && find . -name '*.wh.*' >> /tmp/exclude_list )
+                       mksquashfs "${COW}" "${DEST}" -ef /tmp/exclude_list || exit 1
+                       rm /tmp/exclude_list
+                       ;;
+
+               cpio)
+                       ( cd "${COW}" && find . -path '*.wh.*' -prune -o -print0 | cpio --quiet -o0 -H newc | gzip -9c > "${DEST}" ) || exit 1
+                       ;;
+
+               ext2|ext3)
+                       DU_DIM="$(du -ks ${COW} | 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="${COW}" "${DEST}" || exit 1
+                       ;;
+
+               *)
+                       echo "Internal error."
+                       exit 1
+                       ;;
+       esac
+}
+
+Is_same_mount ()
+{
+       dir1="$(Base_path ${1})"
+       dir2="$(Base_path ${2})"
+
+       if [ "${dir1}" = "${dir2}" ]
+       then
+               return 0
+       else
+               return 1
+       fi
+}
+
+Parse_args ()
+{
+       # Parse command line
+       ARGS="${1}"
+       ARGUMENTS="$(getopt --longoptions cow:,device:,output,resync-string:,type:,help,usage,version --name=${PROGRAM} --options c:d:o:t:r:,h,u,v --shell sh -- ${ARGS})"
+
+       if [ "${?}" != "0" ]
+       then
+               echo "Terminating." >&2
+               exit 1
+       fi
+
+       eval set -- "${ARGUMENTS}"
+
+       while true
+       do
+               case "${1}" in
+                       -c|--cow)
+                               SNAP_COW="${2}"
+                               shift 2
+                               ;;
+
+                       -d|--device)
+                               SNAP_DEV="${2}"
+                               shift 2
+                               ;;
+
+                       -o|--output)
+                               SNAP_OUTPUT="${2}"
+                               shift 2
+                               ;;
+
+                       -t|--type)
+                               SNAP_TYPE="${2}"
+                               shift 2
+                               ;;
+
+                       -r|--resync-string)
+                               SNAP_RSTRING="${2}"
+                               break
+                               ;;
+
+                       -h|--help)
+                               Help
+                               ;;
+
+                       -u|--usage)
+                               Usage
+                               ;;
+
+                       -v|--version)
+                               Version
+                               ;;
+
+                       --)
+                               shift
+                               break
+                               ;;
+
+                       *)
+                               echo "Internal error."; exit 1 ;;
+
+               esac
+       done
+}
+
+Mount_device ()
+{
+       dev="${1}"
+
+       if [ ! -d "${MOUNTP}" ]
+       then
+               mkdir -p "${MOUNTP}"
+       fi
+
+       if [ -z "${dev}" ]
+       then
+               # create a temp
+               mount -t tmpfs -o rw tmpfs "${MOUNTP}"
+
+               if [ ! -L /home/${USERNAME}/Desktop/live-snapshot ]
+               then
+                       ln -s "${MOUNTP}" /home/${USERNAME}/Desktop/live-snapshot
+               fi
+       else
+               if [ -b "${dev}" ]
+               then
+                       try_mount "${dev}" "${MOUNTP}" rw
+               fi
+       fi
+}
+
+Defaults ()
+{
+       MOUNTP="/mnt/live-snapshot"
+       COW="/live/cow"
+       DEV=""
+       DEST="${MOUNTP}/live-sn.cpio.gz"
+       TYPE="cpio"
+       DESKTOP_LINK=/home/${USERNAME}/Desktop/live-snapshot
+
+       if [ -n "${SNAP_RSTRING}" ]
+       then
+               COW=$(echo "${SNAP_RSTRING}" | cut -f1 -d ':')
+               DEV=$(echo "${SNAP_RSTRING}" | cut -f2 -d ':')
+               DEST=$(echo "${SNAP_RSTRING}" | cut -f3 -d ':')
+
+               case "${DEST}" in
+                       *.cpio.gz)
+                               TYPE="cpio"
+                               ;;
+
+                       *.squashfs)
+                               TYPE="squashfs"
+                               ;;
+
+                       ""|*.ext2|*.ext3)
+                               TYPE="ext2"
+                               ;;
+
+                       *)
+                               Usage "Unregognized String"
+                               ;;
+               esac
+       else
+               DEF_COW="/live/cow"
+
+               # Bad options handling
+               if [ -z "${SNAP_COW}" ]
+               then
+                       COW="${DEF_COW}"
+               else
+                       COW="${SNAP_COW}"
+               fi
+
+               case "${SNAP_TYPE}" in
+                       "cpio"|"squashfs"|"ext2"|"ext3")
+                               TYPE="${SNAP_TYPE}"
+                               ;;
+
+                       "")
+                               TYPE="cpio"
+                               ;;
+
+                       *)
+                               Usage "Error: unrecognized snapshot type"
+                               ;;
+               esac
+
+               #if [ -d
+               #if Is_same_mount
+       fi
+
+       # check vars
+       if [ ! -d "${COW}" ]
+       then
+               Usage "Error: ${COW} is not a directory"
+       fi
+
+       Mount_device ${DEV}
+}
+
+Clean ()
+{
+       if [ -n "${DEV}" ]
+       then
+               umount "${MOUNTP}"
+               rmdir "${MOUNTP}"
+               #rm
+       fi
+}
+
+Main ()
+{
+       Parse_args "${@}"
+       Defaults
+       Do_snapshot
+       Clean
+}
+
+Main "${@}"
diff --git a/conf/live.conf b/conf/live.conf
new file mode 100644 (file)
index 0000000..0de5b6c
--- /dev/null
@@ -0,0 +1,7 @@
+# /etc/live.conf - configuration file for live-initramfs(7)
+
+USERNAME="user"
+USERFULLNAME="Debian Live user"
+HOSTNAME="debian"
+
+export USERNAME USERFULLNAME HOSTNAME
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..4b9708d
--- /dev/null
@@ -0,0 +1,216 @@
+live-initramfs (1.110.4-2) unstable; urgency=low
+
+  * Include patches for grml.
+
+ -- Michael Prokop <mika@grml.org>  Thu, 01 Nov 2007 23:14:34 +0100
+
+live-initramfs (1.110.4-1) unstable; urgency=medium
+
+  [ Daniel Baumann ]
+  * New upstream release.
+  * Preparing live-initramfs 1.110.3-1.
+  * Correcting homepage field.
+  * Correcting vcs fields.
+
+  [ Jesse Hathaway ]
+  * add support for mounting the cow device on an nfs volume
+
+ -- Daniel Baumann <daniel@debian>  Mon, 29 Oct 2007 00:00:00 +0100
+
+live-initramfs (1.110.3-1) unstable; urgency=medium
+
+  [ Daniel Baumann ]
+  * New upstream release.
+  * Preparing live-initramfs 1.110.3-1.
+  * Removing ubuntu support.
+
+  [ Alex Owen ]
+  * Fix typo to get serial console to work
+
+  [ Jesse Hathaway ]
+  * add support for exposedroot option for live-helper
+
+ -- Daniel Baumann <daniel@debian>  Mon, 22 Oct 2007 00:00:00 +0200
+
+live-initramfs (1.110.2-1) unstable; urgency=medium
+
+  * New upstream release.
+  * Preparing live-initramfs 1.110.2-1.
+  * Fixing typing error.
+  * Removing nodiratime as it is already included in noatime, thanks to Kel
+    Modderman <kel@otaku42.de>.
+
+ -- Daniel Baumann <daniel@debian>  Mon, 15 Oct 2007 00:00:00 +0200
+
+live-initramfs (1.110.1-1) unstable; urgency=medium
+
+  * New upstream release.
+  * Preparing live-initramfs 1.107.2-1.
+  * Also using nodiratime, not just noatime.
+  * Merging casper 1.108.
+  * Adjusting to live-initramfs.
+  * Merging casper 1.109.
+  * Adjusting to live-initramfs.
+  * Merging casper 1.110.
+  * Adjusting to live-initramfs.
+  * Bumping version to 1.110.1-1.
+
+ -- Daniel Baumann <daniel@debian>  Mon,  8 Oct 2007 00:00:00 +0200
+
+live-initramfs (1.107.1-1) unstable; urgency=medium
+
+  * New upstream release.
+  * Preparing live-initramfs 1.102.4-2.
+  * Replacing backticks with POSIX expression.
+  * Consistently using curly brackets for variables.
+  * Fixing bashism.
+  * Merging casper 1.105.
+  * Adjusting to live-initramfs.
+  * Bumping version to 1.105.1-1.
+  * Applied patch from Jesse W. Hathaway <jesse@mbuki-mvuki.org> to move
+    cow mount rather than binding it on /live/cow. This prevents the
+    /cow mount showing up in /proc/mounts.
+  * Merging casper 1.106.
+  * Adjusting to live-initramfs.
+  * Bumping version to 1.106.1-1.
+  * Fixing wrong homepage field.
+  * Fixing typing error.
+  * Merging casper 1.107.
+  * Bumping version to 1.107.1-1.
+
+ -- Daniel Baumann <daniel@debian>  Mon,  1 Oct 2007 00:00:00 +0200
+
+live-initramfs (1.104.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 24 Sep 2007 00:00:00 +0200
+
+live-initramfs (1.102.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 17 Sep 2007 00:00:00 +0200
+
+live-initramfs (1.99.2-1) unstable; urgency=medium
+
+  * New upstream release:
+    - Contains patch from Jim Paris <jim@jtan.com> to fix wrong ipconfig usage
+      (Closes: #440235).
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 10 Sep 2007 00:00:00 +0200
+
+live-initramfs (1.99.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  3 Sep 2007 00:00:00 +0200
+
+live-initramfs (1.96.2-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 27 Aug 2007 00:00:00 +0200
+
+live-initramfs (1.96.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 20 Aug 2007 00:00:00 +0200
+
+live-initramfs (1.95.3-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 13 Aug 2007 00:00:00 +0200
+
+live-initramfs (1.95.2-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  6 Aug 2007 00:00:00 +0200
+
+live-initramfs (1.95.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 30 Jul 2007 00:00:00 +0200
+
+live-initramfs (1.91.6-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 23 Jul 2007 00:00:00 +0200
+
+live-initramfs (1.91.5-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 16 Jul 2007 00:00:00 +0200
+
+live-initramfs (1.91.4-1) unstable; urgency=medium
+
+  * New upstream release:
+    - Dropping transitional package, not needed anymore.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  9 Jul 2007 00:00:00 +0200
+
+live-initramfs (1.91.3-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  2 Jul 2007 00:00:00 +0200
+
+live-initramfs (1.91.2-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 25 Jun 2007 00:00:00 +0200
+
+live-initramfs (1.91.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 18 Jun 2007 00:00:00 +0200
+
+live-initramfs (1.90.1-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 11 Jun 2007 00:00:00 +0200
+
+live-initramfs (1.87.6-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  4 Jun 2007 00:00:00 +0200
+
+live-initramfs (1.87.5-1) unstable; urgency=medium
+
+  * New upstream release, replacing casper.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 28 May 2007 00:00:00 +0200
+
+live-initramfs (1.87.4-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 21 May 2007 00:00:00 +0200
+
+live-initramfs (1.87.3-1) unstable; urgency=medium
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 14 May 2007 00:00:00 +0200
+
+live-initramfs (1.87.2-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon,  7 May 2007 00:00:00 +0200
+
+live-initramfs (1.87.1-1) unstable; urgency=low
+
+  * Initial release, forking casper.
+
+ -- Daniel Baumann <daniel@debian.org>  Mon, 30 Apr 2007 00:00:00 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..d7dcde1
--- /dev/null
@@ -0,0 +1,31 @@
+Source: live-initramfs
+Section: misc
+Priority: optional
+Maintainer: Debian Live <debian-live-maint@lists.alioth.debian.org>
+Uploaders: Daniel Baumann <daniel@debian.org>
+Build-Depends: debhelper (>= 5), asciidoc, docbook-xsl, xsltproc
+Standards-Version: 3.7.2
+Homepage: http://debian-live.alioth.debian.org/
+Vcs-Git: git://git.debian.org/git/users/daniel/live-initramfs.git
+Vcs-Browser: http://git.debian.org/?p=users/daniel/live-initramfs.git
+XS-Upstream-Depends: git-core
+
+Package: live-initramfs
+Architecture: all
+Depends: ${misc:Depends}, busybox, file, initramfs-tools, sudo, user-setup
+Recommends: eject, wget, live-initscripts
+Suggests: genext2fs, squashfs-tools
+Description: Debian Live initramfs hook
+ live-initramfs is a hook for the initramfs-tools, used to generate a initramfs
+ capable to boot live systems, such as those created by live-helper. This
+ includes the Debian Live isos, netboot tarballs, and usb stick images.
+ .
+ At boot time it will look for a (read-only) media containing a "/live"
+ directory where a root filesystems (often a compressed filesystem image like
+ squashfs) is stored. If found, it will create a writable environment, using
+ unionfs, for Debian like systems to boot from.
+ .
+ You probably do not want to install this package onto a non-live system,
+ although it will do no harm.
+ .
+ live-initramfs is a fork of casper <http://packages.ubuntu.com/casper/>.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..e5c0890
--- /dev/null
@@ -0,0 +1,40 @@
+This package was debianized by Daniel Baumann <daniel@debian.org> on
+Mon, 30 Apr 2007 00:00:00 +0200.
+
+It was downloaded from:
+
+       <http://debian-live.alioth.debian.org/>
+
+Upstream contact:
+
+       Debian Live <debian-live-devel@lists.alioth.debian.org>
+
+License:
+
+       live-initramfs is a fork of casper <http://packages.ubuntu.com/casper/>.
+       casper was originally written by Tollef Fog Heen <tfheen@canonical.com>
+       and Matt Zimmerman <mdz@canonical.com>.
+
+       Copyright (C) 2005-2007 Canonical Ltd. <http://www.cannonical.com/>
+       Copyright (C) 2006-2007 Marco Amadori <marco.amadori@gmail.com>
+       Copyright (C) 2007 Daniel Baumann <daniel@debian.org>
+
+       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-2 file.
+
+The Debian packaging is (C) 2007, Daniel Baumann <daniel@debian.org> and
+is licensed under the GPL, see `/usr/share/common-licenses/GPL-2'.
diff --git a/debian/init b/debian/init
new file mode 100644 (file)
index 0000000..d59ed45
--- /dev/null
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:            live-initramfs
+# Required-Start:      $syslog
+# Required-Stop:       $syslog
+# Should-Start:                $local_fs
+# Should-Stop:         $local_fs
+# Default-Start:       1 2 3 4 5
+# Default-Stop:                0 6
+# Short-Description:   live-initramfs init script
+# Description:         Resyncs snapshots, evantually caches files in order to
+#                      let remove the media.
+### END INIT INFO
+
+# Authors: Tollef Fog Heen <tfheen@canonical.com>
+#         Marco Amadori <marco.amadori@gmail.com>
+
+PATH=/usr/sbin:/usr/bin:/sbin:/bin
+NAME=live-initramfs
+SCRIPTNAME=/etc/init.d/${NAME}
+DO_SNAPSHOT=/sbin/live-snapshot
+
+# Exit if system was not booted by live-initramfs
+grep -qs boot=live /proc/cmdline || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/live.conf ] && . /etc/live.conf
+
+# Load the VERBOSE setting and other rcS variables
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+# Try to cache everything we're likely to need after ejecting.  This
+# is fragile and simple-minded, but our options are limited.
+cache_path() {
+    path="${1}"
+
+    if [ -d "${path}" ]; then
+        find "${path}" -type f | xargs cat > /dev/null 2>&1
+    elif [ -f "${path}" ]; then
+        if [ -x "${path}" ]; then
+            if file "${path}" | grep -q 'dynamically linked'; then
+                for lib in $(ldd "${path}" | awk '{ print $3 }'); do
+                    cache_path "${lib}"
+                done
+            fi
+        fi
+        cat "${path}" >/dev/null 2>&1
+    fi
+}
+
+do_stop ()
+{
+    if [ ! -z "${ROOTSNAP}" ]; then
+        ${DO_SNAPSHOT} --resync-string="${ROOTSNAP}"
+    fi
+
+    if [ ! -z "${HOMESNAP}" ]; then
+        ${DO_SNAPSHOT} --resync-string="${HOMESNAP}"
+    fi
+
+    # check for netboot
+    if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline  || grep -qsi root=/dev/cifs /proc/cmdline ; then
+        return 0
+    fi
+
+    prompt=1
+    if grep -qs noprompt /proc/cmdline; then
+       prompt=
+    fi
+
+    for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty); do
+        cache_path "${path}"
+    done
+
+    for x in $(cat /proc/cmdline); do
+       case ${x} in
+           quickreboot)
+               QUICKREBOOT="Yes"
+           ;;
+       esac
+    done
+
+    if [ -z ${QUICKREBOOT} ]; then
+       if [ -x /usr/bin/eject ]
+       then
+               eject -p -m /live/image >/dev/null 2>&1
+
+               [ "$prompt" ] || return 0
+       fi
+
+       stty sane < /dev/console
+
+       # XXX - i18n
+       echo "Please remove the disc and close the tray (if any) then press ENTER: " > /dev/console
+       if [ -x /sbin/usplash_write ]; then
+           /sbin/usplash_write "TIMEOUT 86400"
+           /sbin/usplash_write "TEXT-URGENT Please remove the disc, close the tray (if any)"
+           /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
+       fi
+
+       read x < /dev/console
+    fi
+}
+
+case "${1}" in
+    start|restart|reload|force-reload|status)
+        [ "${VERBOSE}" != no ] && log_end_msg 0
+        ;;
+    stop)
+        log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..."
+        do_stop
+        case "${?}" in
+            0|1) [ "${VERBOSE}" != no ] && log_end_msg 0 ;;
+            2) [ "${VERBOSE}" != no ] && log_end_msg 1 ;;
+        esac
+        ;;
+    *)
+        log_success_msg "Usage: ${SCRIPTNAME} {start|stop|restart|force-reload}" >&2
+        exit 3
+        ;;
+esac
diff --git a/debian/postinst b/debian/postinst
new file mode 100644 (file)
index 0000000..752b161
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ -x /usr/sbin/update-initramfs ]
+then
+       update-initramfs -k all -u
+fi
+
+#DEBHELPER#
diff --git a/debian/postrm b/debian/postrm
new file mode 100644 (file)
index 0000000..752b161
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if [ -x /usr/sbin/update-initramfs ]
+then
+       update-initramfs -k all -u
+fi
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..bf12dad
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+upstream:
+       cd .. && git clone git://git.debian.org/git/users/daniel/live-initramfs.git || true
+       rm -rf ../live-initramfs/.git
+
+build: build-stamp
+build-stamp:
+       dh_testdir
+
+       # Building package
+       $(MAKE) -C manpages
+
+       touch build-stamp
+
+clean:
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp
+
+       # Cleaning package
+       $(MAKE) -C manpages clean
+
+       dh_clean
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k
+       dh_installdirs
+
+       # Installing package
+       $(MAKE) install DESTDIR=$(CURDIR)/debian/live-initramfs
+
+       # Removing double files
+       rm -f debian/live-initramfs/usr/share/doc/live-initramfs/COPYING
+       rm -f debian/live-initramfs/usr/share/doc/live-initramfs/ChangeLog
+       mv debian/live-initramfs/usr/share/doc/live-initramfs/ChangeLog.casper debian/live-initramfs/usr/share/doc/live-initramfs/changelog.casper
+
+binary-arch: build install
+
+binary-indep: build install
+       dh_testdir
+       dh_testroot
+       dh_installchangelogs docs/ChangeLog
+       dh_installdocs
+       dh_install
+       dh_installinit --no-restart-on-upgrade --no-start -- start 89 0 6 .
+       dh_compress
+       dh_fixperms
+       dh_installdeb
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/docs/AUTHORS b/docs/AUTHORS
new file mode 100644 (file)
index 0000000..e10c045
--- /dev/null
@@ -0,0 +1,11 @@
+Main Authors:
+
+  * Daniel Baumann <daniel@debian.org>
+
+Original Authors:
+
+  live-initramfs is a fork of casper <http://packages.ubuntu.com/casper/>.
+  casper was originally written by Tollef Fog Heen <tfheen@canonical.com>
+  and Matt Zimmerman <mdz@canonical.com>.
+
+  See the casper changelog for casper contributors.
diff --git a/docs/CREDITS b/docs/CREDITS
new file mode 100644 (file)
index 0000000..1738f00
--- /dev/null
@@ -0,0 +1,20 @@
+Patches (alphabetical order):
+
+  * Alexandre Garcia <ascii_77@yahoo.fr>
+  * Alex Owen <r.a.owen@qmul.ac.uk>
+  * Arnaud Cornet <arnaud.cornet@gmail.com>
+  * Bas Wijnen <wijnen@debian.org>
+  * Ben Armstrong <synrg@debian.org>
+  * Davide Natalini <davide.natalini@studio.unibo.it>
+  * Frederic Lehobey <Frederic.Lehobey@free.fr>
+  * Hadar Weiss <whadar@gmail.com>
+  * Jason D. Clinton <me@jasonclinton.com>
+  * Jonathan Hall <flimzy@flimzy.com>
+  * Kai Hendry <hendry@iki.fi>
+  * Malcom Gilles <live@ouabain.org>
+  * Marco Amadori <marco.amadori@gmail.com>
+  * Mathieu Geli <mathieu.geli@gmail.com>
+  * Oliver Osburg <o.osburg@uni-jena.de>
+  * Otavio Salvador <otavio@debian.org>
+  * Sebastian Raveau <sebastien.raveau@epita.fr>
+  * Thomas Lange <lange@informatik.uni-koeln.de>
diff --git a/docs/ChangeLog b/docs/ChangeLog
new file mode 100644 (file)
index 0000000..4d0e52a
--- /dev/null
@@ -0,0 +1,635 @@
+commit 96aa9285ee39f4d3d4245acd8c78accdf73c1fa8
+Author: Daniel Baumann <daniel@debian.org>
+
+    Bumping version to 1.104.1-1.
+
+ Makefile            |    2 +-
+ debian/changelog    |    2 +-
+ docs/parameters.txt |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 1a226e19e03be8ff90aaa50a7b5b9f202f65b8a4
+Author: Daniel Baumann <daniel@debian.org>
+
+    Merging casper 1.104.
+
+ docs/ChangeLog.casper |    7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+commit bb97432f7c5eeb330d108be6607edfe0de85bfa7
+Author: Daniel Baumann <daniel@debian.org>
+
+    Bumping version to 1.103.1-1.
+
+ Makefile            |    2 +-
+ debian/changelog    |    2 +-
+ docs/parameters.txt |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 29c11f22032ccdb71aaccd5f6eb4a9be3efa5741
+Author: Daniel Baumann <daniel@debian.org>
+
+    Merging casper 1.103.
+
+ docs/ChangeLog.casper                |    8 ++++++++
+ scripts/live-bottom/23networking     |   24 +++++++++++++++---------
+ scripts/live-bottom/25configure_init |    8 +++-----
+ 3 files changed, 26 insertions(+), 14 deletions(-)
+
+commit 66a175b6255aa061dc78fbd301c9844489c42fc8
+Author: Daniel Baumann <daniel@debian.org>
+
+    Preparing live-initramfs 1.102.2-1.
+
+ Makefile            |   10 +++++-----
+ debian/changelog    |    6 ++++++
+ docs/parameters.txt |    2 +-
+ 3 files changed, 12 insertions(+), 6 deletions(-)
+
+commit 0b8cf3f17ed46e96fb5efd658c8e308ba1a2dd1a
+Author: Daniel Baumann <daniel@debian.org>
+
+    Releasing live-initramfs 1.102.1-1.
+
+ debian/changelog |    2 +-
+ docs/ChangeLog   |  195 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 196 insertions(+), 1 deletions(-)
+
+commit b782261bbdf33ff5c69780cc4c788c339d707f9b
+Author: Daniel Baumann <daniel@debian.org>
+
+    Sorting Depends.
+
+ debian/control |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 17b3b36ef3c1fa5cbe5b11c9690a2b0a403db693
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Michael Prokop <mika@grml.org> to depend on busybox.
+
+ debian/control |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 27cc7504bc8310e2836014d64576be7d9c974be2
+Author: Daniel Baumann <daniel@debian.org>
+
+    Bumping version to 1.102.1-1.
+
+ Makefile            |    2 +-
+ debian/changelog    |    2 +-
+ docs/parameters.txt |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 9e5b3c1cbeb80a472ba4387ef7e59b5e6bce913b
+Author: Daniel Baumann <daniel@debian.org>
+
+    Merging casper 1.102.
+
+ docs/ChangeLog.casper                       |   10 ++++++
+ scripts/live-bottom/42disable_apparmor      |   36 ++++++++++++++++++++++
+ scripts/live-bottom/42disable_cups_apparmor |   43 ---------------------------
+ 3 files changed, 46 insertions(+), 43 deletions(-)
+
+commit 7b5c1e3232d0e02e712a4f984cd1e5009c9e4e9c
+Author: Daniel Baumann <daniel@debian.org>
+
+    Adding noapparmor boot parameter.
+
+ scripts/live                                |    5 +++++
+ scripts/live-bottom/42disable_cups_apparmor |    5 +++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit ea5fee194ea66ab0f41a0a973034db201651e09a
+Author: Daniel Baumann <daniel@debian.org>
+
+    Bumping version to 1.101.1-1.
+
+ Makefile            |    2 +-
+ debian/changelog    |    2 +-
+ docs/parameters.txt |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+commit b525502a2fdf073f4e326c1ca4dd8c89258ef65d
+Author: Daniel Baumann <daniel@debian.org>
+
+    Adjusting to live-initramfs.
+
+ scripts/live-bottom/42disable_cups_apparmor |   37 ++++++++++++++++----------
+ 1 files changed, 23 insertions(+), 14 deletions(-)
+
+commit 9b2894eaf50ce542d03329a0b49bf8df7d633371
+Author: Daniel Baumann <daniel@debian.org>
+
+    Merging casper 1.101.
+
+ docs/ChangeLog.casper                       |    9 ++++++++
+ scripts/live-bottom/42disable_cups_apparmor |   29 +++++++++++++++++++++++++++
+ 2 files changed, 38 insertions(+), 0 deletions(-)
+
+commit f1e9fafee6e04a269a506edd31c62abd6917ecee
+Author: Daniel Baumann <daniel@debian.org>
+
+    Merging casper 1.100.
+
+ docs/ChangeLog.casper           |    8 ++++++++
+ scripts/live-bottom/41apt_cdrom |    3 ---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 2df075f459f0a232a084ca6ad037d89764727d5f
+Author: Daniel Baumann <daniel@debian.org>
+
+    Using new Homepage field now.
+
+ debian/control |    3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit d29346c7b4c7a67fed080ea46be15421dec12fe7
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Frederic Boiteux <fboiteux@calistel.com> about NFSROOT=auto, <http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-September/002173.html>.
+
+ scripts/live |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 4f4c8e22af7a539cfa8bc9ba371c6a57b8e7cb0c
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Michael Prokop <mika@grml.org> to migrate live-snapshot.en.1 and live-snapshot.it.1 to asciidoc as well.
+
+ manpages/Makefile               |   17 ++++--
+ manpages/live-snapshot.en.1     |   71 --------------------------
+ manpages/live-snapshot.en.1.txt |  100 ++++++++++++++++++++++++++++++++++++
+ manpages/live-snapshot.it.1     |   70 -------------------------
+ manpages/live-snapshot.it.1.txt |  107 +++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 219 insertions(+), 146 deletions(-)
+
+commit 3226d2bfd4e2463c9aa7a691f7e9ea132e258af6
+Author: Daniel Baumann <daniel@debian.org>
+
+    Adding Marco Amadori <marco.amadori@gmail.com>.
+
+ docs/CREDITS |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 757b214139daa0f7f312434ed0f77961ea380c4e
+Author: Daniel Baumann <daniel@debian.org>
+
+    Sorting Build-Depends.
+
+ debian/control |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 8d6e39ce90ed0be835514a15fbf3a007a2b9f3fa
+Author: Daniel Baumann <daniel@debian.org>
+
+    Simplifying make calls.
+
+ debian/rules |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit bef37dff239b6c28fef89679537bea8643628fe1
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Michael Prokop <mika@grml.org> to remove deprecated manpages/live-initramfs.en.7 (switched to asiidoc).
+
+ manpages/live-initramfs.en.7 |  127 ------------------------------------------
+ 1 files changed, 0 insertions(+), 127 deletions(-)
+
+commit 6a86b38986ab23d5cda24b38dca27c4a659bdfbd
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Michael Prokop <mika@grml.org> to update debian/control and debian/rules for use of asciidoc.
+
+ debian/control |    2 +-
+ debian/rules   |    2 ++
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 6685b97a4041477b2ccbfc9683e35c022cbe9ce7
+Author: Daniel Baumann <daniel@debian.org>
+
+    Applied patch from Michael Prokop <mika@grml.org> to switch to asciidoc for documentation.
+
+ manpages/Makefile                |   21 +++
+ manpages/live-initramfs.en.7.txt |  304 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 325 insertions(+), 0 deletions(-)
+
+commit 3b545dfb73b7ce99c3fd6e107d6843891f005ab1
+Author: Daniel Baumann <daniel@debian.org>
+
+    Fixing typing error.
+
+ debian/control |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit ab933503a8204649724c525facbc14f734f1cd4e
+Author: Daniel Baumann <daniel@debian.org>
+
+    Preparing live-initramfs 1.99.3-1.
+
+ Makefile                     |    8 ++++----
+ debian/changelog             |    6 ++++++
+ docs/parameters.txt          |    2 +-
+ manpages/live-initramfs.en.7 |    2 +-
+ manpages/live-snapshot.en.1  |    2 +-
+ 5 files changed, 13 insertions(+), 7 deletions(-)
+
+2007-09-09  Daniel Baumann  <daniel@debian.org>
+
+       * Using common indenting.
+       * scripts/live:
+         - Applied patch from Jim Paris <jim@jtan.com> to fix wrong usage of
+           ipconfig (Closes: #440235).
+       * Uploaded 1.99.2-1.
+
+2007-09-09  Michael Prokop <mika@grml.org>
+
+       * scripts/live:
+         - Extending toram parameter to specify module.
+         - Adding forgotten nofstab boot parameter.
+       * scripts/live-bottom/40install_driver_updates:
+         - Adding check driver updates.
+       * scripts/live-bottom/25configure_init:
+         - Adding check for file-rc.
+       * scripts/live-bottom/21xvidemode:
+         - Sorting variable checks always before logging.
+       * scripts/live, live-bottom/*:
+         - Adding boot parameters to disable each service.
+       * scripts/live, live-bottom/22gnome_panel_date:
+         - Adding nognomefstab boot parameter.
+       * scripts/live-bottom/38disable_restricted_manager:
+         - Removing leftover reference to casper-functions.
+
+2007-09-05  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live, scripts/live-bottom:
+         - Added nouser parameter to disable user creation.
+         - Added noxautoconfig parameter to disable xorg re-configuration.
+         - Added nohosts parameter to disable /etc/hosts creation.
+       * scripts/live-bottom/15autologin:
+         - Moved disabling of kpersonalizer to 34disable_kpersonalizer.
+
+2007-09-01  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.97, 1.98 and 1.99.
+       * Uploaded 1.99.1-1.
+
+2007-08-29  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/12fstab:
+         - By default, we do not have fstab, so it is save to just append the
+           unionfs mount rather than overwritting it.
+       * hooks/live:
+         - Including wget if available.
+       * Uploaded 1.96.2-1.
+
+2007-08-21  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.96.
+       * Uploaded 1.96.1-1.
+
+2007-08-21  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live:
+         - Applied patch from Jesse W. Hathaway <jesse@mbuki-mvuki.org> to
+           not use nfsro with kernels larger than 2.6.22 (where unionfs 2.x
+           is supposed to be available soon).
+       * Uploaded 1.95.3-1.
+
+2007-08-11  Daniel Baumann  <daniel@debian.org>
+
+       * Uploaded 1.95.2-1.
+
+2007-08-01  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/10adduser:
+         - Setting debconf preseeding for passwd/make-user manually to true,
+           overriding any users preseeding on that, so that the user account
+           gets created for sure.
+
+2007-07-29  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.95.
+       * Uploaded 1.95.1-1.
+
+2007-07-26  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.92, 1.93 and 1.94.
+
+2007-07-26  Daniel Baumann  <daniel@debian.org>
+
+       * bin/live-md5check:
+         - Removed, using standard md5sum which makes the md5 check slower,
+           doesn't integrate well with usplash yet, but it makes live-initramfs
+           architecture independent now.
+       * scripts/live:
+         - Fixed typo.
+         - Added live-media-path as suggested by Jordi Pujol
+           <jordi_pujol@telefonica.net>.
+       * Uploaded 1.91.6-1.
+
+2007-07-19  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live, scripts/live-bottom/02_timezone:
+         - Added utc boot parameter as suggested by Vladimir Stavrinov
+           <vs@inist.ru>
+
+2007-07-18  Daniel Baumann  <daniel@debian.org>
+
+       * docs/parameters.txt:
+         - Added values for vga parameter.
+       * scripts/live:
+         - Added patch from Thomas Lange <lange@informatik.uni-koeln.de> to
+           respect rootserver name from dhcp.
+       * Uploaded 1.91.5-1.
+
+2007-07-12  Daniel Baumann  <daniel@debian.org>
+
+       * bin/live-snapshot, scripts/live:
+         - Moved /cow to /live/cow.
+       * scripts/live, scripts/live-bottom/01integrity_check, 05mountpoints:
+         - Moved /live_media to /live/image.
+       * Uploaded 1.91.4-1.
+
+2007-07-07  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live:
+         - Added debug parameter.
+
+2007-06-31  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live:
+         - Added patch from Julian Andres Klode <jak@jak-linux.org> to add
+           support for aufs.
+       * hooks/live, manpage/live-initramfs.en.7, scripts/live-bottom/12fstab:
+         - Added aufs support.
+       * Uploaded 1.91.3-1.
+
+2007-06-30  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/12fstab:
+         - Added disabling of /etc/init.d/checkfs.sh to avoid file systemcheck
+           at boot time. Added nofastboot parameter to be able to change that.
+         - Disabled removal of checkroot.sh.
+
+2007-06-28  Daniel Baumann  <daniel@debian.org>
+
+       * Applied patch from Mathieu Geli <mathieu.geli@gmail.com> to set the
+         timezone with a boot parameter.
+
+2007-06-25  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live:
+         - Added missing nfsopts boot parameter.
+         - Changed default module name from 'order' to 'filesystem'.
+         - Changed module extension from '.lst' to '.module'.
+         - Check not just for $MODULE.module, but also
+           filesystem.$MODULE.module
+         - Cleaned up parse_cmdline and is_live_path functions.
+       * debian/control, debian/live-initramfs.init,
+         scripts/live-premount/10driver_updates:
+         - Moving eject to recommends.
+         - Added checks for eject existence.
+       * Uploaded 1.91.2-1.
+
+2007-06-17  Daniel Baumann  <daniel@debian.org>
+
+       * debian/live-initramfs.postinst:
+         - Made update-initramfs call conditional as suggested by Thomas Lange
+           <lange@informatik.uni-koeln.de>.
+       * debian/live-initramfs.postrm:
+         - Added update-initramfs call to cleanup.
+
+2007-06-17  Daniel Baumann  <daniel@debiann.org>
+
+       * Added patch from Thomas Lange <lange@informatik.uni-koeln.de> to
+         properly load ide-generic after udev.
+       * Uploaded 1.91.1-1.
+
+2007-06-15  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.91.
+
+2007-06-14  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/18hostname:
+        - Appending to /etc/hosts to not overwrite custom settings.
+
+2007-06-08  Daniel Baumann  <daniel@debian.org>
+
+       * Merging changes from casper 1.88.
+       * Merging changes from casper 1.90.
+       * hooks/live:
+         - Added force loading of ide-generic module. It is required on some
+           systems to boot (reported as needed also for some qemu versions).
+       * Uploaded 1.90.1-1.
+
+2007-06-04  Daniel Baumann  <daniel@debian.org>
+
+       * Uploaded 1.87.6-1.
+
+2007-05-28  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/42apt_upgrade:
+         - Moved to dedicated live-initscripts package.
+
+2007-05-24  Daniel Baumann  <daniel@debian.org>
+
+       * debian/control:
+         - Added casper transitional package.
+         - Removed usplash conflicts.
+       * scripts/live-bottom/42apt_upgrade:
+         - Added, idea taken from Kais webconverger.
+       * Uploaded 1.87.5-1.
+
+2007-05-23  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/*:
+         - Minor code cleanup.
+
+2007-05-18  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live, scripts/live-bottom/05mountpoints:
+         - Replaced 'mount -o move' with 'mount --move'.
+       * scripts/live, scripts/live-bottom/10adduser:
+         - Added check for 'nosudo' bootparameter to disable automatic
+           sudo configuration.
+       * scripts/live, scripts/live-bottom/13swap:
+         - Renamed 'swapoff' parameter to 'noswap'.
+       * scripts/live, scripts/live-bottom/15autologin:
+         - Added check for 'noxautologin' bootparameter to disable automatic
+           gdm/kdm login.
+       * scripts/live, scripts/live-bottom/25configure_init:
+         - Added check for 'noautologin' bootparameter to disable automatic
+           terminal login.
+       * bin/live-snapshot, scripts/live, scripts/live-helpers:
+         - Also recognize ext3, but treat it like ext2.
+       * Uploaded 1.87.4-1.
+
+2007-05-12  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live-bottom/*:
+         - Added generic header.
+
+2007-05-12  Daniel Baumann  <daniel@debian.org>
+
+       * scripts/live:
+         - Renamed CASPERCONF to LIVECONF.
+         - Renamed CASPERGETTY to LIVE_GETTY.
+         - Renamed LIVEMEDIA_* to LIVE_MEDIA_*.
+       * Uploaded 1.87.3-1.
+
+2007-05-11  Daniel Baumann  <daniel@debian.org>
+
+       * hooks/live:
+         - Reformated.
+       * scripts/live, scripts/live-bottom/13swap:
+         - Added check for swapoff bootparameter to disable usage of local swap
+           partitions.
+
+2007-05-09  Daniel Baumann  <daniel@debian.org>
+
+       * manpages/*:
+         - Added language suffix.
+         - Partially rewritten and reformated.
+
+2007-05-08  Daniel Baumann  <daniel@debian.org>
+
+       * Makefile, doc/AUTHORS, doc/CREDITS:
+         - Added.
+       * doc:
+         - Renamed to docs.
+
+2007-05-07  Daniel Baumann  <daniel@debian.org>
+
+       * debian/control:
+         - Added suggests to genext2fs and squashfs-tools.
+         - Removed depends to dmsetup.
+       * scripts/live-bottom/10adduser:
+         - Added patch from Ben Armstrong <synrg@debian.org> to write
+           $HOME/.su-to-rootrc file.
+       * scripts/live, scripts/live-bottom/21xvideomode:
+         - Added patch from Mathieu Geli <mathieu.geli@gmail.com> to have the
+           ability to force X video mode from kernel append line.
+
+2007-05-06  Daniel Baumann  <daniel@debian.org>
+
+       * Merging patches from casper 1.81+debian-4, see ChangeLog.casper.
+       * conf/live.conf:
+         - Renamed HOST to HOSTNAME.
+       * debian/init:
+         - Added quickreboot.
+         - Renamed /cdrom to /live_media.
+       * doc/ChangeLog.casper:
+         - Added missing debian uploads.
+       * manpages/live-initramfs.7:
+         - Updated.
+       * hooks/live:
+         - Reading live.conf earlier.
+         - Making some udev copies conditional for ubuntu.
+         - Allowing local keymap when using encrypted filesystems.
+       * scripts/live:
+         - Renamed HOST to HOSTNAME.
+         - Renamed /cdrom to /live_media.
+         - Added support for live-snapshot.
+         - Parsing commandline in one central place now.
+         - Added support for encrypted filesytem images.
+         - Added support for multiple filesystem images.
+       * scripts/live-bottom/01integrity_check:
+         - Renamed /cdrom to /live_media.
+       * scripts/live-bottom/02etc_live_conf:
+         - Added.
+       * scripts/live-bottom/05mountpoints:
+         - Renamed /cdrom to /live_media.
+         - Don't do anything if not required.
+       * scripts/live-bottom/10adduser:
+         - Changed default password.
+         - Disabling xscreensaver locking and copying ubiquity desktop only on
+           ubuntu.
+       * scripts/live-bottom/14locales:
+         - Added handling of locale bootparameter.
+       * scripts/live-bottom/15autologin:
+         - Added workaround for using gdm default config.
+       * scripts/live-bottom/18hostname:
+         - Renamed HOST to HOSTNAME.
+       * scripts/live-bottom/19keyboard:
+         - Added handling of keyboard bootparameter.
+       * scripts/live-bottom/20xconfig:
+         - Added handling of keyboard bootparameter.
+         - Added handling of locale bootparameter.
+       * scripts/live-bottom/23networking:
+         - Disabled loop over fixed network devices.
+       * scripts/live-bottom/24preseed:
+         - Added handling of multiple preseeding files.
+         - Removed locale handling.
+       * scripts/live-bottom/25configure_init:
+         - Added handling of serial ttys.
+       * scripts/live-bottom/30accessibility:
+         - Removed extra parsing of commandline.
+       * scripts/live-functions:
+         - Added function to really export variables.
+       * scripts/live-helpers:
+         - Added support for encrypted filesytem images.
+
+2007-05-06  Daniel Baumann  <daniel@debian.org>
+
+       * bin/casper-getty, casper-login, casper-preseed, casper-reconfigure,
+         casper-snapshot:
+         - Renamed to live-*.
+       * casper-md5check:
+         - Moved to bin.
+         - Renamed to live-md5check.
+       * casper.conf:
+         - Moved to conf/live.conf.
+       * caspermon:
+         - Removed.
+       * hooks/casper, scripts/casper, casper-bottom, casper-functions,
+         casper-helpers, casper-premount:
+         - Renamed to live*.
+       * bin/live-getty, live-login:
+         - Reformated.
+       * conf/live.conf:
+         - Reformated.
+         - Setting Debian defaults.
+       * bin/live-snapshot, debian/dirs, debian/install, debian/rules,
+         hooks/live, scripts/live:
+         - Replaces casper directory and file names with live-initramfs
+           directory and file names.
+       * debian/manpage:
+         - Moved to manpages.
+         - Renamed casper.7 to live-initramfs.7.
+         - Renamed casper-snapshot.1 to live-snapshot.1.
+       * debian/init:
+         - Changed activation parameter from boot=casper to boot=live.
+       * scripts/live-bottom/02_timezone:
+         - Fixed wrong script description.
+       * Uploaded 1.87.2-1.
+
+2007-04-30  Daniel Baumann  <daniel@debian.org>
+
+       * Forked casper 1.87.
+       * COPYING:
+         - Added.
+       * debian/control, debian/ubiquity-casper.install, ubiquity-hooks:
+         - Removed ubiquity support.
+       * debian/changelog:
+         - Moved old changelog to doc/ChangeLog.casper.
+         - Added new changelog for live-initramfs.
+       * debian/casper.dirs, casper.init, casper.install, casper.manpages,
+         casper.postinst:
+         - Renamed, removed packagename prefix from filename.
+       * debian/compat, copyright, dirs, manpages:
+         - Updated.
+       * debian/examples, links:
+         - Added.
+       * debian/rules:
+         - Updated.
+         - Added upstream target.
+       * debian/control:
+         - Updated.
+         - Added depends to file.
+         - Added conflicts/replaces to casper.
+       * debian/postinst:
+         - Running 'update-initramfs' for all kernel versions instead of latest
+           only.
+       * Uploaded 1.87.1-1.
diff --git a/docs/ChangeLog.casper b/docs/ChangeLog.casper
new file mode 100644 (file)
index 0000000..f4954ba
--- /dev/null
@@ -0,0 +1,1899 @@
+casper (1.110) gutsy; urgency=low
+
+  * Don't generate fglrx or the nvidia modules in the live session at boot;
+    we disable restricted-manager in the live session anyway so they aren't
+    straightforward to use (see #43706). Saves about 19 MB of memory.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 05 Oct 2007 21:28:29 +0100
+
+casper (1.109) gutsy; urgency=low
+
+  * Cache the stty binary before ejecting the CD.
+  * Skip the CD eject prompt if 'noprompt' is on the kernel command line
+    (LP: #149159).
+  * Try each of (e.g.) 2.6.22-13-generic, 2.6.22-13, and 2.6.22 in turn as
+    directory names for driver updates (LP: #122430).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 05 Oct 2007 03:24:43 +0100
+
+casper (1.108) gutsy; urgency=low
+
+  * If CASPER_GENERATE_UUID is set, generate a random UUID in the initramfs,
+    and check it against the discovered medium (unless booting with the
+    ignore_uuid parameter). This allows live CD images to be safely copied
+    to the hard disk without causing problems when booting future live CDs
+    (LP: #144800).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 04 Oct 2007 14:23:37 +0100
+
+casper (1.107) gutsy; urgency=low
+
+  * Fix gconf keys for suspend and hibernate (thanks, Oliver Grawert;
+    LP: #144790).
+  * Enable suspend again since as far as I can see we no longer need to
+    probe DMI while figuring out whether to enable it (see #61535).
+  * Add a 'textonly' boot option to disable X (LP: #65818).
+  * Write the please-remove-CD message to /dev/console so that it works even
+    if usplash isn't running, and make sure to set /dev/console into a sane
+    state so that pressing Enter doesn't just result in ^M being displayed.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 02 Oct 2007 15:12:57 +0100
+
+casper (1.106) gutsy; urgency=low
+
+  * Support preseed/early_command; code supplied here will be run using 'sh
+    -c' from casper-bottom, and can chroot to /root if needed (LP: #144845).
+  * Make sure we don't accidentally continue to boot if casper-md5check
+    fails (LP: #82856).
+  * Clear out debconf database backup files after preseeding to save memory
+    (LP: #43706).
+  * Mount everything as noatime to avoid unnecessary metadata writes.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 28 Sep 2007 15:27:52 +0100
+
+casper (1.105) gutsy; urgency=low
+
+  * scripts/casper-bottom/36disable_trackerd: Disable trackerd in the live
+    session; it's not very useful in this context and it uses a fair bit of
+    memory.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 24 Sep 2007 17:25:50 +0100
+
+casper (1.104) gutsy; urgency=low
+
+  * casper-md5check: Fall back to text output if opening the usplash FIFO
+    fails (LP: #131209).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 20 Sep 2007 01:07:45 +0100
+
+casper (1.103) gutsy; urgency=low
+
+  * Disable anacron harder so that it doesn't get started by battery events.
+  * Don't write out DHCP network interface stanzas if network-manager is
+    installed (LP: #139403).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed, 19 Sep 2007 12:52:21 +0100
+
+casper (1.102) gutsy; urgency=low
+
+  * Rename 42disable_cups_apparmor to 42disable_apparmor and remove AppArmor's
+    rc.d startup links instead of just disabling the cups profile. AA profiles
+    will not generally work on the live system, so disabling it completely
+    allows us to ship more profiles without worrying any further.
+    (LP: #131976)
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Fri, 14 Sep 2007 08:37:50 +0200
+
+casper (1.101) gutsy; urgency=low
+
+  * Add scripts/casper-bottom/42disable_cups_apparmor: Disable AppArmor
+    protection for cups on the live CD by switching the profiles to complain
+    mode. This is necessary until AppArmor works properly on stacked file
+    systems. (LP: #131976)
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Wed, 12 Sep 2007 16:44:02 +0200
+
+casper (1.100) gutsy; urgency=low
+
+  * scripts/casper-bottom/41apt_cdrom: Remove unnecessary /root/cdrom
+    mounting/unmounting code, which only serves to generate error messages
+    (scripts/casper-bottom/05mountpoints handles this already).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 11 Sep 2007 19:47:58 +0100
+
+casper (1.99) gutsy; urgency=low
+
+  [ Luke Yelavich ]
+  * scripts/casper-bottom/30accessibility &
+    ubiquity-hooks/30accessibility:
+    - Change gconf setting used to automatically start Orca (LP: #131808).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 31 Aug 2007 13:09:46 +0100
+
+casper (1.98) gutsy; urgency=low
+
+  * Load /preseed.cfg if it exists in the initramfs.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed, 29 Aug 2007 16:18:27 +0100
+
+casper (1.97) gutsy; urgency=low
+
+  * Fix paths in scripts/casper-bottom/10adduser and
+    scripts/casper-bottom/38disable_restricted_manager
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Wed, 29 Aug 2007 15:26:33 +0100
+
+casper (1.96) gutsy; urgency=low
+
+  [ Colin Watson ]
+  * Fix name and executability of timezone script.
+
+  [ Jonathan Riddell ]
+  * In 10adduser add About Kubuntu document to desktop and remove
+    restricted-manager autostart files
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 07 Aug 2007 12:51:02 +0100
+
+casper (1.95) gutsy; urgency=low
+
+  * Fix regex syntax error while looking for non-CD devices for driver
+    updates.
+  * Fix ip= boot parameter, documented but not properly merged from Debian.
+    (LP: #128689).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 27 Jul 2007 15:03:41 +0100
+
+casper (1.94) gutsy; urgency=low
+
+  [ Colin Watson ]
+  * Hack around keyboard configuration not being done until after the keymap
+    is set by having /etc/init.d/usplash reconfigure the console
+    (LP: #68487).
+  * Disable pam_lastlog on the console if doing autologin (LP: #126800).
+
+  [ Luke Yelavich ]
+  * scripts/casper-bottom/30accessibility &
+    ubiquity-hooks/30accessibility:
+    - Prevent gksu from grabbing keyboard focus for the v2, v3, and m1
+      accessibility profiles. (LP: #67172)
+  * Start Orca when a Braille device is configured from choosing the
+    Braille option in the Accessibility menu. (Partially fixes Launchpad
+    bug #122024)
+  * Re-enable desktop sounds for the blindness accessibility profile, as
+    eSpeak should be able to speak alongside audio playback.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 24 Jul 2007 16:24:55 +0100
+
+casper (1.93) gutsy; urgency=low
+
+  * revert gdm-cdd.conf handling for autologin to the chrooted code
+    as we had it in feisty. not chrooting brings up problems with the
+    alternatives system (dead symlinks) used for gdm-cdd.conf
+
+ -- Oliver Grawert <ogra@ubuntu.com>  Wed, 18 Jul 2007 15:08:16 +0200
+
+casper (1.92) gutsy; urgency=low
+
+  [ Colin Watson ]
+  * Don't bother chrooting just to run test(1).
+
+  [ Evan Dandrea ]
+  * Added support for URL-based preseeding.
+  * Added 'noninteractive' option that starts ubiquity in noninteractive
+    mode on tty1.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 09 Jul 2007 15:23:51 +0100
+
+casper (1.91) gutsy; urgency=low
+
+  * Fix Maintainer field (ubuntu-devel-discuss, not ubuntu-devel).
+  * Remember to strip directories from paths when dealing with driver update
+    .debs (LP: #120217).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 14 Jun 2007 09:51:33 +0100
+
+casper (1.90) gutsy; urgency=low
+
+  * Added to 22screensaver, to stop the screen automatically locking.
+    Fixes LP: #13497 for kubuntu as well.
+
+ -- Sarah Hobbs <hobbsee@ubuntu.com>  Thu, 07 Jun 2007 00:50:42 +1000
+
+casper (1.89) UNRELEASED; urgency=low
+
+  * Update Maintainer field to reflect reality; this package is no longer
+    maintained by me.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 06 Jun 2007 14:56:46 +0200
+
+casper (1.88) gutsy; urgency=low
+
+  * Add default values for root_persistence, home_persistence,
+    root_snapshot_label, and home_snapshot_label, and parse the persistent
+    command-line option, which went missing in the last merge from Debian.
+    This goes some way towards LP #84591 but doesn't quite fix it for me
+    since the USB stick inexplicably doesn't appear until a little too late.
+  * Use 'losetup -f' instead of walking /sys/block/loop*. Requires
+    busybox-initramfs 1:1.1.3-4ubuntu3.
+  * Install temporary workaround for /dev/loop* breakage in post-2.6.21
+    kernels (LP: #118561).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 04 Jun 2007 16:26:59 +0100
+
+casper (1.87) feisty; urgency=low
+
+  [ Colin Watson ]
+  * Improve language at end of MD5 check (LP: #100088).
+
+  [ Martin Pitt ]
+  * Add casper-bottom/33enable_apport_crashes: Enable apport crash
+    notifications. They are disabled now by default in the installed system
+    for the final release.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Mon,  9 Apr 2007 14:31:50 +0200
+
+casper (1.86) feisty; urgency=low
+
+  [ Luke Yelavich ]
+  * scripts/casper-bottom/30accessibility &
+    ubiquity-hooks/30accessibility:
+    - Point to new settings file for gnome-orca, as package was changed
+      from python-support to pycentral. (LP: #91868)
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu,  5 Apr 2007 16:42:54 +0100
+
+casper (1.85) feisty; urgency=low
+
+  * Stop disabling nvidia and fglrx drivers.  LP: #94359
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon,  2 Apr 2007 13:16:46 +0200
+
+casper (1.84) feisty; urgency=low
+
+  [ Jani Monoses ]
+  * scripts/casper-bottom/13swap: Call /bin/dd not dd so it
+    correctly detects and uses existing swap partitions (LP: #62868)
+
+  [ Tollef Fog Heen ]
+  * Make sure that we are settled before trying to set up netbooting.
+    (LP: #96076)
+  * Bind-mount /dev too, when configuring X, this should make it easier
+    for X to be correctly configured on a lot of systems.
+  * Add /root/lib and /root/usr/lib to /etc/ld.so.conf in the initramfs.
+  * Add any sources on the CD to APT using apt-cdrom.
+  * Set the time zone to UTC.  LP: #13782
+  * Fix deletion of checkroot script.  LP: #66585.
+
+  [ Colin Watson ]
+  * Fix error message if do_netmount fails (LP: #95134).
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Fri, 30 Mar 2007 12:37:58 +0200
+
+casper (1.83) feisty; urgency=low
+
+  * Fix usplash version in Conflicts.
+  * Add XS-Vcs-Bzr field to debian/control.
+  * scripts/casper-bottom/25configure_init: Support for "respawn COMMAND"
+    has been dropped from upstart jobs; cope with /etc/event.d/tty* using
+    "respawn" plus "exec COMMAND" now instead (LP: #92928).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 19 Mar 2007 16:44:22 +0000
+
+casper (1.82) feisty; urgency=low
+
+  [ Ben Collins ]
+  * Depends on eject package, and copy it into initramfs.
+  * Add log_wait_msg function to use usplash_write INPUTENTER.
+  * Conflict with usplash older than the one that fixes INPUTENTER.
+  * Add driver-updates hooks.
+
+  [ Colin Watson ]
+  * Fix more leftover /live_media wreckage (LP: #84592).
+  * Add a ubiquity hook to install driver-updates on the target system.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon,  5 Mar 2007 11:19:48 +0000
+
+casper (1.81+debian-4) unstable; urgency=low
+
+  * Added patch from Serkan Sakar <serkan.sakar@gmx.net> to allow local keymap
+    for use with encryption.
+
+ -- Daniel Baumann <daniel@debian.org>  Wed, 11 Apr 2007 09:04:00 +0200
+
+casper (1.81+debian-3) unstable; urgency=low
+
+  * Added depends to eject.
+  * Removed recommends to live-package.
+
+ -- Daniel Baumann <daniel@debian.org>  Wed, 21 Mar 2007 00:30:00 +0100
+
+casper (1.81+debian-2) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Applied patch from Sebastian Raveau <sebastien.raveau@epita.fr> to
+    add support for filesystem images encrypted with loop-aes.
+
+  [ Marco Amadori ]
+  * Added a "quickreboot" boot parameter, that prevent casper to eject the
+    media, useful for remote rebooting of a casper system, thanks to
+    Jonathan Hall <flimzy@flimzy.com> for the patch.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Fri, 16 Feb 2007 17:26:58 +0100
+
+casper (1.81+debian-1) unstable; urgency=low
+
+  * New upstream release.
+  * Some cleaning and renaming involved because most of the debian-only code
+    was merged in ubuntu sources, then back here.
+  * Extended manpage, thanks to Alex Owen <r.alex.owen@gmail.com> and
+    Jonathan Hall <flimzy@flimzy.com> (Closes: #409980).
+  * Included a slightly reworked and bug fixed version of "Allow specific
+    ordering of images" by Jonathan Hall <flimzy@flimzy.com> with a new boot
+    parameter: module=NAME.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Thu, 15 Feb 2007 10:21:01 +0100
+
+casper (1.81) feisty; urgency=low
+
+  * Merge in Debian's changes.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed,  7 Feb 2007 14:39:30 +0100
+
+casper (1.80) feisty; urgency=low
+
+  * scripts/casper-bottom/31disable_update_notifier: Allow update-notifier
+    to run for crash report handling, but disable its apt-check hook.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu,  1 Feb 2007 00:11:06 +0000
+
+casper (1.79+debian-3) unstable; urgency=low
+
+  * Fix DEFCONSOLE for autoserial console, thanks to
+    "Alex Owen" <r.alex.owen@gmail.com>.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Sun,  4 Feb 2007 20:12:08 +0100
+
+casper (1.79+debian-2) unstable; urgency=low
+
+  * It now depends also on "file" (Closes: #409308).
+  * Fixed LIVEMEDIA_TIMEOUT values (Closes: #409300).
+    Thanks for both to Jonathan Hall <flimzy@flimzy.com>.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Sat,  3 Feb 2007 18:29:20 +0100
+
+casper (1.79+debian-1) unstable; urgency=low
+
+  * New Upstream release.
+  * Reverted: "Mount the first squashfs as /rofs."
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Tue, 16 Jan 2007 12:12:34 +0100
+
+casper (1.79) feisty; urgency=low
+
+  [ Colin Watson ]
+  * ubiquity-hooks/30accessibility: Change /root to /target in
+    kderc_addtoprefixes (thanks, Jani Monoses).
+  * Call udevsettle after udevtrigger (thanks, Matthias Urlichs; LP:
+    #77438).
+  * Send casper-reconfigure error messages to stderr rather than stdout to
+    avoid interfering with debconf.
+
+  [ Jani Monoses ]
+  * ubiquity-hooks/30accessibility, scripts/casper-bottom/30accessibility:
+    Fix v2 option to start orca in magnifier not speech mode.
+    Add v1, v2, v3, m1 and m2 Xubuntu options
+
+  [ Tollef Fog Heen ]
+  * Apply patch from Luka Renko to support kde-guidance-powermanager and
+    ksmserver instead of klaptoprc as the latter is no longer used.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 10 Jan 2007 20:37:30 +0100
+
+casper (1.78) edgy; urgency=low
+
+  * Mount the first squashfs as /rofs. Breaks showmounts and won't work
+    properly with stacked filesystems, but works around a kernel oops with
+    multiply-mounted squashfses for Edgy.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed, 25 Oct 2006 12:46:05 +0100
+
+casper (1.77+debian-7) testing; urgency=medium
+
+  * Backported two 1 line fixes (both serious bugs) from casper-1.79+debian-1
+    and casper-1.79+debian-3:
+    - It now depends also on "file" (Closes: #409308).
+    - Fix DEFCONSOLE for autoserial console, thanks to
+      "Alex Owen" <r.alex.owen@gmail.com>.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Thu,  8 Feb 2007 11:19:46 +0100
+
+casper (1.77+debian-6) unstable; urgency=medium
+
+  * Improved snapshots features (even still experimental).
+  * Added "live-media-offset=BYTES" boot param, to enable "hiding"
+    feature, thanks to Sebastien Raveau <sebastien.raveau@epita.fr>.
+  * Now it creates /etc/resolv.conf if netbooted.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Fri,  1 Dec 2006 17:43:30 +0100
+
+casper (1.77+debian-5) unstable; urgency=low
+
+  * Fixed preseeding locale and keyboard's variant and options.
+  * Reorganized scans of /proc/cmdline.
+  * Improved manpages, thanks to Oliver Osburg for syntax corrections.
+  * Added "nopersistent" boot option to disable the "persistent" boot param.
+  * Added "xdebconf" boot option, that uses xdebconfigurator on the
+    rootfs to configure X (experimental).
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Mon, 20 Nov 2006 22:12:18 +0100
+
+casper (1.77+debian-4) unstable; urgency=medium
+
+  * Removed -phigh from casper-reconfigure, not needed anymore.
+  * Fixed netboot /etc/network/interfaces generation, thanks to Hadar
+    <whadar@gmail.com>.
+  * Fixed X keyboard setup. Thanks to <ascii_77@yahoo.fr> for the idea.
+  * Fixed keyboard setup.
+  * Allow commandline-device to show up late, thanks to Bas Wijnen
+    <wijnen@debian.org> for the code and the care (Closes: #397320).
+  * Urgency is set to medium to try reaching Etch with important
+    features/bugfixes.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Mon,  6 Nov 2006 19:00:29 +0100
+
+casper (1.77+debian-3) unstable; urgency=medium
+
+  * Fixed "todisk=" parsing.
+  * Urgency is set to medium to try reaching Etch with important
+    features/bugfixes.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Wed,  1 Nov 2006 11:15:56 +0100
+
+casper (1.77+debian-2) unstable; urgency=medium
+
+  [ Marco Amadori ]
+  * Improved snapshotting (but still experimental).
+  * Renamed "host=" boot parameter to "hostname=" and shell variable "HOST" to
+    "HOSTNAME" for consistence, with linux and with username/USERNAME, as
+    requested by many people.
+  * Fixed a "keyb=" typo.
+  * Added dependence on lsb-base (used by init-script and
+    casper-snapshot).
+  * Removed DM support (obsolete).
+  * Changed a bit locale and keyboard handling.
+  * Fixed locale generation.
+  * Urgency is set to medium to try reaching Etch with important
+    features/bugfixes.
+
+  [ Otavio Salvador ]
+  * Really lowered usplash conflicts since Debian doesn't has 0.4.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Mon, 30 Oct 2006 17:06:48 +0100
+
+casper (1.77+debian-1) unstable; urgency=low
+
+  * New upstream release.
+  * Added snapshot persistence feature (copy on boot, sync on reboot) via
+    different ways: squashfs, cpio.gz, and block device filesystems.
+  * Added boot parameter "live-media=<device>" to force trying to boot from
+    a specified device.
+  * Added support for "todisk=<device>" to copy the live media to a
+    device filesystem, subsequent boots could use "live-media=<device>".
+  * Slightly polished locales and keyboards handling.
+  * Extendend manpages.
+  * Readded a missing "sleep 1", reworked how live_media is detected,
+    thanks to Bas Wijnen <wijnen@debian.org> for the reports.
+    (Closes: #394308, #394554).
+  * Reworked casper-getty system, thanks to Alex Owen (Closes: #394686).
+  * Postint now rebuild all initramfs.
+  * Casper now Recommends also squashfs-tools and genext2fs, maybe
+    needed by casper-snapshot.
+  * Lowered usplash requirements, since usplash 0.4 is not in debian
+    yet.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Sun, 22 Oct 2006 20:25:38 +0200
+
+casper (1.77) edgy; urgency=low
+
+  * Honour console-setup/modelcode preseeding. Needed for Malone #66719,
+    #66774.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 20 Oct 2006 19:59:39 +0100
+
+casper (1.76) edgy; urgency=low
+
+  [ Colin Watson ]
+  * Copy access=m2 accessibility changes into the corresponding ubiquity
+    hook.
+  * Remove spurious quoting from accessibility script.
+  * Clear console-setup/layoutcode and console-setup/variantcode if they
+    aren't supplied on the command line.
+
+  [ Michael Vogt ]
+  * scripts/casper-bottom/35fix_language_selector:
+    - run fontconfig-voodoo if available to make sure that we have
+      optimal fontconfig settings for the CJK languages (lp: #49334)
+
+  [ Henrik Nilsen Omma ]
+  * Fix a few accessibility items that were out of date, changing
+    gnopernicus -> orca and gok -> onboard (the gok entry was missing some
+    brackets as well; patch from Malone #58836, closes: Malone #65861).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 16 Oct 2006 20:20:15 +0100
+
+casper (1.75) edgy; urgency=low
+
+  * Turn on accessibility in "Motor Difficulties - pointing devices" which
+    makes onboard start properly.  closes: Malone: #65861.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Fri, 13 Oct 2006 14:12:10 +0200
+
+casper (1.74) edgy; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Sync up ubiquity-hooks/30accessibility with
+    scripts/casper-bottom/30accessibility fixing spelling errors and
+    enabling accessibility in KDE.
+
+  [ Colin Watson ]
+  * Fix check for presence of gconf2 (closes: Malone #58836).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed, 11 Oct 2006 11:18:00 +0100
+
+casper (1.73) edgy; urgency=low
+
+  * Never run install-keymap or preseed debian-installer/keymap if
+    console-setup is detected, even if console-setup wasn't explicitly
+    preseeded. Contributes to Malone #60067.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Sat,  7 Oct 2006 01:56:20 +0100
+
+casper (1.72) edgy; urgency=low
+
+  * Force suspend and hibernate both off, since reconfiguring
+    gnome-power-manager kills usplash here.  Fixes Malone: #61535
+    completely.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Fri,  6 Oct 2006 14:22:23 +0200
+
+casper (1.71+debian-1) unstable; urgency=low
+
+  * New upstream release.
+  * Added experimental casper-snapshot script and manpage.
+  * Tagged for debtags project.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Thu, 28 Sep 2006 16:04:54 +0200
+
+casper (1.71) edgy; urgency=low
+
+  * Use TEXT-URGENT in shutdown script to make sure we display the "please
+    remove disc and press enter" text.  Malone: #61533
+  * Increase usplash timeout since "TIMEOUT 0" no longer means "spin
+    forever".
+  * Don't move-mount all the squashfs-es into / since that confuses mono
+    (and some other apps too).  Malone: #62756
+  * Disable kwallet by default.  Malone: #47743
+  * Add -n to language selector to make it not whine about
+    not-fully-installed langpacks.  Malone. #37568
+  * Override definition of log_end_msg in casper-functions.  Make sure all
+    casper-bottom scripts use this.
+  * Pulsate bar in casper-top and casper-bottom.  Malone: #61535
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed,  4 Oct 2006 09:52:06 +0200
+
+casper (1.70) edgy; urgency=low
+
+  * Check for new file= alias as well as preseed/file= (closes: Malone
+    #63145).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed,  4 Oct 2006 08:59:53 +0100
+
+casper (1.69) edgy; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Use grep -E in scripts/casper. Malone: #57620
+  * Fix syntax error in accessibility script
+
+  [ Colin Watson ]
+  * Run 'sh -n' over everything in build target to avoid future syntax
+    errors.
+  * Fix check for /etc/default/console-setup (closes: Malone #62775).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon,  2 Oct 2006 10:58:19 +0100
+
+casper (1.68+debian-3) unstable; urgency=low
+
+  * Really add casper manpage (Closes: #389867).
+  * Lintian cleanness reached.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Thu, 28 Sep 2006 12:36:29 +0200
+
+casper (1.68+debian-2) unstable; urgency=low
+
+  * Changed "staticip=" boot param to just "ip=".
+  * Added a manpage for casper.
+  * Lintian cleanings.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Tue, 26 Sep 2006 00:45:21 +0200
+
+casper (1.68+debian-1) unstable; urgency=low
+
+  * New upstream release.
+  * Added static network configuration support.
+  * Fixed gnome-screensaver-lock differences between ubuntu.
+  * username, host, and userfullname are now also settable
+    via kernel parameters.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Fri,  8 Sep 2006 11:26:02 +0200
+
+casper (1.68) edgy; urgency=low
+
+  * Honour console-setup/layoutcode and console-setup/variantcode preseeding
+    (closes: Malone #61573).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 22 Sep 2006 16:09:53 +0100
+
+casper (1.67) edgy; urgency=low
+
+  * Make sure to write xorg.conf md5sum to the installed system, not the
+    live system in ubiquity-hooks/20xconfig
+  * Implement support for setting KDE's accessibility options too, thanks
+    to Jonathan Riddell for the patch.
+  * Use usplash's TEXT-URGENT for important messages when doing md5 checks
+  * Fix flashing of progress bar on 32 bit arches
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 23 Aug 2006 14:34:57 +0200
+
+casper (1.66+debian-1) unstable; urgency=low
+
+  * Added "magic" to make it work seamlessy also on ubuntu systems.
+  * Default user password now "live".
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Fri,  1 Sep 2006 17:18:07 +0200
+
+casper (1.66) edgy; urgency=low
+
+  * Fix use of db_get in ubiquity accessibility hook.
+  * Use sudo instead of su to get to the live session user from the
+    initramfs or to the newly-installed user from ubiquity. su's argument
+    handling has changed so that the previous code no longer worked, and su
+    was never all that good for arguments containing spaces anyway.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon,  4 Sep 2006 15:46:55 +0100
+
+casper (1.65+debian-1) unstable; urgency=low
+
+  * New upstream release.
+  * Re-included ubiquity sources since it is here anyway in diff.gz.
+  * Included remote getty patch from Alex Owen (enable it with "casper-getty"
+    as kernel parameter).
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Thu, 17 Aug 2006 14:06:10 +0200
+
+casper (1.65) edgy; urgency=low
+
+  * Update to call udevsettle/udevtrigger instead of udevplug
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 21 Aug 2006 19:37:58 +0200
+
+casper (1.64) edgy; urgency=low
+
+  * Fix moving of squashfs mount points so that /proc/mounts in the
+    installed system refers to them correctly (closes: Malone #55019). As a
+    bonus, this lets us mount them on subdirectories of /casper/ right from
+    the start.
+  * Treat locale= as equivalent to debian-installer/locale= (closes: Malone
+    #53444).
+  * Fix ubiquity-hooks/30accessibility not to use log_end_msg, and to chroot
+    to /target instead of /root (closes: Malone #53277).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu,  3 Aug 2006 14:00:22 +0100
+
+casper (1.63+debian-3) unstable; urgency=low
+
+  * Really do not try to eject cd if netbooted.
+  * Fixed unionfs ro param in case of nfs netboot (Closes: 383346).
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Wed, 16 Aug 2006 20:10:11 +0200
+
+casper (1.63+debian-2) unstable; urgency=low
+
+  * Working netboot support (Closes: #380506).
+  * Polished kernel parameters parsing a bit.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Sun, 13 Aug 2006 15:52:14 +0200
+
+casper (1.63+debian-1) unstable; urgency=low
+
+  [Marco Amadori]
+  * New upstream release.
+  * Fixed upstream changelog.
+  * Really fixed the user password issue, now really "debian".
+  * Reincluded casper-md5ckeck in debian/rules and 05mountpoints in
+    script/casper-bottom.
+  * Rewrote netboot support now will support all types of rootfs file images
+    (not only plain dirs) like cd/dvd one.
+  * Included a fix for USB by Davide Natalini <davide.natalini@studio.unibo.it>
+  * Included support for plain directory as RO rootfs.
+  * Removed xfs support (not implemented in make-live, maybe useless).
+
+  [Alex Owen]
+  * Added NFS netboot support (Closes: #380506).
+  * Fixed /etc/inittab editing (Closes: #380488).
+  * Do not try to eject cd if netbooted (Closes: #380502).
+
+  [Daniel Baumann]
+  * Minor debian/rules reordering.
+  * Changed "Section:" from "admin" to "misc".
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Sun, 30 Jul 2006 19:10:23 +0200
+
+casper (1.63) edgy; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Change "Live CD user" to "live session user" in the adduser script.
+    Malone #46882
+  * Wait for persistent devices for 30 seconds, not 1500.
+  * Make sure that readahead-list is installed before chmod -x'ing it.
+  * Only disable l-r-m and anacron if they are installed.
+  * Make sure laptop-detect is installed before trying to call it.
+  * Do not install init script from the initramfs any more.  It should
+    have rc.d links already in the squashfs.
+  * Minor build system fixes.
+  * Only copy devmapper relevant files if devmapper is installed.
+  * Remove ubuntu-specific branding from the default casper.
+  * Install default configuration file and make it end up in the
+    initramfs.
+  * Get rid of CD references and replace with medium or other appropriate
+    terms.
+  * Add stacked file system support
+
+  [ Marco Amadori ]
+  * Added possibility to set locale on chroot, not only at runtime.
+  * Updated 14locales to latest debian policy.
+
+  [ Malcolm Gilles ]
+  * USB devices can have ID_PATH with pci-*-usb, too.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 18 Jul 2006 10:20:51 +0200
+
+casper (1.61+debian-2) unstable; urgency=low
+
+  * Set password for user to 'debian'.
+
+ -- Daniel Baumann <daniel@debian.org>  Wed, 19 Jul 2006 20:56:00 +0200
+
+casper (1.61+debian-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Rebuild tarball without debian directory.
+  * Using dpatch for upstream modifications.
+  * Added patch for proper GDM autologin from Arnaud Cornet
+    <arnaud.cornet@gmail.com>.
+
+  [ Marco Amadori ]
+  * New upstream release (Resynced with 1.61, bzr 258).
+  * Usb discover patch from Malcom Gilles <live@ouabain.org>.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Tue, 18 Jul 2006 23:34:59 +0200
+
+casper (1.61) edgy; urgency=low
+
+  * Move PATH setting to top of casper script to avoid silliness where
+    PATH isn't correctly set.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 17 Jul 2006 12:53:59 +0200
+
+casper (1.60) edgy; urgency=low
+
+  * Change start symlinks to kill symlinks for anacron, to avoid it being
+    started by invoke-rc.d and similar.
+  * Rearrange source package.
+  * Redo how the init script works and require it to be installed in the
+    live fs.
+  * Bump version number to be higher than Debian's so we don't
+    automatically sync.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 31 May 2006 00:01:40 +0200
+
+casper (1.59+debian-1) unstable; urgency=low
+
+  [ Daniel Baumann ]
+  * Upload to unstable (Closes: #354539).
+
+  [ Marco Amadori ]
+  * Added possibility to set locale on chroot, not only at runtime.
+  * Removed "persistent" wait.
+  * Fixed persistence lock and added "homepersistence" boot parameter.
+  * Updated locales handling to latest debian policy.
+  * Cleanups
+
+ -- Daniel Baumann <daniel@debian.org>  Thu, 22 Jun 2006 06:21:00 +0200
+
+casper (1.59+debian-0) UNRELEASED; urgency=low
+
+  * Added "toram" boot parameter.
+  * Extendend fs support to ext2 and xfs file image.
+  * Changed debian-inexistant "-Q" modprobe option with "-q".
+  * Removed ubiquity code.
+  * USERNAME and HOST defaulted to "debian".
+  * Preliminary netboot (cifs) patch by
+    "Jason D. Clinton" <me@jasonclinton.com>
+  * Lowered dependence of dmsetup code (now only Suggests).
+  * Checks for replacing "udevplug" (ubuntu-only) with "udevtrigger".
+  * Reworked xorg and anacron patches from
+    Frederic Lehobey <Frederic.Lehobey@free.fr>.
+  * scripts/casper-bottom/10adduser: configuring only the $USERNAME for sudo
+      instead of group 'admin'.
+
+ -- Marco Amadori <marco.amadori@gmail.com>  Fri, 16 Jun 2006 11:01:48 +0200
+
+casper (1.58) dapper; urgency=low
+
+  * Really rename properly, without dirname.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Tue, 30 May 2006 22:47:04 +0100
+
+casper (1.57) dapper; urgency=low
+
+  * Rename the anacron rc.d/S* symlinks to K*, instead of removing them.
+    Because otherwise pbbuttonsd decides that starting anacron on the
+    LiveCD would be a clever thing to do.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Wed, 24 May 2006 23:06:04 +0100
+
+casper (1.56) dapper; urgency=low
+
+  * Hopefully work a bit better when checking DVDs on 32 bit
+    architectures.
+  * Do an explicit read from /dev/console when waiting for keypress after
+    CD/DVD has been ejected.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 22 May 2006 16:43:03 +0200
+
+casper (1.55) dapper; urgency=low
+
+  * Reconfigure gnome-power-manager when doing live installations.
+    Malone #45654
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 22 May 2006 11:16:46 +0200
+
+casper (1.54) dapper; urgency=low
+
+  [ Luke Yelavich ]
+  * Set large print fonts for the v1 accessibility profile. Closes
+    Malone #45376.
+
+  [ Colin Watson ]
+  * Fix preseed/file handling (closes: Malone #43683).
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Thu, 18 May 2006 19:36:24 +0200
+
+casper (1.53) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Disable fglrx and nvidida drivers by default.  Somewhat addresses
+    #43706
+
+  [ Colin Watson ]
+  * Pass all command-line preseed arguments (other than preseed/file) to
+    /root's debconf db.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Sat, 13 May 2006 10:14:36 +0200
+
+casper (1.52) dapper; urgency=low
+
+  * Export the path in casper-reconfigure so X and friends actually have
+    sbin in their path.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Thu, 11 May 2006 21:04:11 +0200
+
+casper (1.51) dapper; urgency=low
+
+  [ Luke Yelavich ]
+  * casper-bottom/30accessibility:
+    - Removed stale reference to acessx_applet.
+    - Fix some typos for gconf values that had to be set as lists.
+
+  [ Colin Watson ]
+  * Pass debian-installer/locale to /root's debconf db (closes: Malone
+    #41896).
+  * Identify ourselves as casper when communicating with debconf.
+  * Factor out preseeding code into casper-preseed; this knows that it only
+    needs to register a question if it fails to set it, which saves memory
+    by avoiding debconf having to rewrite templates.dat.
+  * Preseed kbd-chooser/method as well as debian-installer/keymap, so that
+    kbd-chooser run from ubiquity picks up the selected keyboard (closes:
+    Malone #42202).
+  * Use new dpkg-reconfigure --no-reload option (debconf 1.4.72ubuntu6) to
+    avoid needlessly rewriting templates.dat.
+
+  [ Tollef Fog Heen ]
+  * Add ... to the end of all usplash messages.  Malone #43856
+  * Add maybe_break casper-bottom to allow breaking before running bottom
+    scripts.  Malone #43860
+  * Don't show the name of the live cd user that's added.
+  * Mount COW filesystem if show-cow is present on the kernel command line.
+    Malone #43687
+  * Disable the Kubuntu update notifier too.  Malone #43806
+  * Disable hibernation and enable sleep where appropriate.  Malone #23882
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Thu, 11 May 2006 12:11:08 +0200
+
+casper (1.50) dapper; urgency=low
+
+  [ Luke Yelavich ]
+  * Fixed some typos, and added missing settings to some accessibility
+    profiles, as they were either not working properly, or at all. Malone:
+    #39472, #39473
+  * Removed the desktop wallpaper, and changed the background colour to gray
+    for the v1 accessibility profile.
+  * Set the whiteglass mouse theme for the v1 accessibility profile.
+  * Moved the gconftool-2 -s flag to individual gct calls, to allow for future
+    use of gconftool-2 flags that are incompatible with -s.
+
+  [ Daniele Favara ]
+  * Allow custom HOST, USERNAME, USERFULLNAME.  Malone: #42118
+  * Add example file
+    - debian/casper.dir: Add examples dir
+    - debian/casper.conf: Explain briefly how to use new variables
+    - debian/rules: Install casper.conf as example_conf_casper
+
+  [ Tollef Fog Heen ]
+  * Stylistic changes to Daniele's changes.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue,  2 May 2006 14:12:31 +0200
+
+casper (1.49) dapper; urgency=low
+
+  * Also look for hardware named wlan*
+
+ -- Scott James Remnant <scott@ubuntu.com>  Wed, 26 Apr 2006 13:37:13 +0100
+
+casper (1.48) dapper; urgency=low
+
+  * Write /etc/network/interfaces entries for eth0, eth1, eth2, ath0 and
+    wlan0 if there's no hardware detected for them; as it may be plugged
+    in after boot.
+
+ -- Scott James Remnant <scott@ubuntu.com>  Wed, 26 Apr 2006 12:31:38 +0100
+
+casper (1.47) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Turn on debugging of the X config.
+  * Log to a file which gets copied to /var/log/casper.log.  Malone: #39895
+  * Only pick UTF-8 locales.  Malone: #40178
+  * Use correct /root rather than /target for seeing what version of
+    gnome-panel-data is installed.
+  * Make festival (and probably some other apps) happier by using
+    127.0.1.1 for our ubuntu hostname and 127.0.0.1 just resolves to
+    "localhost".
+  * Make casper-md5check read from tty8 since it wants to get keypresses
+    from the active console (where usplash runs).  Malone: #40490.
+  * Copy /etc/modules when installing with ubiquity.  Malone: #40311
+  * /etc/gdm/gdm-cdd.conf can be a symlink.  Cope with that.  Malone: #40767
+
+  [ Colin Watson ]
+  * ubiquity-casper conflicts/replaces espresso-casper.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 24 Apr 2006 09:41:14 +0200
+
+casper (1.46) dapper; urgency=low
+
+  * Use debian-installer/dummy for preseeding rather than espresso/dummy,
+    since the latter was removed in espresso 0.99.38.
+  * espresso is being renamed to ubiquity. Rename espresso-casper to
+    ubiquity-casper to match.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Fri, 21 Apr 2006 12:52:48 +0100
+
+casper (1.45) dapper; urgency=low
+
+  [ Matt Zimmerman ]
+  * [share/shutdown] Disable the usplash timeout and wrap the prompt to two
+    lines
+
+  [ Tollef Fog Heen ]
+  * Use devmapper for ia64, hppa and sparc.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 19 Apr 2006 11:36:49 +0200
+
+casper (1.44) dapper; urgency=low
+
+  * Reset the timeout after casper-premount has run so we're sure that the
+    timeout is what we want it to be.  Udev seems to change it too.
+  * Remove a few set -x commands to make the boot slightly less verbose.
+  * Fix 10adduser to actually install the correct icons for espresso.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 12 Apr 2006 14:20:53 +0200
+
+casper (1.43) dapper; urgency=low
+
+  * Copy espresso-kdeui.desktop file to user's desktop
+    Branch at http://kubuntu.org/~jriddell/bzr/casper/trunk/
+
+ -- Jonathan Riddell <jriddell@ubuntu.com>  Thu, 13 Apr 2006 15:37:49 +0100
+
+casper (1.42) dapper; urgency=low
+
+  [ Luke Yelavich ]
+  * casper-bottom/30accessibility:
+    - Removed some settings from accessibility profiles as these are now
+      in the relevant packages.
+
+  [ Tollef Fog Heen ]
+  * Make sure to call gconftool as the right user.  Malone #38408
+  * Write an entry for / in fstab.  Hopefully fixes Malone #34330
+  * Change gdm-cdd.conf if it exists, not gdm.conf. Malone #37467
+  * Really disable update-notifier, this time by removing the correct
+    file.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 11 Apr 2006 15:43:24 +0200
+
+casper (1.41) dapper; urgency=low
+
+  * Don't mkdir then install -D, just install -D (this should prevent
+    ~ubuntu/Desktop being owned by root)
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 29 Mar 2006 10:52:42 +0200
+
+casper (1.40) dapper; urgency=low
+
+  * Add snd_powermac to /etc/modules on ppc.  (Malone: #27862)
+  * Use chmod -x instead of mv to disable readahead in order to not
+    trigger unionfs bugs
+  * Reboot the system when a key is pressed at the end of the integrity
+    check.  (Malone: #29203)
+  * Use usplash_write too when doing shutdown.  (Malone: #34537)
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 28 Mar 2006 10:09:49 +0200
+
+casper (1.39) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Disable update-notifier by default, as it won't make much sense for
+    most people.
+
+  [ Colin Watson ]
+  * Clear out user-setup questions from the debconf database after creating
+    the live CD user, to avoid confusing espresso into offering "Ubuntu
+    LiveCD user" as the user's default full name.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 13 Mar 2006 11:38:39 +0100
+
+casper (1.38) dapper; urgency=low
+
+  * Disable readahead since it breaks too much with squashfs and unionfs.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Thu,  9 Mar 2006 09:43:39 +0100
+
+casper (1.37) dapper; urgency=low
+
+  * Add support for having the squashfs directly on a device, thanks to
+    Paul Sladen for idea and a patch.
+  * If a directory "Examples" exists in ~ after we've run adduser, move it
+    to the Desktop subdirectory for greater visibility.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Sat,  4 Mar 2006 11:55:50 +0100
+
+casper (1.36) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Fix typo in find_cow_device so block devices didn't work at all.
+    Malone #31639.  Thanks to Richard Nemec for the catch.
+  * Update accessibility framework, thanks to Luke Yelavich.
+
+  [ Colin Watson ]
+  * Move the /cdrom mount into the new root filesystem.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed,  1 Mar 2006 11:13:54 +0100
+
+casper (1.35) dapper; urgency=low
+
+  * Check for preseed/file= in /proc/cmdline and feed any given file to
+    debconf-set-selections.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 27 Feb 2006 17:32:02 +0000
+
+casper (1.34) dapper; urgency=low
+
+  [ Luke Yelavich ]
+  * Add initial accessibility support framework
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 22 Feb 2006 14:36:07 +0100
+
+casper (1.33) dapper; urgency=low
+
+  * Make sure Desktop and the espresso-$ui.desktop is owned by the Ubuntu
+    user.  Malone #31991
+  * Fix check for rc6.d/S90reboot at the bottom of 25configure_init to
+    actually look in the right place.
+  * Make me the maintainer of the package.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 20 Feb 2006 09:49:02 +0100
+
+casper (1.32) dapper; urgency=low
+
+  * Fix copying of /usr/share/applications/espresso-gtkui.desktop.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 16 Feb 2006 16:47:15 +0000
+
+casper (1.31) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Print message about rebooting the system when the md5 check is
+    finished.
+  * Just have one copy of the casper shutdown scripts and symlink those
+    into the right place.  Malone #20978
+
+  [ Colin Watson ]
+  * Copy /usr/share/applications/espresso-gtkui.desktop to the live CD
+    user's desktop.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 14 Feb 2006 14:52:16 +0100
+
+casper (1.30) dapper; urgency=low
+
+  * Set a blank password for the ubuntu user.  This hopefully resolves
+    Malone #30118
+  * Pass keyboard layout information to xserver-xorg in the "new" scheme.
+  * Set up the right console keymap.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 14 Feb 2006 14:48:14 +0100
+
+casper (1.29) dapper; urgency=low
+
+  [ Tollef Fog Heen ]
+  * Fix typo in 22gnome_panel_data
+  * Configure all detected network interfaces.
+  * Add support for putting the persistent storage in a loopback file on
+    vfat volumes
+  * Configure all detected network interfaces.
+  * Allow putting the live filesystem image on a VFAT volume
+  * Allow putting the persistent storage in a loopback file on a VFAT
+    volume
+  * Lots of cleanups
+
+  [ Colin Watson ]
+  * Change casper-reconfigure to take the target root filesystem as its
+    first argument.
+  * Add espresso-casper package with hooks to repeat some things done by
+    casper in the installed system.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed, 25 Jan 2006 14:25:45 +0100
+
+casper (1.28) dapper; urgency=low
+
+  * Depend on user-setup
+  * First shot at IEEE1394 support.  Add sbp2 and ohci1394 as modules to
+    be copied into the initramfs.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 16 Jan 2006 22:06:35 +0100
+
+casper (1.27) dapper; urgency=low
+
+  * Try using unionfs on ppc again
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 10 Jan 2006 20:55:19 +0100
+
+casper (1.26) dapper; urgency=low
+
+  * Add persistency support
+  * Usplash integration
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 10 Jan 2006 17:53:54 +0100
+
+casper (1.25) dapper; urgency=low
+
+  * Make /rofs available to in the target system.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon,  9 Jan 2006 15:25:12 +0100
+
+casper (1.24) dapper; urgency=low
+
+  * For debconf-communicate, use a here-doc rather than trying to have \n
+    working in shell variables.
+  * The usplash fifo has moved, update paths accordingly.  Also conflict
+    with the old usplash and depend on new enough initramfs-tools.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Fri,  6 Jan 2006 14:20:37 +0100
+
+casper (1.23) dapper; urgency=low
+
+  * Move the building to binary-dep, since we're an arch: any package
+    now.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Thu,  5 Jan 2006 10:37:31 +0100
+
+casper (1.22) dapper; urgency=low
+
+  * Bunch debconf-communicate commands together to speed up the boot a
+    little bit.
+  * Add integrity checker, this is compiled code, so casper is now arch:
+    any
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Wed,  4 Jan 2006 12:56:13 +0100
+
+casper (1.21) dapper; urgency=low
+
+  * If locale is unset, use en_US.UTF8, not whatever comes first in the
+    list of supported locales.
+  * Generate locale and set the locale in /etc/environment
+  * Use user-setup to create the user, rather than doing it ourselves.
+  * Various cleanups and fixes, such as making debconf-communicate silent
+  * Disable checkroot when booting
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon,  2 Jan 2006 11:00:25 +0100
+
+casper (1.20) dapper; urgency=low
+
+  * Remove a large bunch of debugging output
+  * Depend on dmsetup so the hook script can copy in that
+  * Handle both squashfs and cloop images, with run-time detection
+  * Use devmapper + cloop on powerpc, not unionfs, since unionfs is a
+    disaster there.
+  * Make sure we have both SCSI and IDE CDROM modules available in the
+    initramfs.
+  * Do some initial keyboard setup handling so X will, at least in some
+    cases, have a chance of giving the user a sane keymap.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Mon, 19 Dec 2005 14:23:13 +0100
+
+casper (1.19) dapper; urgency=low
+
+  * Switch to initramfs, so casper only survives in spirit
+  * Use unionfs instead of a writeable devmapper snapshot
+  * Remove all debconfiscation, since we're an initramfs script now
+  * Make the postinst call update-initramfs -u
+  * Mount the CD read-only explicitly
+  * Make udevinfo silent if the device is not found.
+
+ -- Tollef Fog Heen <tfheen@ubuntu.com>  Tue, 13 Dec 2005 16:22:45 +0100
+
+casper (1.18) breezy; urgency=low
+
+  * Update translations from Rosetta: Greek, Spanish, French, Hungarian,
+    Brazilian Portuguese.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 19 Sep 2005 20:05:02 +0100
+
+casper (1.17) breezy; urgency=low
+
+  * Set /apps/gnome-screensaver/lock if gnome-screensaver is installed
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 16 Sep 2005 15:24:35 -0700
+
+casper (1.16) breezy; urgency=low
+
+  * Install a fake script in /lib/debian-installer.d/S72menu-exit after
+    pivoting that just calls sleep, to prevent scary console messages as d-i
+    tries to exit without its root filesystem.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed, 14 Sep 2005 10:28:06 +0100
+
+casper (1.15) breezy; urgency=low
+
+  * Neutralize branding in startup message
+  * Use clear in addition to reset, in hopes of concealing error messages on
+    the console from d-i's death throes
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri,  9 Sep 2005 11:24:14 -0700
+
+casper (1.14) breezy; urgency=low
+
+  * Set RUNNING_UNDER_GDM=yes in the user's environment to stop xscreensaver
+    locking the screen (Ubuntu #7150).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu,  8 Sep 2005 13:37:00 +0100
+
+casper (1.13) breezy; urgency=low
+
+  * Use reset, rather than clear, to clean up after the colored dialogs on vt1
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  7 Sep 2005 16:09:45 -0700
+
+casper (1.12) breezy; urgency=low
+
+  * Kill bterm after pivoting so that we can use vt1 rather than vt2,
+    thereby avoiding a fight between gdm and the X server (closes: Ubuntu
+    #14851).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Wed,  7 Sep 2005 15:48:40 +0100
+
+casper (1.11) breezy; urgency=low
+
+  * Remove debugging code which crept into 1.10
+  * Revert changes to casper-udeb.postinst which were intended for
+    starting usplash earlier (pre-1.10)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri,  2 Sep 2005 13:43:03 -0700
+
+casper (1.10) breezy; urgency=low
+
+  * Instead of starting usplash directly, create an init script which will
+    start it later (after the new init), to avoid it being killed by
+    busybox init
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 29 Aug 2005 20:26:58 -0700
+
+casper (1.9) breezy; urgency=low
+
+  * Remember to re-run 30copy-dev from 94usplash, in order to preserve the
+    device nodes clobbered by udev
+  * Redirect stdin of /etc/init.d/udev from /dev/console, to avoid
+    incredibly obnoxious 60-second sleep because it thinks we're
+    interactive
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 29 Aug 2005 18:30:38 -0700
+
+casper (1.8) breezy; urgency=low
+
+  * Add usplash support
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 29 Aug 2005 17:30:57 -0700
+
+casper (1.7) breezy; urgency=low
+
+  * Set DEBUG_XORG_PACKAGE=yes when reconfiguring xserver-xorg.  The
+    output is only written to post.log and isn't visible to the user, and
+    can be invaluable for debugging
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 22 Aug 2005 10:25:38 -0700
+
+casper (1.6) breezy; urgency=low
+
+  * Use debconf-copydb again (thanks, Tollef)
+  * Rename pre.d/20xconfig to pre.d/20prexconfig so that it is distinct from
+    post.d/20xconfig for purposes of the progress bar (no text for it; it's
+    very fast)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 17 Aug 2005 14:55:24 -0700
+
+casper (1.5) breezy; urgency=low
+
+  * Call MAKEDEV console in post.d/20xconfig as a workaround for bug
+    #13523
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 16 Aug 2005 15:24:06 -0700
+
+casper (1.4) breezy; urgency=low
+
+  * Revert to the old debconf hack; the debconf-copydb approach needs more
+    work
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 15 Aug 2005 22:48:11 -0700
+
+casper (1.3) breezy; urgency=low
+
+  * Revert unintentional release of experimental unionfs code in 1.2
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 13 Aug 2005 11:19:50 -0700
+
+casper (1.2) breezy; urgency=low
+
+  * Fix debconf-copydb regex in 20xconfig
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 13 Aug 2005 11:07:46 -0700
+
+casper (1.1) breezy; urgency=low
+
+  * Cope with xserver-xorg's rename of force_keyboard_detection to
+    autodetect_keyboard
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon,  4 Jul 2005 02:52:07 -0700
+
+casper (1.0) breezy; urgency=low
+
+  * Version number bump (we've been through a stable Ubuntu release, after
+    all)
+  * Rename pre.d/10snapshot to post.d/10filesystem, as it is about to
+    become more generic
+  * Seed xserver-xorg/force_keyboard_detection to true in 20xconfig, so as
+    to cause the keyboard layout to (continue to) be autodetected based on
+    d-i settings
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 16 Jun 2005 11:21:54 -0700
+
+casper (0.65) breezy; urgency=low
+
+  * As a performance optimization, only reconfigure gnome-panel-data if
+    booting on a laptop
+  * Disable the "lock screen" menu item (Ubuntu bug#7150)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  8 Jun 2005 16:02:14 -0700
+
+casper (0.64) breezy; urgency=low
+
+  * Merge colin.watson@canonical.com--2005/casper--debconf-copydb--0
+    - Use debconf-copydb rather than our temporary hack
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 31 May 2005 12:08:51 -0700
+
+casper (0.63) breezy; urgency=low
+
+  * Merge colin.watson@canonical.com--2005/casper--cdebconf-info--0
+    - Update for cdebconf 0.75: use db_info rather than db_x_setbacktitle.
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 18 Apr 2005 20:59:58 -0700
+
+casper (0.62) hoary; urgency=low
+
+  * Updated translations from
+    colin.watson@canonical.com--2005/casper--translations--0 (nb)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue,  5 Apr 2005 09:01:02 -0700
+
+casper (0.61) hoary; urgency=low
+
+  * Updated translations from
+    colin.watson@canonical.com--2005/casper--translations--0 (el, es, ro)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue,  5 Apr 2005 08:06:51 -0700
+
+casper (0.60) hoary; urgency=low
+
+  * Updated translations from
+    colin.watson@canonical.com--2005/casper--translations--0 (hu, id, pl)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 28 Mar 2005 11:26:21 -0800
+
+casper (0.59) hoary; urgency=low
+
+  * Updated translations from
+    colin.watson@canonical.com--2005/casper--translations--0 (de, pt_BR)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 25 Mar 2005 16:51:17 -0800
+
+casper (0.58) hoary; urgency=low
+
+  * Remove postfix shutdown links, as well as startup, to avoid an ugly error
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 24 Mar 2005 18:24:03 -0800
+
+casper (0.57) hoary; urgency=low
+
+  * Merge colin.watson@canonical.com--2005/casper--translations--0 up to
+    patch-2
+  * Preseed netcfg/wireless_essid_again for noninteractive network setup, +new
+    in netcfg 1.08ubuntu3 [colin.watson@canonical.com--2005/casper--netcfg--0]
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 23 Mar 2005 08:33:46 -0800
+
+casper (0.56) hoary; urgency=low
+
+  * Suppress error output from eject
+  * Remind the user to close the CD tray if they have one (Ubuntu #6668)
+  * Add arch-build target to debian/rules
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 22 Mar 2005 10:21:41 -0800
+
+casper (0.55) hoary; urgency=low
+
+  * Remove the hack introduced in 0.54, xorg 6.8.2-5 should be fixed
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 16 Mar 2005 18:11:05 -0800
+
+casper (0.54) hoary; urgency=low
+
+  * Temporarily set RECONFIGURE=true when reconfiguring xserver-xorg, to work
+    around a bug introduced in 6.8.2-3
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 16 Mar 2005 15:08:45 -0800
+
+casper (0.53) hoary; urgency=low
+
+  * Provide target-base-system (i.e. base system installed in /target, also
+    provided by base-installer).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 15 Mar 2005 13:01:53 +0000
+
+casper (0.52) hoary; urgency=low
+
+  * Arrange for $LANG to be set after pivot_root, so that (e.g.)
+    xserver-xorg can use it to infer the keymap (Ubuntu #7138)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 12 Mar 2005 02:10:59 -0800
+
+casper (0.51) hoary; urgency=low
+
+  * Disable kpersonalizer startup on first login
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat,  5 Mar 2005 13:47:13 -0800
+
+casper (0.50) hoary; urgency=low
+
+  * Add support for configuring kdm autologin
+  * Rename 15gdm-autologin to 15autologin, and the corresponding debconf template
+  * Remove obsolete XORG_FORCE_PROBE from 20xconfig
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu,  3 Mar 2005 10:37:31 -0800
+
+casper (0.49) hoary; urgency=low
+
+  * Fix 20xconfig harder
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  2 Mar 2005 21:20:03 -0800
+
+casper (0.48) hoary; urgency=low
+
+  * Source confmodule in 20xconfig
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  2 Mar 2005 21:02:35 -0800
+
+casper (0.47) hoary; urgency=low
+
+  * Copy over the value of debian-installer/keymap into the target system,
+    to allow the new logic in xserver-xorg.config to work
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  2 Mar 2005 20:45:38 -0800
+
+casper (0.46) hoary; urgency=low
+
+  * Lock the live user's password entirely.  Since the user is now
+    automagically logged in, continuously, both on the console and in X,
+    their password is irrelevant.
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon, 28 Feb 2005 08:31:13 -0800
+
+casper (0.45) hoary; urgency=low
+
+  * Enable TimedLogin in gdm, so that if the user logs out, they are
+    automatically logged back in after a few seconds (Ubuntu #6667)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sun, 27 Feb 2005 16:06:16 -0800
+
+casper (0.44) hoary; urgency=low
+
+  * Configure init to spawn shells on virtual consoles, rather than login
+    prompts (Ubuntu #6666)
+  * Skip X configuration if a serial console is in use
+  * Set the live user's password to be blank, rather than "ubuntu".  This
+    is, paradoxically, more secure if the user decides to install
+    openssh-server, since empty passwords are disallowed by default
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sun, 27 Feb 2005 15:40:15 -0800
+
+casper (0.43) hoary; urgency=low
+
+  * Override localechooser progress bar text to be more appropriate for the
+    live CD (closes: Ubuntu #6664).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Thu, 24 Feb 2005 19:12:00 +0000
+
+casper (0.42) hoary; urgency=low
+
+  * Preseed netcfg/no_interfaces, to avoid prompt when no network interfaces
+    can be configured (closes: Ubuntu #6107).
+  * Remove redundant DH_COMPAT setting in debian/rules, since there's
+    already a (different) debian/compat.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 22 Feb 2005 12:43:43 +0000
+
+casper (0.41) hoary; urgency=low
+
+  * Cope with change in default /etc/sudoers (admin group).
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 22 Feb 2005 09:14:30 +0000
+
+casper (0.40) hoary; urgency=low
+
+  * Copy /dev/tts to the live system as well as /dev/vc, for serial console.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Mon, 21 Feb 2005 19:03:54 +0000
+
+casper (0.39) hoary; urgency=low
+
+  * Fix reboot operation (cache the reboot binary)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 10 Feb 2005 20:51:08 -0800
+
+casper (0.38) hoary; urgency=low
+
+  * Eject the CD during shutdown/reboot
+    - Awful hack to copy /dev/cdroms to the live system, because the CD is
+      mounted using devfs names
+    - Add /usr/share/casper/shutdown script to casper-udeb
+    - Copy /usr/share/casper/shutdown to /etc/rc[06].d in 25configure-init
+  * Remove caspermon binary package, inadvertently enabled (not even
+    remotely ready)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 10 Feb 2005 13:43:56 -0800
+
+casper (0.37) hoary; urgency=low
+
+  * Fix casper-udeb/runlevel template
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue,  8 Feb 2005 19:37:43 -0800
+
+casper (0.36) hoary; urgency=low
+
+  * Rename post.d/25disable-init-scripts to 25configure-init
+  * Add casper-udeb/runlevel, to allow the default runlevel
+    to be set
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue,  8 Feb 2005 19:14:16 -0800
+
+casper (0.35) hoary; urgency=low
+
+  * Preseed netcfg/wireless_essid
+  * Remove obsolete confmodule load from pre.d/12fstab
+  * Don't mount a tmpfs on /var/run; it doesn't save a huge amount of
+    snapshot space, and packages expect their directories there to be
+    persistent
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Mon,  7 Feb 2005 15:46:52 -0800
+
+casper (0.34) hoary; urgency=low
+
+  * Use casper-reconfigure in 10adduser as well
+  * Add post.d/93save-logs to save copies of the bootstrap logs to
+    /var/log/casper
+  * Stop reconfiguring fontconfig; it insists on rebuilding the entire
+    font cache, and the only benefit was to unable subpixel hints
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed,  2 Feb 2005 10:42:19 -0800
+
+casper (0.33) hoary; urgency=low
+
+  * Re-upload to fix borked source package
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sun, 30 Jan 2005 12:21:07 -0800
+
+casper (0.32) hoary; urgency=low
+
+  * Factor out debconf hackery into casper-reconfigure
+  * Mount sysfs earlier, so we don't need to mess with it in 20xconfig
+  * Break 22simple-reconfig into 22fontconfig and 22gnome-panel-data, and
+    create progress bar text for them
+  * Preseed netcfg/dhcp_failed, to avoid a prompt when DHCP fails
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 29 Jan 2005 14:03:36 -0800
+
+casper (0.31) hoary; urgency=low
+
+  * Clear tty2 and print a nice message, before signalling init
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 29 Jan 2005 13:15:44 -0800
+
+casper (0.30) hoary; urgency=low
+
+  * Reconfigure fontconfig, to enable subpixel rendering based on the
+    hardware in use
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 27 Jan 2005 14:21:49 -0800
+
+casper (0.29) hoary; urgency=low
+
+  * Fix the problem described in 0.28 by preseeding a default for
+    netcfg/get_hostname
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 25 Jan 2005 23:04:03 -0800
+
+casper (0.28) hoary; urgency=low
+
+  * Suppress network configuration questions
+
+    - The goal is to make a reasonable effort to configure one interface
+    automatically, but if that is not possible, fall back to no
+    configuration.  We aren't quite there yet.
+
+    - If we fail to resolve our IP into a hostname using DNS, netcfg seems
+    to fall back to an empty value, rather than the default in the
+    template.
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 25 Jan 2005 22:55:35 -0800
+
+casper (0.27) hoary; urgency=low
+
+  * Add post.d/22simple-reconfig
+    - Reconfigure gnome-panel-data if it is installed, to set up the GNOME
+      session based on whether the system is a laptop
+    - Corresponding progress template
+    - mount /proc earlier (needed for, e.g. laptop-detect)
+  * Warn about screen blanking in X configuration progress message
+  * Simplify post.d/20xconfig and pre.d/13swap a bit
+  * Update TODO
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 22 Jan 2005 15:56:49 -0800
+
+casper (0.26) hoary; urgency=low
+
+  * Set NOPASSWD in /etc/sudoers for the initial user
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 21 Jan 2005 16:53:49 -0800
+
+casper (0.25) hoary; urgency=low
+
+  * mount /proc before signalling init, as it now uses /proc to determine
+    what is and is not a kernel thread
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 21 Jan 2005 16:04:52 -0800
+
+casper (0.24) hoary; urgency=low
+
+  * Add a backtitle properly
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 21 Jan 2005 09:07:19 -0800
+
+casper (0.23) hoary; urgency=low
+
+  * Add a backtitle
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 21 Jan 2005 09:02:01 -0800
+
+casper (0.22) hoary; urgency=low
+
+  * Search for swap on SCSI disks as well as IDE
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 19 Jan 2005 14:27:09 -0800
+
+casper (0.21) unstable; urgency=low
+
+  * Cosmetic changes to debconf templates
+  * Fix 10adduser to register debconf questions before setting their
+    values and flags
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 19 Jan 2005 14:14:20 -0800
+
+casper (0.20) hoary; urgency=low
+
+  * Remove legacy symlinks from casper/pre.d; they are now contained in
+    the relevant udebs
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 19 Jan 2005 13:22:33 -0800
+
+casper (0.19) hoary; urgency=low
+
+  * Update TODO
+  * casper-udeb Depends: md-modules
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 19 Jan 2005 11:23:51 -0800
+
+casper (0.18) hoary; urgency=low
+
+  * Enable new adduser code, using db_fset ... seen to suppress the questions
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 18 Jan 2005 15:06:48 -0800
+
+casper (0.17) hoary; urgency=low
+
+  * Convert snapshot setup to use debconf instead of hardcoded parameters
+  * Remove obselete-before-being-used username template
+  * Convert post.d/10adduser to use debconf passthrough to the passwd package,
+    and thus share its user-adding code rather than duplicating it.
+    - But don't enable it yet, since we need to find a way to prevent its
+    questions from being asked
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 18 Jan 2005 13:04:48 -0800
+
+casper (0.16) hoary; urgency=low
+
+  * casper-udeb Depends: casper-check, harddrive-detection
+  * Automatically find and enable swap devices
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 18 Jan 2005 11:23:48 -0800
+
+casper (0.15) hoary; urgency=low
+
+  * Set anna/standard_modules to false at startup to suppress unnecessary
+    udeb retrieval.
+
+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 18 Jan 2005 13:41:00 +0000
+
+casper (0.14) hoary; urgency=low
+
+  * Enable X autoconfiguration(!)
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 15 Jan 2005 02:19:58 -0800
+
+casper (0.13) hoary; urgency=low
+
+  * Rename templates so that they are named after the {pre,post}.d hook
+    which uses them
+  * Remove some unused templates
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Fri, 14 Jan 2005 10:11:02 -0800
+
+casper (0.12) hoary; urgency=low
+
+  * Add debconf templates for various things that we currently hardcode.
+    Not actually used yet due to need for testing, but having the
+    templates present greatly simplifies testing the remaining integration
+    work
+
+ -- Matt Zimmerman <mdz@ubuntu.com>  Thu, 13 Jan 2005 20:32:39 -0800
+
+casper (0.11) hoary; urgency=low
+
+  * Update post.d/20xconfig to use debconf passthrough to cdebconf
+    (requires debconf 1.4.42 and cdebconf 0.75), but leave it disabled for
+    now
+  * Create /etc/fstab in the target (this also seems to solve the problem
+    with noatime disappearing, and so should reduce snapshot utilization)
+
+ -- Matt Zimmerman <mdz@debian.org>  Thu, 13 Jan 2005 18:25:36 -0800
+
+casper (0.10) hoary; urgency=low
+
+  * Remove rc?.d/K??hwclock.sh links, to avoid changing the system clock
+    during reboot or shutdown
+
+ -- Matt Zimmerman <mdz@debian.org>  Thu, 13 Jan 2005 18:13:31 -0800
+
+casper (0.9) hoary; urgency=low
+
+  * Fix gdm autologin configuration (broken in 0.8)
+
+ -- Matt Zimmerman <mdz@debian.org>  Wed, 12 Jan 2005 10:52:05 -0800
+
+casper (0.8) hoary; urgency=low
+
+  * Add debian-installer/casper-udeb/title template, to specify more
+    readable menu item text
+  * Create /usr/lib/casper/{pre,post}.d and move all of our internal logic
+    there
+  * Create temporary symlinks in pre.d for the prebaseconfig.d items we
+    want
+  * Convert errors into proper error dialogs
+  * Make some pre.d scripts idempotent, for ease of testing
+
+ -- Matt Zimmerman <mdz@debian.org>  Tue, 11 Jan 2005 16:59:35 -0800
+
+casper (0.7) hoary; urgency=low
+
+  * Disable X configuration temporarily; need to resolve debconf issues
+
+ -- Matt Zimmerman <mdz@canonical.com>  Tue, 11 Jan 2005 13:14:43 -0800
+
+casper (0.6) hoary; urgency=low
+
+  * Allow "modprobe ext2" to fail; apparently it's sometimes compiled in
+
+ -- Matt Zimmerman <mdz@debian.org>  Tue, 11 Jan 2005 12:12:28 -0800
+
+casper (0.5) hoary; urgency=low
+
+  * Attempt to configure X
+    - This doesn't work very well yet (PCI BusID doesn't seem to get
+    updated, for example), so we still don't start gdm by default)
+  * Conditionalize some of the configuration code, so we automatically do
+    the right thing if gdm or X isn't installed
+  * Add German translation from Andreas Mueller
+  * modprobe ext2, to let powerpc work (this should probably happen
+    elsewhere, but for now...)
+
+ -- Matt Zimmerman <mdz@debian.org>  Sun,  9 Jan 2005 17:49:56 -0800
+
+casper (0.4) hoary; urgency=low
+
+  * Mount tmpfs on /tmp and /var/run, should save many writes to the snapshot
+
+ -- Matt Zimmerman <mdz@debian.org>  Fri,  7 Jan 2005 18:35:26 -0800
+
+casper (0.3) hoary; urgency=low
+
+  * Disable anacron and postfix startup
+  * Don't cripple /bin/apt-install in d-i (this was a workaround to
+    prevent d-i from installing packages which should have been present in
+    the filesystem image anyway, but weren't)
+
+ -- Matt Zimmerman <mdz@debian.org>  Fri,  7 Jan 2005 18:10:55 -0800
+
+casper (0.2) hoary; urgency=low
+
+  * Use mount --move to move the cdrom mount point, so that we can unmount
+    /initrd and free up the memory used by d-i
+  * Use /dev/ram1 rather than /dev/ram0 for the COW stuff, since /dev/ram0
+    is used for initrds and we want to avoid confusion
+  * Organize casper-udeb.postinst into shell functions
+  * Add a progress bar
+  * Add a debian/compat file (version 4)
+
+ -- Matt Zimmerman <mdz@debian.org>  Fri,  7 Jan 2005 08:01:21 -0800
+
+casper (0.1) hoary; urgency=low
+
+  * Initial Release.
+
+ -- Matt Zimmerman <mdz@canonical.com>  Wed,  5 Jan 2005 14:30:28 -0800
diff --git a/docs/parameters.txt b/docs/parameters.txt
new file mode 100644 (file)
index 0000000..f8bb2f4
--- /dev/null
@@ -0,0 +1,72 @@
+Boot Parameters for Debian Live
+-------------------------------
+
+Updated for live-initramfs 1.110.3-1 on 2007-10-22.
+
+These options (can be combined) work from the bootloader prompt:
+
+live access=ACCESS
+live console=TTY,SPEED
+live debug
+live fetch=URL
+live hostname=HOSTNAME
+live username=USER
+live userfullname=USERFULLNAME
+live integrity-check
+live ip=[CLIENT_IP]:[SERVER_IP]:[GATEWAY_IP]:[NETMASK]:[HOSTNAME]:[DEVICE]:[AUTOCONF]  [,[CLIENT_IP]:[SERVER_IP]:[GATEWAY_IP]:[NETMASK]:[HOSTNAME]:[DEVICE]:[AUTOCONF]]*
+live ip[=frommedia]
+live {keyb|kbd-chooser/method}=KEYBOARD
+live {klayout|console-setup/layoutcode}=LAYOUT
+live {kvariant|console-setup/variantcode}=VARIANT
+live {kmodel|console-setup/modelcode}=CODE
+live koptions=OPTIONS
+live live-getty
+live {live-media|bootfrom}=DEVICE
+live {live-media-encryption|encryption}=TYPE
+live live-media-offset=BYTES
+live live-media-path=PATH
+live live-media-timeout=SECONDS
+live {locale|debian-installer/locale}=LOCALE
+live module=NAME
+live netboot[=nfs|cifs]
+live nfsopts=
+live noautologin
+live noxautologin
+live nofastboot
+live nopersistent
+live nosudo
+live noswap
+live nouser
+live noxautoconfig
+live persistent
+live {preseed/file|file}=FILE
+live package/question=VALUE
+live quickreboot
+live showmounts
+live timezone=TIMEZONE
+live todisk=DEVICE
+live toram
+live union=unionfs|aufs
+live utc=yes|no
+live xdebconf
+live xvideomode=RESOLUTION
+
+Values for the vga kernel parameter:
+
+Colours   640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
+--------+--------------------------------------------------------------
+ 4 bits |    ?       ?     0x302      ?        ?        ?         ?
+ 8 bits |  0x300   0x301   0x303    0x305    0x161    0x307     0x31C
+15 bits |    ?     0x310   0x313    0x316    0x162    0x319     0x31D
+16 bits |    ?     0x311   0x314    0x317    0x163    0x31A     0x31E
+24 bits |    ?     0x312   0x315    0x318      ?      0x31B     0x31F
+32 bits |    ?       ?       ?        ?      0x164      ?
+
+Colours   640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
+--------+--------------------------------------------------------------
+ 4 bits |    ?       ?      770       ?        ?        ?         ?
+ 8 bits |   768     769     771      773      353      775       796
+15 bits |    ?      784     787      790      354      793       797
+16 bits |    ?      758     788      791      355      794       798
+24 bits |    ?      786     789      792       ?       795       799
+32 bits |    ?       ?       ?        ?       356       ?
diff --git a/hooks/live b/hooks/live
new file mode 100755 (executable)
index 0000000..5d9de44
--- /dev/null
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# initramfs hook for live-initramfs (Debian Live)
+
+set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+. /usr/share/initramfs-tools/hook-functions
+
+# live-initramfs hook
+
+# Handling live-initramfs
+
+# Configuration
+if [ -r /etc/live.conf ]
+then
+       . /etc/live.conf
+
+       mkdir -p "${DESTDIR}"/etc
+       cp /etc/live.conf "${DESTDIR}"/etc
+fi
+
+# Directories
+mkdir -p "${DESTDIR}"/lib/live-initramfs
+
+# Executables
+copy_exec /usr/share/live-initramfs/live-reconfigure /bin
+copy_exec /usr/share/live-initramfs/live-preseed /bin
+
+# Scripts
+cp /usr/share/initramfs-tools/scripts/live-functions "${DESTDIR}"/scripts
+cp /usr/share/initramfs-tools/scripts/live-helpers "${DESTDIR}"/scripts
+
+# Handling other stuff
+
+# Configuration: keymap (usefull when using encryption)
+if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
+then
+       copy_exec /bin/loadkeys /bin
+
+       mkdir -p "${DESTDIR}"/etc
+       cp /etc/console/boottime.kmap.gz "${DESTDIR}"/etc
+fi
+
+# Configuration: Unique ID
+if [ -n "${LIVE_GENERATE_UUID}" ]
+then
+       mkdir -p "${DESTDIR}"/conf
+       uuidgen -r > "${DESTDIR}"/conf/uuid.conf
+fi
+
+# Filesystem: cifs
+if [ -x /sbin/mount.cifs ]
+then
+       copy_exec /sbin/mount.cifs /sbin
+        manual_add_modules cifs
+fi
+
+# Filesystem: ext3
+manual_add_modules ext3
+
+# Filesystem: squashfs
+copy_exec /sbin/losetup /sbin
+manual_add_modules loop
+manual_add_modules squashfs
+
+# Filesystem: unionfs/aufs
+manual_add_modules unionfs
+manual_add_modules aufs
+
+# Filesystem: vfat
+manual_add_modules nls_cp437
+manual_add_modules nls_iso8859-1
+manual_add_modules nls_utf8
+manual_add_modules vfat
+
+# Hardware: cdrom
+manual_add_modules ide-cd
+manual_add_modules ide-generic
+manual_add_modules ohci1394
+manual_add_modules sbp2
+manual_add_modules sr_mod
+
+# Hardware: network
+auto_add_modules net
+
+# Program: eject
+if [ -x /usr/bin/eject ]
+then
+       copy_exec /usr/bin/eject /bin
+fi
+
+# Program: md5sum
+copy_exec /usr/bin/md5sum /bin
+
+# Program: udev
+copy_exec /sbin/udevtrigger /sbin
+copy_exec /sbin/udevsettle /sbin
+copy_exec /usr/bin/udevinfo /bin
+
+# Program: wget
+if [ -x /usr/bin/wget ]
+then
+       copy_exec /usr/bin/wget /bin
+fi
diff --git a/manpages/Makefile b/manpages/Makefile
new file mode 100644 (file)
index 0000000..c2ddc94
--- /dev/null
@@ -0,0 +1,28 @@
+all: doc
+
+doc: doc_man doc_html
+
+doc_html: html-stamp
+
+html-stamp: live-initramfs.en.7.txt live-snapshot.en.1.txt
+       asciidoc -b xhtml11 live-initramfs.en.7.txt
+       asciidoc -b xhtml11 live-snapshot.en.1.txt
+       touch html-stamp
+
+doc_man: man-stamp
+
+man-stamp: live-initramfs.en.7.txt live-snapshot.en.1.txt
+       # live-initramfs:
+       asciidoc -d manpage -b docbook live-initramfs.en.7.txt
+       xsltproc /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl live-initramfs.en.7.xml
+       mv live-initramfs.7 live-initramfs.en.7
+       # live-snapshot:
+       asciidoc -d manpage -b docbook live-snapshot.en.1.txt
+       xsltproc /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl live-snapshot.en.1.xml
+       mv live-snapshot.1 live-snapshot.en.1
+       touch man-stamp
+
+clean:
+       rm -f live-initramfs.en.7.html live-initramfs.en.7.xml live-initramfs.en.7
+       rm -f live-snapshot.en.1.html live-snapshot.en.1.xml live-snapshot.en.1
+       rm -f html-stamp man-stamp
diff --git a/manpages/live-initramfs.en.7.txt b/manpages/live-initramfs.en.7.txt
new file mode 100644 (file)
index 0000000..0b1a4bf
--- /dev/null
@@ -0,0 +1,318 @@
+live-initramfs(7)
+=================
+
+Name
+----
+live-initramfs - Debian Live initramfs hook
+
+Synopsis
+--------
+BOOT=live
+
+as kernel parameter at boot prompt.
+
+Description
+-----------
+
+live-initramfs is a hook for the initramfs-tools, used to generate a initramfs
+capable to boot live systems, such as those created by *live-helper*(7).
+This includes the Debian Live isos, netboot tarballs, and usb stick images.
+
+At boot time it will look for a (read-only) media containing a "/live"
+directory where a root filesystems (often a compressed filesystem image like
+squashfs) is stored. If found, it will create a writable environment, using
+unionfs, for Debian like systems to boot from.
+
+You probably do not want to install this package onto a non-live system,
+although it will do no harm.
+
+live-initramfs is a fork of link:http://packages.ubuntu.com/casper/[casper].
+casper was originally written by Tollef Fog Heen <tfheen@canonical.com>
+and Matt Zimmerman <mdz@canonical.com>.
+
+Boot options
+------------
+
+Here is the complete list of recognized boot parameters by live-initramfs.
+
+  access=*ACCESS*::
+
+Set the accessibility level for physically or visually impared users. ACCESS
+must be one of v1, v2, v3, m1, or m2. v1=lesser visual impairment, v2=moderate
+visual impairment, v3=blindness, m1=minor motor difficulties, m2=moderate motor
+difficulties.
+
+  console=*TTY,SPEED*::
+
+Set the default console to be used with the "live-getty" option. Example:
+"console=ttyS0,115200"
+
+  debug::
+
+Makes initramfs boot process more verbose.
+
+  fetch=*URL*::
+
+Another form of netboot by downloading a squashfs image from a given url,
+copying to ram and booting it.
+
+  hostname=*HOSTNAME*, username=*USER*, userfullname=*USERFULLNAME*::
+
+Those parameters lets you override values read from the config file.
+
+  ignore_uuid
+
+Do not check that any UUID embedded in the initramfs matches the discovered
+medium. live-initramfs may be told to generate a UUID by setting
+LIVE_GENERATE_UUID=1 when building the initramfs.
+
+  integrity-check::
+
+If specified, an MD5 sum is calculated on the live media during boot and
+compared to the value found in md5sum.txt found in the root directory of the
+live media.
+
+  ip=**[CLIENT_IP]:[SERVER_IP]:[GATEWAY_IP]:[NETMASK]:[HOSTNAME]:[DEVICE]:[AUTOCONF] [,[CLIENT_IP]:[SERVER_IP]:[GATEWAY_IP]:[NETMASK]:[HOSTNAME]:[DEVICE]:[AUTOCONF]]***::
+
+Let you specify the name(s) and the options of the interface(s) that should be
+configured at boot time. Do not specify this if you want to use dhcp (default).
+It will be changed in a future release to mimick official kernel boot param
+specification (e.g. ip=10.0.0.1::10.0.0.254:255.255.255.0::eth0,:::::eth1:dhcp).
+
+  ip[=**frommedia**]::
+
+If this variable is set, dhcp and static configuration are just skipped and the
+system will use the (must be) media-preconfigured /etc/network/interfaces
+instead.
+
+  {keyb|kbd-chooser/method}=**KEYBOARD**, {klayout|console-setup/layoutcode}=**LAYOUT**, {kvariant|console-setup/variantcode}=**VARIANT**, {kmodel|console-setup/modelcode}=**CODE**, koptions=**OPTIONS**::
+
+Configure the running keyboard as specified, if this one misses live-initramfs
+behaves as if "keyb=us" was specified. It will be interfered from "locale=" if
+locale is only 2 lowecase letters as a special case. You could also specify
+console layout, variant, code, and options (no defaults).
+
+  live-getty::
+
+This changes the auto-login on virtual terminals to use the (experimental)
+live-getty code. With this option set the standard kernel argument "console=" is
+parsed and if a serial console is specified then live-getty is used to autologin
+on the serial console.
+
+  {live-media|bootfrom}=**DEVICE**::
+
+If you specify one of this two equivalent forms, live-initramfs will first try
+to find this device for the "/live" directory where the read-only root
+filesystem should reside. If it did not find something usable, the normal scan
+for block devices is performed.
+
+  {live-media-encryption|encryption}=**TYPE**::
+
+live-initramfs will mount the encrypted rootfs TYPE, asking the passphrase,
+useful to build paranoid live systems :-). TYPE supported so far are "aes" for
+loop-aes encryption type.
+
+  live-media-offset=**BYTES**::
+
+This way you could tell live-initramfs that your image starts at offset BYTES in
+the above specified or autodiscovered device, this could be useful to hide the
+Debian Live iso or image inside another iso or image, to create "clean" images.
+
+  live-media-path=**PATH**::
+
+Sets the path to the live filesystem on the medium. By default, it is set to
+'/live' and you should not change that unless you have customized your media
+accordingly.
+
+  live-media-timeout=**SECONDS**::
+
+Set the timeout in seconds for the device specified by "live-media=" to become
+ready before giving up.
+
+  {locale|debian-installer/locale}=**LOCALE**::
+
+Configure the running locale as specified, if not present the live-media rootfs
+configured locale will be used and if also this one misses live-initramfs behave
+as "locale=en_US.UTF-8" was specified. If only 2 lowercase letter are specified
+(like "it"), the "maybe wanted" locale is generated (like en:EN.UTF-8), in this
+case if also "keyb=" is unspecified is set with those 2 lowercase letters
+(keyb=us). Beside that facility, only UTF8 locales are supported by
+live-initramfs.
+
+  module=**NAME**::
+
+Instead of using the default optional file "filesystem.module" (see below)
+another file could be specified without the extension ".module"; it should be
+placed on "/live" directory of the live medium.
+
+  netboot[=**nfs**|**cifs**]::
+
+This tells live-initramfs to perform a network mount. The parameter "nfsroot="
+(with optional "nfsopts="), should specify where is the location of the root
+filesystem.  With no args, will try cifs first, and if it fails nfs.
+
+  nfsopts=::
+
+This lets you specify custom nfs options.
+
+  noautologin::
+
+This parameter disables the automatic terminal login only, not touching gdk/kdm.
+
+  noxautologin::
+
+This parameter disables the automatic login of gdm/kdm only, not touching
+terminals.
+
+  nofastboot::
+
+This parameter disables the default disabling of filesystem checks in
+/etc/fstab. If you have static filesystems on your harddisk and you want them to
+be checked at boot time, use this parameter, otherwise they are skipped.
+
+  nopersistent::
+
+disables the "persistent" feature, useful if the bootloader (like syslinux) has
+been installed with persistent enabled.
+
+  noprompt
+
+Do not prompt to eject the CD on reboot.
+
+  nosudo::
+
+This parameter disables the automatic configuration of sudo.
+
+  noswap::
+
+This parameter disables usage of local swap partitions.
+
+  nouser::
+
+This parameter disables the creation of the default user completely.
+
+  noxautoconfig::
+
+This parameter disables Xorg auto-reconfiguration at boot time. This is valuable
+if you either do the detection on your own, or, if you want to ship a custom,
+premade xorg.conf in your live system.
+
+  persistent::
+
+live-initramfs will look for persistent and snapshot partitions or files labeled
+"live-rw", "home-rw", and files called "live-sn*", "home-sn*" and will try to,
+in order: mount as /cow the first, mount the second in /home, and just copy the
+contents of the latter in appropriate locations (snapshots). Snapshots will be
+tried to be updated on reboot/shutdown. Look at live-snapshot(1) for more
+informations.
+
+  {preseed/file|file}=**FILE**::
+
+A path to a file present on the rootfs could be used to preseed debconf
+database.
+
+  package/question=**VALUE**::
+
+All debian installed packages could be preseeded from command-line that way,
+beware of blanks spaces, they will interfere with parsing, use a preseed file in
+this case.
+
+  quickreboot::
+
+This option causes live-initramfs to reboot without attempting to eject the
+media and without asking the user to remove the boot media.
+
+  showmounts::
+
+This parameter will make live-initramfs to show on "/" the ro filesystems
+(mostly compressed) on "/live". This is not enabled by default because could
+lead to problems by applications like "mono" which store binary paths on
+installation.
+
+  textonly
+
+Start up to text-mode shell prompts, disabling the graphical user interface.
+
+  timezone=**TIMEZONE**::
+
+By default, timezone is set to UTC. Using the timezone parameter, you can set it
+to your local zone, e.g. Europe/Zurich.
+
+  todisk=**DEVICE**::
+
+Adding this parameter, live-initramfs will try to copy the entire read-only
+media to the specified device before mounting the root filesystem. It probably
+needs a lot of free space. Subsequent boots should then skip this step and just
+specify the "live-media=DEVICE" boot parameter with the same DEVICE used this
+time.
+
+  toram::
+
+Adding this parameter, live-initramfs will try to copy the whole read-only media
+to the computer's RAM before mounting the root filesystem. This could need a lot
+of ram, according to the space used by the read-only media.
+
+  union=**unionfs**|**aufs**::
+
+By default, live-initramfs uses unionfs. With this parameter, you can switch to
+aufs.
+
+  utc=**yes**|**no**::
+
+By default, Debian systems do assume that the hardware clock is set to UTC. You
+can change or explicitly set it with this parameter.
+
+  xdebconf::
+
+Uses xdebconfigurator, if present on the rootfs, to configure X instead of the
+standard procedure (experimental).
+
+  xvideomode=**RESOLUTION**::
+
+Doesn't do xorg autodetection, but enforces a given resolution.
+
+Files
+-----
+
+  /etc/live.conf
+
+Some variables can be configured via this config file (inside the live system).
+
+   /live/filesystem.module
+
+This optional file (inside the live media) contains a list of white-space or
+carriage-return-separated file names corresponding to disk images in the "/live"
+directory. If this file exists, only images listed here will be merged into the
+root unionfs, and they will be loaded in the order listed here. The first entry
+in this file will be the "lowest" point in the unionfs, and the last file in
+this list will be on the "top" of the unionfs, directly below /cow.  Without
+this file, any images in the "/live" directory are loaded in alphanumeric order.
+
+See also
+--------
+
+live-snapshot(1), initramfs-tools(8), live-helper(7), live-initscripts(7),
+live-webhelper(7)
+
+Bugs
+----
+
+Report bugs against live-initramfs
+link:http://packages.qa.debian.org/live-initramfs[http://packages.qa.debian.org/live-initramfs].
+
+Homepage
+--------
+
+More information about the Debian Live project can be found at
+link:http://debian-live.alioth.debian.org/[http://debian-live.alioth.debian.org/] and
+link:http://wiki.debian.org/DebianLive/[http://wiki.debian.org/DebianLive/].
+
+Authors
+-------
+
+live-initramfs is maintained by Daniel Baumann <daniel@debian.org>
+for the Debian project.
+
+live-initramfs is a fork of link:http://packages.ubuntu.com/casper/[casper].
+casper was originally written by Tollef Fog Heen <tfheen@canonical.com>
+and Matt Zimmerman <mdz@canonical.com>.
diff --git a/manpages/live-snapshot.en.1.txt b/manpages/live-snapshot.en.1.txt
new file mode 100644 (file)
index 0000000..7cebed5
--- /dev/null
@@ -0,0 +1,100 @@
+live-snapshot(1)
+================
+
+Name
+----
+live-snapshot - a simple script to ease persistence usage
+
+Synopsis
+--------
+live-snapshot [-c|--cow **DIRECTORY**s] [-d|--device **DEVICE**] [-e|--exclude-list **FILE**] [-o|--output **FILE**] [-t|--type **TYPE**]
+
+live-snapshot [-r|--resync-string **STRING**]
+
+live-snapshot [-h|--help]
+
+live-snapshot [-u|--usage]
+
+live-snapshot [-v|--version]
+
+Description
+-----------
+
+live-snapshot is a script which can be used to build the right types of
+persistent image files supported by live-initramfs(7). It is also used on
+exit by the live-initramfs init script to resync the boot-found snapshots
+devices.
+
+Options
+-------
+
+  -c, --cow **DIRECTORY**::
+
+specifies the input directory to be cloned in the image file. Its default value
+"/live/cow" should be right for most uses. However it could be handy to specify
+"/home" and type ext2 for the type to prepare an image file suited to be
+directly mounted by live-initramfs as home.
+
+  -d, --device **DEVICE**::
+
+sets the device where the media which the snapshot/persistence file/partition
+will be put. If it is not specified, a tmpfs will be used and linked to the
+user's desktop to move it where it is needed. If the device has no filesystem,
+an ext2 fs will be automatically created and labelled according to the values
+specified after the "--output" value or with a sane default.
+
+  -e, --exclude-list **FILE**::
+
+a file containing a list of filenames/paths that should not be saved. This exclude list will be remebered on the target snapshot media for reuse.
+
+  -o, --output **FILE**::
+
+the filename/label used for the output file/partition. If left blank, live-snapshot will search for a proper file on the device or use the whole partition.
+
+  -r, --resync-string **STRING**::
+
+internally used on resyncs.
+
+  -t, --type **TYPE**::
+
+Type could be one of "cpio", "squashfs" or "ext2".
+
+  -h, --help::
+
+display help and exit
+
+  -u, --usage::
+
+show usage and exit
+
+  -v, --version::
+
+output version information and exit
+
+See also
+--------
+
+live-initramfs(8)
+
+This program is a part of live-initramfs.
+
+Bugs
+----
+
+Report bugs against live-initramfs
+link:http://packages.qa.debian.org/live-initramfs[http://packages.qa.debian.org/live-initramfs].
+
+Homepage
+--------
+
+More information about the Debian Live project can be found at
+link:http://debian-live.alioth.debian.org/[http://debian-live.alioth.debian.org/] and
+link:http://wiki.debian.org/DebianLive/[http://wiki.debian.org/DebianLive/].
+
+Authors
+-------
+
+live-initramfs is maintained by Daniel Baumann <daniel@debian.org> for the
+Debian project. live-initramfs is a fork of
+link:http://packages.ubuntu.com/casper/[casper]. casper was originally written
+by Tollef Fog Heen <tfheen@canonical.com> and Matt Zimmerman <mdz@canonical.com>.
diff --git a/manpages/live-snapshot.it.1.txt b/manpages/live-snapshot.it.1.txt
new file mode 100644 (file)
index 0000000..e396efe
--- /dev/null
@@ -0,0 +1,107 @@
+live-snapshot(1)
+================
+
+Name
+----
+live-snapshot - uno script per facilitare l'uso della persistenza sui sistemi live
+
+Synopsis
+--------
+live-snapshot [-c|--cow **DIRECTORY**s] [-d|--device **DEVICE**] [-e|--exclude-list **FILE**] [-o|--output **FILE**] [-t|--type **TYPE**]
+
+live-snapshot [-r|--resync-string **STRING**]
+
+live-snapshot [-h|--help]
+
+live-snapshot [-u|--usage]
+
+live-snapshot [-v|--version]
+
+Description
+-----------
+
+live-snapshot `e uno script che pu`o essere usato per costruire un file immagine formattato
+correttamente per essere usato da live-initramfs(7); viene inoltre usato dallo script di
+init di live-initramfs in uscita per sincronizzare i device di snapshot riconosciuti al boot.
+
+Options
+-------
+
+  -c, --cow **DIRECTORY**::
+
+specifica la directory da clonare nel file immagine. Il valore di default `e
+lo stesso default usato da live-initramfs per la sua directory COW (copy on
+write, un tempo situata in "/live/cow") ed `e sufficiente per gli usi comuni.
+Pu`o essere utile tuttavia specificare "/home" e come tipo "ext2" per
+preparare un file immagine adatto per essere montato da live-initramfs come
+"/home" al boot.
+
+  -d, --device **DEVICE**::
+
+seleziona il device dove il file/partizione di snapshot o persistenza dovr`a
+essere sistemato. Se il device non ha un filesystem, ne verr`a creato uno
+automaticamente, di tipo ext2 ed etichettato (label) in base al valore
+specificato nell'opzione "--output" o con un default. Se non viene specificato
+nessun device, verr`a usato un "tmpfs" linkato sul desktop dell'utente, in
+modo che port`a essere mosso dove si vuole.
+
+  -e, --exclude-list **FILE**::
+
+un file contenente una lista di file e percorsi che NON devono essere salvati.
+Questa lista verr`a inclusa nello snapshot per essere riutilizzata.
+
+  -o, --output **FILE**::
+
+il nome del file o l'etichetta (label) da usare per il file o la partizione di
+snapshot. Se non specificata, live-snapshot cercher\`a un file all'interno
+del device oppure user`a l'intera partizione.
+
+  -r, --resync-string **STRING**::
+
+usato internamente nelle sincronizzazioni dallo script di init di
+live-initramfs. Il formato pu\`o cambiare, usatelo a vostro rischio.
+
+  -t, --type **TYPE**::
+
+il tipo pu`o essere "cpio", "squashfs" o "ext2".
+
+  -h, --help::
+
+mostra l'aiuto ed esce
+
+  -u, --usage::
+
+mostra l'utilizzo ed esce
+
+  -v, --version::
+
+da informazioni sulla versione ed esce
+
+See also
+--------
+
+live-initramfs(8)
+
+Questo programma fa parte di live-initramfs.
+
+Bugs
+----
+
+Riportate i bug sul pacchetto live-initramfs
+link:http://packages.qa.debian.org/live-initramfs[http://packages.qa.debian.org/live-initramfs].
+
+Homepage
+--------
+
+Ulteriori informazioni su progetto Debian Live possono essere trovate su
+link:http://debian-live.alioth.debian.org/[http://debian-live.alioth.debian.org/] e
+link:http://wiki.debian.org/DebianLive/[http://wiki.debian.org/DebianLive/].
+
+Authors
+-------
+
+live-initramfs `e mantenuto da Daniel Baumann <daniel@debian.org> per il
+progetto Debian. live-initramfs `e un fork di
+link:http://packages.ubuntu.com/casper[casper]. casper `e stato scritto
+originariamente da Tollef Fog Heen <tfheen@canonical.com> e Matt Zimmerman
+<mdz@canonical.com>.
diff --git a/patches/grml_patch_add_rsync.diff b/patches/grml_patch_add_rsync.diff
new file mode 100644 (file)
index 0000000..1c84c62
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/hooks/live       2007-11-01 22:26:49.063100777 +0100
++++ b/hooks/live       2007-11-01 22:27:28.560386219 +0100
+@@ -74,6 +74,8 @@
+ # Filesystem: ext3
+ manual_add_modules ext3
++copy_exec /usr/bin/rsync
++
+ # Filesystem: squashfs
+ copy_exec /sbin/losetup /sbin
+ manual_add_modules loop
diff --git a/patches/grml_patch_toram.diff b/patches/grml_patch_toram.diff
new file mode 100644 (file)
index 0000000..48150d7
--- /dev/null
@@ -0,0 +1,25 @@
+--- a/scripts/live     2007-11-01 22:25:41.567739580 +0100
++++ b/scripts/live     2007-11-01 23:03:02.413731337 +0100
+@@ -609,9 +609,19 @@
+       else
+               if [ -n "${MODULETORAMFILE}" ]
+               then
+-                      cp ${MODULETORAMFILE} ${copyto} # copy only the filesystem module
+-              else
+-                      cp -a ${copyfrom}/* ${copyto}   # "cp -a" from busybox also copies hidden files
++                        log_begin_msg "Copying $MODULETORAMFILE to RAM" >/dev/console
++                      if [ -x /usr/bin/rsync ] ; then
++                         rsync -a --progress ${MODULETORAMFILE} ${copyto} 1>/dev/console # copy only the filesystem module
++                      else
++                         cp ${MODULETORAMFILE} ${copyto} # copy only the filesystem module
++                      fi
++              else
++                        log_begin_msg "Copying medium to RAM" >/dev/console
++                      if [ -x /usr/bin/rsync ] ; then
++                         rsync -a --progress ${copyfrom}/* ${copyto} 1>/dev/console  # "cp -a" from busybox also copies hidden files
++                      else
++                         cp -a ${copyfrom}/* ${copyto}   # "cp -a" from busybox also copies hidden files
++                      fi
+               fi
+               livefs_root
diff --git a/scripts/live b/scripts/live
new file mode 100755 (executable)
index 0000000..1dcbc74
--- /dev/null
@@ -0,0 +1,1280 @@
+#!/bin/sh
+
+# set -e
+
+export PATH="/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
+
+echo "/root/lib" >> /etc/ld.so.conf
+echo "/root/usr/lib" >> /etc/ld.so.conf
+
+mountpoint="/live/image"
+LIVE_MEDIA_PATH="live"
+
+root_persistence="live-rw"
+home_persistence="home-rw"
+root_snapshot_label="live-sn"
+home_snapshot_label="home-sn"
+
+USERNAME="user"
+USERFULLNAME="Live user"
+HOSTNAME="host"
+
+mkdir -p "${mountpoint}"
+
+[ -f /etc/live.conf ] && . /etc/live.conf
+export USERNAME USERFULLNAME HOSTNAME
+
+. /scripts/live-helpers
+
+if [ ! -f /live.vars ]
+then
+       touch /live.vars
+fi
+
+Arguments ()
+{
+       PRESEEDS=""
+
+       for ARGUMENT in $(cat /proc/cmdline)
+       do
+               case "${ARGUMENT}" in
+                       access=*)
+                               ACCESS="${ARGUMENT#access=}"
+                               export ACCESS
+                               ;;
+
+                       console=*)
+                               DEFCONSOLE="${ARGUMENT#*=}"
+                               export DEFCONSOLE
+                               ;;
+
+                       debug)
+                               DEBUG="Yes"
+                               export DEBUG
+
+                               set -x
+                               ;;
+
+                       fetch=*)
+                                FETCH="${ARGUMENT#fetch=}"
+                                export FETCH
+                                ;;
+
+                       hostname=*)
+                               HOSTNAME="${ARGUMENT#hostname=}"
+                               LIVECONF="changed"
+                               export HOSTNAME LIVECONF
+                               ;;
+
+                       username=*)
+                               USERNAME="${ARGUMENT#username=}"
+                               LIVECONF="changed"
+                               export USERNAME LIVECONF
+                               ;;
+
+                       userfullname=*)
+                               USERFULLNAME="${ARGUMENT#userfullname=}"
+                               LIVECONF="changed"
+                               export USERFULLNAME LIVECONF
+                               ;;
+
+                       ignore_uuid)
+                               IGNORE_UUID="Yes"
+                               export IGNORE_UUID
+                               ;;
+
+                       ip=*)
+                               STATICIP="${ARGUMENT#ip=}"
+
+                               if [ -z "${STATICIP}" ]
+                               then
+                                       STATICIP="frommedia"
+                               fi
+
+                               export STATICIP
+                               ;;
+
+                       keyb=*|kbd-chooser/method=*)
+                               KBD="${ARGUMENT#*=}"
+                               export KBD
+                               ;;
+
+                       klayout=*|console-setup/layoutcode=*)
+                               KLAYOUT="${ARGUMENT#*=}"
+                               export KLAYOUT
+                               ;;
+
+                       kvariant=*|console-setup/variantcode=*)
+                               KVARIANT="${ARGUMENT#*=}"
+                               export KVARIANT
+                               ;;
+
+                       kmodel=*|console-setup/modelcode=*)
+                               KMODEL="${ARGUMENT#*=}"
+                               export KMODEL
+                               ;;
+
+                       koptions=*)
+                               KOPTIONS="${ARGUMENT#koptions=}"
+                               export KOPTIONS
+                               ;;
+
+                       live-getty)
+                               LIVE_GETTY="1"
+                               export LIVE_GETTY
+                               ;;
+
+                       live-media=*|bootfrom=*)
+                               LIVE_MEDIA="${ARGUMENT#*=}"
+                               export LIVE_MEDIA
+                               ;;
+
+                       live-media-encryption=*|encryption=*)
+                               LIVE_MEDIA_ENCRYPTION="${ARGUMENT#*=}"
+                               export LIVE_MEDIA_ENCRYPTION
+                               ;;
+
+                       live-media-offset=*)
+                               LIVE_MEDIA_OFFSET="${ARGUMENT#live-media-offset=}"
+                               export LIVE_MEDIA_OFFSET
+                               ;;
+
+                       live-media-path=*)
+                               LIVE_MEDIA_PATH="${ARGUMENT#live-media-path=}"
+                               export LIVE_MEDIA_PATH
+                               ;;
+
+                       live-media-timeout=*)
+                               LIVE_MEDIA_TIMEOUT="${ARGUMENT#live-media-timeout=}"
+                               export LIVE_MEDIA_TIMEOUT
+                               ;;
+
+                       locale=*|debian-installer/locale=*)
+                               LOCALE="${ARGUMENT#*=}"
+                               export LOCALE
+                               ;;
+
+                       module=*)
+                               MODULE="${ARGUMENT#module=}"
+                               export MODULE
+                               ;;
+
+                       netboot=*)
+                               NETBOOT="${ARGUMENT#netboot=}"
+                               export NETBOOT
+                               ;;
+
+                       nfsopts=*)
+                               NFSOPTS="${ARGUMENT#nfsopts=}"
+                               export NFSOPTS
+                               ;;
+
+                       nfscow=*)
+                               NFS_COW="${ARGUMENT#nfscow=}"
+                               export NFS_COW
+                               ;;
+
+                       noaccessibility)
+                               NOACCESSIBILITY="Yes"
+                               export NOACCESSIBILITY
+                               ;;
+
+                       noapparmor)
+                               NOAPPARMOR="Yes"
+                               export NOAPPARMOR
+                               ;;
+
+                       noaptcdrom)
+                               NOAPTCDROM="Yes"
+                               export NOAPTCDROM
+                               ;;
+
+                       noautologin)
+                               NOAUTOLOGIN="Yes"
+                               export NOAUTOLOGIN
+                               ;;
+
+                       noxautologin)
+                               NOXAUTOLOGIN="Yes"
+                               export NOXAUTOLOGIN
+                               ;;
+
+                       noconsolekeyboard)
+                               NOCONSOLEKEYBOARD="Yes"
+                               export NOCONSOLEKEYBOARD
+                               ;;
+
+                       nofastboot)
+                               NOFASTBOOT="Yes"
+                               export NOFASTBOOT
+                               ;;
+
+                       nofstab)
+                               NOFSTAB="Yes"
+                               export NOFSTAB
+                               ;;
+
+                       nognomepanel)
+                               NOGNOMEPANEL="Yes"
+                               export NOGNOMEPANEL
+                               ;;
+
+                       nohosts)
+                               NOHOSTS="Yes"
+                               export NOHOSTS
+                               ;;
+
+                       nokpersonalizer)
+                               NOKPERSONALIZER="Yes"
+                               export NOKPERSONALIZER
+                               ;;
+
+                       nokwallet)
+                               NOKWALLET="Yes"
+                               export NOKWALLET
+                               ;;
+
+                       nolanguageselector)
+                               NOLANGUAGESELECTOR="Yes"
+                               export NOLANGUAGESELECTOR
+                               ;;
+
+                       nolocales)
+                               NOLOCALES="Yes"
+                               export NOLOCALES
+                               ;;
+
+                       nonetworking)
+                               NONETWORKING="Yes"
+                               export NONETWORKING
+                               ;;
+
+                       nopowermanagement)
+                               NOPOWERMANAGEMENT="Yes"
+                               export NOPOWERMANAGEMENT
+                               ;;
+
+                       noprogramcrashes)
+                               NOPROGRAMCRASHES="Yes"
+                               export NOPROGRAMCRASHES
+                               ;;
+
+                       norestrictedmanager)
+                               NORESTRICTEDMANAGER="Yes"
+                               export NORESTRICTEDMANAGER
+                               ;;
+
+                       nosudo)
+                               NOSUDO="Yes"
+                               export NOSUDO
+                               ;;
+
+                       noswap)
+                               NOSWAP="Yes"
+                               export NOSWAP
+                               ;;
+
+                       noupdatenotifier)
+                               NOUPDATENOTIFIER="Yes"
+                               export NOUPDATENOTIFIER
+                               ;;
+
+                       nouser)
+                               NOUSER="Yes"
+                               export NOUSER
+                               ;;
+
+                       noxautoconfig)
+                               NOXAUTOCONFIG="Yes"
+                               export NOXAUTOCONFIG
+                               ;;
+
+                       noxscreensaver)
+                               NOXSCREENSAVER="Yes"
+                               export NOXSCREENSAVER
+                               ;;
+
+                       persistent)
+                               PERSISTENT="Yes"
+                               export PERSISTENT
+                               ;;
+
+                       nopersistent)
+                               NOPERSISTENT="Yes"
+                               export NOPERSISTENT
+                               ;;
+
+                       preseed/file=*|file=*)
+                               LOCATION="${ARGUMENT#*=}"
+                               export LOCATION
+                               ;;
+
+                       nopreseed)
+                               NOPRESEED="Yes"
+                               export NOPRESEED
+                               ;;
+
+                       url=*)
+                               location="${ARGUMENT#url=}"
+
+                               mount -n -o bind /sys /root/sys
+                               mount -n -o bind /proc /root/proc
+                               mount -n -o bind /dev /root/dev
+
+                               mkdir -p /root/var/run/network
+                               chroot /root ifup -a
+                               chroot /root wget -P /tmp "${location}"
+                               chroot /root ifdown -a
+
+                               umount /root/sys
+                               umount /root/proc
+                               umount /root/dev
+
+                               LOCATION="/tmp/$(basename "${location}")"
+                               ;;
+
+                       */*=*)
+                               question="${ARGUMENT%%=*}"
+                               value="${ARGUMENT#*=}"
+                               PRESEEDS="${PRESEEDS}\"${question}=${value}\" "
+                               export PRESEEDS
+                               ;;
+
+                       showmounts)
+                               SHOWMOUNTS="Yes"
+                               export SHOWMOUNTS
+                               ;;
+
+                       textonly)
+                               TEXTONLY="Yes"
+                               export TEXTONLY
+                               ;;
+
+                       timezone=*)
+                               TIMEZONE="${ARGUMENT#timezone=}"
+                               export TIMEZONE
+                               ;;
+
+                       notimezone)
+                               NOTIMEZONE="Yes"
+                               export NOTIMEZONE
+                               ;;
+
+                       todisk=*)
+                               TODISK="${ARGUMENT#todisk=}"
+                               export TODISK
+                               ;;
+
+                       toram)
+                               TORAM="Yes"
+                               export TORAM
+                               ;;
+
+                       toram=*)
+                               TORAM="Yes"
+                               MODULETORAM="${ARGUMENT#toram=}"
+                               export TORAM MODULETORAM
+                               ;;
+
+                       exposedroot)
+                               EXPOSED_ROOT="Yes"
+                               export EXPOSED_ROOT
+                               ;;
+
+                       union=*)
+                               UNIONTYPE="${ARGUMENT#union=}"
+                               export UNIONTYPE
+                               ;;
+
+                       utc=*)
+                               UTC="${ARGUMENT#utc=}"
+                               export UTC
+                               ;;
+
+                       xdebconf)
+                               XDEBCONF="Yes"
+                               export XDEBCONF
+                               ;;
+
+                       xvideomode=*)
+                               XVIDEOMODE="${ARGUMENT#xvideomode=}"
+                               export XVIDEOMODE
+                               ;;
+               esac
+       done
+
+       # sort of compatibility with netboot.h from linux docs
+       if [ -z "${NETBOOT}" ]
+       then
+               if [ "${ROOT}" = "/dev/nfs" ]
+               then
+                       NETBOOT="nfs"
+                       export NETBOOT
+               elif [ "${ROOT}" = "/dev/cifs" ]
+               then
+                       NETBOOT="cifs"
+                       export NETBOOT
+               fi
+       fi
+
+       if [ -z "${MODULE}" ]
+       then
+               MODULE="filesystem"
+               export MODULE
+       fi
+
+       if [ -z "${UNIONTYPE}" ]
+       then
+               UNIONTYPE="unionfs"
+               export UNIONTYPE
+       fi
+}
+
+is_live_path ()
+{
+       DIRECTORY="${1}"
+
+       if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ]
+       then
+               for FILESYSTEM in squashfs ext2 ext3 xfs dir
+               do
+                       if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ]
+                       then
+                               return 0
+                       fi
+               done
+       fi
+
+       return 1
+}
+
+matches_uuid ()
+{
+       if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ]
+       then
+               return 0
+       fi
+
+       path="${1}"
+       uuid="$(cat /conf/uuid.conf)"
+
+       for try_uuid_file in "${mountpoint}/.disk/casper-uuid"*
+       do
+               [ -e "${try_uuid_file}" ] || continue
+
+               try_uuid="$(cat "${try_uuid_file}")"
+
+               if [ "${uuid}" = "${try_uuid}" ]
+               then
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
+get_backing_device ()
+{
+       case "${1}" in
+               *.squashfs|*.ext2|*.ext3)
+                       echo $(setup_loop "${1}" "loop" "/sys/block/loop*" '0' "${LIVE_MEDIA_ENCRYPTION}")
+                       ;;
+
+               *.dir)
+                       echo "directory"
+                       ;;
+
+               *)
+                       panic "Unrecognized live filesystem: ${1}"
+                       ;;
+       esac
+}
+
+match_files_in_dir ()
+{
+       # Does any files match pattern ${1} ?
+       local pattern="${1}"
+
+       if [ "$(echo ${pattern})" != "${pattern}" ]
+       then
+               return 0
+       fi
+
+       return 1
+}
+
+mount_images_in_directory ()
+{
+       directory="${1}"
+       rootmnt="${2}"
+
+       if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" ||
+               match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" ||
+               match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" ||
+               match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir"
+       then
+               setup_unionfs "${directory}/${LIVE_MEDIA_PATH}" "${rootmnt}"
+       else
+               :
+       fi
+}
+
+is_nice_device ()
+{
+       sysfs_path="${1#/sys}"
+
+       if /lib/udev/path_id "${sysfs_path}" | grep -E -q "ID_PATH=(usb|pci-[^-]*-[ide|scsi|usb])"
+       then
+               return 0
+       fi
+
+       return 1
+}
+
+is_supported_fs ()
+{
+       # FIXME: do something better like the scan of supported filesystems
+       fstype="${1}"
+
+       case ${fstype} in
+               vfat|iso9660|udf|ext2|ext3|ntfs)
+                       return 0
+                       ;;
+       esac
+
+       return 1
+}
+
+copy_live_to ()
+{
+       copyfrom="${1}"
+       copytodev="${2}"
+       copyto="${copyfrom}_swap"
+
+       if [ -z "${MODULETORAM}" ]
+       then
+               size=$(fs_size "" ${copyfrom} "used")
+       else
+               MODULETORAMFILE="${copyfrom}/${LIVE_MEDIA_PATH}/${MODULETORAM}"
+
+               if [ -f "${MODULETORAMFILE}" ]
+               then
+                       size=$( expr $(ls -la ${MODULETORAMFILE} | awk '{print $5}') / 1024 + 5000 )
+               else
+                       log_warning_msg "Error: toram-module ${MODULETORAM} (${MODULETORAMFILE}) could not be read."
+                       return 1
+               fi
+       fi
+
+       if [ "${copytodev}" = "ram" ]
+       then
+               # copying to ram:
+               freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ) )
+               mount_options="-o size=${size}k"
+               free_string="memory"
+               fstype="tmpfs"
+               dev="/dev/shm"
+       else
+               # it should be a writable block device
+               if [ -b "${copytodev}" ]
+               then
+                       dev="${copytodev}"
+                       free_string="space"
+                       fstype=$(get_fstype "${dev}")
+                       freespace=$(fs_size "${dev}")
+               else
+                       [ "$quiet" != "y" ] && log_warning_msg "${copytodev} is not a block device."
+                       return 1
+               fi
+       fi
+
+       if [ "${freespace}" -lt "${size}" ]
+       then
+               [ "${quiet}" != "y" ] && log_warning_msg "Not enough free ${free_string} (${freespace}k free, ${size}k needed) to copy live media in ${copytodev}."
+               return 1
+       fi
+
+       # begin copying (or uncompressing)
+       mkdir "${copyto}"
+       echo "mount -t ${fstype} ${mount_options} ${dev} ${copyto}"
+       mount -t "${fstype}" ${mount_options} "${dev}" "${copyto}"
+
+       if [ "${extension}" = "tgz" ]
+       then
+               cd "${copyto}"
+               tar zxf "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+               rm -f "${copyfrom}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+               mount -r --move "${copyto}" "${rootmnt}"
+               cd "${OLDPWD}"
+       else
+               if [ -n "${MODULETORAMFILE}" ]
+               then
+                       cp ${MODULETORAMFILE} ${copyto} # copy only the filesystem module
+               else
+                       cp -a ${copyfrom}/* ${copyto}   # "cp -a" from busybox also copies hidden files
+               fi
+
+               livefs_root
+               umount ${copyfrom}
+               mount -r --move ${copyto} ${copyfrom}
+       fi
+
+       rmdir ${copyto}
+       return 0
+}
+
+do_netmount ()
+{
+       rc=1
+
+       modprobe -q af_packet # For DHCP
+
+       udevtrigger
+       udevsettle
+
+       ipconfig ${DEVICE} | tee /netboot.config
+
+       # source relevant ipconfig output
+       OLDHOSTNAME=${HOSTNAME}
+       . /tmp/net-${DEVICE}.conf
+       [ -z ${HOSTNAME} ] && HOSTNAME=${OLDHOSTNAME}
+       export HOSTNAME
+
+       if [ "${NFSROOT}" = "auto" ]
+       then
+               NFSROOT=${ROOTSERVER}:${ROOTPATH}
+       fi
+
+       if [ -n "${FETCH}" ] && do_httpmount
+       then
+               rc=0
+               return ${rc}
+       fi
+
+       if [ "${NFSROOT#*:}" = "${NFSROOT}" ] && [ "$NETBOOT" != "cifs" ]
+       then
+               NFSROOT=${ROOTSERVER}:${NFSROOT}
+       fi
+
+       [ "${quiet}" != "y" ] && log_begin_msg "Trying netboot from ${NFSROOT}"
+
+       if [ "${NETBOOT}" != "nfs" ] && do_cifsmount
+       then
+               rc=0
+       elif do_nfsmount
+       then
+               NETBOOT="nfs"
+               export NETBOOT
+               rc=0
+       fi
+
+       [ "${quiet}" != "y" ] && log_end_msg
+       return ${rc}
+}
+
+do_httpmount ()
+{
+       rc=1
+       extension=$(echo "${FETCH}" | sed 's/\(.*\)\.\(.*\)/\2/')
+
+       case "${extension}" in
+               squashfs|tgz|tar)
+                       [ "${quiet}" != "y" ] && log_begin_msg "Trying wget ${FETCH} -O ${mountpoint}/$(basename ${FETCH})"
+                       mkdir -p "${mountpoint}/${LIVE_MEDIA_PATH}"
+                       wget "${FETCH}" -O "${mountpoint}/${LIVE_MEDIA_PATH}/$(basename ${FETCH})"
+                       [ ${?} -eq 0 ] && rc=0
+                       [ "${extension}" = "tgz" ] && live_dest="ram"
+                       ;;
+
+               *)
+                       [ "${quiet}" != "y" ] && log_begin_msg "Unrecognized archive extension for ${FETCH}"
+       esac
+
+       return ${rc}
+}
+
+do_nfsmount ()
+{
+       rc=1
+
+       modprobe -q nfs
+
+       if [ -z "${NFSOPTS}" ]
+       then
+               NFSOPTS=""
+       fi
+
+       [ "${quiet}" != "y" ] && log_begin_msg "Trying nfsmount -o nolock -o ro ${NFSOPTS} ${NFSROOT} ${mountpoint}"
+
+       # FIXME: This for loop is an ugly HACK round an nfs bug
+       for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13
+       do
+               nfsmount -o nolock -o ro ${NFSOPTS} "${NFSROOT}" "${mountpoint}" && rc=0 && break
+               sleep 1
+       done
+
+       return ${rc}
+}
+
+do_cifsmount ()
+{
+       rc=1
+
+       if [ -x "/sbin/mount.cifs" ]
+       then
+               if [ -z "${NFSOPTS}" ]
+               then
+                       CIFSOPTS="-ouser=root,password="
+               else
+                       CIFSOPTS="${NFSOPTS}"
+               fi
+
+               [ "${quiet}" != "y" ] && log_begin_msg "Trying mount.cifs ${NFSROOT} ${mountpoint} ${CIFSOPTS}"
+               modprobe -q cifs
+
+               if mount.cifs "${NFSROOT}" "${mountpoint}" "${CIFSOPTS}"
+               then
+                       rc=0
+               fi
+       fi
+
+       return ${rc}
+}
+
+do_snap_copy ()
+{
+       fromdev="${1}"
+       todir="${2}"
+       snap_type="${3}"
+       size=$(fs_size "${fromdev}" "" "used")
+
+       if [ -b "${fromdev}" ]
+       then
+               # look for free mem
+               if [ -n "${HOMEMOUNTED}" -a "${snap_type}" = "HOME" ]
+               then
+                       todev=$(cat /proc/mounts | grep -s " $(base_path ${todir}) " | awk '{print $1}' )
+                       freespace=$(df -k  | grep -s ${todev} | awk '{print $4}')
+               else
+                       freespace=$( expr $(awk '/MemFree/{print $2}' /proc/meminfo) + $( cat /proc/meminfo | grep Cached | head -n 1 | awk '/Cached/{print $2}' - ))
+               fi
+
+               tomount="/mnt/tmpsnap"
+
+               if [ ! -d "${tomount}" ]
+               then
+                       mkdir -p "${tomount}"
+               fi
+
+               fstype=$(get_fstype "${fromdev}")
+
+               if [ -n "${fstype}" ]
+               then
+                       # Copying stuff...
+                       mount -t "${fstype}" -o ro,noatime "${fromdev}" "${tomount}"
+                       cp -a "${tomount}"/* ${todir}
+                       umount "${tomount}"
+               else
+                       log_warning_msg "Unrecognized fstype: ${fstype} on ${fromdev}:${snap_type}"
+               fi
+
+               rmdir "${tomount}"
+
+               if echo ${fromdev} | grep -qs loop
+               then
+                       losetup -d "${fromdev}"
+               fi
+
+               return 0
+       else
+               return 1
+
+               [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the snapshot ${snap_type} medium"
+       fi
+}
+
+try_snap ()
+{
+       # Look for ${snap_label}.* in block devices and copy the contents to ${snap_mount}
+       # and remember the device and filename for resync on exit in live-initramfs.init
+
+       snap_label="${1}"
+       snap_mount="${2}"
+       snap_type="${3}"
+       snapdata=$(find_files "${snap_label}.squashfs ${snap_label}.cpio.gz ${snap_label}.ext2 ${snap_label}.ext3")
+
+       if [ ! -z "${snapdata}" ]
+       then
+               snapdev="$(echo ${snapdata} | cut -f1 -d ' ')"
+               snapback="$(echo ${snapdata} | cut -f2 -d ' ')"
+               snapfile="$(echo ${snapdata} | cut -f3 -d ' ')"
+
+               if echo "${snapfile}" | grep -qs '\(squashfs\|ext2\|ext3\)'
+               then
+                       # squashfs or ext2/ext3 snapshot
+                       dev=$(get_backing_device "${snapback}/${snapfile}")
+
+                       if ! do_snap_copy "${dev}" "${snap_mount}" "${snap_type}"
+                       then
+                               log_warning_msg "Impossible to include the ${snapfile} Snapshot"
+                               return 1
+                       fi
+               else
+                       # cpio.gz snapshot
+                       if ! (cd "${snap_mount}" && zcat "${snapback}/${snapfile}" | cpio -i -u -d 2>/dev/null)
+                       then
+                               log_warning_msg "Impossible to include the ${snapfile} Snapshot"
+                               return 1
+                       fi
+               fi
+
+               umount "${snapback}"
+       else
+               dev=$(find_cow_device "${snap_label}")
+
+               if [ -b ${dev} ]
+               then
+                       if echo "${dev}" | grep -qs loop
+                       then
+                               # strange things happens, user confused?
+                               snaploop=$( losetup ${dev} | awk '{print $3}' | tr -d '()' )
+                               snapfile=$(basename ${snaploop})
+                               snapdev=$(cat /proc/mounts | awk '{print $2,$1}' | grep -es "^$( dirname ${snaploop} )" | cut -f2 -d ' ')
+                       else
+                               snapdev="${dev}"
+                       fi
+
+                       if ! do_snap_copy "${dev}" "${snap_mount}" "${snap_type}"
+                       then
+                               log_warning_msg "Impossible to include the ${snap_label} Snapshot"
+                               return 1
+                       else
+                               if [ -n "${snapfile}" ]
+                               then
+                                       # it was a loop device, user confused
+                                       umount ${snapdev}
+                               fi
+                       fi
+               else
+                       log_warning_msg "Impossible to include the ${snap_label} Snapshot"
+                       return 1
+               fi
+       fi
+
+       echo "export ${snap_type}SNAP="${snap_mount}":${snapdev}:${snapfile}" >> /etc/live.conf # for resync on reboot/halt
+       return 0
+}
+
+setup_unionfs ()
+{
+       image_directory="${1}"
+       rootmnt="${2}"
+
+       modprobe -q -b ${UNIONTYPE}
+
+       # run-init can't deal with images in a subdir, but we're going to
+       # move all of these away before it runs anyway.  No, we're not,
+       # put them in / since move-mounting them into / breaks mono and
+       # some other apps.
+
+       croot="/"
+
+       # Let's just mount the read-only file systems first
+       rofsstring=""
+       rofslist=""
+       minor_kernel_version=$(uname -r|cut -c 5-|sed 's/[^0-9].*//')
+
+       if [ "${NETBOOT}" = "nfs" ] && [ "${minor_kernel_version}" -lt 22 ]
+       then
+               # go aroung a bug in nfs-unionfs locking for unionfs <= 1.4
+               roopt="nfsro"
+       else
+               roopt="ro"
+       fi
+
+       # Read image names from ${MODULE}.module if it exists
+       if [ -e "${image_directory}/filesystem.${MODULE}.module" ]
+       then
+               for IMAGE in $(cat ${image_directory}/filesystem.${MODULE}.module)
+               do
+                       image_string="${image_string} ${image_directory}/${IMAGE}"
+               done
+       elif [ -e "${image_directory}/${MODULE}.module" ]
+       then
+               for IMAGE in $(cat ${image_directory}/${MODULE}.module)
+               do
+                       image_string="${image_string} ${image_directory}/${IMAGE}"
+               done
+       else
+               # ${MODULE}.module does not exist, create a list of images
+               for FILESYSTEM in squashfs ext2 ext3 xfs dir
+               do
+                       for IMAGE in "${image_directory}"/*."${FILESYSTEM}"
+                       do
+                               if [ -e "${IMAGE}" ]
+                               then
+                                       image_string="${image_string} ${IMAGE}"
+                               fi
+                       done
+               done
+
+               # Now sort the list
+               image_string="$(echo ${image_string} | sed -e 's/ /\n/g' | sort )"
+       fi
+
+       [ -n "${MODULETORAMFILE}" ] && image_string="${image_directory}/$(basename ${MODULETORAMFILE})"
+
+       mkdir -p "${croot}"
+
+       for image in ${image_string}
+       do
+               imagename=$(basename "${image}")
+
+               if [ -d "${image}" ]
+               then
+                       # it is a plain directory: do nothing
+                       rofsstring="${image}=${roopt}:${rofsstring}"
+                       rofslist="${image} ${rofslist}"
+               elif [ -f "${image}" ]
+               then
+                       backdev=$(get_backing_device "${image}")
+                       fstype=$(get_fstype "${backdev}")
+
+                       if [ "${fstype}" = "unknown" ]
+                       then
+                               panic "Unknown file system type on ${backdev} (${image})"
+                       fi
+
+                       mkdir -p "${croot}/${imagename}"
+                       echo "debug: Can not mount backdev ${backdev} (image = ${image}) on croot/imagename ${croot}/${imagename}"
+                       mount -t "${fstype}" -o ro,noatime "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}"
+               fi
+       done
+
+       rofsstring=${rofsstring%:}
+
+       mkdir -p /cow
+
+       # Looking for "${root_persistence}" device or file
+       if [ -n "${PERSISTENT}" ]
+       then
+               cowprobe=$(find_cow_device "${root_persistence}")
+
+               if [ -b "${cowprobe}" ]
+               then
+                       cowdevice=${cowprobe}
+                       cow_fstype=$(get_fstype "${cowprobe}")
+               else
+                       [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the persistent medium"
+               fi
+       elif [ -n "${NFS_COW}" ]
+       then
+               # check if there are any nfs options
+               if echo ${NFS_COW}|grep -q ','
+               then
+                       nfs_cow_opts="-o nolock,$(echo ${NFS_COW}|cut -d, -f2-)"
+                       nfs_cow=$(echo ${NFS_COW}|cut -d, -f1)
+               else
+                       nfs_cow_opts="-o nolock"
+                       nfs_cow=${NFS_COW}
+               fi
+               mac=$(get_mac)
+               if [ -n "${mac}" ]
+               then
+                       cowdevice=$(echo ${nfs_cow}|sed "s/client_mac_address/${mac}/")
+                       cow_fstype="nfs"
+               else
+                       panic "unable to determine mac address"
+               fi
+       else
+               cowdevice="tmpfs"
+               cow_fstype="tmpfs"
+       fi
+
+       if [ "${cow_fstype}" = "nfs" ]
+       then
+               [ "${quiet}" != "y" ] && log_begin_msg \
+                       "Trying nfsmount ${nfs_cow_opts} ${cowdevice} /cow"
+               nfsmount ${nfs_cow_opts} ${cowdevice} /cow || \
+                       panic "Can not mount ${cowdevice} on /cow"
+       else
+               mount ${cowdevice} -t ${cow_fstype} -o rw,noatime /cow || \
+                       panic "Can not mount ${cowdevice} on /cow"
+       fi
+
+       rofscount=$(echo ${rofslist} |wc -w)
+
+       if [ -n "${EXPOSED_ROOT}" ]
+       then
+               if [ ${rofscount} -ne 1 ]
+               then
+                       panic "only one RO file system supported with exposedroot: ${rofslist}"
+               fi
+               exposedrootfs=${rofslist%% }
+
+               mount --bind ${exposedrootfs} ${rootmnt} || \
+                       panic "bind mount of ${exposedrootfs} failed"
+
+               cow_dirs='/var/tmp /var/lock /var/run /var/log /var/spool
+                       /home /var/lib/live'
+
+               for dir in ${cow_dirs}; do
+                       mkdir -p /cow${dir}
+                       mount -t ${UNIONTYPE} \
+                               -o rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro \
+                               ${UNIONTYPE} "${rootmnt}${dir}" || \
+                               panic "mount ${UNIONTYPE} on ${rootmnt}${dir} failed with option \
+                                       rw,noatime,dirs=/cow${dir}=rw:${exposedrootfs}${dir}=ro"
+               done
+       else
+               mount -t ${UNIONTYPE} -o noatime,dirs=/cow=rw:${rofsstring} \
+                       ${UNIONTYPE} "${rootmnt}" || panic "mount ${UNIONTYPE} on \
+                       ${rootmnt} failed with option noatime,dirs=/cow=rw:${rofsstring}"
+       fi
+
+       # tmpfs file systems
+       mkdir -p "${rootmnt}/live"
+       mount -t tmpfs tmpfs ${rootmnt}/live
+
+       # Adding other custom mounts
+       if [ -n "${PERSISTENT}" ]
+       then
+               # directly mount /home
+               # FIXME: add a custom mounts configurable system
+               homecow=$(find_cow_device "${home_persistence}" )
+
+               if [ -b "${homecow}" ]
+               then
+                       mount -t $(get_fstype "${homecow}") -o rw,noatime "${homecow}" "${rootmnt}/home"
+                       export HOMEMOUNTED=1 # used to proper calculate free space in do_snap_copy()
+               else
+                       [ "${quiet}" != "y" ] && log_warning_msg "Unable to find the persistent home medium"
+               fi
+
+               # Look for other snapshots to copy in
+               try_snap "${root_snapshot_label}" "${rootmnt}" "ROOT"
+               try_snap "${home_snapshot_label}" "${rootmnt}/home" "HOME"
+       fi
+
+       if [ -n "${SHOWMOUNTS}" ]
+       then
+               for d in ${rofslist}
+               do
+                       mkdir -p "${rootmnt}/live/${d##*/}"
+
+                       case d in
+                               *.dir)
+                                       # do nothing # mount -o bind "${d}" "${rootmnt}/live/${d##*/}"
+                                       ;;
+
+                               *)
+                                       mount --move "${d}" "${rootmnt}/live/${d##*/}"
+                                       ;;
+                       esac
+               done
+       fi
+
+       # shows cow fs on /cow for use by live-snapshot
+       mkdir -p "${rootmnt}/live/cow"
+       mount -o move /cow "${rootmnt}/live/cow"
+}
+
+check_dev ()
+{
+       sysdev="${1}"
+       devname="${2}"
+       skip_uuid_check="${3}"
+
+       if [ -z "${devname}" ]
+       then
+               devname=$(sys2dev "${sysdev}")
+       fi
+
+       if [ -n "${LIVE_MEDIA_OFFSET}" ]
+       then
+               loopdevname=$(setup_loop "${devname}" "loop" "/sys/block/loop*" "${LIVE_MEDIA_OFFSET}" '')
+               devname="${loopdevname}"
+       fi
+
+       fstype=$(get_fstype "${devname}")
+
+       if is_supported_fs ${fstype}
+       then
+               mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue
+
+               if is_live_path ${mountpoint} && \
+                       ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint})
+               then
+                       echo ${mountpoint}
+                       return 0
+               else
+                       umount ${mountpoint}
+               fi
+       fi
+
+       if [ -n "${LIVE_MEDIA_OFFSET}" ]
+       then
+               losetup -d "${loopdevname}"
+       fi
+
+       return 1
+}
+
+find_livefs ()
+{
+       timeout="${1}"
+
+       # first look at the one specified in the command line
+       if [ ! -z "${LIVE_MEDIA}" ]
+       then
+               if check_dev "null" "${LIVE_MEDIA}" "skip_uuid_check"
+               then
+                       return 0
+               fi
+       fi
+
+       # don't start autodetection before timeout has expired
+       if [ -n "${LIVE_MEDIA_TIMEOUT}" ]
+       then
+               if [ "${timeout}" -lt "${LIVE_MEDIA_TIMEOUT}" ]
+               then
+                       return 1
+               fi
+       fi
+
+       # or do the scan of block devices
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram)
+       do
+               devname=$(sys2dev "${sysblock}")
+               fstype=$(get_fstype "${devname}")
+
+               if /lib/udev/cdrom_id ${devname} > /dev/null
+               then
+                       if check_dev "null" "${devname}"
+                       then
+                               return 0
+                       fi
+               elif is_nice_device "${sysblock}"
+               then
+                       for dev in $(subdevices "${sysblock}")
+                       do
+                               if check_dev "${dev}"
+                               then
+                                       return 0
+                               fi
+                       done
+               elif [ "${fstype}" = "squashfs" -o \
+                       "${fstype}" = "ext2" -o \
+                       "${fstype}" = "ext3" ]
+               then
+                       # This is an ugly hack situation, the block device has
+                       # an image directly on it.  It's hopefully
+                       # live-initramfs, so take it and run with it.
+                       ln -s "${devname}" "${devname}.${fstype}"
+                       echo "${devname}.${fstype}"
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
+pulsate ()
+{
+       if [ -x /sbin/usplash_write ]
+       then
+               /sbin/usplash_write "PULSATE"
+       fi
+}
+
+set_usplash_timeout ()
+{
+       if [ -x /sbin/usplash_write ]
+       then
+               /sbin/usplash_write "TIMEOUT 120"
+       fi
+}
+
+mountroot ()
+{
+       exec 6>&1
+       exec 7>&2
+       exec > live.log
+       exec 2>&1
+
+       Arguments
+
+       set_usplash_timeout
+       [ "${quiet}" != "y" ] && log_begin_msg "Running /scripts/live-premount"
+       pulsate
+       run_scripts /scripts/live-premount
+       [ "${quiet}" != "y" ] && log_end_msg
+
+       # Needed here too because some things (*cough* udev *cough*)
+       # changes the timeout
+
+       set_usplash_timeout
+
+       if [ ! -z "${NETBOOT}" ] || [ ! -z "${FETCH}" ]
+       then
+               if do_netmount
+               then
+                       livefs_root="${mountpoint}"
+               else
+                       panic "Unable to find a live file system on the network"
+               fi
+       else
+               # Scan local devices for the image
+               for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+               do
+                       livefs_root=$(find_livefs ${i})
+
+                       if [ -n "${livefs_root}" ]
+                       then
+                               break
+                       fi
+
+                       sleep 1
+               done
+       fi
+
+       if [ -z "${livefs_root}" ]
+       then
+               panic "Unable to find a medium containing a live file system"
+       fi
+
+       if [ "${TORAM}" ]
+       then
+               live_dest="ram"
+       elif [ "${TODISK}" ]
+       then
+               live_dest="${TODISK}"
+       fi
+
+       if [ "${live_dest}" ]
+       then
+               log_begin_msg "Copying live media to ${live_dest}"
+               copy_live_to "${livefs_root}" "${live_dest}"
+               log_end_msg
+       fi
+
+       if [ -n "${MODULETORAMFILE}" ]
+       then
+               setup_unionfs "${livefs_root}" "${rootmnt}"
+       else
+               mount_images_in_directory "${livefs_root}" "${rootmnt}"
+       fi
+
+       log_end_msg
+
+       maybe_break live-bottom
+       [ "${quiet}" != "y" ] && log_begin_msg "Running /scripts/live-bottom"
+
+       pulsate
+       run_scripts /scripts/live-bottom
+       [ "${quiet}" != "y" ] && log_end_msg
+
+       exec 1>&6 6>&-
+       exec 2>&7 7>&-
+       cp live.log "${rootmnt}/var/log/"
+}
diff --git a/scripts/live-bottom/01integrity_check b/scripts/live-bottom/01integrity_check
new file mode 100755 (executable)
index 0000000..e4710f3
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs script
+
+if grep -qs integrity-check /proc/cmdline
+then
+       cd /live/image
+       md5sum -c md5sum.txt < /dev/tty8 > /dev/tty8
+       reboot
+       while :; do sleep 60; done
+fi
diff --git a/scripts/live-bottom/02etc_live_conf b/scripts/live-bottom/02etc_live_conf
new file mode 100755 (executable)
index 0000000..1623de8
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Copying config on real root fs..."
+
+# live-initramfs script
+
+if [ -f /etc/live.conf ]
+then
+       if [ ! -z "${LIVECONF}" ]
+       then
+               # Updating live.conf
+               sed -i -e 's/\(USERNAME="\).*"/\1'"${USERNAME}"'"/g' \
+                      -e 's/\(USERFULLNAME="\).*"/\1'"${USERFULLNAME}"'"/g' \
+                      -e 's/\(HOSTNAME="\).*"/\1'"${HOSTNAME}"'"/g' \
+               /etc/live.conf
+       fi
+
+       cp -p /etc/live.conf /root/etc/live.conf
+else
+
+cat > /root/etc/live.conf << EOF
+export USERNAME="${USERNAME}"
+export USERFULLNAME="${USERFULLNAME}"
+export HOSTNAME="${HOSTNAME}"
+EOF
+
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/02timezone b/scripts/live-bottom/02timezone
new file mode 100755 (executable)
index 0000000..e4e91ff
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOTIMEZONE}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting timezone..."
+
+# live-initramfs script
+
+if [ -n "${TIMEZONE}" ]
+then
+       area="$(echo ${TIMEZONE} | cut -f1 -d '/')"
+       zone="$(echo ${TIMEZONE} | cut -f2 -d '/')"
+
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set tzdata/Areas ${area}
+set tzdata/Zones/${area} ${zone}
+EOF
+
+       cp -f /root/usr/share/zoneinfo/${area}/${zone} /root/etc/localtime
+else
+
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set tzdata/Areas Etc
+set tzdata/Zones/Etc UTC
+EOF
+
+       cp -f /root/usr/share/zoneinfo/UTC /root/etc/localtime
+fi
+
+if [ -n "${UTC}" ]
+then
+       sed -i -e "s/UTC=.*/UTC=${UTC}/" /root/etc/default/rcS
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/05mountpoints b/scripts/live-bottom/05mountpoints
new file mode 100755 (executable)
index 0000000..a334af8
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Moving mount points..."
+
+# live-initramfs script
+
+# Move to the new root filesystem so that programs there can get at it.
+if [ ! -d /root/live/image ]
+then
+       mkdir -p /root/live/image
+       mount -n --move /live/image /root/live/image
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/10adduser b/scripts/live-bottom/10adduser
new file mode 100755 (executable)
index 0000000..e5067dd
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOUSER}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Adding live session user..."
+
+# live-initramfs script
+
+user_crypted="8Ab05sVQ4LLps" # as in $(echo "live" | mkpasswd -s)
+
+# U6aMy0wojraho is just a blank password
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set passwd/make-user true
+set passwd/root-password-crypted *
+set passwd/user-password-crypted ${user_crypted}
+set passwd/user-fullname ${USERFULLNAME}
+set passwd/username ${USERNAME}
+set passwd/user-uid 999
+EOF
+
+chroot /root /usr/bin/env -i HOME="/root" \
+       TERM="${TERM}" PATH="/usr/sbin:/usr/bin:/sbin:/bin" \
+       /usr/lib/user-setup/user-setup-apply > /dev/null
+
+# Clear out debconf database again to avoid confusing ubiquity later.
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set passwd/make-user
+set passwd/root-password-crypted
+set passwd/user-password-crypted
+set passwd/user-fullname
+set passwd/username
+set passwd/user-uid
+EOF
+
+if [ -z "${NOSUDO}" ]
+then
+       if [ -f /root/etc/sudoers ]
+       then
+               echo "${USERNAME}  ALL=(ALL) NOPASSWD: ALL" >> /root/etc/sudoers
+
+               chroot /root sudo -u "${USERNAME}" sh -c "echo 'SU_TO_ROOT_SU=sudo' >> /home/${USERNAME}/.su-to-rootrc"
+               chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/sudo-mode true
+               chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gksu/display-no-pass-info false
+
+chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/config && cat > /home/${USERNAME}/.kde/share/config/kdesurc" << EOF
+[super-user-command]
+super-user-command=sudo
+EOF
+
+               if [ -f /root/usr/share/apps/konsole/sumc.desktop ]
+               then
+                       chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/apps/konsole && sed -e's/Exec=su.*$/Exec=sudo mc -c/' /usr/share/apps/konsole/sumc.desktop > /home/${USERNAME}/.kde/share/apps/konsole/sumc.desktop"
+               fi
+
+               if [ -f /root/usr/share/apps/konsole/su.desktop ]
+               then
+                       chroot /root sudo -u "${USERNAME}" sh -c "umask 0077 && mkdir -p /home/${USERNAME}/.kde/share/apps/konsole && sed -e's/Exec=su.*$/Exec=sudo -i/' /usr/share/apps/konsole/su.desktop > /home/${USERNAME}/.kde/share/apps/konsole/su.desktop"
+               fi
+       fi
+fi
+
+if [ -L /root/home/${USERNAME}/Examples ]
+then
+       chroot /root install -o ${USERNAME} -g ${USERNAME} -d /home/${USERNAME}/Desktop/
+       mv /root/home/${USERNAME}/Examples /root/home/${USERNAME}/Desktop/
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/12fstab b/scripts/live-bottom/12fstab
new file mode 100755 (executable)
index 0000000..ca83626
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+FSTAB=/root/etc/fstab
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+if [ -n "${NOFSTAB}" ]
+then
+       exit 0
+fi
+
+if [ -s ${FSTAB} ]
+then
+       log_begin_msg "Not touching preexisting fstab..."
+else
+       log_begin_msg "Configuring fstab..."
+
+       cat >> ${FSTAB} <<-EOF
+       # /etc/fstab: static file system information.
+       #
+       # <file system> <mount point>   <type>  <options>       <dump>  <pass>
+       ${UNIONTYPE} / ${UNIONTYPE} rw 0 0
+       tmpfs /tmp tmpfs nosuid,nodev 0 0
+       EOF
+fi
+
+# live-initramfs script
+
+
+# disabled for now
+#rm -f /root/etc/rcS.d/S*checkroot.sh
+
+if [ "${NOFASTBOOT}" != "Yes" ]
+then
+       touch root/fastboot
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/13swap b/scripts/live-bottom/13swap
new file mode 100755 (executable)
index 0000000..f3af1cc
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOSWAP}" ] || [ -n "${NOFSTAB}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up swap..."
+
+# live-initramfs script
+
+FSTAB=/root/etc/fstab
+devices=""
+
+for device in /dev/[hs]d[a-z][0-9]*
+do
+       if ! [ -b "${device}" ]
+       then
+               continue
+       fi
+
+       magic=$(/bin/dd if="${device}" bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null) || continue
+
+       if [ "${magic}" = "SWAPSPACE2" -o "${magic}" = "SWAP-SPACE" ]
+       then
+               #log "Found ${device}"
+               devices="${devices} ${device}"
+       fi
+done
+
+for device in ${devices}
+do
+
+cat >> ${FSTAB} << EOF
+${device} swap swap defaults 0 0
+EOF
+
+done
+
+log_end_msg
diff --git a/scripts/live-bottom/14locales b/scripts/live-bottom/14locales
new file mode 100755 (executable)
index 0000000..3653e1b
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOLOCALES}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up locales..."
+
+# live-initramfs script
+
+if [ -e /root/etc/default/locale ]
+then
+       grep_file=/root/etc/default/locale
+elif [ -e /root/etc/environment ]
+then
+       # Old locales policy
+       grep_file=/root/etc/environment
+fi
+
+if [ -n "${grep_file}" ]
+then
+       # use rootfs configured locale
+       locale=$(grep -s 'LANG=' ${grep_file} | sed s/'LANG='// | tr -d '"' )
+else
+       grep_file=/root/etc/default/locale
+fi
+
+if [ -n "${LOCALE}" ]
+then
+       locale="${LOCALE}"
+       set_locale="true"
+fi
+
+if [ -z "${locale}" ]
+then
+       # Set a default one
+       locale=en_US.UTF-8
+       set_locale="true"
+fi
+
+if [ "${set_locale}" ]
+then
+       if echo "${locale}" | grep -sqE '^[[:lower:]]{2}$'
+       then
+               # input is like "locale=it", so we will convert and setup also the keyboard if not already set
+               if [ -z "${KBD}" ]
+               then
+                       # FIXME: look if this keyb is supported
+                       KBD="${locale}"
+                       really_export KBD
+               fi
+
+               uploc=$(echo "${locale}" | tr '[a-z]' '[A-Z]')
+               locale="${locale}_${uploc}.UTF-8"
+       fi
+
+       LANG=$(grep "^${locale}" /root/usr/share/i18n/SUPPORTED | grep UTF-8 | sed -e 's, .*,,' -e q)
+
+       if [ -z "${LANG}" ]
+       then
+               log_warning_message "Locale ${locale} is unsupported."
+               locale="en_US.UTF-8"
+               LANG="${locale}"
+       fi
+
+       really_export LANG
+
+       printf 'LANG=%s\n' "${LANG}" > "${grep_file}"
+       printf '%s UTF-8\n' "${LANG}" > /root/etc/locale.gen
+       chroot /root /usr/sbin/locale-gen
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/15autologin b/scripts/live-bottom/15autologin
new file mode 100755 (executable)
index 0000000..03b66f4
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up automatic login..."
+
+# live-initramfs script
+
+if [ -n "${NOXAUTOLOGIN}" ]
+then
+       exit 0
+fi
+
+# chroot needed to handle symlinks correctly
+if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]
+then
+       GDMCONF=/etc/gdm/gdm-cdd.conf
+else
+       GDMCONF=/etc/gdm/gdm.conf
+fi
+
+# chroot needed to handle symlinks correctly
+if chroot /root [ -f ${GDMCONF} ]
+then
+       # true hack ! -- nohar
+       chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf
+
+       # Configure GDM autologin
+       chroot /root \
+       sed -i -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \
+              -e "s/^AutomaticLogin=.*\$/AutomaticLogin=${USERNAME}/" \
+              -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \
+              -e "s/^TimedLogin=.*\$/TimedLogin=${USERNAME}/" \
+              -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \
+       ${GDMCONF}
+fi
+
+if [ -f /root/etc/kde3/kdm/kdmrc ]
+then
+       # Configure KDM autologin
+       sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
+                 -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=${USERNAME}/" \
+                 -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
+       /root/etc/kde3/kdm/kdmrc
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/18hostname b/scripts/live-bottom/18hostname
new file mode 100755 (executable)
index 0000000..1dbb897
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOHOSTS}" ]
+then
+        exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting hostname..."
+
+# live-initramfs script
+
+echo "${HOSTNAME}" > /root/etc/hostname
+
+cat >> /root/etc/hosts << EOF
+127.0.0.1 localhost
+127.0.1.1 ${HOSTNAME}
+
+# The following lines are desirable for IPv6 capable hosts
+::1     ip6-localhost ip6-loopback
+fe00::0 ip6-localnet
+ff00::0 ip6-mcastprefix
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+ff02::3 ip6-allhosts
+EOF
+
+log_end_msg
diff --git a/scripts/live-bottom/19keyboard b/scripts/live-bottom/19keyboard
new file mode 100755 (executable)
index 0000000..784aa05
--- /dev/null
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOCONSOLEKEYBOARD}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up console keyboard..."
+
+# live-initramfs script
+
+kbd=
+cslayout=
+csvariant=
+csmodel=
+
+# commandline
+if [ -n "${KBD}" ]
+then
+       kbd="${KBD}"
+else
+       kbd=us
+fi
+
+really_export kbd
+
+if [ -n "${KLAYOUT}" ]
+then
+       cslayout="${KLAYOUT}"
+fi
+
+if [ -n "${KVARIANT}" ]
+then
+       csvariant="${KVARIANT}"
+fi
+
+if [ -n "${KMODEL}" ]
+then
+       csmodel="${KMODEL}"
+fi
+
+if [ -x /root/bin/setupcon ] && [ -f /root/etc/default/console-setup ]
+then
+       if [ "${cslayout}" ]
+       then
+               chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"${cslayout}\"/" \
+               /etc/default/console-setup
+
+               if [ "${csvariant}" ]
+               then
+                       chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"${csvariant}\"/" \
+                       /etc/default/console-setup
+               else
+                       live-preseed /root console-setup/variantcode '' false
+               fi
+
+               if [ "${csmodel}" ]
+               then
+                       chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"${csmodel}\"/" \
+                       /etc/default/console-setup
+               else
+                       live-preseed /root console-setup/modelcode '' false
+               fi
+       else
+               live-preseed /root console-setup/layoutcode '' false
+               live-preseed /root console-setup/variantcode '' false
+               live-preseed /root console-setup/modelcode '' false
+       fi
+
+       sed -i 's/CONSOLE_SCREEN=$/CONSOLE_SCREEN=setupcon/; t END; b; : END; n; b END' /root/etc/init.d/usplash
+else
+       chroot /root /usr/sbin/install-keymap ${kbd}
+       live-preseed /root debian-installer/keymap "${kbd}"
+       live-preseed /root kbd-chooser/method "${kbd}"
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/20xconfig b/scripts/live-bottom/20xconfig
new file mode 100755 (executable)
index 0000000..8886af8
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOXAUTOCONFIG}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring X..."
+
+# live-initramfs script
+
+if [ "${TERM_TYPE}" = "serial" ]
+then
+       # Don't bother trying to configure or start X on a serial console
+       rm -f /root/etc/rc?.d/S??[gkx]dm
+       exit 0
+fi
+
+if [ -n "${TEXTONLY}" ]
+then
+       exit 0
+fi
+
+locale=en_US.UTF-8
+
+mount -n -o bind /sys /root/sys
+mount -n -o bind /proc /root/proc
+mount -n -o bind /dev /root/dev
+
+if [ -n "${XDEBCONF}" -a -x /root/usr/sbin/xdebconfigurator ]
+then
+       # xdebconfigurator
+       chroot /root /usr/sbin/xdebconfigurator
+fi
+
+if [ -n "${KOPTIONS}" ]
+then
+       setoptions="set xserver-xorg/config/inputdevice/keyboard/options ${KOPTIONS}"
+fi
+
+if [ -n "${KVARIANT}" ]
+then
+       setvariant="set xserver-xorg/config/inputdevice/keyboard/variant ${KVARIANT}"
+fi
+
+if [ -n "${KMODEL}" ]
+then
+       setmodel="set xserver-xorg/config/inputdevice/keyboard/model ${KMODEL}"
+fi
+
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set xserver-xorg/config/inputdevice/keyboard/layout ${kbd}
+${setvariant}
+${setmodel}
+${setoptions}
+EOF
+
+DEBUG_XORG_PACKAGE=1 DEBUG_XORG_DEBCONF=1 live-reconfigure /root xserver-xorg
+umount /root/sys
+umount /root/proc
+umount /root/dev
+
+log_end_msg
diff --git a/scripts/live-bottom/21xvidemode b/scripts/live-bottom/21xvidemode
new file mode 100755 (executable)
index 0000000..a11dc77
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOXAUTOCONFIG}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring X kludges..."
+
+# live-initramfs script
+
+if [ -n "$XVIDEOMODE" ]
+then
+       mount -n -o bind /sys /root/sys
+       mount -n -o bind /proc /root/proc
+       mount -n -o bind /dev /root/dev
+
+chroot /root debconf-communicate -fnoninteractive live-initramfs > /dev/null << EOF
+set xserver-xorg/config/monitor/mode-list ${XVIDEOMODE}
+set xserver-xorg/config/display/modes ${XVIDEOMODE}
+EOF
+
+       chroot /root dexconf
+
+       umount /root/sys
+       umount /root/proc
+       umount /root/dev
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/22gnome_panel_data b/scripts/live-bottom/22gnome_panel_data
new file mode 100755 (executable)
index 0000000..8322c9c
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOGNOMEPANEL}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring gnome-panel-data..."
+
+# live-initramfs script
+
+if [ -x /root/usr/sbin/laptop-detect ]
+then
+       if chroot /root laptop-detect
+       then
+               live-reconfigure /root gnome-panel-data
+       fi
+fi
+
+panel_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-panel-data 2>/dev/null) || panel_version=""
+
+if [ -n "${panel_version}" ]
+then
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/panel/global/disable_lock_screen true
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/22screensaver b/scripts/live-bottom/22screensaver
new file mode 100755 (executable)
index 0000000..967d8c9
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOXSCREENSAVER}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring screensaver..."
+
+# live-initramfs script
+
+gnome_screensaver_version=$(chroot /root dpkg-query -W --showformat='${Version}' gnome-screensaver 2>/dev/null) || gnome_screensaver_version=""
+
+if [ -n "${gnome_screensaver_version}" ]
+then
+       # Support legacy gconf value
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -t bool -s /apps/gnome-screensaver/lock false
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -t bool -s /apps/gnome-screensaver/lock_enabled false
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/23etc_modules b/scripts/live-bottom/23etc_modules
new file mode 100755 (executable)
index 0000000..4cc300a
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Preconfiguring /etc/modules..."
+
+# live-initramfs script
+
+# load the right modules
+case "${DPKG_ARCH}" in
+       powerpc|ppc64)
+               echo snd_powermac >> /root/etc/modules
+               ;;
+esac
+
+log_end_msg
diff --git a/scripts/live-bottom/23networking b/scripts/live-bottom/23networking
new file mode 100755 (executable)
index 0000000..603116f
--- /dev/null
@@ -0,0 +1,146 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NONETWORKING}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Preconfiguring networking..."
+
+# live-initramfs script
+
+IFFILE="/root/etc/network/interfaces"
+
+if [ "${STATICIP}" = "frommedia" -a -e  "${IFFILE}" ]
+then
+       # will use existent /etc/network/interfaces
+       log_end_msg
+       exit 0
+fi
+
+cat > "${IFFILE}" << EOF
+auto lo
+iface lo inet loopback
+
+EOF
+
+udevtrigger
+udevsettle
+
+if [ -z "${NETBOOT}" -a -n "${STATICIP}" -a "${STATICIP}" != "frommedia" ]
+then
+       parsed=$(echo "${STATICIP}" | sed -e 's/:/ /g')
+
+       for ifline in ${parsed}
+       do
+               ifname="$(echo ${ifline} | cut -f1 -d ',')"
+               ifaddress="$(echo ${ifline} | cut -f2 -d ',')"
+               ifnetmask="$(echo ${ifline} | cut -f3 -d ',')"
+               ifgateway="$(echo ${ifline} | cut -f4 -d ',')"
+
+cat >> "${IFFILE}" << EOF
+auto ${ifname}
+iface ${ifname} inet static
+    address ${ifaddress}
+    netmask ${ifnetmask}
+    gateway ${ifgateway}
+
+EOF
+
+       done
+else
+       if [ -z "${NETBOOT}" ]
+       then
+               # default, dhcp assigned
+               method="dhcp"
+       else
+               # make sure that the preconfigured interface would not get reassigned by dhcp
+               # on startup by ifup script - otherwise our root fs might be disconnected!
+               method="manual"
+       fi
+
+       # iterate the physical interfaces and add them to the interfaces list
+       if [ "${method}" != dhcp ] || [ ! -x /root/usr/sbin/NetworkManager ]
+       then
+               for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
+               do
+                       [ -e ${interface} ] || continue
+                       i="$(basename ${interface})"
+
+cat >> "${IFFILE}" << EOF
+auto ${i}
+iface ${i} inet ${method}
+
+EOF
+
+               done
+       fi
+
+       if [ ! -f /root/etc/resolv.conf -a -f /netboot.config ]
+       then
+               # create a resolv.conf if it is not present
+               cp /netboot.config /root/var/log/netboot.config
+
+               rc_search=$(cat netboot.config | awk '/domain/{print $3}')
+               rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
+               rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
+               rc_server0="nameserver ${rc_server0}"
+
+               if [ "${rc_server1}" = "0.0.0.0" ]
+               then
+                       rc_server1=""
+               else
+                       rc_server1="nameserver ${rc_server1}"
+               fi
+
+cat > /root/etc/resolv.conf << EOF
+# /etc/resolv.conf
+# Autogenerated by live-initramfs
+search ${rc_search}
+domain ${rc_search}
+${rc_server0}
+${rc_server1}
+EOF
+
+               cat /root/etc/resolv.conf >> /root/var/log/netboot.config
+       fi
+fi
+
+#if [ ! -x /root/usr/sbin/NetworkManager ]
+#then
+#      for i in eth0 eth1 eth2 ath0 wlan0
+#      do
+#              grep -q "iface ${i}" ${IFFILE} && continue
+#
+#cat >> "${IFFILE}" << EOF
+#auto ${i}
+#iface ${i} inet dhcp
+#
+#EOF
+#
+#      done
+#fi
+
+log_end_msg
diff --git a/scripts/live-bottom/24preseed b/scripts/live-bottom/24preseed
new file mode 100755 (executable)
index 0000000..a8f5a46
--- /dev/null
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOPRESEED}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Loading preseed file..."
+
+# live-initramfs script
+
+if [ -e /preseed.cfg ]
+then
+       chroot /root debconf-set-selections < /preseed.cfg
+fi
+
+if [ -f "/root/${LOCATION}" ]
+then
+       chroot /root debconf-set-selections < "/root/${LOCATION}"
+fi
+
+if [ -n "${PRESEEDS}" ]
+then
+       for preseed in ${PRESEEDS}
+       do
+               question="${preseed%%=*}"
+               value="${preseed#*=}"
+
+               live-preseed /root "${question}" "${value}"
+       done
+fi
+
+reply="$(echo "GET preseed/early_command" | chroot /root debconf-communicate -fnoninteractive live-initramfs)"
+
+if [ "${reply#0 }" != "${reply}" ]
+then
+       reply="${reply#0 }"
+       sh -c "${reply}"
+fi
+
+# Clear out debconf database backup files to save memory.
+rm -f /root/var/cache/debconf/*.dat-old
+
+log_end_msg
+
+exit 0
diff --git a/scripts/live-bottom/25configure_init b/scripts/live-bottom/25configure_init
new file mode 100755 (executable)
index 0000000..6ca1775
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+. /scripts/live-functions
+
+log_begin_msg "Setting up init..."
+
+# live-initramfs script
+
+# Arrange for shells on virtual consoles, rather than login prompts
+
+if [ -z "${NOAUTOLOGIN}" ]
+then
+       if [ -n "${USERNAME}" ]
+       then
+               if [ ! -z "${LIVE_GETTY}" ]
+               then
+                       if echo "${DEFCONSOLE}" | grep -qs ttyS
+                       then
+                               # AUTOMATIC SERIAL CONSOLE #
+                               PORT=$(echo "${DEFCONSOLE}" | \
+                                       sed -e 's%,.*%%')
+                               SPEED=$(echo "${DEFCONSOLE}" | \
+                                       sed -e 's%ttyS[0-9]\+,%%' \
+                                       -e's%\([0-9]\+\).*%\1%')
+
+                               if ! ( sed -n -e'/^[^#]/p' /root/etc/inittab | grep -qs ":respawn:/sbin/getty.*${PORT}" )
+                               then
+                                       IDs="A B C D E F G H I J K L M N O P Q R S T Q U V V X Y Z 0 1 2 3 4 5 6 7 8 9"
+
+                                       for ID1 in ${IDs}
+                                       do
+                                               for ID2 in ${IDs}
+                                               do
+                                                       ID="${ID1}${ID2}"
+
+                                                       if ! grep "^${ID}:" /etc/inittab
+                                                       then
+                                                               #make sure it is not already in use
+                                                               break 2
+                                                       fi
+                                               done
+                                       done
+
+                                       echo "${ID}:2345:respawn:/sbin/live-getty -L ${PORT} ${SPEED} vt100" >> /root/etc/inittab
+                               fi
+                       fi
+
+                       if [ -f /root/etc/inittab ]
+                       then
+                               sed -i -e'/^[^#]/s%respawn:/sbin/getty%respawn:/sbin/live-getty%' /root/etc/inittab
+                       fi
+               else
+                       if [ -f /root/etc/inittab ]
+                       then
+                               sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9]*\).*$|\1:/bin/login -f ${USERNAME} </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab
+                       fi
+
+                       if [ "/root/etc/event.d/tty*" != "$(echo /root/etc/event.d/tty*)" ]
+                       then
+                               for f in /root/etc/event.d/tty*
+                               do
+                                       sed -i -e "s|^respawn.*|respawn /bin/login -f ${USERNAME} </dev/$(basename ${f}) > /dev/$(basename ${f}) 2>\&1|" ${f}
+                               done
+                       fi
+               fi
+
+               # Since we use autologin, lastlog doesn't make sense on the console.
+               sed -i '/^[^#].*pam_lastlog\.so/s/^/# /' /root/etc/pam.d/login
+       fi
+fi
+
+# do not try to remove files if using file-rc
+if [ -d /etc/rc0.d ]
+then
+       # This has the nice side effect of the cron.{daily,weekly,monthly} jobs in
+       # /etc/crontab remaining disabled, yet also not run by anacron
+       if [ -x /root/usr/sbin/anacron ]
+       then
+               chroot /root dpkg-divert --add --rename --quiet /usr/sbin/anacron
+               ln -s /bin/true /usr/sbin/anacron
+       fi
+
+       # No point, really
+       rm -f /root/etc/rc?.d/[SK]??postfix
+
+       # Avoid clobbering the user's clock
+       rm -f /root/etc/rc?.d/K??hwclock.sh
+fi
+
+# Disable readahead since it doesn't play well with squashfs + unionfs
+# use chmod instead of mv to not trigger unionfs bugs.
+if [ -e /root/sbin/readahead-list ]
+then
+       chmod -x /root/sbin/readahead-list
+fi
+
+log_end_msg
+
+exit 0
diff --git a/scripts/live-bottom/30accessibility b/scripts/live-bottom/30accessibility
new file mode 100755 (executable)
index 0000000..9c20265
--- /dev/null
@@ -0,0 +1,128 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOACCESSIBILITY}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring accessibility options..."
+
+# live-initramfs script
+
+gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
+
+gct ()
+{
+       if [ "${gconf_version}" ]
+       then
+               chroot /root sudo -u "${USERNAME}" gconftool-2 "${@}"
+       fi
+}
+
+case ${ACCESS} in
+       access=v1)
+               # Lesser Visual Impairment
+               gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
+               gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
+               gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
+               gct -s -t string /desktop/gnome/interface/font_name "sans 18"
+               gct -s -t string /apps/metacity/general/theme Atlanta
+               gct -s -t string /desktop/gnome/background/picture_filename ""
+               gct -s -t string /desktop/gnome/background/picture_options none
+               gct -s -t string /desktop/gnome/background/primary_color \#666666
+               gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
+               gct -s -t string /desktop/gnome/background/color_shading_type solid
+               gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
+               gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
+               ;;
+
+       access=v2)
+               # Moderate Visual Impairment
+               gct -s -t bool /desktop/gnome/interface/accessibility true
+               gct -s -t bool /desktop/gnome/applications/at/visual/startup true
+               gct -s -t bool /apps/gksu/disable-grab true
+
+               if [ -e /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py ]
+               then
+                       sed -i '/^enableSpeech\W/ s/True/False/;/^enableMagnifier/ s/False/True/' /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py
+               fi
+               ;;
+
+       access=v3)
+               # Blindness
+               # Disabled for now, until we know eSpeak works.
+               #gct -s -t bool /desktop/gnome/sound/enable_esd false
+               gct -s -t bool /desktop/gnome/interface/accessibility true
+               gct -s -t bool /desktop/gnome/applications/at/visual/startup true
+               gct -s -t bool /apps/gksu/disable-grab true
+               ;;
+
+       braille=ask)
+               # Braille
+               gct -s -t bool /desktop/gnome/interface/accessibility true
+               gct -s -t bool /desktop/gnome/applications/at/visual/startup true
+               gct -s -t bool /apps/gksu/disable-grab true
+
+               if [ -e /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py ]
+               then
+                       sed -i '/^enableSpeech\W/ s/True/False/;/^enableBraille/ s/False/True/' /root/usr/share/pycentral/gnome-orca/site-packages/orca/settings.py
+               fi
+               ;;
+
+       access=m1)
+               # Minor Motor Difficulties
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
+               gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
+               gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
+               gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
+               gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
+               gct -s -t bool /apps/gksu/disable-grab true
+
+               if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
+               then
+                       sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
+               fi
+               ;;
+
+       access=m2)
+               # Motor Difficulties - pointing devices
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
+               gct -s -t bool /desktop/gnome/interface/accessibility true
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
+               gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
+               gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
+               gct -s -t list --list-type=string /desktop/gnome/accessibility/startup/exec_ats [onboard]
+
+               if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]
+               then
+                       sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
+               fi
+               ;;
+esac
+
+log_end_msg
diff --git a/scripts/live-bottom/31disable_update_notifier b/scripts/live-bottom/31disable_update_notifier
new file mode 100755 (executable)
index 0000000..7a6fef8
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOUPDATENOTIFIER}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Disabling update-notifier..."
+
+# live-initramfs script
+
+# For GNOME, we divert away apt-check to avoid a regular 'apt-get update'
+# equivalent in the live session. We want to run update-notifier for crash
+# report handling.
+chroot /root dpkg-divert --add --rename --quiet \
+       /usr/lib/update-notifier/apt-check
+
+ln -s /bin/true /root/usr/lib/update-notifier/apt-check
+
+# For KDE, adept_notifier's only useful function at the moment is an
+# 'apt-get update' equivalent, so we disable it entirely.
+rm -f /root/usr/share/autostart/adept_notifier_auto.desktop
+
+log_end_msg
diff --git a/scripts/live-bottom/32disable_hibernation b/scripts/live-bottom/32disable_hibernation
new file mode 100755 (executable)
index 0000000..ec0e03a
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOPOWERMANAGEMENT}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Configuring power management..."
+
+# live-initramfs script
+
+gpm_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gnome-power-manager 2>/dev/null) || panel_version=""
+
+if [ -n "${gpm_version}" ]
+then
+       #live-reconfigure /root gnome-power-manager
+       # Gnome < 2.20
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gnome-power-manager/can_hibernate false
+       # Gnome >= 2.20
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -s -t bool /apps/gnome-power-manager/general/can_hibernate false
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/33enable_apport_crashes b/scripts/live-bottom/33enable_apport_crashes
new file mode 100755 (executable)
index 0000000..f300652
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOPROGRAMCRASHES}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Enabling notifications about program crashes..."
+
+# live-initramfs script
+
+update_notifier_version=$(chroot /root dpkg-query -W --showformat='${Version}' update-notifier 2>/dev/null) || update_notifier_version=""
+
+if [ -n "${update_notifier_version}" ]
+then
+       chroot /root sudo -u "${USERNAME}" gconftool-2 -t bool -s /apps/update-notifier/show_apport_crashes true
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/34disable_kpersonalizer b/scripts/live-bottom/34disable_kpersonalizer
new file mode 100755 (executable)
index 0000000..e19cf2a
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOKPERSONALIZER}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Disabling kpersonalizer..."
+
+# live-initramfs script
+
+if chroot /root /usr/bin/which kpersonalizer >/dev/null
+then
+       # Disable first-login wizard for KDE
+       if [ ! -f /root/etc/kde3/kpersonalizerrc ]
+       then
+
+cat > /root/etc/kde3/kpersonalizerrc << EOF
+[General]
+FirstLogin=false
+EOF
+
+       else
+               echo "I'm not smart enough to disable kpersonalizer startup" >&2
+               echo "Because kpersonalizerrc already exists" >&2
+       fi
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/34disable_kwallet b/scripts/live-bottom/34disable_kwallet
new file mode 100755 (executable)
index 0000000..79c895a
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOKWALLET}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Disabling kwallet..."
+
+# live-initramfs script
+
+rm -f /root/usr/share/services/kded/kwalletd.desktop
+
+log_end_msg
diff --git a/scripts/live-bottom/35fix_language_selector b/scripts/live-bottom/35fix_language_selector
new file mode 100755 (executable)
index 0000000..126a5b2
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOLANGUAGESELECTOR}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Fixing language selector..."
+
+# live-initramfs script
+
+if [ -e /root/usr/share/applications/language-selector.desktop ]
+then
+       sed -i '/^Exec/ s|/usr/bin/gnome-language-selector|"& -n"|' /root/usr/share/applications/language-selector.desktop
+fi
+
+if [ -x /root/usr/bin/fontconfig-voodoo ]
+then
+       chroot /root fontconfig-voodoo --auto --quiet || true
+fi
+
+log_end_msg
diff --git a/scripts/live-bottom/36disable_trackerd b/scripts/live-bottom/36disable_trackerd
new file mode 100755 (executable)
index 0000000..24a43d8
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOTIMEZONE}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Disabling trackerd..."
+
+# live-initramfs script
+
+rm -f /root/etc/xdg/autostart/trackerd.desktop \
+      /root/usr/share/autostart/trackerd.desktop
+
+log_end_msg
diff --git a/scripts/live-bottom/38disable_restricted_manager b/scripts/live-bottom/38disable_restricted_manager
new file mode 100755 (executable)
index 0000000..16a78f3
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+PREREQ=""
+
+. /scripts/live-functions
+
+prereqs()
+{
+       echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+       prereqs
+       exit 0
+       ;;
+esac
+
+if [ -n "${NORESTRICTEDMANAGER}" ]
+then
+       exit 0
+fi
+
+log_begin_msg "Disabling restricted-manager..."
+
+rm -f /root/etc/xdg/autostart/restricted-manager.desktop
+rm -f /root/etc/xdg/autostart/restricted-manager-kde.desktop
+
+# Since we disable restricted-manager, there isn't much point generating the
+# fglrx or nvidia modules either. The other restricted modules may still be
+# useful.
+sed -i 's/^DISABLED_MODULES=""/DISABLED_MODULES="fglrx nv"/' \
+       /root/etc/default/linux-restricted-modules-common
+
+log_end_msg
diff --git a/scripts/live-bottom/41apt_cdrom b/scripts/live-bottom/41apt_cdrom
new file mode 100755 (executable)
index 0000000..63da284
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOAPTCDROM}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Adding APT-CDROM source..."
+
+# live-initramfs script
+
+chroot /root apt-cdrom -m add
+
+log_end_msg
diff --git a/scripts/live-bottom/42disable_apparmor b/scripts/live-bottom/42disable_apparmor
new file mode 100755 (executable)
index 0000000..d325ddb
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ=""
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs header
+
+if [ -n "${NOAPPARMOR}" ]
+then
+       exit 0
+fi
+
+. /scripts/live-functions
+
+log_begin_msg "Disabling AppArmor (does not work with stacked file systems)..."
+
+# live-initramfs script
+
+chroot /root update-rc.d -f apparmor remove
+
+log_end_msg
diff --git a/scripts/live-functions b/scripts/live-functions
new file mode 100644 (file)
index 0000000..6fb57c6
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+. /scripts/functions
+. /live.vars
+
+log_end_msg ()
+{
+       # Override this so we don't call PROGRESS
+       if [ -x /sbin/usplash_write ]
+       then
+               /sbin/usplash_write "SUCCESS ok"
+       fi
+
+       _log_msg "Done."
+}
+
+log_wait_msg ()
+{
+       # Print a message and wait for enter
+       if [ -x /sbin/usplash_write ]
+       then
+               /sbin/usplash_write "INPUTENTER ${@}"
+               read nunya < /dev/.initramfs/usplash_outfifo
+       fi
+
+       _log_msg "Waiting: ${@} ..."
+}
+
+really_export ()
+{
+       STRING="${1}"
+       VALUE="$(eval echo -n \${$STRING})"
+
+       if [ -f /live.vars ] && cat /live.vars | grep -sq "export ${STRING}"
+       then
+               sed -i -e 's/\('${STRING}'=\).*$/\1'${VALUE}'/' /live.vars
+       else
+               echo "export ${STRING}=\"${VALUE}\"" >> /live.vars
+       fi
+
+       eval export "${STRING}"="${VALUE}"
+}
diff --git a/scripts/live-helpers b/scripts/live-helpers
new file mode 100644 (file)
index 0000000..f49eaf7
--- /dev/null
@@ -0,0 +1,304 @@
+#!/bin/sh
+# live-initramfs helper functions, used by live-initramfs on boot and by live-snapshot
+
+if [ ! -x "/bin/fstype" ]
+then
+       # klibc not in path -> not in initramfs
+       export PATH="${PATH}:/usr/lib/klibc/bin"
+fi
+
+sys2dev ()
+{
+       sysdev=${1#/sys}
+       echo "/dev/$(udevinfo -q name -p ${sysdev} 2>/dev/null|| echo ${sysdev##*/})"
+}
+
+subdevices ()
+{
+       sysblock=${1}
+       r=""
+
+       for dev in "${sysblock}" "${sysblock}"/*
+       do
+               if [ -e "${dev}/dev" ]
+               then
+                       r="${r} ${dev}"
+               fi
+       done
+
+       echo ${r}
+}
+
+get_fstype ()
+{
+       local FSTYPE
+       local FSSIZE
+
+       eval $(fstype < ${1})
+
+       if [ "${FSTYPE}" != "unknown" ]
+       then
+               echo ${FSTYPE}
+               return 0
+       fi
+
+       /lib/udev/vol_id -t ${1} 2>/dev/null
+}
+
+where_is_mounted ()
+{
+       device=${1}
+
+       if grep -q "^${device} " /proc/mounts
+       then
+               grep "^${device} " /proc/mounts | read d mountpoint rest
+               echo ${mountpoint}
+               return 0
+       fi
+
+       return 1
+}
+
+lastline ()
+{
+       while read lines
+       do
+               line=${lines}
+       done
+
+       echo "${line}"
+}
+
+base_path ()
+{
+       testpath="${1}"
+       mounts="$(awk '{print $2}' /proc/mounts)"
+       testpath="$(busybox realpath ${testpath})"
+
+       while true
+       do
+               if echo "${mounts}" | grep -qs "^${testpath}"
+               then
+                       set -- $(echo "${mounts}" | grep "^${testpath}" | lastline)
+                       echo ${1}
+                       break
+               else
+                       testpath=$(dirname $testpath)
+               fi
+       done
+}
+
+fs_size ()
+{
+       # Returns used/free fs kbytes + 5% more
+       # You could pass a block device as ${1} or the mount point as ${2}
+
+       dev="${1}"
+       mountp="${2}"
+       used="${3}"
+
+       if [ -z "${mountp}" ]
+       then
+               mountp=$(where_is_mounted "${dev}")
+
+               if [ "${?}" -gt 0 ]
+               then
+                       mountp="/mnt/tmp_fs_size"
+
+                       mkdir -p "${mountp}"
+                       mount -t $(get_fstype "${dev}") -o ro "${dev}" "${mountp}"
+
+                       doumount=1
+               fi
+       fi
+
+       if [ "${used}" = "used" ]
+       then
+               size=$(du -ks ${mountp} | cut -f1)
+               size=$(expr ${size} + ${size} / 20 ) # FIXME: 5% more to be sure
+       else
+               # free space
+               size="$(df -k | grep -s ${mountp} | awk '{print $4}')"
+       fi
+
+       if [ -n "${doumount}" ]
+       then
+               umount "${mountp}"
+               rmdir "${mountp}"
+       fi
+
+       echo "${size}"
+}
+
+load_keymap ()
+{
+       # Load custom keymap
+       if [ -x /bin/loadkeys -a -r /etc/boottime.kmap.gz ]
+       then
+               loadkeys /etc/boottime.kmap.gz
+       fi
+}
+
+setup_loop ()
+{
+       local fspath=${1}
+       local module=${2}
+       local pattern=${3}
+       local offset=${4}
+       local encryption=${5}
+
+       modprobe -q -b "${module}"
+       udevsettle
+
+       for loopdev in ${pattern}
+       do
+               if [ "$(cat ${loopdev}/size)" -eq 0 ]
+               then
+                       dev=$(sys2dev "${loopdev}")
+                       options=''
+
+                       if [ 0 -lt "${offset}" ]
+                       then
+                               options="${options} -o ${offset}"
+                       fi
+
+                       if [ -z "${encryption}" ]
+                       then
+                               losetup ${options} "${dev}" "${fspath}"
+                       else
+                               # Loop AES encryption
+                               while true
+                               do
+                                       load_keymap
+
+                                       echo -n "Enter passphrase for ${fspath}: " >&6
+                                       read -s passphrase
+                                       echo "${passphrase}" > /tmp/passphrase
+                                       exec 9</tmp/passphrase
+                                       /sbin/losetup ${options} -e "${encryption}" -p 9 "${dev}" "${fspath}"
+                                       error=${?}
+                                       exec 9<&-
+                                       rm -f /tmp/passphrase
+
+                                       if [ 0 -eq ${error} ]
+                                       then
+                                               unset error
+                                               break
+                                       fi
+
+                                       echo -n "Something went wrong... Retry? [YES/no] " >&6
+                                       read answer
+
+                                       if [ 'no' = "${answer}" ]
+                                       then
+                                               unset answer
+                                               break
+                                       fi
+                               done
+                       fi
+
+                       echo "${dev}"
+                       return 0
+               fi
+       done
+
+       panic "No loop devices available"
+}
+
+try_mount ()
+{
+       dev="${1}"
+       mountp="${2}"
+       opts="${3}"
+
+       if where_is_mounted ${dev} > /dev/null
+       then
+               mount -o remount,"${opts}" ${dev} $(where_is_mounted ${dev}) || panic "Remounting failed"
+               mount -o bind $(where_is_mounted ${dev}) ${mountp} || panic "Cannot bind-mount"
+       else
+               mount -t $(get_fstype "${dev}") -o "${opts}" "${dev}" "${mountp}" || panic "Cannot mount ${dev} on ${mountp}"
+       fi
+}
+
+find_cow_device ()
+{
+       pers_label="${1}"
+       cow_backing="/${pers_label}-backing"
+
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop)
+       do
+               for dev in $(subdevices "${sysblock}")
+               do
+                       devname=$(sys2dev "${dev}")
+
+                       if [ "$(/lib/udev/vol_id -l ${devname} 2>/dev/null)" = "${pers_label}" ]
+                       then
+                               echo "${devname}"
+                               return
+                       elif [ "$(get_fstype ${devname})" = "vfat" ]
+                       then
+                               # FIXME: all supported block devices should be scanned
+                               mkdir -p "${cow_backing}"
+                               try_mount "${devname}" "${cow_backing}" "rw"
+
+                               if [ -e "${cow_backing}/${pers_label}" ]
+                               then
+                                       echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*")
+                                       return 0
+                               else
+                                       umount ${cow_backing}
+                               fi
+                       fi
+               done
+       done
+}
+
+find_files ()
+{
+       # return the first of ${filenames} found on vfat and ext2/ext3 devices
+       # FIXME: merge with above function
+
+       filenames="${1}"
+       snap_backing="/snap-backing"
+
+       for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop)
+       do
+               for dev in $(subdevices "${sysblock}")
+               do
+                       devname=$(sys2dev "${dev}")
+                       devfstype="$(get_fstype ${devname})"
+
+                       if [ "${devfstype}" = "vfat" ] ||  [ "${devfstype}" = "ext2" ] || [ "${devfstype}" = "ext3" ]
+                       then
+                               # FIXME: all supported block devices should be scanned
+                               mkdir -p "${snap_backing}"
+                               try_mount "${devname}" "${snap_backing}" "ro"
+
+                               for filename in ${filenames}
+                               do
+                                       if [ -e "${snap_backing}/${filename}" ]
+                                       then
+                                               echo "${devname} ${snap_backing} ${filename}"
+                                               return 0
+                                       fi
+                               done
+
+                               umount ${snap_backing}
+                       fi
+               done
+       done
+}
+
+get_mac ()
+{
+   mac=""
+   for adaptor in /sys/class/net/*;do
+      status=$(cat ${adaptor}/iflink)
+      if [ ${status} -eq 2 ];
+      then
+         mac=$(cat ${adaptor}/address)
+         mac=$(echo ${mac}|sed 's/:/-/g'|tr '[a-z]' '[A-Z]')
+      fi
+   done
+   echo $mac
+}
diff --git a/scripts/local-top/live b/scripts/local-top/live
new file mode 100755 (executable)
index 0000000..8d18786
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+#set -e
+
+# initramfs-tools header
+
+PREREQ="udev"
+
+prereqs()
+{
+       echo "${PREREQ}"
+}
+
+case "${1}" in
+       prereqs)
+               prereqs
+               exit 0
+               ;;
+esac
+
+# live-initramfs script
+
+# The following modprobe entry is a workaround to live-initramfs not
+# finding the root filesytem.
+#
+# See also:
+#  * http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-May/001459.html
+#  * http://lists.alioth.debian.org/pipermail/debian-live-devel/2007-June/001517.html
+#  * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363047
+
+modprobe ide-generic