From 681c7725618745560db2ef06cb500bd7f5275a02 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Thu, 1 Nov 2007 23:16:50 +0100 Subject: [PATCH 1/1] Initial checkin --- COPYING | 339 ++++ Makefile | 118 ++ bin/live-getty | 20 + bin/live-login | 12 + bin/live-preseed | 25 + bin/live-reconfigure | 70 + bin/live-snapshot | 357 ++++ conf/live.conf | 7 + debian/changelog | 216 +++ debian/compat | 1 + debian/control | 31 + debian/copyright | 40 + debian/init | 126 ++ debian/postinst | 8 + debian/postrm | 8 + debian/rules | 60 + docs/AUTHORS | 11 + docs/CREDITS | 20 + docs/ChangeLog | 635 ++++++++ docs/ChangeLog.casper | 1899 ++++++++++++++++++++++ docs/parameters.txt | 72 + hooks/live | 120 ++ manpages/Makefile | 28 + manpages/live-initramfs.en.7.txt | 318 ++++ manpages/live-snapshot.en.1.txt | 100 ++ manpages/live-snapshot.it.1.txt | 107 ++ patches/grml_patch_add_rsync.diff | 11 + patches/grml_patch_toram.diff | 25 + scripts/live | 1280 +++++++++++++++ scripts/live-bottom/01integrity_check | 29 + scripts/live-bottom/02etc_live_conf | 51 + scripts/live-bottom/02timezone | 60 + scripts/live-bottom/05mountpoints | 36 + scripts/live-bottom/10adduser | 93 ++ scripts/live-bottom/12fstab | 57 + scripts/live-bottom/13swap | 62 + scripts/live-bottom/14locales | 96 ++ scripts/live-bottom/15autologin | 67 + scripts/live-bottom/18hostname | 49 + scripts/live-bottom/19keyboard | 99 ++ scripts/live-bottom/20xconfig | 85 + scripts/live-bottom/21xvidemode | 52 + scripts/live-bottom/22gnome_panel_data | 49 + scripts/live-bottom/22screensaver | 43 + scripts/live-bottom/23etc_modules | 36 + scripts/live-bottom/23networking | 146 ++ scripts/live-bottom/24preseed | 68 + scripts/live-bottom/25configure_init | 119 ++ scripts/live-bottom/30accessibility | 128 ++ scripts/live-bottom/31disable_update_notifier | 46 + scripts/live-bottom/32disable_hibernation | 45 + scripts/live-bottom/33enable_apport_crashes | 41 + scripts/live-bottom/34disable_kpersonalizer | 51 + scripts/live-bottom/34disable_kwallet | 36 + scripts/live-bottom/35fix_language_selector | 44 + scripts/live-bottom/36disable_trackerd | 37 + scripts/live-bottom/38disable_restricted_manager | 36 + scripts/live-bottom/41apt_cdrom | 36 + scripts/live-bottom/42disable_apparmor | 36 + scripts/live-functions | 42 + scripts/live-helpers | 304 ++++ scripts/local-top/live | 31 + 62 files changed, 8274 insertions(+) create mode 100644 COPYING create mode 100644 Makefile create mode 100755 bin/live-getty create mode 100755 bin/live-login create mode 100755 bin/live-preseed create mode 100755 bin/live-reconfigure create mode 100755 bin/live-snapshot create mode 100644 conf/live.conf create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/init create mode 100644 debian/postinst create mode 100644 debian/postrm create mode 100755 debian/rules create mode 100644 docs/AUTHORS create mode 100644 docs/CREDITS create mode 100644 docs/ChangeLog create mode 100644 docs/ChangeLog.casper create mode 100644 docs/parameters.txt create mode 100755 hooks/live create mode 100644 manpages/Makefile create mode 100644 manpages/live-initramfs.en.7.txt create mode 100644 manpages/live-snapshot.en.1.txt create mode 100644 manpages/live-snapshot.it.1.txt create mode 100644 patches/grml_patch_add_rsync.diff create mode 100644 patches/grml_patch_toram.diff create mode 100755 scripts/live create mode 100755 scripts/live-bottom/01integrity_check create mode 100755 scripts/live-bottom/02etc_live_conf create mode 100755 scripts/live-bottom/02timezone create mode 100755 scripts/live-bottom/05mountpoints create mode 100755 scripts/live-bottom/10adduser create mode 100755 scripts/live-bottom/12fstab create mode 100755 scripts/live-bottom/13swap create mode 100755 scripts/live-bottom/14locales create mode 100755 scripts/live-bottom/15autologin create mode 100755 scripts/live-bottom/18hostname create mode 100755 scripts/live-bottom/19keyboard create mode 100755 scripts/live-bottom/20xconfig create mode 100755 scripts/live-bottom/21xvidemode create mode 100755 scripts/live-bottom/22gnome_panel_data create mode 100755 scripts/live-bottom/22screensaver create mode 100755 scripts/live-bottom/23etc_modules create mode 100755 scripts/live-bottom/23networking create mode 100755 scripts/live-bottom/24preseed create mode 100755 scripts/live-bottom/25configure_init create mode 100755 scripts/live-bottom/30accessibility create mode 100755 scripts/live-bottom/31disable_update_notifier create mode 100755 scripts/live-bottom/32disable_hibernation create mode 100755 scripts/live-bottom/33enable_apport_crashes create mode 100755 scripts/live-bottom/34disable_kpersonalizer create mode 100755 scripts/live-bottom/34disable_kwallet create mode 100755 scripts/live-bottom/35fix_language_selector create mode 100755 scripts/live-bottom/36disable_trackerd create mode 100755 scripts/live-bottom/38disable_restricted_manager create mode 100755 scripts/live-bottom/41apt_cdrom create mode 100755 scripts/live-bottom/42disable_apparmor create mode 100644 scripts/live-functions create mode 100644 scripts/live-helpers create mode 100755 scripts/local-top/live diff --git a/COPYING b/COPYING new file mode 100644 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. + + + Copyright (C) + + 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. + + , 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 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 index 0000000..6781ea5 --- /dev/null +++ b/bin/live-getty @@ -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 index 0000000..c2cc5a1 --- /dev/null +++ b/bin/live-login @@ -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 index 0000000..36154ea --- /dev/null +++ b/bin/live-preseed @@ -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 index 0000000..16cb51d --- /dev/null +++ b/bin/live-reconfigure @@ -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 index 0000000..a6b4154 --- /dev/null +++ b/bin/live-snapshot @@ -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 +# +# 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 " + 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: " + + 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 index 0000000..0de5b6c --- /dev/null +++ b/conf/live.conf @@ -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 index 0000000..4b9708d --- /dev/null +++ b/debian/changelog @@ -0,0 +1,216 @@ +live-initramfs (1.110.4-2) unstable; urgency=low + + * Include patches for grml. + + -- Michael Prokop 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 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 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 . + + -- Daniel Baumann 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 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 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 Mon, 1 Oct 2007 00:00:00 +0200 + +live-initramfs (1.104.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 24 Sep 2007 00:00:00 +0200 + +live-initramfs (1.102.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann 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 to fix wrong ipconfig usage + (Closes: #440235). + + -- Daniel Baumann Mon, 10 Sep 2007 00:00:00 +0200 + +live-initramfs (1.99.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 3 Sep 2007 00:00:00 +0200 + +live-initramfs (1.96.2-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 27 Aug 2007 00:00:00 +0200 + +live-initramfs (1.96.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 20 Aug 2007 00:00:00 +0200 + +live-initramfs (1.95.3-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 13 Aug 2007 00:00:00 +0200 + +live-initramfs (1.95.2-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 6 Aug 2007 00:00:00 +0200 + +live-initramfs (1.95.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 30 Jul 2007 00:00:00 +0200 + +live-initramfs (1.91.6-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 23 Jul 2007 00:00:00 +0200 + +live-initramfs (1.91.5-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann 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 Mon, 9 Jul 2007 00:00:00 +0200 + +live-initramfs (1.91.3-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 2 Jul 2007 00:00:00 +0200 + +live-initramfs (1.91.2-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 25 Jun 2007 00:00:00 +0200 + +live-initramfs (1.91.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 18 Jun 2007 00:00:00 +0200 + +live-initramfs (1.90.1-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 11 Jun 2007 00:00:00 +0200 + +live-initramfs (1.87.6-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 4 Jun 2007 00:00:00 +0200 + +live-initramfs (1.87.5-1) unstable; urgency=medium + + * New upstream release, replacing casper. + + -- Daniel Baumann Mon, 28 May 2007 00:00:00 +0200 + +live-initramfs (1.87.4-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 21 May 2007 00:00:00 +0200 + +live-initramfs (1.87.3-1) unstable; urgency=medium + + * New upstream release. + + -- Daniel Baumann Mon, 14 May 2007 00:00:00 +0200 + +live-initramfs (1.87.2-1) unstable; urgency=low + + * New upstream release. + + -- Daniel Baumann Mon, 7 May 2007 00:00:00 +0200 + +live-initramfs (1.87.1-1) unstable; urgency=low + + * Initial release, forking casper. + + -- Daniel Baumann Mon, 30 Apr 2007 00:00:00 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..d7dcde1 --- /dev/null +++ b/debian/control @@ -0,0 +1,31 @@ +Source: live-initramfs +Section: misc +Priority: optional +Maintainer: Debian Live +Uploaders: Daniel Baumann +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 . diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..e5c0890 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,40 @@ +This package was debianized by Daniel Baumann on +Mon, 30 Apr 2007 00:00:00 +0200. + +It was downloaded from: + + + +Upstream contact: + + Debian Live + +License: + + live-initramfs is a fork of casper . + casper was originally written by Tollef Fog Heen + and Matt Zimmerman . + + Copyright (C) 2005-2007 Canonical Ltd. + Copyright (C) 2006-2007 Marco Amadori + Copyright (C) 2007 Daniel Baumann + + 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 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 index 0000000..d59ed45 --- /dev/null +++ b/debian/init @@ -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 +# Marco Amadori + +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 index 0000000..752b161 --- /dev/null +++ b/debian/postinst @@ -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 index 0000000..752b161 --- /dev/null +++ b/debian/postrm @@ -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 index 0000000..bf12dad --- /dev/null +++ b/debian/rules @@ -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 index 0000000..e10c045 --- /dev/null +++ b/docs/AUTHORS @@ -0,0 +1,11 @@ +Main Authors: + + * Daniel Baumann + +Original Authors: + + live-initramfs is a fork of casper . + casper was originally written by Tollef Fog Heen + and Matt Zimmerman . + + See the casper changelog for casper contributors. diff --git a/docs/CREDITS b/docs/CREDITS new file mode 100644 index 0000000..1738f00 --- /dev/null +++ b/docs/CREDITS @@ -0,0 +1,20 @@ +Patches (alphabetical order): + + * Alexandre Garcia + * Alex Owen + * Arnaud Cornet + * Bas Wijnen + * Ben Armstrong + * Davide Natalini + * Frederic Lehobey + * Hadar Weiss + * Jason D. Clinton + * Jonathan Hall + * Kai Hendry + * Malcom Gilles + * Marco Amadori + * Mathieu Geli + * Oliver Osburg + * Otavio Salvador + * Sebastian Raveau + * Thomas Lange diff --git a/docs/ChangeLog b/docs/ChangeLog new file mode 100644 index 0000000..4d0e52a --- /dev/null +++ b/docs/ChangeLog @@ -0,0 +1,635 @@ +commit 96aa9285ee39f4d3d4245acd8c78accdf73c1fa8 +Author: Daniel Baumann + + 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 + + Merging casper 1.104. + + docs/ChangeLog.casper | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +commit bb97432f7c5eeb330d108be6607edfe0de85bfa7 +Author: Daniel Baumann + + 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 + + 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 + + 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 + + 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 + + Sorting Depends. + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 17b3b36ef3c1fa5cbe5b11c9690a2b0a403db693 +Author: Daniel Baumann + + Applied patch from Michael Prokop to depend on busybox. + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 27cc7504bc8310e2836014d64576be7d9c974be2 +Author: Daniel Baumann + + 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 + + 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 + + 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 + + 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 + + Adjusting to live-initramfs. + + scripts/live-bottom/42disable_cups_apparmor | 37 ++++++++++++++++---------- + 1 files changed, 23 insertions(+), 14 deletions(-) + +commit 9b2894eaf50ce542d03329a0b49bf8df7d633371 +Author: Daniel Baumann + + 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 + + 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 + + Using new Homepage field now. + + debian/control | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +commit d29346c7b4c7a67fed080ea46be15421dec12fe7 +Author: Daniel Baumann + + Applied patch from Frederic Boiteux about NFSROOT=auto, . + + scripts/live | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +commit 4f4c8e22af7a539cfa8bc9ba371c6a57b8e7cb0c +Author: Daniel Baumann + + Applied patch from Michael Prokop 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 + + Adding Marco Amadori . + + docs/CREDITS | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 757b214139daa0f7f312434ed0f77961ea380c4e +Author: Daniel Baumann + + Sorting Build-Depends. + + debian/control | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 8d6e39ce90ed0be835514a15fbf3a007a2b9f3fa +Author: Daniel Baumann + + Simplifying make calls. + + debian/rules | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit bef37dff239b6c28fef89679537bea8643628fe1 +Author: Daniel Baumann + + Applied patch from Michael Prokop 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 + + Applied patch from Michael Prokop 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 + + Applied patch from Michael Prokop 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 + + Fixing typing error. + + debian/control | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit ab933503a8204649724c525facbc14f734f1cd4e +Author: Daniel Baumann + + 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 + + * Using common indenting. + * scripts/live: + - Applied patch from Jim Paris to fix wrong usage of + ipconfig (Closes: #440235). + * Uploaded 1.99.2-1. + +2007-09-09 Michael Prokop + + * 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 + + * 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 + + * Merging changes from casper 1.97, 1.98 and 1.99. + * Uploaded 1.99.1-1. + +2007-08-29 Daniel Baumann + + * 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 + + * Merging changes from casper 1.96. + * Uploaded 1.96.1-1. + +2007-08-21 Daniel Baumann + + * scripts/live: + - Applied patch from Jesse W. Hathaway 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 + + * Uploaded 1.95.2-1. + +2007-08-01 Daniel Baumann + + * 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 + + * Merging changes from casper 1.95. + * Uploaded 1.95.1-1. + +2007-07-26 Daniel Baumann + + * Merging changes from casper 1.92, 1.93 and 1.94. + +2007-07-26 Daniel Baumann + + * 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 + . + * Uploaded 1.91.6-1. + +2007-07-19 Daniel Baumann + + * scripts/live, scripts/live-bottom/02_timezone: + - Added utc boot parameter as suggested by Vladimir Stavrinov + + +2007-07-18 Daniel Baumann + + * docs/parameters.txt: + - Added values for vga parameter. + * scripts/live: + - Added patch from Thomas Lange to + respect rootserver name from dhcp. + * Uploaded 1.91.5-1. + +2007-07-12 Daniel Baumann + + * 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 + + * scripts/live: + - Added debug parameter. + +2007-06-31 Daniel Baumann + + * scripts/live: + - Added patch from Julian Andres Klode 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 + + * 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 + + * Applied patch from Mathieu Geli to set the + timezone with a boot parameter. + +2007-06-25 Daniel Baumann + + * 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 + + * debian/live-initramfs.postinst: + - Made update-initramfs call conditional as suggested by Thomas Lange + . + * debian/live-initramfs.postrm: + - Added update-initramfs call to cleanup. + +2007-06-17 Daniel Baumann + + * Added patch from Thomas Lange to + properly load ide-generic after udev. + * Uploaded 1.91.1-1. + +2007-06-15 Daniel Baumann + + * Merging changes from casper 1.91. + +2007-06-14 Daniel Baumann + + * scripts/live-bottom/18hostname: + - Appending to /etc/hosts to not overwrite custom settings. + +2007-06-08 Daniel Baumann + + * 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 + + * Uploaded 1.87.6-1. + +2007-05-28 Daniel Baumann + + * scripts/live-bottom/42apt_upgrade: + - Moved to dedicated live-initscripts package. + +2007-05-24 Daniel Baumann + + * 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 + + * scripts/*: + - Minor code cleanup. + +2007-05-18 Daniel Baumann + + * 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 + + * scripts/live-bottom/*: + - Added generic header. + +2007-05-12 Daniel Baumann + + * 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 + + * 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 + + * manpages/*: + - Added language suffix. + - Partially rewritten and reformated. + +2007-05-08 Daniel Baumann + + * Makefile, doc/AUTHORS, doc/CREDITS: + - Added. + * doc: + - Renamed to docs. + +2007-05-07 Daniel Baumann + + * debian/control: + - Added suggests to genext2fs and squashfs-tools. + - Removed depends to dmsetup. + * scripts/live-bottom/10adduser: + - Added patch from Ben Armstrong to write + $HOME/.su-to-rootrc file. + * scripts/live, scripts/live-bottom/21xvideomode: + - Added patch from Mathieu Geli to have the + ability to force X video mode from kernel append line. + +2007-05-06 Daniel Baumann + + * 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 + + * 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 + + * 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 index 0000000..f4954ba --- /dev/null +++ b/docs/ChangeLog.casper @@ -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 5 Mar 2007 11:19:48 +0000 + +casper (1.81+debian-4) unstable; urgency=low + + * Added patch from Serkan Sakar to allow local keymap + for use with encryption. + + -- Daniel Baumann 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 Wed, 21 Mar 2007 00:30:00 +0100 + +casper (1.81+debian-2) unstable; urgency=low + + [ Daniel Baumann ] + * Applied patch from Sebastian Raveau 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 for the patch. + + -- Marco Amadori 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 and + Jonathan Hall (Closes: #409980). + * Included a slightly reworked and bug fixed version of "Allow specific + ordering of images" by Jonathan Hall with a new boot + parameter: module=NAME. + + -- Marco Amadori Thu, 15 Feb 2007 10:21:01 +0100 + +casper (1.81) feisty; urgency=low + + * Merge in Debian's changes. + + -- Tollef Fog Heen 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 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" . + + -- Marco Amadori 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 . + + -- Marco Amadori 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 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 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 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" . + + -- Marco Amadori 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 . + * Now it creates /etc/resolv.conf if netbooted. + + -- Marco Amadori 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 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 + . + * Fixed X keyboard setup. Thanks to for the idea. + * Fixed keyboard setup. + * Allow commandline-device to show up late, thanks to Bas Wijnen + for the code and the care (Closes: #397320). + * Urgency is set to medium to try reaching Etch with important + features/bugfixes. + + -- Marco Amadori 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 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 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=" to force trying to boot from + a specified device. + * Added support for "todisk=" to copy the live media to a + device filesystem, subsequent boots could use "live-media=". + * Slightly polished locales and keyboards handling. + * Extendend manpages. + * Readded a missing "sleep 1", reworked how live_media is detected, + thanks to Bas Wijnen 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + * 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 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 Tue, 18 Jul 2006 10:20:51 +0200 + +casper (1.61+debian-2) unstable; urgency=low + + * Set password for user to 'debian'. + + -- Daniel Baumann 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 + . + + [ Marco Amadori ] + * New upstream release (Resynced with 1.61, bzr 258). + * Usb discover patch from Malcom Gilles . + + -- Marco Amadori 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 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 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 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" + * Lowered dependence of dmsetup code (now only Suggests). + * Checks for replacing "udevplug" (ubuntu-only) with "udevtrigger". + * Reworked xorg and anacron patches from + Frederic Lehobey . + * scripts/casper-bottom/10adduser: configuring only the $USERNAME for sudo + instead of group 'admin'. + + -- Marco Amadori Fri, 16 Jun 2006 11:01:48 +0200 + +casper (1.58) dapper; urgency=low + + * Really rename properly, without dirname. + + -- Scott James Remnant 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 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 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 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 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 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 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 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 Tue, 2 May 2006 14:12:31 +0200 + +casper (1.49) dapper; urgency=low + + * Also look for hardware named wlan* + + -- Scott James Remnant 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 27 Feb 2006 17:32:02 +0000 + +casper (1.34) dapper; urgency=low + + [ Luke Yelavich ] + * Add initial accessibility support framework + + -- Tollef Fog Heen 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 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 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 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 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 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 Mon, 16 Jan 2006 22:06:35 +0100 + +casper (1.27) dapper; urgency=low + + * Try using unionfs on ppc again + + -- Tollef Fog Heen Tue, 10 Jan 2006 20:55:19 +0100 + +casper (1.26) dapper; urgency=low + + * Add persistency support + * Usplash integration + + -- Tollef Fog Heen 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 29 Aug 2005 18:30:38 -0700 + +casper (1.8) breezy; urgency=low + + * Add usplash support + + -- Matt Zimmerman 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 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 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 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 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 Sat, 13 Aug 2005 11:19:50 -0700 + +casper (1.2) breezy; urgency=low + + * Fix debconf-copydb regex in 20xconfig + + -- Matt Zimmerman 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 12 Mar 2005 02:10:59 -0800 + +casper (0.51) hoary; urgency=low + + * Disable kpersonalizer startup on first login + + -- Matt Zimmerman 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 Thu, 3 Mar 2005 10:37:31 -0800 + +casper (0.49) hoary; urgency=low + + * Fix 20xconfig harder + + -- Matt Zimmerman Wed, 2 Mar 2005 21:20:03 -0800 + +casper (0.48) hoary; urgency=low + + * Source confmodule in 20xconfig + + -- Matt Zimmerman 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 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 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 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 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 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 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 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 Mon, 21 Feb 2005 19:03:54 +0000 + +casper (0.39) hoary; urgency=low + + * Fix reboot operation (cache the reboot binary) + + -- Matt Zimmerman 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 Thu, 10 Feb 2005 13:43:56 -0800 + +casper (0.37) hoary; urgency=low + + * Fix casper-udeb/runlevel template + + -- Matt Zimmerman 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 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 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 Wed, 2 Feb 2005 10:42:19 -0800 + +casper (0.33) hoary; urgency=low + + * Re-upload to fix borked source package + + -- Matt Zimmerman 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 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 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 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 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 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 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 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 Fri, 21 Jan 2005 16:04:52 -0800 + +casper (0.24) hoary; urgency=low + + * Add a backtitle properly + + -- Matt Zimmerman Fri, 21 Jan 2005 09:07:19 -0800 + +casper (0.23) hoary; urgency=low + + * Add a backtitle + + -- Matt Zimmerman 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 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 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 Wed, 19 Jan 2005 13:22:33 -0800 + +casper (0.19) hoary; urgency=low + + * Update TODO + * casper-udeb Depends: md-modules + + -- Matt Zimmerman 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 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 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 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 Tue, 18 Jan 2005 13:41:00 +0000 + +casper (0.14) hoary; urgency=low + + * Enable X autoconfiguration(!) + + -- Matt Zimmerman 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 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 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 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 Thu, 13 Jan 2005 18:13:31 -0800 + +casper (0.9) hoary; urgency=low + + * Fix gdm autologin configuration (broken in 0.8) + + -- Matt Zimmerman 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 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 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 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 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 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 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 Fri, 7 Jan 2005 08:01:21 -0800 + +casper (0.1) hoary; urgency=low + + * Initial Release. + + -- Matt Zimmerman Wed, 5 Jan 2005 14:30:28 -0800 diff --git a/docs/parameters.txt b/docs/parameters.txt new file mode 100644 index 0000000..f8bb2f4 --- /dev/null +++ b/docs/parameters.txt @@ -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 index 0000000..5d9de44 --- /dev/null +++ b/hooks/live @@ -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 index 0000000..c2ddc94 --- /dev/null +++ b/manpages/Makefile @@ -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 index 0000000..0b1a4bf --- /dev/null +++ b/manpages/live-initramfs.en.7.txt @@ -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 +and Matt Zimmerman . + +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 +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 +and Matt Zimmerman . diff --git a/manpages/live-snapshot.en.1.txt b/manpages/live-snapshot.en.1.txt new file mode 100644 index 0000000..7cebed5 --- /dev/null +++ b/manpages/live-snapshot.en.1.txt @@ -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 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 and Matt Zimmerman . diff --git a/manpages/live-snapshot.it.1.txt b/manpages/live-snapshot.it.1.txt new file mode 100644 index 0000000..e396efe --- /dev/null +++ b/manpages/live-snapshot.it.1.txt @@ -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 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 e Matt Zimmerman +. diff --git a/patches/grml_patch_add_rsync.diff b/patches/grml_patch_add_rsync.diff new file mode 100644 index 0000000..1c84c62 --- /dev/null +++ b/patches/grml_patch_add_rsync.diff @@ -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 index 0000000..48150d7 --- /dev/null +++ b/patches/grml_patch_toram.diff @@ -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 index 0000000..1dcbc74 --- /dev/null +++ b/scripts/live @@ -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 index 0000000..e4710f3 --- /dev/null +++ b/scripts/live-bottom/01integrity_check @@ -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 index 0000000..1623de8 --- /dev/null +++ b/scripts/live-bottom/02etc_live_conf @@ -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 index 0000000..e4e91ff --- /dev/null +++ b/scripts/live-bottom/02timezone @@ -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 index 0000000..a334af8 --- /dev/null +++ b/scripts/live-bottom/05mountpoints @@ -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 index 0000000..e5067dd --- /dev/null +++ b/scripts/live-bottom/10adduser @@ -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 index 0000000..ca83626 --- /dev/null +++ b/scripts/live-bottom/12fstab @@ -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. + # + # + ${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 index 0000000..f3af1cc --- /dev/null +++ b/scripts/live-bottom/13swap @@ -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 index 0000000..3653e1b --- /dev/null +++ b/scripts/live-bottom/14locales @@ -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 index 0000000..03b66f4 --- /dev/null +++ b/scripts/live-bottom/15autologin @@ -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 index 0000000..1dbb897 --- /dev/null +++ b/scripts/live-bottom/18hostname @@ -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 index 0000000..784aa05 --- /dev/null +++ b/scripts/live-bottom/19keyboard @@ -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 index 0000000..8886af8 --- /dev/null +++ b/scripts/live-bottom/20xconfig @@ -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 index 0000000..a11dc77 --- /dev/null +++ b/scripts/live-bottom/21xvidemode @@ -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 index 0000000..8322c9c --- /dev/null +++ b/scripts/live-bottom/22gnome_panel_data @@ -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 index 0000000..967d8c9 --- /dev/null +++ b/scripts/live-bottom/22screensaver @@ -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 index 0000000..4cc300a --- /dev/null +++ b/scripts/live-bottom/23etc_modules @@ -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 index 0000000..603116f --- /dev/null +++ b/scripts/live-bottom/23networking @@ -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 index 0000000..a8f5a46 --- /dev/null +++ b/scripts/live-bottom/24preseed @@ -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 index 0000000..6ca1775 --- /dev/null +++ b/scripts/live-bottom/25configure_init @@ -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 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}) 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 index 0000000..9c20265 --- /dev/null +++ b/scripts/live-bottom/30accessibility @@ -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 index 0000000..7a6fef8 --- /dev/null +++ b/scripts/live-bottom/31disable_update_notifier @@ -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 index 0000000..ec0e03a --- /dev/null +++ b/scripts/live-bottom/32disable_hibernation @@ -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 index 0000000..f300652 --- /dev/null +++ b/scripts/live-bottom/33enable_apport_crashes @@ -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 index 0000000..e19cf2a --- /dev/null +++ b/scripts/live-bottom/34disable_kpersonalizer @@ -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 index 0000000..79c895a --- /dev/null +++ b/scripts/live-bottom/34disable_kwallet @@ -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 index 0000000..126a5b2 --- /dev/null +++ b/scripts/live-bottom/35fix_language_selector @@ -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 index 0000000..24a43d8 --- /dev/null +++ b/scripts/live-bottom/36disable_trackerd @@ -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 index 0000000..16a78f3 --- /dev/null +++ b/scripts/live-bottom/38disable_restricted_manager @@ -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 index 0000000..63da284 --- /dev/null +++ b/scripts/live-bottom/41apt_cdrom @@ -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 index 0000000..d325ddb --- /dev/null +++ b/scripts/live-bottom/42disable_apparmor @@ -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 index 0000000..6fb57c6 --- /dev/null +++ b/scripts/live-functions @@ -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 index 0000000..f49eaf7 --- /dev/null +++ b/scripts/live-helpers @@ -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&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 index 0000000..8d18786 --- /dev/null +++ b/scripts/local-top/live @@ -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 -- 2.1.4