debian/0000775000000000000000000000000012310205744007166 5ustar debian/rules0000775000000000000000000001146512310205332010246 0ustar #! /usr/bin/make -f tmp = $(CURDIR)/debian/tmp sysvtmp = $(CURDIR)/debian/sysvinit utiltmp = $(CURDIR)/debian/sysvinit-utils rctmp = $(CURDIR)/debian/sysv-rc inittmp = $(CURDIR)/debian/initscripts bootlogdtmp = $(CURDIR)/debian/bootlogd doc = /usr/share/doc LC_ALL = POSIX DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) INSTALL_DATA = install -o root -g root -m 644 INSTALL = install -o root -g root -m 755 # Handle cross builds ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc # CROSS is passed to make, CC is called directly. CC=$(DEB_HOST_GNU_TYPE)-gcc endif # Set arch specific build flags ifeq ($(DEB_HOST_ARCH_OS),linux) CONFFLAGS = WITH_SELINUX="yes" endif DH_OPTIONS = # Use debhelper's dh %: dh $@ $(DH_OPTIONS) override_dh_auto_build: $(MAKE) $(CROSS) $(CONFFLAGS) -C src DISTRO=Debian LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) CFLAGS="$(CFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" $(MAKE) $(CROSS) COPTS="$(CFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" -C startpar ifeq ($(DEB_HOST_ARCH_OS),linux) $(MAKE) $(CROSS) COPTS="$(CFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" -C startpar startpar-upstart-inject endif override_dh_auto_install-arch: $(MAKE) $(CROSS) -C startpar DESTDIR=$(utiltmp) install ifeq ($(DEB_HOST_ARCH_OS),linux) install -m755 startpar/startpar-upstart-inject $(utiltmp)/sbin/ endif $(MAKE) -C debian/src/bootlogd install DESTDIR=$(bootlogdtmp) $(MAKE) -C debian/src/initscripts install DESTDIR=$(inittmp) $(MAKE) -C src $(CROSS) ROOT=$(tmp) DISTRO=Debian install override_dh_auto_install-indep: $(MAKE) -C debian/src/sysv-rc install DESTDIR=$(rctmp) override_dh_install-arch: dh_install ifneq (,$(filter sysvinit, $(shell dh_listpackages))) # sysvinit package if test -e debian/share/inittab.$(DEB_HOST_GNU_TYPE) ; \ then \ $(INSTALL_DATA) \ debian/share/inittab.$(DEB_HOST_GNU_TYPE) \ $(sysvtmp)/usr/share/sysvinit/inittab ; \ elif test -e debian/share/inittab.$(DEB_HOST_GNU_SYSTEM) ; \ then \ $(INSTALL_DATA) \ debian/share/inittab.$(DEB_HOST_GNU_SYSTEM) \ $(sysvtmp)/usr/share/sysvinit/inittab ; \ else \ $(INSTALL_DATA) debian/share/inittab \ $(sysvtmp)/usr/share/sysvinit/inittab ; \ fi $(INSTALL) debian/share/update-rc.d $(sysvtmp)/usr/share/sysvinit/ endif # initscripts package may include /sys ifneq (,$(findstring $(DEB_HOST_ARCH_OS),linux kfreebsd)) $(INSTALL) -d $(inittmp)/sys endif debian/copyright: debian/copyright.in cat $< COPYRIGHT > $@ install-arch: build-arch debian/copyright dh $@ $(DH_OPTIONS) override_dh_installchangelogs-arch: dh_installchangelogs -psysvinit doc/Changelog dh_installchangelogs -psysvinit-utils doc/Changelog sed -i -ne '/sysvinit (2.86.ds1-47)/q' -e p \ $(utiltmp)$(doc)/sysvinit-utils/changelog.Debian dh_installchangelogs -pinitscripts sed -i -ne '/sysvinit (2.86.ds1-47)/q' -e p \ $(inittmp)$(doc)/initscripts/changelog.Debian dh_installchangelogs -pbootlogd sed -i -ne '/sysvinit (2.86.ds1-47)/q' -e p \ $(bootlogdtmp)$(doc)/bootlogd/changelog.Debian override_dh_installchangelogs-indep: dh_installchangelogs sed -i -ne '/sysvinit (2.86.ds1-47)/q' -e p \ $(rctmp)$(doc)/sysv-rc/changelog.Debian override_dh_fixperms: dh_fixperms -X/etc/init.d/skeleton -X/etc/init.d/README override_dh_installdeb-arch: dh_installdeb # Override autogenerated conffiles $(INSTALL_DATA) debian/initscripts.conffiles \ $(inittmp)/DEBIAN/conffiles sh debian/deps-mount >> debian/initscripts.substvars ifeq ($(DEB_HOST_ARCH_OS), hurd) # The Hurd has its own halt and reboot commands. mv $(sysvtmp)/usr/share/man/man8/halt.8.gz $(sysvtmp)/usr/share/man/man8/halt-sysv.8.gz rm $(sysvtmp)/usr/share/man/man8/reboot.8.gz ln -s halt-sysv.8.gz $(sysvtmp)/usr/share/man/man8/reboot-sysv.8.gz mv $(sysvtmp)/sbin/halt $(sysvtmp)/sbin/halt-sysv rm $(sysvtmp)/sbin/reboot ln -s halt-sysv $(sysvtmp)/sbin/reboot-sysv endif override_dh_installdeb-indep: dh_installdeb # Neither rc, rcS nor README are conffiles $(RM) $(rctmp)/DEBIAN/conffiles override_dh_installinit-arch: dh_installinit --name startpar-bridge -n override_dh_clean: dh_clean debian/copyright $(MAKE) -C src clobber if [ -d startpar ] && [ -f startpar/Makefile ] ; then \ $(MAKE) -C startpar clean ; \ fi ifeq ($(DEB_HOST_ARCH_OS),linux) rm -f startpar/startpar-upstart-inject endif .PHONY: override_dh_auto_build override_dh_auto_install-arch override_dh_auto_install-indep override_dh_installchangelogs-arch override_dh_installchangelogs-indep override_dh_fixperms override_dh_installdeb-arch override_dh_installdeb-indep override_dh_clean install-arch debian/compat0000664000000000000000000000000212310205332010355 0ustar 9 debian/po/0000775000000000000000000000000012310205744007604 5ustar debian/po/gl.po0000664000000000000000000001036512310205332010544 0ustar # Copyright (C) 2009 This file is part of Debian # This file is distributed under the same license as the sysvinit package. # # Marce Villarino , 2009. # Jorge Barreiro , 2012. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-23 12:18+0200\n" "Last-Translator: Jorge Barreiro \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Non foi posíbel migrar para o sistema baseado en dependencias" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Hai problemas no sistema de arranque que fan que " "non se poida migrar para a secuencia baseada en dependencias:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Se o problema mencionado é unha modificación local, debe ser arranxado " "manualmente. Estes problemas débense normalmente a ficheiros de " "configuración obsoletos deixados despois de que un paquete se eliminara, " "pero non se purgara. Suxíreselle que se borren estes ficheiros executando:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "A instalación do paquete non pode continuar ata que os problemas " "mencionados sexan arranxados. Para tentar de novo o proceso de migración " "tras arranxar os problemas execute «dpkg --configure sysv-rc»." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Desexa migrar a secuencia de arranque herdada para unha baseada en " #~ "dependencias?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "O sistema de arrinque está preparado para migrar para un baseado en " #~ "dependencias. Este é un paso irreversíbel, pero recoméndase dalo, xa que " #~ "permite optimizar o proceso de arrinque mellorando a eficiencia e a " #~ "velocidade, e fornece un framework máis elástico para os desenvolventes." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Hai unha argumentación completa en /usr/share/doc/sysv-rc/README.Debian." #~ "gz. Se escolle non migrar agora, poderá facelo máis tarde executando " #~ "«dpkg-reconfigure sysv-rc»." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Se o problema que se detectou é unha modificación local deberá ser " #~ "corrixido manualmente. De ser un erro no paquete debe informarse no BTS " #~ "para corrixilo no paquete. Consulte http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot para obter máis información acerca de como corrixir " #~ "os problemas que fan que non se poda migrar." debian/po/pl.po0000664000000000000000000001045512310205332010555 0ustar # Copyright (C) 2009 # This file is distributed under the same license as the sysvinit package. # # Michał Kułach , 2012. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-09 10:17+0200\n" "Last-Translator: Michał Kułach \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Nie można zmienić systemu rozruchu na tryb oparty na zależnościach" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Problemy w istniejącym systemie rozruchu uniemożliwiły migrację do trybu " "opartego na zależnościach:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Jeśli zgłoszony problem wynika z lokalnej modyfikacji, musi być naprawiony " "ręcznie. Z reguły jest to skutek przestarzałych plików konfiguracyjnych, " "które pozostały po pakiecie, który został usunięty, lecz nie wyczyszczony. " "Zaleca się usunięcie ich, wykonując polecenie:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Instalacja pakietu nie może być kontynuowana, dopóki powyższe problemy nie " "zostaną naprawione. Aby spróbować przeprowadzić migrację ponownie, po " "naprawieniu problemów, proszę wykonać polecenie \"dpkg --configure sysv-rc\"." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "Zmienić tradycyjny tryb rozruchowy na tryb oparty na zależnościach?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "System rozruchowy jest przygotowany do migracji do trybu opartego na " #~ "zależnościach. Jest to krok nieodwracalny, ale zalecany: pozwala na " #~ "optymalizację procesu rozruchowego pod kątem szybkości i wydajności oraz " #~ "zapewnia elastyczniejszą podstawę do rozwoju." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Pełne uzasadnienie można znaleźć w pliku /usr/share/doc/sysv-rc/README." #~ "Debian. W przypadku niewybrania opcji migracji w tej chwili, można wrócić " #~ "do niej później, przez wykonanie \"dpkg-reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Jeśli wykazane problemy są lokalną modyfikacją, to muszą zostać " #~ "naprawione ręcznie. Jeśli jest to błąd pakietu, powinno zostać wysłane " #~ "zgłoszenie błędu. Proszę zapoznać się ze stroną http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot, aby uzyskać więcej informacji na " #~ "temat naprawiania problemów uniemożliwiających migrację." debian/po/cs.po0000664000000000000000000001026712310205332010550 0ustar # Czech translation of sysvinit debconf messages. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # Miroslav Kure , 2009-2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-23 19:28+0200\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Nelze přejít na systém zavádění založený na závislostech" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Problémy v zaváděcím systému, které brání v přechodu na systém zavádění " "založený na závislostech:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Pokud je nahlášený problém lokální úpravou, je nutno jej opravit ručně. " "Typicky to bývají staré konfigurační soubory, které v systému zůstaly po " "odstranění balíku (ne vyčištění). Můžete je zkusit odstranit příkazem:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Instalace balíku nemůže pokračovat, dokud nebudou zmíněné problémy vyřešeny. " "Po vyřešení problémů se můžete pokusit o nový přechod příkazem „dpkg " "--configure sysv-rc“." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Přejít od starého systému zavádění k zavádění založenému na závislostech?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Proces zavádění systému je připraven na přechod k systému zavádění " #~ "založenému na závislostech. Tento krok je nevratný, nicméně doporučený, " #~ "protože umožňuje optimalizovat rychlost a efektivitu zaváděcího procesu a " #~ "navíc poskytuje pružnější rámec pro vývoj." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Podrobnější odůvodnění můžete nalézt v souboru /usr/share/doc/sysv-rc/" #~ "README.Debian. Rozhodnete-li se přejít na tento systém někdy později, " #~ "můžete tak učinit příkazem „dpkg-reconfigure sysv-rc“." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Pokud je zjištěný problém způsoben místními úpravami, budete ho muset " #~ "opravit ručně. Jestliže se jedná o chybu v balíku, měli byste ji nahlásit " #~ "do BTS a správce balíku by ji měl opravit. Více informací o nápravě " #~ "problémů bránících v přechodu naleznete na http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot." debian/po/POTFILES.in0000664000000000000000000000005412310205332011351 0ustar [type: gettext/rfc822deb] sysv-rc.templates debian/po/ru.po0000664000000000000000000001263112310205332010566 0ustar # translation of ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # # Yuri Kozlov , 2009, 2012. msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-27\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-11 08:58+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Невозможно перейти на систему загрузки на основе зависимостей" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "В системе загрузки имеются проблемы, которые не дают осуществить переход на " "последовательность загрузки на основе зависимостей:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Если описанная проблема возникла из-за локальных изменений, то необходимо " "ручное исправление. Обычно, это происходит из-за присутствия устаревших " "conffiles от удалённого, но не вычищенного пакета. Предлагаем вам удалять их " "с помощью команды:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Установка пакета не будет продолжена, пока эти проблемы не будут решены. " "Чтобы попытаться выполнить переход ещё раз после устранения проблем, " "запустите «dpkg --configure sysv-rc»." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Перейти от старой последовательности загрузки к последовательности " #~ "загрузки на основе зависимостей?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Система загрузки готова к переходу на последовательность загрузки на " #~ "основе зависимостей. Это необратимый шаг, но его рекомендуется выполнить: " #~ "это позволит оптимизировать процесс загрузки по скорости и эффективности, " #~ "и предоставляет более отказоустойчивую инфраструктуру для разработки." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Полное обоснование дано в /usr/share/doc/sysv-rc/README.Debian.gz. Если " #~ "вы не хотите выполнять переход прямо сейчас, то можете сделать это позже " #~ "с помощью команды \"dpkg-reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Если указанные проблемы возникают из-за локальных изменений, то они " #~ "должны быть устранены вручную. Если это ошибка в пакете, то об этом нужно " #~ "сообщить в BTS, и это будет исправлено в пакете. Подробней о том, как " #~ "исправлять проблемы, мешающие переходу, см. http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot." debian/po/de.po0000664000000000000000000000461212310205332010530 0ustar # Translation of sysvinit to German # Copyright (C) 1997-2005 Miquel van Smoorenburg . # This file is distributed under the same license as the sysvinit package. # Chris Leick , 2009, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-27\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-09 23:29+0200\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "" "Es konnte nicht auf abhängigkeitsbasierte Systemstartreihenfolge umgestellt " "werden." #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Im Startsystem gibt es Probleme, die eine Umstellung auf " "abhängigkeitsbasierte Systemstartreihenfolge verhindern:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Falls das gemeldete Problem von einer lokalen Änderung rührt, muss es manuell " "behoben werden. Dies sind normalerweise veraltete Conffiles, die " "zurückgeblieben sind, als ein Paket gelöscht, aber nicht vollständig entfernt " "wurde. Es wird empfohlen, diese zu entfernen, indem Folgendes ausgeführt wird:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Die Paketinstallation kann nicht fortgesetzt werden, bis obige Probleme " "behoben wurde. Um den Umstellungsprozess nach dem Lösen dieser Probleme " "erneut zu versuchen, führen Sie »dpkg --configure sysv-rc« aus." debian/po/es.po0000664000000000000000000001217012310205332010545 0ustar # sysvinit po-debconf translation to Spanish # Copyright (C) 2009 Software in the Public Interest # This file is distributed under the same license as the sysvinit package. # # Changes: # - Initial translation # Francisco Javier Cuadrado , 2009 # - Translation update # Javier Fernández-Sanguino , 2012 # # Traductores, si no conocen el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Equipo de traducción al español, por favor lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/ # especialmente las notas y normas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.87dsf-5\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-05 06:59+0200\n" "PO-Revision-Date: 2012-09-05 16:29+0200\n" "Last-Translator: Javier Fernández-Sanguino \n" "Language-Team: Debian l10n Spanish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POFile-SpellExtra: sysv dpkg SUGGESTION rc\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "No se ha podido migrar al sistema de arranque basado en dependencias" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Existen los siguientes problemas en el sistema de arranque que impiden la " "migración a la secuencia de arranque basada en dependencias:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Debe solucionar manualmente el problema reportado si se trata de una " "modificación local. Habitualmente estos problemas se deben a ficheros de " "configuración obsoletos que se mantienen tras haber borrado, pero no " "purgado, un paquete. Se sugiere eliminar éstos ejecutando:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "El paquete de instalación no puede continuar hasta que los problemas se " "hayan arreglado. Para reintentar el proceso de migración una vez estos " "problemas se hayan solucionado, ejecute «dpkg --configure sysv-rc»." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "¿Desea migrar la antigua secuencia de arranque a la secuencia de arranque " #~ "basada en dependencias?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "El sistema de arranque está listo para migrar a la secuencia de arranque " #~ "basada en dependencias. Este paso es irreversible, pero es recomendable: " #~ "permite optimizar el proceso de arranque en velocidad y eficiencia, y " #~ "proporciona un mejor entorno de desarrollo." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "En el archivo «/usr/share/doc/sysv-rc/README.Debian» se detalla la " #~ "explicación completa. Si escoge no migrar ahora, podrá hacerlo más " #~ "adelante ejecutando «dpkg-reconfigure sysv-rc»." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Si el problema es una modificación local, se debe arreglar manualmente. " #~ "Si es un error del paquete, se debería informar mediante el BTS y se " #~ "arreglará en el paquete. Para más información sobre cómo resolver los " #~ "problemas que impiden la migración, vea «http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot»." debian/po/pt.po0000664000000000000000000001051712310205332010564 0ustar # Portuguese translation for the package sysvinit 2.87dsf # Copyright (C) 2009 the sysvinit copyright holder # This file is distributed under the same license as the sysvinit 2.87dsf package. # António Moreira , 2009. # Miguel Figueiredo , 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.87dsf\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-09 15:26+0100\n" "Last-Translator: Miguel Figueiredo \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Portuguese\n" "X-Poedit-Country: PORTUGAL\n" "X-Poedit-SourceCharset: utf-8\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Incapaz de migrar para sistema de arranque baseado em dependências" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Problemas no sistema de arranque que impedem a migração para sequência de " "arranque baseada em dependências de arranque:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Se o problema relatado for uma modificação local, tem de ser corrigido " "manualmente. Tipicamente são devidos a ficheiros de configuração obsoletos " "que ficaram quando um pacote foi removido mas não purgado. É sugerido que " "estes sejam removidos ao correr:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "A instalação do pacote não pode continuar até os problemas acima terem sido " "corrigidos. Para tentar novamente o processo de migração após a resolução " "destes problemas, execute \"dpkg-reconfigure sysv-rc\"." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Migrar sequência de arranque legada para sequência baseada em " #~ "dependências?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "O sistema de arranque está preparado para migrar para a sequência baseada " #~ "em dependências. Este é um passo irreversível, mas um que é recomendado: " #~ "permite que o processo de arranque seja optimizado para velocidade e " #~ "eficiência, e fornece uma estrutura mais flexível para o desenvolvimento." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "A lógica completa está detalhada em /usr/share/doc/sysv-rc/README.debian. " #~ "Se optar por não migrar agora, você pode fazê-lo depois correndo \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Se o problema relatado é uma modificação local, tem de ser reparado " #~ "manualmente. Se é um bug no pacote, deve ser comunicado ao BTS e reparado " #~ "no pacote. Ver http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot " #~ "para mais informações de como corrigir os problemas que impedem a " #~ "migração." debian/po/ja.po0000664000000000000000000001044112310205332010527 0ustar # Japanese translation of sysvinit debconf templates. # Copyright (C) 2009 Hideki Yamane # This file is distributed under the same license as the sysvinit package. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.87dsf-8\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2009-10-26 02:27+0900\n" "Last-Translator: Hideki Yamane (Debian-JP) \n" "Language-Team: Debian JP Project \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "依存関係ベースのブートシステムへの移行ができません" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "Tests have determined that problems in the boot system exist which " #| "prevent migration to dependency-based boot sequencing:" msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "依存関係ベースのブートシーケンスへの移行作業を妨げる問題が起動システム中にあ" "ることが、テストによって発見されました:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "To reattempt the migration process after the problems have been fixed, " #| "run \"dpkg-reconfigure sysv-rc\"." msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "問題修正後に移行作業を再度試みるには「dpkg-reconfigure sysv-rc」を実行してく" "ださい。" #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "レガシーな起動シーケンスから依存関係ベースのシーケンスへ移行しますか?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "起動システムは依存関係ベースのシーケンスへ移行する予定です。これは取り消し" #~ "できない作業ですが、推奨される作業です: 起動プロセスのスピードと効率を最適" #~ "化し、開発についてより柔軟なフレームワークを提供します:" #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "全ての関連情報は /usr/share/doc/sysv-rc/README.Debian に詳細にまとめられて" #~ "います。今すぐ移行しないことを選んだ場合、後ほど「dpkg-reconfigure sysv-" #~ "rc」を実行すれば移行可能です。" #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "報告された問題点がローカルで行った変更であれば、手動で修正する必要がありま" #~ "す。それがパッケージのバグであれば BTS へ報告してパッケージを修正するべき" #~ "です。移行を妨げる問題をどの様にして修正するか、詳細については http://" #~ "wiki.debian.org/LSBInitScripts/DependencyBasedBoot を参照してください。" debian/po/pt_BR.po0000664000000000000000000001054312310205332011146 0ustar # Debconf translations for sysvinit. # Copyright (C) 2009 THE sysvinit'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # Adriano Rafael Gomes , 2009, 2010, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-32.1\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-09-05 19:34-0300\n" "Last-Translator: Adriano Rafael Gomes \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "" "Incapaz de migrar para o sistema de inicialização baseado em dependência" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Existem problemas no sistema de inicialização que estão impedindo a migração " "para a sequência de inicialização baseada em dependência:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Se o problema relatado é uma modificação local, ele deve ser corrigido " "manualmente. Tipicamente, esses problemas são devidos a arquivos de " "configuração obsoletos deixados depois de um pacote ter sido removido, mas " "não expurgado. É sugerido que esses arquivos sejam removidos executando:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "A instalação do pacote não pode continuar até que os problemas acima tenham " "sido corrigidos. Para tentar novamente o processo de migração depois desses " "problemas terem sido corrigidos, execute \"dpkg --configure sysv-rc\"." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Migrar a sequência de inicialização legada para a sequência baseada em " #~ "dependência?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "O sistema de inicialização está preparado para migrar para a sequência " #~ "baseada em dependência. Este é um passo irreversível, mas recomendável: " #~ "ele permite que o processo de inicialização seja otimizado para " #~ "velocidade e eficiência, e fornece um framework mais flexível para o " #~ "desenvolvimento." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Um embasamento completo está detalhado em /usr/share/doc/sysv-rc/README." #~ "Debian. Se você escolher não migrar agora, você poderá fazê-lo mais tarde " #~ "executando \"dpkg-reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Se o problema reportado é uma modificação local, ele precisa ser " #~ "corrigido manualmente. Se é um bug no pacote, ele deve ser reportado para " #~ "o BTS e corrigido no pacote. Veja http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot para mais informações sobre como corrigir os " #~ "problemas que impedem a migração." debian/po/it.po0000664000000000000000000001031712310205332010553 0ustar # ITALIAN TRANSLATION OF SYSVINIT'S PO-DEBCONF FILE. # COPYRIGHT (C) 2009 THE SYSVINIT'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # # Vincenzo Campanella , 2009. msgid "" msgstr "" "Project-Id-Version: sysvinit 2.87dsf-5\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2009-11-13 12:30+0100\n" "Last-Translator: Vincenzo Campanella \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Impossibile migrare al sistema d'avvio basato sulle dipendenze" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "Tests have determined that problems in the boot system exist which " #| "prevent migration to dependency-based boot sequencing:" msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Le verifiche hanno trovato problemi esistenti nel sistema di avvio che " "impediscono la migrazione alla sequenza di avvio basata sulle dipendenze:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "To reattempt the migration process after the problems have been fixed, " #| "run \"dpkg-reconfigure sysv-rc\"." msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Per tentare nuovamente il processo di migrazione dopo che i problemi sono " "stati risolti, eseguire «dpkg-reconfigure sysv-rc»." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Migrare la sequenza di avvio obsoleta alla sequenza basata sulle " #~ "dipendenze?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Il sistema di avvio è pronto a migrare alla sequenza basata sulle " #~ "dipendenze. È un processo irreversibile, ma raccomandato, in quanto " #~ "consente l'ottimizzaziione del processo di avvio in termini di velocità " #~ "ed efficienza, e inoltre fornisce un'infrastruttura più elastica per lo " #~ "sviluppo." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Le motivazioni complete sono esposte in «/usr/share/doc/sysvinit/README." #~ "Debian.gz». Se si sceglie di non migrare adesso è possibile farlo in un " #~ "secondo tempo, eseguendo «dpkg-reconfigure sysv-rc»." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Se il problema riportato è una modifica locale, esso deve essere risolto " #~ "manualmente. Se si tratta di un bug del pacchetto, lo si dovrebbe " #~ "riportare al BTS (Bug Tracking System) e dovrebbe essere risolto nel " #~ "pacchetto. Per maggiori informazioni su come risolvere i problemi che " #~ "impediscono la migrazione consultare http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot." debian/po/fr.po0000664000000000000000000000507412310205332010552 0ustar # Translation of sysvinit debconf template to French # Copyright (C) 2012 Debian French l10n Team # This file is distributed under the same license as the sysvinit package. # Steve Petruzzello , 2009, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit_2.88dsf-22.1\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-14 14:14+0200\n" "Last-Translator: Steve Petruzzello \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "" "Impossible de migrer vers le nouveau système de démarrage basé sur les " "dépendances" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "En raison de problèmes dans le système de démarrage, la migration vers la " "nouvelle séquence de démarrage basée sur les dépendances n'est pas " "possible." #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Si le problème indiqué est une modification locale, il est nécessaire de " "le corriger vous-même. Ces problèmes sont typiquement dûs à des fichiers " "de configuration obsolètes laissés après qu'un paquet ait été supprimé " "ou purgé. Il est suggéré de les supprimer en exécutant :" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "L'installation du paquet ne peut pas continuer tant que les problèmes ci-" "dessus n'ont pas été réparés. Pour retenter le processus de migration, " "une fois que les problèmes ont été corrigés, vous pouvez exécuter la " "commande « dpkg-reconfigure sysv-rc »." debian/po/templates.pot0000664000000000000000000000311112310205332012313 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: sysvinit\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" debian/po/fi.po0000664000000000000000000001012412310205332010531 0ustar # Copyright (C) 2009 # This file is distributed under the same license as the sysvinit package. # # Esko Arajärvi , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2009-10-21 21:50+0300\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Riippuvuusperusteiseen käynnistysjärjestelmään siirtyminen ei onnistu" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "Tests have determined that problems in the boot system exist which " #| "prevent migration to dependency-based boot sequencing:" msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Testien mukaan käynnistysjärjestelmässä on ongelmia, jotka estävät " "riippuvuusperusteiseen käynnistysjärjestelmään siirtymisen." #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "To reattempt the migration process after the problems have been fixed, " #| "run \"dpkg-reconfigure sysv-rc\"." msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Voit yrittää siirtymistä uudelleen vikojen korjauksen jälkeen ajamalla " "komennon ”dpkg-reconfigure sysv-rc”." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Siirrytäänkö vanhasta käynnistysjärjestelmästä riippuvuusperusteiseen " #~ "järjestelmään?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Käynnistysjärjestelmässä voidaan siirtyä riippuvuusperusteiseen " #~ "järjestelmään. Tätä muutosta ei voi perua, mutta sitä suositellaan. Se " #~ "sallii käynnistysprosessin optimoinnin nopeuden ja tehokkuuden suhteen ja " #~ "tarjoaa joustavamman kehyksen kehitystyölle." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Tarkempi kuvaus löytyy tiedostosta /usr/share/doc/sysv-rc/README.Debian. " #~ "Jos päätät olla siirtymättä nyt, voit tehdä sen myöhemmin ajamalla " #~ "komennon ”dpkg-reconfigure sysv-rc”." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Jos raportoitu ongelma on paikallinen muutos, se täytyy korjata käsin. " #~ "Jos se on vika jossain paketissa, se tulisi raportoida " #~ "virheidenhallintajärjestelmään ja korjata paketissa. Verkkosivulta http://" #~ "wiki.debian.org/LSBInitScripts/DependencyBasedBoot löytyy lisätietoja " #~ "siirtymisen estävien vikojen korjaamisesta." debian/po/sk.po0000664000000000000000000001057312310205332010560 0ustar # Slovak translations for sysvinit package # Slovenské preklady pre balík sysvinit. # Copyright (C) 2011 THE sysvinit'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # Automatically generated, 2011. # Slavko , 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-13.1\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-09 08:59+0200\n" "Last-Translator: Slavko \n" "Language-Team: slovenčina \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-POFile-SpellExtra: purge dpkg-reconfigure sysv-rc SUGGESTION\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Nemožno prejsť na zavádzanie založené na závislosti" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "V systéme zavádzania existujú problémy, ktoré bránia prechodu na systém " "zavádzania založený na závislosti:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Ak je hlásený problém lokálnou úpravou, musí byť opravený manuálne. Tieto " "prípady nastávajú najmä kvôli zastaraným konfiguračným súborom, ktoré ostali " "po odinštalovaní balíka bez vyčistenia (purge). Odporúčame ich odstránenie " "spustením:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Inštalácia balíka nemôže pokračovať, kým tieto problémy nebudú odstránené. " "Na opätovné spustenie prechodu, po odstránení problémov, spusťte „dpkg-" "reconfigure sysv-rc”" #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Prejsť zo starého systému zavádzania k zavádzaniu založenému na " #~ "závislosti?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Zavádzací systém je pripravený na prechod na zavádzanie založené na " #~ "závislosti. Je to nevratný krok, ale je odporúčaný, pretože umožňuje " #~ "optimalizáciu procesu zavedenia, čo sa týka rýchlosti i efektivity, as " #~ "poskytuje oveľa pružnejšiu štruktúru vývoja." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Úplný popis dôvodov je k dispozícii v /usr/share/doc/sysv-rc/README." #~ "Debian. Ak sa rozhodnete teraz neprechádzať, môžete to urobiť neskôr " #~ "spustením „dpkg-reconfigure sysv-rc”." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Ak sú zistené problémy spôsobené lokálnymi úpravami, bude ich treba " #~ "upraviť manuálne. Ak je to chyba balíka, mali by ste ju nahlásiť do BTS, " #~ "aby ju mohol správca balíka opraviť. Ďalšie informácie o opravách chýb, " #~ "ktoré bránia migrácii môžete nájsť na http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot." debian/po/nb.po0000664000000000000000000001014312310205332010533 0ustar # translation of nb.po to Norwegian Bokmål # Copyright (C) 2009 # This file is distributed under the same license as the sysvinit package. # # Petter Reinholdtsen , 2010. msgid "" msgstr "" "Project-Id-Version: nb\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2010-06-09 21:48MET\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Kan ikke gå over til avhengighetsbasert oppstartsystem" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "Tests have determined that problems in the boot system exist which " #| "prevent migration to dependency-based boot sequencing:" msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Tester har oppdaget at det finnes problemer i oppstartsystemet som hindrer " "en overgang til avhengighetsbasert oppstartrekkefølge:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "To reattempt the migration process after the problems have been fixed, " #| "run \"dpkg-reconfigure sysv-rc\"." msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Hvis du vil gjøre et nytt forsøk med overgangen etter at problemene er " "fikset, kjør \"dpkg-reconfigure sysv-rc\"." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Gå over fra gammeldags oppstartrekkefølge til avhengighetsbasert " #~ "rekkefølge?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Oppstartsystemet er forberedt for overgang til avhengighetsbasert " #~ "oppstartrekkefølge. Dette er et ugjenkallelig steg, men det er anbefalt: " #~ "det tillater at oppstartprosessen optimeres for hastighet og " #~ "effektivitet, og tilbyr et mer fleksibelt rammeverk for utvikling." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "En fullstendig begrunnelse finnes i /usr/share/doc/sysv-rc/README.Debian. " #~ "Hvis du velger å ikke migrere nå, så kan du gjøre det senere ved å kjøre " #~ "\"dpkg-reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Hvis det rapporterte problemet er en lokal endring så må det fikses " #~ "manuelt. Hvis det er en feil i en pakke, så bør det rapporteres til " #~ "feilhåndteringssystemet og rettes i pakken. Se http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot for mer informasjon om hvordan fikse " #~ "problemer som hindrer overgang." debian/po/sv.po0000664000000000000000000001052712310205332010572 0ustar # Translation of XX debconf template to Swedish # Copyright (C) 2012 Martin Bagge # This file is distributed under the same license as the XX package. # # Martin Ågren , 2009. # Martin Bagge , 2012. msgid "" msgstr "" "Project-Id-Version: sysvinit_sv\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-09 13:14+0100\n" "Last-Translator: Martin Bagge / brother \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Swedish\n" "X-Poedit-Country: Sweden\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Kan inte gå över till beroendebaserat uppstartssystem" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Det finns problem i uppstartssystemet som hindrar en övergång till " "beroendebaserat uppstartsordnande:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Om det rapporterade problemet är en lokal förändring måste den justeras " "manuellt. Vanligen beror detta på utdaterade inställningsfiler som lämnats " "kvar efter att ett paket har tagits bort utan att rensa upp inställningar " "efter sig. Rådet är att raderas dessa genom att exekvera:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Paketinstallationen kan inte fortsätta innan ovanstående problem har " "justerats. Om du vill göra ett nytt försök med övergången efter att " "problemen har rättats, kör \"dpkg-reconfigure sysv-rc\"." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Gå över från gammaldags uppstartsordnande till beroendebaserat ordnande?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Uppstartssystemet är förberett för övergång till beroendebaserat " #~ "uppstartsordnande. Detta är ett oåterkalleligt steg, men det " #~ "rekommenderas: det tillåter att uppstartsprocessen optimeras för " #~ "hastighet och effektivitet och erbjuder ett mer flexibelt ramverk för " #~ "utveckling." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "En fullständig grund för beslut finns i /usr/share/doc/sysv-rc/README." #~ "Debian. Om du väljer att inte gå över nu, kan du göra det senare genom " #~ "att köra \"dpkg-reconfigure sysv-rc\"." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Om det rapporterade problemet är en lokal ändring, behöver det rättas " #~ "manuellt. Om det är ett fel i paketet, bör det rapporteras till " #~ "felhanteringssystemet och rättas i paketet. Se http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot för mer information om att rätta " #~ "problem som hindrar övergång." debian/po/vi.po0000664000000000000000000001102412310205332010551 0ustar # Vietnamese translation for SysVinit. # Copyright © 2009 Free Software Foundation, Inc. # Clytie Siddall , 2009. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.87dsf-5\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2009-10-08 23:34+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Không thể nâng cấp lên hệ thống khởi động dựa vào quan hệ phụ thuộc" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "Tests have determined that problems in the boot system exist which " #| "prevent migration to dependency-based boot sequencing:" msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Gặp vấn đề trong hệ thống khởi động mà ngăn cản nâng cấp lên thứ tự khởi " "động dựa vào quan hệ phụ thuộc:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "" #. Type: note #. Description #: ../sysv-rc.templates:1001 #, fuzzy #| msgid "" #| "To reattempt the migration process after the problems have been fixed, " #| "run \"dpkg-reconfigure sysv-rc\"." msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Để thử lại tiến trình nâng cấp sau khi sửa chữa các vấn đề, hãy chạy « dpkg-" "reconfigure sysv-rc »." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "Nâng cấp thứ tự khởi động thừa tự lên thứ tự khởi động dựa vào quan hệ " #~ "phụ thuộc ?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "Hệ thống khởi động được chuẩn bị nâng cấp lên thứ tự khởi động dựa vào " #~ "quan hệ phụ thuộc. Đây là một bước không thể hoàn lại mà vẫn còn khuyến " #~ "khích vì nó cho phép tiến trình khởi động được tối ưu hoá theo tốc độ và " #~ "hiệu suất, và cung cấp một khuôn khổ phát triển đàn hồi hơn." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Lý do hoàn toàn được diễn tả trong tài liệu Đọc Đi « /usr/share/doc/sysv-" #~ "rc/README.Debian ». Không muốn nâng cấp ngay bây giờ thì bạn cũng có thể " #~ "nâng cấp về sau bằng cách chạy câu lệnh cấu hình lại « dpkg-reconfigure " #~ "sysv-rc »." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Nếu vấn đề đã thông báo là một sự sửa đổi chỉ cục bộ thì nó cần phải được " #~ "sửa chữa bằng tay. Nếu nó là một lỗi trong gói phần mềm thì nó nên được " #~ "thông báo cho hệ thống theo dõi lỗi (BTS) để sửa chữa trong gói đó. Xem " #~ "trang wiki (http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot) để " #~ "tìm thêm thông tin về cách giải quyết vấn đề ngăn cản nâng cấp." debian/po/nl.po0000664000000000000000000000456612310205332010561 0ustar # Dutch translation of sysvinit debconf templates. # Copyright (C) 2011, 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # Jeroen Schot , 2011, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-27\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-13 11:54+0200\n" "Last-Translator: Jeroen Schot \n" "Language-Team: Debian l10n Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Niet mogelijk om te migreren naar de nieuwe opstartvolgorde" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Er zijn problemen gevonden in het opstartsysteem die het migreren naar de " "nieuwe opstartvolgorde verhinderen:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Als het gerapporteerde probleem een lokale wijziging is dient u dit " "handmatig op te lossen. Deze worden meestal veroorzaakt door verouderde " "conffiles die achter zijn gebleven nadat een pakket is verwijderd, maar niet " "gewist ('purge'). U wordt aangeraden deze te verwijderen door het uitvoeren " "van:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "De pakketinstallatie kan niet doorgaan totdat de bovenstaande problemen zijn " "opgelost. Na het oplossen van de problemen kunt u het migratieproces " "nogmaals proberen door \"dpkg-reconfigure sysv-rc\" uit te voeren." debian/po/zh_CN.po0000664000000000000000000000430512310205332011140 0ustar # Chinese translations for sysvinit package # sysvinit 软件包的简体中文翻译. # Copyright (C) 2012 THE sysvinit'S COPYRIGHT HOLDER # This file is distributed under the same license as the sysvinit package. # 苏运强 , 2012. # YunQiang Su , 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-09 15:52+0800\n" "Last-Translator: YunQiang Su \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bits\n" "Plural-Forms: nplurals=1; plural=0;\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "无法迁移到基于依赖的引导系统" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "引导系统中存在的阻止迁移到基于依赖的引导的问题有:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "如果报告的问题是本地修改引起的,需要手动修复。通常是因为包被移除而不是清除造" "成的配置文件遗留。建议通过运行如下命令清除:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "包安装无法继续,除非修复上述问题。修复上述问题之后,通过运行 \"dpkg --" "configure sysv-rc\" 重新尝试迁移。" debian/po/da.po0000664000000000000000000000437112310205332010526 0ustar # Danish translation sysvinit. # Copyright (C) 2012 sysvinit & Joe Hansen. # This file is distributed under the same license as the sysvinit package. # Joe Hansen , 2010, 2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-06-09 08:51+0200\n" "PO-Revision-Date: 2012-06-10 17:30+01:00\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "Kunne ikke migrere til afhængighedsbaseret opstartssystem" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Der findes problemer i opstartssystemet som forhindrer migrering til " "afhængighedsbaserede opstartssekvenser:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Hvis de rapporterede problemer er lokale ændringer, skal de rettes " "manuelt. Problemet skyldes typisk forældede konfigurationsfiler efterladt " "efter at en pakke er blevet fjernet, men ikke afinstalleret. Det foreslås " "at disse fjernes ved at køre:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "Pakkeinstallation kan ikke fortsætte, før at de ovenstående problemer " "er blevet rettet. For at prøve migreringsprocessen igen efter at " "problemerne er blevet rettet, kør »dpkg-reconfigure sysv-rc«." debian/po/ca.po0000664000000000000000000001050312310205332010517 0ustar # sysvinit (debconf) translation to Catalan. # Copyright (C) 1997-2005 # This file is distributed under the same license as the sysvinit package. # # Innocent De Marchi , 2011-2012. # msgid "" msgstr "" "Project-Id-Version: sysvinit 2.88dsf-13.1\n" "Report-Msgid-Bugs-To: sysvinit@packages.debian.org\n" "POT-Creation-Date: 2012-09-29 13:56-0400\n" "PO-Revision-Date: 2012-06-12 18:14+0100\n" "Last-Translator: Innocent De Marchi \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Catalan\n" "X-Poedit-Country: SPAIN\n" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "Unable to migrate to dependency-based boot system" msgstr "" "No ha estat possible migrar al sistema d'arrencada basat en dependències" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Problems in the boot system exist which are preventing migration to " "dependency-based boot sequencing:" msgstr "" "Existeixen els següents problemes en el sistema d'arrencada, que impedeixen " "la migració a la seqüència d'engegada basada en dependències:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "If the reported problem is a local modification, it needs to be fixed " "manually. These are typically due to obsolete conffiles being left after a " "package has been removed, but not purged. It is suggested that these are " "removed by running:" msgstr "" "Si el problema comunicat és una modificació local, cal solucionar-ho " "manualment. Aquests problemes solen ser a causa de fitxers de configuració " "obsolets que no s'han eliminat després de la eliminació d'un paquet, sense " "haver-ho purgat. Es suggereix que s'eliminin executant:" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "${SUGGESTION}" msgstr "${SUGGESTION}" #. Type: note #. Description #: ../sysv-rc.templates:1001 msgid "" "Package installation can not continue until the above problems have been " "fixed. To reattempt the migration process after these problems have been " "fixed, run \"dpkg --configure sysv-rc\"." msgstr "" "La instal·lació del paquet no pot continuar fins que no es solucionin els " "problemes llistats. Per tornar a intentar el proces de migració, una vegada " "solucionats els problemes, executeu «dpkg --configure sysv-rc»." #~ msgid "Migrate legacy boot sequencing to dependency-based sequencing?" #~ msgstr "" #~ "¿Voleu migrar l'antiga seqüència d'arrencada a la seqüència d'engegada " #~ "basada en dependències?" #~ msgid "" #~ "The boot system is prepared to migrate to dependency-based sequencing. " #~ "This is an irreversible step, but one that is recommended: it allows the " #~ "boot process to be optimized for speed and efficiency, and provides a " #~ "more resilient framework for development." #~ msgstr "" #~ "El sistema d'arrencada està preparat per migrar a la seqüència d'engegada " #~ "basada en dependències. Aquest canvi és irreversible, però es recomana " #~ "fer-ho: permet optimitzar el procés d'engegada en velocitat i eficiència, " #~ "i proporciona un entorn robust de desenvolupament." #~ msgid "" #~ "A full rationale is detailed in /usr/share/doc/sysv-rc/README.Debian. If " #~ "you choose not to migrate now, you can do so later by running \"dpkg-" #~ "reconfigure sysv-rc\"." #~ msgstr "" #~ "Al fitxer «/usr/share/doc/sysv-rc/README.Debian» hi ha l'explicació " #~ "completa. Si decidiu no migrar ara, podreu fer-ho en el futur executant " #~ "«dpkg-reconfigure sysv-rc»." #~ msgid "" #~ "If the reported problem is a local modification, it needs to be fixed " #~ "manually. If it's a bug in the package, it should be reported to the BTS " #~ "and fixed in the package. See http://wiki.debian.org/LSBInitScripts/" #~ "DependencyBasedBoot for more information about how to fix the problems " #~ "preventing migration." #~ msgstr "" #~ "Si el problema és una modificació local, cal endreçar-ho manualment. Si " #~ "és un error del paquet, caldrà informar-ne mitjançant el BTS, perquè " #~ "s'endreci al paquet. Per obtenir més informació sobre com resoldre els " #~ "problemes que impedeixen la migració, llegiu «http://wiki.debian.org/" #~ "LSBInitScripts/DependencyBasedBoot»." debian/changelog0000664000000000000000000075157012310205732011054 0ustar sysvinit (2.88dsf-41ubuntu6) trusty; urgency=medium * debian/sysvinit-utils.startpar-bridge.upstart: Silence " * Starting/Stopping startpar bridge..." messages from boot.log, by commenting out description stanza. -- Dimitri John Ledkov Thu, 13 Mar 2014 01:37:30 +0000 sysvinit (2.88dsf-41ubuntu5) trusty; urgency=low * debian/src/sysv-rc/sbin/invoke-rc.d: clean eatmydata from environment unless INVOKE_RCD_ALLOW_EATMYDATA is set to value other than '0'. -- Scott Moser Mon, 02 Dec 2013 17:12:03 -0500 sysvinit (2.88dsf-41ubuntu4) trusty; urgency=low [ James Hunt ] * debian/src/sysv-rc/sbin/invoke-rc.d: Call 'initctl reload-configuration' to work reliably on systems with broken inotify. -- Steve Langasek Thu, 28 Nov 2013 21:34:03 -0600 sysvinit (2.88dsf-41ubuntu3) saucy; urgency=low * Exit the ondemand script silently if we are on a system that has the Android LXC container upstart job installed, assuming Android will deal with CPU frequency scaling itself, so we don't have to. * Remove old N7 device-specific tweaks for the interactive governor. -- Adam Conrad Tue, 04 Jun 2013 08:53:47 -0600 sysvinit (2.88dsf-41ubuntu2) saucy; urgency=low * debian/src/sysv-rc/sbin/invoke-rc.d: tweak behavior of invoke-rc.d when a package has an upstart job without a corresponding init script, and we're running on a non-upstart system, *but* policy-rc.d says to not take the action. In this case, we want to exit zero instead of non-zero, as this is an important use case when setting up Ubuntu in a chroot. -- Steve Langasek Tue, 28 May 2013 12:23:43 -0700 sysvinit (2.88dsf-41ubuntu1) saucy; urgency=low * Merge from Debian unstable: - fixes typo in /lib/init/vars.sh. LP: #1146047. * Remaining changes: - Remove various initscripts (and an ifupdown hook) that have been replaced by upstart jobs shipped in other packages. - debian/sysvinit-utils.links: Compat symlink from /usr/bin/service to /usr/sbin/service - If /var/run/init.upgraded exists, call telinit u before unmounting the root filesystem. - Support Cell processor: + debian/initscripts.postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/control: Add initscripts dependency 'passwd' for groupadd. - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/patches/92_sulogin_support_static_sh.patch: add support for /bin/static-sh as fallback if the regular shell fails to execute - debian/control: Drop Essential: yes from packages since we use Upstart. - debian/control: Do not build the sysvinit binary package any more. It conflicts with upstart, which is required, so it is uninstallable. - remove debian/postinst: this is supposed to go into the sysvinit package in Debian, but we don't ship that. - debian/control: sysvinit-utils recommends the upstart that provides the reload action - Mark all binary packages as Multi-Arch: foreign to allow for upstart to be installable with multi-arch (needed for armhf containers on x86) - Add a versioned depends to initscripts of mountall (>= 2.28), since everything else depends on initscripts for /run and the boot-time implementation is in mountall for us. - Drop /etc/default/tmpfs, and drop mention of it from debian/src/initscripts/man/rcS.5. - Added debian/src/initscripts/etc/init.d/ondemand: Sleep for 60 seconds, then set CPU Frequency Scaling governor to "ondemand" (or to "interactive" on systems that support it). - Remove mention of RAMLOCK, RAMSHM, and RAMTMP from the rcS(5) manual page. - When /dev/shm and /run/shm are both directories (not mounts), make /dev/shm a symlink to /run/shm. - d/service/service: Use 'stop/start' instead of passing restart directly through to upstart. - d/service/service.8: Document handling of upstart jobs. - Fix documentation for other things handled by mountall instead of initscripts: tmpfs, /sys (mountall lets you specify options in /etc/fstab), and ASYNCMOUNTNFS. - debian/src/initscripts/etc/init.d/sendsigs: + sendsigs: OMITPIDS needs to be reinitalized for every loop iteration before concatenating pids of upstart jobs to it. + only omit jobs that are in the 'start' goal or that are in state 'stop/killed'. Those that are destined for 'stop' are waited on and killed like all other processes. + make report_unkillable use apport instead of echoing to console; but disable this reporting by default. + wait up to 300 extra seconds for upstart jobs that have been killed. - debian/src/sysv-rc/sbin/invoke-rc.d: replace RUNLEVEL with RUNLEVELHELPER. * Changes included in Debian: - debian/initscripts/etc/init.d/umountnfs.sh: emit upstart event unmounted-remote-filesystems - debian/src/initscripts/etc/init.d/sendsigs: handle the possibility of upstart jobs being started after the script starts running. * Dropped changes: - /lib/init/rw symlink to /run no longer needed, everything should now be using /run directly. - debian/src/initscripts/etc/init.d/umountroot: /run migration was completed before 12.04 LTS, this delta can now be dropped. LP: #1097321. - debian/initscripts.postinst: drop bypassing of motd.tail handling, which is no longer used in Debian. - Disable bootlogd by default: this is now a separate package not installed by default, no delta needed. - clean up /run/motd on upgrades: pre-LTS cleanup that is no longer needed. - Removing RAM* settings from /etc/default/rcS: these are no longer present in the Debian version of the file either. - Skip /var/run, /var/lock when unmounting filesystems: no longer needed, these will always be mounted under /run now which is already handled. - Upgrade handling for insserv-broken shutdown sequences: this was pre-LTS cleanup. * Fix initial generation of /run/motd.dynamic to conform to update-motd usage in pam_motd. * Drop new /etc/init.d/motd script, which is redundant with update-motd. * Relax Breaks: on old upstart to not trigger on the precise version, which doesn't have the incompatibility. * Adjust Breaks from initscripts on ifupdown; Ubuntu has had ifquery for a long time. * Revert migration of UTC setting from /etc/default/rcS to /etc/adjtime, dropping the corresponding Breaks: on util-linux. * Drop Breaks on console-setup, not needed because Ubuntu never had console-setup 1.73. * Drop Breaks on live-build, which *supports* /lib/init/rw as a mountpoint but does not use it. * Ignore change to make /etc/mtab a symlink (mostly happens automatically because we aren't using the initscripts rcS scripts). This should be done only once /run/mount/utab works correctly (bug #702935). * Drop debian/initscripts.NEWS, which documents only Debian-specific changes that don't apply in Ubuntu. * Drop bind-mount handling on upgrade of initscripts. The upstream refactoring means these functions have moved to a shell library that we don't otherwise care about shipping, and this is only relevant for pre-12.04 upgrades but the postinst doesn't include a version guard; so just delete this redundant code. * Fix wrong auto-upgrading of /etc/default/rcS to a conffile. We should not store a copy of the old one if we know it's not user-modified, and we should *not* generate this in the preinst, but instead trust dpkg to install it. * Revert forced migration to dependency-based booting; this can only be done once all upstart-job-using packages in Ubuntu have been rebuilt with a newer debhelper that retains init scripts, otherwise insserv has insufficient information and will mangle the shutdown order. * Don't duplicate the /etc/default/rcS conffile with a template in the preinst; unmodified files should just be removed, and created automatically by dpkg. * Properly clean up bootlogd conffiles on upgrade using dpkg-maintscript, instead of leaving them orphaned on the filesystem when the bootlogd package is not installed. * On upgrade, recognize Ubuntu-specific md5sums of unmodified /etc/default/rcS files. -- Steve Langasek Fri, 17 May 2013 17:27:13 -0500 sysvinit (2.88dsf-41) unstable; urgency=low [ Roger Leigh ]: * sysvinit postinst always creates /etc/inittab if absent during configuration (Closes: #700051). -- Roger Leigh Thu, 07 Feb 2013 23:32:12 +0000 sysvinit (2.88dsf-40) unstable; urgency=low [ Roger Leigh ]: * Don't restart init on GNU/Hurd (Closes: #663009). * Handle PID detection more robustly, to work better with containers (Closes: #699523). Always use PID1, which avoids the need for fragile pidof usage. * Handle ischroot more gracefully on failure (Closes: #699566). -- Roger Leigh Sun, 03 Feb 2013 14:52:05 +0000 sysvinit (2.88dsf-39) unstable; urgency=low [ Roger Leigh ]: * initscripts postinst calls urandom, not urandom.sh (Closes: #698966). * sysvinit postinst unconditionally creates a compatibility initctl link to ensure the migration to /run won't fail (Closes: #663009). -- Roger Leigh Sat, 26 Jan 2013 12:09:29 +0000 sysvinit (2.88dsf-38) unstable; urgency=low [ Roger Leigh ]: * If pidof fails in the sysvinit postinst or initscripts, default to PID 1 (for /sbin/init) (Closes: #663009). * Make fstab globbing in initscripts completely robust. -- Roger Leigh Wed, 23 Jan 2013 22:43:55 +0000 sysvinit (2.88dsf-37) unstable; urgency=low [ Roger Leigh ] * initscripts: Remove all use of shell heredocs in shell libraries; these require a writable /tmp which will not be guaranteed to be present in early boot (Closes: #697994). -- Roger Leigh Mon, 14 Jan 2013 21:53:59 +0000 sysvinit (2.88dsf-36) unstable; urgency=low [ Roger Leigh ] * initscripts: - Handle globbing of /etc/fstab.d/* safely. - Correct erroneous error that an entry for /dev/shm existed in /etc/fstab when no entry was present (Closes: #697537). -- Roger Leigh Fri, 11 Jan 2013 23:36:28 +0000 sysvinit (2.88dsf-35) unstable; urgency=low [ David Prévot ] * Fix German translation charset. [ Roger Leigh ] * initscripts: - To permit enabling of dependency-based boot, add Breaks on older versions of bootchart. Thanks to Andreas Beckmann. Closes: #694252. - To work around a bug in the Oracle database, which has a faulty check for /dev/shm, continue to mount a tmpfs on /dev/shm rather than /run/shm if one is defined in /etc/fstab. Closes: #694379. * sysvinit-utils: - Add Breaks: upstart (<< 1.5-1) to avoid breaking the boot with older versions of upstart. Closes: #694961. -- Roger Leigh Mon, 17 Dec 2012 22:50:49 +0000 sysvinit (2.88dsf-34) unstable; urgency=low [ Roger Leigh ] * initscripts: Don't run mountall until checkroot-bootclean is finished. [ Steve Langasek ] * initscripts.postinst: hide from lintian the fact that we're removing /dev/shm, since otherwise a buggy lintian check prevents us from uploading legitimate code to the archive. -- Steve Langasek Fri, 16 Nov 2012 14:51:06 -0600 sysvinit (2.88dsf-33) unstable; urgency=low [ David Prévot ] * Updated debconf translations: - es. Thanks to Javier Fernández-Sanguino. Closes: #686774, #682560. - pt_BR. Thanks to Adriano Rafael Gomes. Closes: #686906. [ Roger Leigh ] * All bootclean scripts run before bootmisc. Closes: #677097. [ Steve Langasek ] * when running under upstart, emit an 'unmounted-remote-filesystems' event when we're done unmounting in umountnfs.sh so that upstart can finish shutting down. * make the startpar bridge track stopped jobs, not just started ones; required for us to have a smooth event-based shutdown with upstart. -- Steve Langasek Fri, 16 Nov 2012 04:30:29 -0800 sysvinit (2.88dsf-32) unstable; urgency=low [ Roger Leigh ] * Apply patch to startpar to prevent the use of mlockall on kFreeBSD, which was causing a kernel panic at boot. Thanks to Petr Salinger for this patch. Closes: #672959. * Correctly detect service availability with service(8). Thanks to Alexander Golov for this patch. Closes: #685212. -- Roger Leigh Fri, 31 Aug 2012 23:03:14 +0100 sysvinit (2.88dsf-31) unstable; urgency=low [ Roger Leigh ] * initscripts: - Remove debugging echo statement from postinst. -- Roger Leigh Sat, 11 Aug 2012 18:27:50 +0100 sysvinit (2.88dsf-30) unstable; urgency=low [ Roger Leigh ] * initscripts: - Fix /dev/shm to /run/shm migration bug which occurred in chroots when /dev/shm was a mountpoint but /dev was not. Check specifially for /dev, /dev/shm, run or /run/shm being a mountpoint before attempting to migrate. This copes with all combinations of mountpoints, directories and symlinks. Closes: #683103. -- Roger Leigh Sat, 11 Aug 2012 16:44:22 +0100 sysvinit (2.88dsf-29) unstable; urgency=low [ Steve Langasek ] * initscripts: - Improve /dev/shm to /run/shm upgrade handling in the postinst (improvement for #674178). [ Roger Leigh ] * initscripts: - Remove /lib/init/rw if possible. Closes: #679612. - If /run is a symlink to /var/run, correct this on both upgrade and on boot. On upgrade, the proper /run migration will occur on reboot. On boot, the system will require rebooting to fully migrate /run to a working configuration (but this will only occur on systems which are already broken, it's not an upgrade path). This correct problems with udev breakage due to /run being mounted twice when /run is a symlink. Closes: #677097, #679523. - Start urandom on initial install, so that a random seed exists on first boot. Closes: #679972. - Restore creation of /var/log/dmesg (Closes: #681639). * sysv-rc: Remove unused debconf logic in postinst. -- Roger Leigh Sat, 30 Jun 2012 23:21:06 +0100 sysvinit (2.88dsf-28) unstable; urgency=low [ Steve Langasek ] * debian/patches/upstart_support.patch: add missing startpar-upstart-inject manpage. [ Roger Leigh ] * Updated debconf translations: - ca. Thanks to Innocent De Marchi. Closes: #677904. - cs. Thanks to Miroslav Kure. Closes: #678680. - da. Thanks to Joe Hansen. Closes: #676893. - de. Thanks to Chris Leick. Closes: #677753. - fr. Thanks to Steve Petruzzello. Closes: #677590. - gl. Thanks to Jorge Barreiro. Closes: #678627. - nl. Thanks to Jeroen Schot. Closes: #677333. - pl. Thanks to Michał Kułach. Closes: #676773. - pt. Thanks to Miguel Figueiredo. Closes: #676814. - ru. Thanks to Yuri Kozlov. Closes: #677011. - sk. Thanks to Slavko. Closes: #676721. - sv. Thanks to Martin Bagge. Closes: #676791. - zh_CN. Thanks to YunQiang Su. Closes: #676725. * Add missing hardening CPPFLAGS. Thanks to Simon Ruderich. Closes: #678878. * Update clean run to cope with nonexistent startpar. * initscripts: - Only run update-rc.d in maintainer scripts when the init script exists and is executable. Closes: #671124. - Break initramfs-tools (<< 0.104), needed to prevent initrd generation failure since older initramfs-tools can't cope with /etc/mtab being a symlink. Closes: #668650. - Don't mount with -o nodev on kFreeBSD. Closes: #669162. - Set up /run correctly in a chroot when running debootstrap. Thanks to Serge Hallyn. initscripts.postinst: if /dev is not a separate partition and we're in a chroot, then create /run/shm and make /dev/shm a symbolic link to it, as we would expect to find in a upgraded and rebooted running system. LP: #974584. Closes: #674178. * sysvinit: - rc and startpar distinguish between LSB not installed and not configured failure conditions. Thanks to Nate Coraor. Closes: #625463. * sysv-rc: - Dependency-based booting is activated unconditionally. Scripts without LSB headers will generally be ordered after all other scripts, but before scripts requiring $all to be started, such as rc.local, but this is not guaranteed. Add an LSB header if you need to guarantee the ordering of scripts. Closes: #676463, #678231, #676473. - update-rc.d uses absolute path to insserv, to give better error messages to non-root users where /sbin is not in the PATH. Thanks to Regid Ichira. Closes: #637390. [ Paul Menzel ] * Fix usage message in /etc/init.d/motd. Closes: #676910. -- Roger Leigh Wed, 27 Jun 2012 23:00:45 +0100 sysvinit (2.88dsf-27) unstable; urgency=low [ Salvatore Bonaccorso ] * Remove reference to /usr/share/initscripts/default.rcS. With commit d0388ba464e69b1b7915a3d9071cfcba21d0102c /etc/default/rcS was made a regular conffile. Remove reference to original location with default values. [ Roger Leigh ] * initscripts: - Don't fail in the absence of /proc/meminfo. The ram_size and swap_size functions in /lib/init/tmpfs.sh always return true. Closes: #676669. -- Roger Leigh Fri, 08 Jun 2012 22:29:04 +0100 sysvinit (2.88dsf-26) unstable; urgency=low [ Roger Leigh ] * initscripts: - /run/shm is mounted noexec. Closes: #386368. - The RAMSHM and RAMTMP settings in /etc/default/rcS are used if present, though the replacement settings in /etc/default/tmpfs will override these, if enabled. - Revert RAMTMP setting to be disabled by default. Closes: #630615, #665635, #666698, #674517. - Don't prompt the user on upgrade if rcS was not modified by the admin. Closes: #674460. * sysvinit-utils: - Fix typo in fstab-decode(8). Thanks to Bjarni Ingi Gislason. Closes: #674208. -- Roger Leigh Mon, 28 May 2012 17:58:38 +0100 sysvinit (2.88dsf-25) experimental; urgency=low [ Roger Leigh ] * Build with hardening flags enabled; CFLAGS and LDFLAGS are passed to all build commands. * initscripts: - /etc/default/rcS is no longer managed by ucf, and is a regular conffile. Drop the UTC setting, which has been migrated to /etc/adjtime by util-linux. Break util-linux << 2.20.1-5 in order to ensure correct migration of the UTC setting before the file is upgraded. - Use ifquery in /etc/network/if-up.d/mountnfs to replace complex parsing. Also only run if inet or inet6 interfaces have been configured, to avoid freezing when the interface hasn't yet been configured (Closes: #674039). - %VM tmpfs size calculation works when swap is disabled. -- Roger Leigh Tue, 22 May 2012 23:46:14 +0100 sysvinit (2.88dsf-24) experimental; urgency=low [ Roger Leigh ] * initscripts: - Don't generate or touch /etc/motd. Instead, the dynamic part of /etc/motd is created as /run/motd.dynamic, leaving /etc/motd entirely under the control of the system administrator. If /etc/motd is a symlink to /run/motd, /etc/motd.tail is moved back to /etc/motd. Closes: #353229, #624391, #668307. /etc/motd is not removed if initscripts is purged, since it's not owned by initscripts. - By default, /run/motd is just the output of uname, preserving the existing behaviour. However, should the administrator wish to include dynamic information in the motd, they may write scripts to update /run/motd.dynamic as they please. Closes: #437176. - motd generation is split from bootlogs into a separate motd init script. - bootlogs init script has been removed; current logging daemons handle this themselves, making this script redundant. - tmpfs mounts are never cleaned by bootclean.sh. Cleaning /run can lead to nonfunctional input when Xorg starts. Closes: #669949. * sysvinit-utils: - Suggest rather than Recommend bootlogd. [ Kel Modderman ] * sysv-rc: - Run check_divert in postinst to make sure /usr/sbin/update-rc.d not symlinked to /usr/sbin/update-rc.d-insserv. Closes: #670085. [ Steve Langasek ] * Install the startpar bridge now that dh_installinit in Debian handles this. Closes: #660824. * Give startpar a listening backlog on its socket for upstart connections, since there's no protocol-level queuing for unix sockets and these connections tend to come in fast and furious at boot. * Add upstart support to invoke-rc.d, per the policy discussion in bug #591791. Closes: #671284. -- Roger Leigh Sun, 29 Apr 2012 23:52:14 +0100 sysvinit (2.88dsf-23) experimental; urgency=low [ Roger Leigh ] * Acknowledge NMU for translation updates. Thanks to Christian Perrier. * debian/control: - Upgrade to Standards-Version 3.9.3. - Build-Depend on debhelper v9. - Correct Vcs-Git URL. * debian/rules: - Use DEB_HOST_ARCH_OS = hurd rather than DEB_HOST_ARCH = hurd-i386. Thanks to Pino Toscano. * debian/patches: - 11_lfs_cflags.patch: Add patch for enabling large file support, needed on GNU/Hurd, but useful for all platforms. LP: #767244. - 73_lfs_cflags.patch: Add patch for enabling large file support in startpar. * initscripts: - Moved RAM* settings from /etc/default/rcS to /etc/default/tmpfs. This ensures that the settings are equivalent for upgrades and new installations, but will require manual configuration of the settings for upgrades (no migration from /etc/default/rcS to /etc/default/tmpfs will take place, due to tmpfs being a conffile). tmpf(5) manual page added to document all aspects of tmpfs configuration, including the existing documentation in rcS(5). - Drop the use of .ramfs dotfiles in /run and /run/lock. These were a legacy of /lib/init/rw and were not actually used by anything. Closes: #403863. - Drop /etc/init.d/mountoverflowtmp. This has been merged into the general tmpfs on /tmp handling functions. This means the generic RAMTMP configuration is used for the overflowtmp. Closes: #567539. - It is now possible to configure a tmpfs mount size limit as a percentage of the total VM size (%VM) as well as a percentage of the RAM size (%). This is computed by tmpfs.sh and the tmpfs mounts are remounted with the updated size limit after swap becomes available. - An fstab entry for /tmp overrides RAMTMP. Document tmpfs override and tmpfs defaults in tmpfs(5), also undeprecating the tmpfs settings. Closes: #585540, #665995. - An fstab entry for /run/lock or /run/shm overrides RAMLOCK and RAMSHM. - bootclean cleans /tmp, /run and /run/lock before any filesystems are mounted as well as after local and network mounts. This permits cleaning of directories which would otherwise be hidden by mountpoints later in the boot process. Closes: #55707, #558000, #666871. Additionally clean up /lib/init/rw in case any files were hidden by the (now removed) tmpfs mount at this location. Closes: #652625. - Removed last trace of the long-removed EDITMOTD from the postinst. Closes: #438895. - Removed documentation of #346342 in rcS(5). This is no longer an issue now tzdata keeps a copy of the data on the rootfs. Closes: #385172. - Correct description of TMPTIME in rcS(5). Thanks to Alan J. Greenberger. Closes: #562500. - urandom: Applied a series of patches from John Denker to improve the integrity of random number generation. Many thanks. Closes: #596479, #596480, #596481, #596482, #596483, LP: #947041. * sysv-rc: - Remove old upgrade logic from maintainer scripts not required for wheezy. - Migrate users of obsolete static boot ordering to dynamic boot ordering. - Remove use of /etc/init.d/.legacy-bootordering. Closes: #668312. - Improve help text of debconf message when it is not possible to automatically enable dynamic boot ordering. Provide explicit instructions for how to purge obsolete init scripts. Closes: #550425. - etc/init.d/rc: Ensure linprocfs is mounted on kFreeBSD. Thanks to Robert Millan. Closes: #659480. - Drop undocumented CONCURRENCY setting from /etc/init.d/rc. Closes: #518249, #540448, #539261. Note that this still contains internal fallbacks to support non-insserv booting, which may be removed at a later date. - invoke-rc.d: + Minor manual page corrections. Thanks to Anthony Fiumara. Closes: #664816. + Remove mention of the "dpkg Programmers' Manual" and replace with references to Debian Policy. Closes: #543793. - update-rc.d: + Correctly warn about non-LSB standard runlevels. Thanks to Chris Hiestand for this patch. Closes: #614895. + Remove obsolete documentation of /var/lib/sysv-rc/legacy-bootsequence. Thanks to Thomas Hood. Closes: #623051. * sysvinit: - Minor corrections for halt(8) manual page. Thanks to Christoph Anton Mitterer. Closes: #587923. - Installation with debootstrap --variant=fakechroot now works, due to only migrating the old control channel when it is still present. Thanks to Michael Gilbert. Closes: #596284. * sysvinit-utils: - Recommend bootlogd. Closes: #659490. This means that booklogd will be installed by default, but will be removable. Closes: #232569. - Correct documentation of the startpar -i option. Closes: #545438. - Correct startpar(8) SEE ALSO section. Closes: #634146. - Correct wording in service(8). Thanks to Joey Hess and Regid Ichira. Closes: #545401, #667745. [ Steve Langasek ] * debian/service/service: fix upstart compatibility to not try to use the upstart commands when init isn't upstart. Closes: #636054. * debian/rules: pass CFLAGS when building startpar. * Fix startpar to not run init scripts that have matching upstart jobs, instead waiting for a signal from upstart. Closes: #660824. * sysvinit: - Don't restart or perform initctl migration if systemd is running. -- Roger Leigh Sat, 21 Apr 2012 12:11:45 +0100 sysvinit (2.88dsf-22.1) unstable; urgency=low * Non-maintainer upload. * Fix pending l10n issues. Debconf translations: - Dutch; (Jeroen Schot). Closes: #626270 - Polish (Michał Kułach). Closes: #658156 -- Christian Perrier Tue, 13 Mar 2012 07:03:06 +0100 sysvinit (2.88dsf-22) unstable; urgency=low [ Roger Leigh ] * mountall.sh uses mknod rather than mkfifo (Closes: #658045). -- Roger Leigh Mon, 30 Jan 2012 23:44:21 +0000 sysvinit (2.88dsf-21) unstable; urgency=low [ Roger Leigh ] * debian/patches/72_path_max.patch: New patch for startpar. Don't use PATH_MAX, to fix compilation on GNU/Hurd. -- Roger Leigh Sat, 28 Jan 2012 11:14:53 +0000 sysvinit (2.88dsf-20) unstable; urgency=low [ Roger Leigh ] * debian/patches/71_signalfd.patch: New patch for startpar. Don't include , which is not used and breaks compilation on architectures not having this Linux-specific header. (Closes: #657676) * sysvinit: - Don't restart init when a chroot is detected, to avoid lengthy timeouts. Use ischroot from debianutils to determine whether the postinst is being run in a chroot environment, as already done by initscripts. -- Roger Leigh Sat, 28 Jan 2012 00:07:39 +0000 sysvinit (2.88dsf-19) unstable; urgency=low [ Roger Leigh ] * debian/control: - initscripts adds versioned Breaks on autofs (<< 5) since autofs 4.x does not cope with /etc/mtab symlinked to /proc/mounts. Users should upgrade to autofs5, which works correctly. (Closes: #653126) - initscripts Breaks aide << 0.15.1-5 and sysklogd << 1.5-6.2 now they support /run. - sysvinit Pre-Depends on initscripts >= 2.88dsf-13.3 in order to transition initctl to /run. * sysvinit: - /sbin/init control channel FIFO is /run/initctl rather than /dev/initctl (Linux) or /etc/.initctl (FreeBSD). The postinst migrates the running init to use the new control channel by replacing the old channel with a symlink prior to issuing a SIGUSR1 to cause init to reopen its control channel and then exec of the new version of init using the new path. Thanks to Robert Millan. (Closes: #638019) - Add Catalan (ca) translation. Thanks to Innocent De Marchi. (Closes: #622785) * sysvinit-utils: - Upgrade to startpar 0.58. Thanks to Dr. Werner Fink at SuSE for this updated release. This release incorporates all of the existing Debian patchset; debian/patches/7[1-9]* have now been dropped. * initscripts: - mountall.sh recreates /run/initctl and sends SIGUSR1 to init if needed. - /etc/init.d/rc.local uses only $all in Required-Start; $remote_fs and $syslog being redundant. Thanks to Regid Ichira. (Closes: #635025) - rcS.5 documents that RAMTMP defaults to yes for new installations, and no for upgrades (since RAMTMP is not present in /etc/default/rcS). (Closes: #652337) - /etc/default/rcS is updated using ucf. (Closes: #648433) - umountfs uses more sophisticated sed expression to compute PROTECTED_MOUNTS, to support unionfs and more complex cases. Thanks to Michele Mazzucchi for this patch. (Closes: #655582) -- Roger Leigh Sun, 22 Jan 2012 17:07:46 +0000 sysvinit (2.88dsf-18) unstable; urgency=low [ Roger Leigh ] debian/rules: Fix FTBFS on Hurd by moving file renaming to a later point in the build. -- Roger Leigh Thu, 22 Dec 2011 22:59:47 +0000 sysvinit (2.88dsf-17) unstable; urgency=low [ Roger Leigh ] * debian/control: - initscripts adds versioned Breaks on readahead-fedora (<< 2:1.5.6-3), which removed splash support. Thanks to Sven Joachim. - Update initscripts Breaks for fixed version of libpam-mount. * initscripts: - Document /lib/init/rw removal and cleanup in NEWS. (Closes: #652512). - /etc/network/if-up.d/mountnfs handles whitespace correctly (Closes: #612378). grep on /etc/network/run/ifstate is corrected (inverted the logic). Thanks to Jamie Heilman and Corey Hickey. * sysvinit: Install reboot and halt commands with a -sysv suffix on GNU/Hurd. (Closes: #652830) [ Josh Triplett ] * Split bootlogd into a separate package. (Closes: #545181) -- Roger Leigh Thu, 22 Dec 2011 20:58:36 +0000 sysvinit (2.88dsf-16) unstable; urgency=low [ Roger Leigh ] * debian/control: - initscripts versioned Breaks use correct epochs and binary package names. - initscripts Breaks libpam-mount <= 2.11-1, which does not support a read-only mtab. This is supported in new upstream versions. -- Roger Leigh Sat, 17 Dec 2011 15:57:24 +0000 sysvinit (2.88dsf-15) experimental; urgency=low [ Roger Leigh ] * /etc/init.d/skeleton: Small whitespace cleanup. Thanks to Peter Eisentraut. (Closes: #651862) * Move all patches in debian/startpar/patches to debian/patches and make debian/startpar/ content a separate patch applied to startpar/. Build and install startpar in debian/rules. (Closes: #652097). -- Roger Leigh Thu, 15 Dec 2011 00:24:22 +0000 sysvinit (2.88dsf-14) experimental; urgency=low [ Kel Modderman ] * Add support for s390x, thanks to Aurelien Jarno . (Closes: #641107) [ Roger Leigh ] * debian/rules: - Add build-arch and -indep rules. (Closes: #648472) - Remove dpatch usage. - Use dh and debhelper compat level 9. * debian/control: - Add git version control information. - Upgrade to Standards-Version 3.9.2. - Add myself to Uploaders. * Use dpkg 3.0 (quilt) source format. Rediffed debian/patches/40_multiarch_libcrypt.patch which was not well formed and failed to apply. * initscripts: - Make /etc/mtab a symlink to /proc/mounts. (Closes: #494001) Note that this is only done when the root filesystem is writable and /proc/mount is readable. - Support the ceph network filesystem. (Closes: #580579). Thanks to Sage Weil. - Restore boot-time cleaning of /var/run and /var/lock, used by systems which currently do not use a tmpfs for /run. - Remove /lib/init/rw: Add Breaks for all packages which used /lib/init/rw, and which now use /run. Unmount and remove following upgrade. - Don't create /run/.run-transition on upgrade, only on actually setting up a transitional bind mount. - Add Breaks on all packages previously using /lib/init/rw, in order to permit removal of /lib/init/rw. It is not possible to remove prior to rebooting due to initscripts being required to be configured by the packages transitioning to /run. Remove in wheezy+1. - Remove trailing period from the initscripts init script log message. (Closes: #648881, LP: #662875). Thanks to Clint Byrum. - /etc/network/if-up.d/mountnfs: grep: character class syntax is [[:space:]], not [:space:]. (Closes: #631077, #645655). Thanks to Milan Kocian and Jan-Benedict Glaw. Also simplify function logic using a for loop rather than a while loop. Thanks to Corey Hickey. * sysv-rc: - Remove splash support and use of removed /dev/.initramfs. (Closes: #643558). Thanks to Michael Biebl. -- Roger Leigh Tue, 13 Dec 2011 20:11:48 +0000 sysvinit (2.88dsf-13.13) unstable; urgency=low * Non-maintainer upload. * Replace "cons25" with "xterm" on GNU/kFreeBSD. -- Robert Millan Wed, 02 Nov 2011 23:42:14 +0000 sysvinit (2.88dsf-13.12) unstable; urgency=low * Non-maintainer upload. * 92_kfreebsd_ifdown.patch: Shut down network interfaces correctly on GNU/kFreeBSD. Thanks Guillem. (Closes: #606565) * Replace `ttyd' with `cuau' in inittab for GNU/kFreeBSD. Thanks Tuco. (Closes: #587162) * Use linux-any in debian/control to avoid hardcoded lists of non-Linux arches. (Closes: #634514) -- Robert Millan Fri, 14 Oct 2011 23:27:34 +0200 sysvinit (2.88dsf-13.11) unstable; urgency=low * Non-maintainer upload. * initscripts provides /run/sendsigs.omit.d as soon as /run is available. * initscripts bootlogs: Remove support for /dev/.udev.log, which is no longer needed now udev uses /run. * initscripts umountroot: Remove ubuntu-specific patch which created directories on the root filesystem prior to umounting it. This was never applicable to Debian, and is now no longer required following the introduction of /run (Closes: #633541). -- Roger Leigh Wed, 13 Jul 2011 19:47:10 +0100 sysvinit (2.88dsf-13.10ubuntu15) raring; urgency=low * add some default settings for the interactive governor to the ondemand initscript. -- Oliver Grawert Wed, 30 Jan 2013 13:16:38 +0100 sysvinit (2.88dsf-13.10ubuntu14) raring; urgency=low * Twiddle /etc/init.d/ondemand to prefer the "interactive" governor over the ondemand one, which improves responsiveness on devices that have a kernel that support this feature (such as the nexus7). * Also, exit more gracefully if we have no governors available to us. -- Adam Conrad Fri, 07 Dec 2012 04:48:13 -0700 sysvinit (2.88dsf-13.10ubuntu13) quantal; urgency=low * Add version guard to previous postinst change. -- Stéphane Graber Fri, 20 Jul 2012 22:26:51 -0400 sysvinit (2.88dsf-13.10ubuntu12) quantal; urgency=low * Cherry-pick fix from git to better handle chroot in postinst and change the check to allow for the case where /dev isn't a mountpoint but /dev/shm is one. (LP: #974584) * Add logic to detect broken environments (mostly LXC) where both /dev/shm and /run/shm exist as directories (and aren't bind-mounts). In such case, move the content of /dev/shm to /run/shm and make /dev/shm a symlink to /run/shm. -- Stéphane Graber Fri, 20 Jul 2012 16:55:04 -0400 sysvinit (2.88dsf-13.10ubuntu11) precise; urgency=low * Only try to move links in /etc/rc{0,6}.d that match "S0*". LP: #941867. -- Steve Langasek Fri, 13 Apr 2012 22:46:53 -0700 sysvinit (2.88dsf-13.10ubuntu10) precise; urgency=low * On upgrade, detect and correct broken shutdown sequence caused by 3rd-party packages running insserv. (LP: #858122) -- Evan Broder Wed, 15 Feb 2012 18:38:19 -0800 sysvinit (2.88dsf-13.10ubuntu9) precise; urgency=low * Mark all binary packages as Multi-Arch: foreign to allow for upstart to be installable with multi-arch (needed for armhf containers on x86) -- Stéphane Graber Thu, 02 Feb 2012 13:10:48 -0500 sysvinit (2.88dsf-13.10ubuntu8) precise; urgency=low * d/src/initscripts/etc/init.d/sendsigs: wait up to 300 extra seconds for upstart jobs that have been killed. They will be sent SIGKILL by upstart when their 'kill timeout' has been reached, so we should trust the job's author to give the service a reasonable amount of time to shut down. (LP: #688541) * also omit pids of stop/killed upstart jobs since we know they've been killed already. * d/src/initscripts/etc/init.d/umountroot: Check for init.upgraded file in /var/run before clearing out /var/run. (LP: #886439) -- Clint Byrum Mon, 12 Dec 2011 16:16:37 -0800 sysvinit (2.88dsf-13.10ubuntu7) precise; urgency=low * Revert previous upload. /etc/bash_completion.d/service is already shipped in "bash-completion", causing a file conflict. -- Martin Pitt Mon, 12 Dec 2011 07:22:18 +0100 sysvinit (2.88dsf-13.10ubuntu6) precise; urgency=low * debian/bash_completion.d/service: - add a long overdue bash completion script for the service command -- Dustin Kirkland Sun, 11 Dec 2011 21:18:46 -0600 sysvinit (2.88dsf-13.10ubuntu5) precise; urgency=low * d/service/service: Updated to use 'stop/start' instead of passing restart directly through to upstart. (LP: #440179) * d/service/service.8: Updated man page to reflect handling of upstart jobs. -- Clint Byrum Tue, 15 Nov 2011 12:33:01 -0800 sysvinit (2.88dsf-13.10ubuntu4) oneiric; urgency=low * debian/src/initscripts/etc/init.d/umountroot: don't forget to migrate /dev/shm to /run/shm on shutdown also, without which ecryptfs fails to start up correctly. Thanks to Martin Pitt for the report. -- Steve Langasek Wed, 13 Jul 2011 22:02:25 -0700 sysvinit (2.88dsf-13.10ubuntu3) oneiric; urgency=low * remove debian/postinst: this is supposed to go into the sysvinit package in debian, but we don't ship that, meaning it lands in sysvinit-utils instead by mistake! -- Steve Langasek Wed, 13 Jul 2011 17:10:59 -0700 sysvinit (2.88dsf-13.10ubuntu2) oneiric; urgency=low * debian/src/initscripts/etc/init.d/umountroot: handle the migration of /var/run and /var/lock from directories to symlinks at shutdown, since we can't guarantee this gets done early enough at startup. -- Steve Langasek Wed, 13 Jul 2011 16:26:00 -0700 sysvinit (2.88dsf-13.10ubuntu1) oneiric; urgency=low * Merge from Debian unstable (LP: #807974), remaining changes: - Support Cell processor: + debian/initscripts.postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/control: Add initscripts dependency 'passwd' for groupadd. (Forwarded to Debian #483399) - Disable bootlogd by default. - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/control: Drop Essential: yes from packages since we use Upstart. - debian/control: Do not build the sysvinit binary package any more. It conflicts with upstart, which is required, so it is uninstallable. - debian/src/initscripts/etc/init.d/ondemand: Sleep for 60 seconds, then set CPU Frequency Scaling governor to "ondemand". LP: #341573. - debian/rules: Compat symlink from /usr/bin/service to /usr/sbin/service - debian/control: sysvinit-utils recommends the upstart that provides the reload action - Remove various initscripts (and an ifupdown hook) that have been replaced by upstart jobs shipped in other packages. - debian/sysv-rc.postinst: Don't use insserv by default - debian/src/initscripts/man/rcS.5: drop mention of /etc/default/tmpfs, which doesn't do anything on Ubuntu. - Remove RAMLOCK, RAMSHM, and RAMTMP settings from default rcS script to avoid confusion, remove from /etc/default/rcS on upgrade too; and remove mention of all of these plus RAMRUN from the manual pages. - Always skip these when unmounting filesystems. - Fix documentation for other things handled by mountall instead of initscripts: tmpfs, /sys (mountall lets you specify options in /etc/fstab), and ASYNCMOUNTNFS. - If /var/run/init.upgraded exists, call telinit u before unmounting the root filesystem. - Create /lib/init/rw as a symlink to /var/run on new installations, and fix it up in /etc/init.d/umountroot on upgrade, as it's difficult to do this at any other time - debian/initscripts.postinst: + do not create motd.tail from motd on systems using update-motd. + clean up incorrectly created motd.tail from upgrade to Maverick. - debian/src/initscripts/etc/init.d/sendsigs: + sendsigs: OMITPIDS needs to be reinitalized for every loop iteration before concatenating pids of upstart jobs to it. + handle the possibility of upstart jobs being started after the script starts running, to avoid unnecessary 10 second delays on shutdown. + only omit jobs that are in the 'start' goal. Those that are destined for 'stop' are waited on and killed like all other processes. + make report_unkillable use apport instead of echoing to console; but disable this reporting by default. - debian/patches/92_sulogin_support_static_sh.patch: add support for /bin/static-sh as fallback if the regular shell fails to execute - debian/initscripts/etc/init.d/umountnfs.sh: emit upstart event unmounted-remote-filesystems, to allow stopping portmap - debian/src/sysv-rc/sbin/invoke-rc.d: replace RUNLEVEL with RUNLEVELHELPER. - debian/src/initscripts/etc/init.d/umountroot: Improve handling of respawn of init: we now wait for inits map file to change. If this doesn't happen within 5 seconds, we unmount forcibly. * Changes included in Debian: - Conflict/Replace sysvconfig - Depend on lsb-base (>= 3.2-14) for status_of_proc() function. - debian/service/service: use upstart for service management, if an upstart configuration exists, - debian/src/initscripts/etc/init.d/umountfs: do not use the -f option when unmounting WEAK_MTPTS - debian/src/initscripts/etc/init.d/sendsigs: Omit any process being controlled by Upstart. - Fix FTBFS with changed libcrypt multiarch library location. * Changes included upstream: - debian/patches/100_fix_ftbfs_enoioctlcmd.patch: cherry pick upstream fix for missing ENOIOCTLCMD to fix a FTBFS - debian/patches/98_killall5_dynamic_omitpid.patch: Allocate pidof/killall5 omitpid buffers dynamically. * Dropped changes: - sysvutils transitional package: this transition is done pre-lucid, so drop the delta. - debian/src/initscripts/lib/init/usplash-fsck-functions.sh: usplash is obsolete, code dropped in Debian and Ubuntu. - Handle /var/run/sendsigs.omit.d explicitly: this is replaced by /run/sendsigs.omit.d upstream. - waitnfs.sh -> mountnfs.sh renaming: transition finished pre-lucid. - bootlogs.sh -> bootlogs: transition finished pre-lucid. * Drop /etc/default/tmpfs; Ubuntu uses mountall instead, so this is confusing cruft. * Make /lib/init/rw a symlink to /run now. * Add a versioned depends to initscripts of mountall (>= 2.28), since everything else depends on initscripts for /run and the boot-time implementation is in mountall for us. * clean up /run/motd if we find this present in the chroot case; this was created by the premature base-files upload and should be overwritten. -- Steve Langasek Wed, 13 Jul 2011 12:27:12 -0700 sysvinit (2.88dsf-13.10) unstable; urgency=low * Non-maintainer upload. * Correct selinux-policy-default Breaks versioning (use <= rather than <<). -- Roger Leigh Thu, 09 Jun 2011 20:31:00 +0100 sysvinit (2.88dsf-13.9) unstable; urgency=low * Non-maintainer upload. * Try both old and multiarch paths to cope with buildds which don't yet have a multiarch libc installed. -- Roger Leigh Thu, 09 Jun 2011 14:50:53 +0100 sysvinit (2.88dsf-13.8) unstable; urgency=low * Non-maintainer upload. * initscripts Breaks all selinux-policy-default versions up to and including 2:0.2.20100524-9, which do not support /run. * Add restorecon support for selinux to /run in mountkernfs. (Closes: #628107). Thanks to Martin Orr for this patch. * Search for libcrypt using multiarch path (Closes: #629677). -- Roger Leigh Thu, 09 Jun 2011 13:35:56 +0100 sysvinit (2.88dsf-13.7) unstable; urgency=low [ Roger Leigh ] * Non-maintainer upload. * Correct version check used for reboot notification in initscripts postinst. * Don't use "rm -rf" when creating compatibility links in chroots; use plain rmdir and abort with an error if it fails. This is in order to avoid removing host data if e.g. /run from the host is already bind mounted on the chroot /run, which would remove the contents of the host /run if upgrading initscripts in the chroot. * Restore rpcbind/portmap changes from 2.88dsf-13.5. * Add restorecon support for selinux using new paths. (Closes: #626725) Thanks to Martin Orr for this patch. * Use new debianutils "ischroot" program to detect if in a chroot in the initscripts postinst more reliably. Depend on initscripts version 4 or greater to ensure ischroot is available. (Closes: #626846) -- Roger Leigh Wed, 18 May 2011 23:12:30 +0100 sysvinit (2.88dsf-13.6) unstable; urgency=low [ Roger Leigh ] * Non-maintainer upload. * Don't remount filesystems mounted in the initramfs until mtab exists. Use the existing reload functionality of mountkernfs an mountdevsubfs to allow mtab.sh to trigger the remounts. (Closes: #623174) * Revert to using absolute paths in compatibility symlinks in order to comply with Policy §10.5 symlink rules. (Closes: #626263) * The permissions of /tmp are only set when root is writable. (Closes: #623934) -- Roger Leigh Sat, 14 May 2011 00:30:52 +0100 sysvinit (2.88dsf-13.5) experimental; urgency=low [ Roger Leigh ] * Non-maintainer upload. * Unify mount logic shared between mountkernfs.sh, mountdevsubfs.sh and mtab.sh - all functions use domount() from /lib/init/mount-functions. This merges in the functionality of domtab() in mtab.sh, which was almost entirely identical. domount is now capable of mounting and remounting (with and without mtab updates) as well as updating /etc/mtab. - mtab.sh calls mountkernfs.sh and mountdevsubfs with an "mtab" argument to do the mtab generation for early mounts. This means that the mount logic is not needlessly duplicated, and does not require two copies to be kept exactly in sync. This reduces the risk of problems as a consequence of subtle differences between the two scripts. - mount options may be specified in either /etc/default/tmpfs or in /etc/fstab, and will supersede hard coded defaults. The the values in fstab (if any) will supersede those in /etc/default/tmpfs should an entry be present. These values are also used for remounting, which means that filesystems mounted in an initramfs and moved onto the root filesystem prior to init starting will be remounted with the correct user-specified options. - Improve robustness of stat checks when comparing directories. - mountkernfs.sh and mountdevsubfs.sh are idempotent, so allow for repeated invocation. This is needed to allow the same code to be used for mounting, remounting and mtab generation. - Enabling RAMLOCK, RAMSHM and RAMTMP in /etc/default/rcS is no longer required if the filesystems are present in /etc/fstab * /etc/default/tmpfs is deprecated - If changing the default size limits, adding an entry to /etc/fstab is preferred compared with editing /etc/default/tmpfs. This also permits modifying the default mount options, and setting additional mount options. - If /etc/default/tmpfs has been modified from the defaults, any needed entries will be created in /etc/fstab on upgrade, to preserve the settings from /etc/default/tmpfs. The entries in /etc/fstab will subsequently override the settings in /etc/default/tmpfs. * The mount options for /run are made stricter when possible. For example, if /run/shm is a separate filesystem, it may be safely mounted with "noexec". * Compatibility symbolic links are relative, not absolute. e.g. /var/lock is ../run/lock rather than /run/lock. This means that if you're using a chroot from the host system, you'll always be using locations in the chroot, rather than the host, when following the links. * Updated documentation in initscripts README.Debian and rcS(5). [ Kel Modderman ] * Consider rpcbind as alternative to portmap in mountnfs ifupdown script. Thanks to Jamie Heilman and Arthur de Jong. (Closes: #620788) -- Roger Leigh Fri, 22 Apr 2011 15:25:25 +0100 sysvinit (2.88dsf-13.4) experimental; urgency=low [ Roger Leigh ] * Non-maintainer upload. [ Kel Modderman ] * Remove code from /etc/init.d/bootmisc.sh which is not needed with modern kernel which do not support BSD ptys. The udev check is not reliable anymore due to /run/. Thanks Marco d'Itri (Closes: #620784) * Handle user interupt of fsck in etc/init.d/checkfs.sh and init.d/checkroot.sh. Trap SIGINT and handle fsck exit status of 32. (Closes: #608534) -- Roger Leigh Sat, 16 Apr 2011 16:50:51 +0100 sysvinit (2.88dsf-13.3) experimental; urgency=low [ Roger Leigh ] * Non-maintainer upload. * Support for new top-level directory /run to replace /var/run, /var/lock, /dev/shm and /lib/init/rw as a place to store transient writable data which should not be preserved across a system reboot (Closes: #186892, #616571, #620191). /run fixes existing issues with RAMRUN and RAMLOCK options using tmpfs on /var/run and /var/lock (Closes: #423405, #481546, #564635, #607136, #620735). Additionally, /run/shm replaces /dev/shm and may share the same tmpfs as /run if RAMSHM is set to "no" in /etc/default/rcS. /tmp may also be configured to be a tmpfs if RAMTMP is set to "yes" in /etc/default/rcS. /tmp may also be configured to use /run directly if it is symlinked to /run/tmp, for example. Summary: /var/run → /run /var/lock → /run/lock /dev/shm → /run/shm /lib/init/rw → /run (not transitioned automatically) /dev/.* → /run (not transitioned automatically) These changes do not take effect until the system is rebooted as is currently done for /lib/init/rw setup. Prior to a reboot, the paths are made available via bind/nullfs/firmlink mounts, depending on the platform. Following a reboot, the old paths will be converted to symlinks, or bind/nullfs/firmlink mounts where symlinking is not possible, to allow access via either the old or new paths, to permit programs using the old paths to transition to use the new paths for wheezy. - debian/initscripts.postinst: Take chroot detection logic from udev postinst (existing logic was broken). Add detection logic for vserver environments and Hurd. Trigger reboot to complete transition. If the system has not yet transitioned to a tmpfs-based /run, set up bind mounts as follows: /var/run → /run /var/lock → /run/lock /dev/shm → /run/shm On reboot, the system will complete the migration to a tmpfs-based /run; this creates the directory heierachy from the old paths to enable the use of the new /run paths prior to a restart. This means packages may transition to using /run with a versioned dependency upon initscripts. Remove special handling for RAMRUN and RAMLOCK, which is now taken care of by /run. If in a chroot environment, just create symlinks from the new names to the existing locations, since otherwise the changes would be lost, and since rcS scripts aren't run the transition won't complete. - debian/src/initscripts/Makefile: Provide top-level /run. - debian/src/initscripts/doc/README.Debian: Document new use of RUN_SIZE and LOCK_SIZE. Document use of /run rather than /lib/init/rw. Document use of SHM_SIZE and TMP_SIZE. - debian/src/initscripts/etc/init.d/checkroot.sh: Use /run in place of /lib/init/rw. - debian/src/initscripts/etc/default/tmpfs: Document TMPFS_SIZE, RUN_SIZE and LOCK_SIZE (Closes: #483643). Document TMP_SIZE and SHM_SIZE. - debian/src/initscripts/etc/init.d/mountkernfs.sh: Create /run, /run/sendsigs.omit.d and /run/lock. Mount /run/lock as a separate tmpfs if RAMLOCK=yes. /run/lock has 01777 permissions to match /var/lock. Mount /tmp as a separate tmpfs if RAMTMP=yes or / is being mounted read-only (Closes: #503805, #585543). Drop mounting of /var/run and /var/lock. - debian/src/initscripts/etc/init.d/mountdevsubfs.sh: Create /run/shm. Mount /run/shm as a separate tmpfs if RAMSHM=yes. - debian/src/initscripts/etc/init.d/mtab.sh: domtab mirrors behaviour of domount in mount-functions exactly, to prevent duplicate mounts (required for bind mount support). Bind mount /run/init and drop mounting of /var/run. Mount /run/lock in place of /var/lock. Mount /tmp if RAMTMP=yes. Mount /run/shm if RAMSHM=yes. - debian/src/initscripts/etc/init.d/sendsigs: Use new paths: files: /run/sendsigs.omit /lib/init/rw/sendsigs.omit dirs: /run/sendsigs.omit.d/ /lib/init/rw/sendsigs.omit.d/ - debian/src/initscripts/etc/init.d/umountfs: Ignore /run. Continue to ignore /lib/init/rw in order to handle clean shutdown. No longer ignore /var/run and /var/lock. - debian/src/initscripts/etc/init.d/umountnfs.sh: Check for presence of .ramfs than configuration variable when skipping /var/run and /var/lock. Ignore /run. Continue to ignore /lib/init/rw in order to handle clean shutdown. No longer ignore /var/run and /var/lock. - debian/src/initscripts/lib/init/bootclean.sh Don't clean /var/run and /var/lock (Closes: #378776). Because these directories are now a tmpfs, cleaning no longer makes sense. - debian/src/initscripts/lib/init/tmpfs.sh: Read /etc/default/tmpfs and provide defaults if unset. - debian/src/initscripts/lib/init/mount-functions.sh: Support bind mounts in domount() (Closes: #353943). Drop support for mounting /var/run and /var/lock as separate tmpfs filesystems. Symlink /var/run to /run and /var/lock to /run/lock if possible. If /var/run and /var/lock are directories, attempt to remove and symlink if successful, or else bind mount. - debian/src/initscripts/lib/init/vars.sh: Read /etc/default/rcS and provide defaults if unset. - debian/src/initscripts/man/rcS.5: Drop documentation of RAMRUN. Update documentation for RAMLOCK (Closes: #406685). Document RAMTMP and RAMSHM. - debian/src/initscripts/share/default.rcS: Remove RAMRUN. Add RAMSHM and RAMTMP. RAMLOCK, RAMSHM and RAMTMP default to enabled for new installs. [ Michael Biebl ] * Remove dead usplash support code (Closes: #599241, #599734, #612594). [ Martin F. Krafft ] * Add comments to /etc/default/rcS (Closes: #530582). [ Samuel Thibault ] * Hurd portability for initscripts postinst and init scripts. Hurd does not currently support tmpfs mounts, but will do in the future. Use firmlinks in place of bind mounts. -- Roger Leigh Sat, 16 Apr 2011 01:17:29 +0100 sysvinit (2.88dsf-13.2) unstable; urgency=low * Non-maintainer upload. * Fix pending l10n issues. Debconf translations: - Danish (Joe Hansen). Closes: #599430 - Brazilian Portuguese (Adriano Rafael Gomes). Closes: #605851 - Slovak (Slavko). Closes: #614193 -- Christian Perrier Tue, 05 Apr 2011 07:24:09 +0200 sysvinit (2.88dsf-13.1) unstable; urgency=low * Non-maintainer upload. * Disable SIGINT for non-interactive init scripts (Closes: #582442) -- Ben Hutchings Sat, 01 Jan 2011 03:45:28 +0000 sysvinit (2.88dsf-13) unstable; urgency=low [ Kel Modderman ] * Remove runlevel duration printing code from init.d/rc script as it was scheduled for removal before squeeze and imperfect. (Closes: #584862) * Prevent init.d/rc script from executing stop scripts twice in runlevels 0 and 6 when conccurrent boot is enabled. (Closes: #594253) * Modify debian/startpar/patches/06_stdin_notty.patch so it applies without fuzziness. * Add debian/startpar/patches/08_kfreebsd_proc_error_debug.patch to prevent frequent messages on Debian GNU/kFreeBSD from littering boot messages. Thanks Petr Salinger for the patch. (Closes: #590560) * Avoid umounting virtual filesystems (eg, cgroup) mounted under /sys/* as there is no good reason to do so. Thanks Michael Biebl for the patch. (Closes: #597338) [ Petter Reinholdtsen ] * Update Standards-Version from 3.8.4 to 3.9.1. No changes needed. -- Petter Reinholdtsen Sun, 14 Nov 2010 23:08:45 +0100 sysvinit (2.88dsf-12) unstable; urgency=low [ Petter Reinholdtsen ] * Fix typo introduced when fixing #526398 and make sure the root file system is only checked if it is specified in /etc/fstab that it should be checked, to avoid breaking boot when root is on NFS (Closes: #592427). -- Petter Reinholdtsen Sun, 15 Aug 2010 20:05:30 +0200 sysvinit (2.88dsf-11) unstable; urgency=low * Avoid /usr/bin/find in init.d/urandom to be able to run it before /usr/ is mounted (Closes: #587665). -- Petter Reinholdtsen Sat, 03 Jul 2010 09:54:01 +0200 sysvinit (2.88dsf-10) unstable; urgency=low * Change init.d/urandom depend from $remote_fs to $local_fs. As far as I can see, it do not use anything in /usr/. * Change warning message from invoke-rc.d when called during shutdown to also include the requested action name. -- Petter Reinholdtsen Wed, 30 Jun 2010 14:06:17 +0200 sysvinit (2.88dsf-9) unstable; urgency=low * Drop soft dependency from init.d/bootlogs to gdm3 until gdm3 stop depending on bootlogs, to avoid init.d script loop (Closes: #577146). * Rewrite rm command in initscripts.postrm to avoid bogus lintian error. * Extend startpar patch 05_pri_kdm_gdm.patch to also give priority to gdm3. -- Petter Reinholdtsen Fri, 11 Jun 2010 08:47:28 +0200 sysvinit (2.88dsf-8) unstable; urgency=low * New startpar patch 06_stdin_notty.patch to make sure startpar run programs also when stdin is a pipe, to get it working on OpenVZ (Closes: #584102) * New startpar patch 07_nocrash_missing_arg.patch to make sure missing argument (-a) do not cause startpar to segfault. * Change startpar patch 05_pri_kdm_gdm.patch to also give priority to udev to get kernel module loading started as early as possible during boot. Based on idea from live-net-startpar. * Make init.d/bootlogs soft depend on gdm3 while we wait for gdm3 to provide $x-display-manager. * Make sure to create /dev/pts/ and /dev/shm/ in mountdevsub.sh before mounting them to allow udev to stop creating them at boot (Closes: #584742). Thanks to Marco d'Itri for the patch. * Drop support for the now obsolete devfs file system in the init.d scripts bootmisc.sh, checkroot.sh, mountdevsubfs.sh, umountfs and umountnfs.sh. * Loosen up the migration check to dependency based boot sequencing, to only report removed but not purged packages if insserv detected problems with the init.d script dependencies. * Add Norwegian Bokmål (nb) debconf translation. -- Petter Reinholdtsen Thu, 10 Jun 2010 15:41:18 +0200 sysvinit (2.88dsf-7) unstable; urgency=low [ Petter Reinholdtsen ] * Protect new code calling initctl in sendsigs to only run when /sbin/initctl is available. -- Petter Reinholdtsen Sun, 30 May 2010 14:57:17 +0200 sysvinit (2.88dsf-6) unstable; urgency=low [ Petter Reinholdtsen ] * Update comment in init.d/rc explaining the CONCURRENCY value to reflect that 'startpar' is no longer a useful value and that dependency based boot sequencing with parallel boot is the default. * Additional upstart jobs may be /started/ on shutdown after init.d/sendsigs has first been invoked; so don't assume the list of known jobs is constant, instead requery initctl before each killall5 -CONT to properly exclude any new jobs upstart knows about so that we aren't waiting an extra 10 seconds for no reason. Patch from Steve Langasek and Ubuntu. * Print to the console how many seconds were spent running boot scripts, to get more focus on boot speed while we prepare Squeeze. * Add workaround in sysv-rc.postinst for systems migrating from file-rc to make sure their use of legacy boot ordering is detected and handled (Closes: #575080). -- Petter Reinholdtsen Sat, 29 May 2010 21:08:23 +0200 sysvinit (2.88dsf-5) unstable; urgency=low [ Petter Reinholdtsen ] * Make sure now obsolete startpar and shell concurrency setting work as aliases for makefile style concurrency (Closes: #581704). -- Petter Reinholdtsen Sat, 15 May 2010 20:31:19 +0200 sysvinit (2.88dsf-4) unstable; urgency=low [ Petter Reinholdtsen ] * Fix typo in code detecting legacy boot ordering when concurrent startup is enabled. * Call splash_stop early during boot when using concurrent booting, to stop usplash from confusing X. -- Petter Reinholdtsen Fri, 14 May 2010 21:39:27 +0200 sysvinit (2.88dsf-3) experimental; urgency=low * New 30_killall5_hurd.patch to fix build problem on Hurd. Patch from Werner Fink. * Fix typo in invoke-rc.d (Closes: #580298). * Switch to concurrent booting by default, when dependency based boot sqeuencing is enabled. Make shell and startpar concurrency aliases for makefile style concurrency, as both are obsolete now. * Add 64_init_selinux_enabled.patch to try to fix the logic used to enable SELinux (Closes: #580272). * Mention the LSB style header now required for init.d scripts in /etc/init.d/README (Closes: #576788). -- Petter Reinholdtsen Wed, 12 May 2010 21:36:01 +0200 sysvinit (2.88dsf-2) experimental; urgency=low [ Petter Reinholdtsen ] * Change start dependencies for bootlogs to use new virtual facility $x-display-manager and also mention wdm and nodm. The individual display managers should be dropped as stop dependencies when all of them provide the virtual facility. * Report script name requested if invoke-rc.d is used during shutdown. * Update 63_init_keep_utf8_ttyflag.patch to actually work on kfreebsd. * New 20_init_freebsd_vswtc.patch to add workaround for missing VSWTC on kfreebsd (Closes: 579293). -- Petter Reinholdtsen Tue, 27 Apr 2010 18:46:02 +0200 sysvinit (2.88dsf-1) experimental; urgency=low * Upload to experimental for build testing and wider review. * New upstream release. - Drop 11_doc_shutdown-c.dpatch, now included upstream. - Drop 14_doc_fsf_addr.dpatch, now included upstream. - Drop 15_doc_upstream_email.dpatch, now included upstream. - Drop 21_ifdown_kfreebsd.patch, now included upstream. - Drop 46_pidof_symlinkman.patch, now included upstream. - Drop 50_bootlogd_devsubdir.dpatch, now included upstream. - Drop 54_bootlogd_findptyfail.dpatch, now included upstream. - Drop 55_bootlogd_flush.patch, now included upstream. - Drop 60_init_selinux_ifdef.dpatch, now included upstream. - Drop 62_init_freebsdterm.dpatch, now included upstream. - Drop 70_compiler_warnings.dpatch, now included upstream. - Drop 94_fstab-decode.dpatch, now included upstream. - Drop 96_shutdown_acctoff.dpatch, now included upstream. - Drop 97_init_starttest.dpatch, now included upstream. - Drop 98_installtarget.dpatch, now included upstream. - Update 63_init_keep_utf8_ttyflag.patch. - New upstream do not strip binaries, allowing the nostrip build option to work (Closes: #438085). * Update Standards-Version from 3.8.3 to 3.8.4. No change needed. * Update homepage in control file to the new home http://savannah.nongnu.org/projects/sysvinit . * Quiet down init.d/bootlogd when VERBOSE=no. * Document in init.d/skeleton that lsb-base (>= 3.2-14) is needed for status_of_proc(). -- Petter Reinholdtsen Sun, 25 Apr 2010 19:56:47 +0200 sysvinit (2.87dsf-10) unstable; urgency=low [ Petter Reinholdtsen ] * Avoid killing processes managed by upstart in init.d/sendsigs, and print list of misbehaving processes. Partly based on patch from Martin Pitt, Scott James Remnant and Ubuntu. * Change service to use upstart for service management if an upstart configuration exist. Patch from Dustin Kirkland and Ubuntu. * Always print message from invoke-rc.d when policy-rc.d denied execution (Closes: #566783). Patch from Per Wawra. * Correct use of .IB and .IR macros in update-rc.d manual page (Closes: 556080). Patch from Matt Kraai. * Only create /dev/initctl and send SIGUSR to init in init.d/mountall.sh when sysvinit is installed (Closes: #569032). * Change lsb-base depend for sysv-rc and initscripts from (>= 3.0-6) to (>= 3.2-14) for the status_of_proc() function. Patch from Dustin Kirkland and Ubuntu. * Adjust init.d/umountfs to avoid using -f when umounting devices mounted before /, and avoid umounting file systems listed before / in /proc/mounts to avoid hangs during shutdown. Patch from Colin Watson and Ubuntu. * Implement status reporting in init.d/stop-bootlogd and init.d/stop-bootlogd-single. [ Kel Modderman ] * Exit with value rather than echo the value for the status action in rmnologin and hostname.sh initscripts. (Closes: #567074, #567069) -- Petter Reinholdtsen Mon, 22 Mar 2010 20:21:01 +0100 sysvinit (2.87dsf-9) unstable; urgency=low [ Petter Reinholdtsen ] * Correct typo preventing sysv-rc error messages to be sent to stderr. * Only override VERBOSE in /lib/init/vars.sh based on kernel argument when called from /etc/init.d/rc (Closes: #505468). * Only use /proc/cmdline to override VERBOSE setting during boot if it is readable (Closes: #540008). * Only send SIGUSR to init from init.d/mountall.sh when /dev/initctl was created, to reduce the chance of confusing upstart (Related to #569032). * Make kernel argument parsing in /lib/init/vars.sh more robust to avoid incorrect matches (Closes: #557648). * Enable swap earlier in the boot, to avoid running out of memory during fsck (Closes: #552029). * Update upstream email address in the README to the current one. -- Petter Reinholdtsen Sun, 21 Mar 2010 08:19:38 +0100 sysvinit (2.87dsf-8.1) unstable; urgency=low * Non-maintainer upload. * Fix pending l10n issues. Debconf translations: - Russian (Yuri Kozlov). Closes: #552415 - Japanese (Hideki Yamane (Debian-JP)). Closes: #553185 - Italian (Vincenzo Campanella). Closes: #556075 - German (Chris Leick). Closes: #550829 - Galician (Marce Villarino). Closes: #554226 -- Christian Perrier Fri, 12 Feb 2010 05:57:33 +0100 sysvinit (2.87dsf-8) unstable; urgency=low * Update patch 63_init_keep_utf8_ttyflag.patch to try to get it working on freebsd and hurd too. * Debconf templates and debian/control changed based on review by the debian-l10n- english team as part of the Smith review project (Closes: #549539). Thanks to Christian Perrier for the patch. * Added section in README.Debian for sysv-rc, explaining the migration in more detail. Thanks to Justin B Rye for the text. * Debconf translations: - Added Vietnamese from Clytie Siddall (Closes: #550220). - Added Swedish from Martin Ågren (Closes: #550495). - Added Czech from Miroslav Kure (Closes: #551325). - Added Spanish from Francisco Javier Cuadrado (Closes: #551594). - Added Portuguese from António Moreira (Closes: #551675). - Added French from Steve Petruzzello (Closes: #551722). - Added Finnish from Esko Arajärvi (Closes: #551916). - Added Italian from Luca Monducci (Closes: #551922). -- Petter Reinholdtsen Sun, 25 Oct 2009 21:49:44 +0100 sysvinit (2.87dsf-7) unstable; urgency=low [ Petter Reinholdtsen ] * Change if-up.d/mountnfs to not claim to wait for the last network interface when there are no network file systems listed in /etc/fstab (Closes: #512237, 481028). Patch from Adrian Bridgett. * Add startpar patch 05_pri_kdm_gdm.patch to try to get gdm and kdm to start earlier when concurrent booting is enabled. * Quiet down sysv-rc postinst to not give error when no file exist in /var/lib/update-rc.d. Discovered from piuparts. * Report error from update-rc.d when insserv reject a script, to make it more clear what program call failed in a postinst. * Drop optional dependency from checkfs to cryptdisks, the cryptdisks script have a reverse dependency on checkfs, and that is a better way to do it. * Rewrite init.d/mtab.sh and init.d/checkroot.sh to not use /usr/bin/which, as it is running before /usr/ is guaranteed to be available. * Rewrite /lib/init/usplash-fsck-functions.sh to use blkid instead of the now obsolete vol_id. Patch from Martin Pitt and Ubuntu. * Update 91_sulogin_lockedpw.dpatch to include documentation, without the Ubuntu references. Based on patch from Scott James Remnant and Ubuntu. * Add patch 55_bootlogd_flush.patch to make sure lines are flushed to the kernel even when not asking the kernel to flush to disk (Closes: 542515). Patch from Scott Gifford. * Add patch 63_init_keep_utf8_ttyflag.patch to make sure the utf-8 tty flag is not cleared (Closes: 547073). Patch from Samuel Thibault. * Include url to wiki page with information on how to fix the problems when unable to migrate to dependency based boot sequencing. * Make mountnfs-bootclean.sh also depend on $local_fs, to avoid surprises on systems where the admin removed mountnfs.sh from rcS.d/. It is not a good idea to remove it, but there is no need for the script to fail when someone is crazy enough to remove a essential init.d script [ Henrique de Moraes Holschuh ] * invoke-rc.d: return exit status 4 when action "status" is denied, to allow simpleminded policy-rc.d scripts to work well with the status action (closes: #381497) [ Kel Modderman ] * Fix bootlogs init.d script to output correct name and supported actions in usage statement. (Closes: #551263) -- Petter Reinholdtsen Sun, 25 Oct 2009 11:07:22 +0100 sysvinit (2.87dsf-6) unstable; urgency=low * Correct code in sysv-rc postinst to avoid failing to install when no init.d scripts have been removed (Closes: #546405). * Start bootlogd before lvm2 too, to push it even further forward in the boot sequence. -- Petter Reinholdtsen Tue, 15 Sep 2009 01:28:19 +0200 sysvinit (2.87dsf-5) experimental; urgency=low * Uploading to experimental, to test the new build rules. * Make sysv-rc postinst report detected problems to stderr too when failing to migrate. * Fix typo in error message from postinst (Closes: #545409). * Make initscripts depend on sysvinit-utils (>= 2.86.ds1-64), to make sure the fstab-decode program is available (Closes: #545356). * Make sure the calls to 'update-rc.d X remove' in initscripts postinst do not ignore errors (Closes: #406361). * Make sysvinit depend on sysvinit-utils (>= 2.86.ds1-66) to avoid that bootlogd disappear during partial upgrades (Closes: #545368). * Restructure source package to make it possible to use debhelper in the common way to build the source, by moving debian/initscripts/ and debian/sysv-rc/ into debian/src/. Restructure build rules to use debhelper more, and migrate to debhelper 7. * New patch 98_installtarget.patch to improve the sysvinit install target. * Remove /etc/init.d/.depend.* in prerm, not postrm, to avoid surprises. * Remove /var/lib/update-rc.d/* when the package is purged. * Change cut-off point for the trimmed changelog entries in sysvinit-utils, initscripts and sysv-rc from version 2.84-3 to version 2.86.ds1-47, to reduce the package sizes. * Drop hurd specific dependency on libc0.3 (>= 2.3.2.ds1-12). It is no longer needed according to Michael Bunk. Patch from Michael Biebl. * Remove information about scripts in /var/lib/update-rc.d/ when their runlevel symlinks are removed (Closes: #545949). Remove such files left behind earlier during upgrade. * Bootlogd now starts as late as possible (Closes: #265801) * Drop the binary /lib/init/readlink from initscripts and depend on coreutils (>= 5.93) instead. Adjust scripts to use the program from coreutils from now on (Closes: #239342). * Make sure insserv exit values propagate through update-rc.d to make sure packages with errors fail to install. -- Petter Reinholdtsen Sun, 13 Sep 2009 00:13:49 +0200 sysvinit (2.87dsf-4ubuntu25) oneiric; urgency=low * debian/initscripts/etc/init.d/sendsigs: Only omit jobs that are in the 'start' goal. Those that are destined for 'stop' are waited on and killed like all other processes. (LP: #616287) Thanks to Launchpad user "codewarrior". -- Clint Byrum Tue, 07 Jun 2011 14:06:07 -0700 sysvinit (2.87dsf-4ubuntu24) oneiric; urgency=low * debian/sysv-rc/sbin/invoke-rc.d: replace RUNLEVEL with RUNLEVELHELPER. Using RUNLEVEL causes spurious failures when invoke-rc.d is invoked with RUNLEVEL already defined in the environment (as it is e.g. during bootup) since invoke-rc.d's RUNLEVEL will become an exported variable at that point and cause /sbin/runlevel to return bad data. (LP: #619246) -- James Troup Tue, 24 May 2011 11:41:45 +0000 sysvinit (2.87dsf-4ubuntu23) natty; urgency=low * Fix FTBFS with changed libcrypt multiarch library location. -- Matthias Klose Mon, 28 Mar 2011 21:50:35 +0100 sysvinit (2.87dsf-4ubuntu22) natty; urgency=low [ Dan Muresan ] * sendsigs: OMITPIDS needs to be reinitalized for every loop iteration before concatanating pids of upstart jobs to it. Otherwise it overflows and throws an error. (LP: #665185) -- Surbhi Palande Mon, 28 Mar 2011 13:11:49 +0300 sysvinit (2.87dsf-4ubuntu21) natty; urgency=low * debian/initscripts/etc/init.d/umountnfs.sh: emit a new event, unmounted-remote-filesystems, to allow stopping portmap and others. (LP: #711425) -- Clint Byrum Fri, 04 Mar 2011 12:18:15 +0000 sysvinit (2.87dsf-4ubuntu20) natty; urgency=low [ Michael Vogt ] * debian/patches/100_fix_ftbfs_enoioctlcmd.patch: - cherry pick upstream fix for missing ENOIOCTLCMD, this fixes a FTBFS [ James Hunt ] * debian/initscripts/etc/init.d/umountroot: Improve handling of respawn of init: we now wait for inits map file to change. If this doesn't happen within 5 seconds, we unmount forcibly. -- Michael Vogt Fri, 04 Mar 2011 10:38:34 +0100 sysvinit (2.87dsf-4ubuntu19) maverick-proposed; urgency=low * debian/initscripts.postinst (LP: #659738): - do not create motd.tail from motd on systems using update-motd. - clean up incorrectly created motd.tail from upgrade to Maverick. -- Kees Cook Thu, 28 Oct 2010 20:30:54 -0700 sysvinit (2.87dsf-4ubuntu18) maverick; urgency=low * Allocate pidof/killall5 omitpid buffers dynamically. 16 is too small for killall5 now that all Upstart jobs are omitted. * Create /lib/init/rw as a symlink to /var/run on new installations, and fix it up in /etc/init.d/umountroot on upgrade, as it's difficult to do this at any other time; this saves us chasing around all the individual packages that use one or the other for sendsigs.omit.d (LP: #541512). * Handle /var/run/sendsigs.omit.d explicitly, just in case. -- Colin Watson Fri, 24 Sep 2010 10:48:28 +0100 sysvinit (2.87dsf-4ubuntu17) lucid; urgency=low * debian/initscripts/etc/init.d/sendsigs: additional upstart jobs may be /started/ on shutdown after this script has first been invoked; so don't assume the list of known jobs is constant, instead requery initctl before each killall5 -CONT to properly exclude any new jobs upstart knows about so that we aren't waiting an extra 10 seconds for no reason. LP: #537262. -- Steve Langasek Tue, 30 Mar 2010 00:08:33 -0700 sysvinit (2.87dsf-4ubuntu16) lucid; urgency=low * debian/initscripts/etc/init.d/sendsigs: Comment out the report_unkillable() call. We collected enough data for now from beta-1 installations. -- Martin Pitt Mon, 22 Mar 2010 11:39:24 +0100 sysvinit (2.87dsf-4ubuntu15) lucid; urgency=low * debian/initscripts/etc/init.d/sendsigs: If we detect processes which don't want to die on SIGTERM (and thus cause the 10 second timeout until they get killed), call /usr/share/apport/unkillable_shutdown (if existing), so that we get reports about those. -- Martin Pitt Wed, 10 Mar 2010 14:43:49 +0100 sysvinit (2.87dsf-4ubuntu14) lucid; urgency=low * debian/patches/92_sulogin_support_static_sh.patch: - add support for /bin/static-sh as fallback if the regular shell fails to execute (LP: #505887) -- Michael Vogt Mon, 18 Jan 2010 09:40:46 +0100 sysvinit (2.87dsf-4ubuntu13) lucid; urgency=low * debian/initscripts/etc/init.d/sendsigs: - Omit any process being controlled by Upstart. -- Scott James Remnant Mon, 30 Nov 2009 23:36:47 +0000 sysvinit (2.87dsf-4ubuntu12) karmic-proposed; urgency=low * debian/initscripts/etc/init.d/umountfs: do not use the -f option when unmounting WEAK_MTPTS, in the case of bind mounts in particular, that results in the underlying device being unmounted, LP: #468589 -- Agostino Russo Tue, 03 Nov 2009 23:04:53 +0000 sysvinit (2.87dsf-4ubuntu11) karmic; urgency=low * debian/control: - Change the upstart dependency to a recommend in sysinit-utils because its not a hard dependency. This will fix a dependency cycle that causes kubuntu upgrades to fail (LP: ä452090) -- Michael Vogt Mon, 19 Oct 2009 15:12:44 +0200 sysvinit (2.87dsf-4ubuntu10) karmic; urgency=low * If /var/run/init.upgraded exists, call telinit u before unmounting the root filesystem. * Remove RAMRUN and RAMLOCK settings from default rcS script to avoid confusion, remove from /etc/default/rcS on upgrade too. * Always skip these when unmounting filesystems. * Remove from the manual pages. * Remove unsupported ASYNCMOUNTNFS documentation from the manual page. * Remove documentation about tmpfs, since mountall handles these. * Remove documentation about /sys in fstab, since mountall actually lets you specify options there. -- Scott James Remnant Wed, 14 Oct 2009 05:20:19 +0100 sysvinit (2.87dsf-4ubuntu8) karmic; urgency=low * debian/control: Do not build the sysvinit binary package any more. It conflicts with upstart, which is required, so it is uninstallable. -- Martin Pitt Thu, 01 Oct 2009 16:32:06 +0200 sysvinit (2.87dsf-4ubuntu7) karmic; urgency=low * debian/rules: add a versioned dependency on the upstart that provides the reload action * debian/service/service: handle reload and force-reload actions as upstart commands, LP: #433544 -- Dustin Kirkland Tue, 22 Sep 2009 14:25:37 -0700 sysvinit (2.87dsf-4ubuntu6) karmic; urgency=low * Remove conffiles that are no longer included in this package. LP: #430355. -- Scott James Remnant Mon, 21 Sep 2009 16:29:34 -0700 sysvinit (2.87dsf-4ubuntu5) karmic; urgency=low * Restore change made by Martin Pitt in intrepid, but lost recently (LP: #431789): - Let sysvinit-utils only replace the old sysvutils, do not conflict to it. This is a less clean way to do the transition than with a proper Conflicts/Replaces, but the latter induces a Pre-Depends/Conflicts loop which is unresolvable. -- Colin Watson Sat, 19 Sep 2009 21:33:08 +0100 sysvinit (2.87dsf-4ubuntu4) karmic; urgency=low * debian/service/service: use upstart for service management, if an upstart configuration exists, LP: #427277 -- Dustin Kirkland Thu, 17 Sep 2009 10:21:05 -0500 sysvinit (2.87dsf-4ubuntu3) karmic; urgency=low FFE LP: #427356. * Various initscripts have been replaced by Upstart jobs shipped in other packages, the following have been removed: - hostname.sh - mountkernfs.sh - mountdevsubfs.sh - checkroot.sh - mtab.sh - checkfs.sh - mountall.sh - mountall-bootclean.sh - mountoverflowtmp - mountnfs.sh - mountnfs-bootclean.sh - bootmisc.sh - bootlogs - rmnlogin -- Scott James Remnant Tue, 15 Sep 2009 02:45:59 +0100 sysvinit (2.87dsf-4ubuntu2) karmic; urgency=low * Use legacy boot ordering on fresh installs too. Ooops. -- Scott James Remnant Tue, 15 Sep 2009 02:44:35 +0100 sysvinit (2.87dsf-4ubuntu1) karmic; urgency=low * Merge from debian unstable, remaining changes: - Support Cell processor: + debian/initscripts/postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/initscripts/etc/init.d/mountkernfs.sh: Mount spufs if Cell processor is detected. + debian/initscripts/lib/init/mount-functions.sh: Modprobe spufs if not available. + debian/control: Add initscripts dependency 'passwd' for groupadd. (Forwarded to Debian #483399) - Use tmpfs mounts for /var/lock and /var/run: + debian/initscripts/share/default.rcS: Enable RAMRUN and RAMLOCK by default. + debian/initscripts.postinst: Enable RAMRUN and RAMLOCK in /etc/default/rcS on upgrades. This needs to be kept until the next LTS. + debian/initscripts/etc/init.d/mountkernfs.sh: Propagate files from the initramfs to our new /var/run, so that we can populate /var/run/sendsigs.omit from initramfs. - Boot ordering differences: + mountkernfs.sh: 02 -> 01 + mountdevsubfs.sh: 04 -> 11 + bootlogd: disabled by default + checkroot.sh: 10 -> 20 + mtab.sh: 12 -> 22 - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/control: Drop Essential: yes from packages since we use Upstart. - debian/control: Conflict/Replace sysvconfig which has also previously provided service(8). - debian/control, debian/rules: Previous name for sysvinit-utils was 'sysvutils' in Ubuntu, so Conflict/Replace/Provide it. Also create a dummy sysvutils package, since Hardy has reverse versioned dependencies to it. This needs to be kept until after the next LTS. - debian/control: Depend on lsb-base (>= 3.2-14) for status_of_proc() function. - debian/initscripts/etc/init.d/checkfs.sh: Don't depend on hwclockfirst which Ubuntu does not have. - debian/initscripts/etc/init.d/mountkernfs.sh: Always mount devpts, and do not touch /dev/ptmx (which is already managed by udev). - debian/initscripts/etc/init.d/mountkernfs.sh: mount fusectl if it is available - debian/initscripts/etc/init.d/mountkernfs.sh: mount securityfs if it is available. This allows for easier AppArmor confinement of applications early in the boot process. LP: #399954 - debian/initscripts/etc/init.d/mountkernfs.sh: mount debugfs if it is available. - debian/initscripts/etc/init.d/ondemand: Sleep for 60 seconds, then set CPU Frequency Scaling governor to "ondemand". LP: #341573. - debian/initscripts/etc/init.d/umountfs: Don't unmount filesystems that precede root or use force for some mountpoints. - debian/initscripts/etc/network/if-up.d/mountnfs: Rename ifstate file to /var/run/network/ifstate - ./debian/initscripts/lib/init/usplash-fsck-functions.sh: Use blkid, vol_id is gone. - debian/initscripts.{pre,postinst}: waitnfs.sh -> mountnfs.sh renaming transition. This needs to be kept until after the next LTS. * debian/sysv-rc/sbin/update-rc.d: Dropped support for "multiuser" command-line option. * debian/rules: Compat symlink from /usr/bin/service to /usr/sbin/service * debian/initscripts.postinst: Transition from bootlogs.sh to bootlogs * debian/sysv-rc.postinst: Don't try and use insserv by default, though everything's in place for you to try if you like. It can be activated with: USEINSSERV=yes dpkg-reconfigure sysv-rc -- Scott James Remnant Mon, 07 Sep 2009 19:56:53 +0100 sysvinit (2.87dsf-4) unstable; urgency=low * Send all output from the sysv-rc postinst to stderr, to make sure we do not confuse debconf. * Fix sysv-rc postinst to not fail when insserv report more than one error (Closes: #545205) -- Petter Reinholdtsen Sat, 05 Sep 2009 22:23:38 +0200 sysvinit (2.87dsf-3) unstable; urgency=low [ Petter Reinholdtsen ] * Drop execution of files in /etc/rc.boot from sysv-rc. This feature have been obsolete since before 1999. Remove the rc.boot(5) manual page from the source as well. * Make init.d/rc.local depend on $all to get it to start later in the boot sequence (Closes: #539084). * Rewrite message from update-rc.d to make it more obvious that both start and stop symlinks are taken into account (Closes: #519553). * Rewrite /etc/rcS.d/README and /etc/rc[2-5].d/README to explain how to disable a service at a given runlevel with the dependency based boot sequencing. Remove the list of well known sequence numbers in rcS.d/ that is no longer valid with dependency based boot sequencing. * Make sysv-rc Breaks: initscripts (<< 2.86.ds1-63) to make sure scripts working with makefile style concurrent booting is installed. Not using dependency to avoid circular dependency between initscripts and sysv-rc. * Move the code to migrate to dependency based boot sequencing during upgrades from the insserv package to the sysv-rc package. Depend on insserv (>> 1.12.0-10) for this. Let initscripts depend on sysv-rc | file-rc to make sure they are installed first. Migration is a one-way process, enabled after a critical debconf question during upgrades when it is safe to do so (Closes: #540546, #541041, 541604). Checks previously done by update-bootsystem-insserv are now only done once in sysv-rc postinst (Closes: #538934). Dependency based boot sequencing is now the default. This change make it possible to remove both sysv-rc and insserv (Closes: #538959) if other packages want to take over the boot sequencing resposibility. * Rewrite initscripts postinst to always use the update-rc.d script instead of the legacy updatercd() function which was used as a speed optimization no longer relevant when dependency based boot sequencing is the default. [ Kel Modderman ] * Migrate from dpatch to quilt for patch management: - build-depend on quilt (>= 0.40) - provide patch and unpatch targets in debian/rules. use custom patch targets to allow for separate debian/patches and debian/startpar/patches patch series - keep .dpatch file extenstion to make checking changes easier - add debian/README.source to describe patch system we use * Purge debian/patches/12_doc_lastb.dpatch and debian/patches/68_init_quiet.dpatch, they were never applied and wrong. * Update patch header for all remaining patches. * Call dpkg-shlibdeps debian/startpar/startpar for sysvinit-utils package and not sysvinit, startpar moved in revision 2.86.ds1-62. * Remove checkdir, checkroot and buildfromsvn targets from debian/rules. The latter is unused by current maintainers and the former can be replaced with dh_testdir and dh_testroot instead. * Fix reject hunk of debian/patches/70_compiler_warnings.dpatch to fix another compile warning. * Make sure update-rc.d compares command line parameters for start/stop runlevel configuration with the Default-Start and Default-Stop values in LSB info comment of script and warns if there are differences. * Update sysv-rc debconf templates with text which help explain dependency based boot to end users, and provide sound advice for people who encounter problems which prevent the migration. * Update inittab.kfreebsd-gnu: On GNU/kFreeBSD the serial devices have change from /dev/cuuaX to /dev/ttydX in kernel 6.0 which is minumum kernel currently supported in Debian. (Closes: #544555) * Make sure sysv-rc/etc/init.d/rc checks insserv has reordered boot system by checking for /etc/init.d/.depend.* when CONCURRENCY=shell too. (Closes: #544565) [ Petter Reinholdtsen ] * Adjust init.d/bootlogd dependencies to start before hostname, procps, pcmcia, hwclock, hwclockfirst, hibernate-clean and hdparm, to get the bootlogger started earlier in the boot (Closes: #538936). * Extend the update-rc.d(8) manual page to document the new behaviour. Do not install translated update-rc.d manual pages until they are updated to reflect this. * Use versioned conflict on chkconfig (<< 11.0-79.1-2), now that it dropped the service command (Closes: #541727). * Drop unneeded dependency rmnologin from init.d/stop-bootlogd, and correct $remote_fs dependency to $local_fs, as /usr/ is not aused. * Drop unneeded dependency on udev for init.d/bootlogs, and add ldm and sdm to list of display managers to start after to get the complete list. * Extend boot order migration check to reject migration if init.d scripts from removed but not purged packages are present. * Add $syslog as a dependency for init.d/skeleton, as it should be used in the normal case. * Change init.d/urandom dependency from $local_fs to $remote_fs, as it uses /usr/bin/find to handle locally increased pool size (Closes: #543294). * Drop initscripts conflict on insserv (<< 1.09.0-12), now that sysv-rc depend on insserv (>> 1.12.0-10). * Drop initscripts conflict on udev (<< 0.080-1), which was before the current oldstable was released. * Drop initscripts conflict on usplash (<< 0.5.8-2), which was before the current stable was released. * Remove code in init.d/killprocs to restart /sbin/update, as it is only useful for kernels up to linux 2.2, which is no longer supported (Closes: #544249). Thanks to Marco d'Itri for the tip. * Update Standards-Version from 3.8.2 to 3.8.3. No changes needed. * Add code in initscripts.postrm to remove rc settings for init.d scripts on removal to follow policy and keep lintian happy, even though removing initscripts will leave the system unbootable. Update lintian overrides to reflect this. * Implement status argument to init.d/bootlogs, init.d/checkroot.sh, init.d/hostname.sh, init.d/rmnologin and init.d/urandom. -- Petter Reinholdtsen Sat, 05 Sep 2009 11:52:51 +0200 sysvinit (2.87dsf-2) unstable; urgency=low [ Petter Reinholdtsen ] * Start generating MD5 sum files using dh_md5sum, build-depend on debhelper for this. Use compat level 1 to get it to process debian/tmp/. * Drop the stop calls for K11mountoverflowtmp in runlevels 0 and 6. The umountfs script will take care of that task (Closes: 526733). * Remove setting of unused makefile variable LIBC6 from rules. * Move copyright, preinst, postinst and postrm files for initscripts and sysv-rc to debian/ to make the build system closer to other source packages. * Add the sysv-rc saveconfig script to /usr/share/doc/sysv-rc/ to provide an example. * Let sysv-rc depend on insserv (>= 1.12.0-10) to activate dependency based boot sequencing by default (Closes: #472587). [ Kel Modderman ] * Allow forcefsck on kernel cmdline to have same effect as touching /forcefsck in checkfs.sh and checkroot.sh. (Closes: #529498) * Also allow fastboot on kernel cmdline to have same effect as touching /fastboot in checkfs.sh and checkroot.sh. * Do not use brace expansion in debian/rules and remove need for setting SHELL to /bin/bash. -- Petter Reinholdtsen Mon, 27 Jul 2009 21:12:27 +0200 sysvinit (2.87dsf-1) unstable; urgency=low * New upstream release. - Update patch 10_doc_manuals to drop the parts now included upstream. - Drop patch 11_doc_mountpoint now included upstream. - Drop patch 13_doc_telinit now included upstream. - Update patch 14_doc_fsf_addr to drop the parts now included upstream. - Drop patch 15_doc_pidof now included upstream. - Drop patch 16_doc_runlevel now included upstream. - Drop patch 17_doc_halt now included upstream. - Drop patch 25_last_sanify now included upstream. - Drop patch 26_last_ipv6 now included upstream. - Drop patch 27_last_usageopts now included upstream. - Drop patch 28_last_full-time now included upstream. - Drop patch 30_strip now included upstream. - Drop patch 31_build_warnings now included upstream. - Drop patch 40_selinux now included upstream. - Drop patch 41_utmp_64bit now included upstream. - Drop patch 42_utmpdump_retval now included upstream. - Drop patch 45_pidof_symlink now included upstream. - Drop patch 47_pidof_chroot now included upstream. - Drop patch 50_bootlogd_exitcode now included upstream. - Drop patch 51_bootlogd_syncalot now included upstream. - Drop patch 52_bootlogd_createlogfile now included upstream. - Drop patch 53_bootlogd_ttyB now included upstream. - Drop patch 60_init_race now included upstream. - Drop patch 61_init_msg now included upstream. - Drop patch 63_init_longer_procname now included upstream. - Drop patch 64_init_reexec_env now included upstream. - Drop patch 64_init_set_PATH now included upstream. - Drop patch 65_init_u_in_06 now included upstream. - Drop patch 66_init_emerg_tty now included upstream. - Drop patch 67_init_hddown now included upstream. - Drop patch 69_init_waiting now included upstream. - Drop patch 70_init_consoleopen now included upstream. - Drop patch 70_wall_ttyname now included upstream. - Drop patch 71_wall_hostname now included upstream. - Drop patch 80_killall_pidof now included upstream. - Drop patch 80_killall_sched now included upstream. - Drop patch 81_killall_avoid_init now included upstream. - Drop patch 82_killall_exclude_pids now included upstream. - Drop patch 82_killall_retval now included upstream. - Drop patch 83_killall_manref now included upstream. - Drop patch 84_killall_fuse now included upstream. - Drop patch 85_killall_safecwd now included upstream. - Drop patch 90_shutdown_H now included upstream. - Drop patch 92_sata-hddown now included upstream. - Drop patch 93_sulogin_fallback now included upstream. - Drop patch 95_halt-name now included upstream. * Modify shutdown(8) manual page to make it more clear when -c work (Closes: #374038). Based on text proposal from Dan Jacobson. * New patch 50_bootlogd_devsubdir to change bootlogd to recursively search /dev/ for the correct terminal device (Closes: #376406). * New patches 60_init_selinux_ifdef and 70_compiler_warnings to get rid of compiler warnings. * Rewrite rules to unpatch after the 'make clean' to get rid of binaries depending on debian patches. -- Petter Reinholdtsen Sat, 25 Jul 2009 16:44:55 +0200 sysvinit (2.86.ds1-66) unstable; urgency=low [ Petter Reinholdtsen ] * Replace Ó with \['O] and Á with \['A] in spanish update-rc.d(8) after looking up the correct string in groff_man(7), to avoid lintian warning. * Move bootlogd to the sysvinit-utils package, as it is useful also without the sysvinit init program. Make sysvinit-utils replace sysvinit (<= 2.86.ds1-65) to handle this. * Clean up control file, dropping replaces and conflicts on sysvinit and file-rc packages before oldstable: sysvinit (<< 2.85-1), sysv-rc (<< 2.86.ds1-1.2), sysvinit (<< 2.86.ds1-12) and file-rc (>> 0.7.0) (Closes: #509449). * New patch 54_bootlogd_findptyfail making sure bootlogd findpty() returns an error value when it fails to find a usable pty (Closes: #492796). Patch from Rob Leslie. * New patch 96_shutdown_acctoff making sure to call accton with the argument off during shutdown to stop accounting (Closes: #536574). * Modify LSB header of init.d/bootlogd to depend on $all when starting, to get it to start later in the boot sequence (Closes: #531198. Patch from Vincent Crevot. * Modify LSB header of init.d/bootlogd to start earlier when dependency based boot sequencing is enabled, by stating that it should start before keymap and keyboard-setup. * Make sure more verbose temp cleaning always calls log_end_msg after log_begin_msg (might solve #534713). * New patch 97_init_starttest solving problem reported to 2003-03-10. * Change init.d/bootmisc.sh to not set pseudo-terminal access permissions when udev is active. Leave that to udev, the same way it is left to devfs. * Correct boot dependency, move hostname dependency from bootmisc.sh to bootlogs. [ Kel Modderman ] * Remove debian/startpar/README, it contains outdated information about the origin of startpar upstream. * Update startpar to version 0.53.1 upstream. Add Debian quilt patch series to ./debian/startpar/patches, while they wait for inclusion upstream. * Patch startpar makeboot.c to allow a much higher amount of loops when calculating dependecies from make files. * Modify all copyright blurbs which refer to the version-less symlink /usr/share/common-licenses/GPL to point to the versioned GPL-2 license. -- Petter Reinholdtsen Fri, 24 Jul 2009 10:51:50 +0200 sysvinit (2.86.ds1-65) unstable; urgency=low [ Kel Modderman ] * Patch debian/startpar/startpar.c to enable workaround for missing /dev/pts in early runlevel S when using CONCURRENCY=startpar. * Modify debian/patches/85_killall_safecwd.dpatch to make sure /proc is CWD when killall5 is called as pidof as well. (Closes: #536543) -- Petter Reinholdtsen Sat, 11 Jul 2009 19:58:29 +0200 sysvinit (2.86.ds1-64) unstable; urgency=low [ Petter Reinholdtsen ] * Make sure only noswap kernel option disable swap (Closes: #523346). Patch from Michael Tokarev. * Do not rotate /var/log/dmesg if the file is not present (Closes: #533047). Patch from Aaro Koskinen. * Split init.d/bootmisc.sh in two, one part that need to run very early, and another (bootlogs) which can be executed later, to make it possible to postpone some work until after gdm/kdm/xdm is started. Based on patch from Scott James Remnant and Ubuntu. * Add improved progress bar during fsck when usplash is used, based on patch from Martin Pitt and Ubuntu. Modified Ubuntu patch to keep the generic splash support when usplash is not used. * Avoid bashism in service(8) (Closes: #535883). * New patch 85_killall_safecwd to chdir to /proc before stopping and killing processes, to avoid deadlock if / is a fuse file system. Patch from Goswin von Brederlow, fixing part of 476698. The rest of the issues reported in #476698 should be handled using omitpids (Closes: #476698). * New patch 42_utmpdump_retval fixing unchecked return value from malloc(). Patch from Christian 'Dr. Disk' Hechelmann and Fedora. * New patch 46_pidof_symlinkman to improve pidof manual page regarding its handling of symlinks. Patch from Bill Nottingham and Fedora. * New patch 94_fstab-decode adding helper program fstab-decode to sysvinit-utils. Source from the initscripts package in Fedora. * Rewrite umountfs and umountnfs.sh to use fstab-decode, to handle mount points with space in their names (Closes: #415482). * Reduce initscripts dependency on e2fsprogs to recomments and drop the versioned relation, as the version needed (1.32+1.33-WIP-2003.04.14-1) was included in a version before oldstable (Closes: #379340). * Document in rcS(5) how RAMRUN and RAMLOCK affect packages creating directories in /var/run and /var/lock (Closes: #422257). * Drop Miquel van Smoorenburg as uploader. He have not been active since 2004. * New patch 17_doc_halt changing halt(8) to make it clear that sync might happen even when -n is used. Patch from Bill Nottingham and Fedora. * New patch 47_pidof_chroot adding -c option to pidof, for only checking processes with the same file system root. Patch by Thomas Woerner and Fedora. * New patch 70_init_consoleopen to give missing console some time to show up. Patch from Bill Nottingham and Fedora. * New patch 95_halt-name fixing halt/reboot to work properly when used as login shells. Dale R. Worley and Fedora. * Modify 40_selinux patch to avoid aborting if a SE policy is already loaded in the initrd. Patch from Bill Nottingham and Fedora. * Use set -e in initscripts.preinst to exit on errors and get rid of a lintian error. * Change symlink from /bin/pidof to /sbin/killall5 from relative to absolute, to get rid of lintian message. * New patch 28_last_full-time to add a new -F option to last. Patch from Olaf Dabrunz and SuSe. * Fix typos in rcS(5) (Closes: #495925). Patch from Michael Biebl. * Make sourcing of /etc/default/rcS conditional in init.d/rc, to get rid of lintian error. * Change LSB header of init.d/rc.local, to depend on $syslog too, to avoid starting local applications too early. * Impove initscripts package description (Closes: #535557). Based on patch from Justin B Rye. * Add some lintian overrides to hide issues that are intentional. -- Petter Reinholdtsen Fri, 10 Jul 2009 09:16:04 +0200 sysvinit (2.86.ds1-63) unstable; urgency=low [ Kel Modderman ] * Patch startpar to add compat define for posix_fadvise() when on platform such as kfreebsd which does not support that. Thanks to Petr Salinger for the patch. (Closes: #534337) * Patch startpar to add compat define for O_DIRECT to fix ftbfs on hurd. Thanks Samuel Thibault for the patch. (Closes: #534471) [ Petter Reinholdtsen ] * Make temp cleaning more verbose (Closes: #534609). * Use X-Interactive flag in LSB headers of those scripts that should run on their own, based on the current content of insserv.conf. Dropped interactive flag from hostname.sh, mountkernfs.sh and mountdevsubfs.sh, based on testing confirming that the fix in #457896 made them obsolete. * Make sure kfreebsd also get /sys in the initscripts package (Closes: #525787). * Add new co-maintainer Kel Modderman as uploader. * Solve charset encoding issues with the french update-rc.d manual page (Closes: #499863). * Add 'status' argument to init.d/bootlogd based on patch from Scott James Remnant and Ubuntu. * Fix computing of runlevel in init.d/rc by allowing A-Z in init scripts names (like NetworkManager). Patch from Loic Minier and Ubuntu. * Add status argument support to init.d/skeleton. * Update Standards-Version from 3.8.1 to 3.8.2. No changes needed. -- Petter Reinholdtsen Mon, 29 Jun 2009 22:11:17 +0200 sysvinit (2.86.ds1-62) unstable; urgency=low [ Kel Modderman ] * Add missing semi-colon in LSB header of init.d/urandom (Closes: #501724). * Force C locale for df command used in init.d/mountoverflowtmp. (Closes: #510912) * Update startpar source to upstream 0.52 (from 0.50) and apply debian compatibility patch (sent upstream). Also workaround /dev/pts not being mounted early in runlevel S by having startpar use an own version of getpt(2) system call. (Closes: #457896, #484883) * Enable CONCURRENCY=makefile mode in debian/sysv-rc/etc/init.d/rc. This mode uses startpar and the /etc/init.d/.depend.* makefile-like information created by insserv to calculate boot script execution order. The splash API is not supported in this mode of boot. This mode of boot is considered very experimental at this time. * Allow startpar using concurrency modes to operate in runlevel S, now that startpar can manage to work properly in absence of /dev/pts. * Use uscan dversionmangle option to remove .ds\d+ string from modifed orig.tar.gz. This fixes the debian-watch-file-should-mangle-version lintian warning. Patch taken from diff on LP: #312764. * Add comment to debian/sysv-rc/etc/init.d/rc about debug=echo, it should never be left uncommented for a real boot process and should only be used for interactive debugging. (Closes: #510455) * Do not mount usbfs any more, it was deprecated long ago. Applications should all use /dev/bus/usb, which can be managed more flexibly (assign permissions with udev, and the like). Thanks Martin Pitt. (Closes: #483392, #422940, #360165, #471101) * Add Homepage field to debian/control. * Add interface for disabling system init script start links with update-rc.d, and enabling them again. (Closes: #67095) * When update-rc.d in "start|stop"-mode is invoked without the final dot, script warnings are displayed just before the "usage" message is shown. Check that last argument to start|stop command is a period earlier. Thanks to Patrick . (Closes: #512003) * Use -delete option of find(1) instead of piping through xargs in debian/initscripts/lib/init/bootclean.sh. (Closes: #316468, #461103) * Make init.d/rc simpler by dropping support for sourcing .sh files after the policy finally changed in 3.8.1. Update to Standards version 3.8.1. (Closes: #339955, #519520) * Allow initscripts postinst maintainer script to not fail when attempting to mkdir /dev/pts and /dev/shm when running in a fakechroot environment. This is done by checking for FAKECHROOT env variable before bailing out. Patch thanks to Daniel Kahn Gillmor. (Closes: #504877) * Update debian/NOTES to reflect current affairs. [ Petter Reinholdtsen ] * Move the startpar binary to a more proper location, from sysvinit to sysvinit-utils. * Comment out the code disabling fsck when running on battery. It need changes in fsck to work properly (Closes: #526398). This Reopens #326647. * Add a /usr/sbin/service command (Closes: #534300). Modified the manual page based on ideas from the sysvconfig package. Thanks to Steve Langasek and Ubuntu. Add conflict with sysvconfig and chkconfig providing the same program. * Improve init.d/umountfs umount ordering code to avoid being confused while still solving #391673 (Closes: #529805). Patch from Tim Phipps. * Make sysv-rc depend on a version of sysvinit-utils with a properly working startpar, in case concurrent booting is enabled. * Drop shell style concurrent booting, and make CONCURRENCY=shell behave like CONCURRENTY=startpar, as startpar concurrency now work properly. -- Petter Reinholdtsen Tue, 23 Jun 2009 18:18:53 +0200 sysvinit (2.86.ds1-61ubuntu16) karmic; urgency=low * ./debian/initscripts/lib/init/usplash-fsck-functions.sh: Use blkid, vol_id is gone. -- Martin Pitt Fri, 07 Aug 2009 11:22:21 +0100 sysvinit (2.86.ds1-61ubuntu15) karmic; urgency=low * debian/initscripts/etc/init.d/mountkernfs.sh: mount debugfs if it is available. -- Scott James Remnant Mon, 20 Jul 2009 13:18:35 +0100 sysvinit (2.86.ds1-61ubuntu14) karmic; urgency=low * debian/initscripts/etc/init.d/mountkernfs.sh: mount securityfs if it is available. This allows for easier AppArmor confinement of applications started early in the boot process. LP: #399954 -- Jamie Strandboge Thu, 16 Jul 2009 12:52:49 -0500 sysvinit (2.86.ds1-61ubuntu13) karmic; urgency=low * debian/initscripts/lib/init/bootclean.sh: announce execution via log_begin_msg so time-consuming clean-ups have an obvious source, and so that VERBOSE=yes log_action_begin_msg calls have context (debian bug 534609). -- Kees Cook Thu, 25 Jun 2009 11:08:20 -0700 sysvinit (2.86.ds1-61ubuntu12) karmic; urgency=low * debian/patches/94_service.dpatch: call the init script directly, without using invoke-rc.d, LP: #390706 -- Dustin Kirkland Mon, 22 Jun 2009 10:48:09 -0500 sysvinit (2.86.ds1-61ubuntu11) jaunty; urgency=low * debian/initscripts/lib/init/mount-functions.sh: Correct syntax of modprobe quiet when the spufs module gets loaded. LP: #348717 -- Arnaud Jeansen Wed, 25 Mar 2009 23:49:06 +0100 sysvinit (2.86.ds1-61ubuntu10) jaunty; urgency=low * debian/initscripts/etc/init.d/ondemand: Put it into the background harder so it doesn't get killed when the rest of the rc scripts go away. -- Scott James Remnant Thu, 19 Mar 2009 15:31:37 +0000 sysvinit (2.86.ds1-61ubuntu9) jaunty; urgency=low * debian/initscripts/etc/init.d/ondemand: Sleep for 60 seconds, then set CPU Frequency Scaling governor to "ondemand". LP: #341573. -- Scott James Remnant Wed, 18 Mar 2009 11:27:23 +0000 sysvinit (2.86.ds1-61ubuntu8) jaunty; urgency=low * debian/initscripts/etc/init.d/mountkernfs.sh: Mount the fusectl filesystem on boot, now it's a built-in -- Scott James Remnant Thu, 05 Mar 2009 17:33:40 +0000 sysvinit (2.86.ds1-61ubuntu7) jaunty; urgency=low * Add versioned Conflicts/Replaces against chkconfig (LP: #336100) -- Daniel T Chen Tue, 03 Mar 2009 23:08:28 -0500 sysvinit (2.86.ds1-61ubuntu6) jaunty; urgency=low * debian/rules: install service.8 manpage to man8 rather than man1, LP: #275697 * debian/patches/94_service.dpatch: make the --status-all command useful by filtering unimplemented 'status' actions to stderr, and standardize the output to something more readable, LP: #289671 -- Dustin Kirkland Sat, 28 Feb 2009 13:17:18 -0600 sysvinit (2.86.ds1-61ubuntu5) jaunty; urgency=low * debian/initscripts: - etc/init.d/bootlogs.sh: separate out things from bootmisc.sh that aren't urgent to do before gdm. - etc/init.d/bootmisc.sh: remove from here, also remove /dev/pts handling since we use udev. - conffiles: Add new script - postinst: install new init script -- Scott James Remnant Fri, 20 Feb 2009 14:38:17 +0000 sysvinit (2.86.ds1-61ubuntu4) jaunty; urgency=low * debian/initscripts/etc/init.d/checkroot.sh: Drop hwclockfirst.sh from LSB header, since that init script is gone. -- Scott James Remnant Wed, 18 Feb 2009 16:50:25 +0000 sysvinit (2.86.ds1-61ubuntu3) jaunty; urgency=low * debian/initscripts/lib/init/usplash-fsck-functions.sh, debian/initscripts/etc/init.d/checkroot.sh: Support ext4, too. -- Martin Pitt Wed, 11 Feb 2009 14:11:25 +0100 sysvinit (2.86.ds1-61ubuntu2) jaunty; urgency=low * Avoid script warnings when update-rc.d invoked without final dot (LP: #312764) * Satisfy lintian debian-watch-file-should-mangle-version -- Patrick Kuijvenhoven Fri, 16 Jan 2009 17:02:21 +0100 sysvinit (2.86.ds1-61ubuntu1) jaunty; urgency=low * Merge from debian unstable, remaining changes: - Support Cell processor: + debian/initscripts/postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/initscripts/etc/init.d/mountkernfs.sh: Mount spufs if Cell processor is detected. + debian/initscripts/lib/init/mount-functions.sh: Modprobe spufs if not available. + debian/control: Add initscripts dependency 'passwd' for groupadd. (Forwarded to Debian #483399) - Use tmpfs mounts for /var/lock and /var/run: + debian/initscripts/share/default.rcS: Enable RAMRUN and RAMLOCK by default. + debian/initscripts/postinst: Enable RAMRUN and RAMLOCK in /etc/default/rcS on upgrades. This needs to be kept until the next LTS. + debian/initscripts/etc/init.d/mountkernfs.sh: Propagate files from the initramfs to our new /var/run, so that we can populate /var/run/sendsigs.omit from initramfs. - Different boot order: (to be checked if still required): + debian/initscripts/postinst: Change the rcS priorities of a bunch of init scripts. + Disable bootlogd, since it is handled by upstart in Ubuntu. + But make it support the "status" action. - Usplash fsck integration: + debian/initscripts/lib/init/usplash-fsck-functions.sh: Functions for reporting fsck progress in usplash. + debian/initscripts/etc/init.d/check{root,fs}.sh: Include usplash-fsck-functions.sh and use it if usplash is running. - debian/initscripts/etc/init.d/sendsigs: Always mount devpts, and do not touch /dev/ptmx (which is already managed by udev). - debian/initscripts/etc/init.d/checkroot.sh: If ACPI is available, load the ac module before checking the root filesystem, so that fsck can skip the check when running on battery. (LP #89752, forwarded to Debian #483394) - debian/initscripts/etc/init.d/mountkernfs.sh: Drop mounting of usbdevfs (/proc/bus/usb), it was deprecated long ago. (Forwarded to Debian #483392) - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/patches/94_service.dpatch: add "service" shell script and manpage - debian/initscripts/etc/init.d/mountall.sh: Set $LANG from /etc/default/locale, so that ntfs-3g and friends can get correct file name encodings. (LP #132357, forwarded to Debian #483396) - debian/initscripts/etc/init.d/umountroot: mkdir a few essential directories (/proc, /sys, /var/{run,lock}), right before mounting root r/o. It is a convenient (and one of the very few possible) place to ensure that the next boot will succeed. (Forwarded to Debian #483393) - debian/initscripts/preinst: Fix typo in eliminate_conffile() which broke the entire function. (Forwarded to Debian #483391) - debian/control: Do not make sysvinit essential, so that we can replace it with upstart. - debian/sysv-rc/sbin/update-rc.d: Support 'multiuser' argument for backwards compatibility. This is deprecated now, since Debian adopted a different strategy, and for getting in sync with Debian the runlevels should be specified manually. - debian/control: Previous name for sysvinit-utils was 'sysvutils' in Ubuntu, so Conflict/Replace/Provide it. Also create a dummy sysvutils package, since Hardy has reverse versioned dependencies to it. This needs to be kept until after the next LTS. - debian/initscripts/{pre,postinst}: waitnfs.sh -> mountnfs.sh renaming transition. This needs to be kept until after the next LTS. - debian/initscripts/preinst: Install new version of /etc/init.d/rc.local if unmodified. - debian/initscripts/etc/init.d/umountfs: Don't unmount filesystems that precede root or use force for some mountpoints. - debian/sysv-rc/etc/init.d/rc: fix computing of runlevel by allowing A-Z in init script names. -- Scott James Remnant Wed, 05 Nov 2008 07:29:32 +0000 sysvinit (2.86.ds1-61) unstable; urgency=low * Fix typo in rcS(5), proberly->properly (Closes: #484233). Thanks to Julien Danjou for noticing. * Fix typo in rcS(5), maually->manually (Closes: #493680). Thanks to Xr for noticing. * Modify runlevel detection code in invoke-rc.d to notice the difference between runlevels 0 and 6, and the boot runlevel, to make it possible to use invoke-rc.d during boot (Closes: 384509). * Make sure to call restorecon after mounting tmpfs file systems, to set SELinux permissions (Closes: #493679). Patch from Russell Coker. * Move responsibility of stopping the splash screen process from individual init.d scripts to init.d/rc. This make sure the progress calculation reflect reality, and that the splash screen is taken down in runlevel 1 (Closes: #431560) and that it stop before gdm and kdm (Closes: #422922, #489734). * Skip error message from checkfs.sh when / is read-only. Patch from Mirek Slugen (Closes: #492214). -- Petter Reinholdtsen Tue, 12 Aug 2008 16:07:50 +0200 sysvinit (2.86.ds1-60) unstable; urgency=low * Make bootmisc.sh depend on $remote_fs instead of $local_fs, to make sure it is executed after mountnfs-bootclean.sh to avoid cleaning up /var/run/ twice (Closes: #491059). * Drop support for experimental flag file /etc/update-rc.d-lsbparse. People should use insserv if they want the boot system sequencing to use the LSB headers. Patch from Kel Modderman. This fixes typo in update-rc.d, making sure it ignore the LSB Default-Start header. * Updated Standards-Version from 3.7.3 to 3.8.0. No changes needed. * Remove obsolete linda overrides. Linda is removed from Debian. -- Petter Reinholdtsen Fri, 18 Jul 2008 20:57:59 +0200 sysvinit (2.86.ds1-59ubuntu13) intrepid; urgency=low * Fix computing of runlevel in debian/sysv-rc/etc/init.d/rc by allowing A-Z in init scripts names; the 30NetworkManager script was launched twice, once as level 30N and once as part of the globbing of runlevel 30; LP: #283200. -- Loic Minier Tue, 14 Oct 2008 14:33:25 +0200 sysvinit (2.86.ds1-59ubuntu12) intrepid; urgency=low * debian/initscripts/etc/init.d/check{root,fs}.sh: Disable indeterminate progress bar pulsing. Usually it is fast enough, and if there is a real fsck going on, we already have textual feedback (which is less confusing than the progress bar jumping back and forth). Thanks to "Coucouf" for the patch. (LP: #264767) * debian/initscripts/lib/init/usplash-fsck-functions.sh: Do not allow cancelling fsck if state is "clean with errors". -- Martin Pitt Mon, 13 Oct 2008 11:24:41 +0200 sysvinit (2.86.ds1-59ubuntu11) intrepid; urgency=low * sendsigs: Don't call usplash_down anymore. This was a holdover from when usplash was being killed by this script. Now, usplash_down should be already running by this point, and if it isn't, there's no point in starting it (LP: #277058) -- Matt Zimmerman Thu, 02 Oct 2008 11:31:01 +0100 sysvinit (2.86.ds1-59ubuntu10) intrepid; urgency=low [ Dan Munckton ] * Try to modprobe spufs if it isn't already available (LP: #274854). * Update mountkernfs.sh to use five-parameter version of domount when mounting spufs (LP: #274858). -- Colin Watson Tue, 07 Oct 2008 12:13:08 +0100 sysvinit (2.86.ds1-59ubuntu9) intrepid; urgency=low * Restore lost changes from hardy, needed by Wubi (thanks, Agostino Russo and Evan Dandrea; LP: #151579): - Don't unmount filesystems that precede root. - Don't use force for some mountpoints in umountfs. -- Colin Watson Thu, 02 Oct 2008 11:25:20 +0100 sysvinit (2.86.ds1-59ubuntu8) intrepid; urgency=low * if-up.d/mountnfs: Replace /etc/network/run with /var/run/network (mentioned in LP #223759). * Prepend 'XS-Debian-' to Vcs headers. -- Soren Hansen Thu, 25 Sep 2008 14:24:33 +0200 sysvinit (2.86.ds1-59ubuntu7) intrepid; urgency=low * Restore mountkernfs.sh at S01, no migration code was included, so this is likely simply a typo or mis-merge. -- Scott James Remnant Wed, 24 Sep 2008 12:02:28 -0700 sysvinit (2.86.ds1-59ubuntu6) intrepid; urgency=low [ Dan Munckton ] * debian/initscripts/postinst: Keep going if mounting /spu fails (LP: #251593, #261490). -- Colin Watson Wed, 24 Sep 2008 14:50:04 +0100 sysvinit (2.86.ds1-59ubuntu5) intrepid; urgency=low * debian/initscripts/lib/init/usplash-fsck-functions.sh, get_fsck_status(): fsck -C recently started to report a fourth parameter (current device) which was not expected by the read shell command, causing abortion of the script due to a division by zero error. Now use "read pass cur max tail" to allow for arbitrary extra info in the fsck progress lines. (LP: #255563) -- Martin Pitt Wed, 03 Sep 2008 19:12:41 +0200 sysvinit (2.86.ds1-59ubuntu4) intrepid; urgency=low * debian/control: updated to mention that sysvinit-utils provides "service", added Conflicts/Replaces for other similar packages. * debian/control: update lsb-base to depend on 3.2-14 (LP: #259530). * debian/patches/00list: added 94_service.dpatch (LP: #259043). * debian/patches/94_service.dpatch: patch to add the service shell script to src/, and the manpage to man/. * src/service: imported and Debianized the Red Hat "service" shell script. * man/service.8: imported the Red Hat manpage for "service". -- Dustin Kirkland Wed, 20 Aug 2008 00:12:47 +0100 sysvinit (2.86.ds1-59ubuntu3) intrepid; urgency=low * debian/control: updated to depend on lsb-base (>=3.2.14), which has the status_of_proc() function. * debian/initscripts/etc/init.d/bootlogd: add the "status" action (LP: #). -- Dustin Kirkland Tue, 19 Aug 2008 15:28:26 +0100 sysvinit (2.86.ds1-59ubuntu2) intrepid; urgency=low * Since our last merge, /etc/init.d/rc.local was marked as a conffile. Detect if it's unmodified, and if so, install the new version without bothering the user with questions (LP: #246550) -- Soren Hansen Tue, 22 Jul 2008 15:59:40 +0200 sysvinit (2.86.ds1-59ubuntu1) intrepid; urgency=low * Merge with Debian unstable. Remaining Ubuntu changes: - Support Cell processor: + debian/initscripts/postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/initscripts/etc/init.d/mountkernfs.sh: Mount spufs if Cell processor is detected. + debian/control: Add initscripts dependency 'passwd' for groupadd. (Debian #483399) - Use tmpfs mounts for /var/lock and /var/run: + debian/initscripts/share/default.rcS: Enable RAMRUN and RAMLOCK by default. + debian/initscripts/postinst: Enable RAMRUN and RAMLOCK in /etc/default/rcS on upgrades. This needs to be kept until the next LTS. + debian/initscripts/etc/init.d/mountkernfs.sh: Propagate files from the initramfs to our new /var/run, so that we can populate /var/run/sendsigs.omit from initramfs. (Ubuntu specific policy, Debian does not want to use tmpfs by default) - Different boot order: + debian/initscripts/postinst: Change the rcS priorities of a bunch of init scripts. + Disable bootlogd, since it is handled by upstart in Ubuntu. - Usplash support: + debian/initscripts/etc/init.d/sendsigs: Call usplash_down on stop. - Usplash fsck integration: + debian/initscripts/lib/init/usplash-fsck-functions.sh: Functions for reporting fsck progress in usplash. + debian/initscripts/etc/init.d/check{root,fs}.sh: Include usplash-fsck-functions.sh and use it if usplash is running. - debian/initscripts/etc/init.d/sendsigs: Always mount devpts, and do not touch /dev/ptmx (which is already managed by udev). - debian/initscripts/etc/init.d/checkroot.sh: If ACPI is available, load the ac module before checking the root filesystem, so that fsck can skip the check when running on battery. (LP #89752, Debian #483394) - debian/initscripts/etc/init.d/mountkernfs.sh: Drop mounting of usbdevfs (/proc/bus/usb), it was deprecated long ago. (Debian #483392) - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/control: Do not make sysvinit essential, so that we can replace it with upstart. - debian/sysv-rc/sbin/update-rc.d: Support 'multiuser' argument for backwards compatibility. This is deprecated now, since Debian adopted a different strategy, and for getting in sync with Debian the runlevels should be specified manually. - debian/control: Previous name for sysvinit-utils was 'sysvutils' in Ubuntu, so Conflict/Replace/Provide it. Also create a dummy sysvutils package, since Hardy has reverse versioned dependencies to it. This needs to be kept until after the next LTS. - debian/initscripts/{pre,postinst}: waitnfs.sh -> mountnfs.sh renaming transition. This needs to be kept until after the next LTS. -- Martin Pitt Wed, 18 Jun 2008 11:57:12 +0200 sysvinit (2.86.ds1-59) unstable; urgency=low * Fix uninitialised previous_stop caused by typo in fix for bug #483172 (Closes: #484607). * Set $LANG from /etc/default/locale in mountall.sh, so that ntfs-3g and friends can get correct file name encodings. (Closes: #483396) -- Petter Reinholdtsen Fri, 6 Jun 2008 10:02:32 +0200 sysvinit (2.86.ds1-58) unstable; urgency=low * Optimize start symlinks as if they are stop symlinks for runlevels 0 and 6, to avoid problems with portmap during shutdown (Closes: #483172). * Repair eliminate_conffile() in initscripts preinst, making sure unchanged conffiles are properly handled (Closes: #483391). Patch from Martin Pitt and Ubuntu. * Make sure a few essential directories (/proc, /sys, /var/{run,lock}) is created in init.d/umountroot if missing, right before mounting root r/o. It is a convenient (and one of the very few possible) place to ensure that the next boot will succeed (Closes: #483393). Patch from Martin Pitt and Ubuntu. -- Petter Reinholdtsen Thu, 29 May 2008 20:10:17 +0200 sysvinit (2.86.ds1-57) unstable; urgency=low * Remove another bashism in init.d/rc blocking startpar concurrency (Closes: #481770). * Fix wake on lan issue introduced with freebsd patch in version 2.86.ds1-4 (Closes: #405870). Patch from Lucas Nussbaum. * Convert files debian/patches/12_doc_lastb.dpatch, debian/sysv-rc/man8/es/update-rc.d.8, debian/sysv-rc/man8/fr/update-rc.d.8, debian/sysv-rc/man8/ja/update-rc.d.8 and debian/sysv-rc/etc/init.d/rc to UTF-8 (Closes: #478657). Patch from Ben Finney. * New patch 84_killall_fuse.dpatch to avoid shutdown problems with user space file systems, by not stat()-ing files when killing processes during shutdown (Closes: #476695). Patch from Goswin von Brederlow. * Remove special case handling of splash screens in sendsigs. The usplash and splashy packages are expected to use the omitpid feature from now on. -- Petter Reinholdtsen Tue, 20 May 2008 09:23:13 +0200 sysvinit (2.86.ds1-56ubuntu3) intrepid; urgency=low * Let sysvinit-utils only replace the old sysvutils, do not conflict to it. This is a less clean way to do the transition than with a proper Conflicts/Replaces, but the latter induces a Pre-Depends/Conflicts loop which is unresolvable. (LP: #237276) -- Martin Pitt Thu, 05 Jun 2008 08:44:44 +0200 sysvinit (2.86.ds1-56ubuntu2) intrepid; urgency=low * debian/control: Use versioned Conflicts: of sysvinit-utils not unconfuse apt during upgrades. -- Martin Pitt Tue, 03 Jun 2008 22:10:02 +0200 sysvinit (2.86.ds1-56ubuntu1) intrepid; urgency=low * Merge with Debian unstable (first time since Dapper!). Debian adopted most of our changes, sometimes with slight modifications. Adopt to the Debian structure as far as possible to minimize the delta. Remaining changes: - Support Cell processor: + debian/initscripts/postinst: Create spu system group and /spu mount point if we are running on a Cell processor. + debian/initscripts/etc/init.d/mountkernfs.sh: Mount spufs if Cell processor is detected. + debian/control: Add initscripts dependency 'passwd' for groupadd. (Forwarded to Debian #483399) - Use tmpfs mounts for /var/lock and /var/run: + debian/initscripts/share/default.rcS: Enable RAMRUN and RAMLOCK by default. + debian/initscripts/postinst: Enable RAMRUN and RAMLOCK in /etc/default/rcS on upgrades. This needs to be kept until the next LTS. + debian/initscripts/etc/init.d/mountkernfs.sh: Propagate files from the initramfs to our new /var/run, so that we can populate /var/run/sendsigs.omit from initramfs. - Different boot order: (to be checked if still required): + debian/initscripts/postinst: Change the rcS priorities of a bunch of init scripts. + Disable bootlogd, since it is handled by upstart in Ubuntu. - Usplash support: + debian/initscripts/etc/init.d/sendsigs: Call usplash_down on stop. (This should go away and get integrated into the existing splash API.) - Usplash fsck integration: + debian/initscripts/lib/init/usplash-fsck-functions.sh: Functions for reporting fsck progress in usplash. + debian/initscripts/etc/init.d/check{root,fs}.sh: Include usplash-fsck-functions.sh and use it if usplash is running. - debian/initscripts/etc/init.d/sendsigs: Always mount devpts, and do not touch /dev/ptmx (which is already managed by udev). - debian/initscripts/etc/init.d/checkroot.sh: If ACPI is available, load the ac module before checking the root filesystem, so that fsck can skip the check when running on battery. (LP #89752, forwarded to Debian #483394) - debian/initscripts/etc/init.d/mountkernfs.sh: Drop mounting of usbdevfs (/proc/bus/usb), it was deprecated long ago. (Forwarded to Debian #483392) - debian/patches/91_sulogin_lockedpw.dpatch: Disable "root account is locked" warning, since this is the default in Ubuntu. Document this in sulogin.8. - debian/initscripts/etc/init.d/mountall.sh: Set $LANG from /etc/default/locale, so that ntfs-3g and friends can get correct file name encodings. (LP #132357, forwarded to Debian #483396) - debian/initscripts/etc/init.d/umountroot: mkdir a few essential directories (/proc, /sys, /var/{run,lock}), right before mounting root r/o. It is a convenient (and one of the very few possible) place to ensure that the next boot will succeed. (Forwarded to Debian #483393) - debian/initscripts/preinst: Fix typo in eliminate_conffile() which broke the entire function. (Forwarded to Debian #483391) - debian/control: Do not make sysvinit essential, so that we can replace it with upstart. - debian/sysv-rc/sbin/update-rc.d: Support 'multiuser' argument for backwards compatibility. This is deprecated now, since Debian adopted a different strategy, and for getting in sync with Debian the runlevels should be specified manually. - debian/control: Previous name for sysvinit-utils was 'sysvutils' in Ubuntu, so Conflict/Replace/Provide it. Also create a dummy sysvutils package, since Hardy has reverse versioned dependencies to it. This needs to be kept until after the next LTS. - debian/initscripts/{pre,postinst}: waitnfs.sh -> mountnfs.sh renaming transition. This needs to be kept until after the next LTS. * This version from Debian now kills processes using remote file systems in a proper way. (LP: #42121) -- Martin Pitt Wed, 28 May 2008 17:58:44 +0200 sysvinit (2.86.ds1-56) unstable; urgency=low * Avoid bashism in init.d/rc (Closes: #473694). -- Petter Reinholdtsen Sat, 12 Apr 2008 09:32:18 +0200 sysvinit (2.86.ds1-55) unstable; urgency=low * Use $(MAKE) instead of make in debian/rules, to make it easier to use make -j. * Adjust debian/rules to support cross building (Closes: #466148). * Change init.d/rc to disable startpar concurrency if insserv isn't enabled and if startpar fail to run. * Adjust init.d script dependencies for bootmisc.sh, as it can run before $remote_fs and need to run after both udev and hostname. * Change update-rc.d to warn about scripts missing LSB style dependency information. * Updated all patches to make sure they apply without offset and fuzzying to the current source. -- Petter Reinholdtsen Wed, 26 Mar 2008 10:03:05 +0100 sysvinit (2.86.ds1-54) unstable; urgency=low * Fix shell quoting typo in conffile removal code (Closes: #464869). * Make sure to only check for conffile removal on upgrades. * Improve displayed text when removing unused obsolete conffiles. * Update version trigger for the /etc/init.d/bootclean to this version, to make sure those left with the file because of bug #464869 get it removed on this upgrade. * Patch startpar to use the correct path to the rcX.d/ directories in "make mode". * Update LSB dependency for mountnfs.sh to make sure it is started after portmap. * Make sure init.d/sendsigs work even when /proc/cmdline is missing as it is on vserver clients (Closes: #468473). -- Petter Reinholdtsen Sun, 02 Mar 2008 00:32:55 +0100 sysvinit (2.86.ds1-53) unstable; urgency=low * Correct file name in output when removing conffiles, to use the correct file ending .dpkg-old, not .dpkg-bak. * Fix typo in omitpid handling in init.d/sendsigs (Closes: #462354) * Change progress bar calculations to not divide by zero when there are no progress steps to be taken (Closes: #463504). * Fix quoting typo in initscripts.preinst (Closes: #463551) -- Petter Reinholdtsen Fri, 01 Feb 2008 19:37:42 +0100 sysvinit (2.86.ds1-52) unstable; urgency=low * Rewrite conffile removal code in initscripts.preinst to use the original *.dpkg-old and not the *.dpkg-bak introduced by mistake when changing to use dpkg-query. * New patch 83_killall_manref to add references between killall5 and pidof, and mention pidof in killall5(8) (Closes: #461160). * Improve documentation for the CONCURRENCY option in /etc/init.d/rc (Closes: #408491). * New patch 93_sulogin_fallback to let sulogin fall back to the staticly linked /bin/sash if both roots shell and /bin/sh fail to execute. Add suggests for sysvinit-utils to sah, for those that want this extra level of redundancy (Closes: #43317). -- Petter Reinholdtsen Sun, 20 Jan 2008 15:27:16 +0100 sysvinit (2.86.ds1-51) unstable; urgency=low * Remove debug code left by mistake in if-up.d/mountnfs when fixing bugs #460463 and 461011 (Closes: #461406). -- Petter Reinholdtsen Fri, 18 Jan 2008 12:10:56 +0100 sysvinit (2.86.ds1-50) unstable; urgency=low * Rewrite conffile removal code in initscripts.preinst to use dpkg- query instead of reading /var/lib/dpkg/status directly. * Do not allow "make -C debian/startpar clean" to fail, it should work every time. * Handle both trailing space after interface names and multiple interfaces on one auto line in /etc/network/interfaces when checking if the last interface has been enabled for NFS mounting (Closes: #460463, 461011). -- Petter Reinholdtsen Thu, 17 Jan 2008 22:36:41 +0100 sysvinit (2.86.ds1-49) unstable; urgency=low * Handle trailing space after interface names in /etc/network/interfaces when checking if the last interface has been enabled for NFS mounting (Closes: #460463). * New patch 27_last_usageopts to document options -adi in last usage output (Closes: #415525). -- Petter Reinholdtsen Sun, 13 Jan 2008 10:19:22 +0100 sysvinit (2.86.ds1-48) unstable; urgency=low * Removed unused mountvirtfs as a dependecy provides for init.d/mountdevsubfs.sh, to avoid duplicate provides. * Removed hostname as a dependency for init.d/bootmisc.sh, as it is now a dependency of checkroot.sh and thus still will have a known order in the boot. * Removed stop dependencies in the LSB header of bootmisc.sh. Its stop operation is a no-op, and it is not run in any level to stop. * Document in stop-bootlogd-single why bootlogd has to be stopped in rcS.d/ for single user boots. * Specify that one is to read the init.d/bootlogd script in the stop-bootlogd* scripts. (Closes: #372676) * Drop libdevmapper as a dependency for init.d/checkfs.sh, as the init.d script was removed in devmapper version 2:1.02.24-1. Conflict initscripts with libdevmapper1.02.1 versions before that. * Drop modutils as a dependency for init.d/checkfs.sh, as the modutils package was removed 2007-07-04. * Drop $syslog as a dependency for init.d/rmnologin, as it seem to be redundant. * Extend waiting time of init.d/sendsigs from 0-5 seconds to 0-10 seconds, to give slow processes more time to shut down properly. * Extend init.d/sendsigs to sync before killing processes, and to detect and report as a failure if it had to use SIGKILL to terminate processes. Based on ideas from Gabor Gombas. * Drop lvm as optional depend for checkfs, mountall and umountfs, and conflict with insserv versions before 1.09.0-12 to make sure a version with the override file providing the same dependencies as reverse dependencies is used. * Extend sendsigs code to omit some pids during shutdown to also load pids from /lib/init/rw/sendsigs.omit and /lib/init/rw/sendsigs.omit.d/packagename, to make it easier for systems starting very early in the boot, or systems that need to modify the pid list at run time, to update their pid list (Closes: #459146). Based on patch from Kel Modderman. * Change init.d/bootlogd to not report failure when trying to stop an already stopped bootlogd. * Change init.d/killprocs to use the same optimization as sendsigs, to avoid having to wait 5 seconds if there is no more processes. * Document the way to list /sys/ in /etc/fstab in initscripts README.Debian (Closes: #401424). * Reduce stop dependency for mountoverflowtmp from $local_fs to umountfs, to allow it to stop later during shutdown, and to make it possible to make it part of the $local_fs dependencies. * Remove initscripts conflict on mdutils. mdutils was removed in woody. * Move optional start dependency on udev-mtab from checkfs to mountnfs, to better reflect the current ordering of these scripts. * Improve content of initscripts README.Debian, and document the new sendsigs omitpid interface there (Closes: #459425). Based on patch from Kel Modderman. * Updated the startpar source to version 0.50 from . * Optimized the startpar case of init.d/rc to only call the progress bar API once for each startpar invocation. * Drop redundant optional dependency on kdm, gdm and xdm for rmnologin, as it already depend on $all. -- Petter Reinholdtsen Sat, 12 Jan 2008 13:10:12 +0100 sysvinit (2.86.ds1-47) unstable; urgency=low * Added hostname as dependency and hdparm and bootlogd as optional dependencies for checkroot, to make sure the script are run before the root file system is checked when present. * Added libdevmapper, mtab and udev-mtab as optional dependencies for checkfs to make sure the script are run after the root is writable and before the other file system is checked. * Added lvm as optional stop dependency for umountfs, to make sure LVM is available when all non-root file systems are umounted. -- Petter Reinholdtsen Mon, 31 Dec 2007 12:18:42 +0100 sysvinit (2.86.ds1-46) unstable; urgency=low * Move from experimental to unstable. * Remove debug code from init.d/mountoverflowtmp that was included by mistake. * Reduce output from init.d/mountoverflowtmp when VERBOSE!=yes. * Add $all as a dependency for init.d/single, to make sure it is started last in runlevel 1. * Change runlevel setting in LSB header for init.d/rmnologin and init.d/stop-bootlogd to not start in runlevel 1 (single user). This reflect the current and correct setting specified in the postinst. * Remove redundant $local_fs dependency from init.d/bootmisc.sh, init.d/rc.local, init.d/rmnologin and init.d/skeleton * Move /lib/init/bootclean to /lib/init/bootclean.sh and source it instead of running it. -- Petter Reinholdtsen Sun, 30 Dec 2007 10:32:52 +0100 sysvinit (2.86.ds1-45) experimental; urgency=low * Replace log_daemon_msg() in init.d/rc with log_action_msg() to improve visual layout when parallel booting is enabled. * Avoid using startpar for rcS.d/. It does not work properly before ptys are available. Related to bug #457896. * Correct init.d/rc progress bar calculations for the startpar option, counting each script that is started in parallel too. * Patch startpar to not print exit codes for each subprocess, to reduce the noise during boot. * Remove usplash progress bar support from initscripts and use the API hook file provided by usplash version 0.5.8-2 instead. Add conflict on earlier versions of usplash. -- Petter Reinholdtsen Fri, 28 Dec 2007 10:32:16 +0100 sysvinit (2.86.ds1-44) experimental; urgency=low * Add debian/watch file pointing to ftp.cistron.nl. * Change init.d/mountnfs.sh dependencies to list nfs-common in should-start (Closes: #433359). * Change init.d/umountnfs.sh dependencies to list nfs-common in should-start too. * Mount a 1 MiB tmpfs on /tmp if /tmp is otherwise less than 1 MiB to make sure one can still log in when /tmp/ is too full (Closes: #430814). Based on patch from Ian Jackson and Ubuntu. * Rewrote ifup.d/mountnfs to wait for all 'auto' interfaces to be initialized before trying to mount network file systems (Closes: #386959, #390404, #418596, #419195, #426071, #428823, #432511, #432511, #432750, #433119, #434177). Based on patch from Phil Snowdon. -- Petter Reinholdtsen Thu, 27 Dec 2007 13:19:14 +0100 sysvinit (2.86.ds1-43) experimental; urgency=low * Fix typo in /etc/network/if-up.d/mountnfs fstab option parsing used to detect kerberos v5. (Closes: #416223) * Update sysv-rc documentation based on text and suggestions from Alessandro Vesely (Closes: #382410). * Modify rules to install /lib/init/bootclean with the execute flag set (Closes: 457847). -- Petter Reinholdtsen Wed, 26 Dec 2007 19:36:43 +0100 sysvinit (2.86.ds1-42) experimental; urgency=low * Change XS-Vcs-Svn to Vcs-Svn as the control flags are official now. * Add Vcs-Browser flag in debian/control, documenting the browsable source. * Change how init.d/rc call scripts, to make sure sourced scripts get the correct argument. * Reduce redundant code in init.d/rc, to make it easier to enable sourcing of *.sh scripts. It is still not possible to source scripts, as some of them use exit and terminate the boot. This is related to bug #339955. -- Petter Reinholdtsen Tue, 25 Dec 2007 20:56:44 +0100 sysvinit (2.86.ds1-41) experimental; urgency=low * Update standards-version from 3.7.2 to 3.7.3. No change needed. * Remove empty /lib/ directory from the sysvinit and sysvinit-utils packages. * Remove the empty /usr/share/man/man5/ from the sysv-rc package. * Remove the registration of init.d/modutils from initscripts/postinst, as the package is removed from Debian. -- Petter Reinholdtsen Mon, 24 Dec 2007 13:49:17 +0100 sysvinit (2.86.ds1-40) experimental; urgency=low [ Petter Reinholdtsen ] * Rewrite libata shutdown handling to use patch from Werner Fink at SuSe to handle each disk individually and automatically instead of guessing in the init.d script how to handle them collectively (Closes: #426224). This removes the HDDOWN variable from /etc/default/halt. * Improve usage information in update-rc.d by using the same notation as the one used in the manual page (Closes: #268713) * Implement noswap kernel boot option to stop automatic swap activation at boot time (Closes: #388525). Based on patch from Michael Prokop. * Rewrite init.d/rc to use shell features instead of calling sed (Closes: #406393). Patch from Ivan Baldo. * Fix typo in update-rc.d example code (Closes: #433378). * Fix minor typo in rc*.d/README files (Closes: #452384). * Make sure init.d/rc do not complain because the new progress bar API is unavailable (Closes: #457544). * New patch 26_last_ipv6 from Fedora to recognize more IPv6 addresses. * Extend the 68_init_quiet patch based on patch from Fedora to also suppress the "Switching to runlevel" message. This patch is currently disabled because the 'quiet' flag is removed by the kernel when init is called. * New patch 69_init_waiting from Fedora to make sure the init waiting status is preserved across re-exec. * New patch 41_utmp_64bit from Fedora to avoid writing past the utmp.ut_tv struct on 64 bit architectures. (Closes: #450543) * New patch 64_init_init_reexec_env from Fedora to fix typo. Now passes environment on to the new process when re-exec is used. -- Petter Reinholdtsen Sun, 23 Dec 2007 19:44:13 +0100 sysvinit (2.86.ds1-39) experimental; urgency=low [ Petter Reinholdtsen ] * Upload to experimental to get more feedback from testers. * Change checkfs.sh dependency info, make modutils an optional dependency as it is no longer installed by default. * Move /etc/init.d/bootclean to /lib/init/bootclean, as it is not an init.d script but a library. * Acknowledge NMU. (Closes: #433386) * Make /lib/init/vars.sh usable when 'set -e' is in effect. Patch from Ubuntu. * Rename 20_pidof.dpatch to 80_killall_pidof.dpatch, to group the killall5 patches together. * New patch 82_killall_exclude_pids.dpatch adding new option -o to killall5, to omit killing the pid given on the command line. Based on patch from Ubuntu. (Closes: #453042) * Use new killall5 -o option in init.d/sendsigs, reading pids to omit from /var/run/sendsigs.omit. This make it possible to list pids there if the process is required to umount the file systems during shutdown. Make initscripts depend on sysvinit-utils (>= 2.86.ds1-39) to make sure killall5 support the -o option. Based on patch from Ubuntu. * Stop progress bar on ltsp-client-core too. The script was renamed in recent ltsp versions. Based on patch from Ubuntu. * Add linux-gnulp to debian/deps-mount, to get the correct behaviour with regard to initscripts dependencies on lpia. Patch from Adam Conrad in Ubuntu. * Add splash screen / progress bar API to initscripts in /lib/init/splash-functions-base, overridable by the splash implementations in /lib/init/splash-functions. Based on patch from David Härdeman. (Closes: #423095) Make initscripts conflict with usplash (<< 0.5) to make sure a version with PULSATE support is used. * Rewrite init.d/rc progress bar support to use new API. Move usplash calls to separate file splash-functions-usplash. This file should be moved to the usplash package. Based on patch from David Härdeman. * Do not mount gfs2 as a local file system. It is a network file system. Patch from Guido Guenther (Closes: #454468). * Modify update-rc.d to refuse to install init.d scripts with illegal characters in the names. Only accept [a-zA-Z0-9+.-] to match the limits on package names. Correct handling of init.d scripts with + in their name (Closes: #431224). [ Henrique de Moraes Holschuh ] * libata shutdown handling fixes: Check http://linux-ata.org/shutdown.html for information * init.d/halt: do not issue -h to halt(8) when the kernel supports auto-shutdown * init.d/halt, default/halt: add HDDOWN option to override initscript halt -h logic * Add halt(5) manpage, updated for HDDOWN. Thanks to Casper Gielen for the manpage. (Closes: #407211) -- Petter Reinholdtsen Sat, 22 Dec 2007 17:49:42 +0100 sysvinit (2.86.ds1-38.1) unstable; urgency=low * Non-maintainer upload. * Rework starting of portmap and nfs-common to better fit the new and stricter mount.nfs; in particular, statd must be started for almost all mounts, so start nfs-common even for non-NFSv4 and non-Kerberos mounts. (Closes: #433386) -- Steinar H. Gunderson Tue, 24 Jul 2007 19:31:27 +0200 sysvinit (2.86.ds1-38) unstable; urgency=medium * Medium urgency as it solve an RC bug in etch. * New upload, this time with only the files included in svn, and without the cruft included by mistake last time. No idea why svn-buildpackage didn't behave as I expected it to. -- Petter Reinholdtsen Tue, 30 Jan 2007 23:14:04 +0100 sysvinit (2.86.ds1-37) unstable; urgency=medium * Medium urgency as it solve an RC bug in etch. * Replace 66_init_emerg_tty patch with one only creating a new session group when sulogin is called directly from init, and not as part of the runlevel start scripts, to avoid leaving the single user shell behind when switching runlevel. Updated patch from Samuel Thibault. (Closes:406587) * Speed up shutdown 1 second by dropping sleep 1 in init.d/halt introduced 2.86.ds1-12. -- Petter Reinholdtsen Sat, 13 Jan 2007 20:04:35 +0100 sysvinit (2.86.ds1-36) unstable; urgency=medium * Medium urgency as it solve some RC bugs in etch. * Don't reset step to 0 between running Kill and Start scripts (this is why the progress bar jumps during splash down). Patch from Scott James Remnant and Ubuntu. * Also consider ltsp-client as end-point for the usplash progress bar. Patch from Scott James Remnant and Ubuntu. -- Petter Reinholdtsen Tue, 28 Nov 2006 19:56:20 +0100 sysvinit (2.86.ds1-35) unstable; urgency=medium * Medium urgency as it solve some RC bugs in etch. * Make sure init.d/umountfs umount tmpfs file systems in order of decreasing length, to avoid problems on systems with chroots. Patch from Peter Rabbitson. (Closes: #391673) * Add boot option ASYNCMOUNTNFS=no to get the old init.d/mountnfs.sh behaviour until ifup work properly with / on NFS. The default is 'yes' as it has the highest chance of success for non-diskless machines. It is also useful for machines with multiple network cards. (Closes: #388761, #393532) * Fix syslogging code in if-up.d/mountnfs to find logger if it exist. Patch from John Morrissey. (Closes: #398644) * Avoid file descriptor leak to mount in init.d/mtab.sh. Based on patch from David Härdeman. (Closes: #397525). * Fix typo in message added in 91_sulogin_lockedpw.dpatch. Thanks to Robert Bihlmeyer. (Closes: #399715) * Undo use of fuser to kill processes in umountnfs before unmounting partitions, as it will kill init and /etc/init.d/rc during shutdown if root is on NFS or tmpfs file systems are bind-mounted into chroots. Use sendsigs and move it before umountnfs, and thus reopen bugs #258420, #367944. (Closes: #392861, #391375) -- Petter Reinholdtsen Sun, 26 Nov 2006 20:06:00 +0100 sysvinit (2.86.ds1-34) unstable; urgency=medium * Medium urgency as it solve some RC bugs. * Remove the postinst code in initscripts for mounting /lib/init/rw/. Just require a reboot for it to take effect, instead of trying to make sure it is mounted when the package is installed. Flag this need using /usr/share/update-notifier/notify-reboot-required if it exist. (Closes: #393465, #391605, #390126) * Remove debian/sysv-rc/postinst as well as it is unused now. * Replace SElinux patches 40_selinux and 41_selinux_console with updated 40_selinux from Manoj Srivastava. (Closes: #394304) * Print message when refusing to mount nfs directories because the lockdir exist. * Add exit handler in if-up.d/mountnfs to make sure the lock directory is removed when the script is interrupted. * Remove NEWS entries explaining how to recover from the version of sysv-rc present 6th to 8th of September in unstable. Remove update-rc.d-recover as it should no longer be needed. (Closes: #394332) * Add XS-Vcs-Svn entry in the control file, to make the subversion repository easier to find. -- Petter Reinholdtsen Sun, 29 Oct 2006 18:33:33 +0100 sysvinit (2.86.ds1-33) unstable; urgency=low * Do not insert /dev/.static/dev in /etc/mtab, and do not try to umount it either. Avoids confusing users. (Closes: #391122) * Let initscripts conflict with udev << 0.080-1, and stop calling mountdevsub.sh from mtab.sh. (Closes: #391312) * Do not fail to install initscripts even if /lib/init/rw/ can not be mounted. (Closes: #391115) * Adjust how fuser is called by umountnfs, using the exit code from fuser instead of looking at its output. Based on patch from Markus Schoder. (Closes: 390936) -- Petter Reinholdtsen Fri, 6 Oct 2006 19:51:05 +0200 sysvinit (2.86.ds1-32) unstable; urgency=low * Set SE context on /dev/pts and /dev/ptm if they are created by mountdevsubfs.sh to work better with SELinux. Patch from Erich Schubert. (Closes: 390897) -- Petter Reinholdtsen Wed, 4 Oct 2006 20:39:56 +0200 sysvinit (2.86.ds1-31) unstable; urgency=low * Fix calls to fuser in umountnfs.sh. Thanks to Frank Mehnert for the tip. * Correct code detecting single-user in stop-bootlog-single to only trigger on '1' as single word and not as option argument. (Closes: #390572, #387340) -- Petter Reinholdtsen Mon, 2 Oct 2006 19:55:11 +0200 sysvinit (2.86.ds1-30) unstable; urgency=low * Avoid mounting /lib/init/rw/ during installation and upgrades if the kernel do not support tmpfs. (Closes: #390339) -- Petter Reinholdtsen Sun, 1 Oct 2006 20:03:33 +0200 sysvinit (2.86.ds1-29) unstable; urgency=low * Ignore problems with creating /var/run and /var/lock during installation and upgrades. This should avoid installation problem in vserver environments. * Only try to create /var/run and /var/lock on the root file system in non-chroot environments? * Use 'mkdir -p' when creating /.root, to avoid failing if it already exist. (Closes: #390327) * Do not try to create /var/run and /var/lock during installation or upgrades if /var is a relative symlink. It is not going to work. (Closes: #390328) * List the options found in /etc/fstab after the default options used when mounting virtual file systems, to allow options in fstab to override the defaults. (Closes: #390181) -- Petter Reinholdtsen Sat, 30 Sep 2006 18:42:44 +0200 sysvinit (2.86.ds1-28) unstable; urgency=low * Avoid mounting /lib/init/rw/ when being installed in a chroot environment. (Closes: #390126) * Update init.d/mtab.sh to make sure it store the correct options used to mount /dev/shm in /etc/mtab. * Drop the 'noexec' flag from the /dev/shm/ mount point until etch is released, to avoid breaking dosemu and user-mode-linux. It will be reintroduced after etch is released. This is related to bugs #386945 and #386368. -- Petter Reinholdtsen Fri, 29 Sep 2006 18:36:13 +0200 sysvinit (2.86.ds1-27) unstable; urgency=low * Make sure to mount /lib/init/rw/ during upgrades if it isn't mounted already, to make it sure available for its users when the new initscripts package is installed -- Petter Reinholdtsen Thu, 28 Sep 2006 20:40:12 +0200 sysvinit (2.86.ds1-26) unstable; urgency=low * Change umountnfs to use /etc/mtab instead of /proc/mounts, to make sure it see the _netdev option. umountfs still uses /proc/mounts to make every non-root file system is unmounted before halt or reboot. (Closes: #383124) * Correct exit code handling in init.d/rc.local. (Closes: #389435) -- Petter Reinholdtsen Thu, 28 Sep 2006 19:26:54 +0200 sysvinit (2.86.ds1-25) experimental; urgency=low * Improve manual entry for RAMRUN and RAMLOCK run rcS(5). * Correct mtab.sh to make sure the mtab content matches the options used when mounting /var/run/. * New defaults/tmpfs options RUN_SIZE and LOCK_SIZE, controlling the tmpfs size. Modified the mount code to also use TMPFS_SIZE if set as a fallback value. -- Petter Reinholdtsen Tue, 26 Sep 2006 15:09:30 +0200 sysvinit (2.86.ds1-24) experimental; urgency=low * Make sure we do not umount /lib/init/rw/ during shutdown. * Make it easier to debug the splash progress bar in init.d/rc. * Correct mtab entry for /sys, to make sure its 'device' is sysfs. * Include vars.sh in mtab.sh, to make sure the RAMRUN and RAMLOCK options are available when used. * Add defaults/tmpfs option RW_SIZE to control the size of /lib/init/rw/, and change mountkernfs.sh to use TMPFS_SIZE too if it is set. * Rewrite post_mountall() function to avoid mounting /var/run/ and /var/lock/ on top of themselves when RAMRUN or RAMLOCK is enabled. -- Petter Reinholdtsen Sat, 23 Sep 2006 19:01:38 +0200 sysvinit (2.86.ds1-23) experimental; urgency=low * Make the tmpfs on /var/run/ and /var/lock/ optional, and provide RAMRUN and RAMLOCK options in /etc/default/rcS to control this. Remove code to convert to this feature when the package is upgraded or installed. It will take effect after a reboot if /etc/default/rcS is modified. Keep them disabled for now. Create .ramfs files in the directories if tmpfs is used to make it easier for other scripts to know if they are safe to use early in the boot. * Create /lib/init/rw/, and mount a tmpfs there to garantee some writable area very early in the boot. Use this in checkroot.sh if a device node need to be created. Create .ramfs indicator when it is mounted. * Move sulogin to the sysvinit-utils package as well. (Closes: #388417) * Add new halt option NETDOWN to make it easier to enable wake-on-lan. (Closes: #388244) * Add a stop dependency for umountroot on kexec, to document the correct location for a kexec script. Related to bug #387599. * Make sure update-rd.d-recover is not compressed to make it easier to run. -- Petter Reinholdtsen Fri, 22 Sep 2006 21:34:37 +0200 sysvinit (2.86.ds1-22) experimental; urgency=low * Let mountdevsubfs provide mountvirtfs to work with init.d scripts with obsolete dependency information. * Change mounting of virtual file systems to specify the device name explicitly, to make sure /proc/mounts and /etc/mtab end up with the same device name. * Split killall5, last, lastb, mesg and pidof out of the sysvinit package into a new sysvinit-utils package to make it easier to replace sysvinit. (Closes: #385722) * Mount /var/run/ as tmpfs in mountkernfs.sh, to have some place to write state information very early in the boot, and thus avoid a lot of cludges in scripts running before partitions are checked and mounted. Mount /var/lock/ as tmpfs to avoid having to clean it during boot, and to have some place to store locks for the things running before partitions are checked and mounted. Packages need to create the directories they expect to find in these directories from now on. Patch from Scott James Remnant and Ubuntu. * Adjust checkroot.sh to create the root device node in /var/run/ when needed, instead of mounting its own tmpfs. Modified /var/run/ to allow devices and executables. -- Petter Reinholdtsen Sat, 16 Sep 2006 12:14:36 +0200 sysvinit (2.86.ds1-21) experimental; urgency=low * Correct status report handling in umountnfs.sh. Based on patch from Markus Schoder. (Closes: #386893) * Change mountnfs.sh, rc.local and skeleton to use /lib/init/vars.sh instead of sourcing /etc/default/rcS, to activate the INIT_VERBOSE variable for these scripts. * Add support in the init.d scripts for the 'quiet' kernel option. Keep support for the experiemental INIT_VERBOSE, to make it possible to override VERBOSE=no on the kernel command line. * New draft patch 68_init_quiet to make init less verbose when the 'quiet' kernel option is used. If it worked, it would solve bug #326677. * Add a few lintian overrides for things that are correct though strange. * Rewrite sendsigs to sleep up to 5 seconds (instead of always sleeping 5 seconds) during shutdown if there are no processes left to wait for. Modify killall5 to make it report if it found any processes to kill to make this possible. * Modify mtab.sh to include /dev/.static/dev in /etc/mtab, to avoid message from umountfs during shutdown about it being missing in mtab. * Now that mtab is properly updated by mtab.sh before mountall.sh, there is no need to have special handling of proc file systems. Remove the code from mountall.sh. (Closes: #359651) * Only kill processes using remote file systems before trying to umount them, if fuser from the psmisc package is available, and move sendsigs to a point between where remote and local file systems are umounted. Recommend psmisc for package initscripts. (Closes: #258420, #367944) * Add conditional dependency on glibc for hostname.sh and mountkernfs.sh, to allow the glibc warnings to show up without anything running in parallel. * Change default PATH in initscripts and init to prefer sbin/ over bin/, to avoid picking user visible replacement for system binaries. This avoids shutdown problems on some machines. (Closes: #354163) * Fix typo in init.d/README. (Closes: #387236) * Add /usr/bin/ to the checkroot and checkfs PATH, to make sure on_ac_power is used if it is available. (Closes: #387308) * Modify mtab.sh to insert the device name used when mounting /dev/shm/ in /etc/mtab. (Closes: #387216) -- Petter Reinholdtsen Thu, 14 Sep 2006 15:09:33 +0200 sysvinit (2.86.ds1-20) unstable; urgency=low * Change initscripts postinst to use update-rc.d program instead of its shell script function when insserv is installed. * Change updatercd call order in initscripts postinst to make sure they are called in dependency order, to work better with insserv. * Improve update-rc.d-recover script to look in /var/log/dpkg.log for version 2.86.ds1-17 as well as 2.86.ds1-16. Patch from Stefan Bellon. * LSB header updates: - sendsigs should stop before umountnfs, and umountnfs should stop before umountfs, until we have a solution for bug #258420 and #367944. - mountnfs.sh should list $network as an optional dependency like for umountnfs, to work on machines without network. -- Petter Reinholdtsen Sun, 10 Sep 2006 17:45:19 +0200 sysvinit (2.86.ds1-19) unstable; urgency=low * Add new NEWS entry with a better shell fragment for recovering from the update-rc.d problem. Add script /usr/share/doc/sysv-rc/update-rc.d-recover to make it easier for people to recover from problems introduced in versions 2.86.ds1-16 and 2.86.ds1-17.(Closes: #386649) * Rewrite checkroot.sh to not use lazy umount and a private tmpfs, and keep the tmpfs mounted on /tmp/ as long as checkroot.sh need it. It seem that fsck did not like relative device paths. (Closes: #386347, #386699) * LSB header updates: - umountfs should execute before umountroot, not before halt or reboot. - umountroot should stop in runlevel 0 and 6, and execute before halt or reboot. -- Petter Reinholdtsen Sat, 9 Sep 2006 20:12:47 +0200 sysvinit (2.86.ds1-18) unstable; urgency=low * Make sure running update-rc.d several times do not remove the rc*.d/ symlinks, fixing bug introduced in 2.86.ds1-16. Patch from Arjan Oosting. (Closes: #386500) Added entry in NEWS file to give clues on how to fix the breakage in upgraded packages introduced by this. Print a warning when upgrading from the broken versions. * Change checkroot.sh to use a private tmpfs file system for its device file if it is missing from /dev/. (Closes: #386347) * Also create possibly non-existant parent directory of lock directory /var/run/network/mountnfs in ifup script. Patch from Arjan Oosting. (Closes: #386449). * Mark /etc/init.d/rc.local as a conffile, to make sure we do not replace an exisitng rc.local file without warning the system admin. (Closes: #386418) * Mount /dev/pts/ with noexec,nosuid, as it is only used for device files. * Change sysv-rc to print a message when enabling concurrent boot, specifying the concurrency style. Recommend lsb-base and use it if available. * Teach init.d/stop-bootlogd-single to accept the kernel arguments 'S' and '1' as well as 'single' as single-user mode triggers. (Closes: #367465, #372669) * Only report umounting of remote file systems when there are remote file systems to umount. * Remove 'S' from default-stop in skeleton. It never make sense to add stop links in rcS.d/. * Remove execute bit from /etc/init.d/skeleton. (Closes: #372666) * LSB header updates: - stop-bootlogd should run after rmnologin. - mountdevsub.sh should start after udev, if it exist. - rc.local should not depend on $all to allow it to start earler in the boot. - stop-bootlogd-single should depend on $all, to get it last in the rcS.d/ sequence. - umountnfs.sh should stop in runlevel 0 and 6, and execute before umountnfs, sendsigs, portman and $network. - sendsigs should stop in runlevel 0 and 6, and execute before umountfs. - umountfs should stop in runlevel 0 and 6, and execute before halt or reboot, if it exist. - halt should stop in runlevel 0, and not run before any other script. - reboot should stop in runlevel 6, and not run before any other script. -- Petter Reinholdtsen Fri, 8 Sep 2006 19:07:43 +0200 sysvinit (2.86.ds1-17) unstable; urgency=low * Make some log messages more usplash friendly in the VERBOSE=yes case. * Undo fix for #309813, it was correct before. -- Petter Reinholdtsen Wed, 6 Sep 2006 20:20:06 +0200 sysvinit (2.86.ds1-16) unstable; urgency=low * Fix emergency mode's tty, making sure ^C and ^Z work when booting with 'emergency' kernel option. Patch from Samuel Thibault. (Closes: #374543) * Rewrite usplash reactivation code in init.d/sendsigs to match the code in Ubuntu. It need to behave the same way as the usplash startup code, and should not match the code deciding if usplash_write should be used. * Change handling of CONCURRENCY in init.d/rc, to make sure an unrecognized value is treated as 'none'. (Closes: #380602) * Make sure SATA disks are powered down as well as IDE disks. Patch from Sebastian Reichelt. (Closes: #348172) * Mount /dev/shm, /sys, /proc and /proc/bus/usb using noexec,nodev,nosuid to make it harder to misuse. (Closes: #378182, #378280) * Move NFS mounting to an if-up.d script, to make sure we try to mount NFS file systems after the network is available. Based on patch from Ubuntu. Modified to rewrite mountnfs.sh instead of renaming it to waitnfs.sh. (Closes: #360123) * Add rc.local support to be more compatible with non-Debian distributions. Patch from Fabio M. Di Nitto via Ubuntu. Modified to not print messages when VERBOSE=no. * Drop and remove /etc/init.d/mountvirtfs. It is obsolete. * Do not try to mount netdev file systems in mountall.sh. (Closes: #383073, #386063) * Mount netdev file systems when the network is up. (Closes: #383123) * Umount netdev file systems in umountnfs.sh. (Closes: #383124) * Remove obsolete code in init.d/rc to execute /sbin/unconfigured.sh and /sbin/setup.sh. It was only to be used during installation, and the installer no longer need it. Add a init.d script if you need the functionallity. * Change LSB dependency info for mtab.sh. It need a writable root file system to update /etc/mtab, and should thus depend on checkroot, not mountall. * Move mtab to rcS.d/S12mtab.sh, to make sure it is the first script to run after checkroot.sh. * Change init.d/mtab.sh to be more self-contained, and update /etc/mtab with info on all file systems mounted before /etc/mtab was writable by processing /proc/mounts. Based on patch from Scott James Remnant and Ubuntu. * Add empty functions pre_mountall and post_mountall to reduce the difference between the Ubuntu version * Modify update-rc.d to run properly with perl error checking enabled. * Add support for parsing LSB headers in update-rc.d, and use the runlevel information in the default-start and default-stop headers if they are present. Document this in update-rc.d(8). This can be used instead of the 'multiuser' extention in Ubuntu, by setting the 'default-stop' value to '1' in the init.d script. Only enable this feature when /etc/update-rc.d-lsbparse exist while we verify that LSB headers are correct. * Change the default VERBOSE value from yes to no. * Move init.d/hostname.sh to the very top of the boot sequence, as it only require a readable /etc/hostname and a working kernel. * Use the stop scripts from the runlevel we are leaving, not the one we are entering, when switching between runlevels. (Closes: #309813) -- Petter Reinholdtsen Wed, 6 Sep 2006 15:29:01 +0200 sysvinit (2.86.ds1-15) unstable; urgency=low [ Petter Reinholdtsen ] * Modify LSB header for init.d/rmnologin, to make sure it is executed with the 'stop' argument for runlevel 0 and 6, and make it depend on '$all' to put it last in the startup sequence. * Update the LSB descripton header for init.d/hostname.sh. * Make sure hostname.sh return error code when it fail. (Closes: #365062) * Fix 'startpar' concurrency option to only run start and stop scripts only once. Patch from Sören Köpping. (Closes: #378092) * Fix init.d/rc to make it possible to specify the CONCURRENCY setting in /etc/default/rcS. * Fix typo in update-rc.d.8 manual page. Patch from Justin Pryzby. (Closes: #374476) * Improve text in init.d/README to make it more obvious that the .sh scripts should be working also when executed individually. Patch from Bart Martens. (Closes: #362888) * Modify the comment before the conditional calls to on_ac_power, to document that checkfs.sh and checkroot.sh are written to work just fine also when /usr/bin/on_ac_power is unavailable. (Closes: #367867) * Integrate the patches from Ubuntu where I understand why they are useful: - Change runlevel manpage to be less misleading. - Make messages in init.d/sendsigs less technical. Based on patch from Ubuntu. - Update progress bar changes in init.d/sendsigs and init.d/rc. Based on patch from Ubuntu. Changed patch to check only once in init.d/rc if the progress bar is enabled, and to use the same way in sendsigs and rc to decide if it is enabled or not. It will be enabled if /sbin/usplash_write is executable. - If /dev/.udev.log exists, move it to /var/log/udev.log. Patch from Scott James Remnant. - Do not umount /dev/shm in umountnfs.sh. It is a tmpfs and can be safely left behind when shutting down the system. * Update standards version from 3.6.2.1 to 3.7.2. No changes required. * Acknowledge NMU. Thanks, Steinar H. Gunderson . (Closes: #359176) [ Thomas Hood ] * Remove myself from uploaders list. -- Petter Reinholdtsen Tue, 25 Jul 2006 19:42:27 +0200 sysvinit (2.86.ds1-14.1) unstable; urgency=low * Non-maintainer upload. * mountnfs.sh: If needed, call nfs-common's init.d script to start rpc.gssd or rpc.idmapd as needed. This is needed for Kerberized NFS mounts and NFSv4 mounts. (Closes: #359176) -- Steinar H. Gunderson Sat, 6 May 2006 21:12:39 +0200 sysvinit (2.86.ds1-14) unstable; urgency=low [ Thomas Hood ] * umountfs: Unmount in order of decreasing mount point length without making use of the sort program (Closes: #356226) Thanks to Jiri Polach for assistance * Don't Build-Depend on selinux stuff on kfreebsd-amd64 (Closes: #357245) * Make initscripts Conflict with sysvinit (<< 2.86.ds1-12) because bootlogd initscript uses an option that was introduced in 2.86.ds1-12 (Closes: #357667) * bootlogd: Mention -p and -c options in usage message (Closes: #357667 too) -- Thomas Hood Thu, 16 Mar 2006 19:45:04 +0100 sysvinit (2.86.ds1-13) unstable; urgency=low [ Thomas Hood ] * umountfs: Unmount even if sort not available (Addresses #356226) * last: Fix strncmp bug (Closes: #353585) * umountroot: Tweak handling of error messages from mount (Closes: #352398) * /etc/init.d/skeleton: Source init-functions (Closes: #353212) * initscripts.postrm: Don't remove /etc/init.d/mountdevsubfs * mount{all,nfs}.sh: Don't set TMPTIME cuz it's not used here * pidof.8: Don't imply that pidof is in /sbin (Closes: #352741) * sysv-rc: /etc/init.d/README: Refer user to /usr/share/doc/sysv-rc/ (Closes: #353083) * Add NEWS.Debian with entry for 2.86.ds1-10 which reports the replacement of the bootclean.sh function library by the bootclean initscript. (Closes: #355746) [ Petter Reinholdtsen ] * Silence init.d/hostname.sh when VERBOSE=no. * /etc/init.d/skeleton: Show how to use the VERBOSE variable. -- Thomas Hood Mon, 13 Feb 2006 08:42:44 +0100 sysvinit (2.86.ds1-12) unstable; urgency=low [ Thomas Hood ] * Aim for testing: Closes: #341075 * Fix dependency on mount for GNU/kFreeBSD (Closes: #349984) This involved updating deps-mount and deps-glibc (Closes: #335297) * bootlogd: 51_bootlogd_syncalot: Don't sync after each line unless the (new) -s option is given (Closes: #205724) * bootlogd: 52_bootlogd_createlogfile.dpatch: Don't write to logfile if it doesn't exist unless the (new) -c option is given (Closes: #341167) * bootlogd: 53_bootlogd_ttyB.dpatch: Also try ttyB0 (Closes: #348506) * last: 25_last_sanify: In "last -x" output: + On "reboot" line print endpoint of uptime too + On "shutdown" line print downtime rather that time between downs (Closes: #58119) * init: 41_selinux_console.dpatch: print to same console as others do (Closes: #349149) * bootclean: Don't fail to clean all directories in /tmp (Closes: #350218) * mountall.sh: Suppress error message about /proc already being mounted (Closes: #349275) * checkroot.sh: Don't try to enable swap if a swap device is /dev/mapper/* or a swapfile (Closes: #346329, #348534) * checkroot.sh: Remove some code specific to pre-2.4-Linux * umountfs - Don't try to unmount tmpfs on /dev (Closes: #350998) - Improve comment explaining use of sort (Closes: #351497) * several scripts: messages: Tweak; better condition them on $VERBOSE * initscripts postinst: Don't run mount{kern,devsub}fs.sh * initscripts postinst: Actually remove some things on purge * rcS(5): Improve; mention that if UTC=no then admin must ensure that zoneinfo is available * shutdown(8): Fix typo (Closes: #350830) * Add README.Debian for sysv-rc * debian/rules: + Handle older dpkg-architecture + Tweak Build-Depends on libselinux1-dev (Closes: #340285, #351906) [ Robert Millan / TH ] * inittab on GNU/kFreeBSD: (Closes: #351615) - Pass "cons25" as parameter to getty (leaving it unspecified required hacks in the getty side). - "translate" all device names into kfreebsd ones, including those in comments. [ A Costa / TH ] * man pages: 10_doc_manuals.dpatch: Fix a shipload o' typos (Closes: #349768, #349769, #349770, #349771, #349772, #349773) [ Ruben Porras / TH ] * Fix typos in Spanish update-rc.d(8) (Closes: #349805) [ Henrique de Moraes Holschuh ] * [S390] inittab: rename inittab.s390-linux to inittab.s390-linux-gnu (Closes: #351871) -- Henrique de Moraes Holschuh Thu, 9 Feb 2006 09:27:51 -0200 sysvinit (2.86.ds1-11) unstable; urgency=low [ Thomas Hood ] * rcS(5): Improve * sulogin(8): Improve; mention -t option (Closes: #186880) * bootlogd(8): Improve; mention need for PTY support * initscripts postinst: Update to reflect script name changes * initscripts: Harmonize PATH settings * checkroot.sh: Don't check for need to start /sbin/update. We don't support pre-2.4 kernels any more. * checkroot.sh, mountall.sh: Run swapon with -v if VERBOSE!=no * Remove obsolete lintian overrides * Previous release also closes: #258290 "bootlogd: Bad file descriptor" closes: #327865 "bootlogd stopped working" closes: #328764 "bootlogd fails to start" [ Petter Reinholdtsen ] * Time to upload all these changes into unstable (Closes: #341075) * Revert default VERBOSE value to "yes" to reduce the amount of user visible changes in this upload. -- Petter Reinholdtsen Sun, 22 Jan 2006 22:17:38 +0100 sysvinit (2.86.ds1-10) experimental; urgency=low [ Thomas Hood ] * bootclean: Adapt from old bootclean.sh; handle return status more carefully; print diagnostic messages on failures; eliminate use of subshells; add comments; improve deletion code * bootclean: Always rm /tmp/.X*-lock * mountall.sh: Eliminate unnecessary check for pre-2.4 Linux kernel * mountnfs.sh, mountall.sh: Choose different names for intnl. functions * mountnfs.sh: Only sleep 1 second after starting portmap; note that the code to start portmap will disappear someday * various scripts: Make more messages depend on VERBOSE being != "no" * various scripts: Handle return status more carefully * various scripts: Eliminate unnecessary uses of subshell * mountvirtfs -> mountkernfs.sh; mountdevsubfs -> mountdevsubfs.sh; mountvirtfs now calls the above two (for backward compatibility); mtab.sh now runs mountkernfs.sh and mountdevsubfs.sh to update the mtab file after mountall.sh. * /etc/init.d/rc: Restore PATH after sourcing an initscript * debian/rules: + Use ':', not the deprecated '.' between owner and group names in chown commands + Use '-o root' with install * /etc/init.d/README: Note that /etc/init.d/*.sh must have '#!/bin/sh' and must follow policy 10.4. * Override lintian and linda warnings [ Ubuntu backports by T.H. ] * During shutdown and reboot take the progress bar from 100 to 0 * Reduce diff with 2.86.ds1-6ubuntu1 Thanks to Mark Hatle and Marco d'Itri for help with this release. -- Petter Reinholdtsen Sun, 15 Jan 2006 13:38:42 +0100 sysvinit (2.86.ds1-9) experimental; urgency=low [ Thomas Hood ] * Split mountdevsubfs out of mountvirtfs and run it at S04 and S37. [Note added in 2.86.ds1-10: these scripts were renamed] This should not behave any differently, but the split will allow packages that futz with /dev to do this at S03. * umountfs: Only run umount if there is something to unmount (Closes: #345272) * urandom: Set PATH so that find can be found (Closes: #345273) * init: 64_init_set_PATH.dpatch: Set PATH if it's unset on re-exec (Closes: #345370) * init: 65_init_u_in_06.dpatch: Allow 'telinit u' in runlevels 0, 6 (Closes: #345719) People running Debian from unusual media (such as filesystems embedded in NTFS files) are wanting to unmount /sbin at the last moment and need to re-exec init to do so. * umountroot: Remount ro with -f on GNU/kFreeBSD (Closes: #344547) * checkroot.sh, checkfs.sh: Pause for five seconds if sulogin fails so that the user can see the error message (Addresses #337444) * Include /var/log/fsck/ in initscripts package (Closes: #346139) * Replace /lib/init/functions.sh with /lib/init/mount-functions.sh for use by mountvirtfs and mountdevsubfs * various initscripts: Clean up code that reads fstab * various scripts: Redirect which program's stderr to /dev/null since the GNU version prints an error message when the command is not found (Closes: #345321) * /etc/default/rcS: Make VERBOSE and DELAYLOGIN default to "no" * /etc/default/rcS: Remove descriptions of variables; leave behind a reference to rcS(5). This eliminates the problem of comments becoming outdated without our being able to update them. * Remove obsolete docs * Make initscripts Depend on mount >= 2.11x-1 (Closes: #345968) * Remove obsolete dependencies on bsdutils, coreutils, dpkg, kbd and util-linux: the versions in question are older than oldstable, so any newly installed system and any system that has upgraded to sarge (or even woody) satisfies the constraints. * Remove obsolete dependency on the last package: last was forced off systems when they upgraded to buzz * Add Replaces to Conflicts: mdutils which no longer exists even in oldstable * initscripts postinst: Remove obsolete GMT-to-UTC code: this conversion was performed when systems were upgraded to potato * sysvinit: Depend on libc6 rather than Pre-Depending on it; we don't do anything special in the preinsts any more * Correct documentation of init's -e and -t options * Tweak descriptions * Add READMEs for remaining runlevel dirs (Closes: #242957) * Previous release also closes: #227540 "skeleton: Don't include /usr/local/* in PATH" closes: #346415 "mountnfs.sh doesn't work with the "bg" mount option" [ Petter Reinholdtsen ] * sysv-rc: Fix some typos in the startpar handling. (Closes: #345269) * Add code to detect and report bad 'exit' calls in init.d scripts, if they kill /etc/init.d/rc. * Make sure sourcing work with dash /bin/sh, by using 'set $action' to pass arguments to the script. (Closes: #345267) Thanks to Mark Hatle for help with this release. -- Petter Reinholdtsen Sun, 8 Jan 2006 18:08:51 +0100 sysvinit (2.86.ds1-8) experimental; urgency=low [ Thomas Hood ] * Omit /run until we are sure it's needed (Closes: #344001) * Previous release also closes: #338736 "mountvirtfs: Succeeds in various cases it should fail" closes: #342160 "checkroot.sh ignores fsck result" closes: #342744 "checkroot.sh sources mountvirtfs, yet supplies arguments" * Use /proc/mounts instead of /etc/mtab when unmounting (Closes: #338801) * Check for files under mountpoints more thoroughly * initscripts.postinst: + Don't fail to install on file-rc systems (Closes: #343993) + Don't fail to install in chroots (Closes: #344089) * No longer keep the dynamic nologin flag file on the root filesystem; instead, keep it at /var/lib/initscripts/nologin. Note to admins: initscripts's postinst symlinks /etc/nologin to the latter location. To switch login delaying on or off permanently, set DELAYLOGIN=no in /etc/default/rcS and either create or delete (respectively) /var/lib/initscripts/nologin. * mountvirtfs: Mount /dev/shm earlier; move long comment to README.Debian * Add 45_pidof_symlink.dpatch: Make pidof an absolute symlink (Closes: #343862) * debian/rules, 30_strip.dpatch: Strip .comment section from executables (Closes: #343863) * In umountfs, run umount with -f (Closes: #344547) [ Petter Reinholdtsen ] * Enable the startpar option as it should work now that .sh scripts are serialized. The clock should no longer jump while startpar is used. -- Petter Reinholdtsen Tue, 27 Dec 2005 14:18:19 +0100 sysvinit (2.86.ds1-7) experimental; urgency=low [ Petter Reinholdtsen ] * Add commented-out code to /etc/init.d/rc for sourcing *.sh scripts for runlevel 'S'. This is preparation for fixing #339955. Actually fixing it has to wait until other packages remove "exit" from their .sh scripts. * Implement progress bar support for splash screen. Enabled when usplash_write is in PATH. Patch from Scott James Remnant and Ubuntu. [ Thomas Hood ] * *.sh: Make sure that these do their thing when they aren't given any command line arguments (as is the case when they are sourced) * initscripts: Improve use of log_* functions (Closes: #55143, #116366, #323749) * bootclean.sh: Do not delete symlinks-to-directories from /var/run/ (Closes: #272066) * checkroot.sh: Fix double printing of 'Done checking root file system'; mountall.sh: Fix chopped-up printing of mount information (Closes: #339979, #331397, #341097 and presumably closes: #332309) * checkroot.sh, checkfs.sh: Save fsck logs (Closes: #189356) Thanks to Theodore Y. Ts'o. * checkroot.sh, mountvirtfs: Eliminate use of dir_writable in order to try to please selinux (Closes: #333836) * checkroot.sh: Only run findfs for mount on / (Closes: #275680) Thanks to Cameron Hutchison for the patch. * mountall.sh, mountnfs.sh: Split call to bootclean out into separate script called at the next sequence number (Closes: #286479) * bootmisc.sh: Shorten motd header (Closes: #340017) * bootmisc.sh: Store dynamic motd in /var/run/ and make /etc/motd a symbolic link. The EDITMOTD variable no longer has any effect; to disable updating of the motd just point the /etc/motd symlink to a static file such as /etc/motd.static. * bootmisc.sh: Rotate dmesg log with savelog (Closes: #237074) and chgrp adm. * umountroot: Change mount command in order to exclude bind mounts of the root directory (Closes: #339023) * Replace /etc/rc1.d/20single by /etc/rc1.d/S30killprocs and /etc/rc1.d/S99single so that packages can insert scripts to do things between the "killall5" in the former and the "exec init -t1 S" in the latter. This may help to address #145280. * umountfs: Unmount tmpfs before swapoff and other fs's afterwards (Closes: #328582, hopefully without reopening #84782) * Make stop-bootlogd a distinct script rather than a symlink to bootlogd. Give it its own LSB header. * Add stop-bootlogd-single initscript to stop bootlogd in "single" mode (Closes: #213028, #220025) * checkfs.sh: Implement FSCKTYPES (Closes: #89481) Set, e.g., FSCKTYPES="ext2,msdos" to fsck only file system types ext2 and msdos See fsck(8) for syntax. FSCKTYPES="none" disables fsck of file systems (other than the root filesystem) altogether. * all initscripts: Set variables using common script * all initscripts: Fix usage messages * all initscripts: Allow VERBOSE to be set via the INIT_VERBOSE=yes kernel argument (Closes: #286082) Experimental. The name of the kernel argument may change in the future if we decide to implement this more generally. * Improve skeleton initscript * all scripts: Clean up; standardize indentation * all scripts: Use the "which" program to test for executability * initscripts: Experimentally include /run; include /sys in Linux builds * mountvirtfs: Mount a tmpfs on /run * mountvirtfs: Warn if mount point has stuff under it (Closes: #95390) * initscripts postinst: Mount virtual filesystems * initscripts preinst: Remove ancient /etc/init.d/boot conversion code (Closes: #343596) * default config files: Clean up comments * Make initscripts Depend on debianutils >= 2.13.1 in order to prevent #295850. Note that debianutils also has to be >= 2.12.0 so that the "which" program is available in /bin. * Remove currently unneeded sysvinit Dependency on coreutils (Closes: #316423) * pidof: If the program is specified with a path, don't match processes of programs run from different paths (Closes: #160329) * init: 40_selinux.dpatch: Remove superfluous printf argument * init: Add 63_init_longer_procname.dpatch (Closes: #336172) * init.8: Mention that entering runlevel 1 kills all processes (Closes: #238861) * update-rc.d.8: Mention that update-rc.d will not create multiple start or multiple stop symlinks for a service in a single runlevel directory. (Closes: #330155) * Update FSF address -- Petter Reinholdtsen Sat, 17 Dec 2005 21:26:03 +0100 sysvinit (2.86.ds1-6) unstable; urgency=low [ Petter Reinholdtsen ] * Updated versioned dependency of sysvinit from sysv-rc version 2.85-2 to version 2.86.ds1-1.2, to make sure init.d/rcS calls all init.d scripts with 'start' argument. Let initscripts conflict with sysv-rc (<< 2.86.ds1-1.2) as well, to document that it need a newer sysv-rc to work properly. (Closes: #338966) * Added 91_sulogin_lockedpw.dpatch to make sure file systems can be fixed on machines with locked root accounts too, by presenting a shell in these cases. Patch from Ubuntu and Thom May. (Closes: #326678) * Make sure checkroot.sh calls mountvirtfs with argument 'start', to avoid usage message and making sure it is executed as it should. (Closes: #338966, #339351) * Print message when hostname is set. Use default 'localhost' if no hostname is set in /etc/hostname, and no current hostname is set. * In mountall.sh, add '-e' to swapon call, to ignore missing devices when enabling swap. Because of this, show error messages from swapon. * Add link to alioth project page in the Debian README. * Created new file /lib/init/functions.sh for functions common to scripts in initscripts. Moved dir_writable() into it. * Add new function selinux_enabled(). Use it before running /sbin/restorecon. [ Thomas Hood ] * Improve update-rc.d man page text. * Use log_action_* functions from recent (>= 3.0-6) lsb-base, to improve output formatting. (Closes: #338967) * Clean up initscript messages a bit, making them easier to understand for non-technical users. -- Petter Reinholdtsen Sat, 19 Nov 2005 15:07:33 +0100 sysvinit (2.86.ds1-5) unstable; urgency=low [Petter Reinholdtsen] * Make sure init.d/bootmisc.sh depend on hostname, as it uses the host name when generating motd. * Improve update-rc.d(8) manual page, documenting how to remove services and how to make sure services are not started. Patch from Peter Valdemar Mørch. * Add sysv-rc-conf(8) to the SEE ALSO section of update-rc.d(8). * Add suggest to bum for sysv-rc. Also added bum(8) to the SEE ALSO section of update-rc.d(8). (Closes: #332823) * Get update-rc.d to understand symlinks to /etc/init.d/ as well as symlinks to ../init.d/. (Closes: #338666) * Adjust and clean up init.d dependecy information. * Added 90_shutdown_H.dpatch to make sure shutdown flags -P and -H require the -h flag, and document this in the manual page. (Closes: #331041) * Added 71_wall_hostname.dpatch to include hostname in wall message from halt. (Closes: #325772) * Add comment in freshly installed /etc/default/rcS mentioning its origin. (Closes: #336873) * Revert fix for bug #295335, as the manual page patch is reported to be incorrect. Commented out 10_doc_lastb.dpatch from patches/00list. * Improve argument handling for init.d scripts. Based on patch from Enrico Zini. * On FreeBSD, set TERM=cons25 in init as the kernel isn't setting TERM. Patch from Robert Millan. (Closes: #335023) -- Petter Reinholdtsen Sun, 13 Nov 2005 12:55:47 +0100 sysvinit (2.86.ds1-4) unstable; urgency=low [Petter Reinholdtsen] * Add '#! /bin/sh' to the init.d scripts missing those. * Improve boot message for init.d/bootlogd. * Make sure init.d/checkroot.sh only print status of swap mounting when VERBOSE!=no. Improve boot message for this case. * Improve usage message of update-rc.d. Uncredited patch from Ubuntu. * Set pkg-sysvinit-devel@lists.alioth.debian.org as the package maintainer, and move Miquel van Smoorenburg into the uploaders list. * Get bootlogd working, by fixing the exit code patch. (Closes: #327865) * Get ifdown working on kFreeBSD. (Closes: #327031) * Quiet down update-rc.d by removing unnecessary warning. Patch by Thomas Hood. (Closes: #164471) * Improve update-rc.d(8) manual page. (Closes: #243154) * Fix typo in pidof(8) manual page. * Update FSF address in copyright files. -- Petter Reinholdtsen Sun, 2 Oct 2005 11:44:07 +0200 sysvinit (2.86.ds1-3) unstable; urgency=low * Fixed typo in last(1) manual page. (Closes: #326408) * Documented -e and -t option in telinit. (Closes: #272657) * Rewrote init.d/rc to avoid error from ls when no start or stop script is present in one rcX.d directory. * Updated the startpar source to version 0.49 from . Still hanging the boot on my test machine, so it is not included in the binary package. Added 01_enable_startpar.dpatch to document how to enable it. * Changed section of packages from base to admin, to match override file. * New lsb-base package avoid error during shutdown. (Closes: #327570) -- Petter Reinholdtsen Sun, 25 Sep 2005 10:40:03 +0200 sysvinit (2.86.ds1-2) unstable; urgency=low * This package is now maintained on Alioth as the pkg-sysvinit project. * Add myself as uploader. * Add support for linprocfs on kFreeBSD. Patch from Robert Millan. (Closes: #300963) * Rewrote /etc/mtab handling in mountvirtfs to work with SELinux. Based on patch from Luke Kenneth Casson Leighton. (Closes: #270919) * Add SELinux support to sysvinit on linux. Add build-depend on libselinux1-dev and libsepol1-dev for all linux archs. Patch from Manoj Srivastava, based on patch from Fedora. (Closes: #242900, #249515,#315611) * Drop redundant build-depend on essensial package bash. * Add version 0.47 of startpar(8) program from SuSe. Part of experimental parallel booting system. Not included by default yet, as it tend to hang during boot. * Add support for starting init.d scripts on the same level in parallel, to speed up the boot process a bit. Currently, only a simple system is implemented (and enabled by adding CONCURRENCY=shell in /etc/default/rcS). This simple system messes up the script output during boot. Disabled by default. (Closes: #316290) * Add 'kdm xdm gdm $syslog' as conditional dependencies of rmnologin, to move it further back in the boot process. * Make sure bootlogd return non-error exit code after forking off the child. (Closes: #326640) * Add more warning flags to list of compiler flags, to get more info about problematic code. * Avoid race-condition while fork()ing. Patch from SuSe. (Closes: #327612) * Improve error message when fork() fail in init. Patch from SuSe. * Avoid hardcoding tty name length in wall, use UT_LINESIZE instead. Patch from SuSe. * Force kernel to reschedule after killing processes. Patch from SuSe. * Make sure killall never tries to kill init (pid 1). Patch from SuSe. * Acknowledge NMUs. (Closes: #30659, #85221, #204857, #225476, #247102, #248739 #252059, #267935, #269774, #269894, #272588, #272916, #273496, #277204, #281782, #284426, #286081, #287243, #288098, #289562, #295094, #295335, #296489, #300645, #311741, #314351, #316431, #317385, #317704, #318453, #318857, #323749, #325933, #326460, #326495, #326647) -- Petter Reinholdtsen Sat, 11 Sep 2005 17:46:54 +0200 sysvinit (2.86.ds1-1.2) unstable; urgency=low * Non-maintainer upload to fix bugs. * Moved all changes to upstream source to debian/patches/, and use dpatch to apply them. * Modified pidof to not print empty line if no pid was found. (Closes: #225476) * Merged rcS into rc. (Closes: #326460) * Convert french version of update-rc.d(8) from UTF-8 to ISO-8859-1. (Closes: #273496) * Make sure binaries are stripped when installed, to avoid lintian warning. * Fix typo in debian/README (seperate->separate). * Modify debian/rules to install Debian changelog for sysv-rc and initscripts as changelog.Debian to keep lintian happy. * Corrected section of mountpoint(1) manual page. * Improve lastb(1) manual page. (Closes: #295335) * Changed init.d/rc to short-circit stop scripts when switching runlevels. Based on patches from Lukas Eppler and Steven Barker. (Closes: #30659) * Optimize boot speed by enabling the short-circit of start-scripts when switcing from rcS.d to the real runlevel. * Splitted umountfs in umountfs and umountroot. (Closes: #252059) * Avoid umounting /dev/ in umountfs. (Closes: #287243) * Made sure all init.d scripts handle start or stop argument. (Closes: #326495) * Added GFS file system to list of networked file systems. (Closes: #295094) * Added ocfs2 file system in to list of networked file systems. Patch from Fabio M. Di Nitto and Ubuntu. * Added trailing newline to the rebooting message, to make sure kernel messages end up on lines of their own during reboot. (Closes: #323749) * Added init.d script dependency info in LSB format. (Closes: #325933) * Do not fsck when running on battery. Patch from Thom May and Ubuntu. (Closes: #326647) * Updated initscripts to depend on lsb-base, and use the LSB functions in all init.d scripts. Patch from Ubuntu. (Closes: #269774) * Added some support for VERBOSE in checkfs.sh. * Make sure urandom pool size is restored on boot. (Closes: #267935) * Make it easier to override /etc/defaults/rcS parameters. (Closes: #286081) * Accept 96 (32/mount failure + 64/some mount succeeded) as a valid exit code from mount in mountall.sh. It seem to be returned when some mount points already was mounted. * Updated Standards-Version to 3.6.2.1 (no changes needed). -- Petter Reinholdtsen Sat, 10 Sep 2005 12:50:10 +0200 sysvinit (2.86.ds1-1.1) unstable; urgency=low * Non-maintainer upload (bug cleanup) * Fix stupid find warning by ordering the arguments correctly in /etc/init.d/bootclean.sh (closes: #284426, #316431) * Have cleantmp() in bootclean set TMPTIME to 0 if undefined to prevent from breaking if the variable is not defined properly. (Closes: #314351) * Introduce a better warning message in checkroot.sh when it fails to fsck the root filesystem (Closes: #272916) * Added a comment in /etc/init.d/skeleton regarding the use of 'sleep 1' and describing possible changes maintainers might need to introduce (Closes: #277204) * Remove .clean files if not owned by root in bootclean.sh to prevent users from tricking us to _not_ clean up some directories (Closes: #289562) * Do not remove nologin twice (i.e. in checkroot.sh and in rmnologin) (Closes: #317704) * Check if there is a portmapper running before starting it up in mountnfs.sh, also, use the portmap init.d script instead of running it through start-stop-daemon if it is available (Closes: #85221) * Do not install manpages with the execute permission bit (Closes: #281782) * Clarify semantics of TMPFS_SIZE in /etc/default/tmpfs (Closes: #317385) * Add feedback to user based on start-stop-daemon exit code in the skeleton init script (Closes: #296489) * Document the fact that shutdown touches /etc/nologin only 5 minutes before shutting down the system (Closes: #204857) * Add '-f' option to last manpage (Closes: #247102) * Fix man page and help screen of update-rc.d (Closes: #268713, #288098) * Changed 'editted' to 'regenerated' in /etc/default/rcS (Closes: #269894) * Fix formatting issue in mesg(1) (Closes: #272588) * Fix typo in bootlogd(8) manpage (Closes: #300645) * Document exit status of pidof(1) (Closes: #311741) * Point to proper chapter in init.d/README (Closes: #318453) * Describe the proper behaviour in rcS's README (Closes: #318857) * Added watch file provided by Stefano Fabri (Closes: #248739) -- Javier Fernandez-Sanguino Pen~a Wed, 10 Aug 2005 18:58:47 +0200 sysvinit (2.86.ds1-1) unstable; urgency=low * New upload with a clean .orig.tar.gz archive without the .o files. No other changes from 2.86-5. Used the .ds naming convention that is suggested for packages which need to have their docs removed (thanks, Marc Haber) -- Miquel van Smoorenburg Fri, 10 Dec 2004 00:04:18 +0100 sysvinit (2.86-5) unstable; urgency=high * Remove leftover debugging "echo" that prevented /etc/init.d/mountnfs.sh from actually doing anything (closes: #270894) -- Miquel van Smoorenburg Fri, 10 Sep 2004 16:57:34 +0200 sysvinit (2.86-4) unstable; urgency=high * Same upload, this time built without -sa so that original source isn't included (archive rejects it). -- Miquel van Smoorenburg Wed, 8 Sep 2004 11:59:08 +0200 sysvinit (2.86-3) unstable; urgency=high * Upload of -3 to unstable so that -2 can go into testing-proposed-updates -- Miquel van Smoorenburg Mon, 6 Sep 2004 20:07:38 +0200 sysvinit (2.86-2) testing-proposed-updates; urgency=high * Remove .clean file before touching it; prevents symlink attack which in rare circumstances could result in random file creation (closes: #264234) * Do the above in a noclobber environment (Martin Pitt). * Don't mount network filesystems multiple times (closes: #264894) * Include .orig.tar.gz source in -2 again ("dpkg-buildpackage -sa") - the one that comes with -1 erronously includes .o files and binaries (oops!). -- Miquel van Smoorenburg Mon, 6 Sep 2004 19:02:19 +0200 sysvinit (2.86-1) unstable; urgency=medium * Better algorithm for pidof (closes: #248210) * Include fsck.nfs.8 (closes: #250089) * Include new skeleton script (closes: #244908) * Better error message on failure to find path to mtab (closes: #255820) * Add support for fstype ncp (alias for ncpfs) (closes: #259971) * Touch /tmp/.clean earlier (closes: #255303) * Don't include halt and reboot for hurd-i386 (closes: #255880) * Remove XSIisms in mountvirtfs and invoke-rc.d (closes: #256726) * Add "-t $roottype" to mount -f for / (closes: #255849) * Always initialize PATH (to /bin:/usr/bin:/sbin:/usr/sbin) (closes: #258065) * Try harder to remount ro and rw (closes: #259979) * Add support for LABEL=/UUID= in checkroot.sh (closes: #261342) -- Miquel van Smoorenburg Fri, 30 Jul 2004 14:17:05 +0200 sysvinit (2.85-22) unstable; urgency=medium * Fix typo in /etc/init.d/halt (closes: #255133) -- Miquel van Smoorenburg Sat, 19 Jun 2004 12:40:12 +0200 sysvinit (2.85-21) unstable; urgency=medium * Create dependencies on glibc (>= 2.3.2.ds1-12) not through the shlibs.local hack anymore. That might clash with a future system shlibs file. Use the same method as we use to generate the mount dependency - with a script (closes: #253314). * In checkroot.sh always use the two-argument version of mount so that mount doesn't confuse device and directory (closes: #254724) * Change [ cond1 -a cond2 ] to [ cond1 ] && [ cond2 ] everywhere. * Fix mountvirtfs, it broke for virtual filesystems mentioned in fstab without any options (closes: #254271) -- Miquel van Smoorenburg Fri, 18 Jun 2004 13:43:55 +0200 sysvinit (2.85-20) unstable; urgency=low * Create /dev/pts in mountvirtfs for Linux + devfs (closes: #252625) -- Miquel van Smoorenburg Mon, 7 Jun 2004 13:45:12 +0200 sysvinit (2.85-19) unstable; urgency=low * Create /dev/{pts,shm} and /sys in postinst (closes: #252820, #252925) -- Miquel van Smoorenburg Mon, 7 Jun 2004 13:30:31 +0200 sysvinit (2.85-18) unstable; urgency=medium * Fix typo in /etc/init.d/single (closes: #252611) -- Miquel van Smoorenburg Fri, 4 Jun 2004 14:38:55 +0200 sysvinit (2.85-17) unstable; urgency=low * On Debian/k*BSD, dmesg is in /sbin (closes: #252518) * On Debian/k*BSD, RB_HALT_SYSTEM is called RB_HALT * RB_POWEROFF can be RB_POWER_OFF (closes: #252547, #252598) * Add /sys, /dev/pts and /dev/shm to sysvinit. Remove the mkdir's for those directories from mountvirtfs. -- Miquel van Smoorenburg Fri, 4 Jun 2004 11:51:46 +0200 sysvinit (2.85-16) unstable; urgency=high * Remove /etc/init.d/{mountkernfs,devpts.sh) that glibc installed since mountvirtfs now provides these. (closes: #230857) * Remove -e from mountvirtfs (closes: #232122) * Add some more comments/documentation to mountvirtfs * Initscripts depends on libc6 anyway right now, so we let it depend on libc6 (>= 2.3.2.ds1-12) via shlibs.local * Suggest sysv-rc-conf (closes: #244643) * Updated french manpage for update-rc.d (closes: #245007) * Use larger dmesg buffer (-s option) (closes: #242923) * Fix up comments in /etc/default/tmpfs (closes: #245681) * Added GNU/Hurd and kFreeBSD fixes (closes: #246743) * Run mountvirtfs again at S36 so that it mounts /proc/bus/usb in case usb was loaded as a module (closes: #249031) * Don't mkdir /dev/pts if it's not there - and don't mount devpts filesystem on it either in that case. Should help udev. * mountvirtfs now uses the options from /etc/fstab (closes: #251016) * add filesystem type "cifs" as network fs (closes: #248919) -- Miquel van Smoorenburg Thu, 3 Jun 2004 20:03:33 +0200 sysvinit (2.85-15) unstable; urgency=high * Drop bogus dependency on fileutils (closes: #241570) -- Miquel van Smoorenburg Mon, 5 Apr 2004 17:07:24 +0200 sysvinit (2.85-14) unstable; urgency=high * When remounting "/", just use "mount -n -o remount,rw /" and don't bother with the device or other arguments - "mount" will look up the root device in /etc/fstab, but the device argument to the mount system call is ignored by the kernel for remount anyway. So this doesn't hurt even if the device is incorrect, and it fixes a platform dependant case where "mount -n -o remount,rw /" fails with "mount: you must specify the filesystem type". That is a bug in mount(8): if you don't specify the type, it passes garbage to the kernel, and some archs choke on that. (closes: #239735) * change checkroot.sh so that it never checks the root filesystem if root is on NFS even if fs_passno is set (closes: #240470) * Reckognize type "nfs4" as network filesystem * Better check for file-rc in postinst of initscripts (closes: #240066) * Use /proc/sys/kernel/random/poolsize in urandom script (closes: #240057) * Applied Debian/KFreeBSD patches. Moved initctl to /etc/.initctl for the FreeBSD kernels. (closes: #226939) -- Miquel van Smoorenburg Wed, 31 Mar 2004 13:10:48 +0200 sysvinit (2.85-13) unstable; urgency=low * Add /etc/default/halt (closes: #196983) * Set default variables used in every /etc/init.d script explicitly and only source /etc/default/rcS if it is present (closes: #239439) * Fix MOTD typo in bootmisc.sh (closes: #239279) * Include lastb (closes: #239586) * Remove /lib/init/realpath (closes: #239343) -- Miquel van Smoorenburg Tue, 23 Mar 2004 16:55:38 +0100 sysvinit (2.85-12) unstable; urgency=low * Support for root on devices with a dynamic major, such as LVM and partitionable RAID. If the root device in /etc/fstab doesn't match up with the actual root device, we try to create a temporary device node in /dev/shm/root so fsck and remount rw can be done. * Use lstat() instead of stat() in the mountpoint(8) utility. * Fix checkroot devfs behaviour. * Hmm, /usr/bin/test -w works to check if a filesystem is readonly, but bash's built-in doesn't. Work-around with touch -a. * /lib/init/readlink was completely broken, argh. Fixed borkenness. Also changed behaviour so that readlink -ff is equivalent to realpath, and -f doesn't insist on the path being a symlink. (closes: #238611) * Removed one more init_setenv debug message from init.c * Move mountpoint and readlink to initscripts, so that initscripts doesn't have to depend on a specific version of sysvinit anymore (closes: #239059) * Make initscripts non-essential (needed for Hurd) (closes: #219969). * Remove period from short description (closes: #239098) * Improved handling of /etc/nologin symlink (closes: #184402) * Make sure 'skeleton restart' restart the service even if it is not running in accordance to policy 3.5.9.0 (closes: #184342) * Change -name x into -path ./x in bootclean.sh (closes: #193627) * Remove /usr/local from bootlogd path, move /sbin:/bin to the front of the PATH. /usr/bin:/usr/sbin is kept around because the stop action needs it for savelog. (closes: #230763) * Remove x bit from bootclean.sh (closes: #230762) * Consolidate variables in skeleton (closes: #122486) * Move set -e up in skeleton (closes: #148847) * Include spanish manpage for update-rc.d (closes: #209199) * In /etc/init.d/README change http: URL to file: URL (closes: #151761) -- Miquel van Smoorenburg Sun, 21 Mar 2004 13:10:09 +0100 sysvinit (2.85-11) unstable; urgency=high * Move runlevel back to /sbin (closes: #238261) * Move killall5 back to /sbin (closes: #238416) * More finetuning of the included readlink program. It now has a much more correct version of realpath() than glibc (famous last words). -- Miquel van Smoorenburg Wed, 17 Mar 2004 00:29:53 +0100 sysvinit (2.85-10) unstable; urgency=low * Provide mountvirtfs. It mounts /proc,/sys, etc at early boot. Libc6 does this too with a script called mountkernfs which is called later, but that shouldn't matter. Libc6 must remove it later on. Perhaps we should remove the symlink - I'm not sure. * Add /etc/default/{devpts,tmpfs} to initscripts. Add Replaces: libc6, libc6.1 to control for initscripts. * Add /lib/init/readlink which we can use until the standard readlink has the features we need. * Fix maxproclen issue (closes: #236138) * Remove INIT_HALT debug message (closes: #230743) * When cleaning /tmp, don't look at directory atime for aging info (closes: #236709,#205486,#221622) * bootclean.sh: only run if find and xargs are available (closes: #232635) * Depend on mount (>= 2.11l-1) for the -l option (closes: #217702) * Mount non-/ proc filesystems in mountall.sh. This will not work if you want to mount /foo/bar/proc if /foo/bar is an NFS filesystem, but this will do for now (closes: #234152) * Add coda to list of networked filesystems in mountall.sh/mountnfs.sh -- Miquel van Smoorenburg Tue, 16 Mar 2004 01:04:06 +0100 sysvinit (2.85-9) unstable; urgency=low * Fix typo in /etc/init.d/halt (closes: #224626) * Fix /etc/mtab-is-a-symlink corner cases (closes: #204619) * Fix /etc/init.d/mountall.sh to only mount local fses (closes: #224720) * Replace reference to dpkg programmer's manual in update-rc.d.8 with reference to Debian Policy (closes: #223658) -- Miquel van Smoorenburg Tue, 23 Dec 2003 12:16:14 +0100 sysvinit (2.85-8) unstable; urgency=low * Clean /tmp, /var/run and /var/lock directly after mounting all local filesystems and once more after mounting network filesystems, but not more than once per directory (closes: #208226,#223495) * Do not run bootlogd by default - it's a bit to experimental for the "stable" release. Can be turned on manually (closes: #217582) * Fix /etc/init.d/bootlogd (closes: #208578) * Rework umountnfs.sh/umountfs (closes: #204425, #206111, #20863, #203050) * Depend on mount >= 2.11l (closes: #217702) * Don't use umount -l on 2.4 kernels < 2.4.11 (closes: #217701) * /var/log/boot mode 640, group adm (closes: #204400) * Deal correctly with /etc/mtab being a symlink (closes: #204619) * Set TMPTIME to "infinite" to not clean /tmp (closes: #205894) * Mount all proc filesystems (closes: #206979) * Fix typo in invoke-rc.d manpage (closes: #196135) * Set correct permissions on /etc/{rcS.d,init.d}/README (closes: #201467) * Update /etc/init.d/README (refer to correct paragraph) (closes: #206411) * bootlogd: handle comma's in console= (closes: #213749) * Remove trailing space from 'echo -n "something ... "' (closes: #219202) * Include documentation on invoke-rc.d and policy-rc.d (closes: #219245) * Remove empty /usr/include from sysv-rc (closes: #222538) * Let sysvinit Pre-Depend on file-rc | sysv-rc (closes: #221808) -- Miquel van Smoorenburg Thu, 18 Dec 2003 23:11:20 +0100 sysvinit (2.85-7) unstable; urgency=low * Fix devfs mtab fixup in checkroot.sh (closes: #202421) * pidof symlink should be in /bin (closes: #202611) -- Miquel van Smoorenburg Wed, 23 Jul 2003 19:11:59 +0200 sysvinit (2.85-6) unstable; urgency=high * When bootlogd gets an error writing to the real console, try to re-open. If that fails, roll over and die (closes: #202382) -- Miquel van Smoorenburg Tue, 22 Jul 2003 12:43:07 +0200 sysvinit (2.85-5) unstable; urgency=low * Allow "init u" to fail in postinst without bailing out with an error (closes: #197991, #198216, #198309, #198937) * Revert changes to bootmisc wrt /etc/nologin, leave out the /etc/nologin.boot stuff (which never worked anyway), /etc/nologin is now always cleaned out on boot. (closes: #198444, #184402, #199943, #199401) * Block signals in syslog(), since syslog() is not re-entrant (James Olin Oden , redhat bug #97534) * Remove rc.boot manpage completely instead of installing it first and then removing it in sysv-rc's postinst * When unmounting all filesystems, do not unmount /proc, /dev and /sys (closes: #198970, #184594, #173878, #200147, #198793) * Umount network filesystems lazily (-l) (closes: #164503) * Clarify initscript manpage (closes: #174058) * Use /proc as reference to see if files in /var/lock and /var/run are stale (closes: #198792). I should look at #120545 to actually fix this right, I guess. * Include bootlogd (closes: #151880, #15447, #132662) * Move update-rc.d for initscripts to the initscrips packages' postinst instead of doing it in the postinst of sysv-rc -- Miquel van Smoorenburg Mon, 21 Jul 2003 12:48:11 +0200 sysvinit (2.85-4) unstable; urgency=medium * Move default.rcS to /usr/share/initscripts, fix postinst (closes: #190921) * Only clean /tmp if it is mode 777 (really in -3) (closes: #139870) * Move initscripts and sysv-rc to binary-indep target (closes: #190801) * Save fsck exit code in variable (closes: #189917,#194827,#197483) * If /etc/motd is a symlink, follow it when editting /etc/motd (closes: #150355) * If /etc/nologin is a symlink, remove the destination file after bootup instead of the link itself (closes: 191041) * Don't remove /etc/mtab~ if /etc/mtab is a symbolic link * Only start 'update' when running kernels < 2.4 * Mount /proc before mounting other filesystems, umount all proc filesystems at shutdown except /proc (closes: #140591,#197317) * Add 'set -e' to postinst (closes: #148465) * Don't umount devfs at shutdown time (closes: #156490) * When cleaning /tmp, first remove old files then remove old empty directories (closes: #193623) * Don't remove /tmp/...security* (closes: #195760) -- Miquel van Smoorenburg Wed, 18 Jun 2003 16:08:09 +0200 sysvinit (2.85-3) unstable; urgency=high * Move sample inittab files to /usr/share/sysvinit (closes: #189761) * Make sysv-rc point update-rc.d and invoke-rc.d to the dummy /usr/share/sysvinit/update-rc.d script in the postrm script, so that dpkg remains happy when installing file-rc or another package to replace sysv-rc. * Minor adjustements so that sysvinit compiles on the Hurd (closes: #43575) * For now set Architecture: all on sysv-rc and initscripts (closes: #190179, #190182) * Add upstream source to copyright file (closes: #15183) * Remove /etc/rc.boot from sysv-rc (closes: #113821) -- Miquel van Smoorenburg Wed, 23 Apr 2003 15:26:21 +0200 sysvinit (2.85-2) unstable; urgency=high * sysv-rc must not Depend: on sysvinit, otherwise sysvinit/sysv-rc is not installable. -- Miquel van Smoorenburg Tue, 22 Apr 2003 12:40:54 +0200 sysvinit (2.85-1) unstable; urgency=low * Support for IPv6 in 'last'. * Fix -i/-d options in last (closes: #171134) * /dev/.devfsd: check only for existance, not for type (closes: #170852) * Don't remove pump.sock from /var/run/utmp (closes: 167572) * Get rid of /etc/ioctl.save, it's a legacy thing from Unices with a serial console and no way to set reset the linespeed at boot. With Linux we have console=tty0,speed as bootparameter anyway. * Remove support for file-based runlevel signalling. All systems use /dev/initctl by now (I hope, but we'll see). * When cleaning /tmp, check atime and mtime as well (closes: #179006) and do not remove aquota.user and aquota.group (closes: #175874) * Only clean up /tmp at boot if it is world-writable. * If fsck of the rootfs returns 2 or 3, reboot (closes: #170442,#167300) * Sulogin: even if the root password is empty, ask for a password- otherwise there is no way to set a timeout (closes: #180246) * Split up sysvinit into sysvinit, sysv-rc and initscripts. -- Miquel van Smoorenburg Fri, 18 Apr 2003 21:26:53 +0200 sysvinit (2.84-3) unstable; urgency=low * Upload into unstable of 2.84-3 so 2.84-2woody1 can go into woody-proposed-updates tomorrow or so. -- Miquel van Smoorenburg Tue, 28 May 2002 11:44:26 +0200 sysvinit (2.84-2woody1) woody-proposed-updates; urgency=high * On some systems, /proc didn't get mounted because there is junk under the /proc mountpoint, makeing the system unuseable. Fixed by an extra check. Also warns the user. (closes: #134316) * Fix typos in README.runlevels (closes: #94745) * Update /etc/init.d/skeleton to comply with policy (closes: #96711,#121947) * On some systems "init" might show up as "ini" in "ps" output due to a off-by-one error in maxproclen calculation (closes: #132870) * Fix typo (SBM - SMB) in /etc/init.d/mountnfs.sh (closes: #139251) * Fix typo in debian/rules that installed prerm as preinst, and preinst not at all (closes: #148174) * Up severity to "high" since any program with write access to /var/run/utmp (group utmp) could trick the "shutdown" command into corrupting random files (note that currently there are no known exploits for setgroup-id-utmp programs). -- Miquel van Smoorenburg Mon, 27 May 2002 22:37:23 +0200 sysvinit (2.84-2) unstable; urgency=low * modernized inittab manpage. * Don't shut down IDE drives on halt if RAID is active (closes: #127635) * Add /etc/init.d/umountnfs.sh to conffiles (closes: #122190) * Only mount /proc in checkroot.sh if it's not mounted yet. This gives earlier scripts the possibility to mount /proc and just leave it mounted. * Set maxproclen correctly on re-exec. Make sure setproctitle() leaves at least two zeroes at the end of the argv array. * Don't put IDE drives into standby mode at halt time if RAID is still active, since the RAID halt/reboot/poweroff codepath in the kernel still needs to flush the RAID metadata to disk. (closes: #127635) * Use 'dmesg -s 65536' when writing /var/log/dmesg (closes: #128568) * Mount /proc only if not mounted yet, don't unmount (closes: #118977) * Commented out kb line in sample inittab (closes: #130126) * Update /etc/rcS.d/README (closes: #130225) * Don't duplicate options when remounting rootfs (closes: #119381) -- Miquel van Smoorenburg Fri, 25 Jan 2002 14:02:17 +0100 sysvinit (2.84-1) unstable; urgency=high * Don't use /etc/initlvl interface for telinit; only use /dev/initctl, and give a clear error when that fails (closes: #116829) * Add -i/--init command line flag to init - this tells init 'behave as system init even if you're not PID#1'. Useful for testing in chroot/jail type environments. * Use --print-installation-architecture in postinst instead of --print-architecture. -- Miquel van Smoorenburg Tue, 27 Nov 2001 13:08:45 +0100 sysvinit (2.83-3) unstable; urgency=low * Don't disable write caching on IDE disks before unmounting file systems, since that flag is kept over reboot. Instead the halt program now has an extra -h switch that makes it send all IDE drives a "standby" command that as a side effect flushes the write-cache. That flag is used in /etc/init.d/halt -- Miquel van Smoorenburg Wed, 7 Nov 2001 16:11:28 +0100 sysvinit (2.83-2) unstable; urgency=high * Only disable write caching on disks, not on all IDE devices such as CDROMs (closes: #115354,#115822,#117390) * Mount verbose, except for proc (closes: #115362,#111481) * Add comments about not using tty7 to default inittab (closes: #117618) * Install inittab.$(arch) as default inittab in the installation process, if it exists. Add inittab.s390 (closes: #113495) * Appears that the 'shutdown to fast' bug is closed by turning off the IDE write cache at shutdown (closes: #110804). Only thing is that this should probably get in the kernel somehow, as it's really a kernel bug. -- Miquel van Smoorenburg Thu, 1 Nov 2001 13:21:58 +0100 sysvinit (2.83-1) unstable; urgency=high * Upstream fix: race condiction in wait() [Andrea Arcangeli] * shutdown.allow processing broke due to typo (closes: #111199) * Call closelog() after openlog()/syslog() since recent libc's keep the logging fd open and that is fd#0 aka stdin (closes: #111901) * Typo in shutdown manpage fixed (closes: #112815) * Don't remove .journal file during tmp cleanup (closes: #113564) * Don't use '-v' flag to mount in mountall.sh (closes: 111481) * Fix policy reference in README (closes: #97925) * Treat 'ncpfs' as remote filesystem (closes: #94510) * Don't do fsck -C if $TERM is unset or set to dumb|network|unknown. Also don't do fsck -C if `uname -m` = s390 * Turn off write-caching on all IDE disks prior to unmounting filesystems. On some systems that poweroff on halt the system powers off before the IDE disk write cache is flushed. You do need to have hdparm installed to get this to work. -- Miquel van Smoorenburg Fri, 5 Oct 2001 14:37:42 +0200 sysvinit (2.82-1) unstable; urgency=low * New upstream version. * Now prints out correct version at startup (closes: #109558,#108377) * Versioned replaces (dpkg << 1.9.17) (closes: #109557) * Mount all proc filesystems in fstab (closes: #108109) * Fix spelling of initttab in init(8) (closes: #100659) * Clarify "usage" message of update-rc.d (closes: #108391) -- Miquel van Smoorenburg Thu, 23 Aug 2001 17:50:03 +0200 sysvinit (2.81-1) unstable; urgency=low * New upstream version. * 'pidof' now finds processes that do weird stuff with their name in 'ps' listings (i.e. use setproctitle()) (closes: #67021) -- Miquel van Smoorenburg Tue, 31 Jul 2001 18:25:11 +0200 sysvinit (2.80-3) unstable; urgency=high * The diff that dpkg-source builds doesn't include empty directories so we now create them in the debian/rules file. * Make /etc/init.d/* executable (closes: #107018) -- Miquel van Smoorenburg Mon, 30 Jul 2001 16:15:29 +0200 sysvinit (2.80-2) unstable; urgency=high * Use install -m 755 instead of copy for the pre/post install/remove scripts (closes: #106730) -- Miquel van Smoorenburg Thu, 26 Jul 2001 22:46:52 +0200 sysvinit (2.80-1) unstable; urgency=medium * New upstream version * Don't prevent raid-rebuild from activating swap on 2.4 and up (closes: #80446, #83118). * Document IO redirection in wall manpage (closes: #79491) * Use -x in skeleton file (closes: #67143) * Update README (closes: #85650) * Unmount tmpfs before turining off swap (closes: #84782) * Fix check for passno in checkroot.sh (closes: #84035) * Make sure scripts exit with code 0 if succesful (closes: #83410) * Don't try to set hostname if /etc/hostname is not present (closes: #81711) * Mount /proc early and keep it mounted (closes: #75936, #71433, #88352) * Fix init.8 manpage (closes: #75268) * Small fix to rc script (closes: #72859) * Optimize /tmp cleaning (closes: #71176) * Check for update before executing it in "single" script (closes: #68983, #103144) * Build package with SHELL=/bin/bash (closes: #68623) * Fix typo in halt(8) manpage (closes: #67875) * Check time argument of shutdown(8) for correctness (closes: #67825) * Don't chown ptys on devfs system (closes: #88300) * Check for stale sessions in last(1) (Chris Wolf ) * Include invoke-rc.d (closes: #94140). Conflicts: file-rc (<= 0.5.7) * Move random-seed to /var/lib/urandom (closes: #102216) * Moved update-rc.d from dpkg to sysvinit * Didn't include the UPS changes yet, that will come in a later 2.80-xyz version -- needed to get 2.80 out of the door first. -- Miquel van Smoorenburg Thu, 26 Jul 2001 14:07:03 +0200 sysvinit (2.78-4) frozen unstable; urgency=high * In /etc/init.d/checkroot.sh, change 10>&0 into 9>&0, since ash doesn't handle file descriptors > 9 -- Miquel van Smoorenburg Sun, 25 Jun 2000 14:03:04 +0200 sysvinit (2.78-3) frozen unstable; urgency=medium * Fix critical bug #61227: Kernel panic/filesystem corruption if swapping started while software RAID resyncing. As this doesn't matter on 99% of the installs out there it's up to the release manager to decide whether to put this in potato or not (closes: #61227). * Fix up /etc/init.d/README paths (closes: #58935,#58595) * Don't check root filesystem if "pass" in /etc/fstab is 0 (closes: #65125) * Unmount remote filesystems before network is shut down (closes: #60898,#61907). This also was a release-critical bug. * Changed "file systems" to "filesystems". -- Miquel van Smoorenburg Tue, 6 Jun 2000 11:08:24 +0200 sysvinit (2.78-2) frozen unstable; urgency=high * Change "booting" to "reloading" message at reload * Don't create /etc/init.d/network if missing (closes: #56373) * Treat SMB filesystems like NFS ones in mountall.sh and mountnfs.sh (fixes: #55414) * bootmisc.sh: do not remove files in /var/run that are newer than /etc/mtab. This should preserve pid files created before this script ran (closes: #49816) * Add "-z xxx" dummy command line argument (closes: #54717) -- Miquel van Smoorenburg Fri, 11 Feb 2000 12:17:54 +0100 sysvinit (2.78-1) unstable; urgency=low * 2.78 will be the new upstream version, I'm skipping 2.77 * Update /etc/init.d/rc (closes: #48764) * Add -C argument to fck (closes: #47914, #53335) * don't remove files in /var/run and /var/lock that are newer than /etc/mtab (may fix the dhcpcd problems) * Save kernel messages in /var/log/dmesg like RedHat does (closes: #47574) * Shutdown now calls sync before switching the runlevel to 0 or 6, or before unmounting filesystems if -n was used (closes: #46461) * Call umount with -f option to force NFS umounts (closes: #45715) * Fix TMPTIME documentation in rcS(5) (closes: #42570, #53224) * Some cosmetic changes to init.c (closes: #32079) * Move to /usr/share to comply with latest policy -- Miquel van Smoorenburg Thu, 30 Dec 1999 20:40:23 +0100 sysvinit (2.77-3) unstable; urgency=low * Remove hwclock.sh initialization and script itself (closes: #45164) -- Miquel van Smoorenburg Tue, 5 Oct 1999 21:52:02 +0200 sysvinit (2.77-2) unstable; urgency=low * Recompile against glibc 2.1 instead of 2.0 * Fix compilation problems with glibc 2.1 * Fix last -i option -- Miquel van Smoorenburg Tue, 5 Oct 1999 21:51:50 +0200 sysvinit (2.77-1) unstable; urgency=low * Write reboot record into utmp file as well to make rms happy * Change GMT to UTC in /etc/default/rcS * Change /var/run/utmp to mode 664 group utmp if utmp group exists * Fork and dump core in / if SIGSEGV is received for debugging purposes * Patch by Craig Sanders for "last" -i option * Fixes: #35429: sysvinit: bad comments in /etc/defaults/rcS #37807: mountnfs.sh should start rpc.statd if available #38384: sysvinit: Slight gramitical error in /etc/init.d/README #41660: [Patch] bootmisc.sh: Change /var/run/utmp ownership to [...] #41458: mountnfs.sh: should ignore noauto #40923: sysvinit: /etc/ioctl.save a state file? #42183: util-linux: hwclock.sh depends on UTC which is not defined -- Miquel van Smoorenburg Wed, 4 Aug 1999 11:16:23 +0200 sysvinit (2.76-4) unstable; urgency=low * Change dowall.c to handle Unix98 ptys correctly * Add comment in rcS about usage of setup.sh and unconfigured.sh * Shutdown now removes nologin file just before calling telinit * SEGV handler now tries to continue after sleep of 30 seconds. On a 386-class processor it also prints out the value of EIP. * Fix for racecondition in check_init_fifo() by Richard Gooch * Fixes: #32698: sysvinit: checkroot.sh: should add devfs entry to mtab #35689: wall/shutdown cannot handle Unix98 PTYs #30392: sysvinit scripts are not executable #32699: bootmisc.sh: should check for existence of /dev/tty[p-za-e][0-9a-f] #34062: mountnfs.sh: ignore comments in fstab [patch] #34780: sysvinit: ignores most options for rootfs #35017: sysvinit: nologin after sungle user mode [sic] #36209: init: segmentation violation (possibly kernel) #36294: sysvinit: sulogin does not appear to recognize shadow passwords #36705: README in init.d has section number off by 0.1 #36849: sysvinit: shutdown doesn't send shutdown message to unix98 ptys #36856: sysvinit: /etc/init.d/rc calls bash for no reason #37265: sysvinit: devpts incompatibility? #32698: sysvinit: checkroot.sh: should add devfs entry to mtab #33954: sysvinit: [wishlist] bootmisc.sh: touch /var/run/utmpx -- Miquel van Smoorenburg Sat, 8 May 1999 17:22:57 +0200 sysvinit (2.76-3) frozen unstable; urgency=high * Small bugfix to last.c courtesy of Danek Duvall * Recompile with latest libs, so dependency on libc6 (>= 2.0.7u) is gone. * Fixes bugs: #31601: sysvinit: Doesn't wipe new files from /tmp #28132: checkroot.sh parsing of /etc/fstab is incorrect. #29729: sysvinit: references wrong policy homepage #27949: last: should use down instead of crash -- Miquel van Smoorenburg Tue, 12 Jan 1999 12:12:44 +0100 sysvinit (2.76-2) frozen unstable; urgency=high * Minor fix in debian/rules for dependency problem on the Alpha. -- Miquel van Smoorenburg Thu, 5 Nov 1998 10:54:28 +0100 sysvinit (2.76-1) frozen unstable; urgency=high * Fix bug in check_pipe() which crashes init on the Alpha. * Re-upload since this should go into frozen too, ofcourse. * Changed the version number to 2.76, even though it's a minor upgrade. I want to release this version outside Debian too. -- Miquel van Smoorenburg Tue, 3 Nov 1998 11:09:13 +0100 sysvinit (2.75-4) unstable; urgency=low * Change sulogin password buffer to 128 characters. * Don't print control characters in dowall.c * Try to open getenv ("CONSOLE"), /dev/console and /dev/tty0 in order. For backwards compatibility when you try to boot a 2.0.x kernel with a linux > 2.1.70 /dev/console device. * Change src/Makefile for non-debian systems (mainly, RedHat) * Try to create /dev/initctl if not present; check every time to see if the dev/ino of /dev/initctl has changed and re-open it. This should help devfs a bit. * Send SIGUSR1 to init at bootup to let it re-open /dev/initctl; again in support of devfs. * Rewrite of mountnfs.sh by Chris Ulrich * Moved pidof to /bin (it's only a link to killall5 anyway) * Fixes bugs: #11895: pidof exists, is unreliable, and is not deprecated #23943: `"$FSCKFIX" = yes' needed in "checkroot.sh", too #24190: sysvinit: postinst and telinit u #25531: sysvinit: README refers to the fatman website #26115: sysvinit: There is no support for a read only root #26179: sysvinit: pidof in /sbin ? why ? #26281: sysvinit: Obsolete location for Policy Manual in /etc/init.d/README #15739: libc6: strange interferention between sleep() and fork() -- Miquel van Smoorenburg Mon, 5 Oct 1998 14:03:14 +0200 sysvinit (2.75-3) frozen unstable; urgency=high * Source /etc/default/rcS in all scripts, otherwise file-rc is broken. * Do not call update-rc.d for isapnp * Fixes: #23556: sysvinit tries to install isapnp #23270: sysvinit: /etc/default/rcS: comment should indicate time units #23191: /etc/default/rcS #23651: sysvinit: sysvinit fails to clean stale X locks in /tmp -- Miquel van Smoorenburg Mon, 22 Jun 1998 14:48:53 +0200 sysvinit (2.75-2) frozen unstable; urgency=medium * Fix last.c again. * Add check to see if /dev/initctl is really a FIFO * In ifdown.c first down all shaper devices then the real devices * Fixes bugs: #22840: sysvinit (2.75-1): patch request for sparc #22965: rcS is not sh independent #22945: Problems with last ( bug in sysvinit package)? #23005: sysvinit: [patch] install initreq.h for `genpowerd' patch. -- Miquel van Smoorenburg Tue, 2 Jun 1998 22:43:01 +0200 sysvinit (2.75-1) frozen unstable; urgency=low * Rewrote last.c to be much more memory friendly and correct, thanks to Nick Andrew and David Parrish * Fixes bugs: #21616: sysvinit: sulogin thinks md5 root password is bad #21765: sysvinit: Typo in `killall5.c' #21775: sysvinit: sysvinit does not support MD5 hashed passwords #21990: /usr/bin/last: unnecessary memset and off-by-one bug #22023: sysvinit: nfs isn't mounted #22084: sysvinit 2.74-4: SIGPWR missing on sparc #21900: init, powerfail events, and shutdown.allow #21702: init 0 does not work as expected... #21728: sysvinit: Typo in `init.c' #22363: sysvinit: discrepance btw. manpage and /sbin/init #22579: power-off on halt -- Miquel van Smoorenburg Tue, 19 May 1998 11:02:29 +0200 sysvinit (2.74-4) frozen unstable; urgency=medium * Add -o option to last to process libc5 utmp files. * Buffer overflow fixed in init.c (not very serious; only exploitable by root). Thanks to Chris Evans * Fixes: #20147: filesystems not unmounted on reboot #20702: sysvinit: example inittab is broken #20957: errors mounting remote filesystems #20063: fsck is _always_ called with -y option -- Miquel van Smoorenburg Wed, 15 Apr 1998 17:04:33 +0200 sysvinit (2.74-3) frozen unstable; urgency=high * Install hwclock.sh (was missing!) -- Miquel van Smoorenburg Thu, 19 Mar 1998 20:15:06 +0100 sysvinit (2.74-2) frozen unstable; urgency=high * Fix problem with removing kbd startup file * Fixes bugs; #19711: sysvinit: postinst uses /tmp/*.$$ #14785: sysvinit: non executable scripts from examples #17004: suggestion for raidtools -- Miquel van Smoorenburg Mon, 16 Mar 1998 12:56:10 +0100 sysvinit (2.74-1) unstable; urgency=low * Should compile with glibc 1.99 :) * Now confirms to policy manual 2.4.0.0 * Change behaviour of reboot(1) and halt(1) so that the default when the runlevel can't be determined is to call shutdown. * Updated README and skeleton * Depends on new dpkg for the new update-rc.d * Added re-exec patch from Al Viro (21 Feb 1998): 'U' flag added to telinit. It forces init to re-exec itself (passing its state through exec, certainly). May be useful for smoother (heh) upgrades. 24 Feb 1998, AV: did_boot made global and added to state - thanks, Miquel. Yet another file descriptors leak - close state pipe if re_exec fails. * Now no longer contains mdutils.sh and conflicts with older mdutils * /etc/rc.S/*.sh scripts that use set -e or exit no longer stop the whole boot process. * Fixes: #16082: sysvinit: filesystems do not get unmounted properly on shutdown #16977: sysvinit: libc6 twice into Pre-Depends #17012: sysvinit: minor typo in install #17084: /etc/rcS does not use a start arg #17276: sysvinit: SIGUSR1 causes init to eat CPU #18541: sysvinit: ^C aborts entire rcS script -- Miquel van Smoorenburg Thu, 12 Mar 1998 17:42:46 +0100 sysvinit (2.73-2) unstable; urgency=low * Change _NSIG to NSIG for 2.1.x kernel includes. * Hopefully fixes bug 16082, but we'll see.. * Fixes bugs: #16622 sysvinit: should not depend on kbd #16807: /etc/init.d/mdutils.sh is started at bootup _and_ halt/reboot. -- Miquel van Smoorenburg Thu, 8 Jan 1998 16:01:02 +0100 sysvinit (2.73-1) unstable; urgency=low * Use siginterrupt, now that system calls are restarted by default. Main symptom was that the sulogin timeout didn't work but there might have been more hidden problems. * Kill process immidiately if turned off in inittab * Fixed sulogin check on tty arg. * Use strerror() instead of sys_errlist * Chop up the reboot and halt scripts into seperate scripts. I had to take some liberties so they are called with the argument "stop" even though the scripts are Sxx scripts .. (start scripts in runlevel 0&6 seem non-intuitive anyway) * wall now supports a '-n' option to suppress [most of] the banner. Debian doesn't use sysvinit's wall, but apparently Redhat does. * Add '-F' (forcefsck) option to shutdown * Depends on kbd_0.95-2 (or higher) package for /etc/rcS.d stuff. * Close and reopen /dev/initctl on SIGUSR1 (mainly for a /dev in ram) * Add FSCKFIX option to /etc/default/rcS * Wrote rcS.5 manpage describing /etc/default/rcS * Fixes bugs: #13435: Could shutdown provide a way to force fsck? #14108: sysvinit: sulogin's timeout does not work anymore #14179: sysvinit: /etc/init.d/(halt|reboot) need to call mdstop #14357: sysvinit: typo errors into script shells #15010: shutdown is too fast #15405: sysvinit: changelog uncompressed #15751: "sulogin -t " does not time out #15758: Outdated reference in README -- Miquel van Smoorenburg Sat, 3 Jan 1998 16:32:39 +0100 sysvinit (2.72-3) unstable; urgency=low * Remove perl check from preinst * Add extra fork() in dowall.c to avoid hanging in rare cases * Conflict with file-rc (<= 0.4.1) * The 2.72 series fix the following bugs: #9819: sysvinit: Typo in `pidof` manual #9820: sysvinit: Incorrect filenames in `shutdown` manual #9821: sysvinit: `init` manual gives incorrect information #9822: sysvinit: `inittab` manual #10045: sysvinit: error message "no more processes..." #10276: sysvinit has uncompressed manpages. #11728: libc6 #11879: sysvinit: file in /tmp security hole #12172: Sysvinit: Contains powerd manpage but not powerd #12465: Trivial typos in killall5 man page #12631: sysvinit: unchecked prompting in postinst #13290: clock is now hwclock #13300: patch to init.d/boot for compressed keymaps #13344: sysvinit: command 'clock' not found #13789: sysvinit: /etc/init.d/boot calls "clock", should call "hwclock" #13830: sysvinit: Upgrading to new sysvinit left system unusable #13838: sysvinit: gratuitous use of perl -- Miquel van Smoorenburg Wed, 22 Oct 1997 14:44:00 +0200 sysvinit (2.72-2) unstable; urgency=high * Don't use perl in postinst. Use more flexible regexp to match the sysinit line. * Remove /etc/default/boot from package * Fix settime.sh for hwclock -- Miquel van Smoorenburg Tue, 14 Oct 1997 12:40:23 +0200 sysvinit (2.72) unstable; urgency=low * Applied manual page patches by Bill Hawes . Thanks Bill! * Applied patches to the sample Slackware scripts by "Jonathan I. Kamens" * Fix halt and reboot runlevels 0 & 6 check. * Only say "no more processes left in runlevel x" once * Fix race condition with SIGCHLD in spawn() (thanks to Alon Ziv ) * Compress all manpages (missed 2) * Compiled for libc6 * Split up /etc/init.d/boot into seperate files in /etc/rcS.d * Remove powerd.8 from debian package * Fix /etc/init.d/settime.sh to look for hwclock first * Added poweroff patch by Roderich Schupp -- Miquel van Smoorenburg Sun, 12 Oct 1997 17:20:17 +0200 sysvinit (2.71-2) frozen unstable; urgency=low * Print 2.71 instead of 2.70 on startup :) * Fix /etc/init.d/skeleton for new console messages standard. -- Miquel van Smoorenburg Mon, 5 May 1997 12:45:25 +0200 sysvinit (2.71-1) frozen unstable; urgency=high * Added code for updwtmp() in utmp.c for glibc (2.0.3) * Fixed all programs to use functions from utmp.c and getutent() * Do not try to clean up utmp in init itself (Bug#9022) * Removed sync() from main loop. * Fix bug #8739 (/fastboot) * Hopefully fixes bug #8657 (shutdown signal handling) * Mount /proc before modules are loaded * Check on both /etc/init.d/modules and modutils (Bug#9058, #8398) * Fix PATH order (Bug#8087) * Fix console messages (Bug#8899) -- Miquel van Smoorenburg Sat, 26 Apr 1997 19:57:27 +0200 sysvinit (2.70-1) unstable; urgency=low * small fix for postinst (Bug#5866) * Respawn fix * Removed StUdLy CaPs from source code * Moved files in source archive around * Moved mdadd in "boot" script to get called after module loading * Fixes for glibc (utmp handling, signal handling). * Fixed '-d' option to last (now also works without '-a'). * Added extra checking in last.c to prevent showing dead entries -- Miquel van Smoorenburg Fri, 7 Feb 1997 15:31:30 +0100 sysvinit (2.69-1) frozen unstable; urgency=medium * Fixed bug that can throw X in a loop (or any other app that reads from /dev/tty0) * Moved inittab to /usr/doc/sysvinit/examples so that it is no longer a config file. -- Miquel van Smoorenburg Sun, 1 Dec 1996 15:32:24 +0100 sysvinit (2.68-1) frozen unstable; urgency=high * Added dummy fsck.nfs [temporary] (Bug#5492) * Changing /etc/motd optional (Bug#5493) * Typo in /etc/init.d/urandom fixed (Bug#5556) -- Miquel van Smoorenburg Wed, 27 Nov 1996 17:30:36 +0100 sysvinit (2.67-1) frozen unstable; urgency=high * Fixes problem with /dev/console being controlling terminal of some daemons * Some fixes in debian bootup script "boot" * Puts copyright file in the right place * Move random-seed stuff to its own file * Fix skeleton file (add set -e) * Change preinst/postinst scripts to save all variables from "boot" file * moved /etc/init.d/network to /usr/doc/examples/sysvinit * Changed "rc" script slightly (potential recipy for disaster..) * Various other fixes to close all outstanding bug reports. -- Miquel van Smoorenburg Fri, 15 Nov 1996 12:23:33 +0100 sysvinit (2.66-1) unstable; urgency=medium * Skipped 2.65. A development 2.65 got out by accident and is apparently being used.. * New source format * Also compiles and runs with GNU libc (and on the Alpha) * Fixed dowall.c not to exit when getpwuid() fails and uid == 0. * Fixed init panic'ing on empty lines in /etc/inittab * Changed default PATH to include /usr/local/sbin * Set /dev/console as controlling terminal for sysinit,bootwait,wait,powerwait This allows using ^C to interrupt some parts of eg the boot process. * Remove old symlink in /var/log/initlvl; let init check both /var/log and /etc itself. -- Miquel van Smoorenburg Tue, 29 Oct 1996 13:46:54 +0100 debian/bootlogd.lintian-overrides0000664000000000000000000000023312310205332014346 0ustar bootlogd: script-calls-init-script-directly ./etc/init.d/stop-bootlogd:19 bootlogd: script-calls-init-script-directly ./etc/init.d/stop-bootlogd-single:36 debian/patches/0000775000000000000000000000000012310205744010615 5ustar debian/patches/72_path_max.patch0000664000000000000000000000241712310205332013744 0ustar Purpose: Don't use undefined PATH_MAX Fixes: Compilation on platforms not having PATH_MAX such as GNU/Hurd Authur: Roger Leigh Status: Not yet submitted upstream --- --- a/startpar/proc.c 2012-01-28 11:37:09.325271380 +0000 +++ b/startpar/proc.c 2012-01-28 11:54:43.268729900 +0000 @@ -109,23 +109,38 @@ char *name = (char*)0; struct dirent *dent; int fd; + char *path = (char *)0; + size_t allocpathlen = 0; fd = dirfd(dir); rewinddir(dir); while ((dent = readdir(dir))) { - char path[PATH_MAX]; struct stat st; + size_t pathlen = 0; if (fstatat(fd, dent->d_name, &st, 0) < 0) continue; if (!S_ISCHR(st.st_mode)) continue; if (comparedev != st.st_rdev) continue; - if ((size_t)snprintf(path, sizeof(path), "/dev/%s", dent->d_name) >= sizeof(path)) + /* Space for d_name, /dev/ and nul */ + pathlen = strlen(dent->d_name) + 6; + if (pathlen > allocpathlen) { + char *newpath = realloc(path, sizeof(char) * pathlen); + if (newpath) { + path = newpath; + allocpathlen = pathlen; + } + } + if (path == NULL) + continue; + if ((size_t)snprintf(path, pathlen, "/dev/%s", dent->d_name) >= allocpathlen) continue; name = realpath(path, NULL); break; } + + free(path); return name; } debian/patches/71_signalfd.patch0000664000000000000000000000072112310205332013725 0ustar Purpose: Don't include unused signalfd header Fixes: Compilation on platforms not having Authur: Roger Leigh Status: Not yet submitted upstream --- --- a/startpar/startpar.c 2012-01-27 23:20:26.713489556 +0000 +++ b/startpar/startpar.c 2012-01-27 23:20:38.353642868 +0000 @@ -42,7 +42,6 @@ #include #include #include -#include #ifdef CHECK_FORDEVPTS # include #endif debian/patches/76_startpar_ldflags.patch0000664000000000000000000000102512310205332015475 0ustar Purpose: Link using LDFLAGS Fixes: Linking with hardening flags Author: Roger Leigh Status: Not yet submitted upstream. --- --- a/startpar/Makefile 2012-05-21 21:43:19.366974022 +0100 +++ b/startpar/Makefile 2012-05-21 21:43:48.119533579 +0100 @@ -30,7 +30,7 @@ $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $(ISSUSE) -c $< startpar: $(OBJS) - $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $(ISSUSE) -o $@ $(OBJS) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -DVERSION=\"$(VERSION)\" $(ISSUSE) -o $@ $(OBJS) $(LIBS) makeboot: makeboot.c debian/patches/11_man_fstab_decode_typo0000664000000000000000000000102212310205332015335 0ustar Purpose: Fix typo in fstab-decode(8) font escape Author: Bjarni Ingi Gislason Fixes: - Status: Not submitted upstream --- --- a/man/fstab-decode.8 +++ b/man/fstab-decode.8 @@ -26,7 +26,7 @@ fstab-decode \- run a command with fstab-encoded arguments .SH DESCRIPTION .B fstab-decode -decodes escapes in the specified \FIARGUMENT\fRs +decodes escapes in the specified \fIARGUMENT\fRs and uses them to run \fICOMMAND\fR. The argument escaping uses the same rules as path escaping in \fB/etc/fstab\fR, debian/patches/69_startpar.patch0000664000000000000000000023066312310205332014017 0ustar Purpose: startpar implementation from SuSE Author: Dr. Werner Fink (SuSE) Status: Upstream release 0.58 --- diff -urN sysvinit.orig/startpar/COPYING sysvinit/startpar/COPYING --- sysvinit.orig/startpar/COPYING 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/COPYING 2008-01-07 14:43:31.000000000 +0000 @@ -0,0 +1,341 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + + 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 Library 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) 19yy + + 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. + + +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) 19yy 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 Library General +Public License instead of this License. diff -urN sysvinit.orig/startpar/makeboot.c sysvinit/startpar/makeboot.c --- sysvinit.orig/startpar/makeboot.c 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/makeboot.c 2012-01-12 08:30:53.000000000 +0000 @@ -0,0 +1,572 @@ +/* + * very very simple makefile parser + * + * Copyright (c) 2003 SuSE Linux AG + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 +# include +# include +# include +#ifndef POSIX_FADV_SEQUENTIAL +#define posix_fadvise(fd, off, len, adv) (-1) +#endif +#ifndef O_DIRECT +#define O_DIRECT 0 +#endif +static int o_flags = O_RDONLY; +#endif +#ifdef USE_BLOGD +# include +#endif +#include "makeboot.h" + + +int tree_entries = 0; +struct makenode *tree_list = NULL; + +/* + * search for the node with the given name + * returns the node pointer or NULL if not found. + * + * FIXME: we should use hash for the effective search. + */ +static struct makenode *lookup_target(const char *name) +{ + struct makenode *t; + + for (t = tree_list; t; t = t->next) + if (! strcmp(t->name, name)) + return t; + return NULL; +} + +/* + * look for the node with the given name. if not exist, + * create a new one and append to the node list. + */ +static struct makenode *add_target(const char *name) +{ + struct makenode *__restrict node; + struct makenode *prev, *t; + + node = lookup_target(name); + if (node) + return node; + if (posix_memalign((void*)&node, sizeof(void*), alignof(struct makenode)+strsize(name)) < 0) { + fprintf(stderr, "Can't malloc: %s\n", strerror(errno)); + exit(1); + } + memset(node, 0, alignof(struct makenode)+strsize(name)); + node->name = ((char*)node)+alignof(struct makenode); + strcpy(node->name, name); + + /* append to the list in alphabetical order */ + prev = NULL; + for (t = tree_list; t; prev = t, t = t->next) + if (strcmp(node->name, t->name) < 0) + break; + if (prev) + prev->next = node; + else + tree_list = node; + node->next = t; + tree_entries++; + return node; +} + +/* + * Set and propagate importance of a node to all depencies of this node + */ +static void add_importance(struct makenode *node, int importance) +{ + struct makelist *s = node->depend; + + node->importance += importance; + for (s = node->depend; s; s = s->next) + add_importance(s->node, importance); +} + +/* + * create a dependecy/selection node + */ +static struct makelist *new_list(struct makenode *node, struct makelist *next) +{ + struct makelist *x; + + x = xcalloc(1, sizeof(*x)); + x->node = node; + x->next = next; + return x; +} + +/* + * check whether the given target would create an infinte loop + */ +static int loop; +static int check_loop(struct makenode *dep, struct makenode *src) +{ + struct makelist *s; + for (s = dep->depend; s; s = s->next) { + if (s->node == src) { + fprintf(stderr, "loop exists %s in %s!\n", dep->name, src->name); + return 1; + } + if (loop++ > 99999) { + fprintf(stderr, "too many loops! (loop=%d, dep->name=%s, src->name=%s)\n", + loop, dep->name, src->name); + return 1; + } + if (check_loop(s->node, src)) + return 1; + } + return 0; +} + +/* + * add to the dependecy and selection lists + */ +static void add_depend(struct makenode *node, const char *dst) +{ + struct makenode *dep; + + dep = add_target(dst); + loop = 0; + if (check_loop(dep, node)) + return; + dep->select = new_list(node, dep->select); + dep->num_sels++; + node->depend = new_list(dep, node->depend); + node->num_deps++; +} + +/* + * mark the selected service as an interactive task + * that should run solely + */ +static void mark_interactive(const char *name) +{ + struct makenode *node = lookup_target(name); + if (node) + node->interactive = 1; +} + + +#define DELIMITER " \t\r\n" + +/* + * parse (pseudo) makefile + * + * it may have only the following form: + * + * TARGETS = xxx ... + * INTERACTIVE = yyy ... + * aaa: + * bbb: xxx ddd ... + * + * other lines are ignored. + */ +void parse_makefile(const char *path) +{ + FILE *fp; + char buf[LINE_MAX]; /* FIXME: is this enough big? */ + char *s, *strp, *p; + struct makenode *node; + +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + int fd; + + if (getuid() == (uid_t)0) + o_flags |= O_NOATIME; + if ((fd = open(path, o_flags)) < 0) { + fprintf(stderr, "Can't open %s: %s\n", path, strerror(errno)); + exit(1); + } + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_WILLNEED); + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_NOREUSE); + + if ((fp = fdopen(fd, "r")) == NULL) +#else + if ((fp = fopen(path, "r")) == NULL) +#endif + { + fprintf(stderr, "Can't open %s: %s\n", path, strerror(errno)); + exit(1); + } + + while (fgets(buf, sizeof(buf), fp)) { + for (s = buf; *s && isspace(*s); s++) + ; + if (! *s || *s == '#') + continue; + if (! strncmp(s, "TARGETS =", 9)) { + s += 9; + strp = s; + while ((s = strsep(&strp, DELIMITER))) { + if (! *s) + continue; + add_target(s); + } + } else if (! strncmp(s, "INTERACTIVE =", 13)) { + s += 13; + strp = s; + while ((s = strsep(&strp, DELIMITER))) { + if (! *s) + continue; + mark_interactive(s); + } + } else { + p = strchr(s, ':'); + if (! p) + continue; + *p = 0; + node = add_target(s); + strp = p + 1; + while ((s = strsep(&strp, DELIMITER))) { + if (! *s) + continue; + add_depend(node, s); + } + } + } + +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED); +#endif + + fclose(fp); + + for (node = tree_list; node; node = node->next) { + int importance = 0; + + if (! strcmp(node->name, "xdm") + || ! strncmp(node->name, "gdm", 3) + || ! strncmp(node->name, "kdm", 3) + || ! strcmp(node->name, "boot.udev") + || ! strcmp(node->name, "udev")) + importance = 100; + + if (! strcmp(node->name, "sshd")) + importance = 2000; + + if (! strncmp(node->name, "early", 5)) + importance = 8000; + + if (importance) + add_importance(node, importance); + } +} + +/* + * filter out the list targets + */ + +static int filter_prefix; +static int dirfilter(const struct dirent *d) +{ + return *d->d_name == filter_prefix && + strlen(d->d_name) >= 4; /* to be sure */ +} + +static void filter_files(const char *dir, int prefix, int inverse) +{ + char path[64]; + int i, ndirs; + static struct dirent **dirlist; + struct makenode *t, *next; + + filter_prefix = prefix; +#ifdef SUSE /* SuSE */ + snprintf(path, sizeof(path), "/etc/init.d/%s.d", dir); +#else /* Debian */ + snprintf(path, sizeof(path), "/etc/%s.d", dir); +#endif +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + if ((i = open(path, o_flags|O_DIRECTORY|O_LARGEFILE)) >= 0) { + (void)posix_fadvise(i, 0, 0, POSIX_FADV_SEQUENTIAL); + (void)posix_fadvise(i, 0, 0, POSIX_FADV_NOREUSE); + } +#endif + ndirs = scandir(path, &dirlist, dirfilter, alphasort); +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + if (i >= 0) { + (void)posix_fadvise(i, 0, 0, POSIX_FADV_DONTNEED); + close(i); + } +#endif + /* mark all matching nodes */ + if (ndirs >= 0) { + for (i = 0; i < ndirs; i++) { + t = lookup_target(dirlist[i]->d_name + 3); + if (t) { + t->status = 1; + t->filter_prefix = filter_prefix; + if (asprintf(&t->arg0, "%s/%s", path, dirlist[i]->d_name) < 0) + t->arg0 = (char*)0; + } + free(dirlist[i]); + } + free(dirlist); + } + /* deselect non-matching nodes */ + for (t = tree_list; t; t = next) { + next = t->next; + if ((! t->status && ! inverse) || (t->status && inverse)) { + /* remove from the list */ + struct makelist *x, *nx; + struct makenode *p; + for (x = t->select; x; x = nx) { + nx = x->next; + x->node->num_deps--; + free(x); + } + for (x = t->depend; x; x = nx) { + nx = x->next; + x->node->num_sels--; + free(x); + } + if (t == tree_list) + tree_list = next; + else { + for (p = tree_list; p->next != t; p = p->next) + ; + p->next = next; + } + /* don't free the node instance itself - it may be selected + * by others + */ + tree_entries--; + continue; + } + t->status = 0; + } +} + +/* + * mark the unnecessary services as finished. + * + * action is either boot, start or stop. + * prev and run are the previous and the next runlevel. + */ +void check_run_files(const char *action, const char *prev, const char *run) +{ + char buf[4] = "rc0"; + if (! strcmp(action, "boot")) { +#ifdef SUSE /* SuSE */ + filter_files("boot", 'S', 0); + } else if (! strcmp(action, "halt")) { + filter_files("boot", 'K', 0); + } else if (! strcmp(action, "start")) { + buf[2] = *prev; + filter_files(buf, 'K', 1); + buf[2] = *run; + filter_files(buf, 'S', 0); + } else { + buf[2] = *prev; + filter_files(buf, 'K', 0); + buf[2] = *run; + filter_files(buf, 'S', 1); +#else /* Debian */ + filter_files("rcS", 'S', 0); + } else if (! strcmp(action, "start")) { + buf[2] = *prev; + filter_files(buf, 'S', 1); + buf[2] = *run; + filter_files(buf, 'S', 0); + } else { + buf[2] = *prev; + filter_files(buf, 'K', 1); + buf[2] = *run; + filter_files(buf, 'K', 0); +#endif + } +} + + +/* + * call blogd + */ +#ifndef USE_BLOGD +# define bootlog(arg...) +# define closeblog() +#endif + +/* + * pick up the next running task + * return NULL if not found. + */ +struct makenode *pickup_task(void) +{ + struct makenode *node, *best = (struct makenode*)0; + + for (node = tree_list; node; node = node->next) { + if (node->status != T_READY) + continue; + if (node->num_deps > 0) + continue; + if (!best || (node->importance > best->importance)) + best = node; + } + if (best) { +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + char path[128]; + int fd; + snprintf(path, sizeof(path), "/etc/init.d/%s", best->name); + if ((fd = open(path, o_flags|O_DIRECT)) >= 0) { + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_WILLNEED); + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL); + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_NOREUSE); + close(fd); + } +#endif + bootlog(B_NOTICE, "service %s %s", best->name, (best->filter_prefix == 'K') ? "stop" : "start"); + best->status = T_RUNNING; + } + return best; +} + +/* + * finish the running task + */ +void finish_task(struct makenode *node) +{ + struct makelist *n; + + if (! node) + return; + for (n = node->select; n; n = n->next) + n->node->num_deps--; +#if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 + { + char path[128]; + int fd; + snprintf(path, sizeof(path), "/etc/init.d/%s", node->name); + if ((fd = open(path, o_flags|O_DIRECT)) >= 0) { + (void)posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED); + close(fd); + } + } +#endif + node->status = T_FINISHED; + bootlog(B_NOTICE, "service %s done", node->name); +} + + +/* + * Print out the status that bash can run eval. + * The following things will be printed: + * failed services, skipped services and the current progress value. + */ +void print_run_result(int *resvec, struct makenode **nodevec, const char *action) +{ + int i, r, stop = (! strcmp(action, "stop")); + + printf("failed_service=\""); + i = r = 0; + for (i = 0; i < tree_entries; i++) { +#if DEBUG + if (resvec[i] == 255) { + fprintf(stderr, "ERROR: forgotten process??\n"); + exit(1); + } +#endif + if (resvec[i] >= 1 && resvec[i] <= 4) { + if (r) + printf(" "); + printf("%s", nodevec[i]->name); + r++; + } else if (!stop && resvec[i] == 7) { + if (r) + printf(" "); + printf("%s", nodevec[i]->name); + r++; + } + } + printf("\"\n"); + printf("skipped_service=\""); + i = r = 0; + for (i = 0; i < tree_entries; i++) { + if (resvec[i] == 5 || resvec[i] == 6) { + if (r) + printf(" "); + printf("%s", nodevec[i]->name); + r++; + } + } + printf("\"\n"); +} + +#if DEBUG +void dump_status(void) +{ + struct makenode *node; + + for (node = tree_list; node; node = node->next) + fprintf(stderr, "XXX %s: status = %d, dep = %d, int = %d, imp = %d\n", + node->name, node->status, node->num_deps, node->interactive, node->importance); +} +#endif + +#ifdef TEST +void *xcalloc(size_t nmemb, size_t size) +{ + void *r; + if ((r = (void *)calloc(nmemb, size)) == 0) { + fprintf(stderr, "calloc: out of memory\n"); + exit(1); + } + return r; +} + +int main(int argc, char **argv) +{ + struct makenode *nodevec; + char makefile[64]; + + if (argc != 4) { + fprintf(stderr, "usage: makeboot [ ]\n"); + goto out; + } + + snprintf(makefile, sizeof(makefile), "depend.%s", argv[1]); + parse_makefile(makefile); + + fprintf(stderr, "check_run_files(%s, %s, %s)\n", argv[1], argv[2], + argv[3]); + check_run_files(argv[1], argv[2], argv[3]); +out: + while ((nodevec = pickup_task())) { + fprintf(stdout, "%s (%s)\n", nodevec->name, nodevec->arg0); + finish_task(nodevec); + } + + return 0; +} +#endif diff -urN sysvinit.orig/startpar/makeboot.h sysvinit/startpar/makeboot.h --- sysvinit.orig/startpar/makeboot.h 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/makeboot.h 2011-04-19 14:32:34.000000000 +0100 @@ -0,0 +1,58 @@ +/* + * + * Copyright (c) 2003 SuSE Linux AG + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +enum { + T_READY, T_RUNNING, T_FINISHED +}; + +/* target nodes */ +struct makenode { + char *name; + char *arg0; + int num_deps; + struct makelist *depend; + int num_sels; + struct makelist *select; + int status; + struct makenode *next; + int interactive; + int importance; + int filter_prefix; +}; + +/* dependency and selection list nodes */ +struct makelist { + struct makenode *node; + struct makelist *next; +}; + +extern int tree_entries; +extern struct makenode *tree_list; + +extern void parse_makefile(const char *path); +extern void check_run_files(const char *action, const char *prev, const char *run); +extern struct makenode *pickup_task(void); +extern void finish_task(struct makenode *n); +extern void *xcalloc(size_t nmemb, size_t size); +extern void print_run_result(int *resvec, struct makenode **nodevec, const char *action); + +#define alignof(type) ((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1)) +#define strsize(string) ((strlen(string)+1)*sizeof(char)) diff -urN sysvinit.orig/startpar/Makefile sysvinit/startpar/Makefile --- sysvinit.orig/startpar/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/Makefile 2011-04-19 17:07:52.000000000 +0100 @@ -0,0 +1,50 @@ +VERSION = 0.58 +ISSUSE = -DSUSE + +INSTALL = install -m 755 +INSTALL_DATA = install -m 644 +DESTDIR = +sbindir = /sbin +mandir = /usr/share/man +man8dir = $(mandir)/man8 + +SRCS = startpar.c makeboot.c proc.c +HDRS = makeboot.h proc.h +REST = COPYING Makefile startpar.8 +OBJS = $(SRCS:.c=.o) + +ifneq ($(INC),) + LIBS += -lblogger + COPTS += -DUSE_BLOGD +endif + +CC = gcc +CFLAGS = $(RPM_OPT_FLAGS) $(COPTS) -D_GNU_SOURCE $(INC) -Wall -W -pipe + +ifeq ($(MAKECMDGOALS),makeboot) +CFLAGS += -DTEST +endif + +.c.o: + $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $(ISSUSE) -c $< + +startpar: $(OBJS) + $(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" $(ISSUSE) -o $@ $(OBJS) $(LIBS) + +makeboot: makeboot.c + +install: startpar + $(INSTALL) -d $(DESTDIR)$(sbindir) $(DESTDIR)$(man8dir) + $(INSTALL) startpar $(DESTDIR)$(sbindir)/. + $(INSTALL_DATA) startpar.8 $(DESTDIR)$(man8dir)/. + +clean: + rm -f startpar makeboot $(OBJS) + +dest: clean + mkdir -p startpar-$(VERSION) + for file in $(SRCS) $(HDRS) $(REST) ; do \ + cp -p $$file startpar-$(VERSION)/; \ + done + tar -cps -jf startpar-$(VERSION).tar.bz2 startpar-$(VERSION)/* + rm -rf startpar-$(VERSION)/ diff -urN sysvinit.orig/startpar/proc.c sysvinit/startpar/proc.c --- sysvinit.orig/startpar/proc.c 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/proc.c 2012-01-12 08:37:35.000000000 +0000 @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2004 SuSE Linux AG + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "proc.h" + +#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) +# ifndef restrict +# define restrict __restrict__ +# endif +#endif + +#define alignof(type) ((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1)) + +static unsigned long int scan_one(const char* buff, const char *key) +{ + const char *b = strstr(buff, key); + unsigned long val = 0; + + if (!b) { +#if DEBUG + fprintf(stderr, "ERROR: no hit for %s\n", key); +#endif + return ~0UL; + } + if (sscanf(b + strlen(key), " %lu", &val) != 1) + return 0; + return val; +} + +int read_proc(unsigned long int * const prcs_run, unsigned long int * const prcs_blked) +{ + char StatBuf[2048], *ptr = &StatBuf[0]; + unsigned long int running, blocked; + ssize_t len; + size_t skip; + FILE *stat; + + *prcs_run = 0; + *prcs_blked = 0; + + if ((stat = fopen("/proc/stat", "r")) == (FILE*)0) { + fprintf(stderr, "ERROR: could not open /proc/stat: %s\n", strerror(errno)); + return 1; + } + + len = sizeof(StatBuf); + while ((len > 0) && (fgets(ptr, len, stat))) { + if (ptr[0] != 'p') + continue; + skip = strlen(ptr); + len -= skip; + ptr += skip; + } + fclose(stat); + + /* These fields are not present in /proc/stat for 2.4 kernels or GNU/kFreeBSD */ + running = scan_one(StatBuf, "procs_running"); + blocked = scan_one(StatBuf, "procs_blocked"); + + if (running == ~0UL || blocked == ~0UL) + return 1; + + *prcs_run = running; + *prcs_blked = blocked; + + return 0; +} + +struct console { + char * tty; + int tlock; + struct termios ltio, otio; + struct console *restrict next; +}; +static struct console *restrict consoles; +static dev_t comparedev; +static char* scandev(DIR *dir) +{ + char *name = (char*)0; + struct dirent *dent; + int fd; + + fd = dirfd(dir); + rewinddir(dir); + while ((dent = readdir(dir))) { + char path[PATH_MAX]; + struct stat st; + if (fstatat(fd, dent->d_name, &st, 0) < 0) + continue; + if (!S_ISCHR(st.st_mode)) + continue; + if (comparedev != st.st_rdev) + continue; + if ((size_t)snprintf(path, sizeof(path), "/dev/%s", dent->d_name) >= sizeof(path)) + continue; + name = realpath(path, NULL); + break; + } + return name; +} + +void detect_consoles(void) +{ + FILE *fc; + if ((fc = fopen("/proc/consoles", "r"))) { + char fbuf[16]; + int maj, min; + DIR *dir; + dir = opendir("/dev"); + if (!dir) + goto out; + while ((fscanf(fc, "%*s %*s (%[^)]) %d:%d", &fbuf[0], &maj, &min) == 3)) { + struct console *restrict tail; + char * name; + + if (!strchr(fbuf, 'E')) + continue; + comparedev = makedev(maj, min); + name = scandev(dir); + + if (!name) + continue; + + if (posix_memalign((void*)&tail, sizeof(void*), alignof(typeof(struct console))) != 0) + perror("memory allocation"); + + tail->next = (struct console*)0; + tail->tty = name; + + if (!consoles) + consoles = tail; + else + consoles->next = tail; + } + closedir(dir); + out: + fclose(fc); + } +} diff -urN sysvinit.orig/startpar/proc.h sysvinit/startpar/proc.h --- sysvinit.orig/startpar/proc.h 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/proc.h 2010-09-30 13:41:35.000000000 +0100 @@ -0,0 +1,21 @@ +/* Copyright (c) 2004 SuSE Linux AG + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + */ + +extern int read_proc(unsigned long int *prcs_run, unsigned long int *prcs_blked); +extern void detect_consoles(void); diff -urN sysvinit.orig/startpar/startpar.8 sysvinit/startpar/startpar.8 --- sysvinit.orig/startpar/startpar.8 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/startpar.8 2010-07-28 13:04:55.000000000 +0100 @@ -0,0 +1,131 @@ +.\" +.\" SuSE man page for startpar +.\" +.\" Copyright (c) 2003 SuSE Linux AG, Nuernberg, Germany. +.\" +.\" 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, 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 (see the file COPYING); if not, write to the +.\" Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +.\" MA 02110-1301, USA. +.\" +.\" Author: Michael Schroeder +.\" +.TH STARTPAR 8 "Jun 2003" +.SH NAME +startpar \- start runlevel scripts in parallel + +.SH SYNOPSIS +.B startpar +.RB [ \-p +.IR par ] +.RB [ \-i +.IR iorate ] +.RB [ \-t +.IR timeout ] +.RB [ \-T +.IR global_timeout ] +.RB [ \-a +.IR arg ] +.B prg1 +.B prg2 +.B ... +.br +.B startpar +.RB [ \-p +.IR par ] +.RB [ \-i +.IR iorate ] +.RB [ \-t +.IR timeout ] +.RB [ \-T +.IR global_timeout ] +.B \-M [ +.IR boot | start | stop ] + +.SH DESCRIPTION +startpar is used to run multiple run\-level scripts in parallel. +The degree of parallelism on one +.B CPU +can be set with the +.B \-p +option, the default is full parallelism. An argument to all of +the scripts can be provided with the +.B \-a +option. +Processes block by pending +.B I/O +will weighting by the factor +.IR 800 . +To change this factor the option +.B \-i +can be used to specify an other value. + +The output of each script is buffered and written when the script +exits, so output lines of different scripts won't mix. You can +modify this behaviour by setting a timeout. + +The timeout set with the +.B \-t +option is used as buffer timeout. If the output buffer of a +script is not empty and the last output was +.I timeout +seconds ago, startpar will flush the buffer. + +The +.B \-T +option timeout works more globally. If no output is printed for +more than +.I global_timeout +seconds, startpar will flush the buffer of the script with +the oldest output. Afterwards it will only print output of this +script until it is finished. + +The +.B \-M +option switches +.B startpar +into a +.BR make (1) +like behaviour. This option takes three different arguments: +.IR boot ", " start ", and " stop +for reading +.IR .depend.boot " or " .depend.start " or " .depend.stop +respectively in the directory +.IR /etc/init.d/ . +By scanning the boot and runlevel directories in +.I /etc/init.d/ +it then executes the appropriate scripts in parallel. + +.SH FILES +.I /etc/init.d/.depend.boot +.br +.I /etc/init.d/.depend.start +.br +.I /etc/init.d/.depend.stop + +.SH SEE ALSO +.BR init.d (7), +.BR insserv (8), +.BR startproc (8). + +.SH COPYRIGHT +2003,2004 SuSE Linux AG, Nuernberg, Germany. +.br +2007 SuSE LINUX Products GmbH, Nuernberg, Germany. + +.SH AUTHOR +Michael Schroeder +.br +Takashi Iwai +.br +Werner Fink diff -urN sysvinit.orig/startpar/startpar.c sysvinit/startpar/startpar.c --- sysvinit.orig/startpar/startpar.c 1970-01-01 01:00:00.000000000 +0100 +++ sysvinit/startpar/startpar.c 2012-01-12 08:46:28.000000000 +0000 @@ -0,0 +1,1469 @@ +/* Copyright (c) 2003 SuSE Linux AG + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + **************************************************************** + */ + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + +#ifdef SUSE +# define USE_PRELOAD +# undef CHECK_FORDEVPTS +#else +# undef USE_PRELOAD +# define CHECK_FORDEVPTS +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef CHECK_FORDEVPTS +# include +#endif +#include +#include +#include +#include +#include +#include +#ifdef USE_BLOGD +# include +#else +# define bootlog(arg...) +# define closeblog() +#endif +#include "makeboot.h" +#include "proc.h" + +#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) +# ifndef inline +# define inline __inline__ +# endif +# ifndef restrict +# define restrict __restrict__ +# endif +# ifndef volatile +# define volatile __volatile__ +# endif +# ifndef extension +# define extension __extension__ +# endif +#endif +#ifndef attribute +# define attribute(attr) __attribute__(attr) +#endif + +#define timerdiff(n,l) (extension({ (((n).tv_sec-(l).tv_sec)*1000)+(((n).tv_usec-(l).tv_usec)/1000); })) + +typedef enum _boolean {false, true} boolean; +extern char *optarg; +extern int optind; + +static long int numcpu = -1; +static char *myname; +static struct termios tio; +static volatile struct winsize wz; +static struct { + char env_row[128]; + char env_col[128]; +} sz; +static sig_atomic_t wzok; +static char *arg; +static boolean isstart; +static struct sigaction sa; +static struct timeval glastio; +static struct timeval now; +static struct timeval lastlim; +static char *run_mode = NULL; +static struct makenode **nodevec; +static sig_atomic_t signaled; + +#define PBUF_SIZE 8192 +#define PRUNNING 0x0001 +#define PFINISHED 0x0002 +struct prg { + const char *name; + const char *arg0; + int num; + int fd; + pid_t pid; + struct timeval lastio; + int splashadd; + int status; + int flags; + size_t len; + char buf[PBUF_SIZE]; +}; + +static struct prg *prgs; +static int inpar, par; +static double iorate = 800.0; + +#ifdef USE_PRELOAD +static volatile enum { Unknown, Preload, NoPreload } ispreload = Unknown; + +static void sighandler_nopreload(int x attribute((unused))) +{ + ispreload = NoPreload; +} + +static void sighandler_preload(int x attribute((unused))) +{ + ispreload = Preload; +} + +# define SOCK_PATH "/dev/shm/preload_sock" +#endif + +void *xcalloc(size_t nmemb, size_t size) +{ + void *r; + if ((r = (void *)calloc(nmemb, size)) == 0) + { + fprintf(stderr, "calloc: out of memory\n"); + exit(1); + } + return r; +} + +static int splashpos = -1; +static char *splashcfg; + +int calcsplash(int x, int n, char *opt) +{ + char *p; + int i; + int r, d; + + if (opt == 0) + return -1; + for (i = 0; i <= x; i++) + { + if ((p = strchr(opt, ':')) == 0) + break; + if (i == x) + return atoi(opt); + opt = p + 1; + } + r = atoi(opt); + n -= i; + for (;; i++, n--) + { + if (n < 1) + n = 1; + d = r / n; + if (i == x) + return d; + r -= d; + } +} + +pid_t splashpid; + +void waitsplash() +{ + int status; + if (!splashpid) + return; + TEMP_FAILURE_RETRY(waitpid(splashpid, &status, 0)); +} + +void closeall(void) +{ + int s; + + if (!prgs) + return; + for (s = 0; s < par; s++) + if (prgs[s].fd) + close(prgs[s].fd); + closeblog(); +} + +void callsplash(int n, const char *path, char *action) +{ + const char *p; + char sbuf[32]; + char tbuf[256]; + pid_t pid; + struct stat stb; + sigset_t nmask; + + if (n < 0 || splashpos < 0) + return; + if (splashpos + n > 65535) + n = 65535 - splashpos; + splashpos += n; + if (stat("/proc/splash", &stb)) + return; + p = strrchr(path, '/'); + if (p) + path = p + 1; + for (p = path; *p; p++) + if ((*p == 'S' || *p == 'K') && p[1] >= '0' && p[1] <= '9' && p[2] >= '0' && p[2] <= '9' && p[3]) + break; + if (*p) + p += 3; + else + p = path; + if (!action) + action = ""; + if (strlen(p) + strlen(action) + 2 > sizeof(tbuf)) + return; + sprintf(tbuf, "%s%s%s", p, *action ? " " : "", action); + sprintf(sbuf, "%d:%d", splashpos - n, n); + waitsplash(); + pid = fork(); + if (pid == (pid_t)-1) + return; + if (pid) + { + splashpid = pid; + return; + } + + (void)sigfillset(&nmask); + sigprocmask(SIG_UNBLOCK, &nmask, NULL); + + (void)signal(SIGHUP, SIG_DFL); + (void)signal(SIGQUIT, SIG_DFL); + (void)signal(SIGSEGV, SIG_DFL); + (void)signal(SIGTERM, SIG_DFL); + (void)signal(SIGCHLD, SIG_DFL); + (void)signal(SIGTTIN, SIG_DFL); + (void)signal(SIGTTOU, SIG_DFL); + + TEMP_FAILURE_RETRY(dup2(2, 1)); + closeall(); + execl("/sbin/splash", "splash", "-p", sbuf, "-t", tbuf, splashcfg, (char *)0); + _exit(1); +} + +void writebuf(struct prg *p) +{ + char *b = p->buf; + int r; + + while (p->len > 0) + { + r = write(2, b, p->len); + if (r < 0) + { + if (errno == EINTR) + continue; + perror("write"); + r = p->len; + } + p->len -= r; + b += r; + } + glastio = now; +} + +static int checksystem(const int par, const boolean start, const boolean limit) +{ + const int pg_size = sysconf(_SC_PAGESIZE); + const long int minphys_bytes = (sysconf(_SC_LONG_BIT) > 32L) ? (2<<22) : (2<<21); + const long int avphys_pg = sysconf(_SC_AVPHYS_PAGES); + long int minphys_pg; + unsigned long int prcs_run, prcs_blked; + int newpar; + + if (avphys_pg < 0) + return 1; + + if (pg_size < 0) + return par; + + if (!start) + minphys_pg = avphys_pg; + else + minphys_pg = minphys_bytes / pg_size; + + if (avphys_pg < minphys_pg) + return 1; + + if (numcpu < 1) + return par; + + if (!limit) + return (par*numcpu); + + if (read_proc(&prcs_run, &prcs_blked)) + return par; + +#ifdef USE_PRELOAD + /* if we have preload running, we expect I/O not to be a problem */ + if (ispreload != NoPreload) + prcs_blked = 0; +#endif + + newpar = (par*numcpu) - (prcs_run + prcs_blked); + newpar -= ((int)(((double)prcs_blked)*iorate))/1000; /* I/O load reduction */ + +#if DEBUG + fprintf(stderr, "checksystem par=%d newpar=%d (prcs_run=%lu) %ld\n", par, newpar, prcs_run, time(0)); + dump_status(); +#endif + if (newpar <= 0) + return 1; + else + return newpar; +} + +static inline int checklimit(const int par, const boolean start) +{ + return checksystem(par, start, true); +} + +static inline int checkpar(const int par, const boolean start) +{ + return checksystem(par, start, false); +} + +#ifdef CHECK_FORDEVPTS +/* + * Based on __posix_openpt() from glibc. Reimplemented here to work + * around the problem with getpt() failing for the entire process life + * time if /dev/pts/ is missing the first time it is called but + * mounted while the process is running. BSD style pts is not + * supported, but might be copied from glibc too if there is need. + */ +# define DEVFS_SUPER_MAGIC 0x1373 +# define DEVPTS_SUPER_MAGIC 0x1cd1 + +static int startpar_getpt(void) { + int fd = open("/dev/ptmx", O_RDWR|O_NOCTTY); + + if (fd != -1) + { + struct statfs fsbuf; + + /* Check that the /dev/pts filesystem is mounted + or if /dev is a devfs filesystem (this implies /dev/pts). */ + if ((statfs ("/dev/pts", &fsbuf) == 0 + && fsbuf.f_type == DEVPTS_SUPER_MAGIC) + || (statfs ("/dev", &fsbuf) == 0 + && fsbuf.f_type == DEVFS_SUPER_MAGIC)) + { + /* Everything is ok, switch to the getpt() in libc. */ + return fd; + } + + /* If /dev/pts is not mounted then the UNIX98 pseudo terminals + are not usable. */ + close (fd); + } + + return -1; +} + +static int checkdevpts(void) +{ + int ptsfd = startpar_getpt(); + + if (ptsfd == -1) + { + return 0; + } + else if (ptsname(ptsfd) == 0 || grantpt(ptsfd) || unlockpt(ptsfd)) + { + close(ptsfd); + return 0; + } + else + { + close(ptsfd); + return 1; + } +} +#else +static int attribute((unused)) checkdevpts(void) +{ + return 1; /* /dev/pts is always mounted */ +} +#endif + +void run(struct prg *p) +{ + const char * m = (char*)0; + sigset_t nmask; +#ifdef USE_PRELOAD + pid_t parent; +#endif + + p->len = 0; + p->pid = (pid_t)0; + p->fd = getpt(); + if (p->fd <= 0) + { + p->fd = 0; + perror("getpt"); + fprintf(stderr, "could not get pty for %s\n", p->name); + } + else if ((m = ptsname(p->fd)) == 0 || grantpt(p->fd) || unlockpt(p->fd)) + { + fprintf(stderr, "could not init pty for %s\n", p->name); + close(p->fd); + p->fd = 0; + } +#ifdef USE_PRELOAD + parent = getpid(); +#endif + if ((p->pid = fork()) == (pid_t)-1) + { + perror("fork"); + fprintf(stderr, "could not fork %s\n", p->name); + p->pid = (pid_t)0; + if (p->fd) + { + close(p->fd); + p->fd = 0; + } + p->status = 0; + p->flags = 0; + return; + } + if (p->pid != 0) + { + p->flags |= PRUNNING; + return; + } + + (void)sigfillset(&nmask); + sigprocmask(SIG_UNBLOCK, &nmask, NULL); + + (void)signal(SIGHUP, SIG_DFL); + (void)signal(SIGQUIT, SIG_DFL); + (void)signal(SIGSEGV, SIG_DFL); + (void)signal(SIGTERM, SIG_DFL); + (void)signal(SIGCHLD, SIG_DFL); + (void)signal(SIGTTIN, SIG_DFL); + (void)signal(SIGTTOU, SIG_DFL); + + if (setpgid(0, 0)) + perror("setpgid"); + + if (m && p->fd) + { + sigset_t smask, omask; + TEMP_FAILURE_RETRY(close(1)); + if (open(m, O_RDWR) != 1) + { + perror(m); + _exit(1); + } + TEMP_FAILURE_RETRY(dup2(1, 2)); + sigemptyset(&smask); + sigaddset(&smask, SIGTTOU); + sigprocmask(SIG_BLOCK, &smask, &omask); + if (tcsetattr(1, TCSANOW, &tio) && errno != ENOTTY) + perror("tcsetattr"); + sigprocmask(SIG_SETMASK, &omask, NULL); + if (wzok) + ioctl(1, TIOCSWINSZ, &wz); + putenv(sz.env_row); + putenv(sz.env_col); + } + else + { + TEMP_FAILURE_RETRY(dup2(2, 1)); + } + + closeall(); + +#ifdef USE_PRELOAD + if (arg && !strcmp(arg, "start")) + { + int s; + + if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) != -1) + { + struct sockaddr_un remote; + pid_t child; + int t, len; + + memset(&remote, 0, sizeof(struct sockaddr_un)); + remote.sun_family = AF_UNIX; + strcpy(remote.sun_path, SOCK_PATH); + len = strlen(remote.sun_path) + sizeof(remote.sun_family); + + if ((t = connect(s, (struct sockaddr *)&remote, len)) != -1) + { + char str[100]; + if (ispreload != Preload) + kill(parent, SIGUSR1); + send(s, p->name, strlen(p->name), 0); + recv(s, str, sizeof(str), 0); + } + else if (ispreload == Unknown) + { + /* + * if we connected to preload once, we know it ran. + * In case we can't connect to it later, it means it did + * its job and we can guess I/O is no longer a problem. + */ + kill(parent, SIGUSR2); + } + close(s); + /* + * if we use preload, we fork again to make bootcharts easier to read. + * The reason is that the name of the init script will otherwise be used + * when in reality the above code waited for preload. If we fork away + * before the exec, the waiting code will be folded into startpar + */ + if ((child = fork())) + { + int status; + int ret = waitpid(child, &status, 0); + if (ret == -1) + perror("waitpid"); + exit(WEXITSTATUS(status)); + } + } + } +#endif + + if (run_mode) + { + char path[128]; + snprintf(path, sizeof(path), "/etc/init.d/%s", p->name); + execlp(path, p->arg0, arg, (char *)0); + } + else if (arg) + execlp(p->name, p->arg0, arg, (char *)0); + else + execlp(p->name, p->arg0, (char *)0); + perror(p->name); + _exit(1); +} + +int run_single(const char *prg, const char *arg0, int spl) +{ + pid_t pid; + int r; + + if ((pid = fork()) == (pid_t)-1) + { + perror("fork"); + fprintf(stderr, "could not fork %s\n", prg); + return 1; + } + + if (pid == 0) + { + sigset_t nmask; + + (void)sigfillset(&nmask); + sigprocmask(SIG_UNBLOCK, &nmask, NULL); + + (void)signal(SIGINT, SIG_DFL); /* Interactive init scripts may be interrupted */ + (void)signal(SIGHUP, SIG_DFL); + (void)signal(SIGQUIT, SIG_DFL); + (void)signal(SIGSEGV, SIG_DFL); + (void)signal(SIGTERM, SIG_DFL); + (void)signal(SIGCHLD, SIG_DFL); + (void)signal(SIGTTIN, SIG_DFL); + (void)signal(SIGTTOU, SIG_DFL); + + TEMP_FAILURE_RETRY(dup2(2, 1)); + closeall(); + if (run_mode) + { + char path[128]; + snprintf(path, sizeof(path), "/etc/init.d/%s", prg); + execlp(path, arg0 ? arg0 : path, arg, (char *)0); + } + else if (arg) + execlp(prg, arg0 ? arg0 : prg, arg, (char *)0); + else + execlp(prg, arg0 ? arg0 : prg, (char *)0); + perror(prg); + _exit(1); + } + + TEMP_FAILURE_RETRY(waitpid(pid, &r, 0)); + callsplash(spl, prg, arg); + return WIFEXITED(r) ? WEXITSTATUS(r) : (WIFSIGNALED(r) ? 1 : 255); +} + +void do_forward(void) +{ + char buf[4096], *b; + ssize_t r, rr; + setsid(); + while ((r = read(0, buf, sizeof(buf)))) + { + if (r < 0) + { + if (errno == EINTR) + continue; +#if defined(DEBUG) && (DEBUG > 0) + perror("\n\rstartpar: forward read"); +#endif + break; + } + b = buf; + while (r > 0) + { + rr = write(1, b, r); + if (rr < 0) + { + if (errno == EINTR) + continue; + perror("\n\rstartpar: forward write"); + rr = r; + } + r -= rr; + b += rr; + } + } + _exit(0); +} + +static char *gtimo_buf; +static size_t gtimo_bufsize; +static size_t gtimo_buflen; + +void storebuf(struct prg *p) +{ + if ((gtimo_buflen + p->len) > gtimo_bufsize) + { + writebuf(p); /* In case of overflow or memory shortage */ + return; + } + + (void)memcpy(gtimo_buf + gtimo_buflen, p->buf, p->len); + gtimo_buflen += p->len; + p->len = 0; + glastio = now; +} + +void flushbuf(void) +{ + size_t len = gtimo_buflen; + char * buf = gtimo_buf; + + if (!buf) + return; /* In case of memory shortage */ + + while (len > 0) + { + int r = write(2, buf, len); + if (r < 0) + { + perror("write"); + r = len; + } + len -= r; + buf += r; + } + gtimo_buflen = 0; + *gtimo_buf = 0; +} + +#define GTIMO_OFFL 0 +#define GTIMO_USED 1 + +void detach(struct prg *p, const int store) +{ + int flags = fcntl(p->fd, F_GETFL); + ssize_t r; + pid_t pid; + + if (flags > 0) + flags |= FNONBLOCK; + else + flags = FNONBLOCK; + + fcntl(p->fd, F_SETFL, flags); + while ((r = read(p->fd, p->buf, sizeof(p->buf)))) + { + if (r < 0) + { + if (errno == EINTR) + continue; + break; + } + p->len = r; + if (store) + storebuf(p); + else + writebuf(p); + } + flags &= ~FNONBLOCK; + fcntl(p->fd, F_SETFL, flags); + if (r == -1 && errno == EWOULDBLOCK) + { + if ((pid = fork()) == 0) + { + sigset_t nmask; + (void)sigfillset(&nmask); + sigprocmask(SIG_UNBLOCK, &nmask, NULL); + + (void)signal(SIGHUP, SIG_DFL); + (void)signal(SIGQUIT, SIG_DFL); + (void)signal(SIGSEGV, SIG_DFL); + (void)signal(SIGTERM, SIG_DFL); + (void)signal(SIGCHLD, SIG_DFL); + (void)signal(SIGTTIN, SIG_DFL); + (void)signal(SIGTTOU, SIG_DFL); + + TEMP_FAILURE_RETRY(dup2(p->fd, 0)); + TEMP_FAILURE_RETRY(dup2(2, 1)); + closeall(); + + execlp(myname, myname, "-f", "--", p->name, NULL); + do_forward(); + } + if (pid == -1) + perror("fork"); + } + close(p->fd); + p->fd = 0; +} + +static struct prg *interactive_task; +static volatile int active; +static void sigchld(int sig attribute((unused))) +{ + const int old_errno = errno; + int status; + pid_t pid; + + while ((pid = waitpid(-1, &status, WNOHANG|WUNTRACED)) != 0) + { + int s; + + if (errno == ECHILD) + break; + + if (pid < 0) + continue; + + if (pid == splashpid) + { + splashpid = (pid_t)0; + continue; + } + + for (s = 0; s < par; s++) + { + struct prg * p = prgs + s; + if (p == interactive_task) + continue; + if (p->pid != pid) + continue; + if (p->flags & PRUNNING) + { + p->status = status; + p->flags |= PFINISHED; + break; + } + } + } + + signaled = 1; + errno = old_errno; +} + +static void sigwinch(int sig attribute((unused))) +{ + if (ioctl(0, TIOCGWINSZ, &wz) < 0) + { + wzok = 0; + return; + } + if (wz.ws_row == 0) wz.ws_row = 24; + if (wz.ws_col == 0) wz.ws_col = 80; + snprintf(sz.env_row, sizeof(sz.env_row), "LINES=%d", wz.ws_row); + snprintf(sz.env_col, sizeof(sz.env_col), "COLUMNS=%d", wz.ws_col); + kill(-1, SIGWINCH); +} + +void usage(int status) +{ + fprintf(stderr, "usage: startpar [options] [-a arg] prgs\n"); + fprintf(stderr, " run given programs parallel\n"); + fprintf(stderr, " startpar [options] [-P prev] [-R run] [-S :] -M mode\n"); + fprintf(stderr, " run parallel with Makefile\n"); + fprintf(stderr, " startpar -v\n"); + fprintf(stderr, " show version number\n"); + fprintf(stderr, "general options:\n"); + fprintf(stderr, " -p parallel tasks\n"); + fprintf(stderr, " -t I/O timeout\n"); + fprintf(stderr, " -T global I/O timeout\n"); + exit(status); +} + +int main(int argc, char **argv) +{ + int gtimo = -1; + int timo = -1; + int isgtimo; + int forw = 0; + int c, i, num; + int limit; + int notty = 0; + int *resvec; + struct timeval tv; + struct prg *p; + struct prg *gtimo_running = 0; + char *prev_level = getenv("PREVLEVEL"); + char *run_level = getenv("RUNLEVEL"); + char *splashopt = 0; + sigset_t nmask, omask, smask; + + detect_consoles(); + + (void)sigemptyset(&nmask); + (void)sigaddset(&nmask, SIGHUP); + sigprocmask(SIG_UNBLOCK, &nmask, NULL); + + (void)signal(SIGINT, SIG_IGN); /* Init scripts should not be interruptible */ + (void)signal(SIGCHLD, SIG_DFL); + numcpu = sysconf(_SC_NPROCESSORS_ONLN); + myname = argv[0]; + + while ((c = getopt(argc, argv, "fhp:t:T:a:M:P:R:S:vi:")) != EOF) + { + switch(c) + { + case 'p': + par = atoi(optarg); + break; + case 't': + timo = atoi(optarg); + break; + case 'T': + gtimo = atoi(optarg); + break; + case 'f': + forw = 1; + break; + case 'a': + arg = optarg; + break; + case 'M': + run_mode = optarg; + break; + case 'P': + prev_level = optarg; + break; + case 'R': + run_level = optarg; + break; + case 'S': + splashopt = optarg; + break; + case 'v': + printf("startpar version %s\n", VERSION); + exit(0); + case 'h': + usage(0); + break; + case 'i': + iorate = atof(optarg); + if (iorate < 0.0) + iorate = 800.0; + break; + default: + usage(1); + break; + } + } + if (forw) + do_forward(); + argc -= optind; + argv += optind; + + if (splashopt) + { + char *so = strchr(splashopt, ':'); + if (!so) + splashopt = 0; + else + { + splashpos = atoi(splashopt); + splashopt = so + 1; + } + splashcfg = getenv("SPLASHCFG"); + if (!splashcfg) + { + splashpos = -1; + splashopt = 0; + } + } + if (run_mode) + { + char makefile[64]; + if (!strcmp(run_mode, "boot")) + arg = "start"; + else if (!strcmp(run_mode, "halt")) + arg = "stop"; + else if (!strcmp(run_mode, "start") || !strcmp(run_mode, "stop")) + { + arg = run_mode; + if (!prev_level || !run_level) + { + fprintf(stderr, "You must specify previous and next runlevels\n"); + exit(1); + } + } + else + { + fprintf(stderr, "invalid run mode %s\n", run_mode); + exit(1); + } + snprintf(makefile, sizeof(makefile), "/etc/init.d/.depend.%s", run_mode); + parse_makefile(makefile); + check_run_files(run_mode, prev_level, run_level); + + argc = tree_entries; /* number of handled scripts */ + isstart = !strcmp(arg, "start"); + + if (argc == 0) + exit(0); + + if (par == 0) + par = 8; + if (par > argc) /* not more than the number of all scripts */ + par = argc; + + inpar = par; /* the original argument of parallel procs per cpu */ + + par = checkpar(inpar, isstart); /* the number of parallel procs on all cpu's */ + + if (par > argc) /* not more than the number of all scripts */ + par = argc; + + nodevec = xcalloc(argc, sizeof(*nodevec)); + } + else + { + if (par < 0) + usage(1); + + if (arg) + isstart = !strcmp(arg, "start"); + + if (argc == 0) + exit(0); + + if (par == 0) + par = argc; + if (par > argc) /* not more than the number of all scripts */ + par = argc; + + inpar = par; /* the original argument of parallel procs per cpu */ + + par = checkpar(inpar, isstart); /* the number of parallel procs on all cpu's */ + + if (par > argc) /* not more than the number of all scripts */ + par = argc; + } + + num = 0; + resvec = (int *)xcalloc(argc, sizeof(int)); + for (i = 0; i < argc; i++) + resvec[i] = 255; + + if (argc == 1) + { + if (run_mode) + { + if ((*nodevec = pickup_task())) + { + *resvec = run_single((*nodevec)->name, (*nodevec)->arg0, calcsplash(0, 1, splashopt)); + finish_task(*nodevec); + } + } else + *resvec = run_single(*argv, *argv, calcsplash(0, 1, splashopt)); + goto finished; + } + + prgs = (struct prg *)xcalloc(par, sizeof *prgs); + gtimo_bufsize = par * PBUF_SIZE; + gtimo_buf = (char *) calloc(gtimo_bufsize, sizeof(char)); + if (!gtimo_buf) + gtimo_bufsize = 0; /* Accept error due memory shortage */ + + sa.sa_handler = sigwinch; + sa.sa_flags = SA_RESTART|SA_NODEFER; + (void)sigemptyset(&sa.sa_mask); + if (sigaction(SIGWINCH, &sa, 0)) + { + perror("sigwinch sigaction"); + exit(1); + } + + if (tcgetattr(0, &tio)) + { + if (errno != ENOTTY) + perror("tcgetattr"); + tcgetattr(2, &tio); + if (errno == ENOTTY) + notty = 1; + } + cfmakeraw(&tio); + tio.c_lflag &= ~ECHO; + tio.c_lflag |= ISIG; + tio.c_cc[VTIME] = 0; + tio.c_cc[VMIN] = CMIN; + + if (ioctl(0, TIOCGWINSZ, &wz) == 0) + wzok = 1; + if (wz.ws_row == 0) wz.ws_row = 24; + if (wz.ws_col == 0) wz.ws_col = 80; + + strcat(&sz.env_row[0], "LINES="); + strcat(&sz.env_col[0], "COLUMNS="); + snprintf(sz.env_row, sizeof(sz.env_row), "LINES=%d", wz.ws_row); + snprintf(sz.env_col, sizeof(sz.env_col), "COLUMNS=%d", wz.ws_col); + + sa.sa_handler = sigchld; + sa.sa_flags = SA_RESTART; + (void)sigemptyset(&sa.sa_mask); + (void)sigaddset(&sa.sa_mask, SIGCHLD); + (void)sigaddset(&sa.sa_mask, SIGWINCH); + (void)sigaddset(&sa.sa_mask, SIGUSR1); + (void)sigaddset(&sa.sa_mask, SIGUSR2); + if (sigaction(SIGCHLD, &sa, 0)) + { + perror("sigchld sigaction"); + exit(1); + } + +#ifdef USE_PRELOAD + sa.sa_handler = sighandler_preload; + sa.sa_flags = SA_RESTART; + (void)sigemptyset(&sa.sa_mask); + if (sigaction(SIGUSR1, &sa, 0)) + { + perror("sigusr1(preload) sigaction"); + exit(1); + } + + sa.sa_handler = sighandler_nopreload; + sa.sa_flags = SA_RESTART; + (void)sigemptyset(&sa.sa_mask); + if (sigaction(SIGUSR2, &sa, 0)) + { + perror("sigusr2(preload) sigaction"); + exit(1); + } +#endif + + /* lock us into memory */ + if (geteuid() == 0) + mlockall(MCL_CURRENT|MCL_FUTURE); + errno = 0; + + gettimeofday(&glastio, 0); + limit = checklimit(inpar, isstart); + lastlim = glastio; + + (void)sigemptyset(&nmask); + (void)sigaddset(&nmask, SIGCHLD); + sigprocmask(SIG_BLOCK, &nmask, &omask); + + (void)sigfillset(&smask); + (void)sigdelset(&smask, SIGHUP); + (void)sigdelset(&smask, SIGINT); + (void)sigdelset(&smask, SIGQUIT); + (void)sigdelset(&smask, SIGTERM); + (void)sigdelset(&smask, SIGCHLD); + + for (;;) + { +#ifdef CHECK_FORDEVPTS + int devpts = 0; +#endif + int maxfd = -1; + int last = -1; + int r, s; + long diff; + pid_t pid; + fd_set rset; + + gettimeofday(&now, 0); + pid = (pid_t)-1; + FD_ZERO(&rset); + tv = now; + + if ((diff = timerdiff(now, lastlim)) >= 300 || diff < 0) + { +#if DEBUG + fprintf(stderr, "%d: doing checklimit after %ldms %ld\n", getpid(), diff, time(0)); +#endif + if ((limit = checklimit(inpar, isstart)) > argc) + limit = argc; /* not more than the number of all scripts */ + lastlim = now; + diff = 0; + } +#if DEBUG + fprintf(stderr, "par=%d, inpar=%d, limit=%d (diff=%ld)\n", par, inpar, limit, diff); +#endif + for (s = 0; s < par; s++) /* never leave this with break!! */ + { + p = prgs + s; + if (p == interactive_task) + continue; /* don't count this here */ + if (p->fd == 0) + { + if (interactive_task) + continue; /* dont't start new processes */ + if (num >= argc) + continue; /* nothing to do */ + redo: + if (p->pid == 0) + { + if (active >= limit) + continue; /* load balancing */ + if (run_mode) + { + if ((nodevec[num] = pickup_task()) == NULL) + continue; + if (nodevec[num]->interactive) + interactive_task = p; + p->name = nodevec[num]->name; + p->arg0 = nodevec[num]->arg0 ? nodevec[num]->arg0 : nodevec[num]->name; + } + else { + p->name = *argv++; + p->arg0 = p->name; + } + p->splashadd = calcsplash(num, argc, splashopt); + p->num = num++; +#ifdef CHECK_FORDEVPTS + if (!devpts) + interactive_task = p; /* no /dev/pts, treat as interactive */ +#endif + if (notty) + interactive_task = p; /* no tty, treat as interactive */ + if (interactive_task) + continue; /* don't start this here */ + run(p); + if (p->pid == 0) + { + resvec[p->num] = 1; + if (run_mode) + finish_task(nodevec[p->num]); + p->status = 0; + p->flags = 0; + if (p->fd) + { + close(p->fd); + p->fd = 0; + } + goto redo; /* this one is free again */ + } + else + { + active++; /* count this active job */ + } + gettimeofday(&now, 0); + tv = now; + } + } + + FD_SET(p->fd, &rset); + if (p->fd > maxfd) + maxfd = p->fd; + + if (p->len == 0) + continue; + if ((last < 0) || timercmp(&tv,&p->lastio,>)) + { + last = s; + tv = p->lastio; + } + + } /* for (s = 0; s < par; s++) */ + + if (interactive_task) + { + if (active == 0) + { + p = interactive_task; + p->flags |= PRUNNING; + resvec[p->num] = run_single(p->name, p->arg0, p->splashadd); + if (run_mode) + finish_task(nodevec[p->num]); + p->flags = 0; + p->pid = 0; + p->fd = 0; + interactive_task = NULL; + continue; + } + } + + if (active == 0) + { + if (num < argc) + fprintf(stderr, "ERROR: not all processed (%d of %d)\n", num, argc); + break; + } +#if DEBUG + fprintf(stderr, "active = %d, maxfd = %d, last = %d\n", active, maxfd, last); +#endif + if (active == 1 && last >= 0) + { + p = prgs + last; + if ((pid = waitpid(p->pid, &r, (maxfd < 0 ? 0 : WNOHANG)|WUNTRACED)) == 0) + { + writebuf(p); + continue; + } + else + { + p->status = r; + p->flags |= PFINISHED; + signaled = 1; + } + } + else + { + const struct timespec zero = {0,0}; + const int old_errno = errno; + (void)pselect(0,0,0,0,&zero,&smask); + errno = old_errno; + } + + if (signaled) + { + signaled = 0; + + for (s = 0; s < par; s++) + { + p = prgs + s; + + if ((p->flags & PFINISHED) == 0) + continue; + r = p->status; + + if (WIFSTOPPED(r)) + { + pid_t pg = getpgid(p->pid); + if (pg > 0) + killpg(pg, SIGCONT); + else + kill(-p->pid, SIGCONT); + p->flags &= ~PFINISHED; + continue; + } + + callsplash(p->splashadd, p->name, arg); + resvec[p->num] = WIFEXITED(r) ? WEXITSTATUS(r) : (WIFSIGNALED(r) ? 1 : 255); + if (run_mode) + finish_task(nodevec[p->num]); + p->status = 0; + p->flags = 0; + p->pid = 0; + active--; + + if (gtimo_running == p) + { + writebuf(p); + if (p->fd) detach(p, GTIMO_OFFL); + flushbuf(); + gtimo_running = 0; + } + else if (gtimo_running) + { + storebuf(p); + if (p->fd) detach(p, GTIMO_USED); + } + else + { + writebuf(p); + if (p->fd) detach(p, GTIMO_OFFL); + } +#ifdef START_OUTRIGHT + break; /* one free slot ... start outright new process */ +#endif + } /* for (s = 0; s < par; s++) */ + +#ifdef CHECK_FORDEVPTS + if (!devpts) + devpts = checkdevpts(); +#endif + continue; /* start new processes */ + } + + if (timo >= 0) + tv.tv_sec += timo; + + isgtimo = 0; + if (gtimo >= 0 && !gtimo_running && last >= 0 && prgs[last].pid) + { + struct timeval gl = glastio; + gl.tv_sec += gtimo; + if ((timo < 0) || timercmp(&tv,&gl,>)) + { + tv = glastio; + tv.tv_sec += gtimo; + isgtimo = 1; + } + } + + r = 0; + if (timo >= 0 || isgtimo) + { + struct timeval wait; + struct timespec spec; + + timersub(&tv, &now, &wait); + if (wait.tv_usec < 0) + { + wait.tv_usec += 1000000; + wait.tv_sec--; + } + if (wait.tv_sec >= 0) + { + int check = limit < par && num < argc; + + if (check) /* shorten timeout for new limit and procs ... */ + { + wait.tv_sec = 0; + wait.tv_usec = (300 - diff) * 1000; + } +#if DEBUG + fprintf(stderr, "going into select1 %d %ld %ld\n", last, wait.tv_sec, wait.tv_usec); +#endif + TIMEVAL_TO_TIMESPEC(&wait, &spec); + r = pselect(maxfd + 1, &rset, 0, 0, (last >= 0 || check) ? &spec : 0, &smask); + + if (check && (r == 0)) /* ... but do not throw out messages to early!!! */ + continue; + } + else + { + wait.tv_sec = 0; /* Avoid looping around (does this ever happen?) */ + wait.tv_usec = 20*1000; + TIMEVAL_TO_TIMESPEC(&wait, &spec); + r = pselect(maxfd + 1, &rset, 0, 0, last >= 0 ? &spec : 0, &smask); + } + } + else + { + r = pselect(maxfd + 1, &rset, 0, 0, 0, &smask); + } + + if (r == -1) + { + if (errno == EINTR) + continue; /* SIGCHLD has happen in most cases */ + perror("select"); + exit(1); + } + if (r == 0) + { + if (last < 0) /* just in case... */ + continue; + p = prgs + last; + writebuf(p); + if (isgtimo && p->pid) + gtimo_running = p; + } + else + { + for (s = 0; s < par; s++) + { + p = prgs + s; + if (p->fd == 0) + continue; + if (!FD_ISSET(p->fd, &rset)) + continue; + r = (int)TEMP_FAILURE_RETRY(read(p->fd, p->buf + p->len, sizeof(p->buf) - p->len)); + if (r <= 0) + { + if (!gtimo_running || p == gtimo_running) + writebuf(p); + if (r < 0) + { + close(p->fd); + p->fd = 0; +#ifdef START_OUTRIGHT + break; /* one free slot ... start outright new process */ +#endif + } + continue; + } + p->len += r; + if (p->len == sizeof(p->buf)) + { + for (i = p->len - 1; i >= 0; i--) + { + if (p->buf[i] == '\n') + break; + } + if (++i <= 0) + i = p->len; + p->len = i; + writebuf(p); + p->len = i; /* writebuf clears p->len */ + if (p->len < sizeof(p->buf)) + memmove(p->buf, p->buf + p->len, sizeof(p->buf) - p->len); + p->len = sizeof(p->buf) - p->len; + } + p->lastio = now; + + } /* for (s = 0; s < par; s++) */ + } + + } /* for (;;) */ + + sigprocmask(SIG_SETMASK, &omask, NULL); + +finished: + waitsplash(); + if (run_mode) + print_run_result(resvec, nodevec, run_mode); + else + { + for (i = 0; i < argc; i++) + { +#if DEBUG + if (resvec[i] == 255) + { + fprintf(stderr, "ERROR: forgotten process??\n"); + exit (1); + } +#endif +#if VERBOSE + printf(i ? " %d" : "%d", resvec[i]); +#endif /* VERBOSE */ + } +#if VERBOSE + printf("\n"); +#endif /* VERBOSE */ + } + return 0; +} debian/patches/series0000664000000000000000000000116112310205332012022 0ustar 10_doc_manuals.dpatch 11_lfs_cflags.patch 11_man_halt8.patch 11_man_fstab_decode_typo 20_init_freebsd_vswtc.patch 30_killall5_hurd.patch 40_multiarch_libcrypt.patch 63_init_keep_utf8_ttyflag.patch 64_init_selinux_enabled.patch 69_startpar.patch 70_not_suse.patch 71_signalfd.patch 72_path_max.patch 73_lfs_cflags.patch 74_man_startpar_iorate.patch 75_man_startpar_see_also.patch 76_startpar_ldflags.patch 77_startpar_skip_reason.patch 79_startpar_kfreebsd_mlockall.patch 91_sulogin_lockedpw.dpatch 92_sulogin_support_static_sh.patch 92_kfreebsd_ifdown.patch 93_run_initctl.patch 94_kfreebsd_xterm.patch upstart_support.patch debian/patches/20_init_freebsd_vswtc.patch0000664000000000000000000000100212310205332016004 0ustar Purpose: kFreeBSD is missing VSWTC, provide workaround. Authour: Petter Reinholdtsen Fixes: #579293 Status: Not sent upstream. --- sysvinit.old/src/init.c (revision 1869) +++ sysvinit/src/init.c (working copy) @@ -770,7 +770,9 @@ tty.c_cc[VEOF] = CEOF; tty.c_cc[VTIME] = 0; tty.c_cc[VMIN] = 1; +#ifdef VSWTC /* not defined on FreeBSD */ tty.c_cc[VSWTC] = _POSIX_VDISABLE; +#endif /* VSWTC */ tty.c_cc[VSTART] = CSTART; tty.c_cc[VSTOP] = CSTOP; tty.c_cc[VSUSP] = CSUSP; debian/patches/93_run_initctl.patch0000664000000000000000000001064412310205332014501 0ustar --- a/doc/Install +++ b/doc/Install @@ -48,7 +48,7 @@ manual page on shutdown to find out more about this. Running from a read-only file system (CDROM?): -o All communication to init goes through the FIFO /dev/initctl. +o All communication to init goes through the FIFO /run/initctl. There should be no problem using a read-only root file system IF you use a Linux kernel > 1.3.66. Older kernels don't allow writing to a FIFO on a read-only file system. --- a/man/init.8 +++ b/man/init.8 @@ -144,7 +144,7 @@ the letter \fBF\fP. .PP Usage of \fBSIGPWR\fP and \fB/etc/powerstatus\fP is discouraged. Someone -wanting to interact with \fBinit\fP should use the \fB/dev/initctl\fP +wanting to interact with \fBinit\fP should use the \fB/run/initctl\fP control channel - see the source code of the \fBsysvinit\fP package for more documentation about this. .PP @@ -248,7 +248,7 @@ the current runlevel. .PP .SH INTERFACE -Init listens on a \fIfifo\fP in /dev, \fI/dev/initctl\fP, for messages. +Init listens on a \fIfifo\fP in /run, \fI/run/initctl\fP, for messages. \fBTelinit\fP uses this to communicate with init. The interface is not very well documented or finished. Those interested should study the \fIinitreq.h\fP file in the \fIsrc/\fP subdirectory of the \fBinit\fP @@ -262,7 +262,7 @@ .TP 0.5i .B SIGUSR1 On receipt of this signals, init closes and re-opens its control fifo, -\fB/dev/initctl\fP. Useful for bootscripts when /dev is remounted. +\fB/run/initctl\fP. .TP 0.5i .B SIGINT Normally the kernel sends this signal to init when CTRL-ALT-DEL is @@ -287,7 +287,7 @@ /dev/console /var/run/utmp /var/log/wtmp -/dev/initctl +/run/initctl .fi .\"}}} .\"{{{ Warnings --- a/src/Makefile +++ b/src/Makefile @@ -181,8 +181,8 @@ # # This part is skipped on Debian systems, the # debian.preinst script takes care of it. - @if [ ! -p /dev/initctl ]; then \ - echo "Creating /dev/initctl"; \ - rm -f /dev/initctl; \ - mknod -m 600 /dev/initctl p; fi + @if [ ! -p /run/initctl ]; then \ + echo "Creating /run/initctl"; \ + rm -f /run/initctl; \ + mknod -m 600 /run/initctl p; fi endif --- a/src/init.c +++ b/src/init.c @@ -129,7 +129,7 @@ int maxproclen; /* Maximal length of argv[0] with \0 */ struct utmp utproto; /* Only used for sizeof(utproto.ut_id) */ char *console_dev; /* Console device. */ -int pipe_fd = -1; /* /dev/initctl */ +int pipe_fd = -1; /* /run/initctl */ int did_boot = 0; /* Did we already do BOOT* stuff? */ int main(int, char **); @@ -2174,13 +2174,13 @@ int quit = 0; /* - * First, try to create /dev/initctl if not present. + * First, try to create /run/initctl if not present. */ if (stat(INIT_FIFO, &st2) < 0 && errno == ENOENT) (void)mkfifo(INIT_FIFO, 0600); /* - * If /dev/initctl is open, stat the file to see if it + * If /run/initctl is open, stat the file to see if it * is still the _same_ inode. */ if (pipe_fd >= 0) { @@ -2194,7 +2194,7 @@ } /* - * Now finally try to open /dev/initctl + * Now finally try to open /run/initctl */ if (pipe_fd < 0) { if ((pipe_fd = open(INIT_FIFO, O_RDWR|O_NONBLOCK)) >= 0) { @@ -2500,7 +2500,7 @@ } if (ISMEMBER(got_signals, SIGUSR1)) { /* - * SIGUSR1 means close and reopen /dev/initctl + * SIGUSR1 means close and reopen /run/initctl */ INITDBG(L_VB, "got SIGUSR1"); close(pipe_fd); @@ -2736,7 +2736,7 @@ chdir("/"); /* Open the fifo and write a command. */ - /* Make sure we don't hang on opening /dev/initctl */ + /* Make sure we don't hang on opening /run/initctl */ SETSIG(sa, SIGALRM, signal_handler, 0); alarm(3); if ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) { --- a/src/initreq.h +++ b/src/initreq.h @@ -1,5 +1,5 @@ /* - * initreq.h Interface to talk to init through /dev/initctl. + * initreq.h Interface to talk to init through /run/initctl. * * Copyright (C) 1995-2004 Miquel van Smoorenburg * @@ -25,11 +25,7 @@ #include -#if defined(__FreeBSD_kernel__) -# define INIT_FIFO "/etc/.initctl" -#else -# define INIT_FIFO "/dev/initctl" -#endif +#define INIT_FIFO "/run/initctl" #define INIT_MAGIC 0x03091969 #define INIT_CMD_START 0 --- a/src/shutdown.c +++ b/src/shutdown.c @@ -173,7 +173,7 @@ /* * Open the fifo and write the command. - * Make sure we don't hang on opening /dev/initctl + * Make sure we don't hang on opening /run/initctl */ memset(&sa, 0, sizeof(sa)); sa.sa_handler = alrm_handler; debian/patches/74_man_startpar_iorate.patch0000664000000000000000000000212512310205332016177 0ustar Purpose: Correct startpar documentation of -i option Author: Roger Leigh Fixes: Unclear description Status: Not submitted upstream --- a/startpar/startpar.8 2012-04-09 14:03:41.403751667 +0100 +++ b/startpar/startpar.8 2012-04-09 14:25:32.642595399 +0100 @@ -1,4 +1,4 @@ -.\" +'\" e .\" SuSE man page for startpar .\" .\" Copyright (c) 2003 SuSE Linux AG, Nuernberg, Germany. @@ -62,13 +62,19 @@ the scripts can be provided with the .B \-a option. -Processes block by pending +Processes blocked by pending .B I/O -will weighting by the factor +will cause new process creation to be weighted by the iorate factor .IR 800 . To change this factor the option .B \-i -can be used to specify an other value. +can be used to specify another value. The amount +.EQ +weight = (nblocked times iorate) / 1000 +.EN +will be subtracted from the total number of processes which could be +started, where nblocked is the number of processes currently blocked +by pending I/O. The output of each script is buffered and written when the script exits, so output lines of different scripts won't mix. You can debian/patches/79_startpar_kfreebsd_mlockall.patch0000664000000000000000000000067512310205332017541 0ustar Purpose: Fix kernel panic on kfreebsd Fixes: #672959 Author: Petr Salinger Status: Not yet submitted upstream --- --- a/startpar/startpar.c 2012-08-21 22:02:07.000000000 +0100 +++ b/startpar/startpar.c 2012-08-21 22:02:41.340814312 +0100 @@ -1122,9 +1122,11 @@ } #endif +#ifdef __linux__ /* lock us into memory */ if (geteuid() == 0) mlockall(MCL_CURRENT|MCL_FUTURE); +#endif errno = 0; gettimeofday(&glastio, 0); debian/patches/94_kfreebsd_xterm.patch0000664000000000000000000000100212310205332015140 0ustar --- a/src/init.c +++ b/src/init.c @@ -747,11 +747,11 @@ #ifdef __FreeBSD_kernel__ /* * The kernel of FreeBSD expects userland to set TERM. Usually, we want - * "cons25". Later, gettys might disagree on this (i.e. we're not using + * "xterm". Later, gettys might disagree on this (i.e. we're not using * syscons) but some boot scripts, like /etc/init.d/xserver-xorg, still * need a non-dumb terminal. */ - putenv ("TERM=cons25"); + putenv ("TERM=xterm"); #endif (void) tcgetattr(fd, &tty); debian/patches/11_man_halt8.patch0000664000000000000000000000176212310205332014011 0ustar diff --git a/man/halt.8 b/man/halt.8 index 8ae3c63..9f326f6 100644 --- a/man/halt.8 +++ b/man/halt.8 @@ -51,7 +51,7 @@ halt, reboot, poweroff \- stop the system. .\"}}} .\"{{{ Description .SH DESCRIPTION -\fBHalt\fP notes that the system is being brought down in the file +\fBhalt\fP notes that the system is being brought down in the file \fI/var/log/wtmp\fP, and then either tells the kernel to halt, reboot or power-off the system. .PP @@ -68,12 +68,12 @@ and 6, that is when the systems shutdown scripts are being run. .SH OPTIONS .IP \fB\-n\fP Don't sync before reboot or halt. Note that the kernel and storage -drivers may still sync. +drivers may still sync. This implies \fB\-d\fP. .IP \fB\-w\fP Don't actually reboot or halt but only write the wtmp record (in the \fI/var/log/wtmp\fP file). .IP \fB\-d\fP -Don't write the wtmp record. The \fB\-n\fP flag implies \fB\-d\fP. +Don't write the wtmp record. .IP \fB\-f\fP Force halt or reboot, don't call \fBshutdown\fP(8). .IP \fB\-i\fP debian/patches/92_sulogin_support_static_sh.patch0000664000000000000000000000126112310205332017456 0ustar Index: ubuntu/src/sulogin.c =================================================================== --- ubuntu.orig/src/sulogin.c +++ ubuntu/src/sulogin.c @@ -57,7 +57,8 @@ #define F_PASSWD "/etc/passwd" #define F_SHADOW "/etc/shadow" #define BINSH "/bin/sh" -#define STATICSH "/bin/sash" +#define STATICSH "/bin/static-sh" +#define STATICSH_SASH "/bin/sash" char *Version = "@(#)sulogin 2.85-3 23-Apr-2003 miquels@cistron.nl"; @@ -469,6 +470,11 @@ setenv("SHELL", STATICSH, 1); execl(STATICSH, STATICSH, NULL); perror(STATICSH); + + /* Fall back to sash */ + setenv("SHELL", STATICSH_SASH, 1); + execl(STATICSH_SASH, STATICSH_SASH, NULL); + perror(STATICSH_SASH); } static debian/patches/77_startpar_skip_reason.patch0000664000000000000000000000125412310205332016403 0ustar --- a/startpar/makeboot.c (revision 1961) +++ b/startpar/makeboot.c (working copy) @@ -485,10 +485,10 @@ } } printf("\"\n"); - printf("skipped_service=\""); + printf("skipped_service_not_installed=\""); i = r = 0; for (i = 0; i < tree_entries; i++) { - if (resvec[i] == 5 || resvec[i] == 6) { + if (resvec[i] == 5) { if (r) printf(" "); printf("%s", nodevec[i]->name); @@ -496,6 +496,17 @@ } } printf("\"\n"); + printf("skipped_service_not_configured=\""); + i = r = 0; + for (i = 0; i < tree_entries; i++) { + if (resvec[i] == 6) { + if (r) + printf(" "); + printf("%s", nodevec[i]->name); + r++; + } + } + printf("\"\n"); } #if DEBUG debian/patches/40_multiarch_libcrypt.patch0000664000000000000000000000104512310205332016032 0ustar Purpose: Use multiarch library search path to find and link with libcrypt Author: Roger Leigh Fixes: #629677 Status: Not sent upstream. diff --git a/src/Makefile b/src/Makefile index e2b8028..5bc8671 100644 --- a/src/Makefile +++ b/src/Makefile @@ -77,10 +77,15 @@ else SULOGINLIBS = endif +LIBDIR=/usr/lib # Additional libs for GNU libc. ifneq ($(wildcard /usr/lib*/libcrypt.a),) + SULOGINLIBS += -lcrypt +else +ifneq ($(wildcard $(LIBDIR)*/libcrypt.a),) SULOGINLIBS += -lcrypt endif +endif all: $(BIN) $(SBIN) $(USRBIN) debian/patches/75_man_startpar_see_also.patch0000664000000000000000000000074012310205332016510 0ustar Purpose: Correct startpar SEE ALSO section Author: Roger Leigh Fixes: Missing and unavailable references Status: Not submitted upstream --- a/startpar/startpar.8 2012-04-09 20:16:32.101074559 +0100 +++ b/startpar/startpar.8 2012-04-09 20:17:06.077627790 +0100 @@ -114,9 +114,8 @@ .I /etc/init.d/.depend.stop .SH SEE ALSO -.BR init.d (7), -.BR insserv (8), -.BR startproc (8). +.BR init (8) +.BR insserv (8). .SH COPYRIGHT 2003,2004 SuSE Linux AG, Nuernberg, Germany. debian/patches/upstart_support.patch0000664000000000000000000004506612310205332015140 0ustar === modified file 'Makefile' Index: sysvinit-2.88dsf/startpar/Makefile =================================================================== --- sysvinit-2.88dsf.orig/startpar/Makefile +++ sysvinit-2.88dsf/startpar/Makefile @@ -9,8 +9,8 @@ man8dir = $(mandir)/man8 SRCS = startpar.c makeboot.c proc.c -HDRS = makeboot.h proc.h -REST = COPYING Makefile startpar.8 +HDRS = makeboot.h proc.h startpar.h +REST = COPYING Makefile startpar.8 startpar-upstart-inject.c OBJS = $(SRCS:.c=.o) ifneq ($(INC),) Index: sysvinit-2.88dsf/startpar/makeboot.c =================================================================== --- sysvinit-2.88dsf.orig/startpar/makeboot.c +++ sysvinit-2.88dsf/startpar/makeboot.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include @@ -30,6 +31,8 @@ #include #include #include +#include +#include #if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 # include # include @@ -47,6 +50,7 @@ #endif #include "makeboot.h" +#define DBUS_ADDRESS_UPSTART "@/com/ubuntu/upstart" int tree_entries = 0; struct makenode *tree_list = NULL; @@ -57,7 +61,7 @@ * * FIXME: we should use hash for the effective search. */ -static struct makenode *lookup_target(const char *name) +struct makenode *lookup_target(const char *name) { struct makenode *t; @@ -409,6 +413,105 @@ } } +#ifdef __linux__ +/* + * mark upstart services as finished. + * + * action is either boot, start or stop. + */ +int check_upstart_jobs(const char *action, const struct makenode **nodevec) +{ + struct makenode *t; + int count = 0; + + if (!init_is_upstart()) + return 0; + + for (t = tree_list; t; t = t->next) + { + char path[131]; /* three bytes longer than the max allowed init script name... */ + struct stat job; + + snprintf(path, sizeof(path), "/etc/init/%s.conf", t->name); + if (!stat(path,&job)) { + int ret; + char *command; + + t->upstart = 1; + /* Upstart jobs are never interactive in this sense */ + t->interactive = 0; + if (!strcmp(action,"start") || !strcmp(action,"boot")) + { + asprintf(&command, + "/sbin/initctl status %s | grep -q start/running", + t->name); + } else { + asprintf(&command, + "/sbin/initctl status %s | grep -q stop/waiting", + t->name); + } + ret = system(command); + if (WEXITSTATUS(ret) == 0) { + nodevec[count] = t; + finish_task(t); + count++; + } + free(command); + } + } + return count; +} + +/* + * return true if PID 1 is upstart, false otherwise. + */ +boolean init_is_upstart(void) { + static int is_upstart = -1; + int fd; + struct sockaddr_un saddr; + socklen_t addrlen; + struct ucred ucred; + socklen_t slen; + + if (is_upstart != -1) + return is_upstart; + + fd = socket(AF_LOCAL, SOCK_STREAM, 0); + /* Weird, but we'll just have to assume no upstart. */ + if (fd < 0) + goto fail; + + saddr.sun_family = AF_LOCAL; + strcpy(saddr.sun_path, DBUS_ADDRESS_UPSTART); + addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path); + + /* translate leading '@' to abstract namespace */ + if (saddr.sun_path[0] == '@') + saddr.sun_path[0] = '\0'; + + if (connect(fd, (struct sockaddr *)&saddr, addrlen) < 0) + goto fail; + + /* Make sure it's really upstart and not something lying to us! */ + slen = sizeof(ucred); + if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &ucred, &slen) < 0) + goto fail; + + close(fd); + if (ucred.uid == 0) + is_upstart = 1; + else + is_upstart = 0; + + return is_upstart; + +fail: + if (fd >= 0) + close(fd); + is_upstart = 0; + return is_upstart; +} +#endif /* * call blogd @@ -461,6 +564,8 @@ if (! node) return; + /* Ignore any further upstart signals for this job */ + node->upstart = 0; for (n = node->select; n; n = n->next) n->node->num_deps--; #if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 600 Index: sysvinit-2.88dsf/startpar/makeboot.h =================================================================== --- sysvinit-2.88dsf.orig/startpar/makeboot.h +++ sysvinit-2.88dsf/startpar/makeboot.h @@ -23,6 +23,8 @@ T_READY, T_RUNNING, T_FINISHED }; +typedef enum _boolean {false, true} boolean; + /* target nodes */ struct makenode { char *name; @@ -34,6 +36,7 @@ int status; struct makenode *next; int interactive; + int upstart; int importance; int filter_prefix; }; @@ -49,10 +52,13 @@ extern void parse_makefile(const char *path); extern void check_run_files(const char *action, const char *prev, const char *run); +extern int check_upstart_jobs(const char *action, const struct makenode **nodevec); extern struct makenode *pickup_task(void); +extern struct makenode *lookup_target(const char *name); extern void finish_task(struct makenode *n); extern void *xcalloc(size_t nmemb, size_t size); extern void print_run_result(int *resvec, struct makenode **nodevec, const char *action); +extern boolean init_is_upstart(void); #define alignof(type) ((sizeof(type)+(sizeof(void*)-1)) & ~(sizeof(void*)-1)) #define strsize(string) ((strlen(string)+1)*sizeof(char)) Index: sysvinit-2.88dsf/startpar/startpar.c =================================================================== --- sysvinit-2.88dsf.orig/startpar/startpar.c +++ sysvinit-2.88dsf/startpar/startpar.c @@ -1,4 +1,5 @@ /* Copyright (c) 2003 SuSE Linux AG + * Copyright 2011 Canonical Ltd * * 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 @@ -30,6 +31,7 @@ # define CHECK_FORDEVPTS #endif #include +#include #include #include #include @@ -51,6 +53,7 @@ #include #include #include +#include #ifdef USE_BLOGD # include #else @@ -59,6 +62,7 @@ #endif #include "makeboot.h" #include "proc.h" +#include "startpar.h" #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) # ifndef inline @@ -80,7 +84,6 @@ #define timerdiff(n,l) (extension({ (((n).tv_sec-(l).tv_sec)*1000)+(((n).tv_usec-(l).tv_usec)/1000); })) -typedef enum _boolean {false, true} boolean; extern char *optarg; extern int optind; @@ -114,6 +117,7 @@ pid_t pid; struct timeval lastio; int splashadd; + int upstart; int status; int flags; size_t len; @@ -831,6 +835,9 @@ int limit; int notty = 0; int *resvec; +#ifdef __linux__ + int upstart_fd = -1; +#endif struct timeval tv; struct prg *p; struct prg *gtimo_running = 0; @@ -919,6 +926,36 @@ splashopt = 0; } } +#ifdef __linux__ + if (init_is_upstart()) + { + struct sockaddr_un saddr; + socklen_t addrlen; + upstart_fd = socket(AF_LOCAL, SOCK_SEQPACKET|SOCK_NONBLOCK|SOCK_CLOEXEC, 0); + if (upstart_fd < 0) + fprintf(stderr, "Failed to open control socket for upstart events\n"); + + saddr.sun_family = AF_LOCAL; + strcpy(saddr.sun_path, UPSTART_SOCKET_PATH); + addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path); + /* translate leading '@' to abstract namespace */ + if (saddr.sun_path[0] == '@') + saddr.sun_path[0] = '\0'; + if (bind(upstart_fd, (struct sockaddr *)&saddr, addrlen) < 0) + { + fprintf(stderr, "Failed to bind address for upstart events: %m\n"); + close(upstart_fd); + upstart_fd = -1; + } + if (listen(upstart_fd, SOMAXCONN)) + { + fprintf(stderr, "Failed to listen for upstart events: %m\n"); + close(upstart_fd); + upstart_fd = -1; + } + } +#endif + if (run_mode) { char makefile[64]; @@ -993,6 +1030,12 @@ for (i = 0; i < argc; i++) resvec[i] = 255; +#ifdef __linux__ + num += check_upstart_jobs(run_mode, nodevec); + for (i = 0; i < num; i++) + resvec[i] = 0; +#endif + if (argc == 1) { if (run_mode) @@ -1102,7 +1145,10 @@ for (;;) { #ifdef CHECK_FORDEVPTS - int devpts = 0; + /* if we don't initialize this to a proper value, jobs get marked as + interactive when they shouldn't be and get lost when there are + upstart jobs in the mix. */ + int devpts = checkdevpts(); #endif int maxfd = -1; int last = -1; @@ -1114,6 +1160,14 @@ gettimeofday(&now, 0); pid = (pid_t)-1; FD_ZERO(&rset); + +#ifdef __linux__ + if (upstart_fd >= 0) + FD_SET(upstart_fd, &rset); + if (upstart_fd > maxfd) + maxfd = upstart_fd; +#endif + tv = now; if ((diff = timerdiff(now, lastlim)) >= 300 || diff < 0) @@ -1134,7 +1188,7 @@ p = prgs + s; if (p == interactive_task) continue; /* don't count this here */ - if (p->fd == 0) + if (p->fd == 0 && p->upstart == 0) { if (interactive_task) continue; /* dont't start new processes */ @@ -1153,6 +1207,7 @@ interactive_task = p; p->name = nodevec[num]->name; p->arg0 = nodevec[num]->arg0 ? nodevec[num]->arg0 : nodevec[num]->name; + p->upstart = nodevec[num]->upstart; } else { p->name = *argv++; @@ -1161,15 +1216,16 @@ p->splashadd = calcsplash(num, argc, splashopt); p->num = num++; #ifdef CHECK_FORDEVPTS - if (!devpts) + if (!devpts && !p->upstart) interactive_task = p; /* no /dev/pts, treat as interactive */ #endif - if (notty) + if (notty && !p->upstart) interactive_task = p; /* no tty, treat as interactive */ if (interactive_task) continue; /* don't start this here */ - run(p); - if (p->pid == 0) + if (p->upstart == 0) + run(p); + if (p->pid == 0 && p->upstart == 0) { resvec[p->num] = 1; if (run_mode) @@ -1192,6 +1248,8 @@ } } + if (p->upstart) + continue; FD_SET(p->fd, &rset); if (p->fd > maxfd) maxfd = p->fd; @@ -1393,6 +1451,120 @@ } else { +#ifdef __linux__ + if (upstart_fd >= 0 && FD_ISSET(upstart_fd, &rset)) + { + int client; + /* Process new upstart events, marking the related process + as started */ + while ((client = accept4(upstart_fd, NULL, NULL, SOCK_CLOEXEC)) >= 0) + { + struct ucred *cred; + char cred_msg[CMSG_SPACE(sizeof(struct ucred))]; + ssize_t size; + char buf[8192]; + struct iovec iov; + struct msghdr smsg; + struct cmsghdr *cmsg; + struct makenode *node; + char *event, *name; + int b = true; + + if (setsockopt(client, SOL_SOCKET, SO_PASSCRED, &b, sizeof(b)) < 0) + { + /* Without this, we can't trust the client. */ + close(client); + continue; + } + + /* Wait for the actual message */ + for (;;) { + /* Yes, we're already using select elsewhere, but let's not + perpetuate the badness more than necessary. */ + struct pollfd pfd[1]; + int r; + + pfd[0].fd = client; + pfd[0].events = POLLIN; + + r = poll(pfd, 1, 2000); + if (r < 0) { + if (errno == EINTR) + continue; + close(client); + client = -1; + } + if (r == 0 || !(pfd[0].revents & POLLIN)) { + close(client); + client = -1; + } + break; + } + /* Error waiting for read, move along */ + if (client == -1) + continue; + + memset(&smsg, 0, sizeof(struct msghdr)); + iov.iov_base = &buf; + iov.iov_len = sizeof(buf); + smsg.msg_iov = &iov; + smsg.msg_iovlen = 1; + smsg.msg_control = cred_msg; + smsg.msg_controllen = sizeof(cred_msg); + + size = recvmsg(client, &smsg, 0); + + /* Each client is only allowed one message. */ + close(client); + if (size <= 0) + continue; + + cmsg = CMSG_FIRSTHDR(&smsg); + cred = (struct ucred *) CMSG_DATA(cmsg); + if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS + || cred->uid != 0) + { + /* we don't trust the client. */ + continue; + } + + /* Make sure our message is NUL-terminated... */ + buf[size-1] = '\0'; + /* No room for the job name, malformed message */ + if (strlen(buf) >= size-2) + continue; + event = buf; + name = buf+strlen(event)+1; + if ((!strcmp(run_mode, "boot") || !strcmp(run_mode, "start")) + && strcmp(event,"started")) + continue; + if ((!strcmp(run_mode, "halt") || !strcmp(run_mode, "stop")) + && strcmp(event,"stopped")) + continue; + node = lookup_target(name); + if (node && node->upstart) + { + int found = 0; + finish_task(node); + for (s = 0; s < par; s++) + { + p = prgs + s; + /* FIXME: should have a better way to check the job + identity besides strcmp */ + if (p->name && !strcmp(p->name,name)) + { + found = 1; + p->upstart = 0; + active--; + resvec[p->num] = 0; + } + } + if (!found) + nodevec[++num] = node; + } + } + } +#endif for (s = 0; s < par; s++) { p = prgs + s; Index: sysvinit-2.88dsf/startpar/startpar-upstart-inject.c =================================================================== --- /dev/null +++ sysvinit-2.88dsf/startpar/startpar-upstart-inject.c @@ -0,0 +1,90 @@ +/* Copyright 2011 Canonical Ltd. + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + **************************************************************** + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "startpar.h" + +int main(int argc, char **argv) +{ + int fd, len; + ssize_t written = 0; + struct sockaddr_un saddr; + socklen_t addrlen; + char *buf; + + if (argc < 4) { + fprintf(stderr, "Usage: %s jobname instance upstart_events\n", + argv[0]); + exit(1); + } + + fd = socket(AF_LOCAL, SOCK_SEQPACKET|SOCK_NONBLOCK, 0); + if (!fd) + exit(1); + + saddr.sun_family = AF_LOCAL; + strcpy(saddr.sun_path, UPSTART_SOCKET_PATH); + addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path); + /* translate leading '@' to abstract namespace */ + if (saddr.sun_path[0] == '@') + saddr.sun_path[0] = '\0'; + + /* If the socket isn't there yet, we can assume startpar hasn't + * started, and will catch this job itself once it does. */ + if (connect(fd, (struct sockaddr *)&saddr, addrlen) < 0) + exit(0); + + /* FIXME: should be able to unambiguously parse the arguments instead + * of relying on whitespace. */ + if (!strcmp(argv[3],"started") || !strcmp(argv[3],"stopped")) + { + len = asprintf(&buf, "%s %s %s",argv[3],argv[1],argv[2]); + buf[strlen(argv[3])] = '\0'; + buf[strlen(argv[3])+strlen(argv[1])+1] = '\0'; + } + else + /* Unhandled upstart event. */ + exit(0); + if (len < 1) + exit(1); + do { + ssize_t s = send(fd, buf+written, len-written, MSG_NOSIGNAL); + if (s < 0 && errno != EINTR) + { + close(fd); + exit(1); + } + if (s > 0) + written += s; + } while (written < len); + close(fd); + exit(0); +} Index: sysvinit-2.88dsf/startpar/startpar.h =================================================================== --- /dev/null +++ sysvinit-2.88dsf/startpar/startpar.h @@ -0,0 +1,21 @@ +/* Copyright 2011 Canonical Ltd. + * + * 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, 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 (see the file COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + **************************************************************** + */ + +#define UPSTART_SOCKET_PATH "@/com/ubuntu/upstart_startpar_bridge" Index: sysvinit-2.88dsf/startpar/startpar-upstart-inject.8 =================================================================== --- /dev/null +++ sysvinit-2.88dsf/startpar/startpar-upstart-inject.8 @@ -0,0 +1,73 @@ +.TH startpar-upstart-inject 8 2012-06-05 +.SH NAME +startpar-upstart-inject \- notify startpar of started/stopped upstart jobs +. +.SH SYNOPSIS +.B startpar-upstart-inject +.I job-name +.I instance +.I [started|stopped] +. +.SH DESCRIPTION +.B startpar-upstart-inject +is a helper command for notifying +.B startpar +whenever an upstart job has started or stopped. It allows +.B startpar +to run in a manner compatible with upstart\-based systems, where +many/most jobs are started directly by upstart and not by +.BR startpar . +In this scenario, +.B startpar +must be notified whenever an upstart job has started so that it can run +the init scripts for services that declare a dependency on that job. +. +.SH OPTIONS +The +.B startpar-upstart-inject +command takes three arguments, all of which are mandatory. +.TP +.I job-name +The name of the +.B upstart +job. Normally this will match the name of a script in the +.I /etc/init.d +directory. +. +.TP +.I instance +The instance of the +.B upstart +job, if any; otherwise, an empty string. This is currently ignored by +.BR startpar , +which has no concept of service instances. +. +.TP +.I [started|stopped] +The single word +.I started +or +.I stopped +which indicates whether the listed job has been started or stopped. +. +.SH FILES +.TP +.I /etc/init/startpar-bridge.conf +upstart job which invokes +.B startpar-upstart-inject +each time another upstart job starts +. +.SH SEE ALSO +.BR init (8) +.BR insserv (8) +.BR startpar (8) +.BR upstart-events (7) +. +.SH AUTHOR +Written by Steve Langasek +. +.SH COPYRIGHT +Copyright \(co 2012 Canonical Ltd. +.br +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. debian/patches/11_lfs_cflags.patch0000664000000000000000000000074012310205332014234 0ustar Purpose: Enable large file support Author: Roger Leigh Fixes: Needed on GNU/Hurd Status: Not submitted upstream diff --git a/src/Makefile b/src/Makefile index e2b8028..ccc5ab4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -11,6 +11,7 @@ CPPFLAGS = CFLAGS ?= -ansi -O2 -fomit-frame-pointer override CFLAGS += -W -Wall -D_GNU_SOURCE +override CFLAGS += $(shell getconf LFS_CFLAGS) STATIC = # For some known distributions we do not build all programs, otherwise we do. debian/patches/30_killall5_hurd.patch0000664000000000000000000000121612310205332014664 0ustar Purpose: Hurd is missing PATH_MAX, provide workaround. Authour: Werner Fink Fixes: ? Status: Not send upstream --- sysvinit.orig/src/killall5.c (revision 1869) +++ sysvinit/src/killall5.c (working copy) @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,14 @@ char *Version = "@(#)killall5 2.86 31-Jul-2004 miquels@cistron.nl"; +#ifndef PATH_MAX +# ifdef MAXPATHLEN +# define PATH_MAX MAXPATHLEN +# else +# define PATH_MAX 2048 +# endif +#endif + #define STATNAMELEN 15 #define DO_NETFS 2 #define DO_STAT 1 debian/patches/70_not_suse.patch0000664000000000000000000000062112310205332013773 0ustar Purpose: Disable the SUSE flag. Fixes: None, made as part of Debian porting. Authur: Kel Modderman Status: Debian specific, showed to upstream. --- --- a/startpar/Makefile 2012-01-12 10:07:56.546348373 +0000 +++ b/startpar/Makefile 2012-01-12 10:08:42.259013386 +0000 @@ -1,5 +1,5 @@ VERSION = 0.58 -ISSUSE = -DSUSE +ISSUSE = -DNOTSUSE INSTALL = install -m 755 INSTALL_DATA = install -m 644 debian/patches/10_doc_manuals.dpatch0000664000000000000000000000641312310205332014564 0ustar Purpose: Misc patches to manual pages Authour: the Debian ALSA psychos Fixes: - Status: unknown --- a/man/init.8 +++ b/man/init.8 @@ -39,21 +39,34 @@ only a selected group of processes to exist. The processes spawned by \fBinit\fP for each of these runlevels are defined in the \fB/etc/inittab\fP file. \fBInit\fP can be in one of eight runlevels: -\fB0\(en6\fP and \fBS\fP or \fBs\fP. The runlevel is +\fB0\(en6\fP and \fBS\fP (a.k.a. \fBs\fP). The runlevel is changed by having a privileged user run \fBtelinit\fP, which sends appropriate signals to \fBinit\fP, telling it which runlevel to change to. .PP -Runlevels \fB0\fP, \fB1\fP, and \fB6\fP are reserved. Runlevel 0 is used to -halt the system, runlevel 6 is used to reboot the system, and runlevel -1 is used to get the system down into single user mode. Runlevel \fBS\fP -is not really meant to be used directly, but more for the scripts that are -executed when entering runlevel 1. For more information on this, +Runlevels \fBS\fP, \fB0\fP, \fB1\fP, and \fB6\fP are reserved. +Runlevel S is used to initialize the system on boot. +When starting runlevel S (on boot) +or runlevel 1 (switching from a multi-user runlevel) +the system is entering ``single-user mode'', after which the +current runlevel is S. +Runlevel 0 is used to halt the system; +runlevel 6 is used to reboot the system. +.PP +After booting through S the system automatically enters one of +the multi-user runlevels 2 through 5, unless there was some +problem that needs to be fixed by the administrator in +single-user mode. +Normally after entering single-user mode +the administrator performs maintenance and then reboots the system. +.PP +For more information, see the manpages for \fBshutdown\fP(8) and \fBinittab\fP(5). .PP Runlevels 7-9 are also valid, though not really documented. This is because "traditional" Unix variants don't use them. -In case you're curious, runlevels \fIS\fP and \fIs\fP are in fact the same. +.PP +Runlevels \fIS\fP and \fIs\fP are the same. Internally they are aliases for the same runlevel. .\"}}} .PP @@ -65,9 +78,10 @@ entry (or no \fB/etc/inittab\fP at all), a runlevel must be entered at the system console. .PP -Runlevel \fBS\fP or \fBs\fP bring the system to single user mode -and do not require an \fB/etc/inittab\fP file. In single user mode, -\fB/sbin/sulogin\fP is invoked on \fB/dev/console\fP. +Runlevel \fBS\fP or \fBs\fP initialize the system +and do not require an \fB/etc/inittab\fP file. +.PP +In single user mode, \fB/sbin/sulogin\fP is invoked on \fB/dev/console\fP. .PP When entering single user mode, \fBinit\fP initializes the consoles \fBstty\fP settings to sane values. Clocal mode is set. Hardware @@ -266,6 +280,14 @@ for them. If the processes change their group, \fBinit\fP can't kill them and you may end up with two processes reading from one terminal line. +.PP +On a Debian system, entering runlevel 1 causes all processes +to be killed except for kernel threads and the script that does +the killing and other processes in its session. +As a consequence of this, it isn't safe to return from runlevel 1 +to a multi-user runlevel: daemons that were started in runlevel S +and are needed for normal operation are no longer running. +The system should be rebooted. .\"}}} .\"{{{ Diagnostics .SH DIAGNOSTICS debian/patches/91_sulogin_lockedpw.dpatch0000664000000000000000000000325012310205332015654 0ustar debian/patches/91_sulogin_lockedpw.dpatch (Thom May): Purpose: Make sure file systems can be fixed on machines with locked root accounts too, by presenting a shell in these cases. Authour: Thom May and Ubuntu. Fixes: #326678 Status: unknown --- trunk.orig/src/sulogin.c 2009-09-30 10:59:13.000000000 +0200 +++ trunk/src/sulogin.c 2009-09-30 10:59:13.000000000 +0200 @@ -241,7 +241,11 @@ fprintf(stderr, "%s: no entry for root\n", F_SHADOW); strcpy(pwd.pw_passwd, ""); } - if (!valid(pwd.pw_passwd)) { + + /* disabled passwords are valid too */ + if (!(strcmp(pwd.pw_passwd, "*") == 0) || + !(strcmp(pwd.pw_passwd, "!") == 0) || + !valid(pwd.pw_passwd)) { fprintf(stderr, "%s: root password garbled\n", F_SHADOW); strcpy(pwd.pw_passwd, ""); } return &pwd; @@ -469,6 +473,14 @@ fprintf(stderr, "sulogin: cannot open password database!\n"); sleep(2); } + /* + * If the root password is locked, fire up a shell + */ + if ((strcmp(pwd->pw_passwd, "*") == 0) || + (strcmp(pwd->pw_passwd, "!") == 0)) { + /* fprintf(stderr, "sulogin: root account is locked, starting shell\n"); */ + sushell(pwd); + } /* * Ask for the password. --- trunk.orig/man/sulogin.8 2009-07-24 11:49:26.000000000 +0200 +++ trunk/man/sulogin.8 2009-09-30 10:59:49.000000000 +0200 @@ -22,6 +22,10 @@ .br (or type Control\-D for normal startup): .PP +If the root account is locked, as is the default on Ubuntu, no password +prompt is displayed and \fIsulogin\fR behaves as if the correct password +were entered. +.PP \fIsulogin\fP will be connected to the current terminal, or to the optional device that can be specified on the command line (typically \fB/dev/console\fP). debian/patches/73_lfs_cflags.patch0000664000000000000000000000067712310205332014255 0ustar Purpose: Enable large file support in startpar Author: Roger Leigh Fixes: Needed on GNU/Hurd Status: Not submitted upstream --- a/startpar/Makefile 2012-02-04 12:15:27.300343104 +0000 +++ b/startpar/Makefile 2012-02-04 12:18:57.363143151 +0000 @@ -20,6 +20,7 @@ CC = gcc CFLAGS = $(RPM_OPT_FLAGS) $(COPTS) -D_GNU_SOURCE $(INC) -Wall -W -pipe +CFLAGS += $(shell getconf LFS_CFLAGS) ifeq ($(MAKECMDGOALS),makeboot) CFLAGS += -DTEST debian/patches/92_kfreebsd_ifdown.patch0000664000000000000000000000602712310205332015301 0ustar --- a/src/ifdown.c +++ b/src/ifdown.c @@ -37,6 +37,23 @@ #define MAX_IFS 64 +/* XXX: Ideally this would get detected at configure time... */ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ + defined(__NetBSD__) || defined(__OpenBSD__) +#define HAVE_SOCKADDR_SA_LEN 1 +#endif + +#ifndef _SIZEOF_ADDR_IFREQ +#ifdef HAVE_SOCKADDR_SA_LEN +#define _SIZEOF_ADDR_IFREQ(ifr) \ + ((ifr).ifr_addr.sa_len > sizeof(struct sockaddr) ? \ + (sizeof((ifr).ifr_name) + (ifr).ifr_addr.sa_len) : \ + sizeof(struct ifreq)) +#else +#define _SIZEOF_ADDR_IFREQ(ifr) sizeof(struct ifreq) +#endif +#endif + /* * First, we find all shaper devices and down them. Then we * down all real interfaces. This is because the comment in the @@ -45,10 +62,10 @@ */ int ifdown(void) { - struct ifreq ifr[MAX_IFS]; + char ifr_buf[sizeof(struct ifreq) * MAX_IFS]; + char *ifr_end; struct ifconf ifc; - int i, fd; - int numif; + int fd; int shaper; if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { @@ -56,8 +73,8 @@ perror("socket"); return -1; } - ifc.ifc_len = sizeof(ifr); - ifc.ifc_req = ifr; + ifc.ifc_len = sizeof(ifr_buf); + ifc.ifc_buf = ifr_buf; if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) { fprintf(stderr, "ifdown: "); @@ -65,42 +82,55 @@ close(fd); return -1; } - numif = ifc.ifc_len / sizeof(struct ifreq); + ifr_end = ifr_buf + ifc.ifc_len; for (shaper = 1; shaper >= 0; shaper--) { - for (i = 0; i < numif; i++) { + char *ifr_next = ifr_buf; + + while (ifr_next < ifr_end) { + struct ifreq *ifr; + int flags; - if ((strncmp(ifr[i].ifr_name, "shaper", 6) == 0) + ifr = (struct ifreq *)ifr_next; + ifr_next += _SIZEOF_ADDR_IFREQ(*ifr); + + if ((strncmp(ifr->ifr_name, "shaper", 6) == 0) != shaper) continue; - if (strcmp(ifr[i].ifr_name, "lo") == 0) + if (strncmp(ifr->ifr_name, "lo", 2) == 0) continue; - if (strchr(ifr[i].ifr_name, ':') != NULL) + if (strchr(ifr->ifr_name, ':') != NULL) continue; /* Read interface flags */ - if (ioctl(fd, SIOCGIFFLAGS, &ifr[i]) < 0) { + if (ioctl(fd, SIOCGIFFLAGS, ifr) < 0) { fprintf(stderr, "ifdown: shutdown "); - perror(ifr[i].ifr_name); + perror(ifr->ifr_name); continue; } /* * Expected in according to * "UNIX Network Programming". */ -#ifdef ifr_flags -# define IRFFLAGS ifr_flags -#else /* Present on kFreeBSD */ -# define IRFFLAGS ifr_flagshigh +#ifdef ifr_flagshigh + flags = (ifr->ifr_flags & 0xffff) | + (ifr->ifr_flagshigh << 16); +#else + flags = ifr->ifr_flags; +#endif + if (flags & IFF_UP) { + flags &= ~(IFF_UP); +#ifdef ifr_flagshigh + ifr->ifr_flags = flags & 0xffff; + ifr->ifr_flagshigh = flags >> 16; +#else + ifr->ifr_flags = flags; #endif - if (ifr[i].IRFFLAGS & IFF_UP) { - ifr[i].IRFFLAGS &= ~(IFF_UP); - if (ioctl(fd, SIOCSIFFLAGS, &ifr[i]) < 0) { + if (ioctl(fd, SIOCSIFFLAGS, ifr) < 0) { fprintf(stderr, "ifdown: shutdown "); - perror(ifr[i].ifr_name); + perror(ifr->ifr_name); } } -#undef IRFFLAGS } } close(fd); debian/patches/63_init_keep_utf8_ttyflag.patch0000664000000000000000000000122512310205332016606 0ustar Purpose: Make sure the utf-8 flag is not cleared from the tty. Authour: Samuel Thibault Fixes: #547073 Status: Not applied upstream. Index: src/init.c =================================================================== --- trunk.orig/src/init.c (revision 1869) +++ trunk/src/init.c (working copy) @@ -784,10 +784,11 @@ /* * Set pre and post processing */ - tty.c_iflag = IGNPAR|ICRNL|IXON|IXANY; + tty.c_iflag = IGNPAR|ICRNL|IXON|IXANY #ifdef IUTF8 /* Not defined on FreeBSD */ - tty.c_iflag |= IUTF8; + | (tty.c_iflag & IUTF8) #endif /* IUTF8 */ + ; tty.c_oflag = OPOST|ONLCR; tty.c_lflag = ISIG|ICANON|ECHO|ECHOCTL|ECHOPRT|ECHOKE; debian/patches/64_init_selinux_enabled.patch0000664000000000000000000000203112310205332016320 0ustar Purpose: Try to fix the logic used to enable SELinux Authour: Petter Reinholdtsen Fixes: #580272 Status: Not sent upstream yet --- sysvinit-2.88dsf.orig/src/init.c (revision 1888) +++ sysvinit-2.88dsf/src/init.c (working copy) @@ -54,10 +54,6 @@ #ifdef WITH_SELINUX # include -# include -# ifndef MNT_DETACH /* present in glibc 2.10, missing in 2.7 */ -# define MNT_DETACH 2 -# endif #endif #ifdef __i386__ @@ -2869,11 +2865,9 @@ #ifdef WITH_SELINUX if (getenv("SELINUX_INIT") == NULL) { - const int rc = mount("proc", "/proc", "proc", 0, 0); - if (is_selinux_enabled() > 0) { - putenv("SELINUX_INIT=YES"); - if (rc == 0) umount2("/proc", MNT_DETACH); + if (is_selinux_enabled() != 1) { if (selinux_init_load_policy(&enforce) == 0) { + putenv("SELINUX_INIT=YES"); execv(myname, argv); } else { if (enforce > 0) { @@ -2884,7 +2878,6 @@ } } } - if (rc == 0) umount2("/proc", MNT_DETACH); } #endif /* Start booting. */ debian/sysvinit-utils.NEWS0000664000000000000000000000070512310205332012705 0ustar sysvinit-utils (2.88dsf-17) unstable; urgency=low bootlogd has moved from sysvinit-utils to a separate bootlogd package. If you wish to continue using bootlogd, please install the bootlogd package. Note that the configuration file /etc/default/bootlogd and its option BOOTLOGD_ENABLE no longer exist; if you do not wish to run bootlogd, remove the bootlogd package. -- Josh Triplett Mon, 19 Dec 2011 12:03:08 +0000 debian/initscripts.preinst0000775000000000000000000001512712310205332013151 0ustar #! /bin/sh # # initscripts preinst # set -e # Remove a no-longer used conffile # # $1: conffile # # If the argument was not listed as a conffile, silently do nothing. # Adapted from code obtained from http://wiki.debian.org/DpkgConffileHandling eliminate_conffile() { PKGNAME="initscripts" CONFFILE="$1" if [ -e "$CONFFILE" ]; then CURRENT_MD5SUM="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" FACTORY_MD5SUM="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE'{s/ obsolete$//;s/.* //p}\"`" if [ "$CURRENT_MD5SUM" != "$FACTORY_MD5SUM" ]; then echo "Obsolete conffile $CONFFILE has been modified by you." echo "Saving as $CONFFILE.dpkg-old ..." mv -f "$CONFFILE" "$CONFFILE".dpkg-old else echo "Removing unmodified and obsolete conffile $CONFFILE ..." rm -f "$CONFFILE" fi fi } case "$1" in install|upgrade) # # /etc/init.d/stop-bootlogd used to be a symlink to bootlogd; # now it is a separate script. We need to remove the symlink here, # before dpkg installs the /etc/init.d/stop-bootlogd file. # [ -L /etc/init.d/stop-bootlogd ] && rm -f /etc/init.d/stop-bootlogd # # Remove obsolete conffiles # if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-10" ; then eliminate_conffile "/etc/init.d/bootclean.sh" fi # # The /etc/init.d/bootclean script fragment was moved to # /lib/init/ in version 2.86.ds1-39 # if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-54" ; then eliminate_conffile "/etc/init.d/bootclean" fi # bootlogd moved to a separate package in 2.88dsf-17, and # /etc/default/bootlogd no longer exists in that package. if [ "$2" ] && dpkg --compare-versions "$2" lt "2.88dsf-17" ; then eliminate_conffile "/etc/default/bootlogd" fi # mountoverflowtmp was merged into the general tmpfs handling # in 2.88dsf-23 if [ "$2" ] && dpkg --compare-versions "$2" lt "2.88dsf-23" ; then eliminate_conffile "/etc/init.d/mountoverflowtmp" fi # rcS was made a conffile in removed in 2.88dsf-26. Replace # unmodified older versions, including automated commenting of # removed variables. if [ "$2" ] && dpkg --compare-versions "$2" lt "2.88dsf-26" ; then case "$(md5sum /etc/default/rcS | cut -d ' ' -f 1)" in \ 003a3a625ee1159b7845447cc8082cd5 | \ 038f2b42aaf423f6b63a393adb5881a2 | \ 08bac7e32209b41ab4d5b813e0432128 | \ 0a24116eae596ba01eb26cd834491a29 | \ 0e8325dd1a1a5c87bb6f68da1c497871 | \ 110d7b0c89b0877e64ec760c849da0ed | \ 148b4592927935995d84248d1d9b7189 | \ 1e00aed9c2b3921c649c2aadcfd5c543 | \ 22c6df22c03276831cb977e907421ecc | \ 254c74c74bc8f41735cff8d5e800f151 | \ 27a63f43ac1309b5451801aa400d5566 | \ 290549506810a28de94b700a46ca708c | \ 2a96075cc7a0ae92eeaf0c068f7819eb | \ 2b7bab954e33f13374bb535c11a5dac3 | \ 2c124ebdef8386c09e7efbe6b9f2a765 | \ 2cc22b1e201af47349d7665d73820e7f | \ 2d3e45db247bc056161d6ecf228e7836 | \ 32a4652ad8eda730ba3369db0653c6fe | \ 33c4ddc65e90ea61bd744216df07e095 | \ 35cde625afbc143be1ab8dd57c9e63b6 | \ 35ee7bd293d75fd0ee7ed0364f7539b8 | \ 3944912056327e3a533c0bd31a8f330d | \ 3ae1cdb6091b6423926e62e025e47621 | \ 3ced6e4b5c0ad0843c6ec7f05a241010 | \ 45b8ea21c8543ea0ac10010731dd7e03 | \ 4bf62a16669d3417f40a534b66aad453 | \ 4e5aceb05dee907c8120c8c5d98ea1e2 | \ 5046cf2b9ea96d9f42c34de4df5368e8 | \ 537571636922baaad6ccdcd10bce5c53 | \ 59ad5e2093d46113f2ec000c8d94e0db | \ 5f3476329a0d9196c63ab4c525a1d3a3 | \ 62f3bd6bf72a64440cd4c0fbf98b229b | \ 666aae74740704e8e8e236f2b163ce96 | \ 69c93443d3d63fc5b0774862db2e96fe | \ 6fffaa2d7b9b31925e7e8cd1d1fc2766 | \ 72b181b41057ddac018493f4201bb16e | \ 74c1b4b43e3a419bcad93d9d49b66353 | \ 7a892f732ea5c5b5791860b86009f417 | \ 7cf1b4cdc330da3ab8d9df1fd9af7026 | \ 7d77b47bd54e907fe4c3454105b6fd24 | \ 7e068fcfc5cd5bf93257ef23564ab4aa | \ 81e50a7cebdc836885dbbec570e2c851 | \ 88309aa2de148d0ce6aaa27d0c837bb6 | \ 8847521ab9e6dc46ed8182f9e8deeda2 | \ 88bd9b9ca775324607617f14313cfba1 | \ 89dbef75f9b7d46644af326200bdc2e6 | \ 8bd4855d706a7d55e3f8497f0a7f1183 | \ 94922d77c255c019c828392b500b73cb | \ 95ee0bd69077a3ed94bd7c49faf63f1a | \ 9950c6c8b353df7fd8d57632bf59d82b | \ 9d5faf6463bc08108914b6aaa104d566 | \ a0475988d665a538c2bdd3349eff9566 | \ a4af750cc5d1edc264d47dc01d11e1b8 | \ a573ddebfb162f8a1bc91c5fccb294e4 | \ afb92f2c06f5d18cdb8747745833b2e9 | \ b5e3874a10bf5f6929f0467330253650 | \ b7a245effc9b74779523b294646e9b24 | \ b93800fe22c30e774e9cb8ecd8ce237e | \ bf1a5c293ec61a00f70310175c735cef | \ c1a223eba0e647fbf812d191fb8475a0 | \ c1c43539047bb3db453e8f72a8c3636f | \ c2364ab7dda1da1bb80c4eebf63580b3 | \ c51d1bc5262dff61c16d32729055a993 | \ c7e061fab5ea6975e77271767ac41117 | \ c8911fce184e5a49be3f72d2caae1ae1 | \ ca14c765b57c20fa733f554dfe6c388a | \ d1b82d8521a632e6f12d839ddf0d1ead | \ d4cdbf0856e631df5af728924589c0aa | \ d90f2a0efb1f69c153287e8f2e179269 | \ dd81e120c60921bed476d863bf55123d | \ de0ff7b414e7db8446cda0c11d9ee75b | \ de2c86cd53e07f5f4e08376c7b7ff317 | \ e137605b014fc42a4c145a4ac06f57e8 | \ e60c0cac8a8cb2bebb37daacc2300a1b | \ e767f1647e1c30a0df65c479d4766505 | \ e7b685cbfda3db481e0309445ade59b1 | \ ebe92767da38e2be8f89a694aadcbbe3 | \ eefef22faff950c7810151be6811a732 | \ f05966d8aa22b704bc5cd9829c013cec | \ f12274a1d3b3e5614a504d89d6caaaf3 | \ f18facff932a4911aab1b36756ddd1a5 | \ f8486391c2d7ad6baebb5c07bbf9a62f) echo "Upgrading unmodified configuration file /etc/default/rcS ..." rm -f /etc/default/rcS ;; esac fi # # Removed as we switched to Upstart # if [ "$2" ] && dpkg --compare-versions "$2" lt "2.87dsf-4ubuntu6"; then eliminate_conffile "/etc/network/if-up.d/mountnfs" eliminate_conffile "/etc/init.d/bootlogs" eliminate_conffile "/etc/init.d/checkfs.sh" eliminate_conffile "/etc/init.d/checkroot.sh" eliminate_conffile "/etc/init.d/mountkernfs.sh" eliminate_conffile "/etc/init.d/hostname.sh" eliminate_conffile "/etc/init.d/bootmisc.sh" eliminate_conffile "/etc/init.d/mountall.sh" eliminate_conffile "/etc/init.d/mountdevsubfs.sh" eliminate_conffile "/etc/init.d/rmnologin" eliminate_conffile "/etc/init.d/mtab.sh" eliminate_conffile "/etc/init.d/mountoverflowtmp" eliminate_conffile "/etc/init.d/mountnfs.sh" eliminate_conffile "/etc/init.d/mountnfs-bootclean.sh" eliminate_conffile "/etc/init.d/mountall-bootclean.sh" fi # # A final straggler from the upstart conversion # if [ "$2" ] && dpkg --compare-versions "$2" lt 2.88dsf-13.10ubuntu1 then eliminate_conffile "/etc/default/tmpfs" fi # # Move conflicting log _file_ if present # [ -f /var/log/fsck ] && mv -f /var/log/fsck /var/log/fsck.dpkg-old ;; abort-upgrade) exit 0 ;; esac #DEBHELPER# : debian/sysv-rc.postinst0000664000000000000000000000451412310205332012376 0ustar #!/bin/sh set -e now=`date +%Y%m%dT%H%M` logdir=/var/lib/insserv logfile="$logdir/run-$now.log" # Make sure insserv is in path PATH=/sbin:$PATH # Based on code from dash postinst check_divert() { package=insserv div=$(dpkg-divert --list $2) distrib=${4:-$2.distrib} case "$1" in false) if [ -n "$div" ] && [ -z "${div%%*by $package}" ]; then mv $distrib $2 dpkg-divert --package $package --remove $2 fi ;; status) # Return true if the divert is in effect if [ -n "$div" ] && [ -z "${div%%*by $package}" ]; then : else false fi esac } convert_rc_s_to_k() { runlevel=$1 for link in $(cd $target/etc/rc$runlevel.d; ls S* || true); do set `echo $link|sed "s%S\(..\)\(.*\)%\1 \2%"` seq=$1 service=$2 mv $target/etc/rc$runlevel.d/$link $target/etc/rc$runlevel.d/K$seq$service done } legacy_bootordering() { for f in /etc/rc0.d/S* ; do if [ -f $f ] ; then return 0 fi done return 1 } activate_insserv() { echo "info: Reordering boot system, log to $logfile" 1>&2 ( echo "info: Converting rc0.d/S* and rc6.d/S* to K*." 1>&2 convert_rc_s_to_k 0 convert_rc_s_to_k 6 echo "info: running insserv" 1>&2 insserv -v ) > $logfile 2>&1 || return 1 # Indicate that system is no longer using the legacy ordering rm $flagfile return 0 } case "$1" in configure) if check_divert status /usr/sbin/update-rc.d \ /usr/sbin/update-rc.d-insserv ; then check_divert false /usr/sbin/update-rc.d \ /usr/sbin/update-rc.d-insserv fi # Disabled in Ubuntu until LSB-capable init scripts are restored (via # debhelper 9.20120909ubuntu2). # if dpkg --compare-versions "$2" lt "2.88dsf-23"; then # rm -f /etc/init.d/.legacy-bootordering # fi # if legacy_bootordering ; then if false; then # Still using legacy ordering, try to convert if activate_insserv ; then echo "success: Enabled dependency based boot system." 1>&2 else echo "error: Something failed while migrating." 1>&2 cat 1>&2 </dev/null || exit $? fi if [ -x /etc/init.d/stop-bootlogd-single ]; then update-rc.d stop-bootlogd-single start 99 S . >/dev/null || exit $? fi if [ -x /etc/init.d/stop-bootlogd ]; then update-rc.d stop-bootlogd start 99 2 3 4 5 . >/dev/null || exit $? fi # # Create initial log files # for F in /var/log/boot do if [ ! -f "$F" ] && touch "$F" >/dev/null 2>&1 then echo "(Nothing has been logged yet.)" >| "$F" chown root:adm "$F" chmod 640 "$F" fi done #DEBHELPER# debian/sysvinit.dirs0000664000000000000000000000002312310205332011725 0ustar usr/share/sysvinit debian/sysvinit-utils.manpages0000664000000000000000000000003112310205332013714 0ustar debian/service/service.8 debian/deps-mount0000775000000000000000000000044412310205332011202 0ustar # # deps-mount # # Figure out which package we need to depend on in order to have # the right mount program # DEB_BUILD_GNU_TYPE="$(dpkg-architecture -qDEB_BUILD_GNU_TYPE)" case "$DEB_BUILD_GNU_TYPE" in *-linux|*-linux-gnu|*-linux-gnulp) echo 'mount:Depends=mount (>= 2.11x-1)' ;; esac debian/sysv-rc.prerm0000775000000000000000000000042112310205332011634 0ustar #! /bin/sh # # sysv-rc prerm # set -e case "$1" in remove) # Remove files generated by insserv to disable concurrent booting rm -f /etc/init.d/.depend.boot rm -f /etc/init.d/.depend.start rm -f /etc/init.d/.depend.stop ;; *) : ;; esac #DEBHELPER# exit 0 debian/copyright.in0000664000000000000000000000354612310205332011527 0ustar This is the Debian GNU/Linux prepackaged version of System V Init. Init was written by Miquel van Smoorenburg . This package was first put together by Bruce Perens from pre-distribution sources. Ian Murdock integrated it into the base system maintained it until the end of 1995. Miquel van Smoorenburg implemented Debian support. In version 2.85 the package was split into three (sysvinit, sysv-rc, and initscripts) in order to make room for alternative rc mechanisms. The upstream source is available at: Primary-Site: ftp.cistron.nl /pub/people/miquels/software 92K sysvinit-2.86.tar.gz Alternate-Site: sunsite.unc.edu /pub/Linux/system/daemons/init 92K sysvinit-2.86.tar.gz The sysvinit package in Debian is maintained as an alioth project. The project page is http://alioth.debian.org/projects/pkg-sysvinit/. Copyright 1997-2005 Miquel van Smoorenburg and the members pkg-sysvinit project. 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 GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. debian/NOTES0000664000000000000000000001107712310205332010000 0ustar Maintainer notes for sysvinit News ---- Last updated 16 May 2009 Stuff to implement ------------------ * Do not allow system to continue booting if both fsck and sulogin fail (#337444)? * Make sulogin try /bin/sh and /bin/sash too (#40144, #43317)? * Port bootlogd to use posix_openpt(3), since BSD PTs are now deprecated and /dev/pts _is_ now available at the time that bootlogd starts (...in Debian)? Stuff to do after etch ---------------------- * mountnfs.sh: Don't start portmap Ubuntu changes to backport -------------------------- (none known ATM) Stuff to send upstream ---------------------- debian/patches/fix-minor-warnings should be applied upstream. So should a lot of the other patches. src/Makefile should not set CC. set -e ------ Note that many scripts do not use "set -e". This is deliberate. Instead, return statuses are checked. PATH ---- * Current policy: + Leave unset if absolutely no pathless commands are run; otherwise... + set to "/sbin:/bin" in /etc/init.d/rc and in scripts that run prior to mountnfs.sh; otherwise... + set to "/usr/sbin:/usr/bin:/sbin:/bin". + Add "/lib/init" to beginning of PATH if readlink command or domount function used. This will disappear once coreutils 5.94 makes it into testing, and we Depend on that. * Question: Should we include /usr/local/sbin and /usr/local/bin too? I don't see this question addressed in Policy. Ref: #227540 Rotating fsck logs? ------------------- debian/fscklog.sh is a proposed script for rotating fsck logs. Currently, we _overwrite_ the fsck log files on every boot so there is no need to rotate them. I am not inclined to implement rotation of fsck logs. Dependencies ------------ To go away: * sysvinit Pre-Depends on initscripts, sysv-rc | file-rc so that the conffiles in the old monolithic sysvinit package are taken over by the initscripts package. (Only a Pre-Depends is strong enough to ensure that the conffiles are taken over without an orphanic hiatus.) Strictly speaking we can drop this dependency now since everyone is either installing anew or else has upgraded to sarge; and Debian does not support skip upgrades. However, I don't see any harm in keeping this dependency around until after etch releases. But then it should go away. * initscripts Depends on mount >= 2.11x-1 because that's when swapon's "-e" option was added. Sarge satisfies this requirement so this dependency could be dropped. We can drop it after etch releases; then both stable and oldstable will satisfy the requirement. * initscripts needs to Depend on debianutils >= 2.12.0 until etch has been released so that which can be assumed to be in /bin (rather than in /usr/bin, as it was before, including in 2.8.4 in sarge) * initscripts Conflicts with and Replaces mdutils which was last seen in potato. Can disappear after etch. * initscripts Conflicts with sysvinit (<< 2.86.ds1-12) because earlier versions of bootlogd didn't have the -c option which the bootlogd initscripts now uses Questionable: * initscripts Replaces various libc packages for reasons described here: http://lists.debian.org/debian-hurd/2004/06/msg00048.html. Anyone know how long this dependency needs to be carried? * sysv-rc (current) Conflicts with and Replaces file-rc. file-rc (0.8.7) Replaces: sysv-rc but does not Conflict with it. I am not sure that sysv-rc needs to Replace: file-rc. Isn't Conflicting sufficient? And why doesn't file-rc Conflict with sysv-rc? Strange. Possible future: * If the mtab initscript is ever changed so that it updates the mtab file without rerunning mountdevsubfs.sh then initscripts should be made to Conflict with udev << 0.080-1. (The latter versions of udev put the udev initscript at S04, _after_ S04mountdevsubfs.sh, and the script unmounts /dev/pts and /dev/shm.) Speed and compatibility ----------------------- People running Debian on low-memory systems say: * Use built-ins * Avoid fork-and-exec, pipelines, $() * Reduce the number of commands within pipelines * Avoid unnecessary code * Avoid commands that don't work the same way in BusyBox: 'nice', 'find', 'mount', 'umount', 'init', 'halt', 'shutdown', 'syslogd', 'klogd', 'hwclock', 'cron', 'anacron', 'crontab'. Regenerate /etc/default/rcS? ---------------------------- The current /etc/default/rcS template just refers the admin to rcS(5). This way we have only one set of docs to maintain, and we don't have to worry about out-of-date comments in /etc/default/rcS. I wonder if we should strip comments out of existing /etc/default/rcS files, leaving behind only the reference to rcS(5). debian/initscripts.maintscript0000664000000000000000000000031612310205332014011 0ustar rm_conffile /etc/init.d/bootlogd 2.88dsf-41ubuntu1 initscripts rm_conffile /etc/init.d/stop-bootlogd-single 2.88dsf-41ubuntu1 initscripts rm_conffile /etc/init.d/stop-bootlogd 2.88dsf-41ubuntu1 initscripts debian/sysvinit-utils.install0000664000000000000000000000045712310205332013603 0ustar sbin/fstab-decode sbin/killall5 sbin/sulogin usr/bin/last usr/bin/mesg usr/share/man/man1/last.1 usr/share/man/man1/lastb.1 usr/share/man/man1/mesg.1 usr/share/man/man8/fstab-decode.8 usr/share/man/man8/killall5.8 usr/share/man/man8/pidof.8 usr/share/man/man8/sulogin.8 debian/service/service usr/sbin/ debian/sysvinit-watch0000664000000000000000000000013112310205332012071 0ustar version=2 ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/sysvinit-([\d\.\d]+)\.tar\.gz debian/sysv-rc.templates0000664000000000000000000000200412310205332012501 0ustar # These templates have been reviewed by the debian-l10n-english # team # # If modifications/additions/rewording are needed, please ask # debian-l10n-english@lists.debian.org for advice. # # Even minor modifications require translation updates and such # changes should be coordinated with translators and reviewers. # Template: sysv-rc/unable-to-convert Type: note #flag:translate!:3 _Description: Unable to migrate to dependency-based boot system Problems in the boot system exist which are preventing migration to dependency-based boot sequencing: . ${PROBLEMATIC} . If the reported problem is a local modification, it needs to be fixed manually. These are typically due to obsolete conffiles being left after a package has been removed, but not purged. It is suggested that these are removed by running: . ${SUGGESTION} . Package installation can not continue until the above problems have been fixed. To reattempt the migration process after these problems have been fixed, run "dpkg --configure sysv-rc". debian/README.source0000664000000000000000000000060012310205332011332 0ustar This package uses quilt to manage all modifications to the upstream source. Changes are stored in the source package as diffs in debian/patches, debian/startpar/patches and debian/insserv/patches and applied during the build. After installing the quilt package, plenty of documentation and tips for using it with Debian packaging can be found in /usr/share/doc/quilt/ and quilt(1). debian/share/0000775000000000000000000000000012310205744010270 5ustar debian/share/inittab.gnu0000664000000000000000000000376312310205332012437 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /libexec/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/libexec/getty 38400 tty1 2:23:respawn:/libexec/getty 38400 tty2 3:23:respawn:/libexec/getty 38400 tty3 4:23:respawn:/libexec/getty 38400 tty4 5:23:respawn:/libexec/getty 38400 tty5 6:23:respawn:/libexec/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/libexec/getty -L ttyS0 9600 vt100 #T1:23:respawn:/libexec/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 debian/share/inittab.s390x-linux-gnu0000664000000000000000000000332412310205332014451 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab.s390x,v 1.9 2000/01/10 10:15:30 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # The s390x only has a dumb terminal on /dev/console. # 1:2345:respawn:/sbin/getty 38400 console dumb # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 debian/share/inittab.knetbsd-gnu0000664000000000000000000000362412310205332014063 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 ttyE0 2:23:respawn:/sbin/getty 38400 ttyE1 3:23:respawn:/sbin/getty 38400 ttyE2 4:23:respawn:/sbin/getty 38400 ttyE3 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 debian/share/inittab.kfreebsd-gnu0000664000000000000000000000400412310205332014207 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # Note that on most Debian systems ttyv6 is used by the X Window System, # so if you want to add more getty's go ahead but skip ttyv6 if you run X. # 1:2345:respawn:/sbin/getty 38400 ttyv0 xterm 2:23:respawn:/sbin/getty 38400 ttyv1 xterm 3:23:respawn:/sbin/getty 38400 ttyv2 xterm 4:23:respawn:/sbin/getty 38400 ttyv3 xterm 5:23:respawn:/sbin/getty 38400 ttyv4 xterm 6:23:respawn:/sbin/getty 38400 ttyv5 xterm # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L cuau0 9600 vt100 #T1:23:respawn:/sbin/getty -L cuau1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyd3 debian/share/inittab.s390-linux-gnu0000664000000000000000000000332212310205332014257 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab.s390,v 1.9 2000/01/10 10:15:30 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # The s390 only has a dumb terminal on /dev/console. # 1:2345:respawn:/sbin/getty 38400 console dumb # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 debian/share/update-rc.d0000775000000000000000000000103512310205332012314 0ustar #! /bin/sh # # update-rc.d # # Dummy update-rc.d, installed when file-rc replaces # sysv-rc or the other way around. The postrm of the # package being replaced symlinks /usr/sbin/update-rc.d # to this dummy file. # # All this script does is "scream and die". # name=`basename $0` cat <&2 $name: not present yet. You are replacing sysv-rc with file-rc or another -rc package, or the other way around. The replacement package must first be unpacked before you can configure other packages. Exiting with error status 1. EOF exit 1 debian/share/inittab0000664000000000000000000000373012310205332011641 0ustar # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 debian/bootlogd.postrm0000664000000000000000000000062512310205332012241 0ustar #!/bin/sh set -e case "$1" in purge) # # Remove log files # rm -f /var/log/boot # Remove rc symlinks in the reverse dependency order they were # inserted update-rc.d stop-bootlogd remove >/dev/null || exit $? update-rc.d stop-bootlogd-single remove >/dev/null || exit $? update-rc.d bootlogd remove >/dev/null || exit $? ;; esac #DEBHELPER# debian/sysvinit.install0000664000000000000000000000051212310205332012435 0ustar sbin/init sbin/halt sbin/runlevel sbin/shutdown usr/share/man/man8/halt.8 usr/share/man/man8/poweroff.8 usr/share/man/man8/runlevel.8 usr/share/man/man8/reboot.8 usr/share/man/man8/shutdown.8 usr/share/man/man8/telinit.8 usr/share/man/man8/init.8 usr/share/man/man5/initscript.5 usr/share/man/man5/inittab.5 usr/include/initreq.h debian/source/0000775000000000000000000000000012310205744010466 5ustar debian/source/format0000664000000000000000000000001412310205332011665 0ustar 3.0 (quilt) debian/initscripts.conffiles0000664000000000000000000000043412310205332013425 0ustar /etc/init.d/halt /etc/init.d/killprocs /etc/init.d/ondemand /etc/init.d/rc.local /etc/init.d/reboot /etc/init.d/sendsigs /etc/init.d/single /etc/init.d/umountfs /etc/init.d/umountnfs.sh /etc/init.d/umountroot /etc/init.d/urandom /etc/default/devpts /etc/default/halt /etc/default/rcS debian/sysvinit.links0000664000000000000000000000010512310205332012105 0ustar sbin/halt sbin/poweroff sbin/halt sbin/reboot sbin/init sbin/telinit debian/git-tag0000775000000000000000000000154312310205332010444 0ustar #!/bin/sh DEBSOURCE="$(dpkg-parsechangelog | sed -ne '/^Source:/{s/Source:[[:space:]][[:space:]]*//p;q}')" DEBVERSION="$(dpkg-parsechangelog | sed -ne '/^Version:/{s/Version:[[:space:]][[:space:]]*//p;q}')" DEBDIST="$(dpkg-parsechangelog | sed -ne '/^Distribution:/{s/Distribution:[[:space:]][[:space:]]*//p;q}')" DEBURGENCY="$(dpkg-parsechangelog | sed -ne '/^Urgency:/{s/Urgency:[[:space:]][[:space:]]*//p;q}')" if [ -z "$DEBSOURCE" ] || [ -z "$DEBVERSION" ] || \ [ -z "$DEBDIST" ] || [ -z "$DEBURGENCY" ]; then echo "Error parsing source, version, distribution and urgency from debian/changelog" exit 1 fi echo "Tagging ${DEBSOURCE}-${DEBVERSION} (dist=${DEBDIST}, urgency=${DEBURGENCY}) as 'debian/${DEBSOURCE}-${DEBVERSION}'" git tag -s "debian/${DEBSOURCE}-${DEBVERSION}" -m "${DEBSOURCE}-${DEBVERSION} (dist=${DEBDIST}, urgency=${DEBURGENCY})" debian/initscripts.install0000664000000000000000000000005712310205332013124 0ustar bin/mountpoint usr/share/man/man1/mountpoint.1 debian/control0000664000000000000000000000751712310205332010574 0ustar Source: sysvinit Section: admin Priority: required Maintainer: Ubuntu Core Developers XSBC-Original-Maintainer: Debian sysvinit maintainers Uploaders: Petter Reinholdtsen , Henrique de Moraes Holschuh , Kel Modderman , Roger Leigh Build-Depends: debhelper (>= 9.20120410), po-debconf, quilt (>= 0.40), libselinux1-dev (>= 1.14) [linux-any], libsepol1-dev [linux-any] Standards-Version: 3.9.3 Homepage: http://savannah.nongnu.org/projects/sysvinit Vcs-Git: git://git.debian.org/collab-maint/sysvinit Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/sysvinit Package: sysvinit-utils Architecture: any Conflicts: last, sysvconfig, chkconfig (<< 11.0-79.1-2) Replaces: last, sysvinit (<= 2.86.ds1-65) Depends: ${shlibs:Depends}, ${misc:Depends} Recommends: upstart (>= 0.6.3-4) Breaks: upstart (<< 1.5-0ubuntu5) Suggests: bootlogd, sash Multi-Arch: foreign Description: System-V-like utilities This package contains the important System-V-like utilities. . Specifically, this package includes: killall5, last, lastb, mesg, pidof, service, sulogin Package: sysv-rc Architecture: all Recommends: lsb-base (>= 3.2-14) Conflicts: file-rc Replaces: file-rc Suggests: sysv-rc-conf, bum Depends: ${misc:Depends}, sysvinit-utils (>= 2.86.ds1-62), insserv (>> 1.12.0-10) Breaks: initscripts (<< 2.86.ds1-63) Multi-Arch: foreign Description: System-V-like runlevel change mechanism This package provides support for the System-V like system for booting, changing runlevels, and shutting down, configured through symbolic links in /etc/rc?.d/. Package: initscripts Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${mount:Depends}, debianutils (>= 4), lsb-base (>= 3.2-14), sysvinit-utils (>= 2.86.ds1-64), sysv-rc | file-rc, coreutils (>= 5.93), passwd, upstart, mountall (>= 2.28) Recommends: psmisc, e2fsprogs Conflicts: libdevmapper1.02.1 (<< 2:1.02.24-1), Replaces: libc6, libc6.1, libc0.1, libc0.3 Breaks: # Needed for ifquery ifupdown (<< 0.6.8ubuntu27), # Packages using /lib/init/rw which must transition to /run. # These breaks may be removed after wheezy is released. aide (<< 0.15.1-5), atm-tools (<< 1:2.5.1-1.3), console-common (<< 0.7.86), cruft (<< 0.9.16), eepc-acpi-scripts (<< 1.1.12), fcheck (<< 2.7.59-16), hostapd (<< 1:0.7.3-3), ltsp-client-core (<< 5.2.16-1), mdadm (<< 3.2.2-1), nbd-client (<< 1:2.9.23-1), nfs-common (<< 1:1.2.5-3), portmap (<< 6.0.0-2), readahead-fedora (<< 2:1.5.6-3), resolvconf (<< 1.49), rpcbind (<< 0.2.0-7), rsyslog (<< 5.8.2-2), splashy (<< 0.3.13-5.1+b1), sysklogd (<< 1.5-6.2), wpasupplicant (<< 0.7.3-4), xymon (<< 4.3.0~beta2.dfsg-9), selinux-policy-default (<= 2:0.2.20100524-9), # Packages relying on a writable /etc/mtab which need fixing # before they can work with /proc/mounts and utab with libmount. # note: precise has libpam-mount 2.10, so this Breaks must be kept. libpam-mount (<< 2.13-1), # Needed for transition to dependency-based boot for wheezy bootchart (<< 0.10~svn407-3.3), hostname (<< 2.95ubuntu1~boot2), upstart (<< 0.6.3-2~boot4), rsyslog (<< 4.2.0-2ubuntu3~boot1), udev (<< 146-2~boot6) Multi-Arch: foreign Description: scripts for initializing and shutting down the system The scripts in this package initialize a standard Debian system at boot time and shut it down at halt or reboot time. Package: bootlogd Architecture: any Priority: optional Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.2-14) Replaces: sysvinit-utils (<< 2.88dsf-17), initscripts (<< 2.88dsf-17) Breaks: sysvinit-utils (<< 2.88dsf-17), initscripts (<< 2.88dsf-17) Description: daemon to log boot messages bootlogd logs all messages printed to the system console during system boot, and records those messages to a logfile. debian/initscripts.postrm0000775000000000000000000000267512310205332013015 0ustar #! /bin/sh # # initscripts postrm # set -e case "$1" in purge) # # Remove abandoned conffiles # rm -f /etc/init.d/bootclean rm -f /etc/init.d/bootclean.dpkg-old rm -f /etc/init.d/bootclean.sh rm -f /etc/init.d/bootclean.sh.dpkg-old rm -f /etc/default/bootlogd rm -f /etc/default/bootlogd.dpkg-old # # Remove configuration files # rm -f \ /etc/default/rcS \ /etc/nologin \ /etc/motd.tail \ /etc/motd.static # # Remove state files # rm -f /var/lib/initscripts/nologin # # Remove run time state files # rm -f /var/run/motd # # Remove log files # rm -f \ /var/log/dmesg \ /var/log/boot \ /var/log/fsck/checkroot \ /var/log/fsck/checkfs # Remove rc symlinks in the reverse dependency order they were # inserted update-rc.d rc.local remove >/dev/null || exit $? update-rc.d single remove >/dev/null || exit $? update-rc.d killprocs remove >/dev/null || exit $? update-rc.d sendsigs remove >/dev/null || exit $? update-rc.d umountnfs.sh remove >/dev/null || exit $? update-rc.d umountfs remove >/dev/null || exit $? update-rc.d umountroot remove >/dev/null || exit $? update-rc.d reboot remove >/dev/null || exit $? update-rc.d halt remove >/dev/null || exit $? update-rc.d urandom remove >/dev/null || exit $? # Remove /dev/pts and /dev/shm ? ;; esac #DEBHELPER# : debian/sysvinit-utils.startpar-bridge.upstart0000664000000000000000000000130712310205472016730 0ustar # startpar-bridge - inject upstart start/stop events into startpar # # This job serves as a bridge to make startpar aware when an upstart job has # started or stopped, in order to make a soft transition between sysvinit # scripts and upstart jobs possible # Comment out description such that plymouth-upstart-bridge does not # print endless messages about # "* Starting/Stopping startpar bridge..." #description "startpar bridge for notification of upstart job start/stop" author "Steve Langasek " start on started JOB!=startpar-bridge or stopped JOB!=startpar-bridge instance $JOB-$INSTANCE-$UPSTART_EVENTS task exec startpar-upstart-inject "$JOB" "$INSTANCE" "$UPSTART_EVENTS" debian/initscripts.copyright0000664000000000000000000000263212310205332013467 0ustar This package contains the scripts that are executed at start and shutdown of Debian systems. This package is built from the `sysvinit' source package. Please consult the copyright file of the sysvinit package for the location of the upstream sources of the sysvinit package. Debian-specific files for sysvinit, such as these initscripts, are maintained by the members of the pkg-sysvinit project at alioth.debian.org. http://alioth.debian.org/projects/pkg-sysvinit Copyright 1997-2005 Miquel van Smoorenburg and the members pkg-sysvinit project. 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 GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. debian/sysvinit-utils.links0000664000000000000000000000012412310205332013244 0ustar sbin/killall5 bin/pidof usr/bin/last usr/bin/lastb usr/sbin/service usr/bin/service debian/sysv-rc.copyright0000664000000000000000000000277312310205332012530 0ustar This package contains the mechanism for executing the right scripts in the right order at bootup/shutdown time, and when changing runlevels. It works through managing symlinks in /etc/rc?.d This package is built from the `sysvinit' source package. Please consult the copyright file of the sysvinit package for the location of the upstream sources of the sysvinit package. Debian-specific files for sysvinit, such as these initscripts, are maintained by the members of the pkg-sysvinit project at alioth.debian.org. http://alioth.debian.org/projects/pkg-sysvinit Copyright 1997-2005 Miquel van Smoorenburg and the members pkg-sysvinit project. 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 GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. debian/bootlogd.install0000664000000000000000000000005412310205332012357 0ustar sbin/bootlogd usr/share/man/man8/bootlogd.8 debian/src/0000775000000000000000000000000012310205744007755 5ustar debian/src/bootlogd/0000775000000000000000000000000012310205744011566 5ustar debian/src/bootlogd/etc/0000775000000000000000000000000012310205744012341 5ustar debian/src/bootlogd/etc/init.d/0000775000000000000000000000000012310205744013526 5ustar debian/src/bootlogd/etc/init.d/stop-bootlogd-single0000664000000000000000000000216712310205332017523 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: stop-bootlogd-single # Required-Start: $local_fs $all # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Stop bootlogd in single user mode # Description: See the init.d/bootlogd script ### END INIT INFO # # This has to run in the boot sequence (rcS.d), and not in the "single # user" sequence (rc1.d), because rc1.d/ is not used when booting into # single user. "grep :[S1]: /etc/inittab" show that single user is just # a call to /sbin/sulogin, while runlevel 1 is a call to # "/etc/init.d/rc 1" which in the end switches to runlevel S to run # /sbin/sulogin. PATH=/sbin:/usr/sbin:/bin:/usr/bin NAME=stop-bootlogd-single DAEMON=/sbin/bootlogd [ -x "$DAEMON" ] || exit 0 case "$1" in start) single=false for word in $(cat /proc/cmdline); do case "$word" in S|single|1) single=true ;; esac done if [ true = "$single" ] ; then /etc/init.d/bootlogd stop fi ;; stop|restart|force-reload) # No-op ;; status) exec /etc/init.d/bootlogd status ;; *) echo "Usage: $NAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac : debian/src/bootlogd/etc/init.d/bootlogd0000664000000000000000000000422012310205332015251 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: bootlogd # Required-Start: mountdevsubfs # X-Start-Before: hostname keymap keyboard-setup procps pcmcia hwclock hwclockfirst hdparm hibernate-cleanup lvm2 # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Start or stop bootlogd. # Description: Starts or stops the bootlogd log program # which logs boot messages. ### END INIT INFO PATH=/sbin:/bin # No remote fs at start DAEMON=/sbin/bootlogd [ -x "$DAEMON" ] || exit 0 NAME=bootlogd DESC="boot logger" BOOTLOGD_OPTS="-r -c" . /lib/init/vars.sh . /lib/lsb/init-functions # Previously this script was symlinked as "stop-bootlogd" which, when run # with the "start" argument, should stop bootlogd. Now stop-bootlogd is # a distinct script, but for backward compatibility this script continues # to implement the old behavior. SCRIPTNAME=${0##*/} SCRIPTNAME=${SCRIPTNAME#[SK]??} ACTION="$1" case "$0" in *stop-bootlog*) [ "$ACTION" = start ] && ACTION=stop ;; esac case "$ACTION" in start) # PATH is set above [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" if [ -d /proc/1/. ] then umask 027 start-stop-daemon --start --quiet --exec $DAEMON -- \ $BOOTLOGD_OPTS ES=$? else $DAEMON $BOOTLOGD_OPTS ES=$? fi [ "$VERBOSE" != no ] && log_end_msg $ES ;; stop) PATH=/bin:/sbin:/usr/bin:/usr/sbin [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" start-stop-daemon --oknodo --stop --quiet --exec $DAEMON ES=$? sleep 1 [ "$VERBOSE" != no ] && log_end_msg $ES if [ -f /var/log/boot ] && [ -f /var/log/boot~ ] then [ "$VERBOSE" = no ] || log_action_begin_msg "Moving boot log file" # bootlogd writes to boot, making backup at boot~ cd /var/log && { chgrp adm boot || : savelog -q -p -c 5 boot \ && mv boot.0 boot \ && mv boot~ boot.0 } ES=$? [ "$VERBOSE" = no ] || log_action_end_msg $ES fi ;; restart|force-reload) /etc/init.d/bootlogd stop /etc/init.d/bootlogd start ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac : debian/src/bootlogd/etc/init.d/stop-bootlogd0000664000000000000000000000106712310205332016242 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: stop-bootlogd # Required-Start: $local_fs $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Stop bootlogd # Description: See the init.d/bootlogd script ### END INIT INFO NAME=stop-bootlogd DAEMON=/sbin/bootlogd [ -x "$DAEMON" ] || exit 0 case "$1" in start) /etc/init.d/bootlogd stop ;; stop|restart|force-reload) # No-op ;; status) exec /etc/init.d/bootlogd status ;; *) echo "Usage: $NAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac : debian/src/bootlogd/Makefile0000664000000000000000000000053612310205332013223 0ustar DESTDIR = sysconfdir = /etc INSTALL = install -m755 -o root -g root all: install: $(INSTALL) -d $(DESTDIR)$(sysconfdir)/. cp -afv etc/* $(DESTDIR)$(sysconfdir) find $(DESTDIR)$(sysconfdir) -type d -name .svn -print0 |xargs -r0 rm -r chmod 755 $(DESTDIR)$(sysconfdir)/init.d/[a-z]* chmod -R g-w $(DESTDIR) chown -R root:root $(DESTDIR) debian/src/initscripts/0000775000000000000000000000000012310205744012330 5ustar debian/src/initscripts/etc/0000775000000000000000000000000012310205744013103 5ustar debian/src/initscripts/etc/default/0000775000000000000000000000000012310205744014527 5ustar debian/src/initscripts/etc/default/halt0000664000000000000000000000012612310205332015372 0ustar # Default behaviour of shutdown -h / halt. Set to "halt" or "poweroff". HALT=poweroff debian/src/initscripts/etc/default/rcS0000664000000000000000000000126312310205332015174 0ustar # # /etc/default/rcS # # Default settings for the scripts in /etc/rcS.d/ # # For information about these variables see the rcS(5) manual page. # # This file belongs to the "initscripts" package. # delete files in /tmp during boot older than x days. # '0' means always, -1 or 'infinite' disables the feature #TMPTIME=0 # spawn sulogin during boot, continue normal boot if not used in 30 seconds #SULOGIN=no # do not allow users to log in until the boot has completed #DELAYLOGIN=no # assume that the BIOS clock is set to UTC time (recommended) UTC=yes # be more verbose during the boot process #VERBOSE=no # automatically repair filesystems with inconsistencies during boot #FSCKFIX=no debian/src/initscripts/etc/default/devpts0000664000000000000000000000013412310205332015746 0ustar # GID of the `tty' group TTYGRP=5 # Set to 600 to have `mesg n' be the default TTYMODE=620 debian/src/initscripts/etc/init.d/0000775000000000000000000000000012310205744014270 5ustar debian/src/initscripts/etc/init.d/urandom0000775000000000000000000000604712310205332015663 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: urandom # Required-Start: $local_fs $time # Required-Stop: $local_fs # Default-Start: S # Default-Stop: 0 6 # Short-Description: Save and restore random seed between restarts. # Description: This script saves the random seed between restarts. # It is called from the boot, halt and reboot scripts. ### END INIT INFO ## Assumption 1: We assume $SAVEDFILE is a file (or a symlink ## to a file) that resides on a non-volatile medium that persists ## across reboots. ## Case 1a: Ideally, it is readable and writeable. Its is unshared, ## i.e. its contents are unique to this machine. It is protected so ## that its contents are not known to attackers. ## Case 1b: Less than ideally, it is read-only. Its contents are ## unique to this machine and not known to attackers. SAVEDFILE=/var/lib/urandom/random-seed [ -c /dev/urandom ] || exit 0 PATH=/sbin:/bin if ! POOLBYTES=$(( ($(cat /proc/sys/kernel/random/poolsize 2>/dev/null) + 7) / 8 )) ; then POOLBYTES=512 fi . /lib/init/vars.sh . /lib/lsb/init-functions do_status () { if [ -f $SAVEDFILE ] ; then return 0 else return 4 fi } case "$1" in start|"") [ "$VERBOSE" = no ] || log_action_begin_msg "Initializing random number generator" # Seed the RNG with date and time. # This is helpful in the less-than-ideal case where $SAVEDFILE # is read-only. # The value of this is greatly reduced if $SAVEDFILE is missing, # or its contents are shared machine-to-machine or known to # attackers (since they might well know at what time this # machine booted up). ( date +%s.%N # Load and then save $POOLBYTES bytes, # which is the size of the entropy pool if [ -f "$SAVEDFILE" ] then cat "$SAVEDFILE" fi # Redirect output of subshell (not individual commands) # to cope with a misfeature in the FreeBSD (not Linux) # /dev/random, where every superuser write/close causes # an explicit reseed of the yarrow. ) >/dev/urandom # Write a new seed into $SAVEDFILE because re-using a seed # compromises security. Each time we re-seed, we want the # seed to be as different as possible. # Write it now, in case the machine crashes without doing # an orderly shutdown. # The write will fail if $SAVEDFILE is read-only, but it # doesn't hurt to try. umask 077 dd if=/dev/urandom of=$SAVEDFILE bs=$POOLBYTES count=1 >/dev/null 2>&1 ES=$? umask 022 [ "$VERBOSE" = no ] || log_action_end_msg $ES ;; stop) # Carry a random seed from shut-down to start-up; # Write it on shutdown, in case the one written at startup # has been lost, snooped, or otherwise compromised. # see documentation in linux/drivers/char/random.c [ "$VERBOSE" = no ] || log_action_begin_msg "Saving random seed" umask 077 dd if=/dev/urandom of=$SAVEDFILE bs=$POOLBYTES count=1 >/dev/null 2>&1 ES=$? [ "$VERBOSE" = no ] || log_action_end_msg $ES ;; status) do_status exit $? ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; *) echo "Usage: urandom start|stop" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/ondemand0000664000000000000000000000241412310205332015772 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: ondemand # Required-Start: $remote_fs $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Set the CPU Frequency Scaling governor to "ondemand" ### END INIT INFO # Don't run if we're going to start an Android LXC container: [ ! -f /etc/init/lxc-android-config.conf ] || exit 0 PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh . /lib/lsb/init-functions AVAILABLE="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors" case "$1" in start) start-stop-daemon --start --background --exec /etc/init.d/ondemand -- background ;; background) sleep 60 # probably enough time for desktop login [ -f $AVAILABLE ] || exit 0 read governors < $AVAILABLE case $governors in *interactive*) GOVERNOR="interactive" break ;; *ondemand*) GOVERNOR="ondemand" break ;; *) exit 0 ;; esac for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor do [ -f $CPUFREQ ] || continue echo -n $GOVERNOR > $CPUFREQ done ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac debian/src/initscripts/etc/init.d/skeleton0000664000000000000000000001030212310205332016024 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: skeleton # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Example initscript # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO # Author: Foo Bar # # Please remove the "Author" lines above and replace them # with your own name if you copy and modify this script. # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Description of the service" NAME=daemonexecutablename DAEMON=/usr/sbin/$NAME DAEMON_ARGS="--options args" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } # # Function that sends a SIGHUP to the daemon/service # do_reload() { # # If the daemon can reload its configuration without # restarting (for example, when it is sent a SIGHUP), # then implement that here. # start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME return 0 } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; #reload|force-reload) # # If do_reload() is not implemented then leave this commented out # and leave 'force-reload' as an alias for 'restart'. # #log_daemon_msg "Reloading $DESC" "$NAME" #do_reload #log_end_msg $? #;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/killprocs0000775000000000000000000000241512310205332016213 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: killprocs # Required-Start: $local_fs # Required-Stop: # Default-Start: 1 # Default-Stop: # Short-Description: executed by init(8) upon entering runlevel 1 (single). ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions do_start () { # Kill all processes. log_action_begin_msg "Asking all remaining processes to terminate" killall5 -15 # SIGTERM log_action_end_msg 0 alldead="" for seq in 1 2 3 4 5 6 7 8 9 10; do # use SIGCONT/signal 18 to check if there are # processes left. No need to check the exit code # value, because either killall5 work and it make # sense to wait for processes to die, or it fail and # there is nothing to wait for. if killall5 -18 ; then : else alldead=1 break fi sleep 1 done if [ -z "$alldead" ] ; then log_action_begin_msg "Killing all remaining processes" killall5 -9 # SIGKILL log_action_end_msg 1 else log_action_begin_msg "All processes ended within $seq seconds." log_action_end_msg 0 fi } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac debian/src/initscripts/etc/init.d/halt0000775000000000000000000000246112310205332015142 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: halt # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: 0 # Short-Description: Execute the halt command. # Description: ### END INIT INFO NETDOWN=yes PATH=/sbin:/usr/sbin:/bin:/usr/bin [ -f /etc/default/halt ] && . /etc/default/halt . /lib/lsb/init-functions do_stop () { if [ "$INIT_HALT" = "" ] then case "$HALT" in [Pp]*) INIT_HALT=POWEROFF ;; [Hh]*) INIT_HALT=HALT ;; *) INIT_HALT=POWEROFF ;; esac fi # See if we need to cut the power. if [ "$INIT_HALT" = "POWEROFF" ] && [ -x /etc/init.d/ups-monitor ] then /etc/init.d/ups-monitor poweroff fi # Don't shut down drives if we're using RAID. hddown="-h" if grep -qs '^md.*active' /proc/mdstat then hddown="" fi # If INIT_HALT=HALT don't poweroff. poweroff="-p" if [ "$INIT_HALT" = "HALT" ] then poweroff="" fi # Make it possible to not shut down network interfaces, # needed to use wake-on-lan netdown="-i" if [ "$NETDOWN" = "no" ]; then netdown="" fi log_action_msg "Will now halt" halt -d -f $netdown $poweroff $hddown } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/single0000775000000000000000000000111612310205332015467 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: single # Required-Start: $local_fs $all killprocs # Required-Stop: # Default-Start: 1 # Default-Stop: # Short-Description: executed by init(8) upon entering runlevel 1 (single). ### END INIT INFO PATH=/sbin:/bin . /lib/lsb/init-functions do_start () { log_action_msg "Will now switch to single-user mode" exec init -t1 S } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac debian/src/initscripts/etc/init.d/umountnfs.sh0000775000000000000000000000432412310205332016661 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: umountnfs # Required-Start: # Required-Stop: umountfs # Should-Stop: $network $portmap nfs-common # Default-Start: # Default-Stop: 0 6 # Short-Description: Unmount all network filesystems except the root fs. # Description: Also unmounts all virtual filesystems (proc, # devpts, usbfs, sysfs) that are not mounted at the # top level. ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin KERNEL="$(uname -s)" RELEASE="$(uname -r)" . /lib/init/vars.sh . /lib/lsb/init-functions case "${KERNEL}:${RELEASE}" in Linux:[01].*|Linux:2.[01].*) FLAGS="" ;; Linux:2.[23].*|Linux:2.4.?|Linux:2.4.?-*|Linux:2.4.10|Linux:2.4.10-*) FLAGS="-f" ;; *) FLAGS="-f -l" ;; esac do_stop () { # Write a reboot record to /var/log/wtmp before unmounting halt -w # Remove bootclean flag files (precaution against symlink attacks) rm -f /tmp/.clean /run/.clean /run/lock/.clean # # Make list of points to unmount in reverse order of their creation # DIRS="" while read -r DEV MTPT FSTYPE OPTS REST do case "$MTPT" in /|/proc|/dev|/dev/pts|/dev/shm|/proc/*|/sys|/run|/run/*) continue ;; /var/run) continue ;; /var/lock) continue ;; esac case "$FSTYPE" in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|ceph) DIRS="$MTPT $DIRS" ;; proc|procfs|linprocfs|devpts|usbfs|usbdevfs|sysfs) DIRS="$MTPT $DIRS" ;; esac case "$OPTS" in _netdev|*,_netdev|_netdev,*|*,_netdev,*) DIRS="$MTPT $DIRS" ;; esac done < /etc/mtab if [ "$DIRS" ] then [ "$VERBOSE" = no ] || log_action_begin_msg "Unmounting remote and non-toplevel virtual filesystems" fstab-decode umount $FLAGS $DIRS ES=$? [ "$VERBOSE" = no ] || log_action_end_msg $ES fi # emit unmounted-remote-filesystems hook point so any upstart jobs # that support remote filesystems can be stopped if [ -x /sbin/initctl ]; then initctl --quiet emit unmounted-remote-filesystems 2>/dev/null || true fi } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop|"") do_stop ;; *) echo "Usage: umountnfs.sh [start|stop]" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/umountfs0000775000000000000000000000524112310205332016071 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: umountfs # Required-Start: # Required-Stop: umountroot # Default-Start: # Default-Stop: 0 6 # Short-Description: Turn off swap and unmount all local file systems. # Description: ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh . /lib/lsb/init-functions umask 022 do_stop () { PROTECTED_MOUNTS="$(sed -n ':a;/^[^ ]* \/ /!{H;n;ba};{H;s/.*//;x;s/\n//;p}' /proc/mounts)" WEAK_MTPTS="" # be gentle, don't use force REG_MTPTS="" TMPFS_MTPTS="" while read -r DEV MTPT FSTYPE REST do echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV $MTPT " && continue case "$MTPT" in /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/sys/*|/run|/run/*) continue ;; esac case "$FSTYPE" in proc|procfs|linprocfs|sysfs|usbfs|usbdevfs|devpts) continue ;; tmpfs) TMPFS_MTPTS="$MTPT $TMPFS_MTPTS" ;; *) if echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV "; then WEAK_MTPTS="$MTPT $WEAK_MTPTS" else REG_MTPTS="$MTPT $REG_MTPTS" fi ;; esac done < /proc/mounts # # Make sure tmpfs file systems are umounted before turning off # swap, to avoid running out of memory if the tmpfs filesystems # use a lot of space. # if [ "$TMPFS_MTPTS" ] then if [ "$VERBOSE" = no ] then log_action_begin_msg "Unmounting temporary filesystems" fstab-decode umount $TMPFS_MTPTS log_action_end_msg $? else log_daemon_msg "Will now unmount temporary filesystems" fstab-decode umount -v $TMPFS_MTPTS log_end_msg $? fi fi # # Deactivate swap # if [ "$VERBOSE" = no ] then log_action_begin_msg "Deactivating swap" swapoff -a >/dev/null log_action_end_msg $? else log_daemon_msg "Will now deactivate swap" swapoff -a -v log_end_msg $? fi # # Unmount local filesystems # if [ "$WEAK_MTPTS" ]; then # Do not use -f umount option for WEAK_MTPTS if [ "$VERBOSE" = no ] then log_action_begin_msg "Unmounting weak filesystems" fstab-decode umount -r -d $WEAK_MTPTS log_action_end_msg $? else log_daemon_msg "Will now unmount weak filesystems" fstab-decode umount -v -r -d $WEAK_MTPTS log_end_msg $? fi fi if [ "$REG_MTPTS" ] then if [ "$VERBOSE" = no ] then log_action_begin_msg "Unmounting local filesystems" fstab-decode umount -f -r -d $REG_MTPTS log_action_end_msg $? else log_daemon_msg "Will now unmount local filesystems" fstab-decode umount -f -v -r -d $REG_MTPTS log_end_msg $? fi fi } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/umountroot0000775000000000000000000000352012310205332016442 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: umountroot # Required-Start: # Required-Stop: # Should-Stop: halt reboot kexec # Default-Start: # Default-Stop: 0 6 # Short-Description: Mount the root filesystem read-only. ### END INIT INFO PATH=/sbin:/bin . /lib/init/vars.sh . /lib/lsb/init-functions do_stop () { [ "$VERBOSE" = no ] || log_action_begin_msg "Mounting root filesystem read-only" # Ask init to re-exec itself before we go down if it has been # upgraded this cycle. It'll lose all its state, but at least # it won't hold open files on the root filesystem (lp:#672177). if [ -f /var/run/init.upgraded ] then old_map=$( cat /proc/1/maps ) map=$old_map telinit u || : i=0 timeout=5 while [ "$map" = "$old_map" ] do sleep 1 map=$( cat /proc/1/maps ) /usr/bin/logger "waiting for init to respawn" i=$((i+1)) if [ $i -eq $timeout ] ; then break fi done if [ "$map" = "$old_map" ] ; then /usr/bin/logger "FAIL: init failed to respawn in $timeout seconds - unmounting anyway" else /usr/bin/logger "SUCCESS: init respawned after $i seconds (within $timeout seconds timeout)" fi fi MOUNT_FORCE_OPT= [ "$(uname -s)" = "GNU/kFreeBSD" ] && MOUNT_FORCE_OPT=-f # This: # mount -n -o remount,ro / # will act on a bind mount of / if there is one. # See #339023 and the comment in checkroot.sh mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev / 2>/dev/null \ || mount $MOUNT_FORCE_OPT -n -o remount,ro dummydev / 2>/dev/null \ || mount $MOUNT_FORCE_OPT -n -o remount,ro / ES=$? [ "$VERBOSE" = no ] || log_action_end_msg $ES } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac : debian/src/initscripts/etc/init.d/reboot0000775000000000000000000000117712310205332015507 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: reboot # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: 6 # Short-Description: Execute the reboot command. # Description: ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions do_stop () { # Message should end with a newline since kFreeBSD may # print more stuff (see #323749) log_action_msg "Will now restart" reboot -d -f -i } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac debian/src/initscripts/etc/init.d/rc.local0000664000000000000000000000141612310205332015703 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: rc.local # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Run /etc/rc.local if it exist ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh . /lib/lsb/init-functions do_start() { if [ -x /etc/rc.local ]; then [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)" /etc/rc.local ES=$? [ "$VERBOSE" != no ] && log_end_msg $ES return $ES fi } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac debian/src/initscripts/etc/init.d/sendsigs0000775000000000000000000000752012310205332016032 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: sendsigs # Required-Start: # Required-Stop: umountnfs # Default-Start: # Default-Stop: 0 6 # Short-Description: Kill all remaining processes. # Description: ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions # Make it possible to see who the misbehaving processes are report_unkillable() { [ -x /usr/share/apport/unkillable_shutdown ] || return if [ ! -e /etc/default/apport ] || ! grep -q '^enabled[[:space:]]*=[[:space:]]*1' /etc/default/apport; then return fi /usr/share/apport/unkillable_shutdown $OMITPIDS } upstart_killed_jobs () { initctl list | grep 'stop/killed' } upstart_jobs () { initctl list | grep -E '(start/|stop/killed)' | sed -n -e "/process [0-9]/s/.*process //p" } do_stop () { OMITPIDS= for omitfile in /run/sendsigs.omit; do if [ -e $omitfile ]; then for pid in $(cat $omitfile); do OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid" done fi done # Load sendsigs.omit.d/packagename files too, to make it # possible for scripts that need to modify the list of pids at # run time without race conditions. for omitdir in /run/sendsigs.omit.d; do if [ -d "${omitdir}" ]; then for pidfile in "${omitdir}/"*; do [ -f "$pidfile" ] || continue for pid in $(cat $pidfile); do OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid" done done fi done # Upstart jobs have their own "stop on" clauses that sends # SIGTERM/SIGKILL just like this, so if they're still running, # they're supposed to be if [ -x /sbin/initctl ]; then for pid in $(upstart_jobs); do OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid" done fi # Flush the kernel I/O buffer before we start to kill # processes, to make sure the IO of already stopped services to # not slow down the remaining processes to a point where they # are accidentily killed with SIGKILL because they did not # manage to shut down in time. sync # Kill all processes. log_action_begin_msg "Asking all remaining processes to terminate" killall5 -15 $OMITPIDS # SIGTERM log_action_end_msg 0 alldead="" OMITPIDS0="$OMITPIDS" for seq in 1 2 3 4 5 6 7 8 9 10; do OMITPIDS="$OMITPIDS0" # use SIGCONT/signal 18 to check if there are # processes left. No need to check the exit code # value, because either killall5 work and it make # sense to wait for processes to die, or it fail and # there is nothing to wait for. # did an upstart job start since we last polled initctl? check # again on each loop and add any new jobs (e.g., plymouth) to # the list. If we did miss one starting up, this beats waiting # 10 seconds before shutting down. if [ -x /sbin/initctl ]; then for pid in $(upstart_jobs); do OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid" done fi if killall5 -18 $OMITPIDS ; then : else alldead=1 break fi sleep 1 done # Upstart has a method to set a kill timeout and so the job author # may want us to wait longer than 10 seconds (as in the case of # mysql). (LP: #688541) # # We will wait up to 300 seconds for any jobs in stop/killed state. # Any kill timeout higher than that will be overridden by the need # to shutdown. NOTE the re-use of seq from above, since we already # waited up to 10 seconds for them. while [ -n "$(upstart_killed_jobs)" ] ; do seq=$(($seq+1)) if [ $seq -ge 300 ] ; then break fi sleep 1 done if [ -z "$alldead" ] ; then #report_unkillable log_action_begin_msg "Killing all remaining processes" killall5 -9 $OMITPIDS # SIGKILL log_action_end_msg 1 else log_action_begin_msg "All processes ended within $seq seconds" log_action_end_msg 0 fi } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac : debian/src/initscripts/lib/0000775000000000000000000000000012310205744013076 5ustar debian/src/initscripts/lib/init/0000775000000000000000000000000012310205744014041 5ustar debian/src/initscripts/lib/init/vars.sh0000664000000000000000000000231412310205332015341 0ustar # # Set rcS vars # # Because /etc/default/rcS isn't a conffile, it's never updated # automatically. So that an empty or outdated file missing newer # options works correctly, set the default values here. TMPTIME=0 SULOGIN=no DELAYLOGIN=no UTC=yes VERBOSE=no FSCKFIX=no # Source conffile if [ -f /etc/default/rcS ]; then . /etc/default/rcS fi # Unset old unused options unset EDITMOTD unset RAMRUN unset RAMLOCK # Don't unset RAMSHM and RAMTMP for now. # Parse kernel command line if [ -r /proc/cmdline ]; then for ARG in $(cat /proc/cmdline); do case $ARG in # check for bootoption 'noswap' and do not activate swap # partitions/files when it is set. noswap) NOSWAP=yes break ;; # Accept the same 'quiet' option as the kernel, but only # during boot and shutdown. Only use this rule when the # variables set by init.d/rc is present. quiet) if [ "$RUNLEVEL" ] && [ "$PREVLEVEL" ] ; then VERBOSE="no" fi break ;; esac done fi # But allow both rcS and the kernel options 'quiet' to be overrided # when INIT_VERBOSE=yes is used as well. if [ "$INIT_VERBOSE" ] ; then VERBOSE="$INIT_VERBOSE" fi debian/src/initscripts/sbin/0000775000000000000000000000000012310205744013263 5ustar debian/src/initscripts/sbin/fsck.nfs0000664000000000000000000000051512310205332014713 0ustar #! /bin/sh # # fsck.nfs # # Dummy fsck.nfs file that always returns success. We # need this for when the root file system is on NFS: # there is no way to find out if root is NFS mounted # and we really want to do a "fsck -a /". # while : do case "$1" in -*) shift ;; *) break ;; esac done echo "$1: NFS file system." exit 0 debian/src/initscripts/doc/0000775000000000000000000000000012310205744013075 5ustar debian/src/initscripts/doc/README.Debian0000664000000000000000000000127512310205332015134 0ustar sendsigs process omission interface ----------------------------------- Since initscripts package version 2.86.ds1-48, /etc/init.d/sendsigs is able to omit processes from being killed by killall5(8). Process id's listed in /run/sendsigs.omit, or any file in the /run/sendsigs.omit.d/ directory will be omitted by sendsigs. The recommended practice for adding a process id for omission is to create a file in /run/sendsigs.omit.d/ containing the process id that is to be omitted by sendsigs. This feature is only to be used for processes that need to be running when remote file systems are umounted, and that have current working directory set to a directory in the root file system. debian/src/initscripts/Makefile0000664000000000000000000000245112310205332013763 0ustar DESTDIR = sysconfdir = /etc prefix = /usr docdir = $(prefix)/share/doc/initscripts sbindir = /sbin INSTALL = install -m755 -o root -g root INSTALL_DATA = install -m644 -o root -g root all: install: $(INSTALL) -d $(DESTDIR)/lib/init/. $(INSTALL) -d $(DESTDIR)/run/. $(INSTALL) -d $(DESTDIR)/var/lib/initscripts/. $(INSTALL) -d $(DESTDIR)/var/lib/urandom/. $(INSTALL) -d $(DESTDIR)/var/log/fsck/. $(INSTALL) -d $(DESTDIR)$(docdir)/. $(INSTALL_DATA) doc/* $(DESTDIR)$(docdir) $(INSTALL) -d $(DESTDIR)$(sysconfdir)/. $(INSTALL) -d $(DESTDIR)$(sysconfdir)/default cp -afv etc/* $(DESTDIR)$(sysconfdir) find $(DESTDIR)$(sysconfdir) -type d -name .svn -print0 |xargs -r0 rm -r cp -afv lib/init/* $(DESTDIR)/lib/init find $(DESTDIR)/lib -type d -name .svn -print0 |xargs -r0 rm -r chmod 755 $(DESTDIR)$(sysconfdir)/init.d/[a-z]* chmod 644 $(DESTDIR)/lib/init/*.sh chmod 644 $(DESTDIR)$(sysconfdir)/init.d/skeleton chmod -R g-w $(DESTDIR) chown -R root:root $(DESTDIR) $(INSTALL) -d $(DESTDIR)$(sbindir)/. $(INSTALL) sbin/fsck.nfs $(DESTDIR)$(sbindir)/fsck.nfs $(INSTALL) -d $(DESTDIR)/usr/share/man/man8 $(INSTALL_DATA) man/fsck.nfs.8 \ $(DESTDIR)/usr/share/man/man8/fsck.nfs.8 $(INSTALL) -d $(DESTDIR)/usr/share/man/man5 $(INSTALL_DATA) man/*.5 $(DESTDIR)/usr/share/man/man5/. debian/src/initscripts/man/0000775000000000000000000000000012310205744013103 5ustar debian/src/initscripts/man/halt.50000664000000000000000000000327212310205332014116 0ustar .TH halt 5 "16 Jan 2007" "" "File Formats" .SH NAME halt \- variables that affect the behavior of the shutdown scripts .SH DESCRIPTION The .I /etc/default/halt file contains variable settings in POSIX format: .IP "" .5i VAR=VAL .PP Only one assignment is allowed per line. Comments (starting with '#') are also allowed. .SH OPTIONS The following variables can be set. .IP \fBHALT\fP If set to .B poweroff the system will be powered down after it has been brought down. This is the default. .br If set to .B halt the system will only be halted after it has been brought down. What exactly this means depends on your hardware. .IP \fBNETDOWN\fB Setting this to .B no prevents shutdown from shutting down the network intefaces. This is necessary to use Wake-On-Lan. Setting it to .B yes causes shutdown to also bring down the network interfaces (and thus prevent the machine from being woken up remotely). .SH SEE ALSO .BR halt "(8), " shutdown "(8)." .SH AUTHOR \fBCasper Gielen\fR <\&casper@gielen.name\&> .SH "COPYRIGHT" This manual page 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. .PP This manual page 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. .PP You should have received a copy of the GNU General Public License along with this manual page; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111\-1307 USA debian/src/initscripts/man/fsck.nfs.80000664000000000000000000000070612310205332014703 0ustar .TH FSCK.NFS 8 "May 2004" "Initscripts" .SH NAME fsck.nfs \- Dummy fsck.nfs script that always returns success. .SH SYNOPSIS .B fsck.nfs .SH DESCRIPTION Debian GNU/Linux need this for when the root file system is on NFS: there is no way to find out if root is NFS mounted and we really want to do a "fsck -a /". .SH EXIT CODE The exit code returned by .B mount.nfs is always zero, meaning successful completion. .SH SEE ALSO .BR fsck (8), .BR fstab (5). debian/src/initscripts/man/rcS.50000664000000000000000000000743512310205332013722 0ustar .TH rcS 5 "21 May 2012" "" "Debian Administrator's Manual" .SH NAME rcS \- variables that affect the behavior of boot scripts .SH DESCRIPTION The .I /etc/default/rcS file contains variable settings in POSIX format: .IP "" .5i VAR=VAL .PP Only one assignment is allowed per line. Comments (starting with '#') are also allowed. .SH OPTIONS The following variables can be set. .IP \fBTMPTIME\fP On boot the files in /tmp will be deleted if their modification time, file status time and access time are all at least TMPTIME days ago. A value of 0 means that files are removed regardless of age. If you don't want the system to clean /tmp then set TMPTIME to a negative value (e.g., \-1) or to the word \fIinfinite\fP. .IP \fBSULOGIN\fB Setting this to .B yes causes init to spawn a .B sulogin on the console early in the boot process. If the administrator does not login then the sulogin session will time out after 30 seconds and the boot process will continue. .IP \fBDELAYLOGIN\fB Normally the system will not let non-root users log in until the boot process is complete and the system has finished switching to the default runlevel (usually level 2). However, in theory it is safe to log in a bit earlier, namely, as soon as \fBinetd\fP has started. Setting the variable to \fBno\fP allows earlier login; setting the variable to \fByes\fP prevents it. Some details: The \fBDELAYLOGIN\fP variable controls whether or not the file \fI/var/lib/initscripts/nologin\fP is created during the boot process and deleted at the end of it. \fI/etc/nologin\fP is normally a symbolic link to the latter location, and the \fBlogin\fP(1) program refuses to allow non-root logins so long as (the target of) \fI/etc/nologin\fP exists. If you set the variable to \fBno\fP then it is advisable to ensure that \fI/var/lib/initscripts/nologin\fP does not exist. .IP \fBUTC\fP This is used to govern how the hardware real time clock is interpreted when it is read (e.g., at boot time, for the purpose of setting the system clock) and when it is written (e.g., at shutdown). If this option is set to \fBno\fP then the system clock is assumed to be set to local time. If the option is set to \fByes\fP then the system clock is assumed to be set to something approximating Coordinated Universal Time (UTC). (POSIX systems keep a variant of UTC, without leap seconds.) On contemporary Debian systems (although change has been requested at \fIhttp://bugs.debian.org/346342\fP), if UTC is set to \fBno\fP then \fI/usr/share/zoneinfo\fP must be readable early in the boot process. If you want to keep \fI/usr\fP on a separate filesystem then you must still ensure that the target of \fI/etc/localtime\fP points to the correct zone information file for the time zone of the time kept in your hardware real time clock. .IP \fBVERBOSE\fP Setting this option to \fBno\fP (in lower case) will make the boot process a bit less verbose. Setting this option to \fByes\fP will make the boot process a bit more verbose. .IP \fBFSCKFIX\fP When the root and all other file systems are checked, .B fsck is invoked with the \fB\-a\fP option which means "autorepair". If there are major inconsistencies then the fsck process will bail out. The system will print a message asking the administrator to repair the file system manually and will present a root shell prompt (actually a \fIsulogin\fP prompt) on the console. Setting this option to \fByes\fP causes the fsck commands to be run with the \fB\-y\fP option instead of the \fB\-a\fP option. This will tell fsck always to repair the file systems without asking for permission. .SH NOTE The \fBEDITMOTD\fP and \fBRAMRUN\fP variables are no longer used. .SH AUTHOR Miquel van Smoorenburg Roger Leigh .SH SEE ALSO .BR hwclock (5), .BR hwclock (8), .BR inetd (8), .BR init (8), .BR inittab (5), .BR login (1), debian/src/sysv-rc/0000775000000000000000000000000012310205744011363 5ustar debian/src/sysv-rc/saveconfig0000664000000000000000000000364012310205332013426 0ustar #! /usr/bin/perl # # saveconfig # # Print out the configuration of the current /etc/rc?.d # symlink setup, in a format compatible to the # "update-rc.d" command line. # # Author: Miquel van Smoorenburg # Adjusted by Petter Reinholdtsen # sub usage { print STDERR "error: ", @_, "\n" if @_; print STDERR <] -s save each scripts setting in directory -h show usage inforation EOF } my $archivedir = ""; while($#ARGV >= 0 && ($_ = $ARGV[0]) =~ /^-/) { shift @ARGV; if (/^-s$/) { $archivedir = shift; usage("Missing -s argument"), exit 1 unless $archivedir; next } if (/^-h|--help$/) { &usage; } &usage("unknown option"); } chdir "/etc/init.d"; sub scan { my $dir = shift; local *DD; my $f; opendir DD, $dir; foreach $f (readdir DD) { next if ($f =~ m/^\./); push @{$dir{$dir}}, $f; } closedir DD; } foreach my $d (qw(S 0 1 2 3 4 5 6 7 8 9)) { scan("/etc/rc$d.d"); } scan("/etc/init.d"); foreach my $s (@{$dir{"/etc/init.d"}}) { my %start; my %stop; my $start = 0; my $stop = 0; foreach my $l (qw(S 0 1 2 3 4 5 6)) { #print "L: $l\n"; foreach my $f (@{$dir{"/etc/rc$l.d"}}) { #print "F: $f\n"; if ($f =~ m#^S(\d+)$s$#) { $start{$1} .= "$l "; $start = 1; } if ($f =~ m#^K(\d+)$s$#) { $stop{$1} .= "$l "; $stop = 1; } } } my $entry; if ($start || $stop) { $entry = "update-rc.d $s "; if ($start > 0) { foreach my $x (sort keys %start) { $entry .= "start $x " . $start{$x} . ". "; } } if ($stop > 0) { foreach my $x (sort keys %stop) { $entry .= "stop $x " . $stop{$x} . ". "; } } $entry .= "\n"; if ($archivedir) { my $file = "$archivedir/$s"; open(FILE, ">", "${file}.new") || die "Unable to write to $file"; print FILE $entry; close(FILE); rename "${file}.new", "$file"; } else { print $entry; } } } debian/src/sysv-rc/etc/0000775000000000000000000000000012310205744012136 5ustar debian/src/sysv-rc/etc/rc6.d/0000775000000000000000000000000012310205744013052 5ustar debian/src/sysv-rc/etc/rc6.d/README0000664000000000000000000000053712310205332013730 0ustar The scripts in this directory are executed once when entering runlevel 6. The scripts are all symbolic links whose targets are located in /etc/init.d/ . Generally it is not necessary to alter the scripts in this directory. Their purpose is to stop all services and to make the system ready for reboot. For more information see /etc/init.d/README. debian/src/sysv-rc/etc/rc1.d/0000775000000000000000000000000012310205744013045 5ustar debian/src/sysv-rc/etc/rc1.d/README0000664000000000000000000000056112310205332013720 0ustar The scripts in this directory are executed each time the system enters this runlevel. The scripts are all symbolic links whose targets are located in /etc/init.d/ . Generally it is not necessary to alter the scripts in this directory. Their purpose is to stop all services and thus to put the system in single-user mode. For more information see /etc/init.d/README. debian/src/sysv-rc/etc/rcS.d/0000775000000000000000000000000012310205744013107 5ustar debian/src/sysv-rc/etc/rcS.d/README0000664000000000000000000000067712310205332013772 0ustar The scripts in this directory whose names begin with an 'S' are executed once when booting the system, even when booting directly into single user mode. The scripts are all symbolic links whose targets are located in /etc/init.d/ . To disable a script in this directory, rename it so that it begins with a 'K' and run 'update-rc.d script defaults' to update the order using the script dependencies. For more information see /etc/init.d/README. debian/src/sysv-rc/etc/rc0.d/0000775000000000000000000000000012310205744013044 5ustar debian/src/sysv-rc/etc/rc0.d/README0000664000000000000000000000054112310205332013715 0ustar The scripts in this directory are executed once when entering runlevel 0. The scripts are all symbolic links whose targets are located in /etc/init.d/ . Generally it is not necessary to alter the scripts in this directory. Their purpose is to stop all services and to make the system ready for shutdown. For more information see /etc/init.d/README. debian/src/sysv-rc/etc/init.d/0000775000000000000000000000000012310205744013323 5ustar debian/src/sysv-rc/etc/init.d/rcS0000664000000000000000000000016512310205332013770 0ustar #! /bin/sh # # rcS # # Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order # exec /etc/init.d/rc S debian/src/sysv-rc/etc/init.d/README0000664000000000000000000000457312310205332014205 0ustar Configuration of System V init under Debian GNU/Linux Most Unix versions have a file here that describes how the scripts in this directory work, and how the links in the /etc/rc?.d/ directories influence system startup/shutdown. For Debian, this information is contained in the policy manual, chapter "System run levels and init.d scripts". The Debian Policy Manual is available at: http://www.debian.org/doc/debian-policy/#contents The Debian Policy Manual is also available in the Debian package "debian-policy". When this package is installed, the policy manual can be found in directory /usr/share/doc/debian-policy. If you have a browser installed you can probably read it at file://localhost/usr/share/doc/debian-policy/ Some more detailed information can also be found in the files in the /usr/share/doc/sysv-rc directory. Debian Policy dictates that /etc/init.d/*.sh scripts must work properly when sourced. The following additional rules apply: * /etc/init.d/*.sh scripts must not rely for their correct functioning on their being sourced rather than executed. That is, they must work properly when executed too. They must include "#!/bin/sh" at the top. This is useful when running scripts in parallel. * /etc/init.d/*.sh scripts must conform to the rules for sh scripts as spelled out in the Debian policy section entitled "Scripts" (§10.4). Use the update-rc.d command to create symbolic links in the /etc/rc?.d as appropriate. See that man page for more details. All init.d scripts are expected to have a LSB style header documenting dependencies and default runlevel settings. The header look like this (not all fields are required): ### BEGIN INIT INFO # Provides: skeleton # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Should-Start: $portmap # Should-Stop: $portmap # X-Start-Before: nis # X-Stop-After: nis # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # X-Interactive: true # Short-Description: Example initscript # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO More information on the format is available from insserv(8). This information is used to dynamicaly assign sequence numbers to the boot scripts and to run the scripts in parallel during the boot. See also /usr/share/doc/insserv/README.Debian. debian/src/sysv-rc/etc/init.d/rc0000664000000000000000000001375012310205332013651 0ustar #! /bin/sh # # rc # # Starts/stops services on runlevel changes. # # Optimization: A start script is not run when the service was already # configured to run in the previous runlevel. A stop script is not run # when the the service was already configured not to run in the previous # runlevel. # # Authors: # Miquel van Smoorenburg # Bruce Perens PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH # Un-comment the following for interactive debugging. Do not un-comment # this for debugging a real boot process as no scripts will be executed. # debug=echo # Make sure the name survive changing the argument list scriptname="$0" umask 022 on_exit() { echo "error: '$scriptname' exited outside the expected code flow." } trap on_exit EXIT # Enable emergency handler # Ignore CTRL-C only in this shell, so we can interrupt subprocesses. trap ":" INT QUIT TSTP # Set onlcr to avoid staircase effect. stty onlcr 0>&1 # Now find out what the current and what the previous runlevel are. runlevel=$RUNLEVEL # Get first argument. Set new runlevel to this argument. [ "$1" != "" ] && runlevel=$1 if [ "$runlevel" = "" ] then echo "Usage: $scriptname " >&2 exit 1 fi previous=$PREVLEVEL [ "$previous" = "" ] && previous=N export runlevel previous if [ -f /etc/default/rcS ] ; then . /etc/default/rcS fi export VERBOSE if [ -f /lib/lsb/init-functions ] ; then . /lib/lsb/init-functions else log_action_msg() { echo $@; } log_failure_msg() { echo $@; } log_warning_msg() { echo $@; } fi # # Check if we are able to use make like booting. It require the # insserv package to be enabled. Boot concurrency also requires # startpar to be installed. # CONCURRENCY=makefile test -s /etc/init.d/.depend.boot || CONCURRENCY="none" test -s /etc/init.d/.depend.start || CONCURRENCY="none" test -s /etc/init.d/.depend.stop || CONCURRENCY="none" if test -e /etc/init.d/.legacy-bootordering ; then CONCURRENCY="none" fi if ! test -e /proc/stat; then if [ "$(uname)" = "GNU/kFreeBSD" ] ; then # startpar requires /proc/stat mount -t linprocfs linprocfs /proc fi fi startpar -v > /dev/null 2>&1 || CONCURRENCY="none" # # Start script or program. # case "$CONCURRENCY" in makefile|startpar|shell) # startpar and shell are obsolete CONCURRENCY=makefile log_action_msg "Using makefile-style concurrent boot in runlevel $runlevel" startup() { eval "$(startpar -p 4 -t 20 -T 3 -M $1 -P $previous -R $runlevel)" if [ -n "$failed_service" ] then log_failure_msg "startpar: service(s) returned failure: $failed_service" fi if [ -n "$skipped_service_not_installed" ] then log_warning_msg "startpar: service(s) skipped, program is not installed: $skipped_service_not_installed" fi if [ -n "$skipped_service_not_configured" ] then log_warning_msg "startpar: service(s) skipped, program is not configured: $skipped_service_not_configured" fi unset failed_service skipped_service_not_installed skipped_service_not_configured } ;; none|*) startup() { action=$1 shift scripts="$@" for script in $scripts ; do $debug "$script" $action done } ;; esac # Is there an rc directory for this new runlevel? if [ -d /etc/rc$runlevel.d ] then case "$runlevel" in 0|6) ACTION=stop ;; S) ACTION=start ;; *) ACTION=start ;; esac # First, run the KILL scripts. if [ makefile = "$CONCURRENCY" ] then if [ "$ACTION" = "start" ] && [ "$previous" != N ] then startup stop fi elif [ "$previous" != N ] then # Run all scripts with the same level in parallel CURLEVEL="" for s in /etc/rc$runlevel.d/K* do # Extract order value from symlink level=${s#/etc/rc$runlevel.d/K} level=${level%%[a-zA-Z]*} if [ "$level" = "$CURLEVEL" ] then continue fi CURLEVEL=$level SCRIPTS="" for i in /etc/rc$runlevel.d/K$level* do # Check if the script is there. [ ! -f $i ] && continue # # Find stop script in previous runlevel but # no start script there. # suffix=${i#/etc/rc$runlevel.d/K[0-9][0-9]} previous_stop=/etc/rc$previous.d/K[0-9][0-9]$suffix previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix # # If there is a stop script in the previous level # and _no_ start script there, we don't # have to re-stop the service. # [ -f $previous_stop ] && [ ! -f $previous_start ] && continue # Stop the service. SCRIPTS="$SCRIPTS $i" done startup stop $SCRIPTS done fi if [ makefile = "$CONCURRENCY" ] then if [ S = "$runlevel" ] then startup boot else startup $ACTION fi else # Now run the START scripts for this runlevel. # Run all scripts with the same level in parallel CURLEVEL="" for s in /etc/rc$runlevel.d/S* do # Extract order value from symlink level=${s#/etc/rc$runlevel.d/S} level=${level%%[a-zA-Z]*} if [ "$level" = "$CURLEVEL" ] then continue fi CURLEVEL=$level SCRIPTS="" for i in /etc/rc$runlevel.d/S$level* do [ ! -f $i ] && continue suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]} if [ "$previous" != N ] then # # Find start script in previous runlevel and # stop script in this runlevel. # stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix # # If there is a start script in the previous level # and _no_ stop script in this level, we don't # have to re-start the service. # if [ start = "$ACTION" ] ; then [ -f $previous_start ] && [ ! -f $stop ] && continue else # Workaround for the special # handling of runlevels 0 and 6. previous_stop=/etc/rc$previous.d/K[0-9][0-9]$suffix # # If there is a stop script in the previous level # and _no_ start script there, we don't # have to re-stop the service. # [ -f $previous_stop ] && [ ! -f $previous_start ] && continue fi fi SCRIPTS="$SCRIPTS $i" done startup $ACTION $SCRIPTS done fi fi trap - EXIT # Disable emergency handler exit 0 debian/src/sysv-rc/sbin/0000775000000000000000000000000012310205744012316 5ustar debian/src/sysv-rc/sbin/invoke-rc.d0000664000000000000000000003461312310205332014360 0ustar #!/bin/sh # # invoke-rc.d.sysvinit - Executes initscript actions # # SysVinit /etc/rc?.d version for Debian's sysvinit package # # Copyright (C) 2000,2001 Henrique de Moraes Holschuh # # 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. # Constants RUNLEVELHELPER=/sbin/runlevel POLICYHELPER=/usr/sbin/policy-rc.d INITDPREFIX=/etc/init.d/ UPSTARTDIR=/etc/init/ RCDPREFIX=/etc/rc # Options BEQUIET= MODE= ACTION= FALLBACK= NOFALLBACK= FORCE= RETRY= RETURNFAILURE= RC= is_upstart= # Shell options set +e dohelp () { # # outputs help and usage # cat < Usage: invoke-rc.d [options] [extra parameters] basename - Initscript ID, as per update-rc.d(8) action - Initscript action. Known actions are: start, [force-]stop, restart, [force-]reload, status WARNING: not all initscripts implement all of the above actions. extra parameters are passed as is to the initscript, following the action (first initscript parameter). Options: --quiet Quiet mode, no error messages are generated. --force Try to run the initscript regardless of policy and subsystem non-fatal errors. --try-anyway Try to run init script even if a non-fatal error is found. --disclose-deny Return status code 101 instead of status code 0 if initscript action is denied by local policy rules or runlevel constrains. --query Returns one of status codes 100-106, does not run the initscript. Implies --disclose-deny and --no-fallback. --no-fallback Ignores any fallback action requests by the policy layer. Warning: this is usually a very *bad* idea for any actions other than "start". --help Outputs help message to stdout EOF } printerror () { # # prints an error message # $* - error message # if test x${BEQUIET} = x ; then echo `basename $0`: "$*" >&2 fi } formataction () { # # formats a list in $* into $printaction # for human-friendly printing to stderr # and sets $naction to action or actions # printaction=`echo $* | sed 's/ /, /g'` if test $# -eq 1 ; then naction=action else naction=actions fi } querypolicy () { # # queries policy database # returns: $RC = 104 - ok, run # $RC = 101 - ok, do not run # other - exit with status $RC, maybe run if $RETRY # initial status of $RC is taken into account. # policyaction="${ACTION}" if test x${RC} = "x101" ; then if test "${ACTION}" = "start" || test "${ACTION}" = "restart" ; then policyaction="(${ACTION})" fi fi if test "x${POLICYHELPER}" != x && test -x "${POLICYHELPER}" ; then FALLBACK=`${POLICYHELPER} ${BEQUIET} ${INITSCRIPTID} "${policyaction}" ${RL}` RC=$? formataction ${ACTION} case ${RC} in 0) RC=104 ;; 1) RC=105 ;; 101) if test x${FORCE} != x ; then printerror Overriding policy-rc.d denied execution of ${printaction}. RC=104 else printerror policy-rc.d denied execution of ${printaction}. fi ;; esac if test x${MODE} != xquery ; then case ${RC} in 105) printerror policy-rc.d query returned \"behaviour undefined\", printerror assuming \"${printaction}\" is allowed. RC=104 ;; 106) formataction ${FALLBACK} if test x${FORCE} = x ; then if test x${NOFALLBACK} = x ; then ACTION="${FALLBACK}" printerror executing ${naction} \"${printaction}\" instead due to policy-rc.d request. RC=104 else printerror ignoring policy-rc.d fallback request: ${printaction}. RC=101 fi else printerror ignoring policy-rc.d fallback request: ${printaction}. RC=104 fi ;; esac fi case ${RC} in 100|101|102|103|104|105|106) ;; *) printerror WARNING: policy-rc.d returned unexpected error status ${RC}, 102 used instead. RC=102 ;; esac else if test x${RC} = x ; then RC=104 fi fi return } verifyparameter () { # # Verifies if $1 is not null, and $# = 1 # if test $# -eq 0 ; then printerror syntax error: invalid empty parameter exit 103 elif test $# -ne 1 ; then printerror syntax error: embedded blanks are not allowed in \"$*\" exit 103 fi return } ## ## main ## ## Verifies command line arguments if test $# -eq 0 ; then printerror syntax error: missing required parameter, --help assumed dohelp exit 103 fi state=I while test $# -gt 0 && test ${state} != III ; do case "$1" in --help) dohelp exit 0 ;; --quiet) BEQUIET=--quiet ;; --force) FORCE=yes RETRY=yes ;; --try-anyway) RETRY=yes ;; --disclose-deny) RETURNFAILURE=yes ;; --query) MODE=query RETURNFAILURE=yes ;; --no-fallback) NOFALLBACK=yes ;; --*) printerror syntax error: unknown option \"$1\" exit 103 ;; *) case ${state} in I) verifyparameter $1 INITSCRIPTID=$1 ;; II) verifyparameter $1 ACTION=$1 ;; esac state=${state}I ;; esac shift done if test ${state} != III ; then printerror syntax error: missing required parameter exit 103 fi #NOTE: It may not be obvious, but "$@" from this point on must expand #to the extra initscript parameters, except inside functions. ## sanity checks and just-in-case warnings. case ${ACTION} in start|stop|force-stop|restart|reload|force-reload|status) ;; *) if test "x${POLICYHELPER}" != x && test -x "${POLICYHELPER}" ; then printerror action ${ACTION} is unknown, but proceeding anyway. fi ;; esac # If we're running on upstart and there's an upstart job of this name, do # the rest with upstart instead of calling the init script. if which initctl >/dev/null && initctl version | grep -q upstart \ && [ -e "$UPSTARTDIR/${INITSCRIPTID}.conf" ] then is_upstart=1 elif test ! -f "${INITDPREFIX}${INITSCRIPTID}" ; then ## Verifies if the given initscript ID is known ## For sysvinit, this error is critical printerror unknown initscript, ${INITDPREFIX}${INITSCRIPTID} not found. if [ ! -e "$UPSTARTDIR/${INITSCRIPTID}.conf" ]; then # If the init script doesn't exist, but the upstart job does, we # defer the error exit; we might be running in a chroot and # policy-rc.d might say not to start the job anyway, in which case # we don't want to exit non-zero. exit 100 fi fi ## Queries sysvinit for the current runlevel RL=`${RUNLEVELHELPER} | sed 's/.*\ //'` if test ! $? ; then printerror "could not determine current runlevel" if test x${RETRY} = x ; then exit 102 fi RL= fi ## Running ${RUNLEVELHELPER} to get current runlevel does not work in ## the boot runlevel (scripts in /etc/rcS.d/), as /var/run/utmp ## contains runlevel 0 or 6 (written at shutdown) at that point. if test x${RL} = x0 || test x${RL} = x6 ; then if ps -fp 1 | grep -q 'init boot' ; then RL=S fi fi ## Handles shutdown sequences VERY safely ## i.e.: forget about policy, and do all we can to run the script. ## BTW, why the heck are we being run in a shutdown runlevel?! if test x${RL} = x0 || test x${RL} = x6 ; then FORCE=yes RETRY=yes POLICYHELPER= BEQUIET= printerror "-----------------------------------------------------" printerror "WARNING: 'invoke-rc.d ${INITSCRIPTID} ${ACTION}' called" printerror "during shutdown sequence." printerror "enabling safe mode: initscript policy layer disabled" printerror "-----------------------------------------------------" fi ## Verifies the existance of proper S??initscriptID and K??initscriptID ## *links* in the proper /etc/rc?.d/ directory verifyrclink () { # # verifies if parameters are non-dangling symlinks # all parameters are verified # doexit= while test $# -gt 0 ; do if test ! -L "$1" ; then printerror not a symlink: $1 doexit=102 fi if test ! -f "$1" ; then printerror dangling symlink: $1 doexit=102 fi shift done if test x${doexit} != x && test x${RETRY} = x; then exit ${doexit} fi return 0 } # we do handle multiple links per runlevel # but we don't handle embedded blanks in link names :-( if test x${RL} != x ; then SLINK=`ls -d -Q ${RCDPREFIX}${RL}.d/S[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs` KLINK=`ls -d -Q ${RCDPREFIX}${RL}.d/K[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs` SSLINK=`ls -d -Q ${RCDPREFIX}S.d/S[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs` verifyrclink ${SLINK} ${KLINK} ${SSLINK} fi testexec () { # # returns true if any of the parameters is # executable (after following links) # while test $# -gt 0 ; do if test -x "$1" ; then return 0 fi shift done return 1 } RC= ### ### LOCAL INITSCRIPT POLICY: Enforce need of a start entry ### in either runlevel S or current runlevel to allow start ### or restart. ### case ${ACTION} in start|restart) if testexec ${SLINK} ; then RC=104 elif testexec ${KLINK} ; then RC=101 elif testexec ${SSLINK} ; then RC=104 fi ;; esac # test if /etc/init.d/initscript is actually executable if [ -n "$is_upstart" ] || testexec "${INITDPREFIX}${INITSCRIPTID}" ; then if test x${RC} = x && test x${MODE} = xquery ; then RC=105 fi # call policy layer querypolicy case ${RC} in 101|104) ;; *) if test x${MODE} != xquery ; then printerror policy-rc.d returned error status ${RC} if test x${RETRY} = x ; then exit ${RC} else RC=102 fi fi ;; esac elif [ -z "$is_upstart" ] && test ! -f "${INITDPREFIX}${INITSCRIPTID}" ; then # call policy layer. If the policy denies the execution, pass it on. # otherwise, if the policy *allows* the execution, there's a # misconfiguration somewhere and we throw an error. querypolicy case $RC in 101) ;; *) exit 100 ;; esac else ### ### LOCAL INITSCRIPT POLICY: non-executable initscript; deny exec. ### (this is common sense, actually :^P ) ### RC=101 fi ## Handles --query if test x${MODE} = xquery ; then exit ${RC} fi setechoactions () { if test $# -gt 1 ; then echoaction=true else echoaction= fi } getnextaction () { saction=$1 shift ACTION="$@" } clean_ldpreload () { # clean_ldpreload(name): remove occurences of name from LD_PRELOAD local name="$1" oifs="$IFS" found=0 tok="" nval="" delim=" " # LD_PRELOAD can be space or colon separated items # assume ':' in value indicates ':' otherwise space [ "${LD_PRELOAD#*:}" = "$LD_PRELOAD" ] || delim=":" IFS="$delim" for tok in $LD_PRELOAD; do [ "${tok##*/}" = "$name" ] && found=1 || nval="${nval}${delim}$tok" done IFS="$oifs" # if we didn't find anything, dont change anything. [ "$found" = "1" ] || return 0 LD_PRELOAD="${nval#$delim}" } if [ -n "$is_upstart" ]; then RUNNING= DISABLED= if status "$INITSCRIPTID" 2>/dev/null | grep -q ' start/'; then RUNNING=1 fi UPSTART_VERSION_RUNNING=$(initctl version|awk '{print $3}'|tr -d ')') if dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 0.9.7 then initctl show-config -e "$INITSCRIPTID"|grep -q '^ start on' || DISABLED=1 fi fi # remove eatmydata from LD_PRELOAD unless told not to (LP: #1257036) [ "${INVOKE_RCD_ALLOW_EATMYDATA:-0}" != "0" ] || clean_ldpreload "libeatmydata.so" ## Executes initscript ## note that $ACTION is a space-separated list of actions ## to be attempted in order until one suceeds. if test x${FORCE} != x || test ${RC} -eq 104 ; then if [ -n "$is_upstart" ] || testexec "${INITDPREFIX}${INITSCRIPTID}" ; then RC=102 setechoactions ${ACTION} while test ! -z "${ACTION}" ; do getnextaction ${ACTION} if test ! -z ${echoaction} ; then printerror executing initscript action \"${saction}\"... fi if [ -n "$is_upstart" ]; then # Force Upstart to re-scan /etc/init for filesystems with # broken inotify (such as overlayfs (LP: #882147)). initctl reload-configuration >/dev/null 2>&1 case $saction in status) "$saction" "$INITSCRIPTID" && exit 0 ;; start|stop) if [ -z "$RUNNING" ] && [ "$saction" = "stop" ]; then exit 0 elif [ -n "$RUNNING" ] && [ "$saction" = "start" ]; then exit 0 elif [ -n "$DISABLED" ] && [ "$saction" = "start" ]; then exit 0 fi $saction "$INITSCRIPTID" && exit 0 ;; restart) if [ -n "$RUNNING" ] ; then stop "$INITSCRIPTID" fi # If the job is disabled and is not currently # running, the job is not restarted. However, if # the job is disabled but has been forced into # the running state, we *do* stop and restart it # since this is expected behaviour # for the admin who forced the start. if [ -n "$DISABLED" ] && [ -z "$RUNNING" ]; then exit 0 fi start "$INITSCRIPTID" && exit 0 ;; reload|force-reload) reload "$INITSCRIPTID" && exit 0 ;; *) # This will almost certainly fail, but give it a try initctl "$saction" "$INITSCRIPTID" && exit 0 ;; esac else "${INITDPREFIX}${INITSCRIPTID}" "${saction}" "$@" && exit 0 fi RC=$? if test ! -z "${ACTION}" ; then printerror action \"${saction}\" failed, trying next action... fi done printerror initscript ${INITSCRIPTID}, action \"${saction}\" failed. exit ${RC} fi exit 102 fi ## Handles --disclose-deny and denied "status" action (bug #381497) if test ${RC} -eq 101 && test x${RETURNFAILURE} = x ; then if test "x${ACTION%% *}" = "xstatus"; then printerror emulating initscript action \"status\", returning \"unknown\" RC=4 else RC=0 fi else formataction ${ACTION} printerror initscript ${naction} \"${printaction}\" not executed. fi exit ${RC} debian/src/sysv-rc/sbin/update-rc.d0000775000000000000000000004034712310205332014353 0ustar #! /usr/bin/perl # # update-rc.d Update the links in /etc/rc[0-9S].d/ # use strict; use warnings; my $initd = "/etc/init.d"; my $etcd = "/etc/rc"; my $notreally = 0; # Print usage message and die. sub usage { print STDERR "update-rc.d: error: @_\n" if ($#_ >= 0); print STDERR < remove update-rc.d [-n] defaults [NN | SS KK] update-rc.d [-n] start|stop NN runlvl [runlvl] [...] . update-rc.d [-n] disable|enable [S|2|3|4|5] -n: not really -f: force The disable|enable API is not stable and might change in the future. EOF exit (1); } # Dependency based boot sequencing is the default, but upgraded # systems might keep the legacy ordering until the sysadm choose to # migrate to the new ordering method. if ( ! -f "/etc/init.d/.legacy-bootordering" ) { info("using dependency based boot sequencing"); exit insserv_updatercd(@ARGV); } # Check out options. my $force; my @orig_argv = @ARGV; while($#ARGV >= 0 && ($_ = $ARGV[0]) =~ /^-/) { shift @ARGV; if (/^-n$/) { $notreally++; next } if (/^-f$/) { $force++; next } if (/^-h|--help$/) { &usage; } &usage("unknown option"); } sub save_last_action { # No-op (archive removed) } sub remove_last_action { # No-op (archive removed) } # Action. &usage() if ($#ARGV < 1); my $bn = shift @ARGV; unless ($bn =~ m/[a-zA-Z0-9+.-]+/) { print STDERR "update-rc.d: illegal character in name '$bn'\n"; exit (1); } if ($ARGV[0] ne 'remove') { if (! -f "$initd/$bn") { print STDERR "update-rc.d: $initd/$bn: file does not exist\n"; exit (1); } &parse_lsb_header("$initd/$bn"); &cmp_args_with_defaults($bn, $ARGV[0], @ARGV); } elsif (-f "$initd/$bn") { if (!$force) { printf STDERR "update-rc.d: $initd/$bn exists during rc.d purge (use -f to force)\n"; exit (1); } } my @startlinks; my @stoplinks; $_ = $ARGV[0]; if (/^remove$/) { &checklinks ("remove"); remove_last_action($bn); } elsif (/^defaults$/) { &defaults (@ARGV); &makelinks; save_last_action($bn, @orig_argv); } elsif (/^(start|stop)$/) { &startstop (@ARGV); &makelinks; save_last_action($bn, @orig_argv); } elsif (/^(dis|en)able$/) { &toggle (@ARGV); &makelinks; save_last_action($bn, @orig_argv); } else { &usage; } exit (0); sub info { print STDOUT "update-rc.d: @_\n"; } sub warning { print STDERR "update-rc.d: warning: @_\n"; } sub error { print STDERR "update-rc.d: error: @_\n"; exit (1); } sub error_code { my $rc = shift; print STDERR "update-rc.d: error: @_\n"; exit ($rc); } # Check if there are links in /etc/rc[0-9S].d/ # Remove if the first argument is "remove" and the links # point to $bn. sub is_link () { my ($op, $fn, $bn) = @_; if (! -l $fn) { warning "$fn is not a symbolic link\n"; return 0; } else { my $linkdst = readlink ($fn); if (! defined $linkdst) { die ("update-rc.d: error reading symbolic link: $!\n"); } if (($linkdst ne "../init.d/$bn") && ($linkdst ne "$initd/$bn")) { warning "$fn is not a link to ../init.d/$bn or $initd/$bn\n"; return 0; } } return 1; } sub checklinks { my ($i, $found, $fn, $islnk); print " Removing any system startup links for $initd/$bn ...\n" if (defined $_[0] && $_[0] eq 'remove'); $found = 0; foreach $i (0..9, 'S') { unless (chdir ("$etcd$i.d")) { next if ($i =~ m/^[789S]$/); die("update-rc.d: chdir $etcd$i.d: $!\n"); } opendir(DIR, "."); my $saveBN=$bn; $saveBN =~ s/\+/\\+/g; foreach $_ (readdir(DIR)) { next unless (/^[SK]\d\d$saveBN$/); $fn = "$etcd$i.d/$_"; $found = 1; $islnk = &is_link ($_[0], $fn, $bn); next unless (defined $_[0] and $_[0] eq 'remove'); if (! $islnk) { print " $fn is not a link to ../init.d/$bn; not removing\n"; next; } print " $etcd$i.d/$_\n"; next if ($notreally); unlink ("$etcd$i.d/$_") || die("update-rc.d: unlink: $!\n"); } closedir(DIR); } $found; } sub parse_lsb_header { my $initdscript = shift; my %lsbinfo; my $lsbheaders = "Provides|Required-Start|Required-Stop|Default-Start|Default-Stop"; open(INIT, "<$initdscript") || die "error: unable to read $initdscript"; while () { chomp; $lsbinfo{'found'} = 1 if (m/^\#\#\# BEGIN INIT INFO\s*$/); last if (m/\#\#\# END INIT INFO\s*$/); if (m/^\# ($lsbheaders):\s*(\S?.*)$/i) { $lsbinfo{lc($1)} = $2; } } close(INIT); # Check that all the required headers are present if (!$lsbinfo{found}) { printf STDERR "update-rc.d: warning: $initdscript missing LSB information\n"; printf STDERR "update-rc.d: see \n"; } else { for my $key (split(/\|/, lc($lsbheaders))) { if (!exists $lsbinfo{$key}) { warning "$initdscript missing LSB keyword '$key'\n"; } } } } # Process the arguments after the "enable" or "disable" keyword. sub toggle { my @argv = @_; my ($action, %lvls, @start, @stop, @xstartlinks); if (!&checklinks) { print " System start/stop links for $initd/$bn do not exist.\n"; exit (0); } $action = $argv[0]; if ($#argv > 1) { while ($#argv > 0 && shift @argv) { if ($argv[0] =~ /^[S2-5]$/) { $lvls{$argv[0]}++; } else { &usage ("expected 'S' '2' '3' '4' or '5'"); } } } else { $lvls{$_}++ for ('S', '2', '3', '4', '5'); } push(@start, glob($etcd . '[2-5S].d/[KS][0-9][0-9]' . $bn)); foreach (@start) { my $islink = &is_link (undef, $_, $bn); next if !$islink; next unless my ($lvl, $sk, $seq) = m/^$etcd([2-5S])\.d\/([SK])([0-9]{2})$bn$/; $startlinks[$lvl] = $sk . $seq; if ($action eq 'disable' and $sk eq 'S' and $lvls{$lvl}) { $xstartlinks[$lvl] = 'K' . sprintf "%02d", (100 - $seq); } elsif ($action eq 'enable' and $sk eq 'K' and $lvls{$lvl}) { $xstartlinks[$lvl] = 'S' . sprintf "%02d", -($seq - 100); } else { $xstartlinks[$lvl] = $sk . $seq; } } push(@stop, glob($etcd . '[016].d/[KS][0-9][0-9]' . $bn)); foreach (@stop) { my $islink = &is_link (undef, $_, $bn); next if !$islink; next unless my ($lvl, $sk, $seq) = m/^$etcd([016])\.d\/([SK])([0-9]{2})$bn$/; $stoplinks[$lvl] = $sk . $seq; } if ($action eq 'disable') { print " Disabling system startup links for $initd/$bn ...\n"; } elsif ($action eq 'enable') { print " Enabling system startup links for $initd/$bn ...\n"; } &checklinks ("remove"); @startlinks = @xstartlinks; 1; } # Process the arguments after the "defaults" keyword. sub defaults { my @argv = @_; my ($start, $stop) = (20, 20); &usage ("defaults takes only one or two codenumbers") if ($#argv > 2); $start = $stop = $argv[1] if ($#argv >= 1); $stop = $argv[2] if ($#argv >= 2); &usage ("codenumber must be a number between 0 and 99") if ($start !~ /^\d\d?$/ || $stop !~ /^\d\d?$/); $start = sprintf("%02d", $start); $stop = sprintf("%02d", $stop); $stoplinks[$_] = "K$stop" for (0, 1, 6); $startlinks[$_] = "S$start" for (2, 3, 4, 5); 1; } # Process the arguments after the start or stop keyword. sub startstop { my @argv = @_; my($letter, $NN, $level); while ($#argv >= 0) { if ($argv[0] eq 'start') { $letter = 'S'; } elsif ($argv[0] eq 'stop') { $letter = 'K'; } else { &usage("expected start|stop"); } if ($argv[1] !~ /^\d\d?$/) { &usage("expected NN after $argv[0]"); } $NN = sprintf("%02d", $argv[1]); if ($argv[-1] ne '.') { &usage("start|stop arguments not terminated by \".\""); } shift @argv; shift @argv; $level = shift @argv; do { if ($level !~ m/^[0-9S]$/) { &usage( "expected runlevel [0-9S] (did you forget \".\" ?)"); } if (! -d "$etcd$level.d") { print STDERR "update-rc.d: $etcd$level.d: no such directory\n"; exit(1); } $level = 99 if ($level eq 'S'); $startlinks[$level] = "$letter$NN" if ($letter eq 'S'); $stoplinks[$level] = "$letter$NN" if ($letter eq 'K'); } while (($level = shift @argv) ne '.'); } 1; } # Create the links. sub makelinks { my($t, $i); my @links; if (&checklinks) { print " System start/stop links for $initd/$bn already exist.\n"; return 0; } print " Adding system startup for $initd/$bn ...\n"; # nice unreadable perl mess :) for($t = 0; $t < 2; $t++) { @links = $t ? @startlinks : @stoplinks; for($i = 0; $i <= $#links; $i++) { my $lvl = $i; $lvl = 'S' if ($i == 99); next if (!defined $links[$i] or $links[$i] eq ''); print " $etcd$lvl.d/$links[$i]$bn -> ../init.d/$bn\n"; next if ($notreally); symlink("../init.d/$bn", "$etcd$lvl.d/$links[$i]$bn") || die("update-rc.d: symlink: $!\n"); } } 1; } ## Dependency based sub insserv_updatercd { my @args = @_; my @opts; my $scriptname; my $action; my $notreally = 0; my @orig_argv = @args; while($#args >= 0 && ($_ = $args[0]) =~ /^-/) { shift @args; if (/^-n$/) { push(@opts, $_); $notreally++; next } if (/^-f$/) { push(@opts, $_); next } if (/^-h|--help$/) { &usage; } usage("unknown option"); } usage("not enough arguments") if ($#args < 1); $scriptname = shift @args; $action = shift @args; if ("remove" eq $action) { if ( -f "/etc/init.d/$scriptname" ) { my $rc = system("/sbin/insserv", @opts, "-r", $scriptname) >> 8; if (0 == $rc && !$notreally) { remove_last_action($scriptname); } error_code($rc, "insserv rejected the script header") if $rc; exit $rc; } else { # insserv removes all dangling symlinks, no need to tell it # what to look for. my $rc = system("insserv", @opts) >> 8; if (0 == $rc && !$notreally) { remove_last_action($scriptname); } error_code($rc, "insserv rejected the script header") if $rc; exit $rc; } } elsif ("defaults" eq $action || "start" eq $action || "stop" eq $action) { # All start/stop/defaults arguments are discarded so emit a # message if arguments have been given and are in conflict # with Default-Start/Default-Stop values of LSB comment. cmp_args_with_defaults($scriptname, $action, @args); if ( -f "/etc/init.d/$scriptname" ) { my $rc = system("insserv", @opts, $scriptname) >> 8; if (0 == $rc && !$notreally) { save_last_action($scriptname, @orig_argv); } error_code($rc, "insserv rejected the script header") if $rc; exit $rc; } else { error("initscript does not exist: /etc/init.d/$scriptname"); } } elsif ("disable" eq $action || "enable" eq $action) { insserv_toggle($notreally, $action, $scriptname, @args); # Call insserv to resequence modified links my $rc = system("insserv", @opts, $scriptname) >> 8; if (0 == $rc && !$notreally) { save_last_action($scriptname, @orig_argv); } error_code($rc, "insserv rejected the script header") if $rc; exit $rc; } else { usage(); } } sub parse_def_start_stop { my $script = shift; my (%lsb, @def_start_lvls, @def_stop_lvls); open my $fh, '<', $script or error("unable to read $script"); while (<$fh>) { chomp; if (m/^### BEGIN INIT INFO$/) { $lsb{'begin'}++; } elsif (m/^### END INIT INFO$/) { $lsb{'end'}++; last; } elsif ($lsb{'begin'} and not $lsb{'end'}) { if (m/^# Default-Start:\s*(\S?.*)$/) { @def_start_lvls = split(' ', $1); } if (m/^# Default-Stop:\s*(\S?.*)$/) { @def_stop_lvls = split(' ', $1); } } } close($fh); return (\@def_start_lvls, \@def_stop_lvls); } sub lsb_header_for_script { my $name = shift; foreach my $file ("/etc/insserv/overrides/$name", "/etc/init.d/$name", "/usr/share/insserv/overrides/$name") { return $file if -s $file; } error("cannot find a LSB script for $name"); } sub cmp_args_with_defaults { my ($name, $act) = (shift, shift); my ($lsb_start_ref, $lsb_stop_ref, $arg_str, $lsb_str); my (@arg_start_lvls, @arg_stop_lvls, @lsb_start_lvls, @lsb_stop_lvls); my $default_msg = ($act eq 'defaults') ? 'default' : ''; ($lsb_start_ref, $lsb_stop_ref) = parse_def_start_stop("/etc/init.d/$name"); @lsb_start_lvls = @$lsb_start_ref; @lsb_stop_lvls = @$lsb_stop_ref; return if (!@lsb_start_lvls and !@lsb_stop_lvls); if ($act eq 'defaults') { @arg_start_lvls = (2, 3, 4, 5); @arg_stop_lvls = (0, 1, 6); } elsif ($act eq 'start' or $act eq 'stop') { my $start = $act eq 'start' ? 1 : 0; my $stop = $act eq 'stop' ? 1 : 0; # The legacy part of this program passes arguments starting with # "start|stop NN x y z ." but the insserv part gives argument list # starting with sequence number (ie. strips off leading "start|stop") # Start processing arguments immediately after the first seq number. my $argi = $_[0] eq $act ? 2 : 1; while (defined $_[$argi]) { my $arg = $_[$argi]; # Runlevels 0 and 6 are always stop runlevels if ($arg eq 0 or $arg eq 6) { $start = 0; $stop = 1; } elsif ($arg eq 'start') { $start = 1; $stop = 0; $argi++; next; } elsif ($arg eq 'stop') { $start = 0; $stop = 1; $argi++; next; } elsif ($arg eq '.') { next; } push(@arg_start_lvls, $arg) if $start; push(@arg_stop_lvls, $arg) if $stop; } continue { $argi++; } } if ($#arg_start_lvls != $#lsb_start_lvls or join("\0", sort @arg_start_lvls) ne join("\0", sort @lsb_start_lvls)) { $arg_str = @arg_start_lvls ? "@arg_start_lvls" : "none"; $lsb_str = @lsb_start_lvls ? "@lsb_start_lvls" : "none"; warning "$default_msg start runlevel arguments ($arg_str) do not match", "$name Default-Start values ($lsb_str)"; } if ($#arg_stop_lvls != $#lsb_stop_lvls or join("\0", sort @arg_stop_lvls) ne join("\0", sort @lsb_stop_lvls)) { $arg_str = @arg_stop_lvls ? "@arg_stop_lvls" : "none"; $lsb_str = @lsb_stop_lvls ? "@lsb_stop_lvls" : "none"; warning "$default_msg stop runlevel arguments ($arg_str) do not match", "$name Default-Stop values ($lsb_str)"; } } sub insserv_toggle { my ($dryrun, $act, $name) = (shift, shift, shift); my (@toggle_lvls, $start_lvls, $stop_lvls, @symlinks); my $lsb_header = lsb_header_for_script($name); # Extra arguments to disable|enable action are runlevels. If none # given parse LSB info for Default-Start value. if ($#_ >= 0) { @toggle_lvls = @_; } else { ($start_lvls, $stop_lvls) = parse_def_start_stop($lsb_header); @toggle_lvls = @$start_lvls; if ($#toggle_lvls < 0) { error("$name Default-Start contains no runlevels, aborting."); } } # Find symlinks in rc.d directories. Refuse to modify links in runlevels # not used for normal system start sequence. for my $lvl (@toggle_lvls) { if ($lvl !~ /^[S2345]$/) { warning("$act action will have no effect on runlevel $lvl"); next; } push(@symlinks, $_) for glob("/etc/rc$lvl.d/[SK][0-9][0-9]$name"); } if (!@symlinks) { error("no runlevel symlinks to modify, aborting!"); } # Toggle S/K bit of script symlink. for my $cur_lnk (@symlinks) { my $sk; my @new_lnk = split(//, $cur_lnk); if ("disable" eq $act) { $sk = rindex($cur_lnk, '/S') + 1; next if $sk < 1; $new_lnk[$sk] = 'K'; } else { $sk = rindex($cur_lnk, '/K') + 1; next if $sk < 1; $new_lnk[$sk] = 'S'; } if ($dryrun) { printf("rename(%s, %s)\n", $cur_lnk, join('', @new_lnk)); next; } rename($cur_lnk, join('', @new_lnk)) or error($!); } } debian/src/sysv-rc/man8/0000775000000000000000000000000012310205744012226 5ustar debian/src/sysv-rc/man8/update-rc.d.80000664000000000000000000002314212310205332014420 0ustar .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson, Miquel van Smoorenburg .TH "UPDATE\-RC.D" "8" "14 November 2005" "Debian Project" "sysv-rc" .SH "NAME" update\-rc.d \- install and remove System\-V style init script links .SH "SYNOPSIS" .B update\-rc.d .RI [ \-n ] .RI [ \-f ] .IB name " remove" .HP .B update\-rc.d .RI [ \-n ] .IB name " defaults" .RI [ NN " | " SS " " KK ] .HP .B update\-rc.d .RI [ \-n ] .I name .BR start | stop .IR "NN runlevel" " [" runlevel "]..." .B . .BR start | stop .IR "NN runlevel" " [" runlevel "]..." .BR . " ..." .HP .B update\-rc.d .RI [ \-n ] .IB name " disable|enable " .RI [ " S|2|3|4|5 " ] .SH "DESCRIPTION" .B update\-rc.d updates the System V style init script links .BI /etc/rc runlevel .d/ NNname whose target is the script .BI /etc/init.d/ name \fR. These links are run by .B init when it changes runlevels; they are generally used to start and stop system services such as daemons. .I runlevel is one of the runlevels supported by .BR init ", namely, " 0123456789S ", and " .I NN is the two\-digit sequence number that determines where in the sequence .B init will run the scripts. This manpage documents only the usage and behaviour of .BR update\-rc.d . For a discussion of the System V style init script arrangements please see .BR init (8) and the .IR "Debian Policy Manual" . .SH "INSTALLING INIT SCRIPT LINKS" update\-rc.d has two modes of operation for installing scripts into the boot sequence. A legacy mode where command line arguments are used to decide the sequence and runlevel configuration, and the default mode where dependency and runlevel information in the init.d script LSB comment header is used instead. Such header is required to be present in init.d scripts. See the insserv(8) manual page for details about the LSB header format. The boot sequencing method is decided during installation or upgrades. During upgrades, if there are no loops in the dependencies declared by LSB headers of all installed init.d scripts and no obsolete init.d scripts, the boot system is converted to dependency based boot sequencing. The conversion to dependency based boot sequencing is one\-way. The machines using the legacy mode will have a file /etc/init.d/.legacy\-bootordering . Packages installing init.d scripts should make sure both methods work, for compatiblity with systems where the migration have not been done yet. For legacy mode, the following section documents the old behaviour. When run with either the .BR defaults ", " start ", or " stop options, .B update\-rc.d makes links .BI /etc/rc runlevel .d/[SK] NNname that point to the script .BR /etc/init.d/ \fIname\fR. If any files .BI /etc/rc runlevel .d/[SK]?? name already exist then .B update\-rc.d does nothing. The program was written this way so that it will never change an existing configuration, which may have been customized by the system administrator. The program will only install links if none are present, i.e., if it appears that the service has never been installed before. .P A common system administration error is to delete the links with the thought that this will "disable" the service, i.e., that this will prevent the service from being started. However, if all links have been deleted then the next time the package is upgraded, the package's .I postinst script will run .B update\-rc.d again and this will reinstall links at their factory default locations. The correct way to disable services is to configure the service as stopped in all runlevels in which it is started by default. In the System V init system this means renaming the service's symbolic links from .B S to .BR K . .P If .B defaults is used then .B update\-rc.d will make links to start the service in runlevels .B 2345 and to stop the service in runlevels .BR 016 . By default all the links will have sequence number 20, but this should be overridden if there are dependencies. For example if daemon B depends on A, then A must be started before B and B must be killed before A. You accomplish this by supplying two NN arguments. In general, core daemons should start early and be killed late, whilst applications can start late and be killed early. See EXAMPLES below. .P The first NN argument supplies the start sequence number and the second NN argument supplies the kill sequence number. Kill scripts are called first, passing a stop argument. Then start scripts are called passing a start argument. In either case, calls happen in ascending sequence number order. .P Supplying a single NN argument will use the same number for both start and kill links. This is supported for backward compatibility but is discouraged, as it may lead to inconsistent settings. As a rule of thumb, if you increase the start sequence number you should also decrease the stop sequence number, and vice\-versa. .P As a rule of thumb, the sequence number of the stop link should be 100 minus the sequence number of the start link; this causes services to be stopped in the opposite order to that in which they are started. Obviously, therefore, the default stop sequence number should be 80. Defaulting to 20, as .B update\-rc.d does, is an old bug that cannot be fixed because of the risk of breaking things. .P Instead of .B defaults one can give one or more sets of arguments specifying particular runlevels in which to start or stop the service. Each of these sets of arguments starts with the keyword .BR start " or " stop and a sequence number .IR NN , followed by one or more runlevel numbers. The set is terminated by a solitary full stop character. When explicit specification, rather than .BR defaults , is used there will usually be one .B start and one .B stop set. If different sequence codes are required in different runlevels then several .B start sets or several .B stop sets may be specified. If this is done and the same runlevel is named in multiple sets then only the last one counts. Therefore it is not possible to create multiple .B start or multiple .B stop links for a service in a single runlevel directory. .P The script .BI /etc/init.d/ name must exist before .B update\-rc.d is run to create the links. .SH "REMOVING SCRIPTS" When invoked with the .I remove option, update\-rc.d removes any links in the .BI /etc/rc runlevel .d directories to the script .BI /etc/init.d/ name\fR. The script must have been deleted already. If the script is still present then .B update\-rc.d aborts with an error message. .P .B update\-rc.d is usually called from a package's post\-removal script when that script is given the .B purge argument. Any files in the .BI /etc/rc runlevel .d directories that are not symbolic links to the script .BI /etc/init.d/ name will be left untouched. .SH "DISABLING INIT SCRIPT START LINKS" When run with the .BR disable " [ " S|2|3|4|5 " ] " options, .B update\-rc.d modifies existing runlevel links for the script .BR /etc/init.d/ \fIname\fR by renaming start links to stop links with a sequence number equal to the difference of 100 minus the original sequence number. .P When run with the .BR enable " [ " S|2|3|4|5 " ] " options, .B update\-rc.d modifies existing runlevel links for the script .BR /etc/init.d/ \fIname\fR by renaming stop links to start links with a sequence number equal to the positive difference of current sequence number minus 100, thus returning to the original sequence number that the script had been installed with before disabling it. .P Both of these options only operate on start runlevel links of S, 2, 3, 4 or 5. If no start runlevel is specified after the disable or enable keywords, the script will attempt to modify links in all start runlevels. .SH "OPTIONS" .TP .I \-n Don't do anything, just show what we would do. .TP .I \-f Force removal of symlinks even if .BI /etc/init.d/ name still exists. .SH "EXAMPLES" Insert links using the defaults: .nf .B " update\-rc.d foobar defaults" The equivalent dependency header would have start and stop dependencies on $remote_fs and $syslog, and start in runlevels 2\-5 and stop in runlevels 0, 1 and 6. .fi Equivalent command using explicit argument sets: .nf .B " update\-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 ." .fi More typical command using explicit argument sets: .nf .B " update\-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 ." .fi Insert links at default runlevels when B requires A .nf .B " update\-rc.d script_for_A defaults 80 20" .B " update\-rc.d script_for_B defaults 90 10" .fi Insert a link to a service that (presumably) will not be needed by any other daemon .nf .B " update\-rc.d top_level_app defaults 98 02" .fi Insert links for a script that requires services that start/stop at sequence number 20 .nf .B " update\-rc.d script_depends_on_svc20 defaults 21 19" .fi Remove all links for a script (assuming foobar has been deleted already): .nf .B " update\-rc.d foobar remove" .fi Example of disabling a service: .nf .B " update\-rc.d \-f foobar remove" .B " update\-rc.d foobar stop 20 2 3 4 5 ." .fi Example of a command for installing a system initialization\-and\-shutdown script: .nf .B " update\-rc.d foobar start 45 S . stop 31 0 6 ." .fi Example of a command for disabling a system initialization\-and\-shutdown script: .nf .B " update\-rc.d \-f foobar remove" .B " update\-rc.d foobar stop 45 S ." .fi .SH "BUGS" See http://bugs.debian.org/sysv\-rc. .SH "FILES" .TP .B /etc/init.d/ The directory containing the actual init scripts. .TP .B /etc/rc?.d/ The directories containing the links used by .BR init and managed by .BR update\-rc.d . .TP .B /etc/init.d/skeleton Model for use by writers of .B init.d scripts. .SH "SEE ALSO" .IR "Debian Policy Manual" , .br .BR /etc/init.d/skeleton , .br .BR insserv (8), .BR sysv\-rc\-conf (8), .BR bum (8), .BR init (8). debian/src/sysv-rc/man8/ja/0000775000000000000000000000000012310205744012620 5ustar debian/src/sysv-rc/man8/ja/update-rc.d.80000664000000000000000000001372312310205332015016 0ustar .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson .\" Original manpage cvs revision 1.4 .TH UPDATE\-RC.D 8 "2 March 1998" "Debian Project" "dpkg utilities" .SH 名前 update\-rc.d \- System-V スタイルの init スクリプト用のリンクをインストール、削除する .SH 書式 .B update\-rc.d .RI [ -n ] .RI [ -f ] .IB name " remove" .HP .B update-rc.d .RI [ -n ] .RI [ -f ] .IB name " defaults" .RI [ NN " | " NN-start " " NN-stop ] .HP .B update-rc.d .RI [ -n ] .RI [ -f ] .I name .BR start | stop .IR "NN runlevel runlevel " ... .B . .BR start | stop .IR "NN runlevel runlevel " ... .BR . " ..." .SH 説明 .B update-rc.d は、 スクリプト .BI /etc/init.d/ name \fR へのリンクである .BI /etc/rc runlevel .d/ NNname を自動的に作成する。 .BI /etc/rc runlevel .d/ NNname は System V スタイルの init スクリプト用のリンクであり、 ランレベルを変更する際に .B init によって実行され、一般にデーモンのようなシステムサービスの起動、 停止に使用される。 .I runlevel には .BR init がサポートするランレベル数 .BR 0123456789S のうちのひとつを指定する。 .I NN は 2 桁の数字であり、 .B init がスクリプトを実行する順序を決めるために使用する。 このマニュアルは .BR update-rc.d の使用法とその動作についてのみ言及する。 System V スタイルの init スクリプトの配置についての議論には、 .BR init (8) と .IR "dpkg programmers' manual" を参照すること。 .SH INIT スクリプト用のリンクをインストールする .BR defaults ", " start ", " stop オプションのいずれかを使って実行した場合、 update-rc.d は .BI /etc/rc runlevel .d/[SK] NNname をスクリプト .BI /etc/init.d/ name\fR にリンクする。 ファイル .BI /etc/rc runlevel .d/[SK]?? name がすでに存在する場合には、 .B update-rc.d は何もしない。これは、システム管理者がひとつでもリンクを残していた 場合に、その設定を上書きされることがなく、別の場所に移動させること ができるようにするためである。 .B defaults が使用された場合、 .B update-rc.d はランレベル .B 2345 にサービスの起動用リンクを、ランレベル .BR 016 にサービスの停止用リンクを作成する。デフォルトでは、リンクはすべて のシーケンスコード 20 を持つが、引数 .I NN をひとつ、又はふたつ与えることで変更することができる。引数がひとつ の場合、起動用リンクと停止用リンクの両方のシーケンスコードを変更す る。一方、引数がふたつ与えられた場合、ひとつめが起動用リンクのシー ケンスコードを、ふたつめが停止用リンクのシーケンスコードを変更す る。 .B defaults を使用する代わりに、引数セットを与えることで サービスを起動、停止するランレベルを明示的に指定することができる。 引数セットはそれぞれ引数 .BR start " または " stop で始まり、これにより起動用リンクまたは停止用リンクのどちらを作成す るか指定する。次に、引数セットのリンクすべてに対するシーケンスコー ド番号 .IR NN を指定し、更にひとつ以上のランレベル数をそれぞれひとつの引数として 与える。引数セットは引数 .B . (ピリオド)により終了する。 .BR defaults を使用せず明示的に指定した場合、通常 .B start セットと .B stop セットがひとつずつ存在する。 ランレベルごとに異なるシーケンスコードが必要な場合は、 .B start セットや .B stop セットを複数指定する。 .B update-rc.d がリンクを作成する前に、 スクリプト .BI /etc/init.d/ name が存在していなくてはならない。 .SH リンク削除用のスクリプト .I remove オプションを引数に与えると、 .BI /etc/rc runlevel .d ディレクトリにあるスクリプト .BI /etc/init.d/ name\fR へのリンクをすべて削除する。 スクリプトはあらかじめ削除されていなくてはならない。 .B update-rc.d はこれをチェックする。通常、 .B update-rc.d はパッケージの postrm スクリプトから呼び出される。 これが実行されるのは、postrm スクリプトの第1引数として .BR purge が与えられた場合であり、これはユーザがパッケージの設定を削除 することを要求していることを表す。 .BI /etc/rc runlevel .d ディレクトリにあるがスクリプト .BI /etc/init.d/ name にシンボリックリンクされていないファイルは削除されずに残される。 .SH オプション .TP .I -n 実際の動作を表示するだけで、何もしない。 .TP .I -f .BI /etc/init.d/ name が存在しいても、強制的にシンボリックリンクを削除する。 .SH 使用例 defaults を使用したリンクの作成 .nf .B " update-rc.d foobar defaults" .fi 引数セットを明示した同等のコマンド .nf .B " update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 ." .fi .SH バグ システム管理者のために少なくとも .B defaults でどのランレベルを start または stop にするかを指定できる方法が必要である。 また、可能ならば .B defaults 以外のオプションでも管理者の指定を優先する方法が必要。 .SH ファイル .TP .B /etc/init.d/ init スクリプトが実際に置いてあるディレクトリ .TP .B /etc/rc?.d/ .BR update-rc.d が取り扱うリンクを含んだディレクトリ。 .BR init により使用される。 .TP .B /etc/init.d/skeleton .B init.d スクリプトを書くために使用する雛型 .SH 関連項目 .IR "dpkg programmers manual" , .br .BR /etc/init.d/skeleton , .br .BR init (8). .SH 翻訳者 鍋谷 栄展 debian/src/sysv-rc/man8/es/0000775000000000000000000000000012310205744012635 5ustar debian/src/sysv-rc/man8/es/update-rc.d.80000664000000000000000000001351612310205332015033 0ustar .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson .\" (c) 2003 Software in the Public Interest .\" Traductor: Rubén Porras (nahoo@inicia.es) .\" Revisado por : Javier Fernández-Sanguino Peńa (jfs@debian.org) .\" Esteban Manchado Velázquez (zoso@demiurgo.org) .\" Está basada en la página de manual original: .\" versión 1.2 del CVS de /cvs/debian-doc/manpages/english/sysvinit/update-rc.d.8 .TH UPDATE\-RC.D 8 "23 de Diciembre de 2003" "Proyecto Debian" "sysv-rc" .SH NOMBRE update\-rc.d \- crea y borra los enlaces a los scripts init de tipo System V .SH SINOPSIS .B update\-rc.d .RI [ -n ] .RI [ -f ] .IB nombre " remove" .HP .B update-rc.d .RI [ -n ] .IB nombre " defaults" .RI [ NN " | " NN-start " " NN-stop ] .HP .B update-rc.d .RI [ -n ] .I nombre .BR start | stop .IR "NN nivel_de_ejecución nivel_de_ejecución " ... .B . .BR start | stop .IR "NN nivel_de_ejecución nivel_de_ejecución " ... .BR . " ..." .SH DESCRIPCI\['O]N .B update-rc.d actualiza automáticamente los enlaces a los scripts de init tipo System V que se encuentran en .BI /etc/rc[nivel_de_ejecución].d/NNnombre y que apuntan a los script .BI /etc/init.d/nombre\fR. Estos son ejecutados por .B init cuando se cambia de nivel de ejecución y se usan generalmente para arrancar y parar servicios del sistema (por ejemplo, demonios). .I nivel_de_ejecución es uno de los soportados por .BR init ", " 0123456789S , y .I NN es el código de secuencia de dos dígitos usado por .B init para decidir en que orden se ejecutan los scripts. Esta página del manual documenta sólo el modo de uso y comportamiento de .BR update-rc.d . Para una explicación más detallada sobre la administración de los scripts de init estilo System V, por favor, lea .BR init (8) y el .IR "Manual de normativa de Debian" . .SH CREACI\['O]N DE ENLACES A LOS SCRIPTS DE INIT Cuando se ejecuta con una o varias de las opciones .BR defaults ", " start ", o " stop , .B update-rc.d crea los enlaces .BI /etc/rc[nivel_de_ejecución].d/[SK]NNnombre apuntando al script .BI /etc/init.d/nombre\fR. Si ya existe algún fichero con el nombre .BI /etc/rc[nivel_de_ejecución].d/[SK]?? entonces .B update-rc.d no hace nada. Esto es así para que el administrador del sistema pueda reorganizar los enlaces ( teniendo en cuenta que debe dejar al menos un enlace si los quiere eliminar ) sin que se sobreescriba su configuración. Si se usa la opción .B defaults entonces .B update-rc.d creará enlaces para arrancar los servicios en los niveles de ejecución .B 2345 y parar los servicios en los niveles de ejecución .BR 016 . Por omisión todos los enlaces tendrán el código de secuencia 20, pero esto puede cambiarse especificando uno o dos argumentos .I NN. Un argumento cambia el valor por omisión del código de secuencia tanto para los enlaces de arranque como para los de parada, y si se proporcionan dos argumentos el primero cambia el código de los enlaces de arranque y el segundo el de los enlaces de parada. En vez de usar .B defaults , los niveles de ejecución en los que se arranca o se para un servicio pueden ser especificados explícitamente mediante un conjunto de argumentos: Cada uno de estos conjuntos empieza con un argumento .BR start " o " stop para especificar cuándo se van a crear enlaces para arrancar o parar el servicio. Luego les sigue .IR NN , el código de secuencia para todos los enlaces del conjunto, y uno o más números de nivel de ejecución, cada uno como un solo argumento. El conjunto se termina con el argumento .B '.' (un punto). Cuando se especifican explícitamente los niveles de ejecución, normalmente habrá un conjunto .B start y otro .B stop . Si son necesarios diferentes códigos de secuencia para los distintos niveles de ejecución, entonces es necesario especificar varios conjuntos .B start y .B stop . El script .BI /etc/init.d/nombre debe existir antes de ejecutar .B update-rc.d para crear los enlaces. .SH BORRADO DE LOS SCRIPTS Cuando se ejecuta con la opción .I remove , update-rc.d borra todos los enlaces dentro del directorio .BI /etc/rc[nivel_de_ejecución].d que apunten al script .BI /etc/init.d/nombre\fR . El script debe haber sido borrado previamente ( .B update-rc.d lo comprueba ). Normalmente los scripts post-eliminación de los paquetes ejecutan .B update-rc.d cuando detectan que su primer argumento es .BR purge , dado que esto indica que el administrador ha pedido explícitamente que se borren los scripts de configuración proporcionados por el paquete. Cualquier fichero en los directorios .BI /etc/rc[nivel_de_ejecución].d que no sea un enlace simbólico apuntando a un script en .BI /etc/init.d/nombre se mantendrá intacto. .SH OPCIONES .TP .I -n No hacer nada, solamente indicar que hubiera hecho. .TP .I -f Borrar los enlaces incluso si todavía existe el script .BI /etc/init.d/nombre . .SH EJEMPLOS Crear los enlaces usando los parámetros por omisión: .nf .B update-rc.d foobar defaults .fi Comando equivalente usando explícitamente un conjunto de argumentos: .nf .B update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 . .fi .SH FALLOS No existe aún una forma para que el administrador pueda especificar al menos los niveles de ejecución que .B update-rc.d usará por defecto para arrancar y parar los servicios cuando se utilice la opción .B defaults ni la posibilidad de cambiar otros comportamientos. .SH FICHEROS .TP .B /etc/init.d/ El directorio que contienen los scripts de arranque y parada. .TP .B /etc/rc?.d/ Los directorios que contienen los enlaces usados por .BR init y administrados por .BR update-rc.d . .TP .B /etc/init.d/skeleton Un modelo a usar por los que escriban scripts de .B init.d . .SH VER ADEM\['A]S .IR "Manual de normativa de Debian" , modelo a usar por los que escriban scripts de .B init.d . .BR /etc/init.d/skeleton , .br .BR init (8) . .SH TRADUCTOR Traducción de Rubén Porras Campo debian/src/sysv-rc/man8/invoke-rc.d.80000664000000000000000000001341712310205332014435 0ustar .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Henrique Holschuh .TH INVOKE\-RC.D 8 "1 March 2001" "Debian Project" "Debian/GNU Linux" .SH NAME invoke\-rc.d \- executes System-V style init script actions .SH SYNOPSIS .B invoke\-rc.d .RI [ --quiet ] .RI [ --force ] .RI [ --try-anyway ] .RI [ --disclose-deny ] .RI [ --query ] .RI [ --no-fallback ] .I name .I action .RI [ init\ script\ parameters... ] .HP .B invoke\-rc.d .RI [ --help ] .HP .SH DESCRIPTION .B invoke\-rc.d is a generic interface to execute System V style init script .BI /etc/init.d/ name \fR actions, obeying runlevel constraints as well as any local policies set by the system administrator. All access to the init scripts by Debian packages' maintainer scripts should be done through .B invoke\-rc.d\fR. This manpage documents only the usage and behavior of .BR invoke\-rc.d . For a discussion of the System V style init script arrangements please see .BR init (8). More information on invoke-rc.d can be found in the section on runlevels and init.d scripts of the .IR "Debian Policy Manual" . .SH INIT SCRIPT ACTIONS The standard actions are: .IR start , .IR stop , .IR force\-stop , .IR restart , .IR reload , .IR force\-reload , and .IR status . Other actions are accepted, but they can cause problems to .B policy\-rc.d (see the .B INIT SCRIPT POLICY section), so warnings are generated if the policy layer is active. Please note that not all init scripts will implement all the actions listed above, and that the policy layer may override an action to another action(s), or even deny it. Any extra parameters will be passed to the init script(s) being executed. If an action must be carried out regardless of any local policies, use the .IR --force switch. .SH OPTIONS .TP .I --help Display usage help. .TP .I --quiet Quiet mode, no error messages are generated. .TP .I --force Tries to run the init script regardless of policy and init script subsystem errors. .B Use of this option in Debian maintainer scripts is severely discouraged. .TP .I --try-anyway Tries to run the init script if a non-fatal error is detected. .TP .I --disclose-deny Return status code 101 instead of status code 0 if the init script action is denied by the policy layer. .TP .I --query Returns one of the status codes 100-106. Does not run the init script, and implies .IR --disclose-deny and .IR --no-fallback . .TP .I --no-fallback Ignores any fallback action requests by the policy layer. .B Warning: this is usually a very bad idea for any actions other than .RI start . .SH STATUS CODES Should an init script be executed, .B invoke\-rc.d always returns the status code returned by the init script. Init scripts should not return status codes in the 100+ range (which is reserved in Debian and by the LSB). The status codes returned by invoke\-rc.d proper are: .TP 0 .IR Success . Either the init script was run and returned exit status 0 (note that a fallback action may have been run instead of the one given in the command line), or it was not run because of runlevel/local policy constrains and .B --disclose-deny is not in effect. .TP 1 - 99 Reserved for init.d script, usually indicates a failure. .TP 100 .B Init script ID .BI ( name ) .BR unknown . This means the init script was not registered successfully through .B update\-rc.d or that the init script does not exist. .TP 101 .B Action not allowed\fR. The requested action will not be performed because of runlevel or local policy constraints. .TP 102 .B Subsystem error\fR. Init script (or policy layer) subsystem malfunction. Also, forced init script execution due to .I --try-anyway or .I --force failed\fR. .TP 103 .I Syntax error\fR. .TP 104 .I Action allowed\fR. Init script would be run, but .B --query is in effect. .TP 105 .I Behavior uncertain\fR. It cannot be determined if action should be carried out or not, and .B --query is in effect. .TP 106 .I Fallback action requested\fR. The policy layer denied the requested action, and supplied an allowed fallback action to be used instead. .SH INIT SCRIPT POLICY .B invoke\-rc.d introduces the concept of a policy layer which is used to verify if an init script should be run or not, or if something else should be done instead. This layer has various uses, the most immediate ones being avoiding that package upgrades start daemons out-of-runlevel, and that a package starts or stops daemons while inside a chroot jail. The policy layer has the following abilities: deny or approve the execution of an action; request that another action (called a .IR fallback ) is to be taken, instead of the action requested in invoke\-rc.d's command line; or request multiple actions to be tried in order, until one of them succeeds (a multiple .IR fallback ). .B invoke\-rc.d itself only pays attention to the current runlevel; it will block any attempts to start a service in a runlevel in which the service is disabled. Other policies are implemented with the use of the .B policy\-rc.d helper, and are only available if .B /usr/sbin/policy\-rc.d is installed in the system. .SH FILES .TP .BR /etc/init.d/* System V init scripts. .TP .BR /usr/sbin/policy\-rc.d Init script policy layer helper (not required). .TP .BR /etc/runlevel.conf file-rc runlevel configuration (if the file-rc package is being used). .TP .BR /etc/rc?.d/* System V runlevel configuration (if the sysv-rc package is being used). .SH NOTES .B invoke\-rc.d special cases the .I status action, and returns exit status 4 instead of exit status 0 when it is denied. .SH BUGS Please report any bugs using the Debian bug tracking system, http://bugs.debian.org/, packages sysv\-rc or file\-rc (depending on which version of invoke\-rc.d you are using). .SH SEE ALSO .IR "Debian Policy manual" , .br .BR /etc/init.d/skeleton , .br .BR update\-rc.d (8), .br .BR init (8), .br .BR /usr/share/doc/sysv-rc/README.policy-rc.d debian/src/sysv-rc/man8/fr.UTF-8/0000775000000000000000000000000012310205744013437 5ustar debian/src/sysv-rc/man8/fr.UTF-8/update-rc.d.80000664000000000000000000001254112310205332015632 0ustar .\" Hey, Emacs! This is an -*- nroff -*- source file. .\" Authors: Ian Jackson .\" Traduction de la révision CVS 1.4 .TH UPDATE\-RC.D 8 "23 décembre 2003" "Projet Debian " "Utilitaires de dpkg" .SH NOM update\-rc.d \- Pour installer ou supprimer les liens vers les scripts d'initialisation de type System-V .SH SYNOPSIS .B update\-rc.d .RI [ -n ] .RI [ -f ] .IB nom " remove" .HP .B update-rc.d .RI [ -n ] .IB nom " defaults" .RI [ NN " | " NN-start " " NN-stop ] .HP .B update-rc.d .RI [ -n ] .I nom .BR start | stop .IR "NN runlevel runlevel " ... .B . .BR start | stop .IR "NN runlevel runlevel " ... .BR . " ..." .SH DESCRIPTION .B update-rc.d met à jour automatiquement les liens vers les scripts d'initialisation de type System-V dont le nom est .BI /etc/rc runlevel .d/ NNnom vers les scripts .BI /etc/init.d/ name \fR. Ils sont lancés par .B init quand on change de niveau de fonctionnement et ils sont généralement utilisés pour démarrer ou arrêter des services tels que les démons. .I runlevel est l'un des niveaux de fonctionnement autorisés par .BR init ", " 0123456789S , et .I NN est le code à deux chiffres utilisé par .B init pour décider de l'ordre d'exécution des scripts. Cette page de manuel documente seulement le comportement de .BR update-rc.d et son utilisation. Pour une discussion sur la préparation des scripts pour l'initialisation de type System-V voyez .BR init (8) et la .IR "charte Debian" . .SH L'INSTALLATION DES LIENS DES SCRIPTS D'INITIALISATION Quand update-rc.d est lancé avec les options .BR defaults ", " start ", ou " stop, il crée les liens .BI /etc/rc runlevel .d/[SK] NNname qui pointent vers le script .BI /etc/init.d/ name\fR. Quand des fichiers .BI /etc/rc runlevel .d/[SK]?? name existent déjà, .B update-rc.d ne fait rien. C'est ainsi pour que l'administrateur système puisse réarranger les liens -- à condition qu'il en reste au moins un -- sans que sa configuration ne soit réécrite. Quand l'option .B defaults est utilisée, .B update-rc.d crée des liens pour démarrer un service dans les niveaux de fonctionnement .B 2345 et des liens pour arrêter un service dans les niveaux .BR 016 . Par défaut, tous les liens ont un code égal à 20, mais on peut le changer en donnant un ou deux arguments .I NN ; quand un seul argument est donné, il remplace le code à la fois pour les liens de démarrage (start) et pour les liens d'arrêt (stop) ; quand deux arguments sont donnés, le premier remplace le code pour les liens de démarrage (start) et le second remplace le code pour les liens d'arrêt (stop). Au lieu de .B defaults, on peut indiquer les niveaux de fonctionnement dans lesquels lancer ou arrêter les services en utilisant une suite explicite d'ensembles d'arguments : Chacun de ces ensembles commence par un argument .BR start " ou " stop de manière à indiquer s'il faut créer des liens de démarrage ou d'arrêt. Ensuite vient le nombre du code .IR NN , pour tous les liens de cet ensemble, puis un ou plusieurs nombres indiquant le niveau de fonctionnement, un seul argument pour chacun. l'ensemble se termine par un argument .B . (un simple point). Quand, plutôt que .BR defaults, on utilise une détermination explicite, il faut habituellement un ensemble de démarrage .B start, et un ensemble d'arrêt .B stop. Quand on veut différents codes dans les différents niveaux de fonctionnement, on peut spécifier différents ensembles de démarrage .B start ou différents ensembles d'arrêt .B stop. Le script .BI /etc/init.d/ name doit exister avant de lancer .B update-rc.d pour créer les liens. .SH LA SUPPRESSION DES SCRIPTS Quand on appelle update-rc.d avec l'option .I remove les liens dans les répertoires .BI /etc/rc runlevel .d qui pointent vers le script .BI /etc/init.d/ name\fR. sont supprimés. Ce script doit déjà avoir été supprimé -- .B update-rc.d vérifie cela. On appelle habituellement .B update-rc.d dans le script « post-removal » d'un paquet et quand ce script a détecté que son premier argument était .BR purge ; Cela indique que l'utilisateur a demandé le suppression de la configuration de ce paquet. Tout fichier dans les répertoires .BI /etc/rc runlevel .d qui n'est pas un lien symbolique vers le script .BI /etc/init.d/ name est préservé. .SH OPTIONS .TP .I -n Ne fait rien, montre seulement ce qui pourrait être fait. .TP .I -f Force la suppression des liens même si .BI /etc/init.d/ name existe encore. .SH EXEMPLES Insère des liens avec l'option « defaults » : .nf .B " update-rc.d foobar defaults" .fi La męme commande, avec une détermination explicite utilisant les ensembles d'arguments : .nf .B " update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 ." .fi .SH BOGUES Il devrait y avoir un moyen pour l'administrateur système d'indiquer à l'option .B defaults au moins les niveaux de fonctionnement par défaut à utiliser pour le démarrage et l'arrêt des services ; l'administrateur systàme devrait sans doute aussi pouvoir changer d'autres choses. .SH FICHIERS .TP .B /etc/init.d/ Le répertoire qui contient en fait les scripts d'initialisation. .TP .B /etc/rc?.d/ Le répertoire qui contient les liens utilisés par .BR init et gérés par .BR update-rc.d. .TP .B /etc/init.d/skeleton Modàle pour l'écriture des scripts de .B init.d. .SH VOIR AUSSI .IR "la charte Debian" , .br .BR /etc/init.d/skeleton , .br .BR init (8). .SH TRADUCTION Philippe Batailler. Dec 2000. debian/src/sysv-rc/rc2-5.d-README0000664000000000000000000000124512310205332013306 0ustar The scripts in this directory are executed each time the system enters this runlevel. The scripts are all symbolic links whose targets are located in /etc/init.d/ . To disable a service in this runlevel, rename its script in this directory so that the new name begins with a 'K' and a two-digit number, and run 'update-rc.d script defaults' to reorder the scripts according to dependencies. A warning about the current runlevels being enabled not matching the LSB header in the init.d script will be printed. To re-enable the service, rename the script back to its original name beginning with 'S' and run update-rc.d again. For a more information see /etc/init.d/README. debian/src/sysv-rc/doc/0000775000000000000000000000000012310205744012130 5ustar debian/src/sysv-rc/doc/README.Debian0000664000000000000000000000430212310205332014161 0ustar README for sysv-rc ------------------ Policy requires that maintainer scripts use update-rc.d to register and deregister initscripts. An unfortunate result of this policy, combined with shortcomings in current update-rc.d implementations, is that there is no way for maintainer scripts to change the sequence number of an initscript that has already been registered if and only if its sequence number has not been changed by the administrator. update-rc.d *never* changes the sequence number of an already registered initscript, even if its sequence number has not been changed by the administrator. There are no plans to fix this problem. Therefore, if it is necessary to change the sequence number of an initscript in order to fix a bug then the maintainer script should go ahead and do: update-rc.d -f remove before the new update-rc.d call, even though this overrides out any administrator changes. Migrating to dependency-based boot sequencing --------------------------------------------- Migrating to the dependency-based system of boot sequencing (using LSB headers) is non-reversible, and renders obsolete the legacy system of static sequence numbers. Please note that any boot sequence changes made locally will be lost in the migration, and must be reimplemented in terms of dependencies. However, the new system is recommended for several reasons. * initscripts can be made to run more efficiently via parallelized execution strategies (see $POINTER_TO_ENTICING_BOOTCHARTS); * boot and shutdown ordering is calculated on the basis of the dependency information declared within each init.d script, ensuring that the sequence is optimized for the set of packages installed; * problems introduced by new or upgraded packages can be detected and averted - the boot sequence is only modified if it is safe to do so. It can also bring benefits for Debian package development, and for admins maintaining local software, since it eliminates the difficulty of fitting an initscript into the boot sequence between existing services with adjacent sequence numbers. It is also a step in the direction of boot systems better suited to the asynchronous nature of the Linux-2.6 kernel boot process. debian/src/sysv-rc/doc/README.runlevels0000664000000000000000000001042512310205332015021 0ustar Order of scripts run in /etc/rc?.d ================================== 0. Overview. All scripts executed by the init system are located in /etc/init.d. The directories /etc/rc?.d (? = S, 0 .. 6) contain relative links to those scripts. These links are named S<2-digit-number> or K<2-digit-number>. If a scripts has the ".sh" suffix it is a bourne shell script and MAY be handled in an optimized manner. The behaviour of executing the script in an optimized way will not differ in any way from it being forked and executed in the regular way. The following runlevels are defined: N System bootup (NONE). S Single user mode (not to be switched to directly) 0 halt 1 single user mode 2 .. 5 multi user mode 6 reboot 1. Boot. When the systems boots, the /etc/init.d/rcS script is executed. It in turn executes all the S* scripts in /etc/rcS.d in alphabetical (and thus numerical) order. The first argument passed to the executed scripts is "start". The runlevel at this point is "N" (none). Only things that need to be run once to get the system in a consistent state are to be run. The rcS.d directory is NOT meant to replace rc.local. One should not start daemons in this runlevel unless absolutely necessary. Eg, NFS might need the portmapper, so it is OK to start it early in the bootprocess. But this is not the time to start the squid proxy server. 2. Going multiuser. After the rcS.d scripts have been executed, init switches to the default runlevel as specified in /etc/inittab, usually "2". Init then executes the /etc/init.d/rc script which takes care of starting the services in /etc/rc2.d. Because the previous runlevel is "N" (none) the /etc/rc2.d/KXXxxxx scripts will NOT be executed - there is nothing to stop yet, the system is busy coming up. If for example there is a service that wants to run in runlevel 4 and ONLY in that level, it will place a KXXxxxx script in /etc/rc{2,3,5}.d to stop the service when switching out of runlevel 4. We do not need to run that script at this point. The /etc.rc2.d/SXXxxxx scripts will be executed in alphabetical order, with the first argument set to "start". 3. Switching runlevels. When one switches from (for example) runlevel 2 to runlevel 3, /etc/init.d/rc will first execute in alphabetical order all K scripts for runlevel 3 (/etc/rc3.d/KXXxxxx) with as first argument "stop" and then all S scripts for runlevel 3 (/etc/rc3.d/SXXxxxx) with as first argument "start". As an optimization, a check is made for each "service" to see if it was already running in the previous runlevel. If it was, and there is no K (stop) script present for it in the new runlevel, there is no need to start it a second time so that will not be done. On the other hand, if there was a K script present, it is assumed the service was stopped on purpose first and so needs to be restarted. We MIGHT make the same optimization for stop scripts as well- if no S script was present in the previous runlevel, we can assume that service was not running and we don't need to stop it either. In that case we can remove the "coming from level N" special case mentioned above in 2). But right now that has not been implemented. 4. Single user mode. Switching to single user mode is done by switching to runlevel 1. That will cause all services to be stopped (assuming they all have a K script in /etc/rc1.d). The runlevel 1 scripts will then switch to runlevel "S" which has no scripts - all it does is spawn a shell directly on /dev/console for maintenance. 5. Halt/reboot Going to runlevel 0 or 6 will cause the system to be halted or rebooted, respectively. For example, if we go to runlevel 6 (reboot) first all /etc/rc6.d/KXXxxxx scripts will be executed alphabetically with "stop" as the first argument. Then the /etc/rc6.d/SXXxxxx scripts will be executed alphabetically with "stop" as the first argument as well. The reason is that there is nothing to start anymore at this point - all scripts that are run are meant to bring the system down. In the future, the /etc/rc6.d/SXXxxxx scripts MIGHT be moved to /etc/rc6.d/K1XXxxxx for clarity. debian/src/sysv-rc/doc/README.invoke-rc.d0000664000000000000000000001343412310205332015124 0ustar This is the internal documentation for invoke-rc.d, as written by Henrique M Holschuh This document can be found on the web as well at http://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt There is also the Debian BTS entry for the invoke-rc.d policy change at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=76868 INVOKE-RC.D (/usr/sbin/invoke-rc.d) interface: ============================================== The interface for all implementations of invoke-rc.d is mandated by the base implementation in the sysvinit package, just like it is done for update-rc.d. There is a provision for a "local initscript policy layer" (read: a call to /usr/sbin/policy-rc.d if this executable is present in the local system), which allows the local system administrator to control the behaviour of invoke-rc.d for every initscript id and action. It is assumed that this script is OPTIONAL and will by written and provided by packages other than the initscript system (sysvinit and file-rc packages). The basic interface for all implementations of policy-rc.d is mandated by the requirements of the base implementation of invoke-rc.d. This interface will be described either in the manpage of invoke-rc.d, and in a text file stored in /usr/share/doc/sysvinit/ by package sysvinit (which will host the base implementation of invoke-rc.d). Proposed script interfaces: invoke-rc.d [options] [extra initscript parameters...] basename - Initscript ID, as per update-rc.d(8) action - Initscript action. Known actions are: start, [force-]stop, restart, [force-]reload, status (status is there because of the LSB. Debian does not use it). extra initscript parameters: These parameters are passed to the initscript as is, after the action parameter. is always the first paramenter to the initscript, and may be modified by fallback actions or policy-rc.d requests. Note, however, that the extra parameters are not dropped or modified even if the action (first parameter) is modified. Options: --quiet Quiet mode, no error messages are generated by invoke-rc.d; policy-rc.d is also called with --quiet if this option is in effect. --force Try to run init script regardless of policy and non-fatal errors. Use of this option in automated scripts is severely discouraged as it bypasses integrity checks. If the initscript cannot be executed, error status 102 is returned. Do note that the policy layer call (policy-rc.d) is NOT skipped, although its results are ignored. --try-anyway Try to run the initscript even if a non-fatal subsystem error is detected (e.g: bad rc.d symlinks). A 102 status exit code will result if init script fails to execute anyway). Unlike --force, policy is still enforced with --try-anyway. --disclose-deny Return status code 101 instead of status code 0 if initscript action is denied by local policy rules or runlevel constrains. An warning is generated if the action is denied. --query Returns one of status codes 100-106, does not execute the init.d script. Implies --disclose-deny and --nofallback. Status codes 104-106 are only generated by this option. Note many messages are still sent to stderr in --query mode, including those regarding policy overrides and subsystem errors. Use --quiet if silent --query operation is desired. --no-fallback The policy layer (policy-rc.d) may return fallback actions to be run instead of the requested action. If this option is active, a fallback action request will be ignored and a "action not allowed" reply used in its place. This is probably a BAD idea unless you know exactly what you're doing. --help Outputs help message to stdout Unknown actions may generate warnings, but are passed to the underlying initscript anyway. The reason for the warning is simple: It is very unlikely that an unknown action (by invoke-rc.d) will be known to the policy layer (policy-rc.d), and therefore it may cause an initscript to execute an action which the local system administrator would have not allowed had he known about it. If policy-rc.d is not present, no warnings for unknown actions are generated. Should an initscript be executed, invoke-rc.d ALWAYS returns the status code returned by the initscript. Initscripts should not return status codes in the 100+ range (this is also a LSB requirement). Exit status codes (LSB compatible): 0 : success either the init script was run and returned exit status 0 (note that a fallback action may have been run instead of the one given in the command line), or it was not run because of runlevel/local policy constrains and --disclose-deny is not in effect. 1 - 99 : reserved for init.d script 100 : init script ID (basename) unknown init script not registered sucessfully through update-rc.d or init script does not exist. This error is fatal for most initscript systems. 101 : action not allowed requested action will not be performed because of runlevel or local policy constrains, and --disclose-deny is in effect. Note that a fallback action is NOT considered "action not allowed", unless --nofalback is in effect. 102 : subsystem error initscript (or policy) subsystem malfuncion. (e.g. broken /sbin/runlevel). Also, forced initscript execution due to --try-anyway or --force failed. 103 : syntax error 104 : action allowed --query is in effect; init script would be run if not for --query. 105 : behaviour uncertain cannot determine if action should be carried out or not, and --query in effect. 106 : fallback action requested the policy layer denied the requested action, and supplied an allowed fallback action. debian/src/sysv-rc/doc/README.policy-rc.d0000664000000000000000000001020012310205332015114 0ustar This is the internal documentation for policy-rc.d, as written by Henrique M Holschuh This document can be found on the web as well at http://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt There is also the Debian BTS entry for the invoke-rc.d policy change at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=76868 POLICY-RC.D Policy layer (/usr/sbin/policy-rc.d) interface: ============================================================= Most Debian systems will not have this script as the need for a policy layer is not very common. Most people using chroot jails just need an one-line script which returns an exit status of 101 as the jailed /usr/sbin/policy-rc.d script. The /usr/sbin/policy-rc.d file *must* be managed through the alternatives system (/usr/sbin/update-alternatives) by any packages providing it. /usr/sbin/policy-rc.d [options] [] /usr/sbin/policy-rc.d [options] --list [ ...] Options: --quiet no error messages are generated. --list instead of verifying policy, list (in a "human parseable" way) all policies defined for the given initscript id (for all runlevels if no runlevels are specified; otherwise, list it only for the runlevels specified), as well as all known actions and their fallbacks for the given initscript id (note that actions and fallback actions might be global and not particular to a single initscript id). is a space-separated list of actions (usually only one). Note that the list is passed in a single parameter and not as multiple parameters. The following actions are always known (even if specifying a policy for them is not supported by whatever policy-rc.d system is in use): start, [force-]stop, restart, [force-]reload, status. If an out-of-runlevel start or restart attempt is detected by invoke-rc.d, the "start" or "restart" action will be changed to "(start)" or "(restart)" respectively. This allows policy-rc.d to differentiate an out-of-runlevel start/restart from a normal one. The runlevel parameters are optional. If a runlevel is not specified, it is considered to be unknown/undefined. Note that for sysv-like initscript systems, an undefined runlevel is very likely to cause a 105 exit status. A runlevel for update-rc.d is defined as a character string, of which the usual INIT one-character runlevels are only a subset. It may contain embedded blanks. stdout is used to output a single line containing fallback actions, or to output --list results. stderr is used to output error messages stdin is not to be used, this is not an interactive interface. Exit status codes: 0 - action allowed 1 - unknown action (therefore, undefined policy) 100 - unknown initscript id 101 - action forbidden by policy 102 - subsystem error 103 - syntax error 104 - [reserved] 105 - behaviour uncertain, policy undefined. 106 - action not allowed. Use the returned fallback actions (which are implied to be "allowed") instead. When in doubt (policy-rc.d returned status 105 or status 1), invoke-rc.d will assume an action is allowed, but it will warn the user of the problem. Returning fallback information: Fallback actions are returned in the first line sent to stdout (other lines will be discarded). Multiple actions to be tried are allowed, and must be separated by spaces. Multiple actions are carried out one at a time, until one is sucessful. e.g.: returning status 106 and "restart stop" in stdout (without the quotes) will cause invoke-rc.d to attempt action "restart", and then only if "restart" failed, attempt action "stop". invoke-rc.d built-in policy rules: To shield policy-rc.d of the underlying initscript system (file-rc, links in /etc/rc?.d or something else), invoke-rc.d implements the following built-in rules: 1. action "start" out of runlevel is denied, (policy-rc.d receives action "(start)" instead of "start"); 2. action "restart" out of runlevel is denied, (policy-rc.d receives action "(restart)" instead of "restart"); 3. any action for a non-executable initscript is denied. Rule 3 is absolute, policy-rc.d cannot override it. debian/src/sysv-rc/Makefile0000664000000000000000000000306312310205332013016 0ustar DESTDIR = sysconfdir = /etc prefix = /usr docdir = $(prefix)/share/doc/sysv-rc bindir = $(prefix)/bin sbindir = $(prefix)/sbin INSTALL = install -m755 -o root -g root INSTALL_DATA = install -m644 -o root -g root all: install: $(INSTALL) -d $(DESTDIR)$(docdir)/. $(INSTALL) -d $(DESTDIR)/var/lib/insserv $(INSTALL) -d $(DESTDIR)$(sysconfdir)/. $(INSTALL_DATA) doc/* $(DESTDIR)$(docdir)/. cp -af etc/* $(DESTDIR)$(sysconfdir) find $(DESTDIR)$(sysconfdir) -type d -name .svn -print0 |xargs -r0 rm -r for N in 2 3 4 5 ; do \ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/rc$${N}.d ; \ $(INSTALL_DATA) rc2-5.d-README \ $(DESTDIR)$(sysconfdir)/rc$${N}.d/README ; \ done chmod 755 $(DESTDIR)$(sysconfdir)/init.d/[a-z]* chmod 644 $(DESTDIR)$(sysconfdir)/init.d/README chmod -R go=u-w $(DESTDIR)$(sysconfdir) chown -R root:root $(DESTDIR)$(sysconfdir) $(INSTALL) -d $(DESTDIR)/usr/share/man/man8/. $(INSTALL_DATA) man8/*.8 $(DESTDIR)/usr/share/man/man8 # $(INSTALL) -d $(DESTDIR)/usr/share/man/ja/man8/. # $(INSTALL_DATA) man8/ja/*.8 $(DESTDIR)/usr/share/man/ja/man8 # $(INSTALL) -d $(DESTDIR)/usr/share/man/fr.UTF-8/man8/. # $(INSTALL_DATA) man8/fr.UTF-8/*.8 $(DESTDIR)/usr/share/man/fr.UTF-8/man8 # $(INSTALL) -d $(tmp)/usr/share/man/es/man8/. # $(INSTALL_DATA) man8/es/*.8 $(DESTDIR)/usr/share/man/es/man8 $(INSTALL) -d $(DESTDIR)$(sbindir)/. $(INSTALL) sbin/invoke-rc.d $(DESTDIR)$(sbindir) $(INSTALL) sbin/update-rc.d $(DESTDIR)$(sbindir) $(INSTALL) -d $(DESTDIR)/usr/share/sysv-rc/. $(INSTALL) saveconfig $(DESTDIR)/usr/share/sysv-rc/saveconfig debian/fscklog.sh0000664000000000000000000000071212310205332011143 0ustar #!/bin/sh # fscklog.sh See if we need to rotate the fsck logs # MAXSIZE=51200 NUMFILES=5 export BOOTLOGFILE=/var/log/fsck/boot.log export ROOTLOGFILE=/var/log/fsck/root.log if [ -f "$BOOTLOGFILE" ] && [ "$(stat -c %s $BOOTLOGFILE)" -gt "$MAXSIZE" ] then savelog -g adm -m 640 -u root -c $NUMFILES $BOOTLOGFILE fi if [ -f "$ROOTLOGFILE" ] && [ "$(stat -c %s $ROOTLOGFILE)" -gt "$MAXSIZE" ] then savelog -g adm -m 640 -u root -c $NUMFILES $ROOTLOGFILE fi debian/initscripts.postinst0000775000000000000000000005053212310205332013347 0ustar #! /bin/sh # # initscripts postinst # set -e . /lib/init/vars.sh # Set this as a variable to hide from lintian the fact that we're removing # it; otherwise, a wrong lintian check + ftp fatal autoreject prevents us # from uploading this legitimate code, even though the previous upload was # accepted without incident. devshm=/dev/shm case "$1" in configure) PREV_VER=$2 ;; abort-upgrade|abort-remove|abort-deconfigure) exit 0 ;; esac umask 022 compat_link () { SRC=$1 DEST=$2 ssrc="$(/usr/bin/stat -L --format="%d %i" "$SRC" 2>/dev/null || :)" sdest="$(/usr/bin/stat -L --format="%d %i" "$DEST" 2>/dev/null || :)" if [ -n "$ssrc" ] && [ "$ssrc" != "$sdest" ]; then echo "guest environment detected: Linking $DEST to $SRC" ( if [ -e $DEST ]; then if [ -L $DEST ]; then echo "$DEST is already a symlink; not replacing with link to $SRC" exit 0 elif [ -d $DEST ]; then rmdir $DEST || exit 1 else echo "$DEST isn't a directory or a symlink" exit 1 fi fi ln -fs $SRC $DEST ) || { echo "Can't symlink $DEST to $SRC; please fix manually." return 1 } [ -x /sbin/restorecon ] && /sbin/restorecon "$DEST" fi return 0 } # # Initialize rcS default file. # if [ ! -f /etc/default/rcS ] then cp -p /usr/share/initscripts/default.rcS /etc/default/rcS fi # # In 2.86.ds1-7 the "single" script was moved. # We have to remove the old links _before_ we install new ones. # if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-7" then update-rc.d -f single remove >/dev/null fi # In 2.86.ds1-16, the mtab.sh and hostname.sh scripts were moved. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-16" then update-rc.d -f mtab.sh remove >/dev/null update-rc.d -f hostname.sh remove >/dev/null fi # In 2.86.ds1-21, the sendsigs script were moved, and in 2.86.ds1-35 # it was moved back. if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-35" then update-rc.d -f sendsigs remove >/dev/null fi # # In 2.87dsf-2 the "mountoverflowtmp" script was dropped # from runlevels 0 and 6. # We have to remove the old links _before_ we install new ones. # if dpkg --compare-versions "$PREV_VER" lt "2.87dsf-2" ; then update-rc.d -f mountoverflowtmp remove >/dev/null fi # In 2.88dsf-23 the "mountoverflowtmp" script was dropped entirely. if dpkg --compare-versions "$PREV_VER" lt "2.88dsf-23" ; then update-rc.d -f mountoverflowtmp remove >/dev/null fi # Comment out obsolete options in rcS. if dpkg --compare-versions "$PREV_VER" lt "2.88dsf-23" ; then if [ -f /etc/default/rcS ]; then sed -i \ -e 's:^\(RAMRUN=.*\)$:#\1 # OBSOLETE; see /etc/default/tmpfs and tmpfs(5).:' \ -e 's:^\(RAMLOCK=.*\)$:#\1 # OBSOLETE; see /etc/default/tmpfs and tmpfs(5).:' \ -e ':^RAMSHM=:i# OBSOLETE; see /etc/default/tmpfs and tmpfs(5).' \ -e ':^RAMTMP=:i# OBSOLETE; see /etc/default/tmpfs and tmpfs(5).' \ -e 's:^\(EDITMOTD=.*\)$:#\1 # OBSOLETE.:' /etc/default/rcS fi fi # In 2.87dsf-4ubuntu2, we begin migrating to Upstart jobs, so all of # these get removed. if dpkg --compare-versions "$PREV_VER" le-nl "2.87dsf-4ubuntu2" then update-rc.d -f hostname.sh remove >/dev/null 2>&1 || : update-rc.d -f mountkernfs.sh remove >/dev/null 2>&1 || : update-rc.d -f mountdevsubfs.sh remove >/dev/null 2>&1 || : update-rc.d -f checkroot.sh remove >/dev/null 2>&1 || : update-rc.d -f mtab.sh remove >/dev/null 2>&1 || : update-rc.d -f checkfs.sh remove >/dev/null 2>&1 || : update-rc.d -f mountall.sh remove >/dev/null 2>&1 || : update-rc.d -f mountall-bootclean.sh remove >/dev/null 2>&1 || : update-rc.d -f mountoverflowtmp remove >/dev/null 2>&1 || : update-rc.d -f mountnfs.sh remove >/dev/null 2>&1 || : update-rc.d -f mountnfs-bootclean.sh remove >/dev/null 2>&1 || : update-rc.d -f bootmisc.sh remove >/dev/null 2>&1 || : update-rc.d -f bootlogs remove >/dev/null 2>&1 || : update-rc.d -f rmnologin remove >/dev/null 2>&1 || : fi # # Okay, we could do this with update-rc.d, but that would probably # be pretty slow. This way we win some speed. # DO NOT FOLLOW THIS EXAMPLE IN OTHER PACKAGES. # # Links in runlevel S # if [ -x /etc/init.d/urandom ]; then update-rc.d urandom start 55 S . start 30 0 6 . >/dev/null || exit $? fi # # Links in runlevels other than S # if [ -x /etc/init.d/halt ]; then update-rc.d halt start 90 0 . >/dev/null || exit $? fi if [ -x /etc/init.d/reboot ]; then update-rc.d reboot start 90 6 . >/dev/null || exit $? fi if [ -x /etc/init.d/umountroot ]; then update-rc.d umountroot start 60 0 6 . >/dev/null || exit $? fi if [ -x /etc/init.d/umountfs ]; then update-rc.d umountfs start 40 0 6 . >/dev/null || exit $? fi if [ -x /etc/init.d/umountnfs.sh ]; then update-rc.d umountnfs.sh start 31 0 6 . >/dev/null || exit $? fi if [ -x /etc/init.d/sendsigs ]; then update-rc.d sendsigs start 20 0 6 . >/dev/null || exit $? fi if [ -x /etc/init.d/killprocs ]; then update-rc.d killprocs start 30 1 . >/dev/null || exit $? fi if [ -x /etc/init.d/single ]; then update-rc.d single start 90 1 . >/dev/null || exit $? fi update-rc.d ondemand start 99 2 3 4 5 . >/dev/null || exit $? if [ -x /etc/init.d/rc.local ]; then update-rc.d rc.local start 99 2 3 4 5 . >/dev/null || exit $? fi # # Remove scripts that were left behind by older glibc (<< 2.3.2.ds1-12) # versions. We have the same functionality in mount{kern,devsub}fs.sh # # # In 2.86.ds1-10 the "mountvirtfs" script was replaced by # mountkernfs.sh and mountdevsubfs.sh. It was removed completely in # 2.86.ds1-16. # for F in mountkernfs devpts.sh mountvirtfs do rm -f /etc/init.d/$F update-rc.d $F remove >/dev/null done # # Setup /run if not already in use. Note that the intent here is to # make the existing /var/run and /var/lock available as /run, # /run/lock, respectively. When the system is next restarted, a # proper /run tmpfs will be set up. The bind mounts set up here are # intended to recreate the directory hierarchy using the existing # locations in order that packages may transition to using /run # without a system restart. # # If in a chroot or vserver environment (i.e. a guest, which does not # run rcS scripts), do not do any messing around with mounts, and # don't migrate /var/run, /var/lock or /dev/shm. Bind mounting would # not work in a chroot, because the migration would only be # temporary--the rcS scripts are not guaranteed to run, so we must do # the migration by hand at this point. We create symlinks from the # new locations to the old locations, which should be safe. The # sysadmin should, if they care, move the old locations to the new # locations and create compatibilty symlinks at their convenience # following the upgrade. # chroot upgrade scenarios (from vorlon): # # - /dev is not bind mounted. sysvshm should be mounted *somewhere* # within the chroot, but we don't know where this will be done and # we're not going to do it ourselves. So dictate that this should be # /run/shm, and make /dev/shm a symlink there. # # - /dev is bind mounted, and /dev/shm is a symlink to /run/shm # (because the parent environment is also a recent Debian/Ubuntu # release). Make the /run/shm directory. # # - /dev is bind mounted, and /dev/shm is also bind mounted. This is # not a good situation to be in, because it means that the future # correctness of the chroot is dependent on the setup remaining the # same on the host system - which it won't if the host system is an # older Debian/Ubuntu release that is later upgraded. But we do the # best we can for now, and make /run/shm a symlink to /dev/shm. # # - /dev/ is bind mounted, and /dev/shm is a non-bind-mounted # directory. We can't fix this, so we should just create the # /run/shm directory and leave /dev/shm alone. # # State /dev /dev/shm /run /run/shm Action Test # mmmm mount mount mount mount WARN ✓ # mmmd mount mount mount dir WARN ✓ # mmml mount mount mount link NO ACTION; WARN if link invalid ✓ # mmdm mount mount dir† mount WARN ✓ # mmdd mount mount dir† dir link /run to /dev/shm ✓ # mmdl mount mount dir† link NO ACTION; recreate link if invalid ✓ # mdmm mount dir mount mount WARN ✓ # mdmd mount dir mount dir WARN ✓ # mdml mount dir mount link NO ACTION; WARN if link invalid ✓ # mddm mount dir dir† mount WARN ✓ # mddd mount dir dir† dir link /run to /dev/shm ✓ # mddl mount dir dir† link NO ACTION; recreate link if invalid ✓ # mlmm mount link mount mount NO ACTION; WARN if link invalid ✓ # mlmd mount link mount dir NO ACTION; WARN if link invalid ✓ # mlml mount link mount link WARN ✓ # mldm mount link dir† mount NO ACTION; WARN if link invalid ✓ # mldd mount link dir† dir NO ACTION; WARN if link invalid ✓ # mldl mount link dir† link make /run a directory ✓ # dmmm dir mount mount mount WARN ✓ # dmmd dir mount mount dir WARN ✓ # dmml dir mount mount link NO ACTION; WARN if link invalid ✓ # dmdm dir mount dir† mount WARN ✓ # dmdd dir mount dir† dir link /run to /dev/shm ✓ # dmdl dir mount dir† link NO ACTION; recreate link if invalid ✓ # ddmm dir dir mount mount link /dev/shm to /run ✓ # ddmd dir dir mount dir link /dev/shm to /run ✓ # ddml dir dir mount link NO ACTION; WARN if link invalid ✓ # dddm dir dir dir† mount link /dev/shm to /run ✓ # dddd dir dir dir† dir link /dev/shm to /run ✓ # dddl dir dir dir† link NO ACTION; recreate link if invalid ✓ # dlmm dir link mount mount NO ACTION; recreate link if invalid ✓ # dlmd dir link mount dir NO ACTION; recreate link if invalid ✓ # dlml dir link mount link make /dev a directory; WARN if link invalid ✓ # dldm dir link dir† mount NO ACTION; recreate link if invalid ✓ # dldd dir link dir† dir NO ACTION; recreate link if invalid ✓ # dldl dir link dir† link make /run a directory; recreate link if invalid ✓ # † Treat /run symlink as equivalent to dir here # Note that link is only to /dev/shm or /run/shm; links to other # targets will be replaced with a correct link by compat_link (where # possible). In some corner cases, files will be migrated from # /dev/shm to /run/shm (or vice versa), but only when there is no # alternative; a symlink will be made to avoid moving wherever # possible. if ischroot; then # Symlink /var/run from /run # Note var/run is relative if compat_link /var/run /run; then # Symlink /var/lock from /run/lock # Note that it's really /var/run/lock compat_link /var/lock /run/lock # Symlink /dev/shm from /run/shm # Note that it's really /var/run/shm if [ ! -e /run/shm ] && [ ! -L /run/shm ]; then mkdir /run/shm fi # Note trailing slash for mountpoint dir needed to # resolve mountpoints where the dir is a symlink. DEV=d DEVSHM=d RUN=d RUNSHM=d if mountpoint -q /dev/; then DEV=m fi if mountpoint -q /dev/shm/; then DEVSHM=m fi if [ -L /dev/shm ]; then DEVSHM=l fi if mountpoint -q /run/; then RUN=m fi if mountpoint -q /run/shm/; then RUNSHM=m fi if [ -L /run/shm ]; then RUNSHM=l fi RUNSTATE="${DEV}${DEVSHM}${RUN}${RUNSHM}" RUNACTION="NONE" case "$RUNSTATE" in mmmm|mmmd|mlml|mdmm|mdmd|dmmm|dmmd|mmdm|mddm|dmdm) # FAIL echo "Due to mounts in the chroot, /dev/shm can't be safely symlinked to /run/shm. Please correct this problem manually." ;; mlmd|mlmm|mldd|mldm) # NO ACTION; FAIL if /dev/shm link invalid if [ "$(readlink /dev/shm)" != "/run/shm" ]; then echo "Due to mounts in the chroot, /dev/shm can't be safely symlinked to /run/shm (the existing symlink is invalid). Please correct this problem manually." fi ;; mmml|mdml|dmml|ddml) # NO ACTION; FAIL if /run/shm link invalid if [ "$(readlink /run/shm)" != "/dev/shm" ]; then echo "Due to mounts in the chroot, /dev/shm can't be safely symlinked to /run/shm or vice versa (the existing symlink is invalid). Please correct this problem manually." fi ;; dldd|dldm|dlmm|dlmd) # NO ACTION; recreate /dev/shm link if invalid if [ "$(readlink /dev/shm)" != "/run/shm" ]; then echo "The existing /dev/shm symlink is invalid." rm $devshm RUNACTION="LINKRUN" fi ;; mmdl|mddl|dmdl|dddl) # NO ACTION; recreate /run/shm link if invalid if [ "$(readlink /run/shm)" != "/dev/shm" ]; then echo "The existing /run/shm symlink is invalid." rm /run/shm RUNACTION="LINKDEV" fi ;; dlml) # check symlink is valid if [ "$(readlink /run/shm)" != "/dev/shm" ]; then echo "Due to mounts in the chroot, /dev/shm can't be safely symlinked to /run/shm (the existing symlink is invalid). Please correct this problem manually." fi # make /run/shm a directory rm $devshm mkdir /dev/shm ;; mldl) # check symlink is valid if [ "$(readlink /dev/shm)" != "/run/shm" ]; then echo "Due to mounts in the chroot, /dev/shm can't be safely symlinked to /run/shm (the existing symlink is invalid). Please correct this problem manually." fi # make /run/shm a directory rm /run/shm mkdir /run/shm ;; dldl) # check symlink is valid if [ "$(readlink /dev/shm)" != "/run/shm" ]; then echo "The existing /dev/shm symlink is invalid." rm $devshm RUNACTION="LINKRUN" fi # make /run/shm a directory rm /run/shm mkdir /run/shm ;; mmdd|mddd|dmdd) # link /run to /dev/shm if [ "$(ls -A /run/shm 2> /dev/null)" != "" ]; then mv /run/shm/* /dev/shm fi rm -rf /run/shm RUNACTION="LINKDEV" ;; ddmm|ddmd|dddm|dddd) # link /dev/shm to /run if [ "$(ls -A /dev/shm 2> /dev/null)" != "" ]; then mv /dev/shm/* /run/shm fi rm -rf $devshm RUNACTION="LINKRUN" ;; esac case "$RUNACTION" in LINKRUN) compat_link /run/shm /dev/shm ;; LINKDEV) compat_link /dev/shm /run/shm ;; esac fi # Host system, not a chroot. # non-chroot upgrade scenarios (from vorlon): # # - /dev/shm is bind mounted to /run/shm, with the reboot script # handling the fix-up to make /dev/shm a symlink to /run/shm before # next boot. else # Deal with half-migrated setups, move /dev/shm/* to /run/shm ONLY IF # 1) both exist (as directories and not symlink) # 2) /dev/shm isn't a mountpoint # 3) If /run/shm is a mountpoint it can't be a bind-mount of /dev/shm if [ -d /run/shm ] && [ -d /dev/shm ] && [ ! -L /run/shm ] && [ ! -L /dev/shm ] && ! mountpoint -q /dev/shm && (! mountpoint -q /run/shm || [ "$(mountpoint -d /dev/shm/)" != "(mountpoint -d /run/shm/)" ]) && dpkg --compare-versions "$PREV_VER" lt 2.88dsf-13.10ubuntu12; then echo "Detected a case where both /dev/shm and /run/shm exist." echo "The content of /dev/shm will now be moved to /run/shm." echo "It's highly recommended to restart any software using shm." mv /dev/shm/* /run/shm/ >/dev/null 2>&1 || : rm -Rf /dev/shm compat_link /run/shm /dev/shm fi fi # Ensure presence of /run/sendsigs.omit.d [ -d /run/sendsigs.omit.d ] || { mkdir --mode=755 /run/sendsigs.omit.d ; chown root:root /run/sendsigs.omit.d || [ "$FAKECHROOT" = true ]; } # In wheezy+1, remove /lib/init/rw #if dpkg --compare-versions "$PREV_VER" le "2.88dsf-14" \ # && [ -d /lib/init/rw ]; then # umount -f -r -d /lib/init/rw # rmdir /lib/init/rw #fi # # When installing for the first time or upgrading from a version # before or equal to 2.88dsf-14, a reboot is needed to make the /run # tmpfs available. Flag this using notify-reboot-required. /run is # available in some form before the reboot, so the need for a reboot # isn't particularly urgent. # if dpkg --compare-versions "$PREV_VER" le "2.88dsf-13.3" \ && [ -x /usr/share/update-notifier/notify-reboot-required ]; then /usr/share/update-notifier/notify-reboot-required fi # # Create mount point for spufs, and create spu system group # if mountpoint -q /proc && grep -qs '^cpu.*Cell' /proc/cpuinfo; then if ! getent group spu >/dev/null; then # the adduser package is priority important; cannot use addgroup groupadd -K GID_MAX=1000 spu fi mkdir -p /spu if ! mountpoint -q /spu; then # No need to fail configuration if this isn't possible. Mount # will still display an error. See LP #261490 and #251593. mount -t spufs -ogid=spu spufs /spu || true fi fi # # Create initial log files # [ "$PREV_VER" ] || chmod 755 /var/log/fsck || : for F in /var/log/dmesg /var/log/fsck/checkroot /var/log/fsck/checkfs do if [ ! -f "$F" ] && touch "$F" >/dev/null 2>&1 then echo "(Nothing has been logged yet.)" >| "$F" chown root:adm "$F" chmod 640 "$F" fi done # # Set up nologin symlink so that dynamic-login-disabling will work # (when DELAYLOGIN is set to "yes") # if [ ! -L /etc/nologin ] && [ ! -e /etc/nologin ] then rm -f /var/lib/initscripts/nologin ln -s /var/lib/initscripts/nologin /etc/nologin fi # # Revert motd stuff. initscripts now lets pam_motd handle # everything. /etc/motd is just a regular file. # if dpkg --compare-versions "$PREV_VER" lt "2.88dsf-24" ; then if [ -L /etc/motd ] && [ "$(readlink /etc/motd)" = "/var/run/motd" ]; then rm /etc/motd if [ -f /etc/motd.tail ]; then # Move motd.tail back to motd. mv /etc/motd.tail /etc/motd fi fi if [ ! -e /run/motd.dynamic ]; then rm -f /run/motd.dynamic if [ -e /run/motd ]; then mv /run/motd /run/motd.dynamic else echo "Generating /run/motd.dynamic; this may take a moment..." run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new mv /run/motd.dynamic.new /run/motd.dynamic fi fi rm -f /var/run/motd fi # # Mount kernel virtual filesystems...not. # This causes problems in pbuilder. # # #if [ -x /etc/init.d/mountkernfs.sh ] #then # if which invoke-rc.d >/dev/null 2>&1 # then # invoke-rc.d mountkernfs.sh start || : # else # /etc/init.d/mountkernfs.sh start # fi #fi # # Create /dev/pts, /dev/shm directories # if [ "$(uname -s)" = Linux ] then # # Only create /dev/{pts,shm} if /dev is on the # root file system. If some package has mounted a # seperate /dev (ramfs from udev, devfs) it is # responsible for the presence of those subdirs. # (it is OK for these to fail under fakechroot) # if ! mountpoint -q /dev then [ -d /dev/pts ] || { mkdir --mode=755 /dev/pts ; chown root:root /dev/pts || [ "$FAKECHROOT" = true ]; } [ -d /dev/shm ] || { mkdir --mode=755 /dev/shm ; chown root:root /dev/shm || [ "$FAKECHROOT" = true ]; } fi fi # Ensure we have a random seed on first boot. if [ "$PREV_VER" = "" ]; then if which invoke-rc.d >/dev/null 2>&1 then invoke-rc.d urandom start || true else /etc/init.d/urandom start || true fi fi # # Create /etc/rc.local on first time install and when upgrading from # versions before "2.86.ds1-16" # if dpkg --compare-versions "$PREV_VER" lt "2.86.ds1-16" then if [ ! -e /etc/rc.local ]; then cat << EOF > /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0 EOF # make sure it's enabled by default. chmod 755 /etc/rc.local fi fi #DEBHELPER# : debian/service/0000775000000000000000000000000012310205744010626 5ustar debian/service/service.80000664000000000000000000000557312310205332012362 0ustar .\" A man page for service(8). -*- nroff -*- .\" .\" Copyright (C) 2006 Red Hat, Inc. All rights reserved. .\" .\" This copyrighted material is made available to anyone wishing to use, .\" modify, copy, or redistribute it subject to the terms and conditions of the .\" GNU General Public License v.2. .\" .\" 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. .\" .\" Author: Miloslav Trmac .\" Updated by: Petter Reinholdtsen .TH service 8 "Jan 2006" .SH NAME service \- run a System V init script .SH SYNOPSIS \fBservice\fR \fISCRIPT\fR \fICOMMAND\fR [\fIOPTIONS\fR] \fBservice \-\-status\-all\fR \fBservice\fR \fB\-\-help\fR | \fB\-h\fR | \fB\-\-version\fR .SH DESCRIPTION .B service runs a System V init script or upstart job in as predictable an environment as possible, removing most environment variables and with the current working directory set to \fB/\fR. The .I SCRIPT parameter specifies a System V init script, located in \fB/etc/init.d/\fISCRIPT\fR, or the name of an upstart job in /etc/init. The existence of an upstart job of the same name as a script in /etc/init.d will cause the upstart job to take precedence over the init.d script. The supported values of .I COMMAND depend on the invoked script. .B service passes .I COMMAND and .I OPTIONS to the init script unmodified. For upstart jobs, start, stop, status, are passed through to their upstart equivalents. Restart will call the upstart 'stop' for the job, followed immediately by the 'start', and will exit with the return code of the start command. All scripts should support at least the .B start and .B stop commands. As a special case, if .I COMMAND is \fB\-\-full-restart\fR, the script is run twice, first with the .B stop command, then with the .B start command. This option has no effect on upstart jobs. .B service \-\-status\-all runs all init scripts, in alphabetical order, with the .B status command. This option only calls status for sysvinit jobs, upstart jobs can be queried in a similar manner with \fBinitctl list\fR'. .SH EXIT CODES .BR service calls the init script and returns the status returned by it. .SH FILES .TP \fB/etc/init.d\fR The directory containing System V init scripts. .TP \fB/etc/init\fR The directory containing upstart jobs. .SH ENVIRONMENT .TP \fBLANG\fR, \fBTERM\fR The only environment variables passed to the init scripts. .SH SEE ALSO .IR /etc/init.d/skeleton , .br .BR update\-rc.d (8), .br .BR init (8), .br .BR invoke\-rc.d (8). .br .BR initctl (8). debian/service/service0000775000000000000000000001141112310205332012203 0ustar #!/bin/sh ########################################################################### # /usr/bin/service # # A convenient wrapper for the /etc/init.d init scripts. # # This script is a modified version of the /sbin/service utility found on # Red Hat/Fedora systems (licensed GPLv2+). # # Copyright (C) 2006 Red Hat, Inc. All rights reserved. # Copyright (C) 2008 Canonical Ltd. # * August 2008 - Dustin Kirkland # # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # On Debian GNU/Linux systems, the complete text of the GNU General # Public License can be found in `/usr/share/common-licenses/GPL-2'. ########################################################################### is_ignored_file() { case "$1" in skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh) return 0 ;; esac return 1 } VERSION="`basename $0` ver. 0.91-ubuntu1" USAGE="Usage: `basename $0` < option > | --status-all | \ [ service_name [ command | --full-restart ] ]" SERVICE= ACTION= SERVICEDIR="/etc/init.d" OPTIONS= if [ $# -eq 0 ]; then echo "${USAGE}" >&2 exit 1 fi cd / while [ $# -gt 0 ]; do case "${1}" in --help | -h | --h* ) echo "${USAGE}" >&2 exit 0 ;; --version | -V ) echo "${VERSION}" >&2 exit 0 ;; *) if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then cd ${SERVICEDIR} for SERVICE in * ; do case "${SERVICE}" in functions | halt | killall | single| linuxconf| kudzu) ;; *) if ! is_ignored_file "${SERVICE}" \ && [ -x "${SERVICEDIR}/${SERVICE}" ]; then if ! grep -qs "\(^\|\W\)status)" "$SERVICE"; then #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2 echo " [ ? ] $SERVICE" 1>&2 continue else out=$(env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1) if [ "$?" = "0" -a -n "$out" ]; then #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running" echo " [ + ] $SERVICE" continue else #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running" echo " [ - ] $SERVICE" continue fi fi #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status fi ;; esac done exit 0 elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then SERVICE="${1}" if [ -x "${SERVICEDIR}/${SERVICE}" ]; then env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" stop env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" start exit $? fi elif [ -z "${SERVICE}" ]; then SERVICE="${1}" elif [ -z "${ACTION}" ]; then ACTION="${1}" else OPTIONS="${OPTIONS} ${1}" fi shift ;; esac done if [ -r "/etc/init/${SERVICE}.conf" ] && which initctl >/dev/null \ && initctl version | grep -q upstart then # Upstart configuration exists for this job and we're running on upstart case "${ACTION}" in start|stop|status|reload) # Action is a valid upstart action exec ${ACTION} ${SERVICE} ${OPTIONS} ;; restart) # Map restart to the usual sysvinit behavior. stop ${SERVICE} ${OPTIONS} || : exec start ${SERVICE} ${OPTIONS} ;; force-reload) # Upstart just uses reload for force-reload exec reload ${SERVICE} ${OPTIONS} ;; esac fi # Otherwise, use the traditional sysvinit if [ -x "${SERVICEDIR}/${SERVICE}" ]; then exec env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" ${ACTION} ${OPTIONS} else echo "${SERVICE}: unrecognized service" >&2 exit 1 fi debian/initscripts.lintian-overrides0000664000000000000000000000142512310205332015114 0ustar initscripts: file-in-etc-not-marked-as-conffile /etc/init.d/skeleton initscripts: non-standard-toplevel-dir sys/ initscripts: package-contains-empty-directory sys/ initscripts: script-not-executable ./etc/init.d/skeleton initscripts: script-not-executable ./lib/init/bootclean.sh initscripts: script-not-executable ./lib/init/mount-functions.sh initscripts: script-not-executable ./lib/init/swap-functions.sh initscripts: script-not-executable ./lib/init/tmpfs.sh initscripts: script-not-executable ./lib/init/vars.sh initscripts: maintainer-script-calls-init-script-directly postrm:14 initscripts: script-calls-init-script-directly ./etc/network/if-up.d/mountnfs:102 initscripts: depends-on-essential-package-without-using-version recommends: e2fsprogs initscripts: no-upstream-changelog debian/watch0000664000000000000000000000016212310205332010207 0ustar version=3 opts=dversionmangle=s/\.ds\d+// \ ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-(.*).tar.gz debian/sysvinit.lintian-overrides0000664000000000000000000000013112310205332014422 0ustar sysvinit: depends-on-essential-package-without-using-version pre-depends: sysvinit-utils debian/sysv-rc.postrm0000775000000000000000000000130712310205332012037 0ustar #! /bin/sh # # sysv-rc postrm # set -e case "$1" in remove) : ;; purge) if [ -e /usr/share/debconf/confmodule ]; then . /usr/share/debconf/confmodule db_purge fi exit 0 ;; *) exit 0 ;; esac umask 022 # If an alternative update-rc.d and invoke-rc.d implementation is # unpacked before this postrm script is executed, we do not want to # replace their programs with the symlink. if [ ! -e /usr/sbin/update-rc.d ] ; then ln -sf /usr/share/sysvinit/update-rc.d /usr/sbin/update-rc.d fi if [ ! -e /usr/sbin/invoke-rc.d ] ; then ln -sf /usr/share/sysvinit/update-rc.d /usr/sbin/invoke-rc.d fi #DEBHELPER# # Remove the recorded update-rc.d rm -f /var/lib/update-rc.d/* exit 0 debian/sysvinit.NEWS0000664000000000000000000000113312310205332011543 0ustar sysvinit (2.86.ds1-10) unstable; urgency=low In version 2.86.ds1-10 of the initscripts package the shell function library /etc/init.d/bootclean.sh has been replaced by a new script /etc/init.d/bootclean. If you made changes to the former in order to customize the way files are cleaned at boot time then you will have to port your changes to the new script. /etc/init.d/bootclean continues to respect the TMPTIME variable and, in particular, does not do any cleaning if TMPTIME is set to "infinite". See rcS(5). -- Thomas Hood Sun, 15 Jan 2006 13:38:42 +0100 debian/sysv-rc.preinst0000664000000000000000000000116712310205332012200 0ustar #! /bin/sh # preinst script for sysv-rc set -e # summary of how this script can be called: # * `install' # * `install' # * `upgrade' # * `abort-upgrade' case "$1" in upgrade) # Remove the recorded update-rc.d rm -f /var/lib/update-rc.d/* ;; install) # Ubuntu does not use this by default touch /etc/init.d/.legacy-bootordering ;; abort-upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 0 ;; esac #DEBHELPER# exit 0