]> git.pld-linux.org Git - projects/rc-scripts.git/commitdiff
Released 0.4.5.5. 0.4.5.5
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 20 Mar 2013 18:22:16 +0000 (18:22 +0000)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 20 Mar 2013 18:22:16 +0000 (18:22 +0000)
svn-id: @12637

226 files changed:
trunk/AUTHORS [new file with mode: 0644]
trunk/COPYING [new file with mode: 0644]
trunk/ChangeLog [new file with mode: 0644]
trunk/DEVELOPMENT [new file with mode: 0644]
trunk/INSTALL [new file with mode: 0644]
trunk/Makefile.am [new file with mode: 0644]
trunk/NEWS [new file with mode: 0644]
trunk/README [new file with mode: 0644]
trunk/TODO [new file with mode: 0644]
trunk/acinclude.m4 [new file with mode: 0644]
trunk/adjtime [new file with mode: 0644]
trunk/autogen.sh [new file with mode: 0755]
trunk/changelog.sh [new file with mode: 0755]
trunk/configure.ac [new file with mode: 0644]
trunk/crypttab [new file with mode: 0644]
trunk/doc/Makefile.am [new file with mode: 0644]
trunk/doc/make-html [new file with mode: 0755]
trunk/doc/net-scripts.txt [new file with mode: 0644]
trunk/doc/polski.dsl [new file with mode: 0644]
trunk/doc/rc-scripts.docb [new file with mode: 0644]
trunk/doc/sysconfig.docb [new file with mode: 0644]
trunk/doc/sysconfig.txt [new file with mode: 0644]
trunk/doc/sysvinitfiles [new file with mode: 0644]
trunk/doc/template.init [new file with mode: 0644]
trunk/doc/upstart.txt [new file with mode: 0644]
trunk/dumb.sh [new file with mode: 0644]
trunk/firmware-loader.sh [new file with mode: 0755]
trunk/hwprofile [new file with mode: 0755]
trunk/init/Makefile.am [new file with mode: 0644]
trunk/init/allowlogin.conf [new file with mode: 0644]
trunk/init/cpusets.conf [new file with mode: 0644]
trunk/init/cryptsetup.conf [new file with mode: 0644]
trunk/init/local.conf [new file with mode: 0644]
trunk/init/modules.conf [new file with mode: 0644]
trunk/init/random.conf [new file with mode: 0644]
trunk/init/rc.conf [new file with mode: 0644]
trunk/init/rcS-sulogin.conf [new file with mode: 0644]
trunk/init/rcS.conf [new file with mode: 0644]
trunk/init/sys-chroots.conf [new file with mode: 0644]
trunk/init/udev.conf [new file with mode: 0644]
trunk/inittab [new file with mode: 0644]
trunk/isapnp/Makefile.am [new file with mode: 0644]
trunk/isapnp/isapnp-kernel.conf [new file with mode: 0644]
trunk/lang.csh [new file with mode: 0755]
trunk/lang.sh [new file with mode: 0755]
trunk/lib/Makefile.am [new file with mode: 0644]
trunk/lib/functions [new file with mode: 0644]
trunk/lib/functions.network [new file with mode: 0644]
trunk/lib/ifdown [new file with mode: 0755]
trunk/lib/ifdown-br [new file with mode: 0755]
trunk/lib/ifdown-irda [new file with mode: 0755]
trunk/lib/ifdown-post [new file with mode: 0755]
trunk/lib/ifdown-ppp [new file with mode: 0755]
trunk/lib/ifdown-sl [new file with mode: 0755]
trunk/lib/ifdown-vlan [new file with mode: 0755]
trunk/lib/ifup [new file with mode: 0755]
trunk/lib/ifup-aliases [new file with mode: 0644]
trunk/lib/ifup-br [new file with mode: 0755]
trunk/lib/ifup-ipx [new file with mode: 0755]
trunk/lib/ifup-irda [new file with mode: 0755]
trunk/lib/ifup-iucv [new file with mode: 0755]
trunk/lib/ifup-neigh [new file with mode: 0644]
trunk/lib/ifup-plip [new file with mode: 0755]
trunk/lib/ifup-plusb [new file with mode: 0755]
trunk/lib/ifup-post [new file with mode: 0755]
trunk/lib/ifup-ppp [new file with mode: 0755]
trunk/lib/ifup-routes [new file with mode: 0644]
trunk/lib/ifup-sl [new file with mode: 0755]
trunk/lib/ifup-vlan [new file with mode: 0755]
trunk/lib/tnldown [new file with mode: 0755]
trunk/lib/tnlup [new file with mode: 0755]
trunk/make-tag.sh [new file with mode: 0755]
trunk/man/Makefile.am [new file with mode: 0644]
trunk/man/consoletype.1 [new file with mode: 0644]
trunk/man/crypttab.5 [new file with mode: 0644]
trunk/man/de/Makefile.am [new file with mode: 0644]
trunk/man/de/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/doexec.1 [new file with mode: 0644]
trunk/man/es/Makefile.am [new file with mode: 0644]
trunk/man/es/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/fr/Makefile.am [new file with mode: 0644]
trunk/man/fr/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/genhostid.1 [new file with mode: 0644]
trunk/man/getkey.1 [new file with mode: 0644]
trunk/man/initlog.1 [new file with mode: 0644]
trunk/man/ipcalc.1 [new file with mode: 0644]
trunk/man/ja/Makefile.am [new file with mode: 0644]
trunk/man/ja/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/netreport.1 [new file with mode: 0644]
trunk/man/ppp-watch.8 [new file with mode: 0644]
trunk/man/ru/Makefile.am [new file with mode: 0644]
trunk/man/ru/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/sv/Makefile.am [new file with mode: 0644]
trunk/man/sv/start-stop-daemon.8 [new file with mode: 0644]
trunk/man/usernetctl.8 [new file with mode: 0644]
trunk/man/usleep.1 [new file with mode: 0644]
trunk/modules [new file with mode: 0644]
trunk/modules.preudev [new file with mode: 0644]
trunk/po/Makefile.am [new file with mode: 0644]
trunk/po/de.po [new file with mode: 0644]
trunk/po/makepot.pl [new file with mode: 0755]
trunk/po/pl.po [new file with mode: 0644]
trunk/po/rc-scripts.pot [new file with mode: 0644]
trunk/ppp/Makefile.am [new file with mode: 0644]
trunk/ppp/auth-down [new file with mode: 0755]
trunk/ppp/auth-up [new file with mode: 0755]
trunk/ppp/ip-down [new file with mode: 0755]
trunk/ppp/ip-down.d/Makefile.am [new file with mode: 0644]
trunk/ppp/ip-down.d/logger [new file with mode: 0644]
trunk/ppp/ip-up [new file with mode: 0755]
trunk/ppp/ip-up.d/Makefile.am [new file with mode: 0644]
trunk/ppp/ip-up.d/logger [new file with mode: 0644]
trunk/ppp/ipx-down [new file with mode: 0755]
trunk/ppp/ipx-up [new file with mode: 0755]
trunk/rc.d/Makefile.am [new file with mode: 0644]
trunk/rc.d/init.d/Makefile.am [new file with mode: 0644]
trunk/rc.d/init.d/allowlogin [new file with mode: 0755]
trunk/rc.d/init.d/cpusets [new file with mode: 0755]
trunk/rc.d/init.d/cryptsetup [new file with mode: 0755]
trunk/rc.d/init.d/killall [new file with mode: 0755]
trunk/rc.d/init.d/local [new file with mode: 0755]
trunk/rc.d/init.d/netfs [new file with mode: 0755]
trunk/rc.d/init.d/network [new file with mode: 0755]
trunk/rc.d/init.d/random [new file with mode: 0755]
trunk/rc.d/init.d/single [new file with mode: 0755]
trunk/rc.d/init.d/sys-chroots [new file with mode: 0755]
trunk/rc.d/rc [new file with mode: 0755]
trunk/rc.d/rc.init [new file with mode: 0755]
trunk/rc.d/rc.local [new file with mode: 0644]
trunk/rc.d/rc.shutdown [new file with mode: 0755]
trunk/rc.d/rc.sysinit [new file with mode: 0755]
trunk/run-parts [new file with mode: 0755]
trunk/service [new file with mode: 0755]
trunk/setsysfont [new file with mode: 0755]
trunk/src/Makefile.am [new file with mode: 0644]
trunk/src/consoletype.c [new file with mode: 0644]
trunk/src/doexec.c [new file with mode: 0644]
trunk/src/genhostid.c [new file with mode: 0644]
trunk/src/getkey.c [new file with mode: 0644]
trunk/src/initlog.c [new file with mode: 0644]
trunk/src/initlog.conf [new file with mode: 0644]
trunk/src/initlog.h [new file with mode: 0644]
trunk/src/ipcalc.c [new file with mode: 0644]
trunk/src/loglevel.c [new file with mode: 0644]
trunk/src/minilogd.c [new file with mode: 0644]
trunk/src/netreport.c [new file with mode: 0644]
trunk/src/ppp-watch.c [new file with mode: 0644]
trunk/src/process.c [new file with mode: 0644]
trunk/src/process.h [new file with mode: 0644]
trunk/src/resolvesymlink.c [new file with mode: 0644]
trunk/src/setuidgid.c [new file with mode: 0644]
trunk/src/shvar.c [new file with mode: 0644]
trunk/src/shvar.h [new file with mode: 0644]
trunk/src/start-stop-daemon.c [new file with mode: 0644]
trunk/src/testd.c [new file with mode: 0644]
trunk/src/testdinit [new file with mode: 0755]
trunk/src/usernetctl.c [new file with mode: 0644]
trunk/src/usleep.c [new file with mode: 0644]
trunk/sysconfig/Makefile.am [new file with mode: 0644]
trunk/sysconfig/cpusets/Makefile.am [new file with mode: 0644]
trunk/sysconfig/cpusets/cpuset-test [new file with mode: 0644]
trunk/sysconfig/hwprof [new file with mode: 0644]
trunk/sysconfig/hwprofiles/Makefile.am [new file with mode: 0644]
trunk/sysconfig/hwprofiles/files [new file with mode: 0644]
trunk/sysconfig/i18n [new file with mode: 0644]
trunk/sysconfig/init-colors [new file with mode: 0644]
trunk/sysconfig/init-colors.gentoo [new file with mode: 0644]
trunk/sysconfig/interfaces/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/data/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.callback [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.gprs-idea [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.gprs-playmobile [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.kou [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.kou-disconnect [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.leased1 [new file with mode: 0644]
trunk/sysconfig/interfaces/data/chat-ppp0.tpsa [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/all/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/all/thetouch [new file with mode: 0755]
trunk/sysconfig/interfaces/down.d/ip/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/ipx/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/ppp/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/ppp/logger [new file with mode: 0644]
trunk/sysconfig/interfaces/down.d/tnl/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-bond0 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-br0 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-description [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-eth0 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-eth0.1 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-irda0 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-irlan0 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.callback [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-idea [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-playmobile [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.kou [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.leased1 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.leased2 [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.pppoe [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.tpsa [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle4-neostrada [new file with mode: 0644]
trunk/sysconfig/interfaces/ifcfg-sl0 [new file with mode: 0644]
trunk/sysconfig/interfaces/tnlcfg-description [new file with mode: 0644]
trunk/sysconfig/interfaces/tnlcfg-icm [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/all/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/all/thetouch [new file with mode: 0755]
trunk/sysconfig/interfaces/up.d/ip/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/ipx/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/ppp/Makefile.am [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/ppp/logger [new file with mode: 0644]
trunk/sysconfig/interfaces/up.d/tnl/Makefile.am [new file with mode: 0644]
trunk/sysconfig/network [new file with mode: 0644]
trunk/sysconfig/static-arp [new file with mode: 0644]
trunk/sysconfig/static-nat [new file with mode: 0644]
trunk/sysconfig/static-routes [new file with mode: 0644]
trunk/sysconfig/static-routes6 [new file with mode: 0644]
trunk/sysconfig/system [new file with mode: 0644]
trunk/sysctl.conf [new file with mode: 0644]
trunk/t/backtick-test.sh [new file with mode: 0755]
trunk/t/status-pidfile.sh [new file with mode: 0755]

diff --git a/trunk/AUTHORS b/trunk/AUTHORS
new file mode 100644 (file)
index 0000000..dbce427
--- /dev/null
@@ -0,0 +1,47 @@
+
+       $Id$
+
+MAINTAINERS
+
+Maintainer of development version
+is Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+
+AUTHORS/CREDITS
+
+Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+       networking functions, iproute2 support,
+       national language support, scripts for
+       controling tunnels and bridges
+
+Artur Frysiak <wiget@pld-linux.org>
+       automake/autoconf support, bug fixes
+
+Bartosz Waszak <waszi@pld-linux.org>
+       fixes, devfsd support
+
+Grzegorz Stanislawski <stangrze@open.net.pl>
+       ppp scripts, prefix/netmask converting
+       functions, bug fixes
+
+Jan Rękorajski <baggins@pld-linux.org>
+       general, ipv6 and dhcp fixes
+       
+Michał Kochanowicz <mkochano@pld-linux.org>
+       fixes, progress()
+       
+Paweł Wilk <siefca@gnu.org>
+       executing scripts on iface up/down
+       timezone setup & resolvesymlink
+
+Robert Ślaski <robin@atm.com.pl>
+       ATM support
+
+Sebastian Zagrodzki <s.zagrodzki@mimuw.edu.pl>
+       many fixes
+
+Tomasz Kłoczko <kloczek@wun.zie.pg.gda.pl>
+       automake/autoconf updates, bug fixes
+
+Mandrake Software
+RedHat Software, Inc.
+
diff --git a/trunk/COPYING b/trunk/COPYING
new file mode 100644 (file)
index 0000000..60549be
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU 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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/trunk/ChangeLog b/trunk/ChangeLog
new file mode 100644 (file)
index 0000000..0bc0238
--- /dev/null
@@ -0,0 +1,9176 @@
+2013-03-18 08:25 +0000 [r12632]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.5.5.
+
+2013-03-09 23:12 +0000 [r12630]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: AM_CONFIG_HEADER is obsolete.
+
+2013-03-09 23:09 +0000 [r12629]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: usbfs is deprecated for some time.
+
+2013-02-11 22:23 +0000 [r12626]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: avoid loading /etc/modules contents twice
+         (modules-load.d/modules.conf is symlink to that)
+
+2013-02-06 16:22 +0000 [r12625]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * doc/sysconfig.txt: - clarified (LANG is also whole locale code;
+         LANGUAGE not LINGUAS is used at runtime)
+
+2013-02-06 15:35 +0000 [r12624]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: more complete update for NM skipping.
+         improves [12481] and [12616] should the `$USERS` be dropped now,
+         i don't see it from current NM generated configs M init.d/network
+
+2013-02-06 15:32 +0000 [r12623]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lang.csh: note that lang.csh is broken
+
+2013-02-06 15:27 +0000 [r12622]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/sysconfig.txt: more specific language code specification
+
+2013-02-05 15:04 +0000 [r12616]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: ignore ifcfg-* files which have no DEVICE
+         line present, i.e WiFi networks generated by NM
+
+2013-01-09 08:48 +0000 [r12613]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Store raw dmesg format, so few dmesg features
+         can be used (like -T) when reading from this file.
+
+2012-12-17 07:39 +0000 [r12610]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0: ethtool example.
+
+2012-12-13 17:17 +0000 [r12604]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * lib/ifup: SYSCTLDEVICE definition moved when ${DEVICE} is known
+
+2012-12-05 20:54 +0000 [r12603]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lib/functions: killproc: improve experimental start-stop-daemon
+         based killing. do not send --retry, in case we specify a signal
+         to kill (usually HUP) as processes do not usually exit (remove
+         their pid from pidfile) if they receive HUP
+
+2012-11-24 12:34 +0000 [r12602]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: unset locale when using a-z patterns
+
+2012-11-23 16:44 +0000 [r12601]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: remove not needed subshell
+
+2012-10-21 15:14 +0000 [r12593]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: service: systemd wrapper default output cat
+
+2012-10-06 16:33 +0000 [r12592]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * lib/ifup: - another example of zsh supremacy in shell world!
+         fixed 5 yrs old flaw introduced in rev. 8719 that neither pdksh
+         nor mksh handled properly, not to mention bash - such process
+         backgrounding caused, when called from functions/run_cmd (i.e.
+         during service network start), I/O wait for STDOUT of
+         'background' job despite >/dev/null redirects; this effectively
+         leads to 2 seconds delay for each interface at system startup,
+         cumulating to minutes of pointless waiting on heavy networked
+         machines! There is alternate workaround: { { sleep 2; } & }
+         >/dev/null that works as expected under pdksh or mksh, but
+         requires additional & for zsh and doesn't fix bash behaviour, so
+         please do not touch _THIS_ solution without comprehensive
+         research! -- Aug 29th, 2012, /me Note: this happens due to $()
+         capture, so plain ifup isn't enough.
+
+2012-06-20 13:23 +0000 [r12572]  Adam Osuchowski <adwol/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - extra sysctl right after mounting /proc
+
+2012-05-21 11:01 +0000 [r12569]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't start udev or fsck / when running inside
+         LXC container
+
+2012-05-20 08:35 +0000 [r12568]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * lib/ifup: - fix sysctl setting for interfaces with dot in name,
+         patch by Adam Osuchowski <adwol>
+
+2012-04-20 09:47 +0000 [r12557]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * lib/ifup-vlan: - just warn about disabled master interface, don't
+         silently disable vlans
+
+2012-04-18 06:29 +0000 [r12553]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * lib/functions.network: Start ip rules prio from 10000 and
+         increment (not decrement) by 5.
+
+2012-04-17 15:33 +0000 [r12551]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-bond0 (added): bonding sample
+
+2012-04-03 20:24 +0000 [r12537-12538]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.5.4
+
+       * Makefile.am: - add uninstall-hook, don't we just love autocrap
+         crapiness?
+
+2012-04-03 19:30 +0000 [r12536]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * lib/functions: - provide stdin for the daemons that just must
+         have it, but stupid ksh closes it on them (for example acpid)
+
+2012-03-29 07:04 +0000 [r12523]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: clean /tmp if it is not on tmpfs
+
+2012-03-28 21:33 +0000 [r12522]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: use is_empty_file function on /etc/mactab
+
+2012-03-21 15:53 +0000 [r12507]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Mount /proc based on fstab first and if that
+         fails fallback to hardcoded values.
+
+2012-03-18 12:11 +0000 [r12497]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/i18n: warn about systemd, besides keeping ssh env
+         should came from lang.sh
+
+2012-03-17 09:32 +0000 [r12496]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: as we are redirecting to systemd, detect when systemd
+         redirects back due /sbinservice in .service file
+
+2012-03-17 09:14 +0000 [r12495]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: validate systemd command, before sending it to systemd,
+         to keep "service lighttpd configtest" on working
+
+2012-03-17 08:39 +0000 [r12494]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - detect if service is in systemd (if LoadError means
+         it's not present in systemd) - add --no-systemd option to
+         override detect
+
+2012-03-04 21:49 +0000 [r12486]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: fix message printing; pass anything to systemd if it is
+         up (status is valid action too)
+
+2012-03-04 20:47 +0000 [r12485]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * service: Tabs are used here.
+
+2012-03-04 20:36 +0000 [r12484]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * service: systemd takes preference if it is booted/active.
+
+2012-03-04 20:12 +0000 [r12483]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - load kernel modules specified in
+         /etc/modules-load.d/ configs (systemd compat)
+
+2012-03-03 20:35 +0000 [r12482]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - systemd bits
+
+2012-02-19 18:33 +0000 [r12481]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - skip interfaces configured by
+         NetworkManager, by cactus/at/pld-linux.org
+
+2012-02-19 18:23 +0000 [r12478]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.5.3
+
+2012-02-19 18:11 +0000 [r12477]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - devtmpfs is madatory for udev >= 176
+
+2012-02-03 19:23 +0000 [r12474]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * lib/functions.network: Adding rule by rule causes reverse order
+         to be applied by kernel. We want rules from
+         sysconfig/static-rules to be working in the same order as these
+         were added in that file. The one solution is to use '/usr/bin/tac
+         static-routes' or to use own priorities. We use prio 20000 with
+         step 10 down, to get holes for other, manually added rules.
+
+2012-01-25 14:40 +0000 [r12468]  Kacper Kornet <draenog/at/pld-linux.org>
+
+       * lib/functions: - fix bashism in previous commit
+
+2012-01-25 14:28 +0000 [r12467]  Kacper Kornet <draenog/at/pld-linux.org>
+
+       * lib/functions: - fix daemon --user --fork as they conflicted with
+         each other
+
+2012-01-13 13:32 +0000 [r12466]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - stable sort for BOOTPRIO= devices, so vlan
+         ifaces will be after their NIC eth counterparts - treat macvlan
+         and macvtap interfaces specially - they may be created on almost
+         enything
+
+2011-12-16 08:47 +0000 [r12455]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: vgscan/vgmknodes/vgdisplay don't support
+         --sysinit option. Back to ignorelocking for these.
+
+2011-12-15 18:17 +0000 [r12454]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/cpusets.conf, init/allowlogin.conf, init/sys-chroots.conf:
+         nicely stop, without error
+
+2011-12-14 17:15 +0000 [r12453]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lib/functions: - ksh did not like doble minus ("+5--10"), needs
+         spaces ("+5 - -10") to process correctly
+
+2011-12-14 11:33 +0000 [r12451]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.5.2
+
+2011-12-14 11:26 +0000 [r12449]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * changelog.sh: - be sure users file is up to date
+
+2011-12-14 07:59 +0000 [r12448]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/local.conf: doc bits
+
+2011-12-12 10:38 +0000 [r12447]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lib/functions: daemon(): make nice level absolute, not to be
+         dependant of nice level of shell where service started.
+
+2011-12-09 21:25 +0000 [r12446]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/init.d/network: - systemd support: export partial jobs,
+         leave ifup/ifdown to separate services
+
+2011-12-04 14:36 +0000 [r12437]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * man/fstab-decode.8 (removed), man/Makefile.am: Drop fstab-decode
+         man page
+
+2011-12-04 02:42 +0000 [r12436]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * src/Makefile.am, src/fstab-decode.c (removed): fstab-decode is
+         part of SysVinit-tools
+
+2011-11-29 18:05 +0000 [r12421]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: Don't mount devpts again.
+
+2011-11-28 19:47 +0000 [r12420]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Make forced mounts quiet in case /etc/mtab is
+         symlink to /proc/self/mounts.
+
+2011-11-15 21:38 +0000 [r12414]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: spelling typo
+
+2011-11-01 14:01 +0000 [r12405]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * modules.preudev: - typo
+
+2011-11-01 13:39 +0000 [r12404]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix LVM2 check logic
+
+2011-10-31 19:52 +0000 [r12403]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * modules.preudev: - set props
+
+2011-10-31 19:30 +0000 [r12402]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - give some info what's going on when loading
+         modules
+
+2011-10-31 19:26 +0000 [r12401]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * modules.preudev (added): - example file
+
+2011-10-31 19:19 +0000 [r12400]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - give admin the ability to load some kernel
+         modules before udev kicks in
+
+2011-10-31 19:12 +0000 [r12399]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - give user ability to disable
+         linux multipath drivers and daemons
+
+2011-10-31 18:53 +0000 [r12398]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - functions are in /lib/rc-scripts
+
+2011-10-23 19:26 +0000 [r12388-12389]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, init/Makefile.am, init/modules.conf (added):
+         load /etc/modules in upstart
+
+       * rc.d/rc.shutdown: emit shutdown events
+
+2011-10-23 11:21 +0000 [r12387]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/rcS-sulogin.conf: respect RUN_SULOGIN_ON_ERR from
+         /etc/sysconfig/system
+
+2011-10-10 07:49 +0000 [r12369-12370]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * TODO: upstart compatible is service up todo
+
+       * doc/upstart.txt: shutdown started/starting upstart event doc
+
+2011-10-09 22:58 +0000 [r12368]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * modules: point out the parameters use fact
+
+2011-10-09 18:57 +0000 [r12367]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: emit shutdown starting/started event
+
+2011-10-09 18:14 +0000 [r12366]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/upstart.txt, init/rc.conf, rc.d/init.d/network: let "network"
+         emit network starting/stopping/started/stopped events as well
+
+2011-10-09 17:35 +0000 [r12364-12365]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/upstart.txt: chop trailing spaces
+
+       * rc.d/rc.sysinit: fix handling 3.x.y kernels
+
+2011-10-05 14:47 +0000 [r12363]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/local, init/Makefile.am, init/local.conf (added):
+         upstart for rc.local
+
+2011-09-30 10:54 +0000 [r12360]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.shutdown: Use --sysinit for lvm. When
+         stopping hide error messages (normal for many cases like lvm on
+         rootfs).
+
+2011-09-27 07:15 +0000 [r12356-12357]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.5.1
+
+       * rc.d/rc.sysinit: - fix $LVM2 variable fuckup (use is_no instead
+         of is_yes) (glen, you moron, have you considered a possibility
+         that $LVM2 will land in sysconfig.rpmsave, thus making lvm
+         dependant system non-bootable?)
+
+2011-09-25 09:57 +0000 [r12351-12352]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * po/Makefile.am: just in case C locale
+
+       * po/rc-scripts.pot: updated
+
+2011-09-22 15:45 +0000 [r12350]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - properly mount /run and put it into mtab
+
+2011-09-18 20:34 +0000 [r12349]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Mount /run ASAP
+
+2011-09-11 20:08 +0000 [r12347]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/cryptsetup.conf (added), init/Makefile.am: Add cryptsetup
+
+2011-09-11 20:00 +0000 [r12344]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: local vars
+
+2011-09-11 19:53 +0000 [r12342-12343]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/Makefile.am: Add allowlogin, sys-chroots, cpusets
+
+       * init/cpusets.conf (added): Add cpusets
+
+2011-09-11 11:29 +0000 [r12341]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: print unknown state to stdout as well
+
+2011-09-02 06:18 +0000 [r12339-12340]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots, init/allowlogin.conf (added),
+         rc.d/init.d/allowlogin, init/sys-chroots.conf (added): add
+         allowlogin and sys-chroots upstart parts, altho no stop for them
+
+       * sysconfig/system, rc.d/rc.sysinit: add $LVM2 allows you to
+         disable LVM2 if your only LVM volume is rootfs started on initrd
+         and want faster startup
+
+2011-09-02 06:08 +0000 [r12338]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am: Add ifcfg-ppp0.pppoe
+
+2011-08-31 18:44 +0000 [r12337]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lib/functions: upstart: behave like current initscripts: print
+         running/not running instead of silence
+
+2011-08-31 16:24 +0000 [r12336]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions (removed), rc.d/init.d/Makefile.am,
+         po/rc-scripts.pot, lib/functions (added), lib/Makefile.am: move
+         also functions to /lib/rc-scripts (symlink preserved)
+
+2011-08-19 19:56 +0000 [r12331]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: formatting
+
+2011-08-19 19:44 +0000 [r12328-12330]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/local: add starting line
+
+       * rc.d/rc.sysinit: prefer local code over io checks (boot splash
+         unlikely enabled anyway)
+
+       * rc.d/init.d/functions: avoid shift() error when program called
+         with no actions in _upstart_controlled; tabs
+
+2011-08-14 19:45 +0000 [r12323]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/rc.conf: register pld.sysinit-done to satisfy initctl
+         check-config
+
+2011-08-14 12:03 +0000 [r12321-12322]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.kou, changelog.sh, rc.d/rc.init:
+         add missing keyword expansion
+
+       * rc.d/init.d, sysconfig/interfaces/down.d/tnl,
+         sysconfig/interfaces/down.d/ppp, sysconfig/interfaces/down.d/ipx,
+         sysconfig/interfaces/down.d, rc.d, src,
+         sysconfig/interfaces/down.d/all, sysconfig/interfaces/down.d/ip,
+         sysconfig/interfaces/up.d/tnl, isapnp,
+         sysconfig/interfaces/up.d/ppp, sysconfig/interfaces/up.d/ipx,
+         sysconfig/interfaces/up.d, ppp, /, sysconfig, doc,
+         sysconfig/interfaces/up.d/all, sysconfig/interfaces/up.d/ip, lib:
+         svn:ignore fixups
+
+2011-08-14 11:56 +0000 [r12319-12320]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/Makefile.am, doc/template.init (added),
+         rc.d/init.d/Makefile.am, rc.d/init.d/template.init (removed),
+         po/rc-scripts.pot: move template.init to doc
+
+       * sysconfig/.cvsignore (removed), doc/.cvsignore (removed),
+         sysconfig/interfaces/up.d/all/.cvsignore (removed), rc.d,
+         sysconfig/interfaces/down.d/all, sysconfig/interfaces/down.d/ip,
+         sysconfig/interfaces/up.d/tnl, sysconfig/interfaces/up.d/ppp,
+         sysconfig/interfaces/up.d/ipx,
+         sysconfig/interfaces/down.d/ipx/.cvsignore (removed), /,
+         sysconfig, sysconfig/interfaces/up.d/ip, isapnp/.cvsignore
+         (removed), sysconfig/interfaces/up.d/ipx/.cvsignore (removed),
+         ppp/ip-up.d, rc.d/init.d, ppp/ip-down.d/.cvsignore (removed),
+         sysconfig/interfaces/data/.cvsignore (removed),
+         sysconfig/interfaces/down.d/tnl, sysconfig/interfaces/down.d/ppp,
+         sysconfig/interfaces/down.d/ipx,
+         sysconfig/interfaces/up.d/ip/.cvsignore (removed), lib/.cvsignore
+         (removed), src, rc.d/init.d/.cvsignore (removed),
+         ppp/ip-up.d/.cvsignore (removed), isapnp,
+         sysconfig/interfaces/down.d/tnl/.cvsignore (removed),
+         po/.cvsignore (removed),
+         sysconfig/interfaces/down.d/ppp/.cvsignore (removed),
+         sysconfig/interfaces/down.d/.cvsignore (removed),
+         sysconfig/interfaces/up.d, ppp/ip-down.d, ppp,
+         sysconfig/hwprofiles/.cvsignore (removed), rc.d/.cvsignore
+         (removed), src/.cvsignore (removed),
+         sysconfig/interfaces/.cvsignore (removed),
+         sysconfig/interfaces/down.d/all/.cvsignore (removed),
+         sysconfig/interfaces/down.d/ip/.cvsignore (removed), doc,
+         sysconfig/interfaces/up.d/all, lib,
+         sysconfig/interfaces/up.d/tnl/.cvsignore (removed),
+         sysconfig/interfaces/up.d/ppp/.cvsignore (removed),
+         sysconfig/interfaces/up.d/.cvsignore (removed), ppp/.cvsignore
+         (removed), .cvsignore (removed), po, sysconfig/interfaces/down.d:
+         convert .cvsignore to svn:ignore
+
+2011-08-14 11:48 +0000 [r12318]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * TODO: privilege check is done with unix file permissions: scripts
+         just not executable for regular user
+
+2011-08-14 11:42 +0000 [r12310-12317]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * po/rc-scripts.pot, po/Makefile.am: add makepot.pl to EXTRA_DIST
+
+       * makepot.pl (removed), po/Makefile.am, po/makepot.pl (added): move
+         makepot to po/ dir with rest of it's files
+
+       * po/pl.po, po/rc-scripts.pot, rc.d/init.d/random, po/de.po: - fix
+         bad nls usage
+
+       * po/pl.po, po/de.po: utf8 to rule the world
+
+       * po/pl.po, po/de.po: - updated
+
+       * po/rc-scripts.pot: - updated
+
+       * po/rc-scripts.pot (added): track to see new strings to appear or
+         not
+
+       * lib/ifdown-post, lib/Makefile.am, ppp/auth-up,
+         sysconfig/network-scripts (removed), ppp/ip-up, lib/ifdown-ppp,
+         lib/ifup-post, doc/net-scripts.txt, configure.ac, ppp/auth-down,
+         lib/tnlup, lib/ifdown-sl, lib/ifdown-irda, lib/ifup, Makefile.am,
+         ppp/ip-down, sysconfig/Makefile.am, lib/ifup-iucv, ppp/ipx-up,
+         lib/ifup-sl, lib/ifup-irda, lib/ifdown-vlan, lib/tnldown,
+         lib/ifdown, lib/ifup-plusb, lib/ifdown-br, ppp/ipx-down,
+         rc.d/init.d/network, lib/ifup-ppp, lib (added), lib/ifup-ipx,
+         lib/ifup-vlan, man/usernetctl.8, lib/ifup-br, lib/ifup-plip,
+         src/ppp-watch.c: - move network scripts to /lib, as none of them
+         are config files - version 0.4.5 for such major change
+
+2011-08-14 11:11 +0000 [r12308-12309]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: fatal out when required tools missing, some ac fix
+
+       * src/setuidgid.c: PLD Linux
+
+2011-08-14 09:56 +0000 [r12307]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * init/random.conf, init/rc.conf, init/rcS-sulogin.conf,
+         init/rcS.conf: our vim-syntax-upstart recognizes the filetype
+         itself
+
+2011-08-13 13:51 +0000 [r12305]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * po/Makefile.am: Do not ignore errors
+
+2011-08-13 13:42 +0000 [r12304]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: emit net-device-up
+         events, so upstart-socket-bridge could function
+
+2011-08-13 06:04 +0000 [r12303]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: allow $USE_UPSTART from env to preceed
+         USE_UPSTART from sysconfig/system
+
+2011-07-25 06:10 +0000 [r12270-12271]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/net-scripts.txt, sysconfig/network-scripts/ifup: - add
+         $ETHTOOL_OPTS
+
+       * TODO: - todo from arekm
+
+2011-07-21 10:28 +0000 [r12264]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - include service type in --status-all
+
+2011-07-18 13:11 +0000 [r12260]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fuser is in /bin since psmisc-22.5-2
+
+2011-06-28 19:51 +0000 [r12254]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/system: Explain what VSERVER is.
+
+2011-06-27 10:18 +0000 [r12252-12253]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fix local variable
+
+       * rc.d/init.d/functions: - fix kernelver* functions
+
+2011-06-26 10:48 +0000 [r12250]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Mount securityfs based on it's availability
+         only.
+
+2011-06-20 15:04 +0000 [r12247]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - compat mode for old kernels, where
+         network lock was not touched
+
+2011-06-16 12:32 +0000 [r12246]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * init/Makefile.am, configure.ac: - the missing init/udev.conf
+         added to dist
+
+2011-06-15 13:12 +0000 [r12245]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - Version: 0.4.4.2
+
+2011-06-15 12:45 +0000 [r12244]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * init/rcS.conf, init/udev.conf (added), init/rc.conf,
+         rc.d/rc.sysinit: - some more 'emits' and a dummy Upstart job
+         added so the new 'initctl check-config' won't complain.
+
+2011-06-15 10:51 +0000 [r12243]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * doc/upstart.txt: - upstart usage docs updates
+
+2011-04-18 09:50 +0000 [r12230]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: remove debug
+
+2011-04-14 09:42 +0000 [r12228]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - make sure the
+         default ip rules are preserved over network restart even if 'ip
+         rule show' displays them using numeric table values. I have a
+         system where 'from all lookup 255' is returned instead of 'from
+         all lookup local' for unknown reason, but it could also happen if
+         /etc/iproute2/rt_tables file is missing or corrupted. And bad
+         things happen (IPv4 not working) if the 'lookup local' rule is
+         missing.
+
+2011-04-08 19:15 +0000 [r12223]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: move status all to function
+
+2011-03-29 13:26 +0000 [r12219]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Revert disabling
+         IPv6. Unfortunately it disables only IPv6 addresses while
+         socket(AF_INET6,...) still succeeds creating ill efect.
+
+2011-03-25 16:55 +0000 [r12215]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Set sysctl value
+         quietly.
+
+2011-03-23 21:45 +0000 [r12214]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: One more fix.
+
+2011-03-23 20:42 +0000 [r12213]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Really disable IPv6.
+
+2011-03-23 20:35 +0000 [r12212]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Disable IPv6 if it
+         is not enabled in config.
+
+2011-03-21 22:15 +0000 [r12211]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * doc/sysconfig.txt, sysconfig/Makefile.am, doc/sysconfig.docb,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-routes: - add static-routes6
+         support (IPv6-only ip routes and rules)
+
+2011-03-21 20:30 +0000 [r12210]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/static-routes6 (added): - IPv6 specific rules and
+         routes, rationale: some rules (and even routes) are addressless
+         (e.g. fwmark or 'default' route), because of this simple ip
+         <rule> won't handle IPv6, we have to use ip -6 <rule>
+
+2011-03-20 01:00 +0000 [r12206-12207]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.4.1, fixes typo in set_up_loopback
+
+       * sysconfig/network-scripts/functions.network: - use proper device
+
+2011-03-20 00:09 +0000 [r12203]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.4.0
+
+2011-03-19 23:57 +0000 [r12202]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * src/Makefile.am, configure.ac: - fix glib2 static linking
+
+2011-03-18 18:19 +0000 [r12201]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - setup static
+         routes for loopback, see
+         http://wiki.squid-cache.org/Features/Tproxy4 why this is needed
+
+2011-03-08 20:49 +0000 [r12198]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         rc.d/init.d/functions: Revert previous commit. Fix is_module
+         instead to do not match partial module names.
+
+2011-03-08 20:34 +0000 [r12197]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Load ipv6 and ipx
+         only when not built into kernel.
+
+2011-03-04 13:37 +0000 [r12188]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-vlan: GVRP default on on vlans
+
+2011-02-19 16:03 +0000 [r12170]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - tabs
+
+2011-02-10 16:37 +0000 [r12138]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - added missing slash
+
+2011-02-10 12:46 +0000 [r12136]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - don't try to find out the subsystem type
+         if none is mounted
+
+2011-02-10 12:26 +0000 [r12135]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - silence mkdir
+
+2011-02-10 12:21 +0000 [r12134]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - always mount on /dev/cpuset (only cpuset
+         is supported by this script) - check if mount point is proper
+         cpuset/cgroup(cpuset) subsys
+
+2011-02-10 12:12 +0000 [r12133]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - mount only cpuset subsys cgroup - no need
+         to parse and check fstab as this script is run after rc.sysinit
+         mounts all filessystems listed there
+
+2011-02-10 11:04 +0000 [r12128-12130]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - put cpuset/cgroup mounts in mtab
+
+       * rc.d/init.d/cpusets: - exit from script if no cpuset/cgroup
+         support in kernel
+
+       * rc.d/rc.sysinit, rc.d/init.d/cpusets: - moved cpuset/cgroup
+         mounting code into cpuset startup script for seamless
+         interoperability with libcgroup
+
+2011-02-09 10:55 +0000 [r12126]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: add killproc -p alias
+
+2011-01-27 06:04 +0000 [r12089-12090]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/Makefile.am: sysconfig/clock is gone
+
+       * sysconfig/clock (removed), doc/sysconfig.docb, doc/sysconfig.txt,
+         rc.d/rc.sysinit: sysconfig/clock and related actions are obsolete
+         now. hwclock knows how to handle these based on adjtime settings.
+
+2011-01-27 05:44 +0000 [r12088]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Check /dev/rtc or /dev/rtc0 existence.
+
+2011-01-25 18:56 +0000 [r12083-12084]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: 0.4.3.8
+
+       * autogen.sh: Disabled --enable-maintainer-mode
+         --enable-compile-warnings (unsupported by current auto*).
+
+2011-01-24 18:19 +0000 [r12082]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network: IPv6 networking on by default.
+
+2010-12-22 10:23 +0000 [r12020]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: Don't mount fs inside of vserver guest.
+
+2010-12-22 05:54 +0000 [r12019]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: cgroup/cpuset can exist in fstab but be
+         commented out. Handle that.
+
+2010-12-20 18:09 +0000 [r12014]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: started instead of busy
+
+2010-12-12 17:42 +0000 [r11982-11983]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.3.7
+
+       * rc.d/init.d/functions: add --user support to run_cmd Usage:
+         run_cmd --user stats "Message" command_to_run arg1 arg2...
+
+2010-12-07 14:08 +0000 [r11973]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - pidfile var
+
+2010-12-03 13:10 +0000 [r11940]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: - some formatting, respect to use functios
+         (RETVAL variable vs exit calls)
+
+2010-12-03 13:04 +0000 [r11939]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: - use functions
+
+2010-12-03 11:43 +0000 [r11936]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: 0.4.3.6
+
+2010-12-03 11:33 +0000 [r11934-11935]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: Bugfix (bring in cryptsetup; cleanups).
+
+       * rc.d/init.d/netfs: Bugfix.
+
+2010-12-03 10:37 +0000 [r11933]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am, rc.d/init.d/network: Bring in netfs.
+
+2010-12-03 10:33 +0000 [r11930-11932]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: : not needed.
+
+       * TODO: - better umount on stop
+
+       * rc.d/init.d/netfs: Bugfixes. Seems to be working fine.
+
+2010-12-03 10:25 +0000 [r11929]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: __umount_*loop from FC.
+
+2010-12-03 10:15 +0000 [r11928]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs: Don't touch nfs if we have separate nfsfs
+         script.
+
+2010-12-03 09:38 +0000 [r11927]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/netfs (added): Networked filesystems mount/umount.
+         Unfinished.
+
+2010-12-02 15:30 +0000 [r11922]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - avoid crypto init retries if no crypttab is
+         setup
+
+2010-11-25 23:54 +0000 [r11913]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't mount cgroup if it's set up in fstab
+         http://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2010-November/152970.html
+         BTW, all this kinda sucks and needs revamp :(
+
+2010-11-07 19:54 +0000 [r11900]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - init crypt mounts also after lvm has been run
+
+2010-11-06 10:47 +0000 [r11894]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.3.5.
+
+2010-11-06 09:57 +0000 [r11893]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/system, rc.d/init.d/functions:
+         Detect isolation only vserver networking. New variable -
+         VSERVER_ISOLATION_NET.
+
+2010-11-06 09:12 +0000 [r11892]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Silent modprobe.
+
+2010-11-06 08:43 +0000 [r11889]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.3.4.
+
+2010-11-06 00:33 +0000 [r11888]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - create /dev/cgroup (see comment)
+
+2010-11-06 00:26 +0000 [r11887]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - use full blown cgroup subsystem if
+         available
+
+2010-11-06 00:11 +0000 [r11886]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - if cgroup is available use all its subsystems
+         instead of just cpusets
+
+2010-11-06 00:07 +0000 [r11885]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - commit at rev 10523 was completely bogus,
+         preventing mounting cpuset at all, as default fstab contains
+         cpuset line with noauto option
+
+2010-10-09 21:21 +0000 [r11840]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/initlog.c: Update initlog from initscripts.
+
+2010-10-06 08:03 +0000 [r11831]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - procname
+
+2010-10-06 07:58 +0000 [r11830]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - killproc wants procname mostly
+
+2010-09-30 04:26 +0000 [r11823]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc: Fix 'local: można używać tylko w funkcji' on bash.
+
+2010-09-19 18:38 +0000 [r11812]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Make sysctl quiet.
+
+2010-09-03 09:07 +0000 [r11801]  shadzik <shadzik/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't check the fs on aufs and squashfs
+         systems
+
+2010-08-26 10:30 +0000 [r11789]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use /var/log/boot.log, to match with plymouth
+         path
+
+2010-08-21 18:00 +0000 [r11788]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Set firmware-loader also when udev is off.
+
+2010-08-01 16:32 +0000 [r11741]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/i18n: - plain en with utf8
+
+2010-08-01 16:13 +0000 [r11739]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - skip lock when making nodes on boot
+
+2010-08-01 16:08 +0000 [r11738]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - check_root_fs to function for readability
+
+2010-08-01 15:58 +0000 [r11735-11737]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - remove locale setup where it is pointless
+         (grep for fixed strings, and cat)
+
+       * rc.d/init.d/template.init: - sample for status with pidfile
+
+       * rc.d/rc.sysinit: - skip unneccesary subshell
+
+2010-07-26 13:31 +0000 [r11715]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - typo
+
+2010-07-26 13:20 +0000 [r11714]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - allow per-interface
+         configuration files for dhclient.conf – single config file with
+         'interface' directive(s) conflicts with interface name given on
+         the command line.
+
+2010-07-21 08:23 +0000 [r11688]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/allowlogin: - functions, exit early if disabled
+
+2010-07-20 08:42 +0000 [r11684]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - ugly hack to still do killall as pgrep is on
+         /usr, or rather drop pgrep as it never returns empty nowadays due
+         kernel threads?
+
+2010-07-08 10:47 +0000 [r11638-11639]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets, rc.d/init.d/network, rc.d/init.d/local,
+         rc.d/init.d/random, rc.d/init.d/single: - ignore /var/lock/subsys
+         remove readonly fs errors (after fsck wants to reboot system)
+
+       * rc.d/init.d/cpusets, rc.d/init.d/allowlogin, rc.d/init.d/network,
+         rc.d/init.d/random, rc.d/init.d/single, rc.d/init.d/killall: -
+         executable initscripts
+
+2010-06-18 06:40 +0000 [r11565]  Bartłomiej Zimoń <cactus/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - fix shutdown/restart on kernels with devtmpfs
+
+2010-06-15 11:37 +0000 [r11562]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * changelog.sh: - changelog.sh script improved and ChangeLog
+         updated
+
+2010-06-15 11:33 +0000 [r11561]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - firmwaredir was wrong
+
+2010-06-15 11:17 +0000 [r11558-11559]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - Version: 0.4.3.3
+
+       * Makefile.am, configure.ac: - firmwaredir relative to
+         ${exec_prefix} to fix 'make distcheck'
+
+2010-06-15 10:13 +0000 [r11557]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - allow multiple dhclient instances running on one machine
+
+2010-06-14 17:25 +0000 [r11555-11556]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/random: - reorganize into functions
+
+       * rc.d/init.d/random: - do not touch host random inside vserver
+         (discussed with baggins and arekm long time ago)
+
+2010-06-08 09:01 +0000 [r11552]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - /proc/cmdline may be unavailable (like
+         in a VServer) make cat quiet in such case
+
+2010-05-18 12:13 +0000 [r11476]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: No need for wait loop.
+         check_link_down sleeps for specified time in 0.5s intervals.
+
+2010-05-17 20:26 +0000 [r11475]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: Wait for wpa_supplicant
+         to actually connect to network before trying dhcp.
+
+2010-05-17 20:20 +0000 [r11474]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Support for max
+         timeout as parameter.
+
+2010-05-17 20:16 +0000 [r11473]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Don't rely on ip
+         link UP checking. Always to mii-tool/ethtool test.
+
+2010-05-17 19:08 +0000 [r11472]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Respect ZEROCONF variable for
+         dhcpcd.
+
+2010-05-17 18:08 +0000 [r11471]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - ok to exit silently in ssd mode of
+         killproc, no need to noise about missing pidfile
+
+2010-05-13 07:17 +0000 [r11462]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * Makefile.am: Include/install firmware-loader.sh brought by commit
+         r10422.
+
+2010-05-12 07:11 +0000 [r11460]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * doc/Makefile.am: - include upstart.txt in the package
+
+2010-05-12 07:08 +0000 [r11459]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * doc/upstart.txt: - notes about job debuging
+
+2010-05-11 17:21 +0000 [r11458]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - Version: 0.4.3.2
+
+2010-05-11 10:10 +0000 [r11449]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * init/Makefile.am: - new listed in Makefile.am
+
+2010-05-11 08:54 +0000 [r11447]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * init/rc.conf (added), init/rcS-sulogin.conf (added),
+         init/rcS.conf (added): - init job descriptions moved from
+         upstart-SysVinit
+
+2010-05-10 17:24 +0000 [r11427]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - note about two modes in daemon
+
+2010-05-10 14:35 +0000 [r11424]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - Version: 0.4.3.1
+
+2010-05-10 14:31 +0000 [r11423]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * src/start-stop-daemon.c, src/Makefile.am,
+         man/start-stop-daemon.8, configure.ac, rc.d/init.d/functions: -
+         'dropcaps' and 'start-stop-daemon-pid-check' patches from
+         packages/rc-scripts applied
+
+2010-05-10 12:59 +0000 [r11422]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - properly quote is_yes() argument
+
+2010-05-10 11:50 +0000 [r11420]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * configure.ac: - Version: 0.4.3.0
+
+2010-05-10 11:23 +0000 [r11419]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * man/es, sysconfig/network-scripts, sysconfig/interfaces,
+         sysconfig/interfaces/down.d/all, sysconfig/cpusets, isapnp,
+         sysconfig/interfaces/up.d/tnl, rc.d/rc.sysinit,
+         rc.d/init.d/random, sysconfig/interfaces/up.d/ppp,
+         sysconfig/interfaces/up.d/ipx, service, /, configure.ac, man/sv,
+         man/de, sysconfig, man/ja, Makefile.am, rc.d/init.d,
+         sysconfig/interfaces/down.d/tnl, po,
+         sysconfig/interfaces/down.d/ppp, sysconfig/interfaces/down.d/ipx,
+         man/fr, rc.d/init.d/functions, doc/make-html, doc/upstart.txt
+         (added), sysconfig/hwprofiles, rc.d, src,
+         sysconfig/interfaces/down.d/ip, src/setuidgid.c (added), rc.d/rc,
+         sysconfig/interfaces/up.d, ppp, sysconfig/interfaces/data,
+         src/Makefile.am, man/ru, init (added), t/backtick-test.sh,
+         rc.d/init.d/network, rc.d/rc.shutdown,
+         sysconfig/interfaces/up.d/ip, sysconfig/interfaces/up.d/all, doc,
+         init/random.conf, man, init/Makefile.am,
+         sysconfig/interfaces/down.d: - upstart_native branch merged
+
+2010-05-02 12:16 +0000 [r11364]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown,
+         sysconfig/network, doc/net-scripts.txt,
+         sysconfig/network-scripts/functions.network: - support for
+         zeroconf networking (based on information from
+         http://avahi.org/wiki/AvahiAutoipd#Routes)
+
+2010-04-21 20:24 +0000 [r11340]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - grab $ACTION variable
+
+2010-04-21 18:26 +0000 [r11339]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - nicer output (brief) for --status-all ported from
+         ubuntu
+
+2010-04-21 18:21 +0000 [r11338]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * service: - identify as pld
+
+2010-04-07 07:02 +0000 [r11312-11313]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.2.8
+
+       * rc.d/init.d/functions: - add --redirfds similar to --closefds
+
+2010-04-05 19:18 +0000 [r11309]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - tabs
+
+2010-04-05 19:13 +0000 [r11308]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - no need to load service config to
+         check network state
+
+2010-02-08 17:34 +0000 [r11137]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: - WLAN_WPA_DRIVER should
+         default to wext
+
+2010-02-08 17:11 +0000 [r11136]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - skip dead pids in status() with
+         --pidfile, or is filter_chroot() broken by design?
+
+2010-02-08 17:06 +0000 [r11135]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * t/status-pidfile.sh (added): - test for status() --pidfile
+
+2010-02-08 16:51 +0000 [r11134]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * backtick-test.sh (removed), t (added), t/backtick-test.sh
+         (added): - move tests to t/
+
+2010-01-15 13:56 +0000 [r11113]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Use two separate tests instead of single
+         double test since bash yells about wrong integer if variable is
+         empty (and bash can source functions file).
+
+2010-01-11 10:52 +0000 [r11099]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * changelog.sh: - C locale for consistent changelog
+
+2010-01-11 09:07 +0000 [r11098]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/system: Drop EVMS_MD since it's not used.
+
+2010-01-10 22:05 +0000 [r11096]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.2.7.
+
+2009-12-02 19:13 +0000 [r11004]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - more reverting baggins buzybox branch changes
+         regarding hwclock
+
+2009-11-24 11:07 +0000 [r11001]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.shutdown: - having EVMS_LVM=yes without
+         the tools doesn't make them work - having EVMS_LVM=no mustn't
+         prevent plain LVM from bringing up - conclusion: these parts of
+         code are EVMS_LVM independant
+
+2009-11-22 23:24 +0000 [r10999]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/Makefile.am: - add rc.init back
+
+2009-11-22 23:14 +0000 [r10998]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.init (added): - restore, but this time with some doc too
+
+2009-11-22 20:39 +0000 [r10996]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - hwclock doesn't recognize -l (patch from
+         devel-en)
+
+2009-11-22 13:54 +0000 [r10995]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - formatting
+
+2009-11-22 13:51 +0000 [r10993-10994]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - nwid already set
+         earlier
+
+       * rc.d/init.d/network: - typo, dots
+
+2009-11-22 09:19 +0000 [r10990-10992]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.init (removed), rc.d/Makefile.am: - rc.init does not seem
+         to be used anywhere; remove it
+
+       * sysconfig/network: - mention HOTPLUG
+
+       * sysconfig/interfaces/ifcfg-description: - cleanup
+
+2009-11-20 12:58 +0000 [r10989]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - cleanup trailing whitespace
+
+2009-11-20 12:54 +0000 [r10988]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: - back to /bin/sh
+
+2009-11-20 12:35 +0000 [r10985-10987]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * modules: - apply rc-scripts-modules.patch
+
+       * configure.ac: - prepare for 0.4.2.6 release
+
+2009-11-19 21:21 +0000 [r10984]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - with --pidfile set in status(), don't
+         make wrong assumptions by finding process by name
+
+2009-11-19 21:07 +0000 [r10983]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fix weird typo
+
+2009-11-19 20:41 +0000 [r10982]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - if pidfile specified, pid must be there,
+         don't fallback for pidof(1)
+
+2009-11-19 13:31 +0000 [r10981]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.local: - rc.local is sourced, not executed
+
+2009-11-17 07:10 +0000 [r10976]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/init.d/sys-chroots, rc.d/rc,
+         rc.d/rc.sysinit, rc.d/init.d/cryptsetup: - partial merge of
+         baggin's busybox branch changes
+
+2009-11-17 06:22 +0000 [r10975]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - status -p shortopt for --pidfile
+
+2009-11-16 14:49 +0000 [r10971]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: -
+         unknown/unsupported: return 2 if no tools found or all the
+         methods failed
+
+2009-11-16 14:07 +0000 [r10970]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - don't call
+         check_mii_tool if ethtool or iwconfig reported success
+
+2009-11-16 14:03 +0000 [r10969]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - check rfkill
+         before iwconfig (more common and doesn't require binary) - note
+         /sys/class/net/${1}/operstate file on some systems
+
+2009-11-16 14:00 +0000 [r10968]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - it's common for
+         WiFi that all the methods of link state determinaion fail, don't
+         abort dhclient in such case
+
+2009-11-04 08:03 +0000 [r10945]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-br: - don't disable bridged device
+         just before bridge starts! - this interrupts every subdevice
+         currently active (like VLAN interfaces in another bridges)
+
+2009-11-04 07:58 +0000 [r10944]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-br: - dont't set bridged device
+         down! some subdevice can still be used (e.g. VLAN interface in
+         another bridge), - NOTE: addresses from underlying device are
+         flushed on ifup-br so there should not exist anyone anyway
+
+2009-11-03 15:47 +0000 [r10933]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-br: - bridge forward delay is used
+         regardless of STP, - NB hello timer runs always too, it's just
+         not used without STP
+
+2009-10-25 18:33 +0000 [r10854]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: - fix devs detect
+
+2009-10-16 08:50 +0000 [r10792]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - stderr redirected anyway, nothing
+         special needed in configtest()
+
+2009-10-15 10:03 +0000 [r10789]  Paweł Zuzelski <pawelz/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-playmobile: - do not reduce
+         MTU by default. It kills ipsec.
+
+2009-10-15 09:32 +0000 [r10788]  Paweł Zuzelski <pawelz/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.gprs-playmobile (added),
+         sysconfig/interfaces/ifcfg-ppp0.gprs-playmobile (added): - ppp
+         configuration for PLAY MOBILE (tested on HUAWEI E169 and E220
+         modems)
+
+2009-10-14 07:35 +0000 [r10784]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - local args in /etc/modules processing
+
+2009-09-14 23:31 +0000 [r10603]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - there's no point in trying to run
+         vg{scan,change} if they're not present; so made them sufficient
+         unless is_no "$EVMS_LVM"
+
+2009-09-02 19:58 +0000 [r10524]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Set rc to 0 for mdadm rc=2 case.
+
+2009-09-01 18:59 +0000 [r10523]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cpuset shouldn't be mounted unconditionally -
+         it has few options
+
+2009-08-30 20:14 +0000 [r10518]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: mdadm status codes 0 and 2 (new in mdadm 3.0)
+         are success
+
+2009-08-25 10:25 +0000 [r10493]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use shell construct
+
+2009-08-25 09:26 +0000 [r10492]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Skip comments in args.
+
+2009-08-24 06:16 +0000 [r10491]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Restore extra check.
+
+2009-08-17 20:34 +0000 [r10490]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, src/getkey.c: New getkey handling (from fc).
+
+2009-08-16 20:53 +0000 [r10487]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.2.4.
+
+2009-08-11 14:06 +0000 [r10473]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - no subshell needed and unify modprobe -c
+         callout
+
+2009-08-11 07:08 +0000 [r10469]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Don't use modprobe.conf file. Use /sbin/modprobe
+         -c output instead.
+
+2009-08-07 17:42 +0000 [r10460]  Marcin Król <hawk/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifup-br, rc.d/rc.sysinit: - '-k' is no
+         longer valid modprobe switch
+
+2009-07-25 19:44 +0000 [r10427]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - configtest alias - allow output of
+         configtest success
+
+2009-07-25 19:29 +0000 [r10426]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - improved configtest output sequence
+
+2009-07-25 19:24 +0000 [r10425]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - add checkconfig action sample
+
+2009-07-25 19:19 +0000 [r10424]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - use <service_name> for msg as it
+         usualy differs
+
+2009-07-21 18:25 +0000 [r10422]  Zbigniew Krzystolik <zbyniu/at/pld-linux.org>
+
+       * firmware-loader.sh (added), rc.d/rc.sysinit: - added
+         firmware-loader.sh for autoload firmware on systems w/o udev
+
+2009-07-17 07:40 +0000 [r10421]  shadzik <shadzik/at/pld-linux.org>
+
+       * sysconfig/i18n: - add en_US.UTF-8/UTF-8 de_DE.UTF-8/UTF-8
+         en_GB.UTF-8/UTF-8 to supported langs
+
+2009-07-16 18:09 +0000 [r10420]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Update LINES correctly.
+
+2009-07-16 17:07 +0000 [r10419]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: On IPMI serial console COLUMNS ends up
+         with negative value like -13. Protect agains such thing. Also
+         protect LINES.
+
+2009-07-01 04:39 +0000 [r10409]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * acinclude.m4: - fix underquoted definition warning
+
+2009-07-01 04:35 +0000 [r10408]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.2.3
+
+2009-06-29 00:13 +0000 [r10399]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - nice message about kexec being used
+
+2009-06-28 22:17 +0000 [r10398]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - invoke kexec only if image loaded
+
+2009-06-05 18:30 +0000 [r10372]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network: - update udev path
+
+2009-06-03 06:29 +0000 [r10367-10369]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - one local should
+         be enough
+
+       * rc.d/init.d/functions: - update path
+
+       * sysconfig/network-scripts/functions.network: - i don't think cat
+         output is localized
+
+2009-06-02 20:34 +0000 [r10366]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Add rfkill support.
+
+2009-05-26 19:51 +0000 [r10361]  Zbigniew Krzystolik <zbyniu/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - don't kill -KILL (in start-stop-daemon),
+         try TERM first
+
+2009-05-22 18:30 +0000 [r10358]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * DEVELOPMENT, configure.ac: Prepare for 0.4.2.2.
+
+2009-04-23 20:59 +0000 [r10333]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Don't rely on mii
+         check (it's unreliable). 'radio off' clarifications. Less
+         iterations in loop.
+
+2009-04-07 09:28 +0000 [r10321-10322]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Don't check for /dev/rtc existence. When using
+         udev it doesn't exist usually.
+
+       * rc.d/rc.sysinit: Don't check for /dev/rtc existence. When using
+         udev it doesn't exist usually.
+
+2009-03-26 15:11 +0000 [r10264]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: - more readable
+
+2009-03-26 13:33 +0000 [r10253]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: - set addrlabel only if
+         specified
+
+2009-03-23 16:07 +0000 [r10235]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.2.1
+
+2009-03-21 21:30 +0000 [r10225-10226]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: - correct
+
+       * rc.d/init.d/sys-chroots: - invert condition to bring down one
+         level of indent
+
+2009-03-21 21:24 +0000 [r10223-10224]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/local: - proper order of commands
+
+       * rc.d/init.d/killall: - correction
+
+2009-03-21 21:17 +0000 [r10222]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/allowlogin: - why the space?
+
+2009-03-20 16:03 +0000 [r10221]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Set nickname only
+         when specified in config since many wifi adapters don't support
+         this setting.
+
+2009-03-19 00:15 +0000 [r10218]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * DEVELOPMENT, sysconfig/network-scripts/functions.network,
+         rc.d/init.d/functions, rc.d/rc, rc.d/rc.sysinit: - use "local"
+         not "typeset" (compatible with: pdksh/bash/dash)
+
+2009-03-16 11:34 +0000 [r10214]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.shutdown: - shorter lvm version detect
+
+2009-03-16 11:27 +0000 [r10213]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - remove unneeded subshells
+
+2009-03-16 11:23 +0000 [r10212]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: - typo
+
+2009-03-15 23:09 +0000 [r10210-10211]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, sysconfig/system: - added UMOUNT_IGNORE option
+
+       * rc.d/rc.shutdown: - refactor awk invocation in fs unmounting code
+
+2009-03-12 15:32 +0000 [r10208]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * inittab: - sX prefix ofr serial lines
+
+2009-03-11 12:41 +0000 [r10203]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.2.0, well deserved version bump after few
+         years of development
+
+2009-03-10 11:39 +0000 [r10197-10198]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup: - addlabel is IPv6 only
+
+       * sysconfig/network-scripts/ifup-aliases: - added addrlabel support
+
+2009-03-10 11:33 +0000 [r10196]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: - removed dead code
+
+2009-03-10 11:20 +0000 [r10195]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - add IP_LABEL support
+
+2009-03-10 11:16 +0000 [r10194]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - allow addrlabel
+         setting for ipv4 adresses
+
+2009-03-10 11:11 +0000 [r10192-10193]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - remove IP6_SRC_IF
+         dead code - started adding IP_LABEL
+
+       * doc/net-scripts.txt: - remove IP6_SRC_IF, add IP_ALABEL
+
+2009-03-10 11:02 +0000 [r10191]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - just remove IP6_SRC_IF
+         to avoid confusion
+
+2009-03-10 10:56 +0000 [r10190]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - add IP_LABEL setting
+         for ip addrlabel (see RFC 3484) - added comment about uselessness
+         of IP6_SRC_IF setting
+
+2009-03-09 21:21 +0000 [r10186]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - use exntended regexp functionality
+
+2009-03-09 21:12 +0000 [r10185]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/tnldown, rc.d/rc.sysinit,
+         rc.d/init.d/cryptsetup, sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/functions.network,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifup-vlan: - man
+         grep, "Direct invocation as either egrep or fgrep is deprecated",
+         use grep -F or grep -E
+
+2009-03-09 21:04 +0000 [r10183-10184]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix syntax
+
+       * rc.d/init.d/functions: - man grep, glen. "Direct invocation as
+         either egrep or fgrep is deprecated" - and better safe than
+         sorry, use grep -E with proper regexp
+
+2009-03-09 18:50 +0000 [r10181-10182]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-vlan: - ip link help might be
+         localized, remove unneeded subshell
+
+       * rc.d/init.d/functions: - /proc/mounts isn't localized and it has
+         fixed format (use fgrep)
+
+2009-03-09 18:03 +0000 [r10180]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use is_fsmounted for checking mount points -
+         fix mtab entry for /dev/cpuset
+
+2009-03-09 17:47 +0000 [r10179]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - use /proc/mounts if available for
+         checking mounted fs
+
+2009-03-09 16:07 +0000 [r10178]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - check if /proc and /sys are mounted before
+         trying to mount them
+
+2009-03-09 15:54 +0000 [r10177]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added is_fsmounted function to check if
+         a given filesystem is mounted, requires /bin/stat (i.e. coreutils
+         >= 7.1-2)
+
+2009-03-08 15:48 +0000 [r10176]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - rc.d/init.d/network calls
+         "/sbin/ifup tnlcfg-$i boot" causing awk: cannot open tnlcfg-tun0
+         (No such file or directory) from ifup-post tnlcfg-tun0 (calling
+         ifup-aliases without full $CONFIG path) This fixes long lasting
+         bug:
+         http://www.mail-archive.com/pld-devel-pl@lists.pld-linux.org/msg18413.html
+         http://www.mail-archive.com/pld-devel-pl@lists.pld-linux.org/msg11198.html
+
+2009-03-06 12:56 +0000 [r10174]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - daemon() startup errors dump to stderr
+
+2009-03-02 12:39 +0000 [r10159]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - no bashism, typo
+
+2009-03-02 12:28 +0000 [r10158]  Zbigniew Krzystolik <zbyniu/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - remount rootfs rw only if no option 'ro' in
+         fstab - hide remove errors on /etc/*mtab~* /fastboot etc
+
+2009-02-27 16:36 +0000 [r10150]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-vlan: - fixed exit status when no
+         appropriate tools found
+
+2009-02-27 16:33 +0000 [r10149]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-vlan: - restored vconfig support
+         for older iproute2 users
+
+2009-02-25 07:43 +0000 [r10146]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - less indent by using return in
+         functions
+
+2009-02-21 12:43 +0000 [r10135]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc, sysconfig/network-scripts/functions.network: Comparsion
+         correction.
+
+2009-02-20 09:05 +0000 [r10133]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Preparations for 0.4.1.27.
+
+2009-02-19 20:03 +0000 [r10132]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - 15 seems to be normal color on 16 and
+         256 color consoles
+
+2009-02-19 10:15 +0000 [r10130]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - typo
+
+2009-02-17 17:23 +0000 [r10127]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added {waitname:+--name $waitname} to
+         ssd, otherwise there's no way to start qpopperd and qpoppersd
+         both at the same time /usr/sbin/qpoppersd already running. - use
+         long options names
+
+2009-02-16 01:07 +0000 [r10123-10124]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - keep one style of spacing, do not
+         pollute sh with C-style comparision == operator
+
+       * rc.d/init.d/functions: - expand relative --pidfile to absolute
+         /var/run path; ssd in killproc has broken plenty of daemons
+         including amavisd-new, apache and clamav - dropped ancient
+         /usr/X11R6/bin from $PATH
+
+2009-02-12 11:29 +0000 [r10122]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - calculate default INIT_COL from terminal
+         size
+
+2009-02-12 11:26 +0000 [r10121]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: - no hardcoded default in config for INIT_COL
+
+2009-02-09 19:59 +0000 [r10115]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - typo
+
+2009-02-04 20:28 +0000 [r10099]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - makepid functionality to daemon function
+
+2009-01-25 14:58 +0000 [r10096]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - LC_ALL=C for greps
+
+2009-01-23 15:03 +0000 [r10095]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - local output for
+         func internal vars
+
+2009-01-23 13:54 +0000 [r10094]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - grepping pid from ps ax could
+         be ambigous, use kill -0 for running-pid-check
+
+2009-01-23 13:45 +0000 [r10093]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - revert unwanted commit
+
+2009-01-23 13:39 +0000 [r10092]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifdown-irda,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip, sysconfig/system,
+         sysconfig/network-scripts/ifup-iucv, rc.d/rc,
+         sysconfig/network-scripts/ifdown-post, rc.d/rc.init, lang.csh,
+         hwprofile, service, sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-irda,
+         sysconfig/network-scripts/ifup-routes, rc.d/rc.shutdown,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifup-plusb,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifdown-br,
+         sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/ifup-ppp: - cleanup vi:syntax, not
+         needed and doesn't work anyway (should be vim:ft if any)
+
+2009-01-23 13:34 +0000 [r10091]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * Makefile.am, sysconfig/network-scripts/ifdown-br,
+         rc.d/init.d/cryptsetup,
+         sysconfig/network-scripts/functions.network, configure.ac,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-vlan,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown: - force LC_ALL=C when grepping
+         data from possibly localized program outputs
+
+2009-01-22 09:06 +0000 [r10090]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: Mention GVRP option.
+
+2009-01-22 09:02 +0000 [r10089]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/pl.po: Update
+
+2009-01-22 08:56 +0000 [r10087-10088]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-vlan: Prefer vlan creation using
+         iproute2, fallback to vconfig.
+
+       * sysconfig/network-scripts/ifdown: No need for special handling
+         for vlans when downing master device.
+
+2009-01-22 08:41 +0000 [r10086]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-vlan: vconfig no longer needed
+         here.
+
+2009-01-22 07:43 +0000 [r10085]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifdown-vlan: Delete devices using
+         iproute2.
+
+2009-01-05 19:08 +0000 [r10050]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/init.d/cpusets: - use noprefix mount option
+         for cgroup cpuset
+
+2009-01-02 19:01 +0000 [r10047-10048]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/cpusets/cpuset-test: - removed reference to cpuset
+         virtualization (feature long dead, and no signs of resurrection)
+
+       * rc.d/init.d/cpusets: - fix for /dev/cpuset mounted as cgroup
+         -ocpuset
+
+2008-12-31 19:25 +0000 [r10044]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: 0.4.1.26
+
+2008-12-25 07:08 +0000 [r10040]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - optional argument in square brackets
+
+2008-12-16 19:00 +0000 [r10038]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - add usage for killproc - shift 2 is
+         better than shift shift
+
+2008-12-16 18:55 +0000 [r10037]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - try ssd for killproc. needs pidfile to
+         work reliably - what values to use for --retry?
+
+2008-12-11 17:04 +0000 [r10034]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - display LVM VG stats after LVM has been
+         initialized
+
+2008-12-09 14:35 +0000 [r10030]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp, rc.d/rc.shutdown, po/pl.po,
+         sysconfig/system, rc.d/rc.sysinit: - removed DevFS support
+
+2008-12-09 14:31 +0000 [r10029]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - udev-135-2 finally creates /dev/cpuset
+         directory - use cgroup fs in newer kernels
+
+2008-12-04 19:49 +0000 [r10022]  Paweł Sikora <pluto/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - allow usb group to operate on /proc/bus/usb.
+
+2008-12-02 07:14 +0000 [r10020]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysctl.conf: Leave default for kernel.
+
+2008-12-02 00:08 +0000 [r10019]  Paweł Sikora <pluto/at/pld-linux.org>
+
+       * sysctl.conf: - describe kernel.randomize_va_space feature.
+
+2008-11-30 19:27 +0000 [r10016]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-vlan: Load 8021q module.
+
+2008-11-30 15:15 +0000 [r10014]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - add --pidfile to status()
+
+2008-11-28 16:09 +0000 [r10010]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0.1,
+         sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: macvlan support.
+
+2008-11-27 14:47 +0000 [r10007]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - load dm-mod before using dmsetup in multipath
+         case
+
+2008-11-18 13:40 +0000 [r9998]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - catch missing device errors
+
+2008-11-18 13:26 +0000 [r9996-9997]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.kou: - it starts pppd right
+         after connection - with kernel or fixed firmware there's OK said
+         after ATZ
+
+       * sysconfig/interfaces/ifcfg-ppp0.kou: - add debug line (disabled)
+
+2008-11-14 01:23 +0000 [r9991]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - use nls
+
+2008-11-12 23:27 +0000 [r9985]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - dmsetup mknodes so the startup doesn't
+         complain on missing nodes
+
+2008-11-10 00:46 +0000 [r9974]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - output formatting cosmetics
+
+2008-11-10 00:15 +0000 [r9973]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cryptsetup: - no bashism
+
+2008-11-05 22:48 +0000 [r9970]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - add --chdir to daemon()
+
+2008-11-05 22:39 +0000 [r9969]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - -u is for stopping in ssd
+
+2008-11-04 20:04 +0000 [r9963]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - wtf 0.4.1.24 was already there? bump to 0.4.1.25
+         then
+
+2008-11-04 19:57 +0000 [r9962]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * DEVELOPMENT: - somewhy have to svn up again after configure.ac
+         commit
+
+2008-11-04 19:45 +0000 [r9959]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.24 release
+
+2008-11-04 18:07 +0000 [r9958]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lang.sh: - LC_ALL was still overwritten with i18n value even if
+         one had from ssh session
+
+2008-10-29 08:54 +0000 [r9927]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * run-parts: - rip out -u <runas_user> -- it's bad concept and
+         nothing should be using it anyway
+
+2008-10-28 00:09 +0000 [r9926]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * run-parts: - add --test and -- to behave like debian run-parts(1)
+
+2008-10-26 13:43 +0000 [r9922]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - introduce START_UDEV
+         variable
+
+2008-10-25 22:53 +0000 [r9921]  Andrzej Dopierała <undefine/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - wpa is also usefull with not wireless devices - eg with 8021x.
+         - patch by Pawel Nogas <pnogas(AT)amu(DOT)edu(DOT)pl>
+
+2008-10-25 18:35 +0000 [r9920]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - removed sed dependency
+
+2008-10-25 18:16 +0000 [r9918-9919]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0.1: - typo
+
+       * sysconfig/network-scripts/ifdown, doc/net-scripts.txt,
+         sysconfig/interfaces/ifcfg-eth0, sysconfig/network-scripts/ifup:
+         - support for automatic 6to4 tunnels
+
+2008-10-13 13:21 +0000 [r9909]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * backtick-test.sh (added), rc.d/init.d/network: - restored some
+         backticks - pdksh has broken $(...) closing paren detection, -
+         added backtick-test.sh to test whenever this would be valid some
+         day
+
+2008-10-13 01:04 +0000 [r9908]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets, rc.d/init.d/functions, rc.d/init.d/network:
+         - unified function definitions (line-saving way), - use
+         unambiguous $(...) instead of backticks.
+
+2008-10-12 18:08 +0000 [r9907]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - start-stop-daemon uses -c not -u to
+         change UID
+
+2008-09-16 20:39 +0000 [r9869]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * inittab: - full set of samples for default terminals (default
+         keymap doesn't allow you switch over 12)
+
+2008-09-15 08:23 +0000 [r9868]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * inittab: - you don't likely need so many terminals
+
+2008-08-07 20:39 +0000 [r9860]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Actually don't use -s option since dmesg uses
+         klogctl() to retrieve real ring buffer size.
+
+2008-08-07 20:36 +0000 [r9859]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: dump 524288 of dmesg data
+
+2008-07-24 10:10 +0000 [r9851]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysctl.conf: Don't set net.ipv4.ip_local_port_range; use kernel
+         default
+
+2008-07-24 10:06 +0000 [r9850]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysctl.conf: Disable tcp syncookies by default (these disable
+         SACK which according to DaveM 'sets TCP stack back by 10 years')
+
+2008-07-22 17:39 +0000 [r9849]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/i18n: - proper encoding for de_DE
+
+2008-07-17 20:42 +0000 [r9846]  shadzik <shadzik/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - wpa_supplicant 0.6.3 doesn't
+         have a "-w" option!!
+
+2008-06-10 21:00 +0000 [r9801]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - try last resort in setting
+         MODEMPORT - compatibility change.
+
+2008-06-01 11:28 +0000 [r9785]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Export ISATTY. Calling this test from
+         inside of initlog() return true even if output still goes into
+         terminal. By exporting we make sure that initial test result is
+         used for entire run of the script. Fixes wrong 'DONE' string
+         alignment when bringin up dhcp.
+
+2008-05-22 19:08 +0000 [r9761]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: Return can be only from
+         function. Use exit.
+
+2008-05-19 06:21 +0000 [r9759-9760]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - tabs
+
+       * rc.d/init.d/functions: - try not to use initlog if $RC_LOGGING is
+         off (avoits usleeps for each startup)
+
+2008-05-19 06:05 +0000 [r9756-9757]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.23
+
+       * rc.d/init.d/functions: - add --pidfile to daemon()
+
+2008-04-27 02:00 +0000 [r9733]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - disable log_success/log_failed when
+         RC_LOGGING is off
+
+2008-04-27 01:34 +0000 [r9731-9732]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/tnlcfg-description: - utf8
+
+       * doc/polski.dsl, doc/sysconfig.docb, doc/rc-scripts.docb: - utf8
+
+2008-04-27 01:29 +0000 [r9730]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac, rc-scripts.spec.in (removed), Makefile.am: -
+         outdated, use spec from cvs
+
+2008-04-27 01:24 +0000 [r9729]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-irda,
+         sysconfig/network-scripts/ifdown-vlan,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown-br, hwprofile,
+         sysconfig/network-scripts/ifup-irda, rc.d/init.d/functions,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/tnlup: - utf8
+
+2008-04-27 01:20 +0000 [r9728]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * AUTHORS: - utf8
+
+2008-04-24 21:23 +0000 [r9724-9725]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.22
+
+       * rc.d/init.d/functions: - make stripping string suffixes from
+         EXTRAVER more greedy
+
+2008-04-23 22:35 +0000 [r9720-9722]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.21
+
+       * rc.d/rc.sysinit: - leave note for future not to fall again
+
+       * rc.d/init.d/functions: - handle also `uname -r` returning
+         "2.6.25-1"
+
+2008-04-23 22:27 +0000 [r9718-9719]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - second try: /var/run cleanup without find and
+         without args len exceeded error
+
+       * rc.d/init.d/functions: - fix for kernels whose release is
+         "2.6.25_vanilla-1", found by vip`
+
+2008-04-16 17:30 +0000 [r9711]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/i18n: Obsolete texts.
+
+2008-04-09 09:02 +0000 [r9703-9704]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.20
+
+       * rc.d/rc.sysinit: - reverted r9238, /usr may NOT be mounted at
+         this time, ever heard of NFS?
+
+2008-03-27 15:42 +0000 [r9688]  Patryk Zawadzki <patrys/at/pld-linux.org>
+
+       * configure.ac: - bump version to 0.4.1.19
+
+2008-03-27 15:19 +0000 [r9687]  Patryk Zawadzki <patrys/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - force reboot/halt to work with other init
+         daemons
+
+2008-03-26 19:43 +0000 [r9685]  Sławomir Paszkiewicz <paszczus/at/pld-linux.org>
+
+       * configure.ac: - forgot to commit; 0.4.1.18
+
+2008-03-26 16:20 +0000 [r9682]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * setsysfont: - /usr is not mounted when this is called from
+         rc.sysinit
+
+2008-03-26 14:42 +0000 [r9681]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network: - i always set full hostname here, why "only
+         hostname" comment?
+
+2008-03-26 08:46 +0000 [r9680]  Sławomir Paszkiewicz <paszczus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - "sync" option must be used
+         before "plugin" option - changes made by seba (at) pro-ject.net
+         (merged from cvs)
+
+2008-03-26 08:42 +0000 [r9677-9679]  Sławomir Paszkiewicz <paszczus/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am: - added
+         ifcfg-ppp0.ueagle4-neostrada
+
+       * sysconfig/interfaces/ifcfg-description: - added SYNC option
+
+       * sysconfig/interfaces/ifcfg-ppp0.ueagle4-neostrada (added): -
+         config for neostrada using usb modem Sagem E4
+
+2008-03-26 08:11 +0000 [r9675]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.17
+
+2008-03-25 23:41 +0000 [r9674]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - more chkconfig vars
+
+2008-03-25 15:14 +0000 [r9670-9671]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - actually check $MODEMPORT
+         being chardevice after all *DSL variants
+
+       * sysconfig/network-scripts/ifup-ppp: - check $MODEMPORT set from
+         config (not the value set from this script)
+
+2008-03-24 19:17 +0000 [r9667-9668]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.16
+
+       * sysconfig/network-scripts/functions.network: - return val doc for
+         check_{mii_tool,ethtool,iwconfig} - code readability
+
+2008-03-22 12:14 +0000 [r9649]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - typo
+
+2008-03-19 14:21 +0000 [r9646]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Use .sh - safer.
+
+2008-03-19 12:51 +0000 [r9645]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Multiple UPS support.
+
+2008-03-09 12:33 +0000 [r9575]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * setsysfont: - use "locale charmap" to detect UTF-8 locales
+         properly - call unicode_stop for non-UTF locales (Linux 2.6.24+
+         has unicode console by default)
+
+2008-03-01 18:01 +0000 [r9549]  Andrzej Dopierała <undefine/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0: - add commented DHCP_OPTIONS
+         option to show how to pass parameters to dhcp client
+
+2008-02-27 10:35 +0000 [r9533]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - fix for network script that it does not enslave eth interfaces
+         from it during stop phase (Ilja Bobkevič)
+
+2008-02-18 20:56 +0000 [r9424]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - require $MODEMPORT being
+         character device (/dev/modem, /dev/tts/USB0)
+
+2008-02-14 15:23 +0000 [r9346]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.pppoe (added): - add config i
+         used for adsl setup
+
+2008-02-11 10:16 +0000 [r9303]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: mdadm stop will yell that it can't stop rootfs
+         array. Such errors are misleading and useless.
+
+2008-02-09 20:00 +0000 [r9279]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - fail on required MODEMPORT
+         (or set it to /dev/modem?)
+
+2008-02-08 22:58 +0000 [r9254]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - typo
+
+2008-02-08 22:17 +0000 [r9252-9253]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/Makefile.am: - kõu disconnect script
+
+       * sysconfig/interfaces/data/chat-ppp0.kou-disconnect (added): -
+         disconnect script (not tested)
+
+2008-02-08 19:34 +0000 [r9240-9245]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/data/Makefile.am: - files for kõu
+         (http://www.kou.ee/)
+
+       * sysconfig/interfaces/ifcfg-ppp0.kou: - renamed chatscript
+
+       * sysconfig/interfaces/data/chat-ppp0.kou (added),
+         sysconfig/interfaces/data/chat-kou (removed): - renamed
+
+       * sysconfig/interfaces/ifcfg-ppp0.kou (added),
+         sysconfig/interfaces/ifcfg-kou (removed): - renamed
+
+       * sysconfig/interfaces/data/chat-kou (added): - chat script for kõu
+         (http://www.kou.ee/)
+
+       * sysconfig/interfaces/ifcfg-kou (added): - config for kõu
+         (http://www.kou.ee/)
+
+2008-02-08 17:34 +0000 [r9238]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use find to overcome arguments length exceeded
+         when descending to php sessions dir (and yes, /usr is already
+         mounted when this code is ran)
+
+2008-02-08 15:39 +0000 [r9237]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - give hint on missing
+         chatscript error
+
+2008-02-08 14:54 +0000 [r9236]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - placeholder for
+         WVDIALSECT
+
+2008-01-29 12:10 +0000 [r9209]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * modules: - mention that /etc/modules.X.Y and /etc/modules.X.Y.Z
+         are readed too - mention that module options are processed too
+
+2008-01-15 09:40 +0000 [r9174]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.local: - leave EOF clean ;)
+
+2007-12-30 13:31 +0000 [r9170]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - prepare 0.4.1.15
+
+2007-12-27 00:52 +0000 [r9162]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - handle when there's no terminal attached
+         (f.e gui tools like smart)
+
+2007-12-17 17:39 +0000 [r9145]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/local: - implement status
+
+2007-12-17 17:35 +0000 [r9144]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/allowlogin: - implement status
+
+2007-12-11 12:29 +0000 [r9137-9140]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - prepare 0.4.1.14
+
+       * rc.d/rc.sysinit: - load dm-multipath module before multipath
+         activating for setups when rootfs was not also on multipath
+
+2007-12-10 22:25 +0000 [r9135]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * lang.sh: - cosmetics
+
+2007-12-10 22:20 +0000 [r9134]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * lang.sh: Don't overwrite session settings (that can be comming
+         from ssh).
+
+2007-12-08 13:05 +0000 [r9132]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: - cleanups
+
+2007-12-08 13:02 +0000 [r9130-9131]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: - added reload target (will ask DHCP client
+         to renew lease), only dhcpcd supported for now
+
+       * sysconfig/network-scripts/functions.network: - minor cosetics
+
+2007-12-05 13:15 +0000 [r9128]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/Makefile.am, rc.d/rc.modules (removed): - rc.modules
+         functionality integrated to rc.sysinit
+
+2007-12-05 13:02 +0000 [r9127]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - formatting
+
+2007-12-01 20:49 +0000 [r9125]  Adam Gołębiowski <adamg/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - skip fsck on / if device node doesn't exist
+         yet, e.g.: rootfs-on-lvm and udev is used (perhaps we should try
+         to fsck / once more later on?)
+
+2007-11-28 20:28 +0000 [r9117]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - simplicity and verboseness wins: let
+         try-restart inform if service is not running
+
+2007-11-26 20:37 +0000 [r9102]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup: - apply
+         SOURCES/rc-scripts-dev_alias.patch (if it is buggy then the bugs
+         should be fixed -- it's been applied in pld ac for ages)
+
+2007-11-26 20:32 +0000 [r9101]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - /etc/rc.d/rc.modules moved to internal
+         functions - module paramters also accepted from modules file
+
+2007-11-26 20:15 +0000 [r9100]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - make $RUN_DEPMOD=ifmissing really behave so as
+         described (depmod -A stats every module file in modules dir)
+
+2007-11-26 20:08 +0000 [r9096-9099]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.modules: - plain modprobe the module - skip loading
+         rc-scripts functions if they appear to be loaded already
+
+       * rc.d/rc.shutdown: - apply SOURCES/rc-scripts-fuser.patch
+
+       * rc.d/init.d/functions: - tab-safe is_empty_file() now (from
+         rc.modules)
+
+       * sysconfig/system: - add $RC_BOOTLOG=yes
+
+2007-11-26 17:46 +0000 [r9092]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - prepare 0.4.1.13
+
+2007-11-25 11:18 +0000 [r9091]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - force-reload is not supposed to
+         start service if it is not running - new try-restart action (as
+         specified by LSB 3.1.0, formerly "condrestart" in some distros)
+         it should restart service if running and just exit sucessfully
+         otherwise
+
+2007-11-25 08:46 +0000 [r9090]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - simplified
+
+2007-11-21 23:24 +0000 [r9076-9077]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - better this way
+
+       * rc.d/init.d/template.init: - this should be restart, who put
+         reload there?
+
+2007-11-21 23:18 +0000 [r9074-9075]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - reload also could use pidfile
+
+       * rc.d/init.d/template.init: - one more killproc sample
+
+2007-11-13 18:57 +0000 [r9043]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - suffix dm-multipath partitions with pN
+
+2007-11-09 01:54 +0000 [r9033]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - blogd might be already down and it might had
+         been started manually
+
+2007-11-09 01:47 +0000 [r9032]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/hwprofiles/Makefile.am: - if the file is not packaged
+         in spec, don't install it either
+
+2007-11-09 01:37 +0000 [r9030-9031]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.shutdown: - /etc/crypttab shouldn't be
+         empty when using it
+
+       * rc.d/init.d/functions: - add is_empty_file() function
+
+2007-11-09 01:20 +0000 [r9028-9029]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * crypttab (added), Makefile.am: - add sample /etc/crypttab
+
+       * TODO: - cleanup
+
+2007-11-09 01:10 +0000 [r9027]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.shutdown: - bugfixes for crypttab
+
+2007-11-09 00:49 +0000 [r9025-9026]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - add /etc/crypttab processing
+
+       * rc.d/init.d/cryptsetup: - add halt_crypto() from fc
+         initscripts-8.54 - add standalone mode for start/stop
+
+2007-11-09 00:37 +0000 [r9024]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - initial /etc/crypttab processing
+
+2007-11-09 00:33 +0000 [r9021-9023]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: - add cryptsetup
+
+       * rc.d/init.d/cryptsetup (added): - based on code from rc.sysinit
+         of fc initscripts-8.54
+
+       * man/Makefile.am, man/crypttab.5 (added): - add crypttab.5 from fc
+         initscripts-8.54
+
+2007-11-09 00:21 +0000 [r9020]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/random: - use subsys lock files
+
+2007-11-09 00:00 +0000 [r9019]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, rc.d/rc.sysinit: - blogd updates
+
+2007-11-08 00:42 +0000 [r9016]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * src/usleep.c, man/usleep.1, src/Makefile.am: - update with suse
+         variant from killproc-2.12 (and who's oot?
+         http://lists.rpath.com/pipermail/initscripts-commits/2006-December/000573.html)
+
+2007-11-08 00:29 +0000 [r9013-9015]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * src/initlog.c: - update from initscripts-8.54, except killing
+         startDaemon() and adding deprecation message
+
+       * src/initlog.conf: - update from initscripts-8.54
+
+       * src/minilogd.c: - update from initscripts-8.54
+
+2007-11-06 18:55 +0000 [r9004-9005]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.12
+
+       * rc.d/init.d/functions: - missing shift for nice level parsing in
+         daemon(). fixes some (broken) initscripts
+
+2007-11-05 18:09 +0000 [r8991]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/clock: - UTC clock by default. See:
+         http://glen.alkohol.ee/pld/clock-utc.html
+
+2007-11-02 02:29 +0000 [r8957-8959]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.11
+
+       * rc.d/init.d/functions: - ksh doesn't like $2 in # modifier
+
+2007-11-01 13:23 +0000 [r8947-8948]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * man/fstab-decode.8 (added): - add from fc
+
+       * src/fstab-decode.c (added): - add from fc
+
+2007-11-01 13:20 +0000 [r8946]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.10
+
+2007-11-01 12:20 +0000 [r8944]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - /dev (with devfs) could be mounted by kernel
+         (arekm note)
+
+2007-11-01 03:00 +0000 [r8941-8942]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * man/Makefile.am, src/Makefile.am: - add fstab-decode from rh
+
+       * rc.d/rc.sysinit: - don't get tempted to kill blogd
+
+2007-11-01 02:53 +0000 [r8940]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - read /proc/cmdline after /proc mount
+
+2007-11-01 02:36 +0000 [r8937-8939]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: - devfs comment update
+
+       * rc.d/rc.sysinit: - devfsd without devfs makes no sense :)
+
+       * rc.d/rc.sysinit: - no need to source udev configs here - just
+         umount /initrd/dev without checking
+
+2007-11-01 02:10 +0000 [r8935]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - $PATH is set from init.d/functions - improve
+         dm-multipath setup - attempt harder to create all LVM nodes, even
+         the ones initialized from initrd - kill blogd at the end of
+         script
+
+2007-11-01 02:06 +0000 [r8934]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - umount /initrd earlier, right after udev
+         startup
+
+2007-11-01 01:34 +0000 [r8932-8933]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - strstr() from fedora initscripts
+
+       * rc.d/rc.sysinit: - read /proc/cmdline just once (idea stolen from
+         fedora)
+
+2007-11-01 01:23 +0000 [r8930-8931]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.sysinit: - disable_selinux(),
+         relabel_selinux(), clean_vserver_mtab() used only in rc.sysinit,
+         moved there
+
+       * rc.d/init.d/functions: - local vars
+
+2007-11-01 01:13 +0000 [r8929]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - drop redhat/mandrake compat - simple if
+         should be lighter than function call
+
+2007-11-01 01:05 +0000 [r8927-8928]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - drop unneeded subshell
+
+       * rc.d/init.d/functions: - use shell construct to test is pathname
+         full path
+
+2007-11-01 00:59 +0000 [r8926]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - use shell constructs for basename()
+
+2007-11-01 00:54 +0000 [r8925]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - avoid endless loop when one puts --user
+         after daemon name - some small optimizations - update daemon()
+         usage
+
+2007-11-01 00:48 +0000 [r8924]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: - add DEFAULT_SERVICE_UMASK=022
+
+2007-11-01 00:35 +0000 [r8922-8923]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - shell version
+
+       * rc.d/init.d/functions: - set ulimits with one awk call in
+         daemon()
+
+2007-10-31 23:31 +0000 [r8920-8921]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * dumb.sh: - usable
+
+       * rc.d/init.d/functions: - typo?
+
+2007-10-31 20:48 +0000 [r8919]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - small cleanups and fixes
+
+2007-10-30 19:42 +0000 [r8904]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - move $MODULES_CONF closer where it is used
+
+2007-10-30 16:23 +0000 [r8903]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix obvious typo (perhaps drop it as it never
+         worked?)
+
+2007-10-30 16:10 +0000 [r8901-8902]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - activate dm-multipath
+
+       * rc.d/rc.sysinit: - small optimize to use only awk
+
+2007-10-29 11:29 +0000 [r8897]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - assume default
+         WLAN_WPA_CONFIG=/etc/wpa_supplicant.conf
+
+2007-10-28 17:58 +0000 [r8891-8893]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - $HOTPLUG is processed
+         by udev (udev_net_helper)
+
+       * sysconfig/network-scripts/functions.network: - allow
+         WLAN_MODE=managed in lowercase (as it's in doc)
+
+       * sysconfig/network-scripts/functions.network: - key index and
+         value should be different arguments
+
+2007-10-28 17:36 +0000 [r8890]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Revert ntfsfix. Please use something like
+         init.d/ntfsfix for that.
+
+2007-10-28 16:59 +0000 [r8887-8889]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - [ -n "" ] and [ ""
+         ] are the same, save some bytes/readability ;)
+
+       * sysconfig/network-scripts/functions.network: - handle wlan
+         different four keys
+
+       * sysconfig/interfaces/ifcfg-description: - new WLAN options
+
+2007-10-28 16:43 +0000 [r8885-8886]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - reuse
+         WLAN_ENCRYPTION
+
+       * sysconfig/network-scripts/functions.network: - optimize
+         wireless_param() by calling eval once
+
+2007-10-28 16:13 +0000 [r8884]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - no need for
+         LC_ALL=C to grep fixed string
+
+2007-10-28 13:06 +0000 [r8883]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - run ntfsfix if there are some ntfs
+         filesystems mounted and if proper app is installed
+
+2007-10-26 12:48 +0000 [r8878]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: - use default nice "+0" to avoid confusion as
+         "0" is not valid in service setup
+
+2007-10-04 20:22 +0000 [r8778]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Activate ATARAID devices.
+
+2007-10-03 13:10 +0000 [r8771]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Do sanity check only
+         when configuration file exists.
+
+2007-10-03 06:55 +0000 [r8770]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - trim network length from
+         $IP4ADDR when doing arping
+
+2007-10-02 22:32 +0000 [r8769]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't try to update mtab when mounting usbfs
+         (root is ro yet)
+
+2007-10-01 08:45 +0000 [r8768]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - support $IPADDR +
+         $NETMASK combination if no prefix in $IPADDR present
+
+2007-09-26 12:17 +0000 [r8753-8754]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.9
+
+       * sysconfig/network-scripts/ifup: - typo in arping line
+
+2007-09-25 15:59 +0000 [r8751]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - typo
+
+2007-09-25 15:54 +0000 [r8749-8750]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - no need to play with NFS, it screws up /
+         over NFS and we have nfsfs for it
+
+       * rc.d/init.d/local: - source functions library (for msg_usage), no
+         need to set PATH
+
+2007-09-25 11:34 +0000 [r8745-8746]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.8
+
+       * sysconfig/network: - more info about AUTOMATIC_IFCFG
+
+2007-09-11 18:47 +0000 [r8720]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: PLDize ARP cache updating
+         procedure.
+
+2007-09-11 18:33 +0000 [r8719]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Update ARP cache of neighbours
+         (from fedora).
+
+2007-07-14 20:33 +0000 [r8676]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysconfig/network: - AUTOMATIC_IFCFG=no
+
+2007-07-03 11:51 +0000 [r8656-8658]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.1.7
+
+       * rc.d/init.d/functions: - do not depend on which command to find
+         rpcinfo
+
+2007-06-14 18:42 +0000 [r8640]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/bondup (removed),
+         sysconfig/network-scripts/Makefile.am,
+         sysconfig/network-scripts/bonddown (removed),
+         sysconfig/interfaces/Makefile.am, rc.d/init.d/network,
+         sysconfig/interfaces/ifcfg-bond0 (removed): - revert bonding
+         support (unfinished and broken)
+
+2007-06-05 10:45 +0000 [r8637-8638]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am: - add ifcfg-bond0
+
+       * sysconfig/interfaces/ifcfg-bond0 (added): - sample config
+
+2007-06-05 10:39 +0000 [r8636]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/Makefile.am,
+         sysconfig/network-scripts/bonddown (added), rc.d/init.d/network,
+         sysconfig/network-scripts/bondup (added): - bonding support by
+         Justas Vilimas
+
+2007-06-05 10:27 +0000 [r8635]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * TODO: - save
+
+2007-05-30 11:51 +0000 [r8631]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, rc.d/rc, rc.d/rc.sysinit, rc.d/init.d/single: -
+         see ChangeLog for Changes
+
+2007-05-09 20:40 +0000 [r8500]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - keep /etc/mtab permissions (whatever
+         they are) inside vserver - which outputs to stderr if it can't
+         find the program
+
+2007-05-01 01:10 +0000 [r8489]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - 0.4.1.6
+
+2007-05-01 01:02 +0000 [r8488]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * DEVELOPMENT: - added warning about parenthesis in command
+         substitution
+
+2007-05-01 00:53 +0000 [r8487]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/init.d/network: - reverted some command
+         substitution changes due to conflicting parenthesis
+
+2007-04-28 18:34 +0000 [r8484-8485]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-ppp: - kill ugly warning if pppd
+         was nicely killed
+
+       * ppp/ip-down, ppp/ip-up: - proper CONFIG sources (needed to
+         override DEVICE from pppd and get ppp/ip-{up,down} scripts work
+         again
+
+2007-04-27 20:45 +0000 [r8483]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - restore stderr redirection
+
+2007-04-27 20:21 +0000 [r8482]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - replace awk usage with shell constructs
+
+2007-04-27 14:02 +0000 [r8481]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.modules: - replace awk usage with shell constructs
+
+2007-04-27 13:32 +0000 [r8480]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc: - replace awk usage with shell constructs
+
+2007-04-26 22:03 +0000 [r8479]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - removed unneeded termput hpa
+
+2007-04-26 21:38 +0000 [r8478]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - shell magic fixing screwed dots in
+         show() on serial console
+
+2007-04-26 16:51 +0000 [r8475]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.ac: - Release 0.4.1.5
+
+2007-04-26 16:45 +0000 [r8474]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * setsysfont: - replaced sed with awk
+
+2007-04-26 15:56 +0000 [r8473]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown, ppp/ip-up.d/logger,
+         rc.d/rc.sysinit, run-parts, sysconfig/interfaces/up.d/ppp/logger,
+         ppp/ip-down.d/logger, sysconfig/interfaces/down.d/ppp/logger,
+         sysconfig/hwprofiles/Makefile.am, service, rc.d/init.d/cpusets,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-ipx, rc.d/init.d/network,
+         sysconfig/network-scripts/ifup: - use $() for command
+         substitution
+
+2007-04-26 15:30 +0000 [r8472]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - unify command substitution (`` -> $())
+
+2007-04-26 15:24 +0000 [r8471]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - typeset local in check_portmapper
+
+2007-04-26 14:55 +0000 [r8470]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - generic check_portmapper function
+
+2007-04-16 17:26 +0000 [r8460]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - use shell
+         construct instead of grep in calcnetmask
+
+2007-04-16 16:21 +0000 [r8459]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - calcprefix without
+         need of awk
+
+2007-04-14 21:55 +0000 [r8458]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - allow to have more than one line in
+         pidfile
+
+2007-03-20 12:09 +0000 [r8389]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - simpler way to umount nfs4
+
+2007-03-20 11:53 +0000 [r8388]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - unmount NFSv4 filesystems
+
+2007-03-20 11:48 +0000 [r8387]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cleaner solution for empty hostname
+
+2007-03-19 18:58 +0000 [r8384]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - nfs4 is also non-local fs
+
+2007-03-19 17:27 +0000 [r8383]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - in case of empty HOSTNAME set it to what the
+         kernel thinks it is (for example workstation with kernel level IP
+         config and / over NFS)
+
+2007-03-15 17:19 +0000 [r8379]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - can start blogd rather earlier
+
+2007-03-14 18:51 +0000 [r8378]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - fixed glen's misoptimization
+
+2007-03-13 17:11 +0000 [r8372-8373]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - avoid doing something silly if plain
+         template is used
+
+       * rc.d/init.d/template.init: - start does not have exit code
+
+2007-03-09 21:10 +0000 [r8371]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0: Add sfq as default qdisc.
+
+2007-03-07 10:24 +0000 [r8367]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * changelog.sh: - correct comment
+
+2007-03-02 15:37 +0000 [r8323]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * changelog.sh: - detect users file charset
+
+2007-02-27 21:10 +0000 [r8311-8313]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/random: - comment says do not, so won't!
+
+       * rc.d/init.d/random, rc.d/init.d/cpusets, rc.d/init.d/allowlogin,
+         rc.d/init.d/network, rc.d/init.d/local: - well, PLDIZE!
+
+       * rc.d/init.d/cpusets, rc.d/init.d/allowlogin,
+         rc.d/init.d/functions, rc.d/init.d/Makefile.am,
+         rc.d/init.d/network, rc.d/init.d/local, rc.d/init.d/sys-chroots,
+         rc.d/init.d/template.init, rc.d/init.d/random,
+         rc.d/init.d/single, rc.d/init.d/killall: - vim autodetects syntax
+         from shebang
+
+2007-02-25 00:59 +0000 [r8290-8293]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: - Release 0.4.1.4
+
+       * sysconfig/Makefile.am, sysconfig/timezone (removed),
+         rc.d/init.d/Makefile.am, rc.d/init.d/timezone (removed): -
+         timezone moved to tzdata.spec
+
+       * DEVELOPMENT: - sync order
+
+       * DEVELOPMENT: - how to make release
+
+2007-02-08 15:42 +0000 [r8239]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - allow tnlcfg-
+         prefix in interface CONFIGs
+
+2007-02-05 18:54 +0000 [r8223]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Delay (or even skip) clock setting if /dev/rtc
+         doesn't exist.
+
+2007-02-04 21:39 +0000 [r8222]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm: Update from
+         Mateusz Korniak.
+
+2007-01-28 14:25 +0000 [r8209-8210]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/init.d/functions: - $CONSOLETYPE used only
+         in rc.sysinit
+
+       * rc.d/init.d/functions: - termput() cannot cache in shell vars as
+         it's always called from subshell
+
+2007-01-28 14:08 +0000 [r8207-8208]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/init-colors, sysconfig/init-colors.gentoo: Typo.
+
+       * sysconfig/system: Add VSERVER option here.
+
+2007-01-22 19:15 +0000 [r8194]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - do sleep 1 only when bringing
+         down with dhcpcd
+
+2007-01-22 19:12 +0000 [r8192-8193]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - reuase $DHCP_CLIENT
+
+       * sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup: - be sure that dhcp client
+         detection is same for ifup and ifdown
+
+2007-01-22 18:47 +0000 [r8189-8191]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes: - kill subshell
+
+       * sysconfig/network-scripts/ifup-neigh: - IPV4_NETWORKING does not
+         change it's value in a loop.
+
+       * sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-neigh: - updated comments
+
+2007-01-22 18:41 +0000 [r8188]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-post: ifup-{aliases,routes,neigh}
+         are now sourced instead of executed
+
+2007-01-22 18:37 +0000 [r8187]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: Die debug
+
+2007-01-22 18:16 +0000 [r8186]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Cache hostname
+         output to call it less times
+
+2007-01-22 18:09 +0000 [r8185]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Less subshells in
+         source_config().
+
+2007-01-18 20:20 +0000 [r8173]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: Find out number of
+         aliases from ifcfg-xyz file.
+
+2007-01-16 23:00 +0000 [r8171]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-br: multicast/arp should be set on
+         slave devices (patch by Szymon Siwek).
+
+2007-01-11 14:29 +0000 [r8152-8153]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.1.3
+
+       * make-tag.sh (added): Nifty script to make releases in svn tagged.
+
+2007-01-11 14:19 +0000 [r8149]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * changelog.sh: Autodetect svn path.
+
+2007-01-11 14:15 +0000 [r8147-8148]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * autogen.sh: Changelog generation moved to separate script.
+
+       * changelog.sh (added): Based on geninitrd/changelog.sh
+
+2007-01-11 14:11 +0000 [r8145]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * Makefile.am: Fix for make distcheck.
+
+2006-12-18 21:28 +0000 [r8111]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysctl.conf: Add kernel.core_uses_pid
+
+2006-12-14 08:08 +0000 [r8100-8101]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/system: Typo.
+
+       * sysconfig/system: Spelling
+
+2006-12-08 12:17 +0000 [r8088]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * Makefile.am: Create /var/cache/rc-scripts/msg.cache on install.
+
+2006-12-08 12:07 +0000 [r8087]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network: Add $NETWORKING back, as it's used by a lot of
+         initscripts
+
+2006-12-07 22:24 +0000 [r8086]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: Error exit code
+
+2006-12-07 21:52 +0000 [r8085]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Small cosmetics.
+
+2006-12-07 21:47 +0000 [r8083-8084]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Reindent.
+
+       * rc.d/init.d/network: Small reorganizing.
+
+2006-12-07 21:42 +0000 [r8080-8082]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network: $NETWORKING was supposed to be obsoleted.
+
+       * rc.d/init.d/network: $NETWORKING was supposed to be obsoleted.
+
+       * rc.d/init.d/sys-chroots: Optimize for faster exit if not
+         configured.
+
+2006-12-07 21:32 +0000 [r8077-8079]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/killall: As we don't source functions, we must set
+         sane PATH to ensure security
+
+       * rc.d/init.d/local: As we don't source functions, we must set sane
+         PATH to ensure security
+
+       * rc.d/init.d/killall: Probability that there exists init.d/$subsys
+         is bigger than init.d/$subsys.init.
+
+2006-12-07 21:18 +0000 [r8076]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: Exit early if cpusets not enabled in
+         sysconfig/system.
+
+2006-12-05 17:39 +0000 [r8073]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Fixes for /usr on separate parition (not
+         tested!).
+
+2006-12-05 17:32 +0000 [r8072]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Store cachefile in /var, read/write errors
+         are ignored anyway.
+
+2006-12-05 17:07 +0000 [r8070]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.0.2.
+
+2006-11-27 12:36 +0000 [r8006]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Revert remounting based on /proc/mounts entries
+         (current rootfs state is not reflected there).
+
+2006-11-26 14:35 +0000 [r7999]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * AUTHORS: Readd timezone setup & resolvesymlink to Paweł Wilk.
+
+2006-11-26 10:05 +0000 [r7998]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * AUTHORS, src/Makefile.am: Fix resolvesymlink_SOURCE typo. Updated
+         Paweł Wilk email address.
+
+2006-11-26 10:02 +0000 [r7997]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.shutdown, AUTHORS, po/pl.po,
+         src/pci-config.c (removed), rc-scripts.spec.in, src/Makefile.am:
+         Revert nVidia madness. rc-scripts is not a place for such
+         workaround.
+
+2006-11-26 08:06 +0000 [r7993]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - small improvement in
+         forcedeth_wourkaround()
+
+2006-11-25 20:36 +0000 [r7992]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added important check in
+         forcedeth_workaround() which detects co-working drivers
+
+2006-11-25 16:01 +0000 [r7991]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * po/pl.po: - added translation for WOL work-around message
+
+2006-11-25 12:09 +0000 [r7989]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * src/Makefile.am, rc.d/init.d/functions, rc.d/rc.shutdown,
+         AUTHORS, src/pci-config.c (added), rc-scripts.spec.in: - added
+         Wake-On-Lan work-around for nForce ethernet drivers - added
+         pci-config utility which allows power state manipulation and
+         devices listing
+
+2006-11-19 15:45 +0000 [r7986]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysctl.conf: Add dev.rtc.max-user-freq.
+
+2006-11-01 22:53 +0000 [r7938]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Ignore errors if msg cachefile can not be
+         written (functions sourced by non-root user of readonly
+         filesystem).
+
+2006-11-01 13:23 +0000 [r7931]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Avoid "RTNETLINK
+         answers: File exists" message and say possible cause instead.
+
+2006-11-01 13:09 +0000 [r7930]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Pointless subshell dropped
+
+2006-11-01 00:35 +0000 [r7926]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - more docs
+
+2006-10-23 14:11 +0000 [r7894]  Marcin Winkler <mwinkler/at/pld-linux.org>
+
+       * rc.d/init.d/network: - fix s@usb@usr@
+
+2006-10-19 14:15 +0000 [r7878]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Avoid heredoc, pdksh makes tmpfile then.
+
+2006-10-19 13:06 +0000 [r7875]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Fix syntax errors.
+
+2006-10-19 09:55 +0000 [r7871]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Simplify.
+
+2006-10-18 20:02 +0000 [r7869]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Detect more posible cases when rootfs is read
+         only.
+
+2006-10-18 12:22 +0000 [r7868]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Avoid bringing down
+         eth0 in case of bad config.
+
+2006-10-18 11:55 +0000 [r7867]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Remove ifcfg- prefix from interface names.
+
+2006-10-15 11:22 +0000 [r7856]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup: Load sit module for sit tunnels.
+
+2006-10-13 06:34 +0000 [r7853]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.1.1 (beta1).
+
+2006-10-13 06:23 +0000 [r7851-7852]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * man/Makefile.am: Add getkey.1
+
+       * src/getkey.c, man/getkey.1 (added): Updated.
+
+2006-10-12 21:07 +0000 [r7849-7850]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada,
+         sysconfig/interfaces/ifcfg-eth0.1,
+         sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada,
+         sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-idea: Propset Id
+
+       * sysconfig/interfaces/ifcfg-ppp0.callback,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm,
+         sysconfig/interfaces/ifcfg-br0,
+         sysconfig/interfaces/ifcfg-description,
+         sysconfig/interfaces/ifcfg-irlan0,
+         sysconfig/interfaces/ifcfg-ppp0.tpsa,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-idea,
+         sysconfig/interfaces/ifcfg-ppp0.leased1,
+         sysconfig/interfaces/ifcfg-ppp0.leased2,
+         sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada,
+         sysconfig/interfaces/ifcfg-sl0,
+         sysconfig/interfaces/ifcfg-eth0.1,
+         sysconfig/interfaces/ifcfg-irda0,
+         sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada,
+         sysconfig/interfaces/ifcfg-eth0,
+         sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada: Unify file
+         header.
+
+2006-10-12 19:49 +0000 [r7848]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/static-routes: Add sample of single host routing
+
+2006-10-05 20:39 +0000 [r7842]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Use simple if.
+
+2006-10-05 17:22 +0000 [r7840-7841]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: There are no comments in /proc/mounts.
+
+       * rc.d/rc.sysinit: There could be multiple entries for root dir.
+
+2006-10-02 22:03 +0000 [r7839]  Paweł Sikora <pluto/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - wireless-tools >=
+         29 uses `nick' command.
+
+2006-09-30 10:50 +0000 [r7827]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-br: Update brctl parameters to
+         mach new version of bridge-utils (should be backward compatible).
+         By Szymon Siwek.
+
+2006-09-28 23:38 +0000 [r7826]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysctl.conf: Default local port range is too evil. can't even
+         start mysqld!
+
+2006-09-28 14:35 +0000 [r7823]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Remount rootfs only if it's not already rw (or
+         it's better to ignore remount errors?)
+
+2006-09-27 22:30 +0000 [r7820]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Relax fstab format when finding rootfs passno
+         (allow comments at the end of line).
+
+2006-09-27 13:35 +0000 [r7819]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Optimize less uname -r calls.
+
+2006-09-26 23:59 +0000 [r7818]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Reflect init_gettext function rename.
+
+2006-09-26 23:48 +0000 [r7817]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Add checking of msg cache validity. $TPUT
+         and $GETTEXT need to be set before msg cache can be generated.
+
+2006-09-24 09:35 +0000 [r7806]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: rc.local is now run from init.d/local script.
+
+2006-09-24 09:29 +0000 [r7805]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.1.0 release (consider it beta).
+
+2006-09-18 23:09 +0000 [r7794]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.sysinit: Allow /usr being mounted
+         afterwards.
+
+2006-09-18 19:06 +0000 [r7793]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/allowlogin: Drop superfluous default setting.
+
+2006-09-18 19:02 +0000 [r7792]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: Don't touch chkconfig symlinks on
+         chroot, instead play with network subsys lockfile. This allows
+         you define sys-chroots from livecd without corrupting that
+         chroot.
+
+2006-09-18 18:58 +0000 [r7791]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots, rc.d/rc, rc.d/rc.sysinit,
+         rc.d/init.d/allowlogin: /etc/sysconfig/system already loaded by
+         init.d/functions. Adjust defaults if no sysconfig/system is
+         present (so the checks stay same after these changes).
+
+2006-09-18 18:50 +0000 [r7790]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: RUN_LDCONFIG not used here.
+
+2006-09-18 17:55 +0000 [r7789]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Corrected tput check.
+
+2006-09-18 12:41 +0000 [r7788]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Trap and hide errors when reading msg
+         cachefile.
+
+2006-09-17 22:06 +0000 [r7787]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Punctuation.
+
+2006-09-17 21:52 +0000 [r7786]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: No need to force any settings for initng.
+
+2006-09-17 19:05 +0000 [r7785]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: Use lockfiles.
+
+2006-09-17 18:34 +0000 [r7784]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Cache colors in filesystem too.
+
+2006-09-17 18:21 +0000 [r7783]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: busy(), ok(), started(), are constant so
+         their values can be cached.
+
+2006-09-17 18:15 +0000 [r7781-7782]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Buffer show() function so the display to
+         be more smooth.
+
+       * rc.d/init.d/functions: Correct show() function printf handling.
+
+2006-09-17 17:53 +0000 [r7779-7780]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: RETVAL is set by start(); if any.
+
+       * rc.d/init.d/sys-chroots: RETVAL is set by start(); if any.
+
+2006-09-17 17:10 +0000 [r7778]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: Demonstrate use of functions.
+
+2006-09-17 17:06 +0000 [r7777]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Shortcuts for vserver.
+
+2006-09-17 16:59 +0000 [r7776]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: Merge optimzations from network script.
+
+2006-09-17 16:52 +0000 [r7775]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Add bug-5795.patch (assume it's correct).
+
+2006-09-17 16:47 +0000 [r7774]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets, rc.d/init.d/network, rc.d/init.d/timezone,
+         rc.d/init.d/sys-chroots: Use functions to avoid reexec for
+         restart.
+
+2006-09-17 16:27 +0000 [r7771-7773]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/local, rc.d/init.d/sys-chroots: Propset Id
+
+       * rc.d/init.d/local: Update chkconfig description.
+
+       * rc.d/init.d/cpusets, rc.d/init.d/local: LSB compliance.
+
+2006-09-17 15:57 +0000 [r7770]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Cache termput calls within same script.
+
+2006-09-17 15:42 +0000 [r7769]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Kill bogus +arg checks.
+
+2006-09-17 15:29 +0000 [r7768]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Always use cached in show() function
+         (There's no benefit of doing otherwise).
+
+2006-09-17 15:18 +0000 [r7765-7767]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Cleanup nls() function.
+
+       * rc.d/init.d/functions: Avoid overwriting global NLS_DOMAIN if can
+         do without.
+
+       * rc.d/init.d/functions: Keep state of have gettext and have tput
+         per whole initscript.
+
+2006-09-17 15:01 +0000 [r7764]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Use buggy awk-printf wrapper only if
+         /bin/printf is not available.
+
+2006-09-17 13:49 +0000 [r7763]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am, rc.d/init.d/local (added): Use locking
+         for rc.local , so that it's no longer invoked between runlevel
+         changes.
+
+2006-09-17 13:36 +0000 [r7761-7762]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: Cosmetics for vim
+
+       * rc.d/init.d/allowlogin, rc.d/init.d/network,
+         rc.d/init.d/timezone, rc.d/init.d/random: LSB compliance
+
+2006-09-17 13:26 +0000 [r7758-7760]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/single: Adjust indent.
+
+       * rc.d/init.d/single, rc.d/init.d/cpusets, rc.d/init.d/network:
+         Sane $PATH is initialized in init.d/functions.
+
+       * rc.d/init.d/random, rc.d/init.d/single, rc.d/init.d/cpusets,
+         rc.d/init.d/allowlogin, rc.d/init.d/network,
+         rc.d/init.d/timezone: NLS_DOMAIN="rc-scripts" is the default
+         setting, remove.
+
+2006-09-09 19:13 +0000 [r7745]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: Allow to kill
+         dhcp/wpa_supplicant daemon even if device disappears/is down due
+         to some reasons.
+
+2006-09-08 18:35 +0000 [r7739]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada,
+         sysconfig/network-scripts/ifup-ppp: - speedtouch-neostrada fixes:
+         - use modem_run in kernel mode only if PPPOA_FIRMWARE is not
+         empty; comment out PPPOA_FIRMWARE in default ifcfg-ppp0 - comment
+         out MTU=1452; doesn't work (for me) if it's defined
+
+2006-08-31 11:58 +0000 [r7694]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: Correct english
+         description.
+
+2006-08-31 09:51 +0000 [r7693]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Restore basename change.
+
+2006-08-31 07:26 +0000 [r7692]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup: Detect if wireless interface is
+         turned on.
+
+2006-08-10 12:14 +0000 [r7656]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - check for /usb/bin/wc existence (in case
+         of /usr over NFS)
+
+2006-07-24 14:02 +0000 [r7546]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-irlan0, doc/net-scripts.txt:
+         s/BOOTMETHOD/BOOTPROTO/g once more.
+
+2006-07-24 13:59 +0000 [r7544-7545]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Default $DHCP_HOSTNAME to
+         $HOSTNAME.
+
+       * sysconfig/network-scripts/ifup: Optimize: remove three basename
+         calls
+
+2006-07-20 14:13 +0000 [r7537]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * TODO: - killproc() s%!&*ks
+
+2006-07-19 16:38 +0000 [r7535]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/hwprofiles/files: - added xorg.conf
+
+2006-07-09 08:06 +0000 [r7499]  Adam Gołębiowski <adamg/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - typo; noticed by
+         Szymon Siwek (sls (at) poczta wp pl)
+
+2006-07-04 14:59 +0000 [r7491]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * TODO: Add LVM on dmraid problem
+
+2006-05-28 19:05 +0000 [r7454]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * autogen.sh: Always run changelog generation when asked. Obfuscate
+         email addreses here. Use mktemp if available. Allow various
+         locations for CVSROOT/users file.
+
+2006-05-23 15:38 +0000 [r7436]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Try harder to get
+         value for WLAN_NICKNAME.
+
+2006-05-15 23:18 +0000 [r7408]  Zbigniew Krzystolik <zbyniu/at/pld-linux.org>
+
+       * sysctl.conf: - grsecurity options updated
+
+2006-05-07 17:33 +0000 [r7394]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.0.27.
+
+2006-05-07 17:27 +0000 [r7391-7393]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Add sysconfig/hwprofiles dir.
+
+       * rc.d/rc.shutdown: Speedup shutdown (glen).
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-idea,
+         sysconfig/interfaces/Makefile.am: Add ifcfg-ppp0.gprs-idea to
+         makefiles. Add proper initstring to ifcfg-ppp0.gprs-plusgsm.
+         Another PHONE for gprs-idea (this one works for me with ipaq over
+         BT).
+
+2006-05-07 17:18 +0000 [r7390]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/Makefile.am, doc/Makefile.am,
+         sysconfig/interfaces/up.d/all/Makefile.am,
+         sysconfig/hwprofiles/Makefile.am,
+         sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/down.d/all/Makefile.am,
+         sysconfig/interfaces/data/Makefile.am: Avoid installing files
+         that aren't packaged (glen).
+
+2006-05-07 11:09 +0000 [r7389]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Fix missing $bootprio.
+
+2006-05-07 10:46 +0000 [r7388]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network: Fix interfaces_boot detection (Adam Ryba).
+
+2006-04-25 07:20 +0000 [r7370]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc: Tabs.
+
+2006-03-23 09:22 +0000 [r7293]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network: - hostname -h [...] Unless you are using bind
+         or NIS for host lookups you can change the FQDN (Fully Qualified
+         Domain Name) and the DNS domain name (which is part of the FQDN)
+         in the /etc/hosts file.
+
+2006-03-22 19:54 +0000 [r7279]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Vserver speedup (skips extra 5 second delay in
+         some cases)
+
+2006-03-20 17:22 +0000 [r7253]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - allow \t in "alias usb-controller" (from
+         Lukasz Masko, nov 2005)
+
+2006-03-11 14:54 +0000 [r7144]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: Typo bugfix.
+
+2006-03-09 17:54 +0000 [r7132]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Tabs.
+
+2006-03-09 17:47 +0000 [r7131]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: Rewritten configuration parsing portion
+         (solves ~ and .rpmnew files ignorance). execve() calls reduced
+         from 25 to 4. Tested with ash and ksh. There could be bugs!
+
+2006-03-09 16:20 +0000 [r7127]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.0.26.
+
+2006-03-09 14:58 +0000 [r7126]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - no, please don't remove vim modeline
+
+2006-03-09 11:21 +0000 [r7125]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: vim modeline is unneccessary here.
+
+2006-03-08 15:07 +0000 [r7121]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - human readable cleaning of /var/lock - and
+         don't remove /var/lock/cvs
+
+2006-03-05 13:41 +0000 [r7096]  Adam Gołębiowski <adamg/at/pld-linux.org>
+
+       * sysconfig/system: - typos
+
+2006-03-03 21:54 +0000 [r7083]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: The is_no() function comes from functions, don't
+         use it before it's defined
+
+2006-02-27 18:09 +0000 [r7036]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * setsysfont: Revert hardcoded part. Fix your config instead.
+
+2006-02-27 17:49 +0000 [r7035]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - expand Id keyword
+
+2006-02-27 13:47 +0000 [r7034]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: In vserver /sbin/ip is not required.
+
+2006-02-26 11:05 +0000 [r7020]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Disable colors and enable FASTRC for
+         initng.
+
+2006-02-26 10:45 +0000 [r7019]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * setsysfont: Unicode fixes.
+
+2006-02-24 11:04 +0000 [r7006]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Boot logging possibility with showconsole.
+
+2006-02-23 14:43 +0000 [r7005]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Respect fs_passno for rootfs when doing rootfs
+         fsck. Enable paralell fsck for other filesystems.
+
+2006-02-23 14:23 +0000 [r7004]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Ignore "rootfs" when setting _ROOTFS_TYPE.
+
+2006-02-23 13:57 +0000 [r7003]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Make /dev/cpuset dir for udev. Check
+         /proc/mounts instead of /proc/filesystems when filling /etc/mtab.
+
+2006-02-23 10:38 +0000 [r7002]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/net-scripts.txt, doc/sysvinitfiles, rc.d/init.d/functions,
+         rc-scripts.spec.in, inittab, rc.d/rc.sysinit, run-parts: We are
+         PLD Linux (not just PLD).
+
+2006-02-23 10:35 +0000 [r6999-7001]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysconfig/init-colors: We are PLD Linux (not just PLD), fix
+         init-colors.gentoo path.
+
+       * sysconfig/i18n: Have here also listed en_US.UTF-8
+
+       * sysconfig/interfaces/ifcfg-eth0: By default boot eth0 with dhcp.
+         If you have static IP configuration, you need to edit this file
+         anyway
+
+2006-02-14 00:24 +0000 [r6972]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/cpusets/cpuset-test, rc.d/init.d/cpusets: - cpuset
+         virtualization support
+
+2006-02-10 22:21 +0000 [r6965]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Reverted last change
+
+2006-02-10 19:47 +0000 [r6964]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Disable DELAY_LOGIN for vserver, suggested by
+         Patrys
+
+2006-02-10 19:40 +0000 [r6960-6963]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Remove stupid sleep 1
+
+       * rc.d/rc.sysinit: No SELinux labels for vserver
+
+       * rc.d/rc.sysinit: Fixing indent
+
+       * rc.d/rc.sysinit: setsysfont and selinux make no sense inside
+         vserver (no devices attached)
+
+2006-02-10 19:31 +0000 [r6959]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Do not mount /proc in vserver
+
+2006-02-10 19:17 +0000 [r6958]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/network: One can't (u)mount anything inside vserver,
+         not even network mounts
+
+2006-02-08 17:41 +0000 [r6952]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Redirect errors from mounts grepping to
+         /dev/null.
+
+2006-02-05 15:32 +0000 [r6922]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, sysconfig/system: Rename PROMPT to RC_PROMPT
+         (PROMPT is internal zsh variable). Fixed RC_PROMPT testing to
+         work as described in sysconfig/system.
+
+2006-01-21 13:49 +0000 [r6875-6876]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: Allow some actions when network is
+         down (by ankry /at/ 2003-07-03).
+
+       * rc.d/init.d/template.init: - remove old syntax
+
+2006-01-21 12:32 +0000 [r6874]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: Describe current
+         PPPoE/PPPoA config.
+
+2006-01-21 12:18 +0000 [r6873]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada,
+         sysconfig/network-scripts/ifup-ppp: Generic PPP over ATM support.
+
+2006-01-20 18:02 +0000 [r6871]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - give getkey a timeout of 5s, better safe than
+         hung init process
+
+2006-01-20 15:40 +0000 [r6869]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - skip filter_chroot() in vserver fixes
+         running %pre/%post scripts for packages installed in vserver
+
+2006-01-19 08:52 +0000 [r6864]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada (added): Add
+         ueagle example (abram).
+
+2006-01-18 08:18 +0000 [r6844]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.0.25.
+
+2006-01-15 12:01 +0000 [r6809]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots, rc.d/rc.sysinit: Use correct chown
+         user:group notation.
+
+2006-01-13 18:07 +0000 [r6803]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - more non-vserver stuff ifed
+
+2006-01-12 16:21 +0000 [r6798-6800]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cleanup if vserver logic
+
+       * rc.d/rc.sysinit: - merge more vserver ifs
+
+       * rc.d/rc.sysinit: - typo
+
+2006-01-12 16:10 +0000 [r6797]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - more non-vserver things if'ed - kill psdevtab
+         removal (file is obsolete since 1998)
+
+2006-01-12 16:01 +0000 [r6796]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - cleanup
+
+2006-01-12 15:29 +0000 [r6795]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, rc.d/rc.sysinit: - skip swap/quota/acct in
+         vserver
+
+2006-01-10 20:59 +0000 [r6788]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: mdadm now creates missing nodes when assembling
+         an array.
+
+2006-01-09 17:23 +0000 [r6781]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Typos fixed.
+
+2006-01-08 21:53 +0000 [r6777]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.0.24.
+
+2006-01-07 15:57 +0000 [r6762]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: ESSID setting is
+         done only once, at the end just before commit.
+
+2006-01-06 15:57 +0000 [r6750]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Don't use run_cmd for starting udev since
+         start_udev can handle messages itself.
+
+2006-01-05 22:52 +0000 [r6747]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont, rc.d/rc.sysinit: Fix console detection by not running
+         setsysfont trough run_cmd (fixes utf8 font handling, too).
+
+2006-01-04 12:16 +0000 [r6734]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: No longer set hotplug stuff. Put that into
+         sysctl.conf.
+
+2006-01-01 20:16 +0000 [r6727]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * lang.sh: Process more locale variables (havner).
+
+2006-01-01 20:12 +0000 [r6726]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Include /etc/rc.d/init.d/functions.
+
+2005-12-26 10:35 +0000 [r6709]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Fix WLAN power,
+         txpower, retry settings. Patch by Łukasz Maśko.
+
+2005-12-15 18:59 +0000 [r6651-6652]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Preparations for 0.4.0.23.
+
+       * rc.d/rc.sysinit: modprobe with -s option so messages go to
+         syslog.
+
+2005-12-09 15:26 +0000 [r6627]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - change reboot/halt message for vserver
+         (request by glen)
+
+2005-12-05 00:33 +0000 [r6598]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: Up wireless device before
+         setting any WLAN parameters support.
+
+2005-12-05 00:29 +0000 [r6597]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: udev loads core usb modules itself so
+         /proc/bus/usb was never mounted here. Now we are checking for
+         exact mount instead of just checking whether usb modules are
+         loaded.
+
+2005-11-24 15:25 +0000 [r6563]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/init.d/functions: - remove duplicate
+         entries in vserver guest /etc/mtab
+
+2005-11-23 20:49 +0000 [r6561]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Don't yell when there is no kbd installed.
+
+2005-11-18 23:44 +0000 [r6541]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't clear mtab on vserver guest
+
+2005-11-17 22:54 +0000 [r6540]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fixed vserver detection with legacy
+         vserver code turned off
+
+2005-11-16 18:45 +0000 [r6534]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Update for 0.4.0.22.
+
+2005-11-05 01:34 +0000 [r6520]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - remove useless rm -f /var/run/hwprofile, which
+         will never work as all filesystems are readonly at that point
+
+2005-11-01 18:34 +0000 [r6510-6511]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/process.c: Updated from FC.
+
+       * src/shvar.c, src/shvar.h: Be more precise about condition.
+
+2005-10-30 22:14 +0000 [r6504]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, rc.d/rc.sysinit: Mount securityfs filesystem on
+         kernel >= 2.6.14.
+
+2005-10-30 00:03 +0000 [r6503]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc: - corrected order of conditions
+
+2005-10-28 14:54 +0000 [r6501]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - ignore non-empty but commented /etc/mactab
+         (patch by glen)
+
+2005-10-26 16:57 +0000 [r6492]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * lang.sh, run-parts, lang.csh, hwprofile, service, setsysfont: -
+         more white space and formatting cleanup
+
+2005-10-26 16:33 +0000 [r6491]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.modules, sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-irda,
+         sysconfig/network-scripts/ifup-aliases, rc.d/init.d/network,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifdown-vlan,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown-br,
+         sysconfig/interfaces/tnlcfg-icm, sysconfig/static-nat,
+         ppp/ipx-up, sysconfig/network-scripts/functions.network,
+         ppp/auth-up, rc.d/init.d/allowlogin,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/interfaces/tnlcfg-description,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip, rc.d/init.d/template.init,
+         ppp/ip-up, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifdown-post, sysconfig/clock,
+         rc.d/init.d/cpusets, sysconfig/network-scripts/ifup-routes,
+         rc.d/rc.shutdown, ppp/ipx-down, rc.d/init.d/timezone,
+         ppp/auth-down, sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-plusb, rc.d/init.d/sys-chroots,
+         sysconfig/network-scripts/ifup-post, sysconfig/static-routes,
+         ppp/ip-down, sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx, rc.d/rc.local,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-irda, sysconfig/system,
+         sysconfig/network-scripts/ifup-iucv, rc.d/rc, rc.d/init.d/random,
+         rc.d/init.d/single, rc.d/rc.init, sysconfig/network,
+         sysconfig/timezone, rc.d/init.d/killall: - more vim setting
+         removed (don't convert tabs to spaces) - white space cleanup -
+         convert spaces to tabs - unify formatting for all scripts
+
+2005-10-25 18:22 +0000 [r6489]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, rc.d/rc, rc.d/rc.sysinit: - add support for
+         running inside vservers, the diff may seem huge but it's mostly
+         white space change
+
+2005-10-25 18:15 +0000 [r6488]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - typo
+
+2005-10-25 17:11 +0000 [r6487]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/rc.sysinit: - source configs before functions
+
+2005-10-25 16:56 +0000 [r6485]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - don't start interfaces inside vserver
+
+2005-10-25 16:46 +0000 [r6484]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc: - all stty's stderr belongs to /dev/null
+
+2005-10-25 16:21 +0000 [r6482]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - detect if run inside vserver and ignore
+         rc_splash if so
+
+2005-10-25 16:04 +0000 [r6480]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - we need /proc mounted before everything
+
+2005-10-25 14:17 +0000 [r6479]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.modules, rc.d/rc.shutdown, rc.d/rc, rc.d/rc.sysinit: -
+         grep: all your stderr are belong to /dev/null
+
+2005-10-25 11:58 +0000 [r6477]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - better detection of tput functionality
+
+2005-10-19 19:06 +0000 [r6468]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Update for new release.
+
+2005-10-19 18:08 +0000 [r6467]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Working version of
+         calcprefix().
+
+2005-10-19 11:01 +0000 [r6462]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc: - check for proper first argument in correct place
+
+2005-10-17 15:04 +0000 [r6453]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - RC_LOGGING should be checked against
+         "no"
+
+2005-10-17 14:52 +0000 [r6452]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/init.d/functions, rc.d/rc.shutdown: -
+         clean solution for initlog/minilogd: RC_LOGGING setting, and
+         don't log while shutting down
+
+2005-10-17 13:49 +0000 [r6451]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * src/minilogd.c (added), src/initlog.c, src/Makefile.am: -
+         reverted last commit
+
+2005-10-17 13:20 +0000 [r6450]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * src/Makefile.am, src/minilogd.c (removed), src/initlog.c: -
+         removed minilogd and its calls (more pain than gain)
+
+2005-10-16 19:26 +0000 [r6447]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.init, rc.d/init.d/single, sysconfig/timezone, hwprofile,
+         rc.d/init.d/cpusets, sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifup-post, rc.d/init.d/allowlogin,
+         rc.d/rc.local, sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifdown-irda,
+         sysconfig/network-scripts/ifup-iucv, rc.d/rc, sysconfig/network,
+         rc.d/init.d/killall, sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-irda, rc.d/init.d/network,
+         rc.d/rc.shutdown, rc.d/init.d/timezone,
+         sysconfig/network-scripts/ifdown-vlan,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifup-plusb,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifdown-br,
+         sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip, sysconfig/system,
+         rc.d/init.d/template.init, rc.d/rc.sysinit, rc.d/init.d/random,
+         sysconfig/network-scripts/ifdown-post: - removed dumb tw=78 vim
+         setting
+
+2005-10-06 16:08 +0000 [r6429]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/network: - fixed CIFS unmounting
+
+2005-10-04 18:09 +0000 [r6425]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         Use pidfile for wpa_supplicant.
+
+2005-10-02 17:13 +0000 [r6420]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description,
+         sysconfig/network-scripts/ifdown: Simple support for WPA. Note
+         that killing wpa_supplicant daemon is supported only for single
+         daemon/interface (TODO: multiple daemons support).
+
+2005-09-05 17:12 +0000 [r6352]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Add support for whole path in pidfile.
+
+2005-08-24 22:08 +0000 [r6333]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets, rc.d/init.d/functions: Fix is_yes in cpuset
+         stuff. Quote file paths when doing echo > something.
+
+2005-08-23 16:32 +0000 [r6330]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Update for 0.4.0.20.
+
+2005-08-23 16:29 +0000 [r6327-6329]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm: Fixed PlusGSM
+         examples. (Patch by Paweł Gołaszewski)
+
+       * inittab: Example for agetty on serial port.
+
+       * rc.d/init.d/network: [a-z] doesn't always mean whole alphabet
+         (for example et_EE locale). Use C locale when searching. (Patch
+         by Elan Ruusamäe)
+
+2005-08-15 22:45 +0000 [r6315]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - don't spew errors on stdout - inform about
+         failurse
+
+2005-08-14 18:32 +0000 [r6311]  Tomasz Wittner <twittner/at/pld-linux.org>
+
+       * DEVELOPMENT: - typo in enumeration
+
+2005-08-13 23:06 +0000 [r6307-6310]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - added echo for better status readability
+
+       * rc.d/init.d/cpusets: - properly test cpuset dir for status
+         display
+
+       * rc.d/init.d/cpusets: - properly escape message
+
+       * rc.d/init.d/cpusets: - use show() when creating/removing cpusets
+
+2005-08-13 22:58 +0000 [r6306]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - typo
+
+2005-08-13 22:34 +0000 [r6305]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - take CPUSETS setting into account
+
+2005-08-13 22:00 +0000 [r6304]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - mount cpuset filesystem if kernel capable
+
+2005-08-11 17:43 +0000 [r6300]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * doc/sysconfig.txt, doc/sysconfig.docb: - added description for
+         available per-service settings
+
+2005-08-11 17:11 +0000 [r6299]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - cpusets added
+
+2005-08-11 17:04 +0000 [r6297-6298]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: - cpusets script added
+
+       * configure.ac: - sysconfig/cpusets/Makefile added
+
+2005-08-11 16:58 +0000 [r6294-6296]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * po/pl.po: - final touch
+
+       * po/pl.po: - updated
+
+       * rc.d/init.d/functions: - added some code for completness
+
+2005-08-11 16:36 +0000 [r6293]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/cpusets: - defile cpuset settings as local in
+         function
+
+2005-08-11 16:35 +0000 [r6292]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: filter_chroot(): Do not filter pids for
+         processes that no longer exists. We don't know whether these were
+         from current (ch)root so we assume that they were.
+
+2005-08-11 16:23 +0000 [r6291]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added cpuset support to daemon and
+         status functions
+
+2005-08-10 20:10 +0000 [r6290]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/Makefile.am, rc.d/init.d/cpusets (added),
+         sysconfig/cpusets/Makefile.am (added), sysconfig/system,
+         sysconfig/cpusets/cpuset-test (added): - CPUSETS support (work in
+         progress)
+
+2005-08-10 19:49 +0000 [r6289]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/cpusets (added): - a place for cpusets config files
+
+2005-08-08 21:53 +0000 [r6288]  Andrzej Dopierała <undefine/at/pld-linux.org>
+
+       * rc.d/init.d/network: - get only tnlcfg-name, not tnlcfg-name~
+
+2005-07-27 09:09 +0000 [r6229]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: ifup: Handle special
+         pcmcia-hotplug case.
+
+2005-07-21 22:35 +0000 [r6226]  Andrzej Dopierała <undefine/at/pld-linux.org>
+
+       * rc.d/init.d/network: - first up bridge, next tunnels (tunnels can
+         be on bridges) - first down tunnels, next bridge ;)
+
+2005-05-30 18:54 +0000 [r6028]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.0.19.
+
+2005-05-30 18:47 +0000 [r6027]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Understand BOOTPROTO=static
+         properly (Elan Ruusamäe <glen/at/pld-linux.org>).
+
+2005-05-30 18:42 +0000 [r6026]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-post: When stopping delete root
+         queueing discipline instead of trying to add it.
+
+2005-05-25 08:26 +0000 [r6013]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * sysctl.conf: grsec is available for 2.6 kernels too.
+
+2005-05-03 17:50 +0000 [r5915]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: Typo.
+
+2005-04-30 20:53 +0000 [r5896]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: killproc(): fill base and pid variables
+         based on waitname.
+
+2005-04-25 16:01 +0000 [r5884]  Adam Gołębiowski <adamg/at/pld-linux.org>
+
+       * rc.d/init.d/network: - when using BOOTPRIO, cd to /etc/sysconfig
+         to get list of interfaces
+
+2005-04-15 21:48 +0000 [r5770]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-idea: Add BT example.
+
+2005-04-08 17:34 +0000 [r5744]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * sysconfig/system: - typo
+
+2005-03-25 19:00 +0000 [r5631]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Updated to match needs.
+
+2005-03-25 18:50 +0000 [r5629-5630]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Fix sound dmabuf handling in rc.sysinit. Use
+         different modules config file for 2.4/2.6 kernel.
+         (havner/at/pld-linux.org)
+
+       * rc.d/init.d/functions: Fix displaing show() function when $CHARS
+         variable is set. (tommat/at/pld-linux.org).
+
+2005-03-25 18:37 +0000 [r5625]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.0.18.
+
+2005-03-22 16:54 +0000 [r5615]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Increment counter when waiting specified
+         time for daemon to start/terminate.
+
+2005-03-06 00:11 +0000 [r5570]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am: Place minilogd in sbin.
+
+2005-03-05 23:46 +0000 [r5569]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * man/ru/Makefile.am (added), man/es/Makefile.am (added),
+         man/fr/Makefile.am (added), man/de/Makefile.am (added),
+         man/sv/Makefile.am (added), man/ja/Makefile.am (added),
+         configure.ac, man/Makefile.am: - Finished manuals to subdirs.
+         (Thanks arekm).
+
+2005-01-24 14:15 +0000 [r5479]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * configure.ac: Use AM_CONFIG_HEADER, rather AC_CONFIG_HEADER for
+         autogen.sh to call autoheader.
+
+2005-01-24 14:05 +0000 [r5478]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * src/config.h.in (removed): removed
+
+2005-01-24 13:47 +0000 [r5477]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * src/Makefile.am, configure.ac, acinclude.m4 (added),
+         src/config.h.in (added), src/start-stop-daemon.c (added): added
+         start-stop-daemon from dpkg-1.10.23 includes config.h support now
+         (as such conditional defines impossible on commandline) and m4
+         macros needed for start-stop-daemon.c
+
+2005-01-24 13:38 +0000 [r5476]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/netreport.1 (removed), doc/genhostid.1 (removed),
+         man/netreport.1 (added), man/genhostid.1 (added), doc/ipcalc.1
+         (removed), doc/usleep.1 (removed), doc/usernetctl.8 (removed),
+         man/ipcalc.1 (added), man/usleep.1 (added), doc/consoletype.1
+         (removed), man/usernetctl.8 (added), Makefile.am, doc/initlog.1
+         (removed), doc/doexec.1 (removed), doc/Makefile.am,
+         doc/ppp-watch.8 (removed), man/consoletype.1 (added),
+         man/initlog.1 (added), man/doexec.1 (added), man/ppp-watch.8
+         (added), man/Makefile.am: - moved manuals to man/ subdir
+
+2005-01-24 13:32 +0000 [r5475]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * man/ja (added), man/ru/start-stop-daemon.8 (added),
+         man/es/start-stop-daemon.8 (added), man/fr/start-stop-daemon.8
+         (added), man/de/start-stop-daemon.8 (added),
+         man/sv/start-stop-daemon.8 (added), man (added),
+         man/ja/start-stop-daemon.8 (added), man/ru (added), man/es
+         (added), man/fr (added), man/start-stop-daemon.8 (added), man/de
+         (added), man/sv (added), man/Makefile.am (added): - created tree
+         for manuals - imported start-stop-daemon manuals from
+         dpkg-1.10.23
+
+2005-01-24 00:33 +0000 [r5474]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * doc/Makefile.am: - fix typo which prevented packaging rest of the
+         manuals to distrib
+
+2005-01-23 23:56 +0000 [r5473]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - typo, english
+
+2005-01-23 19:11 +0000 [r5472]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: - mount usbfs if available
+
+2005-01-17 21:15 +0000 [r5461]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - indent to same level
+
+2005-01-02 22:53 +0000 [r5418]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifdown-irda,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/network-scripts/ifup-iucv,
+         sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-irda,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifdown-vlan,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-plusb,
+         sysconfig/network-scripts/ifdown-br,
+         sysconfig/network-scripts/ifup-neigh: - unified indentation (ts=8
+         sw=4, as vi modeline says)
+
+2005-01-02 21:49 +0000 [r5417]  Radosław Zieliński <radek/at/pld-linux.org>
+
+       * sysctl.conf: - added net.ipv4.conf.default.rp_filter=1 -- *.all.*
+         has no real effect: when sysctl -p is run, interfaces are not up
+         yet
+
+2004-12-13 22:31 +0000 [r5382-5383]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * po/de.po, po/pl.po: - updated for current source tree
+
+       * rc.d/init.d/network: - missed one
+
+2004-12-13 22:01 +0000 [r5379-5380]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl, rc.d/init.d/network,
+         sysconfig/network-scripts/ifup: - make nls invocations actually
+         translatable
+
+       * po/de.po: - fixed remaining fuzzy entries
+
+2004-12-13 20:16 +0000 [r5378]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * po/de.po: - updated my email address - fixed some fuzzy entries
+         (the easiest ones)
+
+2004-12-08 22:46 +0000 [r5368]  Elan Ruusamäe <glen/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - typo
+
+2004-12-02 17:43 +0000 [r5362]  Jarek Koszuk <heretyk/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Support for per service umask settings.
+         This solves the problem with possibly different umask settings
+         when starting services at boot time, and by hand.
+
+2004-11-29 20:10 +0000 [r5357]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-idea (added),
+         sysconfig/interfaces/data/chat-ppp0.gprs-idea (added): Add IDEA
+         GPRS examples.
+
+2004-11-26 22:49 +0000 [r5351]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Version 0.4.0.17.
+
+2004-11-13 21:43 +0000 [r5320]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Drop condition when checking
+         cable - not needed.
+
+2004-11-13 21:37 +0000 [r5319]  Bartosz Taudul <wolf/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - fix typo
+
+2004-11-13 21:31 +0000 [r5318]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup: Link status checking for ifup
+         dhcp iface (from FC3).
+
+2004-11-13 20:31 +0000 [r5315]  Adam Gołębiowski <adamg/at/pld-linux.org>
+
+       * sysconfig/system: - s/outsite/outside/
+
+2004-11-13 11:36 +0000 [r5312-5313]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Drop obsolete msg_() functions.
+
+       * rc.d/rc.sysinit, rc.d/init.d/functions: More SELinux support from
+         FC initscripts.
+
+2004-10-25 19:27 +0000 [r4863]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Use usbfs as USB filesystem name (not sure about
+         2.4?).
+
+2004-10-01 21:28 +0000 [r4677]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: Modprobe ppp modules when
+         /dev/ppp doesn't exists (udev and devfs case).
+
+2004-09-25 22:22 +0000 [r4656]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Move .ICE-unix creation a bit lower in case of
+         CLEAN_TMP usage.
+
+2004-09-25 13:22 +0000 [r4649]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Added udev support.
+
+2004-09-25 12:30 +0000 [r4647]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: Fix typo (numer->number).
+
+2004-09-24 21:04 +0000 [r4639]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Version 0.4.0.16.
+
+2004-09-22 16:32 +0000 [r4636]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/interfaces/ifcfg-description:
+         BOOTPRIO for changing interfaces starting order.
+
+2004-09-22 15:38 +0000 [r4635]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc.d/init.d/network: - Start VLAN's after all physical interfaces
+
+2004-09-19 13:32 +0000 [r4615]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Create /tmp/.ICE-unix directory for X11.
+
+2004-08-25 20:58 +0000 [r4436]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/Makefile.am, sysconfig/ip-rules (removed): Drop
+         sysconfig/ip-rules, it's not used.
+
+2004-08-25 20:36 +0000 [r4434]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.0.15.
+
+2004-08-25 20:33 +0000 [r4433]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: Add sys-chroots.
+
+2004-08-25 20:15 +0000 [r4432]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/tnldown: Don't display ls errors when
+         there is no tunnel configs.
+
+2004-08-25 17:30 +0000 [r4431]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/i18n: - it's much too early for unicode by default, so
+         add some comments
+
+2004-08-22 18:06 +0000 [r4430]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: When shutting down try to stop LVM devices,
+         too.
+
+2004-08-20 10:16 +0000 [r4429]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network, rc.d/rc.sysinit: Set sysctl parameters
+         quietly (needed to avoid bunch of errors when grsec_lock is
+         turned on).
+
+2004-08-14 23:16 +0000 [r4428]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Add support for waiting for process to
+         finish to daemon() and killproc(). Example usage: daemon
+         --waitforname httpd.${HTTPD_MPM} --waitfortime 60
+         httpd.${HTTPD_MPM} -f /etc/httpd/httpd.conf -k stop where
+         --waitforname is name of process to wait and --waitfortime is how
+         many seconds to wait at max.
+
+2004-08-09 00:31 +0000 [r4424]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Pass complete path to sulogin (/sbin/sulogin).
+
+2004-07-23 23:08 +0000 [r4389]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: chroot: umount /proc, /selinux and /sys
+         at stopping.
+
+2004-07-23 23:04 +0000 [r4387-4388]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: chroot: umount all when stopping.
+
+       * rc.d/init.d/sys-chroots, rc.d/rc: chroot: Process stopping
+         properly.
+
+2004-07-23 22:56 +0000 [r4386]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: chroot: Do not run network but lock
+         subsys to pretend that network was run.
+
+2004-07-23 22:27 +0000 [r4385]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots, rc.d/rc: rc: When shutting down to not
+         call rc.shutdown when in chroot. sys-chroots: Run some commands
+         really in chroot.
+
+2004-07-23 21:58 +0000 [r4384]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada,
+         sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada: Set MTU to
+         1452 for neostrada (from neostrada.info FAQ).
+
+2004-07-23 21:24 +0000 [r4383]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots: chroot: clean up mtabs, mount proc,
+         sysfs and selinuxfs.
+
+2004-07-23 21:14 +0000 [r4382]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/sys-chroots (added): Started implementing multiple
+         systems in chroots idea.
+
+2004-07-04 17:50 +0000 [r4316]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: s/path/name/
+
+2004-07-04 17:46 +0000 [r4315]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Avoid backup files when searching for shell
+         scripts, too.
+
+2004-07-04 16:23 +0000 [r4312]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/de.po, po/pl.po: Make update-po + few manual fixes to pl.po.
+
+2004-07-04 16:14 +0000 [r4311]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         rc.d/init.d/functions: Add #!/bin/sh to fool file(1).
+
+2004-07-04 15:57 +0000 [r4310]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Don't search for shell scripts in directories with
+         names starting with dot.
+
+2004-07-04 15:45 +0000 [r4309]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Turn off RAID devices using mdadm first,
+         fallback to raidutils. Make raidutils stopping gettext friendly.
+
+2004-07-04 15:35 +0000 [r4308]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * makepot.pl: Put empty CHARSET instead of iso8859-2 in .pot file.
+
+2004-07-04 15:26 +0000 [r4307]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - 0.4.0.14
+
+2004-07-04 14:41 +0000 [r4306]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Last one sysctl called with -e option to avoid
+         errors on unknown keys.
+
+2004-07-04 14:34 +0000 [r4305]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Run LVM tools for RAID case only if some RAID
+         volume was there.
+
+2004-07-04 14:11 +0000 [r4304]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * TODO: Some are done.
+
+2004-07-04 09:40 +0000 [r4303]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: Quote whole message passed to
+         logger.
+
+2004-07-03 12:03 +0000 [r4302]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: s/speedtouch/speedtch/. Drop
+         quoting from nls call.
+
+2004-07-03 11:27 +0000 [r4301]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada (added),
+         sysconfig/network-scripts/ifup-ppp: Speedtouch modem support
+         (arekm && qboosh).
+
+2004-07-02 21:56 +0000 [r4299]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-ppp: Set interface used by EAGLE
+         driver to down when downing ppp interface.
+
+2004-07-02 21:51 +0000 [r4298]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-ppp: Always call ifdwon-post
+         even if pppd was killed using -KILL.
+
+2004-07-02 21:42 +0000 [r4297]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada: Use PAPNAME
+         for neo example. Fix ifcfg-password.so plugin usage.
+
+2004-07-02 20:45 +0000 [r4296]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * hwprofile: Nicer profile number choose message.
+
+2004-07-02 15:30 +0000 [r4290-4291]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada (added),
+         sysconfig/interfaces/Makefile.am: Add TPSA Neostrada example
+         (Sagem Fast 700 using eagle-usb driver).
+
+       * sysconfig/interfaces/data/chat-ppp0.tpsa,
+         sysconfig/network-scripts/ifup-ppp: Fix chat-ppp0.tepsa (they no
+         longer send ppp string). ifcfg-password.so is choosen only if
+         PLUGIN_IFCFG_PASSWORD is set to yes.
+
+2004-06-29 22:06 +0000 [r4273]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/i18n: UTF-8 pl_PL is pl_PL.UTF-8/UTF-8 in
+         SUPPORTED_LOCALES (qboosh).
+
+2004-06-29 19:43 +0000 [r4269]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Relase 0.4.0.13.
+
+2004-06-29 19:33 +0000 [r4268]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Run rc.live for PLD LiveCD.
+
+2004-06-29 19:28 +0000 [r4267]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Use fastboot also for encrypted FS.
+
+2004-06-29 19:08 +0000 [r4266]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Sync remaining variable in fs umounting. Add
+         squashfs there.
+
+2004-06-28 21:23 +0000 [r4264]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/de.po, po/pl.po, po/Makefile.am: Fix fields spoted by msgfmt
+         -c and print translation statistics.
+
+2004-06-28 21:19 +0000 [r4263]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/Makefile.am: msgfmt now does po file validation.
+
+2004-06-28 19:22 +0000 [r4258]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Minimalize code to support SYSFONT, fix UTF-8
+         handling.
+
+2004-06-27 14:54 +0000 [r4253]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Drop debugging stuff.
+
+2004-06-27 14:43 +0000 [r4252]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Enhance font setting (use CONSOLEMAP and
+         CONSOLEFONTMAP options).
+
+2004-06-27 14:30 +0000 [r4251]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/i18n: Promote unicode settings.
+
+2004-06-24 01:51 +0000 [r4236]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Always try to sync /dev entries for LVM2.
+
+2004-06-23 23:10 +0000 [r4235]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Synchronize LVM2 devices.
+
+2004-06-20 12:19 +0000 [r4225]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Version 0.4.0.12.
+
+2004-06-20 11:33 +0000 [r4224]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/init.d/network: (sysctl): Ignore unknown
+         keys in sysctl.conf since kernels can have too different
+         settings.
+
+2004-06-18 23:40 +0000 [r4215]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: killproc(): Add --pidfile <file> support.
+
+2004-06-16 20:31 +0000 [r4211]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: daemon(), run_cmd(): cd / before running
+         any program
+
+2004-06-04 12:49 +0000 [r4140]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysctl.conf: Added exec-shield example.
+
+2004-05-24 00:49 +0000 [r4121]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: 2.4.x kernel EVMS modules are loaded only when
+         really running on 2.4 kernels.
+
+2004-05-24 00:44 +0000 [r4120]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: Default route is forced only
+         if DEFROUTE=yes (Witek Kręcicki <adasi/at/pld-linux.org).
+
+2004-05-23 19:19 +0000 [r4119]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/pl.po: More Polish characters used (Robert 'dzeus' Graużenis
+         <dzeus/at/zatorze.slupsk.pl>)
+
+2004-05-19 22:43 +0000 [r4099]  Marcin Chojnowski <martii/at/pld-linux.org>
+
+       * po/pl.po: all strings are with Polish chars now
+
+2004-05-18 22:58 +0000 [r4086]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/ipcalc.c, src/usleep.c, src/process.c, src/minilogd.c,
+         src/testd.c, src/initlog.c, src/doexec.c, src/usernetctl.c:
+         Update helpers from Fedora initscripts.
+
+2004-05-18 22:46 +0000 [r4084]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare for 0.4.0.11.
+
+2004-05-18 22:27 +0000 [r4083]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Don't depend on bin paths.
+
+2004-05-18 22:24 +0000 [r4082]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.sysinit: Set system font as soon
+         as possible.
+
+2004-05-18 21:29 +0000 [r4081]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: Run unicode_start for UTF-8 console.
+
+2004-05-18 21:16 +0000 [r4080]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Always delete some /tmp files on boot.
+
+2004-05-18 10:33 +0000 [r4074]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Load hid, keybdev and mousedev only for kernels
+         older than 2.6. For newer kernels use hotplug.
+
+2004-05-18 10:13 +0000 [r4073]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Support for unmounting /initrd.
+
+2004-05-16 16:14 +0000 [r4065]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: (lvm detection): Remove head command usage - do
+         it with awk only.
+
+2004-05-15 02:29 +0000 [r4055]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/Makefile.am: Example gentoo colors configuration
+         included.
+
+2004-05-15 02:23 +0000 [r4053-4054]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Release 0.4.0.10.
+
+       * rc.d/init.d/functions, sysconfig/init-colors (added), rc.d/rc,
+         rc.d/rc.sysinit, sysconfig/Makefile.am,
+         sysconfig/init-colors.gentoo (added): Merge color customization
+         support created by Łukasz Pawelczyk <havner/at/pld-linux.org>.
+
+2004-04-06 12:11 +0000 [r3903]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/network: - umount CIFS on network stop
+
+2004-04-03 21:39 +0000 [r3881]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Fix LVM1 tools detection.
+
+2004-04-02 14:39 +0000 [r3855]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/ifcfg-eth0.1 (added): VLAN example
+         configuration.
+
+2004-03-29 20:42 +0000 [r3843]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: --fork support in daemon() by Aredridel
+         <aredridel/at/nbtsc.org>.
+
+2004-03-08 14:04 +0000 [r3424]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - check for LVM tools version and load only
+         needed modules - fix case when /var is RO and LVM2 is activated
+
+2004-03-08 13:37 +0000 [r3423]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cifs is networked fs
+
+2004-02-26 22:14 +0000 [r3384]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: Create $(sysconfdir)/init.d ->
+         $(sysconfdir)/rc.d/init.d symlink for compatiblity.
+
+2004-02-07 21:37 +0000 [r3312]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/Makefile.am: Use $(mkinstalldirs) as suggested by Artur
+         Frysiak.
+
+2004-02-06 22:33 +0000 [r3306]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * po/Makefile.am: Use install_sh instead of mkinstalldirs.
+
+2004-02-06 22:24 +0000 [r3305]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Preparation for 0.4.0.9.
+
+2004-02-03 21:55 +0000 [r3271]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Set bafile earlier.
+
+2004-02-03 21:37 +0000 [r3269]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Do not delete hwprofile configuration (Tomasz
+         Witek <tiwek/at/tiwek.com>).
+
+2004-01-27 11:55 +0000 [r3222]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: daemon(): when using --user run su with -s
+         /bin/sh option.
+
+2004-01-25 12:27 +0000 [r3221]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: Run kexec before rebooting (kexec support).
+
+2004-01-24 01:06 +0000 [r3220]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: Wait for second after shutting
+         down dhcp daemon/interface (for example dhcpcd needs some time).
+
+2004-01-16 23:12 +0000 [r3195]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: filter_chroot(): Return unfiltered pids
+         when /proc is not mounted.
+
+2004-01-16 15:43 +0000 [r3194]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am, src/usernetctl.c: Use proper path when executing
+         ifup/ifdown scripts in sernetctl.
+
+2004-01-15 22:12 +0000 [r3193]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am, configure.ac: Use --cflags-only-I from glib or
+         glib-2.0 configuration when building ppp-watch.
+
+2004-01-10 16:13 +0000 [r3156]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Set wireless nick to
+         $WLAN_NICKNAME (variable) not WLAN_NICKNAME (string).
+
+2004-01-10 15:57 +0000 [r3153]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - 0.4.0.8 release
+
+2004-01-10 15:27 +0000 [r3152]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Outside chroot always add all possible
+         pids unless some has /proc/XXX/root inside of known chroot.
+
+2004-01-10 14:07 +0000 [r3151]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: filter_chroot(): add pid only once.
+
+2004-01-10 13:58 +0000 [r3150]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Fix ulimits in one more case (ssh vs squid
+         case).
+
+2004-01-10 13:42 +0000 [r3149]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions, sysconfig/system: Support for handling
+         processes inside and outside of chrooted systems based on
+         rc-scripts-chroot_safe.patch.
+
+2004-01-09 21:59 +0000 [r3148]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Rework ulimit support so it works again.
+
+2004-01-09 01:40 +0000 [r3141]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Sencond part of ppp
+         DEVNAME fixes.
+
+2004-01-09 01:24 +0000 [r3140]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-ppp: ifup-ppp instructs pppd to
+         create pppd-$DEVNAME.pid file, so in ifdown-ppp we also use
+         $DEVNAME.
+
+2004-01-09 00:39 +0000 [r3139]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * run-parts: If in -u mode and user cannot be found then skip that
+         file and display warning.
+
+2004-01-09 00:29 +0000 [r3138]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * run-parts: Added -u option which means: run as owner of file not
+         as current user (usable mainly from root).
+
+2004-01-08 22:42 +0000 [r3137]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am, configure.ac: Try to find glib-2.0, glib in that
+         order - link with first found.
+
+2004-01-08 22:01 +0000 [r3134]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - 0.4.0.7 release
+
+2004-01-08 02:43 +0000 [r3133]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: When shutting down
+         ip rule and ip route, clear rules using current kernel tables
+         configuration not data stored in configuration files so we always
+         end in clean state (by Arkadiusz Chomicki <duch/at/wla.pl>).
+
+2004-01-07 08:37 +0000 [r3132]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc: Typo fixed (revious->previous) in bootsplash code.
+         Arkadiusz Chomicki <duch/at/wla.pl>
+
+2004-01-02 16:44 +0000 [r3109-3110]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * autogen.sh: Second option when doing changelog is directory name
+         like rc-scripts.
+
+       * rc.d/rc.sysinit: Zero /etc/cryptomtab if such file exists.
+
+2003-12-28 19:23 +0000 [r3090]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Don't mount selinuxfs if it's already mounted
+         (by init for example).
+
+2003-12-27 14:43 +0000 [r3081]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: Fix static routes
+         conf parsing. (Arkadiusz Chomicki <chomar/at/wla.pl>)
+
+2003-12-25 18:43 +0000 [r3076]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * autogen.sh: changelog generation part can be now used in other
+         modules.
+
+2003-12-25 13:20 +0000 [r3073]  Łukasz Jernaś <deejay1/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - typo
+
+2003-12-23 17:15 +0000 [r3065]  Paweł Żurowski <pzurowski/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fixed bug when $limits is empty
+
+2003-12-23 00:37 +0000 [r3064]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network: When starting execute rc_splash 'bootnetwork
+         start'.
+
+2003-12-23 00:31 +0000 [r3063]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Read sysconfig/bootsplash, too.
+
+2003-12-22 17:43 +0000 [r3062]  Paweł Żurowski <pzurowski/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - removed sed (I'm sorry I done buggy
+         change last time, now it is good one - tested and working)
+
+2003-12-22 00:59 +0000 [r3061]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc: Much more accurate calculations of start/stop scripts
+         required in new runlevel.
+
+2003-12-21 22:55 +0000 [r3060]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Revert few pzurowski changes since they
+         are broken even after fixing syntax.
+
+2003-12-21 22:31 +0000 [r3059]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Paweł Żurowski optimizations were broken
+         (missing quotation marks). Fixed now.
+
+2003-12-21 21:25 +0000 [r3056]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Add pkgconfig to BuildRequires.
+
+2003-12-21 21:11 +0000 [r3055]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am, configure.ac: Find libglib.a location using
+         pkg-config and use it (Artur Frysiak <wiget/at/pld-linux.org>).
+
+2003-12-21 17:30 +0000 [r3054]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac, sysconfig/network-scripts/Makefile.am: Don't set
+         libdir - use value from configure script.
+
+2003-12-21 17:05 +0000 [r3053]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.0.6 is comming
+
+2003-12-21 16:43 +0000 [r3052]  Łukasz Jernaś <deejay1/at/pld-linux.org>
+
+       * po/pl.po: - typo
+
+2003-12-21 14:33 +0000 [r3051]  Adam Gorzkiewicz <adgor/at/pld-linux.org>
+
+       * rc.d/rc.modules: - Typo
+
+2003-12-21 13:43 +0000 [r3050]  Marcin Krzyżanowski <krzak/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - fix ${PPPOA_EAGLE} check if
+         there isn't executable adictrl try use eaglectrl
+
+2003-12-21 13:28 +0000 [r3049]  Paweł Żurowski <pzurowski/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - small revert: we do not use sed in
+         rc-scripts - other sed -> awk changes
+
+2003-12-21 13:08 +0000 [r3048]  Marcin Krzyżanowski <krzak/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - corrected nls message when
+         pppd does not exist - support for PPPOA_EAGLE start with kernel
+         2.6 and 2.4
+
+2003-12-21 12:14 +0000 [r3047]  Paweł Żurowski <pzurowski/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, rc.d/rc.modules, rc.d/init.d/functions: -
+         simplified (use less tools, one-time file reading)
+
+2003-12-21 10:46 +0000 [r3046]  Paweł Żurowski <pzurowski/at/pld-linux.org>
+
+       * rc.d/rc.modules: - simplified (double awk->single one)
+
+2003-12-21 10:18 +0000 [r3045]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.modules: Added support for /etc/modules file exactly for
+         one kernel (like /etc/modules.2.6.0).
+
+2003-12-21 10:14 +0000 [r3044]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.modules: Do not require existence of /etc/modules (Marcin
+         Krzyzanowski <krzak/at/linux.net.pl>).
+
+2003-12-21 00:58 +0000 [r3043]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.shutdown, rc.d/rc,
+         rc.d/rc.sysinit: More progress bar support (bootsplash): it moves
+         now!
+
+2003-12-20 21:21 +0000 [r3042]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * hwprofile: Reindented whole script. checkprofdir(): New. Use it
+         when required (now help is shown when needed). When executed
+         without arguments show help.
+
+2003-12-19 14:40 +0000 [r3039]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: bdflush is not required.
+
+2003-12-19 13:59 +0000 [r3038]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am: Use @libdir@ instead of hardcoded /usr/lib path
+         when linking ppp-watch with glib.
+
+2003-12-15 13:29 +0000 [r1739]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: Set action variable to proper value in
+         rc_splash(). Found by Michal Moskal <malekith/at/pld-linux.org>.
+
+2003-12-14 21:20 +0000 [r1733]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Fix mounting sysfs - be consistent with mounting
+         proc + do not require entry in fstab (qboosh). Add support for
+         mounting selinuxfs (me).
+
+2003-12-14 18:23 +0000 [r1732]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/usernetctl.c: - fix path to ifcfg- files (wrobell)
+
+2003-12-12 16:43 +0000 [r1731]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/rc.sysinit, rc.d/init.d/functions: - initial
+         support for bootsplash.org
+
+2003-12-07 15:54 +0000 [r1723]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - release 0.4.0.5
+
+2003-12-05 20:41 +0000 [r1722]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network: Fix interfaces_boot for bridge devices.
+         (found by Radosław Kintzi <radek/at/pop.e-wro.pl>)
+
+2003-12-05 20:30 +0000 [r1721]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-br: Move setting wireless specific
+         settings into separate wireless_param() function and use it in
+         ifup. Set wireless parameters for each wireless device being part
+         of bridge. (patch by Radosław Kintzi <radek/at/pop.e-wro.pl>)
+
+2003-11-15 14:38 +0000 [r1698]  Marcin Krzyżanowski <krzak/at/pld-linux.org>
+
+       * sysconfig/i18n: - add #SUPPORTED_LOCALES="pl_PL/ISO-8859-2
+         de_DE/ISO-8859-2 en_GB/ISO-8859-1 en_US/ISO-8859-1"
+
+2003-11-14 14:05 +0000 [r1697]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.modules: Also load modules from
+         /etc/modules.${kernel_major}.${kernel_minior} if exists. Allows
+         for example to specify modules only to be loaded on 2.6 kernels.
+         (idea by cieciwa)
+
+2003-11-01 20:18 +0000 [r1484]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Redirect grep stderr output when checking for
+         HID to /dev/null.
+
+2003-11-01 19:34 +0000 [r1483]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Delete rpm locks when starting
+         (/var/lib/rpm/__db*).
+
+2003-11-01 19:31 +0000 [r1480-1482]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Explicitly turn on user and group quota.
+
+       * rc.d/rc.sysinit: Mount local filesystems with -O no_netdev option
+         (rh).
+
+       * rc.d/rc.sysinit: Rescan for LVM devices again after turning on
+         RAID devices in lvm-on-top-of-raid case.
+
+2003-11-01 19:20 +0000 [r1479]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: quotacheck could in some cases if quota files
+         were corrupted ask for user input - avoid this.
+
+2003-11-01 19:16 +0000 [r1478]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Initialize USB as fast as it's possible.
+         Properly mount usb filesystem even if it is not specified in
+         /etc/fstab.
+
+2003-11-01 14:54 +0000 [r1477]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * autogen.sh: Generate nice ChangeLog if requested and if needed
+         utilities are available.
+
+2003-10-31 17:49 +0000 [r1476]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Revert part which was pretending that /dev/pts
+         is always mounted (havner).
+
+2003-10-31 09:00 +0000 [r1475]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: Fix double link down (qboosh).
+
+2003-10-31 01:12 +0000 [r1474]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Check for nofirewire in /proc/cmdline not in
+         stdin.
+
+2003-10-31 00:49 +0000 [r1469-1471]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Prepare release 0.4.0.4.
+
+       * rc-scripts.spec.in: Include genhostid in rpm package.
+
+       * po/Makefile.am: Fix handling custom builddir (until now objects
+         were created in $(srcdir) not in builddir).
+
+2003-10-31 00:24 +0000 [r1468]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: Fix finding shell scripts procedure when building
+         with builddir different than place where configure file resides.
+
+2003-10-31 00:08 +0000 [r1466-1467]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * doc/ppp-watch.8, doc/ipcalc.1, doc/netreport.1,
+         doc/consoletype.1, doc/initlog.1: Update manual pages for each
+         updated utility.
+
+       * doc/Makefile.am, doc/genhostid.1 (added): Include genhostid man
+         page.
+
+2003-10-31 00:03 +0000 [r1464-1465]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * adjtime: - One more zero to reflect real format of this file.
+
+       * service: Set default PATH and use it along with TERM when
+         starting services.
+
+2003-10-30 23:58 +0000 [r1463]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * src/Makefile.am, src/getkey.c, src/usernetctl.c, src/ipcalc.c,
+         src/process.c, src/netreport.c, src/ppp-watch.c,
+         src/consoletype.c, src/genhostid.c (added), src/initlog.c: Update
+         bunch of utils in src/. New getnhostid utility. ipcalc has
+         enhanced PREFIX support. getkey has been rewrited to use popt
+         (rh).
+
+2003-10-30 23:43 +0000 [r1462]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Try to query 131072 bytes kernel buffer for
+         dmesg and keep dmesg file from last five runs.
+
+2003-10-30 23:33 +0000 [r1461]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Plase usbdevfs and devfs filesystems into
+         /etc/mtab, too.
+
+2003-10-30 23:30 +0000 [r1459-1460]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Handle situation where multiple usb-controller
+         aliases were defined and some of them were "off".
+
+       * rc.d/rc.sysinit: Firewire modules are now loaded if proper
+         modprobe aliases were found (from mdk).
+
+2003-10-30 23:21 +0000 [r1458]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Use -e option for first swapon call. Now swapon
+         will silently skip swap devices it they are not available at this
+         time (like for example swap files on some partitions).
+
+2003-10-30 21:41 +0000 [r1456]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifdown-br: - first flush addresses and
+         then down interface. Previously things were done in reversed
+         order and that caused problems on 2.6 kernels (ip flush was
+         hanging). Additionaly things are now done in sync with how it's
+         done in set_down_loopback().
+
+2003-10-28 01:09 +0000 [r1455]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix /sys mount and simplify check if usbfs is
+         already mounted
+
+2003-10-25 23:32 +0000 [r1451]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - 0.4.0.3 release
+
+2003-10-18 22:26 +0000 [r1445]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix typo in accounting script path (qboosh)
+
+2003-10-17 18:55 +0000 [r1444]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: - copy timezone file instead of symlinking
+         it (idea by ankry)
+
+2003-10-13 07:41 +0000 [r1437]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - don't ignore data specified
+         at DATAFORCHAT option (Szymon Siwek <sls/at/poczta.wp.pl>)
+
+2003-10-12 19:12 +0000 [r1434-1436]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/init.d/functions: - support for per
+         service ulimits configuration (qboosh)
+
+       * sysconfig/network-scripts/functions.network: - kill gnu in PLD
+         name (qboosh)
+
+       * po/de.po, rc.d/rc.shutdown, po/pl.po, rc.d/rc.sysinit: - use
+         /etc/rc.d/rc.acct for accouting; updated accouting related parts
+         of translations (qboosh)
+
+2003-10-11 11:03 +0000 [r1433]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - describe HOTPLUG
+
+2003-10-11 10:59 +0000 [r1432]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - if invoced from hotplug bring
+         up only interface with HOTPLUG=yes
+
+2003-10-11 09:15 +0000 [r1431]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - ifup exit if invoked from
+         hotplug and ONBOOT=yes
+
+2003-10-08 15:03 +0000 [r1430]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - sysfs added to remaining list in rc.shutdown
+         (by havner)
+
+2003-10-07 15:44 +0000 [r1425]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - bring PPPOA_IFACE up before
+         starting pppoa; small fix in logged message (both by adasi)
+
+2003-10-07 09:41 +0000 [r1424]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - initial eagle (pppoa)
+         support by Witold Krecicki <adasi/at/grubno.da.ru>)
+
+2003-10-06 09:19 +0000 [r1413]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * hwprofile: - fix typo in available word (qboosh)
+
+2003-10-04 13:02 +0000 [r1412]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - return with some retval
+
+2003-10-04 12:06 +0000 [r1411]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - allow unknown options to be passed to
+         initlog()
+
+2003-10-04 11:57 +0000 [r1410]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - move is_yes and is_not at beginning
+
+2003-10-04 11:41 +0000 [r1409]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * Makefile.am: - use rpm or rpmbuild depending on which rpm version
+         is installed
+
+2003-10-04 11:30 +0000 [r1408]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - include hwprofiles/files
+
+2003-10-04 11:08 +0000 [r1407]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions, sysconfig/system: Fast boot support
+         (disables NLS, fancy logging and thus is much faster). Useful on
+         workstations. Based on idea and patch by Wojtek Kaniewski
+         <wojtekka/at/bydg.pdi.net>.
+
+2003-10-04 09:55 +0000 [r1405-1406]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * setsysfont: - use CONSOLEFONT when SYSFONT is empty (Wojtek
+         Kaniewski <wojtekka/at/bydg.pdi.net>)
+
+       * sysconfig/network-scripts/ifup-ppp: Support for
+         ppp-plugin-ifcfg-password.spec by Wojtek Kaniewski
+         <wojtekka/at/bydg.pdi.net>.
+
+2003-10-04 09:46 +0000 [r1404]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/hwprofiles/files (added), sysconfig/hwprof, hwprofile,
+         sysconfig/hwprofiles/Makefile.am: Merged patch by Tomasz Witek
+         <tiwek/at/manta.univ.gda.pl>: - ignore Latency in /proc/pci -
+         ability to choose profile while booting - example profile file -
+         misc fixes and cleanups
+
+2003-10-02 18:43 +0000 [r1399-1400]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * configure.ac: - 0.4.0.2 release
+
+       * rc.d/init.d/functions: - check own pid, not parents one
+
+2003-10-02 18:33 +0000 [r1398]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - sleep 5 is not needed when starting usb; more
+         protection again double mounting usbfs
+
+2003-10-02 18:23 +0000 [r1397]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - do even try to kill itself
+
+2003-09-30 09:44 +0000 [r1393]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - load lvm and dm modules with "autoclean"
+
+2003-09-30 09:40 +0000 [r1392]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - usb-storage must be loaded before LVM
+         detection (disks on USB are real)
+
+2003-09-28 16:33 +0000 [r1383]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - fix error message
+
+2003-09-28 16:03 +0000 [r1382]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-irda: - fix setting arp for irdaX
+
+2003-09-28 14:53 +0000 [r1381]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - fix power/txpower/retry wlan
+         parameters handling
+
+2003-09-22 19:55 +0000 [r1371]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * run-parts: - use syntax described in SUSv2
+
+2003-09-22 17:46 +0000 [r1370]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * run-parts: - oh, use RUNPARTS_DIR
+
+2003-09-22 17:20 +0000 [r1369]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * run-parts: - run mainly safe named scripts and protect against
+         some bad files
+
+2003-09-22 01:35 +0000 [r1365]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - include more docs
+
+2003-09-22 01:28 +0000 [r1364]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network, sysconfig/i18n,
+         po/de.po, sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/interfaces/ifcfg-irlan0, ppp/ip-up.d/logger,
+         sysconfig/network-scripts/ifdown-post, README,
+         sysconfig/hwprofiles/Makefile.am, ppp/auth-down,
+         rc.d/init.d/timezone, sysconfig/network-scripts/ifup-post,
+         sysconfig/interfaces/data/chat-ppp0.leased1, makepot.pl,
+         sysconfig/network-scripts/ifup-neigh,
+         sysconfig/network-scripts/ifup-ppp, DEVELOPMENT, rc.d/rc.local,
+         AUTHORS, sysconfig/network-scripts/ifdown-irda,
+         isapnp/isapnp-kernel.conf, rc.d/init.d/random, run-parts,
+         rc.d/init.d/single, rc.d/rc.init, doc/ipcalc.1,
+         rc.d/init.d/killall, sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-irda, isapnp/Makefile.am,
+         configure.ac, sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifdown-vlan, po/pl.po,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown-br, doc/sysvinitfiles,
+         ppp/ipx-up, rc.d/init.d/allowlogin, ppp/auth-up,
+         sysconfig/network-scripts/ifup-vlan,
+         sysconfig/interfaces/tnlcfg-description,
+         sysconfig/network-scripts/ifup, sysconfig/interfaces/ifcfg-br0,
+         doc/sysconfig.txt, sysconfig/interfaces/data/chat-ppp0.callback,
+         rc.d/init.d/template.init, ppp/ip-up, rc.d/rc.sysinit,
+         doc/net-scripts.txt, sysconfig/interfaces/down.d/ppp/logger,
+         sysconfig/clock, hwprofile, sysconfig/interfaces/ifcfg-sl0,
+         src/ipcalc.c, ppp/ipx-down, rc.d/rc.shutdown,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-plusb,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/interfaces/up.d/ppp/logger, ppp/ip-down,
+         sysconfig/interfaces/ifcfg-ppp0.callback,
+         sysconfig/network-scripts/ifup-ipx, rc.d/init.d/functions,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/tnlup, rc-scripts.spec.in,
+         sysconfig/system, sysconfig/network-scripts/ifup-iucv, rc.d/rc,
+         sysconfig/network, sysconfig/interfaces/ifcfg-ppp0.leased1,
+         sysconfig/interfaces/ifcfg-ppp0.leased2, rc.d/rc.modules,
+         sysconfig/interfaces/data/chat-ppp0.tpsa,
+         sysconfig/interfaces/ifcfg-irda0, rc.d/init.d/network,
+         ppp/ip-down.d/logger: - preparation for upcoming 0.4.0.1 release
+         - updated all email addresses to current domain (pld-linux.org) -
+         added missing files (networking scripts mainly) - updated spec
+         file - updated changelog
+
+2003-09-22 00:55 +0000 [r1363]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/network-scripts/Makefile.am,
+         sysconfig/interfaces/Makefile.am: - added missing files
+
+2003-09-19 20:29 +0000 [r1361]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - description of
+         DIRECT_CONNECT for ppp, too
+
+2003-09-14 11:47 +0000 [r1331]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/interfaces/up.d/tnl/.cvsignore,
+         sysconfig/interfaces/up.d/ppp/.cvsignore,
+         sysconfig/interfaces/data/Makefile.am, autogen.sh,
+         sysconfig/static-nat, ppp/.cvsignore, doc/.cvsignore,
+         sysconfig/interfaces/up.d/all/.cvsignore, sysconfig/i18n,
+         po/de.po, src/process.c, sysconfig/network-scripts/ifup-br,
+         sysconfig/interfaces/ifcfg-irlan0,
+         sysconfig/interfaces/ifcfg-ppp0.tpsa,
+         sysconfig/interfaces/down.d/Makefile.am, src/process.h,
+         sysconfig/network-scripts/ifdown-post, lang.csh,
+         sysconfig/interfaces/down.d/ipx/.cvsignore, src/resolvesymlink.c,
+         sysconfig/hwprofiles/Makefile.am, dumb.sh,
+         sysconfig/interfaces/up.d/tnl/Makefile.am, ppp/auth-down, TODO,
+         sysconfig/interfaces/up.d/ipx/Makefile.am,
+         sysconfig/interfaces/data/chat-ppp0.leased1,
+         sysconfig/interfaces/down.d/all/thetouch, sysconfig/Makefile.am,
+         sysconfig/interfaces/data/.cvsignore,
+         sysconfig/network-scripts/ifup-neigh, doc/ppp-watch.8,
+         rc.d/rc.local, sysconfig/network-scripts/ifdown-irda, AUTHORS,
+         sysconfig/interfaces/ifcfg-description,
+         isapnp/isapnp-kernel.conf, doc/polski.dsl,
+         sysconfig/interfaces/down.d/ppp/Makefile.am,
+         ppp/ip-up.d/.cvsignore, po/.cvsignore, run-parts, rc.d/rc.init,
+         sysconfig/interfaces/down.d/.cvsignore,
+         sysconfig/network-scripts/.cvsignore, doc/ipcalc.1,
+         sysconfig/network-scripts/ifup-sl, configure.ac,
+         sysconfig/interfaces/ifcfg-eth0, sysconfig/interfaces/.cvsignore,
+         sysconfig/network-scripts/ifup-aliases, sysctl.conf,
+         sysconfig/network-scripts/ifdown-vlan, ppp/ip-down.d/Makefile.am,
+         COPYING, sysconfig/interfaces/up.d/.cvsignore, src/minilogd.c,
+         doc/doexec.1, ppp/auth-up,
+         sysconfig/interfaces/tnlcfg-description,
+         sysconfig/network-scripts/ifup, sysconfig/interfaces/ifcfg-br0,
+         rc.d/init.d/template.init, ppp/ip-up, src/netreport.c,
+         sysconfig/network-scripts/Makefile.am, rc.d/rc.sysinit,
+         src/testd.c, src/shvar.c,
+         sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm,
+         doc/net-scripts.txt, service, src/shvar.h,
+         sysconfig/interfaces/down.d/ip/Makefile.am, doc/usleep.1,
+         sysconfig/interfaces/down.d/all/Makefile.am,
+         sysconfig/network-scripts/ifup-routes, ppp/ipx-down,
+         rc.d/rc.shutdown, sysconfig/interfaces/up.d/ppp/Makefile.am,
+         sysconfig/network-scripts/ifup-plusb, sysconfig/static-routes,
+         sysconfig/interfaces/ifcfg-ppp0.callback,
+         sysconfig/interfaces/up.d/ip/.cvsignore,
+         sysconfig/network-scripts/tnlup, ppp/ip-up.d/Makefile.am,
+         rc-scripts.spec.in, sysconfig/interfaces/up.d/all/thetouch,
+         rc.d/init.d/.cvsignore, sysconfig/network-scripts/ifup-iucv,
+         sysconfig/interfaces/down.d/tnl/.cvsignore, rc.d/rc,
+         sysconfig/interfaces/down.d/ppp/.cvsignore, src/testdinit,
+         src/getkey.c, src/usernetctl.c, rc.d/rc.modules,
+         sysconfig/interfaces/data/chat-ppp0.tpsa,
+         sysconfig/interfaces/ifcfg-irda0,
+         sysconfig/hwprofiles/.cvsignore,
+         sysconfig/interfaces/down.d/all/.cvsignore,
+         sysconfig/interfaces/down.d/ip/.cvsignore, INSTALL,
+         sysconfig/interfaces/tnlcfg-icm, src/ppp-watch.c,
+         src/consoletype.c, ppp/ip-down.d/logger, doc/Makefile.am,
+         sysconfig/interfaces/up.d/all/Makefile.am, setsysfont,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-plip, ppp/ip-up.d/logger, README,
+         rc.d/Makefile.am, rc.d/init.d/timezone, isapnp/.cvsignore,
+         doc/consoletype.1, sysconfig/network-scripts/ifup-post,
+         Makefile.am, sysconfig/hwprof,
+         sysconfig/interfaces/up.d/ipx/.cvsignore,
+         ppp/ip-down.d/.cvsignore, adjtime, src/initlog.c,
+         doc/sysconfig.docb, src/initlog.conf, src/loglevel.c,
+         DEVELOPMENT, sysconfig/network-scripts/ifup-ppp, src/initlog.h,
+         rc.d/init.d/Makefile.am, doc/make-html, inittab,
+         rc.d/init.d/random, rc.d/init.d/single, sysconfig/timezone,
+         rc.d/init.d/killall, src/Makefile.am,
+         sysconfig/network-scripts/ifup-irda, isapnp/Makefile.am,
+         sysconfig/network-scripts/ifdown-ppp, po/pl.po,
+         sysconfig/interfaces/up.d/Makefile.am,
+         sysconfig/network-scripts/tnldown, modules, ppp/Makefile.am,
+         doc/initlog.1, sysconfig/network-scripts/ifdown-br, NEWS,
+         .cvsignore, doc/sysvinitfiles, sysconfig/.cvsignore, ppp/ipx-up,
+         rc.d/init.d/allowlogin, sysconfig/network-scripts/ifup-vlan,
+         sysconfig/interfaces/data/chat-ppp0.callback, doc/sysconfig.txt,
+         po/Makefile.am, sysconfig/interfaces/down.d/ppp/logger,
+         hwprofile, sysconfig/clock, sysconfig/interfaces/ifcfg-sl0,
+         doc/usernetctl.8, src/ipcalc.c, doc/rc-scripts.docb,
+         sysconfig/ip-rules, sysconfig/network-scripts/ifdown,
+         sysconfig/interfaces/up.d/ppp/logger, sysconfig/static-arp,
+         ppp/ip-down, sysconfig/interfaces/up.d/ip/Makefile.am,
+         src/doexec.c, sysconfig/network-scripts/ifup-ipx,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifdown-sl,
+         sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm,
+         sysconfig/interfaces/down.d/tnl/Makefile.am, doc/netreport.1,
+         sysconfig/system, sysconfig/interfaces/down.d/ipx/Makefile.am,
+         lang.sh, sysconfig/network,
+         sysconfig/interfaces/ifcfg-ppp0.leased1,
+         sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/ifcfg-ppp0.leased2, rc.d/.cvsignore,
+         src/.cvsignore, rc.d/init.d/network, src/usleep.c: - propset Id
+         everywhere
+
+2003-09-14 10:48 +0000 [r1328]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * makepot.pl: - propset test
+
+2003-09-09 22:45 +0000 [r1128]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - also be able to find 2.6 modules (.ko)
+
+2003-09-09 22:05 +0000 [r1126]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fixed is_module - modules may be gzipped
+
+2003-09-09 16:14 +0000 [r1124]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - add sysfs to mtab
+
+2003-09-08 09:29 +0000 [r1122]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - mount sysfs in the same way as proc is
+
+2003-09-05 14:53 +0000 [r1120]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - if there is no process then it already
+         died
+
+2003-08-19 14:07 +0000 [r1118]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - for nessusd.init
+
+2003-08-10 20:54 +0000 [r1116]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - simplified mdadm support
+
+2003-08-10 20:49 +0000 [r1115]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - functions for kernel version checking
+
+2003-08-07 10:20 +0000 [r1113]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - add support for mdadm when trying to start
+         RAID devices
+
+2003-08-06 19:23 +0000 [r1111]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - from athcool.init
+
+2003-07-28 12:16 +0000 [r1109]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysctl.conf: - added gc_thresh entries
+
+2003-07-28 12:11 +0000 [r1108]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/network: - oops - these were my experiments...
+
+2003-07-28 12:02 +0000 [r1106]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/network: - typo
+
+2003-07-28 11:33 +0000 [r1105]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/network: - GATEWAY setup is back - with comment
+
+2003-07-11 23:08 +0000 [r1103]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/init.d/network: - added nameif support
+
+2003-07-10 18:39 +0000 [r1100-1101]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - description for
+         VLAN_REORDER_HDR
+
+       * sysconfig/network-scripts/ifup-vlan: - seems like API changed,
+         allow REORDER_HDR on VLANs
+
+2003-07-10 12:30 +0000 [r1098]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - we should stop bridges first if we are
+         staring them last
+
+2003-07-10 12:26 +0000 [r1097]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - special case bridge interfaces (br*), they
+         *must* be handled last as we are not able to know what will be
+         bridged
+
+2003-07-05 11:59 +0000 [r1095]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - mount devpts, too
+
+2003-06-30 15:36 +0000 [r1094]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - keep old dmesg, too
+
+2003-06-24 10:34 +0000 [r1092-1093]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm: - added note about
+         bluez
+
+       * sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/data/Makefile.am: - added
+         *-ppp0.gprs-plusgsm
+
+2003-06-24 10:26 +0000 [r1091]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm (added),
+         sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm (added): - ppp
+         examples for GPRS/PlusGSM taken from BTS#694
+
+2003-06-20 15:32 +0000 [r1090]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - stupid missing thing
+
+2003-06-19 15:57 +0000 [r1089]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * sysconfig/static-routes, sysconfig/network,
+         sysconfig/network-scripts/functions.network: - use static-routes
+         for ip rule configuration; drop GATRWAY from network
+         configuration
+
+2003-06-17 14:02 +0000 [r1088]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: - posix zoneinfo files are in top level,
+         not "posix" subdir now
+
+2003-06-16 21:28 +0000 [r1087]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - future is now...
+
+2003-06-16 20:20 +0000 [r1086]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc-scripts.spec.in, rc.d/rc.sysinit: - early mounting of sysfs
+         under kernel 2.5
+
+2003-06-16 18:05 +0000 [r1085]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - usbdevfs is usbfs in 2.5
+
+2003-06-06 09:02 +0000 [r1083]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - fixed typo in
+         description
+
+2003-05-31 11:59 +0000 [r1082]  Arkadiusz Miśkiewicz <arekm/at/pld-linux.org>
+
+       * inittab: - calling update is obsolete starting from 2.2.9 kernel
+
+2003-05-22 14:11 +0000 [r1080]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - updated
+
+2003-05-15 22:39 +0000 [r1078-1079]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - formatting - fixed second argument of
+         "status"
+
+       * dumb.sh: - updated
+
+2003-05-15 21:37 +0000 [r1077]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/init.d/template.init: - LSB
+         conformance changes
+
+2003-05-11 21:09 +0000 [r1076]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - updated
+
+2003-05-11 15:26 +0000 [r1075]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: removed duplicates; %s fixes
+
+2003-05-11 15:13 +0000 [r1074]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: updated
+
+2003-05-11 12:42 +0000 [r1073]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: updated
+
+2003-05-09 21:08 +0000 [r1072]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - updated
+
+2003-05-08 17:18 +0000 [r1071]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - reversed bogus change
+
+2003-05-07 23:35 +0000 [r1070]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: - updated
+
+2003-05-06 21:54 +0000 [r1069]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: updated
+
+2003-05-05 00:07 +0000 [r1068]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh, rc.d/init.d/template.init: updated
+
+2003-05-04 19:48 +0000 [r1067]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: updated
+
+2003-05-03 23:16 +0000 [r1066]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh: updated
+
+2003-05-02 23:41 +0000 [r1064-1065]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * dumb.sh (added): - dump script with various messages
+
+       * rc-scripts.spec.in: - fix improper use of %%{_sysconfigdir}
+
+2003-05-02 20:27 +0000 [r1063]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/de.po: - corrected charset s/iso8850-1/iso-8850-1/.
+
+2003-04-17 18:21 +0000 [r1062]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - added support for device-mapper
+
+2003-04-10 07:37 +0000 [r1061]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use new evms_activate utility; drop support
+         for evms < 2.0.0
+
+2003-04-07 19:59 +0000 [r1060]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - split sysctl call into two pieces
+
+2003-04-07 19:54 +0000 [r1059]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - fix Andrzej's proxy arp support
+
+2003-03-06 13:31 +0000 [r1058]  Wojciech Cięciwa <cieciwa/at/pld-linux.org>
+
+       * sysctl.conf: - corecting URL of grsecurity.
+
+2003-01-25 00:37 +0000 [r1057]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - more generic ups support via
+         /sbin/poweroff-ups
+
+2003-01-15 22:34 +0000 [r1056]  Andrzej M. Krzysztofowicz <ankry/at/pld-linux.org>
+
+       * TODO, sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: - support for proxy ARP
+         per interface - fix sysctl for IPV6_DISABLE_AUTOCONF - typos,
+         formatting - MTU for ethernet already supported [ remove from
+         TODO ]
+
+2003-01-07 14:45 +0000 [r1055]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: s/broke/break/ (fixed
+         http://bugs.pld.org.pl/?bug=520).
+
+2002-12-30 23:39 +0000 [r1054]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * run-parts: - run-parts: current directory now in an environment
+         variable - run-parts: args shifted - run-parts: cosmetics
+
+2002-12-17 14:01 +0000 [r1053]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network, po/pl.po, doc/sysconfig.txt,
+         doc/sysconfig.docb, sysconfig/network-scripts/functions.network:
+         - removed references to IPV*_FORWARDING
+
+2002-12-17 13:54 +0000 [r1052]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network: - better solution to IPV*_FORWARDING
+
+2002-12-17 13:43 +0000 [r1051]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network: - removed IPV*_FORWARDING - use
+         /etc/sysctl.conf to set this
+
+2002-12-01 23:59 +0000 [r1050]  alchemyx <alchemyx/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - typo
+
+2002-12-01 21:31 +0000 [r1049]  alchemyx <alchemyx/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - system will reboot if is instructed by fsck to
+         do so
+
+2002-11-27 23:41 +0000 [r1048]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - support for UPS powerdown before halt
+
+2002-11-12 15:54 +0000 [r1047]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: typo in comment
+         (s/dhlc/dhcp/).
+
+2002-11-08 23:45 +0000 [r1046]  alchemyx <alchemyx/at/pld-linux.org>
+
+       * sysconfig/static-nat,
+         sysconfig/network-scripts/functions.network: - updated static-nat
+         (reversed parameters) so it works now as intended (as described
+         in docs)
+
+2002-10-10 15:07 +0000 [r1045]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, sysconfig/system: - better support fo EVMS
+
+2002-09-28 23:05 +0000 [r1044]  Arkadiusz Patyk <areq/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - don't force umount iso9660 ramfs tmpfs
+
+2002-09-14 19:54 +0000 [r1043]  Tomasz Orzechowski <orzech/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc, rc.d/rc.sysinit: - LOAD_SOUND is
+         obsolete
+
+2002-08-24 17:04 +0000 [r1042]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - fix wvdial support; chat
+         support still broken
+
+2002-08-24 16:05 +0000 [r1041]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description, README,
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-ppp: - added userspace and
+         kernelspace PPPoE support - pass unit option to pppd (so now
+         ifcfg-ppp5 with DEVICE=ppp5 will _always_ create ppp5 interface
+         when it's not used yet)
+
+2002-08-23 22:13 +0000 [r1040]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/network: - check ONBOOT by evaluating ifcfg-* file,
+         not by egrep
+
+2002-08-22 13:21 +0000 [r1039]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown-post: - support for limiting
+         downstream and upstream traffic on whole interface (cbq, htb,
+         tbf)
+
+2002-08-21 21:30 +0000 [r1038]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/functions.network: - fix support for
+         src addresses option
+
+2002-08-13 20:31 +0000 [r1037]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - /proc/bus/usb should be described in fstab -
+         mounting manually bogus device "usbdevfs" causes mount -a to fail
+         when fstab contains something like "none /proc/bus/usb usbdevfs
+         ..."
+
+2002-08-11 17:05 +0000 [r1036]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/Makefile.am, sysconfig/static-arp
+         (added), sysconfig/Makefile.am,
+         sysconfig/network-scripts/ifup-neigh (added): - static arp per
+         interface support - any device support is back
+
+2002-08-09 06:30 +0000 [r1035]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix for checking encrypted filesystems - if
+         all have "noauto" in options, don't try to mount or fsck anything
+
+2002-07-14 21:11 +0000 [r1034]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * service, rc.d/init.d/functions: - some code from RH (nicer than
+         old code)
+
+2002-07-13 23:04 +0000 [r1033]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - fix WLAN encryption setting
+
+2002-07-13 16:25 +0000 [r1032]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.modules, sysconfig/interfaces/ifcfg-irda0 (added),
+         sysconfig/network-scripts/ifup-irda (added),
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifdown-vlan (added),
+         sysconfig/network-scripts/ifup-plusb (added),
+         sysconfig/network-scripts/functions.network,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-vlan (added),
+         sysconfig/network-scripts/ifdown-irda (added),
+         sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description,
+         sysconfig/interfaces/ifcfg-irlan0 (added),
+         sysconfig/network-scripts/ifup-iucv (added), rc.d/rc.sysinit,
+         service: - more TOTALNEW merge (ppp, irda, other vlan, wireless).
+         ALPHA
+
+2002-07-06 12:22 +0000 [r1031]  Olgierd Pieczul <wojrus/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed: removing directories in /var/run/app/ -
+         fixed: unneeded lines (deleting not-existing files) removed
+
+2002-06-19 18:13 +0000 [r1030]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * doc/sysconfig.txt: - forgotten
+
+2002-06-19 18:04 +0000 [r1029]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * sysconfig/network: - hopefully fixed explanation about NISDOMAIN
+
+2002-06-18 22:06 +0000 [r1028]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * doc/sysconfig.txt, sysconfig/network: - more clear explanation of
+         HOSTNAME and NISDOMAIN
+
+2002-06-13 13:06 +0000 [r1027]  Robert Grabowski <grabba/at/pld-linux.org>
+
+       * rc.d/init.d/functions: daemon function: dont't use su when user
+         is root
+
+2002-05-21 12:23 +0000 [r1026]  Olgierd Pieczul <wojrus/at/pld-linux.org>
+
+       * sysconfig/ip-rules: - typo
+
+2002-05-11 21:51 +0000 [r1025]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - process functions a bit earlier - don't mount
+         proc twice
+
+2002-05-11 10:26 +0000 [r1024]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - updated spec file
+
+2002-05-11 09:50 +0000 [r1023]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-br,
+         rc.d/init.d/functions.network (removed),
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/functions.network (added),
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/tnlup, rc.d/init.d/Makefile.am,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-br,
+         sysconfig/network-scripts/ifup-plip, rc-scripts.spec.in,
+         sysconfig/network-scripts/ifdown-post,
+         sysconfig/network-scripts/Makefile.am,
+         sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-routes, rc.d/init.d/network,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown: - functions.network back in old
+         place
+
+2002-05-11 09:44 +0000 [r1022]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * ppp/Makefile.am: - force symlink
+
+2002-05-11 09:36 +0000 [r1020-1021]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * autogen.sh: - configure.in -> configure.ac
+
+       * configure.ac, po/pl.po: - fix iso charset name - add de to
+         supported languages
+
+2002-05-11 09:30 +0000 [r1019]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * configure.ac (added), configure.in (removed): - renamed + updated
+
+2002-05-11 08:48 +0000 [r1018]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - removed via (it shouldn't be
+         here)
+
+2002-05-11 08:41 +0000 [r1017]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - use onlink option when adding
+         default routing (in case when gw isn't in our subnetwork) -
+         TNLOPTS removed
+
+2002-04-21 12:22 +0000 [r1016]  mkochano <mkochano/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.tpsa: - Update for current
+         TPSA login screen.
+
+2002-04-20 13:57 +0000 [r1015]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't mount usbdevfs again if it's already
+         mounted (for example by modules.conf post-install directive).
+         Patch by Wojtek Kaniewski <wojtekka/at/bydg.pdi.net>.
+
+2002-04-10 19:02 +0000 [r1014]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - added USER... dunno why it
+         wasn't included, but it is in sample files and it should be added
+         to pppd cmdline (user ${USER}). If it's wrong, roll it back
+
+2002-04-09 11:10 +0000 [r1009-1013]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network, rc.d/init.d/network, AUTHORS: - more LDAP
+         garbage removed
+
+       * po/pl.po: - LDAP strings removed
+
+       * rc.d/init.d/network: - "LDAP support" removed
+
+       * rc.d/init.d/functions.network: - "LDAP support" removed. It was
+         not supported anyway
+
+       * rc.d/init.d/functions.network: - delete '}' left after some
+         function removal
+
+2002-03-29 17:18 +0000 [r1008]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - added deleting lock files
+
+2002-03-29 08:52 +0000 [r1007]  Olgierd Pieczul <wojrus/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added removed by mistake 'timezone'
+
+2002-03-29 08:46 +0000 [r1005-1006]  Olgierd Pieczul <wojrus/at/pld-linux.org>
+
+       * sysconfig/ip-rules (added): - example config file
+
+       * rc.d/init.d/network, rc-scripts.spec.in,
+         rc.d/init.d/functions.network, sysconfig/Makefile.am: - policy
+         routing support
+
+2002-03-24 03:59 +0000 [r1004]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * README, po/pl.po, autogen.sh, rc.d/rc.sysinit: - GNU/Linux is
+         gone.
+
+2002-03-19 18:35 +0000 [r1003]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, sysconfig/system: - user and kernelspace PNP
+
+2002-03-19 18:19 +0000 [r1002]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/hwprofiles (added), configure.in,
+         isapnp/isapnp-kernel.conf (added), ppp/ip-up, isapnp (added),
+         README, hwprofile (added), sysconfig/hwprofiles/Makefile.am
+         (added), service (added), isapnp/Makefile.am (added),
+         sysconfig/hwprofiles/.cvsignore (added), ppp/ipx-down (added),
+         ppp/auth-down (added), isapnp/.cvsignore (added),
+         ppp/Makefile.am, sysconfig/hwprof (added), Makefile.am,
+         autogen.sh, ppp/ip-down, sysconfig/Makefile.am, ppp/ipx-up
+         (added), ppp/auth-up (added): - started merging TOTALNEW
+
+2002-03-19 17:46 +0000 [r1001]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - support for EVMS volumes
+
+2002-03-19 17:42 +0000 [r1000]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - if devfs is mounted and
+         devfsd is available then start is unconditionally
+
+2002-03-07 11:16 +0000 [r999]  Paweł Gołaszewski <blues/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifup-ipx: - ipx
+         paths fixed (ipx is usable now...)
+
+2002-03-07 09:48 +0000 [r998]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - protect dmesg
+
+2002-02-21 00:31 +0000 [r997]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * po/pl.po: - more typos
+
+2002-02-21 00:08 +0000 [r996]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * po/pl.po, rc.d/rc.sysinit: - typos
+
+2002-02-20 23:43 +0000 [r995]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl, po/pl.po, rc.d/rc.sysinit: -
+         updated.
+
+2002-02-18 13:24 +0000 [r994]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * doc/sysconfig.txt, doc/sysconfig.docb: - hostname != FQDN
+
+2002-02-03 16:40 +0000 [r993]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc-scripts-sysconfig_masq.patch (removed): - moved away
+
+2002-02-03 16:22 +0000 [r992]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc-scripts-sysconfig_masq.patch (added): - sysconfig/masquerade
+         support patch - not for use in official rc-scripts releases
+
+2002-02-03 16:17 +0000 [r991]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network, doc/sysconfig.docb,
+         rc.d/init.d/network, doc/sysconfig.txt: - reverted last change
+
+2002-02-02 17:30 +0000 [r990]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * doc/sysconfig.txt, doc/sysconfig.docb: - added masquerade
+         description
+
+2002-02-02 17:13 +0000 [r989]  Witek Kręcicki <adasi/at/pld-linux.org>
+
+       * rc.d/init.d/network, rc.d/init.d/functions.network: - added
+         support for sysconfig/masquerade (NEW)
+
+2002-01-27 02:14 +0000 [r986-988]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * src/usernetctl.c, src/ppp-watch.c: - rc-scripts-interfaces.patch:
+         ifcfg-* are in /etc/sysconfig/interfaces, not
+         /etc/sysconfig/network-scripts. And ifup and ifdown are not there
+         but in /sbin. (qrczak)
+
+       * rc.d/rc.sysinit: - fixed syntax error
+
+       * rc.d/rc.shutdown: - don't try to umount devfs - it's pointelss
+
+2002-01-22 23:46 +0000 [r984-985]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * po/pl.po: - more fixes
+
+       * TODO, DEVELOPMENT: - typos
+
+2002-01-17 21:14 +0000 [r983]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * inittab: - added KeyboardSignal entry.
+
+2002-01-17 20:56 +0000 [r982]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * po/pl.po: - changed personal forms to impersonal.
+
+2002-01-17 20:47 +0000 [r981]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * po/pl.po: - iso8859-1 got 'ó' - why don't use it? - other
+         cosmetics.
+
+2002-01-08 17:42 +0000 [r980]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - reverted is_no() behaviour to return
+         true only on explicit "no"
+
+2002-01-08 17:16 +0000 [r979]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - reorganized stuff so modprobe is not called
+         before depmod
+
+2002-01-08 16:48 +0000 [r978]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in: - version 0.3.1
+
+2001-12-24 12:22 +0000 [r977]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - if RUN_DEPMOD is set to "ifmissing", run
+         simply "depmod -A"
+
+2001-12-21 15:49 +0000 [r976]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed depmod problem (s/$mver/`uname -r`/)
+
+2001-12-14 12:56 +0000 [r975]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Previous change caused "snow ball
+         effect" --- some code relied upon that bug. - Added code which
+         conditionaly encloses arguments in double quotes. This is
+         required if more than one argument is passed to /bin/su -c.
+
+2001-12-13 20:35 +0000 [r974]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Properly escape quotation marks inside
+         quotation marks.
+
+2001-12-03 17:50 +0000 [r973]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-post: - pass $CONFIG instead of
+         $DEVICE to ifup-post, ifup-aliases (BTS id 20)
+
+2001-11-30 15:11 +0000 [r972]  Wojciech Cięciwa <cieciwa/at/pld-linux.org>
+
+       * sysctl.conf: - s/getrewted/grsecurity/
+
+2001-11-23 14:33 +0000 [r971]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, src/ppp-watch.c, src/shvar.c, src/shvar.h: -
+         fixed typos.
+
+2001-11-19 13:00 +0000 [r970]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - don't try to detect devicetype
+         if it's specified
+
+2001-11-12 18:47 +0000 [r969]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - RESULT variable can be empty,
+         check for it
+
+2001-11-09 18:34 +0000 [r968]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - run modprobe at the start of
+         network_init()
+
+2001-11-05 16:58 +0000 [r967]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network: - chenged comment s/Set domainname here/Set
+         NIS domain name here/
+
+2001-10-30 17:03 +0000 [r966]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - last change: perms to 664.
+
+2001-10-30 09:02 +0000 [r965]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - changed /var/run/utmp(x) and /var/log/wtmp(x)
+         permissions to 660 in order to assure compatibility with SysVinit
+         and utempter packages.
+
+2001-10-25 08:21 +0000 [r963]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes: back ..
+         s/DEVICE/REALDEVICE/
+
+2001-10-24 22:27 +0000 [r962]  Tomasz Orzechowski <orzech/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - small fixes
+
+2001-10-24 22:16 +0000 [r961]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes: s/REALDEVICE/DEVICE/
+
+2001-10-22 16:43 +0000 [r960]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/static-routes: added commented example.
+
+2001-10-14 21:33 +0000 [r958]  mkochano <mkochano/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown-br: - Do not try to delete
+         bridge from itself.
+
+2001-10-11 18:49 +0000 [r955]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-br: - let kernel maintain if ARP
+         should be turned on/off if not explicitly specified
+
+2001-10-10 02:03 +0000 [r954]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - fixed regexp in DEVICETYPE
+         detection
+
+2001-10-09 22:49 +0000 [r952-953]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - HANDLING cannot be 'typeset'
+         it's mot local (thanks qboosh)
+
+       * sysconfig/network-scripts/ifup-ppp: - typo (thanks qboosh)
+
+2001-10-08 11:16 +0000 [r951]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fix for modular LVM
+
+2001-10-05 18:21 +0000 [r950]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysctl.conf: - comment out all IPv6 stuff by default
+
+2001-10-05 18:17 +0000 [r949]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - proper (shell dependant) ulimit use
+
+2001-10-04 07:41 +0000 [r948]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * po/pl.po: - applied SOURCES/rc-scripts-typo.patch (by aflinta)
+
+2001-10-01 17:10 +0000 [r946-947]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - allow ipv6 only interface
+
+       * sysctl.conf: - added grsec stuff - really, really disable ipv6
+         autoconf if one wants it
+
+2001-09-19 08:09 +0000 [r944]  Tomasz Orzechowski <orzech/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fixed misleading message after killproc
+         with specified signal type
+
+2001-08-16 22:52 +0000 [r943]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - charset=iso-8859-2.
+
+2001-08-15 20:32 +0000 [r942]  Roman Werpachowski <roman/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.tpsa: - added AUTH=no ("noauth"
+         is not a default option of pppd)
+
+2001-07-30 10:29 +0000 [r941]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0: - ONBOOT=no by default
+
+2001-07-23 11:01 +0000 [r940]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Added ulimit -p unlimited before
+         executing daemon. This will make sure daemons will have ability
+         to fork no matter what limits are set. Limits for users are set
+         via pam_limit. - Small optimalization (it's smaller now).
+
+2001-07-22 17:28 +0000 [r936-939]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - typos
+
+       * sysconfig/interfaces/Makefile.am: - added ifcfg-eth0
+
+       * rc.d/rc.sysinit: - devfs and RAID fixes
+
+       * rc.d/rc.modules: - don't autoclean modules loaded here
+
+2001-07-21 19:26 +0000 [r935]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - more merging from TOTALNEW - mainly USB and
+         lvm - fixed thinko with SET_SLINKS
+
+2001-07-21 19:21 +0000 [r933-934]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/interfaces/tnlcfg-icm, sysconfig/interfaces/ifcfg-eth0:
+         - bring it up to date with the stuff ;>
+
+       * sysconfig/network-scripts/ifup-aliases,
+         sysconfig/interfaces/ifcfg-description: -
+         s/BOOTMETHOD/BOOTPROTO/g
+
+2001-07-19 20:55 +0000 [r932]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0 (added): - example config
+
+2001-07-17 18:21 +0000 [r931]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, rc.d/init.d/functions: - merge
+         from TOTALNEW branch: - set MTU - don't use tput if we are not on
+         a proper terminal
+
+2001-07-13 17:47 +0000 [r930]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network, sysconfig/network-scripts/ifdown:
+         - added automatically vlan shutdown before shutdowing interface
+         (eth)
+
+2001-07-05 22:21 +0000 [r929]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - VLAN must be set _before_
+         initialisation it's IP parameters
+
+2001-07-05 15:56 +0000 [r927]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown, rc.d/init.d/functions.network,
+         rc.d/init.d/network, sysconfig/network-scripts/ifup: - cleaned up
+         accidental mess
+
+2001-07-05 15:47 +0000 [r925-926]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - don't mount devpts if devfs is already mounted
+
+       * rc.d/rc.sysinit: - backed up some obviously wrong changes -
+         PLEASE do NOT make functional changes along with cosmetic ones
+
+2001-07-04 22:48 +0000 [r924]  Tomasz Pala <gotar/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - removed /etc/HOSTNAME, - cosmetics.
+
+2001-06-26 14:53 +0000 [r923]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - added vconfig set_flag $DEVICE
+         1 - for dhcpd
+
+2001-06-25 20:54 +0000 [r922]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - added vlan_setup function
+         (setting proper 802.1q vlan's parameters)
+
+2001-06-25 20:44 +0000 [r921]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifdown: - added support to 802.1Q
+         VLANs. (ifcfg-eth0.<vlan>)
+
+2001-05-25 20:14 +0000 [r912]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - don't try to add ipv4 address
+         if there is none
+
+2001-05-25 17:53 +0000 [r911]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - typo
+
+2001-05-25 17:48 +0000 [r910]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - compatibility fixes
+
+2001-05-25 17:34 +0000 [r909]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cleanup
+
+2001-05-25 14:33 +0000 [r906-908]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - removed shutting down "unconfigured"
+         interfaces - that was dumb idea misiek
+
+       * sysconfig/network-scripts/ifup: - consistency check
+
+       * rc.d/init.d/functions.network: - consistency checks
+
+2001-05-24 20:20 +0000 [r903-905]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - reverted last change - not neded
+
+       * rc.d/init.d/network: - fixing shutting down unconfigured defices
+         (atm stuff is not)
+
+       * rc.d/init.d/functions.network: - compat stuff
+
+2001-05-24 20:14 +0000 [r902]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - more bad merge fixes
+
+2001-05-24 20:00 +0000 [r901]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - fixed very stupid typo
+
+2001-05-16 13:12 +0000 [r899-900]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * po/pl.po: - cleaned up, updated and translated
+
+       * sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown: - nls cleanups
+
+2001-05-16 02:14 +0000 [r898]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - do not 'exec' umount, $() is just fine (yes,
+         it's yet another ksh93 fix)
+
+2001-05-16 01:54 +0000 [r897]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc: - set TMPDIR=/dev/null before exec rc.shutdown
+         (workaround for the freaky weird ksh93 which tries to keep pipes
+         in /tmp, and no, disabling this in source of ksh93 is not an
+         option)
+
+2001-05-16 01:33 +0000 [r896]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/rc.shutdown: - do not use locale in rc.shutdwon
+         (there are shells that support them and you end up with
+         unmountable /usr)
+
+2001-05-15 17:28 +0000 [r895]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * makepot.pl: - recognize "nls 'bla'"
+
+2001-05-15 16:54 +0000 [r893-894]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - typo
+
+       * rc.d/rc.sysinit: - typos
+
+2001-05-15 16:44 +0000 [r892]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - typos
+
+2001-05-15 16:43 +0000 [r891]  Maciej 'Agaran' Pijanka <agaran/at/pld-linux.org>
+
+       * po/pl.po: added some translations..may somebody look at that?
+
+2001-05-15 16:41 +0000 [r890]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - typo
+
+2001-05-15 16:36 +0000 [r889]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - rarp run via run_cmd
+
+2001-05-15 16:05 +0000 [r888]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network, README, src/Makefile.am, rc.d/rc.shutdown,
+         sysctl.conf (added), sysconfig/network-scripts/ifdown, modules
+         (added), COPYING, sysconfig/network-scripts/ifdown-br (added),
+         makepot.pl, sysconfig/network-scripts/ifup-ppp,
+         sysconfig/interfaces/tnlcfg-description, src/process.c,
+         sysconfig/interfaces/ifcfg-description,
+         sysconfig/network-scripts/ifup-br (added), sysconfig/system,
+         src/netreport.c, rc.d/rc.sysinit, src/shvar.c,
+         sysconfig/network-scripts/ifdown-post, rc.d/init.d/single,
+         sysconfig/timezone, doc/net-scripts.txt, sysconfig/clock,
+         src/getkey.c, src/shvar.h, src/usernetctl.c,
+         sysconfig/interfaces/Makefile.am,
+         sysconfig/network-scripts/ifup-aliases, src/minilogd.c,
+         rc.d/init.d/functions.network, src/initlog.c,
+         sysconfig/Makefile.am, sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup, sysconfig/interfaces/ifcfg-br0
+         (added), rc.d/rc, lang.csh,
+         sysconfig/interfaces/ifcfg-ppp0.leased1, rc.d/Makefile.am,
+         sysconfig/interfaces/ifcfg-ppp0.leased2,
+         sysconfig/network-scripts/ifup-sl,
+         sysconfig/interfaces/ifcfg-sl0, rc.d/rc.modules (added),
+         rc.d/init.d/network, TODO, sysconfig/network-scripts/tnldown,
+         doc/initlog.1, sysconfig/interfaces/tnlcfg-icm, src/ppp-watch.c,
+         sysconfig/network-scripts/ifup-ipx, rc-scripts.spec.in,
+         doc/sysconfig.txt, sysconfig/network-scripts/ifup-plip,
+         rc.d/init.d/template.init, sysconfig/network-scripts/Makefile.am,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifup-post, Makefile.am, autogen.sh,
+         NEWS, setsysfont, DEVELOPMENT (added), rc.d/init.d/functions,
+         AUTHORS, configure.in, inittab: - merge from TOTALNEW branch (see
+         NEWS for more info)
+
+2001-05-13 18:39 +0000 [r886]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/network, rc.d/init.d/functions.network,
+         sysconfig/network: added abilities for setup static RARP table by
+         /etc/sysconfig/network::STATIC_RARP=yes (like static ARP table)
+         based on /etc/ethers config file. Before setting up ARRP table is
+         checked /proc/net/rarp and if file don't exist "modprobe rarp" is
+         performed before.
+
+2001-05-13 17:47 +0000 [r884]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: ksh93 support/fixes by Jan
+         Rękorajski <baggins/at/pld.org.pl> (from stable series)
+
+2001-05-13 17:10 +0000 [r883]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         rc.d/init.d/functions, rc.d/rc.shutdown, rc.d/init.d/timezone,
+         sysconfig/network-scripts/ifup, configure.in: - version 0.2.11 -
+         true ksh support/fixes: - fixed numerous instances of incorrect
+         quoting ("" inside itself) - s/local/typeset/
+
+2001-04-20 23:28 +0000 [r878]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - few more updates - util-linux 2.10s is
+         _slightly_ fixed :>>
+
+2001-04-20 21:15 +0000 [r877]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - patch to allow fsck'ing crypted filesystems
+
+2001-04-19 23:31 +0000 [r876]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: don't use quotation in
+         DHCPOPTIONS
+
+2001-03-22 21:50 +0000 [r873]  Jakub Bogusz <qboosh/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp: - check if DATAFORCHAT is not
+         null before exporting it
+
+2001-03-05 17:35 +0000 [r867-868]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * TODO: removed IPX tunnels; these don't need rc-scripts support
+
+       * rc-scripts.spec.in: sysconfig/clock was missing
+
+2001-03-03 11:28 +0000 [r861]  laro <laro/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: typing error fixed
+
+2001-03-01 16:11 +0000 [r860]  Michał Moskal <malekith/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: Fixed to pass --localtime option to hwclock.
+         check hwclock manpage for details (it has changed, since i last
+         read it)
+
+2001-02-23 18:06 +0000 [r857]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-plip: - bring link up at startup
+
+2001-02-12 20:30 +0000 [r856]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * po/pl.po: - uncommented "to enter interactive startup" transl.
+
+2001-02-02 21:18 +0000 [r855]  Roman Werpachowski <roman/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.tpsa: another small fix: atdt
+         $PHONE -> atdt$PHONE
+
+2001-02-02 18:22 +0000 [r854]  Roman Werpachowski <roman/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/chat-ppp0.tpsa: - small fix
+
+2001-01-12 13:46 +0000 [r851]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - exclude nas* interfaces on boot, they need
+         to be started by ATM utils
+
+2000-12-27 13:33 +0000 [r850]  mkochano <mkochano/at/pld-linux.org>
+
+       * sysconfig/system: - CONSOLE_LOGLEVEL is back. It is duplicated in
+         klogd.sysconfig, but it has to be here. It is required by
+         rc.sysinit in order to set logging level before processing
+         init.d/* scripts.
+
+2000-12-19 22:33 +0000 [r849]  mkochano <mkochano/at/pld-linux.org>
+
+       * sysconfig/system: - Removed CONSOLELOG_LEVEL - has been moved to
+         /etc/sysconfig/klogd.
+
+2000-12-14 09:49 +0000 [r847]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - status() improved so it can accept now
+         two argumens: the subsys name and (optional) the daemon name.
+         status() checks if daemon is running or the subsys is locked.
+         This way subsys name can differ from daemon name it is running
+
+2000-12-14 09:32 +0000 [r846]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/Makefile.am, sysconfig/clock (added): -
+         /etc/sysconfig/clock added (for hardware clock options)
+
+2000-12-12 17:38 +0000 [r845]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - version 0.2.10.
+
+2000-12-09 12:02 +0000 [r842-843]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Added note about some not obvious
+         behavior of is_not().
+
+       * rc.d/rc.sysinit: - Fixed problem with $RUN_DEPMOD="ifmissing".
+
+2000-12-04 12:06 +0000 [r841]  Roman Werpachowski <roman/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-ppp0.tpsa: Added PHONE to DATAFORCHAT
+
+2000-11-17 14:47 +0000 [r839]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in: - version 0.2.9
+
+2000-11-17 12:11 +0000 [r838]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: information about
+         specifing prefix for so called ,,aliases''
+
+2000-11-17 06:25 +0000 [r837]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/network: - replace "$((" by "$( (" to w use bash as
+         /bin/sh.
+
+2000-11-16 16:04 +0000 [r831-836]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: - cleanup from TOTALNEW
+
+       * rc.d/init.d/functions: - backport from TOTALNEW - cleaned up
+         shell functions - fixed is_yes/is_no - added is_module, log_*
+         functions
+
+       * rc.d/rc.init: - set/unset more (all?) locale variables (backport
+         from TOTALNEW)
+
+       * rc.d/init.d/template.init, rc.d/rc, rc.d/init.d/random,
+         rc.d/init.d/single, rc.d/init.d/killall, rc.d/init.d/allowlogin,
+         rc.d/rc.local, rc.d/rc.shutdown: - added setting for vi ;)
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifup,
+         po/Makefile.am, sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post,
+         rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifdown-post: - replaced sed with awk
+         (backport from TOTALNEW branch)
+
+       * rc-scripts.spec.in: - synced with SPECS version
+
+2000-11-06 19:28 +0000 [r830]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - `ip -4 addr add` first `ip link
+         set dev up` next - atm needs it
+
+2000-11-06 18:33 +0000 [r829]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in: - version 0.2.8
+
+2000-11-06 16:24 +0000 [r827]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - use awk instead of sed in interface
+         selection
+
+2000-11-06 15:42 +0000 [r825-826]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - skip lec and atm interfaces on start|stop,
+         they are set using separate script
+
+       * sysconfig/network-scripts/ifup: - revert last change because IPv6
+         is broken and it's not possible to add an adress on DOWN
+         interface :(
+
+2000-11-05 01:28 +0000 [r823]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network: - added global ipv6 autoconf setting
+
+2000-11-04 04:44 +0000 [r822]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - bring interface UP _after_
+         setting up addresses (other way breaks ATM)
+
+2000-11-02 21:40 +0000 [r819]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: - global setting for autoconf in proc_net()
+
+2000-10-22 20:55 +0000 [r808]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: (run_cmd, daemon): set HOME and TMPDIR in
+         nicer way (backport from totalnew)
+
+2000-10-22 19:30 +0000 [r807]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Remove "HOME" from environment. - Set
+         TMPDIR and TEMP to "/tmp". Some programs (Samba, cvs) will fail
+         beacuse of lack of access permissions to "/root/tmp" or lack of
+         this directory if these variables are inherited from root's
+         environment.
+
+2000-10-18 20:10 +0000 [r803]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: merged totalnew 3d patch as new
+         TOTALNEW branch
+
+2000-10-17 20:42 +0000 [r802]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - bugfix: avoid loops when a user
+         calls ifup and usernetctl isn't suid
+
+2000-09-25 13:46 +0000 [r801]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * configure.in: - version 0.2.7
+
+2000-09-23 20:43 +0000 [r800]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - fixed DEVICETYPE determination for aliased devices
+
+2000-09-21 13:53 +0000 [r799]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * po/de.po: - minor fixes
+
+2000-09-20 23:32 +0000 [r798]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/static-routes: - commented entry description.
+
+2000-09-19 13:36 +0000 [r796-797]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * po/pl.po: - translations for ifup and ifup-sl
+
+       * po/de.po: - s/dir/dip/
+
+2000-09-19 12:46 +0000 [r795]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl, po/de.po,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifup, po/pl.po:
+         - merged some %s into nls invocations - German translation
+         finetuning
+
+2000-09-18 22:32 +0000 [r794]  Paweł Sakowski <saq/at/pld-linux.org>
+
+       * po/de.po (added), rc.d/init.d/functions, configure.in,
+         rc-scripts.spec.in: - introducing German translation
+
+2000-09-03 02:29 +0000 [r793]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: - added IPV6_AUTOCONF
+         variable to interface configuration set it to "no" if you don't
+         want kernel to autoconfigure IPv6 address on interfaces
+         (prefix:MAC stuff)
+
+2000-08-28 15:43 +0000 [r792]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * configure.in: - version = 0.2.6
+
+2000-08-28 15:38 +0000 [r790-791]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/network: - substituted awk in place of /usr/bin/tr
+
+       * rc.d/init.d/network: - removed all "xargs" calls
+
+2000-08-08 23:06 +0000 [r789]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added "termput op" definition -- it
+         fixes the Blue Screen (tm) problem :) (if you don't know what's
+         this about, try umounting /usr and running rc.sysinit -- the same
+         effect was when /usr wasn't on root partition)
+
+2000-08-04 15:25 +0000 [r788]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - fixed setting up GATEWAY6* -
+         added setting up global route for IPv6 routers
+
+2000-08-04 15:20 +0000 [r786-787]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network: -added IPV6_GLOBALROUTEDEV
+
+       * sysconfig/network: - added IPV6_GLOBALROUTE
+
+2000-08-04 15:06 +0000 [r785]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - set up GATEWAY6* only if
+         IPV6_FORWARDING is disabled
+
+2000-08-04 14:08 +0000 [r784]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - added default route setup for
+         IPv6
+
+2000-08-04 14:02 +0000 [r783]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network: - added GATEWAY6* for IPv6 routing
+
+2000-08-04 13:58 +0000 [r782]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - cosmetics (in mount /proc command)
+
+2000-08-03 12:51 +0000 [r781]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - added -o gid=17 while mounting /proc
+
+2000-07-31 07:28 +0000 [r780]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - new version 0.2.5.
+
+2000-07-28 18:37 +0000 [r779]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added _modprobe function
+
+2000-07-28 15:03 +0000 [r778]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/tnldown: - added .
+         /etc/rc.d/init.d/functions
+
+2000-07-21 18:51 +0000 [r777]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - ls 2>/dev/null (avoid "ls: no
+         such file or directory" when directory does not exist)
+
+2000-07-20 10:07 +0000 [r776]  Paweł Gajda <mis/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - one more fix to
+         IPXFRAMETYPE
+
+2000-07-20 10:03 +0000 [r775]  Paweł Gajda <mis/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - fixed IPXFRAMETYPE
+
+2000-07-13 17:42 +0000 [r774]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * configure.in: - version 0.2.4
+
+2000-07-13 15:29 +0000 [r773]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - rm -f utmp? first
+
+2000-07-13 14:51 +0000 [r772]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/system: - added NEED_XFILES=yes (we want utmpx/wtmpx)
+
+2000-07-13 14:45 +0000 [r770-771]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - typo
+
+       * rc.d/rc.sysinit: - we _want_ utmpx and wtmpx, not utmp/wtmp
+
+2000-06-29 08:24 +0000 [r769]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * po/pl.po: - typo
+
+2000-06-27 20:22 +0000 [r768]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - modprobe ipip if
+         IPV6_TUNNELCONFIG == yes
+
+2000-06-27 09:50 +0000 [r767]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * lang.sh: - cleanups
+
+2000-06-25 14:40 +0000 [r766]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.shutdown, sysconfig/interfaces/ifcfg-description,
+         sysconfig/interfaces/ifcfg-ppp0.tpsa, makepot.pl,
+         rc.d/rc.sysinit: - typos - cleanups
+
+2000-06-23 09:11 +0000 [r765]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: added shmfs to noprocfs
+
+2000-06-22 14:52 +0000 [r764]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - fixed file unmounting again, after kloczek
+         broke it "borrowing" code from RH
+
+2000-06-21 15:23 +0000 [r763]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - IPADDR, not ADDR :)
+
+2000-06-18 09:55 +0000 [r762]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - release 2.3.
+
+2000-06-18 09:52 +0000 [r761]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - new umounting file systems procedure (borowed
+         from RH).
+
+2000-06-12 08:38 +0000 [r760]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl, rc.d/init.d/allowlogin,
+         sysconfig/network-scripts/ifup-ppp, rc.d/init.d/network,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifup-post,
+         rc.d/init.d/functions.network, rc.d/rc.sysinit, ppp/ip-down: -
+         is_yes and is_no cleanups - typos
+
+2000-06-02 14:47 +0000 [r759]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Moves cursor to a new line also after
+         "WORK" and "FAIL".
+
+2000-06-02 14:36 +0000 [r758]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - Added new function progress(). It shows
+         color messages in square brackets. Takes two arguments: text to
+         display and color to use. Second argument is optional (default
+         color is green). Outputs "op" as last terminal sequence instaed
+         setting arbitrary color. - busy(), ok(), started(), fail() and
+         died() modified to use progress().
+
+2000-06-02 10:00 +0000 [r757]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed some is_yes calls (argument can be
+         empty)
+
+2000-06-01 19:33 +0000 [r756]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed setting up USEMODULES variable
+
+2000-05-31 18:01 +0000 [r754-755]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc: - one more typo
+
+       * rc.d/rc: - typo
+
+2000-05-31 17:55 +0000 [r753]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - typo
+
+2000-05-30 05:55 +0000 [r749-752]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/init.d/functions: -typo
+
+       * rc.d/rc: - replaced halt -d with halt -d -p
+
+       * rc.d/rc.shutdown: - halt -p -> halt -w
+
+       * rc.d/rc.sysinit: -typo
+
+2000-05-29 19:37 +0000 [r747-748]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - pass $DHCPOPTIONS to dhcpcd
+
+       * sysconfig/network-scripts/ifdown: - kill dhcpcd if necessary
+
+2000-05-29 19:31 +0000 [r746]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description: - added DHCPOPTIONS
+         variable
+
+2000-05-29 19:06 +0000 [r745]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - start prepare 0.2.2.
+
+2000-05-29 19:03 +0000 [r744]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - run quotaoff -a before unmounting filesystems
+         - minor cosmetics
+
+2000-05-20 13:34 +0000 [r743]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - Time setup changed, so it should work even if
+         /usr is on separate partition
+
+2000-05-16 15:08 +0000 [r742]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - changed the way depmod was run - changed all
+         "!=no" to "is_yes" or "! is_no" (from "functions")
+
+2000-05-13 07:11 +0000 [r741]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/timezone, po/pl.po: - rc.d/init.d/timezone - poprawki
+         związane z tłumaczeniem - po/pl.po - serwis -> usluga,
+         startowanie -> uruchamianie i kilka kosmetycznych zmian
+
+2000-05-09 18:58 +0000 [r740]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown, sysconfig/network-scripts/ifup:
+         - pump is b0rken - don't use pump for DHCP - use dhcpcd for DHCP
+         ;) - and fixed typo
+
+2000-05-09 15:46 +0000 [r739]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - "halt -p" instead "halt -w".
+
+2000-05-07 19:00 +0000 [r738]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * sysconfig/interfaces/up.d/tnl/.cvsignore (added),
+         ppp/Makefile.am, sysconfig/interfaces/up.d/ppp/.cvsignore
+         (added), sysconfig/interfaces/up.d/.cvsignore (added),
+         sysconfig/interfaces/up.d/all/Makefile.am (added),
+         sysconfig/interfaces/down.d (added),
+         sysconfig/interfaces/up.d/all/.cvsignore (added), configure.in,
+         sysconfig/interfaces/down.d/all (added),
+         sysconfig/interfaces/down.d/ip (added), ppp/ip-up,
+         sysconfig/interfaces/down.d/Makefile.am (added),
+         sysconfig/interfaces/up.d/tnl (added),
+         sysconfig/interfaces/up.d/ppp (added),
+         sysconfig/interfaces/up.d/ipx (added),
+         sysconfig/interfaces/down.d/ipx/.cvsignore (added),
+         sysconfig/interfaces/down.d/ppp/logger (added),
+         sysconfig/interfaces/down.d/all/Makefile.am (added),
+         sysconfig/interfaces/down.d/ip/Makefile.am (added),
+         sysconfig/interfaces/up.d/tnl/Makefile.am (added),
+         sysconfig/interfaces/up.d/ppp/Makefile.am (added),
+         sysconfig/interfaces/up.d/ip (added),
+         sysconfig/interfaces/up.d/ipx/Makefile.am (added), Makefile.am,
+         sysconfig/interfaces/up.d/ipx/.cvsignore (added),
+         sysconfig/interfaces/down.d/all/thetouch (added),
+         sysconfig/interfaces/up.d/ppp/logger (added), ppp/ip-down,
+         sysconfig/interfaces/down.d/tnl (added),
+         sysconfig/interfaces/up.d/ip/Makefile.am (added),
+         sysconfig/interfaces/down.d/ppp (added),
+         sysconfig/interfaces/down.d/ipx (added),
+         sysconfig/interfaces/up.d/ip/.cvsignore (added),
+         sysconfig/interfaces/down.d/tnl/Makefile.am (added),
+         rc-scripts.spec.in, sysconfig/interfaces/up.d/all/thetouch
+         (added), sysconfig/interfaces/down.d/ppp/Makefile.am (added),
+         sysconfig/interfaces/down.d/ipx/Makefile.am (added),
+         sysconfig/interfaces/down.d/tnl/.cvsignore (added), run-parts
+         (added), sysconfig/interfaces/down.d/ppp/.cvsignore (added),
+         sysconfig/interfaces/down.d/.cvsignore (added),
+         sysconfig/interfaces/up.d (added),
+         sysconfig/interfaces/Makefile.am,
+         sysconfig/interfaces/down.d/all/.cvsignore (added),
+         sysconfig/interfaces/up.d/all (added),
+         sysconfig/interfaces/down.d/ip/.cvsignore (added),
+         sysconfig/interfaces/up.d/Makefile.am (added): - scripts now
+         ready to exec run-parts for each of interfaces going up/down, -
+         run-parts is now by rc-scripts provided (as /bin/run-parts).
+
+2000-05-07 15:43 +0000 [r737]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * rc-scripts.spec.in: run-parts script now belongs here
+
+2000-05-03 11:55 +0000 [r736]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - typos - in some places changed [ VARIABLE =
+         "yes" ] ==> is_yes - devfsd may be used without DEVFS_MOUNT=yes
+
+2000-05-03 11:49 +0000 [r735]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/rc.sysinit: - typo
+
+2000-05-01 20:13 +0000 [r734]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - typo
+
+2000-05-01 18:57 +0000 [r733]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc: - line lengths are now evaluated properly - it's not
+         necessary to set and unset af{2,6,7} every time we want to "say
+         something" :)
+
+2000-05-01 18:53 +0000 [r732]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - \n after messages passed to nls aren't
+         necessary (nls uses "echo" after every printf anyway: if you want
+         to get a message without a trailing "\n", use echo -n "`nls
+         ...`")
+
+2000-05-01 18:43 +0000 [r731]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - deltext is not necessary before ok,
+         fail, others (it's called automatically) - [ $# -gt 0 ] instead
+         of [ -n "$1" ]: printf_ sometimes has to accept argument lists
+         like "" "a" (where first one is empty string) - replaced
+         "\b\b\b..." in deltext by "termput hpa $INIT_COL" - COLOR_INIT=no
+         doesn't mean that all other termcodes shouldn't work - COLOR_INIT
+         is now checked only at case "setaf"
+
+2000-04-27 06:20 +0000 [r730]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - missing space added (without
+         this "peer" option was used to "ip addr add" even if no "$REMIP"
+         was defined)
+
+2000-04-25 12:01 +0000 [r729]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - added MOUNT_DEVFS option
+
+2000-04-24 16:56 +0000 [r728]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/rc: - removed two unnecessary 0s at every textlen counting -
+         arguments for nls in "" (necessary, when COLOR_INIT=no)
+
+2000-04-23 11:46 +0000 [r727]  Marcin Bohosiewicz <marcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup: * In ifup file added suppoer for
+         Point-to-Point IPv4 Ethernet (REMIP variable). * In ifup-ppp
+         deleted some hashed lines.
+
+2000-04-21 17:47 +0000 [r716-726]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes: - get REALDEVICE and use
+         it for setting up the routes
+
+       * sysconfig/network-scripts/ifup-ppp: - detach pppd by default -
+         use "linkname" option to make pppd save its pid and interface
+         name - pass $CONFIG as ipparam - don't set remotename to device
+         name so authentication will work with peer-given name
+
+       * sysconfig/network-scripts/ifup-post: - use
+         get_ppp_device_and_pid() to get REALDEVICE - set up queing
+         discipline if QDISC is given
+
+       * sysconfig/network-scripts/ifdown-ppp: - use
+         get_ppp_device_and_pid() for getting pppd's pid
+
+       * rc.d/init.d/functions.network: - set REALDEVICE to DEVICE if
+         nothig else is set
+
+       * sysconfig/interfaces/ifcfg-ppp0.tpsa: - chatscript in
+         interfaces/data - QDISC set to SFQ (useful on PPP links)
+
+       * sysconfig/interfaces/ifcfg-ppp0.callback,
+         sysconfig/interfaces/ifcfg-ppp0.leased1: - chatscript in
+         interfaces/data
+
+       * sysconfig/interfaces/ifcfg-description: - QDISC parameter added
+         (queuing discipline)
+
+       * rc.d/init.d/functions.network: - function get_ppp_device_and_pid
+         added. It extracts PID and REALDEVICE from /var/run/ppp-*.pid
+
+       * ppp/ip-up: - real device name is now saved by pppd in
+         /var/run/ppp-*.pid - ipparam is a config name not a device name -
+         pass $CONFIG instead of ifcfg-$DEVICE to ifup-post
+
+       * ppp/ip-down: - "compatible location" of basename - ipparam is now
+         a config name instead of logical device - ifdown-post uses
+         $CONFIG instead of ifcfg-$DEVICE
+
+2000-04-19 18:20 +0000 [r715]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-post: - ifup-routes should be run
+         with $CONFIG as parameter, not $DEVNAME
+
+2000-04-18 08:30 +0000 [r713-714]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-post: - better hostname detection
+         (for DHCP clients)
+
+       * rc.d/init.d/functions.network: - "set_hostname" function fixed
+
+2000-04-14 11:14 +0000 [r711-712]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - s/syslogd/<service>/.
+
+       * sysconfig/system: - Added note about aumix-OSS-preserve-settings.
+
+2000-04-13 08:25 +0000 [r710]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/template.init: - some changes in reload)
+
+2000-04-12 23:21 +0000 [r709]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - typo.
+
+2000-04-11 14:27 +0000 [r708]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * po/pl.po: - typo - missing translation for "to enter interactive
+         startup"
+
+2000-04-08 21:41 +0000 [r707]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added single-letter-values to is_yes and
+         is_no
+
+2000-04-08 13:34 +0000 [r706]  mkochano <mkochano/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - Changed 'modprobe -s midi' to 'modprobe -s
+         synth0'. There is no module 'midi'. - Changed 'modprobe -s sound'
+         to 'modprobe -s sound-slot-0'. This causes sound card driver to
+         be loaded.
+
+2000-04-07 19:16 +0000 [r705]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ipx: - don't try start IPX on
+         unconfigured devices
+
+2000-04-06 12:39 +0000 [r704]  mkochano <mkochano/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes: - s/\$DEVICE/\$DEVNAME/.
+         "$DEVNAME" is set by source_config() from .functions to the name
+         of interface for which static routes should be set up.
+
+2000-04-05 10:33 +0000 [r703]  Bartek Szady <bszx/at/pld-linux.org>
+
+       * rc.d/init.d/timezone: - now it works under bash
+
+2000-04-03 14:50 +0000 [r700-702]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx, rc.d/init.d/network,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description,
+         sysconfig/network-scripts/ifdown, rc.d/rc.sysinit: - cleaned up
+         ifup/ifdown mess, /sbin/ifup ethX.something works now - IPX
+         fixes, works now - run hdparm from rc.sysinit BEFORE anything is
+         mounted RW - fixed setting VFS_{FILE,INODE}_MAX - updated
+         ifcfg-description
+
+       * configure.in: - version 0.2.1
+
+       * src/Makefile.am: - added initlog.conf to EXTRA_DIST
+
+2000-04-01 10:24 +0000 [r699]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - small termput() fixes
+
+2000-03-31 13:10 +0000 [r698]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/tnldown: - support for maxfail option
+         in pppd - cleanups in tunnel scripts
+
+2000-03-27 16:07 +0000 [r697]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * INSTALL, po/pl.po, sysconfig/interfaces/ifcfg-description,
+         rc-scripts.spec.in, sysconfig/network-scripts/ifup-post, rc.d/rc,
+         rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifdown-post, NEWS, src/Makefile.am: -
+         removed "scripts" method of executing external programs after
+         uping or downing device (almost nobody didn't know about it 8-) -
+         added new method which is using run_up() and run_down() functions
+         defined in device configuration file (ifcfg*) - fixed problem
+         with displaing garbage instead of formated output - removed
+         execution of random start (this should be started in standard
+         init.d way) - set ld.so.cache if doesn't exist, too - use new
+         (rh) style for date variables
+
+2000-03-26 06:51 +0000 [r696]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/system: - changed RUN_LDCONFIG to no.
+
+2000-03-24 08:48 +0000 [r695]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * po/pl.po, rc.d/rc: - fixed problem with Runlevel messages and
+         INIT_COL variable
+
+2000-03-24 08:39 +0000 [r694]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed nfsroot support
+
+2000-03-22 22:00 +0000 [r693]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: use corect name
+
+2000-03-22 21:55 +0000 [r692]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init (removed), rc.d/init.d/Makefile.am,
+         rc.d/init.d/template.init (added): please don't use stupid names
+         for files
+
+2000-03-22 21:44 +0000 [r691]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: typo
+
+2000-03-22 21:41 +0000 [r690]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added <templete>.init to %doc
+
+2000-03-22 21:30 +0000 [r689]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: cleanup
+
+2000-03-22 21:21 +0000 [r688]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - removed all fuzzy translations.
+
+2000-03-22 21:04 +0000 [r686-687]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - s/Stopowanie/Zatrzymywanie/
+
+       * po/pl.po: - beter translations for stop/start serwices.
+
+2000-03-22 20:51 +0000 [r685]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - added missing %s in pl translations (stopping,
+         starting messages).
+
+2000-03-22 20:43 +0000 [r684]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: fixed small typo
+
+2000-03-22 17:24 +0000 [r683]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, sysconfig/system: - Allow set
+         /proc/sys/fs/file-max & inode-max (patch by Paweł Krawczyk
+         <kravietz/at/alfa.ceti.pl>)
+
+2000-03-22 17:20 +0000 [r682]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Added BuildRequires: gettext-devel
+
+2000-03-22 01:17 +0000 [r681]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - more pl translations.
+
+2000-03-22 01:08 +0000 [r680]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - added using msg_stopping() in
+         stop.
+
+2000-03-21 23:59 +0000 [r678-679]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * makepot.pl: use : instead . in file location
+
+       * po/pl.po, makepot.pl: updated makepot.pl and pl.po, pl.po need
+         fixing
+
+2000-03-20 06:58 +0000 [r677]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - hacks for nfsroot, romfs
+
+2000-03-17 01:14 +0000 [r676]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - more using msg_Usage().
+
+2000-03-16 23:36 +0000 [r675]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - VERSION=0.2.0 (prepare to release this version).
+
+2000-03-15 15:07 +0000 [r674]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * README: - added info aboout Routing messages
+
+2000-03-10 01:31 +0000 [r673]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init, rc.d/init.d/functions: -
+         msg_Usage_noreload() and msg_Usage_reload() replace by
+         msg_Usage().
+
+2000-03-10 01:21 +0000 [r672]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - added return in exit error code
+         $RETVAL.
+
+2000-03-09 11:50 +0000 [r671]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - show() now substitutes %s properly
+
+2000-03-09 11:43 +0000 [r670]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - show instead of nls in some functions
+
+2000-03-09 11:30 +0000 [r669]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - more function
+
+2000-03-09 11:11 +0000 [r668]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - default value for INIT_COL
+
+2000-03-09 10:57 +0000 [r666-667]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * sysconfig/system: - added INIT_COL setting
+
+       * rc.d/init.d/functions: - slightly modified show() function -
+         changed all "67" to "$INIT_COL"
+
+2000-03-08 16:30 +0000 [r664-665]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-post,
+         rc.d/init.d/functions.network,
+         sysconfig/network-scripts/ifdown-post, README: - start some
+         scripts after interface is upped or downed
+         (/etc/sysconfig/interfaces/scripts/ifname/somename.{up,down}
+
+       * sysconfig/system, rc.d/rc, rc.d/rc.sysinit,
+         rc.d/init.d/functions, po/pl.po: - support for interactive
+         starting
+
+2000-03-08 15:43 +0000 [r663]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init, rc.d/init.d/functions: - added
+         "is_yes" and "is_no" functions
+
+2000-03-08 15:26 +0000 [r662]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - force-reload returns right status
+         on exit
+
+2000-03-08 15:23 +0000 [r661]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - added force-reload option - added
+         exit code 1 at errors - checking for running service at stop
+
+2000-03-08 14:59 +0000 [r660]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - was "2&>1" instead of "2>&1" -
+         fixed
+
+2000-03-08 14:50 +0000 [r659]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - unified syntax for setting
+         numerical and nonnumerical variables
+
+2000-03-08 14:40 +0000 [r658]  Sebastian Zagrodzki <zagrodzki/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - default configuration support -
+         typo
+
+2000-03-08 11:52 +0000 [r657]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - support exit code defined in LSB
+         spec (http://www.linuxbase.org/)
+
+2000-03-06 00:34 +0000 [r656]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - nls()ed
+
+2000-03-06 00:23 +0000 [r655]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: rm -f /var/lock/subsys/<service>
+         >/dev/null 2&>1 1. -r is not needed 2. silent
+
+2000-03-06 00:19 +0000 [r654]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init: - added "rm -rf
+         /var/lock/subsys/<service>" in stop.
+
+2000-03-06 00:10 +0000 [r653]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/<template>.init (added): Template init script. This
+         script can be used for preparing some unified output messages
+         translation for other init scripts for all services) Also it
+         would be good to change all other init scripts for compatybility
+         with this skeleton script and/or keep this file as template.
+
+2000-03-04 22:40 +0000 [r652]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * rc-scripts.spec.in, src/resolvesymlink.c (added),
+         src/Makefile.am, rc.d/init.d/timezone: Time zone information will
+         be updated only when needed.
+
+2000-03-04 13:59 +0000 [r651]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * sysconfig/Makefile.am, rc.d/init.d/Makefile.am, configure.in,
+         rc-scripts.spec.in: added time zone setting
+
+2000-03-04 13:41 +0000 [r648-650]  Paweł Wilk <siefca/at/pld-linux.org>
+
+       * sysconfig/timezone (added): configuration parameters for time
+         zone setting
+
+       * rc.d/init.d/timezone: chkconfig script for time zone setting
+
+       * rc.d/init.d/timezone (added): configuration profile (variables)
+         for time zone setting
+
+2000-03-02 17:22 +0000 [r647]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * configure.in: 0.1.5
+
+2000-02-28 12:50 +0000 [r646]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - run depmod if modules.dep is older that
+         modules.conf, too
+
+2000-02-18 18:07 +0000 [r645]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/network: - set ipv6 forwarding only if ipv6 is
+         enabled
+
+2000-02-18 17:59 +0000 [r644]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - translations for DONE etc are always
+         taken from rc-scripts.mo
+
+2000-02-18 12:37 +0000 [r643]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - typo
+
+2000-02-18 10:42 +0000 [r642]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: s/LANG/LC_ALL/ in umount
+
+2000-02-18 10:37 +0000 [r641]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.shutdown: - fix ummounting -- locale & /usr problem --
+         devfs ready
+
+2000-02-18 09:13 +0000 [r640]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - run devfsd before all
+
+2000-02-18 08:35 +0000 [r639]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - added devfsd support
+
+2000-02-17 10:59 +0000 [r638]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit, po/pl.po: - print space as last char in prompt
+
+2000-02-10 10:31 +0000 [r637]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: - running depmod is now
+         configurable
+
+2000-02-08 15:49 +0000 [r636]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - removed bogus defattr
+
+2000-02-03 11:50 +0000 [r632-635]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/single: - cleanups
+
+       * sysconfig/network, rc.d/init.d/network,
+         rc.d/init.d/functions.network: - router discovery daemon support
+
+       * rc.d/init.d/functions: - functions run_cmd() and daemon() are
+         returning proper values now
+
+       * rc.d/rc.shutdown: - new (better) unmounting procedure from
+         initscripts - cleanups
+
+2000-01-31 14:30 +0000 [r628-631]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc-scripts.spec.in, autogen.sh: - fixes
+         and updates
+
+       * NEWS: - translate to english (update)
+
+       * po/pl.po, rc.d/rc.sysinit: - nls cant handle special characters
+         such as '\n' - workaround this
+
+       * rc.d/init.d/functions.network: - avoid errors when lo interface
+         is down
+
+2000-01-05 01:18 +0000 [r627]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - mout procsf before all.
+
+2000-01-04 17:23 +0000 [r626]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in, sysconfig/system, rc.d/rc, rc.d/rc.sysinit: -
+         version 0.1.4 - added RUN_LDCONFIG variable to
+         /etc/sysconfig/system, now it's possible to turn off/on
+         ld.so.cache regeneration upon startup
+
+1999-12-30 12:11 +0000 [r624-625]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * rc.d/rc: - send messages to /dev/console (which can be serial
+         console) instead of virtual terminal
+
+       * rc.d/init.d/network, rc.d/init.d/functions.network: - support for
+         "any/none" routes in /etc/sysconfig/statig routes --- these may
+         be used for unreachable or blackhole routes
+
+1999-12-30 12:01 +0000 [r623]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * doc/sysconfig.docb: - updates in static-routes description
+
+1999-12-27 23:38 +0000 [r622]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnldown: - fix typos
+
+1999-12-20 19:36 +0000 [r621]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown: - ifdown should now work for
+         user-controled interfaces
+
+1999-12-20 10:28 +0000 [r620]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - reformated.
+
+1999-12-19 16:07 +0000 [r617-619]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-post: - Use IPv4 address for
+         setting hostname (or there will be no hostname on DHCP-configured
+         hosts)
+
+       * sysconfig/network-scripts/ifup: - usernetctl is now in /sbin -
+         OTHERSCRIPT should be started even if no IPv4 address is given
+         (PPP won't work otherwise) - IPv6 link-local addresses are added
+         by kernel. We shouldn't do it again
+
+       * sysconfig/network-scripts/ifdown: - usernetclt is now in /sbin -
+         OTHERSCRIPT should be astarted even if no IPv4 address is given
+
+1999-12-19 15:58 +0000 [r616]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * src/usernetctl.c: - search for ifcfg-* files in
+         /etc/sysconfig/interfaces - ifup and ifdown are now only in /sbin
+
+1999-12-19 15:54 +0000 [r615]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * src/.cvsignore: - more ignores
+
+1999-12-18 19:51 +0000 [r613-614]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - release 0.1.3.
+
+       * src/Makefile.am: - added missing shvar.h to ppp_watch_SOURCES.
+
+1999-12-18 16:43 +0000 [r612]  kloczek <kloczek/at/pld-linux.org>
+
+       * doc/Makefile.am: - updated man_MANS man pages file list.
+
+1999-12-18 16:26 +0000 [r610-611]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - s/ZDECHL/ZGINAL/.
+
+       * sysconfig/network-scripts/ifup-routes: - replace: grep "^$1 " to:
+         grep "^$1[[:blank:]]" on finding static routes entries for
+         specified interface. This allow place also tab character after
+         interface name.
+
+1999-12-15 18:41 +0000 [r608-609]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * src/consoletype.c (added): - one more source file
+
+       * src/usleep.c, sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown, doc/consoletype.1 (added),
+         src/ppp-watch.c (added), rc.d/init.d/functions.network,
+         src/initlog.c, doc/ppp-watch.8 (added), src/doexec.c,
+         src/initlog.conf (added), rc.d/init.d/allowlogin,
+         rc.d/init.d/functions, sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifup, src/process.c,
+         rc-scripts.spec.in, lang.sh, rc.d/rc.sysinit, src/shvar.c
+         (added), src/testd.c, doc/usernetctl.1 (removed), lang.csh,
+         src/getkey.c (added), src/Makefile.am, src/shvar.h (added),
+         src/usernetctl.c, doc/usleep.1, doc/usernetctl.8 (added),
+         rc.d/init.d/network: - fixed lang.csh - we use -a instead && -
+         updated few programs in src directory - fixed starting network
+         when none of ifcfg-* file exist - write nice logo at startup -
+         fixed problem with translated deltext() function
+
+1999-12-11 12:45 +0000 [r607]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * AUTHORS: - added Jacek Konieczny
+
+1999-12-09 12:31 +0000 [r606]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - added including /etc/rc.d/rc.modules for
+         loading modules before starting all services and initializing
+         raid deveces.
+
+1999-12-02 21:44 +0000 [r605]  elephant <elephant/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - corrected e-mail of mine
+
+1999-12-02 10:38 +0000 [r604]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/random, rc.d/init.d/single, rc.d/init.d/network: -
+         chkconfig field is back (without this upgrade from initscripts to
+         rc-scripts fails).
+
+1999-11-26 16:31 +0000 [r603]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - process /etc/sysconfig/system (fix
+         BR#110)
+
+1999-11-16 14:54 +0000 [r602]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - fixes
+
+1999-11-16 11:28 +0000 [r601]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-post: - reformated.
+
+1999-11-16 01:34 +0000 [r599-600]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - reformated text.
+
+       * po/pl.po: - s/Zapis ziarna losowego/Zapisanie podstawy generatora
+         losoweg/ - other cleanups.
+
+1999-11-15 23:17 +0000 [r598]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: - updated
+
+1999-11-15 01:21 +0000 [r597]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/i18n: - s/pl/pl_PL/.
+
+1999-11-14 07:55 +0000 [r595-596]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - new version 1.1.2.
+
+       * sysconfig/network-scripts/ifup: - s/DEVICEFULLNAME/
+
+1999-11-09 00:12 +0000 [r594]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - removed "chmod 0664 /var/log/wtmpx" (this is
+         task for SysVinit %post).
+
+1999-11-07 14:00 +0000 [r593]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - fixed BR#103 (s#==#=).
+
+1999-11-06 00:25 +0000 [r591-592]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown: - small fixes
+
+       * sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown, rc.d/init.d/functions.network:
+         - now realy handle ifup <dev>
+
+1999-10-27 12:09 +0000 [r590]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fix nls() function
+
+1999-10-27 05:46 +0000 [r588-589]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - new bersion 0.1.1.
+
+       * rc.d/rc.sysinit: - more fixes for displaing messages on
+         initializing raid devices.
+
+1999-10-27 03:12 +0000 [r586-587]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - reorder in %files.
+
+       * rc.d/rc.sysinit: - started instead busy on staring initialize
+         raid dev.
+
+1999-10-27 02:26 +0000 [r585]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added Requires: e2fsprogs > = 1.15.
+
+1999-10-27 02:20 +0000 [r584]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - added -C to fsck parameters (display progres
+         bar), - added support for new raidtools 0.90 utilities on
+         ininitialize raid devices.
+
+1999-10-23 08:13 +0000 [r583]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/init.d/network: /etc/rc.d/init.d/functions.network ->
+         /etc/sysconfig/network-scripts/.functions
+
+1999-10-22 11:43 +0000 [r582]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - fix: check and get
+         /etc/sysconfig/interfaces/ifcfg-$CONFIG instead
+         /etc/sysconfig/interfaces/$CONFIG in source_config().
+
+1999-10-17 09:34 +0000 [r581]  Rafał Kleger-Rudomin <klakier/at/pld-linux.org>
+
+       * doc/polski.dsl (added), doc/sysconfig.docb (added), doc/make-html
+         (added), doc/rc-scripts.docb (added): Przykład tworzenia
+         pojedynczego reference entry z użyciem docbooka Właściwym plikiem
+         jest sysconfig.docb
+
+1999-10-14 15:59 +0000 [r580]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - fixed permision to %%doc
+
+1999-10-14 09:00 +0000 [r579]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: - small fixes
+
+1999-10-13 21:28 +0000 [r578]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown-post,
+         sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx, rc.d/init.d/Makefile.am,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifup, rc-scripts.spec.in,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/network-scripts/tnldown: -
+         /etc/rc.d/init.d//network.functions moved to
+         /etc/sysconfig/network-scripts/.functions.
+
+1999-10-13 17:35 +0000 [r577]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added %config(noreplace) %verify(not size
+         mtime md5) rc.local
+
+1999-10-13 16:56 +0000 [r576]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - typo
+
+1999-10-13 16:51 +0000 [r575]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: - removed nfsfs and netfs
+
+1999-10-13 16:37 +0000 [r574]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.shutdown (added), rc.d/rc, rc.d/rc.sysinit,
+         rc.d/Makefile.am: - merged halt,reboot and shutdwn into
+         rc.shutdown - moved ldconfig to the end of system startup
+
+1999-10-13 16:32 +0000 [r573]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in: - 0.1.0
+
+1999-10-13 16:18 +0000 [r572]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - removed use of chkconfig - make rc?.d/{S,K}
+         links by hand
+
+1999-10-13 16:11 +0000 [r571]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/single, rc.d/init.d/killall, rc.d/init.d/allowlogin,
+         rc.d/init.d/halt (removed), rc.d/init.d/Makefile.am,
+         rc.d/init.d/network, rc.d/init.d/reboot (removed),
+         rc.d/init.d/shutdwn (removed), rc.d/init.d/random: - removed
+         usage of chkconfig
+
+1999-10-13 16:04 +0000 [r570]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/netfs (removed): - these should be from appropriate
+         *mount packages (or NFS daemons)
+
+1999-10-13 15:56 +0000 [r569]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/nfsfs (removed): - obsoleted by netfs
+
+1999-10-13 09:06 +0000 [r568]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - conf.modules -> modules.conf needed by new
+         modutils
+
+1999-10-12 14:09 +0000 [r567]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * configure.in: - version 0.0.12 - halt, reboot and shutwdn merged
+         into rc.shutdown - moved ldconfig at the end of rc system
+
+1999-10-07 00:49 +0000 [r566]  kloczek <kloczek/at/pld-linux.org>
+
+       * doc/net-scripts.txt: - updated partialy documentation.
+
+1999-10-06 16:52 +0000 [r565]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/tnldown,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post, rc.d/rc,
+         rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifup-sl, rc.d/init.d/allowlogin,
+         rc.d/init.d/functions: - remove bashizm in using test ("="
+         instead "==").
+
+1999-09-28 16:17 +0000 [r562-564]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown-post: - support for getting
+         interface configuration from LDAP
+
+       * rc.d/init.d/network: - support for loading interface
+         configuration from LDAP
+
+       * rc.d/init.d/functions.network: - functions for getting interfaces
+         and aliases lists from LDAP added - fixed getting interface info
+         from LDAP
+
+1999-09-28 14:43 +0000 [r560-561]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - release version 0.0.11
+
+       * po/pl.po: - updated pl translation.
+
+1999-09-28 14:24 +0000 [r558-559]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc: - fix: print "Entering" instead "Leaving" on entering in
+         runlevel.
+
+       * rc.d/rc.sysinit: - busy() instead started() on bigining
+         initialize RAID.
+
+1999-09-28 14:04 +0000 [r556-557]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - print 'fail' status on on failing initialize
+         raid and 'done' on corect initialize raid.
+
+       * rc.d/init.d/functions.network: - fixes.
+
+1999-09-28 13:17 +0000 [r555]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/shutdwn: - fix raid deintialization: deinitialize
+         only active devices (removed also using grep in getting active md
+         devices list).
+
+1999-09-28 12:48 +0000 [r553-554]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: - rearanged text.
+
+       * rc.d/init.d/functions.network: - fixed bug on checking is file
+         with interface description exist, - removed getting dummy code
+         $PARENTCONFIG (this afects net interfaces LDAP description).
+
+1999-09-27 20:02 +0000 [r552]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - arp on for eth by default
+
+1999-09-27 18:31 +0000 [r551]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - fixed typo
+
+1999-09-27 16:03 +0000 [r550]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * configure.in: - version 0.0.10
+
+1999-09-27 15:40 +0000 [r549]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: - fixes
+
+1999-09-27 15:31 +0000 [r547-548]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - typo.
+
+       * po/pl.po: - more translations.
+
+1999-09-27 15:14 +0000 [r545-546]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: - sync
+
+       * rc.d/init.d/shutdwn, rc.d/rc.sysinit: - nls fixes
+
+1999-09-27 15:00 +0000 [r544]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: - small correction
+
+1999-09-27 14:53 +0000 [r543]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/pl.po: - fixed some typos, more translations.
+
+1999-09-27 14:24 +0000 [r541-542]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po: - zmiana na formy bezosobowe - dodanie kilku nowych
+         tłumaczeń
+
+       * rc.d/rc.sysinit: - nls fixes
+
+1999-09-27 10:02 +0000 [r534-540]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network: - cleanups
+
+       * sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/tnldown: - nopmtudisc isn't specified
+         by default - cleanups
+
+       * sysconfig/network-scripts/ifup: - checking for interface via
+         MULTICAST setting instead of ARP setting - we are using
+         ,,onlink'' option for tunnels
+
+       * rc.d/init.d/network: - more /proc/sys/net support (it can be
+         buggy !!! testers needed) - fixed status reporting
+
+       * rc.d/init.d/functions: - termput cleanups - removed unnecesary
+         pid of process checking - returns ,,died'' instead ,,failed'' in
+         some cases - fixed nls()
+
+       * rc.d/init.d/allowlogin: - cleanups
+
+       * rc.d/init.d/functions.network: - fixed setup_nat() when
+         /etc/sysconfig/static-nat doesn't exist - flushing instead
+         deleting routing and addresses when down lo interface
+
+1999-09-26 14:56 +0000 [r533]  Jacek Konieczny <jajcus/at/pld-linux.org>
+
+       * sysconfig/network, rc.d/init.d/functions.network: - first step to
+         keeping interface information in LDAP
+
+1999-09-15 21:43 +0000 [r532]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - fixed typos
+
+1999-09-15 21:20 +0000 [r528-531]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/allowlogin, rc.d/init.d/functions, rc.d/rc,
+         po/.cvsignore, rc.d/rc.sysinit: - fixed nls messages - ignore
+         autogenerated files
+
+       * po/rc-scripts.pot (removed): - removed autogenerated file
+
+       * configure.in: - added list of shell scripts
+
+       * makepot.pl (added): - helper scripts: extract messages from
+         scripts and make pot file
+
+1999-09-15 21:12 +0000 [r527]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * po/pl.po, po/Makefile.am: - fixed `make rc-scripts.pot` - updated
+         polish translation
+
+1999-09-15 10:35 +0000 [r526]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/network: - errors from interfaces and tunnel checking
+         > /dev/null
+
+1999-09-15 10:22 +0000 [r525]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * doc/Makefile.am: - removed ipchains-setup.txt
+
+1999-09-15 10:16 +0000 [r522-524]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: - we are adding fe80::IPv4
+         addresses to sit interfaces _only_
+
+       * sysconfig/interfaces/tnlcfg-description: - added information
+         about using tnlcfg-xxx instead of ifcfg-xxx
+
+       * po/pl.po: - fixed typo
+
+1999-09-13 13:37 +0000 [r521]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc: - added test if /var/run is writable to avoid errors if
+         it is read-only
+
+1999-09-13 13:29 +0000 [r516-520]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/i18n: - added missing cvs keyword
+
+       * doc/ipchains-setup.txt (removed): - removed obsolete
+         documentation
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/interfaces/ifcfg-description: - another support for
+         IPv4 aliases via IPADDR_ALIASES variable
+
+       * sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/tnldown: - another way to set TTL or
+         TOS to avoid 'inherit' value - cleanups in var names
+
+       * rc.d/init.d/network: - fixed status reporting
+
+1999-09-04 19:49 +0000 [r513-515]  Bartosz Waszak <waszi/at/pld-linux.org>
+
+       * rc.d/init.d/shutdwn: umount -a fixed
+
+       * rc.d/rc.sysinit: now is rootfs on NFS compatible
+
+       * rc.d/Makefile.am: small fixes
+
+1999-09-03 07:54 +0000 [r512]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/shutdwn: posible fix for umounting /usr
+
+1999-09-03 07:42 +0000 [r511]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: fix in termput()
+
+1999-09-03 07:24 +0000 [r510]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions: termput() check for /usr/share/terminfo
+         and tput everytime
+
+1999-09-02 12:42 +0000 [r509]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.init (added): - added proper rc.init version
+
+1999-09-02 12:38 +0000 [r508]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * autogen.sh, NEWS, README, rc.d/initscript (removed),
+         rc.d/Makefile.am, TODO, rc-scripts.spec.in: - updated
+
+1999-09-02 12:38 +0000 [r507]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc.init (removed): removed
+
+1999-09-02 12:30 +0000 [r502-506]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - another way do check if IPv4/6 is specified on interface -
+         fixed few typo
+
+       * rc.d/init.d/Makefile.am, rc.d/init.d/ipchains (removed),
+         rc.d/init.d/functions.network, rc.d/init.d/functions: - added
+         function to setup NAT rules - modprobing ipv6.o is now done in
+         autoclean mode - removed ipchains (this script should be in
+         ipchains package) - better errors handling in run_cmd()
+
+       * sysconfig/network-scripts/tnlup: - modprobe modules in autoclean
+         mode and report errors via syslog - added check for
+         /lib/modules/`uname -r`/*/module_name.o
+
+       * sysconfig/network-scripts/ifup-sl: -load slip.o module if
+         available (in autoclean mode)
+
+       * rc.d/init.d/network: - SIT tunnels are upped at the end
+
+1999-09-02 12:16 +0000 [r498-501]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - logging errors from depmod and modprobe via
+         syslog
+
+       * rc.d/rc.init (added): - renamed initscript to rc.init
+
+       * doc/ipcalc.1: - fixed typos
+
+       * src/usernetctl.c, src/ipcalc.c, src/usleep.c, src/process.c,
+         src/netreport.c, src/initlog.c: - added casts to proper types and
+         started NLSing
+
+1999-08-31 23:51 +0000 [r497]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/network: - load /etc/ethers after interface ups.
+
+1999-08-31 23:30 +0000 [r496]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - fix in make symlinks to rc.local
+
+1999-08-31 23:12 +0000 [r495]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         rc.d/init.d/functions, configure.in, rc-scripts.spec.in: -
+         version up to 0.0.9 - added printf_() equwalent to bash built-in
+         printf() or /usr/bin/printf - changed nls() to work like printf -
+         tput() -> termput() - changed all show bla bla; to show "bla
+         bla"; - added symlinks to /etc/rc.d/rc.local
+
+1999-08-31 13:59 +0000 [r494]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - fixed quotacheck calls
+
+1999-08-26 11:05 +0000 [r493]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * TODO: - interfejs sit0 musi być podnoszony na samym końcu
+
+1999-08-25 14:15 +0000 [r492]  mikrobi <mikrobi/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown:
+         - added DEFAULTHANDLING variable (mainly for ATM startup scripts)
+
+1999-08-20 13:39 +0000 [r490-491]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: added two nls calls
+
+       * rc.d/init.d/functions.network: - ipv6 addresses arn't deleted
+         when lo device is downing (some people doesn't use IPv6, yet)
+
+1999-08-18 13:28 +0000 [r489]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: fixed raid starting
+
+1999-08-16 09:38 +0000 [r488]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * TODO, rc-scripts.spec.in, rc.d/init.d/killall: killall is now
+         chkconfig ready. updated TODO list.
+
+1999-08-14 13:18 +0000 [r485-487]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl: removed unnecesary check (via
+         fuser)
+
+       * rc.d/init.d/network: removed [ -f /etc/sysconfig/interfaces/$i ]
+         tests
+
+       * sysconfig/network-scripts/ifup-sl: typo
+
+1999-08-14 12:57 +0000 [r484]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl: increased sleep value after
+         starting slattach to 2 seconds
+
+1999-08-14 12:39 +0000 [r483]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: "quotaon /" removed. quota is turned on later by
+         quotaon -a
+
+1999-08-14 12:01 +0000 [r482]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup, rc.d/init.d/functions.network:
+         modprobing ipip ip_gre modules moved temporary to tnlup
+
+1999-08-14 11:56 +0000 [r481]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: interfaces file names must starting from
+         "ifcfg-"
+
+1999-08-14 11:41 +0000 [r479-480]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl: fixed DIRECT_CONNECT mode (ie.
+         for using slattach)
+
+       * sysconfig/network-scripts/ifup-post: now $FULLDEVNAME is passed
+         to ifup-routes (fixed problem with duplicate routes)
+
+1999-08-14 11:25 +0000 [r478]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-aliases: changed path to ifup (now
+         it's /sbin/ifup)
+
+1999-08-14 11:01 +0000 [r477]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - \b\b\b\b... characters also are NLSed
+         (this is needed when translating "DONE", "BUSY" etc.
+
+1999-08-14 10:56 +0000 [r476]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/system, rc.d/rc.sysinit: added new variable SET_SLINKS.
+         If it set to "yes" then rc.sysinit is setting symlinks in /boot
+         dependent on kernel version.
+
+1999-08-14 10:53 +0000 [r474-475]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: typo in locale path
+
+       * sysconfig/network-scripts/ifup: we are adding IPv4 based
+         link-local addresses, too.
+
+1999-08-12 09:54 +0000 [r473]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/network, sysconfig/network-scripts/ifup-aliases: -
+         aliasing are upped via ifup-aliases after main device is up
+
+1999-08-09 21:05 +0000 [r472]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc: - changed ptintf to awk
+
+1999-08-09 20:44 +0000 [r470-471]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added Requires: /bin/gettext
+
+       * rc.d/init.d/shutdwn: - fix remount to ro
+
+1999-08-09 20:20 +0000 [r468-469]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/Makefile.am: - removed ipchans and addes i18n to
+         syscinfig files.
+
+       * sysconfig/ipchains (removed): - not neccessary (ip chaninc is
+         handled by firewal-init scripts package).
+
+1999-08-09 20:00 +0000 [r467]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/functions, configure.in: - more locale strings - fix
+         locale support in configure.in
+
+1999-08-09 19:58 +0000 [r466]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added /etc/sysconfig/i18n as a %config
+         file.
+
+1999-08-09 19:44 +0000 [r465]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - release 0.0.8.
+
+1999-08-07 10:16 +0000 [r464]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am, rc.d/init.d/functions,
+         configure.in, po/Makefile.am (added), rc-scripts.spec.in,
+         po/rc-scripts.pot, Makefile.am, rc.d/init.d/ipchains,
+         rc.d/init.d/functions.network: - expr -> $(( )) - wstęp
+         automake/autoconf do locale
+
+1999-08-06 13:06 +0000 [r463]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: fixed bug with math
+
+1999-08-06 13:02 +0000 [r462]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: added return 0 to proc_net()
+         function
+
+1999-08-06 10:25 +0000 [r461]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/network: removed last change
+
+1999-08-04 16:59 +0000 [r460]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/init.d/network: A BUG has been fixed! jak używacie zmiennych
+         shella misiowie to tam _musi_ być $ na początku!
+
+1999-08-02 14:51 +0000 [r459]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/initscript (added): moved here from SysVinit package
+
+1999-08-02 13:04 +0000 [r458]  kloczek <kloczek/at/pld-linux.org>
+
+       * setsysfont: - reformated.
+
+1999-08-02 12:04 +0000 [r457]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - changed group to utmp on utmpx (to be
+         compliant with RH).
+
+1999-08-02 10:08 +0000 [r456]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-post,
+         rc.d/init.d/functions.network, rc.d/rc.sysinit, README: -
+         poprawiony błąd "Delaying xxxx initialization." mimo poprawnej
+         konfiguracji - tworzone są poprawne linki do
+         /boot/System.map-version
+
+1999-08-01 19:26 +0000 [r455]  kloczek <kloczek/at/pld-linux.org>
+
+       * po/.cvsignore (added): - shut files.
+
+1999-07-31 11:26 +0000 [r453-454]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * po/pl.po (added), po/rc-scripts.pot (added), po (added): - pot +
+         pl tłumaczenie
+
+       * rc.d/init.d/ipchains, autogen.sh, NEWS, ppp/ip-down.d/logger,
+         sysconfig/interfaces/ifcfg-lo (removed), setsysfont,
+         rc.d/init.d/allowlogin, sysconfig/i18n (added),
+         sysconfig/network-scripts/ifup, configure.in,
+         sysconfig/network-scripts/ifup-plip, rc.d/init.d/nfsfs,
+         ppp/ip-up.d/logger, rc.d/rc.sysinit, doc-devel (removed),
+         sysconfig/ipchains, TODO, rc.d/init.d/shutdwn,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown, rc.d/init.d/functions.network,
+         rc.d/init.d/functions, sysconfig/network-scripts/tnlup, AUTHORS,
+         rc-scripts.spec.in, sysconfig/system, rc.d/rc, rc.d/init.d/netfs,
+         inittab, rc.d/init.d/random, rc.d/init.d/single,
+         sysconfig/network, rc.d/init.d/killall,
+         sysconfig/network-scripts/ifup-sl, rc.d/init.d/halt,
+         rc.d/init.d/network, rc.d/init.d/reboot, INSTALL,
+         sysconfig/network-scripts/tnldown, COPYING: - dodana obsługa
+         statycznej tablicy ARP - interfejs lo nie wymaga pliku
+         konfiguracyjnego - dodane wsparcie dla innych języków niż
+         angielski (NLS) - rc.sysinit && rc ustawia odpowiednie zmienne
+         potrzebne do obsługi NLS - ustawianie fontów, map już w skryptcie
+         setsysfont - ifup && ifdown: wreszcie poprawnie działają dla
+         interfejsów IPv6 only - dla deinicjowania sieci interfejsy
+         sortujemy w porządku odwróconym - wykorzystujemy _wyłącznie_
+         iproute2 (zmodyfikowane wszelkie odwołania do ifconfig lub route)
+         - usunięte Requires: net-tools - dodane label ${FULLDEVNAME} przy
+         deinicjowaniu interfejsów - usunięty baggins z AUTHORS - dodane
+         COPYING (GPL) oraz standardowy plik INSTALL - dodana możliwość
+         obsługi tłumaczeń DONE, BUSY itp o dlugości różnej od 4 liter
+
+1999-07-29 15:09 +0000 [r452]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * TODO: Zrobione. (to z ipv6)
+
+1999-07-29 13:59 +0000 [r451]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup, TODO,
+         sysconfig/network-scripts/tnldown: now running tnlup/tnldown
+         tunel is possible
+
+1999-07-27 23:47 +0000 [r450]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added pasiing LDFLAGS="-s" to ./configure
+         enviroment (cause stripping binaries).
+
+1999-07-27 12:51 +0000 [r449]  kloczek <kloczek/at/pld-linux.org>
+
+       * TODO: - dodać możliwość ustawiania statycznej tablicy arp (patrz:
+         man ethers arp opcja -f). Najpawdopodobniej najlepszym miescem
+         będzie punkt mię podnoszeniem lo a nastepnych interfejsów.
+
+1999-07-27 12:24 +0000 [r448]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - version up to 0.0.7.
+
+1999-07-27 11:50 +0000 [r447]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: - use raidadd instead raidstart during
+         initialization RAID deveces, - added raidrun for activate md
+         devices.
+
+1999-07-27 06:32 +0000 [r446]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * TODO: - rc.sysvinit działa z e2fsprogs 1.15 (testowane z LABEL=,
+         do przetestowania UUID=)
+
+1999-07-27 03:44 +0000 [r445]  kloczek <kloczek/at/pld-linux.org>
+
+       * TODO: - o ile to możliwe usunąć używanie awk i sed zastępować
+         użyewaniem sh lub przynajmeniej zastępować awka sedem
+
+1999-07-27 03:35 +0000 [r444]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - added allowlogin to inet.d scripts, - fixed
+         typo in post, - cosmetics,
+
+1999-07-27 03:25 +0000 [r443]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am: - added allowlogin to init_SCRIPTS.
+
+1999-07-27 03:11 +0000 [r442]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/Makefile.am: - added ifdown-post to
+         networkscripts_SCRIPTS.
+
+1999-07-27 02:51 +0000 [r441]  kloczek <kloczek/at/pld-linux.org>
+
+       * ppp/ip-down, ppp/ip-up: - chnegd "#!/bin/bash" to "#!/bin/sh".
+
+1999-07-22 21:53 +0000 [r440]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * TODO: e2progs 1.15
+
+1999-07-22 21:51 +0000 [r439]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: Maly hack zeby dzialaly iface
+         tylko na ipv6. Pomijane jest wyliczanie natmaski/prefixu jak
+         adres ipv4 nie jest zdefiniowany.
+
+1999-07-22 15:13 +0000 [r438]  kloczek <kloczek/at/pld-linux.org>
+
+       * configure.in: - version to 0.0.6.
+
+1999-07-22 11:11 +0000 [r437]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in, sysconfig/interfaces/Makefile.am: cleanup for
+         release
+
+1999-07-22 10:44 +0000 [r436]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * TODO: uwaga do tnlup
+
+1999-07-22 10:40 +0000 [r435]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * TODO (added): TODO list
+
+1999-07-22 10:23 +0000 [r434]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-description (added),
+         sysconfig/interfaces/tnlcfg-icm,
+         sysconfig/interfaces/ifcfg-eth0.wiget (removed),
+         sysconfig/interfaces/tnlcfg-description (added): cleanup
+
+1999-07-22 10:19 +0000 [r433]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-lo: - added IPV6_ADDR - fixed PREFIX
+
+1999-07-22 09:09 +0000 [r432]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: - cleanup
+
+1999-07-22 08:46 +0000 [r431]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc.d/init.d/shutdwn: typo
+
+1999-07-21 14:30 +0000 [r430]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc.d/init.d/network: Expresion with /usr/bin/cut replaced by one
+         with sed ;-) now rc-scripts only need /bin to work properly.
+
+1999-07-21 13:52 +0000 [r429]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions-ip6 (removed): obsoletes
+
+1999-07-20 09:03 +0000 [r428]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: rc.serial moved to setserial
+
+1999-07-15 13:43 +0000 [r427]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added >/dev/null 2>&1 to kill
+
+1999-07-15 13:29 +0000 [r426]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network, rc.d/rc.sysinit,
+         rc.d/init.d/functions, rc.d/init.d/network: - we are using better
+         pidofproc() from RH initscripts - removed unnecesary check in
+         rc.sysinit - removed all obsolete functions from
+         functions.network - finished proc_net() function (interface to
+         /proc/sys/net)
+
+1999-07-15 13:16 +0000 [r425]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc-scripts.spec.in: requires: /bin/awk
+
+1999-07-14 17:49 +0000 [r424]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.serial (removed): - moved to setserial.
+
+1999-07-14 17:16 +0000 [r423]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/Makefile.am: - removed rc.derial.
+
+1999-07-13 13:27 +0000 [r422]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * AUTHORS: authors - based on ChangeLog
+
+1999-07-13 12:52 +0000 [r421]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions, rc.d/rc.sysinit: - /proc is mounted before
+         starting fsck (needed for working LABEL support is fsck) - fixed
+         bug in show()
+
+1999-07-13 12:49 +0000 [r420]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl,
+         sysconfig/interfaces/data/chat-ppp0.tpsa,
+         sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdown-ppp, INSTALL,
+         sysconfig/network-scripts/tnldown, rc.d/rc.serial,
+         sysconfig/interfaces/tnlcfg-icm, NEWS,
+         sysconfig/interfaces/ifcfg-lo, doc/sysvinitfiles, setsysfont,
+         sysconfig/interfaces/ifcfg-eth0.wiget,
+         sysconfig/network-scripts/ifup, doc/sysconfig.txt,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/interfaces/data/chat-ppp0.callback, ppp/ip-up,
+         sysconfig/network-scripts/ifdown-post, rc.d/rc.sysinit, README,
+         lang.csh, doc-devel/ogolnie, doc/net-scripts.txt,
+         sysconfig/interfaces/ifcfg-sl0,
+         sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown, Makefile.am,
+         sysconfig/interfaces/data/chat-ppp0.leased1,
+         rc.d/init.d/functions.network, ppp/ip-down,
+         sysconfig/interfaces/ifcfg-ppp0.callback, doc/ipchains-setup.txt,
+         sysconfig/network-scripts/ifup-ppp, rc.d/rc.local,
+         sysconfig/network-scripts/ifup-ipx, rc.d/init.d/functions,
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/tnlup, AUTHORS, rc-scripts.spec.in,
+         rc.d/rc, inittab, lang.sh,
+         sysconfig/interfaces/ifcfg-ppp0.leased1,
+         sysconfig/interfaces/ifcfg-ppp0.leased2: massive :$
+
+1999-07-05 10:27 +0000 [r419]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Requires: procps
+
+1999-07-05 10:23 +0000 [r418]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: we are using printf from sh-utils package
+         instead of cut
+
+1999-07-05 09:12 +0000 [r417]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * configure.in, rc-scripts.spec.in: - network-scripts moved to
+         /etc/sysconfig
+
+1999-07-05 08:47 +0000 [r415-416]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: Requires: net-tools, iproute2
+
+       * rc-scripts.spec.in: Requires: sed
+
+1999-07-05 08:39 +0000 [r414]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * configure.in, rc-scripts.spec.in,
+         sysconfig/network-scripts/Makefile.am: - skrypty sieciowe w
+         network-scripts - ipchains poniechane (jak ktoś chce to niech
+         wsadzi w oddzielny moduł) - net-scripts i rc-scripts połączone w
+         rc-scripts
+
+1999-07-05 08:08 +0000 [r413]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc, rc.d/init.d/functions, sysconfig/network-scripts/ifup: -
+         przesunięte inormacje `ok`, `busy` itp w nieco w prawo (więcej
+         miejsca na komunikaty) - dodajemy takze routing IPv6 na okreslone
+         interfejsy
+
+1999-07-03 15:09 +0000 [r410-412]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ChangeLog (removed): i po tescie
+
+       * sysconfig/network-scripts/ifup: ip used to sed MAC address
+
+       * sysconfig/network-scripts/ChangeLog (added): test
+
+1999-07-02 13:21 +0000 [r409]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: more Requires
+
+1999-07-02 11:49 +0000 [r408]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * rc-scripts.spec.in: more Requires
+
+1999-07-02 11:31 +0000 [r407]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * src/Makefile.am, rc-scripts.spec.in: added missing files
+
+1999-07-02 11:14 +0000 [r404-406]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * doc/ipcalc.1: from src
+
+       * doc/Makefile.am: added initlog.1
+
+       * src/usernetctl.1 (removed), src/Makefile.am, src/ipcalc.1
+         (removed), src/usleep.1 (removed), src/netreport.1 (removed),
+         src/initlog.1 (removed), src/doexec.1 (removed): manuals in doc
+
+1999-07-02 09:32 +0000 [r402-403]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/Makefile.am, sysconfig/network-scripts/ifup: -
+         ARPable by default
+
+       * rc.d/init.d/allowlogin (added), rc.d/init.d/network-ip6.init
+         (removed), rc.d/init.d/network, sysconfig/network-scripts/tnlup,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-plip,
+         sysconfig/network-scripts/tnldown, sysconfig/network-ip6
+         (removed), rc.d/rc, rc.d/rc.sysinit, sysconfig/network,
+         sysconfig/network-ip6.conf (removed), doc-devel/ogolnie,
+         sysconfig/interfaces/ifcfg-eth0.wiget: - obsługa multicast, arp,
+         src - poprawka w "Delay Login" - poprawki w template
+         ifcfg-eth0.wiget - tnlup && tnldown uwzględniają konfigurację w
+         network - ustawianie defaulowo PROTOCOL=
+
+1999-07-01 21:10 +0000 [r401]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am, configure.in,
+         rc-scripts.spec.in, sysconfig/interfaces/data/Makefile.am: now
+         rc-scripts compile, install and make rpm correct
+
+1999-07-01 14:37 +0000 [r400]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/interfaces/data/.cvsignore (added),
+         sysconfig/interfaces/.cvsignore (added): ignore autogenerated
+
+1999-06-29 16:38 +0000 [r399]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifdown, rc.d/init.d/functions.network,
+         rc.d/init.d/functions, rc.d/init.d/network,
+         sysconfig/network-scripts/tnlup, sysconfig/network-scripts/ifup:
+         - poprawki w calcnetmask - net-tools (prawie) > /dev/null.
+         Używamy iproute - poprawki w obsłudze aliasów (nie testowałem ale
+         powinno być możliwe używanie aliasów typu eth0:PLD_JEST_SUPER)
+
+1999-06-28 20:05 +0000 [r397-398]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/interfaces/Makefile.am (added),
+         sysconfig/interfaces/data/Makefile.am (added): - template
+         Makefile.am.
+
+       * configure.in: - added missing "\".
+
+1999-06-28 15:39 +0000 [r395-396]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * src/Makefile (removed): Autogenerated
+
+       * Makefile.am, sysconfig/network-scripts/Makefile.am,
+         sysconfig/Makefile.am, rc.d/init.d/Makefile.am, src/Makefile,
+         configure.in, rc-scripts.spec.in: first try to sync Makefile.am
+
+1999-06-28 14:30 +0000 [r394]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/data (added),
+         sysconfig/interfaces/data/chat-ppp0.tpsa (added),
+         sysconfig/network-scripts/chat-ppp0.tpsa (removed),
+         sysconfig/interfaces/data/chat-ppp0.callback (added),
+         sysconfig/interfaces/data/chat-ppp0.leased1 (added),
+         sysconfig/network-scripts/chat-ppp0.callback (removed),
+         sysconfig/network-scripts/chat-ppp0.leased1 (removed): moved
+         chat*
+
+1999-06-28 13:12 +0000 [r393]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/tnlup: wszędzie ${}
+
+1999-06-28 13:07 +0000 [r392]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network, sysconfig/static-nat (added),
+         sysconfig/network-scripts/ifup-tnl (removed),
+         rc.d/init.d/tunnels-ip6.init (removed), src/ipcalc.c,
+         sysconfig/network-scripts/ifdown-tnl (removed),
+         rc.d/init.d/network, sysconfig/network-scripts/ifup-routes,
+         sysconfig/network-scripts/tnlup (added),
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifdhcpc-done (removed),
+         doc/sysconfig.txt, sysconfig/network-scripts/tnldown (added): -
+         zmiana syntaxy dla routingu statycznego - if{up,down}-tnl ->
+         tnl{up,down} - poprawki dotyczące PREFIX - tunnels-ip6.init,
+         ifdhcpc-done - zbędne (zastąpione przez inne narzędzia)
+
+1999-06-27 18:48 +0000 [r391]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: Added function to calculate
+         netmask from prefix
+
+1999-06-27 18:26 +0000 [r390]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * doc-devel/ogolnie: removed 2 config files
+
+1999-06-27 18:14 +0000 [r388-389]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/network: tunnels
+
+       * sysconfig/interfaces/ifcfg-lo, doc/net-scripts.txt,
+         sysconfig/interfaces/ifcfg-ppp0.leased1,
+         sysconfig/interfaces/ifcfg-ppp0.leased2,
+         sysconfig/interfaces/ifcfg-eth0.wiget,
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-plip: NETMASK= is obsoletes
+         (instead we use PREFIX=)
+
+1999-06-27 17:34 +0000 [r387]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * src/ipcalc.1, src/ipcalc.c: PREFIX instead NETMASK in --prefix
+         option
+
+1999-06-27 17:25 +0000 [r384-386]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: poprawki
+
+       * rc.d/init.d/functions.network: poprawki
+
+       * rc.d/init.d/functions.network: poprawki
+
+1999-06-27 17:11 +0000 [r383]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: typo
+
+1999-06-27 17:00 +0000 [r382]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc.d/init.d/functions.network: Added function for calulating
+         network prefix.
+
+1999-06-27 16:06 +0000 [r381]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup: small poprawken
+
+1999-06-27 15:30 +0000 [r380]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * src/ipcalc.c, src/ipcalc.1: - added support for short netmask
+         style (/24 etc)
+
+1999-06-27 14:42 +0000 [r379]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/ifcfg-eth0.wiget (added): readed
+
+1999-06-27 14:27 +0000 [r378]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/interfaces/tnlcfg-icm, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifdown-post, sysconfig/tunnels-ip6.conf
+         (removed), sysconfig/network-scripts/ifup-tnl (added),
+         sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/ifup-ppp,
+         sysconfig/network-scripts/ifdown-tnl (added),
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post: - używamy pumpa do
+         bootp/dhcpd - dodano ifup-tnl && ifdown-tnl - obsługa tuneli
+         ipip, sit, gre (ipxip niezrobiona jeszcze) - tunnels-ip6.conf -
+         zbędne (tunele są konfigurowane w stylu SySV) - drobne poprawki
+
+1999-06-23 17:14 +0000 [r377]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifcfg-lo (removed): removed
+
+1999-06-21 20:36 +0000 [r376]  Jan Rękorajski <baggins/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: usuwanie lockow po pam_console
+
+1999-06-19 11:29 +0000 [r375]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/killall, rc.d/init.d/functions, inputrc (removed),
+         rc.d/init.d/shutdwn, Makefile.am, autogen.sh, rc.d/rc.sysinit,
+         rc.d/init.d/single: - removed inputrc (it must be in readline), -
+         reformatings, - removed processing doc in Makefile.am and
+         autogen.sh.
+
+1999-06-18 19:23 +0000 [r374]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * doc/initlog.1 (added), sysconfig/interfaces/tnlcfg-icm (added),
+         src/minilogd.c (added), src/initlog.c (added), src/loglevel.c
+         (added), src/initlog.h (added), rc.d/init.d/functions,
+         src/process.c (added), sysconfig/system, rc.d/init.d/netfs
+         (added), src/initlog.1 (added), rc.d/rc.sysinit, src/process.h
+         (added), rc.d/init.d/single, doc-devel/ogolnie (added),
+         sysconfig/interfaces/ifcfg-sl0 (added), doc-devel (added),
+         rc.d/init.d/network, src/Makefile (added),
+         sysconfig/network-scripts/tnlcfg-icm (removed),
+         rc.d/init.d/shutdwn, rc.d/rc.serial: pare zmian
+
+1999-06-18 19:14 +0000 [r373]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-sl,
+         sysconfig/network-scripts/network-functions (removed),
+         sysconfig/network-scripts/ifcfg-ppp0.tpsa (removed),
+         sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifup, sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifcfg-ppp0.callback (removed),
+         sysconfig/network-scripts/ifcfg-ppp0.leased1 (removed),
+         sysconfig/network-scripts/ifdown-post,
+         sysconfig/network-scripts/ifcfg-ppp0.leased2 (removed),
+         sysconfig/network-scripts/ifcfg-eth0.wiget (removed),
+         sysconfig/network-scripts/ifcfg-eth0 (removed): *** empty log
+         message ***
+
+1999-06-16 17:29 +0000 [r372]  Arkadiusz Miśkiewicz (alias) <misiek/at/pld-linux.org>
+
+       * rc.d/rc.sysinit: fixed colors
+
+1999-06-15 18:06 +0000 [r371]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/rc.media (removed): - removed. This was (my) silly idea.
+
+1999-06-15 14:31 +0000 [r370]  kloczek <kloczek/at/pld-linux.org>
+
+       * src/Makefile (removed): - autogenerated.
+
+1999-06-14 21:17 +0000 [r369]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc.d/init.d/shutdwn, rc.d/init.d/functions.network (added),
+         sysvinitfiles (removed), doc/doexec.1 (added), autogen.sh
+         (added), NEWS (added), sysconfig/Makefile.am (added), Makefile
+         (removed), sysconfig.txt (removed), doc/.cvsignore (added),
+         ppp/ip-up.d/Makefile.am (added),
+         sysconfig/network-scripts/ifdown-sl, doc/netreport.1 (added),
+         configure.in (added), net-scripts.txt (removed), lang.sh,
+         rc.d/rc, doc/usernetctl.1 (added), README (added),
+         sysconfig/interfaces/ifcfg-ppp0.leased1 (added),
+         sysconfig/interfaces/ifcfg-ppp0.leased2 (added), doc/usleep.1
+         (added), sysconfig/network-scripts/ifup-sl, rc.d/init.d/network,
+         INSTALL (added), ppp/ip-down.d/Makefile.am (added),
+         sysconfig/network-scripts/ifdown, ipchains-setup.txt (removed),
+         sysconfig/interfaces/ifcfg-ppp0.callback (added), doc/Makefile.am
+         (added), doc/sysvinitfiles (added),
+         sysconfig/network-scripts/ifup-ppp, doc/sysconfig.txt (added),
+         sysconfig/network-scripts/ifup-plip, sysconfig/system,
+         sysconfig/network-scripts/Makefile.am (added),
+         rc.d/init.d/single, rc.d/init.d/halt,
+         sysconfig/network-scripts/ifup-aliases, rc.d/rc.serial,
+         sysconfig/network-scripts/ifup-post, Makefile.am (added),
+         .cvsignore, rc-scripts.spec (removed), rc.d/init.d/functions,
+         rc.d/init.d/Makefile.am (added), sysconfig/network-scripts/ifup,
+         AUTHORS (added), sysconfig/interfaces/ifcfg-ppp0.tpsa (added),
+         lang.csh (added), sysconfig/network, rc.d/Makefile.am (added),
+         src/Makefile.am (added), doc (added), ppp/Makefile.am (added),
+         COPYING (added), sysconfig/interfaces/ifcfg-lo (added),
+         doc/ipchains-setup.txt (added), rc-scripts.spec.in (added),
+         sysconfig/interfaces (added), rc.d/rc.sysinit,
+         doc/net-scripts.txt (added), doc/ipcalc.1 (added),
+         rc.d/init.d/reboot, sysconfig/network-scripts/ifdown-ppp: Synced
+         with latest from old repo
+
+1999-06-14 21:06 +0000 [r367-368]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * ipchains-setup.txt (added): now synced. (one file was missed)
+
+       * rc-scripts.spec, sysconfig/ipchains (added),
+         rc.d/init.d/functions, rc.d/init.d/network, rc.d/rc.media
+         (added), sysconfig/system, net-scripts.txt (added),
+         rc.d/init.d/ipchains (added), sysconfig/static-routes (added),
+         rc.d/rc.sysinit, sysconfig/network-scripts/ifcfg-eth0.wiget
+         (added), Makefile: synced with 0.0.5
+
+1999-06-14 20:53 +0000 [r366]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc-scripts.spec, sysconfig.txt, sysconfig/network-scripts/ifup,
+         lang.sh, Makefile, sysconfig/network, src/testdinit, setsysfont:
+         Synced with 0.0.4
+
+1999-06-14 20:50 +0000 [r365]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * sysconfig/network (added), sysconfig/network-scripts/ifcfg-eth0
+         (added): now is really synced with 0.0.3
+
+1999-06-14 20:44 +0000 [r364]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * sysconfig/network-scripts/chat-ppp0 (removed),
+         sysconfig/network-scripts/network-functions, sysconfig.txt,
+         sysconfig/network-scripts/ifup-ppp, rc-scripts.spec,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifdown-sl, inputrc,
+         sysconfig/network-scripts/ifup, tunnels-ip6.init (removed),
+         sysconfig/network-scripts/ifup-plip, ppp/ip-up.d/logger,
+         sysconfig/network-scripts/ifdown-post,
+         sysconfig/network-scripts/ifup-sl, radvd.init (removed),
+         rc.d/init.d/network, sysconfig/network-scripts/ifup-aliases,
+         sysconfig/network-scripts/ifdhcpc-done,
+         sysconfig/network-scripts/ifdown-ppp,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifcfg-ppp0 (removed),
+         ppp/ip-down.d/logger: Synced with rc-scripts-0.0.3 from old repo.
+
+1999-06-14 20:12 +0000 [r363]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * rc-scripts.spec, rc.d/init.d/functions, rc.d/init.d/network,
+         src/Makefile, sysconfig/system, ppp/ip-up.d/logger,
+         rc.d/rc.sysinit, .cvsignore, Makefile, ppp/ip-down.d/logger:
+         Synced with rc-scripts-0.0.2 from old repo.
+
+1999-06-14 20:08 +0000 [r362]  Grzegorz Stanislawski <stangrze/at/pld-linux.org>
+
+       * sysconfig/network-scripts/ifup-routes, rc.d/init.d/shutdwn
+         (added), sysconfig/network-scripts/ifup-post,
+         sysconfig/network-scripts/ifdown,
+         sysconfig/network-scripts/chat-ppp0.callback (added),
+         sysvinitfiles (added), sysconfig/network-scripts/ifup-ppp,
+         rc-scripts.spec (added), sysconfig.txt,
+         sysconfig/network-scripts/ifup-ipx,
+         sysconfig/network-scripts/ifcfg-ppp0.tpsa (added), rc.d/rc.local,
+         rc.d/init.d/functions, sysconfig/network-scripts/ifdown-sl,
+         sysconfig/network-scripts/ifcfg-ppp0.leased1 (added), rc.d/rc,
+         inittab, lang.sh, sysconfig/network-scripts/ifcfg-ppp0.leased2
+         (added), rc.d/init.d/random,
+         sysconfig/network-scripts/chat-ppp0.leased1 (added),
+         rc.d/init.d/single, rc.d/init.d/killall, src/usernetctl.c,
+         sysconfig/network-scripts/ifup-sl, rc.d/init.d/halt,
+         sysconfig/network-scripts/ifup-aliases, src/Makefile,
+         rc.d/init.d/network, sysconfig/network-scripts/tnlcfg-icm
+         (added), sysconfig/network-scripts/ifdown-ppp, rc.d/init.d/reboot
+         (added), rc.d/rc.serial,
+         sysconfig/network-scripts/ifcfg-ppp0.callback (added),
+         sysconfig/tunnels-ip6.conf (added), Makefile,
+         sysconfig/network-ip6.conf, rc.d/init.d/functions-ip6, inputrc
+         (added), sysconfig/network-scripts/chat-ppp0.tpsa (added),
+         sysconfig/network-scripts/ifup,
+         sysconfig/network-scripts/ifup-plip, sysconfig/network-ip6,
+         rc.d/init.d/nfsfs, rc.d/rc.sysinit,
+         sysconfig/network-scripts/ifdown-post,
+         rc.d/init.d/tunnels-ip6.init (added),
+         rc.d/init.d/network-ip6.init (added): Synced with
+         rc-scripts-0.0.1 from old repo.
+
+1999-06-14 19:55 +0000 [r361]  kloczek <kloczek/at/pld-linux.org>
+
+       * sysconfig/system (added): - added initial main system
+         configuration file with: -- RUN_SULOGIN_ON_ERR=yes --
+         DEFAULT_SERVICE_RUN_NICE_LEVEL=0 -- RUN_ISAPNP=yes --
+         PANIC_REBOOT_TIME=0 -- DELAY_LOGIN=yes -- CLEAN_TMP=yes
+
+1999-06-14 19:31 +0000 [r360]  kloczek <kloczek/at/pld-linux.org>
+
+       * rc.d/init.d/functions: - added suporting colors with using tput
+         instead hardcoded term sequences.
+
+1999-06-14 19:25 +0000 [r359]  kloczek <kloczek/at/pld-linux.org>
+
+       * ppp/ip-down.d/.cvsignore (added), ppp/.cvsignore (added),
+         .cvsignore (added), sysconfig/network-scripts/.cvsignore (added),
+         sysconfig/.cvsignore (added), rc.d/.cvsignore (added),
+         src/.cvsignore (added), ppp/ip-up.d/.cvsignore (added),
+         rc.d/init.d/.cvsignore (added): - added template .cvsignore.
+
+1999-06-14 19:22 +0000 [r357]  Artur Frysiak <wiget/at/pld-linux.org>
+
+       * sysconfig/network-scripts/chat-ppp0 (added), src/usernetctl.1
+         (added), sysconfig/network-scripts/network-functions (added),
+         setsysfont (added), sysconfig.txt (added), rc.d/rc.local (added),
+         src/usleep.1 (added), sysconfig/network-scripts/ifdown-sl
+         (added), rc.d (added), src (added), rc.d/rc (added), lang.sh
+         (added), ppp/ip-up.d/logger (added), ppp (added),
+         sysconfig/network-scripts/ifup-sl (added), src/ipcalc.c (added),
+         rc.d/init.d/network (added),
+         sysconfig/network-scripts/ifdhcpc-done (added),
+         sysconfig/network-scripts/ifdown (added),
+         sysconfig/network-scripts/ifcfg-ppp0 (added), src/doexec.c
+         (added), rc.d/init.d/functions-ip6 (added),
+         sysconfig/network-scripts/ifup-ppp (added),
+         sysconfig/network-scripts/ifup-plip (added), ppp/ip-up (added),
+         sysconfig/network-ip6 (added), rc.d/init.d/nfsfs (added),
+         rc.d/init.d/random (added), rc.d/init.d/single (added),
+         src/usernetctl.c (added), rc.d/init.d/halt (added),
+         sysconfig/network-scripts/ifup-aliases (added), sysconfig
+         (added), sysconfig/network-scripts/ifup-routes (added),
+         src/usleep.c (added), rc.d/rc.serial (added),
+         sysconfig/network-scripts/ifcfg-lo (added), src/netreport.1
+         (added), sysconfig/network-scripts/ifup-post (added), ppp/ip-up.d
+         (added), ppp/ip-down.d/logger (added), adjtime (added),
+         rc.d/init.d/functions (added), sysconfig/network-scripts/ifup
+         (added), inittab (added), src/testdinit (added), ppp/ip-down.d
+         (added), rc.d/init.d/killall (added), radvd.init (added),
+         src/ipcalc.1 (added), sysconfig/network-scripts (added),
+         sysconfig/network-scripts/ifup-ipx (added), tunnels-ip6.init
+         (added), src/netreport.c (added), rc.d/rc.sysinit (added),
+         src/testd.c (added), sysconfig/network-scripts/ifdown-post
+         (added), src/doexec.1 (added), / (added), src/Makefile (added),
+         sysconfig/network-scripts/ifdown-ppp (added), rc.d/init.d
+         (added), ppp/ip-down (added), sysconfig/network-ip6.conf (added),
+         Makefile (added): Initial revision
+
diff --git a/trunk/DEVELOPMENT b/trunk/DEVELOPMENT
new file mode 100644 (file)
index 0000000..e5afa08
--- /dev/null
@@ -0,0 +1,58 @@
+          READ THIS BEFORE CHANGEING SOMETHING IN RC-SCRIPTS PACKAGE
+                   Arkadiusz Miskiewicz <misiek@pld-linux.org>
+           $Id$
+
+1)
+       consult all major changes with people on pld-rc-scripts@pld-linux.org
+mailing list. This is very important.
+
+2)
+       use 'local' for local variables in functions for example:
+
+function_ble ()
+{
+local qw er=0
+qw=$(tty)
+er=/dev/console
+echo "$qw $er"
+}
+
+3)
+       use $() instead `` for command execution for example
+
+something=$(whoami)
+instead of
+something="`whoami`"
+
+Warning! The following snippet will not work, use `` in such cases:
+There is one ')' too many there.
+
+interfaces_boot=$(
+       case $i in
+               *ifcfg-lo) continue ;;
+       esac
+)
+
+4)     don't use sed ! It only causes one more Requires.
+       Use awk ' { gsub(/pattern/,"replaced"); print $0; } ' for that.
+       Also try to replace grep calls with awk calls.
+       
+5)
+       (PL) Tlumaczac komunikaty na PL nalezy uzywac formy bezosobowej np:
+
+uruchamianie uslugi
+zamiast
+uruchamiam usluge
+
+
+
+HOW TO MAKE A RELEASE
+
+- svn up
+- ./autogen.sh
+- make distcheck
+- update configure.ac release and commit it
+- svn up && ./changelog.sh && svn ci ChangeLog
+- make dist
+- ./make-tag.sh
+- upload tarball to distfiles, update rc-scripts.spec:HEAD
diff --git a/trunk/INSTALL b/trunk/INSTALL
new file mode 100644 (file)
index 0000000..8347114
--- /dev/null
@@ -0,0 +1,186 @@
+       $Id$
+
+               !! First read README file !!
+
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/trunk/Makefile.am b/trunk/Makefile.am
new file mode 100644 (file)
index 0000000..202c26c
--- /dev/null
@@ -0,0 +1,47 @@
+#
+#      $Id$
+#
+
+SUBDIRS = src lib ppp isapnp sysconfig rc.d doc man po init
+
+sysconf_DATA = \
+       adjtime \
+       inittab \
+       modules \
+       crypttab \
+       sysctl.conf
+
+firmware_SCRIPTS = \
+       firmware-loader.sh
+
+profiledir = @sysconfdir@/profile.d
+
+profile_DATA = \
+       lang.sh \
+       lang.csh
+
+bin_SCRIPTS = run-parts
+sbin_SCRIPTS = \
+       setsysfont \
+       hwprofile \
+       service
+
+EXTRA_DIST = \
+       $(sysconf_DATA) \
+       $(profile_DATA) \
+       $(firmware_SCRIPTS) \
+       $(sbin_SCRIPTS) \
+       $(bin_SCRIPTS)
+
+install-data-hook:
+       install -d $(DESTDIR)$(localstatedir)/cache/$(PACKAGE)
+       [ -f $(DESTDIR)$(localstatedir)/cache/$(PACKAGE)/msg.cache ] || touch $(DESTDIR)$(localstatedir)/cache/$(PACKAGE)/msg.cache
+
+uninstall-hook:
+       [ -f $(DESTDIR)$(localstatedir)/cache/$(PACKAGE)/msg.cache ] && rm -f $(DESTDIR)$(localstatedir)/cache/$(PACKAGE)/msg.cache
+
+# make rpms
+rpm: $(PACKAGE).spec
+       $(MAKE) dist
+       rpmbin=`LC_ALL=C rpm -ta 2>&1 | grep -q "unknown option" && echo rpmbuild || echo rpm` ; \
+               $$rpmbin -ta --clean --rmsource $(PACKAGE)-$(VERSION).tar.gz
diff --git a/trunk/NEWS b/trunk/NEWS
new file mode 100644 (file)
index 0000000..d3ac51c
--- /dev/null
@@ -0,0 +1,24 @@
+
+       $Id$
+
+Features of rc-scripts:
+
+- National Language Support; currently only english and polish
+  supported. Translators needed.
+- LDAP support (for interfaces database). NYF.
+- Full IPv6 support (including PPP).
+
+New in 0.3.0:
+
+- fourtun (v4 over v6) tunneling support.
+- support for more dhcp clients (dhcpcd, dhclient, dhcpxd, pump)
+- Logical Volume Manager (LVM) support.
+- /etc/sysctl.conf support.
+- queueing discipline support.
+- IPv6 boot method (v4compat).
+- bridge configuration support.
+- rc.modules scipt and /etc/modules config
+- new ifcfg- config syntax
+
+Note:
+NYF - not yet finished.
diff --git a/trunk/README b/trunk/README
new file mode 100644 (file)
index 0000000..60d52ce
--- /dev/null
@@ -0,0 +1,51 @@
+       $Id$
+
+rc-scripts is a derivative of the initscripts 3.78 release by
+RedHat Software, but with bugs removed and newer features added.
+
+To use rc-scripts you need packages such as: mktemp, modutils
+(at least 2.1.121), textutils, sh-utils, mawk (at least 1.3.3;
+other awk implementations are not tested), procps, sed, e2fsprogs,
+gettext.
+
+If you want to use networking with rc-scripts you need
+compile few features such as:
+
+Networking options  --->
+        [*] Kernel/User netlink socket
+        [*]   Routing messages
+
+into your kernel and install Alexey Kuznetsov iproute2 package.
+To use IPv6 networking you should compile:
+
+Networking options  --->
+       <*/M>   The IPv6 protocol (EXPERIMENTAL)
+        [*]      IPv6: enable EUI-64 token format     
+        [*]        IPv6: disable provider based addresses 
+
+too. 
+
+Other required or suggested packages:
+
+| What?       | Package                       |
++-------------+-------------------------------+
+  IPX          ncfps
+  fourtun      fourtun and kernel module
+  bridge       bridge-utils
+  wireless     wireless-tools
+  IrDA         irda-utils
+  serial/ppp   ppp, dip, wvdial
+  serial/slip  slattach
+  PPPoE                pppd + rp-pppoe (plugin or userspace program)
+  
+Also you should know that format of interface configuration
+files is totally different from these used in RedHat/Mandrake
+initscripts and even from stable rc-scripts branch.
+
+If you have some bug reports or suggestions please send email
+to rc-scripts maintainers at <pld-rc-scripts@pld-linux.org> or
+use our Bug Tracking System ( http://bugs.pld-linux.org/ ).
+
+-- 
+PLD Linux Distribution rc-scripts Team
+
diff --git a/trunk/TODO b/trunk/TODO
new file mode 100644 (file)
index 0000000..67f64c9
--- /dev/null
@@ -0,0 +1,37 @@
+$Id$
+
+Important:
+- don't set any flags automatically; always follow user
+  suggestion (multicast, arp)
+- merge baggins changes in atm-rc (added support for RFC1483/2684 Bridged
+  protocol)
+- killproc() sucks and has no consistency, error reporting
+  you'll never know which side of PROCNAME you should add the --waitforname or -SIGNAL args
+  because if you put -SIGNAL at wrong side of PROGNAME it will enter infinitive loop:
+    killproc -TERM --waitforname slapd --waitfortime 300 slapd
+  if you put --waitforname at wrong side, it will just ignore them:
+    killproc slapd -TERM --waitforname slapd --waitfortime 300
+  while correct would be:
+    killproc --waitforname slapd --waitfortime 300 slapd -TERM
+- switch to use __umount_*loop instead of own umount loop when stopping system
+- rc-scripts won't work if /dev/console is invalid (for example I made typo when configuring serial
+  console, console=ttys1,... instead of console=ttyS1) - rc.d/rc uses /dev/console a lot
+
+Other:
+- maybe merge ATM rc scripts
+
+We are waiting for suggestions.
+
+upstart:
++upstart_controlled --except reload
++
++# return true if service is considered "up"
++# with upstart, upstart is consulted
++# otherwise lockfile in subsys must exist
++is_service_up() {
++      use_upstart && is_upstart_running "$1" || [ -f /var/lock/subsys/"$1" ]
++}
++
+
+from nscd.init
+
diff --git a/trunk/acinclude.m4 b/trunk/acinclude.m4
new file mode 100644 (file)
index 0000000..83d9a8d
--- /dev/null
@@ -0,0 +1,68 @@
+dnl DPKG_CACHED_TRY_COMPILE(<description>,<cachevar>,<include>,<program>,<ifyes>,<ifno>)
+AC_DEFUN([DPKG_CACHED_TRY_COMPILE],[
+ AC_MSG_CHECKING($1)
+ AC_CACHE_VAL($2,[
+  AC_TRY_COMPILE([$3],[$4],[$2=yes],[$2=no])
+ ])
+ if test "x$$2" = xyes; then
+  true
+  $5
+ else
+  true
+  $6
+ fi
+])
+
+dnl DPKG_C_GCC_ATTRIBUTE(<short-label>,<cachevar>,<func-params>,<attribute>,<HAVE>,<desc>,[<true-cmds>],[<false-cmds>])
+AC_DEFUN([DPKG_C_GCC_ATTRIBUTE],[
+  DPKG_CACHED_TRY_COMPILE(__attribute__(($1)),dpkg_cv_c_attribute_$2,,
+   [extern int testfunction($3) __attribute__(($4))],
+   AC_MSG_RESULT(yes)
+   AC_DEFINE(HAVE_GNUC25_$5,,$6)
+   $7,
+   AC_MSG_RESULT(no)
+   $8)
+])
+
+dnl DPKG_C_GCC_TRY_WARNS(<warnings>,<cachevar>)
+AC_DEFUN([DPKG_C_GCC_TRY_WARNS],[
+ AC_MSG_CHECKING([GCC warning flag(s) $1])
+ if test "${GCC-no}" = yes
+ then
+  AC_CACHE_VAL($2,[
+    if $CC $1 -c /dev/null 2>/dev/null; then
+      $2=yes
+    else
+      $2=
+    fi
+  ])
+  if test "x$$2" = xyes; then
+   CWARNS="${CWARNS} $1"
+   AC_MSG_RESULT(ok)
+  else
+   AC_MSG_RESULT(no)
+  fi
+ else
+  AC_MSG_RESULT(no, not using GCC)
+ fi
+])
+dnl DPKG_CACHED_TRY_COMPILE(<description>,<cachevar>,<include>,<program>,<ifyes>,<ifno>)
+
+
+dnl Check if a #define is present in an include file
+AC_DEFUN([DPKG_CHECK_DEFINE],
+  [AC_CACHE_CHECK(if $1 is defined in $2,
+     ac_cv_define_$1,
+     [AC_TRY_COMPILE([
+#include <$2>
+        ],[
+int i = $1;
+        ],
+        ac_cv_define_$1=yes,
+        ac_cv_define_$1=no)
+     ])
+   if test "$ac_cv_define_$1" = yes ; then
+    AC_DEFINE(HAVE_$1,,[define if $1 is defined])
+  fi
+])
+
diff --git a/trunk/adjtime b/trunk/adjtime
new file mode 100644 (file)
index 0000000..3127bd0
--- /dev/null
@@ -0,0 +1,2 @@
+0.0 0 0.0
+0
diff --git a/trunk/autogen.sh b/trunk/autogen.sh
new file mode 100755 (executable)
index 0000000..e644114
--- /dev/null
@@ -0,0 +1,148 @@
+#!/bin/sh
+# $Id$
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="PLD Linux Distribution rc-scripts"
+
+if [ "$1" = "changelog" ]; then
+       ./changelog.sh
+    exit 0
+fi
+
+cd "$srcdir"
+
+    
+(test -f $srcdir/configure.ac \
+  && test -d $srcdir/src) || {
+    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+    echo " top-level rc-scripts directory"
+
+    exit 1
+}
+
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+  echo
+  echo "**Error**: You must have \`autoconf' installed to compile $PKG_NAME."
+  echo "Download the appropriate package for your distribution,"
+  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+  DIE=1
+}
+
+(grep "^AM_PROG_LIBTOOL" $srcdir/configure.ac >/dev/null) && {
+  (libtoolize --version) < /dev/null > /dev/null 2>&1 || {
+    echo
+    echo "**Error**: You must have \`libtool' installed to compile $PKG_NAME."
+    echo "Get ftp://alpha.gnu.org/gnu/libtool/libtool-1.4b.tar.gz"
+    echo "(or a newer version if it is available)"
+    DIE=1
+  }
+}
+
+grep "^AM_GNU_GETTEXT" $srcdir/configure.ac >/dev/null && {
+  grep "sed.*POTFILES" $srcdir/configure.ac >/dev/null || \
+  (gettextize --version) < /dev/null > /dev/null 2>&1 || {
+    echo
+    echo "**Error**: You must have \`gettext' installed to compile $PKG_NAME."
+    echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.38.tar.gz"
+    echo "(or a newer version if it is available)"
+    DIE=1
+  }
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+  echo
+  echo "**Error**: You must have \`automake' installed to compile $PKG_NAME."
+  echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4-p4.tar.gz"
+  echo "(or a newer version if it is available)"
+  DIE=1
+  NO_AUTOMAKE=yes
+}
+
+
+# if no automake, don't bother testing for aclocal
+test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+  echo
+  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
+  echo "installed doesn't appear recent enough."
+  echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4-p4.tar.gz"
+  echo "(or a newer version if it is available)"
+  DIE=1
+}
+
+if test "$DIE" -eq 1; then
+  exit 1
+fi
+
+if test -z "$*"; then
+  echo "**Warning**: I am going to run \`configure' with no arguments."
+  echo "If you wish to pass any to it, please specify them on the"
+  echo \`$0\'" command line."
+  echo
+fi
+
+case $CC in
+xlc )
+  am_opt=--include-deps;;
+esac
+
+for coin in `find $srcdir -name configure.ac -print`
+do 
+  dr=`dirname $coin`
+  if test -f $dr/NO-AUTO-GEN; then
+    echo skipping $dr -- flagged as no auto-gen
+  else
+    echo processing $dr
+    macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
+    ( cd $dr
+      aclocalinclude="$ACLOCAL_FLAGS"
+      for k in $macrodirs; do
+       if test -d $k; then
+          aclocalinclude="$aclocalinclude -I $k"
+       ##else 
+       ##  echo "**Warning**: No such directory \`$k'.  Ignored."
+        fi
+      done
+      if grep "^AM_GNU_GETTEXT" configure.ac >/dev/null; then
+       if grep "sed.*POTFILES" configure.ac >/dev/null; then
+         : do nothing -- we still have an old unmodified configure.ac
+       else
+         echo "Creating $dr/aclocal.m4 ..."
+         test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+         echo "Running gettextize...  Ignore non-fatal messages."
+         echo "no" | gettextize --force --copy
+         echo "Making $dr/aclocal.m4 writable ..."
+         test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+        fi
+      fi
+      if grep "^AM_PROG_LIBTOOL" configure.ac >/dev/null; then
+       echo "Running libtoolize..."
+       libtoolize --force --copy
+      fi
+      echo "Running aclocal $aclocalinclude ..."
+      aclocal $aclocalinclude
+      if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then
+       echo "Running autoheader..."
+       autoheader
+      fi
+      echo "Running autoconf ..."
+      autoconf
+      echo "Running automake --gnu $am_opt ..."
+      automake --add-missing --gnu $am_opt
+    )
+  fi
+done
+
+conf_flags="" #--enable-maintainer-mode --enable-compile-warnings --enable-iso-c
+
+if test x$NOCONFIGURE = x; then
+  echo Running $srcdir/configure $conf_flags "$@" ...
+  $srcdir/configure $conf_flags "$@" \
+  && echo Now type \`make\' to compile $PKG_NAME
+else
+  echo Skipping configure process.
+fi
diff --git a/trunk/changelog.sh b/trunk/changelog.sh
new file mode 100755 (executable)
index 0000000..2d19930
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+# $Id$
+# Run this to generate ChangeLog.
+
+if [ ! -x /usr/bin/svn2log ]; then
+       echo >&2 'Need svn2log program!'
+       exit 1
+fi
+
+# make sure '.' entry is up to date, or the log will be outdated too
+svn up . >/dev/null
+
+# create users for svn2log format
+tmp=$(mktemp -q svn2logXXXXXX 2>/dev/null || echo ${TMPDIR:-/tmp}/svn2log.tmp)
+> $tmp
+
+[ -z "$users" -a -f ../CVSROOT/users ] && users=../CVSROOT/users
+[ -z "$users" -a -f ~/.CVS-PLD/CVSROOT/users ] && users=~/.CVS-PLD/CVSROOT/users
+if [ -z "$users" ]; then
+       echo >&2 "Can't find users file!"
+       echo >&2 'Run in parent dir to fetch one:'
+       echo >&2 '$ cvs -d :pserver:cvs@cvs.pld-linux.org:/cvsroot co CVSROOT/users'
+       exit 1
+fi
+
+# be sure users file is up to date
+(
+       cd $(dirname "$users")
+       cvs up users
+)
+
+awk -F":" ' { login=$1; if ($3 != "") { name=$3 } else { name=$1 }; email=$2; printf "%s\t%s <%s@pld-linux.org>\n", login, name, login } ' $users > $tmp
+
+branch=$(svn info | awk '/URL:/{print $NF}' | sed -e 's,^.*svn.pld-linux.org/svn,,')
+
+if grep -q vim:encoding=utf-8 $users; then
+       charset=UTF-8
+else
+       charset=ISO8859-2
+fi
+LC_ALL=C svn log -v --xml | LC_ALL=C svn2log --users-charset=$charset --domain "pld-linux.org" -p $branch -u $tmp --exclude ChangeLog -o ChangeLog
+rm -f $tmp
+
+# obfuscate emails <user@domain> and (user@domain)
+sed -i -e 's,\([<(].*\)@\(.*[)>]\),\1/at/\2,g' ChangeLog
diff --git a/trunk/configure.ac b/trunk/configure.ac
new file mode 100644 (file)
index 0000000..44dd31f
--- /dev/null
@@ -0,0 +1,230 @@
+dnl $Id$
+
+AC_INIT([rc-scripts], [0.4.5.5], [pld-rc-scripts@lists.pld-linux.org], [rc-scripts])
+AM_INIT_AUTOMAKE
+
+ALL_LINGUAS="pl de"
+
+echo -n "Finding shell scripts"
+SHSCRIPTS=""
+for shfile in $(find ${srcdir}/rc.d ${srcdir}/sysconfig ${srcdir}/lib ! -path "*/\.*/*" ! -name "*~" -type f); do
+    echo -n "."
+    if (LC_ALL=C file ${shfile} | grep -q 'shell script'); then
+       SHSCRIPTS="${SHSCRIPTS} ${shfile}"
+    fi
+done
+echo "done"
+
+dnl Checks for programs.
+AC_PROG_CC
+AC_ISC_POSIX
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+
+pppdir='${sysconfdir}/ppp'
+sysconfigdir='${sysconfdir}/sysconfig'
+updir='${sysconfigdir}/interfaces/up.d'
+downdir='${sysconfigdir}/interfaces/down.d'
+networkscriptsdir='${exec_prefix}/lib/${PACKAGE}'
+rcdir='${sysconfdir}/rc.d'
+initdir='${sysconfdir}/init'
+firmwaredir='${exec_prefix}/lib/firmware'
+docdir="${prefix}/doc/${PACKAGE}-${VERSION}"
+
+dnl i18n support
+AC_PATH_PROGS(MSGMERGE, msgmerge)
+AC_PATH_PROGS(GMSGFMT, gmsgfmt msgfmt)
+
+if test -z "$MSGMERGE" || test -z "$GMSGFMT"; then
+       AC_MSG_ERROR(install gettext-devel to be able to regenerate translations)
+fi
+
+CATALOGS=
+POTFILES=
+for lang in $ALL_LINGUAS; do
+        CATALOGS="$CATALOGS $lang.gmo"
+        POTFILES="$POTFILES $lang.po"
+done
+
+POTSRC=
+for src in $SHSCRIPTS; do
+        POTSRC="$POTSRC \$(top_srcdir)/$src"
+done
+AC_ARG_WITH(localedir,
+        [  --with-localedir=PATH      specify where the locale stuff should go ])
+
+if test "x$LOCALEDIR" = "x"; then
+        if test "x$with_localedir" != "x"; then
+                LOCALEDIR=$with_localedir
+        else
+                LOCALEDIR='$(prefix)/share/locale'
+        fi
+fi
+
+localedir=$LOCALEDIR
+gnulocaledir=$LOCALEDIR
+
+if test "`eval echo $sysconfdir`" = "NONE/etc"; then
+        defaultdir="/usr/local/etc"
+else
+        defaultdir="`eval echo $sysconfdir`"
+fi
+
+AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+if test "$PKG_CONFIG" = no; then
+       AC_MSG_ERROR(You need to install pkgconfig package)
+fi
+
+GLIBDIR=none
+AC_MSG_CHECKING([glib2])
+GLIB_LIBS="-Wl,-static `$PKG_CONFIG --libs --static glib-2.0` -Wl,-Bdynamic"
+GLIB_CFLAGS="`$PKG_CONFIG --cflags-only-I glib-2.0`"
+if test "x$GLIB_LIBS" = "x"; then
+       AC_MSG_ERROR(no)
+fi
+AC_MSG_RESULT(yes)
+
+DPKG_C_GCC_ATTRIBUTE([,,],supported,[int x],[,,],ATTRIB,[Define if function attributes a la GCC 2.5 and higher are available.],
+  DPKG_C_GCC_ATTRIBUTE(noreturn,noreturn,[int x],noreturn,NORETURN,[Define if nonreturning functions a la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(const,const,[int x],const,CONST,[Define if constant functions a la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(unused,unused,[int x],unused,UNUSED,[Define if unused variables la GCC 2.5 and higher are available.])
+  DPKG_C_GCC_ATTRIBUTE(format...,format,[char *y, ...],[format(printf,1,2)],PRINTFFORMAT,[Define if printf-format argument lists a la GCC are available.]))
+
+AC_CHECK_TYPE(ptrdiff_t,int)
+AC_CHECK_HEADERS([stddef.h sys/capability.h])
+
+dnl Output
+AC_SUBST(BASHSCRIPTS)
+AC_SUBST(CATALOGS)
+AC_SUBST(POTFILES)
+AC_SUBST(POTSRC)
+AC_SUBST(localedir)
+AC_SUBST(gnulocaledir)
+
+AC_SUBST(pppdir)
+AC_SUBST(networkscriptsdir)
+AC_SUBST(sysconfigdir)
+AC_SUBST(updir)
+AC_SUBST(downdir)
+AC_SUBST(rcdir)
+AC_SUBST(initdir)
+AC_SUBST(docdir)
+AC_SUBST(firmwaredir)
+AC_SUBST(GLIB_LIBS)
+AC_SUBST(GLIB_CFLAGS)
+
+AH_BOTTOM([
+#ifdef HAVE_STDDEF_H
+#include <stddef.h>
+#endif
+
+/* Use the definitions: */
+
+/* The maximum length of a #! interpreter displayed by dpkg-deb. */
+#ifdef PATH_MAX
+#define INTERPRETER_MAX PATH_MAX
+#else
+#define INTERPRETER_MAX 1024
+#endif
+
+/* GNU C attributes. */
+#ifndef FUNCATTR
+#ifdef HAVE_GNUC25_ATTRIB
+#define FUNCATTR(x) __attribute__(x)
+#else
+#define FUNCATTR(x)
+#endif
+#endif
+
+/* GNU C printf formats, or null. */
+#ifndef ATTRPRINTF
+#ifdef HAVE_GNUC25_PRINTFFORMAT
+#define ATTRPRINTF(si,tc) format(printf,si,tc)
+#else
+#define ATTRPRINTF(si,tc)
+#endif
+#endif
+#ifndef PRINTFFORMAT
+#define PRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc)))
+#endif
+
+/* GNU C nonreturning functions, or null. */
+#ifndef ATTRNORETURN
+#ifdef HAVE_GNUC25_NORETURN
+#define ATTRNORETURN noreturn
+#else /* ! HAVE_GNUC25_NORETURN */
+#define ATTRNORETURN
+#endif /* HAVE_GNUC25_NORETURN */
+#endif /* ATTRNORETURN */
+
+#ifndef NONRETURNING
+#define NONRETURNING FUNCATTR((ATTRNORETURN))
+#endif /* NONRETURNING */
+
+/* Combination of both the above. */
+#ifndef NONRETURNPRINTFFORMAT
+#define NONRETURNPRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc),ATTRNORETURN))
+#endif
+
+/* GNU C constant functions, or null. */
+#ifndef ATTRCONST
+#ifdef HAVE_GNUC25_CONST
+#define ATTRCONST const
+#else
+#define ATTRCONST
+#endif
+#endif
+#ifndef CONSTANT
+#define CONSTANT FUNCATTR((ATTRCONST))
+#endif
+
+/* GNU C unused functions, or null. */
+#ifndef ATTRUNUSED
+#ifdef HAVE_GNUC25_UNUSED
+#define ATTRUNUSED
+#else
+#define ATTRUNUSED
+#endif
+#endif
+#ifndef UNUSED
+#define UNUSED FUNCATTR((ATTRUNUSED))
+#endif
+])
+
+AC_CONFIG_HEADERS(src/config.h)
+AC_CONFIG_FILES([Makefile \
+       src/Makefile \
+       lib/Makefile \
+       doc/Makefile \
+       man/Makefile \
+       man/de/Makefile \
+       man/es/Makefile \
+       man/fr/Makefile \
+       man/ja/Makefile \
+       man/ru/Makefile \
+       man/sv/Makefile \
+       ppp/Makefile \
+       isapnp/Makefile \
+       sysconfig/Makefile \
+       sysconfig/cpusets/Makefile \
+       sysconfig/hwprofiles/Makefile \
+       sysconfig/interfaces/Makefile \
+       sysconfig/interfaces/data/Makefile \
+       sysconfig/interfaces/up.d/Makefile \
+       sysconfig/interfaces/up.d/all/Makefile \
+       sysconfig/interfaces/up.d/ip/Makefile \
+       sysconfig/interfaces/up.d/ipx/Makefile \
+       sysconfig/interfaces/up.d/ppp/Makefile \
+       sysconfig/interfaces/up.d/tnl/Makefile \
+       sysconfig/interfaces/down.d/Makefile \
+       sysconfig/interfaces/down.d/all/Makefile \
+       sysconfig/interfaces/down.d/ip/Makefile \
+       sysconfig/interfaces/down.d/ipx/Makefile \
+       sysconfig/interfaces/down.d/ppp/Makefile \
+       sysconfig/interfaces/down.d/tnl/Makefile \
+       rc.d/Makefile rc.d/init.d/Makefile \
+       po/Makefile \
+       init/Makefile \
+       ])
+AC_OUTPUT
diff --git a/trunk/crypttab b/trunk/crypttab
new file mode 100644 (file)
index 0000000..536529a
--- /dev/null
@@ -0,0 +1,7 @@
+# See crypttab(5) for this file format.
+#
+# NOTE: No options can be specified for LUKS encrypted partitions.
+
+# NAME DEVICE  PASSWORD        OPTIONS
+#hda1  /dev/hda1       none    verify
+#hda1  /dev/hda1
diff --git a/trunk/doc/Makefile.am b/trunk/doc/Makefile.am
new file mode 100644 (file)
index 0000000..25a721c
--- /dev/null
@@ -0,0 +1,13 @@
+@SET_MAKE@
+
+docdir = @docdir@
+
+doc_DATA =
+noinst_DATA = \
+       template.init \
+       net-scripts.txt \
+       sysconfig.txt \
+       sysvinitfiles \
+       upstart.txt
+
+EXTRA_DIST = $(doc_DATA) $(noinst_DATA)
diff --git a/trunk/doc/make-html b/trunk/doc/make-html
new file mode 100755 (executable)
index 0000000..8cb55c3
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+jade -t sgml -d polski.dsl rc-scripts.docb
+#jade -t sgml -d polski.dsl test-ogonki.docb
+rst2html upstart.txt upstart.html
diff --git a/trunk/doc/net-scripts.txt b/trunk/doc/net-scripts.txt
new file mode 100644 (file)
index 0000000..b0cc7c5
--- /dev/null
@@ -0,0 +1,208 @@
+$Id$
+
+rc-scripts files:
+========================================
+
+/sbin/ifup:
+/sbin/ifdown:
+
+  These are the only two scripts "in" this directory that should
+  be called directly; these two scripts call all the other
+  scripts as needed.
+
+  These scripts take one argument normally: the name of the device
+  (e.g. eth0).  They are called with a second argument of "boot"
+  during the boot sequence so that devices that are not meant to
+  be brought up on boot (ONBOOT=no, see below) can be ignored at
+  that time.
+
+/sbin/network-scripts/network-functions:
+
+  Not really a public file.  Contains functions which the scripts use
+  for bringing interfaces up and down.  In particular, it contains
+  most of the code for handling alternative interface configurations
+  and interface change notification through netreport.
+
+/lib/rc-scripts/ifup-post
+
+  Called when any network device EXCEPT a SLIP (with dip) device comes
+  up.  Calls /lib/rc-scripts/ifup-routes to
+  bring up static routes that depend on that device.  Calls
+  /sbin/network-scripts/ifup-aliases to bring up
+  aliases for that device.  Sets the hostname if it is not
+  already set and a hostname can be found for the IP for that
+  device.  Sends SIGIO to any programs that have requested
+  notification of network events.
+
+  Could be extended to fix up nameservice configuration, call
+  arbitrary scripts, etc, as needed.
+
+/lib/rc-scripts/ifup-routes
+
+  Set up static routes for a device.
+
+/lib/rc-scripts/ifup-aliases
+
+  Bring up aliases for a device.
+
+/lib/rc-scripts/ifdhcpc-done
+
+  Called by dhcpcd once dhcp configuration is complete; sets
+  up /etc/resolv.conf from the version dhcpcd dropped in
+  /etc/dhcpc/resolv.conf
+  
+Files in /etc/sysconfig/interfaces/
+========================================
+
+/etc/sysconfig/interfaces/ifcfg-<interface-name> and
+/etc/sysconfig/interfaces/ifcfg-<interface-name>-<clone-name>:
+
+  The first defines an interface, and the second contains
+  only the parts of the definition that are different in a
+  "clone" (or alternative) interface.  For example, the
+  network numbers might be different, but everything else
+  might be the same, so only the network numbers would be
+  in the clone file, but all the device information would
+  be in the base ifcfg file.
+
+  The items that can be defined in an ifcfg file depend on the
+  interface type.  The really obvious ones I'm not going to
+  bother to define; you can figure out what "IPADDR" is, I
+  think...  :-)
+
+  Base items:
+    DEVICE=<name of physical device (except dynamically-allocated PPP
+      devices where it is the "logical name")
+    IPADDR=            IP_AOPTS=       IP_ROPTS=       IP_LABEL=
+    IPADDR1=           IP_AOPTS1=      IP_ROPTS1=      IP_LABEL1=
+    IP_ADDRx=          IP_AOPTSx=      IP_ROPTSx=      IP_LABELx=
+    IP4_PRIM_IF=       IP4_SRC_IF=
+    IP6_PRIM_IF=
+    GATEWAY=
+    ONBOOT=yes|no
+    USERCTL=yes|no
+    BOOTPROTO=none|bootp|dhcp|pump|zeroconf|auto
+    ETHTOOL_OPTS=
+
+  If BOOTPROTO is not "none", then the only other item that
+  must be set is the DEVICE item; all the rest will be determined
+  by the boot protocol.  No "dummy" entries need to be created.
+
+  Ethernet-only items:
+    {IPXNETNUM,IPXPRIMARY,IPXACTIVE}_{802_2,802_3,ETHERII,SNAP}
+    configuration matrix for IPX.  Only used if IPX is active.
+    Managed from /lib/rc-scripts/ifup-ipx
+
+  Deprecated, but supported:
+    ETHTOOL_OPTS=...
+      Any device-specific options supported by ethtool. For example,
+      if you wanted to force 100Mb full duplex:
+        ETHTOOL_OPTS="speed 100 duplex full autoneg off"
+      Note that changing speed or duplex settings almost always
+      requires disabling autonegotiation with 'autoneg off'.
+
+      Long term, this should be done by sysadmin-written udev rules.
+
+  PPP/SLIP items:
+    PERSIST=yes|no
+    MODEMPORT=<device, say /dev/modem>
+    LINESPEED=<speed, say 115200>
+    DEFABORT=yes|no (tells netcfg whether or not to put default
+      abort strings in when creating/editing the chat script and/or
+      dip script for this interface)
+  PPP-specific items
+    DEFROUTE=yes|no (set this interface as default route?)
+    ESCAPECHARS=yes|no (simplified interface here doesn't let people
+      specify which characters to escape; almost everyone can use
+      asyncmap 00000000 anyway, and they can set PPPOPTIONS to
+      asyncmap foobar if they want to set options perfectly)
+    HARDFLOWCTL=yes|no (yes imples "modem crtscts" options)
+    PPPOPTIONS=<arbitrary option string; is placed last on the
+      command line, so it can override other options like asyncmap
+      that were specified differently>
+    PAPNAME=<"name $PAPNAME" on pppd command line> (note that
+      the "remotename" option is always specified as the logical
+      ppp device name, like "ppp0" (which might perhaps be the
+      physical device ppp1 if some other ppp device was brought
+      up earlier...), which makes it easy to manage pap/chap
+      files -- name/password pairs are associated with the
+      logical ppp device name so that they can be managed
+      together.
+
+      In principal, I'm not aware of anything that would keep
+      the logical PPP device names from being "worldnet" or
+      "myISP" instead of ppp0-pppN)
+    REMIP=<remote ip4 address, normally unspecified>
+    REMIP6=<remote ip6 address, normally unspecified>
+    MTU=
+    MRU=
+    DISCONNECTTIMEOUT=<number of seconds, default currently 5>
+      (time to wait before re-establishing the connection after
+      a successfully-connected session terminates before attempting
+      to establish a new connection.)
+    RETRYTIMEOUT=<number of seconds, default currently 60>
+      (time to wait before re-attempting to establish a connection
+      after a previous attempt fails.)
+    INITSCRIPT=<modem command>
+      string which initialises your modem. Usualy something like 
+      AT&F0&C1&D2
+      (PLD Linux rc-scripts specific option)
+    DATAFORCHAT=<list of variables>
+      List of variables which should be exported to chat script.
+      Used mostly for passing USERNAME and PASSWORD into it. (see below)
+      (PLD Linux rc-scripts specific option)
+    PEERDNS=yes|no
+    IPV6_PPP=yes|no
+      use IPv6 for ppp
+       IPV6_CP_USEV4=yes|no
+         use local IPv4 mapped addresses as IPv6 addresses
+       IPV6_CP_PERSISTENT=yes|no
+         use EUI-48 addresses as IPv6 addresses
+       or by default use address specified by IP6_PRIM_IF and REMIP6
+    ENABLE_6TO4=yes|no
+      configure a 6to4 tunnel, if the interface has a public
+      (non-RFC1918) IPv4 address
+    <anything>=<anything>
+      Variable name and it's value for use by chat script.
+      Note: You don't have to define variables here, if they are defined 
+      in parent process enviroment they will be used.
+      in.ex. USERNAME usualy is. 
+  
+  IPIP/GRE/SIT tunnel-specific items
+    REMOTEIP=<ip_addres>
+      address of the remote end of tunnel
+    LOCALIP=<ip_addres>
+      address of the local end of tunnel
+      
+
+
+/etc/sysconfig/interfaces/ifcfg-<interface-name>-<anything>!:
+
+  Template or backup file. This will not be interpreted
+  by net-scripts.
+
+/etc/sysconfig/interfaces/data/chat-<interface-name>:
+
+  chat script for PPP or SLIP connection intended to establish
+  the connection.  For SLIP devices, a DIP script is written
+  from the chat script; for PPP devices, the chat script is used
+  directly.
+  In PLD Linux version of rc-scripts, this file is parsed by shell
+  (actually by grep in firstplace to get rid of comments) before it
+  is passed to chat.
+  This allows you to substitute shell variables with their values 
+  defined in <interface name> or more generally in current env.
+  If You wonder about purbose, imagine one chat-script for all links 
+  at ISP's border router or computer in home where all users have own IPS's
+  accounts and want to pay only for themselfes.
+  Unfortunetly this parsing have impact on chat script syntax.
+  All characters that have special meaning for shell have to be escaped.
+  
+  
+/etc/sysconfig/interfaces/data/dip-<interface-name>
+
+  A write-only script created from the chat script by netcfg.
+  Do not modify this.  In the future, this file may disappear
+  by default and created on-the-fly from the chat script if
+  it does not exist.
diff --git a/trunk/doc/polski.dsl b/trunk/doc/polski.dsl
new file mode 100644 (file)
index 0000000..2429d24
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
+<!ENTITY dbstyle SYSTEM "/usr/share/sgml/dsssl/docbook/html/docbook.dsl" CDATA DSSSL>
+]>
+
+<style-sheet>
+
+   <style-specification use="docbook">
+      <style-specification-body>
+
+       ;;(define nochunks #t)
+        (define %no-make-index #t)
+        (define %generate-book-titlepage% #t)
+        (define %generate-book-toc% #t)
+        (define %generate-book-toc-on-titlepage% #f)
+        (define %generate-reference-toc% #f)
+        (define %generate-reference-toc-on-titlepage% #f)
+        (define %generate-reference-titlepage% #f)
+        (define %generate-chapter-toc% #f)
+        (define %generate-partintro-on-titlepage% #f)
+        ;;(define %generate--toc% #t)
+        (define %use-id-as-filename% #t)
+        (define %chapter-autolabel% #f)
+        (define %section-autolabel% #f)
+        (define %html-ext% ".html")
+        (define %gentext-nav-use-ff% #t)
+        (define %gentext-nav-use-tables% #t)
+        (define %force-chapter-toc% #f)
+        (define %gentext-nav-tblwidth% "100%")
+        (define %shade-verbatim% #t)
+        (define %annotate-toc% #t)
+        (define %html-pubid% "-//W3C//DTD HTML 4.0 Transitional//EN")
+        ;;(define %link-mailto-url% "mailto:ziembor@faq-bot.ziembor.waw.pl")
+        (define %stylesheet-type% "text/css")
+        (define %stylesheet% "pcwfaq.css")
+        (define %body-attr% (list (list "BGCOLOR" "#FFFFFF") (list "TEXT" "#000000")))
+        ;;(define %titlepage-in-info-order% #t)
+        (define %html-header-tags% '(("META" ("NAME" "description") ("CONTENT" "taki sobie
+        teścik"))
+        ("META" ("HTTP-EQUIV" "content-type") ("content" "text/html; charset=UTF-8"))))
+        (define %spacing-paras% #f)
+
+      </style-specification-body>
+   </style-specification>
+
+   <external-specification id="docbook" document="dbstyle">
+</style-sheet>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:nil
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+sgml-declaration:nil
+sgml-validate-command:"nsgmls -s %s %s"
+End:
+-->
diff --git a/trunk/doc/rc-scripts.docb b/trunk/doc/rc-scripts.docb
new file mode 100644 (file)
index 0000000..6a510bd
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE BOOK PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
+<!--ArborText, Inc., 1988-1995, v.4001-->
+<!--NOTATION drw SYSTEM "DRW"-->
+<!ENTITY sysconfig SYSTEM "sysconfig.docb">
+<!ENTITY netscripts SYSTEM "netscripts.docb">
+]>
+
+<!-- To jest przykładowy dokument główny włączający sysconfig.docb -->
+
+<book lang="pl">
+   <bookinfo>
+      <date>1998.10.19</date>
+      <title>tytuł</title>
+      <subtitle>podtytuł</subtitle>
+   </bookinfo>
+
+   <reference id=pld-pakiety>
+      <title>Opisy pakietów</title>
+      <partintro>
+        <para>Opisy pakietów specyficznych dla PLD</para>
+      </partintro>
+      
+
+      &sysconfig;
+     <!-- &netscripts;-->
+</reference>     
+</book>
+
+<!--To dla emacsa: -->
+<!--
+Local Variables:
+mode: sgml
+End:
+-->
+                     
diff --git a/trunk/doc/sysconfig.docb b/trunk/doc/sysconfig.docb
new file mode 100644 (file)
index 0000000..4906555
--- /dev/null
@@ -0,0 +1,438 @@
+<refentry>
+  <refnamediv>
+    <refname>/etc/sysconfig/</refname>
+    <refpurpose>Basic system settings</refpurpose>
+  </refnamediv>
+  <refsect1>
+    <title><filename moreinfo="None">/etc/sysconfig/keyboard</filename></title>
+    <variablelist>
+      <varlistentry>
+       <term>KEYTABLE=&lt;keytable file&gt;</term>
+       <listitem><para>for example:
+           KEYTABLE="/usr/lib/kbd/keytables/us.map"</para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename moreinfo="None">/etc/sysconfig/mouse</filename></title>
+    <variablelist>
+      <varlistentry>
+       <term>MOUSETYPE=microsoft|mouseman|mousesystems|ps/2|msbm|logibm|atibm|
+         logitech|mmseries|mmhittab</term>
+       <listitem><para> </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>XEMU3=yes|no</term>
+       <listitem><para>(emulate three buttons with two buttons whenever
+           necessary, most notably in X)</para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>In addition, /dev/mouse points to the mouse device.</para>
+  </refsect1>
+  <refsect1>
+    <title><filename moreinfo="None">/etc/sysconfig/network</filename></title>
+    <variablelist>
+      <varlistentry><term>NETWORKING=yes|no</term>
+       <listitem><para>IPV6NETWORKING=yes|no</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry><term>HOSTNAME=$&lt;whatever hostname you want&gt;</term>
+       <listitem><note><para> for compatibility with some old software people might
+             install (like trn), the /etc/HOSTNAME file should contain the
+             same value as here.</para></note>
+       </listitem>
+      </varlistentry>
+      <varlistentry><term>IGNORE_ICMP_BCAST_IPV4=yes|no</term>
+       <listitem><para>(Please note that if you accept ICMP echo
+           requests with a broadcast/multicast destination address your network
+           may be used as an exploder for denial of service packet flooding attacks
+           to other hosts.</para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>SPOOFING_IPV4=yes|no</term>
+       <listitem>
+         <para>(anti spoofing protection)</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>GATEWAY=&lt;gateway IP&gt;</term>
+       <listitem>
+    <para>
+      </para>
+    
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>GATEWAYDEV=&lt;gateway device&gt;</term>
+       <listitem>
+         <para>
+           (e.g. eth0)</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>NISDOMAIN=&lt;nis domain name></term>
+       <listitem>
+         <para></para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>IPX=yes|no</term>
+       <listitem>
+    <para>
+      </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>IPXAUTOPRIMARY=on|off</term>
+       <listitem>
+    <para>
+       (note, that MUST be on|off, not yes|no)</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>IPXAUTOFRAME=on|off</term>
+       <listitem>
+    <para>
+       (again, not yes|no)</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>IPXINTERNALNETNUM=&lt;netnum></term>
+       <listitem>
+    <para>
+      </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>IPXINTERNALNODENUM=&lt;nodenum></term>
+       <listitem>
+    <para></para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>All the IPX stuff is optional, and should default to off.</para>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/static-nat</filename></title>
+    <para>
+      Configuration file for static Network Address Translation (NAT).
+      Contains lines of the form:</para>
+    <para>
+<literal>&lt;address> via &lt;addressreal></literal></para>
+    <para>
+      NAT will translate address &lt;address> to &lt;addressreal>.</para>
+  </refsect1>
+  <refsect1>
+    <title><filename>/etc/sysconfig/static-routes</filename></title>
+    <para>Contains lines of the form:</para>
+    <para><literal>&lt;device&gt; to [type] &lt;network&gt;/&lt;prefix&gt; via &lt;gateway&gt;</literal></para>
+    <para>&lt;device&gt; may be a device name to have the route brought up and
+      down with the device, or "none" if the route is not to be bound to any specific
+      device. [type] is optional. RH style isn't supported !</para>
+    <para>Also you can set few options after "&lt;gateway>":</para>
+      <simplelist columns=1>
+       <member>tos &lt;tos></member>
+       <member>metric &lt;number></member>
+       <member>table &lt;table></member>
+       <member>src &lt;address></member>
+       <member>realm &lt;realmid></member>
+       <member>mtu &lt;mtu> or mtu lock &lt;mtu></member>
+       <member>window &lt;number></member>
+       <member>rtt &lt;number></member>
+       <member>nexthop &lt;nexthop></member>
+       <member>scope &lt;scope></member>
+       <member>protocol &lt;rtproto></member>
+       <member>onlink</member>
+       <member>equalize</member>
+      </simplelist>
+
+    <para>For more informations see iproute2 documentation .</para>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/static-routes6</filename></title>
+    <para>Same as <filename>/etc/sysconfig/static-routes</filename> but
+      for IPv6.</para>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/routed</filename></title>
+    <simplelist>
+      <member>SILENT=yes|no</member>
+      <member>EXPORT_GATEWAY=yes|no</member>
+    </simplelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/pcmcia</filename></title>
+    <simplelist>
+      <member>PCMCIA=yes|no</member>
+      <member>PCIC=i82365|tcic</member>
+      <member>PCIC_OPTS=&lt;socket driver (i82365 or tcic) timing parameters></member>
+      <member>CORE_OPTS=&lt;pcmcia_core options></member>
+      <member>CARDMGR_OPTS=&lt;cardmgr options></member>
+    </simplelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/amd</filename></title>
+    <variablelist>
+      <varlistentry><term>ADIR=/.automount</term>
+       <listitem><para>(normally never changed)</para></listitem>
+      </varlistentry>
+      <varlistentry><term>MOUNTPTS='/net /etc/amd.conf'</term>
+       <listitem><para>(standard automount stuff)</para></listitem>
+      </varlistentry>
+      <varlistentry><term>AMDOPTS=</term>
+       <listitem><para>(extra options for AMD)</para></listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename moreinfo="None">/etc/sysconfig/tape</filename></title>
+    <variablelist>
+      <varlistentry><term>DEV=/dev/nst0</term>
+       <listitem>
+         <para>
+           Tape device.  Use the non-rewinding one for these scripts.</para>
+         <para>
+           For SCSI tapes this is /dev/nst#, where # is the number of the
+           tape drive you want to use.  If you only have one then use
+           nst0.</para>
+         <para> 
+           For IDE tapes you use /dev/ht#, where # is the number of the tape
+           drive you want to use (usually ht0).</para>
+         <para>
+           For floppy tape drives use /dev/ftape.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry><term>ADMIN=root</term>
+       <listitem><para>Person to mail to if the backup fails for any reason</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>SLEEP=5</term>
+       <listitem>
+<para>
+    Time to sleep between tape operations.  Some drives need a bit
+    more than others, but 5 seems to work for 8mm, 4mm, and DLT</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>BLOCKSIZE=32768</term>
+       <listitem>
+    <para>
+    This worked fine for 8mm, then 4mm, and now DLT.  An optimal
+    setting is probably however much data your drive writes at one
+    time.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>SHORTDATE=$(date +%y:%m:%d:%H:%M)</term>
+       <listitem>
+   <para>
+    A short date string, used in backup log filenames.</para>
+       </listitem>
+      </varlistentry>
+      
+
+      <varlistentry>
+       <term>DAY=$(date +log-%y:%m:%d)</term>
+       <listitem>
+     <para>
+    This is used for the log file directory.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>DATE=$(date)</term>
+       <listitem>
+    <para>
+    Regular date string, used in log files.</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>LOGROOT=/var/log/backup</term>
+       <listitem>
+    <para>
+    Root of the logging directory</para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>LIST=$LOGROOT/incremental-list</term>
+       <listitem>
+    <para>
+    This is the file name the incremental backup will use to store
+    the incremental list.  It will be $LIST-{some number}.
+    </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>DOTCOUNT=$LOGROOT/.count</term>
+       <listitem>
+    <para>
+    For counting as you go to know which incremental list to use
+    </para>
+       </listitem>
+      </varlistentry>
+
+
+      <varlistentry>
+       <term>COUNTER=$LOGROOT/counter-file</term>
+       <listitem>
+    <para>
+    For rewinding when done...might not use.
+    </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>BACKUPTAB=/etc/backuptab</term>
+       <listitem>
+    <para>
+    The file in which we keep our list of backup(s) we want to make.
+    </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/sendmail</filename></title>
+      <variablelist>
+       <varlistentry>
+         <term>DAEMON=yes|no</term>
+         <listitem>
+           <para>yes implies -bd</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>QUEUE=1h</term>
+         <listitem>
+           <para>given to sendmail as -q$QUEUE
+             -q option is not given to sendmail if /etc/sysconfig/sendmail
+             exists and QUEUE is empty or undefined.</para></listitem>
+       </varlistentry>
+      </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/i18n</filename></title>
+      <simplelist>
+       <member>LANG= can be any two letter ISO language code</member>
+       <member>
+         LC_ALL= is the setting of the localedata configuration (eg fr_CA)</member>
+       <member>
+         LINGUAS= can be a : separated list of language codes</member>
+       <member>
+         SYSTERM= use to set default TERM environment variable</member>
+      </simplelist>
+       <para>
+         The above three variables are used in rc.sysinit.</para>
+    <variablelist>
+      <varlistentry>
+       <term>SYSFONT= any font that is legal when used as</term>
+       <listitem>
+         <para>        /usr/sbin/setfont $SYSFONT ...
+    (See kbd package for sysfont command)
+</para>        </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>UNIMAP= any unicode font that is legal fodder for</term>
+       <listitem>
+         <para>/usr/sbin/setfont $SYSFONT-u $UNIMAP</para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+      The above is used by the /sbin/setsysfont command (which is run
+      by rc.sysinit at boot time).
+    </para>
+  </refsect1>
+
+  <refsect1>
+    <title><filename>/etc/sysconfig/\<service\></filename></title>
+    <para>
+      The following are used when starting service.
+    </para>
+      <variablelist>
+        <varlistentry>
+         <term>SERVICE_LIMITS="-u unlimited -c 0"</term>
+         <listitem>
+            <para>
+             System limits for this service.
+            </para>
+         </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>SERVICE_CPUSET="name"</term>
+         <listitem>
+            <para>
+             CPUSET to run this service in.
+            </para>
+         </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>SERVICE_UMASK="022"</term>
+         <listitem>
+            <para>
+             File creation mask for this service.
+            </para>
+         </listitem>
+        </varlistentry>
+        <varlistentry>
+         <term>SERVICE_RUN_NICE_LEVEL="0"</term>
+         <listitem>
+            <para>
+             Scheduling priority for this service.
+            </para>
+         </listitem>
+        </varlistentry>
+      </variablelist>
+  </refsect1>
+</refentry>
+
+
+
+
+<!-- to są informacje dla emacsa -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:nil
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:"rc-scripts.docb"
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+sgml-declaration:nil
+sgml-validate-command:"nsgmls -s %s %s"
+End:
+-->
+                     
diff --git a/trunk/doc/sysconfig.txt b/trunk/doc/sysconfig.txt
new file mode 100644 (file)
index 0000000..0fa181a
--- /dev/null
@@ -0,0 +1,202 @@
+$Id$
+
+Files in /etc/sysconfig
+=======================
+
+/etc/sysconfig/keyboard:
+
+  KEYTABLE=<keytable file>
+  for example: KEYTABLE="/usr/lib/kbd/keytables/us.map"
+
+/etc/sysconfig/mouse:
+
+  MOUSETYPE=microsoft|mouseman|mousesystems|ps/2|msbm|logibm|atibm|
+    logitech|mmseries|mmhittab
+  XEMU3=yes|no (emulate three buttons with two buttons whenever
+    necessary, most notably in X)
+
+  In addition, /dev/mouse points to the mouse device.
+
+/etc/sysconfig/network:
+
+  NETWORKING=yes|no
+  IPV4_NETWORKING=yes|no
+  IPV6_NETWORKING=yes|no
+  HOSTNAME=<whatever hostname you want, e.g. "pldmachine">
+    Note: for compatibility with some old software people might
+    install (like trn), the /etc/HOSTNAME file should contain the
+    same value as here.
+  NISDOMAIN=<nis domain name, e.g. "mydomain.org">
+    Note: set this only if you use NIS system. DNS domainname 
+    should be set in /etc/resolv.conf
+  IGNORE_ICMP_BCAST_IPV4=yes|no (Please note that if you accept ICMP echo
+    requests with a broadcast/multicast destination address your network
+    may be used as an exploder for denial of service packet flooding attacks
+   to other hosts.
+  SPOOFING_IPV4=yes|no (anti spoofing protection)
+  GATEWAY=<gateway IP>
+  GATEWAYDEV=<gateway device> (e.g. eth0)
+  IPX=yes|no
+  IPXAUTOPRIMARY=on|off (note, that MUST be on|off, not yes|no)
+  IPXAUTOFRAME=on|off (again, not yes|no)
+  IPXINTERNALNETNUM=<netnum>
+  IPXINTERNALNODENUM=<nodenum>
+
+  All the IPX stuff is optional, and should default to off.
+
+/etc/sysconfig/static-nat
+
+  Configuration file for static Network Address Translation (NAT).
+  Contains lines of the form:
+
+    <address> via <addressreal>
+
+  NAT will translate address <address> to <addressreal>.
+
+/etc/sysconfig/static-routes:
+
+  Contains lines of the form:
+
+    <device> to [type] <network>/<prefix> via <gateway>
+
+  <device> may be a device name to have the route brought up and
+  down with the device, or "any" to have the correct devices calculated
+  at run time. [type] is optional. RH style isn't supported!
+
+  Also you can set few options after "<gateway>":
+    tos <tos>
+    metric <number>
+    table <table>
+    src <address>
+    realm <realmid>
+    mtu <mtu> or mtu lock <mtu>
+    window <number>
+    rtt <number>
+    nexthop <nexthop>
+    scope <scope>
+    protocol <rtproto>
+    onlink
+    equalize
+  For more informations see iproute2 documentation.
+
+/etc/sysconfig/static-routes6:
+
+  Same as /etc/sysconfig/static-routes but for IPv6.
+
+/etc/sysconfig/routed:
+
+  SILENT=yes|no
+  EXPORT_GATEWAY=yes|no
+
+/etc/sysconfig/pcmcia:
+
+  PCMCIA=yes|no
+  PCIC=i82365|tcic
+  PCIC_OPTS=<socket driver (i82365 or tcic) timing parameters>
+  CORE_OPTS=<pcmcia_core options>
+  CARDMGR_OPTS=<cardmgr options>
+
+/etc/sysconfig/amd:
+
+  ADIR=/.automount  (normally never changed)
+  MOUNTPTS='/net /etc/amd.conf'  (standard automount stuff)
+  AMDOPTS=  (extra options for AMD)
+
+/etc/sysconfig/tape:
+
+  DEV=/dev/nst0
+    Tape device.  Use the non-rewinding one for these scripts.
+  
+    For SCSI tapes this is /dev/nst#, where # is the number of the
+    tape drive you want to use.  If you only have one then use
+    nst0.
+    For IDE tapes you use /dev/ht#, where # is the number of the tape
+    drive you want to use (usually ht0).
+    For floppy tape drives use /dev/ftape.
+
+  ADMIN=root
+    Person to mail to if the backup fails for any reason
+
+  SLEEP=5
+    Time to sleep between tape operations.  Some drives need a bit
+    more than others, but 5 seems to work for 8mm, 4mm, and DLT
+
+  BLOCKSIZE=32768
+    This worked fine for 8mm, then 4mm, and now DLT.  An optimal
+    setting is probably however much data your drive writes at one
+    time.
+
+  SHORTDATE=$(date +%y:%m:%d:%H:%M)
+    A short date string, used in backup log filenames.
+
+  DAY=$(date +log-%y:%m:%d)
+    This is used for the log file directory.
+
+  DATE=$(date)
+    Regular date string, used in log files.
+
+  LOGROOT=/var/log/backup
+    Root of the logging directory
+
+  LIST=$LOGROOT/incremental-list
+    This is the file name the incremental backup will use to store
+    the incremental list.  It will be $LIST-{some number}.
+
+  DOTCOUNT=$LOGROOT/.count
+    For counting as you go to know which incremental list to use
+
+  COUNTER=$LOGROOT/counter-file
+    For rewinding when done...might not use.
+
+  BACKUPTAB=/etc/backuptab
+    The file in which we keep our list of backup(s) we want to make.
+
+/etc/sysconfig/sendmail:
+  DAEMON=yes|no
+    yes implies -bd
+  QUEUE=1h
+    given to sendmail as -q$QUEUE
+    -q option is not given to sendmail if /etc/sysconfig/sendmail
+    exists and QUEUE is empty or undefined.
+
+/etc/sysconfig/i18n
+
+  LANG= is the default setting of localedata configuration
+    (ISO-639-1 language code with ISO-3166-1 country code and optional
+     variant and/or encoding, eg. fr_CA, fr_CA.UTF-8);
+  LC_CTYPE=, LC_COLLATE=, LC_MESSAGES=, LC_NUMERIC=, LC_MONETARY=, LC_TIME=
+    are the individual category settings
+  LC_ALL= overrides all of the above LC_*
+  LANGUAGE= can be a : separated list of language codes
+    see locale(7) for details
+  SYSTERM= use to set default TERM environment variable
+
+  The above variables are used in rc.sysinit.
+
+  SYSFONT= any font that is legal when used as
+       /usr/sbin/setfont $SYSFONT ...
+    (See kbd package for sysfont command)
+
+  UNIMAP= any unicode font that is legal fodder for
+       /usr/sbin/setfont $SYSFONT-u $UNIMAP
+
+  The above is used by the /sbin/setsysfont command (which is run
+  by rc.sysinit at boot time).
+
+/etc/sysconfig/<service>
+
+  The following are used when starting service.
+
+  SERVICE_LIMITS="-u unlimited -c 0"
+    System limits for this service.
+
+  SERVICE_CPUSET="name"
+    CPUSET to run this service in.
+
+  SERVICE_UMASK="022"
+    File creation mask for this service.
+
+  SERVICE_RUN_NICE_LEVEL="0"
+    Scheduling priority for this service.
diff --git a/trunk/doc/sysvinitfiles b/trunk/doc/sysvinitfiles
new file mode 100644 (file)
index 0000000..389e8cd
--- /dev/null
@@ -0,0 +1,188 @@
+Writing System V init scripts for PLD Linux
+$Id$
+===============================================
+
+All System V init scripts are named /etc/rc.d/init.d/<servicename>
+where <servicename> is the name of the service.  There must be no
+".init" suffix.
+
+
+Sample Script
+=============
+
+#!/bin/sh
+#
+#      /etc/rc.d/init.d/<servicename>
+#
+#      <description of the *service*>
+#      <any general comments about this init script>
+#
+# <tags -- see below for tag definitions.  *Every line* from the top
+#  of the file to the end of the tags section must begin with a #
+#  character.  After the tags section, there should be a blank line.
+#  This keeps normal comments in the rest of the file from being
+#  mistaken for tags, should they happen to fit the pattern.>
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Running service --  nice level.
+if [ -f /etc/sysconfig/<service> ]; then
+    . /etc/sysconfig/<service>
+fi    
+
+<define any local shell functions used by the code that follows>
+
+case "$1" in
+    start)
+       show Starting <servicename> services
+       <start daemons, perhaps with the daemon function>
+       touch /var/lock/subsys/<servicename>
+       ;;
+    stop)
+       show Shutting down <servicename> services
+       <stop daemons, perhaps with the killproc function>
+       rm -f /var/lock/subsys/<servicename>
+       ;;
+    status)
+       <report the status of the daemons in free-form format,
+       perhaps with the status function>
+       ;;
+    restart)
+       <restart the daemons, normally with $0 stop; $0 start>
+       ;;
+    reload)
+       <cause the service configuration to be reread, either with
+       kill -HUP or by restarting the daemons, possibly with
+       $0 stop; $0 start>
+       ;;
+    probe)
+       <optional.  If it exists, then it should determine whether
+       or not the service needs to be restarted or reloaded (or
+       whatever) in order to activate any changes in the configuration
+       scripts.  It should print out a list of commands to give to
+       $0; see the description under the probe tag below.>
+       ;;
+    *)
+       echo "Usage: $0 {start|stop|status|reload|restart[|probe]"
+       exit 1
+       ;;
+esac
+
+
+Notes: the restart and reload functions may be (and commonly are)
+combined into one test, vis:
+    restart|reload)
+You are not prohibited from adding other commands; list all commands
+which you intend to be used interactively to the usage message.
+
+
+
+Functions in /etc/rc.d/init.d/functions
+=======================================
+
+daemon [+/-nicelevel] program [arguments] [&]
+
+       Obsoletes starts a daemon, if it is not already running.
+       Does other useful things like keeping  the  daemon  from 
+       dumping core if it terminates unexpectedly.
+
+killproc program [signal]
+
+       Sends a signal to the program; by default it sends a SIGTERM,
+       and if the process doesn't die, it sends a SIGKILL a few
+       seconds later.
+
+       It also tries to remove the pidfile, if it finds one.
+
+pidofproc program
+
+       Tries to find the pid of a program; checking likely pidfiles,
+       using the pidof program, or even using ps.  Used mainly from
+       within other functions in this file, but also available to
+       scripts.
+
+status program
+
+       Prints status information.  Assumes that the program name is
+       the same as the servicename.
+
+
+Tags
+====
+
+# chkconfig: <startlevellist> <startpriority> <endpriority>
+
+       Required.  <startlevellist> is a list of levels in which
+       the service should be started by default.  <startpriority>
+       and <endpriority> are priority numbers.  For example:
+       # chkconfig: 2345 20 80
+       Read 'man chkconfig' for more information.
+
+       Unless there is a VERY GOOD, EXPLICIT reason to the
+       contrary, the <endpriority> should be equal to
+       100 - <startpriority>
+
+# description: <multi-line description of service>
+
+       Required.  Several lines of description, continued with '\'
+       characters.  The initial comment and following whitespace
+       on the following lines is ignored.
+
+# description[ln]: <multi-line description of service in the language \
+#                  ln, whatever that is>
+
+       Optional.  Should be the description translated into the
+       specified language.
+
+# processname:
+
+       Optional, multiple entries allowed.  For each process name
+       started by the script, there should be a processname entry.
+       For example, the samba service starts two daemons:
+       # processname: smdb
+       # processname: nmdb
+
+# config:
+
+       Optional, multiple entries allowed.  For each static config
+       file used by the daemon, use a single entry.  For example:
+       # config: /etc/httpd/httpd.conf
+       # config: /etc/httpd/srm.conf
+
+       Optionally, if the server will automatically reload the config
+       file if it is changed, you can append the word "autoreload" to
+       the line:
+       # config: /etc/foobar.conf autoreload
+
+# pidfile:
+
+       Optional, multiple entries allowed.  Use just like the config
+       entry, except that it points at pidfiles.  It is assumed that
+       the pidfiles are only updated at process creation time, and
+       not later.  The first line of this file should be the ASCII
+       representation of the PID; a terminating newline is optional.
+       Any lines other than the first line are not examined.
+
+# probe: true
+
+       Optional, used IN PLACE of processname, config, and pidfile.
+       If it exists, then a proper reload-if-necessary cycle may be
+       acheived by running these commands:
+
+       command=$(/etc/rd.d/init.d/SCRIPT probe)
+       [ -n "$command" ] && /etc/rc.d/init.d/SCRIPT $command
+
+       where SCRIPT is the name of the service's sysv init script.
+
+       Scripts that need to do complex processing could, as an
+       example, return "run /var/tmp/<servicename.probe.$$"
+       and implement a "run" command which would execute the
+       named script and then remove it.
+
+       Note that the probe command should simply "exit 0" if nothing
+       needs to be done to bring the service into sync with its
+       configuration files.
+
+Copyright (c) 1998 Red Hat Software, Inc.
+Modified Corrected & Overlocked by PLD Linux (r) Team 1999.
diff --git a/trunk/doc/template.init b/trunk/doc/template.init
new file mode 100644 (file)
index 0000000..79122e7
--- /dev/null
@@ -0,0 +1,172 @@
+#!/bin/sh
+#
+# <service>    <service> short service description
+#
+# chkconfig:   345 <start_level> <stop_level>
+#
+# description: <service> long service description
+#
+# processname: <procname>
+# config:
+# pidfile:
+#
+# $Id$
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+       if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+               msg_network_down "<service_name>"
+               exit 1
+       fi
+else
+       exit 0
+fi
+
+# Set defaults
+OPTION1=""     # Strings
+OPTION2="-q"   #
+OPTION3=       # Values
+OPTION4=5      #
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/<service> ] && . /etc/sysconfig/<service>
+
+pidfile="/var/run/<service>.pid"
+
+# configtest itself
+# must return non-zero if check failed
+# output is discarded if checkconfig is ran without details
+configtest() {
+       /usr/sbin/<service> -t
+       return $?
+}
+
+# wrapper for configtest
+checkconfig() {
+       local details=${1:-0}
+
+       if [ $details = 1 ]; then
+               # run config test and display report (status action)
+               show "Checking %s configuration" "<service_name>"; busy
+               local out
+               out=$(configtest 2>&1)
+               RETVAL=$?
+               if [ $RETVAL = 0 ]; then
+                       ok
+               else
+                       fail
+               fi
+               [ "$out" ] && echo >&2 "$out"
+       else
+               # run config test and abort with nice message if failed
+               # (for actions checking status before action).
+               configtest >/dev/null 2>&1
+               RETVAL=$?
+               if [ $RETVAL != 0 ]; then
+                       show "Checking %s configuration" "<service_name>"; fail
+                       nls 'Configuration test failed. See details with %s "checkconfig"' $0
+                       exit $RETVAL
+               fi
+       fi
+}
+
+start() {
+       # Check if the service is already running?
+       if [ -f /var/lock/subsys/<service> ]; then
+               msg_already_running "<service_name>"
+               return
+       fi
+
+       checkconfig
+       msg_starting "<service_name>"
+       daemon /usr/sbin/<service>
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/<service>
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/<service> ]; then
+               msg_not_running "<service_name>"
+               return
+       fi
+
+       # Stop daemons.
+       msg_stopping "<service_name>"
+       killproc <procname>
+       killproc --pidfile $pidfile <procname> -TERM
+       rm -f /var/lock/subsys/<service>
+}
+
+reload() {
+       if [ ! -f /var/lock/subsys/<service> ]; then
+               msg_not_running "<service_name>"
+               RETVAL=7
+               return
+       fi
+
+       checkconfig
+       msg_reloading "<service_name>"
+       killproc <procname> -HUP
+       killproc --pidfile $pidfile <procname> -HUP
+       RETVAL=$?
+}
+
+condrestart() {
+       if [ ! -f /var/lock/subsys/<service> ]; then
+               msg_not_running "<service_name>"
+               RETVAL=$1
+               return
+       fi
+
+       checkconfig
+       stop
+       start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       checkconfig
+       stop
+       start
+       ;;
+  try-restart)
+       condrestart 0
+       ;;
+# include force-reload here if program allows reloading without restart
+# otherwise remove reload action and support force-reload as restart if running
+  reload|force-reload)
+       reload
+       ;;
+# use this one if program doesn't support reloading without restart
+  force-reload)
+       condrestart 7
+       ;;
+  checkconfig|configtest)
+       checkconfig 1
+       ;;
+  status)
+       status <service>
+       status --pidfile $pidfile <service>
+       status --pidfile $pidfile <service> <procname>
+       RETVAL=$?
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|checkconfig|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/trunk/doc/upstart.txt b/trunk/doc/upstart.txt
new file mode 100644 (file)
index 0000000..4f3a791
--- /dev/null
@@ -0,0 +1,289 @@
+===================================
+Upstart event-based service startup
+===================================
+
+This version of rc-scripts support Upstart event-based service startup. This
+can co-exist with old-style startup scripts.
+
+Enabling/disabling event-base service startup
+---------------------------------------------
+
+Upstart event-based service startup may be disabled on boot time
+by using a ``pld.no-upstart`` kernel command-line option.
+
+An init script may be called with ``USE_UPSTART=no`` environment variable
+to disable special upstart-related processing – this way one may use
+``/etc/rc.d/init.d/$service start`` to start a service even if upstart job
+for that service is present. The ``/sbin/service`` script has two new options
+``--upstart`` and ``--no-upstart`` to force new- or old-style service control.
+
+``USE_UPSTART=no`` can also be places in ``/etc/sysconfig/system``
+configuration file, though it can break ``*-upstart`` packages
+installation/removal a bit.
+
+Available events
+----------------
+
+Ubuntu-compatible system events
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+all-swaps
+        when swaps from ``/etc/fstab`` are activated
+
+filesystem
+        when basic filesystem hierarchy (FHS) is mounted
+        NOTE: currently it doesn't wait for network filesystems!
+
+local-filesystems
+        when all local filesystems are mounted and initialized
+
+root-filesystem
+        when root filesystem is mounted r/w and initialized
+
+virtual-filesystems
+        when virtual filesystems (/proc, /sys, etc.) are mounted
+
+PLD-specific system events:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+pld.sysinit-done
+        when rc.sysinit finished its job
+
+pld.shutdown-started
+starting shutdown
+started shutdown
+        when rc.shutdown starts
+
+pld.network-starting
+starting network
+        just before network initialization is started
+
+pld.network-started
+started network
+        when network is initialized
+
+pld.network-stopping
+stopping network
+        just before network shutdown is started
+
+pld.network-stopped
+stopped network
+        when network configuration is shut down
+
+Jobs
+~~~~
+
+The standard Upstart events are available for job control:
+starting(7) started(7) stopping(7) stopped(7)  (see man pages)
+
+As relying on job name is not good enough when several alternative
+implementations of a service are available. In such case
+each of the alternative jobs should have an extra 'SERVICE_syslog=y'
+variable exported. In van then be used like this::
+
+  start on started SERVICE_syslog=y
+
+Please note that using 'SERVICE=something' will not work, as the value
+will be inherited by any other job with 'export SERVICE'.
+
+Job events and enabling/disabling event-base service startup
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Please note that relying on events not raised by PLD service jobs
+or scripts (like 'startup') will make job ignore the 'pld.no-upstart'
+setting.
+
+
+Writing Upstart job descriptions
+--------------------------------
+
+Job description files in ``/etc/init`` are not only the recipes to start
+a service, but also configuration files for that service. Keep that in mind
+when writing the ``*.conf`` files. No complicated logic, that can change from
+a release to a release, should be implemented there, the script should be
+readable, basic configuration settings easy to find and no upstart-controlled
+settings (like resource limit)  reimplemented in the script or started daemon
+arguments.
+
+The syntax of the ``/etc/init/*.conf`` files is described in the init(5) man
+page.
+
+Instead of using ``/etc/sysconfig/$service`` files put the service
+configuration directly into the ``*.conf`` file. When 'env' stanza is used for
+that, the value may be overridden when starting the job with initctl.
+
+Simple example, the job description for syslog-ng::
+
+  start on pld.network-started
+  stop on pld.shutdown-started
+
+  env SERVICE=syslog
+  export SERVICE
+
+  respawn
+
+  console output
+
+  exec /usr/sbin/syslog-ng -F -f /etc/syslog-ng/syslog-ng.conf
+
+Checking upstart configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Since Upstart 1.3 one can check current configuration with::
+
+  initctl check-config
+
+Also, with an 'initctl2dot' tool the configuration may be visualised in
+a graphical diagram.
+
+Tracking startup progress
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The easiest way to run a program from an upstart job is to ``exec`` it
+the way it will stay in foreground (that is what is the ``-F`` option in the
+example above for). However, when process is started this way Upstart cannot
+differentiate before the ``program starting failed`` and ``program has
+terminated`` cases. It will also assumed the job has started as soon as the
+command has been executed and that may be not what other jobs wait for.
+
+A 'proper daemon' first checks command line arguments and configuration, then
+forks two times and returns with success only when the child process is ready.
+Upstart can handle such daemons with ``expect daemon`` stanza. So, to manage
+such daemon via Upstart, exec so it daemonize and use ``expect daemon``
+directive to tell Upstart what happens. Unfortunately, when ``expect daemon``
+is used and the process forks only once or does some more weird thing, Upstart
+job may lock up. Also, libdaemon-based daemons don't play well with ``expect
+daemon``.
+
+When the service forks once ``expect fork`` should be used instead.
+
+There is also an ``expect stop`` option, probably the most elegant way to
+track process startup. The process doesn't have to fork in this case and
+Upstart doesn't have to track that forking. The process should raise SIGSTOP
+when it is ready – only then Upstart will emit the job's ``started`` event and
+let the process continue. Unfortunately, currently hardly anything supports
+this interface.
+
+When no ``expect`` stanza will help and we need to properly wait for process
+startup, then ``post-start`` script must be used. See the init(5) man page for
+details.
+
+Debuging jobs
+~~~~~~~~~~~~~
+
+Making sure job description is correct and Upstart will properly manage the
+process may be tricky. One way to check if the job was described and started
+properly is to use ``pstree -p`` command and compare it to ``initctl status``
+output. Example::
+
+  # initctl status cherokee
+  cherokee start/running, process 22419
+
+  # pstree -p
+  init(1)─┬─Terminal(19446)─┬─bash(8983)───console(9003)
+        ....
+          |-bacula-sd(3514)---{bacula-sd}(3520)
+          |-cherokee(22419)-+-cherokee-worker(22423)-+-rrdtool(22425)
+          |                 |                        |-{cherokee-worker}(22424)
+          |                 |                        |-{cherokee-worker}(22426)
+          |                 |                        |-{cherokee-worker}(22427)
+          |                 |                        |-{cherokee-worker}(22428)
+          |                 |                        |-{cherokee-worker}(22429)
+          |                 |                        |-{cherokee-worker}(22430)
+          |                 |                        |-{cherokee-worker}(22431)
+          |                 |                        |-{cherokee-worker}(22432)
+          |                 |                        |-{cherokee-worker}(22433)
+          |                 |                        `-{cherokee-worker}(22434)
+          |                 `-{cherokee}(22422)
+          |-conserver(3471)---conserver(3477)
+        ....
+
+
+As you can see, Upstart thinks the main process of 'cherokee' is '22419',
+and indeed this is the only 'cherokee' child of init. So this state is correct.
+
+Common problem that may appear in pstree output:
+
+  1. The main process pid differs from what Upstart thinks. That usually
+     happens when bad 'expect fork' or 'expect daemon' is used. May cause
+     Upstart lock-up when the PID reported by ``initctl status`` does not exist
+     at all.
+
+  2. Init has multiple children processes for one job instance. It may happen
+     when previously running job was not properly killed, when bad 'expect' was
+     used or when the daemon does weird forking on startup.
+
+See also http://upstart.ubuntu.com/wiki/Debugging
+
+Updating init scripts
+---------------------
+
+Parts of the system will still expect ``service $name`` or even, directly,
+``/etc/rc.d/init.d/$name`` scripts working. Also, LSB expects compatible
+init scripts in /etc/init.d. For this still to work, an upstart-controlled
+service is expected to have its ``/etc/rc.d/init.d/$name`` script also present.
+It must also be named exactly as the main upstart job for the service.
+
+The script must be a bit modified (in comparison to the traditional init
+scripts) to make use of the upstart features.
+
+For the start/stop/status/reload commands to work the script should include a
+``upstart_controlled`` command placed before commands are handled (and after
+``/etc/rc.d/init.d/function`` was included). This command (shell alias actually)
+will be ignored when upstart boot control is disabled or no upstart job is
+available for the service. Otherwise it will implement the basic LSB commands
+and exit.
+
+Sometimes some commands must be implemented in a special way (not all services
+may understand SIGHUP as a signal to reload their configuration) or extra
+commands are provided (like 'configtest'). In such case ``upstart_controlled``
+should be given a list of commands to implement or, preferrably, ``--except``
+and the list of commands which stay implemented in the script. If the first
+argument of the script is one to be of the 'not upstart_controlled' commands,
+processing will continue past 'upstart_controlled' call and the commands may
+be handled by the init script.
+
+When ``configtest`` is includes in the ``upstart_controlled --except`` list
+then ``$script configtest`` will be called before each restart/reload attempt,
+but only when done by ``/sbin/service`` or call to the script. Direct initctl
+calls are not affected.
+
+The minimal init script, for a service which will be controlled by upstart
+only would be::
+
+  #!/bin/sh
+
+  . /etc/rc.d/init.d/functions
+
+  upstart_controlled
+
+  echo "Service available only via upstart boot"
+  exit 3
+
+Minimal change to an existing PLD script to handle upstart control is to add::
+
+  upstart_controlled
+
+before the usual::
+
+  RETVAL=0
+  # See how we were called.
+  case "$1" in
+    start)
+
+Sometimes other upstart jobs will rely on a service started by the traditional
+init script. In such case, the script should emit appropriate events.
+
+e.g.::
+
+       msg_starting "syslog-ng"
+       emit starting JOB=syslog-ng SERVICE=syslog
+       daemon /usr/sbin/syslog-ng -f /etc/syslog-ng/syslog-ng.conf $OPTIONS
+       emit started JOB=syslog-ng SERVICE=syslog
+       RETVAL=$?
+
+The ``emit`` function does nothing when upstart-controlled boot is disabled (not
+to trigger any upstart jobs), otherwise it calls ``/sbin/initctl emit``
+
+..
+ vi: tw=78 ft=rst spl=en
diff --git a/trunk/dumb.sh b/trunk/dumb.sh
new file mode 100644 (file)
index 0000000..ba1fda1
--- /dev/null
@@ -0,0 +1,188 @@
+#!/bin/sh
+# dump script used to generate .pot for translations
+
+. /etc/rc.d/init.d/functions
+
+nls "alarmwatch not configured (CHIPS not set), cannot start."
+nls "No kernel APM support"
+nls "(backgrounded)"
+nls "Setting up sound card mixer"
+nls "Sound card mixer is already set up"
+nls "Saving sound card mixer's settings"
+nls "Sound card mixer hasn't been set up"
+nls "Modular sound card detected."
+nls "Monolithic sound card detected."
+nls "MIDI device present."
+nls "MIDI device not detected."
+nls "Sound card not configured."
+nls "Configured Mount Points:"
+nls "Active Mount Points:"
+nls "Waiting for Coda server shutdown"
+nls "Setting Text Mode"
+nls "Loading console font and map"
+nls "Loading keyboard table"
+nls "Enabling SAK sequence"
+nls "Setting terminals to default values"
+nls "Missing service directory"
+nls "Create %s first."                                 "$1"
+nls "no dictionaries found"
+nls "Uploading em8300 microcode"
+nls "Removing em8300 modules"
+nls "exim.conf: queue_only = true is missing"
+nls "Please edit /etc/sysconfig/frox !"
+nls "Redirecting FTP traffic"
+nls "Removing FTP traffic redirection"
+nls "ipchains/iptables not found. Cannot continue"
+nls "Generating %s"                                    "$1"
+nls "Setting filter rules"
+nls "Flushing filter rules"
+nls "%s not generated"                                 "$1"
+nls "%s outdated"                                      "$1"
+nls "%s not applied"                                   "$1"
+nls "filter rules applied"
+nls "Frame buffer present."
+nls "Frame buffer not present."
+nls "Setting default video mode"
+nls "Cannot start Pluto, system lacks /dev/random"
+nls "Dumpdir \`%s' does not exist, ignored."           "$1"
+nls "Starting FreeS/WAN IPSEC"
+nls "Stopping FreeS/WAN IPSEC"
+nls "Please set %s in /etc/sysconfig/mouse"            "$1"
+nls "Setting parameters for drive %s"                  "$1"
+nls "IP protocols logger"
+nls "IRCd Server"
+nls "Courier IMAP - Authdaemon"
+nls "DHCP Server"
+nls "Gnome Display Manager"
+nls "OpenH323 gatekeeper"
+nls "Jabber GaduGadu transport"
+nls "Jabber ICQ transport daemon"
+nls "KDE Display Manager"
+nls "OpenLDAP Update Replication Daemon"
+nls "Linux Infrared Remote Control daemon"
+nls "Linux Infrared Remote Control mouse daemon"
+nls "System logger"
+nls "Kernel logger"
+nls "KerberosV service"
+nls "%s is missing"                                    "$1"
+nls "Starting Kerberos KDC"
+nls "Starting Administration Server"
+nls "Stopping Kerberos KDC"
+nls "Stopping Administration Server"
+nls "multicast routing daemon"
+nls "Dynamic Route Daemon"
+nls "%s config %s does not exist."                     "$1"    "$2"
+nls "MySQL datadir %s not configured properly"         "$1"
+nls "MySQL user not configured properly"
+nls "Edit %s and configure it."                                "$1"
+nls "MySQL database not initialized. Try \"%s init\" before start."    "$1"
+nls "Seems that database is initialized now. Remove by hand %s"        "$1"
+nls "before initializing database."
+nls "Creating privilege mysql tables"
+nls "Sorry, the host name is not configured."
+nls "Please configure the 'hostname' command to return a hostname."
+nls "Sorry, the host '%s' could not be looked up."     "$1"
+nls "Please configure the 'hostname' command to return a correct hostname."
+nls "Initializing %s"                                  "$1"
+nls "pks database not initialized. Try \"%s init\" before start."      "$1"
+nls "Seems that database is initialized now."
+nls "Initializing database for pks"
+nls "No SSH host key found! You must run \"%s init\" first."   "$1"
+nls "Now the SSH host key will be generated. Please note, that if you"
+nls "will use password for the key, you will need to type it on each"
+nls "reboot."
+nls "JAVA_HOME is not set! Edit /etc/sysconfig/tomcat"
+nls "Mounting NFS filesystems"
+nls "Unmounting NFS filesystems"
+nls "Configured NFS mountpoints:"
+nls "Active NFS mountpoints:"
+nls "/proc filesystem unavailable"
+nls "Registering %s"                                   "$1"
+nls "Unregistering %s"                                 "$1"
+nls "netsaint NSCA daemon"
+nls "Stopping MARS: stopping all connections"
+nls "Starting UPS drivers"
+nls "Stopping UPS drivers"
+nls "Reloading UPS drivers"
+nls "UPS drivers and network daemon"
+nls "UPS network daemon"
+nls "Syncing time for ntp"
+nls "Error: portmap isn't running"
+nls "netsaint NRPE daemon"
+nls "Name Switch Cache Daemon"
+nls "No kupdate[d] found. Run bdflush-1.6 for sleep support."
+nls "OpenH323 gatekeeper/proxy"
+nls "omniNames for omniORB"
+nls "No tunnels configured in /etc/sysconfig/openvpn"
+nls "Starting OpenVPN tunnel %s"                       "$1"
+nls "Stopping OpenVPN tunnel %s"                       "$1"
+nls "Dynamic DNS daemon"
+nls "Dynamic DNS Tools Server"
+nls "Starting PIM-SM multicast routing daemon"
+nls "Stopping PIM-SM multicast routing daemon"
+nls "Parallel Virtual Machine"
+nls "Killing PowerDNS without grace"
+nls "PowerDNS (Powered DNS server)"
+nls "PowerDNS (3 sec. timeout)"
+nls "PowerDNS in foreground (testing mode)"
+nls "PCIC not defined in /etc/sysconfig/pcmcia"
+nls "Unloading PCMCIA modules"
+nls "protolog TCP daemon"
+nls "protolog UDP daemon"
+nls "protolog ICMP daemon"
+nls "Error: /etc/sysconfig/postgresql not found"
+nls " PostgreSQL can't be run."
+nls "Error: PG_DB_CLUSTERS not found or is empty"
+nls "Note: this is only simple init action for convenience."
+nls "If you want some non-standard options, consider using initdb(1)."
+nls "Skipping existing cluster %s"                     "$1"
+nls "Initializing cluster %s"                          "$1"
+nls "REMEMBER to setup password for user \"postgres\""
+nls "PPPoE Relay Server"
+nls "PPPoE Server"
+nls "Radius-Cistron Server"
+nls "Starting Resin JSP Server"
+nls "Stopping Resin JSP Server"
+nls "NFS quota daemon"
+nls "NFS quotas"
+nls "Setting time from remote server(s): %s"           "$1"
+nls "Remote time: "
+nls "Local time: "
+nls "Local machine hardware clock: "
+nls "Syncing hardware clock"
+nls " Please correct your /etc/sysconfig/rawdevices:"
+nls " rawdevices are now located in the directory /dev/raw/ "
+nls " If the command 'raw' still refers to /dev/raw as a file."
+nls " You'll have to upgrade your util-linux package"
+nls "You need to be root to use this command ! "
+nls "WARNING: RADVD can work only in IPv6 networks"
+nls "SAP DB WebServer"
+nls "SAP DB WebServer on port %s"                      "$1"
+nls "Put license file in /etc/sipd/license"
+nls "sensors daemon"
+nls "BUS or CHIP not configured in /etc/sysconfig/sensors"
+nls "SAPDB communication server"
+nls "SAPDB instance %s"                                        "$1"
+nls "Prepare sendmail db"
+nls "system activity data collector"
+nls "Cannot find configuration file: %s"               "$1"
+nls "Waiting %s seconds..."                            "$1"
+nls "done."
+nls "Toshiba fan daemon"
+nls "X Display Manager"
+nls "NIS map server"
+nls "Setup /etc/sysconfig/network::NISDOMAIN before use %s."   "$1"
+nls "X Font Server"
+nls "NIS server"
+nls "Binding to the NIS domain"
+nls "Listening for a NIS domain server"
+nls "Try \"%s init\" before start."                    "$1"
+nls "Login name [admin]: "
+nls "Login password: "
+nls "Password again: "
+nls "ERROR: Passwords don't match"
+nls "Loading zebra configuration"
+nls "Starting Athlon Cooling"
+nls "Stoping Athlon Cooling"
+nls "Error: /etc/nessus/nessusd.conf not found"
+nls " Nessus daemon can't be run."
diff --git a/trunk/firmware-loader.sh b/trunk/firmware-loader.sh
new file mode 100755 (executable)
index 0000000..6238a22
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh -e
+
+FIRMWARE_DIRS="/lib/firmware/updates/$(uname -r) /lib/firmware/updates \
+               /lib/firmware/$(uname -r) /lib/firmware"
+
+err() {
+       echo "$@" >&2
+       logger -t "${0##*/}[$$]" "$@" 2>/dev/null || true
+}
+
+if [ ! -e /sys$DEVPATH/loading ]; then
+       err "firmware loader misses sysfs directory"
+       exit 1
+fi
+
+for DIR in $FIRMWARE_DIRS; do
+       [ -e "$DIR/$FIRMWARE" ] || continue
+       echo 1 > /sys$DEVPATH/loading
+       cat "$DIR/$FIRMWARE" > /sys$DEVPATH/data
+       echo 0 > /sys$DEVPATH/loading
+       exit 0
+done
+
+echo -1 > /sys$DEVPATH/loading
+err "Cannot find  firmware file '$FIRMWARE'"
+exit 1
diff --git a/trunk/hwprofile b/trunk/hwprofile
new file mode 100755 (executable)
index 0000000..e0b21f9
--- /dev/null
@@ -0,0 +1,332 @@
+#!/bin/sh
+# (C) 2001 Arkadiusz Miśkiewicz <misiek@pld.ORG.PL>
+# Hardware Profiles for rc-scripts TOTALNEW.
+# $Id$
+
+PROFDIR="/etc/sysconfig/hwprofiles"
+QUIET=0
+
+. /etc/rc.d/init.d/functions
+. /etc/sysconfig/hwprof
+
+[ -z "${EDITOR}" ] && EDITOR=vi
+
+if [ "$(id -u)" != "0" ]; then
+       echo "Need superuser privileges. Can't continue!"
+       exit 1
+fi
+
+checkprofdir()
+{
+       if [ ! -d ${PROFDIR} -o ! -d ${PROFDIR}/data ]; then
+               echo "${PROFDIR} or ${PROFDIR}/data not found. Can't continue!"
+               echo "Check /etc/sysconfig/hwprof and hwprofile -h."
+               exit 1
+       fi
+}
+
+myecho()
+{
+       if [ $QUIET -eq 0 ]; then
+               echo $@
+       fi
+}
+
+showhelp()
+{
+echo '
+no opts      - show help
+-a           - add profile
+-d           - delete profile
+-r foo       - run specified profile or "default" if such exist
+-s           - save/update running profile
+-f           - find proper profile and run it
+-l           - list configured profiles
+-q           - be quiet (used only in few modes)
+
+Please send all bug reports to:
+pld-rc-scripts@pld-linux.org.
+'
+}
+
+# This function probably must be enhanced.
+md5sumgen()
+{
+       ( \
+               grep -v "MHz" /proc/cpuinfo 2> /dev/null \
+               grep -v "Latency" /proc/pci 2> /dev/null \
+       ) | md5sum | awk ' { gsub(/ .*$/,NIL); print $0 } '
+}
+
+while getopts adfhlsqr: opt "$@"; do
+       case "$opt" in
+         a)
+               checkprofdir
+
+               echo "Adding new profile..."
+
+               if [ -f /var/run/hwprofile ]; then
+                       echo -n "Current profile is: "
+                       cat /var/run/hwprofile
+               fi
+
+               PROFILE=
+               while [ -z "${PROFILE}" ]; do
+                       echo -n "Enter profile name: "
+                       read PROFILE
+
+                       if [ -f ${PROFDIR}/${PROFILE}.md5 ]; then
+                               echo "Profile ${PROFILE} exist. Try other name."
+                               PROFILE=
+                       fi
+               done
+
+               rm -rf ${PROFDIR}/${PROFILE}.* ${PROFDIR}/data/${PROFILE}/
+               md5sumgen > ${PROFDIR}/${PROFILE}.md5
+               LANG=C LC_ALL=C date > ${PROFDIR}/${PROFILE}.date
+               mkdir -p ${PROFDIR}/data/${PROFILE}/
+               chmod 700 ${PROFDIR}/data/${PROFILE}/
+
+               echo -n "Enter profile description (PROFDIR/${PROFILE}.desc): "
+               read DESCRIPTION
+               [ -z "${DESCRIPTION}" ] && DESCRIPTION="${PROFILE}"
+               echo "${DESCRIPTION}" > ${PROFDIR}/${PROFILE}.desc
+               echo "Now, editor will be started and you need to enter list of files"
+               echo "for this profile (later as ${EDITOR} ${PROFDIR}/${PROFILE}.files)."
+               echo "Press Enter."
+               read
+
+               if [ -f ${PROFDIR}/files -o ! -f ${PROFDIR}/${PROFILE}.files ]; then
+                       cat ${PROFDIR}/files > ${PROFDIR}/${PROFILE}.files;
+               fi
+               ${EDITOR} ${PROFDIR}/${PROFILE}.files
+
+               FILES=
+               echo "Validating and copying valid files for this profile:"
+               for file in $(grep -v "^#" ${PROFDIR}/${PROFILE}.files); do
+                       if [ ! -f ${file} -o "${file}" = "/etc/sysconfig/hwprof" ]; then
+                               echo "${file}: invalid, skipping"
+                               continue
+                       fi
+
+                       bfile=$(basename ${file})
+                       echo "Copying ${file} to ${PROFDIR}/data/${PROFILE}/${file}..."
+                       cp -dp --parents ${file} ${PROFDIR}/data/${PROFILE}/
+                       FILES="${file}\n${FILES}"
+               done
+
+               echo -e "${FILES}" > ${PROFDIR}/${PROFILE}.files
+               rm -f ${PROFDIR}/${PROFILE}.*~
+
+               echo "New profile ready."
+               break
+               ;;
+         d)
+               checkprofdir
+
+               echo "Deleting existing profile..."
+
+               PROFILE=
+               while [ -z ${PROFILE} ]; do
+                       echo -n "Enter profile name: "
+                       read PROFILE
+
+                       if [ ! -f ${PROFDIR}/${PROFILE}.md5 ]; then
+                               echo "Profile ${PROFILE} doesn't exist. Try other name."
+                               PROFILE=
+                       fi
+               done
+
+               echo -n "Are you sure? [y/N]: "
+               read YN
+               case "${YN}" in
+                 y | Y | t | T )
+                       # ok
+                       ;;
+                 *)
+                       echo "Exiting then."
+                       exit 1
+                       ;;
+               esac
+
+               rm -rf ${PROFDIR}/${PROFILE}.* ${PROFDIR}/data/${PROFILE}/
+               echo "Done."
+               break
+               ;;
+         r)
+
+               checkprofdir
+
+               PROFILE="${OPTARG}"
+
+               if [ -z "${PROFILE}" -o ! -f ${PROFDIR}/${PROFILE}.files ]; then
+                       echo "Can't setup ${PROFILE}. No required data."
+                       exit 1
+               fi
+
+               echo -n "Setting up profile \"${PROFILE}\" "
+               myecho "";
+
+               for file in $(grep -v "^#" ${PROFDIR}/${PROFILE}.files); do
+                       if [ ! -f ${file} -o "${file}" = "/etc/sysconfig/hwprof" ]; then
+                               myecho "${file}: invalid, skipping"
+                               continue
+                       fi
+                       echo -n ".";
+
+                       myecho "Copying ${PROFDIR}/data/${PROFILE}/${file} to ${file}..."
+                       cp -dp ${PROFDIR}/data/${PROFILE}/${file} ${file} 2>/dev/null
+               done
+
+               echo ${PROFILE} > /var/run/hwprofile
+               echo " Done.";
+               myecho "Profile \"${PROFILE}\" running."
+               break
+               ;;
+         f)
+               checkprofdir
+
+               PROFILE=
+               PROFILEMD5=$(md5sumgen)
+
+               myecho "Trying to find proper profile..."
+               for prof in $(ls -1 ${PROFDIR}/*.md5 2> /dev/null); do
+                       prof=$(basename ${prof})
+                       CURRENTMD5="$(cat ${PROFDIR}/${prof} 2> /dev/null)"
+                       # echo "$prof ${CURRENTMD5} ${PROFILEMD5}";
+                       [ -z "${CURRENTMD5}" ] && continue
+
+                       if [ "${CURRENTMD5}" = "${PROFILEMD5}" ]; then
+                               PROFILE=$(echo ${prof} | awk ' { gsub(/\.md5/,NIL); print $0 } ')
+                               break;
+                       fi
+               done
+
+               if [ -z "${PROFILE}" ]; then
+                       if is_yes "${ASKFORPROFILE}"; then
+                               echo "Available profiles:";
+                               PS3='Enter profile number: ';
+                               LISTA=$(ls ${PROFDIR}/*.desc 2> /dev/null);
+                               for i in ${LISTA}; do
+                                       a=$(basename $i .desc);
+                                       LISTA1="${a} ${LISTA1}";
+                               done
+                               LISTA1="${LISTA1} Default";
+
+                               select PROFILE in $LISTA1; do
+                                       if [ -n "${PROFILE}" ]; then
+                                               break
+                                       fi
+                               done
+
+                               if [ "${PROFILE}" = "Default" ]; then
+                                       PROFILE=
+                               fi
+                       fi
+               fi
+
+               if [ -z "${PROFILE}" ]; then
+                       if [ ! -f ${PROFDIR}/default.md5 ]; then
+                               echo "Valid profile not found. Starting with current files."
+                               exit 0
+                       else
+                               echo "Valid profile not found. Starting with \"default\" profile."
+                               PROFILE=default
+                       fi
+               fi
+
+               if [ ! -z "${PROFILE}" ]; then
+                       myecho "Found profile \"${PROFILE}\" with md5sum \"${PROFILEMD5}\"."
+                       if [ $QUIET -eq 0 ]; then
+                               $0 -r ${PROFILE};
+                       else
+                               $0 -qr ${PROFILE};
+                       fi
+               fi
+               break
+               ;;
+         s)
+               checkprofdir
+
+               PROFILE=$(cat /var/run/hwprofile 2> /dev/null)
+
+               if [ -z "${PROFILE}" ]; then
+                       echo "No profile currenty running."
+                       exit 1
+               fi
+
+               if [ ! -f ${PROFDIR}/${PROFILE}.files ]; then
+                       echo "${PROFILE}.files is missing. Can't continue."
+                       exit 1
+               fi
+
+               echo -n "Saving/updating current [${PROFILE}] profile "
+               md5sumgen > ${PROFDIR}/${PROFILE}.md5
+               myecho "";
+               for file in $(grep -v "^#" ${PROFDIR}/${PROFILE}.files); do
+                       echo -n ".";
+
+                       if [ ! -f ${file} -o "${file}" = "/etc/sysconfig/hwprof" ]; then
+                               myecho "${file}: invalid, skipping"
+                               continue
+                       fi
+
+                       myecho "Copying ${file} to ${PROFDIR}/data/${PROFILE}/${file}"
+                       cp -dp --parents ${file} ${PROFDIR}/data/${PROFILE}/
+               done
+               echo " Done."
+               break
+               ;;
+         l)
+               echo "List of configured profiles:"
+
+               for prof in $(ls -1 ${PROFDIR}/*.md5 2> /dev/null); do
+                       prof=$(basename ${prof})
+                       profname=$(echo ${prof} | awk ' { gsub(/\.md5/,NIL); print $0 } ')
+                       echo    "Name    : ${profname}"
+                       echo -n "Desc    : "
+                       if [ -f ${PROFDIR}/${profname}.md5 ]; then
+                               cat ${PROFDIR}/${profname}.desc
+                       else
+                               echo "MISSING"
+                       fi
+                       echo -n "Created : "
+                       if [ -f ${PROFDIR}/${profname}.date ]; then
+                               cat ${PROFDIR}/${profname}.date
+                       else
+                               echo "MISSING"
+                       fi
+                       echo -n "md5sum  : "
+                       if [ -f ${PROFDIR}/${profname}.md5 ]; then
+                               cat ${PROFDIR}/${profname}.md5
+                       else
+                               echo "MISSING"
+                       fi
+                       echo -n "Files   : "
+                       if [ -f ${PROFDIR}/${profname}.files ]; then
+                               cat ${PROFDIR}/${profname}.files | xargs
+                       else
+                               echo "MISSING"
+                       fi
+                       echo
+               done
+               echo "End."
+               break
+               ;;
+         q)
+               QUIET=1; export QUIET;
+               ;;
+         *)
+               showhelp
+               exit 1
+               break
+               ;;
+       esac
+done
+
+if [ "$#" -le "0" -o "$OPTIND" -eq 1 ]; then
+       showhelp
+       exit 1
+fi
+
+exit 0
diff --git a/trunk/init/Makefile.am b/trunk/init/Makefile.am
new file mode 100644 (file)
index 0000000..8467c93
--- /dev/null
@@ -0,0 +1,9 @@
+@SET_MAKE@
+
+initdir = @initdir@
+
+init_DATA = random.conf rc.conf rcS-sulogin.conf rcS.conf udev.conf \
+       allowlogin.conf sys-chroots.conf cpusets.conf cryptsetup.conf local.conf \
+       modules.conf
+
+EXTRA_DIST = $(init_DATA)
diff --git a/trunk/init/allowlogin.conf b/trunk/init/allowlogin.conf
new file mode 100644 (file)
index 0000000..368011a
--- /dev/null
@@ -0,0 +1,40 @@
+description    "Allow users to login"
+
+start on pld.sysinit-done
+stop on pld.shutdown-started
+
+console output
+
+pre-start script
+       [ -f /etc/sysconfig/system ] && . /etc/sysconfig/system
+
+       # exit early without loading big init.d functions
+       case "$DELAY_LOGIN" in
+               yes|Yes|YES|true|True|TRUE|on|On|ON|Y|y|1)
+               ;;
+       *)
+               /sbin/initctl -q stop
+               ;;
+       esac
+end script
+
+script
+       # Source function library.
+       . /etc/rc.d/init.d/functions
+
+       if is_yes "$DELAY_LOGIN" && [ -f /etc/nologin.boot ]; then
+               run_cmd "Allowing users to login" rm -f /etc/nologin /etc/nologin.boot
+       fi
+       end script
+
+pre-stop script
+       # Source function library.
+       . /etc/rc.d/init.d/functions
+
+       # /etc/nologin when shutting down system
+       if is_yes "$DELAY_LOGIN" && [ ! -f /etc/nologin ]; then
+               nls "System shutdown in progress\n" > /etc/nologin
+               chmod 644 /etc/nologin
+               cp -fp /etc/nologin /etc/nologin.boot
+       fi
+end script
diff --git a/trunk/init/cpusets.conf b/trunk/init/cpusets.conf
new file mode 100644 (file)
index 0000000..a1c616a
--- /dev/null
@@ -0,0 +1,25 @@
+description "Creates/Removes all cpu sets configured to start at boot time."
+
+start on pld.sysinit-done
+stop on pld.shutdown-started
+
+console output
+task
+
+pre-start script
+       # test that cpusets are configured
+       . /etc/sysconfig/system
+       if [ "${CPUSETS:-no}" = "no" ]; then
+               /sbin/initctl -q stop
+       fi
+end script
+
+script
+       export USE_UPSTART=no
+       exec /etc/rc.d/init.d/cpusets start
+end script
+
+pre-stop script
+       export USE_UPSTART=no
+       exec /etc/rc.d/init.d/cpusets stop
+end script
diff --git a/trunk/init/cryptsetup.conf b/trunk/init/cryptsetup.conf
new file mode 100644 (file)
index 0000000..6b54819
--- /dev/null
@@ -0,0 +1,11 @@
+description "Disk encryption via cryptsetup"
+
+start on pld.sysinit-done
+stop on pld.shutdown-started
+
+task
+
+script
+       . /etc/rc.d/init.d/cryptsetup
+       init_crypto
+end script
diff --git a/trunk/init/local.conf b/trunk/init/local.conf
new file mode 100644 (file)
index 0000000..c2093db
--- /dev/null
@@ -0,0 +1,15 @@
+description "This script will be executed *after* all the other SysV style init scripts."
+
+# start when runlevel is reached (except 0 and 6)
+start on stopped rc RUNLEVEL=[!06]
+
+console output
+task
+
+pre-start script
+       test -f /etc/rc.d/rc.local
+end script
+
+script
+       . /etc/rc.d/rc.local
+end script
diff --git a/trunk/init/modules.conf b/trunk/init/modules.conf
new file mode 100644 (file)
index 0000000..f516ace
--- /dev/null
@@ -0,0 +1,38 @@
+# module-init-tools - load modules from /etc/modules
+#
+# This task loads the kernel modules specified in the /etc/modules file
+
+description "load modules from /etc/modules"
+
+start on (startup
+      and started udev)
+
+task
+
+script
+       {
+               read _x _y v _z
+               old_IFS=$IFS
+               # strip _* or -* from versions like: "2.6.25_vanilla-1", "2.6.25-1"
+               IFS='_-'
+               set -- $v
+               v1=${1}
+               IFS='.'
+               set -- $v1
+               IFS=$old_IFS
+
+               kernel="$1.$2"
+               kerneleq="$1.$2.$3"
+       } < /proc/version
+
+       # Loop over every line in modules file
+       ( \
+               grep -hvE '^(#|[[:blank:]]*$)' /etc/modules /etc/modules.$kernel /etc/modules.$kerneleq 2>/dev/null
+               echo '' # make sure there is a LF at the end
+       ) | while read module args; do
+               [ -z "$module" ] && continue
+               # strip comments
+               args=${args%%#*}
+               modprobe -s $module -- $args
+       done
+end script
diff --git a/trunk/init/random.conf b/trunk/init/random.conf
new file mode 100644 (file)
index 0000000..8575a49
--- /dev/null
@@ -0,0 +1,26 @@
+description "Save random entropy on shutdown and restore it at boot time"
+
+start on pld.sysinit-done
+stop on pld.shutdown-started
+
+env SEED_FILE=/var/run/random-seed
+
+pre-start script
+       poolfile=/proc/sys/kernel/random/poolsize
+       [ -r $poolfile ] && bytes="$(cat $poolfile)" || bytes=512
+       if [ -f $SEED_FILE ]; then
+               cat $SEED_FILE >/dev/urandom
+       else
+               touch $SEED_FILE
+       fi
+       chmod 600 $SEED_FILE
+       dd if=/dev/urandom of=$SEED_FILE count=1 bs=$bytes 2>/dev/null
+end script
+
+post-stop script
+       poolfile=/proc/sys/kernel/random/poolsize
+       [ -r $poolfile ] && bytes="$(cat $poolfile)" || bytes=512
+       touch $SEED_FILE
+       chmod 600 $SEED_FILE
+       dd if=/dev/urandom of=$SEED_FILE count=1 bs=$bytes 2>/dev/null
+end script
diff --git a/trunk/init/rc.conf b/trunk/init/rc.conf
new file mode 100644 (file)
index 0000000..aa11ac2
--- /dev/null
@@ -0,0 +1,28 @@
+description "rc - System V runlevel compatibility\
+             \
+             This task runs the old sysv-rc runlevel scripts.  It \
+             is usually started by the telinit compatibility wrapper."
+
+start on runlevel [0123456]
+stop on runlevel [!$RUNLEVEL]
+
+emits shutdown
+emits network
+
+# rc.sysinit
+emits pld.sysinit-done
+
+# rc.shutdown
+emits pld.shutdown-started
+
+# /etc/rc.d/init.d/network
+emits pld.network-starting
+emits pld.network-started
+emits pld.network-stopping
+emits pld.network-stopped
+
+task
+
+export RUNLEVEL
+console output
+exec /etc/rc.d/rc $RUNLEVEL
diff --git a/trunk/init/rcS-sulogin.conf b/trunk/init/rcS-sulogin.conf
new file mode 100644 (file)
index 0000000..cac14d7
--- /dev/null
@@ -0,0 +1,27 @@
+description "rcS-sulogin - 'single-user' runlevel compatibility \
+\
+This task runs /bin/sh during 'single-user' mode, \
+then continues to the default runlevel."
+
+start on runlevel S
+stop on runlevel [!S]
+
+emits runlevel
+
+console owner
+script
+       . /etc/rc.d/init.d/functions
+       if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+               exec /sbin/sulogin
+       else
+               exec /bin/sh
+       fi
+end script
+
+post-stop script
+       if [ "$RUNLEVEL" = "S" ]; then
+               runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab)
+               [ -z "$runlevel" ] && runlevel="3"
+               exec telinit $runlevel
+       fi
+end script
diff --git a/trunk/init/rcS.conf b/trunk/init/rcS.conf
new file mode 100644 (file)
index 0000000..570a288
--- /dev/null
@@ -0,0 +1,32 @@
+description "rcS - runlevel compatibility \
+\
+This task runs the old sysv-rc startup scripts."
+
+start on startup
+
+stop on runlevel
+
+emits all-swaps filesystem local-filesystems root-filesystem virtual-filesystems runlevel
+emits pld.sysinit-done
+
+task
+
+# Note: there can be no previous runlevel here, if we have one it's bad
+# information (we enter rc1 not rcS for maintenance).  Run /etc/rc.d/rc
+# without information so that it defaults to previous=N runlevel=S.
+console output
+exec /etc/rc.d/rc.sysinit
+
+post-stop script
+       if [ "$UPSTART_EVENTS" = "startup" ]; then
+               runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab)
+               [ -z "$runlevel" ] && runlevel="3"
+               for t in $(cat /proc/cmdline); do
+                       case $t in
+                               -s|single|S|s) runlevel="S" ;;
+                               [1-9])       runlevel="$t" ;;
+                       esac
+               done
+               exec telinit $runlevel
+       fi
+end script
diff --git a/trunk/init/sys-chroots.conf b/trunk/init/sys-chroots.conf
new file mode 100644 (file)
index 0000000..1d7e29e
--- /dev/null
@@ -0,0 +1,23 @@
+description "Starts and stops services in chroots"
+
+start on runlevel [0123456] and pld.sysinit-done
+stop on runlevel [!$RUNLEVEL]
+
+console output
+task
+
+pre-start script
+       # test that chroots are configured
+       . /etc/sysconfig/system
+       test -n "$SYSTEM_CHROOTS" || /sbin/initctl -q stop
+end script
+
+script
+       export USE_UPSTART=no
+       exec /etc/rc.d/init.d/sys-chroots start
+end script
+
+pre-stop script
+       export USE_UPSTART=no
+       exec /etc/rc.d/init.d/sys-chroots stop
+end script
diff --git a/trunk/init/udev.conf b/trunk/init/udev.conf
new file mode 100644 (file)
index 0000000..eeada65
--- /dev/null
@@ -0,0 +1,6 @@
+description "dummy job"
+
+# Dummy job so, the 'udev' dependecies are satisfied although udev is not
+# started by upstart"
+
+# vi: ft=upstart
diff --git a/trunk/inittab b/trunk/inittab
new file mode 100644 (file)
index 0000000..022bd36
--- /dev/null
@@ -0,0 +1,71 @@
+#
+# inittab      This file describes how the INIT process should set up
+#              the system in a certain run-level.
+#
+#              $Id$
+#
+# Author:      Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#              Modified for RHS Linux by Marc Ewing and Donnie Barnes
+#
+
+# Default runlevel. The runlevels used by PLD Linux are:
+#   0 - halt (Do NOT set initdefault to this)
+#   1 - Single user mode
+#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
+#   3 - Full multiuser mode
+#   4 - unused
+#   5 - X11
+#   6 - reboot (Do NOT set initdefault to this)
+#
+id:3:initdefault:
+
+# System initialization.
+si::sysinit:/etc/rc.d/rc.sysinit
+
+l0:0:wait:/etc/rc.d/rc 0
+l1:1:wait:/etc/rc.d/rc 1
+l2:2:wait:/etc/rc.d/rc 2
+l3:3:wait:/etc/rc.d/rc 3
+l4:4:wait:/etc/rc.d/rc 4
+l5:5:wait:/etc/rc.d/rc 5
+l6:6:wait:/etc/rc.d/rc 6
+
+# Trap CTRL-ALT-DELETE
+ca::ctrlaltdel:/sbin/shutdown -t3 -r now
+
+# Trap KeyboardSignal
+#kb::kbrequest:<insert your action here>
+
+# When our UPS tells us power has failed, assume we have a few minutes
+# of power left.  Schedule a shutdown for 2 minutes from now.
+# This does, of course, assume you have powerd installed and your
+# UPS connected and working correctly.
+pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
+
+# If power was restored before the shutdown kicked in, cancel it.
+pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
+
+# Run agetty on serial port
+#s0:12345:respawn:/sbin/agetty 115200 ttyS0 vt100
+#s1:12345:respawn:/sbin/agetty 115200 ttyS1 vt100
+
+# Run gettys in standard runlevels
+1:12345:respawn:/sbin/mingetty --noclear tty1
+2:2345:respawn:/sbin/mingetty tty2
+3:2345:respawn:/sbin/mingetty tty3
+4:2345:respawn:/sbin/mingetty tty4
+#5:2345:respawn:/sbin/mingetty tty5
+#6:2345:respawn:/sbin/mingetty tty6
+#7:2345:respawn:/sbin/mingetty tty7
+#8:2345:respawn:/sbin/mingetty tty8
+#9:2345:respawn:/sbin/mingetty tty9
+#10:2345:respawn:/sbin/mingetty tty10
+#11:2345:respawn:/sbin/mingetty tty11
+#12:2345:respawn:/sbin/mingetty tty12
+
+# Examples
+#9:2345:respawn:/sbin/mingetty --mono tty9
+#10:2345:respawn:/sbin/mingetty --remote-host=some.host.in.net.pl tty10
+
+# Run xdm in runlevel 5
+#x:5:respawn:/usr/bin/X11/xdm -nodaemon
diff --git a/trunk/isapnp/Makefile.am b/trunk/isapnp/Makefile.am
new file mode 100644 (file)
index 0000000..53970f3
--- /dev/null
@@ -0,0 +1,11 @@
+#
+#      $Id$
+#
+
+isapnpdir = @sysconfigdir@/isapnp
+
+isapnp_DATA = \
+       isapnp-kernel.conf
+
+EXTRA_DIST = \
+       $(isapnp_DATA)
diff --git a/trunk/isapnp/isapnp-kernel.conf b/trunk/isapnp/isapnp-kernel.conf
new file mode 100644 (file)
index 0000000..de1792a
--- /dev/null
@@ -0,0 +1,13 @@
+# $Id$
+# Example configuration for Sierra V.34 Data/Fax/Voice/VoiceView Speakerphone
+# internal modem usable only on 2.4 kernels with ISAPNP support compiled in.
+# Read /usr/src/linux/Documentation/isapnp.txt for more informations.
+
+#card 0 SSC0109
+#dev 0 SSC0000
+#deactivate
+#card 0 SSC0109
+#dev 0 SSC0000
+#port 0 744
+#irq 0 3
+#activate
diff --git a/trunk/lang.csh b/trunk/lang.csh
new file mode 100755 (executable)
index 0000000..2534c02
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/csh
+#
+# $Id$
+#
+# FIXME: this file is broken, as you can see it does nothing (does not actually load i18n file)
+# TODO: sync with lang.sh
+#
+
+test -f /etc/sysconfig/i18n
+if ($status == 0) then
+       if ($?LANG) then
+               setenv LANG
+       endif
+       if ($?LC_ALL) then
+               setenv LC_ALL
+       endif
+       if ($?LINGUAS) then
+               setenv LINGUAS
+       endif
+       if ($?SYSTERM) then
+               setenv TERM=$SYSTERM
+       endif
+       if ($?_XKB_CHARSET) then
+               setenv _XKB_CHARSET
+       endif
+       if ($?INPUTRC) then
+               setenv INPUTRC
+       endif
+       if ($?LESSCHARSET) then
+               setenv LESSCHARSET
+       else if ($TERM == linux-lat) then
+               setenv LESSCHARSET latin1
+       endif
+endif
diff --git a/trunk/lang.sh b/trunk/lang.sh
new file mode 100755 (executable)
index 0000000..b472fe1
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+#      $Id$
+#
+
+if [ -f /etc/sysconfig/i18n ]; then
+       ORG_LANG=$LANG
+       ORG_LC_ADDRESS=$LC_ADDRESS
+       ORG_LC_COLLATE=$LC_COLLATE
+       ORG_LC_CTYPE=$LC_CTYPE
+       ORG_LC_IDENTIFICATION=$LC_IDENTIFICATION
+       ORG_LC_MEASUREMENT=$LC_MEASUREMENT
+       ORG_LC_MESSAGES=$LC_MESSAGES
+       ORG_LC_MONETARY=$LC_MONETARY
+       ORG_LC_NAME=$LC_NAME
+       ORG_LC_NUMERIC=$LC_NUMERIC
+       ORG_LC_PAPER=$LC_PAPER
+       ORG_LC_TELEPHONE=$LC_TELEPHONE
+       ORG_LC_TIME=$LC_TIME
+       ORG_LC_ALL=$LC_ALL
+
+       . /etc/sysconfig/i18n
+
+       # we prefer session settings (that came from ssh for example)
+       # instead of system one
+
+       LANG=${ORG_LANG:-$LANG}
+       LC_ADDRESS=${ORG_LC_ADDRESS:-$LC_ADDRESS}
+       LC_COLLATE=${ORG_LC_COLLATE:-$LC_COLLATE}
+       LC_CTYPE=${ORG_LC_CTYPE:-$LC_CTYPE}
+       LC_IDENTIFICATION=${ORG_LC_IDENTIFICATION:-$LC_IDENTIFICATION}
+       LC_MEASUREMENT=${ORG_LC_MEASUREMENT:-$LC_MEASUREMENT}
+       LC_MESSAGES=${ORG_LC_MESSAGES:-$LC_MESSAGES}
+       LC_MONETARY=${ORG_LC_MONETARY:-$LC_MONETARY}
+       LC_NAME=${ORG_LC_NAME:-$LC_NAME}
+       LC_NUMERIC=${ORG_LC_NUMERIC:-$LC_NUMERIC}
+       LC_PAPER=${ORG_LC_PAPER:-$LC_PAPER}
+       LC_TELEPHONE=${ORG_LC_TELEPHONE:-$LC_TELEPHONE}
+       LC_TIME=${ORG_LC_TIME:-$LC_TIME}
+       LC_ALL=${ORG_LC_ALL:-$LC_ALL}
+
+       unset ORG_LANG ORG_LC_ADDRESS ORG_LC_COLLATE ORG_LC_CTYPE ORG_LC_IDENTIFICATION ORG_LC_MEASUREMENT
+       unset ORG_LC_MESSAGES ORG_LC_MONETARY ORG_LC_NAME ORG_LC_NUMERIC ORG_LC_PAPER ORG_LC_TELEPHONE
+       unset ORG_LC_TIME ORG_LC_ALL
+
+       [ "$LANG" ] && export LANG || unset LANG
+       [ "$LC_ADDRESS" ] && export LC_ADDRESS || unset LC_ADDRESS
+       [ "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+       [ "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+       [ "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION || unset LC_IDENTIFICATION
+       [ "$LC_MEASUREMENT" ] && export LC_MEASUREMENT || unset LC_MEASUREMENT
+       [ "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+       [ "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+       [ "$LC_NAME" ] && export LC_NAME || unset LC_NAME
+       [ "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+       [ "$LC_PAPER" ] && export LC_PAPER || unset LC_PAPER
+       [ "$LC_TELEPHONE" ] && export LC_TELEPHONE || unset LC_TELEPHONE
+       [ "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+       [ "$LC_ALL" ] && export LC_ALL || unset LC_ALL
+       [ "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+       [ "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+
+       [ "$_XKB_CHARSET" ] && export _XKB_CHARSET || unset _XKB_CHARSET
+
+       if [ "$INPUTRC" ]; then
+               export INPUTRC
+       fi
+
+       if [ "$LESSCHARSET" ]; then
+               export LESSCHARSET
+       elif [ "$TERM" = "linux-lat" ]; then
+               LESSCHARSET=latin1
+               export LESSCHARSET
+       fi
+fi
diff --git a/trunk/lib/Makefile.am b/trunk/lib/Makefile.am
new file mode 100644 (file)
index 0000000..22d17fb
--- /dev/null
@@ -0,0 +1,41 @@
+@SET_MAKE@
+
+sbin_SCRIPTS = \
+       ifdown \
+       ifup \
+       tnldown \
+       tnlup
+
+#scriptsdir = @networkscriptsdir@
+scriptsdir = @exec_prefix@/lib/$(PACKAGE)
+
+scripts_SCRIPTS = \
+       ifdown-br \
+       ifdown-irda \
+       ifdown-ppp \
+       ifdown-post \
+       ifdown-sl \
+       ifdown-vlan \
+       ifup-aliases \
+       ifup-br \
+       ifup-ipx \
+       ifup-irda \
+       ifup-iucv \
+       ifup-neigh \
+       ifup-plip \
+       ifup-plusb \
+       ifup-post \
+       ifup-ppp \
+       ifup-routes \
+       ifup-sl \
+       ifup-vlan
+
+scripts_DATA = \
+       functions \
+       functions.network
+
+EXTRA_DIST = \
+       $(sbin_SCRIPTS) \
+       $(scripts_SCRIPTS) \
+       $(scripts_DATA)
+
diff --git a/trunk/lib/functions b/trunk/lib/functions
new file mode 100644 (file)
index 0000000..e7debac
--- /dev/null
@@ -0,0 +1,1453 @@
+#!/bin/sh - keep it for file(1) to get bourne shell script result
+# functions    This file contains functions to be used by most or all
+#              shell scripts in the /etc/rc.d/init.d directory.
+#
+# $Id$
+#
+# Author:      Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+# Hacked by:   Greg Galloway and Marc Ewing
+# Modified for PLD Linux by:
+#              Marek Obuchowicz <elephant@pld-linux.org>
+#              Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#              Michał Kochanowicz <mkochano@pld-linux.org>
+#              Łukasz Pawelczyk <havner@pld-linux.org>
+
+# First set up a default search path.
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
+
+# Set defaults
+if [ -z "$COLUMNS" -o -z "$LINES" ]; then
+       _setterm() {
+               set -- $(stty size 2>/dev/null)
+               LINES=${LINES:-$1}
+               COLUMNS=${COLUMNS:-$2}
+       }
+       _setterm
+       unset _setterm
+fi
+[ -z "$LINES" ] || [ "$LINES" -le 0 ] && LINES=40
+[ -z "$COLUMNS" ] || [ "$COLUMNS" -le 0 ] && COLUMNS=80
+export LINES COLUMNS
+INIT_COL=$((COLUMNS - 13))
+
+# Set colors
+RED=1
+GREEN=2
+YELLOW=3
+BLUE=4
+MAGENTA=5
+CYAN=6
+WHITE=7
+NORMAL=15
+# Bold definition (second parameter to termput setaf)
+BOLD=1
+NOBOLD=0
+# Default colors
+CBRACKETS="$CYAN"      # brackets [ ] color
+CDONE="$GREEN"         # DONE and WORK color
+CBUSY="$MAGENTA"       # BUSY color
+CFAIL="$RED"           # FAIL and DIED color
+CPOWEREDBY="$CYAN"     # "Powered by" color
+CPLD="$GREEN"          # "PLD Linux Distribution" color
+CI="$RED"              # Capital I color (press I to enter interactive startup)
+CRESMAN="$GREEN"       # "Resource Manager" color
+CHARS=""               # Characters displayed on the beginning of show line
+CCHARS="$NORMAL"       # Color of these characters (look at /etc/sysconfig/init-colors.gentoo example)
+
+# save from env, set by /sbin/service
+env_upstart=$USE_UPSTART
+
+# Source configuration if available - may override default values
+[ -r /etc/sysconfig/init-colors ] && . /etc/sysconfig/init-colors
+[ -r /etc/sysconfig/system ] && . /etc/sysconfig/system
+[ -r /etc/sysconfig/bootsplash ] && . /etc/sysconfig/bootsplash
+
+[ "$env_upstart" ] && USE_UPSTART=$env_upstart
+
+if [ -z "$VSERVER" -o "$VSERVER" = "detect" ]; then
+       {
+               while read _f _ctx; do
+                       [ "$_f" = "VxID:" -o "$_f" = "s_context:" ] && break
+               done </proc/self/status
+       } 2>/dev/null
+       if [ -z "$_ctx" -o "$_ctx" = "0" ]; then
+               VSERVER=no
+       else
+               VSERVER=yes
+       fi
+       unset _f _ctx
+fi
+
+# VSERVER_ISOLATION_NET = isolation only inside of vserver guests
+if [ -z "$VSERVER_ISOLATION_NET" -o "$VSERVER_ISOLATION_NET" = "detect" ]; then
+       VSERVER_ISOLATION_NET=no
+       if [ "$VSERVER" = "yes" ]; then
+               if [ -f /proc/self/nsproxy ]; then
+                       {
+                               while read _t _data; do
+                                       [ "$_t" = "net:" ] && break
+                               done < /proc/self/nsproxy
+                       } 2> /dev/null
+               else
+                       # assume old kernel mode
+                       VSERVER_ISOLATION_NET=yes
+               fi
+               if [ "${_data##*\(}" = "I)" ]; then
+                       VSERVER_ISOLATION_NET=yes
+               fi
+               unset _f _data
+       fi
+fi
+
+# we need to know in functions if we were called from a terminal
+if [ -z "$ISATTY" ]; then
+       [ -t ] && ISATTY=yes || ISATTY=no
+       export ISATTY
+fi
+
+is_yes() {
+       # Test syntax
+       if [ $# = 0 ]; then
+               msg_usage " is_yes {value}"
+               return 2
+       fi
+
+       # Check value
+       case "$1" in
+       yes|Yes|YES|true|True|TRUE|on|On|ON|Y|y|1)
+               # true returns zero
+               return 0
+               ;;
+       *)
+               # false returns one
+               return 1
+               ;;
+       esac
+}
+
+is_no() {
+       # Test syntax
+       if [ $# = 0 ]; then
+               msg_usage " is_no {value}"
+               return 2
+       fi
+
+       case "$1" in
+       no|No|NO|false|False|FALSE|off|Off|OFF|N|n|0)
+               # true returns zero
+               return 0
+               ;;
+       *)
+               # false returns one
+               return 1
+               ;;
+       esac
+}
+
+# checks if file is empty
+# empty lines and lines beginning with hash are ignored
+is_empty_file() {
+       [ -s "$1" ] || return 0
+       grep -vqE "^(#|[[:blank:]]*$)" "$1" && return 1 || return 0
+}
+
+# returns OK if $1 contains $2
+strstr() {
+       local a=$2
+       [ "${1#*$a*}" = "$1" ] && return 1
+       return 0
+}
+
+if is_yes "$FASTRC" || is_yes "$IN_SHUTDOWN"; then
+       RC_LOGGING=no
+fi
+
+if is_no "$RC_LOGGING"; then
+       initlog() {
+               RESULT=0
+               while [ "$1" != "${1##-}" ]; do
+                       case $1 in
+                       -c)
+                               shift
+                               $1
+                               RESULT=$?
+                               break
+                               ;;
+                       *)
+                               shift
+                               ;;
+                       esac
+               done
+               return $RESULT
+       }
+fi
+
+kernelver() {
+       local _x _y _z v v1 old_IFS ver
+       {
+               read _x _y v _z
+               old_IFS=$IFS
+               # strip _* or -* from versions like: "2.6.25_vanilla-1", "2.6.25-1"
+               IFS='_-'
+               set -- $v
+               v1=${1}
+               IFS='.'
+               set -- $v1
+               IFS=$old_IFS
+
+               ver=${3}
+               while [ ${#ver} -lt 3 ]; do ver="0$ver"; done
+               ver="$2$ver"
+               while [ ${#ver} -lt 6 ]; do ver="0$ver"; done
+               ver="$1$ver"
+               while [ ${#ver} -lt 9 ]; do ver="0$ver"; done
+               echo $ver
+       } < /proc/version
+}
+
+kernelverser() {
+       local _x _y _z v v1 old_IFS ver
+       {
+               read _x _y v _z
+               old_IFS=$IFS
+               # strip _* or -* from versions like: "2.6.25_vanilla-1", "2.6.25-1"
+               IFS='_-'
+               set -- $v
+               v1=${1}
+               IFS='.'
+               set -- $v1
+               IFS=$old_IFS
+               ver=$2
+               while [ ${#ver} -lt 3 ]; do ver="0$ver"; done
+               ver="$1$ver"
+               while [ ${#ver} -lt 6 ]; do ver="0$ver"; done
+               echo $ver
+       } </proc/version
+}
+
+kernelvermser() {
+       local _x _y _z v v1 old_IFS ver
+       {
+               read _x _y v _z
+               old_IFS=$IFS
+               # strip _* or -* from versions like: "2.6.25_vanilla-1", "2.6.25-1"
+               IFS='_-'
+               set -- $v
+               v1=${1}
+               IFS='.'
+               set -- $v1
+               IFS=$old_IFS
+               ver="$1"
+               while [ ${#ver} -lt 3 ]; do ver="0$ver"; done
+               echo $ver
+       } </proc/version
+}
+
+# Colors workaround
+termput() {
+       is_yes "$ISATTY" || return
+
+       if is_yes "$FASTRC" || is_no "$TPUT"; then
+               case "$1" in
+               hpa)
+                       echo -ne "\033[$(($2+1))G"
+                       ;;
+               cuu*)
+                       echo -ne "\033[${2}A"
+                       ;;
+               el)
+                       echo -ne "\033[0K"
+                       ;;
+               setaf)
+                       local ISBOLD
+                       if [ -n "$3" ]; then
+                               ISBOLD="$3"
+                       else
+                               ISBOLD="$NOBOLD";
+                       fi
+                       is_yes "$COLOR_INIT" && echo -ne "\033[${ISBOLD};3${2}m"
+                       ;;
+               op)
+                       termput setaf $NORMAL
+                       ;;
+               esac
+       else
+               case "$1" in
+               hpa | cuu* | el)
+                       tput "$@"
+                       ;;
+               setaf)
+                       if [ "$3" = "1" ]; then tput bold; else tput sgr0; fi
+                       is_yes "$COLOR_INIT" && tput setaf "$2"
+                       ;;
+               op)
+                       termput setaf $NORMAL
+                       ;;
+               esac
+       fi
+}
+
+if [ ! -x /bin/printf ]; then
+       # printf equivalent
+       # FIXME: buggy when single or double quotes in message!
+       printf() {
+               local text m
+               text="$1"
+               shift
+               if [ $# -gt 0 ]; then
+                       m="$1"
+                       shift
+                       while [ $# -gt 0 ]; do
+                               m="$m\",\"$1"
+                               shift
+                       done
+               fi
+               awk "BEGIN {printf \"$text\", \"$m\"; }"
+       }
+fi
+
+# National language support function
+nls() {
+       local msg_echo nls_domain text message
+       msg_echo='\n'
+       nls_domain="$NLS_DOMAIN"
+       while [ "$1" != "${1##-}" ]; do
+               case "$1" in
+               --nls-domain)
+                       shift
+                       nls_domain="$1"
+                       shift
+                       ;;
+               -n)
+                       msg_echo=''
+                       shift
+                       ;;
+               esac
+       done
+       message="$1"
+       shift
+
+       # empty message, so we return --misiek
+       if [ -z "$message" ]; then
+               echo -en "$msg_echo"
+               return
+       fi
+
+       if is_yes "$GETTEXT"; then
+               message=$(TEXTDOMAINDIR="/etc/sysconfig/locale" gettext -e --domain="${nls_domain:-rc-scripts}" "$message")
+       fi
+
+       printf "$message" "$@"
+       echo -en "$msg_echo"
+}
+
+rc_splash() {
+       local action="$1"
+
+       if ! is_no "$BOOT_SPLASH" && ! is_yes "$VSERVER"; then
+               [ -x /bin/splash ] && /bin/splash "$action"
+       fi
+
+       : $((progress++))
+}
+
+msg_network_down() {
+       nls "ERROR: Networking is down. %s can't be run." "$1" >&2
+}
+
+msg_starting() {
+       show "Starting %s service" "$1"
+}
+
+msg_already_running() {
+       nls "%s service is already running." "$1"
+}
+
+msg_stopping() {
+       show "Stopping %s service" "$1"
+}
+
+msg_not_running() {
+       nls "%s service is not running." "$1"
+}
+
+msg_reloading() {
+       show "Reloading %s service" "$1"
+}
+
+msg_usage() {
+       nls "Usage: %s" "$*"
+}
+
+# Some functions to handle PLD Linux-style messages
+show() {
+       local text len
+
+       if is_no "$FASTRC" && is_yes "$GETTEXT"; then
+               text=$(nls -n "$@")
+       else
+               text=$(printf "$@")
+       fi
+       len=${#text}
+       while [ $((len++)) -lt $INIT_COL ]; do
+               text="$text."
+       done
+       if [ -n "$CHARS" ]; then
+               termput setaf $CCHARS
+               echo -n "$CHARS"
+               termput op
+       fi
+       echo -n "$text"
+}
+
+deltext() {
+       termput hpa $INIT_COL
+}
+
+# Displays message in square brackests ("[ DONE ]"). Takes two arguments.
+# First is the text to display, second is color number to use (argument to
+# tput setaf). If second argument is not given, default (2, green) will be
+# used).
+progress() {
+       local COLOR
+       if [ -n "$2" ]; then
+               COLOR="$2"
+       else
+               COLOR="$CDONE"
+       fi
+       deltext
+       echo -n "$(termput setaf $CBRACKETS)[$(termput setaf $COLOR) $(nls --nls-domain rc-scripts "$1") $(termput setaf $CBRACKETS)]$(termput op)"
+}
+
+busy() {
+       echo -n "$_busy"
+}
+
+ok() {
+       echo "$_ok"
+}
+
+started() {
+       echo "$_started"
+}
+
+fail() {
+       echo "$_fail"
+       return 1
+}
+
+died() {
+       echo "$_died"
+       return 1
+}
+
+# Check if $pid (could be plural) are running
+checkpid() {
+       while [ "$1" ]; do
+               [ -d "/proc/$1" ] && return 0
+               shift
+       done
+       return 1
+}
+
+# - outside chroot get only those processes, which are outside chroot.
+# - inside chroot get only those processes, which are inside chroot.
+# - don't filter out pids which do not have corresponding running processes (process died etc)
+# (note: some processes like named are chrooted but run outside chroot)
+# - do nothing inside vserver
+filter_chroot() {
+       if is_yes "$VSERVER"; then
+               echo $@
+               return
+       fi
+       if [ $# -lt 1 -o ! -d /proc/1 ]; then
+               echo $@
+               return
+       fi
+       local root_dir good_pids="" good_add_pid
+       for root_pid in $@; do
+               root_dir=$(resolvesymlink /proc/${root_pid}/root)
+               if [ -n "$root_dir" ]; then
+                       good_add_pid=1
+                       if [ -n "${SYSTEM_CHROOTS}" ]; then
+                               for r_dir in ${SYSTEM_CHROOTS}; do
+                                       echo "$root_dir" | grep -q "^${r_dir}" && good_add_pid=0
+                               done
+                       fi
+                       [ "$good_add_pid" -eq 1 ] && good_pids="$good_pids $root_pid"
+               elif [ ! -d "/proc/$root_pid" ]; then
+                       good_pids="$good_pids $root_pid"
+               fi
+       done
+       echo $good_pids
+}
+
+# Usage:
+# run_cmd Message command_to_run
+# run_cmd -a Message command_to_run
+# run_cmd --user "username" "Message" command_to_run
+run_cmd() {
+       local force_err=0 exit_code=0 errors user
+       while [ $# -gt 0 ]; do
+               case "$1" in
+               -a)
+                       force_err=1
+                       ;;
+               --user)
+                       shift
+                       user=$1
+                       ;;
+               *)
+                       break
+               esac
+               shift
+       done
+
+       local message=$1; shift
+       show "$message"; busy
+
+       if errors=$(
+               cd /
+               export HOME=/tmp TMPDIR=/tmp
+               if is_no "$RC_LOGGING"; then
+                       ${user:+setuidgid -s $user} "$@" 2>&1
+               else
+                       ${user:+setuidgid -s $user} initlog -c "$*" 2>&1
+               fi
+               ); then
+               ok
+               log_success "$1 $message"
+       else
+               fail
+               log_failed "$1 $message"
+               exit_code=1
+       fi
+       [ -n "$errors" ] && [ $exit_code -eq 1 -o $force_err -eq 1 ] && echo "$errors"
+       return $exit_code
+}
+
+_daemon_set_ulimits() {
+       local opt val ksh=${KSH_VERSION:+1}
+       set -- ${SERVICE_LIMITS:-$DEFAULT_SERVICE_LIMITS}
+       while [ $# -gt 0 ]; do
+               opt=$1
+               val=$2
+               if [ "$ksh" ]; then
+                       case "$opt" in
+                       -Hu)
+                               opt=-Hp
+                       ;;
+                       -Su)
+                               opt=-Sp
+                       ;;
+                       -u)
+                               opt=-p
+                       ;;
+                       esac
+               fi
+               ulimit $opt $val
+               shift 2
+       done
+}
+
+# A function to start a program (now it's useful on read-only filesystem too)
+daemon() {
+       local errors="" prog="" end="" waitname="" waittime=""
+       local exit_code=0
+       local nice=$SERVICE_RUN_NICE_LEVEL
+       local fork user closefds redirfds pidfile makepid chdir=/
+
+       # NOTE: if you wonder how the shellish (by syntax) $prog works in ssd mode,
+       # then the answer is: it totally ignores $prog and uses "$@" itself.
+
+       while [ $# -gt 0 ]; do
+               case $1 in
+               '')
+               msg_usage " daemon [--check] [--user user] [--fork] [--chdir directory] [--closefds] [--redirfds] [--waitforname procname] [--waitfortime seconds] [--pidfile file] [--makepid] [+/-nicelevel] {program} <program args>"
+                       return 2
+                       ;;
+               --check)
+                       # for compatibility with redhat/mandrake
+                       nls "warning: --check option is ignored!"
+                       shift
+                       ;;
+               --user)
+                       shift
+                       user=$1
+                       ;;
+               --fork)
+                       fork=1
+                       end='&'
+                       ;;
+               --chdir)
+                       shift
+                       chdir=$1
+                       ;;
+               --closefds)
+                       closefds=1
+                       ;;
+               --redirfds)
+                       redirfds=1
+                       ;;
+               --waitforname)
+                       shift
+                       waitname="$1"
+                       ;;
+               --waitfortime)
+                       shift
+                       waittime="$1"
+                       ;;
+               --pidfile)
+                       shift
+                       pidfile="$1"
+                       case "$pidfile" in /*);; *) pidfile="/var/run/$pidfile";; esac
+                       ;;
+               --makepid)
+                       makepid=1
+                       ;;
+               -*|+*)
+                       nice=$1
+                       shift
+                       break
+                       ;;
+               *)
+                       break
+                       ;;
+               esac
+               shift
+       done
+       if [ -n "$user" -a "$user" != "root" ]; then
+               prog="/bin/su $user -s /bin/sh -c \""
+       fi
+       if [ "$fork" = "1" ]; then
+               prog="/usr/bin/setsid ${prog:-sh -c \"}"
+       fi
+       # If command to execute ends with quotation mark, add remaining
+       # arguments and close quotation.
+       if [ "$prog" != "${prog%\"}" ]; then
+               prog="$prog $*$end\""
+       else
+               prog="$prog $*$end"
+       fi
+
+       _daemon_set_ulimits
+
+       [ -z "$DEFAULT_SERVICE_UMASK" ] && DEFAULT_SERVICE_UMASK=022
+       [ -z "$DEFAULT_SERVICE_RUN_NICE_LEVEL" ] && DEFAULT_SERVICE_RUN_NICE_LEVEL=0
+
+       # And start it up.
+       busy
+       cd $chdir
+       [ -n "$SERVICE_CPUSET" ] && is_yes "$CPUSETS" && echo $$ > "/dev/cpuset/${SERVICE_CPUSET}/tasks"
+       if errors=$(
+               umask ${SERVICE_UMASK:-$DEFAULT_SERVICE_UMASK};
+               export USER=root HOME=/tmp TMPDIR=/tmp
+
+               nice=${nice:-$DEFAULT_SERVICE_RUN_NICE_LEVEL}
+               nice=${nice:-0}
+
+               # make nice level absolute, not to be dependant of nice level of shell where service started
+               nice=$(($nice - $(nice)))
+
+               if [ "$closefds" = 1 ]; then
+                       exec 1>&-
+                       exec 2>&-
+                       exec 0>&-
+               elif [ "$redirfds" = 1 ]; then
+                       exec 1>/dev/null
+                       exec 2>/dev/null
+                       exec 0>/dev/null
+               else
+                       exec 2>&1
+               fi
+
+               if is_no "$RC_LOGGING"; then
+                       prog=$1; shift
+                       if [ ! -x $prog ]; then
+                               logger -t rc-scripts -p daemon.debug "daemon: Searching PATH for $prog, consider using full path in initscript"
+                               local a o=$IFS
+                               IFS=:
+                               for a in $PATH; do
+                                       if [ -x $a/$prog ]; then
+                                               prog=$a/$prog
+                                               break
+                                       fi
+                               done
+                               IFS=$o
+                       fi
+                       /sbin/start-stop-daemon -q --start \
+                               --nicelevel $nice \
+                               ${pidfile:+--pidfile $pidfile} \
+                               ${makepid:+--make-pidfile} \
+                               ${user:+--chuid $user} \
+                               ${chdir:+--chdir "$chdir"} \
+                               ${fork:+--background} \
+                               ${waitname:+--name $waitname} \
+                               ${SERVICE_DROPCAPS:+--dropcap $SERVICE_DROPCAPS} \
+                               --exec "$prog" \
+                               -- ${1:+"$@"}
+               else
+                       nice -n $nice initlog -c "$prog" 2>&1 </dev/null
+               fi
+               ); then
+
+               if [ -n "$waitname" -a -n "$waittime" ]; then
+                       # Save basename.
+                       base=${waitname##*/}
+                       # Find pid.
+                       pid=$(pidofproc "$waitname" "$pidfile")
+                       [ -z "$pid" ] && pid=$(pidofproc "$base" "$pidfile")
+                       i=0
+                       while [ "$i" -lt "$waittime" ]; do
+                               i=$((i + 1))
+                               checkpid $pid && sleep 1 || break
+                       done
+               fi
+               log_success "$1 startup"
+               ok
+       else
+               exit_code=1
+               fail
+               log_failed "$1 startup"
+               [ -n "$errors" ] && echo >&2 "$errors"
+       fi
+       return $exit_code
+}
+
+# A function to stop a program.
+killproc() {
+       local notset killlevel base pid pidfile result
+       # Test syntax.
+       if [ $# = 0 ]; then
+               msg_usage " killproc [--pidfile PIDFILE] {program} [-SIGNAME]"
+               return 2
+       fi
+
+       while [ "$1" != "${1##-}" ]; do
+               case $1 in
+               --pidfile|-p)
+                       pidfile="$2"
+                       case "$pidfile" in /*);; *) pidfile="/var/run/$pidfile";; esac
+                       shift 2
+                       ;;
+               --waitforname)
+                       waitname="$2"
+                       shift 2
+                       ;;
+               --waitfortime)
+                       waittime="$2"
+                       shift 2
+                       ;;
+               esac
+       done
+
+       busy
+
+       local notset=0
+       # check for second arg to be kill level
+       if [ -n "$2" ]; then
+               killlevel=$2
+       else
+               notset=1
+       fi
+
+       # experimental start-stop-daemon based killing.
+       # works only with pidfile
+       if is_no "$RC_LOGGING" && [ "$pidfile" ]; then
+               local sig=${killlevel:--TERM} retry
+               # retry only if signal is not specified,
+               # as otherwise impossible to send HUP if process pid stays in pidfile.
+               if [ "${killlevel+set}" = "set" ]; then
+                       # if we send HUP it's ok if process does not die
+                       retry="--oknodo"
+               else
+                       retry="--retry ${sig#-}/10/${sig#-}/60/KILL/10"
+               fi
+               /sbin/start-stop-daemon -q --stop \
+                       $retry \
+                       -s ${sig#-} \
+                       ${pidfile:+--pidfile $pidfile}
+               result=$?
+               if [ "$result" -eq 0 ]; then
+                       ok
+               else
+                       fail
+               fi
+               return $result
+       fi
+
+
+       # Save basename.
+       base=${1##*/}
+
+       # Find pid.
+       pid=$(pidofproc "$1" "$pidfile")
+       [ -z "$pid" ] && pid=$(pidofproc "$base" "$pidfile")
+
+       # Kill it.
+       if [ -n "$pid" -a "$pid" != "$$" ] && checkpid $pid 2>&1; then
+               if [ "$notset" = "1" ]; then
+                       if checkpid $pid 2>&1; then
+                               # TERM first, then KILL if not dead
+                               kill -TERM $pid
+                               usleep 100000
+                               if checkpid $pid && sleep 1 &&
+                                       checkpid $pid && sleep 3 &&
+                                       checkpid $pid; then
+                                       # XXX: SIGKILL is sent already on 4th second!
+                                       # HARMFUL for example to mysqld (which is already workarounded)
+                                       kill -KILL $pid
+                                       usleep 100000
+                               fi
+                       fi
+                       checkpid $pid
+                       result=$?
+                       if [ "$result" -eq 0 ]; then
+                               fail
+                               log_failed "$1 shutdown"
+                       else
+                               ok
+                               log_success "$1 shutdown"
+                       fi
+                       result=$(( ! $result ))
+               else
+                       # use specified level only
+                       if checkpid $pid > /dev/null 2>&1; then
+                               kill $killlevel $pid
+                               result=$?
+                               if [ "$result" -eq 0 ]; then
+                                       ok
+                                       log_success "$1 got $killlevel"
+                               else
+                                       result=7
+                                       fail
+                                       log_failed "$1 didn't get $killlevel"
+                               fi
+                       else
+                               result=7
+                               died
+                               log_failed "$1 shutdown"
+                       fi
+               fi
+       else
+               died
+               log_failed "$1 shutdown"
+               result=7
+       fi
+
+       if [ -n "$waitname" -a -n "$waittime" ]; then
+               # Save basename.
+               base=${waitname##*/}
+               # Find pid.
+               pid=$(pidofproc "$waitname" "$pidfile")
+               [ -z "$pid" ] && pid=$(pidofproc "$base" "$pidfile")
+               i=0
+               while [ "$i" -lt "$waittime" ]; do
+                       i=$(( i + 1 ))
+                       checkpid $pid && sleep 1 || break
+               done
+       fi
+
+       # Remove pid file if any.
+       if [ "$notset" = "1" ]; then
+               rm -f /var/run/${base}.pid
+       fi
+
+       return $result
+}
+
+# A function to find the pid of a program.
+pidofproc() {
+       local pid pidfile base=${1##*/}
+       pidfile="$base.pid"
+       [ -n "$2" ] && pidfile="$2"
+
+       # Test syntax.
+       if [ $# = 0 ]; then
+               msg_usage " pidofproc {program}"
+               return 2
+       fi
+
+       # First try pidfile or "/var/run/*.pid"
+       case "$pidfile" in
+               /*)pidfile="${pidfile}";;
+               *) pidfile="/var/run/$pidfile";;
+       esac
+       if [ -f "${pidfile}" ]; then
+               local p pid=""
+               for p in $(< "${pidfile}"); do
+                       [ -z "$(echo "$p" | awk '{gsub(/[0-9]/,"");print;}')" ] && pid="$pid $p"
+               done
+       fi
+
+       # Next try "pidof"
+       [ -z "$pid" ] && pidof -o $$ -o $PPID -o %PPID -x "$1"
+       pid=$(filter_chroot "$pid")
+       echo $pid
+}
+
+# status [--pidfile PIDFILE] {subsys} [{daemon}]"
+status() {
+       local pid subsys daemon cpuset_msg pidfile
+       if [ "$1" = "--pidfile" -o "$1" = "-p" ]; then
+               pidfile=$2
+               case "$pidfile" in /*);; *) pidfile="/var/run/$pidfile";; esac
+               shift 2
+       fi
+
+       subsys=$1
+       daemon=${2:-$subsys}
+
+       # Test syntax.
+       if [ $# = 0 ]; then
+               msg_usage " status [--pidfile PIDFILE] {subsys} [{daemon}]"
+               return 2
+       fi
+
+       # if pidfile specified, pid must be there
+       if [ "$pidfile" ]; then
+               [ -f "$pidfile" ] && read pid < $pidfile
+               # filter_chroot does not filter out dead pids, so this extra check, see t/status-pidfile.sh
+               if [ ! -d "/proc/$pid" ]; then
+                       pid=
+               fi
+       else
+               pid=$(pidof -o $$ -o $PPID -o %PPID -x $daemon)
+       fi
+       pid=$(filter_chroot "$pid")
+
+       if [ "$pid" ]; then
+               cpuset_msg="..."
+               if [ -n "$SERVICE_CPUSET" ] && is_yes "$CPUSETS"; then
+                       if grep -q "$pid" "/dev/cpuset/${SERVICE_CPUSET}/tasks"; then
+                               cpuset_msg=$(nls " in cpuset %s..." "$SERVICE_CPUSET")
+                       else
+                               cpuset_msg=$(nls " outside of configured cpuset %s..." "$SERVICE_CPUSET")
+                       fi
+               fi
+               nls "%s (pid %s) is running%s" "$daemon" "$pid" "$cpuset_msg"
+               return 0
+       fi
+
+       # Next try "/var/run/*.pid" files; if pidfile is not set
+       local base=${daemon##*/}
+       if [ -z "$pidfile" -a -f /var/run/${base}.pid ]; then
+               read pid < /var/run/${base}.pid
+               pid=$(filter_chroot "$pid")
+               if [ "$pid" ]; then
+                       nls "%s dead but pid file (%s) exists" "$subsys" /var/run/${base}.pid
+                       return 1
+               fi
+       fi
+
+       # See if /var/lock/subsys/$subsys exists
+       if [ -f /var/lock/subsys/$subsys ]; then
+               nls "daemon %s dead but subsys (%s) locked" "$daemon" "$subsys"
+               return 2
+       fi
+       nls "%s is stopped" "$subsys"
+       return 3
+}
+
+# Confirm whether we really want to run this service
+confirm() {
+       local answer
+       nls -n "Start service %s (Y)es/(N)o/(C)ontinue? [Y] " "$1"
+       read answer
+       case $answer in
+       y|Y|t|T|j|J|"")
+               return 0
+               ;;
+       c|C|k|K|w|W)
+               return 2
+               ;;
+       n|N)
+               return 1
+               ;;
+       *)
+               confirm $1
+               return $?
+               ;;
+       esac
+}
+
+# module is needed (ie. is requested, is available and isn't loaded already)
+is_module() {
+       # module name without .o at end
+       if ! lsmod | grep -q "$1"; then
+               if ls -1R /lib/modules/$(uname -r)/ 2> /dev/null | grep -q "^${1}.\(\|k\)o\(\|.gz\)"; then
+                       # true
+                       return 0
+               fi
+       fi
+       # false
+       return 1
+}
+
+_modprobe() {
+       local parsed single die args foo result
+       parsed=no
+       while is_no "$parsed"; do
+               case "$1" in
+               "single")
+                       single=yes
+                       shift
+                       ;;
+               "die")
+                       die=yes
+                       shift
+                       ;;
+               -*)
+                       args="$args $1"
+                       shift
+                       ;;
+               *)
+                       parsed=yes
+                       ;;
+               esac
+       done
+       if is_yes "${single}"; then
+               foo="$@"
+               show "Loading %s kernel module(s)" "$foo"
+               busy
+       fi
+       if [ -x /sbin/modprobe ]; then
+               /sbin/modprobe -s $args "$@"
+               result=$?
+       else
+               deltext; fail
+               result=1
+       fi
+       if is_yes "${single}"; then
+               deltext
+               if [ $result = "0" ]; then
+                       is_yes "$single" && ok
+               else
+                       fail
+                       if is_yes "$die"; then
+                               nls "Could not load %s kernel module(s)" "$@"
+                               exit 1
+                       fi
+               fi
+       fi
+}
+
+if is_no "$RC_LOGGING"; then
+       log_success() {
+               :
+       }
+
+       log_failed() {
+               :
+       }
+else
+       log_success() {
+               initlog -n $0 -s "$1 $2" -e 1
+       }
+
+       log_failed() {
+               initlog -n $0 -s "$1 $2" -e 2
+       }
+fi
+
+# Check if any flavor of portmapper is running
+check_portmapper() {
+       if [ -x /usr/sbin/rpcinfo ]; then
+               if /usr/sbin/rpcinfo -p localhost >/dev/null 2>/dev/null; then
+                       return 0
+               else
+                       return 1
+               fi
+       elif [ -z "$(pidof portmap)" -a -z "$(pidof rpcbind)" ]; then
+               return 1
+       fi
+       return 0
+}
+
+# is_fsmounted fstype mntpoint
+# Check if filesystem fstype is mounted on mntpoint
+is_fsmounted() {
+       local fstype=$1
+       local mntpoint=$2
+
+       [ -n "$fstype" -a -n "$mntpoint" ] || return 1
+
+       if [ -r /proc/mounts ]; then
+               grep -qE "[[:blank:]]$mntpoint[[:blank:]]+$fstype[[:blank:]]" /proc/mounts
+               return $?
+       else
+               if [ "$(stat -L -f -c %T $mntpoint 2>/dev/null)" = "$fstype" ]; then
+                       return 0
+               else
+                       return 1
+               fi
+       fi
+}
+
+# __umount_loop awk_program fstab_file first_msg retry_msg umount_args
+# awk_program should process fstab_file and return a list of fstab-encoded
+# paths; it doesn't have to handle comments in fstab_file.
+__umount_loop() {
+       local remaining sig=
+       local retry=3 count
+
+       remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r)
+       while [ -n "$remaining" -a "$retry" -gt 0 ]; do
+               if [ "$retry" -eq 3 ]; then
+                       run_cmd "$3" fstab-decode umount $5 $remaining
+               else
+                       run_cmd "$4" fstab-decode umount $5 $remaining
+               fi
+               count=4
+               remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r)
+               while [ "$count" -gt 0 ]; do
+                       [ -z "$remaining" ] && break
+                       count=$(($count-1))
+                       usleep 500000
+                       remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r)
+               done
+               [ -z "$remaining" ] && break
+               fstab-decode /bin/fuser -k -m $sig $remaining >/dev/null
+               sleep 3
+               retry=$(($retry -1))
+               sig=-9
+       done
+}
+
+# Similar to __umount loop above, specialized for loopback devices
+__umount_loopback_loop() {
+       local remaining devremaining sig=
+       local retry=3
+
+       remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts)
+       devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts)
+       while [ -n "$remaining" -a "$retry" -gt 0 ]; do
+               if [ "$retry" -eq 3 ]; then
+                       run_cmd "Unmounting loopback filesystems: " \
+                               fstab-decode umount $remaining
+               else
+                       run_cmd "Unmounting loopback filesystems (retry):" \
+                               fstab-decode umount $remaining
+               fi
+               for dev in $devremaining ; do
+                       losetup $dev > /dev/null 2>&1 && \
+                               run_cmd "Detaching loopback device $dev: " \
+                               losetup -d $dev
+               done
+               remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts)
+               devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts)
+               [ -z "$remaining" ] && break
+               fstab-decode /bin/fuser -k -m $sig $remaining >/dev/null
+               sleep 3
+               retry=$(($retry -1))
+               sig=-9
+       done
+}
+
+rc_cache_init() {
+       # If we have cachefile, use it.
+       # If we don't, create memory variables and try to save silently,
+       local cachefile='/var/cache/rc-scripts/msg.cache'
+
+       local term
+       if is_yes "$ISATTY"; then
+               term=$TERM
+       else
+               term=dumb
+       fi
+
+       # We create $check variable which is used to invalidate the cache.
+       # The $check contains user locale and terminal.
+       local check="$term.$LC_MESSAGES.$INIT_COL"
+
+       if [ -f "$cachefile" -a "$cachefile" -nt /etc/sysconfig/system -a "$cachefile" -nt /etc/sysconfig/init-colors ]; then
+               if . "$cachefile" 2>/dev/null; then
+                       if [ "$check" = "$_check" ]; then
+                               return
+                       fi
+               fi
+       fi
+
+       # primitive caching
+       _busy=$(progress "BUSY" "$CBUSY")
+       _ok=$(progress "DONE")
+       _started=$(progress "WORK")
+       _fail=$(progress "FAIL" "$CFAIL")
+       _died=$(progress "DIED" "$CFAIL")
+
+       # we don't use heredoc, as ksh attempts to create tempfile then
+       (> "$cachefile" ) 2>/dev/null || return
+       echo "_busy='$_busy';" >> "$cachefile"
+       echo "_ok='$_ok';" >> "$cachefile"
+       echo "_started='$_started';" >> "$cachefile"
+       echo "_fail='$_fail';" >> "$cachefile"
+       echo "_died='$_died';" >> "$cachefile"
+       echo "_check='$check';" >> "$cachefile"
+}
+
+rc_gettext_init() {
+       if [ -z "$GETTEXT" ]; then
+               if [ -x /bin/gettext -o -x /usr/bin/gettext ]; then
+                       GETTEXT=yes
+               else
+                       GETTEXT=no
+               fi
+       fi
+
+       if [ -z "$TPUT" ]; then
+               if [ -d /usr/share/terminfo ] && [ -x /usr/bin/tput -o -x /bin/tput ]; then
+                       TPUT=yes
+                       # check if we are on proper terminal
+                       tput longname >/dev/null 2>&1 || TPUT=no
+               else
+                       TPUT=no
+               fi
+       fi
+}
+
+use_upstart () {
+       # True when upstart-event-based boot should be used
+       is_yes "$USE_UPSTART" && return 0
+       is_no "$USE_UPSTART" && return 1
+       if [ ! -x /sbin/initctl ] ; then
+               USE_UPSTART="no"
+               return 1
+       fi
+       local cmdline=$(cat /proc/cmdline 2>/dev/null)
+       if strstr "$cmdline" "pld.no-upstart" ; then
+               USE_UPSTART="no"
+               return 1
+       else
+               USE_UPSTART="yes"
+               return 0
+       fi
+}
+
+emit () {
+       # emit upstart signal
+       # only when 'upstart' boot is enabled
+       use_upstart || return 0
+       /sbin/initctl emit "$@"
+}
+
+is_upstart_task() {
+       # Return 0 if the given service is an upstart task.
+       grep -q '^task' "/etc/init/$1.conf"
+}
+is_upstart_running() {
+       # Return 0 if the given service is running via upstart
+       initctl status "$1" 2>/dev/null | grep -q running
+}
+upstart_start() {
+       local service=$1
+       if is_upstart_running "${service}"; then
+               msg_already_running "$service"
+               return 0
+       fi
+
+       msg_starting "${service}"
+       if errors=$(/sbin/initctl start ${service} 2>&1) ; then
+               ok
+               return 0
+       else
+               fail
+               echo "$errors" >&2
+               return 1
+       fi
+}
+upstart_stop() {
+       local service=$1
+       if ! is_upstart_running "${service}"; then
+               msg_not_running "$name"
+               return 0
+       fi
+       msg_stopping "${service}"
+       if errors=$(/sbin/initctl stop ${service}) ; then
+               ok
+               return 0
+       else
+               fail
+               echo "$errors" >&2
+               return 1
+       fi
+}
+upstart_reload() {
+       local service=$1
+       if ! is_upstart_running "${service}" && ! is_upstart_task "${service}" ; then
+               return 0
+       fi
+       msg_reloading "${service}"
+       if errors=$(/sbin/initctl reload ${service}) ; then
+               ok
+               return 0
+       else
+               fail
+               echo "$errors" >&2
+               return 1
+       fi
+}
+upstart_status() {
+       # get service status
+       # should be compliant with
+       # http://refspecs.freestandards.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
+       local service=$1
+       local status
+       if is_upstart_task "${service}" ; then
+               # we probably should have a way to handle task status
+               return 0
+       fi
+       if ! status=$(/sbin/initctl status "${service}") ; then
+               # program or service status is not known
+               return 4
+       fi
+       if strstr "$status" "running" ; then
+               # program is running or service is OK
+               echo "$status"
+               return 0
+       else
+               # program is not running
+               echo "$status"
+               return 3
+       fi
+       # TODO: other statuses
+}
+
+_upstart_controlled() {
+       # If the service is to be handled by upstart
+       # execute the start/stop/etc. commands the upstart way
+       if ! use_upstart; then
+               return 0
+       fi
+       local script=$1
+       shift
+       local command=$1
+       [ $# -gt 0 ] && shift
+       local name=$(basename "$script")
+       if [ ! -f /etc/init/${name}.conf ] ; then
+               return 0
+       fi
+       local commands
+       local extra_commands
+       local has_configtest
+       if [ "$1" = "--except" ] ; then
+               shift
+               commands="$*"
+               for cmd in $commands ; do
+                       if [ "$command" = "$cmd" ] ; then
+                               return 0
+                       fi
+                       case "$cmd" in
+                               start|stop|status|reload|restart|try-restart|force-reload)
+                                       ;;
+                               configtest)
+                                       has_configtest=yes
+                                       extra_commands="|$cmd"
+                                       ;;
+                               *)
+                                       extra_commands="|$cmd"
+                                       ;;
+                       esac
+               done
+       elif [ -n "$*" ] ; then
+               commands="$*"
+               local cmd
+               local found=0
+               # is there a better way
+               for cmd in $commands ; do
+                       if [ "$command" = "$cmd" ] ; then
+                               found=1
+                               break;
+                       fi
+               done
+               if [ $found = 0 ] ; then
+                       # let the script handle it
+                       return 0
+               fi
+       fi
+       case "$command" in
+               start)
+                       upstart_start $name
+                       exit $?
+                       ;;
+               stop)
+                       upstart_stop $name
+                       exit $?
+                       ;;
+               status)
+                       upstart_status $name
+                       exit $?
+                       ;;
+               restart)
+                       if is_yes "$has_configtest" ; then
+                               "$script" configtest || exit 1
+                       fi
+                       upstart_stop $name
+                       upstart_start $name
+                       exit $?
+                       ;;
+               try-restart)
+                       if ! is_upstart_running "$name" ; then
+                               exit 0
+                       fi
+                       if is_yes "$has_configtest" ; then
+                               "$script" configtest || exit 1
+                       fi
+                       upstart_stop $name
+                       upstart_start $name
+                       exit $?
+                       ;;
+               reload)
+                       if is_yes "$has_configtest" ; then
+                               "$script" configtest || exit 1
+                       fi
+                       if is_upstart_task "$name" ; then
+                               nls "$command not implemented for $name"
+                               exit 3
+                       else
+                               upstart_reload "$name"
+                               exit $?
+                       fi
+                       ;;
+               force-reload)
+                       if is_yes "$has_configtest" ; then
+                               "$script" configtest || exit 1
+                       fi
+                       if is_upstart_task "$name" ; then
+                               upstart_stop "$name"
+                               upstart_start "$name"
+                               exit $?
+                       else
+                               upstart_reload "$name"
+                               exit $?
+                       fi
+                       ;;
+               *)
+                       msg_usage "$0 {start|stop|restart|reload|force-reload|status$extra_commands}"
+                       exit 3
+                       ;;
+       esac
+       return 1 # should not happen
+}
+
+# Usage:
+#      somewhere at the begining of init script:
+#     upstart_controlled
+#              - to pass implement all upstart commands via initctl
+#                 start, stop, status, restart, reload and force_reload
+#                are implemented
+#     upstart_controlled command...
+#              - to pass handle only specific commands the upstart way
+#                 and leave the rest to the script
+#
+alias upstart_controlled='_upstart_controlled $0 "$@"'
+
+rc_gettext_init
+rc_cache_init
+
+#/*
+# * Local variables:
+# * mode: sh
+# * indent-tabs-mode: notnil
+# * End:
+# *
+# */
diff --git a/trunk/lib/functions.network b/trunk/lib/functions.network
new file mode 100644 (file)
index 0000000..6b03d4b
--- /dev/null
@@ -0,0 +1,692 @@
+#!/bin/sh - keep it for file(1) to get bourne shell script result
+#
+# $Id$
+#
+# This is not a shell script; it provides functions to network scripts
+# that source it.
+
+source_config ()
+{
+       local foundconfig=0
+
+       DEVNAME=${CONFIG##*/}
+       DEVNAME=${DEVNAME##ifcfg-}
+       DEVNAME=${DEVNAME##tnlcfg-}
+
+       if [[ "$CONFIG" = /* ]]; then
+               if [ -f "$CONFIG" ]; then
+                       . "$CONFIG"
+                       foundconfig=1
+               fi
+       elif [ -f "/etc/sysconfig/interfaces/$CONFIG" ]; then
+               . "/etc/sysconfig/interfaces/$CONFIG"
+               foundconfig=1
+       fi
+
+       # This is sanity check so that if you've copied ifcfg-eth0 to ifcfg-eth1
+       # and forgot to alter DEVICE= line you won't accidentally bring down eth0
+       # while executing ifdown eth1. We do that only if configuration file exists
+       # (sometimes ifcfg-xyz isn't needed at all like server-side pppoe pppX interfaces)
+       if [ "$foundconfig" -eq "1" -a "$DEVICE" -a "$DEVNAME" != "$DEVICE" ]; then
+               echo >&2 "$0: DEVICE specified in $CONFIG does not match filename. Aborting!"
+               exit 1
+       fi
+
+       if [ "${PREFIX}" ] && [[ "$IPADDR" != */* ]]; then
+               IPADDR="$IPADDR/$PREFIX"
+       fi
+}
+
+do_netreport ()
+{
+       # Notify programs that have requested notification
+       ( cd /var/run/netreport || exit
+       for i in *; do
+               [ -f $i ] && kill -SIGIO $i >/dev/null 2>&1 || \
+                       rm -f $i >/dev/null 2>&1
+       done
+       )
+}
+
+need_hostname()
+{
+       local hostname=$(hostname)
+       if [ "$hostname" = "(none)" -o "$hostname" = "localhost" -o "$hostname" = "localhost.localdomain" ]; then
+               NEEDHOSTNAME=yes
+       else
+               unset NEEDHOSTNAME
+       fi
+}
+
+set_hostname()
+{
+       local hostname domain
+
+       hostname=$(echo $1 | awk ' { gsub(/\..*$/,NIL); print $0; } ')
+       domain=$(echo $1 | awk ' { sub(/^[^\.]*\./,NIL); print $0; } ')
+
+       if [ "$hostname" ]; then
+               echo "$hostname" > /etc/HOSTNAME
+               hostname $hostname
+       fi
+
+       if [ "$domain" ]; then
+               # XXX umask and possible /etc/resolv.conf symlink breakage
+               > /etc/resolv.conf.new
+               if ! grep -q "search $domain" /etc/resolv.conf; then
+                       echo "search $domain" >> /etc/resolv.conf.new
+               fi
+               echo "domain $domain" >> /etc/resolv.conf.new
+               grep -v "^domain " /etc/resolv.conf >> /etc/resolv.conf.new
+               mv -f /etc/resolv.conf.new /etc/resolv.conf
+       fi
+}
+
+set_dhcpclient()
+{
+       if [ "$BOOTPROTO" = "bootp" -o "$BOOTPROTO" = "pump" ]; then
+               DHCP_CLIENT=/sbin/pump
+       fi
+
+       if [ -z "$DHCP_CLIENT" ]; then
+               if [ "$BOOTPROTO" = "zeroconf" -a -x /usr/sbin/avahi-autoipd ]; then
+                       DHCP_CLIENT=/usr/sbin/avahi-autoipd
+               elif [ -x /sbin/dhcpcd ]; then
+                       DHCP_CLIENT=/sbin/dhcpcd
+               elif [ -x /sbin/dhclient ]; then
+                       DHCP_CLIENT=/sbin/dhclient
+               elif [ -x /sbin/dhcpxd ]; then
+                       DHCP_CLIENT=/sbin/dhcpxd
+               elif [ -x /sbin/pump ]; then
+                       DHCP_CLIENT=/sbin/pump
+               elif [ "$BOOTPROTO" = "auto" -a -x /usr/sbin/avahi-autoipd ]; then
+                       DHCP_CLIENT=/usr/sbin/avahi-autoipd
+               else
+                       nls "Can't find a DHCP client."
+                       exit 1
+               fi
+       fi
+}
+
+# Setup Network Address Translation (NAT)
+setup_nat()
+{
+       local src via dst
+
+       if [ -r /etc/sysconfig/static-nat ]; then
+               if [ "$1" = "on" ]; then
+                       grep "^[0-9]" /etc/sysconfig/static-nat | while read src via dst; do
+                               /sbin/ip route add nat $dst via $src
+                               /sbin/ip rule add from $src nat $dst
+                       done
+               elif [ "$1" = "off" ]; then
+                       LC_ALL=C /sbin/ip route show table all | grep -E "^nat[[:blank:]]" | while read nat dst via src args; do
+                               /sbin/ip rule del from $src nat $dst
+                               /sbin/ip route del nat $dst via $src
+                       done
+               fi
+       fi
+}
+
+# Setup static ARP
+static_arp()
+{
+       local rc arpdev host hwaddr flags neflags
+
+       if is_yes "$STATIC_ARP" && [ -r /etc/ethers ]; then
+               if [ -x /sbin/arp ]; then
+                       run_cmd "Setting static ARP entries" /sbin/arp -f /etc/ethers
+               else
+                       show "Setting static ARP entries"; busy
+                       rc=0
+                       arpdev=$(ip link show | awk -F':' '(/UP/) && ! (/NOARP/) && ! (/lo:/) && ! (/NONE:/) { print $2; exit }')
+                       if [ -z "$arpdev" ]; then
+                               rc=1
+                       else
+                               # ip supports only ip addresses
+                               grep "^[0-9]" /etc/ethers | \
+                               while read host hwaddr flags; do
+                                       case "$flags" in
+                                         *temp*)
+                                               neflags="nud stale"
+                                               ;;
+                                         *)
+                                               neflags="nud permanent"
+                                               ;;
+                                       esac
+                                       if ! /sbin/ip neigh add $host lladdr $hwaddr $neflags dev $arpdev; then
+                                               rc=1
+                                       fi
+                               done
+                       fi
+                       if [ "$rc" -gt 0 ]; then
+                               fail
+                       fi
+               fi
+       fi
+}
+
+static_rarp()
+{
+       if is_yes "$STATIC_RARP"; then
+               if [ ! -e /proc/net/rarp ]; then
+                       _modprobe single rarp
+               fi
+               if [ -r /etc/ethers -a -x /sbin/rarp ]; then
+                       run_cmd "Setting static RARP entries" /sbin/rarp -f /etc/ethers
+               fi
+       fi
+}
+
+# Set up all IP && IP parameter variables
+setup_ip_param ()
+{
+       # detect network device type (ie. dummy, eth for dummy0, eth0 ..)
+       if [ -z "$DEVICETYPE" ]; then
+               DEVICETYPE=$(echo $DEVICE | awk ' { gsub(/[\.:]?[0-9]*[\.:]?[0-9]*$/,NUL); print $0 } ')
+       fi
+
+       # Setup DEVICETYPE for special cases.
+       if echo ${DEVICE} | LC_ALL=C grep -qE '^[a-z0-9]+\.[0-9]+$'; then
+               DEVICETYPE=vlan
+       fi
+
+       # real name of device (ie. is eth0 for eth0,eth0:1,eth0:alias)
+       SUBDEVICE=$(echo "$DEVICE" | grep -E "([0-9]+:[0-9]+)")
+       DEVICE=$(echo $DEVICE | awk ' { gsub(/:.*$/,NUL); print $0 } ')
+
+       eval IP4ADDR="\$IPADDR${IP4_PRIM_IF:-}"
+       # check if ipaddr doesn't contain network length -- use $NETMASK then
+       if [[ "$IP4ADDR" != */* ]] && [ "$NETMASK" ]; then
+               IP4ADDR=$IP4ADDR/$(calcprefix $NETMASK)
+       fi
+
+       # check if we have ipv6 or ipv4 address
+       if [[ "${IP4ADDR}" = *:* ]]; then
+               IP6ADDR=${IP4ADDR}
+               IP4ADDR=""
+       else
+               eval IP4ADDROPT="\$IP_AOPTS${IP4_PRIM_IF:-}"
+               eval IP4ROUTEOPT="\$IP_ROPTS${IP4_PRIM_IF:-}"
+       fi
+       if [ "${IP6_PRIM_IF}" ]; then
+               eval IP6ADDR="\$IPADDR${IP6_PRIM_IF:-}"
+               eval IP6ADDROPT="\$IPV6_AOPTS${IP6_PRIM_IF:-}"
+               eval IP6ADDRLABEL="\$IP_LABEL${IP6_PRIM_IF:-}"
+       fi
+       if [ "${IP4_SRC_IF}" ]; then
+               eval IP4SRCADDR="\$IPADDR${IP4_SRC_IF}"
+               IP4SRCADDR=$(echo ${IP4SRCADDR} | awk ' { gsub(/\/.*/,NIL); print "src " $0; } ')
+       fi
+
+       # new rc-scripts 0.4.x option
+       if [ -z "$HANDLING" ]; then
+               HANDLING=0
+       fi
+
+       # set handling for bridge
+       case "$DEVICETYPE" in
+         br|atm|lec|irda|vlan)
+               HANDLING=1
+               ;;
+       esac
+
+       # Multicast ready devices
+       if is_yes "$MULTICAST"; then
+               MULTICAST="on"
+       else
+               case "$DEVICETYPE" in
+                 eth|br)
+                       MULTICAST="on"
+                       ;;
+                 *)
+                       MULTICAST="off"
+                       ;;
+               esac
+       fi
+
+       # ARP ready devices
+       if [ "$ARP" ]; then
+               if is_yes "$ARP"; then
+                       ARP="arp on"
+               else
+                       ARP="arp off"
+               fi
+       fi
+}
+
+check_device_down ()
+{
+       if LC_ALL=C ip link show dev ${DEVICE} 2> /dev/null | grep -q UP; then
+               return 1
+       else
+               return 0
+       fi
+}
+
+setup_ip_gw_ro ()
+{
+       # IPv4 gateway
+       if is_yes "$IPV4_NETWORKING"; then
+               if [ -z "${GATEWAYDEV}" -o "${GATEWAYDEV}" = "${DEVICE}" ]; then
+                       # set up default gateway
+                       if [ "${GATEWAY}" ]; then
+                               ip -4 route add default via ${GATEWAY} dev ${DEVICE} ${IP4SRCADDR} onlink 2>/dev/null
+                               if [ $? = 0 ]; then
+                                       DEFGW=${GATEWAY}
+                               else
+                                       # The default gateway could be set via eth0, while bringing up eth1 we shouldn't set default gateway again.
+                                       # To prevent this message just set GATEWAYDEV=eth0 in /etc/sysconfig/network.
+                                       nls "Warning: Default gateway already set proably via other interface. Do you need to setup GATEWAYDEV?"
+                               fi
+                       elif [ "${GATEWAYDEV}" = "${DEVICE}" ]; then
+                               ip -4 route add default dev ${DEVICE} ${IP4SRCADDR}
+                       fi
+               fi
+       fi
+
+       # IPv6 gateway && IPv6 globalroute
+       if is_yes "$IPV6_NETWORKING"; then
+               if [ -z "${GATEWAY6DEV}" -o "${GATEWAY6DEV}" = "${DEVICE}" ]; then
+                       # set up default gateway
+                       if [ "${GATEWAY6}" ]; then
+                               ip -6 route add default via ${GATEWAY6} dev ${DEVICE} ${IP6SRCADDR} onlink
+                               DEFGW6=${GATEWAY6}
+                       elif [ "${GATEWAY6DEV}" = "${DEVICE}" ]; then
+                               ip -6 route add default dev ${DEVICE} ${IP6SRCADDR}
+                       fi
+               fi
+               if [ -z "${IPV6_GLOBALROUTEDEV}" -o "${IPV6_GLOBALROUTEDEV}" = "${DEVICE}" ]; then
+                       # set up default route
+                       if [ "${IPV6_GLOBALROUTEGW}" ]; then
+                               ip -6 route add 2000::/3 via ${IPV6_GLOBALROUTEGW} dev ${DEVICE} ${IP6SRCADDR} onlink
+                       elif [ "${IPV6_GLOBALROUTEDEV}" = "${DEVICE}" ]; then
+                               ip -6 route add 2000::/3 dev ${DEVICE} ${IP6SRCADDR}
+                       fi
+               fi
+       fi
+}
+
+#
+# following function sets up routes not associated to any device
+# eg. unreachable or blackhole routes
+# (c) 1999 Jacek Konieczny <jajcus@pld-linux.org>
+#
+setup_routes()
+{
+       local args
+
+       if [ -f /etc/sysconfig/static-routes ]; then
+               if [ "$1" = "on" -o "$1" = "yes" ]; then
+                       grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes | while read device args; do
+                               /sbin/ip route add $args
+                       done
+               else
+                       grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes | while read device args; do
+                               /sbin/ip route del $args 2>/dev/null
+                       done
+               fi
+       fi
+       is_no "$IPV6_NETWORKING" && return
+       if [ -f /etc/sysconfig/static-routes6 ]; then
+               if [ "$1" = "on" -o "$1" = "yes" ]; then
+                       grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do
+                               /sbin/ip -6 route add $args
+                       done
+               else
+                       grep -E "^(none|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do
+                               /sbin/ip -6 route del $args 2>/dev/null
+                       done
+               fi
+       fi
+}
+
+# Add ONLY IPv4 address (IPv6 address is added automaticly)
+set_up_loopback()
+{
+       if is_yes "$IPV4_NETWORKING"; then
+               ip addr add 127.0.0.1/8 dev lo
+       fi
+       ip link set dev lo up
+       emit net-device-up IFACE=lo
+
+       grep -E "^(lo|any)[[:blank:]]" /etc/sysconfig/static-routes | while read device args; do
+               if [[ "$args" = *:* ]]; then
+                       is_no "$IPV6_NETWORKING" && continue
+               else
+                       is_no "$IPV4_NETWORKING" && continue
+               fi
+               /sbin/ip route add $args dev lo
+       done
+       is_no "$IPV6_NETWORKING" && return
+       grep -E "^(lo|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do
+               /sbin/ip -6 route add $args dev lo
+       done
+}
+
+set_down_loopback()
+{
+       LC_ALL=C ip addr flush dev lo 2>&1 | grep -v "Nothing to flush"
+       ip link set dev lo down
+}
+
+modprobe_net()
+{
+       if is_yes "$IPV6_NETWORKING" && is_module "ipv6"; then
+               _modprobe single ipv6
+       fi
+
+       if is_yes "$IPX" && is_module "ipx"; then
+               _modprobe single ipx
+       fi
+}
+
+# calculate network prefix from given network mask
+calcprefix()
+{
+       local old_IFS netmask prefix endp
+
+       old_IFS=$IFS
+       IFS='.'
+       netmask=$(echo $1)
+       IFS=$old_IFS
+
+       prefix=0
+       endp=0
+       for n in $netmask; do
+               for i in 128 64 32 16 8 4 2 1; do
+                       if [ $(($n & $i)) -ne 0 ]; then
+                               if [ $endp -eq 0 ]; then
+                                       prefix=$(($prefix + 1))
+                               else
+                                       echo "32"
+                                       return
+                               fi
+                       else
+                               endp=1
+                       fi
+               done
+       done
+       echo $prefix
+}
+
+# calculate network mask from given prefix
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+calcnetmask()
+{
+       local prefix a MASK
+
+       MASK=""
+       if [ "${1##[0-9]*}" ]; then
+               prefix=32
+       else
+               prefix=$1
+       fi
+       for i in 1 2 3 4; do
+               case $prefix in
+                 7)    a=254;;
+                 6)    a=252;;
+                 5)    a=248;;
+                 4)    a=240;;
+                 3)    a=224;;
+                 2)    a=192;;
+                 1)    a=128;;
+                 *)
+                       [ $prefix -ge 8 ] && a=255
+                       [ $prefix -le 0 ] && a=0
+                       ;;
+               esac
+
+               prefix="$(( $prefix - 8))"
+               if [ -z "$MASK" ]; then
+                       MASK=$a
+               else
+                       MASK=$MASK.$a
+               fi
+       done
+
+       echo $MASK
+       return
+}
+
+# Retrievies PPPD PID and real interface name from /var/run/ppp-*.pid
+get_ppp_device_and_pid ()
+{
+       if [ -f "/var/run/ppp-$DEVNAME.pid" ]; then
+               eval $(
+               {
+                       read PID; echo "PID='$PID'"
+                       read REALDEVICE; echo "REALDEVICE=$REALDEVICE"
+               } < "/var/run/ppp-$DEVNAME.pid")
+       fi
+
+       if [ -z "$REALDEVICE" ]; then
+               REALDEVICE=$DEVICE
+       fi
+}
+
+# following function setups advanced routing rules
+# Olgierd Pieczul <wojrus@pld-linux.org>
+setup_ip_rules ()
+{
+       local args prio from src i prio
+
+       if [ -f /etc/sysconfig/static-routes ]; then
+               if is_yes "$1"; then
+                       i=10000
+                       grep -E "^(from|to|iif|tos|fwmark|dev|pref|priority|prio)[[:blank:]]" /etc/sysconfig/static-routes | while read args; do
+                               prio=""
+                               if [ "${args##* prio }" = "$args" ]; then
+                                       # no "prio" used in rule, use own prio
+                                       prio="prio $i"
+                                       i=$((i + 5))
+                               fi
+                               /sbin/ip rule add $args $prio
+                       done
+               elif is_no "$1"; then
+                       LC_ALL=C /sbin/ip rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do
+                               [ "$src" = "all" ] && /sbin/ip rule delete $args || /sbin/ip rule delete $from $src $args
+                       done
+               fi
+       fi
+       is_no "$IPV6_NETWORKING" && return
+       if [ -f /etc/sysconfig/static-routes6 ]; then
+               if is_yes "$1"; then
+                       i=10000
+                       grep -E "^(from|to|iif|tos|fwmark|dev|pref|priority|prio)[[:blank:]]" /etc/sysconfig/static-routes6 | while read args; do
+                               prio=""
+                               if [ "${args##* prio }" = "$args" ]; then
+                                       # no "prio" used in rule, use own prio
+                                       prio="prio $i"
+                                       i=$((i + 5))
+                               fi
+                               /sbin/ip -6 rule add $args $prio
+                       done
+               elif is_no "$1"; then
+                       LC_ALL=C /sbin/ip -6 rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do
+                               [ "$src" = "all" ] && /sbin/ip -6 rule delete $args || /sbin/ip -6 rule delete $from $src $args
+                       done
+               fi
+       fi
+}
+
+is_wireless_device ()
+{
+       if [ -x /sbin/iwconfig ]; then
+               LC_ALL=C iwconfig "${1}" 2>&1 | grep -q "no wireless extensions" || return 0
+       fi
+       return 1
+}
+
+wireless_param()
+{
+       device="$1"
+       if [ "$2" = "br" ]; then
+               prefix="${device}_"
+       else
+               prefix=""
+       fi
+
+       local val wlan_mode
+
+       # wlan mode needs to be first
+       wlan_mode="$(eval echo \$${prefix}WLAN_MODE)" && [ "$wlan_mode" ] && \
+               iwconfig ${device} mode "$wlan_mode"
+
+       val="$(eval echo \$${prefix}WLAN_NICKNAME)" && [ "$val" ] && \
+               iwconfig ${device} nick "$val"
+
+       val="$(eval echo \$${prefix}WLAN_NWID)" && [ "$val" ] && \
+               iwconfig ${device} nwid "$val"
+
+       if [ "$wlan_mode" != "Managed" -a "$wlan_mode" != "managed" ]; then
+               if val="$(eval echo \$${prefix}WLAN_FREQ)" && [ "$val" ]; then
+                       iwconfig ${device} freq "$val"
+               elif val="$(eval echo \$${prefix}WLAN_CHANNEL)" && [ "$val" ]; then
+                       iwconfig ${device} channel "$val"
+               fi
+       fi
+
+       val="$(eval echo \$${prefix}WLAN_SENS)" && [ "$val" ] && \
+               iwconfig ${device} sens "$val"
+       val="$(eval echo \$${prefix}WLAN_AP)" && [ "$val" ] && \
+               iwconfig ${device} ap "$val"
+       val="$(eval echo \$${prefix}WLAN_BITRATE)" && [ "$val" ] && \
+               iwconfig ${device} rate "$val"
+       val="$(eval echo \$${prefix}WLAN_RTS_THRESHOLD)" && [ "$val" ] && \
+               iwconfig ${device} rts "$val"
+       val="$(eval echo \$${prefix}WLAN_FRAGMENTATION_THRESHOLD)" && [ "$val" ] && \
+               iwconfig ${device} frag "$val"
+
+       local wlan_encryption="$(eval echo \$${prefix}WLAN_ENCRYPTION)"
+       local wlan_key="$(eval echo \$${prefix}WLAN_KEY)"
+       # TODO: well, actually shouldn't set WLAN_KEY if other keys than current are set
+       if [ "$wlan_key" ]; then
+               # wlan key can contain index of key to set
+               # to set other than current keys suffix with 1-4:
+               local idx
+               for idx in 1 2 3 4; do
+                       val="$(eval echo \$${prefix}WLAN_KEY_$idx)"
+                       [ "$val" ] || continue
+                       iwconfig ${device} key "[$idx]" "$val"
+               done
+               if val="$(eval echo \$${prefix}WLAN_KEY_CURRENT)" && [ "$val" ]; then
+                       iwconfig ${device} key "[$val]"
+               else
+                       iwconfig ${device} key "$wlan_key"
+               fi
+
+               [ "$wlan_encryption" ] && iwconfig ${device} key "$wlan_encryption"
+       fi
+
+       if is_no "$wlan_encryption"; then
+               iwconfig ${device} key off
+       fi
+       val="$(eval echo \$${prefix}WLAN_POWER)" && [ "$val" ] && \
+               iwconfig ${device} power "$val"
+       val="$(eval echo \$${prefix}WLAN_TXPOWER)" && [ "$val" ] && \
+               iwconfig ${device} txpower "$val"
+       val="$(eval echo \$${prefix}WLAN_RETRY)" && [ "$val" ] && \
+               iwconfig ${device} retry "$val"
+
+       # essid should be last due to network rescanning by wlan devices
+       val="$(eval echo \$${prefix}WLAN_ESSID)" && [ "$val" ] && \
+               iwconfig ${device} essid "$val"
+
+       if is_yes "$(eval echo \$${prefix}WLAN_COMMIT)"; then
+               iwconfig ${device} commit
+       fi
+}
+
+# returns
+# 0 - no link
+# 1 - link ok
+# 2 - unsupported, unknown return
+check_mii_tool ()
+{
+       [ -x /sbin/mii-tool ] || return 2
+       local output=$(LC_ALL=C mii-tool $1 2>&1)
+       echo $output | grep -q "link ok" && return 1
+       echo $output | grep -q "no link" && return 0
+       return 2
+}
+
+# returns
+# 0 - link off
+# 1 - link on
+# 2 - unsupported, unknown return
+check_ethtool ()
+{
+       [ -x /sbin/ethtool ] || return 2
+       local output=$(LC_ALL=C ethtool $1 2>&1)
+       echo $output | grep -q "Link detected: yes" && return 1
+       echo $output | grep -q "Link detected: no" && return 0
+       return 2
+}
+
+# returns
+# 0 - radio off
+# 1 - radio on
+# 2 - unsupported
+check_iwconfig ()
+{
+       local output
+       # rfkill state (are there devices with multiple rfkill buttons?)
+       output=$(cat /sys/class/net/${1}/device/rfkill*/state 2> /dev/null)
+       # 1 is rfkill not active
+       [ "$output" = "1" ] && return 1
+       [ "$output" = "0" -o "$output" = "2" ] && return 0
+       [ -x /sbin/iwconfig ] || return 2
+       output=$(LC_ALL=C iwconfig "$1" 2>&1)
+       # "radio off" is ipwxxx only "feature" (and there is no "radio on")
+       echo "$output" | grep -q "radio off" && return 0
+       # XXX: need more generic checks for wifi
+       return 2
+}
+
+# returns
+# 0 - link down
+# 1 - link up
+# 2 - unknown/unsupported
+check_link_down ()
+{
+       local e i m timeout device max_timeout
+       device="$1"
+       max_timeout="$2"
+
+       if [ ! -x /sbin/mii-tool -a ! -x /sbin/ethtool -a ! -x /sbin/iwconfig ]; then
+               return 2
+       fi
+
+       [ -z "$max_timeout" ] && max_timeout=6
+
+       if ! LC_ALL=C ip link show dev $device 2>/dev/null | grep -q UP; then
+               ip link set dev $device up >/dev/null 2>&1
+               emit net-device-up IFACE=$device
+       fi
+       timeout=0
+       while [ $timeout -le $max_timeout ]; do
+               check_ethtool $device
+               e=$?
+               check_iwconfig $device
+               i=$?
+               # trust ethtool and iwconfig
+               if [ $i -eq 1 ] || [ $e -eq 1 ]; then
+                       return 1
+               fi
+               # use mii check only if all other check are unsupported
+               # (mii check lies too often)
+               check_mii_tool $device
+               m=$?
+               if [ $m -eq 1 ] && [ $i -eq 2 ] && [ $e -eq 2 ]; then
+                       return 1
+               fi
+               usleep 500000
+               timeout=$((timeout+1))
+       done
+       # do not abort dhclient if all the checks are unsupported
+       if [ $m -eq 2 ] && [ $i -eq 2 ] && [ $e -eq 2 ]; then
+               return 2
+       fi
+       return 0
+}
diff --git a/trunk/lib/ifdown b/trunk/lib/ifdown
new file mode 100755 (executable)
index 0000000..e7b030a
--- /dev/null
@@ -0,0 +1,154 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+# Will be removed in the future
+if is_yes "$NETWORKING" ; then
+       if [ -z "$IPV4_NETWORKING" ] ; then
+               echo "NETWORKING is set to YES, but IPV4_NETWORKING is empty!"
+               echo "Please upgrade your config"
+               echo "Assuming you want IPv4 networking"
+               IPV4_NETWORKING=yes
+       fi
+fi
+
+DEV=$1
+
+[ -z "$DEV" ] && {
+       nls "Usage: %s <device name>" "ifdown" >&2
+       exit 1
+}
+
+if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
+       CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
+else
+       CONFIG="$DEV"
+fi
+
+if [ "$(id -u)" != "0" ]; then
+       if [ -x /sbin/usernetctl ]; then
+               exec /sbin/usernetctl $CONFIG down
+       fi
+       echo "Users cannot control this device." >&2
+       exit 1
+fi
+
+source_config
+
+# set all major variables
+setup_ip_param
+
+OTHERSCRIPT="/lib/rc-scripts/ifdown-${DEVICETYPE}"
+
+# shutdown tleds software
+if [ "$TLEDS_DEV" = "$DEVICE" -a -x /usr/bin/tleds ]; then
+       /usr/bin/tleds -qk "$DEVICE"
+fi
+
+if [ -x $OTHERSCRIPT ]; then
+       if [ "$HANDLING" = "0" ]; then
+               exec $OTHERSCRIPT $CONFIG $2
+       elif [ "$HANDLING" = "1" ]; then
+               $OTHERSCRIPT $CONFIG $2
+       fi
+fi
+
+if is_yes "$ENABLE_6TO4"; then
+       tun6to4=tun6to4_$DEVICE 
+       /sbin/ip -6 route flush dev $tun6to4 2>/dev/null
+       if [ $? = 0 ]; then   # the tunnel has been set up in ifup
+               /sbin/ip link set dev $tun6to4 down
+               /sbin/ip tunnel del $tun6to4
+       fi
+fi
+
+if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; then
+       if is_yes "$IPV4_NETWORKING"; then
+               set_dhcpclient
+
+               case ${DHCP_CLIENT##*/} in
+                 pump)
+                       $DHCP_CLIENT -r -i ${DEVICE}
+                       RESULT=$?
+                       ;;
+                 dhcpcd)
+                       $DHCP_CLIENT -k ${DEVICE}
+                       RESULT=$?
+                       sleep 1
+                       ;;
+                 dhcpxd)
+                       $DHCP_CLIENT -k ${DEVICE}
+                       RESULT=$?
+                       ;;
+                 dhclient)
+                       if [ -f "/var/run/dhclient.$DEVICE.pid" ] ; then
+                               $DHCP_CLIENT -r -pf /var/run/dhclient.$DEVICE.pid -lf /var/lib/dhclient/dhclient.$DEVICE.leases 2>/dev/null
+                               RESULT=$?
+                       elif [ -f /var/run/dhclient.pid ]; then
+                               # may be left by older rc-scripts
+                               PID=$(cat /var/run/dhclient.pid)
+                               if kill -0 $PID 2>/dev/null; then
+                                       kill $PID
+                                       RESULT=$?
+                               fi
+                       fi
+                       ;;
+                 avahi-autoipd)
+                       $DHCP_CLIENT -k ${DEVICE}
+                       RESULT=$?
+                       ;;
+               esac
+       fi
+fi
+
+if is_yes "${WLAN_WPA}"; then
+       killproc --pidfile "wpa_supplicant-${DEVICE}.pid" wpa_supplicant > /dev/null 2>&1
+       rm -f "/var/run/wpa_supplicant-${DEVICE}.pid"
+fi
+
+# Check to make sure the device is actually up
+check_device_down && exit 0
+
+if [ -n "${SUBDEVICE}" ]; then
+       ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE}
+else
+       LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
+
+       if [ ${DEVICETYPE} = "bond" ]; then
+               if [ ! -x /sbin/ifenslave ]; then
+                       nls "%s is missing. Can't continue." "/sbin/ifenslave"
+                       exit 1
+               fi
+
+               # get up the bonding device before enslaving
+               if ! check_device_down "${DEVICE}"; then
+                       ip link set ${DEVICE} up
+               fi
+
+               for BSVAR in $(awk '/Slave Interface:/{ print $3}' /proc/net/bonding/${DEVICE}); do
+                       if [ "${BSVAR}" ]; then
+                               ifenslave -d ${DEVICE} $BSVAR
+                       fi
+               done
+       fi
+
+       ip link set ${DEVICE} down
+fi
+
+if [ "$HANDLING" = "4" ]; then
+       exit 0
+fi
+
+if [ -n "$RESULT" ] ; then
+       if [ "$RESULT" -ne "0" ]; then
+               exit $RESULT
+       fi
+fi
+
+exec /lib/rc-scripts/ifdown-post $CONFIG
diff --git a/trunk/lib/ifdown-br b/trunk/lib/ifdown-br
new file mode 100755 (executable)
index 0000000..6838684
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+#    ifdown-br - bridge configuration script
+#    Copyright (C) 2000 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+if [ ! -x /sbin/brctl ]; then
+       nls "%s is missing. Can't continue." "/sbin/brctl"
+       exit 1
+fi
+
+# set all major variables
+setup_ip_param
+
+# set device down and forget all addresses
+for device in ${BRIDGE_DEVS}; do
+       LC_ALL=C ip addr flush dev ${device} 2>&1 | grep -v "Nothing to flush"
+       brctl delif ${DEVICE} ${device}
+done
+
+ip link set ${DEVICE} down
+brctl delbr ${DEVICE}
diff --git a/trunk/lib/ifdown-irda b/trunk/lib/ifdown-irda
new file mode 100755 (executable)
index 0000000..b0cb471
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+#    ifdown-irda - IrDA configuration script
+#    Copyright (C) 2001 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+. /etc/sysconfig/network
+
+# set all major variables
+setup_ip_param
+
+ip link set ${DEVICE} down
+ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
+
+PID=$(pidof irattach)
+for x in $PID; do
+       if grep -q "$MODEMPORT" /proc/$x/cmdline; then
+               logger -p daemon.info -t ifdown-sl "signal TERM send to \"$(ps -o cmd=$x)\" - this should be irattach"
+               kill -TERM $x
+               PID=$x
+       fi
+done
+
+if [ -z "$PID" ]; then
+       exit 1
+fi
+
+kill $PID > /dev/null 2>&1
+if [ ! -d /proc/$PID ]; then
+       /lib/rc-scripts/ifdown-post $1
+       exit 0
+fi
+sleep 2
+if [ ! -d /proc/$PID ]; then
+       /lib/rc-scripts/ifdown-post $1
+       exit 0
+fi
+
+kill -KILL $PID > /dev/null 2>&1
+if [ -d /proc/$PID ]; then
+       logger -p daemon.info -t ifdown-irda "$(nls 'ifdown-%s unable to kill %s for %s' "irda" "irattach" "$DEVICE")" &
+else
+       /lib/rc-scripts/ifdown-post $1
+fi
+
+exit 1
diff --git a/trunk/lib/ifdown-post b/trunk/lib/ifdown-post
new file mode 100755 (executable)
index 0000000..ab2ba37
--- /dev/null
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# This should be called whenever an interface goes down, not just when
+# it is brought down explicitly.
+
+run_down() { :; }
+
+CONFIG=$1
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+source_config
+
+# set all major variables
+setup_ip_param
+
+# set REALDEVICE
+get_ppp_device_and_pid
+
+# (QoS) Delete root queueing discipline
+if [ -n "${BANDWIDTH_OUT}" ]; then
+       if [ "${QDISC_CLASS}" = "htb" -o "${QDISC_CLASS}" = "cbq" ]; then
+               tc qdisc del dev ${REALDEVICE} root
+       elif [ -z "${QDISC}" -o "${QDISC}" = "tbf" ]; then
+               tc qdisc del dev ${REALDEVICE} root
+       elif [ -n "${QDISC}" ]; then
+               tc qdisc del dev ${REALDEVICE} root
+       fi
+else
+       if [ -n "${QDISC}" ]; then
+               tc qdisc del dev ${REALDEVICE} root
+       fi
+fi
+
+if [ -n "${BANDWIDTH_IN}" ]; then
+       tc qdisc del dev ${REALDEVICE} ingress
+fi
+
+# execute run_down() function (if available in device configuration file)
+run_down
+
+# Notify programs that have requested notification
+do_netreport
+
+exit 0
diff --git a/trunk/lib/ifdown-ppp b/trunk/lib/ifdown-ppp
new file mode 100755 (executable)
index 0000000..a70fae6
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ ! -f /var/run/ppp-$DEVNAME.pid ]; then
+       # ppp isn't running, or we didn't start it
+       exit 0
+fi
+
+# set all major variables
+setup_ip_param
+get_ppp_device_and_pid
+
+if [ -z "$PID" ]; then
+       exit 1
+fi
+
+rm -f /var/run/ppp-$DEVNAME.pid
+
+[ ! -d /proc/${PID} ] && exit 0
+
+kill -TERM ${PID} > /dev/null 2>&1
+
+sleep 2
+[ -d /proc/${PID} ] && sleep 2 && [ -d /proc/${PID} ] && sleep 5
+
+if [ -d /proc/${PID} ]; then
+       kill -KILL ${PID} > /dev/null 2>&1
+       logger -p daemon.info -t ifdown-ppp "ifdown-ppp unable to nicely kill pppd-$DEVICE (pppd-$DEVNAME)" &
+fi
+
+# Special cases
+if is_yes "${PPPOA_EAGLE}"; then
+       EAGLECTRL="/usr/sbin/adictrl"
+       if [ ! -x $EAGLECTRL ]; then
+               EAGLECTRL="/usr/sbin/eaglectrl"
+       fi
+       if [ -x $EAGLECTRL ]; then
+               PPPOA_IFACE=$( $EAGLECTRL -i 2>/dev/null)
+               [ -n "$PPPOA_IFACE" ] && ip link set "$PPPOA_IFACE" down
+       fi
+fi
+
+/lib/rc-scripts/ifdown-post $1
+
+exit 1
diff --git a/trunk/lib/ifdown-sl b/trunk/lib/ifdown-sl
new file mode 100755 (executable)
index 0000000..507510f
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+# set all major variables
+setup_ip_param
+
+# signals ifup-sl not to persist
+rm -f /var/run/sl-$DEVICE.dev
+
+# we can use dip or direct slip connection via slattach
+if is_no "$DIRECT_CONNECT"; then
+       PID=$(pidof dip-$DEVICE)
+else
+       PID=$(pidof slattach)
+       for x in $PID; do
+               if grep -q "$MODEMPORT" /proc/$x/cmdline; then
+                       logger -p daemon.info -t ifdown-sl \
+                               "signal TERM send to \"$(ps -o cmd= $x)\" - this should be slattach"
+                       kill -TERM $x
+                       PID=$x
+               fi
+       done
+fi
+#
+# The proctitle for connected dip daemons is actually "-dip (ipaddr)"
+#      with ipaddr = local on dial-out,  remote on dial-in
+# Grab the PID of connected dial-out daemon.
+#
+if [ -z "$PID" ]; then
+       PID=$(pidof -- -dip\ \($IPADDR\))
+fi
+if [ -z "$PID" ]; then
+       exit 1
+fi
+
+kill $PID > /dev/null 2>&1
+if [ ! -d /proc/$PID ]; then
+       /lib/rc-scripts/ifdown-post $1
+       exit 0
+fi
+sleep 2
+if [ ! -d /proc/$PID ]; then
+       /lib/rc-scripts/ifdown-post $1
+       exit 0
+fi
+
+kill -KILL $PID > /dev/null 2>&1
+if [ -d /proc/$PID ]; then
+       logger -p daemon.info -t ifdown-sl "ifdown-sl unable to kill sl-$DEVICE" &
+else
+       /lib/rc-scripts/ifdown-post $1
+fi
+
+exit 1
diff --git a/trunk/lib/ifdown-vlan b/trunk/lib/ifdown-vlan
new file mode 100755 (executable)
index 0000000..a53c3c5
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+#    ifdown-vlan - Virtual LAN configuration script
+#    Copyright (C) 2001 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit 0
+fi
+
+# set all major variables
+setup_ip_param
+
+ip link set ${DEVICE} down
+LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
+
+if LC_ALL=C ip link help 2>&1 | grep -q del; then
+       /sbin/ip link del ${DEVICE}
+elif [ -x /sbin/vconfig ]; then
+       /sbin/vconfig rem ${DEVICE}
+else
+       nls "/sbin/vconfig or iproute2 with vlan support is missing. Can't continue."
+       exit 1
+fi
+
+RESULT=$?
+
+exit $RESULT
diff --git a/trunk/lib/ifup b/trunk/lib/ifup
new file mode 100755 (executable)
index 0000000..d0d2f9d
--- /dev/null
@@ -0,0 +1,273 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+# Will be removed in the future
+if is_yes "$NETWORKING"; then
+       if [ -z "$IPV4_NETWORKING" ]; then
+               echo "NETWORKING is set to YES, but IPV4_NETWORKING is empty!"
+               echo "Please upgrade your config"
+               echo "Assuming you want IPv4 networking"
+               IPV4_NETWORKING=yes
+               export IPV4_NETWORKING
+       fi
+fi
+
+need_hostname
+
+# device name must be ifcfg-somename
+DEV=$1
+
+[ -z "$DEV" ] && {
+       nls "Usage: %s <device name>" "ifup" >&2
+       exit 1
+}
+
+if [ $(id -u) != 0 ]; then
+       if [ -x /sbin/usernetctl ]; then
+               exec /sbin/usernetctl $DEV up
+       fi
+       nls "Users cannot control this device." >&2
+       exit 1
+fi
+
+if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ]; then
+       CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
+elif [ -f "/etc/sysconfig/interfaces/$DEV" ]; then
+       CONFIG="/etc/sysconfig/interfaces/$DEV"
+else
+       CONFIG="$DEV"
+fi
+
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+if [ "foo$2" = "foohotplug" ] && ! is_yes "${HOTPLUG}"; then
+       exit
+fi
+
+if [ "foo$2" = "foopcmcia-hotplug" ] && ! is_yes "${PCMCIA_HOTPLUG}"; then
+       exit
+fi
+
+IPSETUP=no
+
+# set all major variables
+setup_ip_param
+
+SYSCTLDEVICE=$(echo ${DEVICE} | sed 's/\./\//g')
+
+OTHERSCRIPT="/lib/rc-scripts/ifup-${DEVICETYPE}"
+
+if [ -x "$OTHERSCRIPT" ]; then
+       if is_yes "$DEFAULTHANDLING"; then
+               HANDLING=1
+       fi
+       if [ "$HANDLING" = "0" ]; then
+               exec $OTHERSCRIPT $CONFIG $2
+       elif [ "$HANDLING" = "1" ]; then
+               $OTHERSCRIPT $CONFIG $2
+       fi
+fi
+
+if [ -n "$MACVLAN_DEV" -a -n "$MACVLAN_MACADDR" ]; then
+       ip link del link ${MACVLAN_DEV} ${DEVICE} type macvlan > /dev/null 2>&1
+       ip link add link ${MACVLAN_DEV} address ${MACVLAN_MACADDR} ${DEVICE} type macvlan
+fi
+
+# is this device available? (this catches PCMCIA devices for us)
+if ! /sbin/ip link set multicast ${MULTICAST} dev ${DEVICE} > /dev/null 2>&1; then
+       nls "Delaying %s initialization" ${DEVICE}
+       exit 1
+fi
+
+if is_yes "$SLAVE" && [ ! -x /sbin/ifenslave ]; then
+       nls "%s is missing. Can't continue." "/sbin/ifenslave"
+       exit 1
+fi
+
+if is_yes "$SLAVE" && [ -n "$MASTER" -a -x /sbin/ifenslave ]; then
+       RFLAG="" && is_yes "${RECIEVE-ONLY}" && RFLAG="-r"
+
+       ip link set ${DEVICE} down
+       nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
+       ifenslave $RFLAG "$MASTER" "$DEVICE"
+
+       if [ -n "$ETHTOOL_OPTS" ] ; then
+               /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
+       fi
+
+       exit 0
+fi
+
+if [ -n "$MACADDR" ]; then
+       ip link set ${DEVICE} address ${MACADDR}
+fi
+
+ip link set ${DEVICE} multicast ${MULTICAST} ${ARP} down
+
+if [ -n "$MTU" ]; then
+       ip link set ${DEVICE} mtu ${MTU}
+fi
+
+if is_yes "${IPV6_NETWORKING}" && is_yes "${IPV6_DISABLE_AUTOCONF}"; then
+       run_cmd "Disabling IPv6 autoconfiguration" sysctl -w net.ipv6.conf.${SYSCTLDEVICE}.autoconf=0
+fi
+
+if is_wireless_device "${DEVICE}"; then
+       is_yes "${WLAN_UPEARLY}" && ip link set ${DEVICE} up
+       wireless_param ${DEVICE}
+fi
+
+if is_yes "${WLAN_WPA}"; then
+       /usr/sbin/wpa_supplicant -D ${WLAN_WPA_DRIVER:-wext} -c ${WLAN_WPA_CONFIG:-/etc/wpa_supplicant.conf} -i ${DEVICE} ${WLAN_WPA_OPTIONS} -P "/var/run/wpa_supplicant-${DEVICE}.pid" -B
+       [ -z "$WLAN_WPA_WAIT_TIMEOUT" ] && WLAN_WPA_WAIT_TIMEOUT=15
+       # check_link_down sleeps for 0.5s
+       check_link_down ${DEVICE} $(( $WLAN_WPA_WAIT_TIMEOUT * 2 ))
+fi
+
+if [ "$HANDLING" = "2" ]; then
+       exit 0
+fi
+
+if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; then
+       if is_yes "$IPV4_NETWORKING"; then
+               set_dhcpclient
+
+               DHCP_ARGS=
+               if [ -n "$DHCP_CLIENT" ]; then
+                       if [ -z "$DHCP_HOSTNAME" ]; then
+                               DHCP_HOSTNAME="$HOSTNAME"
+                       fi
+                       case ${DHCP_CLIENT##*/} in
+                         pump)
+                               [ -n "$DHCP_HOSTNAME" ] && DHCP_ARGS="-h $DHCP_HOSTNAME"
+                               DHCP_ARGS="$DHCP_ARGS -i $DEVICE"
+                               ;;
+                         dhcpcd)
+                               [ -n "$DHCP_HOSTNAME" ] && DHCP_ARGS="-h $DHCP_HOSTNAME"
+                               DHCP_ARGS="$DHCP_ARGS $DEVICE"
+                               if is_no "$ZEROCONF"; then
+                                       DHCP_ARGS="$DHCP_ARGS --noipv4ll"
+                               fi
+                               ;;
+                         dhcpxd)
+                               [ -n "$DHCP_HOSTNAME" ] && DHCP_ARGS="-H $DHCP_HOSTNAME"
+                               DHCP_ARGS="$DHCP_ARGS $DEVICE"
+                               ;;
+                         dhclient)
+                               # Can't specify a host with dhclient ?
+                               DHCP_ARGS="$DEVICE -pf /var/run/dhclient.$DEVICE.pid -lf /var/lib/dhclient/dhclient.$DEVICE.leases"
+                               if [ -f /etc/dhclient.$DEVICE.conf ] ; then
+                                       DHCP_ARGS="$DHCP_ARGS -cf /etc/dhclient.$DEVICE.conf"
+                               fi
+                               ;;
+                         avahi-autoipd)
+                               DHCP_ARGS="-D $DEVICE"
+                               ;;
+                       esac
+               fi
+               DHCP_ARGS="$DHCP_OPTIONS $DHCP_ARGS"
+
+               if check_link_down ${DEVICE}; then
+                       run_cmd "$(nls 'Determining IP information for %s (%s)' "$DEVICE" "${DHCP_CLIENT##*/}")" /bin/false
+                       nls '%s: Check cable/radio on-off switch?' "$DEVICE"
+                       exit 1
+               fi
+
+               if ! run_cmd "$(nls 'Determining IP information for %s (%s)' "$DEVICE" "${DHCP_CLIENT##*/}")" $DHCP_CLIENT $DHCP_ARGS; then
+                       exit 1
+               fi
+
+               # give time for determining IP information
+               check_device_down && sleep 1 && check_device_down && sleep 3
+               check_device_down && ip link set ${DEVICE} up
+       fi
+else
+       # IPv4 in use ?
+       if is_yes "$IPV4_NETWORKING" && [ -n "${IP4ADDR}" ]; then
+               # If broadcast is missing then autocalculate it
+               if ! (echo $IP4ADDROPT | grep -qE "brd|broadcast"); then
+                       IP4ADDROPT="brd + ${IP4ADDROPT}"
+               fi
+
+               if [ -n "${SUBDEVICE}" ]; then
+                       ALIAS="label ${SUBDEVICE}"
+               fi
+
+               if [ -n "$REMIP" ]; then
+                       ip addr add ${IP4ADDR} peer ${REMIP} ${ALIAS} dev ${DEVICE} ${IP4ADDROPT}
+               else
+                       ip addr add ${IP4ADDR} ${ALIAS} dev ${DEVICE} ${IP4ADDROPT}
+               fi
+       fi
+
+       # Set device up
+       ip link set ${DEVICE} up
+
+       # IPv6 in use ?
+       if is_yes "$IPV6_NETWORKING" && [ -n "${IP6ADDR}" ]; then
+               ip addr add ${IP6ADDR} dev ${DEVICE} ${IP6ADDROPT}
+               if [ -n "${IP6ADDRLABEL}" ]; then
+                       ip addrlabel add prefix ${IP6ADDR} dev ${DEVICE} label ${IP6ADDRLABEL}
+               fi
+       fi
+
+       if is_yes "$IPV4_NETWORKING" && [ -n "${IP4ADDR}" -a -x /sbin/arping ]; then
+               # update ARP cache of neighbouring computers
+               /sbin/arping -q -A -c 1 -I ${DEVICE} ${IP4ADDR%/*}
+               { ( sleep 2; /sbin/arping -q -U -c 1 -I ${DEVICE} ${IP4ADDR%/*} ) & } > /dev/null 2>&1
+       fi
+
+       # IPv4/6 gateways and default routes
+       setup_ip_gw_ro
+fi
+
+# device have to have ip address set before
+if is_yes "$PROXYARP"; then
+       run_cmd "$(nls 'Enabling proxy ARP on %s' "${DEVICE}")" sysctl -w net.ipv4.conf.${SYSCTLDEVICE}.proxy_arp=1
+fi
+
+if [ "$HANDLING" = "3" ]; then
+       exit 0
+fi
+
+if is_yes "$IPX"; then
+       /lib/rc-scripts/ifup-ipx $DEVICE
+fi
+
+if is_yes "$ENABLE_6TO4"; then
+       # find an usable IPv4 address for this device; might have been obtained by dhcp or ppp
+       for ipv4 in `/sbin/ip addr show dev $DEVICE | awk -F'[ /]+' '/ inet /{print $3}'`; do
+               if [       `ipcalc -n $ipv4/8`  != "NETWORK=10.0.0.0"    \
+                       -a `ipcalc -n $ipv4/12` != "NETWORK=172.16.0.0"  \
+                       -a `ipcalc -n $ipv4/24` != "NETWORK=192.168.0.0" \
+                       -a `ipcalc -n $ipv4/24` != "NETWORK=169.254.0.0" ]; then
+                       local_ipv4=$ipv4
+                       local_ipv6=`printf "2002:%02x%02x:%02x%02x::1" $(echo $ipv4 | tr . ' ')`
+                       break
+               fi
+       done
+       if [ -n "$local_ipv4" ]; then   # we have an usable IPv4 address; set up the tunnel
+               tun6to4=tun6to4_$DEVICE
+               /sbin/ip tunnel add $tun6to4 mode sit ttl 128 remote any local $local_ipv4
+               /sbin/ip link set dev $tun6to4 up
+               /sbin/ip -6 addr  add $local_ipv6/16 dev $tun6to4
+               /sbin/ip -6 route add 2000::/3 via ::192.88.99.1 dev $tun6to4 metric 1
+       fi
+fi
+
+if [ "$HANDLING" = "4" ]; then
+       exit 0
+fi
+
+exec /lib/rc-scripts/ifup-post $CONFIG
diff --git a/trunk/lib/ifup-aliases b/trunk/lib/ifup-aliases
new file mode 100644 (file)
index 0000000..63b2ea3
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# Adds all addresses of device.
+# Called from ifup-post.
+
+# Add all addresses
+for IP_ADDR in $IPADDR_ALIASES; do
+       [ -z "$IP_ADDR" ] && continue
+       # Be sure that primary address is added
+       if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
+               if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
+                       continue
+               fi
+       fi
+       if is_yes "${IPV4_NETWORKING}"; then
+               ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
+       fi
+done
+
+for IP_ADDR in $IPV6_ADDR; do
+       [ -z "$IP_ADDR" ] && continue
+       # Be sure that primary address is added
+       if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
+               if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
+                       continue
+               fi
+       fi
+       # Check for IPv6 address
+       if (echo $IP_ADDR | grep -q ":"); then
+               if is_yes "${IPV6_NETWORKING}"; then
+                       ip -6 addr add ${IP_ADDR} dev ${DEVICE}
+               fi
+       elif is_yes "${IPV4_NETWORKING}"; then
+               ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
+       fi
+done
+
+for nr in $(awk 'BEGIN { max=0; }; /^IPADDR[0-9]+=/ { s = $0; gsub(/^IPADDR/, "", s); gsub(/=.*/, "", s); if (int(s) > int(max)) { max=s; }; };  END { for(j=1; j<=int(max); j++) print j } ' $CONFIG); do
+       eval IP_ADDR="\$IPADDR${nr}"
+       [ -z "$IP_ADDR" ] && continue
+
+       eval IP_ADDR_OPT="\$IP_AOPTS${nr}"
+       eval IP_ROUTE_OPT="\$IP_ROPTS${nr}"
+       eval IP_ADDR_LABEL="\$IP_LABEL${nr}"
+
+       # Be sure that primary address is added
+       if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
+               if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
+                       continue
+               fi
+       fi
+       # Check for IPv6 address
+       if echo $IP_ADDR | grep -q ":"; then
+               if is_yes "${IPV6_NETWORKING}"; then
+                       ip -6 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
+                       if [ -n "${IP_ADDR_LABEL}" ]; then
+                               ip -6 addrlabel add prefix ${IP_ADDR} dev ${DEVICE} label ${IP_ADDR_LABEL}
+                       fi
+               fi
+       elif is_yes "${IPV4_NETWORKING}"; then
+               # If broadcast is missing then autocalculate it
+               if ! (echo $IP_ADDR_OPT | grep -qE "brd|broadcast"); then
+                       IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
+               fi
+               ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
+       fi
+done
+
+# Setup IPv4-compatible addresses
+if is_yes "$IPV6_NETWORKING" && [ "$BOOTPROTO6" = "v4compat" ]; then
+       # enable automatic tunnels
+       ip link set sit0 up
+
+       # add v4compat addresses to device
+       for addr in $(ip -4 addr show scope global dev $DEVICE | \
+               awk '/inet/ { print $2 }' | awk -F"/" '{ print $1 }'); do
+               ip -6 addr add ::$addr dev $DEVICE
+       done
+fi
diff --git a/trunk/lib/ifup-br b/trunk/lib/ifup-br
new file mode 100755 (executable)
index 0000000..a42c38f
--- /dev/null
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+#    ifup-br - bridge configuration script
+#    Copyright (C) 2000 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+if [ ! -x /sbin/brctl ]; then
+       nls "%s is missing. Can't continue." "/sbin/brctl"
+       exit 1
+fi
+
+# load bridge module
+is_module "bridge" && modprobe -s bridge
+
+# set all major variables
+setup_ip_param
+
+# forget all addresses
+for device in $BRIDGE_DEVS; do
+       LC_ALL=C ip addr flush dev ${device} 2>&1 | grep -v "Nothing to flush"
+done
+
+# set wireless parameters
+for device in $BRIDGE_DEVS; do
+       if is_wireless_device "${device}"; then
+               wireless_param "${device}" "br"
+       fi
+done
+
+brctl addbr ${DEVICE}
+
+# add interfaces to bridge
+for device in $BRIDGE_DEVS; do
+       brctl addif ${DEVICE} ${device}
+       ip link set dev ${device} multicast ${MULTICAST} ${ARP}
+       ip link set ${device} up
+done
+
+
+# standard
+[ -n "$AGEING" ] && brctl setageing "$AGEING"
+[ -n "$GCINT" ] && brctl setgcint "$GCINT"
+[ -n "$FD" ] && brctl setfd ${DEVICE} "$FD"
+
+# spanning tree protocol
+if is_yes "$SPANNING_TREE"; then
+       brctl stp ${DEVICE} yes
+       [ -n "$BRIDGEPRIO" ] && brctl setbridgeprio ${DEVICE} "$BRIDGEPRIO"
+       [ -n "$HELLO" ] && brctl sethello ${DEVICE} "$HELLO"
+       [ -n "$MAXAGE" ] && brctl setmaxage ${DEVICE} "$MAXAGE"
+       [ -n "$PATHCOST" -a -n "$PATHCOST_PORT" ] && brctl setpathcost ${DEVICE} "$PATHCOST_PORT" "$PATHCOST"
+       [ -n "$PORTPRIO" -a -n "$PORTPRIO_PORT" ] && brctl setportprio ${DEVICE} "$PORTPRIO_PORT" "$PORTPRIO"
+else
+       brctl stp ${DEVICE} no
+fi
+
+ip link set dev ${DEVICE} multicast ${MULTICAST} ${ARP}
+if ! (ip link set dev ${DEVICE} up); then
+       nls "problems with setting bridge %s" "${DEVICE}"
+       exit 1
+fi
diff --git a/trunk/lib/ifup-ipx b/trunk/lib/ifup-ipx
new file mode 100755 (executable)
index 0000000..eddd099
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# configures IPX on $1 if appropriate
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+if [ "$1" = "" ]; then
+       nls "Usage: %s <device name>" "ifup-ipx" >&2
+       exit 1
+fi
+
+if is_no "$IPX"; then
+       exit 0
+fi
+
+if [ ! -x /sbin/ipx_interface ] ; then
+       nls "%s is missing. Can't continue." "/sbin/ipx_interface"
+       exit 1
+fi
+
+cd /lib/rc-scripts
+
+CONFIG=$1
+[ -f "$CONFIG" ] || CONFIG=ifcfg-$CONFIG
+source_config
+
+# set all major variables
+setup_ip_param
+
+# add ipx for all frame types
+for frametype in '802.2' '802.2TR' '802.3' 'EtherII' 'SNAP'; do
+       framename=$(echo $frametype | awk ' { gsub(/\./,"_"); print $0 } ')
+       case $(eval echo $(echo \$$(echo IPXACTIVE_$framename))) in
+         yes|true)
+               case $(eval echo $(echo \$$(echo IPXPRIMARY_$framename))) in
+                 yes|true) primary="-p" ;;
+                 *) primary= ;;
+               esac
+               ip link set $DEVICE up
+               /sbin/ipx_interface add $primary $DEVICE $frametype \
+                       $(eval echo $(echo \$$(echo IPXNETNUM_$framename)))
+               ;;
+       esac
+done
+
+exit 0
diff --git a/trunk/lib/ifup-irda b/trunk/lib/ifup-irda
new file mode 100755 (executable)
index 0000000..174af48
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+#    ifup-irda - IrDA configuration script
+#    Copyright (C) 2001 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+if [ ! -x /sbin/irattach ]; then
+       nls "%s is missing. Can't continue." "/sbin/irattach"
+       exit 1
+fi
+
+. /etc/sysconfig/network
+
+# set all major variables
+setup_ip_param
+
+IRDAOPTS=
+
+if [ -n "${DONGLE}" ]; then
+       IRDAOPTS="${IRDAOPTS} -d ${DONGLE}"
+fi
+
+if is_yes "${DISCOVERY}" || [ -z "${DISCOVERY}" ]; then
+       IRDAOPTS="${IRDAOPTS} -s"
+fi
+
+/sbin/irattach ${IRDAPORT} ${IRDAOPTS}
+
+ip link set dev ${DEVICE} multicast ${MULTICAST} ${ARP}
+if ! (ip link set dev ${DEVICE} up); then
+       nls "problems with setting %s %s" "IrDA" "${DEVICE}"
+       exit 1
+fi
diff --git a/trunk/lib/ifup-iucv b/trunk/lib/ifup-iucv
new file mode 100755 (executable)
index 0000000..347b19a
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+# set all major variables
+setup_ip_param
+
+if is_yes "$IPV4_NETWORKING"; then
+       if [ -n "$IP4ADDR" ]; then
+               ip -4 addr add ${IP4ADDR} peer ${REMIP} dev ${DEVICE}
+       fi
+fi
+
+if is_yes "$IPV6_NETWORKING"; then
+       if [ -n "$IP6ADDR" ]; then
+               ip -6 addr add ${IP6ADDR} dev ${DEVICE}
+       fi
+fi
+
+ip link set dev ${DEVICE} up
+
+. /etc/sysconfig/network
+
+# IPv4/6 gateways and default routes
+setup_ip_gw_ro
+
+/lib/rc-scripts/ifup-post $1
diff --git a/trunk/lib/ifup-neigh b/trunk/lib/ifup-neigh
new file mode 100644 (file)
index 0000000..fe4f4a2
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# Adds static arps for device $DEVICE
+# Called from ifup-post.
+
+if is_no "$IPV4_NETWORKING"; then
+       return
+fi
+
+if [ ! -f /etc/sysconfig/static-arp ]; then
+       return
+fi
+
+# note the trailing white space character in the grep gets rid of aliases
+grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-arp | while read iface mac ip state args; do
+       [ -z "$state" ] && state="stale"
+       /sbin/ip neigh replace $ip lladdr $mac nud $state dev $DEVICE
+done
diff --git a/trunk/lib/ifup-plip b/trunk/lib/ifup-plip
new file mode 100755 (executable)
index 0000000..20ee9c8
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+# set all major variables
+setup_ip_param
+
+if is_yes "$IPV4_NETWORKING"; then
+       if [ -n "$IP4ADDR" ]; then
+               ip -4 addr add ${IP4ADDR} peer ${REMIP} dev ${DEVICE}
+       fi
+fi
+
+if is_yes "$IPV6_NETWORKING"; then
+       if [ -n "$IP6ADDR" ]; then
+               ip -6 addr add ${IP6ADDR} dev ${DEVICE}
+       fi
+fi
+
+ip link set dev ${DEVICE} up
+
+. /etc/sysconfig/network
+
+# IPv4/6 gateways and default routes
+setup_ip_gw_ro
+
+/lib/rc-scripts/ifup-post $1
diff --git a/trunk/lib/ifup-plusb b/trunk/lib/ifup-plusb
new file mode 100755 (executable)
index 0000000..4d7f6e2
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# The plusb network driver is a USB host-host cable based on the Prolific
+# chip. It works a lot like the plip driver.
+#
+# To get the plusb module to load automatically at boot, you will need to
+# add the following lines to /etc/conf.modules:
+#
+# alias plusb0 plusb
+#
+# $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+# set all major variables
+setup_ip_param
+
+if is_yes "$IPV4_NETWORKING"; then
+       if [ -n "$IP4ADDR" ]; then
+               ip -4 addr add ${IP4ADDR} peer ${REMIP} dev ${DEVICE}
+       fi
+fi
+
+if is_yes "$IPV6_NETWORKING"; then
+       if [ -n "$IP6ADDR" ]; then
+               ip -6 addr add ${IP6ADDR} dev ${DEVICE}
+       fi
+fi
+
+ip link set dev ${DEVICE} up
+
+. /etc/sysconfig/network
+
+# IPv4/6 gateways and default routes
+setup_ip_gw_ro
+
+/lib/rc-scripts/ifup-post $1
diff --git a/trunk/lib/ifup-post b/trunk/lib/ifup-post
new file mode 100755 (executable)
index 0000000..6055d42
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+#      $Id$
+#
+
+run_up() { :; }
+
+. /etc/rc.d/init.d/functions
+. /etc/sysconfig/network
+. /lib/rc-scripts/functions.network
+
+need_hostname
+CONFIG=$1
+source_config
+
+# set all major variables
+setup_ip_param
+
+# set REALDEVICE
+get_ppp_device_and_pid
+
+# Simple QoS support (bandwidth limit)
+if [ -n "${BANDWIDTH_OUT}" ]; then
+       if [ "${QDISC_CLASS}" = "htb" -o "${QDISC_CLASS}" = "cbq" ]; then
+               case "${QDISC_CLASS}" in
+                 htb)
+                       tc qdisc add dev ${REALDEVICE} root handle 1: htb default 10
+                       tc class add dev ${REALDEVICE} parent 1: classid 1:10 htb rate ${BANDWIDTH_OUT}kbit ceil ${BANDWIDTH_OUT}kbit
+                       [ -n "${QDISC}" ] && tc qdisc add dev ${REALDEVICE} parent 1:10 ${QDISC}
+                       ;;
+                 cbq)
+                       # FIXME: hardcoded ethernet speed (bandwidth)
+                       tc qdisc add dev ${REALDEVICE} root handle 1: cbq bandwidth 100000kbit cell 8 avpkt 1000 mpu 64
+                       tc class add dev ${REALDEVICE} parent 1: classid 1:10 cbq bandwidth 100000kbit rate ${BANDWIDTH_OUT}kbit maxburst 5 avpkt 1000 allot 1514 bounded
+                       [ -n "${QDISC}" ] && tc qdisc add dev ${REALDEVICE} parent 1:10 ${QDISC}
+                       tc filter add dev ${REALDEVICE} protocol ip parent 1: u32 match ip src 0.0.0.0/0 flowid 1:10
+                       ;;
+               esac
+       elif [ -z "${QDISC}" -o "${QDISC}" = "tbf" ]; then
+               tc qdisc add dev ${REALDEVICE} root tbf rate ${BANDWIDTH_OUT}kbit latency 50ms burst 51200
+       elif [ -n "${QDISC}" ]; then
+               tc qdisc add dev ${REALDEVICE} root ${QDISC}
+       fi
+else
+       if [ -n "${QDISC}" ]; then
+               tc qdisc add dev ${REALDEVICE} root ${QDISC}
+       fi
+fi
+
+if [ -n "${BANDWIDTH_IN}" ]; then
+       tc qdisc add dev ${REALDEVICE} handle ffff: ingress
+       tc filter add dev ${REALDEVICE} parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${BANDWIDTH_IN}kbit burst 10k drop flowid :3
+fi
+
+. /lib/rc-scripts/ifup-aliases
+. /lib/rc-scripts/ifup-routes
+. /lib/rc-scripts/ifup-neigh
+
+# don't set hostname on ppp/slip connections
+if [ -n "$NEEDHOSTNAME" -a "${DEVICETYPE}" != "ppp" -a "${DEVICETYPE}" != "slip" ]; then
+       IPADDR=$(ip -f inet addr show dev ${DEVICE} |
+               awk '/inet/ { print $2 }' |awk -F"/" '{ print $1 }')
+       eval $(/bin/ipcalc --silent --hostname ${IPADDR}) && set_hostname $HOSTNAME
+fi
+
+# run tleds software
+if [ "$TLEDS_DEV" = "$DEVICE" -a -x /usr/bin/tleds ]; then
+       /usr/bin/tleds -qc "$DEVICE"
+fi
+
+# execute run_up() function (if available in device configuration file)
+run_up
+
+# Notify programs that have requested notification
+do_netreport
+
+exit 0
diff --git a/trunk/lib/ifup-ppp b/trunk/lib/ifup-ppp
new file mode 100755 (executable)
index 0000000..ca40f2f
--- /dev/null
@@ -0,0 +1,267 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# ifup-ppp script for pppd-2.3.5 (with persist & demand options) ver 0.2
+# Grzegorz Stanislawski <stangrze@open.net.pl>
+# Features:
+#  - since persist option is included to pppd it's no need to do werid loops
+#    ifup-ppp script. This also makes your logfile grow slower when Your link
+#    is down.
+#  - chat-ppp? file with script for chat is now parsed by shell, so You can
+#    include in it shell variables (for example $PHONE, $USERNAME)
+#    You can define any variable in ifcfg-ppp? file and use it in chat-ppp?
+#    You only have to add it's name into DATAFORCHAT variable
+#    Note, that chat-ppp file is now parsed by shell, so you have to escape
+#    with "\" all shell special characters like \$;:)(& etc.
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+# ifup-post for PPP is handled through /etc/ppp/ip-up
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+# set all major variables
+setup_ip_param
+
+if [ "$2" = "boot" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+if [ ! -x /usr/sbin/pppd ]; then
+       nls "%s does not exist or is not executable" "/usr/sbin/pppd"
+       nls "%s for %s exiting" "ifup-ppp" "$DEVICE"
+       logger -p daemon.info -t ifup-ppp \
+               "$(nls '%s does not exist or is not executable for %s' \
+               "/usr/sbin/pppd" "$DEVICE")"
+       exit 1
+fi
+
+# modprobe ppp modules (udev case)
+[ ! -e /dev/ppp ] && modprobe -s char-major-108
+
+opts="lock"
+
+if [ -z "${REPORTFILE}" ] ; then
+       REPORTFILE=/dev/null
+fi
+
+if [ -n "${PPPOE_DEV}" ]; then
+       if is_yes "${PPPOE_KERNEL}"; then
+               modprobe -s pppoe
+               MODEMMODE="plugin rp-pppoe.so"
+               MODEMPORT="${PPPOE_DEV}"
+       else
+               MODEMMODE="pty"
+               MODEMPORT="pppoe -I ${PPPOE_DEV} ${PPPOE_OPT}"
+       fi
+elif is_yes "${PPPOA_EAGLE}"; then
+       EAGLECTRL="/usr/sbin/adictrl"
+       if [ ! -x $EAGLECTRL ]; then
+               EAGLECTRL="/usr/sbin/eaglectrl"
+       fi
+       if [ ! -x $EAGLECTRL ]; then
+               nls "%s does not exist or is not executable" "$EAGLECTRL"
+               nls "%s for %s exiting" "ifup-ppp" "$DEVICE"
+               exit 1
+       fi
+       $EAGLECTRL -w
+       PPPOA_IFACE=$( $EAGLECTRL -i 2>/dev/null)
+       if [ -z "$PPPOA_IFACE" ]; then
+               PPPOA_IFACE="(unknown)"
+       else
+               ip link set "$PPPOA_IFACE" up
+       fi
+       MODEMMODE="pty"
+       MODEMPORT="pppoa -I ${PPPOA_IFACE} ${PPPOA_OPT}"
+elif is_yes "${PPPOA_SPEEDTOUCH}"; then
+       if is_yes "${PPPOA_KERNEL}"; then
+               modprobe -s speedtch
+               modprobe -s pppoatm
+               if [ -n "${PPPOA_FIRMWARE}" ]; then
+                       modem_run -k -s -f "${PPPOA_FIRMWARE}"
+               fi
+               MODEMMODE="plugin pppoatm.so"
+               MODEMPORT="${PPPOA_VPI}.${PPPOA_VCI}"
+       else
+               modem_run -s -f "${PPPOA_FIRMWARE}"
+               MODEMMODE="pty"
+               MODEMPORT="pppoa3 -v1 -c -vpi ${PPPOA_VPI} -vci ${PPPOA_VCI} ${PPPOA_OPT}"
+       fi
+elif is_yes "${PPPOA}"; then
+       MODEMMODE="plugin pppoatm.so"
+       MODEMPORT="${PPPOA_VPI}.${PPPOA_VCI}"
+else
+
+       if [ -n "$MODEMPORT" -a ! -c "$MODEMPORT" ]; then
+               echo >&2 "MODEMPORT=$MODEMPORT is not a character device!"
+               exit 1
+       fi
+
+       if is_no "${DIRECT_CONNECT}" || [ -z "${DIRECT_CONNECT}" ]; then
+               PEERCONF=/etc/ppp/peers/${DEVNAME}
+               if [ ! -f ${PEERCONF} ]; then
+                       if [ -z "${WVDIALSECT}" ]; then
+                               # XXX: REPORTFILE support is problematic here --misiek
+                               [ -f "${CHATSCRIPT}" ] || CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-${PARENTDEVNAME}
+                               if [ ! -f "${CHATSCRIPT}" ]; then
+                                       nls '%s does not exist, perhaps set $CHATSCRIPT' "${CHATSCRIPT}"
+                                       nls 'ifup-ppp for %s exiting' "${DEVNAME}"
+                                       logger -p daemon.info -t ifup-ppp \
+                                               "$(nls '%s does not exist for %s' "${CHATSCRIPT}" "${DEVICE}")"
+                                       exit 1
+                               fi
+                       fi
+                       logger -s -p daemon.notice -t ifup-ppp "$(nls 'Setting up a new %s config file' "${PEERCONF}")"
+                       if [ -f /etc/ppp/peers/${DEVICE} ]; then
+                               cp -f /etc/ppp/peers/${DEVICE} ${PEERCONF}
+                       else
+                               touch ${PEERCONF}
+                       fi
+                       if [ "${WVDIALSECT}" ]; then
+                               echo "connect \"/usr/bin/wvdial --chat ${WVDIALSECT} --config /etc/wvdial.conf >> ${REPORTFILE} 2>&1 \"" >> ${PEERCONF}
+                       else
+                               if is_yes "${DEBUG}"; then
+                                       chatdbg="-v"
+                               fi
+                               if [ -n "${DATAFORCHAT}" ]; then
+                                       chatreadenv=-E
+                               fi
+                               echo "connect \"/usr/sbin/chat $chatreadenv -f ${CHATSCRIPT} -r ${REPORTFILE} ${chatdbg}\"" >> ${PEERCONF}
+                       fi
+               fi
+               opts="$opts call ${DEVNAME}"
+       fi
+fi
+
+if [ -z "$MODEMPORT" ]; then
+       # Last try:
+       if [ "${PPPOA_VPI}" -a "${PPPOA_VCI}" ]; then
+               MODEMPORT=${PPPOA_VPI}.${PPPOA_VCI}
+       else
+               echo >&2 "Missing modemport!"
+               exit 1
+       fi
+fi
+
+if [ -z "$HOLDOFF" ]; then
+       HOLDOFF=30
+fi
+if is_yes "${PERSIST}"; then
+       if [ -z "${MAXFAIL}" ]; then
+               MAXFAIL="0"
+       fi
+       opts="$opts persist holdoff $HOLDOFF maxfail $MAXFAIL"
+fi
+if is_yes "${DEMAND}"; then
+       if [ -z "${IDLE}" ]; then
+               IDLE="0"
+       fi
+       opts="$opts demand ktune idle ${IDLE}"
+fi
+if ! is_no "${HARDFLOWCTL}"; then
+       opts="$opts crtscts"
+fi
+if is_yes "${MODEMCTL}"; then
+       opts="$opts modem"
+fi
+if is_yes "${SYNC}"; then
+       opts="$opts sync"
+fi
+if is_yes "${ESCAPECHARS}"; then
+       opts="$opts asyncmap FFFFFFFF"
+else
+       opts="$opts asyncmap 00000000"
+fi
+if is_yes "${DEFROUTE}"; then
+       # pppd will no longer delete an existing default route
+       # so we have to help it out a little here.
+       ip route del 0/0 > /dev/null 2>&1
+       opts="$opts defaultroute"
+elif ! is_no "${DEFROUTE}"; then
+       opts="$opts defaultroute"
+fi
+if ! is_no "${PEERDNS}"; then
+       opts="$opts usepeerdns"
+fi
+if [ -n "${MRU}" ] ; then
+       opts="$opts mru ${MRU}"
+fi
+if [ -n "${MTU}" ] ; then
+       opts="$opts mtu ${MTU}"
+fi
+if is_yes "$IPV4_NETWORKING" && [ -n "${IP4ADDR}${REMIP}" ] ; then
+       # if either IP address is set, the following will work.
+       opts="$opts ${IP4ADDR}:${REMIP}"
+fi
+if is_yes "$IPV6_NETWORKING"; then
+       if is_yes "$IPV6_PPP"; then
+               if [ -n "${IP6ADDR}${REMIP6}" ] ; then
+                       opts="$opts ipv6 ${IP6ADDR},${REMIP6}"
+               elif is_yes "$IPV6_CP_USEV4"; then
+                       opts="$opts ipv6cp-use-ipaddr"
+               elif is_yes "$IPV6_CP_PERSISTENT"; then
+                       opts="$opts ipv6cp-use-persistent"
+               fi
+       elif is_no "$IPV6_PPP"; then
+               opts="$opts noipv6"
+       fi
+elif is_no "$IPV6_NETWORKING"; then
+       opts="$opts noipv6"
+fi
+if is_yes "${IPX_PPP}"; then
+       opts="$opts ipx"
+       if [ -n "${IPX_PPP_NETWORK}" ]; then
+               opts="$opts ipx-network ${IPX_PPP_NETWORK}"
+       fi
+       if [ -n "${IPX_PPP_NODE}" ]; then
+               opts="$opts ipx-node ${IPX_PPP_NODE}"
+       fi
+       if [ -n "${IPX_PPP_ROUTING}" ]; then
+               opts="$opts ipx-routing ${IPX_PPP_ROUTING}"
+       fi
+fi
+
+if [ -n "${PAPNAME}" ] ; then
+       opts="$opts user ${PAPNAME}"
+fi
+if [ -n "${REMOTENAME}" ] ; then
+       opts="$opts remotename ${REMOTENAME}"
+fi
+if is_yes "${DEBUG}"; then
+       opts="$opts debug"
+fi
+if is_yes "${AUTH}"; then
+       opts="$opts auth"
+elif is_no "${AUTH}"; then
+       opts="$opts noauth"
+fi
+if is_yes "$PLUGIN_IFCFG_PASSWORD" && [ -n "$PASSWORD" ]; then
+       if [ -f "$CONFIG" ]; then
+               ifcfg_password_config="$CONFIG"
+       else
+               ifcfg_password_config="/etc/sysconfig/interfaces/$CONFIG"
+       fi
+       opts="$opts plugin ifcfg-password.so ifcfg $ifcfg_password_config"
+fi
+
+if ! is_no "${UNIT}"; then
+       UNIT=$(echo "${DEVICE}" | awk ' { gsub(/ppp/,NUL); print $0} ')
+       opts="$opts unit ${UNIT}"
+fi
+
+MODEM="${MODEMPORT}"; export MODEM
+
+(logger -p daemon.info -t ifup-ppp \
+       "$(nls 'pppd started for %s on device %s at speed %s' "$DEVICE" \
+       "$MODEMPORT" "${LINESPEED:-(unspecified)} on unit ${UNIT}")" &)&
+
+if [ -n "${DATAFORCHAT}" ]; then
+       export $DATAFORCHAT
+fi
+/usr/sbin/pppd $opts ${MODEMMODE} "${MODEMPORT}" ${LINESPEED} \
+       ipparam ${DEVNAME} linkname ${DEVNAME} \
+       ${PPPOPTIONS}
diff --git a/trunk/lib/ifup-routes b/trunk/lib/ifup-routes
new file mode 100644 (file)
index 0000000..d27c860
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+#      $Id$
+#
+# Adds static routes which go through device $DEVICE
+# Called from ifup-post.
+
+if [ ! -f /etc/sysconfig/static-routes -a ! -f /etc/sysconfig/static-routes6 ]; then
+       return
+fi
+
+# note the trailing white space character in the grep gets rid of aliases
+grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-routes | while read device args; do
+       if [[ "$args" = *:* ]]; then
+               if is_no "$IPV6_NETWORKING"; then
+                       continue
+               fi
+       else
+               if is_no "$IPV4_NETWORKING"; then
+                       continue
+               fi
+       fi
+       /sbin/ip route add $args dev $REALDEVICE
+done
+
+if ! is_no "$IPV6_NETWORKING"; then
+       grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do
+               /sbin/ip -6 route add $args dev $REALDEVICE
+       done
+fi
+
+# based on information from http://avahi.org/wiki/AvahiAutoipd#Routes
+if is_yes "$ZEROCONF" && ! /sbin/ip link show dev $REALDEVICE | grep -q POINTOPOINT ; then
+       # metric based on device ifindex, so the same route may be added to
+       # multiple devices. Big, so it won't conflict with anything else.
+       if [ -f /sys/class/net/$REALDEVICE/ifindex ] ; then
+               metric="$(cat /sys/class/net/$REALDEVICE/ifindex)"
+               metric=$(($metric + 1000))
+       else
+               metric=1000
+       fi
+
+       # default route in default table, so it won't override default
+       # route set by other means
+       /sbin/ip route add default metric $metric dev $REALDEVICE table default
+
+       # add 169.254.0.0/16 route if not already present on the device
+       current=$(/sbin/ip route show 169.254.0.0/16 dev $REALDEVICE)
+       if [ -z "$current" ] ; then
+               /sbin/ip route add 169.254.0.0/16 metric $metric dev $REALDEVICE
+       fi
+
+       unset metric
+       unset current
+fi
diff --git a/trunk/lib/ifup-sl b/trunk/lib/ifup-sl
new file mode 100755 (executable)
index 0000000..85b9b2f
--- /dev/null
@@ -0,0 +1,117 @@
+#!/bin/sh
+#
+#      $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+# ifup-post can't be done for slip :-( Solution: use PPP
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+# become a daemon in case we have to persist.
+if [ "$1" != daemon ] ; then
+       # disconnect stdin, out, err to disassociate from controlling tty
+       # so that no HUPs will get through.
+       $0 daemon $*& </dev/null >/dev/null 2>/dev/null
+       exit 0
+fi
+shift
+
+CONFIG=$1
+source_config
+
+if [ "foo$2" = "fooboot" ] && is_no ${ONBOOT}; then
+       exit
+fi
+
+# set all major variables
+setup_ip_param
+
+if [ -z "$RETRYTIMEOUT" ]; then
+       RETRYTIMEOUT=30
+fi
+
+# Try to load slip module
+if is_module "slip"; then
+       /sbin/modprobe -s slip
+fi
+
+# we can use dip or direct slip connection via slattach
+if is_no "$DIRECT_CONNECT"; then
+       [ -x /usr/sbin/dip ] || {
+               nls "%s does not exist or is not executable" "/usr/sbin/dip"
+               nls "%s for %s exiting" "ifup-sl" "$DEVICE"
+               logger -p daemon.info -t ifup-sl \
+                       "$(nls '%s does not exist or is not executable for %s' "/usr/sbin/dip" "$DEVICE")"
+               exit 1
+       }
+
+       DIPSCRIPT=/etc/sysconfig/interfaces/data/dip-$DEVNAME
+       [ -f $DIPSCRIPT ] || {
+               DIPSCRIPT=/etc/sysconfig/interfaces/data/dip-$PARENTDEVNAME
+       }
+       [ -f $DIPSCRIPT ] || {
+               nls '%s does not exist' "/etc/sysconfig/interfaces/data/dip-$DEVICE"
+               nls 'ifup-sl - %s exiting' "$DEVICE"
+               logger -p daemon.info -t ifup-sl \
+                       "$(nls '%s does not exist for %s' "/etc/sysconfig/interfaces/data/dip-$DEVICE" "$DEVICE")"
+               exit 1
+       }
+
+       while : ; do
+               echo > /var/run/sl-$DEVICE.dev
+               (logger -p daemon.info -t ifup-sl \
+                       "$(nls 'dip started for %s on %s at %s' "$DEVICE" "$MODEMPORT" "$LINESPEED")" &)&
+               doexec /usr/sbin/dip dip-$DEVICE $DIPSCRIPT
+               if is_no "$PERSIST" || [ ! -f /var/run/sl-$DEVICE.dev ] ; then
+                       exit 0
+               fi
+               rm -f /var/run/sl-$DEVICE.dev
+
+               sleep $RETRYTIMEOUT || {
+                       # sleep was killed
+                       exit 0
+               }
+       done
+else
+       # direct connection via slattach
+       [ -z "$MTU" ] && MTU=1500
+       [ -z "$PROTOCOL" ] && PROTOCOL=slip
+
+       [ -x /sbin/slattach ] || {
+               nls "%s is missing. Can't continue." "/sbin/slattach"
+               nls "ifup-sl - %s exiting" "$DEVICE"
+               logger -p daemon.info -t ifup-sl \
+                       "$(nls '%s does not exist or is not executable for %s' "/sbin/slattach" "$DEVICE")"
+               exit 1
+       }
+
+       echo > /var/run/sl-$DEVICE.dev
+       (logger -p daemon.info -t ifup-sl \
+               "$(nls 'slattach started for %s on %s at %s' "$DEVICE" "$MODEMPORT" "$LINESPEED")" &)&
+
+       slattach -p $PROTOCOL -s $LINESPEED $MODEMPORT &
+       usleep 1500
+
+       if is_yes "$IPV4_NETWORKING"; then
+               if [ -n "$IP4ADDR" -a -n "$REMIP" ]; then
+                       # Peer is only for IPv4
+                       ip -4 addr add $IP4ADDR peer $REMIP dev $DEVICE
+               fi
+       fi
+
+       if is_yes "$IPV6_NETWORKING"; then
+               if [ -n "$IP6ADDR" ]; then
+                       ip -6 addr add $IP6ADDR dev $DEVICE
+               fi
+       fi
+
+       ip link set $DEVICE mtu $MTU up
+
+       # IPv4/6 gateways and default routes
+       setup_ip_gw_ro
+
+       /lib/rc-scripts/ifup-post $1
+fi
diff --git a/trunk/lib/ifup-vlan b/trunk/lib/ifup-vlan
new file mode 100755 (executable)
index 0000000..0d30b03
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+#
+#    ifup-vlan - Virtual LAN configuration script
+#    Copyright (C) 2001 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+cd /lib/rc-scripts
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+CONFIG=$1
+source_config
+
+if is_no "${VLAN_NETWORKING}"; then
+       exit 0
+fi
+
+if [ "foo$2" = "fooboot" ] && is_no "${ONBOOT}"; then
+       exit 0
+fi
+
+VLAN_DEV=$(echo ${DEVICE} | awk ' { gsub(/\..*$/,NUL); print $0 } ')
+VLAN_ID=$(echo ${DEVICE} | awk " { gsub(/${VLAN_DEV}\./,NUL); print \$0 } ")
+
+if [ ! -f /etc/sysconfig/interfaces/ifcfg-${VLAN_DEV} ]; then
+       nls "%s is missing. Can't continue." "ifcfg-${VLAN_DEV}"
+       exit 1
+fi
+
+if ! grep -qlE "ONBOOT=[^n][^o]" /etc/sysconfig/interfaces/ifcfg-${VLAN_DEV}; then
+       nls "Warning: ${VLAN_DEV} is disabled on boot."
+fi
+
+modprobe -s 8021q
+
+if [ ! -e /proc/net/vlan/config ]; then
+       nls "VLAN kernel support is missing. Can't continue."
+       exit 1
+fi
+
+# set all major variables
+setup_ip_param
+
+if (LC_ALL=C ip link add type vlan help 2>&1 | grep -q "VLANID :="); then
+       /sbin/ip link set ${VLAN_DEV} up
+       /sbin/ip link add link ${VLAN_DEV} name ${DEVICE} type vlan id ${VLAN_ID}
+       # default yes
+       is_no "${VLAN_REORDER_HDR}" && VLAN_REORDER_HDR=off || VLAN_REORDER_HDR=on
+       # default yes
+       is_no "$VLAN_GVRP" && VLAN_GVRP=off || VLAN_GVRP=on
+       /sbin/ip link set ${DEVICE} type vlan reorder_hdr ${VLAN_REORDER_HDR} gvrp ${VLAN_GVRP}
+elif [ -x /sbin/vconfig ]; then
+       /sbin/vconfig set_name_type DEV_PLUS_VID_NO_PAD
+       /sbin/ip link set ${VLAN_DEV} up
+       /sbin/vconfig add ${VLAN_DEV} ${VLAN_ID}
+       /sbin/vconfig set_flag ${DEVICE} 1 ${VLAN_REORDER_HDR:-1}
+else
+       nls "/sbin/vconfig or iproute2 with vlan support is missing. Can't continue."
+       exit 1
+fi
+RESULT=$?
+
+# XXX: more VLAN specific options support
+
+exit $RESULT
diff --git a/trunk/lib/tnldown b/trunk/lib/tnldown
new file mode 100755 (executable)
index 0000000..67c7f20
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+#    tnldown - tunnel configuration script
+#    Copyright (C) 1999, 2000 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+DEV=$1
+
+[ -z "$DEV" ] && {
+       nls "Usage: %s <device name>" "tnldown" >&2
+       exit 1
+}
+
+TNLCONFIGS=$(LC_ALL=C ls /etc/sysconfig/interfaces/tnlcfg-* 2>/dev/null | grep -vE '~$')
+TNLCONFIGS=$(grep -LE '^#!' $TNLCONFIGS)
+CONFIG=$(grep -lE "^DEVICE=[\"\']*$DEV[\"\']*\$" $TNLCONFIGS)
+
+if [ -z "$CONFIG" ]; then
+       CONFIG="$DEV"
+fi
+
+if false; then
+       [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || CONFIG=tnlcfg-$CONFIG
+       [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || {
+               echo "usage: tnldown <device name>" >&2
+               exit 1
+       }
+fi
+
+source_config
+
+case "${MODE}" in
+  sit|four)
+       is_no "${IPV6_NETWORKING}" && exit 0
+       is_no "${IPV6_TUNNELCONFIG}" && exit 0
+       ;;
+  ipip)
+       is_no "${IPV4_NETWORKING}" && exit 0
+       ;;
+  gre)
+       is_no "${IPV4_NETWORKING}" && exit 0
+       ;;
+  ipxip|ipipx)
+       is_no "${IPX}" && exit 0
+       ;;
+esac
+
+RESULT=0
+
+case "${MODE}" in
+  ipip|sit|gre)
+       ip link set ${DEVICE} down
+       ip tunnel del ${DEVICE}
+       RESULT=$?
+       ;;
+  four)
+       ip link set ${DEVICE} down
+       fourcfg del ${DEVICE}
+       RESULT=$?
+       ;;
+  ipxip|ipipx)
+       ;;
+esac
+
+exit $RESULT
diff --git a/trunk/lib/tnlup b/trunk/lib/tnlup
new file mode 100755 (executable)
index 0000000..f7ffdc1
--- /dev/null
@@ -0,0 +1,136 @@
+#!/bin/sh
+#
+#    tnlup - tunnel configuration script
+#    Copyright (C) 1999, 2000 Arkadiusz Miśkiewicz <misiek@pld-linux.org>
+#
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#
+#    $Id$
+#
+
+. /etc/sysconfig/network
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+DEV=$1
+
+[ -z "$DEV" ] && {
+       nls "Usage: %s <device name>" "tnlup" >&2
+       exit 1
+}
+
+TNLCONFIGS=$(LC_ALL=C ls /etc/sysconfig/interfaces/tnlcfg-* 2>/dev/null | grep -vE '~$')
+TNLCONFIGS=$(grep -LE '^#!' $TNLCONFIGS)
+CONFIG=$(grep -lE "^DEVICE=[\"\']*$DEV[\"\']*\$" $TNLCONFIGS)
+
+if [ -z "$CONFIG" ]; then
+       CONFIG="$DEV"
+fi
+
+if false; then
+       [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || CONFIG=tnlcfg-$CONFIG
+       [ -f "/etc/sysconfig/interfaces/$CONFIG" ] || {
+               echo "usage: tnlup <device name>" >&2
+               exit 1
+       }
+fi
+
+source_config
+
+if [ "foo$2" = "fooboot" -a -n "${ONBOOT}" ] && is_no "${ONBOOT}"; then
+       exit
+fi
+
+case "${MODE}" in
+  sit|four)
+       is_no "${IPV6_NETWORKING}" && exit 0
+       is_no "${IPV6_TUNNELCONFIG}" && exit 0
+       [ "${MODE}" = "sit" ] && is_module "sit" && modprobe -s sit
+       [ "${MODE}" = "four" ] && is_module "fourtun" && modprobe -s fourtun
+       ;;
+  ipip)
+       is_no "${IPV4_NETWORKING}" && exit 0
+       is_module "ipip" && modprobe -s ipip
+       ;;
+  gre)
+       is_no "${IPV4_NETWORKING}" && exit 0
+       is_module "ip_gre" && modprobe -s ip_gre
+       ;;
+  ipxip|ipipx)
+       is_no "${IPX}" && exit 0
+       ;;
+esac
+
+RESULT=0
+[ -z "${LOCALADDR}" ] && LOCALADDR=any
+[ -z "${REMOTEADDR}" ] && REMOTEADDR=any
+[ -n "${TTL}" ] && TTL="ttl ${TTL}"
+[ -n "${TOS}" ] && TOS="tos ${TOS}"
+[ -n "${BIND_DEV}" ] && BIND_DEV="dev ${BIND_DEV}"
+[ -n "${PRIORITY}" ] && PRIORITY="priority ${PRIORITY}"
+[ -n "${HOPLIMIT}" ] && HOPLIMIT="hoplimit ${HOPLIMIT}"
+[ -n "${ENCAPLIMIT}" ] && ENCAPLIMIT="encaplimit ${ENCAPLIMIT}"
+
+if is_yes "${SEQ}"; then
+       SEQ=seq
+else
+       is_yes "${ISEQ}" && SEQ=iseq
+       is_yes "${OSEQ}" && SEQ="${SEQ} oseq"
+fi
+
+if is_yes "${CSUM}"; then
+       CSUM=csum
+else
+       is_yes "${ICSUM}" && CSUM=icsum
+       is_yes "${ICSUM}" && CSUM="${SEQ} ocsum"
+fi
+
+is_yes "${ISEQ}" && ISEQ=iseq
+
+[ -z "${PMTUDISC}" -a "${TTL}" != "0" -a "${TTL}" != "inherit" ] && PMTUDISC=yes
+
+if is_yes "${PMTUDISC}"; then
+       PMTUDISC=pmtudisc
+elif is_no "${PMTUDISC}"; then
+       PMTUDISC=nopmtudisc
+fi
+
+if [ -n "${KEY}" ]; then
+       IKEY=""
+       OKEY=""
+fi
+
+case "${MODE}" in
+  ipip|sit)
+       ip tunnel add ${DEVICE} mode ${MODE} local ${LOCALADDR} \
+               remote ${REMOTEADDR} ${TTL} ${TOS} ${PMTUDISC} ${BIND_DEV}
+       RESULT=$?
+       ;;
+  gre)
+       ip tunnel add ${DEVICE} mode ${MODE} local ${LOCALADDR} \
+               remote ${REMOTEADDR} ${TTL} ${TOS} ${PMTUDISC} ${BIND_DEV} \
+               ${CSUM} ${ISEQ} ${KEY} ${IKEY} ${OKEY}
+       RESULT=$?
+       ;;
+  fourtun)
+       fourcfg add ${DEVICE} saddr ${LOCALADDR} daddr ${REMOTEADDR} \
+               ${PRIORITY} ${HOPLIMIT} ${ENCAPLIMIT}
+       RESULT=$?
+       ;;
+  ipxip|ipipx)
+       ;;
+esac
+
+exit $RESULT
diff --git a/trunk/make-tag.sh b/trunk/make-tag.sh
new file mode 100755 (executable)
index 0000000..559f404
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+url=$(svn info | awk '/^URL:/{gsub("/trunk$", "", $2); print $2}')
+rev=$(svn info | awk '/^Revision:/{print $2}')
+
+version=$(awk -F, '/AC_INIT/{print $2}' configure.ac | tr -d '[ ]')
+tag="$version"
+
+echo "Making tag: $tag at revision $rev"
+echo ""
+echo "Press ENTER to continue..."
+read a
+
+svn cp $url/trunk $url/tags/$tag
diff --git a/trunk/man/Makefile.am b/trunk/man/Makefile.am
new file mode 100644 (file)
index 0000000..451c93a
--- /dev/null
@@ -0,0 +1,19 @@
+@SET_MAKE@
+
+SUBDIRS = de es fr ja ru sv
+
+man_MANS = \
+       consoletype.1 \
+       doexec.1 \
+       genhostid.1 \
+       getkey.1 \
+       initlog.1 \
+       ipcalc.1 \
+       netreport.1 \
+       ppp-watch.8 \
+       usernetctl.8 \
+       usleep.1 \
+       crypttab.5 \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/consoletype.1 b/trunk/man/consoletype.1
new file mode 100644 (file)
index 0000000..3f4ec14
--- /dev/null
@@ -0,0 +1,39 @@
+.TH CONSOLETYPE 1 "Red Hat, Inc" "RH" \" -*- nroff -*-
+.SH NAME
+\fBconsoletype
+\- print type of the console connected to standard input
+.SH SYNOPSIS
+\fBconsoletype [\fIfg\fR]
+.SH DESCRIPTION
+\fBconsoletype
+prints the type of console connected to standard input, and checks
+whether the console connected to standard input is the current
+foreground virtual console. With no arguments, it prints
+\fIvt\fR
+if console is a virtual terminal (/dev/tty* or /dev/console device if not on
+a serial console),
+\fIserial\fR
+if standard input is a serial console (/dev/console or /dev/ttyS*) and
+\fIpty\fR
+if standard input is a pseudo terminal.
+.SH RETURN VALUE
+\fBconsoletype
+when passed no arguments returns 
+.TP
+\fI0
+if on virtual terminal
+.TP
+\fI1
+if on serial console
+.TP
+\fI2
+if on a pseudo terminal.
+.TP
+When passed the \fIfg\fR argument, \fBconsoletype\fR returns
+.TP
+\fI0
+if the console connected to standard input is the current virtual
+terminal
+.TP
+\fI1
+otherwise.
\ No newline at end of file
diff --git a/trunk/man/crypttab.5 b/trunk/man/crypttab.5
new file mode 100644 (file)
index 0000000..73bd8ae
--- /dev/null
@@ -0,0 +1,125 @@
+.\" A man page for /etc/crypttab.
+.\"
+.\" 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 <mitr@redhat.com>
+.TH crypttab 5 "Jul 2006"
+
+.SH NAME
+/etc/crypttab - encrypted block device table
+
+.SH DESCRIPTION
+The
+.B /etc/crypptab
+file describes encrypted block devices that are set up during system boot.
+
+Empty lines and lines starting with the
+.B #
+character are ignored.
+Each of the remaining lines describes one encrypted block device,
+fields on the line are delimited by white space.
+The first two fields are mandatory, the remaining two are optional.
+
+The first field contains the
+.I name
+of the resulting encrypted block device;
+the device is set up at
+\fB/dev/mapper/\fIname\fR.
+
+The second field contains a path to the underlying block device.
+If the block device contains a LUKS signature,
+it is opened as a LUKS encrypted partition;
+otherwise it is assumed to be a raw dm-crypt partition.
+
+The third field specifies the encryption password.
+If the field is not present or the password is set to \fBnone\fR,
+the password has to be manually entered during system boot.
+Otherwise the field is interpreted as a path to a file
+containing the encryption password.
+For swap encryption
+.B /dev/urandom
+can be used as the password file;
+using
+.B /dev/random
+may prevent boot completion
+if the system does not have enough entropy
+to generate a truly random encryption key.
+
+The fourth field, if present, is a comma-delimited list of options.
+The following options are recognized:
+.TP
+\fBcipher=\fIcipher\fR
+Specifies the cipher to use; see
+.BR cryptsetup (8)
+for possible values and the default value of this option.
+A cipher with unpredictable IV values, such as
+\fBaes-cbc-essiv:sha256\fR, is recommended.
+
+.TP
+\fBsize=\fIsize\fR
+Specifies the key size in bits; see
+.BR cryptsetup (8)
+for possible values and the default value of this option.
+
+.TP
+\fBhash=\fIhash\fR
+Specifies the hash to use for password hashing; see
+.BR cryptsetup (8)
+for possible values and the default value of this option.
+
+.TP
+\fBverify\fR
+If the the encryption password is read from console,
+it has to be entered twice (to prevent typos).
+
+.TP
+\fBswap\fR
+The encrypted block device will be used as a swap partition,
+and will be formatted as a swap partition
+after setting up the encrypted block device.
+The underlying block device
+will be formatted again as an unencrypted swap partition
+after destroying the encrypted block device.
+(This allows sharing a single swap partition between operating
+system installations,
+with some of them encrypting the swap partitions and some of them not.)
+
+\fIWARNING\fR: Using the
+.B swap
+option will destroy the contents of the named partition during every boot, so
+make sure the underlying block device is specified correctly.
+
+.TP
+\fBtmp\fR
+The encrypted block device will be prepared for using it as tmp partition:
+it will be formatted using
+.B mke2fs
+and its root directory will be set to mode 01777.
+The warning about the
+.B swap
+option applies here as well.
+
+.PP
+No options can be specified for LUKS encrypted partitions.
+
+.SH COMPATIBILITY
+The
+.B /etc/crypptab
+file format is based on the Debian cryptsetup package,
+and is intended to be compatible.
+
+.SH SEE ALSO
+.BR cryptsetup (8)
diff --git a/trunk/man/de/Makefile.am b/trunk/man/de/Makefile.am
new file mode 100644 (file)
index 0000000..e35be4d
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/de
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/de/start-stop-daemon.8 b/trunk/man/de/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..d913164
--- /dev/null
@@ -0,0 +1,255 @@
+.TH START\-STOP\-DAEMON 8 "14. Mai 2004" "Debian-Projekt" "dpkg Werkzeuge"
+.\"
+.\" Translated into german by Helge Kreutzmann <kreutzm@itp.uni-hannover.de>
+.hw wei-tere
+.SH NAME
+start\-stop\-daemon \- startet und stoppt System-Daemon-Programme
+.SH "ÜBERSICHT"
+.B start-stop-daemon
+.BR -S | --start
+.IR Optionen
+.RB [ \-\- ]
+.IR Argumente
+.HP
+.B start-stop-daemon
+.BR -K | --stop
+.IR Optionen
+.HP
+.B start-stop-daemon
+.BR -H | --help
+.HP
+.B start-stop-daemon
+.BR -V | --version
+.SH BESCHREIBUNG
+.B start\-stop\-daemon
+wird zur Kontrolle der Erzeugung und Beendigung von Prozessen auf
+Systemebene verwendet. Durch die Verwendung der
+.BR --exec ", " --pidfile ", " --user ", und " --name " Optionen"
+kann 
+.B start\-stop\-daemon
+so konfiguriert werden, daß er bereits existierende Instanzen von
+einem laufenden Prozess finden kann.
+
+Mittels
+.BR --start 
+überprüft
+.B start\-stop\-daemon
+auf die Existenz von speziellen Prozessen. 
+Falls ein solcher Prozess existiert, dann macht
+.B start\-stop\-daemon
+nichts, und beendet sich mit Fehlerstatus 1
+(0, falls
+.BR --oknodo
+angegeben wurde).
+Falls ein solcher Prozess nicht existiert, dann 
+startet es eine Instanz, entweder unter Verwendung
+des ausführbaren Programms, das mittels
+.BR --exec 
+spezifiziert wurde (oder, falls angegeben, mittels
+.BR --startas ).
+Jedes weitere auf der Kommandozeile angegebene Argument nach
+.BR --
+wird unverändert an das zu startende Programm weitergegeben. Falls
+.B --retry
+spezifiziert wurde, dann überprüft
+.B start-stop-daemon
+ob der Prozess (die Prozesse) beendet wurden.
+
+Mit 
+.BR --stop 
+überprüft
+.B start\-stop\-daemon
+auf auf die Existenz eines speziellen Prozesses. Falls ein
+solcher Prozess existiert, dann sendet
+.B start\-stop\-daemon
+das durch
+.BR --signal
+spezifizierte Signal
+und beendet sich mit Fehlerstatus 0.
+Falls kein solcher Prozess existiert, dann
+beendet sich
+.B start\-stop\-daemon
+mit Fehlerstatus 1
+(0 falls
+.BR --oknodo
+spezifiziert ist).
+
+.SH OPTIONEN
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIProgramm\fP
+Überprüfe auf Prozesse die (laut
+.BR /proc/\fIpid\fB/exe\fP )
+Instanzen von diesem Programm sind.
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIpid-Datei\fP
+Überprüfe auf Prozesse deren Prozess-ID in
+.IR pid-Datei
+angegeben ist.
+.TP
+\fB-u\fP|\fB--user\fP \fIBenutzername\fP|\fIuid\fP
+Überprüfe auf Prozesse die dem mit
+.I Benutzername 
+oder
+.IR uid 
+spezifizierten Benutzer gehören.
+.TP
+\fB-g\fP|\fB--group\fP \fIGruppe\fP|\fIgid\fP
+Wechsle zum Starten des Prozesses zur \fIGruppe\fP oder \fIgid\fP.
+.TP
+\fB-n\fP|\fB--name\fP \fIProzessname\fP
+Überprüfe 
+(laut 
+.BR /proc/\fIpid\fB/stat\fP )
+auf Prozesse mit dem Namen
+.IR Prozessname .
+.TP
+\fB-s\fP|\fB--signal\fP \fISignal\fP
+Mit
+.BR --stop 
+wird das an den zu beendenden Prozess zu sendende Signal spezifiziert
+(standardmäßig 15).
+.TP
+\fB-R\fP|\fB--retry\fP \fItimeout\fP|\fIPlan\fP
+Mit
+.BR --stop 
+spezifiziert, das
+.B start-stop-daemon
+überprüfen soll, ob der Prozess (die Prozesse) sich beenden. Es
+überprüft regelmäßig, ob ein passender Prozess läuft, bis dies
+nicht mehr der Fall ist. Falls sich die Prozesse nicht
+beenden werden weitere im »Plan« angegebene Aktionen durchgeführt.
+
+Falls
+.I timeout 
+anstelle von 
+.I Plan
+spezifiziert wird, dann wird der Plan
+.IB signal / timeout /KILL/ timeout
+verwendet, wobei 
+.I signal
+das mit
+.BR --signal 
+spezifizierte Signal ist.
+
+.I Plan
+ist eine Liste von mindestens zwei durch Schrägstriche
+.RB ( / )
+getrennten Punkten; jeder Punkt kann aus
+.BI - Signalnummer
+oder [\fB\-\fP]\fISignalname\fP bestehen,
+was bedeutet, daß dieses Signal gesendet werden soll, oder
+aus
+.IR timeout 
+was bedeutet das soviele Sekunden auf das Beenden des
+Prozesses gewartet werden soll, oder
+.BR forever 
+was bedeutet, den Rest des Plans falls notwendig für immer
+zu wiederholen.
+
+Falls das Ende des Plans erreicht wird und
+.BR forever
+nicht spezifiziert wurde, dann beendet sich der
+.B start-stop-daemon
+mit dem Fehlerstatus 2.
+Falls ein Plan spezifiziert wurde dann wird jedes
+mit
+.B --signal
+spezifizierte Signal ignoriert.
+.TP
+\fB-a\fP|\fB--startas\fP \fIPfadname\fP
+Mit
+.BR --start 
+wir der über 
+.IR Pfadname
+spezifizierte Prozess gestartet. Falls nicht angegeben,
+werden standardmäßig die an 
+.B --exec 
+übergebenen Argumente verwendet.
+.TP
+.BR -t | --test
+Gibt die zu erledigenden Aktionen aus und setzt die entsprechenden
+Rückgabewerte, führt aber keine Aktionen durch.
+.TP
+.BR -o | --oknodo
+Liefert den Rückgabewert 0 anstatt 1 falls keine Aktionen ausgeführt wurden (würden).
+.TP
+.BR -q | --quiet
+Gibt keine informationelle Meldungen aus, nur Fehlermeldungen werden angezeigt.
+.TP
+\fB-c\fP|\fB--chuid\fP \fIBenutzername\fR|\fIuid\fP
+Wechselt vor dem Start des Prozesses zu diesem Benutzername/uid. Sie
+können durch Anhängen von
+.BR : 
+auch die Gruppe spezifizieren, in diesem Fall wird die Gruppe oder gid
+wie bei dem »chown«-Befehl (\fIBenutzer\fP\fB:\fP\fIGruppe\fP) angegeben.
+Wenn Sie diese Option verwenden, müssen Sie daran denken, daß die primäre
+und zusätzlichen Gruppe auch gesetzt werden, selbst wenn die
+.B --group
+Option nicht spezifiziert wird. Die
+.B --group
+ist nur für Gruppen in denen der Benutzer normalerweise kein Mitglied
+ist (wie das Hinzufügen von pro-Prozess Gruppenmitgliedschaften für
+generische Nutzer wie
+.BR nobody ).
+.TP
+\fB-r\fP|\fB--chroot\fP \fIWurzel\fP
+Chdir und chroot vor dem Start des Prozesse zu
+.IR Wurzel .#
+Bitte beachten Sie das die PID-Datei auch nach dem chroot geschrieben
+wird.
+.TP
+\fB-d\fP|\fB--chdir\fP \fIPfad\fP
+Chdir vor dem Starten des Prozesses zu
+.IR Pfad .
+Dies wird, falls die \fB-r\fP|\fB--chroot\fP Option gesetzt ist,
+nach dem chroot durchgeführt.
+.TP
+.BR -b | --background
+Typischerweise verwendet für Programme die sich nicht selbständig
+ablösen. Diese Option zwingt
+.B start-stop-daemon
+vor dem Start des Prozesses einen Fork durchzuführen, und ihn in
+den Hintergrund zu zwingen.
+.B WARNUNG: start-stop-daemon
+kann nicht den Rückgabewert überprüfen, falls der Prozess aus
+.B irgendeinem
+Grund nicht startet. Dies ist ein letztes Mittel und ist nur für Programme
+gedacht, bei denen das selbstständige Forken keinen Sinn macht oder wo es
+nicht sinnvoll ist, den Code hierfür hinzuzufügen.
+.TP
+\fB-N\fP|\fB--nicelevel\fP \fIGanzzahl\fP 
+Dies ändert die Priorität des Prozesses bevor er gestartet wird.
+.TP
+.BR -m | --make-pidfile
+Verwendet wenn ein Programm gestartet wird, dass keine eigene PID-Datei
+erstellt. Diese Option sorgt dafür, dass
+.B start-stop-daemon
+die mit 
+.B --pidfile
+referenzierte Datei anlegt und die PID kurz vor der Ausführung des Prozesse
+hineinlegt. Beachten Sie, dass sie nicht entfernt wird wenn das Programm
+beendet wird.
+.B HINWEIS:
+Diese Funktion könnte nicht in allen Fällen funktionieren. Insbesondere wenn
+das auszuführende Programm sich vom Hauptprozess forkt. Deshalb ist diese
+Option normalerweise nur in Kombination mit der
+.B --background
+Option sinnvoll.
+.TP
+.BR -v | --verbose
+Gibt ausführliche informative Meldungen aus.
+.TP
+.BR -H | --help
+Gibt Hilfeinformationen aus und beendet sich dann.
+.TP
+.BR -V | --version
+Gibt Versionsinformationen aus und beendet sich dann.
+
+.SH AUTOREN
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> basierend
+auf einer vorherigen Version von 
+Ian Jackson <ian@chiark.greenend.org.uk>.
+
+Handbuchseite von Klee Dienes <klee@mit.edu>, teilweise von Ian
+Jackson umformatiert.
diff --git a/trunk/man/doexec.1 b/trunk/man/doexec.1
new file mode 100644 (file)
index 0000000..59b8b91
--- /dev/null
@@ -0,0 +1,12 @@
+.TH DOEXEC 1 "Red Hat Software" "RHS" \" -*- nroff -*-
+.SH NAME
+doexec \- run an executable with an arbitrary argv[0]
+.SH SYNOPSIS
+.B doexec
+\fI/path/to/executable\fP \fIargv[0]\fP [\fIargv[1-n]\fP]
+.SH DESCRIPTION
+.B doexec
+simply runs the executable with the argv list provided.  It allows you
+to specify an argv[0] other than the name of the executable.
+.SH OPTIONS
+All options are passed in the argv list to the executable being run.
diff --git a/trunk/man/es/Makefile.am b/trunk/man/es/Makefile.am
new file mode 100644 (file)
index 0000000..6786f69
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/es
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/es/start-stop-daemon.8 b/trunk/man/es/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..0bb522b
--- /dev/null
@@ -0,0 +1,245 @@
+.\" Hey, Emacs!  This is an -*- nroff -*- source file.
+.\" (c) 2003 Software in the Public Interest
+.\" Traductor: Rubén Porras Campo <nahoo@inicia.es> y revisada
+.\" por Santiago Vila <sanvila@unex.es>
+.\" Basado en la versión 1.3 de 
+.\" /cvs/debian-doc/manpages/english/dpkg/start-stop-daemon.8
+
+.TH START\-STOP\-DAEMON 8 "15 de marzo de 1997" "Proyecto Debian" "Debian GNU/Linux"
+.SH NOMBRE
+start\-stop\-daemon \- para y arranca demonios del sistema
+.SH SINOPSIS
+.B start-stop-daemon
+.BR -S | --start
+.IR opciones
+.RB [ \-\- ]
+.IR argumentos
+.HP
+.B start-stop-daemon
+.BR -K | --stop
+.IR opciones
+.HP
+.B start-stop-daemon
+.BR -H | --help
+.HP
+.B start-stop-daemon
+.BR -V | --version
+.SH DESCRIPCIÓN
+.B start\-stop\-daemon
+se usa para controlar la creación y terminación de los procesos del sistema.
+Usando las opciones
+.BR --exec ", " --pidfile ", " --user ", y " --name " opciones,"
+.B start\-stop\-daemon
+se puede configurar para encontrar distintos procesos del mismo demonio.
+
+Con
+.BR --start ,
+.B start\-stop\-daemon
+comprueba la existencia del proceso especificado.
+Si este proceso ya existe,
+.B start\-stop\-daemon
+no hace nada, y termina con un estado de error 1 (0 si se especifica
+.BR --oknodo
+).
+Si el proceso no existe, comienza uno nuevo, 
+usando el ejecutable especificado por
+.BR --exec ,
+(o, si se especifica, por
+.BR --startas
+).
+Cualquier argumento dado en la línea de ordenes después de
+.BR --
+se pasa sin modificación alguna al programa que se va a ejecutar. Si se
+especifica la opción
+.B --retry
+entonces 
+.B start-stop-daemon
+comprobará que el proceso o los procesos han terminado.
+
+Con 
+.BR --stop ,
+.B start\-stop\-daemon
+comprueba además la existencia del proceso especificado.
+Si este proceso existe,
+.B start\-stop\-daemon
+envía la señal especificada por
+.BR --signal ,
+y termina con un estado de error 0.
+Si este proceso no existe,
+.B start\-stop\-daemon
+termina con un estado de error 1 (0 si se ha especificado la opción
+.BR --oknodo
+).
+
+.SH OPCIONES
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIejecutable\fP
+Busca distintos procesos de este ejecutable (según 
+.B /proc/\fIpid\fB/exe\fP
+).
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIfichero-de-pid\fP
+Comprueba si existen los procesos cuyo id corresponde con el
+especificado en 
+.IR fichero-de-pid .
+.TP
+\fB-u\fP|\fB--user\fP \fInombre-usuario\fP|\fIuid\fP
+Comprueba si existen los procesos del usuario especificado por
+.I nombre-usuario
+o
+.IR uid .
+.TP
+\fB-g\fP|\fB--group\fP \fIgrupo\fP|\fIgid\fP
+Cambia a \fIgrupo\fP o \fIgid\fP cuando comienza el proceso.
+.TP
+\fB-n\fP|\fB--name\fP \fInombre-proceso\fP
+Comprueba los procesos con el nombre
+.I nombre-proceso
+(según
+.BR /proc/\fIpid\fB/stat\fP ).
+.TP
+\fB-s\fP|\fB--signal\fP \fIseñal\fP
+Junto con
+.BR --stop ,
+especifica la señal enviada al proceso que se desea parar (15 por omisión).
+.TP
+\fB-R\fP|\fB--retry\fP \fItiempo-de-espera\fP|\fIacción-programada\fP
+Junto con
+.BR --stop ,
+especifica que
+.B start-stop-daemon
+compruebe que el proceso o los procesos han terminado.  Lo comprobará 
+repetidas veces hasta que no haya ningún proceso que coincida. Si el proceso 
+no termina tomará una decisión determinada por 
+.I acción-programada .
+
+Si se especifica
+.I tiempo-de-espera
+en vez de
+.I acción-programada
+entonces se usa la secuencia
+.IB señal / tiempo-de-espera /KILL/ tiempo-de-espera
+, donde
+.I señal
+es la señal especificada por
+.BR --signal .
+
+.I acción-programada
+es una lista de al menos dos artículos separados por barras
+.RB ( / );
+cada artículo puede ser un
+.BI - número de señal
+o [\fB\-\fP]\fInombre de señal\fP,
+que significa que se debe mandar esa señal, o
+.IR tiempo-de-espera,
+que significa que se debe esperar esos segundos para que el programa
+termine, o
+.BR forever ,
+que significa que se repite el resto de acción-programada para siempre 
+si es necesario.
+
+Si se alcanza el final de la acción-programada y no se ha especificado
+.BR forever
+, entonces
+.B start-stop-daemon
+termina con un estado de error 2.
+Si se especifica una secuencia, entonces cualquier señal especificada
+con
+.B --signal
+no se tendrá en cuenta.
+.TP
+\fB-a\fP|\fB--startas\fP \fIpathname\fP
+Con 
+.BR --start ,
+comienza el proceso especificado por
+.IR pathname .
+Si no se especifica, se usarán los argumentos dados con
+.BR --exec .
+.TP
+.BR -t | --test
+Muestra las acciones que se realizarían y devuelve el valor
+apropiado, pero no hace nada.
+.TP
+.BR -o | --oknodo
+Devuelve un estado 0 en vez de 1 si no se realiza (realizasen)
+ninguna acción.
+.TP
+.BR -q | --quiet
+No muestra mensajes informativos, sólo muestra mensajes de error.
+.TP
+\fB-c\fP|\fB--chuid\fP \fInombre-usuario\fR|\fIuid\fP
+Cambia a este usuario/uid antes de empezar el proceso. Además puede
+especificar el grupo añadiendo
+.BR : ,
+luego el grupo o el gid del mismo modo que haría con la orden
+`chown' (\fIusuario\fP\fB:\fP\fIgrupo\fP).
+Debe de darse cuenta que cuando se usa esta opción el grupo primario
+y complementario se cambian también, incluso si no se especifica
+.B --group .
+La opción 
+.B --group
+es sólo para grupos de los que el usuario no es miembro (como el grupo
+nobody ).
+.TP
+\fB-r\fP|\fB--chroot\fP \fIdirectorio-raíz
+Efectua chdir y chroot a
+.I directorio-raíz
+antes de empezar el proceso. Dese cuenta que el fichero del pid
+también es escrito después de hacer el chroot.
+.TP
+\fB-d\fP|\fB--chdir\fP \fIdirectorio\fP
+Efectua chdir a
+.I directorio
+antes de empezar el proceso. Esto se hace después de efectuar chroot, si es que
+la opción
+\fB-r\fP|\fB--chroot\fP está establecida.
+.TP
+.BR -b | --background
+Usado típicamente con programas que no se separan por sí mismos. Esta
+opción forzará
+.B start-stop-daemon
+a hacer fork antes de empezar el proceso, y luego dejarlo en segundo plano.
+.B ATENCIÓN: start-stop-daemon
+no puede comprobar el estado de salida si el proceso no puede ejecutarse
+por 
+.B cualquier
+razón. Esto se hace como último recurso, y sólo tiene sentido usarla en 
+programas donde no tiene sentido que hagan fork por sí mismos, o no es
+factible añadir el código para que lo hagan por sí mismos.
+.TP
+\fB-N\fP|\fB--nicelevel\fP \fIentero\fP
+Altera la prioridad del proceso antes de empezarlo.
+.TP
+.BR -m | --make-pidfile
+Se usa cuando se quiere comenzar un programa que no crea su propio
+fichero de pid. Esta opción hace que
+.B start-stop-daemon
+cree el fichero referido con
+.B --pidfile
+y coloque el pid dentro de él justo antes de ejecutar el
+proceso. Dese cuenta que no se borrará cuando termine el programa.
+.B NOTA:
+Esta característica no funciona en todos los casos. Más notablemente
+cuando el programa que se ejecuta hace fork en su proceso principal.
+Por esto solamente es útil cuando se combina con la opción
+.B --background .
+.TP
+.BR -v | --verbose
+Muestra mensajes informativos detallados.
+.TP
+.BR -H | --help
+Muestra la ayuda y luego termina.
+.TP
+.BR -V | --version
+Muestra la versión y luego termina.
+
+.SH AUTORES
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> basada en una
+versión previa de Ian Jackson <ian@chiark.greenend.org.uk>.
+
+Página del manual de Klee Dienes <klee@mit.edu>, reformada
+parcialmente por Ian Jackson.
+
+Traducida por Rubén Porras <nahoo@inicia.es>
+Revisada por Santiago Vila <sanvila@unex.es>
diff --git a/trunk/man/fr/Makefile.am b/trunk/man/fr/Makefile.am
new file mode 100644 (file)
index 0000000..4c40260
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/fr
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/fr/start-stop-daemon.8 b/trunk/man/fr/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..16332a3
--- /dev/null
@@ -0,0 +1,234 @@
+.TH START\-STOP\-DAEMON 8 "15th March 1997" "Debian Project" "Debian GNU/Linux"
+.\" traduction de la version cvs 1.15
+.SH NOM
+start\-stop\-daemon \- lance ou arrête des démons-systèmes
+.SH SYNOPSIS
+.B start-stop-daemon
+.BR -S |--start
+.IR options
+.RB [ \-\- ]
+.IR arguments
+.HP
+.B start-stop-daemon
+.BR -K | --stop
+.IR options
+.HP
+.B start-stop-daemon
+.BR -H | --help
+.HP
+.B start-stop-daemon
+.BR -V | --version
+.SH DESCRIPTION
+On se sert de
+.B start\-stop\-daemon
+pour contrôler la création ou l'arrêt de processus-système.
+On peut configurer
+.B start\-stop\-daemon
+avec les options
+.BR --exec ", " --pidfile ", " --user ", et " --name 
+pour trouver les exemplaires présents d'un processus en fonctionnement.
+
+Avec l'action
+.BR --start,
+.B start\-stop\-daemon
+vérifie l'existence d'un processus particulier.
+Quand existe un tel processus,
+.B start\-stop\-daemon
+ne fait rien et se termine avec un code d'erreur égal à 1 (0 si
+.BR --oknodo
+est précisé).  
+Quand un tel processus n'existe pas, un exemplaire de l'exécutable est lancé 
+avec
+.BR --exec,
+(ou, si c'est précisé, avec
+.BR --startas).
+Tout argument donné après
+.BR --
+sur la ligne de commande est passé tel quel au programme qui doit être lancé.
+Si
+.B --retry
+est indiqué,
+.B start\-stop\-daemon
+vérifie que le (ou les) processus s'est terminé.
+
+Avec l'action
+.BR --stop,
+.B start\-stop\-daemon
+vérifie aussi l'existence d'un processus particulier.
+Quand un tel processus existe 
+.B start\-stop\-daemon
+lui envoie le signal précisé avec
+.BR --signal,
+et se termine avec un code d'erreur égal à 0.
+Quand un tel processus n'existe pas
+.B start\-stop\-daemon
+se termine avec un code d'erreur égal à 1
+(0 if 
+.BR --oknodo
+est précisé).  
+
+.SH OPTIONS
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIexécutable\fP
+Cherche les processus qui sont des exemplaires de cet exécutable (selon
+.B /proc/\fIpid\fB/exe\fP).
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIpid-file\fP
+Cherche les processus dont les identifiants sont précisés dans
+.IR pid-file.
+.TP
+\fB-u\fP|\fB--user\fP \fInom-d-utilisateur\fP|\fIuid\fP
+Cherche les processus qui appartiennent à l'utilisateur défini par
+.I nom-d-utilisateur 
+ou
+.IR uid.
+.TP
+\fB-g\fP|\fB--group\fP \fIgroup\fP|\fIgid\fP
+Modifie le \fIgroup\fP ou le \fIgid\fP au début du processus.
+.TP
+\fB-n\fP|\fB--name\fP \fInom-de-processus\fP
+Cherche les processus dont le nom est
+.I nom-de-processus
+(selon
+.B /proc/\fIpid\fB/stat\fP).
+.TP
+\fB-s\fP|\fB--signal\fP \fIsignal\fP
+Avec l'action
+.BR --stop,
+on définit le signal à envoyer au processus qui doit être arrêté 
+(par défaut : signal 15).
+.TP
+\fB-R\fP|\fB--retry\fP \fIdurée\fP|\fIaction-prévue\fP
+Avec l'action
+.BR --stop,
+.B start-stop-daemon
+doit vérifier que les processus se sont terminés. Il le fait pour tous les
+processus correspondants qui tournent, jusqu'à ce qu'il n'y en ait plus.
+Quand le processus ne se termine pas, il prend d'autres mesures déterminées
+par l'action-prévue.
+
+Si
+.I durée
+est indiqué plutôt que
+.I action-prévue,
+l'action-prévue
+.IB signal / durée /KILL/ durée
+est utilisé, où
+.I signal
+est le signal indiqué par
+.BR --signal.
+
+.I action-prévue
+est une liste d'au moins deux items séparés par des barres obliques
+.RB ( / )\ ;
+Chaque item peut être de la forme
+.BI - signal-number
+ou de la forme [\fB\-\fP]\fIsignal-name\fP,
+ce qui demande d'envoyer ce signal\ ;
+ou bien de la forme
+.IR durée,
+ce qui demande d'attendre tant de secondes avant de terminer les processus,
+ou bien de la forme
+.BR forever ,
+ce qui demande de répéter constamment le reste de action-prévue, si nécessaire.
+
+Quand la fin de l'action-prévue est atteinte et que
+.BR forever
+n'a pa été précisé,
+.B start-stop-daemon
+se termine avec un code d'erreur égal à 2.
+Quand une action-prévue est indiquée, tout signal donné par
+.B --signal
+est ignoré.
+.TP
+.I -a | --startas chemin/nom
+Avec l'action
+.B --start
+, lance le processus spécifié par
+.I chemin/nom.
+Si rien n'est précisé, c'est par défaut l'argument donné à
+.B --exec.
+.TP
+.I -t | --test
+Affiche les actions qui seraient entreprises et détermine la bonne valeur de 
+retour, mais ne fait rien.
+.TP
+.I -o | --oknodo
+Retourne un code de sortie égal à 0 au lieu de 1 si rien n'est ou ne sera fait.
+.TP
+.I -q | --quiet
+N'affiche pas de messages d'information ; affiche seulement les messages
+d'erreur.
+.TP
+.I -c | --chuid
+Change l'utilisateur ou l'identifiant avant de lancer le processus.
+On peut aussi préciser un groupe an ajoutant un « : », puis le groupe ou un 
+identifiant de la même façon qu'avec la commande « chown » 
+(utilisateur:groupe). Quand on utilise cette option, on doit s'apercevoir
+que les groupes primaires ainsi que les groupes supplémentaires sont aussi 
+déterminés, même si l'option « group » n'est pas spécifiée. L'option « group » 
+sert seulement pour les groupes dont l'utilisateur n'est pas un membre régulier
+(c'est comme rendre membres d'un groupe-processus des utilisateurs 
+génériques comme « nobody »).
+.TP
+.I -r | --chroot root
+Change de répertoire racine pour
+.B root
+avant de lancer le processus. Remarquez que le « pidfile » est aussi écrit
+après le changement de racine.
+.TP
+\fB-d\fP|\fB--chdir\fP \fIpath\fP
+Change de répertoire pour
+.I chemin
+avant de commencer le processus. Cela est fait avant le changement de
+répertoire racine si l'option \fB-r\fP|\fB--chroot\fP est demandée.
++.TP
+.I -b | --background
+est utilisé de manière classique pour les programmes qui ne « se détachent » 
+pas d'eux-mêmes. Cette option oblige
+.B start-stop-daemon
+à se dupliquer (fork) avant de lancer le processus, et l'oblige à passer en
+arrière-plan.
+.B AVERTISSEMENT :
+start-stop-daemon
+ne peut pas vérifier le code de sortie quand, pour
+.B une raison ou une autre,
+le processus échoue.
+C'est un expédient dont on se servira seulement pour des programmes dont la
+duplication n'a pas de sens ou bien des programmes dont le code 
+n'est pas transformable pour leur ajouter cette fonctionnalité.
+.TP
+\fB-N\fP|\fB--nicelevel\fP \fIint\fP.
+Cela modifie la priorité du processus avant qu'il ne soit lancé.
+.TP
+.I -m | --make-pidfile
+Est utilisé lors du lancement d'un programme qui ne crée pas son propre 
+fichier identificateur. Cette option dit à
+.B start-stop-daemon
+de créer le fichier référencé par
+.B --pidfile
+et place le « pid » dans ce fichier juste avant d'exécuter le processus.
+Il faut remarquer que ce fichier n'est pas supprimé quand le programme
+s'arrête.
+.B NOTE :
+il se peut que cette caractéristique ne marche pas dans tous les cas. Et
+notamment quand le programme qui est exécuté se duplique. À cause de cela,
+cette option n'est habituellement utile que combinée avec l'option
+.B --background.
+.TP
+.I -v | --verbose
+Affiche des messages prolixes de renseignements.
+.TP
+.I -H | --help
+Affiche une aide et se termine.
+.TP
+.I -V | --version
+Affiche le numéro de version et se termine.
+
+.SH AUTEURS
+Ian Jackson <ian@chiark.greenend.org.uk>
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>
+Page de manuel par Klee Dienes <klee@mit.edu>.
+.SH TRADUCTION
+Philippe Batailler <pbatailler@teaser.fr>, Octobre 2003.
\ No newline at end of file
diff --git a/trunk/man/genhostid.1 b/trunk/man/genhostid.1
new file mode 100644 (file)
index 0000000..436d953
--- /dev/null
@@ -0,0 +1,12 @@
+.TH GENHOSTID 1
+.SH NAME
+genhostid \- generate and set a hostid for the current host
+.SH SYNOPSIS
+.B genhostid
+
+.SH DESCRIPTION
+\fBgenhostid\fR generates a random hostid and stores it in /etc/hostid,
+if /etc/hostid does not already exist.
+
+.SH "SEE ALSO"
+hostid(1), gethostid(2), sethostid(2)
diff --git a/trunk/man/getkey.1 b/trunk/man/getkey.1
new file mode 100644 (file)
index 0000000..f6c1161
--- /dev/null
@@ -0,0 +1,80 @@
+.\" A man page for getkey(1). -*- 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 <mitr@redhat.com>
+.TH getkey 1 "Jan 2006"
+
+.SH NAME
+getkey \- wait until a key is pressed
+
+.SH SYNOPSIS
+\fBgetkey\fR [\fIOPTION\fR]... [\fIKEYS\fR]
+
+.SH DESCRIPTION
+.B getkey
+waits until one of
+.I KEYS
+is pressed.
+If
+.I KEYS
+are not specified, any key is accepted.
+.I KEYS
+are matched case-insensitive.
+
+.SH EXIT STATUS
+.B getkey
+exits with status 0 if one of the expected keys is pressed.
+If invalid arguments are specified,
+.B getkey
+exits with status 255.
+If
+.B getkey
+is interrupted or the wait times out,
+.B getkey
+exits with other non-zero status.
+
+.SH OPTIONS
+.TP
+\fB\-c\fR, \fB\-\-wait\fR \fISECONDS\fR
+Wait only for
+.I SECONDS
+seconds.
+The default is 0, which means to wait without a time limit.
+
+.TP
+\fB\-i\fR, \fB\-\-ignore\-control\-chars\fR
+Don't treat Ctrl+C and Ctrl+D specially.
+When this option is not specified, these characters interrupt \fBgetkey\fR.
+
+.TP
+\fB\-m\fR, \fB\-\-message\fR \fIMESSAGE\fR
+Display
+.I MESSAGE
+while waiting.
+The message is used as a format string in
+.BR sprintf (3),
+with a single argument, the number of seconds left.
+Typical usage is therefore
+\fB"Press a key within %d seconds to ..."\fR.
+If
+.I MESSAGE
+contains other format string directives, the behavior is undefined and
+.B getkey
+may crash.
+
+If there is no time limit specified,
+the number of seconds left is reported as 0.
diff --git a/trunk/man/initlog.1 b/trunk/man/initlog.1
new file mode 100644 (file)
index 0000000..1eb0587
--- /dev/null
@@ -0,0 +1,84 @@
+.TH initlog 8 "Sun Jan 24 1999"
+.SH NAME
+initlog \- log messages and events to the system logger
+.SH SYNOPSIS
+.B initlog
+[\-cefnpqrs] [\-\-cmd=ARG] [\-\-event=ARG] [\-\-facility=ARG]
+[\-\-name=ARG] [\-\-priority=ARG] [\-\-run=ARG] [\-\-string=ARG]
+.SH DESCRIPTION
+\fBinitlog\fR logs messages and events to the system logger.
+It is mainly designed for use in init scripts. initlog
+reads a configuration file
+.I /etc/initlog.conf
+by default, to determine its settings. Any line preceded with a 
+.I #
+is a comment, and the following configuration directives
+are recognized:
+.TP
+.I facility <logging facility>
+Sets the default logging facility
+.TP
+.I priority <logging priority>
+Sets the default logging priority
+.TP
+.I ignore <regexp>
+Messages that match the regular expression will not be logged.
+.TP
+initlog behavior can also be configured by command-line options.
+
+.SS OPTIONS
+.TP
+.I "\-c, \-\-cmd=[program]"
+Execute the specified program, logging anything output to
+stdout or stderr.
+.TP
+.I "\-e, \-\-event=[number]"
+Logs that the specified event happened. Used in conjuction
+with \fB\-\-name\fR. Currently specified events are:
+.PD 0
+.RS 8n
+.TP 3n
+.B 1
+the action completed successfully
+.TP
+.B 2
+the action failed
+.TP
+.B 3
+the action was cancelled at user request
+.TP
+.B 4
+the action failed due to the failure of a dependent action
+.RE
+.PD
+.TP
+.I "\-f, \-\-facility=[facility]"
+Log at the specified syslog facility. The default
+is \fBdaemon\fR (see syslog(3)).
+.TP
+.I "\-n, \-\-name=[string]"
+Log the event under the specified string, such as
+"inetd".
+.TP
+.I "\-p, \-\-priority=[priority]"
+Log at the specified syslog priority. The default
+is \fBnotice\fR (see syslog(3)).
+.TP
+.I "\-q"
+Do not print the program's output, unless it exits
+with a non-zero exit code.
+.TP
+.I "\-r, \-\-run=[program]"
+Execute the specified program, with an open file
+descriptor so that the program can pass back
+commands to initlog.
+.TP
+.I "\-s, \-\-string=[string]"
+Log the specified string to the logger.
+.TP
+.I "\-\-conf=[file]"
+Specifies an alternate configuration file.
+.SH FILES
+.I /etc/initlog.conf
+.SH "SEE ALSO"
+syslog(3), logger(1)
diff --git a/trunk/man/ipcalc.1 b/trunk/man/ipcalc.1
new file mode 100644 (file)
index 0000000..fd9b212
--- /dev/null
@@ -0,0 +1,58 @@
+.TH IPCALC 1 "April 30 2001" "Red Hat, Inc." RH \" -*- nroff -*-
+.SH NAME
+ipcalc \- perform simple manipulation of IP addresses
+.SH SYNOPSIS
+.B ipcalc
+[\fIOPTION\fR]... <\fBIP address\fR>[\fI/prefix\fR] [\fInetmask\fR]
+
+.SH DESCRIPTION
+\fBipcalc\fR provides a simple way to calculate IP information for a host.
+The various options specify what information \fBipcalc\fR should display
+on standard out. Multiple options may be specified.  An IP address to
+operate on must always be specified.  Most operations also require a
+netmask or a CIDR prefix as well.
+
+.SH OPTIONS
+.TP
+.TP
+\fB\-b\fR, \fB\-\-broadcast\fR 
+Display the broadcast address for the given IP address and netmask.
+
+.TP
+\fB\-h\fR, \fB\-\-hostname\fR 
+Display the hostname for the given IP address.
+
+.TP
+\fB\-m\fR, \fB\-\-netmask\fR
+Calculate the netmask for the given IP address. It assumes that the IP
+address is in a complete class A, B, or C network. Many networks do
+not use the default netmasks, in which case an inappropriate value will
+be returned.
+
+.TP
+\fB\-p\fR, \fB\-\-prefix\fR
+Show the prefix for the given mask/IP address.
+
+.TP
+\fB\-n\fR, \fB\-\-network\fR 
+Display the network address for the given IP address and netmask.
+
+.TP
+\fB\-s\fR, \fB\-\-silent\fR 
+Don't ever display error messages.
+
+.SH AUTHORS
+.nf
+Erik Troan <ewt@redhat.com>
+.nf
+Preston Brown <pbrown@redhat.com>
+.fi
+.SH "REPORTING BUGS"
+Report bugs to our bugtracking system:
+http://bugzilla.redhat.com/bugzilla.
+.SH COPYRIGHT
+Copyright \(co 1997-2001 Red Hat, Inc.
+.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.
diff --git a/trunk/man/ja/Makefile.am b/trunk/man/ja/Makefile.am
new file mode 100644 (file)
index 0000000..d6039bc
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/ja
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/ja/start-stop-daemon.8 b/trunk/man/ja/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..1b08cd3
--- /dev/null
@@ -0,0 +1,257 @@
+.\"original revision: 1.15.2.2
+.\"
+.\" Translated Wed May 13 17:28:56 JST 1998
+.\"    by Hidenobu NABETANI <nabetani@kern.phys.sci.osaka-u.ac.jp>
+.\" Last modified: Tue Nov 11 14:24:54 JST 2003
+.\"
+.\" WORD:      infomational message    »²¹Í¾ðÊó
+.\" WORD:      instance                ¥¤¥ó¥¹¥¿¥ó¥¹
+.\"
+.TH START\-STOP\-DAEMON 8 "15th March 1997" "Debian Project" "dpkg utilities"
+.SH Ì¾Á°
+start\-stop\-daemon \- ¥·¥¹¥Æ¥à¥Ç¡¼¥â¥ó¥×¥í¥°¥é¥à¤Îµ¯Æ°¡¢Ää»ß
+.SH ½ñ¼°
+.B start-stop-daemon
+.BR -S | --start
+.IR options
+.RB [ \-\- ]
+.IR arguments
+.HP
+.B start-stop-daemon
+.BR -K | --stop
+.IR options
+.HP
+.B start-stop-daemon
+.BR -H | --help
+.HP
+.B start-stop-daemon
+.BR -V | --version
+.SH ÀâÌÀ
+.B start\-stop\-daemon
+¤Ï¥·¥¹¥Æ¥à¥ì¥Ù¥ë¤Î¥×¥í¥»¥¹¤ÎÀ¸À®¤äÄä»ß¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
+¤Þ¤¿¡¢
+.BR --exec ", " --pidfile ", " --user ", " --name
+¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤ò¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+
+.BR --start
+¤ò»ÈÍѤ¹¤ë¤È¡¢
+.B start\-stop\-daemon
+¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¤«¤òÄ´¤Ù¤ë¡£
+³ºÅö¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¾ì¹ç¡¢
+.B start\-stop\-daemon
+¤Ï²¿¤â¤»¤º¡¢¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹ 1 ¤òÊÖ¤·¤Æ½ªÎ»¤¹¤ë(
+.BR --oknodo
+¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢0 ¤òÊÖ¤¹)¡£³ºÅö¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢
+.BR --exec
+¤Ë¤è¤ê(Ëô¤Ï¡¢
+.BR --startas
+¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¤³¤ì¤Ë¤è¤ê
+)»ØÄꤵ¤ì¤ë¼Â¹Ô¥Õ¥¡¥¤¥ë¤òµ¯Æ°¤¹¤ë¡£
+¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Ç
+.BR --
+°Ê¹ß¤ËÍ¿¤¨¤é¤ì¤¿Ç¤°Õ¤Î°ú¿ô¤Ïµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Ë¤½¤Î¤Þ¤Þ°ú¤­
+ÅϤµ¤ì¤ë¡£¤â¤·
+.B --retry
+¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
+.B start-stop-daemon
+¤Ï¤½¤Î¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤«¤É¤¦¤«¤ò
+³Îǧ¤¹¤ë¡£
+
+.BR --stop
+¤ò»ÈÍѤ¹¤ë¤È¡¢
+.B start\-stop\-daemon
+¤Ï»ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë¤«¤òÄ´¤Ù¤ë¡£³ºÅö¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤¹
+¤ë¾ì¹ç¡¢
+.B start\-stop\-daemon
+¤Ï
+.BR --signal
+¤Ë¤è¤ê»ØÄꤵ¤ì¤¿¥·¥°¥Ê¥ë¤ò¤½¤Î¥×¥í¥»¥¹¤ËÁ÷¤ê¡¢¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹ 0 
+¤òÊÖ¤·¤Æ½ªÎ»¤¹¤ë¡£³ºÅö¤¹¤ë¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢
+.B start\-stop\-daemon
+¤Ï¥¨¥é¡¼¥¹¥Æ¡¼¥¿¥¹ 1 ¤òÊÖ¤·¤Æ½ªÎ»¤¹¤ë(
+.BR --oknodo
+¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹)¡£
+
+.SH ¥ª¥×¥·¥ç¥ó
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIexecutable\fP
+(
+.B /proc/\fIpid\fB/exe\fP
+¤Ë¤è¤ê)»ØÄꤵ¤ì¤¿ executable ¤Î¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¡£
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIpid-file\fP
+.IR pid-file
+¤Ç»ØÄꤵ¤ì¤ë¥×¥í¥»¥¹ ID ¤ò»ý¤Ä¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¡£
+.TP
+\fB-u\fP|\fB--user\fP \fIusername\fP|\fIuid\fP
+.I username 
+¤Þ¤¿¤Ï
+.I uid
+¤Ç»ØÄꤵ¤ì¤ë¥æ¡¼¥¶¤¬½êÍ­¤¹¤ë¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¡£
+.TP
+\fB-g\fP|\fB--group\fP \fIgroup\fP|\fIgid\fP
+¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ë»þÅÀ¤Ç¡¢\fIgroup\fP ¤ä \fIgid\fP ¤òÊѹ¹¤¹¤ë¡£
+.TP
+\fB-n\fP|\fB--name\fP \fIprocess-name\fP
+(
+.BR /proc/\fIpid\fB/stat\fP
+¤Ë¤è¤ê)
+.I process-name
+¤È¤¤¤¦Ì¾¤Î¥×¥í¥»¥¹¤òÄ´¤Ù¤ë¡£
+.TP
+\fB-s\fP|\fB--signal\fP \fIsignal\fP
+.BR --stop
+¤¬Æ±»þ¤ËÍ¿¤¨¤é¤ì¤¿»þ¡¢¥×¥í¥»¥¹¤òÄä»ß¤¹¤ë¤¿¤á¤ËÁ÷¤ë¥·¥°¥Ê¥ë¤ò»ØÄꤹ¤ë
+(¥Ç¥Õ¥©¥ë¥È¤Ï 15)¡£
+.TP
+\fB-R\fP|\fB--retry\fP \fItimeout\fP|\fIschedule\fP
+Ʊ»þ¤Ë
+.BR --stop
+¤¬Í¿¤¨¤é¤ì¤ë¤È
+.B start-stop-daemon
+¤Ï¤É¤Î¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤«¤ò³Îǧ¤¹¤ë¡£
+¥Þ¥Ã¥Á¤·¤¿¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤¬Á´¤Æ½ªÎ»¤¹¤ë¤Þ¤Ç·«¤êÊÖ¤·³Îǧ¤¹¤ë¡£
+¤â¤·¥×¥í¥»¥¹¤¬½ªÎ»¤·¤Ê¤±¤ì¤Ð¡¢
+.I schedule
+¤Ë¤è¤ê·èÄꤵ¤ì¤ë
+Ê̤Υ¢¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¤ë¡£
+¤â¤·
+.I timeout
+¤¬
+.I schedule
+¤Î¤«¤ï¤ê¤Ë»ØÄꤵ¤ì¤Æ¤¤¤ë¤È¡¢
+.IB signal / timeout /KILL/ timeout
+¤¬»È¤ï¤ì¤ë¡£¤³¤³¤Ç
+.I signal
+¤Ï 
+.BR --signal 
+¤Ç»ØÄꤵ¤ì¤ë¥·¥°¥Ê¥ë¤Ç¤¢¤ë¡£
+
+.I schedule
+¤Ï¥¹¥é¥Ã¥·¥å
+.RB ( / )
+¤Ç¶èÀÚ¤é¤ì¤¿¾¯¤Ê¤¯¤È¤â2¤Ä¤ÎÍ×ÁǤ«¤é¤Ê¤ë¥ê¥¹¥È¤Ç¤¢¤ë¡£
+¤½¤ì¤¾¤ì¤ÎÍ×ÁǤÏ
+.BI - signal-number
+¤â¤·¤¯¤Ï [\fB\-\fP]\fIsignal-name\fP
+¤Î¾ì¹ç¤ÏÁ÷¤ë¤Ù¤­¥·¥°¥Ê¥ë¡¢
+.IR timeout 
+¤Î¾ì¹ç¤Ï¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤ÄÉÿô¡¢
+.BR forever
+¤Î¾ì¹ç¤Ï¤â¤·É¬Íפʤé»Ä¤ê¤Î
+.I schedule
+¤ò·«¤êÊÖ¤·Å¬ÍѤ¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+
+¤â¤·
+.I schedule
+¤òÁ´¤Æ»È¤Ã¤Æ¡¢
+.BR forever
+¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢
+.B start-stop-daemon
+¤Ï¥¨¥é¡¼¾õÂÖ 2 ¤Ç½ªÎ»¤¹¤ë¡£
+¤â¤·
+.I schedule 
+¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢
+.B --signal
+¤Ç»ØÄꤷ¤¿¥·¥°¥Ê¥ë¤Ï̵»ë¤µ¤ì¤ë¡£
+Ʊ»þ¤Ë
+.B --start
+¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢
+.I pathname
+¤Ë¤è¤ê»ØÄꤵ¤ì¤ë¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢
+.B --exec
+¤ËÍ¿¤¨¤é¤ì¤ë°ú¿ô¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ë¡£
+.TP
+.BR -t | --test
+¼Â¹Ô¤·¤è¤¦¤È¤¹¤ë½èÍýÆâÍƤò½ÐÎϤ·¡¤¤½¤ì¤Ëȼ¤¤Å¬ÀÚ¤ÊÊÖ¤êÃͤ¬ÀßÄꤵ¤ì¤ë
+¤¬¡¢¼ÂºÝ¤Î½èÍý¤Ï¹Ô¤ï¤Ê¤¤¡£
+.TP
+.BR -o | --oknodo
+½èÍý¤¬²¿¤â¹Ô¤ï¤ì¤Ê¤¤(Ëô¤Ï¡¢¹Ô¤Ê¤ï¤ì¤è¤¦¤È¤â¤·¤Ê¤«¤Ã¤¿)¾ì¹ç¡¢
+½ªÎ»¥¹¥Æ¡¼¥¿¥¹ 1 ¤Î¤«¤ï¤ê¤Ë 0 ¤òÊÖ¤¹¡£
+.TP
+.BR -q | --quiet
+»²¹Í¾ðÊó¤ò½ÐÎϤ·¤Ê¤¤¡£¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Î¤ßɽ¼¨¡£
+.TP
+\fB-c\fP|\fB--chuid\fP \fIusername\fR|\fIuid\fP
+½èÍý¤ò³«»Ï¤¹¤ëÁ°¤Ë»ØÄꤵ¤ì¤¿¥æ¡¼¥¶Ì¾/¥æ¡¼¥¶ ID ¤ËÊѹ¹¤¹¤ë¡£
+.BR ':'
+¤Î¸å¤Ë
+¥°¥ë¡¼¥×̾¤Þ¤¿¤Ï¥°¥ë¡¼¥× ID ¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤ê¥°¥ë¡¼¥×¤â»ØÄê¤Ç¤­¤ë¡£
+¤³¤ì¤Ï `chown' ¥³¥Þ¥ó¥É¤ÈƱ¤¸½ñ¼° (\fIuser\fP\fB:\fP\fIgroup\fP)
+¤Ç¤¢¤ë¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò
+»ÈÍѤ·¤¿»þ¤Ë¤Ï¡¢
+.B --group
+¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¥×¥é¥¤¥Þ¥ê¥°¥ë¡¼¥×¤È
+Êä½õ¥°¥ë¡¼¥×¤ÏƱÍͤËÀßÄꤵ¤ì¤ë¤³¤È¤òÍý²ò¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é
+¤Ê¤¤¡£
+.B --group 
+¥ª¥×¥·¥ç¥ó¤Ï¡¢(
+.B nobody
+¤Î¤è¤¦¤Ê°ìÈÌŪ¥æ¡¼¥¶¤ËÂФ·¤Æ¥×¥í¥»¥¹Ã±°Ì¤Ç¥°¥ë¡¼¥×¤ËÄɲ乤ë¤È¤¤¤¦¤è¤¦¤Ë)
+¥æ¡¼¥¶¤¬Ä̾ï¤Î¥á¥ó¥Ð¡¼¤Ç¤Ê¤¤¥°¥ë¡¼¥×¤ò»ØÄꤹ¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤ¹¤ë¡£
+.TP
+\fB-r\fP|\fB--chroot\fP \fIroot\fP
+½èÍý¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¢
+.I root
+¤Ë chdir ¤È chroot ¤ò¼Â¹Ô¤¹¤ë¡£pidfile ¤Ï chroot ¸å¤Ë¡¢½ñ¤­½Ð¤µ¤ì¤ë¤³¤È
+¤ËÃí°Õ¤¹¤ë¡£
+.TP
+\fB-d\fP|\fB--chdir\fP \fIpath\fP
+¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ëÁ°¤Ë¡¢
+.I path
+¤Ë chdir ¤¹¤ë¡£
+\fB-r\fP|\fB--chroot\fP ¥ª¥×¥·¥ç¥ó¤òƱ»þ¤Ë»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢
+chroot ¤Î¤¢¤È¤Ë chdir ¤¹¤ë¡£
+.TP
+.BR -b | --background
+ŵ·¿Åª¤Ë¤Ï¡¢¥Ç¡¼¥â¥ó¥×¥í¥»¥¹¤òÀÚ¤êÎ¥¤»¤Ê¤¤¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤ë¡£¤³¤Î¥ª¥×
+¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¡¢
+.B start-stop-daemon
+¤Ï¼«Ê¬¼«¿È¤òÂÐ¾Ý¥×¥í¥»¥¹¤Î¼Â¹ÔÁ°¤Ë fork ¤·¡¢°Ê¸å¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç½èÍý¤ò¹Ô¤¦¡£
+.B ·Ù¹ð: start-stop-daemon 
+¤Ï
+.B ²¿¤é¤«¤ÎÍýͳ
+¤Ë¤è¤Ã¤Æ½èÍý¤Î¼Â¹Ô¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¡¢¤½¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤ò¥Á¥§¥Ã¥¯¤Ç¤­¤Ê¤¤¡£
+¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏºÇ½ª¼êÃʤǤ¢¤ê¡¢¼«Ê¬¤«¤é fork ¤¹¤ë¤³¤È¤Ë°ÕÌ£¤Î¤Ê¤¤¥×¥í¥°
+¥é¥à¤ä¡¢fork ¤ò¼«Ê¬¤Ç¹Ô¤¦¤¿¤á¤Î¥³¡¼¥É¤òÄɲäǤ­¤Ê¤¤¥×¥í¥°¥é¥à¤Î¤ß¤Ç¤Î»ÈÍÑ
+¤ò°Õ¿Þ¤·¤Æ¤¤¤ë¡£
+.TP
+\fB-N\fP|\fB--nicelevel\fP \fIint\fP
+¥×¥í¥»¥¹¤ò³«»Ï¤¹¤ëÁ°¤Ë¥×¥í¥»¥¹¤Î¥×¥é¥¤¥ª¥ê¥Æ¥£¤òÊѹ¹¤¹¤ë¡£
+.TP
+.BR -m | --make-pidfile
+¼«Ê¬¼«¿È¤Ç PID ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Ê¤¤¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë¡£
+¤³¤Î¥ª¥×¥·¥ç¥ó¤Ë¤è¤ê¡¢½èÍý¤Î¼Â¹ÔľÁ°¤Ë
+.B start-stop-daemon
+¤Ï
+.B --pidfile
+¤Ç»²¾È¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢ÇÛÃÖ¤¹¤ë¡£¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¥×¥í¥°¥é¥à¤Î
+Ää»ß»þ¤Ëºï½ü¤µ¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¤µ¤ì¤¿¤¤¡£
+.B Ãí°Õ:
+¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÆ°ºî¤·¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£Æäˡ¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô»þ¤Ë¤½¤Î
+¥á¥¤¥ó¥×¥í¥»¥¹¤«¤é fork ¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÀµ¤·¤¯Æ°ºî¤·¤Ê¤¤¡£
+¤³¤Î¤¿¤á¡¢Ä̾ï¤Ï
+.B --background
+¥ª¥×¥·¥ç¥ó¤ÈÊ»ÍѤ¹¤ë¾ì¹ç¤Ë¤Î¤ßÍ­ÍѤǤ¢¤ë¡£
+.TP
+.BR -v | --verbose
+¾Ü¤·¤¤»²¹Í¾ðÊó¤ò½ÐÎϤ¹¤ë¡£
+.TP
+.BR -H | --help
+¥Ø¥ë¥×¾ðÊó¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë¡£
+.TP
+.BR -v | --verbose
+¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎϤ·¤Æ½ªÎ»¤¹¤ë¡£
+
+.SH Ãø¼Ô
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> 
+¤¬Ian Jackson <ian@chiark.greenend.org.uk>¤Ë¤è¤ë°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤ò
+¸µ¤ËºîÀ®¡£
+
+¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤Ï Klee Dienes <klee@mit.edu> ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£
+°ìÉô Ian Jackson ¤Ë¤è¤ëÀ°·Á¡£
+
+.SH ËÝÌõ¼Ô
+Æé렱ɟ <nabe@debian.or.jp>
diff --git a/trunk/man/netreport.1 b/trunk/man/netreport.1
new file mode 100644 (file)
index 0000000..75ed074
--- /dev/null
@@ -0,0 +1,22 @@
+.TH NETREPORT 1 "Red Hat, Inc." "RH" \" -*- nroff -*-
+.SH NAME
+netreport \- request notification of network interface changes
+.SH SYNOPSIS
+.B netreport
+\fI[\fP-r\fI]\fP
+.SH DESCRIPTION
+.B netreport
+tells the network management scripts to send a SIGIO signal
+to the process which called netreport when any network interface
+status changes occur.
+.SH OPTIONS
+.TP
+.B -r
+Remove the current request (if any) for the calling process.
+.PP
+.SH NOTES
+If a program does not call netreport with the
+.B -r
+option before it exits, and another process is created with the
+same PID before any changes take place in interface status, it
+is possible that the new process will receive a spurious SIGIO.
diff --git a/trunk/man/ppp-watch.8 b/trunk/man/ppp-watch.8
new file mode 100644 (file)
index 0000000..d2b8cc4
--- /dev/null
@@ -0,0 +1,23 @@
+.TH PPP-WATCH 8 "Red Hat, Inc." "RHS" \" -*- nroff -*-
+.SH NAME
+ppp-watch \- daemon to make PPP interfaces act more like other interfaces
+.SH SYNOPSIS
+.B ppp-watch
+\fIinterface-name\fP [boot]
+.SH DESCRIPTION
+.B ppp-watch
+manages one PPP connection, including starting, stopping, and redialing.
+It makes starting and stopping the connection synchronous activities.
+
+.B ppp-watch
+is not really meant to be called directly.  It should only be used from
+within the ifup-ppp script.
+.SH OPTIONS
+.TP
+.I interface-name
+The name of the PPP interface to bring up.
+.TP
+boot
+ppp-watch is being called at boot time and should time out after a
+while if the PPP connection does not come up in order not to hang
+the boot sequence.
diff --git a/trunk/man/ru/Makefile.am b/trunk/man/ru/Makefile.am
new file mode 100644 (file)
index 0000000..69a5015
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/ru
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/ru/start-stop-daemon.8 b/trunk/man/ru/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..60c00d0
--- /dev/null
@@ -0,0 +1,243 @@
+.\" Hey, Emacs!  This is an -*- nroff -*- source file.
+.\"
+.\" Updated by <alexm@hsys.msk.ru> to r1.11 of start-stop-daemon.8 from CVS
+.\"
+.TH START\-STOP\-DAEMON 8 "15 ÍÁÒÔÁ 1997" "Debian Project" "Debian GNU/Linux"
+.SH éíñ
+start\-stop\-daemon \- ÚÁÐÕÓË É ÏÓÔÁÎÏ×ËÁ ÓÉÓÔÅÍÎÙÈ ÐÒÏÇÒÁÍÍ-ÄÅÍÏÎÏ×
+.SH ïâúïò
+.B start-stop-daemon
+.BR -S|--start
+.I ÆÌÁÇÉ
+.RB [ \-\- ]
+.IR ÁÒÇÕÍÅÎÔÙ
+.HP
+.B start-stop-daemon
+.BR -K|--stop
+.IR "ÆÌÁÇÉ ..."
+.HP
+.B start-stop-daemon
+.BR -H|--help
+.HP
+.B start-stop-daemon
+.BR -V|--version
+.SH ïðéóáîéå
+.B start\-stop\-daemon
+ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ÓÏÚÄÁÎÉÅÍ É ÚÁ×ÅÒÛÅÎÉÅÍ ÓÉÓÔÅÍÎÙÈ ÐÒÏÃÅÓÓÏ×.
+éÓÐÏÌØÚÕÑ ÆÌÁÇÉ
+.BR --exec ,
+.BR --pidfile ,
+.BR --user ,
+.BR --name , 
+.B start\-stop\-daemon
+ÍÏÖÅÔ ÂÙÔØ ÎÁÓÔÒÏÅΠÄÌÑ ÐÏÉÓËÁ ÕÖÅ ÚÁÐÕÝÅÎÎÙÈ ÜËÚÅÍÐÌÑÒÏ×
+ÐÒÏÃÅÓÓÁ.
+
+.B start\-stop\-daemon
+Ó ÆÌÁÇÏÍ
+.B --start
+ÐÒÏ×ÅÒÑÅÔ ÓÕÝÅÓÔ×Ï×ÁÎÉÅ ÕËÁÚÁÎÎÏÇÏ ÐÒÏÃÅÓÓÁ. åÓÌÉ ÔÁËÏÊ ÐÒÏÃÅÓÓ ÓÕÝÅÓÔ×ÕÅÔ,
+.B start\-stop\-daemon
+ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ Ó ËÏÄÏÍ ÚÁ×ÅÒÛÅÎÉÑ\~1 (ÉÌÉ\~0, ÅÓÌÉ ÚÁÄÁÎ
+ÆÌÁÇ
+.BR --oknodo ).  
+åÓÌÉ ÖÅ ÔÁËÏÊ ÐÒÏÃÅÓÓ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ ÏΠÚÁÐÕÓËÁÅÔÓÑ, ÉÓÐÏÌØÚÕÑ ÌÉÂÏ
+ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ, ÚÁÄÁÎÎÙÊ ÆÌÁÇÏÍ
+.BR --exec ,
+ÌÉÂÏ ÆÌÁÇÏÍ
+.BR --startas ,
+ÅÓÌÉ ÏΠÚÁÄÁÎ).
+áÒÇÕÍÅÎÔÙ, ÚÁÄÁÎÎÙÅ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÐÏÓÌÅ
+.BR -- ,
+ÂÕÄÕÔ ÂÅÚ ÉÚÍÅÎÅÎÉÊ ÐÅÒÅÄÁÎÙ ÚÁÐÕÓËÁÅÍÏÊ ÐÒÏÇÒÁÍÍÅ.
+åÓÌÉ ÕËÁÚÁΠÆÌÁÇ
+.BR --retry ,
+ÔÏ
+.B start-stop-daemon
+ÓÔÁÎÅÔ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÅÒÛÅÎÉÅ ÐÒÏÃÅÓÓÁ(Ï×).
+
+.B start\-stop\-daemon
+Ó ÆÌÁÇÏÍ
+.BR --stop
+ÔÁËÖÅ ÐÒÏ×ÅÒÑÅÔ ÓÕÝÅÓÔ×Ï×ÁÎÉÅ ÚÁÄÁÎÎÏÇÏ ÐÒÏÃÅÓÓÁ.
+åÓÌÉ ÔÁËÏÊ ÐÒÏÃÅÓÓ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ
+.B start\-stop\-daemon
+ÐÏÓÙÌÁÅÔ ÅÍÕ ÓÉÇÎÁÌ, ÚÁÄÁÎÎÙÊ ÆÌÁÇÏÍ
+.BR --signal ,
+É ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ Ó ËÏÄÏÍ ÚÁ×ÅÒÛÅÎÉÑ\~0.
+åÓÌÉ ÖÅ ÔÁËÏÊ ÐÒÏÃÅÓÓ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ
+.B start\-stop\-daemon
+ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ Ó ËÏÄÏÍ ÚÁ×ÅÒÛÅÎÉÑ\~1 (ÉÌÉ\~0, ÅÓÌÉ ÚÁÄÁΠÆÌÁÇ
+.BR --oknodo ).  
+
+.SH æìáçé
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIÉÓÐÏÌÎÑÅÍÙÊ_ÆÁÊÌ\fP
+ðÒÏ×ÅÒÑÅÔ ÐÒÏÃÅÓÓÙ, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÜËÚÅÍÐÌÑÒÁÍÉ ÄÁÎÎÏÇÏ ÉÓÐÏÌÎÑÅÍÏÇÏ ÆÁÊÌÁ
+(ÓÏÇÌÁÓÎÏ 
+.BR /proc/\fP\fIpid\fB/exe ).
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIpid-ÆÁÊÌ\fP
+ðÒÏ×ÅÒÑÅÔ ÐÒÏÃÅÓÓÙ, ÞØÉ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ ÐÒÏÃÅÓÓÁ ÚÁÐÉÓÁÎÙ ×
+.IR pid-ÆÁÊÌ .
+.TP
+\fB-u\fP|\fB--user\fP \fIÉÍÑ_ÐÏÌØÚÏ×ÁÔÅÌÑ\fP|\fIuid\fP
+ðÒÏ×ÅÒÑÅÔ ÐÒÏÃÅÓÓÙ, ÐÒÉÎÁÄÌÅÖÁÝÉÅ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÕËÁÚÁÎÎÏÍÕ Ó ÐÏÍÏÝØÀ
+.I ÉÍÅÎÉ_ÐÏÌØÚÏ×ÁÔÅÌÑ
+ÉÌÉ
+.IR uid .
+.TP
+\fB-n\fP|\fB--name\fP \fIprocess-name\fP
+ðÒÏ×ÅÒÑÅÔ ÐÒÏÃÅÓÓÙ Ó ÉÍÅÎÅÍ
+.I process-name
+(ÓÏÇÌÁÓÎÏ
+.BR /proc/\fP\fIpid\fB/stat ).
+.TP
+\fB-s\fP|\fB--signal\fP \fIsignal\fP
+ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÍÅÓÔÅ Ó ÆÌÁÇÏÍ
+.BR --stop ,
+ÚÁÄÁ£Ô ÓÉÇÎÁÌ, ËÏÔÏÒÙÊ ÂÕÄÅÔ ÐÏÓÌÁΠÐÒÏÃÅÓÓÁÍ ÄÌÑ ÉÈ ÏÓÔÁÎÏ×Á
+(ÐÏ ÕÍÏÌÞÁÎÉÀ\~15).
+.TP
+\fB-R\fP|\fB--retry\fP \fIÔÁÊÍ-ÁÕÔ\fP|\fIÚÁÔÅÍ\fP
+ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÍÅÓÔÅ Ó ÆÌÁÇÏÍ
+.B --stop
+ÕËÁÚÙ×ÁÅÔ, ÞÔÏ
+.B start-stop-daemon
+ÄÏÌÖÅΠÐÒÏ×ÅÒÑÔØ ÓÌÅÄÉÔØ ÚÁ ÐÒÁ×ÉÌØÎÙÍ ÚÁ×ÅÒÛÅÎÉÅÍ ÐÒÏÃÅÓÓÁ.
+ðÅÒÉÏÄÉÞÅÓËÉ ÂÕÄÅÔ ÐÒÏ×ÅÒÑÔØÓÑ, ×ÙÐÏÌÎÑÀÔÓÑ ÌÉ ÅÝ£ ÕËÁÚÁÎÎÙÅ ÐÒÏÃÅÓÓÙ,
+ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ×ÓÅ ÏÎÉ ÎÅ ÚÁ×ÅÒÛÁÔÓÑ.  åÓÌÉ ÐÒÏÃÅÓÓÙ ÎÅ ÚÁ×ÅÒÛÁÀÔÓÑ,
+ÔÏ ÂÕÄÅÔ ÐÒÅÄÐÒÉÎÑÔÏ ÄÅÊÓÔ×ÉÅ, ÚÁÄÁÎÎÏÅ × ÐÁÒÁÍÅÔÒÅ
+.IR ÚÁÔÅÍ .
+
+åÓÌÉ ×ÍÅÓÔÏ ÐÁÒÁÍÅÔÒÁ
+.I ÚÁÔÅÍ
+ÕËÁÚÁÎ
+.IR ÔÁÊÍ-ÁÕÔ ,
+ÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÄÅÊÓÔ×ÉÊ
+.IB ÓÉÇÎÁÌ / timeout /KILL/ timeout\fR,
+ÇÄÅ
+.IR signal "\~--"
+ÜÔÏ ÓÉÇÎÁÌ, ÚÁÄÁÎÎÙÊ ÆÌÁÇÏÍ
+.BR --signal .
+
+÷ÏÏÂÝÅ, ÐÁÒÁÍÅÔÒ
+.IR ÚÁÔÅÍ "\~--"
+ÜÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÉÚ ÎÅ ÍÅÎÅÅ Ä×ÕÈ ÜÌÅÍÅÎÔÏ×, ÒÁÚÄÅÌ£ÎÎÙÈ ËÏÓÏÊ
+ÞÅÒÔÏÊ
+.RB ( / );
+ÐÒÉޣ͠ËÁÖÄÙÊ ÜÌÅÍÅÎÔ -- ÜÔÏ ÌÉÂÏ
+.BI - ÎÏÍÅÒ-ÓÉÇÎÁÌÁ
+ÉÌÉ [\fB-\fP]\fIÎÁÚ×ÁÎÉÅ-ÓÉÇÎÁÌÁ\fP,
+ÉÌÉ
+.IR ÔÁÊÍ-ÁÕÔ ,
+ÚÁÄÁÀÝÉÊ ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ ÓÌÅÄÕÅÔ ÖÄÁÔØ ÚÁ×ÅÒÛÅÎÉÑ
+ÐÒÏÃÅÓÓÁ, ÉÌÉ ÖÅ ÓÌÏ×Ï
+.BR forever ,
+ÐÒÅÄÐÉÓÙ×ÁÀÝÅÅ ÐÏ×ÔÏÒÑÔØ ÏÓÔÁÔÏË ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÄÏ ÐÒÅÄÅÌÁ, ÅÓÌÉ
+ÎÕÖÎÏ.
+
+åÓÌÉ ÄÏÓÔÉÇÎÕÔ ËÏÎÅàÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÄÅÊÓÔ×ÉÊ, Á
+.B forever
+ÎÅ ÂÙÌÏ ÕËÁÚÁÎÏ, ÔÏ
+.B start-stop-daemon
+ÐÒÅËÒÁÝÁÅÔ ÒÁÂÏÔÕ Ó ËÏÄÏÍ ÚÁ×ÅÒÛÅÎÉÑ\~2.
+åÓÌÉ ÐÁÒÁÍÅÔÒ
+.I ÚÁÔÅÍ
+ÕËÁÚÁÎ, ÔÏ ÓÉÇÎÁÌ, ÚÁÄÁÎÎÙÊ Ó ÐÏÍÏÝØÀ ÆÌÁÇÁ
+.BR --signal ,
+ÉÇÎÏÒÉÒÕÅÔÓÑ.
+
+.TP
+\fB-a\fP|\fB--startas\fP \fIÐÏÌÎÏÅ_ÉÍÑ\fP
+ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Ó ÆÌÁÇÏÍ
+.B --start
+ÚÁÐÕÓËÁÅÔ ÐÒÏÃÅÓÓ, ÕËÁÚÁÎÎÙÊ × ÐÁÒÁÍÅÔÒÅ
+.IR ÐÏÌÎÏÅ_ÉÍÑ .
+åÓÌÉ ÜÔÏÔ ÆÌÁÇ ÎÅ ÚÁÄÁÎ, ÔÏ ÂÅÒ£ÔÓÑ ÁÒÇÕÍÅÎÔ, ÚÁÄÁÎÎÙÊ ÆÌÁÇÏÍ
+.BR --exec .
+.TP
+.BR -t | --test
+îÁÐÅÞÁÔÁÔØ ÄÅÊÓÔ×ÉÑ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ ×ÙÐÏÌÎÅÎÙ É ÕÓÔÁÎÏ×ÉÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ
+ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ, ÎÏ ÎÅ ×ÙÐÏÌÎÑÔØ ÜÔÉ ÄÅÊÓÔ×ÉÑ.
+.TP
+.BR -o | --oknodo
+÷ÏÚ×ÒÁÝÁÔØ ËÏÄ\~0 ×ÍÅÓÔÏ\~1, ÅÓÌÉ ÎÅ ÂÙÌÏ ×ÙÐÏÌÎÅÎÏ (ÉÌÉ ÎÅ ÄÏÌÖÎÏ
+ÂÙÌÏ ÂÙÔØ ×ÙÐÏÌÎÅÎÏ) ÎÉËÁËÉÈ ÄÅÊÓÔ×ÉÊ.
+.TP
+.BR -q | --quiet
+îÅ ×ÙÄÁ×ÁÔØ ÉÎÆÏÒÍÁÃÉÏÎÎÙÈ ÓÏÏÂÝÅÎÉÊ; ÔÏÌØËÏ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ.
+.TP
+\fB-c\fP|\fB--chuid\fP \fIÉÍÑ-ÐÏÌØÚÏ×ÁÔÅÌÑ\fR|\fIuid\fP
+õÓÔÁÎÏ×ÉÔØ ÄÁÎÎÏÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÉÌÉ uid ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÐÒÏÃÅÓÓÁ.  ÷Ù ÍÏÖÅÔÅ
+ÔÁËÖÅ ÚÁÄÁÔØ ÇÒÕÐÐÕ, ÄÏÂÁ×É× Ä×ÏÅÔÏÞÉÅ
+.BR : ,
+É ÉÍÑ ÇÒÕÐÐÙ ÉÌÉ gid, ËÁË × ËÏÍÁÎÄÅ `chown'
+(\fIÐÏÌØÚÏ×ÁÔÅÌØ\fP\fB:\fP\fIÇÒÕÐÐÁ\fP).
+ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÜÔÏÇÏ ÆÌÁÇÁ ×Ù ÄÏÌÖÎÙ ÐÏÎÉÍÁÔØ, ÞÔÏ ÏÓÎÏ×ÎÁÑ É
+ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÇÒÕÐÐÙ ÂÕÄÕÔ ÕÓÔÁÎÏ×ÌÅÎÙ, ÄÁÖÅ ÅÓÌÉ ÎÅ ÚÁÄÁΠÆÌÁÇ
+.BR --group .
+æÌÁÇ
+.B --group
+ÉÓÐÏÌØÚÕÅÔÓÑ ÔÏÌØËÏ ÄÌÑ ÇÒÕÐÐ, × ËÏÔÏÒÙÈ ÐÏÌØÚÏ×ÁÔÅÌØ ÏÂÙÞÎÏ ÎÅ
+ÓÏÓÔÏÉÔ (ÎÁÐÒÉÍÅÒ, × ÓÌÕÞÁÅ Ó ÓÉÓÔÅÍÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÅÍ `nobody').
+.TP
+\fB-r\fP|\fB--chroot\fB \fIroot\fP
+ðÅÒÅÄ ÚÁÐÕÓËÏÍ ÐÒÏÃÅÓÓÁ ÐÅÒÅÊÔÉ × ËÁÔÁÌÏÇ
+.I root
+É ÓÄÅÌÁÔØ ÅÇÏ ËÏÒÎÅ×ÙÍ (Ó ÐÏÍÏÝØÀ
+.BR chroot ).
+úÁÍÅÔØÔÅ, ÞÔÏ pid-ÆÁÊÌ ÂÕÄÅÔ ÓÏÚÄÁΠÐÏÓÌÅ ÕÓÔÁÎÏ×ËÉ ÎÏ×ÏÇÏ ËÏÒÎÅ×ÏÇÏ
+ËÁÔÁÌÏÇÁ.
+.TP
+.BR -b | --background
+üÔÏÔ ÆÌÁÇ ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ Ó ÐÒÏÇÒÁÍÍÁÍÉ, ËÏÔÏÒÙÅ ÎÅ ÍÏÇÕÔ ÓÁÍÉ
+ÏÔËÌÀÞÉÔØÓÑ ÏÔ ÔÅÒÍÉÎÁÌÁ, ÎÁ ËÏÔÏÒÏÍ ÏÎÉ ÚÁÐÕÝÅÎÙ.  üÔÏÔ ÆÌÁÇ ÚÁÓÔÁ×ÉÔ
+.B start-stop-daemon
+ÓÄÅÌÁÔØ fork() ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÐÒÏÃÅÓÓÁ É ÕÊÔÉ × ÆÏÎÏ×ÙÊ ÒÅÖÉÍ.
+.B ÷îéíáîéå: start-stop-daemon
+ÎÅ ÍÏÖÅÔ ÐÒÏ×ÅÒÉÔØ ËÏÄ ×ÏÚ×ÒÁÔÁ, ÅÓÌÉ ÐÒÏÃÅÓÓ ÎÅ ÍÏÖÅÔ ÕÓÐÅÛÎÏ ×ÙÐÏÌÎÉÔØÓÑ ÐÏ
+.I ËÁËÏÊ ÂÙ ÔÏ ÎÉ ÂÙÌÏ
+ÐÒÉÞÉÎÅ.  üÔÏ\~-- ÐÏÓÌÅÄÎÑÑ ×ÏÚÍÏÖÎÏÓÔØ, ÐÒÅÄÎÁÚÎÁÞÅÎÎÁÑ ÔÏÌØËÏ ÄÌÑ
+ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÍ ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÙÐÏÌÎÑÔØ fork() ÓÁÍÉÍ, ÉÌÉ ÅÓÌÉ ÎÅÔ
+×ÏÚÍÏÖÎÏÓÔÉ ÄÏÂÁ×ÉÔØ × ÎÉÈ ËÏÄ ÄÌÑ ÜÔÏÇÏ.
+.TP
+.BR -n | --nicelevel
+üÔÏÔ ÆÌÁÇ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÉÚÍÅÎÑÅÔ ÐÒÉÏÒÉÔÅÔ ÐÒÏÃÅÓÓÁ.
+.TP
+.BR -m | --make-pidfile
+üÔÏÔ ÆÌÁÇ ÉÓÐÏÌØÚÕÅÔÓÑ, ÅÓÌÉ ÚÁÐÕÓËÁÅÍÁÑ ÐÒÏÇÒÁÍÍÁ ÎÅ ÓÏÚÄÁ£Ô Ó×ÏÊ
+ÓÏÂÓÔ×ÅÎÎÙÊ pid-ÆÁÊÌ.  ðÒÉ ÜÔÏÍ 
+.B start-stop-daemon
+ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÐÒÏÃÅÓÓÁ ÓÏÚÄÁÓÔ ÆÁÊÌ, ÕËÁÚÁÎÎÙÊ ×
+ÐÁÒÁÍÅÔÒÅ ÆÌÁÇÁ
+.B --pidfile
+É ÐÏÍÅÓÔÉÔ × ÎÅÇÏ pid ÚÁÐÕÓËÁÅÍÏÇÏ ÐÒÏÃÅÓÓÁ.  úÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏÔ ÆÁÊÌ
+ÎÅ ÂÕÄÅÔ ÕÄẠ́ΠÐÒÉ ÏÓÔÁÎÏ×ËÅ ÐÒÏÇÒÁÍÍÙ.
+.B úáíåþáîéå:
+üÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÉÎÏÇÄÁ ÍÏÖÅÔ ÎÅ ÒÁÂÏÔÁÔØ: × ÏÓÎÏ×ÎÏÍ ÜÔÏ ÓÌÕÞÁÅÔÓÑ,
+ËÏÇÄÁ ÚÁÐÕÓËÁÅÍÁÑ ÐÒÏÇÒÁÍÍÁ ×ÙÐÏÌÎÑÅÔ fork().  ðÏÜÔÏÍÕ ÄÁÎÎÙÊ ÆÌÁÇ
+ÏÂÙÞÎÏ ÂÙ×ÁÅÔ ÐÏÌÅÚÅΠÔÏÌØËÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÍÅÓÔÅ Ó ÆÌÁÇÏÍ
+.BR --background .
+.TP
+.BR -v | --verbose
+÷ÙÄÁ×ÁÔØ ÐÏÄÒÏÂÎÙÅ ÉÎÆÏÒÍÁÃÉÏÎÎÙÅ ÓÏÏÂÝÅÎÉÑ.
+.TP
+.BR -H | --help
+÷ÙÄÁÔØ ÐÏÄÓËÁÚËÕ É ÚÁ×ÅÒÛÉÔØÓÑ.
+.TP
+.BR -V | --version
+÷ÙÄÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ÚÁ×ÅÒÛÉÔØÓÑ.
+
+.SH á÷ôïòù
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>, ÏÓÎÏ×Ù×ÁÑÓØ
+ÎÁ ×ÅÒÓÉÉ, ÓÄÅÌÁÎÎÏÊ by Ian Jackson <ian@chiark.greenend.org.uk>.
+
+óÔÒÁÎÉÃÁ ÒÕËÏ×ÏÄÓÔ×Á by Klee Dienes <klee@mit.edu>, ÞÁÓÔÉÞÎÏ
+ÐÅÒÅÆÏÒÍÁÔÉÒÏ×ÁÎÏ by Ian Jackson.
+
+.SH ðåòå÷ïä
+ðÅÒÅף̠ӠÁÎÇÌÉÊÓËÏÇÏ ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <victor_v@permonline.ru>.
+ïÂÎÏ×ÌÅÎÉÅ É ËÏÒÒÅËÔÕÒÁ: Alexey Mahotkin <alexm@hsys.msk.ru>.
diff --git a/trunk/man/start-stop-daemon.8 b/trunk/man/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..c69619a
--- /dev/null
@@ -0,0 +1,261 @@
+.TH START\-STOP\-DAEMON 8 "15th March 1997" "Debian Project" "dpkg utilities"
+.SH NAME
+start\-stop\-daemon \- start and stop system daemon programs
+.SH SYNOPSIS
+.B start\-stop\-daemon
+.BR \-S | \-\-start
+.IR options
+.RB [ \-\- ]
+.IR arguments
+.HP
+.B start\-stop\-daemon
+.BR \-K | \-\-stop
+.IR options
+.HP
+.B start\-stop\-daemon
+.BR \-H | \-\-help
+.HP
+.B start\-stop\-daemon
+.BR \-V | \-\-version
+.SH DESCRIPTION
+.B start\-stop\-daemon
+is used to control the creation and termination of system-level processes.
+Using the
+.BR \-\-exec ", " \-\-pidfile ", " \-\-user ", and " \-\-name " options,"
+.B start\-stop\-daemon
+can be configured to find existing instances of a running process.
+
+With
+.BR \-\-start ,
+.B start\-stop\-daemon
+checks for the existence of a specified process.
+If such a process exists,
+.B start\-stop\-daemon
+does nothing, and exits with error status 1 (0 if
+.BR \-\-oknodo
+is specified).  
+If such a process does not exist, it starts an
+instance, using either the executable specified by
+.BR \-\-exec ,
+(or, if specified, by
+.BR \-\-startas ).
+Any arguments given after
+.BR \-\-
+on the command line are passed unmodified to the program being
+started.
+
+With 
+.BR \-\-stop ,
+.B start\-stop\-daemon
+also checks for the existence of a specified process.
+If such a process exists,
+.B start\-stop\-daemon
+sends it the signal specified by
+.BR \-\-signal ,
+and exits with error status 0.
+If such a process does not exist,
+.B start\-stop\-daemon
+exits with error status 1
+(0 if
+.BR \-\-oknodo
+is specified).  If
+.B \-\-retry
+is specified then 
+.B start\-stop\-daemon
+will check that the process(es) have terminated.
+
+Note that unless
+.BR \-\-pidfile ,
+is specified, then
+.B start\-stop\-daemon
+behaves similarly to
+.B killall(1).
+.B start\-stop\-daemon
+will scan the process table looking for any processes which
+match the process name, uid, and/or gid (if specified).  Any
+matching process will prevent
+.BR \-\-start
+from starting the daemon.  All matching processes will be
+sent the KILL signal if
+.BR \-\-stop
+is specified.  For daemons which have long-lived children
+which need to live through a
+.BR \-\-stop
+you must specify a pidfile.
+
+.SH OPTIONS
+
+.TP
+\fB\-x\fP|\fB\-\-exec\fP \fIexecutable\fP
+Check for processes that are instances of this executable (according to 
+.B /proc/\fIpid\fB/exe\fP
+).
+.TP
+\fB\-p\fP|\fB\-\-pidfile\fP \fIpid-file\fP
+Check whether a process has created the file
+.IR pid-file .
+.TP
+\fB\-u\fP|\fB\-\-user\fP \fIusername\fP|\fIuid\fP
+Check for processes owned by the user specified by
+.I username 
+or
+.IR uid .
+.TP
+\fB\-g\fP|\fB\-\-group\fP \fIgroup\fP|\fIgid\fP
+Change to \fIgroup\fP or \fIgid\fP when starting the process.
+.TP
+\fB\-n\fP|\fB\-\-name\fP \fIprocess-name\fP
+Check for processes with the name
+.I process-name
+(according to
+.BR /proc/\fIpid\fB/stat\fP ).
+.TP
+\fB\-s\fP|\fB\-\-signal\fP \fIsignal\fP
+With
+.BR \-\-stop ,
+specifies the signal to send to processes being stopped (default 15).
+.TP
+\fB\-R\fP|\fB\-\-retry\fP \fItimeout\fP|\fIschedule\fP
+With
+.BR \-\-stop ,
+specifies that
+.B start\-stop\-daemon
+is to check whether the process(es)
+do finish.  It will check repeatedly whether any matching processes
+are running, until none are.  If the processes do not exit it will
+then take further action as determined by the schedule.
+
+If
+.I timeout
+is specified instead of
+.I schedule
+then the schedule
+.IB signal / timeout /KILL/ timeout
+is used, where
+.I signal
+is the signal specified with
+.BR \-\-signal .
+
+.I schedule
+is a list of at least two items separated by slashes
+.RB ( / );
+each item may be
+.BI \- signal-number
+or [\fB\-\fP]\fIsignal-name\fP,
+which means to send that signal,
+or
+.IR timeout ,
+which means to wait that many seconds for processes to
+exit,
+or
+.BR forever ,
+which means to repeat the rest of the schedule forever if
+necessary.
+
+If the end of the schedule is reached and
+.BR forever
+is not specified, then
+.B start\-stop\-daemon
+exits with error status 2.
+If a schedule is specified, then any signal specified
+with
+.B \-\-signal
+is ignored.
+.TP
+\fB\-a\fP|\fB\-\-startas\fP \fIpathname\fP
+With 
+.BR \-\-start ,
+start the process specified by 
+.IR pathname .
+If not specified, defaults to the argument given to
+.BR \-\-exec .
+.TP
+.BR \-t | \-\-test
+Print actions that would be taken and set appropriate return value,
+but take no action.
+.TP
+.BR \-o | \-\-oknodo
+Return exit status 0 instead of 1 if no actions are (would be) taken.
+.TP
+.BR \-q | \-\-quiet
+Do not print informational messages; only display error messages.
+.TP
+\fB\-c\fP|\fB\-\-chuid\fP \fIusername\fR|\fIuid\fP
+Change to this username/uid before starting the process. You can also
+specify a group by appending a
+.BR : ,
+then the group or gid in the same way
+as you would for the `chown' command (\fIuser\fP\fB:\fP\fIgroup\fP).
+When using this option
+you must realize that the primary and supplemental groups are set as well,
+even if the
+.B \-\-group
+option is not specified.  The
+.B \-\-group
+option is only for
+groups that the user isn't normally a member of (like adding per/process
+group membership for generic users like
+.BR nobody ).
+.TP
+\fB\-r\fP|\fB\-\-chroot\fP \fIroot\fP
+Chdir and chroot to
+.I root
+before starting the process. Please note that the pidfile is also written
+after the chroot.
+.TP
+.BR \-D ", " \-\-dropcap " \fIcapabilities1,capabilities2\fP"
+Drop theses capabilities separated by commas.
+.TP
+\fB\-d\fP|\fB\-\-chdir\fP \fIpath\fP
+Chdir to
+.I path
+before starting the process. This is done after the chroot if the
+\fB\-r\fP|\fB\-\-chroot\fP option is set.  When not specified,
+start\-stop\-daemon will chdir to the root directory before starting
+the process.
+.TP
+.BR \-b | \-\-background
+Typically used with programs that don't detach on their own. This option
+will force
+.B start\-stop\-daemon
+to fork before starting the process, and force it into the background.
+.B WARNING: start\-stop\-daemon
+cannot check the exit status if the process fails to execute for
+.B any
+reason. This is a last resort, and is only meant for programs that either
+make no sense forking on their own, or where it's not feasible to add the
+code for it to do this itself.
+.TP
+\fB\-N\fP|\fB\-\-nicelevel\fP \fIint\fP 
+This alters the prority of the process before starting it.
+.TP
+.BR \-m | \-\-make\-pidfile
+Used when starting a program that does not create its own pid file. This
+option will make
+.B start\-stop\-daemon
+create the file referenced with
+.B \-\-pidfile
+and place the pid into it just before executing the process. Note, it will
+not be removed when stopping the program.
+.B NOTE:
+This feature may not work in all cases. Most notably when the program
+being executed forks from its main process. Because of this it is usually
+only useful when combined with the
+.B \-\-background
+option.
+.TP
+.BR \-v | \-\-verbose
+Print verbose informational messages.
+.TP
+.BR \-H | \-\-help
+Print help information; then exit.
+.TP
+.BR \-V | \-\-version
+Print version information; then exit.
+
+.SH AUTHORS
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> based on
+a previous version by Ian Jackson <ian@chiark.greenend.org.uk>.
+
+Manual page by Klee Dienes <klee@mit.edu>, partially reformatted
+by Ian Jackson.
diff --git a/trunk/man/sv/Makefile.am b/trunk/man/sv/Makefile.am
new file mode 100644 (file)
index 0000000..db21b59
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+mandir = @mandir@/sv
+
+man_MANS = \
+       start-stop-daemon.8
+
+EXTRA_DIST = $(man_MANS)
diff --git a/trunk/man/sv/start-stop-daemon.8 b/trunk/man/sv/start-stop-daemon.8
new file mode 100644 (file)
index 0000000..b75887a
--- /dev/null
@@ -0,0 +1,231 @@
+.\" Translation of CVS revision 1.15
+.TH START\-STOP\-DAEMON 8 "15 mars 1997" "Debianprojektet" "dpkg-verktygen"
+.SH NAMN
+start\-stop\-daemon \- startar och stoppar bakgrundsprocesser
+.SH SYNOPS
+.B start-stop-daemon
+.BR -S | --start
+.IR flaggor
+.RB [ \-\- ]
+.IR parametrar
+.HP
+.B start-stop-daemon
+.BR -K | --stop
+.IR flaggor
+.HP
+.B start-stop-daemon
+.BR -H | --help
+.HP
+.B start-stop-daemon
+.BR -V | --version
+.SH BESKRIVNING
+.B start\-stop\-daemon
+används för att kontrollera skapande och avslutande av processer på
+systemnivå.
+Med hjälp av flaggorna
+.BR --exec ", " --pidfile ", " --user " och " --name
+kan
+.B start\-stop\-daemon
+ställas in att hitta existerande instanser av en körande process.
+
+Med
+.B --start
+letar
+.B start\-stop\-daemon
+efter om en angiven process existerar, och om så är fallet gör
+.B start\-stop\-daemon
+ingenting och avslutar med status 1 (0 om
+.B --oknodo
+anges).
+Om en sådan process inte existerar startas en instans, antingen med
+programfilen som anges med
+.BR --exec ,
+(eller, om den anges, med
+.BR --startas ).
+Eventuella parametrar som ges efter
+.BR --
+på kommandoraden skickas omodiferade till programmet som startas.
+Om
+.B --retry
+anges kommer
+.B start-stop-daemon
+kontrollera att processen har avslutats.
+
+Med 
+.B --stop
+testar
+.B start\-stop\-daemon
+också om den angivna processen existerar, och om så är fallet sänder
+.B start\-stop\-daemon
+den signal som anges av
+.B --signal
+till den, och avslutar med status 0.
+Om en sådan process inte existerar avslutar
+.B start\-stop\-daemon
+med status 1 (0 om
+.BR --oknodo
+anges).
+
+.SH FLAGGOR
+
+.TP
+\fB-x\fP|\fB--exec\fP \fIprogramfil\fP
+Sök efter processer som är instanser av denna programfil (enligt
+.B /proc/\fIpid\fB/exe\fP
+).
+.TP
+\fB-p\fP|\fB--pidfile\fP \fIpidfil\fP
+Sök efter processer vars process-id anges i
+.IR pidfil .
+.TP
+\fB-u\fP|\fB--user\fP \fIanvändarnamn\fP|\fIanvändar-id\fP
+Sök efter processer som ägs av den användare som anges med
+.I användarnamn 
+eller
+.IR användar-id .
+.TP
+\fB-n\fP|\fB--name\fP \fIprocessnamn\fP
+Sök efter processer med namnet
+.I processnamn
+(enligt
+.BR /proc/\fIpid\fB/stat\fP ).
+.TP
+\fB-s\fP|\fB--signal\fP \fIsignal\fP
+Tillsammans med
+.B --stop
+anger detta den signal som skall sändas till processen som stoppas (förval
+är 15).
+.TP
+\fB-R\fP|\fB--retry\fP \fItimeout\fP|\fIschema\fP
+Tillsammans med
+.B --stop
+anger detta att
+.B start-stop-daemon
+skall kontrollera att processen avslutas.
+Den testar flera gånger efter matchande processer som körs, tills ingen
+längrefinns kvar.
+Om processerna inte avslutar kommer programmet utföra ytterligare
+kommandon enligt schemat.
+
+Om
+.I timeout
+anges istället för
+.I schema
+kommer schemat
+.IB signal / timeout /KILL/ timeout
+att användas, där
+.I signal
+är den signal som anges med
+.BR --signal .
+
+.I schema
+är den lista med åtminstone två poster avdelade med snedstreck
+.RB ( / );
+varje post är antingen
+.BI - signalnummer
+eller [\fB\-\fP]\fIsignalnamn\fP,
+vilket betyder att signalen skall sändas, eller
+.IR timeout ,
+vilket anger det antal sekunder programmet skall vänta på att processen
+avslutar, eller
+.BR forever ,
+vilket betyder att resten av schemat skall repetera för evigt om så behövs.
+
+Om slutet på schemat nås och
+.BR forever
+inte anges kommer
+.B start-stop-daemon
+avslutas med felkod 2.
+Om ett schema anges kommer eventuell signal angiven med
+.B --signal
+att ignoreras.
+.TP
+\fB-a\fP|\fB--startas\fP \fIsökväg\fP
+Tillsammans med
+.B --start
+anger detta att processen som anges med
+.I sökväg
+skall startas.
+Om den inte anges används parametern som gavs till
+.BR --exec .
+.TP
+.BR -t | --test
+Skriver ut vad som skulle ha utförts och sätter returvärdet, men utför
+ingenting.
+.TP
+.BR -o | --oknodo
+Returnerar felstatus 0 i stället för 1 om ingen åtgärd utförs/skulle
+utförts.
+.TP
+.BR -q | --quiet
+Skriv inte informationsmeddelanden; visa endast felmeddelanden.
+.TP
+\fB-c\fP|\fB--chuid\fP \fIanvändarnamn\fR|\fIanvändar-id\fP
+Byt till detta användarnamn/användar-id innan processen startas.
+Du kan även ange en grupp genom att lägga till ett kolontecken,
+.BR : ,
+följt av gruppnamnet eller grupp-id på samma sätt som du skull gjort till
+"chown"-kommandot
+(\fIanvändarefP\fB:\fP\fIgrupp\fP).
+När du använder detta alternativ måste du ha i åtanke att även både primär
+och tilläggs-grupp sätts, även om
+.BR --group -flaggan
+inte anges.
+.BR --group -flaggan
+är bara till för grupper som användaren normalt inte är en medlem
+i (t.ex för att lägga till gruppmedlemskap för enskilda processer för
+standardanvändare såsom "nobody").
+.TP
+\fB-r\fP|\fB--chroot\fP \fIrot\fP
+Byt katalog och rot till
+.B rot
+innan processen startas.
+Observera att även pidfilen skrivs efter chroot har utförts.
+.TP
+.BR -b | --background
+Används typiskt med program som inte kopplar loss sig av sig själva.
+Denna flagga kommer tvinga
+.B start-stop-daemon
+att förgrena sig (fork) innan processen startar, och tvinga den grenen
+att köra i bakgrunden.
+.B VARNING: start-stop-daemon
+kan inte kontrollera felstatus för processer som av
+.B någon som helst
+anledning misslyckas med att exekvera.
+Detta är en sista utväg, och är endast avsett för program som det normalt
+sett inte är någon idé att på egen hand förgrena, eller där det inte är
+möjligt att lägga till koden för detta på egen hand.
+.TP
+.BR -N | --nicelevel
+Detta ändrar prioriteten på processen innan den startas.
+.TP
+.BR -m | --make-pidfile
+Används när ett program startas som inte skapar sin egen pidfil.
+Denna flagga kommer att göra så att
+.B start-stop-daemon
+skapar filen som anges med
+.B --pidfile
+och lägga process-id i den precis innan processen startas.
+Observera att den inte kommer att tas bort när programmet stoppas.
+.B OBSERVERA:
+Denna funktion kanske inte alltid fungerar, något som huvudsakligen gäller
+när programmet som startas förgrenar sig (fork) från sin huvudprocess, och
+den är därför bara användbar i samband med flaggan
+.BR --background .
+.TP
+.BR -v | --verbose
+Skriv ut pratsamma informationsmeddelanden.
+.TP
+.BR -H | --help
+Skriv ut hjälpinformation och avsluta sedan.
+.TP
+.BR -V | --version
+Skriv ut versionsinformation och avsluta sedan.
+
+.SH FÖRFATTARE
+Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>, baserat på en
+tidigare version av Ian Jackson <ian@chiark.greenend.org.uk>.
+
+Manualsida av Klee Dienes <klee@mit.edu>, delvis omformaterad av
+Ian Jackson, översatt av Peter Karlsson <peterk@debian.org>.
+
diff --git a/trunk/man/usernetctl.8 b/trunk/man/usernetctl.8
new file mode 100644 (file)
index 0000000..7049dd8
--- /dev/null
@@ -0,0 +1,39 @@
+.TH USERNETCTL 8 "Red Hat, Inc." "RHS" \" -*- nroff -*-
+.SH NAME
+usernetctl \- allow a user to manipulate a network interface if permitted
+.SH SYNOPSIS
+.B usernetctl
+\fIinterface-name\fP up\fI|\fPdown\fI|\fPreport
+.SH DESCRIPTION
+.B usernetctl
+checks to see if users are allowed to manipulate the network interface
+specified by \fIinterface-name\fP, and then tries to bring the network
+interface up or down, if up or down was specified on the command line,
+or returns true or false status (respectively) if the report option was
+specified.
+
+.B usernetctl
+is not really meant to be called directly by users, though it currently
+works fine that way.  It is used as a wrapper by the ifup and ifdown
+scripts, so that users can do exactly the same thing as root:
+.nf
+ifup \fIinterface-name\fP
+ifdown \fIinterface-name\fP
+.fi
+and \fBifup\fP and \fBifdown\fP will call usernetctl automatically to
+allow the interface status change.
+.SH OPTIONS
+.TP
+.I "\fIinterface-name"
+The name of the network interface to check; for example, "ppp0".  For
+backwards compatibility, "ifcfg-ppp0" and
+"/lib/rc-scripts/ifcfg-ppp0" are also supported.
+.TP
+up\fI|\fPdown
+Attempt to bring the interface up or down.
+.TP
+report
+Report on whether users can bring the interface up or down.
+.SH NOTES
+Alternate device configurations may inherit the default configuration's
+permissions.
diff --git a/trunk/man/usleep.1 b/trunk/man/usleep.1
new file mode 100644 (file)
index 0000000..cd82047
--- /dev/null
@@ -0,0 +1,50 @@
+.\"
+.\" Copyright 2001 Werner Fink, 2001 SuSE GmbH 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 of the License, or
+.\" (at your option) any later version.
+.\"
+.TH USLEEP 1 "Jan 31, 2001" "Version 1.16" "The SuSE boot concept"
+.UC 1
+.SH NAME
+Usleep \- sleep for the specified number of microseconds
+.\"
+.SH SYNOPSIS
+.\"
+.B usleep [
+.I usec
+.B ]
+.\"
+.SH DESCRIPTION
+.B usleep
+pauses for the number of
+.I usec
+microseconds. The default is
+.B 1
+microsecond.  If
+.B 0
+microseconds are specified
+.BR sched_yield (2)
+is called.
+.\"
+.SH BUGS
+The
+.B usleep
+program uses the
+.BR usleep (3)
+function and therefore shows the same weaknesses
+by any system activity.
+\."
+.SH SEE ALSO
+.BR usleep (3),
+.BR sleep (1),
+.BR sleep (3),
+.BR sched_yield (2).
+\."
+.SH COPYRIGHT
+2001 Werner Fink,
+2001 SuSE GmbH Nuernberg, Germany.
+.SH AUTHOR
+Werner Fink <werner@suse.de>
diff --git a/trunk/modules b/trunk/modules
new file mode 100644 (file)
index 0000000..c191ae8
--- /dev/null
@@ -0,0 +1,16 @@
+# /etc/modules: kernel modules to load at boot time.
+# $Id$
+#
+# This file should contain the names of kernel modules that are
+# to be loaded at boot time, one per line with extra args treated as modprobe
+# options.
+#
+# Comments begin with a `#', and everything on the line after them are ignored.
+#
+# You can also have /etc/modules.X.Y and /etc/modules.X.Y.Z, where X.Y.Z are kernel version numbers
+# The modules files are processed in exactly that order too.
+
+#loop
+
+# modules can take params as well:
+#loop max_loop=256
diff --git a/trunk/modules.preudev b/trunk/modules.preudev
new file mode 100644 (file)
index 0000000..e7babe0
--- /dev/null
@@ -0,0 +1,22 @@
+# /etc/modules.preudev: kernel modules to load before udev at boot time.
+# $Id$
+#
+# This file should contain the names of kernel modules that are
+# to be loaded before udev starts doing its magick at boot time,
+# one per line with extra args treated as modprobe options.
+#
+# Comments begin with a `#', and everything on the line after them are ignored.
+#
+# You can also have /etc/modules.preudev.X.Y and /etc/modules.preudev.X.Y.Z,
+# where X.Y.Z are kernel version numbers
+# The modules files are processed in exactly that order too.
+
+# example set for DELL MD3000 array driver
+#sd_mod
+#sg
+#mppUpper
+#mptsas
+#mppVhba
+
+# modules can take params as well:
+#loop max_loop=256
diff --git a/trunk/po/Makefile.am b/trunk/po/Makefile.am
new file mode 100644 (file)
index 0000000..3adbc64
--- /dev/null
@@ -0,0 +1,107 @@
+@SET_MAKE@
+
+
+EXTRA_DIST = @POTFILES@ @PACKAGE@.pot makepot.pl
+
+POTSRC = @POTSRC@
+
+makepot = $(top_srcdir)/po/makepot.pl
+
+CATOBJEXT = .gmo
+INSTOBJEXT = .mo
+
+SUFFIXES = .po .mo .gmo
+
+.po.mo: $(PACKAGE).pot
+       $(MSGFMT) -c --statistics -o $@ $<
+
+.po.gmo: $(PACKAGE).pot
+       file=`echo $* | awk ' { gsub(/.*\//,NIL); print $0; } '`.gmo \
+         && rm -f $$file && $(GMSGFMT) -c --statistics -o $$file $<
+
+$(PACKAGE).pot: Makefile $(POTSRC)
+       LC_ALL=C $(makepot) $(POTSRC) > $(PACKAGE).po
+       cmp $(PACKAGE).po $(PACKAGE).pot || \
+               mv $(PACKAGE).po $(PACKAGE).pot; \
+       rm -f $(PACKAGE).po
+
+update-po: Makefile
+       $(MAKE) $(PACKAGE).pot
+       PATH=`pwd`/../src:$$PATH; \
+       cd $(srcdir); \
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | awk ' { gsub(/\$(CATOBJEXT)$$/,NIL); print $0; } '`; \
+         mv $$lang.po $$lang.old.po; \
+         echo "$$lang:"; \
+         if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+           rm -f $$lang.old.po; \
+         else \
+           echo "msgmerge for $$cat failed!"; \
+           rm -f $$lang.po; \
+           mv $$lang.old.po $$lang.po; \
+         fi; \
+       done
+
+all-am: Makefile $(CATALOGS)
+
+install-data-hook: all
+       if test -r "$(MKINSTALLDIRS)"; then \
+         $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
+       else \
+         $(mkinstalldirs) $(DESTDIR)$(datadir); \
+       fi
+       @catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         case "$$cat" in \
+           *.gmo) destdir=$(gnulocaledir);; \
+           *)     destdir=$(localedir);; \
+         esac; \
+         lang=`echo $$cat | awk ' { gsub(/\$(CATOBJEXT)$$/,NIL); print $0; } '`; \
+         dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
+         if test -r "$(MKINSTALLDIRS)"; then \
+           $(MKINSTALLDIRS) $$dir; \
+         else \
+           $(mkinstalldirs) $$dir; \
+         fi; \
+         if test -r $$cat; then \
+           $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+           echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+         else \
+           $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+           echo "installing $(srcdir)/$$cat as" \
+                "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+         fi; \
+         if test -r $$cat.m; then \
+           $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+           echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+         else \
+           if test -r $(srcdir)/$$cat.m ; then \
+             $(INSTALL_DATA) $(srcdir)/$$cat.m \
+               $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+             echo "installing $(srcdir)/$$cat as" \
+                  "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+           else \
+             true; \
+           fi; \
+         fi; \
+       done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall-hook:
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | awk ' { gsub(/\$(CATOBJEXT)$$/,NIL); print $0; } '`; \
+         rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+         rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+         rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+         rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+       done
+
+clean-generic:
+       rm -f *.gmo *.mo $(PACKAGE).pot
diff --git a/trunk/po/de.po b/trunk/po/de.po
new file mode 100644 (file)
index 0000000..2d941b3
--- /dev/null
@@ -0,0 +1,904 @@
+# German translation of rc-scripts.
+# Pawel Sakowski <saq@pld-linux.org>, 2000.
+# $Id$
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: rc-scripts 0.2.6\n"
+"POT-Creation-Date: 1999-07-30 18:45+0200\n"
+"PO-Revision-Date: 2004-12-13 22:57+0100\n"
+"Last-Translator: Pawel Sakowski <saq@pld-linux.org>\n"
+"Language-Team: German <de@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: .././rc.d/init.d/functions:911
+#, fuzzy
+msgid "%s (pid %s) is running%s"
+msgstr "%s (pid %s) läuft..."
+
+#: .././rc.d/rc.shutdown:122
+msgid "Stopping LVM volume groups"
+msgstr ""
+
+# #### INTERFACE #####
+#: .././lib/ifdown:23 .././lib/ifup:27 .././lib/ifup-ipx:13
+#: .././lib/tnldown:29 .././lib/tnlup:29
+msgid "Usage: %s <device name>"
+msgstr "Verwendung: %s <Gerätname>"
+
+#: .././rc.d/init.d/network:308
+#, fuzzy
+msgid "Reloading interface %s"
+msgstr "Der %s-Dienst wird umgeladen"
+
+#: .././rc.d/rc.sysinit:133 .././rc.d/rc.sysinit:146 .././rc.d/rc.sysinit:704
+#: .././rc.d/rc.sysinit:747 .././rc.d/rc.sysinit:810 .././rc.d/rc.shutdown:82
+msgid "Unmounting file systems"
+msgstr "Die Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/functions:1157
+msgid "WORK"
+msgstr "LÄUFT"
+
+#: .././rc.d/init.d/functions:931
+msgid "%s is stopped"
+msgstr "%s ist gestoppt"
+
+#: .././rc.d/init.d/template.init:55 .././rc.d/init.d/template.init:71
+#, fuzzy
+msgid "Checking %s configuration"
+msgstr "IPv6-Autokonfiguration wird ausgeschaltet"
+
+#: .././rc.d/rc.shutdown:169
+#, fuzzy
+msgid "The $_rebootwhat is halted"
+msgstr "Das System ist untergangen"
+
+#: .././rc.d/rc.sysinit:705 .././rc.d/rc.sysinit:748 .././rc.d/rc.sysinit:811
+#: .././rc.d/rc.shutdown:113
+msgid "Remounting root filesystem in ro mode"
+msgstr "Das Root-Dateisystem wird mit Schreibschütz erneut gemountet"
+
+#: .././lib/ifup-ppp:111
+msgid "ifup-ppp for %s exiting"
+msgstr "ifup-ppp für $DEVICE wird beendet"
+
+#: .././rc.d/rc.sysinit:235 .././rc.d/rc.sysinit:237
+msgid "Host:"
+msgstr "Rechnername:"
+
+#: .././lib/ifup-sl:65
+msgid "dip started for %s on %s at %s"
+msgstr "dip gestartet für %s auf %s mit %s"
+
+#: .././rc.d/init.d/allowlogin:50
+msgid "Users are allowed to login right now"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:121
+#, fuzzy
+msgid "Unmounting NFS filesystems (retry)"
+msgstr "Die NFS-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/netfs:142
+#, fuzzy
+msgid "Configured CIFS mountpoints: "
+msgstr "Konfigurierte Tunnel:"
+
+#: .././rc.d/init.d/random:56
+msgid "Saving random seed"
+msgstr "Das Zufallskorn wird gespeichert"
+
+#: .././rc.d/init.d/cpusets:54
+msgid "ERROR: CGROUP/CPUSET support not enabled in kernel"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:332
+msgid "Initializing USB keyboard"
+msgstr "Die USB-Tastatur wird initialisiert"
+
+#: .././rc.d/init.d/local:25
+msgid "rc.local has been started"
+msgstr ""
+
+#: .././rc.d/init.d/network:200
+msgid "Bringing up interface %s"
+msgstr ""
+
+#: .././rc.d/init.d/functions:370
+msgid "%s service is not running."
+msgstr "Der %s-Dienst läuft nicht."
+
+#: .././rc.d/init.d/netfs:150
+#, fuzzy
+msgid "Configured network block devices: "
+msgstr "Konfigurierte Geräte:"
+
+#: .././rc.d/rc.sysinit:398
+msgid "Remounting root filesystem in rw mode"
+msgstr "Das Root-Dateisystem wird ohne Schreibschütz erneut gemountet"
+
+#: .././rc.d/rc.shutdown:188
+#, fuzzy
+msgid "Please stand by while rebooting the $_rebootwhat"
+msgstr "Bitte warten auf den Neustart des Systems"
+
+#: .././rc.d/init.d/random:74
+msgid "%d bytes of entropy available"
+msgstr ""
+
+#: .././lib/ifup-br:86
+msgid "problems with setting bridge %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:141
+msgid "*** Filesystem was repaired but system needs to be"
+msgstr "*** Das Dateisystem wurde repariert aber man muss das System"
+
+#: .././rc.d/init.d/functions:921
+#, fuzzy
+msgid "%s dead but pid file (%s) exists"
+msgstr "%s tot, aber die pid-Datei existiert"
+
+#: .././rc.d/init.d/cpusets:171
+msgid "Currently empty cpusets:"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:68
+msgid "Setting up Logical Volume Management"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:62
+msgid "Turning off quotas for local filesystems"
+msgstr "Die Quotas für die lokalen Dateisysteme werden ausgeschaltet"
+
+#: .././rc.d/init.d/functions:1112
+#, fuzzy
+msgid "Unmounting loopback filesystems (retry):"
+msgstr "Die Dateisysteme werden unmountet"
+
+#: .././rc.d/rc:92
+msgid "Entering non-interactive startup"
+msgstr "Anfang des uninteraktiven Hochfahrens"
+
+#: .././rc.d/init.d/functions:506
+msgid "$message"
+msgstr ""
+
+#: .././lib/ifup:234
+msgid "Enabling proxy ARP on %s"
+msgstr "Proxy ARP wird auf %s eingeschaltet"
+
+#: .././rc.d/rc.sysinit:538 .././rc.d/rc.sysinit:543
+msgid "Loading sound module"
+msgstr "Das Laut-Modul wird geladen"
+
+#: .././rc.d/init.d/random:71
+msgid "The random data source is missing"
+msgstr "Die Zufallsdatenquelle fehlt"
+
+#: .././rc.d/init.d/netfs:133
+msgid "/proc filesystem unavailable"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:47
+#, fuzzy
+msgid "Mounting NFS filesystems"
+msgstr "Die NFS-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/network:13 .././rc.d/init.d/network:42 .././lib/ifdown:124
+#: .././lib/ifdown-br:35 .././lib/ifup:91 .././lib/ifup-br:35
+#: .././lib/ifup-ipx:22 .././lib/ifup-irda:36 .././lib/ifup-sl:83
+#: .././lib/ifup-vlan:43
+msgid "%s is missing. Can't continue."
+msgstr "Es fehlt %s. Fortsetzen nicht möglich."
+
+#: .././rc.d/init.d/netfs:114
+#, fuzzy
+msgid "Unmounting network block filesystems"
+msgstr "Die Dateisysteme werden unmountet"
+
+#: .././rc.d/rc.sysinit:561
+#, fuzzy
+msgid "Activating ATARAID devices"
+msgstr "Die RAID-Geräte werden gestartet"
+
+#: .././rc.d/init.d/network:344
+msgid "Configured devices:"
+msgstr "Konfigurierte Geräte:"
+
+#: .././rc.d/init.d/functions:994
+msgid "Loading %s kernel module(s)"
+msgstr "%s-Kernmodul(e) wird/werden geladen"
+
+#: .././rc.d/init.d/netfs:158
+msgid "Active CIFS mountpoints: "
+msgstr ""
+
+#: .././rc.d/init.d/single:27 .././rc.d/rc.shutdown:49
+msgid "Sending all processes the KILL signal"
+msgstr "Das KILL-Signal wird an alle Prozesse geschickt"
+
+#: .././lib/ifup-vlan:56
+msgid "VLAN kernel support is missing. Can't continue."
+msgstr ""
+
+#: .././rc.d/init.d/network:204
+msgid "Bringing up bridge interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:414
+msgid "Starting disk encryption using the RNG"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:278 .././rc.d/rc.sysinit:859
+msgid "Setting clock"
+msgstr "Die Systemuhr wird eingestellt"
+
+#: .././rc.d/rc.sysinit:556
+msgid "Activating dm-multipath"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:105 .././rc.d/init.d/cpusets:118
+msgid "$(nls -n "
+msgstr ""
+
+#: .././lib/ifup-ppp:35 .././lib/ifup-ppp:67 .././lib/ifup-sl:44
+msgid "%s for %s exiting"
+msgstr "%s für %s wird beendet"
+
+#: .././rc.d/rc.sysinit:711
+msgid "Scanning for LVM volume groups (on RAID)"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:143
+msgid "*** REBOOTING ***"
+msgstr "*** NEUSTART ***"
+
+#: .././rc.d/rc.sysinit:142
+msgid "*** rebooted before mounting it."
+msgstr "*** neustarten bevor es gemountet werden kann."
+
+#: .././rc.d/init.d/network:234
+msgid "Shutting down bridge interface %s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:50
+#, fuzzy
+msgid "Mounting CIFS filesystems"
+msgstr "Die CIFS-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/netfs:115
+#, fuzzy
+msgid "Unmounting network block filesystems (retry)"
+msgstr "Die SMB-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/netfs:162
+msgid "Active NCP mountpoints: "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:870
+msgid "Setting %s seconds for kernel reboot after panic"
+msgstr "%s Sekunden werden für den Kern-Neustart nach der Panik eingestellt"
+
+#: .././rc.d/rc.sysinit:335
+msgid "Initializing USB mouse"
+msgstr "Die USB-Maus wird initialisiert"
+
+#: .././rc.d/init.d/cpusets:178
+#, fuzzy
+msgid "Currently active cpusets:"
+msgstr "Bereits aktive Geräte und Tunnel:"
+
+#: .././lib/ifup-irda:59
+msgid "problems with setting %s %s"
+msgstr "Probleme beim Einstellen von %s %s"
+
+#: .././rc.d/init.d/netfs:87 .././rc.d/rc.sysinit:125 .././rc.d/rc.sysinit:739
+#: .././rc.d/rc.sysinit:802
+msgid "(Repair filesystem)# "
+msgstr "(Dateisystem-Reparieren)# "
+
+#: .././rc.d/rc.sysinit:691
+msgid "*** An error occurred during the RAID startup."
+msgstr "*** Während des RAID-Startens ist ein Fehler passiert."
+
+#: .././rc.d/init.d/netfs:76
+#, fuzzy
+msgid "Checking network-attached filesystems"
+msgstr "Die verschlüsselten Dateisysteme werden nachgesehen"
+
+#: .././rc.d/init.d/cryptsetup:36
+msgid "INSECURE OWNER FOR %s"
+msgstr ""
+
+#: .././lib/functions.network:104
+#, fuzzy
+msgid "Can't find a DHCP client."
+msgstr "Kein DHCP-Klient kann gefunden werden"
+
+#: .././rc.d/init.d/allowlogin:45
+msgid "Delay login is not enabled"
+msgstr ""
+
+#: .././rc.d/init.d/functions:928
+#, fuzzy
+msgid "daemon %s dead but subsys (%s) locked"
+msgstr "%s tot, aber das Subsystem gesperrt"
+
+#: .././rc.d/init.d/netfs:51
+#, fuzzy
+msgid "Mounting NCP filesystems"
+msgstr "Die NCP-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/network:238
+msgid "Shutting down interface %s"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:57
+msgid "Turning off swap"
+msgstr "Die Auslagerung wird ausgeschaltet"
+
+#: .././rc.d/init.d/network:351
+msgid "Currently active devices and tunnels:"
+msgstr "Bereits aktive Geräte und Tunnel:"
+
+#: .././lib/ifup:120
+msgid "Disabling IPv6 autoconfiguration"
+msgstr "IPv6-Autokonfiguration wird ausgeschaltet"
+
+#: .././rc.d/rc.sysinit:608
+msgid "Activating LVM volume groups"
+msgstr ""
+
+#: .././rc.d/init.d/functions:1109
+#, fuzzy
+msgid "Unmounting loopback filesystems: "
+msgstr "Die Dateisysteme werden unmountet"
+
+#: .././rc.d/rc:258 .././rc.d/rc:259
+msgid "%sResource Manager: %sRunlevel has been reached"
+msgstr "%sRessourcenmanager: %sDie Betriebsebene ist erreicht worden"
+
+#: .././lib/ifup-ppp:110
+#, fuzzy
+msgid "%s does not exist, perhaps set $CHATSCRIPT"
+msgstr "%s existiert für %s nicht"
+
+#: .././rc.d/init.d/functions:358
+msgid "Starting %s service"
+msgstr "Der %s-Dienst wird gestartet"
+
+#: .././rc.d/init.d/netfs:146
+#, fuzzy
+msgid "Configured NCP mountpoints: "
+msgstr "Konfigurierte Tunnel:"
+
+#: .././rc.d/rc.sysinit:607
+msgid "Scanning for LVM volume groups"
+msgstr ""
+
+#: .././lib/ifdown-vlan:46 .././lib/ifup-vlan:77
+msgid "/sbin/vconfig or iproute2 with vlan support is missing. Can't continue."
+msgstr ""
+
+#: .././lib/functions.network:175
+msgid "Setting static RARP entries"
+msgstr "Die statischen RARP-Einträge werden eingestellt"
+
+#: .././rc.d/init.d/network:346
+msgid "Configured tunnels:"
+msgstr "Konfigurierte Tunnel:"
+
+#: .././rc.d/init.d/network:230
+msgid "Removing tunnel %s"
+msgstr ""
+
+#: .././rc.d/init.d/functions:938
+msgid "Start service %s (Y)es/(N)o/(C)ontinue? [Y] "
+msgstr "Den %s-Dienst starten? (J)a/(N)ein/(W)eiterführen [J] "
+
+#: .././rc.d/init.d/functions:362
+msgid "%s service is already running."
+msgstr "Der %s-Dienst läuft bereits."
+
+#: .././rc.d/init.d/network:209
+msgid "Bringing up tunnel interface %s"
+msgstr ""
+
+#: .././lib/ifup:35
+msgid "Users cannot control this device."
+msgstr "Die Benutzer dürfen dieses Gerät nicht kontrollieren."
+
+#: .././rc.d/init.d/netfs:124
+msgid "Unmounting CIFS filesystems"
+msgstr "Die CIFS-Dateisysteme werden unmountet"
+
+# #### FUNCTIONS #####
+#: .././rc.d/init.d/functions:354
+msgid "ERROR: Networking is down. %s can't be run."
+msgstr "FEHLER: Das Netzwerkwesen läuft nicht. %s kann nicht gestartet werden."
+
+#: .././lib/ifup-sl:55
+msgid "%s does not exist"
+msgstr "%s existiert nicht"
+
+#: .././rc.d/rc.sysinit:321
+msgid "Mounting USB filesystem"
+msgstr "Die USB-Dateisysteme werden gemountet"
+
+#: .././rc.d/init.d/netfs:85 .././rc.d/rc.sysinit:122 .././rc.d/rc.sysinit:693
+#: .././rc.d/rc.sysinit:736 .././rc.d/rc.sysinit:799
+msgid "*** when you leave the shell."
+msgstr "*** nachdem Sie die Shell verlassen haben."
+
+#: .././rc.d/rc.sysinit:328
+msgid "Initializing USB HID interface"
+msgstr "Die USB-HID-Schnittstelle wird initialisiert"
+
+#: .././rc.d/rc.sysinit:696
+msgid "(RAID Repair)# "
+msgstr "(RAID-Reparieren)# "
+
+#: .././rc.d/rc.sysinit:229
+msgid "\t\t  Press %sI%s to enter interactive startup"
+msgstr "\t\tDrücken sie %sI%s um interaktiv hochzufahren"
+
+#: .././rc.d/init.d/functions:906
+msgid " in cpuset %s..."
+msgstr ""
+
+#: .././rc.d/rc.sysinit:227
+msgid "\t\t\t%sPowered by %sPLD Linux Distribution%s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:154
+msgid "Active NFS mountpoints: "
+msgstr ""
+
+#: .././lib/functions.network:279
+msgid ""
+"Warning: Default gateway already set proably via other interface. Do you "
+"need to setup GATEWAYDEV?"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:774
+msgid "Checking encrypted filesystems"
+msgstr "Die verschlüsselten Dateisysteme werden nachgesehen"
+
+# Translation of words: "DONE", "WORK", "BUSY", "FAIL", "DIED"
+# must have that same count of letters !!!!!!!!!!!!!!!!!!!!!!!
+#: .././rc.d/init.d/functions:1156 .././rc.d/rc:149
+msgid "DONE"
+msgstr "GETAN"
+
+#: .././rc.d/rc.sysinit:499 .././rc.d/rc.sysinit:501
+msgid "Finding module dependencies"
+msgstr "Die Modul-Abhängigkeiten werden gesucht"
+
+#: .././rc.d/init.d/functions:487
+msgid "username"
+msgstr ""
+
+#: .././rc.d/rc:89
+msgid "Entering interactive startup"
+msgstr "Anfang des interaktiven Hochfahrens"
+
+#: .././rc.d/rc:250
+msgid "Setting up /etc/ld.so.cache"
+msgstr "/etc/ld.so.cache wird eingestellt"
+
+#: .././rc.d/rc.shutdown:142
+msgid "Turning off RAID for %s"
+msgstr "RAID wird für %s ausgeschaltet"
+
+#: .././rc.d/init.d/netfs:84 .././rc.d/rc.sysinit:121 .././rc.d/rc.sysinit:692
+#: .././rc.d/rc.sysinit:735 .././rc.d/rc.sysinit:798
+msgid "*** Dropping you to a shell; the system will reboot"
+msgstr "*** Lasse Sie in der Shell; das System wird neustarten,"
+
+#: .././rc.d/rc.sysinit:760
+msgid "Mounting local filesystems"
+msgstr "Die lokalen Dateisysteme werden gemountet"
+
+#: .././rc.d/rc.sysinit:135 .././rc.d/rc.sysinit:148 .././rc.d/rc.sysinit:706
+#: .././rc.d/rc.sysinit:749 .././rc.d/rc.sysinit:812
+msgid "Automatic reboot in progress"
+msgstr "Automatischer Neustart wird ausgeführt"
+
+#: .././rc.d/rc.shutdown:194
+msgid "Will now restart with kexec"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:171 .././rc.d/rc.shutdown:190
+msgid "On the next boot fsck will be skipped."
+msgstr "Bei dem nächsten Start wird fsck ausgelassen."
+
+#: .././rc.d/rc.sysinit:838
+msgid "Checking filesystem quotas"
+msgstr "Die Dateisystem-Quotas werden geprüft"
+
+#: .././rc.d/rc.sysinit:311
+msgid "Initializing USB controller"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:653
+msgid "Starting up RAID device %s"
+msgstr "Das RAID-Gerät %s wird gestartet"
+
+#: .././rc.d/init.d/functions:1080
+msgid "$3"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:63
+msgid "%s: no value for cipher option, skipping"
+msgstr ""
+
+#: .././lib/ifup-ppp:258
+msgid "pppd started for %s on device %s at speed %s"
+msgstr "pppd gestartet für %s auf %s mit %s"
+
+#: .././rc.d/init.d/cryptsetup:168 .././rc.d/rc.shutdown:164
+#, fuzzy
+msgid "Stopping disk encryption"
+msgstr "Der %s-Dienst wird gestoppt"
+
+#: .././rc.d/init.d/netfs:120
+msgid "Unmounting NFS filesystems"
+msgstr "Die NFS-Dateisysteme werden unmountet"
+
+#: .././lib/ifup-ppp:37 .././lib/ifup-sl:46 .././lib/ifup-sl:86
+msgid "%s does not exist or is not executable for %s"
+msgstr "%s für %s existiert nicht oder ist nicht ausführbar"
+
+#: .././rc.d/init.d/cryptsetup:77
+msgid "%s: no value for hash option, skipping"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:384
+msgid "Setting up ISA PNP devices (userspace pnp)"
+msgstr "Die ISA-PNP-Geräte werden eingestellt (userspace pnp)"
+
+#: .././rc.d/init.d/functions:366
+msgid "Stopping %s service"
+msgstr "Der %s-Dienst wird gestoppt"
+
+#: .././rc.d/rc.sysinit:582
+msgid "Discovering EVMS volumes"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:150
+msgid "Remounting remaining filesystems ro mode"
+msgstr "Die übrige Dateisysteme werden mit Schreibschütz erneut gemountet"
+
+#: .././rc.d/init.d/netfs:83 .././rc.d/rc.sysinit:120 .././rc.d/rc.sysinit:734
+#: .././rc.d/rc.sysinit:797
+msgid "*** An error occurred during the file system check."
+msgstr "*** Während des Dateisystem-Prüfens ist ein Fehler passiert."
+
+#: .././rc.d/rc.sysinit:817
+msgid "Remounting encrypted filesystems back in rw mode"
+msgstr ""
+"Das verschlüsselten Dateisysteme werden ohne Schreibschütz erneut gemountet"
+
+#: .././rc.d/init.d/functions:1082
+msgid "$4"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:176
+msgid "dm-crypt module is not loaded"
+msgstr ""
+
+#: .././lib/ifup-sl:92
+msgid "slattach started for %s on %s at %s"
+msgstr "slattach gestartet für %s auf %s mit %s"
+
+#: .././rc.d/init.d/functions:1117
+msgid "Detaching loopback device $dev: "
+msgstr ""
+
+#: .././rc.d/init.d/network:229
+msgid "Shutting down tunnel interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:301
+msgid "Activating swap partitions"
+msgstr "Die Auslagerungspartitionen werden aktiviert"
+
+#: .././lib/ifup:99
+msgid "Enslaving %s to %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:843
+msgid "Turning on quotas for local filesystems"
+msgstr "Die Quotas für die lokalen Dateisysteme werden eingeschaltet"
+
+#: .././rc.d/init.d/cpusets:37
+msgid "ERROR: CGROUP/CPUSET mounted in a way I can't recognize"
+msgstr ""
+
+# #### RANDOM #####
+#: .././rc.d/rc.sysinit:527
+msgid "Initializing firewire controller"
+msgstr ""
+
+#: .././rc.d/init.d/functions:418
+msgid "$1"
+msgstr ""
+
+#: .././lib/ifup-ppp:117
+msgid "Setting up a new %s config file"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:724
+msgid "Checking filesystems"
+msgstr "Die Dateisysteme werden nachgesehen"
+
+#: .././rc.d/init.d/functions:378
+msgid "Usage: %s"
+msgstr "Verwendung: %s"
+
+#: .././rc.d/init.d/netfs:98
+#, fuzzy
+msgid "Mounting other filesystems"
+msgstr "Die lokalen Dateisysteme werden gemountet"
+
+#: .././rc.d/init.d/cryptsetup:164 .././rc.d/rc.sysinit:294
+#: .././rc.d/rc.sysinit:617
+#, fuzzy
+msgid "Starting disk encryption"
+msgstr "Der %s-Dienst wird gestartet"
+
+#: .././rc.d/init.d/cryptsetup:40
+msgid "Key file for %s not found, skipping"
+msgstr ""
+
+#: .././lib/ifup:86
+msgid "Delaying %s initialization"
+msgstr ""
+
+# #### RANDOM #####
+#: .././rc.d/init.d/random:33
+msgid "Initializing random number generator"
+msgstr "Der Zufallszahlgenerator wird initialisiert"
+
+#: .././rc.d/init.d/cryptsetup:174
+msgid "dm-crypt module is loaded"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:632 .././rc.d/rc.sysinit:688 .././rc.d/rc.sysinit:716
+msgid "Starting up RAID devices"
+msgstr "Die RAID-Geräte werden gestartet"
+
+#: .././rc.d/rc.sysinit:435
+msgid "System bootup in progress - please wait"
+msgstr "Das System wird bereits gestartet - bitte warten"
+
+# #### ALLOWLOGIN #####
+#: .././rc.d/init.d/allowlogin:28
+msgid "Allowing users to login"
+msgstr "Die Benutzer werden erlaubt anzumelden"
+
+#: .././rc.d/rc.sysinit:110
+msgid "Checking root filesystem"
+msgstr "Das Root-Dateisystem wird nachgesehen"
+
+#: .././rc.d/init.d/cpusets:168
+#, fuzzy
+msgid "Configured cpusets:"
+msgstr "Konfigurierte Geräte:"
+
+#: .././rc.d/init.d/cpusets:105 .././rc.d/init.d/cpusets:118
+msgid "$("
+msgstr ""
+
+#: .././rc.d/rc.sysinit:948
+msgid "Enabling swap space"
+msgstr "Der Auslagerungsbereich wird eingeschaltet"
+
+#: .././rc.d/init.d/functions:386
+msgid "$@"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:389
+msgid "Setting up ISA PNP devices (kernelspace pnp)"
+msgstr "Die ISA-PNP-Geräte werden eingestellt (kernelspace pnp)"
+
+#: .././rc.d/init.d/functions:1011
+msgid "Could not load %s kernel module(s)"
+msgstr "%s-Kernmodul(e) konnte(n) nicht geladen werden"
+
+#: .././rc.d/init.d/functions:1159
+msgid "DIED"
+msgstr "STARB"
+
+#: .././rc.d/init.d/single:53
+msgid "Telling INIT to go to single user mode"
+msgstr "INIT wird befehlt, in den Single-Modus zu gehen"
+
+# #### INIT #####
+#: .././rc.d/init.d/single:25 .././rc.d/rc.shutdown:43
+msgid "Sending all processes the TERM signal"
+msgstr "Das TERM-Signal wird an alle Prozesse geschickt"
+
+#: .././rc.d/init.d/netfs:125
+msgid "Unmounting NCP filesystems"
+msgstr "Die NCP-Dateisysteme werden unmountet"
+
+#: .././rc.d/init.d/functions:374
+msgid "Reloading %s service"
+msgstr "Der %s-Dienst wird umgeladen"
+
+#: .././rc.d/init.d/functions:1382
+msgid "$command not implemented for $name"
+msgstr ""
+
+#: .././rc.d/init.d/local:27
+msgid "rc.local has not been started"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:35
+#, fuzzy
+msgid "System shutdown in progress\n"
+msgstr "System-Herunterfahren wird ausgeführt \n"
+
+#: .././rc.d/rc.sysinit:433
+msgid "Enabling Delay Login"
+msgstr "Verzögerte Anmeldung wird aktiviert"
+
+#: .././lib/ifdown-irda:69
+msgid "ifdown-%s unable to kill %s for %s"
+msgstr "ifdown-%s kann %s nicht für %s töten"
+
+#: .././rc.d/init.d/cryptsetup:98
+msgid "$src: No such device"
+msgstr ""
+
+#: .././rc.d/init.d/functions:1155
+msgid "BUSY"
+msgstr "WIRKE"
+
+#: .././rc.d/init.d/cryptsetup:105
+msgid "%s: LUKS requires non-random key, skipping"
+msgstr ""
+
+#: .././lib/ifup-ppp:113 .././lib/ifup-sl:58
+msgid "%s does not exist for %s"
+msgstr "%s existiert für %s nicht"
+
+#: .././rc.d/rc.sysinit:279 .././rc.d/rc.sysinit:860
+msgid "Today`s date:"
+msgstr "Das heutige Datum:"
+
+#: .././rc.d/init.d/allowlogin:43
+msgid "Delay login is enabled"
+msgstr ""
+
+#: .././rc.d/init.d/network:208
+msgid "Setting tunnel %s"
+msgstr ""
+
+#: .././rc.d/init.d/network:349
+msgid "Currently inactive devices and tunnels:"
+msgstr "Bereits inaktive Geräte und Tunnel:"
+
+#: .././lib/ifup-ppp:34 .././lib/ifup-ppp:66 .././lib/ifup-sl:43
+msgid "%s does not exist or is not executable"
+msgstr "%s existiert nicht oder ist nicht ausführbar"
+
+#: .././rc.d/rc:147 .././rc.d/rc:148
+msgid "%sResource Manager: %sEntering runlevel number"
+msgstr "%sRessourcenmanager: %sWechsel in die Betriebsebene Nummer"
+
+#: .././rc.d/init.d/cryptsetup:110
+msgid "%s: options are invalid for LUKS partitions, ignoring them"
+msgstr ""
+
+#: .././rc.d/init.d/functions:570
+msgid "warning: --check option is ignored!"
+msgstr "Warnung: die Option --check wird ignoriert!"
+
+#: .././rc.d/init.d/functions:908
+msgid " outside of configured cpuset %s..."
+msgstr ""
+
+#: .././rc.d/init.d/netfs:166
+msgid "Active network block devices: "
+msgstr ""
+
+#: .././lib/functions.network:137 .././lib/functions.network:139
+msgid "Setting static ARP entries"
+msgstr "Die statischen ARP-Einträge werden eingestellt"
+
+#: .././rc.d/init.d/functions:1158
+msgid "FAIL"
+msgstr "UNGUT"
+
+#: .././rc.d/init.d/allowlogin:48
+msgid "Users are not allowed to login right now"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:242
+msgid "NIS Domain:"
+msgstr "NIS-Domäne:"
+
+#: .././rc.d/rc.sysinit:712
+msgid "Activating LVM volume groups (on RAID)"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:32
+msgid "INSECURE MODE FOR %s"
+msgstr ""
+
+#: .././lib/ifup:180
+msgid "%s: Check cable/radio on-off switch?"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:138
+#, fuzzy
+msgid "Configured NFS mountpoints: "
+msgstr "Konfigurierte Tunnel:"
+
+#: .././lib/ifup-sl:56 .././lib/ifup-sl:84
+msgid "ifup-sl - %s exiting"
+msgstr "ifup-sl - %s wird beendet"
+
+#: .././rc.d/rc.sysinit:403
+msgid "Checking root filesystem quotas"
+msgstr "Die Root-Dateisystem-Quotas werden nachgesehen"
+
+#: .././rc.d/init.d/network:51
+msgid "Setting interfaces names (nameif)"
+msgstr ""
+
+#: .././lib/ifup:179 .././lib/ifup:184
+msgid "Determining IP information for %s (%s)"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:70
+msgid "%s: no value for size option, skipping"
+msgstr ""
+
+#~ msgid "Setting time zone information (%s, %s)"
+#~ msgstr "Information über die Zeitzone (%s, %s) wird eingestellt"
+
+#~ msgid "Starting Device Filesystem Daemon"
+#~ msgstr "Der Device-Dateisystem-Server wird gestartet"
+
+#~ msgid "Starting udev"
+#~ msgstr "udev wird gestartet"
+
+# #### TIMEZONE #####
+#~ msgid "Setting time zone information (%s)"
+#~ msgstr "Information über die Zeitzone (%s) wird eingestellt"
+
+#~ msgid "Usage: %s {start|stop|restart|reload|force-reload|status}"
+#~ msgstr "Verwendung: %s {start|stop|restart|reload|force-reload|status}"
+
+#~ msgid "The random data source exists"
+#~ msgstr "Die Zufallsdatenquelle existiert"
+
+#~ msgid "Reload %s service"
+#~ msgstr "Der %s-Dienst wird umgeladen"
+
+#~ msgid "Turning off RAID devices"
+#~ msgstr "Die RAID-Geräte werden ausgeschaltet"
+
+#~ msgid "Mounting Device Filesystem"
+#~ msgstr "Das Device-Dateisystem wird gemountet"
+
+#~ msgid "Unsetting time zone information"
+#~ msgstr "Information über die Zeitzone wird gelöscht"
+
+#~ msgid "does not exist"
+#~ msgstr "existiert nicht"
+
+# #### NETWORK #####
+#~ msgid "Setting network parameters"
+#~ msgstr "Die Netzwerkparameter werden eingestellt"
+
+#~ msgid "Configuring kernel parameters"
+#~ msgstr "Die Kernparameter werden konfiguriert"
diff --git a/trunk/po/makepot.pl b/trunk/po/makepot.pl
new file mode 100755 (executable)
index 0000000..3d64d05
--- /dev/null
@@ -0,0 +1,84 @@
+#!/usr/bin/perl -w
+
+#
+# Extract messages from scripts and make pot
+#
+# Copyright (c) 1999 Free Software Fundation, Inc.
+# Artur Frysiak <wiget@pld-linux.org>
+# $Id$
+# Changes:
+# 2000-08-25 Arkadiusz Miskiewicz <misiek@pld-linux.org>
+# - support for $(nls "xyz"), progress "xyz" and '' instead of "".
+#
+
+my %pot;
+
+sub potentry {
+       my( $msg, $lnr, $filename ) = @_;
+#print STDERR "msg = $msg\nlnr = $lnr\nfilename = $filename\n";
+       if (defined $pot{"$msg"}) {
+               $pot{"$msg"} = $pot{"$msg"} . "\n#: $filename:$lnr";
+#print STDERR "append $msg\n";
+       } else {
+               $pot{"$msg"} = "\n#: $filename:$lnr";
+#print STDERR "new $msg\n";
+       };
+};
+
+print STDERR "\n". $#ARGV . " files\n";
+
+if (1) {
+print <<EOF ;
+# translation of rc-scripts.
+#
+msgid \"\"
+msgstr \"\"
+\"Project-Id-Version: PACKAGE VERSION\\n\"
+\"POT-Creation-Date: 1999-07-30 18:45+0200\\n\"
+\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"
+\"Last-Translator: FULL NAME <EMAIL\@ADDRESS>\\n\"
+\"Language-Team: LANGUAGE <LL\@li.org>\\n\"
+\"MIME-Version: 1.0\\n\"
+\"Content-Type: text/plain; charset=CHARSET\\n\"
+\"Content-Transfer-Encoding: 8bit\\n\"
+
+# Translation of words: \"DONE\", \"WORK\", \"BUSY\", \"FAIL\", \"DIED\"
+# must have that same count of letters !!!!!!!!!!!!!!!!!!!!!!!
+
+# \(4 + \"\\b\" * count of letters\) in one of five previous words
+# msgid \"\\b\\b\\b\\b\\b\\b\\b\\b\"
+EOF
+
+}
+
+
+for (my $a = 0; $a <= $#ARGV; $a++) {
+       my $lnr = 0;
+       my $filename = $ARGV[$a];
+       print STDERR " " .$filename . "\n";
+       open (POTSRC, "< " . $filename) || die "Can't open " . $filename;
+       foreach (<POTSRC>) {
+               chop;
+               if ((/(run_cmd|nls|show|progress)\s[\sa-zA-Z0-9-]*"(?!(\`|\$\()nls\s[\"\'])([^"]*)"/g) or (/(run_cmd|nls|show|progress)\s[\sa-zA-Z0-9-]*'(?!(\`|\$\()nls\s[\"\'])([^"]*)'/g)) {
+#                      potentry($1,$lnr,$filename) if defined $1;
+                       potentry($2,$lnr,$filename) if defined $2;
+                       potentry($3,$lnr,$filename) if defined $3;
+                       potentry($4,$lnr,$filename) if defined $4;
+                       potentry($5,$lnr,$filename) if defined $5;
+                       potentry($6,$lnr,$filename) if defined $6;
+                       potentry($7,$lnr,$filename) if defined $7;
+                       potentry($8,$lnr,$filename) if defined $8;
+                       potentry($9,$lnr,$filename) if defined $9;
+                       potentry($10,$lnr,$filename) if defined $10;
+                       potentry($11,$lnr,$filename) if defined $11;
+               };
+               $lnr++;
+       };
+
+       close (POTSRC);
+
+};
+
+foreach $key (keys %pot) {
+       print $pot{"$key"} . "\nmsgid \"$key\"\nmsgstr \"\"\n";
+};
diff --git a/trunk/po/pl.po b/trunk/po/pl.po
new file mode 100644 (file)
index 0000000..e1bfde1
--- /dev/null
@@ -0,0 +1,888 @@
+# Polish translation of rc-scripts.
+# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+# Arkadiusz Miskiewicz <misiek@pld-linux.org>, 1999, 2000.
+# $Id$
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: rc-scripts 0.3.1\n"
+"POT-Creation-Date: 1999-07-30 18:45+0200\n"
+"PO-Revision-Date: 2004-06-28 00:00+0200\n"
+"Last-Translator: rc-scripts team <pld-rc-scripts@pld-linux.org>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: .././rc.d/init.d/functions:911
+msgid "%s (pid %s) is running%s"
+msgstr "%s (pid %s) jest uruchomiony%s"
+
+#: .././rc.d/rc.shutdown:122
+msgid "Stopping LVM volume groups"
+msgstr "Zatrzymywanie grup woluminów LVM"
+
+#: .././lib/ifdown:23 .././lib/ifup:27 .././lib/ifup-ipx:13
+#: .././lib/tnldown:29 .././lib/tnlup:29
+msgid "Usage: %s <device name>"
+msgstr "Użycie: %s <nazwa urządzenia>"
+
+#: .././rc.d/init.d/network:308
+msgid "Reloading interface %s"
+msgstr "Przeładowywanie interfejsu %s"
+
+#: .././rc.d/rc.sysinit:133 .././rc.d/rc.sysinit:146 .././rc.d/rc.sysinit:704
+#: .././rc.d/rc.sysinit:747 .././rc.d/rc.sysinit:810 .././rc.d/rc.shutdown:82
+msgid "Unmounting file systems"
+msgstr "Odłączanie systemów plików"
+
+#: .././rc.d/init.d/functions:1157
+msgid "WORK"
+msgstr "AKTYWUJĘ"
+
+#: .././rc.d/init.d/functions:931
+msgid "%s is stopped"
+msgstr "%s jest zatrzymany"
+
+#: .././rc.d/init.d/template.init:55 .././rc.d/init.d/template.init:71
+#, fuzzy
+msgid "Checking %s configuration"
+msgstr "Wyłączanie autokonfiguracji IPv6"
+
+#: .././rc.d/rc.shutdown:169
+msgid "The $_rebootwhat is halted"
+msgstr "$_rebootwhat jest zatrzymany"
+
+#: .././rc.d/rc.sysinit:705 .././rc.d/rc.sysinit:748 .././rc.d/rc.sysinit:811
+#: .././rc.d/rc.shutdown:113
+msgid "Remounting root filesystem in ro mode"
+msgstr "Przełączanie głównego systemu plików w tryb tylko do odczytu"
+
+#: .././lib/ifup-ppp:111
+msgid "ifup-ppp for %s exiting"
+msgstr "ifup-ppp dla %s kończy"
+
+#: .././rc.d/rc.sysinit:235 .././rc.d/rc.sysinit:237
+msgid "Host:"
+msgstr "Host:"
+
+#: .././lib/ifup-sl:65
+msgid "dip started for %s on %s at %s"
+msgstr "dip wystartował dla %s na %s przy %s"
+
+#: .././rc.d/init.d/allowlogin:50
+msgid "Users are allowed to login right now"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:121
+#, fuzzy
+msgid "Unmounting NFS filesystems (retry)"
+msgstr "Odłączanie systemów plików NFS"
+
+#: .././rc.d/init.d/netfs:142
+#, fuzzy
+msgid "Configured CIFS mountpoints: "
+msgstr "Skonfigurowane tunele:"
+
+#: .././rc.d/init.d/random:56
+msgid "Saving random seed"
+msgstr "Zapisanie podstawy generatora losowego"
+
+#: .././rc.d/init.d/cpusets:54
+#, fuzzy
+msgid "ERROR: CGROUP/CPUSET support not enabled in kernel"
+msgstr ""
+"BŁĄD: Obsługa CPUSET nie włączona w jądrze albo /dev/cpuset nie jest "
+"zamontowany"
+
+#: .././rc.d/rc.sysinit:332
+msgid "Initializing USB keyboard"
+msgstr "Inicjalizacja klawiatury USB"
+
+#: .././rc.d/init.d/local:25
+msgid "rc.local has been started"
+msgstr ""
+
+#: .././rc.d/init.d/network:200
+msgid "Bringing up interface %s"
+msgstr "Podnoszenie interfejsu %s"
+
+#: .././rc.d/init.d/functions:370
+msgid "%s service is not running."
+msgstr "Usługa %s nie jest uruchomiona."
+
+#: .././rc.d/init.d/netfs:150
+#, fuzzy
+msgid "Configured network block devices: "
+msgstr "Skonfigurowane urządzenia sieciowe:"
+
+#: .././rc.d/rc.sysinit:398
+msgid "Remounting root filesystem in rw mode"
+msgstr "Przełączanie głównego systemu plików w tryb zapis/odczyt"
+
+#: .././rc.d/rc.shutdown:188
+msgid "Please stand by while rebooting the $_rebootwhat"
+msgstr "Proszę czekać - restart systemu $_rebootwhat"
+
+#: .././rc.d/init.d/random:74
+msgid "%d bytes of entropy available"
+msgstr ""
+
+#: .././lib/ifup-br:86
+msgid "problems with setting bridge %s"
+msgstr "wystąpiły problemy przy ustawianiu bridge'a %s"
+
+#: .././rc.d/rc.sysinit:141
+msgid "*** Filesystem was repaired but system needs to be"
+msgstr "*** System plików został naprawiony ale konieczny jest"
+
+#: .././rc.d/init.d/functions:921
+#, fuzzy
+msgid "%s dead but pid file (%s) exists"
+msgstr "%s zabity ale plik z numerem procesu istnieje"
+
+#: .././rc.d/init.d/cpusets:171
+msgid "Currently empty cpusets:"
+msgstr "Puste cpusety:"
+
+#: .././rc.d/init.d/netfs:68
+msgid "Setting up Logical Volume Management"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:62
+msgid "Turning off quotas for local filesystems"
+msgstr "Wyłączanie quot na lokalnych systemach plików"
+
+#: .././rc.d/init.d/functions:1112
+#, fuzzy
+msgid "Unmounting loopback filesystems (retry):"
+msgstr "Odłączanie systemów plików"
+
+#: .././rc.d/rc:92
+msgid "Entering non-interactive startup"
+msgstr "Wchodzę w tryb nieinteraktywny"
+
+#: .././rc.d/init.d/functions:506
+msgid "$message"
+msgstr ""
+
+#: .././lib/ifup:234
+msgid "Enabling proxy ARP on %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:538 .././rc.d/rc.sysinit:543
+msgid "Loading sound module"
+msgstr "Ładowanie modułu obsługi dźwięku"
+
+#: .././rc.d/init.d/random:71
+msgid "The random data source is missing"
+msgstr "Brak źródła losowych danych"
+
+#: .././rc.d/init.d/netfs:133
+msgid "/proc filesystem unavailable"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:47
+#, fuzzy
+msgid "Mounting NFS filesystems"
+msgstr "Odłączanie systemów plików NFS"
+
+#: .././rc.d/init.d/network:13 .././rc.d/init.d/network:42 .././lib/ifdown:124
+#: .././lib/ifdown-br:35 .././lib/ifup:91 .././lib/ifup-br:35
+#: .././lib/ifup-ipx:22 .././lib/ifup-irda:36 .././lib/ifup-sl:83
+#: .././lib/ifup-vlan:43
+msgid "%s is missing. Can't continue."
+msgstr "%s nie jest obecny. Nie mogę kontynuować."
+
+#: .././rc.d/init.d/netfs:114
+#, fuzzy
+msgid "Unmounting network block filesystems"
+msgstr "Odłączanie systemów plików"
+
+#: .././rc.d/rc.sysinit:561
+msgid "Activating ATARAID devices"
+msgstr "Ustawianie urządzeń ATARAID"
+
+#: .././rc.d/init.d/network:344
+msgid "Configured devices:"
+msgstr "Skonfigurowane urządzenia sieciowe:"
+
+#: .././rc.d/init.d/functions:994
+msgid "Loading %s kernel module(s)"
+msgstr "Ładowanie modułu(ów) %s"
+
+#: .././rc.d/init.d/netfs:158
+msgid "Active CIFS mountpoints: "
+msgstr ""
+
+#: .././rc.d/init.d/single:27 .././rc.d/rc.shutdown:49
+msgid "Sending all processes the KILL signal"
+msgstr "Wysyłanie do wszystkich procesów sygnału KILL"
+
+#: .././lib/ifup-vlan:56
+msgid "VLAN kernel support is missing. Can't continue."
+msgstr "Brak wsparcia dla VLAN w jądrze. Nie można kontynuować."
+
+#: .././rc.d/init.d/network:204
+msgid "Bringing up bridge interface %s"
+msgstr "Podnoszenie interfejsu mostu %s"
+
+#: .././rc.d/rc.sysinit:414
+msgid "Starting disk encryption using the RNG"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:278 .././rc.d/rc.sysinit:859
+msgid "Setting clock"
+msgstr "Ustawianie zegara systemowego"
+
+#: .././rc.d/rc.sysinit:556
+msgid "Activating dm-multipath"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:105 .././rc.d/init.d/cpusets:118
+msgid "$(nls -n "
+msgstr ""
+
+#: .././lib/ifup-ppp:35 .././lib/ifup-ppp:67 .././lib/ifup-sl:44
+msgid "%s for %s exiting"
+msgstr "%s dla %s kończy"
+
+#: .././rc.d/rc.sysinit:711
+msgid "Scanning for LVM volume groups (on RAID)"
+msgstr "Poszukiwanie woluminów grup LVM (na RAID)"
+
+#: .././rc.d/rc.sysinit:143
+msgid "*** REBOOTING ***"
+msgstr "*** RESTARTUJĘ ***"
+
+#: .././rc.d/rc.sysinit:142
+msgid "*** rebooted before mounting it."
+msgstr "*** restart przez zamontowaniem go."
+
+#: .././rc.d/init.d/network:234
+msgid "Shutting down bridge interface %s"
+msgstr "Wyłączanie interfejsu mostu %s"
+
+#: .././rc.d/init.d/netfs:50
+#, fuzzy
+msgid "Mounting CIFS filesystems"
+msgstr "Odłączanie systemów plików CIFS"
+
+#: .././rc.d/init.d/netfs:115
+#, fuzzy
+msgid "Unmounting network block filesystems (retry)"
+msgstr "Odłączanie systemów plików SMB"
+
+#: .././rc.d/init.d/netfs:162
+msgid "Active NCP mountpoints: "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:870
+msgid "Setting %s seconds for kernel reboot after panic"
+msgstr "Restart systemu po %s sekundach od zawieszenia sie jądra"
+
+#: .././rc.d/rc.sysinit:335
+msgid "Initializing USB mouse"
+msgstr "Inicjalizacja myszy USB"
+
+#: .././rc.d/init.d/cpusets:178
+msgid "Currently active cpusets:"
+msgstr "Aktualnie aktywne cpuset:"
+
+#: .././lib/ifup-irda:59
+msgid "problems with setting %s %s"
+msgstr "wystąpiły problemy przy ustawianiu %s %s"
+
+#: .././rc.d/init.d/netfs:87 .././rc.d/rc.sysinit:125 .././rc.d/rc.sysinit:739
+#: .././rc.d/rc.sysinit:802
+msgid "(Repair filesystem)# "
+msgstr "(Naprawa systemu plików)# "
+
+#: .././rc.d/rc.sysinit:691
+msgid "*** An error occurred during the RAID startup."
+msgstr ""
+"*** Podczas inicjacji urządzeń RAID wykryto błąd niemożliwy do usunięcia."
+
+#: .././rc.d/init.d/netfs:76
+#, fuzzy
+msgid "Checking network-attached filesystems"
+msgstr "Sprawdzanie zaszyfrowanych systemów plików"
+
+#: .././rc.d/init.d/cryptsetup:36
+msgid "INSECURE OWNER FOR %s"
+msgstr "NIEBEZPIECZNY WŁAŚCICIEL DLA %s"
+
+#: .././lib/functions.network:104
+msgid "Can't find a DHCP client."
+msgstr "Nie mogę znaleźć klienta DHCP."
+
+#: .././rc.d/init.d/allowlogin:45
+msgid "Delay login is not enabled"
+msgstr "Opóźnianie logowania jest nieaktywne"
+
+#: .././rc.d/init.d/functions:928
+#, fuzzy
+msgid "daemon %s dead but subsys (%s) locked"
+msgstr "%s zabity ale podsystem zablokowany"
+
+#: .././rc.d/init.d/netfs:51
+#, fuzzy
+msgid "Mounting NCP filesystems"
+msgstr "Odłączanie systemów plików NCP"
+
+#: .././rc.d/init.d/network:238
+msgid "Shutting down interface %s"
+msgstr "Wyłączanie interfejsu %s"
+
+#: .././rc.d/rc.shutdown:57
+msgid "Turning off swap"
+msgstr "Wyłączanie swapa"
+
+#: .././rc.d/init.d/network:351
+msgid "Currently active devices and tunnels:"
+msgstr "Aktywne urządzenia sieciowe i tunele:"
+
+#: .././lib/ifup:120
+msgid "Disabling IPv6 autoconfiguration"
+msgstr "Wyłączanie autokonfiguracji IPv6"
+
+#: .././rc.d/rc.sysinit:608
+msgid "Activating LVM volume groups"
+msgstr "Aktywacja grup woluminów LVM"
+
+#: .././rc.d/init.d/functions:1109
+#, fuzzy
+msgid "Unmounting loopback filesystems: "
+msgstr "Odłączanie systemów plików"
+
+#: .././rc.d/rc:258 .././rc.d/rc:259
+msgid "%sResource Manager: %sRunlevel has been reached"
+msgstr "%sZarządca zasobów: %sOsiągnięto poziom"
+
+#: .././lib/ifup-ppp:110
+msgid "%s does not exist, perhaps set $CHATSCRIPT"
+msgstr "%s nie istnieje, być może ustaw $CHATSCRIPT"
+
+#: .././rc.d/init.d/functions:358
+msgid "Starting %s service"
+msgstr "Uruchamianie usługi %s"
+
+#: .././rc.d/init.d/netfs:146
+#, fuzzy
+msgid "Configured NCP mountpoints: "
+msgstr "Skonfigurowane tunele:"
+
+#: .././rc.d/rc.sysinit:607
+msgid "Scanning for LVM volume groups"
+msgstr "Poszukiwanie woluminów grup LVM"
+
+#: .././lib/ifdown-vlan:46 .././lib/ifup-vlan:77
+msgid "/sbin/vconfig or iproute2 with vlan support is missing. Can't continue."
+msgstr ""
+"/sbin/vconfig lub iproute2 ze wsparciem dla vlan nie znalezione. Nie można "
+"kontynuować."
+
+#: .././lib/functions.network:175
+msgid "Setting static RARP entries"
+msgstr "Ustawianie statycznych wpisów RARP"
+
+#: .././rc.d/init.d/network:346
+msgid "Configured tunnels:"
+msgstr "Skonfigurowane tunele:"
+
+#: .././rc.d/init.d/network:230
+msgid "Removing tunnel %s"
+msgstr "Usuwanie tunelu %s"
+
+#: .././rc.d/init.d/functions:938
+msgid "Start service %s (Y)es/(N)o/(C)ontinue? [Y] "
+msgstr "Uruchomić usługę %s (T)ak/(N)ie/(K)ontynuuj? [T] "
+
+#: .././rc.d/init.d/functions:362
+msgid "%s service is already running."
+msgstr "Usługa %s jest już uruchomiona."
+
+#: .././rc.d/init.d/network:209
+msgid "Bringing up tunnel interface %s"
+msgstr "Podnoszenie tunelu %s"
+
+#: .././lib/ifup:35
+msgid "Users cannot control this device."
+msgstr "Użytkownicy nie mogą kontrolować tego urządzenia."
+
+#: .././rc.d/init.d/netfs:124
+msgid "Unmounting CIFS filesystems"
+msgstr "Odłączanie systemów plików CIFS"
+
+#: .././rc.d/init.d/functions:354
+msgid "ERROR: Networking is down. %s can't be run."
+msgstr "BŁĄD: Sieć nie jest uruchomiona. %s nie może zostać uruchomiony."
+
+#: .././lib/ifup-sl:55
+msgid "%s does not exist"
+msgstr "%s nie istnieje"
+
+#: .././rc.d/rc.sysinit:321
+msgid "Mounting USB filesystem"
+msgstr "Montowanie systemu plików USB"
+
+#: .././rc.d/init.d/netfs:85 .././rc.d/rc.sysinit:122 .././rc.d/rc.sysinit:693
+#: .././rc.d/rc.sysinit:736 .././rc.d/rc.sysinit:799
+msgid "*** when you leave the shell."
+msgstr "*** po opuszczeniu powłoki."
+
+#: .././rc.d/rc.sysinit:328
+msgid "Initializing USB HID interface"
+msgstr "Inicjalizacja interfejsu USB HID"
+
+#: .././rc.d/rc.sysinit:696
+msgid "(RAID Repair)# "
+msgstr "(Naprawa RAID)# "
+
+#: .././rc.d/rc.sysinit:229
+msgid "\t\t  Press %sI%s to enter interactive startup"
+msgstr "\t      Proszę wcisnąć %sI%s żeby wejść w tryb interaktywny"
+
+#: .././rc.d/init.d/functions:906
+msgid " in cpuset %s..."
+msgstr " w cpusecie %s..."
+
+#: .././rc.d/rc.sysinit:227
+msgid "\t\t\t%sPowered by %sPLD Linux Distribution%s"
+msgstr "\t\t\t%sNapędzane przez %sPLD Linux Distribution%s"
+
+#: .././rc.d/init.d/netfs:154
+msgid "Active NFS mountpoints: "
+msgstr ""
+
+#: .././lib/functions.network:279
+msgid ""
+"Warning: Default gateway already set proably via other interface. Do you "
+"need to setup GATEWAYDEV?"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:774
+msgid "Checking encrypted filesystems"
+msgstr "Sprawdzanie zaszyfrowanych systemów plików"
+
+#: .././rc.d/init.d/functions:1156 .././rc.d/rc:149
+msgid "DONE"
+msgstr "ZROBIONE"
+
+#: .././rc.d/rc.sysinit:499 .././rc.d/rc.sysinit:501
+msgid "Finding module dependencies"
+msgstr "Wyszukiwanie powiązań pomiędzy modułami"
+
+#: .././rc.d/init.d/functions:487
+msgid "username"
+msgstr ""
+
+#: .././rc.d/rc:89
+msgid "Entering interactive startup"
+msgstr "Wchodzę w tryb interaktywny"
+
+#: .././rc.d/rc:250
+msgid "Setting up /etc/ld.so.cache"
+msgstr "Ustawianie /etc/ld.so.cache"
+
+#: .././rc.d/rc.shutdown:142
+msgid "Turning off RAID for %s"
+msgstr "Wyłączanie obsługi RAID dla %s"
+
+#: .././rc.d/init.d/netfs:84 .././rc.d/rc.sysinit:121 .././rc.d/rc.sysinit:692
+#: .././rc.d/rc.sysinit:735 .././rc.d/rc.sysinit:798
+msgid "*** Dropping you to a shell; the system will reboot"
+msgstr "*** Uruchamianie powłoki; system zostanie zrestartowany"
+
+#: .././rc.d/rc.sysinit:760
+msgid "Mounting local filesystems"
+msgstr "Podłączanie lokalnych systemów plików"
+
+#: .././rc.d/rc.sysinit:135 .././rc.d/rc.sysinit:148 .././rc.d/rc.sysinit:706
+#: .././rc.d/rc.sysinit:749 .././rc.d/rc.sysinit:812
+msgid "Automatic reboot in progress"
+msgstr "Automatyczny restart w toku"
+
+#: .././rc.d/rc.shutdown:194
+msgid "Will now restart with kexec"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:171 .././rc.d/rc.shutdown:190
+msgid "On the next boot fsck will be skipped."
+msgstr "Przy następnym starcie systemu program fsck będzie pominięty."
+
+#: .././rc.d/rc.sysinit:838
+msgid "Checking filesystem quotas"
+msgstr "Sprawdzanie quot w systemach plików"
+
+#: .././rc.d/rc.sysinit:311
+msgid "Initializing USB controller"
+msgstr "Inicjalizacja kontrolera USB"
+
+#: .././rc.d/rc.sysinit:653
+msgid "Starting up RAID device %s"
+msgstr "Włączanie urządzenia RAID %s"
+
+#: .././rc.d/init.d/functions:1080
+msgid "$3"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:63
+msgid "%s: no value for cipher option, skipping"
+msgstr ""
+
+#: .././lib/ifup-ppp:258
+msgid "pppd started for %s on device %s at speed %s"
+msgstr "pppd wystartował dla %s na %s przy prędkości %s"
+
+#: .././rc.d/init.d/cryptsetup:168 .././rc.d/rc.shutdown:164
+msgid "Stopping disk encryption"
+msgstr "Zatrzymywanie szyfrowania dysków"
+
+#: .././rc.d/init.d/netfs:120
+msgid "Unmounting NFS filesystems"
+msgstr "Odłączanie systemów plików NFS"
+
+#: .././lib/ifup-ppp:37 .././lib/ifup-sl:46 .././lib/ifup-sl:86
+msgid "%s does not exist or is not executable for %s"
+msgstr "%s nie istnieje lub nie jest wykonywalny dla %s"
+
+#: .././rc.d/init.d/cryptsetup:77
+msgid "%s: no value for hash option, skipping"
+msgstr "%s: nie podano wartości dla opcji hash, pomijam"
+
+#: .././rc.d/rc.sysinit:384
+msgid "Setting up ISA PNP devices (userspace pnp)"
+msgstr "Ustawianie urządzeń ISA PNP (userspace pnp)"
+
+#: .././rc.d/init.d/functions:366
+msgid "Stopping %s service"
+msgstr "Zatrzymywanie usługi %s"
+
+#: .././rc.d/rc.sysinit:582
+msgid "Discovering EVMS volumes"
+msgstr "Wykrywanie woluminów EVMS"
+
+#: .././rc.d/rc.shutdown:150
+msgid "Remounting remaining filesystems ro mode"
+msgstr "Przełączanie pozostałych systemów plików w tryb tylko do odczytu"
+
+#: .././rc.d/init.d/netfs:83 .././rc.d/rc.sysinit:120 .././rc.d/rc.sysinit:734
+#: .././rc.d/rc.sysinit:797
+msgid "*** An error occurred during the file system check."
+msgstr ""
+"*** Podczas sprawdzania systemów plików wykryto błąd niemożliwy do usunięcia."
+
+#: .././rc.d/rc.sysinit:817
+msgid "Remounting encrypted filesystems back in rw mode"
+msgstr "Przełączanie zaszyfrowanych systemów plików w tryb zapis/odczyt"
+
+#: .././rc.d/init.d/functions:1082
+msgid "$4"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:176
+msgid "dm-crypt module is not loaded"
+msgstr ""
+
+#: .././lib/ifup-sl:92
+msgid "slattach started for %s on %s at %s"
+msgstr "slattach wystartował dla %s na %s przy %s"
+
+#: .././rc.d/init.d/functions:1117
+msgid "Detaching loopback device $dev: "
+msgstr ""
+
+#: .././rc.d/init.d/network:229
+msgid "Shutting down tunnel interface %s"
+msgstr "Wyłączanie tunelu %s"
+
+#: .././rc.d/rc.sysinit:301
+msgid "Activating swap partitions"
+msgstr "Aktywacja partycji swap"
+
+#: .././lib/ifup:99
+msgid "Enslaving %s to %s"
+msgstr "Ustawianie %s na %s"
+
+#: .././rc.d/rc.sysinit:843
+msgid "Turning on quotas for local filesystems"
+msgstr "Włączanie quot na lokalnych systemach plików"
+
+#: .././rc.d/init.d/cpusets:37
+msgid "ERROR: CGROUP/CPUSET mounted in a way I can't recognize"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:527
+msgid "Initializing firewire controller"
+msgstr "Inicjalizacja kontrolera firewire"
+
+#: .././rc.d/init.d/functions:418
+msgid "$1"
+msgstr ""
+
+#: .././lib/ifup-ppp:117
+msgid "Setting up a new %s config file"
+msgstr "Ustawianie nowego pliku konfiguracyjnego %s"
+
+#: .././rc.d/rc.sysinit:724
+msgid "Checking filesystems"
+msgstr "Sprawdzanie systemów plików"
+
+#: .././rc.d/init.d/functions:378
+msgid "Usage: %s"
+msgstr "Użycie: %s"
+
+#: .././rc.d/init.d/netfs:98
+#, fuzzy
+msgid "Mounting other filesystems"
+msgstr "Podłączanie lokalnych systemów plików"
+
+#: .././rc.d/init.d/cryptsetup:164 .././rc.d/rc.sysinit:294
+#: .././rc.d/rc.sysinit:617
+msgid "Starting disk encryption"
+msgstr "Uruchamianie szyfrowania dysków"
+
+#: .././rc.d/init.d/cryptsetup:40
+msgid "Key file for %s not found, skipping"
+msgstr ""
+
+#: .././lib/ifup:86
+msgid "Delaying %s initialization"
+msgstr "Opóźnianie inicjalizacji %s"
+
+#: .././rc.d/init.d/random:33
+msgid "Initializing random number generator"
+msgstr "Inicjalizacja generatora liczb losowych"
+
+#: .././rc.d/init.d/cryptsetup:174
+msgid "dm-crypt module is loaded"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:632 .././rc.d/rc.sysinit:688 .././rc.d/rc.sysinit:716
+msgid "Starting up RAID devices"
+msgstr "Ustawianie urządzeń RAID"
+
+#: .././rc.d/rc.sysinit:435
+msgid "System bootup in progress - please wait"
+msgstr "Uruchamianie systemu w toku - proszę czekać"
+
+#: .././rc.d/init.d/allowlogin:28
+msgid "Allowing users to login"
+msgstr "Zezwolenie użytkownikom na logowanie"
+
+#: .././rc.d/rc.sysinit:110
+msgid "Checking root filesystem"
+msgstr "Sprawdzanie głównego systemu plików"
+
+#: .././rc.d/init.d/cpusets:168
+msgid "Configured cpusets:"
+msgstr "Skonfigurowane cpusety:"
+
+#: .././rc.d/init.d/cpusets:105 .././rc.d/init.d/cpusets:118
+msgid "$("
+msgstr ""
+
+#: .././rc.d/rc.sysinit:948
+msgid "Enabling swap space"
+msgstr "Włączanie swapa"
+
+#: .././rc.d/init.d/functions:386
+msgid "$@"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:389
+msgid "Setting up ISA PNP devices (kernelspace pnp)"
+msgstr "Ustawianie urządzeń ISA PNP (kernelspace pnp)"
+
+#: .././rc.d/init.d/functions:1011
+msgid "Could not load %s kernel module(s)"
+msgstr "Nie można załadować modułu(ów) %s"
+
+#: .././rc.d/init.d/functions:1159
+msgid "DIED"
+msgstr " ZGINĄŁ "
+
+#: .././rc.d/init.d/single:53
+msgid "Telling INIT to go to single user mode"
+msgstr "Nakazywanie procesowi INIT przejście do trybu pojedynczego użytkownika"
+
+#: .././rc.d/init.d/single:25 .././rc.d/rc.shutdown:43
+msgid "Sending all processes the TERM signal"
+msgstr "Wysyłanie do wszystkich procesów sygnału TERM"
+
+#: .././rc.d/init.d/netfs:125
+msgid "Unmounting NCP filesystems"
+msgstr "Odłączanie systemów plików NCP"
+
+#: .././rc.d/init.d/functions:374
+msgid "Reloading %s service"
+msgstr "Przeładowanie usługi %s"
+
+#: .././rc.d/init.d/functions:1382
+msgid "$command not implemented for $name"
+msgstr ""
+
+#: .././rc.d/init.d/local:27
+msgid "rc.local has not been started"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:35
+#, fuzzy
+msgid "System shutdown in progress\n"
+msgstr "Zamykanie systemu w toku \n"
+
+#: .././rc.d/rc.sysinit:433
+msgid "Enabling Delay Login"
+msgstr "Włączanie opóźniania logowania"
+
+#: .././lib/ifdown-irda:69
+msgid "ifdown-%s unable to kill %s for %s"
+msgstr "ifdown-%s nie mógł zabić %s dla %s"
+
+#: .././rc.d/init.d/cryptsetup:98
+msgid "$src: No such device"
+msgstr ""
+
+#: .././rc.d/init.d/functions:1155
+msgid "BUSY"
+msgstr " ZAJĘTY "
+
+#: .././rc.d/init.d/cryptsetup:105
+msgid "%s: LUKS requires non-random key, skipping"
+msgstr ""
+
+#: .././lib/ifup-ppp:113 .././lib/ifup-sl:58
+msgid "%s does not exist for %s"
+msgstr "%s nie istnieje dla %s"
+
+#: .././rc.d/rc.sysinit:279 .././rc.d/rc.sysinit:860
+msgid "Today`s date:"
+msgstr "Dzisiejsza data:"
+
+#: .././rc.d/init.d/allowlogin:43
+msgid "Delay login is enabled"
+msgstr ""
+
+#: .././rc.d/init.d/network:208
+msgid "Setting tunnel %s"
+msgstr "Podnoszenie tunelu %s"
+
+#: .././rc.d/init.d/network:349
+msgid "Currently inactive devices and tunnels:"
+msgstr "Nieaktywne urządzenia sieciowe i tunele:"
+
+#: .././lib/ifup-ppp:34 .././lib/ifup-ppp:66 .././lib/ifup-sl:43
+msgid "%s does not exist or is not executable"
+msgstr "%s nie istnieje lub nie jest wykonywalny"
+
+#: .././rc.d/rc:147 .././rc.d/rc:148
+msgid "%sResource Manager: %sEntering runlevel number"
+msgstr "%sZarządca zasobów: %sWejście na poziom"
+
+#: .././rc.d/init.d/cryptsetup:110
+msgid "%s: options are invalid for LUKS partitions, ignoring them"
+msgstr ""
+
+#: .././rc.d/init.d/functions:570
+msgid "warning: --check option is ignored!"
+msgstr "uwaga: opcja --check jest ignorowana!"
+
+#: .././rc.d/init.d/functions:908
+msgid " outside of configured cpuset %s..."
+msgstr " poza swoim cpusetem %s..."
+
+#: .././rc.d/init.d/netfs:166
+msgid "Active network block devices: "
+msgstr ""
+
+#: .././lib/functions.network:137 .././lib/functions.network:139
+msgid "Setting static ARP entries"
+msgstr "Ustawianie statycznych wpisów ARP"
+
+#: .././rc.d/init.d/functions:1158
+msgid "FAIL"
+msgstr "PROBLEMY"
+
+#: .././rc.d/init.d/allowlogin:48
+msgid "Users are not allowed to login right now"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:242
+msgid "NIS Domain:"
+msgstr "Domena NIS:"
+
+#: .././rc.d/rc.sysinit:712
+msgid "Activating LVM volume groups (on RAID)"
+msgstr "Aktywacja grup woluminów LVM (na RAID)"
+
+#: .././rc.d/init.d/cryptsetup:32
+msgid "INSECURE MODE FOR %s"
+msgstr ""
+
+#: .././lib/ifup:180
+msgid "%s: Check cable/radio on-off switch?"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:138
+#, fuzzy
+msgid "Configured NFS mountpoints: "
+msgstr "Skonfigurowane tunele:"
+
+#: .././lib/ifup-sl:56 .././lib/ifup-sl:84
+msgid "ifup-sl - %s exiting"
+msgstr "ifup-sl - %s kończy"
+
+#: .././rc.d/rc.sysinit:403
+msgid "Checking root filesystem quotas"
+msgstr "Sprawdzanie quot na głównym systemie plików"
+
+#: .././rc.d/init.d/network:51
+msgid "Setting interfaces names (nameif)"
+msgstr "Ustawianie nazw interfejsów (nameif)"
+
+#: .././lib/ifup:179 .././lib/ifup:184
+msgid "Determining IP information for %s (%s)"
+msgstr "Ustalanie informacji IP dla %s (%s)"
+
+#: .././rc.d/init.d/cryptsetup:70
+msgid "%s: no value for size option, skipping"
+msgstr ""
+
+#~ msgid "The random data source exists"
+#~ msgstr "Źródło losowych danych istnieje"
+
+#~ msgid "Setting time zone information (%s, %s)"
+#~ msgstr "Ustawianie informacji o strefie czasowej (%s, %s)"
+
+#~ msgid "Creating cpuset %s"
+#~ msgstr "Tworzenie cpusetu %s"
+
+#~ msgid "Setting time zone information (%s)"
+#~ msgstr "Ustawianie informacji o strefie czasowej (%s)"
+
+#~ msgid "Reload %s service"
+#~ msgstr "Przeładowanie usługi %s"
+
+#~ msgid "Setting default font"
+#~ msgstr "Ustawianie standardowego fontu"
+
+#~ msgid "Turning off RAID devices"
+#~ msgstr "Wyłączanie obsługi urządzeń RAID"
+
+#, fuzzy
+#~ msgid "Removing cpuset %s"
+#~ msgstr "Usuwanie cpusetu %s"
+
+#~ msgid "Unsetting time zone information"
+#~ msgstr "Usuwanie informacji o strefie czasowej"
+
+#~ msgid "%s (pid %s) is running..."
+#~ msgstr "%s (pid %s) jest uruchomiony..."
+
+#~ msgid "Setting network parameters"
+#~ msgstr "Ustawianie parametrów sieci"
+
+#~ msgid "Configuring kernel parameters"
+#~ msgstr "Ustawianie parametrów jądra"
diff --git a/trunk/po/rc-scripts.pot b/trunk/po/rc-scripts.pot
new file mode 100644 (file)
index 0000000..e0a962b
--- /dev/null
@@ -0,0 +1,878 @@
+# translation of rc-scripts.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 1999-07-30 18:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# Translation of words: "DONE", "WORK", "BUSY", "FAIL", "DIED"
+# must have that same count of letters !!!!!!!!!!!!!!!!!!!!!!!
+
+# (4 + "\b" * count of letters) in one of five previous words
+# msgid "\b\b\b\b\b\b\b\b"
+
+#: .././lib/functions:911
+msgid "%s (pid %s) is running%s"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:122
+msgid "Stopping LVM volume groups"
+msgstr ""
+
+#: .././lib/tnldown:29
+#: .././lib/ifdown:23
+#: .././lib/ifup-ipx:13
+#: .././lib/tnlup:29
+#: .././lib/ifup:27
+msgid "Usage: %s <device name>"
+msgstr ""
+
+#: .././rc.d/init.d/network:308
+msgid "Reloading interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:133
+#: .././rc.d/rc.sysinit:146
+#: .././rc.d/rc.sysinit:716
+#: .././rc.d/rc.sysinit:759
+#: .././rc.d/rc.sysinit:822
+#: .././rc.d/rc.shutdown:82
+msgid "Unmounting file systems"
+msgstr ""
+
+#: .././lib/functions:1157
+msgid "WORK"
+msgstr ""
+
+#: .././lib/functions:931
+msgid "%s is stopped"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:169
+msgid "The $_rebootwhat is halted"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:717
+#: .././rc.d/rc.sysinit:760
+#: .././rc.d/rc.sysinit:823
+#: .././rc.d/rc.shutdown:113
+msgid "Remounting root filesystem in ro mode"
+msgstr ""
+
+#: .././lib/ifup-ppp:111
+msgid "ifup-ppp for %s exiting"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:239
+#: .././rc.d/rc.sysinit:241
+msgid "Host:"
+msgstr ""
+
+#: .././lib/ifup-sl:65
+msgid "dip started for %s on %s at %s"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:52
+msgid "Users are allowed to login right now"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:121
+msgid "Unmounting NFS filesystems (retry)"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:142
+msgid "Configured CIFS mountpoints: "
+msgstr ""
+
+#: .././rc.d/init.d/random:56
+msgid "Saving random seed"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:54
+msgid "ERROR: CGROUP/CPUSET support not enabled in kernel"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:336
+msgid "Initializing USB keyboard"
+msgstr ""
+
+#: .././rc.d/init.d/local:27
+msgid "rc.local has been started"
+msgstr ""
+
+#: .././lib/functions:370
+msgid "%s service is not running."
+msgstr ""
+
+#: .././rc.d/init.d/netfs:150
+msgid "Configured network block devices: "
+msgstr ""
+
+#: .././rc.d/init.d/network:200
+msgid "Bringing up interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:402
+msgid "Remounting root filesystem in rw mode"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:188
+msgid "Please stand by while rebooting the $_rebootwhat"
+msgstr ""
+
+#: .././rc.d/init.d/random:74
+msgid "%d bytes of entropy available"
+msgstr ""
+
+#: .././lib/ifup-br:86
+msgid "problems with setting bridge %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:141
+msgid "*** Filesystem was repaired but system needs to be"
+msgstr ""
+
+#: .././lib/functions:921
+msgid "%s dead but pid file (%s) exists"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:171
+msgid "Currently empty cpusets:"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:68
+msgid "Setting up Logical Volume Management"
+msgstr ""
+
+#: .././lib/functions:1112
+msgid "Unmounting loopback filesystems (retry):"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:62
+msgid "Turning off quotas for local filesystems"
+msgstr ""
+
+#: .././lib/functions:506
+msgid "$message"
+msgstr ""
+
+#: .././rc.d/rc:92
+msgid "Entering non-interactive startup"
+msgstr ""
+
+#: .././lib/ifup:234
+msgid "Enabling proxy ARP on %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:546
+#: .././rc.d/rc.sysinit:551
+msgid "Loading sound module"
+msgstr ""
+
+#: .././rc.d/init.d/random:71
+msgid "The random data source is missing"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:133
+msgid "/proc filesystem unavailable"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:47
+msgid "Mounting NFS filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:114
+msgid "Unmounting network block filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/network:13
+#: .././rc.d/init.d/network:42
+#: .././lib/ifup-sl:83
+#: .././lib/ifup-irda:36
+#: .././lib/ifdown:124
+#: .././lib/ifdown-br:35
+#: .././lib/ifup-vlan:43
+#: .././lib/ifup-ipx:22
+#: .././lib/ifup:91
+#: .././lib/ifup-br:35
+msgid "%s is missing. Can't continue."
+msgstr ""
+
+#: .././lib/functions:994
+msgid "Loading %s kernel module(s)"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:569
+msgid "Activating ATARAID devices"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:158
+msgid "Active CIFS mountpoints: "
+msgstr ""
+
+#: .././rc.d/init.d/network:344
+msgid "Configured devices:"
+msgstr ""
+
+#: .././rc.d/init.d/single:27
+#: .././rc.d/rc.shutdown:49
+msgid "Sending all processes the KILL signal"
+msgstr ""
+
+#: .././lib/ifup-vlan:56
+msgid "VLAN kernel support is missing. Can't continue."
+msgstr ""
+
+#: .././rc.d/init.d/network:204
+msgid "Bringing up bridge interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:418
+msgid "Starting disk encryption using the RNG"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:282
+#: .././rc.d/rc.sysinit:871
+msgid "Setting clock"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:564
+msgid "Activating dm-multipath"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:105
+#: .././rc.d/init.d/cpusets:118
+msgid "$(nls -n "
+msgstr ""
+
+#: .././lib/ifup-sl:44
+#: .././lib/ifup-ppp:35
+#: .././lib/ifup-ppp:67
+msgid "%s for %s exiting"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:723
+msgid "Scanning for LVM volume groups (on RAID)"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:143
+msgid "*** REBOOTING ***"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:142
+msgid "*** rebooted before mounting it."
+msgstr ""
+
+#: .././rc.d/init.d/network:234
+msgid "Shutting down bridge interface %s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:50
+msgid "Mounting CIFS filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:115
+msgid "Unmounting network block filesystems (retry)"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:162
+msgid "Active NCP mountpoints: "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:882
+msgid "Setting %s seconds for kernel reboot after panic"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:339
+msgid "Initializing USB mouse"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:178
+msgid "Currently active cpusets:"
+msgstr ""
+
+#: .././lib/ifup-irda:59
+msgid "problems with setting %s %s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:87
+#: .././rc.d/rc.sysinit:125
+#: .././rc.d/rc.sysinit:751
+#: .././rc.d/rc.sysinit:814
+msgid "(Repair filesystem)# "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:703
+msgid "*** An error occurred during the RAID startup."
+msgstr ""
+
+#: .././rc.d/init.d/netfs:76
+msgid "Checking network-attached filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:36
+msgid "INSECURE OWNER FOR %s"
+msgstr ""
+
+#: .././lib/functions.network:104
+msgid "Can't find a DHCP client."
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:47
+msgid "Delay login is not enabled"
+msgstr ""
+
+#: .././lib/functions:928
+msgid "daemon %s dead but subsys (%s) locked"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:51
+msgid "Mounting NCP filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/network:238
+msgid "Shutting down interface %s"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:57
+msgid "Turning off swap"
+msgstr ""
+
+#: .././rc.d/init.d/network:351
+msgid "Currently active devices and tunnels:"
+msgstr ""
+
+#: .././lib/ifup:120
+msgid "Disabling IPv6 autoconfiguration"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:620
+msgid "Activating LVM volume groups"
+msgstr ""
+
+#: .././lib/functions:1109
+msgid "Unmounting loopback filesystems: "
+msgstr ""
+
+#: .././rc.d/rc:258
+#: .././rc.d/rc:259
+msgid "%sResource Manager: %sRunlevel has been reached"
+msgstr ""
+
+#: .././lib/ifup-ppp:110
+msgid "%s does not exist, perhaps set $CHATSCRIPT"
+msgstr ""
+
+#: .././lib/functions:358
+msgid "Starting %s service"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:146
+msgid "Configured NCP mountpoints: "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:619
+msgid "Scanning for LVM volume groups"
+msgstr ""
+
+#: .././lib/functions:938
+msgid "Start service %s (Y)es/(N)o/(C)ontinue? [Y] "
+msgstr ""
+
+#: .././lib/functions.network:175
+msgid "Setting static RARP entries"
+msgstr ""
+
+#: .././lib/ifdown-vlan:46
+#: .././lib/ifup-vlan:77
+msgid "/sbin/vconfig or iproute2 with vlan support is missing. Can't continue."
+msgstr ""
+
+#: .././rc.d/init.d/network:230
+msgid "Removing tunnel %s"
+msgstr ""
+
+#: .././rc.d/init.d/network:346
+msgid "Configured tunnels:"
+msgstr ""
+
+#: .././lib/functions:362
+msgid "%s service is already running."
+msgstr ""
+
+#: .././rc.d/init.d/network:209
+msgid "Bringing up tunnel interface %s"
+msgstr ""
+
+#: .././lib/ifup:35
+msgid "Users cannot control this device."
+msgstr ""
+
+#: .././lib/functions:354
+msgid "ERROR: Networking is down. %s can't be run."
+msgstr ""
+
+#: .././rc.d/init.d/netfs:124
+msgid "Unmounting CIFS filesystems"
+msgstr ""
+
+#: .././lib/ifup-sl:55
+msgid "%s does not exist"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:325
+msgid "Mounting USB filesystem"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:85
+#: .././rc.d/rc.sysinit:122
+#: .././rc.d/rc.sysinit:705
+#: .././rc.d/rc.sysinit:748
+#: .././rc.d/rc.sysinit:811
+msgid "*** when you leave the shell."
+msgstr ""
+
+#: .././rc.d/rc.sysinit:332
+msgid "Initializing USB HID interface"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:708
+msgid "(RAID Repair)# "
+msgstr ""
+
+#: .././rc.d/rc.sysinit:233
+msgid "\t\t  Press %sI%s to enter interactive startup"
+msgstr ""
+
+#: .././lib/functions:906
+msgid " in cpuset %s..."
+msgstr ""
+
+#: .././rc.d/rc.sysinit:231
+msgid "\t\t\t%sPowered by %sPLD Linux Distribution%s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:154
+msgid "Active NFS mountpoints: "
+msgstr ""
+
+#: .././lib/functions.network:279
+msgid "Warning: Default gateway already set proably via other interface. Do you need to setup GATEWAYDEV?"
+msgstr ""
+
+#: .././rc.d/rc:149
+#: .././lib/functions:1156
+msgid "DONE"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:786
+msgid "Checking encrypted filesystems"
+msgstr ""
+
+#: .././lib/functions:487
+msgid "username"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:507
+#: .././rc.d/rc.sysinit:509
+msgid "Finding module dependencies"
+msgstr ""
+
+#: .././rc.d/rc:89
+msgid "Entering interactive startup"
+msgstr ""
+
+#: .././rc.d/rc:250
+msgid "Setting up /etc/ld.so.cache"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:142
+msgid "Turning off RAID for %s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:84
+#: .././rc.d/rc.sysinit:121
+#: .././rc.d/rc.sysinit:704
+#: .././rc.d/rc.sysinit:747
+#: .././rc.d/rc.sysinit:810
+msgid "*** Dropping you to a shell; the system will reboot"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:135
+#: .././rc.d/rc.sysinit:148
+#: .././rc.d/rc.sysinit:718
+#: .././rc.d/rc.sysinit:761
+#: .././rc.d/rc.sysinit:824
+msgid "Automatic reboot in progress"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:772
+msgid "Mounting local filesystems"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:194
+msgid "Will now restart with kexec"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:171
+#: .././rc.d/rc.shutdown:190
+msgid "On the next boot fsck will be skipped."
+msgstr ""
+
+#: .././rc.d/rc.sysinit:850
+msgid "Checking filesystem quotas"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:315
+msgid "Initializing USB controller"
+msgstr ""
+
+#: .././lib/functions:1080
+msgid "$3"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:665
+msgid "Starting up RAID device %s"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:63
+msgid "%s: no value for cipher option, skipping"
+msgstr ""
+
+#: .././lib/ifup-ppp:258
+msgid "pppd started for %s on device %s at speed %s"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:168
+#: .././rc.d/rc.shutdown:164
+msgid "Stopping disk encryption"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:120
+msgid "Unmounting NFS filesystems"
+msgstr ""
+
+#: .././lib/ifup-sl:46
+#: .././lib/ifup-sl:86
+#: .././lib/ifup-ppp:37
+msgid "%s does not exist or is not executable for %s"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:77
+msgid "%s: no value for hash option, skipping"
+msgstr ""
+
+#: .././lib/functions:366
+msgid "Stopping %s service"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:388
+msgid "Setting up ISA PNP devices (userspace pnp)"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:590
+msgid "Discovering EVMS volumes"
+msgstr ""
+
+#: .././rc.d/rc.shutdown:150
+msgid "Remounting remaining filesystems ro mode"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:83
+#: .././rc.d/rc.sysinit:120
+#: .././rc.d/rc.sysinit:746
+#: .././rc.d/rc.sysinit:809
+msgid "*** An error occurred during the file system check."
+msgstr ""
+
+#: .././lib/functions:1082
+msgid "$4"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:829
+msgid "Remounting encrypted filesystems back in rw mode"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:176
+msgid "dm-crypt module is not loaded"
+msgstr ""
+
+#: .././lib/functions:1117
+msgid "Detaching loopback device $dev: "
+msgstr ""
+
+#: .././lib/ifup-sl:92
+msgid "slattach started for %s on %s at %s"
+msgstr ""
+
+#: .././rc.d/init.d/network:229
+msgid "Shutting down tunnel interface %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:305
+msgid "Activating swap partitions"
+msgstr ""
+
+#: .././lib/ifup:99
+msgid "Enslaving %s to %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:855
+msgid "Turning on quotas for local filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:37
+msgid "ERROR: CGROUP/CPUSET mounted in a way I can't recognize"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:535
+msgid "Initializing firewire controller"
+msgstr ""
+
+#: .././lib/functions:418
+msgid "$1"
+msgstr ""
+
+#: .././lib/ifup-ppp:117
+msgid "Setting up a new %s config file"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:736
+msgid "Checking filesystems"
+msgstr ""
+
+#: .././lib/functions:378
+msgid "Usage: %s"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:98
+msgid "Mounting other filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:164
+#: .././rc.d/rc.sysinit:298
+#: .././rc.d/rc.sysinit:629
+msgid "Starting disk encryption"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:40
+msgid "Key file for %s not found, skipping"
+msgstr ""
+
+#: .././lib/ifup:86
+msgid "Delaying %s initialization"
+msgstr ""
+
+#: .././rc.d/init.d/random:33
+msgid "Initializing random number generator"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:174
+msgid "dm-crypt module is loaded"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:30
+msgid "Allowing users to login"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:110
+msgid "Checking root filesystem"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:439
+msgid "System bootup in progress - please wait"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:644
+#: .././rc.d/rc.sysinit:700
+#: .././rc.d/rc.sysinit:728
+msgid "Starting up RAID devices"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:168
+msgid "Configured cpusets:"
+msgstr ""
+
+#: .././rc.d/init.d/cpusets:105
+#: .././rc.d/init.d/cpusets:118
+msgid "$("
+msgstr ""
+
+#: .././lib/functions:386
+msgid "$@"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:960
+msgid "Enabling swap space"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:393
+msgid "Setting up ISA PNP devices (kernelspace pnp)"
+msgstr ""
+
+#: .././lib/functions:1159
+msgid "DIED"
+msgstr ""
+
+#: .././lib/functions:1011
+msgid "Could not load %s kernel module(s)"
+msgstr ""
+
+#: .././rc.d/init.d/single:25
+#: .././rc.d/rc.shutdown:43
+msgid "Sending all processes the TERM signal"
+msgstr ""
+
+#: .././rc.d/init.d/single:53
+msgid "Telling INIT to go to single user mode"
+msgstr ""
+
+#: .././lib/functions:1387
+msgid "$command not implemented for $name"
+msgstr ""
+
+#: .././lib/functions:374
+msgid "Reloading %s service"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:125
+msgid "Unmounting NCP filesystems"
+msgstr ""
+
+#: .././rc.d/init.d/local:29
+msgid "rc.local has not been started"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:37
+msgid "System shutdown in progress\n"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:437
+msgid "Enabling Delay Login"
+msgstr ""
+
+#: .././lib/functions:1155
+msgid "BUSY"
+msgstr ""
+
+#: .././lib/ifdown-irda:69
+msgid "ifdown-%s unable to kill %s for %s"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:98
+msgid "$src: No such device"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:105
+msgid "%s: LUKS requires non-random key, skipping"
+msgstr ""
+
+#: .././lib/ifup-sl:58
+#: .././lib/ifup-ppp:113
+msgid "%s does not exist for %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:283
+#: .././rc.d/rc.sysinit:872
+msgid "Today`s date:"
+msgstr ""
+
+#: .././rc.d/init.d/network:208
+msgid "Setting tunnel %s"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:45
+msgid "Delay login is enabled"
+msgstr ""
+
+#: .././rc.d/init.d/network:349
+msgid "Currently inactive devices and tunnels:"
+msgstr ""
+
+#: .././lib/ifup-sl:43
+#: .././lib/ifup-ppp:34
+#: .././lib/ifup-ppp:66
+msgid "%s does not exist or is not executable"
+msgstr ""
+
+#: .././rc.d/rc:147
+#: .././rc.d/rc:148
+msgid "%sResource Manager: %sEntering runlevel number"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:110
+msgid "%s: options are invalid for LUKS partitions, ignoring them"
+msgstr ""
+
+#: .././lib/functions:570
+msgid "warning: --check option is ignored!"
+msgstr ""
+
+#: .././lib/functions:908
+msgid " outside of configured cpuset %s..."
+msgstr ""
+
+#: .././rc.d/init.d/netfs:166
+msgid "Active network block devices: "
+msgstr ""
+
+#: .././lib/functions:1158
+msgid "FAIL"
+msgstr ""
+
+#: .././lib/functions.network:137
+#: .././lib/functions.network:139
+msgid "Setting static ARP entries"
+msgstr ""
+
+#: .././rc.d/init.d/allowlogin:50
+msgid "Users are not allowed to login right now"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:246
+msgid "NIS Domain:"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:32
+msgid "INSECURE MODE FOR %s"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:724
+msgid "Activating LVM volume groups (on RAID)"
+msgstr ""
+
+#: .././lib/ifup:180
+msgid "%s: Check cable/radio on-off switch?"
+msgstr ""
+
+#: .././rc.d/init.d/netfs:138
+msgid "Configured NFS mountpoints: "
+msgstr ""
+
+#: .././lib/ifup-sl:56
+#: .././lib/ifup-sl:84
+msgid "ifup-sl - %s exiting"
+msgstr ""
+
+#: .././rc.d/init.d/network:51
+msgid "Setting interfaces names (nameif)"
+msgstr ""
+
+#: .././rc.d/rc.sysinit:407
+msgid "Checking root filesystem quotas"
+msgstr ""
+
+#: .././lib/ifup:179
+#: .././lib/ifup:184
+msgid "Determining IP information for %s (%s)"
+msgstr ""
+
+#: .././rc.d/init.d/cryptsetup:70
+msgid "%s: no value for size option, skipping"
+msgstr ""
diff --git a/trunk/ppp/Makefile.am b/trunk/ppp/Makefile.am
new file mode 100644 (file)
index 0000000..983058b
--- /dev/null
@@ -0,0 +1,21 @@
+@SET_MAKE@
+
+pppdir = @pppdir@
+
+ppp_SCRIPTS = \
+       auth-up \
+       auth-down \
+       ip-up \
+       ip-down \
+       ipx-up \
+       ipx-down
+
+EXTRA_DIST = $(ppp_SCRIPTS)    
+
+install-data-hook: all
+       ln -sf ip-up    $(DESTDIR)$(pppdir)/ipv6-up
+       ln -sf ip-down  $(DESTDIR)$(pppdir)/ipv6-down
+
+uninstall-hook:
+       rm -f           $(DESTDIR)$(pppdir)/ipv6-up
+       rm -f           $(DESTDIR)$(pppdir)/ipv6-down
diff --git a/trunk/ppp/auth-down b/trunk/ppp/auth-down
new file mode 100755 (executable)
index 0000000..619dcbf
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# $Id$
+#
+# This script is run by the pppd _after_ the link is brought down.
+#
+# This script is called with the following arguments:
+#      Arg     Name                    Example
+#      $1      Interface name          ppp0
+#      $2      Peer name
+#      $3      User name
+#      $4      The tty                 ttyS1
+#      $5      The link speed          38400
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_PEER="$2"
+PPP_USER="$3"
+PPP_TTY="$4"
+PPP_SPEED="$5"
+export PPP_IFACE PPP_PEER PPP_USER PPP_TTY PPP_SPEED
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="$PPP_IPPARAM"
+source_config
+
+# as an additional convienince, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main Script starts here
+[ -x /etc/ppp/auth-down.local ] && /etc/ppp/auth-down.local
+
+exit 0
diff --git a/trunk/ppp/auth-up b/trunk/ppp/auth-up
new file mode 100755 (executable)
index 0000000..c168a6c
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# $Id$
+#
+# This script is run by the pppd after the link is established.
+#
+# This script is called with the following arguments:
+#      Arg     Name            Example
+#      $1      Interface name  ppp0
+#      $2      Peer name
+#      $3      User name
+#      $4      The tty         ttyS1
+#      $5      The link speed  38400
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_PEER="$2"
+PPP_USER="$3"
+PPP_TTY="$4"
+PPP_SPEED="$5"
+export PPP_IFACE PPP_PEER PPP_USER PPP_TTY PPP_SPEED
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="$PPP_IPPARAM"
+source_config
+
+# as an additional convenience, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main script starts here.
+[ -x /etc/ppp/auth-up.local ] && /etc/ppp/auth-up.local
+
+exit 0
diff --git a/trunk/ppp/ip-down b/trunk/ppp/ip-down
new file mode 100755 (executable)
index 0000000..b52e49c
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# $Id$
+# This file should not be modified
+#
+# This script is run by the pppd _after_ the link is brought down.
+#
+# This script is called with the following arguments:
+#      Arg     Name                            Example
+#      $1      Interface name                  ppp0
+#      $2      The tty                         ttyS1
+#      $3      The link speed                  38400
+#      $4      Local IP number                 12.34.56.78
+#      $5      Peer IP number                  12.34.56.99
+#      $6      Optional ``ipparam'' value      foo
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_TTY="$2"
+PPP_SPEED="$3"
+PPP_LOCAL="$4"
+PPP_REMOTE="$5"
+PPP_IPPARAM="$6"
+export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="/etc/sysconfig/interfaces/ifcfg-$PPP_IPPARAM"
+source_config
+
+# as an additional convienince, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main Script starts here
+[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local
+
+run-parts /etc/sysconfig/interfaces/down.d/ppp
+
+/lib/rc-scripts/ifdown-post "${CONFIG}"
+
+exit 0
diff --git a/trunk/ppp/ip-down.d/Makefile.am b/trunk/ppp/ip-down.d/Makefile.am
new file mode 100644 (file)
index 0000000..a74542c
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipdowndir= @pppdir@/ip-down.d
+
+ipdown_SCRIPTS = logger
+
+EXTRA_DIST = $(ipdown_SCRIPTS)
diff --git a/trunk/ppp/ip-down.d/logger b/trunk/ppp/ip-down.d/logger
new file mode 100644 (file)
index 0000000..6504679
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id$
+# You can put here anything :)
+#
+echo " Disconnect time: $(date) from $PPP_REMOTE                    " >> /var/log/ppp.log
+echo "+---------------------------------------------------------------+" >> /var/log/ppp.log
diff --git a/trunk/ppp/ip-up b/trunk/ppp/ip-up
new file mode 100755 (executable)
index 0000000..786bb7b
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# $Id$
+# This file should not be modified
+#
+# This script is run by the pppd after the link is established.
+#
+# This script is called with the following arguments:
+#      Arg     Name                            Example
+#      $1      Interface name                  ppp0
+#      $2      The tty                         ttyS1
+#      $3      The link speed                  38400
+#      $4      Local IP number                 12.34.56.78
+#      $5      Peer IP number                  12.34.56.99
+#      $6      Optional ``ipparam'' value      foo
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_TTY="$2"
+PPP_SPEED="$3"
+PPP_LOCAL="$4"
+PPP_REMOTE="$5"
+PPP_IPPARAM="$6"
+export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="/etc/sysconfig/interfaces/ifcfg-$PPP_IPPARAM"
+source_config
+
+# as an additional convenience, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main Script starts here
+[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local
+
+run-parts /etc/sysconfig/interfaces/up.d/ppp
+
+/lib/rc-scripts/ifup-post "$CONFIG"
+
+exit 0
diff --git a/trunk/ppp/ip-up.d/Makefile.am b/trunk/ppp/ip-up.d/Makefile.am
new file mode 100644 (file)
index 0000000..4622300
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipupdir= @pppdir@/ip-up.d
+
+ipup_SCRIPTS = logger
+
+EXTRA_DIST = $(ipup_SCRIPTS)
diff --git a/trunk/ppp/ip-up.d/logger b/trunk/ppp/ip-up.d/logger
new file mode 100644 (file)
index 0000000..21a3e43
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id$
+# You can put here anything :)
+#
+echo "+---------------------------------------------------------------+" >> /var/log/ppp.log
+echo " Connect time: $(date) with $PPP_REMOTE                    " >> /var/log/ppp.log
diff --git a/trunk/ppp/ipx-down b/trunk/ppp/ipx-down
new file mode 100755 (executable)
index 0000000..35c4f4e
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# $Id$
+# This file should not be modified
+#
+# This script is run by the pppd after the link is established.
+#
+# This script is called with the following arguments:
+#      Arg     Name                            Example
+#      $1      Interface name                  ppp0
+#      $2      The tty                         ttyS1
+#      $3      The link speed                  38400
+#      $4      The network number              ???
+#      $5      Local IPX node address          ???
+#      $6      Remote IPX node address         ???
+#      $7      Local IPX routing protocol      ???
+#      $8      Remote IPX routing protocol     ???
+#      $9      Local IPX router name           ???
+#      $10     Remote IPX router name          ???
+#      $11     Optional ``ipparam'' value      foo
+#      $12     PPPD pid                        1276
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_TTY="$2"
+PPP_SPEED="$3"
+PPP_NETWORK="$4"
+PPP_LOCAL="$5"
+PPP_REMOTE="$6"
+PPP_LOCAL_RPROTO="$7"
+PPP_REMOTE_RPROTO="$8"
+PPP_LOCAL_RNAME="$9"
+PPP_REMOTE_RNAME="$10"
+PPP_IPPARAM="$11"
+PPP_PID="$12"
+
+export PPP_IFACE PPP_TTY PPP_SPEED PPP_NETWORK PPP_LOCAL PPP_REMOTE
+export PPP_LOCAL_RPROTO PPP_REMOTE_RPROTO PPP_LOCAL_RNAME PPP_REMOTE_RNAME
+export PPP_IPPARAM PPP_PID
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="$PPP_IPPARAM"
+source_config
+
+# as an additional convenience, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main Script starts here
+[ -x /etc/ppp/ipx-down.local ] && /etc/ppp/ipx-down.local
+
+run-parts /etc/sysconfig/interfaces/down.d/ipx
+
+exit 0
diff --git a/trunk/ppp/ipx-up b/trunk/ppp/ipx-up
new file mode 100755 (executable)
index 0000000..759929d
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# $Id$
+# This file should not be modified
+#
+# This script is run by the pppd after the link is established.
+# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
+# set IP address, run the mailq etc. you should create script(s) there.
+#
+# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
+# after that package), so choose local script names with that in mind.
+#
+# This script is called with the following arguments:
+#      Arg     Name                            Example
+#      $1      Interface name                  ppp0
+#      $2      The tty                         ttyS1
+#      $3      The link speed                  38400
+#      $4      The network number              ???
+#      $5      Local IPX node address          ???
+#      $6      Remote IPX node address         ???
+#      $7      Local IPX routing protocol      ???
+#      $8      Remote IPX routing protocol     ???
+#      $9      Local IPX router name           ???
+#      $10     Remote IPX router name          ???
+#      $11     Optional ``ipparam'' value      foo
+#      $12     PPPD pid                        1276
+
+set +e
+
+# The environment is cleared before executing this script
+# so the path must be reset
+PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
+export PATH
+# These variables are for the use of the scripts run by run-parts
+PPP_IFACE="$1"
+PPP_TTY="$2"
+PPP_SPEED="$3"
+PPP_NETWORK="$4"
+PPP_LOCAL="$5"
+PPP_REMOTE="$6"
+PPP_LOCAL_RPROTO="$7"
+PPP_REMOTE_RPROTO="$8"
+PPP_LOCAL_RNAME="$9"
+PPP_REMOTE_RNAME="$10"
+PPP_IPPARAM="$11"
+PPP_PID="$12"
+
+export PPP_IFACE PPP_TTY PPP_SPEED PPP_NETWORK PPP_LOCAL PPP_REMOTE
+export PPP_LOCAL_RPROTO PPP_REMOTE_RPROTO PPP_LOCAL_RNAME PPP_REMOTE_RNAME
+export PPP_IPPARAM PPP_PID
+
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+CONFIG="$PPP_IPPARAM"
+source_config
+
+# as an additional convenience, $PPP_TTYNAME is set to the tty name,
+# stripped of /dev/ (if present) for easier matching.
+PPP_TTYNAME=$(basename "$PPP_TTY")
+export PPP_TTYNAME
+
+# Main Script starts here
+[ -x /etc/ppp/ipx-up.local ] && /etc/ppp/ipx-up.local
+
+run-parts /etc/sysconfig/interfaces/up.d/ipx
+
+exit 0
diff --git a/trunk/rc.d/Makefile.am b/trunk/rc.d/Makefile.am
new file mode 100644 (file)
index 0000000..37abfc0
--- /dev/null
@@ -0,0 +1,14 @@
+@SET_MAKE@
+
+SUBDIRS = init.d
+
+rcdir = @rcdir@
+
+rc_SCRIPTS = \
+       rc \
+       rc.local \
+       rc.sysinit \
+       rc.init \
+       rc.shutdown
+
+EXTRA_DIST = $(rc_SCRIPTS)
diff --git a/trunk/rc.d/init.d/Makefile.am b/trunk/rc.d/init.d/Makefile.am
new file mode 100644 (file)
index 0000000..df44ba9
--- /dev/null
@@ -0,0 +1,25 @@
+@SET_MAKE@
+
+initdir = @rcdir@/init.d
+
+init_SCRIPTS = \
+       allowlogin \
+       cpusets \
+       killall \
+       netfs \
+       network \
+       random \
+       single \
+       sys-chroots \
+       cryptsetup \
+       local
+
+EXTRA_DIST = $(init_SCRIPTS) $(init_DATA)
+
+install-data-hook: all
+       $(LN_S) $(initdir) $(DESTDIR)$(sysconfdir)/init.d
+       $(LN_S) /lib/rc-scripts/functions $(DESTDIR)$(initdir)/functions
+
+uninstall-hook:
+       rm -f $(DESTDIR)$(sysconfdir)/init.d
+       rm -f $(DESTDIR)$(sysconfdir)/init.d/functions
diff --git a/trunk/rc.d/init.d/allowlogin b/trunk/rc.d/init.d/allowlogin
new file mode 100755 (executable)
index 0000000..caf02d2
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# allowlogin   Allow users to login
+#
+# description: Allow users to login.
+#
+# $Id$
+
+[ -f /etc/sysconfig/system ] && . /etc/sysconfig/system
+
+# exit early without loading big init.d functions
+case "$1" in
+start|restart|try-restart|reload|force-reload)
+       # Check value
+       case "$DELAY_LOGIN" in
+               yes|Yes|YES|true|True|TRUE|on|On|ON|Y|y|1)
+               ;;
+       *)
+               exit 0
+               ;;
+       esac
+esac
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+upstart_controlled
+
+start() {
+       if is_yes "$DELAY_LOGIN" && [ -f /etc/nologin.boot ]; then
+               run_cmd "Allowing users to login" rm -f /etc/nologin /etc/nologin.boot
+       fi
+}
+
+stop() {
+       # /etc/nologin when shutting down system
+       if is_yes "$DELAY_LOGIN" && [ ! -f /etc/nologin ]; then
+               nls "System shutdown in progress\n" > /etc/nologin
+               chmod 644 /etc/nologin
+               cp -fp /etc/nologin /etc/nologin.boot
+       fi
+}
+
+status() {
+       if is_yes "$DELAY_LOGIN"; then
+               nls "Delay login is enabled"
+       else
+               nls "Delay login is not enabled"
+       fi
+       if [ -f /etc/nologin ]; then
+               nls "Users are not allowed to login right now"
+       else
+               nls "Users are allowed to login right now"
+       fi
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+       status
+       ;;
+  *)
+       msg_usage "$0 {start|stop|status}"
+       exit 3
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/cpusets b/trunk/rc.d/init.d/cpusets
new file mode 100755 (executable)
index 0000000..5922562
--- /dev/null
@@ -0,0 +1,197 @@
+#!/bin/sh
+#
+# cpusets      Create/remove cpusets
+#
+# chkconfig:   12345 01 99
+# description: Creates/Removes all cpu sets configured to \
+#              start at boot time.
+#
+# probe:       true
+
+# $Id$
+
+. /etc/sysconfig/system
+
+if [ "${CPUSETS:-no}" = "no" ]; then
+       case "$1" in
+       start|stop|restart)
+               exit 0
+               ;;
+       esac
+fi
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+CGDIR=
+CSUBSYS=
+if grep -q "/dev/cgroup" /proc/mounts ; then
+       CGDIR="/dev/cgroup"
+elif grep -q "/dev/cpuset" /proc/mounts ; then
+       CGDIR="/dev/cpuset"
+fi
+
+if [ -n "${CGDIR}" ]; then
+       if [ -e ${CGDIR}/cpuset.cpus ]; then
+               CSUBSYS="cpuset."
+       elif [ ! -e ${CGDIR}/cpus ]; then
+               nls "ERROR: CGROUP/CPUSET mounted in a way I can't recognize" >&2
+               exit 1
+       fi
+fi
+
+cpuset_mount() {
+       [ -n "${CGDIR}" ] && return
+
+       if grep -q cgroup /proc/filesystems 2>/dev/null ; then
+               mkdir -p /dev/cpuset 2>/dev/null
+               mount -t cgroup none /dev/cpuset -ocpuset
+               CSUBSYS="cpuset."
+       elif grep -q cpuset /proc/filesystems 2>/dev/null ; then
+               mkdir -p /dev/cpuset 2>/dev/null
+               mount -t cpuset none /dev/cpuset
+               CSUBSYS=""
+       else
+               nls "ERROR: CGROUP/CPUSET support not enabled in kernel" >&2
+               exit 1
+       fi
+       CGDIR="/dev/cpuset"
+}
+
+cpuset_create() {
+       local CPUS MEMS CPU_EXCLUSIVE MEM_EXCLUSIVE NOTIFY_ON_RELEASE TASKS
+
+       . /etc/sysconfig/cpusets/cpuset-$i
+
+       if mkdir "${CGDIR}/${NAME}" >/dev/null 2>&1 ; then
+               [ -n "$CPUS" ] && echo "$CPUS" >"${CGDIR}/${NAME}/${CSUBSYS}cpus"
+               [ -n "$MEMS" ] && echo "$MEMS" >"${CGDIR}/${NAME}/${CSUBSYS}mems"
+               [ -n "$CPU_EXCLUSIVE" ] && echo "$CPU_EXCLUSIVE" >"${CGDIR}/${NAME}/${CSUBSYS}cpu_exclusive"
+               [ -n "$MEM_EXCLUSIVE" ] && echo "$MEM_EXCLUSIVE" >"${CGDIR}/${NAME}/${CSUBSYS}mem_exclusive"
+               [ -n "$VIRTUALIZE" ] && echo "$VIRTUALIZE" >"${CGDIR}/${NAME}/${CSUBSYS}virtualize"
+               [ -n "$NOTIFY_ON_RELEASE" ] && echo "$NOTIFY_ON_RELEASE" >"${CGDIR}/${NAME}/${CSUBSYS}notify_on_release"
+               [ -n "$TASKS" ] && echo "$TASKS" >"${CGDIR}/${NAME}/tasks"
+               return 0
+       fi
+       return 1
+}
+
+cpuset_remove() {
+       local CPUS MEMS CPU_EXCLUSIVE MEM_EXCLUSIVE NOTIFY_ON_RELEASE TASKS
+
+       . /etc/sysconfig/cpusets/cpuset-$i
+
+       # This MUST be rmdir (not rm -rf)
+       if rmdir "${CGDIR}/${NAME}" >/dev/null 2>&1 ; then
+               return 0
+       else
+               return 1
+       fi
+}
+
+cpuset_empty() {
+       if [ $(cat "${CGDIR}/$1/tasks" 2>/dev/null | wc -c) -eq 0 ] ; then
+               # true returns zero
+               return 0
+       else
+               # false returns one
+               return 1
+       fi
+}
+
+start() {
+       rc_splash "bootcpusets start"
+
+       for i in $cpusets_boot; do
+               show "$(nls -n "Creating cpuset %s" "$i")"
+               if cpuset_create $i ; then
+                       ok
+               else
+                       fail
+               fi
+       done
+
+       touch /var/lock/subsys/cpusets
+}
+
+stop() {
+       for i in $cpusets_boot; do
+               show "$(nls -n "Removing cpuset %s" "$i")"
+               busy
+               if cpuset_empty $i; then
+                       if cpuset_remove $i; then
+                               ok
+                       else
+                               fail
+                       fi
+               else
+                       fail
+               fi
+       done
+
+       rm -f /var/lock/subsys/cpusets >/dev/null 2>&1
+}
+
+# Get list of config files
+# ignores editor backup files and rpm blackups
+cpuset_configs() {
+       local match="$1"
+       for a in /etc/sysconfig/cpusets/$match; do
+               case "$a" in
+               *rpmorig|*rpmnew|*rpmsave|*~|*.orig)
+                       continue
+                       ;;
+               *)
+                       echo $a
+               ;;
+               esac
+       done
+}
+
+cpuset_files="$(cpuset_configs 'cpuset-*')"
+cpusets_boot=$(
+       for i in $cpuset_files; do
+               ONBOOT=""; . "$i" 2>/dev/null
+               is_yes "$ONBOOT" && echo "${i##*/cpuset-}"
+       done
+)
+
+# See how we were called.
+case "$1" in
+  start)
+       cpuset_mount
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+       nls "Configured cpusets:"
+       echo "$cpusets_boot"
+       echo
+       nls "Currently empty cpusets:"
+       for i in $(ls /dev/cpuset 2>/dev/null); do
+               if [ -d ${CGDIR}/$i ]; then
+                       cpuset_empty $i && echo $i
+               fi
+       done
+       echo
+       nls "Currently active cpusets:"
+       for i in $(ls /dev/cpuset 2>/dev/null); do
+               if [ -d ${CGDIR}/$i ]; then
+                       cpuset_empty $i || echo $i
+               fi
+       done
+       echo
+       ;;
+  restart)
+       stop
+       cpuset_mount
+       start
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|status}"
+       exit 3
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/cryptsetup b/trunk/rc.d/init.d/cryptsetup
new file mode 100755 (executable)
index 0000000..0e7f272
--- /dev/null
@@ -0,0 +1,185 @@
+#!/bin/sh
+# cryptsetup functions for rc-scripts
+# if invoked standalone, processes /etc/cryptab like on boot/shutdown
+
+key_is_random() {
+       [ "$1" = "/dev/urandom" -o "$1" = "/dev/hw_random" -o "$1" = "/dev/random" ]
+}
+
+# Because of a chicken/egg problem, init_crypto must be run twice.  /var may be
+# encrypted but /var/lib/random-seed is needed to initialize swap.
+init_crypto() {
+       local have_random dst src key opt mode owner params makeswap skip arg
+       local param value rc ret mke2fs mdir
+
+       # call mknodes as the dm node could be missing if device was opened from
+       # initrd.
+       # XXX: shouldn't udev handle the nodes creation here?
+       /sbin/dmsetup mknodes
+
+       ret=0
+       have_random=$1
+       while read dst src key opt; do
+               [ -z "$dst" -o "${dst#\#}" != "$dst" ] && continue
+               [ -b "/dev/mapper/$dst" ] && continue;
+               if [ "$have_random" = 0 ] && key_is_random "$key"; then
+                       continue
+               fi
+               if [ -n "$key" -a "x$key" != "xnone" ]; then
+                       if test -e "$key" ; then
+                               mode=$(ls -l "$key" | cut -c 5-10)
+                               owner=$(ls -l $key | awk '{ print $3 }')
+                               if [ "$mode" != "------" ] && ! key_is_random "$key"; then
+                                       nls "INSECURE MODE FOR %s" "$key"
+                                       ret=1
+                               fi
+                               if [ "$owner" != root ]; then
+                                       nls "INSECURE OWNER FOR %s" "$key"
+                                       ret=1
+                               fi
+                       else
+                               nls "Key file for %s not found, skipping" "$dst"
+                               continue
+                       fi
+               else
+                       key=""
+               fi
+               params=""
+               makeswap=""
+               mke2fs=""
+               skip=""
+               # Parse the options field, convert to cryptsetup parameters
+               # and contruct the command line
+               while [ -n "$opt" ]; do
+                       arg=${opt%%,*}
+                       opt=${opt##$arg}
+                       opt=${opt##,}
+                       param=${arg%%=*}
+                       value=${arg##$param=}
+
+                       case "$param" in
+                       cipher)
+                               params="$params -c $value"
+                               if [ -z "$value" ]; then
+                                       nls "%s: no value for cipher option, skipping" "$dst"
+                                       skip="yes"
+                               fi
+                       ;;
+                       size)
+                               params="$params -s $value"
+                               if [ -z "$value" ]; then
+                                       nls "%s: no value for size option, skipping" "$dst"
+                                       skip="yes"
+                               fi
+                       ;;
+                       hash)
+                               params="$params -h $value"
+                               if [ -z "$value" ]; then
+                                       nls "%s: no value for hash option, skipping" "$dst"
+                                       skip="yes"
+                               fi
+                       ;;
+                       verify)
+                               params="$params -y"
+                       ;;
+                       swap)
+                               makeswap=yes
+                       ;;
+                       tmp)
+                               mke2fs=yes
+                       esac
+               done
+
+               if [ "$skip" = "yes" ]; then
+                       ret=1
+                       continue
+               fi
+
+               if [ ! -b "$src"  ]; then
+                       nls "$src: No such device"
+                       ret=1
+                       continue
+               fi
+
+               if /sbin/cryptsetup isLuks "$src" 2>/dev/null; then
+                       if key_is_random "$key"; then
+                               nls "%s: LUKS requires non-random key, skipping" "$dst"
+                               ret=1
+                               continue
+                       fi
+                       if [ -n "$params" ]; then
+                               nls "%s: options are invalid for LUKS partitions, ignoring them" "$dst"
+                       fi
+                       /sbin/cryptsetup ${key:+-d $key} luksOpen "$src" "$dst" <&1
+               else
+                       /sbin/cryptsetup $params ${key:+-d $key} create "$dst" "$src" <&1 2>/dev/null
+               fi
+               rc=$?
+               if [ $rc -ne 0 ]; then
+                       ret=1
+                       continue
+               fi
+               if [ -b "/dev/mapper/$dst" ]; then
+                       if [ "$makeswap" = "yes" ]; then
+                               mkswap "/dev/mapper/$dst" 2>/dev/null >/dev/null
+                       fi
+                       if [ "$mke2fs" = "yes" ]; then
+                               if mke2fs "/dev/mapper/$dst" 2>/dev/null >/dev/null \
+                                       && mdir=$(mktemp -d /tmp/mountXXXXXX); then
+                                       mount "/dev/mapper/$dst" "$mdir" && chmod 1777 "$mdir"
+                                       umount "$mdir"
+                                       rmdir "$mdir"
+                               fi
+                       fi
+               fi
+       done < /etc/crypttab
+       return $ret
+}
+
+halt_crypto() {
+    local fnval=0 dst src key
+    while read dst src key; do
+       [ -z "$dst" -o "${dst#\#}" != "$dst" ] && continue
+        if [ -b "/dev/mapper/$dst" ]; then
+            if LC_ALL=C /sbin/dmsetup info "$dst" | grep -q '^Open count: *0$'; then
+                /sbin/cryptsetup remove "$dst"
+            else
+                fnval=1
+            fi
+        fi
+    done < /etc/crypttab
+    return $fnval
+}
+
+[ -f /etc/crypttab ] || return
+
+# if not invoked directly, return to caller
+case "$0" in *cryptsetup);; *) return;; esac
+
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       show "Starting disk encryption"; started
+       init_crypto 1 && deltext; ok
+       ;;
+  stop)
+       show "Stopping disk encryption"; started
+       halt_crypto && deltext; ok
+       ;;
+  status)
+       # this is way overkill, but at least we have some status output...
+       if grep -qF dm_crypt /proc/modules; then
+               nls "dm-crypt module is loaded"
+       else
+               nls "dm-crypt module is not loaded"
+       fi
+       ;;
+  *)
+       msg_usage "$0 {start|stop|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/trunk/rc.d/init.d/killall b/trunk/rc.d/init.d/killall
new file mode 100755 (executable)
index 0000000..e882b1a
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# killall      Script for system downing
+#
+# description: kill em all
+#
+# $Id$
+
+# Bring down all services that are still running (there shouldn't be any, so
+# this is just a sanity check)
+
+# First set up a default search path.
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
+
+case "$1" in
+  start*)
+       exit 0
+       ;;
+  stop*)
+       for i in /var/lock/subsys/*; do
+               # Check if the script is there.
+               [ ! -f $i ] && continue
+
+               # Get the subsystem name.
+               subsys=${i#/var/lock/subsys/}
+
+               # Bring the subsystem down.
+               if [ -x /etc/rc.d/init.d/$subsys ]; then
+                       /etc/rc.d/init.d/$subsys stop
+               elif [ -x /etc/rc.d/init.d/$subsys.init ]; then
+                       /etc/rc.d/init.d/$subsys.init stop
+               fi
+       done
+       ;;
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/local b/trunk/rc.d/init.d/local
new file mode 100755 (executable)
index 0000000..5253976
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# local        Invoke custom scripts at startup
+# chkconfig:   2345 99 01
+#
+# description: This script will be executed *after* all the other init \
+# scripts. You can put your own initialization stuff in here if you don't \
+# want to do the full Sys V style init stuff.
+#
+# $Id$
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+upstart_controlled
+
+# See how we were called.
+case "$1" in
+  start)
+       msg_starting "rc.local"
+       . /etc/rc.d/rc.local
+       ok
+       touch /var/lock/subsys/local
+       ;;
+  stop)
+       rm -f /var/lock/subsys/local >/dev/null 2>&1
+       ;;
+  status)
+       if [ -f /var/lock/subsys/local ]; then
+               nls 'rc.local has been started'
+       else
+               nls 'rc.local has not been started'
+       fi
+       ;;
+  *)
+       msg_usage "$0 {start|stop|status}"
+       exit 3
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/netfs b/trunk/rc.d/init.d/netfs
new file mode 100755 (executable)
index 0000000..0552d33
--- /dev/null
@@ -0,0 +1,196 @@
+#!/bin/sh
+#
+# netfs         Mount network filesystems.
+#
+# Authors:     Bill Nottingham <notting@redhat.com>
+#              AJ Lewis <alewis@redhat.com>
+#              Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#
+# chkconfig: 345 25 75
+# description: Mounts and unmounts all Network File System (NFS), \
+#             CIFS (Lan Manager/Windows), and NCP (NetWare) mount points.
+
+[ -f /etc/sysconfig/network ] || exit 0
+. /etc/rc.d/init.d/functions
+. /etc/rc.d/init.d/cryptsetup
+. /etc/sysconfig/network
+
+if is_yes "$VSERVER"; then
+       exit 0
+fi
+
+# nfs uses own script for that
+if [ ! -f /etc/rc.d/init.d/nfsfs ]; then
+       NFSFSTAB=$(LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $2 }' /etc/fstab)
+       NFSMTAB=$(LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $2 }' /proc/mounts)
+fi
+
+CIFSFSTAB=$(LC_ALL=C awk '!/^#/ && $3 == "cifs" && $4 !~ /noauto/ { print $2 }' /etc/fstab)
+NCPFSTAB=$(LC_ALL=C awk '!/^#/ && $3 == "ncpfs" && $4 !~ /noauto/ { print $2 }' /etc/fstab)
+NETDEVFSTAB=$(LC_ALL=C awk '!/^#/ && $4 ~/_netdev/ && $4 !~ /noauto/ { print $1 }' /etc/fstab)
+
+NFSMTAB=$(LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $2 }' /proc/mounts)
+CIFSMTAB=$(LC_ALL=C awk '$3 == "cifs" { print $2 }' /proc/mounts)
+NCPMTAB=$(LC_ALL=C awk '$3 == "ncpfs" { print $2 }' /proc/mounts)
+NETDEVMTAB=$(LC_ALL=C awk '$4 ~ /_netdev/ && $2 != "/" { print $2 }' /etc/mtab)
+
+start() {
+       if [ ! -f /var/lock/subsys/network ]; then
+               return
+       fi
+       if [ "$(id -u)" != "0" ]; then
+               RETVAL=4
+               return
+       fi
+
+       [ -n "$NFSFSTAB" ] && {
+               [ ! -f /var/lock/subsys/rpcbind ] && service rpcbind start
+               run_cmd "Mounting NFS filesystems" mount -a -t nfs,nfs4
+       }
+
+       [ -n "$CIFSFSTAB" ] && run_cmd "Mounting CIFS filesystems" mount -a -t cifs
+       [ -n "$NCPFSTAB" ] && run_cmd "Mounting NCP filesystems" mount -a -t ncpfs
+
+       [ -n "$NETDEVFSTAB" ] && {
+               if [ -f /etc/mdadm.conf ]; then
+                       mdadm -A -s
+               fi
+
+               if [ -f /etc/multipath.conf ] && [ -x /sbin/multipath ]; then
+                       modprobe dm-multipath >/dev/null 2>&1
+                       /sbin/multipath -v 0
+                       if [ -x /sbin/kpartx ]; then
+                               /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p p"
+                       fi
+               fi
+
+               if [ -x /sbin/lvm ]; then
+                       if /sbin/lvm vgscan > /dev/null 2>&1 ; then
+                               run_cmd "Setting up Logical Volume Management" /sbin/lvm vgchange -a y
+                       fi
+               fi
+
+               if [ -f /etc/crypttab ]; then
+                       init_crypto 1
+               fi
+
+               show "Checking network-attached filesystems"; started
+               initlog -c "fsck -A -T -R -a -t opts=_netdev"
+               rc=$?
+               
+               if [ "$rc" -gt 1 ]; then
+                       echo
+                       echo
+                       nls "*** An error occurred during the file system check."
+                       nls "*** Dropping you to a shell; the system will reboot"
+                       nls "*** when you leave the shell."
+                       
+                       PS1="$(nls '(Repair filesystem)# ')"; export PS1
+                       [ "$SELINUX" = "1" ] && disable_selinux
+                       if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+                               /sbin/sulogin
+                       else
+                               /bin/sh
+                       fi
+                       shutdown -r now
+               fi
+       }
+
+       run_cmd "Mounting other filesystems" mount -a -t nonfs,nfs4,cifs,ncpfs,gfs,devpts
+
+       touch /var/lock/subsys/netfs
+}
+
+stop() {
+       # Unmount loopback stuff first
+       if [ "$(id -u)" != "0" ]; then
+               RETVAL=4
+               return
+       fi
+
+       __umount_loopback_loop
+       if [ -n "$NETDEVMTAB" ]; then
+               __umount_loop '$4 ~ /_netdev/ && $2 != "/" {print $2}' \
+                       /etc/mtab \
+                       "$(nls "Unmounting network block filesystems")" \
+                       "$(nls "Unmounting network block filesystems (retry)")"
+       fi
+       if [ -n "$NFSMTAB" ]; then
+               __umount_loop '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" {print $2}' \
+                       /proc/mounts \
+                       "$(nls "Unmounting NFS filesystems")" \
+                       "$(nls "Unmounting NFS filesystems (retry)")" \
+                       "-f -l"
+       fi
+       [ -n "$CIFSMTAB" ] && run_cmd "Unmounting CIFS filesystems" umount -a -t cifs
+       [ -n "$NCPMTAB" ] && run_cmd "Unmounting NCP filesystems" umount -a -t ncp,ncpfs
+       rm -f /var/lock/subsys/netfs
+}
+
+status() {
+       [ -r /var/lock/subsys/netfs ] || RETVAL=3
+
+       if [ ! -f /proc/mounts ]; then
+               nls "/proc filesystem unavailable"
+               return
+       fi
+
+       [ -n "$NFSFSTAB" ] && {
+               nls "Configured NFS mountpoints: "
+               for fs in $NFSFSTAB; do echo $fs; done
+       }
+       [ -n "$CIFSFSTAB" ] && {
+               nls "Configured CIFS mountpoints: "
+               for fs in $CIFSFSTAB; do echo $fs; done
+       }
+       [ -n "$NCPFSTAB" ] && {
+               nls "Configured NCP mountpoints: "
+               for fs in $NCPFSTAB; do echo $fs; done
+       }
+       [ -n "$NETDEVFSTAB" ] && {
+               nls "Configured network block devices: "
+               for fs in $NETDEVFSTAB; do echo $fs; done
+       }
+       [ -n "$NFSMTAB" ] && {
+               nls "Active NFS mountpoints: "
+               for fs in $NFSMTAB; do echo $fs; done
+       }
+       [ -n "$CIFSMTAB" ] && {
+               nls "Active CIFS mountpoints: "
+               for fs in $CIFSMTAB; do echo $fs; done
+       }
+       [ -n "$NCPMTAB" ] && {
+               nls "Active NCP mountpoints: "
+               for fs in $NCPMTAB; do echo $fs; done
+       }
+       [ -n "$NETDEVMTAB" ] && {
+               nls "Active network block devices: "
+               for fs in $NETDEVMTAB; do echo $fs; done
+       }
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+       status
+       ;;
+  restart)
+       stop
+       start
+       ;;
+  reload)
+       start
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|reload|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/trunk/rc.d/init.d/network b/trunk/rc.d/init.d/network
new file mode 100755 (executable)
index 0000000..d01c451
--- /dev/null
@@ -0,0 +1,430 @@
+#!/bin/sh
+#
+# network      Bring up/down networking
+#
+# chkconfig:   2345 10 90
+# description: Activates/Deactivates all network interfaces configured to \
+#              start at boot time.
+#
+# probe:       true
+# $Id$
+
+if [ ! -f /etc/sysconfig/network ]; then
+       . /etc/rc.d/init.d/functions
+       nls "%s is missing. Can't continue." "/etc/sysconfig/network"
+       exit 1
+fi
+
+. /etc/sysconfig/network
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+. /lib/rc-scripts/functions.network
+
+# Will be removed in the future
+if [ -n "$NETWORKING" ] && is_yes "$NETWORKING"; then
+       if [ -z "$IPV4_NETWORKING" ]; then
+               echo "NETWORKING is set to YES, but IPV4_NETWORKING is empty!"
+               echo "Please upgrade your config"
+               echo "Assuming you want IPv4 networking"
+               IPV4_NETWORKING=yes
+       fi
+fi
+
+######
+# initialize networking:
+# - check IPv4, IPv6, IPX can be handled by system
+# - setup default IPv{4,6} interfaces policy like:
+#   - spoofig protection,
+#   - icmp echo ignore broadcasts,
+# - setup lo interface
+network_init() {
+       if [ ! -x /sbin/ip ]; then
+               nls "%s is missing. Can't continue." "/sbin/ip"
+               exit 1
+       fi
+
+       # Modprobe needed devices
+       modprobe_net
+
+       # Setup interfaces names
+       if ! is_empty_file /etc/mactab && [ -x /sbin/nameif ]; then
+               run_cmd "Setting interfaces names (nameif)" /sbin/nameif
+       fi
+
+       # Kernel network parameters
+       sysctl -e -p /etc/sysctl.conf > /dev/null 2>&1
+
+       # Set UP loopback interface
+       set_up_loopback
+
+       # Setup configuration
+       setup_nat on
+       setup_routes on
+       setup_ip_rules on
+       # Setup IPX
+       if is_yes "$IPX"; then
+               if [ -n $IPXAUTOPRIMARY ] ; then
+                       if is_yes "$IPXAUTOPRIMARY"; then
+                               IPXAUTOPRIMARY="on"
+                       else
+                               IPXAUTOPRIMARY="off"
+                       fi
+                       /sbin/ipx_configure --auto_primary=$IPXAUTOPRIMARY
+               fi
+               if [ -n $IPXAUTOFRAME ] ; then
+                       if is_yes "$IPXAUTOFRAME"; then
+                               IPXAUTOFRAME="on"
+                       else
+                               IPXAUTOFRAME="off"
+                       fi
+                       /sbin/ipx_configure --auto_interface=$IPXAUTOFRAME
+               fi
+               if [ -n "$IPXINTERNALNETNUM" -a "$IPXINTERNALNETNUM" != "0" ]; then
+                       /sbin/ipx_internal_net add $IPXINTERNALNETNUM $IPXINTERNALNODENUM
+               fi
+       fi
+}
+
+network_postinit() {
+       # Set static RARP table
+       static_rarp
+
+       # Set static ARP table
+       static_arp
+}
+
+######
+# deinitialize networking
+# - down lo interface.
+network_deinit() {
+       setup_routes off
+       setup_ip_rules off
+
+       # Set down NAT rules
+       setup_nat off
+       # Set DOWN loopback interface
+       set_down_loopback
+}
+
+# Get list of interface configs
+# ignores editor backup files and rpm backups
+network_interface_configs() {
+       local match="$1"
+       for a in /etc/sysconfig/interfaces/$match; do
+               case "$a" in
+               *.rpmorig|*.rpmnew|*.rpmsave|*~|*.orig)
+                       continue
+                       ;;
+               *)
+                       echo $a
+               ;;
+               esac
+       done
+}
+
+find_boot_interfaces() {
+       ifcfg_files="$(network_interface_configs 'ifcfg-*')"
+       bootprio=$(grep '^BOOTPRIO=' $ifcfg_files)
+
+       if [ -n "$bootprio" ]; then
+               # find all the interfaces besides loopback.
+               interfaces_boot=`
+                       for a in $(echo "$bootprio" | sort -t= -s -n -k2,2); do
+                               i="${a%:BOOTPRIO*}"
+                               case $i in
+                                       *ifcfg-lo) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+       else
+               interfaces_boot=`
+                       for i in $ifcfg_files; do
+                               case ${i##*/} in
+                                       ifcfg-lo|ifcfg-sit*|ifcfg-atm*|ifcfg-lec*|ifcfg-nas*|ifcfg-br*|ifcfg-macvlan*|ifcfg-macvtap*|ifcfg-*.*) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+
+               interfaces_vlan_boot=`
+                       for i in $ifcfg_files; do
+                               case ${i##*/} in
+                                       ifcfg-*.*) ;;
+                                       *) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+
+               interfaces_br_boot=`
+                       for i in $ifcfg_files; do
+                               case ${i##*/} in
+                                       ifcfg-br*) ;;
+                                       *) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+
+               interfaces_virt_boot=`
+                       for i in $ifcfg_files; do
+                               case ${i##*/} in
+                                       ifcfg-macvtap*|ifcfg-macvlan*) ;;
+                                       *) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+
+               interfaces_sit_boot=`
+                       for i in $ifcfg_files; do
+                               case ${i##*/} in
+                                       ifcfg-sit*) ;;
+                                       *) continue ;;
+                               esac
+                               DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                               [ "${DEVICE:+set}" != "set" ] && continue
+                               [ ${USERS:-no} != no ] && continue
+                               [ ${ONBOOT:-no} = yes ] && echo "${i##*/ifcfg-}"
+                       done
+               `
+       fi
+
+       tunnels=$(
+               for i in $(network_interface_configs 'tnlcfg-*'); do
+                       DEVICE=""; ONBOOT=""; USERS=""; . "$i" 2>/dev/null
+                       [ "${DEVICE:+set}" != "set" ] && continue
+                       [ ${USERS:-no} != no ] && continue
+                       [ ${ONBOOT:-no} = yes ] && echo "${i##*/tnlcfg-}"
+               done
+       )
+}
+
+start() {
+       emit pld.network-starting
+       emit starting JOB=network
+
+       rc_splash "bootnetwork start"
+       network_init
+
+       for i in $interfaces_boot $interfaces_vlan_boot $interfaces_sit_boot; do
+               run_cmd -a "$(nls 'Bringing up interface %s' "$i")" /sbin/ifup $i boot
+       done
+
+       for i in $interfaces_br_boot ; do
+               run_cmd -a "$(nls 'Bringing up bridge interface %s' "$i")" /sbin/ifup $i boot
+       done
+
+       for i in $interfaces_virt_boot ; do
+               run_cmd -a "$(nls 'Bringing up virtual interface %s' "$i")" /sbin/ifup $i boot
+       done
+
+       for i in $tunnels; do
+               run_cmd -a "$(nls 'Setting tunnel %s' "$i")" /sbin/tnlup $i boot
+               run_cmd -a "$(nls 'Bringing up tunnel interface %s' "$i")" /sbin/ifup tnlcfg-$i boot
+       done
+
+       network_postinit
+
+       touch /var/lock/subsys/network
+       emit --no-wait pld.network-started
+       emit --no-wait started JOB=network
+}
+
+stop() {
+       emit pld.network-stopping
+       emit stopping JOB=network
+       # If we go to runlevel 0, 1 or 6 then umount all network fs
+       if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
+               if [ -x /etc/rc.d/init.d/netfs -a -f /var/lock/subsys/netfs ];
+               then
+                       /etc/rc.d/init.d/netfs stop
+               fi
+       fi
+
+       for i in $tunnels; do
+               run_cmd -a "$(nls 'Shutting down tunnel interface %s' "$i")" /sbin/ifdown tnlcfg-$i boot
+               run_cmd -a "$(nls 'Removing tunnel %s' "$i")" /sbin/tnldown $i boot
+       done
+
+       for i in $interfaces_virt_boot ; do
+               run_cmd -a "$(nls 'Shutting down virtual interface %s' "$i")" /sbin/ifup $i boot
+       done
+
+       for i in $interfaces_br_boot ; do
+               run_cmd -a "$(nls 'Shutting down bridge interface %s' "$i")" /sbin/ifdown $i boot
+       done
+
+       for i in $interfaces_sit_boot $interfaces_vlan_boot $interfaces_boot ; do
+               run_cmd -a "$(nls 'Shutting down interface %s' "$i")" /sbin/ifdown $i boot
+       done
+
+       network_deinit
+
+       rm -f /var/lock/subsys/network >/dev/null 2>&1
+       emit --no-wait pld.network-stopped
+       emit --no-wait stopped JOB=network
+}
+
+# Reload all active interfaces
+reload() {
+       if [ ! -f /var/lock/subsys/network ]; then
+               msg_not_running network
+               RETVAL=7
+               return
+       fi
+
+       set_dhcpclient
+
+       # if no DHCP client found we can't reload anything
+       if [ -z "$DHCP_CLIENT" ]; then
+               return
+       fi
+
+       local DHCP_ARGS
+       case ${DHCP_CLIENT##*/} in
+#        pump)
+#              DHCP_ARGS=""
+#              ;;
+         dhcpcd)
+               DHCP_ARGS="-n"
+               ;;
+#        dhcpxd)
+#              DHCP_ARGS=""
+#              ;;
+#        dhclient)
+#              DHCP_ARGS=""
+#              ;;
+         *)
+               echo "Reloading using $DHCP_CLIENT DHCP Client is not implmemented in rc-scripts"
+               RETVAL=1
+               return
+               ;;
+       esac
+
+       # for IPv4 DHCP interfaces send signal to refresh interface
+       local dev devs=${*:-$(/sbin/ip link show | awk -F: '/UP/{print $2}')}
+       for dev in $devs; do
+               if [ ! -f /etc/sysconfig/interfaces/ifcfg-$dev ]; then
+                       continue
+               fi
+               . /etc/sysconfig/interfaces/ifcfg-$dev
+
+               if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ] && is_yes "$IPV4_NETWORKING"; then
+                       case ${DHCP_CLIENT##*/} in
+                         pump)
+                               DHCP_ARGS="$DHCP_ARGS -i $DEVICE"
+                               ;;
+                         dhcpcd)
+                               DHCP_ARGS="$DHCP_ARGS $DEVICE"
+                               ;;
+                         dhcpxd)
+                               DHCP_ARGS="$DHCP_ARGS $DEVICE"
+                               ;;
+                         dhclient)
+                               DHCP_ARGS="$DHCP_ARGS $DEVICE"
+                               ;;
+                       esac
+                       DHCP_ARGS="$DHCP_OPTIONS $DHCP_ARGS"
+
+                       show 'Reloading interface %s' $dev
+                       if $DHCP_CLIENT $DHCP_ARGS; then
+                               ok
+                       else
+                               fail
+                       fi
+               fi
+       done
+
+}
+
+find_boot_interfaces
+
+# See how we were called.
+case "$1" in
+  start)
+       if is_yes "$VSERVER_ISOLATION_NET"; then
+               emit pld.network-starting
+               emit starting JOB=network
+               touch /var/lock/subsys/network
+               emit pld.network-started
+               emit --no-wait started JOB=network
+               exit 0
+       fi
+       start
+       ;;
+  start_init)
+       network_init
+       ;;
+  start_postinit)
+       network_postinit
+       touch /var/lock/subsys/network
+       ;;
+  stop_deinit)
+       network_deinit
+       rm -f /var/lock/subsys/network
+       ;;
+  stop)
+       if is_yes "$VSERVER_ISOLATION_NET"; then
+               emit pld.network-stopping
+               emit stopping JOB=network
+               rm -f /var/lock/subsys/network >/dev/null 2>&1
+               emit pld.network-stopped
+               emit --no-wait stopped JOB=network
+               exit 0
+       fi
+       stop
+       ;;
+
+  status)
+       nls "Configured devices:"
+       echo "lo $interfaces"
+       nls "Configured tunnels:"
+       echo "$tunnels"
+       echo
+       nls "Currently inactive devices and tunnels:"
+       /sbin/ip link show | awk -F":" '(/^[0-90-90-9]:/) && ! (/UP/) { print $2 }' | xargs
+       nls "Currently active devices and tunnels:"
+       /sbin/ip link show | awk -F":" ' (/UP/) { print $2 }' | xargs
+       ;;
+
+  reload)
+       if is_yes "$VSERVER_ISOLATION_NET"; then
+               exit 0
+       fi
+       shift
+       reload ${1:+"$@"}
+       ;;
+
+  restart)
+       if is_yes "$VSERVER_ISOLATION_NET"; then
+               exit 0
+       fi
+
+       stop
+       start
+       ;;
+
+  *)
+       msg_usage "$0 {start|stop|reload|restart|status}"
+       exit 3
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/random b/trunk/rc.d/init.d/random
new file mode 100755 (executable)
index 0000000..828bdb0
--- /dev/null
@@ -0,0 +1,95 @@
+#!/bin/sh
+#
+# random       Script to snapshot random state and reload it at boot time.
+#
+# chkconfig:   12345 20 80
+#
+# description: Saves and restores system entropy pool for higher quality \
+#              random number generation.
+#
+# $Id$
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# do nothing in vserver
+if is_yes "$VSERVER"; then
+       return
+fi
+
+upstart_controlled start stop
+
+random_seed=/var/run/random-seed
+
+poolfile=/proc/sys/kernel/random/poolsize
+[ -r $poolfile ] && bytes="$(cat $poolfile)" || bytes=512
+
+start() {
+       # Check if the service is already running?
+       if [ -f /var/lock/subsys/random ]; then
+               return
+       fi
+
+       emit starting JOB=random
+       show "Initializing random number generator"
+       busy
+       # Carry a random seed from start-up to start-up
+       if [ -f $random_seed ]; then
+               cat $random_seed >/dev/urandom
+       else
+               touch $random_seed
+       fi
+       chmod 600 $random_seed
+       dd if=/dev/urandom of=$random_seed count=1 bs=$bytes 2>/dev/null
+       touch /var/lock/subsys/random
+       deltext
+       ok
+       emit --nowait started JOB=random
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/random ]; then
+               return
+       fi
+
+       # Carry a random seed from shut-down to start-up
+       emit stopping JOB=random
+       show "Saving random seed"
+       busy
+       touch $random_seed
+       chmod 600 $random_seed
+       dd if=/dev/urandom of=$random_seed count=1 bs=$bytes 2>/dev/null
+
+       rm -f /var/lock/subsys/random >/dev/null 2>&1
+       deltext
+       ok
+       emit --no-wait stopped JOB=random
+}
+
+status() {
+       entropy_avail="$(cat /proc/sys/kernel/random/entropy_avail)"
+       if [ "$entropy_avail" -eq 0 -o ! -c /dev/random ] ; then
+               nls "The random data source is missing"
+               RETVAL=1
+       else
+               nls "%d bytes of entropy available" $entropy_avail
+       fi
+}
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  status)
+       status
+       ;;
+  *)
+       msg_usage "$0 {start|stop|status}"
+       exit 3
+esac
+
+exit 0
diff --git a/trunk/rc.d/init.d/single b/trunk/rc.d/init.d/single
new file mode 100755 (executable)
index 0000000..5940e00
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# single       Script for sedding up administrative/rescue shell.
+#
+# chkconfig:   1 00 00
+# description: This file is executed by init when it goes into runlevel \
+#              1, which is the administrative state. It kills all \
+#              deamons and then puts the system into single user mode. \
+#              Note that the file systems are kept mounted. \
+#
+# Author:      Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#
+# $Id$
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+case "$1" in
+  stop*)
+       exit 0
+       ;;
+  start*)
+       # Kill all processes.
+       [ "${BASH+bash}" = bash ] && enable kill
+
+       run_cmd "Sending all processes the TERM signal" killall5 -15
+       sleep 5
+       run_cmd "Sending all processes the KILL signal" killall5 -9
+
+       rm -f /var/lock/subsys/* >/dev/null 2>&1
+
+       # this looks nicer
+       [ -x /usr/bin/clear ] && /usr/bin/clear
+
+       # make sure modprobe is working
+       if [ -f /proc/sys/kernel/modprobe ]; then
+               sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
+       fi
+
+       # If they want to run something in single user mode, might as well run it...
+       for i in /etc/rc.d/rc1.d/S[0-9][0-9]*; do
+               # Check if the script is there.
+               [ ! -f $i ] && continue
+
+               # Don't run [KS]??foo.{rpmsave,rpmorig} scripts
+               [ "${i%.rpmsave}" != "${i}" ] && continue
+               [ "${i%.rpmorig}" != "${i}" ] && continue
+               [ "${i%.rpmnew}" != "${i}" ] && continue
+               [ "$i" = "/etc/rc.d/rc1.d/S00single" ] && continue
+               $i start
+       done
+
+       # Now go to the single user level.
+       show "Telling INIT to go to single user mode"; ok
+       exec init -t1 S
+       ;;
+esac
diff --git a/trunk/rc.d/init.d/sys-chroots b/trunk/rc.d/init.d/sys-chroots
new file mode 100755 (executable)
index 0000000..3a32767
--- /dev/null
@@ -0,0 +1,179 @@
+#!/bin/sh
+#
+# sys-chroots  Starts and stops services in chroots
+#
+# chkconfig:   2345 99 01
+# description: This shell script starts and stops services in chroots
+
+[ -r /etc/sysconfig/system ] && . /etc/sysconfig/system
+[ -n "$2" ] && SYSTEM_CHROOTS="$2"
+
+if [ -z "$SYSTEM_CHROOTS" ]; then
+       case "$1" in
+       start|stop|restart)
+               exit 0
+               ;;
+       esac
+fi
+
+CMD="$1"
+
+set $(runlevel)
+runlevel=$2
+previous=$1
+export runlevel previous
+
+[ -z "$runlevel" -o -z "$previous" -o "$runlevel" = "$previous" ] && exit 0
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+upstart_controlled
+
+start() {
+       if [ "$previous" = "N" ]; then
+               runlevel=5
+               previous=0
+               export runlevel previous
+       fi
+
+       if [ -f /var/lock/subsys/sys-chroots ]; then
+               msg_already_running "System chroots services"
+               return
+       fi
+
+       msg_starting "System chroots services"; started
+
+       for dir in $SYSTEM_CHROOTS; do
+               [ ! -x "$dir/etc/rc.d/rc" ] && continue
+               msg_starting "System chroots services for $dir"; started
+
+               # Cleaning part, keep in sync with rc.sysinit
+
+               chroot $dir sh -c '
+               . /etc/rc.d/init.d/functions
+               # Clear mtab
+               :>/etc/mtab
+               [ -f /etc/cryptomtab ] && :>/etc/cryptomtab
+
+               # Remove stale backups
+               rm -f /etc/mtab~ /etc/mtab~~ /etc/cryptomtab~ /etc/cryptomtab~~
+
+               # Clean up /var
+               # I would d use find, but /usr may not be mounted.
+               for afile in /var/lock/* /var/run/*; do
+                       bafile=$(basename $afile)
+                       if [ -d "$afile" ]; then
+                               [ "$bafile" != "news" -a "$bafile" != "sudo" -a "$bafile" != "mon" ] && rm -rf $afile/*
+                       else
+                               [ "$bafile" != "hwprofile" ] && rm -f $afile 2> /dev/null
+                       fi
+               done
+               # Delete stale files
+               rm -f /var/lib/rpm/__db* /var/spool/postoffice/.pid.* /tmp/.X*-lock \
+                       /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
+               rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
+                       /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \
+                       /tmp/scrollkeeper-* /tmp/ssh-*
+
+               # Clean up utmp/wtmp
+               if ! is_no "$NEED_XFILES" ; then
+                       :>/var/run/utmpx
+                       touch /var/log/wtmpx
+                       chown root:utmp /var/run/utmpx /var/log/wtmpx
+                       chmod 0664 /var/run/utmpx /var/log/wtmpx
+               else
+                       :>/var/run/utmp
+                       touch /var/log/wtmp
+                       chown root:utmp /var/run/utmp /var/log/wtmp
+                       chmod 0664 /var/run/utmp /var/log/wtmp
+               fi
+               # Clean /tmp
+               if is_yes "$CLEAN_TMP"; then
+                       rm -rf /tmp/* /tmp/.[a-zA-Z0-9]*
+               fi
+               '
+
+               # Do our things
+
+               # proc
+               chroot $dir mount -o gid=17 -t proc proc /proc
+               # usbfs, if available
+               if [ -f /proc/bus/usb/devices ]; then
+                       chroot $dir mount -t usbfs usbfs /proc/bus/usb
+               fi
+               # sysfs is also needed before any other things (under kernel > 2.5)
+               if grep -q sysfs /proc/filesystems ; then
+                       chroot $dir mount -o gid=17 -t sysfs sysfs /sys
+               fi
+               # selinux
+               if grep -q selinuxfs /proc/filesystems ; then
+                       chroot $dir mount -o gid=17 -t selinuxfs selinuxfs /selinux
+               fi
+               chroot $dir mount -a
+               # network
+               [ -f /var/lock/subsys/network ] && touch $dir/var/lock/subsys/network
+               # other
+               chroot $dir /sbin/chkconfig single off
+               rm -f $dir/etc/rc.d/rc*.d/K*single
+               # run it
+               chroot $dir /etc/rc.d/rc $runlevel chroot
+       done
+
+       touch /var/lock/subsys/sys-chroots
+}
+
+stop() {
+       # Stop daemons.
+       if [ "$previous" = "N" ]; then
+               runlevel=0
+               previous=5
+               export runlevel previous
+       fi
+
+       if [ ! -f /var/lock/subsys/sys-chroots ]; then
+               msg_not_running "System chroots services"
+               return
+       fi
+
+       msg_stopping "System chroots services"; started
+       for dir in $SYSTEM_CHROOTS; do
+               [ ! -x "$dir/etc/rc.d/rc" ] && continue
+               msg_stopping "System chroots services for $dir"; started
+               rm -f $dir/var/lock/subsys/network
+               chroot $dir /etc/rc.d/rc $runlevel chroot
+               chroot $dir sh -c "grep -q selinuxfs /proc/filesystems && umount /selinux"
+               chroot $dir sh -c "grep -q sysfs /proc/filesystems && umount /sys"
+               chroot $dir umount -a
+               chroot $dir umount /proc
+       done
+       rm -f /var/lock/subsys/sys-chroots >/dev/null 2>&1
+}
+
+RETVAL=0
+# See how we were called.
+case "$CMD" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       stop
+       start
+       ;;
+  status)
+       # TODO: running each service with status parameter
+       for dir in $SYSTEM_CHROOTS; do
+               echo "System chroots services for $dir"
+               chroot $dir /sbin/chkconfig --list
+       done
+       exit $?
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/trunk/rc.d/rc b/trunk/rc.d/rc
new file mode 100755 (executable)
index 0000000..7d7297f
--- /dev/null
@@ -0,0 +1,273 @@
+#!/bin/sh
+#
+# rc           This file is responsible for starting/stopping
+#              services when the runlevel changes. It is also
+#              responsible for the very first setup of basic
+#              things, such as setting the hostname.
+#
+# $Id$
+#
+# Original Author:
+#              Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#
+
+# avoid being interrupted by child or keyboard
+trap ":" INT QUIT TSTP
+
+# Save argument
+argv1="$1"
+argv2="$2"
+
+# Get terminal size of standard input of the system console
+[ -z "$CONSOLE" ] && CONSOLE=/dev/console
+if [ -c $CONSOLE ]; then
+       set -- $(stty size < $CONSOLE 2>/dev/null)
+       LINES=$1
+       COLUMNS=$2
+else
+       LINES=
+       COLUMNS=
+fi
+export LINES COLUMNS CONSOLE
+
+# NLS
+if [ -f /etc/sysconfig/i18n ]; then
+       . /etc/sysconfig/i18n
+       [ -n "$LANG" ] && export LANG || unset LANG
+       [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+       [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+       [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+       [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+       [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+       [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+       [ -n "$LC_ALL" ] && export LC_ALL || unset LC_ALL
+       [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+       [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+fi
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+if [ "$argv2" != "chroot" ]; then
+       # Now find out what the current and what the previous runlevel are.
+       set $(runlevel)
+       runlevel=$2
+       previous=$1
+       export runlevel previous
+fi
+
+# Get first argument. Set new runlevel to this argument.
+[ -n "$argv1" ] && runlevel="$argv1"
+
+# if previous runlevel = current runlevel do nothing
+[ "$runlevel" = "$previous" ] && exit 0
+
+# Tell linuxconf what runlevel we are in
+[ -d /var/run -a -w /var/run ] && echo "/etc/rc.d/rc$runlevel.d" > /var/run/runlevel.dir
+
+# if runlevel is 0 (halt) or 6 (reboot) change to first
+# virtual console, and send messages to /dev/console
+# (it can be serial console too)
+if [ "$COLUMNS" -gt 0 ]; then
+       if [ "$argv2" != "chroot" ] && ! is_yes "$VSERVER" && \
+               [ "$runlevel" = "0" -o "$runlevel" = "6" ]; then
+               CONSOLE=/dev/tty1
+               [ -x /usr/bin/chvt ] && /usr/bin/chvt 1 && echo > $CONSOLE
+               exec 0<> /dev/console 1>&0 2>&0
+       fi
+else
+       # Serial: columns and lines are not defined
+         LINES=24
+       COLUMNS=80
+fi
+
+# See if we want to be in user confirmation mode
+if [ "$previous" = "N" ]; then
+       if ! is_yes "$VSERVER" && grep -qi confirm /proc/cmdline >/dev/null 2>/dev/null \
+               || [ -f /var/run/confirm ]; then
+               rm -f /var/run/confirm
+               CONFIRM="yes"
+               nls "Entering interactive startup"
+       else
+               CONFIRM=
+               nls "Entering non-interactive startup"
+       fi
+fi
+
+# calculate bootsplash variables
+sscripts=0
+for i in /etc/rc.d/rc$runlevel.d/S*; do
+       [ ! -f $i ] && continue
+       [ "${1%.rpmsave}" != "${1}" ] && continue
+       [ "${1%.rpmorig}" != "${1}" ] && continue
+       [ "${1%.rpmnew}" != "${1}" ] && continue
+       subsys=${i#/etc/rc.d/rc$runlevel.d/S??}
+       [ -f /var/lock/subsys/$subsys ] && \
+               [ ! -f /var/lock/subsys/${subsys}.init ] && continue
+       sscripts=$(( sscripts + 1 ))
+done
+export sscripts
+
+if test "$previous" != "N" ; then
+       kscripts=0
+       for i in /etc/rc.d/rc$runlevel.d/K*; do
+               [ ! -f $i ] && continue
+               [ "${1%.rpmsave}" != "${1}" ] && continue
+               [ "${1%.rpmorig}" != "${1}" ] && continue
+               [ "${1%.rpmnew}" != "${1}" ] && continue
+               subsys=${i#/etc/rc.d/rc$runlevel.d/K??}
+               [ ! -f /var/lock/subsys/$subsys ] && \
+               [ ! -f /var/lock/subsys/${subsys}.init ] && continue
+               kscripts=$(( kscripts + 1 ))
+       done
+       export kscripts
+fi
+
+if test "$previous" = "N" -a "$runlevel" = "5" ; then
+       export progress=16
+       sscripts=$(( $sscripts + 15 ))
+else
+       export progress=0
+fi
+
+if is_yes "$VSERVER"; then
+       # if runlevel is not 0 (halt) or 6 (reboot) run rc.sysinit
+       # BUT only if rc is run standalone (not run by init, as init will run rc.sysinit)
+       if [ "$previous" != "N" -a "$runlevel" != "0" -a "$runlevel" != "6" ]; then
+               /etc/rc.d/rc.sysinit $runlevel
+       fi
+fi
+
+# set onlcr to avoid staircase effect and do not lock scrolling
+stty onlcr -ixon 0>&1 2>/dev/null
+
+# Say something ;)
+af2=$(termput setaf $CRESMAN)
+af6=$(termput setaf $CBRACKETS)
+af7=$(termput op)
+text="$(termput op)$(nls '%sResource Manager: %sEntering runlevel number' "$af2" "$af7")"
+text_size="$(nls '%sResource Manager: %sEntering runlevel number' "" "")"
+resp_size="$(nls 'DONE')"
+{
+       local _len=${#text_size}
+       local _last_col=$(($INIT_COL+${#resp_size}-${#runlevel}))
+       while [ $((_len++)) -lt $_last_col ]; do
+               text="$text."
+       done
+       echo -n "$text"
+}
+echo "${af6}[${af2} $runlevel ${af6}]${af7}"
+
+# Is there an rc directory for this new runlevel?
+if [ -d /etc/rc.d/rc$runlevel.d ]; then
+       # First, run the KILL scripts.
+       for i in /etc/rc.d/rc$runlevel.d/K*; do
+               # Check if the script is there.
+               [ ! -f $i ] && continue
+
+               # Don't run [KS]??foo.{rpmsave,rpmorig,rpmnew} scripts
+               [ "${1%.rpmsave}" != "${1}" ] && continue
+               [ "${1%.rpmorig}" != "${1}" ] && continue
+               [ "${1%.rpmnew}" != "${1}" ] && continue
+
+               # Check if the subsystem is already up.
+               subsys=${i#/etc/rc.d/rc$runlevel.d/K??}
+               [ ! -f /var/lock/subsys/$subsys ] && \
+               [ ! -f /var/lock/subsys/${subsys}.init ] && continue
+
+               rc_splash "$i stop"
+
+               # Bring the subsystem down.
+               $i stop
+       done
+
+       # Now run the START scripts.
+       for i in /etc/rc.d/rc$runlevel.d/S*; do
+               # Check if the script is there.
+               [ ! -f $i ] && continue
+
+               # Don't run [KS]??foo.{rpmsave,rpmorig} scripts
+               [ "${1%.rpmsave}" != "${1}" ] && continue
+               [ "${1%.rpmorig}" != "${1}" ] && continue
+               [ "${1%.rpmnew}" != "${1}" ] && continue
+
+               # Check if the subsystem is already up.
+               subsys=${i#/etc/rc.d/rc$runlevel.d/S??}
+               [ -f /var/lock/subsys/$subsys ] || \
+               [ -f /var/lock/subsys/${subsys}.init ] && continue
+
+               # Check if it is managed by upstart
+               use_upstart && [ -f /etc/init/${subsys}.conf ] && continue
+
+               # If we're in confirmation mode, get user confirmation
+               [ -n "$CONFIRM" ] &&
+               {
+                       confirm $subsys
+                       case $? in
+                         0)
+                               :
+                               ;;
+                         2)
+                               CONFIRM=
+                               ;;
+                         *)
+                               continue
+                               ;;
+                       esac
+               }
+
+               rc_splash "$i start"
+               # Bring the subsystem up.
+               $i start
+       done
+fi
+
+# if runlevel is 0 (halt) or 6 (reboot) run rc.shutdown
+if [ "$runlevel" = "0" ] || [ "$runlevel" = "6" ]; then
+       unset LANG
+       unset LC_CTYPE
+       unset LC_NUMERIC
+       unset LC_TIME
+       unset LC_COLLATE
+       unset LC_MONETARY
+       unset LC_MESSAGES
+       unset LC_PAPER
+       unset LC_NAME
+       unset LC_ADDRESS
+       unset LC_TELEPHONE
+       unset LC_MEASUREMENT
+       unset LC_IDENTIFICATION
+       unset LC_ALL
+       TMPDIR=/dev/null
+       export TMPDIR
+       if [ "$argv2" != "chroot" ]; then
+               exec /etc/rc.d/rc.shutdown $runlevel $previous
+       else
+               exit 0
+       fi
+else
+       if is_yes "$RUN_LDCONFIG" || [ ! -f /etc/ld.so.cache ] ; then
+               if [ -x /sbin/ldconfig ]; then
+                       run_cmd "Setting up /etc/ld.so.cache" /sbin/ldconfig -X
+               fi
+       fi
+fi
+
+rc_splash "master"
+
+# Say something ;)
+text="$(nls '%sResource Manager: %sRunlevel has been reached' "$af2" "$af7")"
+text_size="$(nls '%sResource Manager: %sRunlevel has been reached' "" "")"
+
+_len=${#text_size}
+_last_col=$(($INIT_COL+${#resp_size}-${#runlevel}))
+while [ $((_len++)) -lt $_last_col ]; do
+       text="$text."
+done
+echo -n "$text"
+unset _len _last_col
+
+echo "${af6}[${af2} $runlevel ${af6}]${af7}"
+unset af2 af6 af7
+
+exit 0
diff --git a/trunk/rc.d/rc.init b/trunk/rc.d/rc.init
new file mode 100755 (executable)
index 0000000..0af6203
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+# $Id$
+#
+# If this script is intalled as /etc/rc.d/rc.init,
+# it is executed by init(8) for every program it
+# wants to spawn like this:
+#
+# /bin/sh /etc/rc.d/rc.init <id> <level> <action> <process>
+#
+# It can be used to set the default umask and ulimit
+# of all processes. See initscript(5) for more details.
+
+[ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
+
+[ -n "$LANG" ] && export LANG || unset LANG
+[ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+[ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+[ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+[ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+[ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+[ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+[ -n "$LC_ALL" ] && export LC_ALL || unset LC_ALL
+[ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+[ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+
+# Execute the program.
+eval exec "$4"
diff --git a/trunk/rc.d/rc.local b/trunk/rc.d/rc.local
new file mode 100644 (file)
index 0000000..f2f7d59
--- /dev/null
@@ -0,0 +1,6 @@
+# $Id$
+#
+# This script will be executed *after* all the other init scripts.
+# You can put your own initialization stuff in here if you don't
+# want to do the full Sys V style init stuff.
+
diff --git a/trunk/rc.d/rc.shutdown b/trunk/rc.d/rc.shutdown
new file mode 100755 (executable)
index 0000000..8ed93fa
--- /dev/null
@@ -0,0 +1,207 @@
+#!/bin/sh
+#
+# shutdown     Common script for system halt/reboot.
+#
+# Author:      Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+#
+# $Id$
+
+# Set the path.
+PATH=/sbin:/bin:/usr/bin:/usr/sbin
+
+# move to root dir
+cd /
+
+IN_SHUTDOWN=yes
+
+. /etc/rc.d/init.d/functions
+
+# avoid keyboard interruption
+trap "echo" INT SEGV QUIT TERM
+set +e
+
+emit pld.shutdown-started
+emit starting JOB=shutdown
+emit started JOB=shutdown
+
+rc_splash "reboot"
+
+# Kill all processes.
+[ "${BASH+bash}" = bash ] && enable kill
+
+runlevel=$1
+previous=$2
+
+# Stop blogd before umounting /var
+if [ -x /sbin/blogd ]; then
+       killall -q -QUIT blogd
+fi
+
+# check for other processes.
+# there could be none if all services were terminated properly
+# pgrep -g 0 requires procps >= 3.2.6-1.1
+# XXX: pgrep is on /usr!
+pids=$(pgrep -g 0 -l -v | grep -v '^1 ')
+if [ -n "$pids" ] || [ ! -x /usr/bin/pgrep ]; then
+       run_cmd "Sending all processes the TERM signal" killall5 -15
+fi
+
+pids=$(pgrep -g 0 -l -v | grep -v '^1 ')
+if [ -n "$pids" ] || [ ! -x /usr/bin/pgrep ]; then
+       sleep 5
+       run_cmd "Sending all processes the KILL signal" killall5 -9
+fi
+
+# Write to wtmp file before unmounting /var
+halt -w
+
+if ! is_yes "$VSERVER"; then
+       # Turn off swap, then unmount file systems.
+       run_cmd "Turning off swap" swapoff -a
+
+       [ -x /etc/rc.d/rc.acct ] && /etc/rc.d/rc.acct stop
+
+       if [ -x /sbin/quotaoff ]; then
+               run_cmd "Turning off quotas for local filesystems" /sbin/quotaoff -a
+       fi
+
+       # grab kexec_loaded state before we umount /sys
+       kexec_loaded=`cat /sys/kernel/kexec_loaded 2>/dev/null`
+
+       # Unmount file systems, killing processes if we have to.
+       sig=-15
+       retry=3
+       force=
+       if [ -z "$UMOUNT_IGNORE" ]; then
+               UMOUNT_IGNORE="/"
+       else
+               UMOUNT_IGNORE="/ $UMOUNT_IGNORE"
+       fi
+       remaining=$(awk -v ig="^($UMOUNT_IGNORE)$" 'BEGIN { gsub(/[\t ]+/, "|", ig); } \
+                       $3 !~ /^(proc|loopfs|devpts|devtmpfs|shm|iso9660|ramfs|tmpfs|sysfs|securityfs|squashfs)$/ \
+                       && $1 !~ /^(none|\/dev\/root)$/ \
+                       && $2 !~ ig {print $2}' /proc/mounts)
+       while [ -n "$remaining" -a "$retry" -gt 0 ]; do
+               show "Unmounting file systems"; busy
+               ERRORS=$(umount -a $force -t noproc 2>&1); rc=$?
+
+               # we might had unmounted /usr, recheck $TPUT availability
+               # but well. we need tput only for show() and busy() (ok() and fail() messages are already cached)
+               # TODO: look ahead the messages?
+               if is_yes "$TPUT"; then
+                       TPUT=
+                       rc_gettext_init
+               fi
+
+               if [ $rc = 0 ]; then
+                       ok
+               else
+                       fail
+                       [ -n "$ERRORS" ] && echo "$ERRORS"
+               fi
+
+               sleep 2
+               remaining=$(awk -v ig="^($UMOUNT_IGNORE)$" 'BEGIN { gsub(/[\t ]+/, "|", ig); } \
+                               $3 !~ /^(proc|loopfs|devpts|devtmpfs|shm|iso9660|ramfs|tmpfs|sysfs|securityfs|squashfs)$/ \
+                               && $1 !~ /^(none|\/dev\/root)$/ \
+                               && $2 !~ ig {print $2}' /proc/mounts)
+               [ -z "$remaining" ] && break
+               fuser -k -m $sig $remaining > /dev/null
+               sleep 5
+               retry=$(($retry-1))
+               sig=-9
+               force="-f"
+       done
+
+       run_cmd "Remounting root filesystem in ro mode" mount -n -o remount,ro /
+
+       if [ -x /sbin/vgchange ]; then
+               lvmversion=$(LC_ALL=C /sbin/vgchange --version 2>/dev/null | awk '/LVM version:/{if ($3 >= 2) print "2"}')
+               if [ "$lvmversion" = "2" ]; then
+                       lvmsysinit="--sysinit"
+               else
+                       lvmsysinit=""
+               fi
+               /sbin/vgchange -a n $lvmsysinit > /dev/null 2>&1
+       fi
+
+       goraidtab=1
+       if [ -x /sbin/mdadm -a -f /etc/mdadm.conf ]; then
+               if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf 2>/dev/null; then
+                       /sbin/mdadm --stop --scan > /dev/null 2>&1
+                       rc=$?
+                       [ "$rc" -eq 0 ] && goraidtab=0
+               fi
+       fi
+
+       # turn off raid
+       if [ -x /sbin/raidstop -a -f /etc/raidtab -a "$goraidtab" -eq 1 ]; then
+               # we can not use raidstop -a here because this will only stop
+               # devices listed in the default config file which is not always
+               # the case. So we look only for the active raid devices
+               if [ -f /proc/mdstat ] ; then
+                       mddevs=$(awk '/^md.* active/ {print $1}' /proc/mdstat)
+                       for mddev in $mddevs ; do
+                               show "Turning off RAID for %s" "$mddev"
+                               daemon /sbin/raidstop /dev/$mddev
+                       done
+                       unset mddev mddevs
+               fi
+               # runcmd "Turning off RAID" /sbin/raidstop -a
+       fi
+
+       show "Remounting remaining filesystems ro mode"; busy
+       if mount | awk '/ext2|ext3|reiserfs|xfs|jfs/ { print $3 }' | while read line; do mount -n -o ro,remount $line; done; then
+               ok
+       else
+               fail
+       fi
+       _rebootwhat="system"
+else
+       _rebootwhat="vserver"
+fi
+
+if [ -f /etc/crypttab ] && ! is_empty_file /etc/crypttab; then
+       . /etc/rc.d/init.d/cryptsetup
+
+       show "Stopping disk encryption"
+       halt_crypto && ok || fail
+fi
+
+if [ "$runlevel" = "0" ] ; then
+       show "The $_rebootwhat is halted"; ok
+       if [ -f /fastboot ]; then
+               show "On the next boot fsck will be skipped."; ok
+       fi
+
+       if [ -f /etc/killpower -a -f /etc/sysconfig/ups ] ; then
+               . /etc/sysconfig/ups
+               if is_yes "$POWEROFF_UPS"; then
+                       if [ -d /etc/ups.d ]; then
+                               for i in /etc/ups.d/*.sh; do
+                                       [ ! -f $i -o ! -x $i ] && continue
+                                       $i poweroff
+                               done
+                       fi
+                      [ -x /sbin/poweroff-ups ] && /sbin/poweroff-ups
+              fi
+       fi
+       [ "$previous" != "unknown" ] && eval halt -d -p -f
+else
+       show "Please stand by while rebooting the $_rebootwhat"; ok
+       if [ -f /fastboot ]; then
+               show "On the next boot fsck will be skipped."; ok
+       fi
+
+       # not really sure where thse events should go
+       emit stopped JOB=shutdown
+       emit stopping JOB=shutdown
+
+       if [ -x /sbin/kexec ] && [ "$kexec_loaded" = "1" ]; then
+               show "Will now restart with kexec"
+               /sbin/kexec -e
+               fail
+       fi
+
+       [ "$previous" != "unknown" ] && eval reboot -d -f
+fi
diff --git a/trunk/rc.d/rc.sysinit b/trunk/rc.d/rc.sysinit
new file mode 100755 (executable)
index 0000000..92cad03
--- /dev/null
@@ -0,0 +1,1044 @@
+#!/bin/sh
+#
+# /etc/rc.d/rc.sysinit - run once at boot time
+# $Id$
+#
+# Taken in part from Miquel van Smoorenburg's bcheckrc.
+#
+
+# reasonable start values for bootsplash progress.
+export progress=0
+export sscripts=45
+export kscripts=45
+
+# NLS
+if [ -r /etc/sysconfig/i18n ]; then
+       . /etc/sysconfig/i18n
+       [ -n "$LANG" ] && export LANG || unset LANG
+       [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+       [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+       [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+       [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+       [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+       [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+       [ -n "$LC_ALL" ] && export LC_ALL || unset LC_ALL
+       [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+       [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+fi
+
+# Read network config data
+if [ -r /etc/sysconfig/network ]; then
+       . /etc/sysconfig/network
+else
+       NETWORKING=no
+       HOSTNAME=localhost
+fi
+
+CONSOLE_LOGLEVEL=1
+
+# Read functions
+. /lib/rc-scripts/functions
+
+disable_selinux() {
+       local _d selinuxfs _t _r
+
+       while read _d selinuxfs _t _r; do
+               [ "$_t" = "selinuxfs" ] && break
+       done </proc/mounts
+       echo "*** Warning -- SELinux is active"
+       echo "*** Disabling security enforcement for system recovery."
+       echo "*** Run 'setenforce 1' to reenable."
+       echo "0" > $selinuxfs/enforce
+}
+
+relabel_selinux() {
+       local _d selinuxfs _t _r
+
+       while read _d selinuxfs _t _r; do
+               [ "$_t" = "selinuxfs" ] && break
+       done </proc/mounts
+       echo "
+         *** Warning -- SELinux relabel is required. ***
+         *** Disabling security enforcement.         ***
+         *** Relabeling could take a very long time, ***
+         *** depending on file system size.          ***
+         "
+       echo "0" > $selinuxfs/enforce
+       /sbin/fixfiles -F relabel > /dev/null 2>&1
+       rm -f /.autorelabel
+       echo "*** Enabling security enforcement.         ***"
+       echo $SELINUX > $selinuxfs/enforce
+}
+
+# Remove duplicate entries from mtab (for vserver guest use only)
+clean_vserver_mtab() {
+       :>/etc/mtab.clean
+       while read device mountpoint line; do
+               grep -qs "$mountpoint" /etc/mtab.clean || \
+                       echo "$device $mountpoint $line" >> /etc/mtab.clean
+       done < /etc/mtab
+       cat /etc/mtab.clean > /etc/mtab
+       rm -f /etc/mtab.clean
+}
+
+# Loads modules from /etc/modules, /etc/modules.X.Y and /etc/modules.X.Y.Z
+load_kernel_modules() {
+       local modules_file=$1
+       local _x _y _z v v1 old_IFS kernel kerneleq
+       {
+               read _x _y v _z
+               old_IFS=$IFS
+               # strip _* or -* from versions like: "2.6.25_vanilla-1", "2.6.25-1"
+               IFS='_-'
+               set -- $v
+               v1=${1}
+               IFS='.'
+               set -- $v1
+               IFS=$old_IFS
+
+               kernel="$1.$2"
+               kerneleq="$1.$2.$3"
+       } < /proc/version
+
+       local module args
+       # Loop over every line in modules file
+       ( \
+               grep -hvE '^(#|[[:blank:]]*$)' /etc/$modules_file /etc/$modules_file.$kernel /etc/$modules_file.$kerneleq 2>/dev/null
+               echo '' # make sure there is a LF at the end
+       ) | while read module args; do
+               [ -z "$module" ] && continue
+               # strip comments
+               args=${args%%#*}
+               show "Loading %s kernel module(s)" "$module"
+               busy
+               modprobe -s $module -- $args && ok || fail
+       done
+}
+
+check_root_fs() {
+       show "Checking root filesystem"; started
+       initlog -c "fsck -C -T -a $fsckoptions /"
+       rc=$?
+
+       # A return of 4 or higher means there were serious problems.
+       if [ $rc -gt 3 ]; then
+               [ -e /proc/splash ] && echo "verbose" > /proc/splash
+               # don't use '\n' in nls macro !
+               echo
+               echo
+               nls "*** An error occurred during the file system check."
+               nls "*** Dropping you to a shell; the system will reboot"
+               nls "*** when you leave the shell."
+               echo
+
+               PS1="$(nls '(Repair filesystem)# ')"; export PS1
+               [ "$SELINUX" = "1" ] && disable_selinux
+               if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+                       /sbin/sulogin
+               else
+                       /bin/sh
+               fi
+
+               run_cmd "Unmounting file systems" umount -a
+               mount -n -o remount,ro /
+               run_cmd "Automatic reboot in progress" reboot
+       # A return of 2 or 3 means that filesystem was repaired but we need
+       # to reboot.
+       elif [ "$rc" = "2" -o "$rc" = "3" ]; then
+               [ -e /proc/splash ] && echo "verbose" > /proc/splash
+               echo
+               nls "*** Filesystem was repaired but system needs to be"
+               nls "*** rebooted before mounting it."
+               nls "*** REBOOTING ***"
+               echo
+
+               run_cmd "Unmounting file systems" umount -a
+               mount -n -o remount,ro /
+               run_cmd "Automatic reboot in progress" reboot
+       elif [ "$rc" = "1" ]; then
+               _RUN_QUOTACHECK=1
+       fi
+}
+
+# boot logging to /var/log/boot.log. install showconsole package to get it.
+if [ -x /sbin/blogd ] && ! is_no "$RC_BOOTLOG"; then
+       RC_BOOTLOG=1
+else
+       RC_BOOTLOG=
+fi
+
+if ! is_yes "$VSERVER" ; then
+       if [ -d /run ]; then
+               is_fsmounted tmpfs /run || mount -n -t tmpfs run /run
+       fi
+
+       # we need /proc mounted before everything
+       is_fsmounted proc /proc || mount -n /proc || mount -n -o gid=17,hidepid=2 -t proc /proc /proc
+
+       # Early sysctls
+       sysctl -e -p /etc/sysctl.conf > /dev/null 2>&1
+
+       # Only read this once.
+       cmdline=$(cat /proc/cmdline)
+       if strstr "$cmdline" "pld.no-upstart" ; then
+               USE_UPSTART="no"
+       fi
+
+       # sysfs is also needed before any other things (under kernel > 2.5)
+       if grep -q sysfs /proc/filesystems 2>/dev/null ; then
+               is_fsmounted sysfs /sys || mount -n -o gid=17 -t sysfs sysfs /sys
+               if grep -q securityfs /proc/filesystems 2>/dev/null ; then
+                       mount -n -o gid=17 -t securityfs securityfs /sys/kernel/security
+               fi
+       fi
+
+       # selinux
+       if grep -q selinuxfs /proc/filesystems 2>/dev/null && ! is_fsmounted selinuxfs /selinux; then
+               mount -n -o gid=17 -t selinuxfs selinuxfs /selinux
+       fi
+
+       # PLD Linux LiveCD support
+       if [ -x /etc/rc.d/rc.live ]; then
+               /etc/rc.d/rc.live
+       fi
+
+       # Choose Hardware profile
+       if [ -f /etc/sysconfig/hwprof ]; then
+               . /etc/sysconfig/hwprof
+               if is_yes "${HWPROFILES}" && [ -x /sbin/hwprofile -a -d /etc/sysconfig/hwprofiles/data ]; then
+                       mount -n / -o rw,remount
+                       /sbin/hwprofile -qf
+                       mount -n / -o ro,remount
+               fi
+       fi
+
+       # Disable splash when requested
+       is_no "$BOOT_SPLASH" && [ -e /proc/splash ] && echo "0" > /proc/splash
+
+       # Check SELinux status
+       selinuxfs=$(awk '/ selinuxfs / { print $2 }' /proc/mounts 2> /dev/null)
+       SELINUX=
+       if [ -n "$selinuxfs" ] && [ "$(cat /proc/self/attr/current)" != "kernel" ]; then
+               if [ -r $selinuxfs/enforce ] ; then
+                       SELINUX=$(cat $selinuxfs/enforce)
+               else
+                       # assume enforcing if you can't read it
+                       SELINUX=1
+               fi
+       fi
+
+       if [ -x /sbin/restorecon ] && is_fsmounted tmpfs /dev; then
+               /sbin/restorecon -R /dev 2>/dev/null
+       fi
+
+       [ -z "${CONSOLETYPE}" ] && CONSOLETYPE="$(/sbin/consoletype)"
+
+       if [ "$CONSOLETYPE" = "vt" -a -x /sbin/setsysfont ]; then
+               /sbin/setsysfont
+       fi
+fi
+
+
+# Print welcome message
+nls "\t\t\t%sPowered by %sPLD Linux Distribution%s" "$(termput setaf $CPOWEREDBY)" "$(termput setaf $CPLD)" "$(termput op)"
+if ! is_no "$RC_PROMPT"; then
+       nls -n "\t\t  Press %sI%s to enter interactive startup" "$(termput setaf $CI)" "$(termput op)"
+       echo
+fi
+
+# Set the hostname
+if [ -z "${HOSTNAME}" ]; then
+       show "$(nls 'Host:') $(hostname)" ; ok
+else
+       run_cmd "$(nls 'Host:') ${HOSTNAME}" hostname ${HOSTNAME}
+fi
+
+# Set the NIS domain name
+if [ -n "$NISDOMAIN" ]; then
+       run_cmd "$(nls 'NIS Domain:') ${NISDOMAIN}" domainname $NISDOMAIN
+else
+       domainname ""
+fi
+
+if ! is_yes "$VSERVER"; then
+       # Set console loglevel
+       if [ -n "$CONSOLE_LOGLEVEL" ]; then
+               dmesg -n $CONSOLE_LOGLEVEL
+       fi
+
+       if ! is_no "$START_UDEV" && [ -x /sbin/start_udev ] && [[ "$container" != lxc* ]]; then
+               is_fsmounted devtmpfs /dev || mount -n -t devtmpfs devtmpfs /dev
+               load_kernel_modules modules.preudev
+               /sbin/start_udev
+               [ -x /sbin/initctl ] && /sbin/initctl -q start udev
+       elif [ -x /lib/firmware/firmware-loader.sh ]; then
+               /sbin/sysctl -e -w kernel.hotplug=/lib/firmware/firmware-loader.sh > /dev/null 2>&1
+       fi
+
+       # Unmount the initrd, if necessary
+       if grep -q /initrd /proc/mounts 2>/dev/null && ! grep -q /initrd/loopfs /proc/mounts 2>/dev/null; then
+               umount /initrd/dev 2>/dev/null
+               umount /initrd
+               /sbin/blockdev --flushbufs /dev/ram0 >/dev/null 2>&1
+       fi
+
+       # Start logging console output since we have all /dev stuff setup
+       if [ "$RC_BOOTLOG" ]; then
+               /sbin/blogd
+       fi
+
+       # Configure Linux kernel (initial configuration, some required modules still
+       # may be missing).
+       sysctl -e -p /etc/sysctl.conf > /dev/null 2>&1
+
+       # Check if timezone definition is available
+       if [ -e /etc/localtime ] && [ -e /dev/rtc -o -e /dev/rtc0 ] ; then
+               if run_cmd "$(nls 'Setting clock')" hwclock --hctosys; then
+                       show "$(nls 'Today`s date:') $(LC_CTYPE=C date)"; ok
+               fi
+       else
+               TIME_SETUP_DELAYED=yes
+       fi
+
+       delay_cryptsetup=0
+       if [ -f /etc/crypttab ] && ! is_empty_file /etc/crypttab; then
+               # XXX might need modules dep
+               # Device mapper & related initialization
+               if ! grep -qF device-mapper /proc/devices; then
+                       modprobe dm-mod
+               fi
+
+               . /etc/rc.d/init.d/cryptsetup
+               show "Starting disk encryption"
+               init_crypto 0
+               delay_cryptsetup=$?
+               [ $delay_cryptsetup = 0 ] && ok || fail
+       fi
+
+       # Start up swapping
+       run_cmd "Activating swap partitions" swapon -a -e
+
+       # Initialize USB controllers
+       usb=0
+       if ! strstr "$cmdline" "nousb" && ! is_fsmounted usbfs /proc/bus/usb ; then
+               aliases=$(/sbin/modprobe -c | awk '/^alias[\t ]+usb-controller/ { print $3 }')
+               if [ -n "$aliases" -a "$aliases" != "off" ] ; then
+                       /sbin/modprobe -s usbcore
+                       for alias in $aliases ; do
+                               [ "$alias" = "off" ] && continue
+                               run_cmd "$(nls 'Initializing USB controller') ($alias)" /sbin/modprobe -s $alias
+                       done
+                       [ $? -eq 0 -a -n "$aliases" ] && usb=1
+               fi
+               if grep -iq "usb" /proc/devices 2>/dev/null ; then
+                       usb=1
+               fi
+       fi
+
+       if [ "$usb" = "1" -a -d /proc/bus/usb ] && ! is_fsmounted usbfs /proc/bus/usb ; then
+               run_cmd "Mounting USB filesystem" mount -n -t usbfs -o devgid=78,devmode=664 usbfs /proc/bus/usb
+       fi
+
+       needusbstorage=
+       if [ "$usb" = "1" ]; then
+               needusbstorage=$(cat /proc/bus/usb/devices 2>/dev/null | grep -e "^I.*Cls=08" 2>/dev/null)
+               if [ "$(kernelverser)" -lt "002006" ]; then
+                       grep -q 'hid' /proc/bus/usb/drivers 2>/dev/null || run_cmd "Initializing USB HID interface" modprobe hid 2> /dev/null
+                       mouseoutput=$(cat /proc/bus/usb/devices 2>/dev/null|grep -E "^I.*Cls=03.*Prot=02" 2>/dev/null)
+                       kbdoutput=$(cat /proc/bus/usb/devices 2>/dev/null|grep -E "^I.*Cls=03.*Prot=01" 2>/dev/null)
+                       if [ -n "$kbdoutput" ]; then
+                               run_cmd "Initializing USB keyboard" modprobe keybdev
+                       fi
+                       if [ -n "$mouseoutput" ]; then
+                               run_cmd "Initializing USB mouse" modprobe mousedev
+                       fi
+               fi
+       fi
+
+       # Setup hdparm thing (if exists and is needed)
+       if ! strstr "$cmdline" nohdparm; then
+               [ -x /etc/rc.d/rc.hdparm ] && /etc/rc.d/rc.hdparm
+       fi
+
+       if [ -f /fastboot ] || strstr "$cmdline" "fastboot"; then
+               fastboot=yes
+       else
+               fastboot=
+       fi
+
+       if [ -f /fsckoptions ]; then
+               fsckoptions=$(cat /fsckoptions)
+       else
+               fsckoptions=''
+       fi
+
+       if [ -f /forcefsck ]; then
+               fsckoptions="-f $fsckoptions"
+       else
+               # Obey the fs_passno setting for / (see fstab(5))
+               # - find the / entry
+               # - make sure we have at least 6 fields
+               _ROOTFS_PASSNO=$(awk '($1 !~ /^#/ && $2 == "/" && NF >= 6) { print $6}' /etc/fstab)
+       fi
+
+       _RUN_QUOTACHECK=0
+       _ROOTFS_DEVICE=$(awk '($1 !~ /^#/ && $2 == "/" && NF >= 6) { print $1}' /etc/fstab)
+       _ROOTFS_TYPE=$(awk '$2 == "/" && $3 != "rootfs" { print $3 }' /proc/mounts 2>/dev/null)
+
+       if [ -z "$fastboot" -a "$_ROOTFS_TYPE" != "aufs" -a "$_ROOTFS_TYPE" != "nfs" -a "$_ROOTFS_TYPE" != "romfs" -a "$_ROOTFS_TYPE" != "squashfs" -a "$_ROOTFS_PASSNO" != 0 -a -e $_ROOTFS_DEVICE ] && [[ "$container" != lxc* ]]; then
+               check_root_fs
+       fi
+
+       # Check for arguments
+       if strstr "$cmdline" nopnp; then
+               PNP=
+       else
+               PNP=yes
+       fi
+
+       # set up pnp and kernel pnp
+       if [ -n "$PNP" ]; then
+               if ! is_no "$RUN_USERPNP" && [ -x /sbin/isapnp -a -f /etc/isapnp/isapnp.conf ]; then
+                       run_cmd "Setting up ISA PNP devices (userspace pnp)" /sbin/isapnp /etc/isapnp/isapnp.conf
+               fi
+               if ! is_no "$RUN_KERNELPNP"; then
+                       /sbin/modprobe isa-pnp 2> /dev/null
+                       if [ -e /proc/isapnp -a -f /etc/isapnp/isapnp-kernel.conf ]; then
+                               show "Setting up ISA PNP devices (kernelspace pnp)"; busy
+                               grep -v "^#" /etc/isapnp/isapnp-kernel.conf 2>/dev/null >/proc/isapnp && (deltext; ok) || (deltext; fail)
+                       fi
+               fi
+       fi
+
+       _ROOTFS_RO=$(awk '($1 !~ /^#/ && $2 == "/" && ($4 == "ro" || $4 ~ /,ro$/ || $4 ~ /^ro,/ || $4 ~ /,ro,/ ) && NF >= 6) { print "ro" }' /etc/fstab)
+       # Remount the root filesystem read-write
+       if [ -z "$_ROOTFS_RO" ]; then
+               run_cmd "Remounting root filesystem in rw mode" mount -n -o remount,rw /
+       fi
+
+       # Update quotas if fsck was run on /
+       if [ "$_RUN_QUOTACHECK" = "1" -a -x /sbin/quotacheck ]; then
+               run_cmd "Checking root filesystem quotas" /sbin/quotacheck -vnug /
+       fi
+
+       # Clean up SELinux labels
+       if [ -n "$SELINUX" ]; then
+               for file in /etc/mtab /etc/cryptomtab /etc/ld.so.cache ; do
+                       [ -r $file ] && restorecon $file >/dev/null 2>&1
+               done
+       fi
+
+       if [ "$delay_cryptsetup" != 0 ]; then
+               show "Starting disk encryption using the RNG"
+               init_crypto 1
+               delay_cryptsetup=$?
+               [ $delay_cryptsetup = 0 ] && ok || fail
+       fi
+else
+       # Start logging console output since we have all /dev stuff setup
+       if [ "$RC_BOOTLOG" ]; then
+               /sbin/blogd -q
+       fi
+fi
+
+# Remove stale backups
+rm -f /etc/mtab~ /etc/mtab~~ /etc/cryptomtab~ /etc/cryptomtab~~ >/dev/null 2>&1
+
+# Remove /etc/nologin when starting system
+[ -f /etc/nologin.boot ] && rm -f /etc/nologin /etc/nologin.boot
+
+if ! is_no "$DELAY_LOGIN" && [ ! -f /etc/nologin ]; then
+       show "Enabling Delay Login"; busy
+       echo > /etc/nologin
+       nls "System bootup in progress - please wait" >> /etc/nologin
+       echo >> /etc/nologin
+       chmod 644 /etc/nologin
+       cp -fp /etc/nologin /etc/nologin.boot
+       ok
+fi
+
+# The root filesystem is now read-write, so we can now log via
+# syslog() directly...
+if [ -n "$IN_INITLOG" ]; then
+       IN_INITLOG=""
+fi
+
+if ! is_yes "$VSERVER"; then
+       # Clear mtab
+       :>/etc/mtab
+       [ -f /etc/cryptomtab ] && :>/etc/cryptomtab
+
+       # Enter root, /proc, /sys and other into mtab.
+       mount -f / 2> /dev/null
+       mount -f /proc 2> /dev/null
+       if is_fsmounted devtmpfs /dev; then
+               mount -f -t devtmpfs devtmpfs /dev 2> /dev/null
+       fi
+       if is_fsmounted tmpfs /run; then
+               mount -f -t tmpfs run /run 2> /dev/null
+       fi
+
+       if is_fsmounted usbfs /proc/bus/usb; then
+               mount -f -t usbfs -o devgid=78,devmode=664 usbfs /proc/bus/usb 2> /dev/null
+       fi
+
+       if is_fsmounted sysfs /sys; then
+               mount -f -t sysfs sysfs /sys 2> /dev/null
+               if is_fsmounted securityfs /sys/kernel/security ; then
+                       mount -f -t securityfs securityfs /sys/kernel/security 2> /dev/null
+               fi
+       fi
+
+       if is_fsmounted selinuxfs /selinux; then
+               mount -f -t selinuxfs selinuxfs /selinux 2> /dev/null
+       fi
+
+       emit --no-wait root-filesystem
+       emit --no-wait virtual-filesystems
+
+       if [ ! -f /proc/modules ]; then
+               USEMODULES=
+       elif ! strstr "$cmdline" nomodules; then
+               USEMODULES=y
+       else
+               USEMODULES=
+       fi
+
+       uname_r=$(uname -r)
+       # Adjust symlinks as necessary in /boot to keep system services from
+       # spewing messages about mismatched System maps and so on.
+       if ! is_no "$SET_SLINKS"; then
+               if [ -L /boot/System.map -a -r /boot/System.map-$uname_r ] ; then
+                       ln -s -f System.map-$uname_r /boot/System.map
+               fi
+               if [ ! -e /boot/System.map -a -r /boot/System.map-$uname_r ] ; then
+                       ln -s -f System.map-$uname_r /boot/System.map
+               fi
+       fi
+
+       # Run depmod if RUN_DEPMOD != "no" and:
+       # a) user requested or RUN_DEPMOD="";
+       # b) modules.dep is missing
+       if ! is_no "$RUN_DEPMOD" && [ -n "$USEMODULES" ]; then
+               if is_yes "$RUN_DEPMOD" || [ -z "$RUN_DEPMOD" ]; then
+                       run_cmd "Finding module dependencies" depmod -a
+               elif [ "$RUN_DEPMOD" = "ifmissing" ] && [ ! -f /lib/modules/$uname_r/modules.dep ]; then
+                       run_cmd "Finding module dependencies" depmod -A
+               fi
+       fi
+       unset uname_r
+
+       if [ -f /proc/sys/kernel/modprobe ]; then
+               if [ -n "$USEMODULES" ]; then
+                       sysctl -w kernel.modprobe="/sbin/modprobe" >/dev/null 2>&1
+               else
+                       # We used to set this to NULL, but that causes
+                       # 'failed to exec' messages"
+                       sysctl -w kernel.modprobe="/bin/true" >/dev/null 2>&1
+               fi
+       fi
+
+       # Load usb storage here, to match most other things
+       if [ -n "$needusbstorage" ]; then
+               modprobe usb-storage >/dev/null 2>&1
+       fi
+
+       # Load firewire devices
+       if ! strstr "$cmdline" nofirewire; then
+               aliases=$(/sbin/modprobe -c | awk '/^alias ieee1394-controller/ { print $3 }')
+               if [ -n "$aliases" -a "$aliases" != "off" ] ; then
+                       for alias in $aliases ; do
+                               [ "$alias" = "off" ] && continue
+                               run_cmd "$(nls 'Initializing firewire controller') ($alias)" /sbin/modprobe $alias
+                       done
+                       grep -E "SBP2" /proc/bus/ieee1394/devices 2>/dev/null && /sbin/modprobe -s sbp2 > /dev/null 2>&1
+               fi
+       fi
+
+       # Load sound modules if they need persistent DMA buffers
+       if /sbin/modprobe -c | grep -q "^options sound dmabuf=1"; then
+               RETURN=0
+               alias=$(/sbin/modprobe -c | grep -sE "^alias[[:space:]]+sound[[:space:]]+" 2>/dev/null | awk '{ print $3 }')
+               if [ -n "$alias" -a "$alias" != "off" ] ; then
+                       run_cmd "$(nls 'Loading sound module') ($alias)" modprobe -s $alias
+                       RETURN=$?
+               fi
+               alias=$(/sbin/modprobe -c | grep -sE "^alias[[:space:]]+sound-slot-0[[:space:]]+" 2>/dev/null | awk '{ print $3 }')
+               if [ -n "$alias" -a "$alias" != "off" ] ; then
+                       run_cmd "$(nls 'Loading sound module') ($alias)" modprobe -s $alias
+                       RETURN=$?
+               fi
+       fi
+
+       # Load modules
+       if ! use_upstart; then
+               load_kernel_modules modules
+               for f in /etc/modules-load.d/*.conf; do
+                       # already loaded by implicit "modules" load
+                       [ "${f##*/}" = "modules.conf" ] && continue
+
+                       [ -r $f ] || continue
+                       load_kernel_modules ${f##/etc/}
+               done
+       fi
+
+       if [ -x /sbin/multipath ] && ! is_no "$DM_MULTIPATH"; then
+               # first make nodes that were discarded due (possible) new /dev mount
+               modprobe -s dm-mod
+               /sbin/dmsetup mknodes
+               modprobe -s dm-multipath
+               run_cmd "Activating dm-multipath" /sbin/multipath -v 0
+               /sbin/dmsetup ls --target multipath --exec '/sbin/kpartx -a -p p'
+       fi
+
+       if [ -x /sbin/dmraid ]; then
+               run_cmd "Activating ATARAID devices" /sbin/dmraid -ay
+       fi
+
+       # Find and activate volume groups:
+       # EVMS
+       if [ -x /sbin/evms_activate ]; then
+               if [ "$(kernelverser)" -lt "002006" ]; then
+                       # Linux 2.4 core modules
+                       modprobe -s evms > /dev/null 2>&1
+                       modprobe -s evms_passthru > /dev/null 2>&1
+                       modprobe -s ldev_mgr > /dev/null 2>&1
+                       modprobe -s dos_part > /dev/null 2>&1
+               else
+                       # Linux 2.6 core module
+                       modprobe -s evmscore > /dev/null 2>&1
+               fi
+
+               is_yes "$EVMS_GUID_PTABLE" && modprobe -s gpt_part >/dev/null 2>&1
+               is_yes "$EVMS_LVM" && modprobe -s lvm_vge >/dev/null 2>&1
+               is_yes "$EVMS_AIX" && modprobe -s AIXlvm_vge >/dev/null 2>&1
+               is_yes "$EVMS_OS2" && modprobe -s os2lvm_vge >/dev/null 2>&1
+               run_cmd "Discovering EVMS volumes" /sbin/evms_activate
+               if is_yes "$EVMS_LVM" && is_yes "$EVMS_LVM_COMPAT_NODES" ; then
+                       # Link nodes for compatibility with LVM
+                       if [ "$(echo /dev/evms/lvm/*)" != '/dev/evms/lvm/*' ] ; then
+                               ln -s /dev/evms/lvm/* /dev
+                       fi
+               fi
+       fi
+
+       # LVM (keep in sync with LVM starting after RAID run!)
+       if ! is_no "$LVM2" && [ -x /sbin/vgscan -a -x /sbin/vgchange ] || is_yes "$EVMS_LVM"; then
+               if is_no "$LVM2"; then
+                       lvmversion=$(LC_ALL=C /sbin/vgchange --version 2>/dev/null | awk '/LVM version:/{if ($3 >= 2) print "2"}')
+               else
+                       lvmversion=2
+               fi
+               if [ "$lvmversion" = "1" ] ; then
+                       modprobe -s lvm-mod >/dev/null 2>&1
+                       lvmignorelocking=""
+                       lvmsysinit=""
+               elif [ "$lvmversion" = "2" ] ; then
+                       modprobe -s dm-mod >/dev/null 2>&1
+                       lvmignorelocking="--ignorelockingfailure"
+                       lvmsysinit="--sysinit"
+               else
+                       modprobe -s lvm-mod >/dev/null 2>&1
+                       # device mapper (2.5+ and patched 2.4)
+                       modprobe -s dm-mod >/dev/null 2>&1
+                       lvmignorelocking=""
+                       lvmsysinit=""
+               fi
+
+               run_cmd "Scanning for LVM volume groups" /sbin/vgscan $lvmignorelocking
+               run_cmd "Activating LVM volume groups" /sbin/vgchange -a y $lvmsysinit
+               if [ "$lvmversion" = "2" ]; then
+                       /sbin/vgmknodes $lvmignorelocking
+                       # display VG statistics
+                       /sbin/vgdisplay -s $lvmignorelocking
+               fi
+       fi
+
+       if [ "$delay_cryptsetup" != 0 ]; then
+               show "Starting disk encryption"
+               init_crypto 1
+               delay_cryptsetup=$?
+               [ $delay_cryptsetup = 0 ] && ok || fail
+       fi
+
+       # Add raid devices
+       if [ -x /sbin/mdadm -a -f /etc/mdadm.conf ] || [ -f /etc/raidtab ]; then
+               modprobe -s md >/dev/null 2>&1
+               if [ -f /proc/mdstat ]; then
+                       goraidtab=1
+                       golvm=0
+                       rc=0
+                       if [ -x /sbin/mdadm -a -f /etc/mdadm.conf ]; then
+                               if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf 2>/dev/null; then
+                                       show "Starting up RAID devices"; busy
+                                       /sbin/mdadm --assemble --scan --auto=yes
+                                       rc=$?
+                                       if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
+                                               # rc is used later, too so set sane value
+                                               rc=0
+                                               deltext; ok
+                                               goraidtab=0
+                                               golvm=1
+                                       else
+                                               deltext; fail
+                                       fi
+
+                               fi
+                       fi
+
+                       if [ -f /etc/raidtab -a "$goraidtab" -eq 1 ]; then
+                               for i in $(awk '!/^#/ && /raiddev/{print $2}' /etc/raidtab 2>/dev/null); do
+                                       golvm=1
+                                       RAIDDEV=$(basename $i)
+                                       RAIDSTAT=$(grep "^$RAIDDEV : active" /proc/mdstat 2>/dev/null)
+                                       show "Starting up RAID device %s" $RAIDDEV
+                                       busy
+                                       if [ -z "$RAIDSTAT" ]; then
+                                               # Try raidstart first...if that fails then
+                                               # fall back to raid0run and if that fails too
+                                               # fall back to raidadd, raidrun.
+                                               RESULT=1
+                                               if [ -x /sbin/raidstart ]; then
+                                                       /sbin/raidstart $i
+                                                       RESULT=$?
+                                               fi
+                                               if [ $RESULT -gt 0 -a -x /sbin/raid0run ]; then
+                                                       /sbin/raid0run $i
+                                                       RESULT=$?
+                                               fi
+                                               if [ $RESULT -gt 0 -a -x /sbin/raidadd -a -x /sbin/raidrun ]; then
+                                                       /sbin/raidadd $i
+                                                       /sbin/raidrun $i
+                                                       RESULT=$?
+                                               fi
+                                               if [ $RESULT -gt 0 ]; then
+                                                       rc=1
+                                                       fail
+                                               else
+                                                       ok
+                                               fi
+                                       else
+                                               ok
+                                       fi
+                               done
+                       fi
+
+                       # A non-zero return means there were problems
+                       if [ $rc -gt 0 ]; then
+                               [ -e /proc/splash ] && echo "verbose" > /proc/splash
+                               show "Starting up RAID devices"; fail
+                               echo
+                               echo
+                               nls "*** An error occurred during the RAID startup."
+                               nls "*** Dropping you to a shell; the system will reboot"
+                               nls "*** when you leave the shell."
+                               echo
+
+                               PS1="$(nls '(RAID Repair)# ')"; export PS1
+                               [ "$SELINUX" = "1" ] && disable_selinux
+                               if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+                                       /sbin/sulogin
+                               else
+                                       /bin/sh
+                               fi
+
+                               run_cmd "Unmounting file systems" umount -a
+                               run_cmd "Remounting root filesystem in ro mode" mount -n -o remount,ro /
+                               run_cmd "Automatic reboot in progress" reboot
+                       fi
+                       # LVM on RAID (keep in sync with LVM setting few lines above)
+                       if [ "$golvm" -eq "1" ]; then
+                               if [ -x /sbin/vgscan -a -x /sbin/vgchange ]; then
+                                       run_cmd "Scanning for LVM volume groups (on RAID)" /sbin/vgscan $lvmignorelocking
+                                       run_cmd "Activating LVM volume groups (on RAID)" /sbin/vgchange -a y $lvmsysinit
+                                       [ "$lvmversion" = "2" ] && /sbin/vgmknodes
+                               fi
+                       fi
+                       show "Starting up RAID devices"; ok
+               fi
+       fi
+
+       _RUN_QUOTACHECK=0
+       # Check filesystems
+       if [ -z "$fastboot" ] && ! strstr "$cmdline" nofsck; then
+               rc_splash "fsck start"
+               show "Checking filesystems"; started
+               initlog -c "fsck -C -T -R -A -a -P $fsckoptions"
+
+               rc=$?
+
+               # A return of 2 or higher means there were serious problems
+               if [ $rc -gt 1 ]; then
+                       [ -e /proc/splash ] && echo "verbose" > /proc/splash
+                       echo
+                       echo
+                       nls "*** An error occurred during the file system check."
+                       nls "*** Dropping you to a shell; the system will reboot"
+                       nls "*** when you leave the shell."
+                       echo
+
+                       PS1="$(nls '(Repair filesystem)# ')"; export PS1
+                       [ "$SELINUX" = "1" ] && disable_selinux
+                       if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+                               /sbin/sulogin
+                       else
+                               /bin/sh
+                       fi
+
+                       run_cmd "Unmounting file systems" umount -a
+                       run_cmd "Remounting root filesystem in ro mode" mount -n -o remount,ro /
+                       run_cmd "Automatic reboot in progress" reboot
+               elif [ "$rc" = "1" -a -x /sbin/quotacheck ]; then
+                       _RUN_QUOTACHECK=1
+               fi
+               rc_splash "fsck stop"
+       fi
+
+       # Mount all other filesystems (except for NFS and /proc, which is already
+       # mounted). Contrary to standard usage,
+       # filesystems are NOT unmounted in single user mode.
+
+       run_cmd "Mounting local filesystems" mount -a -t nonfs,nfs4,smbfs,ncpfs,proc,cifs -O no_netdev
+
+       # now we have /usr mounted, recheck if we have gettext and tput available.
+       if is_no "$TPUT"; then
+               GETTEXT=
+               TPUT=
+               rc_gettext_init
+       fi
+
+       # Now do some workaround - encrypted filesystems couldn't have been fsck-ed
+       # before mount - that's where the password is entered.
+       # mount is buggy - when remounting loopback filesystem, loop=XXX
+       # option is removed from /etc/mtab
+       if [ -z "$fastboot" ] && grep "^[^#].*encryption=" /etc/fstab 2>/dev/null | grep -v -q "noauto" 2>/dev/null; then
+               show "Checking encrypted filesystems"; started
+               LOOPLIST="$(LC_ALL=C awk '
+               FILENAME=="/proc/mounts" {
+                       TAB[$2]=$1;
+               }
+               FILENAME=="/etc/fstab" && /encryption=/ && ! /noauto/ && /[^a-zA-Z_]ro[^a-zA-Z_]/ {
+                       if ($2 in TAB){print TAB[$2];}
+               }
+               FILENAME=="/etc/fstab" && /encryption=/ && ! /noauto/ && ! /[^a-zA-Z_]ro[^a-zA-Z_]/ {
+                       if ($2 in TAB){print TAB[$2];}
+                       sub("loop(=[^,]*)?","loop=" TAB[$2] ",ro",$4);
+                       cmd="mount " $2 " -o remount," $4;
+                       system(cmd);
+               }
+               ' /proc/mounts /etc/fstab)"
+               initlog -c "fsck -T -C -a $fsckoptions $LOOPLIST"
+               rc=$?
+
+               # A return of 2 or higher means there were serious problems.
+               if [ $rc -gt 1 ]; then
+                       [ -e /proc/splash ] && echo "verbose" > /proc/splash
+                       echo
+                       echo
+                       nls "*** An error occurred during the file system check."
+                       nls "*** Dropping you to a shell; the system will reboot"
+                       nls "*** when you leave the shell."
+                       echo
+
+                       PS1="$(nls '(Repair filesystem)# ')"; export PS1
+                       [ "$SELINUX" = "1" ] && disable_selinux
+                       if ! is_no "$RUN_SULOGIN_ON_ERR"; then
+                               /sbin/sulogin
+                       else
+                               /bin/sh
+                       fi
+
+                       run_cmd "Unmounting file systems" umount -a
+                       run_cmd "Remounting root filesystem in ro mode" mount -n -o remount,ro /
+                       run_cmd "Automatic reboot in progress" reboot
+               elif [ "$rc" = "1" -a -x /sbin/quotacheck ]; then
+                       _RUN_QUOTACHECK=1
+               fi
+
+               show "Remounting encrypted filesystems back in rw mode"; busy
+               LC_ALL=C awk '
+               FILENAME=="/proc/mounts" {
+                       TAB[$2]=$1;
+               }
+               FILENAME=="/etc/fstab" && /encryption=/ && ! /noauto/ && ! /[^a-zA-Z_]ro[^a-zA-Z_]/ {
+                       sub("loop(=[^,]*)?","loop=" TAB[$2] ",rw",$4);
+                       cmd="mount " $2 " -o remount," $4;
+                       system(cmd);
+               }
+               ' /proc/mounts /etc/fstab
+               ok
+       fi
+
+       # /var/log should be writable now, so start saving the boot output
+       if [ "$RC_BOOTLOG" ]; then
+               echo > /var/log/boot.log
+               killall -IO blogd
+       fi
+
+       if [ "$_RUN_QUOTACHECK" = "1" -a -x /sbin/quotacheck ]; then
+               run_cmd "Checking filesystem quotas" /sbin/quotacheck -vnugRa
+       fi
+
+       # Turn on quota
+       if [ -x /sbin/quotaon ]; then
+               run_cmd "Turning on quotas for local filesystems" /sbin/quotaon -aug
+       fi
+
+       emit --no-wait local-filesystems
+
+       # FIXME: this should be delayed until remote filesystems are mounted,
+       #        especialy when /usr or other standard fs is remote
+       emit --no-wait filesystem
+
+       # Turn on process accounting
+       if [ -x /etc/rc.d/rc.acct ]; then
+               /etc/rc.d/rc.acct start
+       fi
+
+       # Set the clock if timezone definition wasn't available (eg. /usr not mounted)
+       if is_yes "$TIME_SETUP_DELAYED" && [ -e /dev/rtc -o -e /dev/rtc0 ]; then
+               if run_cmd "$(nls 'Setting clock')" hwclock --hctosys; then
+                       show "$(nls 'Today`s date:') $(LC_CTYPE=C date)"; ok
+               fi
+       fi
+
+       # Initialize the serial ports
+       if [ -f /etc/rc.d/rc.serial ]; then
+               . /etc/rc.d/rc.serial
+       fi
+
+       if [ -f /proc/sys/kernel/panic -a -n "$PANIC_REBOOT_TIME" -a "$PANIC_REBOOT_TIME" -gt "0" ]; then
+               show 'Setting %s seconds for kernel reboot after panic' "$PANIC_REBOOT_TIME"; busy
+               # NOTE: you should use /etc/sysctl.conf instead
+               if sysctl -w kernel.panic=$PANIC_REBOOT_TIME >/dev/null 2>&1; then ok; else fail; fi
+       fi
+
+       # ... and here finish configuring parameters
+       sysctl -e -p /etc/sysctl.conf > /dev/null 2>&1
+else
+       emit --no-wait root-filesystem
+       emit --no-wait virtual-filesystems
+       emit --no-wait local-filesystems
+       emit --no-wait filesystem
+
+       # /var/log should be writable now, so start saving the boot output
+       if [ "$RC_BOOTLOG" ]; then
+               echo > /var/log/boot.log
+               killall -IO blogd
+       fi
+
+       clean_vserver_mtab
+fi
+
+
+[ -n "$SELINUX" ] && [ -f /.autorelabel ] && relabel_selinux
+
+# Clean up /.
+rm -f /fastboot /fsckoptions /forcefsck /halt /poweroff >/dev/null 2>&1
+
+# Clean up /var
+# /usr could be still not mounted if it is on NFS.
+for afile in /var/lock/* /var/run/*; do
+       bafile=${afile##*/}
+       if [ -d "$afile" ]; then
+               case $bafile in
+               news|sudo|mon|cvs)
+                       ;;
+               *)
+                       echo $afile/* | xargs rm -rf
+                       ;;
+               esac
+       else
+               [ "$bafile" != "hwprofile" -a "$bafile" != "random-seed" ] && rm -f $afile 2> /dev/null
+       fi
+done
+
+# Delete stale files
+rm -f /var/lib/rpm/__db* /var/spool/postoffice/.pid.* /tmp/.X*-lock \
+       /tmp/.lock.* /tmp/.gdm_socket /tmp/.s.PGSQL.*
+rm -rf /tmp/.X*-unix /tmp/.ICE-unix /tmp/.font-unix /tmp/hsperfdata_* \
+       /tmp/kde-* /tmp/ksocket-* /tmp/mc-* /tmp/mcop-* /tmp/orbit-* \
+       /tmp/scrollkeeper-* /tmp/ssh-*
+
+{
+# Clean up utmp/wtmp
+if ! is_no "$NEED_XFILES"; then
+       :>/var/run/utmpx
+       touch /var/log/wtmpx
+       chown root:utmp /var/run/utmpx /var/log/wtmpx
+       chmod 0664 /var/run/utmpx /var/log/wtmpx
+else
+       :>/var/run/utmp
+       touch /var/log/wtmp
+       chown root:utmp /var/run/utmp /var/log/wtmp
+       chmod 0664 /var/run/utmp /var/log/wtmp
+fi
+
+# Clean /tmp
+if is_yes "$CLEAN_TMP" && ! is_fsmounted tmpfs /tmp; then
+       LC_ALL=C rm -rf /tmp/* /tmp/.[a-zA-Z0-9]*
+fi
+
+# System protected dirs
+mkdir -m 1777 -p /tmp/.ICE-unix > /dev/null 2>&1
+chown root:root /tmp/.ICE-unix
+[ -n "$SELINUX" ] && restorecon /tmp/.ICE-unix >/dev/null 2>&1
+
+if ! is_yes "$VSERVER"; then
+       run_cmd "Enabling swap space" true
+       # Right, now turn on swap in case we swap to files
+       swapon -a >/dev/null 2>&1
+       emit --no-wait all-swaps
+
+       # If a SCSI tape has been detected, load the st module unconditionally
+       # since many SCSI tapes don't deal well with st being loaded and unloaded
+       if [ -f /proc/scsi/scsi ] && grep -q 'Type:   Sequential-Access' /proc/scsi/scsi 2>/dev/null ; then
+               if grep -qv ' 9 st' /proc/devices 2>/dev/null; then
+                       if [ -n "$USEMODULES" ] ; then
+                               # Try to load the module. If it fails, ignore it...
+                               insmod -p st >/dev/null 2>&1 && modprobe -s st >/dev/null 2>&1
+                       fi
+               fi
+       fi
+
+       # Now that we have all of our basic modules loaded and the kernel going,
+       # let's dump the syslog ring somewhere so we can find it later
+       dmesg --raw > /var/log/dmesg
+       i=5
+       while [ $i -ge 0 ]; do
+               if [ -f /var/log/dmesg.$i ]; then
+                       chmod 0600 /var/log/dmesg.$i
+                       mv -f /var/log/dmesg.$i /var/log/dmesg.$(($i+1))
+               fi
+               i=$(($i-1))
+       done
+       cp -f /var/log/dmesg /var/log/dmesg.0
+       chmod 0600 /var/log/dmesg /var/log/dmesg.0
+else
+       emit --no-wait all-swaps
+fi
+
+if ! is_no "$RC_PROMPT"; then
+       while :; do
+               pid=$(/sbin/pidof getkey)
+               [ -n "$pid" -o -e /var/run/getkey_done ] && break
+               usleep 100000
+       done
+       [ -n "$pid" ] && kill -TERM "$pid" >/dev/null 2>&1
+fi
+} &
+
+# /proc extra check if the background process we just spawned is still running,
+# as in case of vserver bootup it finishes quite instantly.
+if ! is_no "$RC_PROMPT" && [ -d /proc/$! ]; then
+       /sbin/getkey i && touch /var/run/confirm
+       touch /var/run/getkey_done
+fi
+wait
+if ! is_no "$RC_PROMPT"; then
+       rm -f /var/run/getkey_done
+fi
+echo
+
+emit --no-wait pld.sysinit-done
+
diff --git a/trunk/run-parts b/trunk/run-parts
new file mode 100755 (executable)
index 0000000..8b473a5
--- /dev/null
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+# run-parts - concept taken from Debian
+#
+# modified for PLD Linux by Pawel Wilk <siefca@pld-linux.org>
+#
+# NOTE:
+#      1.) run-parts is now able to get arguments!
+#      2.) relative pathname of the invoked directory can be
+#          obtained by reading RUNPARTS_DIR env. variable
+#      3.) absolute pathname of the invoked directory can be
+#          obtained by reading RUNPARTS_ADIR env. variable
+#
+
+# keep going when something fails
+set +e
+
+if [ "$1" = "--test" ]; then
+       test=yes
+       shift
+fi
+
+if [ "$1" = "--" ]; then
+       shift
+fi
+
+# std checks
+if [ $# -lt 1 ]; then
+       echo "Usage: run-parts [-u] [--test] <dir> <args...>"
+       exit 1
+fi
+
+if [ ! -d $1 ]; then
+       echo "Is not a directory: $1"
+       echo "Usage: run-parts [-u] [--test] <dir> <args...>"
+       exit 1
+fi
+
+# assign passed dir name
+RUNPARTS_DIR=$1
+
+# assign absolute dir name
+olddir=$(pwd)
+cd $RUNPARTS_DIR
+RUNPARTS_ADIR=$(pwd)
+cd $olddir
+unset olddir
+
+# export directories for our descendants
+export RUNPARTS_ADIR RUNPARTS_DIR
+
+# shift args
+shift
+
+# Ignore *~ and *, scripts
+for i in $RUNPARTS_DIR/*[!~,] ; do
+       [ -d "$i" ] && continue
+       # Don't run *.{rpmsave,rpmorig,rpmnew,swp} scripts
+       [ "${i%.rpmsave}" != "${i}" ] && continue
+       [ "${i%.rpmorig}" != "${i}" ] && continue
+       [ "${i%.rpmnew}" != "${i}" ] && continue
+       [ "${i%.swp}" != "${i}" ] && continue
+       [ "${i%,v}" != "${i}" ] && continue
+
+       if [ -x "$i" ]; then
+               runprog="$i $@"
+               if [ "$test" = yes ]; then
+                       echo "$runprog"
+                       continue
+               fi
+               $runprog 2>&1 | awk -v "progname=$i" \
+                       'progname {
+                               print progname ":\n"
+                               progname="";
+                               }
+                       { print; }'
+       fi
+done
+
+exit 0
diff --git a/trunk/service b/trunk/service
new file mode 100755 (executable)
index 0000000..3374657
--- /dev/null
@@ -0,0 +1,195 @@
+#!/bin/sh
+
+# Set up a default search path.
+PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
+export PATH
+
+is_ignored_file() {
+       case "$1" in
+       skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh)
+               return 0
+               ;;
+       *rpmorig | *rpmnew | *rpmsave | *~ | *.orig)
+               return 0
+               ;;
+       esac
+       return 1
+}
+
+# check if SERVICE is present in systemd and ACTION is valid systemctl command
+# returns false if systemd is disabled or not active
+is_systemd_service() {
+       local SERVICE=$1 ACTION=$2
+
+       [ "$USE_SYSTEMD" = "no" ] && return 1
+
+       # if we are called from systemd itself, because some .service specified
+       # invocation via /sbin/service. this avoids loops
+       # detect this via CMDLINE var, which has leaked from geninitrd
+       if [ -n "$CMDLINE" ]; then
+               echo >&2  "Warning: CMDLINE env set, likely you are defining .service to use /sbin/service, please use /etc/rc.d/init.d/<SERVICE> instead"
+               return 1
+       fi
+
+       case "$ACTION" in
+       # list obtained as: man systemctl | grep N.*A.*M.*E
+       start | \
+       stop | \
+       reload | \
+       restart | \
+       try-restart | \
+       reload-or-restart | \
+       reload-or-try-restart | \
+       isolate | \
+       kill | \
+       is-active | \
+       status | \
+       show | \
+       reset-failed | \
+       enable | \
+       disable | \
+       is-enabled | \
+       reenable | \
+       preset | \
+       mask | \
+       unmask | \
+       link | \
+       load | \
+       snapshot | \
+       delete | \
+       set-environment | \
+       unset-environment )
+               ;;
+       *)
+               #echo "Not valid systemd command"
+               return 1
+       esac
+
+       [ -x /bin/systemd_booted ] || return 1
+       /bin/systemd_booted || return 1
+
+       /bin/systemctl show "$SERVICE".service | grep -q LoadError= && return 1 || return 0
+}
+
+status_all() {
+       local SERVICE TYPE
+       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 [ -f /etc/init/${SERVICE}.conf ]; then
+                               # U for upstart
+                               TYPE='U'
+                       else
+                               # S for SysVinit
+                               TYPE='S'
+                       fi
+                       if ! grep -qs "\Wstatus)" "$SERVICE"; then
+                               #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
+                               echo " [ ? ]{$TYPE} $SERVICE"
+                               continue
+                       else
+                               out=$(env -i USE_UPSTART=$USE_UPSTART 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 " [ + ]{$TYPE} $SERVICE"
+                                       continue
+                               else
+                                       #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
+                                       echo " [ - ]{$TYPE} $SERVICE"
+                                       continue
+                               fi
+                       fi
+                       #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
+               fi
+               ;;
+               esac
+       done
+}
+
+VERSION="$(basename $0) ver. 0.91-pld"
+USAGE="Usage: $(basename $0) < option > | --status-all | \
+[ service_name [ command | --full-restart ] ]"
+
+SERVICE=
+USE_UPSTART=
+USE_SYSTEMD=
+
+if [ -d /etc/rc.d/init.d ]; then
+       SERVICEDIR="/etc/rc.d/init.d"
+else
+       SERVICEDIR="/etc/init.d"
+fi
+
+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
+               ;;
+       --ignore-dependencies)
+               export SYSTEMCTL_IGNORE_DEPENDENCIES=1
+               shift
+               ;;
+       --skip-redirect)
+               export SYSTEMCTL_SKIP_REDIRECT=1
+               shift
+               ;;
+       --upstart)
+               USE_UPSTART=yes
+               shift
+               ;;
+       --no-upstart)
+               USE_UPSTART=no
+               shift
+               ;;
+       --no-systemd)
+               USE_SYSTEMD=no
+               shift
+               ;;
+         *)
+               if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
+                       status_all
+                       exit 0
+               elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
+                       SERVICE="${1}"
+                       if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+                               env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
+                               env -i USE_UPSTART=$USE_UPSTART 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 is_systemd_service "${SERVICE}" "${ACTION}"; then
+       echo >&2 "Redirecting to /bin/systemctl --output=cat ${ACTION} ${SERVICE}.service ${OPTIONS}"
+       exec /bin/systemctl --output=cat ${ACTION} ${SERVICE}.service ${OPTIONS}
+elif [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+       exec env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
+else
+       echo "${SERVICE}: unrecognized service" >&2
+       exit 1
+fi
diff --git a/trunk/setsysfont b/trunk/setsysfont
new file mode 100755 (executable)
index 0000000..7d3a1bd
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/sh
+#
+#      $Id$
+#
+
+[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
+[ -f /etc/sysconfig/console ] && . /etc/sysconfig/console
+
+[ -n "$SYSFONT" ] && CONSOLEFONT="$SYSFONT"
+
+
+charmap=
+# /usr might not be mounted
+if [ -x /usr/bin/locale ]; then
+       charmap=$(LANG="$LANG" locale charmap)
+fi
+
+if [ "$charmap" = "UTF-8" ]; then
+       if [ -x /bin/unicode_start ] && /sbin/consoletype fg; then
+               exec unicode_start $CONSOLEFONT $CONSOLEMAP
+       fi
+elif [ -x /bin/unicode_stop ] && /sbin/consoletype fg; then
+       unicode_stop
+fi
+
+# console-tools, obsolete part
+if [ -x /usr/bin/consolechars -o -x /bin/consolechars ]; then
+       if [ -n "$CONSOLEFONT" ]; then
+               consolechars --acm ${CONSOLEMAP:-trivial.trans} --font $CONSOLEFONT
+       fi
+       if [ -n "$KEYTABLE" ]; then
+               loadkeys $KEYTABLE < /dev/tty0 > /dev/tty0
+       fi
+# kbd, currently used
+elif [ -x /usr/bin/setfont -o -x /bin/setfont ]; then
+       if [ -n "$CONSOLESCREENFONTMAP" ]; then
+               ARGS="-u $CONSOLESCREENFONTMAP"
+       fi
+       if [ -n "$CONSOLEMAP" ]; then
+               if [ ! -f /lib/kbd/consoletrans/${CONSOLEMAP}_to_uni.trans ]; then
+                       CONSOLEMAP=$(echo "$CONSOLEMAP" | awk '{ gsub(/iso[0]?/,"8859-"); print $0; }')
+               fi
+               ARGS="$ARGS -m $CONSOLEMAP"
+       fi
+       if [ -n "$CONSOLEFONT" ]; then
+               setfont $CONSOLEFONT $ARGS
+       else
+               echo -ne "\033(K" 2>/dev/null > /proc/$$/fd/0
+       fi
+fi
+
+exit 0
diff --git a/trunk/src/Makefile.am b/trunk/src/Makefile.am
new file mode 100644 (file)
index 0000000..6b8a4d7
--- /dev/null
@@ -0,0 +1,66 @@
+@SET_MAKE@
+
+DEFS = @DEFS@ -D_GNU_SOURCE=1 -DSBINDIR=\""@sbindir@"\"
+
+sysconf_DATA = \
+       initlog.conf
+
+bin_PROGRAMS = \
+       doexec \
+       ipcalc \
+       usleep \
+       resolvesymlink
+       
+sbin_PROGRAMS =        \
+       consoletype \
+       genhostid \
+       getkey \
+       initlog \
+       loglevel \
+       minilogd \
+       netreport \
+       ppp-watch \
+       start-stop-daemon \
+       setuidgid \
+       usernetctl
+       
+EXTRA_PROGRAMS = \
+       testd 
+
+EXTRA_DIST = $(sysconf_DATA)
+
+doexec_SOURCES = doexec.c
+
+resolvesymlink_SOURCES = resolvesymlink.c
+
+ipcalc_SOURCES = ipcalc.c
+ipcalc_LDADD = -lpopt
+
+genhostid_SOURCES = genhostid.c
+
+netreport_SOURCES = netreport.c
+
+testd_SOURCES = testd.c
+
+usernetctl_SOURCES = usernetctl.c
+
+usleep_SOURCES = usleep.c
+
+loglevel_SOURCES = loglevel.c
+
+initlog_SOURCES = initlog.c initlog.h process.c process.h
+initlog_LDADD = -lpopt
+
+getkey_SOURCES = getkey.c
+getkey_LDADD = -lpopt
+
+ppp_watch_SOURCES = ppp-watch.c shvar.c shvar.h
+ppp_watch_LDADD = $(GLIB_LIBS)
+INCLUDES = $(GLIB_CFLAGS)
+
+consoletype_SOURCES = consoletype.c
+
+start_stop_daemon_SOURCES = start-stop-daemon.c
+start_stop_daemon_LDADD = -lcap
+
+setuidgid_SOURCES = setuidgid.c
diff --git a/trunk/src/consoletype.c b/trunk/src/consoletype.c
new file mode 100644 (file)
index 0000000..ab7e753
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1999-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+int main(int argc, char **argv)
+{
+    unsigned char twelve = 12;
+    char *type;
+    int maj, min, ret = 0, fg = -1;
+    struct stat sb;
+       
+    fstat(0, &sb);
+    maj = major(sb.st_rdev);
+    min = minor(sb.st_rdev);
+    if (maj != 3 && (maj < 136 || maj > 143)) {
+       if ((fg = ioctl (0, TIOCLINUX, &twelve)) < 0) {
+           type = "serial";
+           ret = 1;
+       } else {
+#ifdef __powerpc__
+           int fd;
+           char buf[65536];
+           
+           fd = open("/proc/tty/drivers",O_RDONLY);
+           read(fd, buf, 65535);
+           if (strstr(buf,"vioconsole           /dev/tty")) {
+                   type = "vio";
+                   ret = 3;
+           } else {
+                   type = "vt";
+                   ret = 0;
+           }
+#else
+           type = "vt";
+           ret = 0;
+#endif
+       }
+    } else {
+       type = "pty";
+       ret = 2;
+    }
+    if (argc > 1 && !strcmp(argv[1],"fg")) {
+           if (fg < 0 || fg != (min-1))
+                   return 1;
+           return 0;
+    } else {
+           printf("%s\n",type);
+           return ret;
+    }
+} 
diff --git a/trunk/src/doexec.c b/trunk/src/doexec.c
new file mode 100644 (file)
index 0000000..1b04532
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 1997-1999 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <unistd.h>
+
+int main(int argc, char ** argv) {
+    if (argc<2) return 1;
+    execvp(argv[1], argv + 2);
+    return 1;
+}
diff --git a/trunk/src/genhostid.c b/trunk/src/genhostid.c
new file mode 100644 (file)
index 0000000..a56cad8
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *         
+ */
+
+#include <fcntl.h>
+#include <stdlib.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/stat.h>
+int
+main (void)
+{
+  struct stat st;
+  long int n;
+  if (stat ("/etc/hostid", &st) == 0 && S_ISREG (st.st_mode)
+      && st.st_size >= sizeof (n))
+    return 0;
+  int fd = open ("/dev/random", O_RDONLY);
+  if (fd == -1 || read (fd, &n, sizeof (n)) != sizeof (n))
+    {
+      srand48 ((long int) time (NULL) ^ (long int) getpid ());
+      n = lrand48 ();
+    }
+  return sethostid (n);
+}
diff --git a/trunk/src/getkey.c b/trunk/src/getkey.c
new file mode 100644 (file)
index 0000000..1149626
--- /dev/null
@@ -0,0 +1,141 @@
+/*\r
+ * Copyright (c) 1999-2003, 2006 Red Hat, Inc. All rights reserved.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2,
+ * as published by the Free Software Foundation.
+ *
+ * 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\r
+ *
+ * getkey\r
+ *\r
+ * A very simple keygrabber.\r
+ *\r
+ */\r
+#include <ctype.h>\r
+#include <errno.h>\r
+#include <signal.h>\r
+#include <stdlib.h>\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <termios.h>\r
+#include <unistd.h>\r
+#include <sys/poll.h>\r
+#include "popt.h"\r
+\r
+static struct termios orig_tp;\r
+\r
+static void reset_term(int x) {\r
+       tcsetattr(0,TCSANOW,&orig_tp);\r
+       _exit(x);\r
+}\r
+\r
+int main(int argc, char **argv) {\r
+        static const char default_list[] = "";\r
+\r
+       const char *list;\r
+       char *waitmessage = NULL;\r
+       char *waitprint, *waitsprint;\r
+       int waitseconds=0;\r
+       int alarmlen=0;\r
+       int ignore_control=0;\r
+       struct termios tp;\r
+       int r;\r
+       struct pollfd ufds; /* only one, no need for an array... */\r
+        poptContext context;\r
+       struct poptOption options[] = {\r
+            { "wait", 'c', POPT_ARG_INT, &waitseconds, 0, "Number of seconds to wait for keypress", NULL },\r
+            { "message", 'm', POPT_ARG_STRING, &waitmessage, 0, "Message to print out while waiting for string\nNOTE: The message may have a \"%d\" in it, to hold the number of seconds left to wait.", NULL },\r
+            { "ignore-control-chars", 'i', POPT_ARG_NONE, &ignore_control, 0, "Ignore Control-C and Control-D", NULL },\r
+            POPT_AUTOHELP\r
+            POPT_TABLEEND\r
+        };\r
+\r
+       context = poptGetContext("getkey", argc, (const char **)argv, options,\r
+                                POPT_CONTEXT_POSIXMEHARDER);\r
+        poptSetOtherOptionHelp(context, "[keys]");\r
+\r
+        r = poptGetNextOpt(context);\r
+        if (r < -1) {\r
+            fprintf(stderr, "%s: %s\n", \r
+                   poptBadOption(context, POPT_BADOPTION_NOALIAS),\r
+                   poptStrerror(r));\r
+\r
+            return -1;\r
+        }\r
+        list = poptGetArg(context);\r
+       if (list != NULL) {\r
+           char *p;\r
+\r
+           p = strdup(list);\r
+           list = p;\r
+           while (*p != 0) {\r
+               *p = toupper(*p);\r
+               p++;\r
+           }\r
+       } else\r
+           list = default_list;\r
+       if (waitseconds) {\r
+           if (waitseconds < 0) {\r
+               fprintf(stderr, "--wait: Invalid time %d seconds\n",\r
+                       waitseconds);\r
+               return -1;\r
+           }\r
+           alarmlen = waitseconds;\r
+       }\r
+\r
+       tcgetattr(0,&tp);\r
+       orig_tp = tp;\r
+       signal(SIGTERM,reset_term);\r
+       if (alarmlen != 0) {\r
+           signal(SIGALRM,reset_term);\r
+           alarm(alarmlen);\r
+       }\r
+\r
+       tp.c_iflag=0;\r
+       tp.c_oflag &= ~OPOST;\r
+       tp.c_lflag &= ~(ISIG | ICANON);\r
+       tcsetattr(0,TCSANOW,&tp);\r
+\r
+       ufds.events = POLLIN;\r
+       ufds.fd = 0;\r
+\r
+       if (waitmessage) {\r
+           waitprint = alloca (strlen(waitmessage)+15); /* long enough */\r
+           waitprint[0] = '\r';\r
+           waitsprint = waitprint + 1;\r
+       }\r
+\r
+       while (1) {\r
+           if (waitmessage) {\r
+               sprintf (waitsprint, waitmessage, waitseconds);\r
+               write (1, waitprint, strlen(waitprint));\r
+           }\r
+           r = poll(&ufds, 1, alarmlen ? 1000 : -1);\r
+           if (r == 0) {\r
+               /* we have waited a whole second with no keystroke... */\r
+               waitseconds--;\r
+           }\r
+           if (r > 0) {\r
+               char ch;\r
+\r
+               read(0, &ch, sizeof(ch));\r
+               ch = toupper(ch);\r
+               /* Die if we get a control-c or control-d */\r
+                if (ignore_control == 0 && (ch == 3 || ch == 4))\r
+                   reset_term(1);\r
+               /* Don't let a null character be interpreted as a match\r
+                  by strchr */\r
+               if (ch != 0\r
+                   && (strcmp(list, "") == 0 || strchr(list, ch) != NULL))\r
+                   reset_term(0);\r
+           }\r
+       }\r
+}\r
diff --git a/trunk/src/initlog.c b/trunk/src/initlog.c
new file mode 100644 (file)
index 0000000..3b1cded
--- /dev/null
@@ -0,0 +1,465 @@
+/*
+ * Copyright (c) 1999-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#define SYSLOG_NAMES
+#include <syslog.h>
+
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+
+#define _(String) gettext((String))
+
+#include <popt.h>
+
+#include <regex.h>
+
+#include "initlog.h"
+#include "process.h"
+
+static int logfacility=LOG_DAEMON;
+static int logpriority=LOG_NOTICE;
+static int reexec=0;
+static int quiet=0;
+int debug=0;
+
+regex_t  **regList = NULL;
+
+static int logEntries = 0;
+struct logInfo *logData = NULL;
+
+void readConfiguration(char *fname) {
+    int fd,num=0;
+    struct stat sbuf;
+    char *data,*line;
+    regex_t *regexp;
+    int lfac=-1,lpri=-1;
+    
+    if ((fd=open(fname,O_RDONLY))==-1) return;
+    if (fstat(fd,&sbuf)) {
+           close(fd);
+           return;
+    }
+    data=malloc(sbuf.st_size+1);
+    if (read(fd,data,sbuf.st_size)!=sbuf.st_size) {
+           close(fd);
+           free(data);
+           return;
+    }
+    close(fd);
+    data[sbuf.st_size] = '\0';
+    while ((line=getLine(&data))) {
+       if (line[0]=='#') continue;
+       if (!strncmp(line,"ignore ",7)) {
+           regexp = malloc(sizeof(regex_t));
+           if (!regcomp(regexp,line+7,REG_EXTENDED|REG_NOSUB|REG_NEWLINE)) {
+               regList = realloc(regList,(num+2) * sizeof(regex_t *));
+               regList[num] = regexp;
+               regList[num+1] = NULL;
+               num++;
+           }
+       }
+       if (!strncmp(line,"facility ",9)) {
+           lfac=atoi(line+9);
+           if ((lfac == 0) && strcmp(line+9,"0")) {
+               int x =0;
+               
+               lfac = LOG_DAEMON;
+               for (x=0;facilitynames[x].c_name;x++) {
+                   if (!strcmp(line+9,facilitynames[x].c_name)) {
+                       lfac = facilitynames[x].c_val;
+                       break;
+                   }
+               }
+           }
+       }
+       if (!strncmp(line,"priority ",9)) {
+           lpri = atoi(line+9);
+           if ((lpri == 0) && strcmp(line+9,"0")) {
+               int x=0;
+               
+               lpri = LOG_NOTICE;
+               for (x=0;prioritynames[x].c_name;x++) {
+                   if (!strcmp(line+9,prioritynames[x].c_name)) {
+                       lpri = prioritynames[x].c_val;
+                       break;
+                   }
+               }
+           }
+       }
+    }
+    if (lfac!=-1) logfacility=lfac;
+    if (lpri!=-1) logpriority=lpri;
+}
+    
+char *getLine(char **data) {
+    /* Get one line from data */
+    /* Anything up to a carraige return (\r) or a backspace (\b) is discarded. */
+    /* If this really bothers you, mail me and I might make it configurable. */
+    /* It's here to avoid confilcts with fsck's progress bar. */
+    char *x, *y;
+    
+    if (!*data) return NULL;
+    x=*data;
+    while (*x && (*x != '\n')) {
+       while (*x && (*x != '\n') && (*x != '\r') && (*x != '\b')) x++;
+       if (*x && (*x=='\r' || *x =='\b')) {
+               *data = x+1;
+               x++;
+       }
+    }
+    if (*x) {
+       x++;
+    } else {
+       if (x-*data) {
+           y=malloc(x-*data+1);
+           y[x-*data] = 0;
+           y[x-*data-1] = '\n';
+           memcpy(y,*data,x-*data);
+       } else {
+           y=NULL;
+       }
+       *data = NULL;
+       return y;
+    }
+    y = malloc(x-*data);
+    y[x-*data-1] = 0;
+    memcpy(y,*data,x-*data-1);
+    *data = x;
+    return y;
+}
+
+char **toArray(char *line, int *num) {
+    /* Converts a long string into an array of lines. */
+    char **lines;
+    char *tmpline;
+    
+    *num = 0;
+    lines = NULL;
+    
+    while ((tmpline=getLine(&line))) {
+       if (!*num)
+         lines = (char **) malloc(sizeof(char *));
+       else
+         lines = (char **) realloc(lines, (*num+1)*sizeof(char *));
+       lines[*num] = tmpline;
+       (*num)++;
+    }
+    return lines;
+}
+
+int startDaemon() {
+    int pid;
+    int rc;
+    
+    if ( (pid = fork()) == -1 ) {
+       perror("fork");
+       return -1;
+    }
+    if ( pid ) {
+       /* parent */
+       waitpid(pid,&rc,0);
+       if (WIFEXITED(rc)) {
+         DDEBUG("minilogd returned %d!\n",WEXITSTATUS(rc));
+         return WEXITSTATUS(rc);
+       }
+       else
+         return -1;
+    } else {
+       int fd;
+       
+       fd=open("/dev/null",O_RDWR);
+       dup2(fd,0);
+       dup2(fd,1);
+       dup2(fd,2);
+        close(fd);
+       /* kid */
+       execlp("minilogd","minilogd",NULL);
+       perror("exec");
+       exit(-1);
+    }
+}
+
+int trySocket() {
+       int s;
+       struct sockaddr_un addr;
+       
+       s = socket(AF_LOCAL, SOCK_DGRAM, 0);
+       if (s<0)
+         return 1;
+   
+       bzero(&addr,sizeof(addr));
+       addr.sun_family = AF_LOCAL;
+       strncpy(addr.sun_path,_PATH_LOG,sizeof(addr.sun_path)-1);
+
+       if (connect(s,(struct sockaddr *) &addr,sizeof(addr))<0) {
+               if (errno == EPROTOTYPE || errno == ECONNREFUSED) {
+                       DDEBUG("connect failed (EPROTOTYPE), trying stream\n");
+                       close(s);
+                       s = socket(AF_LOCAL, SOCK_STREAM, 0);
+                       if (connect(s,(struct sockaddr *) &addr, sizeof(addr)) < 0) {
+                               DDEBUG("connect failed: %s\n",strerror(errno));
+                               close(s);
+                               return 1;
+                       } 
+                       close(s);
+                       return 0;
+               }
+               close(s);
+               DDEBUG("connect failed: %s\n",strerror(errno));
+               return 1;
+       } else {
+               close(s);
+               return 0;
+       }
+}
+
+int logLine(struct logInfo *logEnt) {
+    /* Logs a line... somewhere. */
+    int x;
+    struct stat statbuf;
+    
+    /* Don't log empty or null lines */
+    if (!logEnt->line || !strcmp(logEnt->line,"\n")) return 0;
+    
+       
+    if  ( ((stat(_PATH_LOG,&statbuf)==-1) || trySocket())
+         && startDaemon()
+       ) {
+       DDEBUG("starting daemon failed, pooling entry %d\n",logEntries);
+       logData=realloc(logData,(logEntries+1)*sizeof(struct logInfo));
+       logData[logEntries]= (*logEnt);
+       logEntries++;
+    } else {
+       if (logEntries>0) {
+           for (x=0;x<logEntries;x++) {
+               DDEBUG("flushing log entry %d =%s=\n",x,logData[x].line);
+               openlog(logData[x].cmd,0,logData[x].fac);
+               syslog(logData[x].pri,"%s",logData[x].line);
+               closelog();
+           }
+           free(logData);
+           logEntries = 0;
+       }
+       DDEBUG("logging =%s= via syslog\n",logEnt->line);
+       openlog(logEnt->cmd,0,logEnt->fac);
+       syslog(logEnt->pri,"%s",logEnt->line);
+       closelog();
+    }
+    return 0;
+}
+
+int logEvent(char *cmd, int eventtype,char *string) {
+    char *eventtable [] = {
+       _("%s babbles incoherently"),
+       _("%s succeeded"),
+       _("%s failed"),
+       _("%s cancelled at user request"),
+       _("%s failed due to a failed dependency"),
+       /* insert more here */
+       NULL
+    };
+    int x=0,len;
+    struct logInfo logentry;
+    
+    if (cmd) {
+       logentry.cmd = strdup(basename(cmd));
+       if ((logentry.cmd[0] =='K' || logentry.cmd[0] == 'S') &&
+           ( logentry.cmd[1] >= '0' && logentry.cmd[1] <= '9' ) &&
+           ( logentry.cmd[2] >= '0' && logentry.cmd[2] <= '9' ) )
+         logentry.cmd+=3;
+    } else
+      logentry.cmd = strdup(_("(none)"));
+    if (!string)
+      string = strdup(cmd);
+    
+    while (eventtable[x] && x<eventtype) x++;
+    if (!(eventtable[x])) x=0;
+    
+    len=strlen(eventtable[x])+strlen(string);
+    logentry.line=malloc(len);
+    snprintf(logentry.line,len,eventtable[x],string);
+    
+    logentry.pri = logpriority;
+    logentry.fac = logfacility;
+    
+    return logLine(&logentry);
+}
+
+int logString(char *cmd, char *string) {
+    struct logInfo logentry;
+    
+    if (cmd) {
+       logentry.cmd = strdup(basename(cmd));
+       if ((logentry.cmd[0] =='K' || logentry.cmd[0] == 'S') && 
+           ( logentry.cmd[1] >= '0' && logentry.cmd[1] <= 0x39 ) &&
+           ( logentry.cmd[2] >= '0' && logentry.cmd[2] <= 0x39 ) )
+         logentry.cmd+=3;
+    } else
+      logentry.cmd = strdup(_(""));
+    logentry.line = strdup(string);
+    logentry.pri = logpriority;
+    logentry.fac = logfacility;
+    
+    return logLine(&logentry);
+}
+
+int processArgs(int argc, char **argv, int silent) {
+    char *cmdname=NULL;
+    char *conffile=NULL;
+    int cmdevent=0;
+    char *cmd=NULL;
+    char *logstring=NULL;
+    char *fac=NULL,*pri=NULL;
+    int lfac=-1, lpri=-1;
+    poptContext context;
+    int rc;
+    struct poptOption optTable[] = {
+       POPT_AUTOHELP
+       { "conf", 0, POPT_ARG_STRING, &conffile, 0,
+         "configuration file (default: /etc/initlog.conf)", NULL
+       },
+       { "name", 'n', POPT_ARG_STRING, &cmdname, 0,
+         "name of service being logged", NULL 
+       },
+       { "event", 'e', POPT_ARG_INT, &cmdevent, 0,
+         "event being logged (see man page)", NULL
+       },
+       { "cmd", 'c', POPT_ARG_STRING, &cmd, 0,
+         "command to run, logging output", NULL
+       },
+        { "debug", 'd', POPT_ARG_NONE, &debug, 0,
+         "print lots of verbose debugging info", NULL
+       },
+       { "run", 'r', POPT_ARG_STRING, &cmd, 3,
+         "command to run, accepting input on open fd", NULL
+       },
+       { "string", 's', POPT_ARG_STRING, &logstring, 0,
+         "string to log", NULL
+       },
+       { "facility", 'f', POPT_ARG_STRING, &fac, 1,
+         "facility to log at (default: 'local7')", NULL
+       },
+       { "priority", 'p', POPT_ARG_STRING, &pri, 2,
+         "priority to log at (default: 'notice')", NULL
+       },
+        { "quiet", 'q', POPT_ARG_NONE, &quiet, 0,
+         "suppress stdout/stderr", NULL
+       },
+        { 0, 0, 0, 0, 0, 0 }
+    };
+    
+    context = poptGetContext("initlog", argc, argv, optTable, 0);
+    
+    while ((rc = poptGetNextOpt(context)) > 0) {
+       switch (rc) {
+        case 1:
+           lfac=atoi(fac);
+           if ((lfac == 0) && strcmp(fac,"0")) {
+               int x =0;
+               
+               lfac = LOG_DAEMON;
+               for (x=0;facilitynames[x].c_name;x++) {
+                   if (!strcmp(fac,facilitynames[x].c_name)) {
+                       lfac = facilitynames[x].c_val;
+                       break;
+                   }
+               }
+           }
+           break;
+        case 2:
+           lpri = atoi(pri);
+           if ((lpri == 0) && strcmp(pri,"0")) {
+               int x=0;
+               
+               lpri = LOG_NOTICE;
+               for (x=0;prioritynames[x].c_name;x++) {
+                   if (!strcmp(pri,prioritynames[x].c_name)) {
+                       lpri = prioritynames[x].c_val;
+                       break;
+                   }
+               }
+           }
+           break;
+        case 3:
+           reexec = 1;
+           break;
+        default:
+           break;
+       }
+    }
+      
+    if ((rc < -1)) {
+       if (!silent)
+        fprintf(stderr, "%s: %s\n",
+               poptBadOption(context, POPT_BADOPTION_NOALIAS),
+               poptStrerror(rc));
+       
+       return -1;
+    }
+    if ( (cmd && logstring) || (cmd && cmdname) ) {
+        if (!silent)
+        fprintf(stderr, _("--cmd and --run are incompatible with --string or --name\n"));
+       return -1;
+    }
+    if ( cmdname && (!logstring && !cmdevent)) {
+        if (!silent)
+        fprintf(stderr, _("--name requires one of --event or --string\n"));
+       return -1;
+    }
+    if (cmdevent && cmd) {
+           if (!silent)
+             fprintf(stderr, _("--cmd and --run are incompatible with --event\n"));
+           return -1;
+    }
+    if (conffile) {
+       readConfiguration(conffile);
+    } else {
+       readConfiguration("/etc/initlog.conf");
+    }
+    if (cmd) {
+           while (isspace(*cmd)) cmd++;
+    }
+    if (lpri!=-1) logpriority=lpri;
+    if (lfac!=-1) logfacility=lfac;
+    if (cmdevent) {
+       logEvent(cmdname,cmdevent,logstring);
+    } else if (logstring) {
+       logString(cmdname,logstring);
+    } else if ( cmd && *cmd) {
+       return(runCommand(cmd,reexec,quiet,debug));
+    } else {
+        if (!silent)
+        fprintf(stderr,"nothing to do!\n");
+       return -1;
+    }
+   return 0;
+}
+
+int main(int argc, char **argv) {
+
+    setlocale(LC_ALL,"");
+    bindtextdomain("initlog","/etc/locale");
+    textdomain("initlog");
+    exit(processArgs(argc,argv,0));
+}
diff --git a/trunk/src/initlog.conf b/trunk/src/initlog.conf
new file mode 100644 (file)
index 0000000..4505c7d
--- /dev/null
@@ -0,0 +1,23 @@
+# /etc/initlog.conf
+#
+# initlog configuration file
+# 
+# lines preceded by a '#' are comments
+#
+# anything not recognized is ignored. :)
+
+# This sets the default logging facility. (can override with command line arguments)
+facility local7
+
+# This sets the default logging priority. (can override with command line arguments)
+priority notice
+
+# ignore foo
+# means to discard any output lines that match the regular expression foo
+
+# This regexp is useful if you use fsck's -C option. 
+ignore [^:]+: \|[=]+
+# This regexp is useful for fsck's feature of setting file types
+ignore [^:]+: Setting filetype
+# This regexp is useful for quotacheck
+ignore ^[-\\\|\/]$
diff --git a/trunk/src/initlog.h b/trunk/src/initlog.h
new file mode 100644 (file)
index 0000000..94f467b
--- /dev/null
@@ -0,0 +1,20 @@
+
+#define _GNU_SOURCE    1
+
+#ifndef INITLOG_H
+#define INITLOG_H
+
+struct logInfo {
+    char *cmd;
+    char *line;
+    int fac;
+    int pri;
+};
+
+char *getLine(char **data);
+int logString(char *cmd, char *string);
+int processArgs(int argc, char **argv, int silent);
+
+#define DDEBUG  if (debug) printf
+
+#endif
diff --git a/trunk/src/ipcalc.c b/trunk/src/ipcalc.c
new file mode 100644 (file)
index 0000000..f133412
--- /dev/null
@@ -0,0 +1,361 @@
+/*
+ * Copyright (c) 1997-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ * 
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Authors:
+ *   Erik Troan <ewt@redhat.com>
+ *   Preston Brown <pbrown@redhat.com>
+ */
+     
+
+#include <ctype.h>
+#include <popt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+/*!
+  \def IPBITS
+  \brief the number of bits in an IP address.
+*/
+#define IPBITS (sizeof(u_int32_t) * 8)
+/*!
+  \def IPBYTES
+  \brief the number of bytes in an IP address.
+*/
+#define IPBYTES (sizeof(u_int32_t))
+
+
+/*!
+  \file ipcalc.c
+  \brief provides utilities for manipulating IP addresses.
+
+  ipcalc provides utilities and a front-end command line interface for
+  manipulating IP addresses, and calculating various aspects of an ip
+  address/netmask/network address/prefix/etc.
+
+  Functionality can be accessed from other languages from the library
+  interface, documented here.  To use ipcalc from the shell, read the
+  ipcalc(1) manual page.
+
+  When passing parameters to the various functions, take note of whether they
+  take host byte order or network byte order.  Most take host byte order, and
+  return host byte order, but there are some exceptions.
+  
+*/
+
+/*!
+  \fn u_int32_t prefix2mask(int bits)
+  \brief creates a netmask from a specified number of bits
+  
+  This function converts a prefix length to a netmask.  As CIDR (classless
+  internet domain internet domain routing) has taken off, more an more IP
+  addresses are being specified in the format address/prefix
+  (i.e. 192.168.2.3/24, with a corresponding netmask 255.255.255.0).  If you
+  need to see what netmask corresponds to the prefix part of the address, this
+  is the function.  See also \ref mask2prefix.
+  
+  \param prefix is the number of bits to create a mask for.
+  \return a network mask, in network byte order.
+*/
+u_int32_t prefix2mask(int prefix) {
+    return htonl(~((1 << (32 - prefix)) - 1));
+}
+
+/*!
+  \fn int mask2prefix(u_int32_t mask)
+  \brief calculates the number of bits masked off by a netmask.
+
+  This function calculates the significant bits in an IP address as specified by
+  a netmask.  See also \ref prefix2mask.
+
+  \param mask is the netmask, specified as an u_int32_teger in network byte order.
+  \return the number of significant bits.  */
+int mask2prefix(u_int32_t mask)
+{
+    int i;
+    int count = IPBITS;
+       
+    for (i = 0; i < IPBITS; i++) {
+       if (!(ntohl(mask) & ((2 << i) - 1)))
+           count--;
+    }
+
+    return count;
+}
+
+/*!
+  \fn u_int32_t default_netmask(u_int32_t addr)
+
+  \brief returns the default (canonical) netmask associated with specified IP
+  address.
+
+  When the Internet was originally set up, various ranges of IP addresses were
+  segmented into three network classes: A, B, and C.  This function will return
+  a netmask that is associated with the IP address specified defining where it
+  falls in the predefined classes.
+
+  \param addr an IP address in network byte order.
+  \return a netmask in network byte order.  */
+u_int32_t default_netmask(u_int32_t addr)
+{
+    if (((ntohl(addr) & 0xFF000000) >> 24) <= 127)
+       return htonl(0xFF000000);
+    else if (((ntohl(addr) & 0xFF000000) >> 24) <= 191)
+       return htonl(0xFFFF0000);
+    else
+       return htonl(0xFFFFFF00);
+}
+
+/*!
+  \fn u_int32_t calc_broadcast(u_int32_t addr, int prefix)
+
+  \brief calculate broadcast address given an IP address and a prefix length.
+
+  \param addr an IP address in network byte order.
+  \param prefix a prefix length.
+  
+  \return the calculated broadcast address for the network, in network byte
+  order.
+*/
+u_int32_t calc_broadcast(u_int32_t addr,
+                                int prefix)
+{  
+    return (addr & prefix2mask(prefix)) | ~prefix2mask(prefix);
+}
+
+/*!
+  \fn u_int32_t calc_network(u_int32_t addr, int prefix)
+  \brief calculates the network address for a specified address and prefix.
+
+  \param addr an IP address, in network byte order
+  \param prefix the network prefix
+  \return the base address of the network that addr is associated with, in
+  network byte order.
+*/
+u_int32_t calc_network(u_int32_t addr, int prefix)
+{
+    return (addr & prefix2mask(prefix));
+}
+
+/*!
+  \fn const char *get_hostname(u_int32_t addr)
+  \brief returns the hostname associated with the specified IP address
+
+  \param addr an IP address to find a hostname for, in network byte order
+
+  \return a hostname, or NULL if one cannot be determined.  Hostname is stored
+  in a static buffer that may disappear at any time, the caller should copy the
+  data if it needs permanent storage.
+*/
+const char *get_hostname(u_int32_t addr)
+{
+    struct hostent * hostinfo;
+    int x;
+    
+    hostinfo = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET);
+    if (!hostinfo)
+       return NULL;
+
+    for (x=0; hostinfo->h_name[x]; x++) {
+       hostinfo->h_name[x] = tolower(hostinfo->h_name[x]);
+    }
+    return hostinfo->h_name;
+}
+
+/*!
+  \fn main(int argc, const char **argv)
+  \brief wrapper program for ipcalc functions.
+  
+  This is a wrapper program for the functions that the ipcalc library provides.
+  It can be used from shell scripts or directly from the command line.
+  
+  For more information, please see the ipcalc(1) man page.
+*/
+int main(int argc, const char **argv) {
+    int showBroadcast = 0, showPrefix = 0, showNetwork = 0;
+    int showHostname = 0, showNetmask = 0;
+    int beSilent = 0;
+    int rc;
+    poptContext optCon;
+    char *ipStr, *prefixStr, *netmaskStr, *hostName, *chptr;
+    struct in_addr ip, netmask, network, broadcast;
+    int prefix = 0;
+    char errBuf[250];
+    struct poptOption optionsTable[] = {
+           { "broadcast", 'b', 0, &showBroadcast, 0,
+               "Display calculated broadcast address", },
+           { "hostname", 'h', 0, &showHostname, 0,
+               "Show hostname determined via DNS" },
+           { "netmask", 'm', 0, &showNetmask, 0,
+               "Display default netmask for IP (class A, B, or C)" },
+           { "network", 'n', 0, &showNetwork, 0,
+               "Display network address", },
+           { "prefix", 'p', 0, &showPrefix, 0,
+             "Display network prefix", },
+           { "silent", 's', 0, &beSilent, 0,
+               "Don't ever display error messages " },
+           POPT_AUTOHELP
+           { NULL, '\0', 0, 0, 0, NULL, NULL }
+    };
+
+    optCon = poptGetContext("ipcalc", argc, argv, optionsTable, 0);
+    poptReadDefaultConfig(optCon, 1);
+
+    if ((rc = poptGetNextOpt(optCon)) < -1) {
+       if (!beSilent) {
+           fprintf(stderr, "ipcalc: bad argument %s: %s\n", 
+                   poptBadOption(optCon, POPT_BADOPTION_NOALIAS), 
+                   poptStrerror(rc));
+           poptPrintHelp(optCon, stderr, 0);
+       }
+       return 1;
+    }
+
+    if (!(ipStr = (char *) poptGetArg(optCon))) {
+       if (!beSilent) {
+           fprintf(stderr, "ipcalc: ip address expected\n");
+           poptPrintHelp(optCon, stderr, 0);
+       }
+       return 1;
+    }
+
+    if (strchr(ipStr,'/') != NULL) {
+       prefixStr = strchr(ipStr, '/') + 1;
+       prefixStr--;
+       *prefixStr = '\0';  /* fix up ipStr */
+       prefixStr++;
+    } else
+       prefixStr = NULL;
+    
+    if (prefixStr != NULL) {
+       prefix = atoi(prefixStr);
+       if (prefix == 0) {
+           if (!beSilent)
+               fprintf(stderr, "ipcalc: bad prefix: %s\n",
+                       prefixStr);
+           return 1;
+       }
+    }
+       
+    if (showBroadcast || showNetwork || showPrefix) {
+       if (!(netmaskStr = (char *) poptGetArg(optCon)) &&
+           (prefix == 0)) {
+           if (!beSilent) {
+               fprintf(stderr, "ipcalc: netmask or prefix expected\n");
+               poptPrintHelp(optCon, stderr, 0);
+           }
+           return 1;
+       } else if (netmaskStr && prefix != 0) {
+           if (!beSilent) {
+                   fprintf(stderr, "ipcalc: both netmask and prefix specified\n");
+                   poptPrintHelp(optCon, stderr, 0);
+           }
+           return 1;
+       } else if (netmaskStr) {
+           if (!inet_aton(netmaskStr, &netmask)) {
+               if (!beSilent)
+                   fprintf(stderr, "ipcalc: bad netmask: %s\n",
+                           netmaskStr);
+               return 1;
+           }
+           prefix = mask2prefix(netmask.s_addr);
+       }
+    }
+
+    if ((chptr = (char *) poptGetArg(optCon))) {
+       if (!beSilent) {
+           fprintf(stderr, "ipcalc: unexpected argument: %s\n", chptr);
+           poptPrintHelp(optCon, stderr, 0);
+       }
+       return 1;
+    }
+
+    /* Handle CIDR entries such as 172/8 */
+    if (prefix) {
+       char *tmp = ipStr;
+       int i;
+           
+       for(i=3; i> 0; i--) {
+               tmp = strchr(tmp,'.');
+               if (!tmp) 
+                       break;
+               else
+                       tmp++;
+       }
+       tmp = NULL;
+       for (; i>0; i--) {
+          tmp = malloc(strlen(ipStr) + 3);
+          sprintf(tmp,"%s.0",ipStr);
+          ipStr = tmp;
+       }
+    }
+
+    if (!inet_aton(ipStr, (struct in_addr *) &ip)) {
+       if (!beSilent)
+           fprintf(stderr, "ipcalc: bad ip address: %s\n", ipStr);
+       return 1;
+    }
+
+    
+    if (!(showNetmask|showPrefix|showBroadcast|showNetwork|showHostname)) {
+           poptPrintHelp(optCon, stderr, 0);
+           return 1;
+    }
+
+    poptFreeContext(optCon);
+
+    /* we know what we want to display now, so display it. */
+
+    if (showNetmask) {
+       if (prefix) {
+           netmask.s_addr = prefix2mask(prefix);
+       } else {
+           netmask.s_addr = default_netmask(ip.s_addr);
+           prefix = mask2prefix(netmask.s_addr);
+       }
+
+       printf("NETMASK=%s\n", inet_ntoa(netmask));
+    }
+
+    if (showPrefix) {
+       if (!prefix)
+           prefix = mask2prefix(ip.s_addr);
+       printf("PREFIX=%d\n", prefix);
+    }
+           
+    if (showBroadcast) {
+       broadcast.s_addr = calc_broadcast(ip.s_addr, prefix);
+       printf("BROADCAST=%s\n", inet_ntoa(broadcast));
+    }
+
+    if (showNetwork) {
+       network.s_addr = calc_network(ip.s_addr, prefix);
+       printf("NETWORK=%s\n", inet_ntoa(network));
+    }
+    
+    if (showHostname) {        
+       if ((hostName = (char *) get_hostname(ip.s_addr)) == NULL) {
+           if (!beSilent) {
+               sprintf(errBuf, "ipcalc: cannot find hostname for %s", ipStr);
+               herror(errBuf);
+           }
+           return 1;
+       }
+       
+       printf("HOSTNAME=%s\n", hostName);
+    }
+       
+    return 0;
+}
diff --git a/trunk/src/loglevel.c b/trunk/src/loglevel.c
new file mode 100644 (file)
index 0000000..de2a4e1
--- /dev/null
@@ -0,0 +1,25 @@
+
+/* Change the default console loglevel */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <linux/unistd.h>
+#include <sys/syscall.h>
+
+int main(int argc, char **argv) {
+   int level;
+
+   if (!argv[1]) exit(0);
+   level=atoi(argv[1]);
+   if ( (level<1) || (level>8) ) {
+      fprintf(stderr,"invalid log level %d\n",level);
+      exit(-1);
+   }
+   if (!syscall(SYS_syslog,8,NULL,level)) {
+      exit(0);
+   } else {
+      perror("syslog");
+      exit(-1);
+   }
+}
diff --git a/trunk/src/minilogd.c b/trunk/src/minilogd.c
new file mode 100644 (file)
index 0000000..8543097
--- /dev/null
@@ -0,0 +1,187 @@
+/* minilogd.c
+ * 
+ * A pale imitation of syslogd. Most notably, doesn't write anything
+ * anywhere except possibly back to syslogd.
+ *
+ * Copyright (c) 1999-2001 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <syslog.h>
+#include <unistd.h>
+
+#include <sys/poll.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/un.h>
+
+static int we_own_log=0;
+static char **buffer=NULL;
+static int buflines=0;
+
+int debug;
+
+int recvsock;
+
+void alarm_handler(int x) {
+       alarm(0);
+       close(recvsock);
+       recvsock = -1;
+}
+
+void freeBuffer() {
+   struct sockaddr_un addr;
+   int sock;
+   int x=0,conn;
+   
+   bzero(&addr,sizeof(addr));
+   addr.sun_family = AF_LOCAL;
+   strncpy(addr.sun_path,_PATH_LOG,sizeof(addr.sun_path)-1);
+   /* wait for klogd to hit syslog */
+   sleep(2);
+   sock = socket(AF_LOCAL, SOCK_DGRAM,0);
+   conn=connect(sock,(struct sockaddr *) &addr,sizeof(addr));
+   while (x<buflines) {
+      if (!conn) write(sock,buffer[x],strlen(buffer[x])+1);
+      free(buffer[x]);
+      x++;
+   }
+}
+
+void cleanup(int exitcode) {
+   /* If we own the log, unlink it before trying to free our buffer.
+    * Otherwise, sending the buffer to /dev/log doesn't make much sense.... */
+   if (we_own_log) {
+      perror("wol");
+      unlink(_PATH_LOG);
+   }
+   /* Don't try to free buffer if we were called from a signal handler */
+   if (exitcode<=0) {
+       if (buffer) freeBuffer();
+       exit(exitcode);
+   } else
+      exit(exitcode+128);
+}
+
+void runDaemon(int sock) {
+   struct sockaddr_un addr;
+   int x,len,done=0;
+   int addrlen = sizeof(struct sockaddr_un);
+   char *message;
+   struct stat s1,s2;
+   struct pollfd pfds;
+    
+    daemon(0,-1);
+    /* try not to leave stale sockets lying around */
+    /* Hopefully, we won't actually get any of these */
+    signal(SIGHUP,cleanup);
+    signal(SIGINT,cleanup);
+    signal(SIGQUIT,cleanup);
+    signal(SIGILL,cleanup);
+    signal(SIGABRT,cleanup);
+    signal(SIGFPE,cleanup);
+    signal(SIGSEGV,cleanup);
+    signal(SIGPIPE,cleanup);
+    signal(SIGBUS,cleanup);
+    signal(SIGTERM,cleanup);
+   done = 0;
+   /* Get stat info on /dev/log so we can later check to make sure we
+    * still own it... */
+   if (stat(_PATH_LOG,&s1) != 0)
+         memset(&s1, '\0', sizeof(struct stat));
+   while (!done) {
+      pfds.fd = sock;
+      pfds.events = POLLIN|POLLPRI;
+      if ( ( (x=poll(&pfds,1,500))==-1) && errno !=EINTR) {
+        perror("poll");
+        cleanup(-1);
+      }
+      if ( (x>0) && pfds.revents & (POLLIN | POLLPRI)) {
+        message = calloc(8192,sizeof(char));
+        addrlen = sizeof(struct sockaddr_un);
+        recvsock = accept(sock,(struct sockaddr *) &addr, &addrlen);
+        if (recvsock == -1)
+                     continue;
+        alarm(2);
+        signal(SIGALRM, alarm_handler);
+        len = recv(recvsock,message,8192,0);
+        alarm(0);
+        close(recvsock);
+        if (len>0) {
+                if (buflines < 200000) {
+                        if (buffer)
+                          buffer = realloc(buffer,(buflines+1)*sizeof(char *));
+                        else
+                          buffer = malloc(sizeof(char *));
+                        message[strlen(message)]='\n';
+                        buffer[buflines]=message;
+                        buflines++;
+                }
+        }
+        else {
+           recvsock=-1;
+        }
+      }
+      if ( (x>0) && ( pfds.revents & (POLLHUP | POLLNVAL)) )
+       done = 1;
+      /* Check to see if syslogd's yanked our socket out from under us */
+      if ( (stat(_PATH_LOG,&s2)!=0) ||
+           (s1.st_ino != s2.st_ino ) || (s1.st_ctime != s2.st_ctime) ||
+           (s1.st_mtime != s2.st_mtime) ) {
+        done = 1;
+        we_own_log = 0;
+      }
+   }
+   cleanup(0);
+}
+
+int main(int argc, char **argv) {
+   struct sockaddr_un addr;
+   int sock;
+   int pid;
+    
+   /* option processing made simple... */
+   if (argc>1) debug=1;
+   /* just in case */
+   sock = open("/dev/null",O_RDWR);
+   dup2(sock,0);
+   dup2(sock,1);
+   dup2(sock,2);
+   close(sock);
+       
+   bzero(&addr, sizeof(addr));
+   addr.sun_family = AF_LOCAL;
+   strncpy(addr.sun_path,_PATH_LOG,sizeof(addr.sun_path)-1);
+   sock = socket(AF_LOCAL, SOCK_STREAM,0);
+   unlink(_PATH_LOG);
+   /* Bind socket before forking, so we know if the server started */
+   if (!bind(sock,(struct sockaddr *) &addr, sizeof(addr))) {
+      we_own_log = 1;
+      listen(sock,5);
+      if ((pid=fork())==-1) {
+        perror("fork");
+        exit(3);
+      }
+      if (pid) {
+        exit(0);
+      } else {
+         runDaemon(sock);
+         /* shouldn't get back here... */
+         exit(4);
+      }
+   } else {
+      exit(5);
+   }
+}
diff --git a/trunk/src/netreport.c b/trunk/src/netreport.c
new file mode 100644 (file)
index 0000000..6eb220c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 1997-2002 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* this will be running setgid root, so be careful! */
+
+static void
+usage(void) {
+    fprintf(stderr, "usage: netreport [-r]\n");
+    exit(1);
+}
+
+#define ADD 1
+#define DEL 0
+int main(int argc, char ** argv) {
+    int action = ADD;
+    /* more than long enough for "/var/run/netreport/<pid>\0" */
+    char netreport_name[64];
+    int  netreport_file;
+
+    if (argc > 2) {
+       usage();
+    }
+
+    if (argc > 1) {
+         if (argc == 2 && strcmp(argv[1], "-r") == 0) {
+                 action = DEL;
+         } else {
+                 usage();
+         }
+    }
+
+    snprintf(netreport_name, sizeof(netreport_name),
+            "/var/run/netreport/%d", getppid());
+    if (action == ADD) {
+       netreport_file = open(netreport_name,
+                             O_EXCL|O_CREAT|O_WRONLY|O_TRUNC|O_NOFOLLOW, 0);
+       if (netreport_file == -1) {
+           if (errno != EEXIST) {
+               perror("Could not create netreport file");
+               exit (1);
+           }
+       } else {
+           close(netreport_file);
+       }
+    } else {
+       /* ignore errors; not much we can do, won't hurt anything */
+       unlink(netreport_name);
+    }
+
+    return 0;
+}
diff --git a/trunk/src/ppp-watch.c b/trunk/src/ppp-watch.c
new file mode 100644 (file)
index 0000000..4a08d78
--- /dev/null
@@ -0,0 +1,786 @@
+/*
+ * ppp-watch.c
+ *
+ * Bring up a PPP connection and Do The Right Thing[tm] to make bringing
+ * the connection up or down with ifup and ifdown syncronous.  Takes
+ * one argument: the logical name of the device to bring up.  Does not
+ * detach until the interface is up or has permanently failed to come up.
+ *
+ * Copyright 1999-2003 Red Hat, Inc.
+ *
+ * This 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+/* Algorithm:
+ *   fork
+ *   if child:
+ *     Register with netreport.  (now exit implies deregister first)
+ *     fork/exec ifup-ppp daemon <interface>
+ *   else:
+ *     while (1):
+ *       sigsuspend()
+ *       if SIGTERM or SIGINT:
+ *         kill pppd pgrp
+ *         exit
+ *       if SIGHUP:
+ *         reload ifcfg files
+ *         kill pppd pgrp
+ *         wait for SIGCHLD to redial
+ *       if SIGIO:
+ *         if no physical device found: continue
+ *         elif physical device is down:
+ *           wait for pppd to exit to redial if appropriate
+ *         else: (physical device is up)
+ *           detach; continue
+ *       if SIGCHLD: (pppd exited)
+ *         wait()
+ *         if pppd exited:
+ *           if PERSIST: redial
+ *           else: exit
+ *         else: (pppd was killed)
+ *           exit
+ *
+ *
+ * When ppp-watch itself dies for reasons of its own, it uses a return code
+ * higher than 25 so as not to clash with pppd return codes, which, as of
+ * this writing, range from 0 to 19.
+ */
+
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/resource.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <termios.h>
+#include <net/if.h>
+#include <glib.h>
+#include "shvar.h"
+
+#define IFCFGPREFIX "/etc/sysconfig/interfaces/ifcfg-"
+#define IFUP_PPP "/lib/rc-scripts/ifup-ppp"
+
+static int theSigterm = 0;
+static int theSigint = 0;
+static int theSighup = 0;
+static int theSigio = 0;
+static int theSigchld = 0;
+static int theSigalrm = 0;
+static int pipeArray[2];
+
+// patch to respect the maxfail parameter to ppp
+// Scott Sharkey <ssharkey@linux-no-limits.com>
+static int dialCount = 0;
+static int theChild;
+static void failureExit(int exitCode);
+
+static void
+interrupt_child(int signo) {
+    kill(theChild, SIGINT);
+}
+
+static void
+set_signal(int signo, void (*handler)(int)) {
+    struct sigaction act;
+    act.sa_handler = handler;
+    act.sa_flags = SA_RESTART;
+    sigemptyset(&act.sa_mask);
+    sigaction(signo, &act, NULL);
+}
+
+/* Create a pipe, and fork off a child.  This is the end of the road for
+ * the parent, which will wait for an exit status byte on the pipe (which
+ * is written by the child). */
+static void
+detach(char *device) {
+    pid_t childpid;
+    unsigned char exitCode;
+    int fd;
+
+    if (pipe(pipeArray) == -1)
+       exit(25);
+
+    childpid = fork();
+    if (childpid == -1)
+       exit(26);
+
+    if (childpid != 0) {
+        /* The parent only cares about notifications from the child. */
+        close (pipeArray[1]);
+
+        /* Certain signals are meant for our child, the watcher process. */
+        theChild = childpid;
+        set_signal(SIGINT, interrupt_child);
+        set_signal(SIGTERM, interrupt_child);
+        set_signal(SIGHUP, interrupt_child);
+
+        /* Read the pipe until the child gives us an exit code as a byte. */
+        while (read (pipeArray[0], &exitCode, 1) == -1) {
+           switch (errno) {
+               case EINTR: continue;
+               default: exit (27); /* this will catch EIO in particular */
+           }
+        }
+        switch (exitCode) {
+            case 0:
+               break;
+           case 33:
+               fprintf(stderr, "%s already up, initiating redial\n", device);
+               break;
+           case 34:
+               fprintf(stderr, "Failed to activate %s, retrying in the background\n", device);
+               break;
+           default:
+               fprintf(stderr, "Failed to activate %s with error %d\n", device, exitCode);
+               break;
+         }
+         exit(exitCode);
+    }
+
+    /* We're in the child process, which only writes the exit status
+     * of the pppd process to its parent (i.e., it reads nothing). */
+    close (pipeArray[0]);
+
+    /* Don't leak this into programs we call. */
+    fcntl(pipeArray[1], F_SETFD, FD_CLOEXEC);
+
+    /* Redirect stdio to /dev/null. */
+    fd = open("/dev/null", O_RDONLY);
+    dup2(fd, STDIN_FILENO);
+    close(fd);
+
+    fd = open("/dev/null", O_WRONLY);
+    dup2(fd, STDOUT_FILENO);
+    dup2(fd, STDERR_FILENO);
+    close(fd);
+
+    /* Become session and process group leader. */
+    setsid();
+    setpgid(0, 0);
+}
+
+/* Do magic with the pid file (/var/run/pppwatch-$DEVICE.pid):
+ * Try to open it for writing.  If it exists, send a SIGHUP to whatever PID
+ * is already listed in it and remove it.  Repeat until we can open it.
+ * Write out our PID, and return. */
+static void
+doPidFile(char *device) {
+    static char pidFilePath[PATH_MAX] = "";
+    int fd = -1;
+    FILE *f = NULL;
+    pid_t pid = 0;
+
+    if (device == NULL) {
+        /* Remove an existing pid file -- we're exiting. */
+       if(strlen(pidFilePath) > 0) {
+            unlink(pidFilePath);
+       }
+    } else  {
+       /* Set up the name of the pid file, used only the first time. */
+        snprintf(pidFilePath, sizeof(pidFilePath), "/var/run/pppwatch-%s.pid",
+                device);
+
+       /* Create the pid file. */
+        do {
+           fd = open(pidFilePath, O_WRONLY|O_TRUNC|O_CREAT|O_EXCL|O_NOFOLLOW,
+                     S_IRUSR|S_IWUSR | S_IRGRP | S_IROTH);
+           if(fd == -1) {
+               /* Try to open the file for read. */
+               fd = open(pidFilePath, O_RDONLY);
+               if(fd == -1)
+                   failureExit(36); /* This is not good. */
+
+               /* We're already running, send a SIGHUP (we presume that they
+                * are calling ifup for a reason, so they probably want to
+                * redial) and then exit cleanly and let things go on in the
+                * background.  Muck with the filename so that we don't go
+                * deleting the pid file for the already-running instance.
+                */
+               f = fdopen(fd, "r");
+               if(f == NULL)
+                   failureExit(37);
+
+               pid = 0;
+               fscanf(f, "%d", &pid);
+               fclose(f);
+
+               if(pid) {
+                    /* Try to kill it. */
+                   if (kill(pid, SIGHUP) == -1) {
+                       /* No such pid, remove the bogus pid file. */
+                       unlink(pidFilePath);
+                   } else {
+                       /* Got it.  Don't mess with the pid file on
+                        * our way out. */
+                       memset(pidFilePath, '\0', sizeof(pidFilePath));
+                        failureExit(33);
+                   }
+               }
+           }
+       } while(fd == -1);
+
+       f = fdopen(fd, "w");
+       if(f == NULL)
+           failureExit(31);
+       fprintf(f, "%d\n", getpid());
+       fclose(f);
+    }
+}
+
+/* Fork off and exec() a child process.  If reap_child is non-zero,
+ * wait for the child to exit and return 0 if it ran successfully,
+ * otherwise return 0 right away and let the SIGCHLD handler deal. */
+static int
+fork_exec(gboolean reap, char *path, char *arg1, char *arg2, char *arg3)
+{
+    pid_t childpid;
+    int status;
+
+    sigset_t sigs;
+
+    childpid = fork();
+    if (childpid == -1)
+       exit(26);
+
+    if (childpid == 0) {
+       /* Do the exec magic.  Prepare by clearing the signal mask for pppd. */
+       sigemptyset(&sigs);
+       sigprocmask(SIG_SETMASK, &sigs, NULL);
+
+       if (!reap) {
+           /* Make sure that the pppd is the leader for its process group. */
+           setsid();
+           setpgid(0, 0);
+       }
+
+       execl(path, path, arg1, arg2, arg3, NULL);
+       perror(path);
+       _exit (1);
+    }
+
+    if (reap) {
+       waitpid (childpid, &status, 0);
+       if (WIFEXITED(status) && (WEXITSTATUS(status) == 0)) {
+           return 0;
+       } else {
+           return 1;
+       }
+    } else {
+       return 0;
+    }
+}
+
+/* Relay the pppd's exit code up to the parent -- can only be called once,
+ * because the parent exits as soon as it reads a byte. */
+static void
+relay_exitcode(unsigned char code)
+{
+    unsigned char exitCode;
+    exitCode = code;
+    write(pipeArray[1], &exitCode, 1);
+    close(pipeArray[1]);
+}
+
+/* Unregister with netreport, relay a status byte to the parent, clean up
+ * the pid file, and bail. */
+static void
+failureExit(int exitCode) {
+    fork_exec(TRUE, "/sbin/netreport", "-r", NULL, NULL);
+    relay_exitcode(exitCode);
+    doPidFile(NULL);
+    exit(exitCode);
+}
+
+/* Keeps track of which signals we've seen so far. */
+static void
+signal_tracker (int signum) {
+    switch(signum) {
+        case SIGTERM:
+           theSigterm = 1; break;
+        case SIGINT:
+           theSigint = 1; break;
+        case SIGHUP:
+           theSighup = 1; break;
+        case SIGIO:
+           theSigio = 1; break;
+        case SIGCHLD:
+           theSigchld = 1; break;
+        case SIGALRM:
+           theSigalrm = 1; break;
+    }
+}
+
+/* Return a shvarFile for this interface, taking into account one level of
+ * inheritance (eeewww). */
+static shvarFile *
+shvarfilesGet(const char *interfaceName) {
+    shvarFile *ifcfg = NULL;
+    char ifcfgName[PATH_MAX];
+    char *ifcfgParentDiff = NULL;
+
+    /* Start with the basic configuration. */
+    snprintf(ifcfgName, sizeof(ifcfgName), "%s%s", IFCFGPREFIX, interfaceName);
+    ifcfg = svNewFile(ifcfgName);
+    if (ifcfg == NULL)
+           return NULL;
+
+    /* Do we have a parent interface (i.e., for ppp0-blah, ppp0) to inherit? */
+    ifcfgParentDiff = strchr(ifcfgName + sizeof(IFCFGPREFIX), '-');
+    if (ifcfgParentDiff) {
+        *ifcfgParentDiff = '\0';
+       ifcfg->parent = svNewFile(ifcfgName);
+    }
+
+    /* This is very unclean, but we have to close the shvar descriptors in
+     * case they've been numbered STDOUT_FILENO or STDERR_FILENO, which would
+     * be disastrous if inherited by a child process. */
+    close (ifcfg->fd);
+    ifcfg->fd = 0;
+
+    if (ifcfg->parent) {
+       close (ifcfg->parent->fd);
+       ifcfg->parent->fd = 0;
+    }
+
+    return ifcfg;
+}
+
+/* Convert a logical interface name to a real one by reading the lock
+ * file created by pppd. */
+static void
+pppLogicalToPhysical(int *pppdPid, char *logicalName, char **physicalName) {
+    char mapFileName[PATH_MAX];
+    char buffer[20];
+    char *p, *q;
+    int fd, n;
+    char *physicalDevice = NULL;
+
+    snprintf(mapFileName, sizeof(mapFileName), "/var/run/ppp-%s.pid",
+            logicalName);
+    fd = open(mapFileName, O_RDONLY);
+    if (fd != -1) {
+       n = read(fd, buffer, sizeof(buffer));
+       close(fd);
+       if (n > 0) {
+           buffer[n] = '\0';
+           /* Split up the file at the first line break -- the PID is on the
+            * first line. */
+           if((p = strchr(buffer, '\n')) != NULL) {
+               *p = '\0';
+               p++;
+               if (pppdPid) {
+                   *pppdPid = atoi(buffer);
+               }
+               /* The physical device name is on the second line. */
+               if((q = strchr(p, '\n')) != NULL) {
+                   *q = '\0';
+                   physicalDevice = strdup(p);
+               }
+           }
+       }
+    }
+
+    if (physicalDevice) {
+        if (physicalName) {
+            *physicalName = physicalDevice;
+       } else {
+            free(physicalDevice);
+       }
+    } else {
+        if (physicalName) {
+            *physicalName = NULL;
+       }
+    }
+}
+
+/* Return a boolean value indicating if the interface is up.  If not, or
+ * if we don't know, return FALSE. */
+static gboolean
+interfaceIsUp(char *device) {
+    int sock = -1;
+    int family[] = {PF_INET, PF_IPX, PF_AX25, PF_APPLETALK, 0};
+    int p = 0;
+    struct ifreq ifr;
+    gboolean retcode = FALSE;
+
+    /* Create a socket suitable for doing routing ioctls. */
+    for (p = 0; (sock == -1) && family[p]; p++) {
+        sock = socket(family[p], SOCK_DGRAM, 0);
+    }
+    if (sock == -1)
+       return FALSE;
+
+    /* Populate the request structure for getting the interface's status. */
+    memset(&ifr, 0, sizeof(ifr));
+    strncpy(ifr.ifr_name, device, sizeof(ifr.ifr_name) - 1);
+    ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';
+
+    /* We return TRUE iff the ioctl succeeded and the interface is UP. */
+    if (ioctl(sock, SIOCGIFFLAGS, &ifr) == -1) {
+        retcode = FALSE;
+    } else if (ifr.ifr_flags & IFF_UP) {
+        retcode = TRUE;
+    }
+
+    close(sock);
+
+    return retcode;
+}
+
+/* Very, very minimal hangup function.  This just attempts to hang up a device
+ * that should already be hung up, so it does not need to be bulletproof.  */
+static void
+hangup(shvarFile *ifcfg) {
+    int fd;
+    char *line;
+    struct termios original_ts, ts;
+
+    line = svGetValue(ifcfg, "MODEMPORT");
+    if (line == NULL)
+       return;
+
+    fd = open(line, O_RDWR | O_NOCTTY | O_NONBLOCK);
+    if (fd != -1) {
+        if (tcgetattr(fd, &ts) != -1) {
+            original_ts = ts;
+            write(fd, "\r", 1); /* tickle modems that do not like dropped DTR */
+            usleep(1000);
+            cfsetospeed(&ts, B0);
+            tcsetattr(fd, TCSANOW, &ts);
+            usleep(100000);
+            tcsetattr(fd, TCSANOW, &original_ts);
+       }
+       close(fd);
+    }
+    free(line);
+}
+
+int
+main(int argc, char **argv) {
+    int status;
+    pid_t waited;
+    char *device, *real_device, *physicalDevice = NULL;
+    char *boot = NULL;
+    shvarFile *ifcfg;
+    sigset_t blockedsigs, unblockedsigs;
+    int pppdPid = 0;
+    int timeout = 30;
+    char *temp;
+    gboolean dying = FALSE;
+    int sendsig;
+    gboolean connectedOnce = FALSE;
+    int maxfail = 0;           // MAXFAIL Patch <ssharkey@linux-no-limits.com>
+
+    if (argc < 2) {
+       fprintf (stderr, "usage: ppp-watch <interface-name> [boot]\n");
+       exit(30);
+    }
+
+    if (strncmp(argv[1], "ifcfg-", 6) == 0) {
+       device = argv[1] + 6;
+    } else {
+       device = argv[1];
+    }
+
+    detach(device); /* Prepare a child process to monitor pppd.  When we
+                      return, we'll be in the child. */
+
+    if ((argc > 2) && (strcmp("boot", argv[2]) == 0)) {
+       boot = argv[2];
+    }
+
+    ifcfg = shvarfilesGet(device);
+    if (ifcfg == NULL)
+       failureExit(28);
+
+    real_device = svGetValue(ifcfg, "DEVICE");
+    if (real_device == NULL)
+       real_device = device;
+
+    doPidFile(real_device);
+
+    /* We'll want to know which signal interrupted our sleep below, so
+     * attach a signal handler to these. */
+    set_signal(SIGTERM, signal_tracker);
+    set_signal(SIGINT, signal_tracker);
+    set_signal(SIGHUP, signal_tracker);
+    set_signal(SIGIO, signal_tracker);
+    set_signal(SIGCHLD, signal_tracker);
+
+    /* We time out only if we're being run at boot-time. */
+    if (boot) {
+       temp = svGetValue(ifcfg, "BOOTTIMEOUT");
+       if (temp) {
+           timeout = atoi(temp);
+           if (timeout < 1) timeout = 1;
+           free(temp);
+       } else {
+           timeout = 30;
+       }
+       set_signal(SIGALRM, signal_tracker);
+       alarm(timeout);
+    }
+
+    /* Register us to get a signal when something changes. Yes, that's vague. */
+    fork_exec(TRUE, "/sbin/netreport", NULL, NULL, NULL);
+
+    /* Reset theSigchld, which should have been triggered by netreport. */
+    theSigchld = 0;
+
+    /* We don't set up the procmask until after we have received the netreport
+     * signal.  Do so now. */
+    sigemptyset(&blockedsigs);
+    sigaddset(&blockedsigs, SIGTERM);
+    sigaddset(&blockedsigs, SIGINT);
+    sigaddset(&blockedsigs, SIGHUP);
+    sigaddset(&blockedsigs, SIGIO);
+    sigaddset(&blockedsigs, SIGCHLD);
+    if (boot) {
+       sigaddset(&blockedsigs, SIGALRM);
+    }
+    sigprocmask(SIG_BLOCK, &blockedsigs, NULL);
+
+    sigfillset(&unblockedsigs);
+    sigdelset(&unblockedsigs, SIGTERM);
+    sigdelset(&unblockedsigs, SIGINT);
+    sigdelset(&unblockedsigs, SIGHUP);
+    sigdelset(&unblockedsigs, SIGIO);
+    sigdelset(&unblockedsigs, SIGCHLD);
+    if (boot) {
+       sigdelset(&unblockedsigs, SIGALRM);
+    }
+    sigprocmask(SIG_UNBLOCK, &unblockedsigs, NULL);
+
+    /* Initialize the retry timeout using the RETRYTIMEOUT setting. */
+    temp = svGetValue(ifcfg, "RETRYTIMEOUT");
+    if (temp) {
+       timeout = atoi(temp);
+       free(temp);
+    } else {
+       timeout = 30;
+    }
+
+    /* Start trying to bring the interface up. */
+    fork_exec(FALSE, IFUP_PPP, "daemon", device, boot);
+
+    while (TRUE) {
+       /* Wait for a signal. */
+       if (!theSigterm &&
+           !theSigint &&
+           !theSighup &&
+           !theSigio &&
+           !theSigchld &&
+           !theSigalrm) {
+           sigsuspend(&unblockedsigs);
+       }
+
+       /* If we got SIGTERM or SIGINT, give up and hang up. */
+       if (theSigterm || theSigint) {
+           theSigterm = theSigint = 0;
+
+           /* If we've already tried to exit this way, use SIGKILL instead
+            * of SIGTERM, because pppd's just being stubborn. */
+           if (dying) {
+               sendsig = SIGKILL;
+           } else {
+               sendsig = SIGTERM;
+           }
+           dying = TRUE;
+
+           /* Get the pid of our child pppd. */
+           pppLogicalToPhysical(&pppdPid, device, NULL);
+
+           /* We don't know what our child pid is.  This is very confusing. */
+           if (!pppdPid) {
+               failureExit(35);
+           }
+
+           /* Die, pppd, die. */
+           kill(pppdPid, sendsig);
+           if (sendsig == SIGKILL) {
+               kill(-pppdPid, SIGTERM); /* Give it a chance to die nicely, then
+                                           kill its whole process group. */
+               usleep(2500000);
+               kill(-pppdPid, sendsig);
+               hangup(ifcfg);
+               failureExit(32);
+           }
+       }
+
+       /* If we got SIGHUP, reload and redial. */
+       if (theSighup) {
+           theSighup = 0;
+
+           /* Free and reload the configuration structure. */
+           if (ifcfg->parent)
+               svCloseFile(ifcfg->parent);
+           svCloseFile(ifcfg);
+           ifcfg = shvarfilesGet(device);
+
+           /* Get the PID of our child pppd. */
+           pppLogicalToPhysical(&pppdPid, device, NULL);
+           kill(pppdPid, SIGTERM);
+
+           /* We'll redial when the SIGCHLD arrives, even if PERSIST is
+            * not set (the latter handled by clearing the "we've connected
+            * at least once" flag). */
+           connectedOnce = FALSE;
+
+           /* We don't want to delay before redialing, either, so cut
+            * the retry timeout to zero. */
+           timeout = 0;
+       }
+
+       /* If we got a SIGIO (from netreport, presumably), check if the
+        * interface is up and return zero (via our parent) if it is. */
+       if (theSigio) {
+           theSigio = 0;
+
+           pppLogicalToPhysical(NULL, device, &physicalDevice);
+           if (physicalDevice) {
+               if (interfaceIsUp(physicalDevice)) {
+                   /* The interface is up, so report a success to a parent if
+                    * we have one.  Any errors after this we just swallow. */
+                   relay_exitcode(0);
+                   connectedOnce = TRUE;
+               }
+               free(physicalDevice);
+           }
+       }
+
+       /* If we got a SIGCHLD, then pppd died (possibly because we killed it),
+        * and we need to restart it after timeout seconds. */
+       if (theSigchld) {
+           theSigchld = 0;
+
+           /* Find its pid, which is also its process group ID. */
+           waited = waitpid(-1, &status, 0);
+           if (waited == -1) {
+               continue;
+           }
+
+           /* Now, we need to kill any children of pppd still in pppd's
+            * process group, in case they are hanging around.
+            * pppd is dead (we just waited for it) but there is no
+            * guarantee that its children are dead, and they will
+            * hold the modem if we do not get rid of them.
+            * We have kept the old pid/pgrp around in pppdPid.  */
+           if (pppdPid) {
+               kill(-pppdPid, SIGTERM); /* give it a chance to die nicely */
+               usleep(2500000);
+               kill(-pppdPid, SIGKILL);
+               hangup(ifcfg);
+           }
+           pppdPid = 0;
+
+           /* Bail if the child exitted abnormally or we were already
+            * signalled to kill it. */
+           if (!WIFEXITED(status)) {
+               failureExit(29);
+           }
+           if (dying) {
+               failureExit(WEXITSTATUS(status));
+           }
+
+           /* Error conditions from which we do not expect to recover
+            * without user intervention -- do not fill up the logs.  */
+           switch (WEXITSTATUS(status)) {
+           case 1: case 2: case 3: case 4: case 6:
+           case 7: case 9: case 14: case 17:
+               failureExit(WEXITSTATUS(status));
+               break;
+           default:
+               break;
+           }
+
+            /* PGB 08/20/02: We no longer retry connecting MAXFAIL
+              times on a failed connect script unless RETRYCONNECT is
+              true. */
+           if ((WEXITSTATUS(status) == 8) &&
+               !svTrueValue(ifcfg, "RETRYCONNECT", FALSE)) {
+                failureExit(WEXITSTATUS(status));
+            }
+
+           /* If we've never connected, or PERSIST is set, dial again, up
+            * to MAXFAIL times. */
+           if ((WEXITSTATUS(status) == 8) ||
+               !connectedOnce ||
+               svTrueValue(ifcfg, "PERSIST", FALSE)) {
+               /* If we've been connected (i.e., if we didn't force a redial,
+                * but the connection went down) wait for DISCONNECTTIMEOUT
+                * seconds before redialing. */
+               if (connectedOnce) {
+                   connectedOnce = FALSE;
+                   temp = svGetValue(ifcfg, "DISCONNECTTIMEOUT");
+                   if (temp) {
+                       timeout = atoi(temp);
+                       free(temp);
+                   } else {
+                       timeout = 2;
+                   }
+               }
+               sigprocmask(SIG_UNBLOCK, &blockedsigs, NULL);
+               sleep(timeout);
+               sigprocmask(SIG_BLOCK, &blockedsigs, NULL);
+               if (!theSigterm &&
+                   !theSigint &&
+                   !theSighup &&
+                   !theSigio &&
+                   !theSigchld &&
+                   !theSigalrm) {
+                   fork_exec(FALSE, IFUP_PPP, "daemon", device, boot);
+               }
+               /* Reinitialize the retry timeout. */
+               temp = svGetValue(ifcfg, "RETRYTIMEOUT");
+               if (temp) {
+                   timeout = atoi(temp);
+                   free(temp);
+               } else {
+                   timeout = 30;
+               }
+// Scott Sharkey <ssharkey@linux-no-limits.com>
+// MAXFAIL Patch...
+               temp = svGetValue(ifcfg, "MAXFAIL");
+               if (temp) {
+                   maxfail = atoi(temp);
+                   free(temp);
+               } else {
+                   maxfail = 0;
+               }
+               if ( maxfail != 0 ) {
+                   dialCount++;
+                   if ( dialCount >= maxfail )
+                       failureExit(WEXITSTATUS(status));
+               } 
+           } else {
+               failureExit(WEXITSTATUS(status));
+           }
+       }
+
+       /* We timed out, and we're running at boot-time. */
+       if (theSigalrm) {
+           failureExit(34);
+       }
+    }
+}
diff --git a/trunk/src/process.c b/trunk/src/process.c
new file mode 100644 (file)
index 0000000..475d188
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * Copyright (c) 1999-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/signal.h>
+#include <sys/poll.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <popt.h>
+
+#include <regex.h>
+
+#include "initlog.h"
+#include "process.h"
+
+extern regex_t **regList;
+
+int forkCommand(char **args, int *outfd, int *errfd, int *cmdfd, int quiet) {
+   /* Fork command 'cmd', returning pid, and optionally pointer
+    * to open file descriptor fd */
+    int fdout=-1, fderr=-1, fdcmd=-1, pid;
+    int outpipe[2], errpipe[2], fdpipe[2];
+    int ourpid;
+    
+    if ( (pipe(outpipe)==-1) || (pipe(errpipe)==-1) || (pipe(fdpipe)==-1) ) {
+       perror("pipe");
+       return -1;
+    }
+    
+    if (outfd) {
+       fdout = outpipe[1];
+      *outfd = outpipe[0];
+    } else {
+       if (!quiet)
+        fdout=dup(1);
+    }
+    if (errfd) {
+       fderr = errpipe[1];
+      *errfd = errpipe[0];
+    } else {
+       if (!quiet)
+        fderr=dup(2);
+    }
+    
+    if (cmdfd) {
+       *cmdfd = fdpipe[0];
+       fdcmd = fdpipe[1];
+    } else {
+        fdcmd = open("/dev/null",O_WRONLY);
+    }
+    if (fdout==-1 || fderr==-1 || fdcmd==-1)
+       return -1;
+    ourpid = getpid();
+    if ((pid = fork())==-1) {
+       perror("fork");
+       return -1;
+    }
+    /* We exec the command normally as the child. However, if we're getting passed
+     * back arguments via an fd, we'll exec it as the parent. Therefore, if Bill
+     * fucks up and we segfault or something, we don't kill rc.sysinit. */
+    if ( (cmdfd&&!pid) || (pid &&!cmdfd)) {
+       /* parent */
+       close(fdout);
+       close(fderr);
+       close(fdcmd);
+       if (!pid)
+         return ourpid;
+       else
+         return pid;
+    } else {
+       /* kid */
+       int sc_open_max;
+
+       if (outfd) { 
+        if ( (dup2(fdout,1)==-1) ) {
+           perror("dup2");
+           exit(-1);
+        }
+       } else if (quiet)
+           if ((dup2(open("/dev/null",O_WRONLY),1))==-1) {
+            perror("dup2");
+            exit(-1);
+           }
+
+       if (errfd)  {
+        if ((dup2(fderr,2)==-1)) {
+           perror("dup2");
+           exit(-1);
+        }
+       } else if (quiet) 
+           if ((dup2(open("/dev/null",O_WRONLY),2))==-1)  {
+              perror("dup2");
+              exit(-1);
+           }
+
+       if ((dup2(fdcmd,CMD_FD)==-1)) {
+           perror("dup2");
+           exit(-1);
+       }
+       close(fdout);
+       close(fderr);
+       close(fdcmd);
+       if (outfd)
+         close(*outfd);
+       if (errfd)
+         close(*errfd);
+       if (cmdfd)
+         close(*cmdfd);
+
+        /* close up extra fds, and hope this doesn't break anything */
+       sc_open_max = sysconf(_SC_OPEN_MAX);
+       if(sc_open_max > 1) {
+           int fd;
+           for(fd = 3; fd < sc_open_max; fd++) {
+                   if (!(cmdfd && fd == CMD_FD))
+                     close(fd);
+           }
+       }
+
+       execvp(args[0],args);
+       perror("execvp");
+       exit(-1);
+    }
+}
+
+int monitor(char *cmdname, int pid, int numfds, int *fds, int reexec, int quiet, int debug) {
+    struct pollfd *pfds;
+    char *outbuf=NULL;
+    char *tmpstr=NULL;
+    int x,y,rc=-1;
+    int done=0;
+    int output=0;
+    char **cmdargs=NULL;
+    char **tmpargs=NULL;
+    int cmdargc;
+    char *procpath = NULL;
+    
+    if (reexec) {
+       procpath=malloc(20*sizeof(char));
+       snprintf(procpath,20,"/proc/%d",pid);
+    }
+    
+    pfds = malloc(numfds*sizeof(struct pollfd));
+    for (x=0;x<numfds;x++) {
+       pfds[x].fd = fds[x];
+       pfds[x].events = POLLIN | POLLPRI;
+    }
+       
+    while (!done) {
+       usleep(500);
+       if (((x=poll(pfds,numfds,500))==-1)&&errno!=EINTR) {
+         perror("poll");
+          free(pfds);
+          if (procpath)
+             free(procpath);
+         return -1;
+       }
+       if (!reexec) {
+         if (waitpid(pid,&rc,WNOHANG))
+           done=1;
+       } else {
+          struct stat sbuf;
+          /* if /proc/pid ain't there and /proc is, it's dead... */
+          if (stat(procpath,&sbuf)&&!stat("/proc/cpuinfo",&sbuf))
+            done=1;
+       }
+       if (x<0)
+          continue;
+       y=0;
+       while (y<numfds) {
+         if ( x && ((pfds[y].revents & (POLLIN | POLLPRI)) )) {
+            int bytesread = 0;
+            
+            do {
+               char *b, *buf=calloc(8193,sizeof(char));
+               b = buf;
+               bytesread = read(pfds[y].fd,buf,8192);
+               if (bytesread==-1) {
+                  perror("read");
+                   free(pfds);
+                   if (procpath)
+                      free(procpath);
+                   free(buf);
+                  return -1;
+               }
+               if (bytesread) {
+                 if (!quiet && !reexec)
+                   write(1,buf,bytesread);
+                 if (quiet) {
+                         outbuf=realloc(outbuf,(outbuf ? strlen(outbuf)+bytesread+1 : bytesread+1));
+                         if (!output) outbuf[0]='\0';
+                         strcat(outbuf,buf);
+                         output = 1;
+                 }
+                 while ((tmpstr=getLine(&buf))) {
+                     int ignore=0;
+                     
+                     if (regList) {
+                         int count=0;
+                        
+                         while (regList[count]) {
+                             if (!regexec(regList[count],tmpstr,0,NULL,0)) {
+                                 ignore=1;
+                                 break;
+                             }
+                             count++;
+                         }
+                     }
+                     if (!ignore) {
+                         if (!reexec) {
+                             if (getenv("IN_INITLOG")) {
+                                 char *buffer=calloc(8192,sizeof(char));
+                                 DDEBUG("sending =%s= to initlog parent\n",tmpstr);
+                                 snprintf(buffer,8192,"-n %s -s \"%s\"\n",
+                                          cmdname,tmpstr);
+                                 /* don't blow up if parent isn't there */
+                                 signal(SIGPIPE,SIG_IGN);
+                                 write(CMD_FD,buffer,strlen(buffer));
+                                 signal(SIGPIPE,SIG_DFL);
+                                 free(buffer);
+                             } else {
+                                 logString(cmdname,tmpstr);
+                             }
+                         } else {
+                             int z; 
+                       
+                             cmdargs=NULL;
+                             tmpargs=NULL;
+                             cmdargc=0;
+                             
+                             poptParseArgvString(tmpstr,&cmdargc,&tmpargs);
+                             cmdargs=malloc( (cmdargc+2) * sizeof(char *) );
+                             cmdargs[0]=strdup("initlog");
+                             for (z=0;z<(cmdargc);z++) {
+                                 cmdargs[z+1]=tmpargs[z];
+                             }
+                             cmdargs[cmdargc+1]=NULL;
+                             processArgs(cmdargc+1,cmdargs,1);
+                             free(cmdargs[0]);
+                             free(tmpargs);
+                             free(cmdargs);
+                         }
+                     }
+                     if (tmpstr) free(tmpstr);
+                 }
+               }
+                free(b);
+            } while ( bytesread==8192 );
+         }
+         y++;
+       }
+    }
+    if ((!WIFEXITED(rc)) || (rc=WEXITSTATUS(rc))) {
+      /* If there was an error and we're quiet, be loud */
+      
+      if (quiet && output) {
+           write(1,outbuf,strlen(outbuf));
+      }
+      free(pfds);
+      if (procpath)
+         free(procpath);
+      if(outbuf)
+         free(outbuf);
+      return (rc);
+   }
+   free(pfds);
+   if (procpath)
+      free(procpath);
+   if(outbuf)
+      free(outbuf);
+   return 0;
+}
+
+int runCommand(char *cmd, int reexec, int quiet, int debug) {
+    int fds[2];
+    int pid,x;
+    char **args, **tmpargs;
+    char *cmdname;
+    
+    poptParseArgvString(cmd,&x,&tmpargs);
+    args = malloc((x+1)*sizeof(char *));
+    for ( pid = 0; pid < x ; pid++) {
+       args[pid] = strdup(tmpargs[pid]);
+    }
+    args[pid] = NULL;
+    if (strcmp(args[0],"sh") && strcmp(args[0],"/bin/sh")) 
+      cmdname = basename(args[0]);
+    else
+      cmdname = basename(args[1]);
+    if ((cmdname[0] =='K' || cmdname[0] == 'S') && 
+        ( cmdname[1] >= '0' && cmdname[1] <= '9' ) &&
+        ( cmdname[2] >= '0' && cmdname[2] <= '9' ) )
+      cmdname+=3;
+    if (!reexec) {
+       pid=forkCommand(args,&fds[0],&fds[1],NULL,quiet);
+       if (pid == -1)
+          return -1;
+       x=monitor(cmdname,pid,2,fds,reexec,quiet,debug);
+    } else {
+       setenv("IN_INITLOG","yes",1);
+       pid=forkCommand(args,NULL,NULL,&fds[0],quiet);
+       if (pid == -1)
+          return -1;
+       unsetenv("IN_INITLOG");
+       x=monitor(cmdname,pid,1,&fds[0],reexec,quiet,debug);
+    }
+    return x;
+}
diff --git a/trunk/src/process.h b/trunk/src/process.h
new file mode 100644 (file)
index 0000000..ef98f78
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef PROCESS_H
+#define PROCESS_H
+
+
+#define CMD_FD 21
+
+int runCommand(char *cmd, int reexec, int quiet, int debug);
+
+#endif
diff --git a/trunk/src/resolvesymlink.c b/trunk/src/resolvesymlink.c
new file mode 100644 (file)
index 0000000..5e07a81
--- /dev/null
@@ -0,0 +1,17 @@
+#include <sys/param.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+int main(int argc, char ** argv) {
+    char *buf = calloc (MAXPATHLEN+1, sizeof(char));
+    
+    if (argc<1) return 1;
+    (void) readlink (argv[1], buf, MAXPATHLEN);
+    fprintf (stdout, "%s", buf);
+    exit (0);
+    }
diff --git a/trunk/src/setuidgid.c b/trunk/src/setuidgid.c
new file mode 100644 (file)
index 0000000..9c57cf6
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+    Simple wrapper to run a command with different uid/gid.
+
+    Based on the implementation in freedt:
+       Copyright (C) 2003  Adam Sampson <azz@gnu.org>
+
+    2010-05-07 – Jacek Konieczny <jajcus> updated for standalone compilation
+    and included in PLD rc-scripts
+
+    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
+*/
+
+#include <string.h>
+#include <sys/param.h>
+#include <pwd.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <grp.h>
+#include <limits.h>
+
+const char *progname = "setuidgid";
+const char *proghelp =
+       "Usage: setuidgid [OPTIONS] account command ...\n"
+       "Run a command under the uid and gid of an account.\n\n"
+       "-s        Also set supplementary groups\n";
+
+void die(const char *msg) {
+       fprintf(stderr, "%s: %s\n", progname, msg);
+       exit(1);
+}
+void die2(const char *msg1, const char *msg2) {
+       fprintf(stderr, "%s: %s: %s\n", progname, msg1, msg2);
+       exit(1);
+}
+void show_version() {
+       fprintf(stderr, "%s $Rev$ (PLD Linux rc-scripts)\n", progname);
+}
+void version() {
+       show_version();
+       exit(0);
+}
+void help(int retval) {
+       show_version();
+       fprintf(stderr, "\n%s"
+               "-V        Show version information\n"
+               "-h        Show usage information\n", proghelp);
+       exit(retval);
+}
+
+int main(int argc, char **argv) {
+       struct passwd *p;
+       int use_supp = 0;
+
+       while (1) {
+               int c = getopt(argc, argv, "+V?hs");
+               if (c == -1)
+                       break;
+
+               switch (c) {
+               case 's':
+                       use_supp = 1;
+                       break;
+               case 'V':
+                       version();
+               case 'h':
+               case '?':
+                       help(0);
+               default:
+                       help(1);
+               }
+       }
+
+       if ((argc - optind) < 2)
+               help(1);
+
+       p = getpwnam(argv[optind]);
+       if (!p)
+               die("no such account");
+       if (setgid(p->pw_gid) < 0)
+               die("unable to setgid");
+
+       if (use_supp) {
+               gid_t groups[NGROUPS_MAX];
+               size_t n = 0;
+
+               setgrent();
+               while (1) {
+                       char **p;
+                       struct group *g = getgrent();
+                       if (g == NULL)
+                               break;
+
+                       for (p = g->gr_mem; *p != NULL; p++) {
+                               if (strcmp(*p, argv[optind]) == 0) {
+                                       if (n >= NGROUPS_MAX)
+                                               die("too many groups");
+                                       groups[n++] = g->gr_gid;
+                               }
+                       }
+               }
+
+               if (setgroups(n, groups) < 0)
+                       die("unable to setgroups");
+       } else {
+               if (setgroups(1, &p->pw_gid) < 0)
+                       die("unable to setgroups");
+       }
+
+       if (setuid(p->pw_uid) < 0)
+               die("unable to setuid");
+
+       ++optind;
+       execvp(argv[optind], &argv[optind]);
+       die2(argv[optind], "unable to exec");
+
+       return 0; /* NOTREACHED */
+}
+
diff --git a/trunk/src/shvar.c b/trunk/src/shvar.c
new file mode 100644 (file)
index 0000000..765a77e
--- /dev/null
@@ -0,0 +1,393 @@
+/*
+ * shvar.c
+ *
+ * Implementation of non-destructively reading/writing files containing
+ * only shell variable declarations and full-line comments.
+ *
+ * Includes explicit inheritance mechanism intended for use with
+ * Red Hat Linux ifcfg-* files.  There is no protection against
+ * inheritance loops; they will generally cause stack overflows.
+ * Furthermore, they are only intended for one level of inheritance;
+ * the value setting algorithm assumes this.
+ *
+ * Copyright 1999,2000 Red Hat, Inc.
+ *
+ * This 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "shvar.h"
+
+/* Open the file <name>, returning a shvarFile on success and NULL on failure.
+   Add a wrinkle to let the caller specify whether or not to create the file
+   (actually, return a structure anyway) if it doesn't exist. */
+static shvarFile *
+svOpenFile(const char *name, gboolean create)
+{
+    shvarFile *s = NULL;
+    int closefd = 0;
+
+    s = g_malloc0(sizeof(shvarFile));
+
+    s->fd = open(name, O_RDWR); /* NOT O_CREAT */
+    if (s->fd == -1) {
+       /* try read-only */
+       s->fd = open(name, O_RDONLY); /* NOT O_CREAT */
+       if (s->fd != -1) closefd = 1;
+    }
+    s->fileName = g_strdup(name);
+
+    if (s->fd != -1) {
+       struct stat buf;
+       char *p, *q;
+
+       if (fstat(s->fd, &buf) < 0) goto bail;
+       s->arena = g_malloc0(buf.st_size + 1);
+
+       if (read(s->fd, s->arena, buf.st_size) < 0) goto bail;
+
+       /* we'd use g_strsplit() here, but we want a list, not an array */
+       for(p = s->arena; (q = strchr(p, '\n')) != NULL; p = q + 1) {
+               s->lineList = g_list_append(s->lineList, g_strndup(p, q - p));
+       }
+
+       /* closefd is set if we opened the file read-only, so go ahead and
+          close it, because we can't write to it anyway */
+       if (closefd) {
+           close(s->fd);
+           s->fd = -1;
+       }
+
+        return s;
+    }
+
+    if (create) {
+        return s;
+    }
+
+bail:
+    if (s->fd != -1) close(s->fd);
+    if (s->arena) g_free (s->arena);
+    if (s->fileName) g_free (s->fileName);
+    g_free (s);
+    return NULL;
+}
+
+/* Open the file <name>, return shvarFile on success, NULL on failure */
+shvarFile *
+svNewFile(const char *name)
+{
+    return svOpenFile(name, FALSE);
+}
+
+/* Create a new file structure, returning actual data if the file exists,
+ * and a suitable starting point if it doesn't. */
+shvarFile *
+svCreateFile(const char *name)
+{
+    return svOpenFile(name, TRUE);
+}
+
+/* remove escaped characters in place */
+static void
+unescape(char *s) {
+    int len, i;
+
+    len = strlen(s);
+    if ((s[0] == '"' || s[0] == '\'') && s[0] == s[len-1]) {
+       i = len - 2;
+       memmove(s, s+1, i);
+       s[i+1] = '\0';
+       len = i;
+    }
+    for (i = 0; i < len; i++) {
+       if (s[i] == '\\') {
+           memmove(s+i, s+i+1, len-(i+1));
+           len--;
+       }
+       s[len] = '\0';
+    }
+}
+
+
+/* create a new string with all necessary characters escaped.
+ * caller must free returned string
+ */
+static const char escapees[] = "\"'\\$~`";             /* must be escaped */
+static const char spaces[] = " \t|&;()<>";             /* only require "" */
+static char *
+escape(const char *s) {
+    char *new;
+    int i, j, mangle = 0, space = 0;
+    int newlen, slen;
+    static int esclen, splen;
+
+    if (!esclen) esclen = strlen(escapees);
+    if (!splen) splen = strlen(spaces);
+    slen = strlen(s);
+
+    for (i = 0; i < slen; i++) {
+       if (strchr(escapees, s[i])) mangle++;
+       if (strchr(spaces, s[i])) space++;
+    }
+    if (!mangle && !space) return strdup(s);
+
+    newlen = slen + mangle + 3;        /* 3 is extra ""\0 */
+    new = g_malloc0(newlen);
+    if (!new) return NULL;
+
+    j = 0;
+    new[j++] = '"';
+    for (i = 0; i < slen; i++) {
+       if (strchr(escapees, s[i])) {
+           new[j++] = '\\';
+       }
+       new[j++] = s[i];
+    }
+    new[j++] = '"';
+    g_assert(j == slen + mangle + 2); /* j is the index of the '\0' */
+
+    return new;
+}
+
+/* Get the value associated with the key, and leave the current pointer
+ * pointing at the line containing the value.  The char* returned MUST
+ * be freed by the caller.
+ */
+char *
+svGetValue(shvarFile *s, const char *key)
+{
+    char *value = NULL;
+    char *line;
+    char *keyString;
+    int len;
+
+    g_assert(s);
+    g_assert(key);
+
+    keyString = g_malloc0(strlen(key) + 2);
+    strcpy(keyString, key);
+    keyString[strlen(key)] = '=';
+    len = strlen(keyString);
+
+    for (s->current = s->lineList; s->current; s->current = s->current->next) {
+       line = s->current->data;
+       if (!strncmp(keyString, line, len)) {
+           value = g_strdup(line + len);
+           unescape(value);
+           break;
+       }
+    }
+    g_free(keyString);
+
+    if (value) {
+       if (value[0]) {
+           return value;
+       } else {
+           g_free(value);
+           return NULL;
+       }
+    }
+    if (s->parent) value = svGetValue(s->parent, key);
+    return value;
+}
+
+/* return 1 if <key> resolves to any truth value (e.g. "yes", "y", "true")
+ * return 0 if <key> resolves to any non-truth value (e.g. "no", "n", "false")
+ * return <default> otherwise
+ */
+int
+svTrueValue(shvarFile *s, const char *key, int def)
+{
+    char *tmp;
+    int returnValue = def;
+
+    tmp = svGetValue(s, key);
+    if (!tmp) return returnValue;
+
+    if ( (!strcasecmp("yes", tmp)) ||
+        (!strcasecmp("true", tmp)) ||
+        (!strcasecmp("t", tmp)) ||
+        (!strcasecmp("y", tmp)) ) returnValue = 1;
+    else
+    if ( (!strcasecmp("no", tmp)) ||
+        (!strcasecmp("false", tmp)) ||
+        (!strcasecmp("f", tmp)) ||
+        (!strcasecmp("n", tmp)) ) returnValue = 0;
+
+    g_free (tmp);
+    return returnValue;
+}
+
+
+/* Set the variable <key> equal to the value <value>.
+ * If <key> does not exist, and the <current> pointer is set, append
+ * the key=value pair after that line.  Otherwise, prepend the pair
+ * to the top of the file.  Here's the algorithm, as the C code
+ * seems to be rather dense:
+ *
+ * if (value == NULL), then:
+ *     if val2 (parent): change line to key= or append line key=
+ *     if val1 (this)  : delete line
+ *     else noop
+ * else use this table:
+ *                                val2
+ *             NULL              value               other
+ * v   NULL    append line       noop                append line
+ * a
+ * l   value   noop              noop                noop
+ * 1
+ *     other   change line       delete line         change line
+ *
+ * No changes are ever made to the parent config file, only to the
+ * specific file passed on the command line.
+ *
+ */
+void
+svSetValue(shvarFile *s, const char *key, const char *value)
+{
+    char *newval = NULL, *val1 = NULL, *val2 = NULL;
+    char *keyValue;
+
+    g_assert(s);
+    g_assert(key);
+    /* value may be NULL */
+
+    if (value) newval = escape(value);
+    keyValue = g_strdup_printf("%s=%s", key, newval ? newval : "");
+
+    val1 = svGetValue(s, key);
+    if (val1 && newval && !strcmp(val1, newval)) goto bail;
+    if (s->parent) val2 = svGetValue(s->parent, key);
+
+    if (!newval || !newval[0]) {
+       /* delete value somehow */
+       if (val2) {
+           /* change/append line to get key= */
+           if (s->current) s->current->data = keyValue;
+           else s->lineList = g_list_append(s->lineList, keyValue);
+           s->freeList = g_list_append(s->freeList, keyValue);
+           s->modified = 1;
+       } else if (val1) {
+           /* delete line */
+           s->lineList = g_list_remove_link(s->lineList, s->current);
+           g_list_free_1(s->current);
+           s->modified = 1;
+           goto bail; /* do not need keyValue */
+       }
+       goto end;
+    }
+
+    if (!val1) {
+       if (val2 && !strcmp(val2, newval)) goto end;
+       /* append line */
+       s->lineList = g_list_append(s->lineList, keyValue);
+       s->freeList = g_list_append(s->freeList, keyValue);
+       s->modified = 1;
+       goto end;
+    }
+
+    /* deal with a whole line of noops */
+    if (val1 && !strcmp(val1, newval)) goto end;
+
+    /* At this point, val1 && val1 != value */
+    if (val2 && !strcmp(val2, newval)) {
+       /* delete line */
+       s->lineList = g_list_remove_link(s->lineList, s->current);
+       g_list_free_1(s->current);
+       s->modified = 1;
+       goto bail; /* do not need keyValue */
+    } else {
+       /* change line */
+       if (s->current) s->current->data = keyValue;
+       else s->lineList = g_list_append(s->lineList, keyValue);
+       s->freeList = g_list_append(s->freeList, keyValue);
+       s->modified = 1;
+    }
+
+end:
+    if (newval) free(newval);
+    if (val1) free(val1);
+    if (val2) free(val2);
+    return;
+
+bail:
+    if (keyValue) free (keyValue);
+    goto end;
+}
+
+/* Write the current contents iff modified.  Returns -1 on error
+ * and 0 on success.  Do not write if no values have been modified.
+ * The mode argument is only used if creating the file, not if
+ * re-writing an existing file, and is passed unchanged to the
+ * open() syscall.
+ */
+int
+svWriteFile(shvarFile *s, int mode)
+{
+    FILE *f;
+    int tmpfd;
+
+    if (s->modified) {
+       if (s->fd == -1)
+           s->fd = open(s->fileName, O_WRONLY|O_CREAT, mode);
+       if (s->fd == -1)
+           return -1;
+       if (ftruncate(s->fd, 0) < 0)
+           return -1;
+
+       tmpfd = dup(s->fd);
+       f = fdopen(tmpfd, "w");
+       fseek(f, 0, SEEK_SET);
+       for (s->current = s->lineList; s->current; s->current = s->current->next) {
+           char *line = s->current->data;
+           fprintf(f, "%s\n", line);
+       }
+       fclose(f);
+    }
+
+    return 0;
+}
+
+/* Close the file descriptor (if open) and delete the shvarFile.
+ * Returns -1 on error and 0 on success.
+ */
+int
+svCloseFile(shvarFile *s)
+{
+
+    g_assert(s);
+
+    if (s->fd != -1) close(s->fd);
+
+    g_free(s->arena);
+    for (s->current = s->freeList; s->current; s->current = s->current->next) {
+        g_free(s->current->data);
+    }
+    g_free(s->fileName);
+    g_list_free(s->freeList);
+    g_list_free(s->lineList); /* implicitly frees s->current */
+    g_free(s);
+    return 0;
+}
diff --git a/trunk/src/shvar.h b/trunk/src/shvar.h
new file mode 100644 (file)
index 0000000..50d1068
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * shvar.h
+ *
+ * Interface for non-destructively reading/writing files containing
+ * only shell variable declarations and full-line comments.
+ *
+ * Includes explicit inheritance mechanism intended for use with
+ * Red Hat Linux ifcfg-* files.  There is no protection against
+ * inheritance loops; they will generally cause stack overflows.
+ * Furthermore, they are only intended for one level of inheritance;
+ * the value setting algorithm assumes this.
+ *
+ * Copyright 1999 Red Hat, Inc.
+ *
+ * This 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#ifndef _SHVAR_H
+#define _SHVAR_H
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef struct _shvarFile shvarFile;
+struct _shvarFile {
+       char            *fileName;      /* read-only */
+       int             fd;             /* read-only */
+       char            *arena;         /* ignore */
+       GList           *lineList;      /* read-only */
+       GList           *freeList;      /* ignore */
+       GList           *current;       /* set implicitly or explicitly,
+                                          points to element of lineList */
+       shvarFile       *parent;        /* set explicitly */
+       int             modified;       /* ignore */
+};
+
+
+/* Create the file <name>, return shvarFile on success, NULL on failure */
+shvarFile *
+svCreateFile(const char *name);
+
+/* Open the file <name>, return shvarFile on success, NULL on failure */
+shvarFile *
+svNewFile(const char *name);
+
+/* Get the value associated with the key, and leave the current pointer
+ * pointing at the line containing the value.  The char* returned MUST
+ * be freed by the caller.
+ */
+char *
+svGetValue(shvarFile *s, const char *key);
+
+/* return 1 if <key> resolves to any truth value (e.g. "yes", "y", "true")
+ * return 0 if <key> resolves to any non-truth value (e.g. "no", "n", "false")
+ * return <def> otherwise
+ */
+int
+svTrueValue(shvarFile *s, const char *key, int def);
+
+/* Set the variable <key> equal to the value <value>.
+ * If <key> does not exist, and the <current> pointer is set, append
+ * the key=value pair after that line.  Otherwise, prepend the pair
+ * to the top of the file.
+ */
+void
+svSetValue(shvarFile *s, const char *key, const char *value);
+
+
+/* Write the current contents iff modified.  Returns -1 on error
+ * and 0 on success.  Do not write if no values have been modified.
+ * The mode argument is only used if creating the file, not if
+ * re-writing an existing file, and is passed unchanged to the
+ * open() syscall.
+ */
+int
+svWriteFile(shvarFile *s, int mode);
+
+/* Close the file descriptor (if open) and delete the shvarFile.
+ * Returns -1 on error and 0 on success.
+ */
+int
+svCloseFile(shvarFile *s);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* ! _SHVAR_H */
diff --git a/trunk/src/start-stop-daemon.c b/trunk/src/start-stop-daemon.c
new file mode 100644 (file)
index 0000000..7de9a19
--- /dev/null
@@ -0,0 +1,1367 @@
+/*
+ * A rewrite of the original Debian's start-stop-daemon Perl script
+ * in C (faster - it is executed many times during system startup).
+ *
+ * Written by Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>,
+ * public domain.  Based conceptually on start-stop-daemon.pl, by Ian
+ * Jackson <ijackson@gnu.ai.mit.edu>.  May be used and distributed
+ * freely for any purpose.  Changes by Christian Schwarz
+ * <schwarz@monet.m.isar.de>, to make output conform to the Debian
+ * Console Message Standard, also placed in public domain.  Minor
+ * changes by Klee Dienes <klee@debian.org>, also placed in the Public
+ * Domain.
+ *
+ * Changes by Ben Collins <bcollins@debian.org>, added --chuid, --background
+ * and --make-pidfile options, placed in public domain aswell.
+ *
+ * Port to OpenBSD by Sontri Tomo Huynh <huynh.29@osu.edu>
+ *                 and Andreas Schuldei <andreas@schuldei.org>
+ *
+ * Changes by Ian Jackson: added --retry (and associated rearrangements).
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#if defined(linux)
+#  define OSLinux
+#elif defined(__GNU__)
+#  define OSHURD
+#elif defined(__sparc__)
+#  define OSsunos
+#elif defined(OPENBSD) || defined(__OpenBSD__)
+#  define OSOpenBSD
+#elif defined(hpux)
+#  define OShpux
+#elif defined(__FreeBSD__)
+#  define OSFreeBSD
+#elif defined(__NetBSD__)
+#  define OSNetBSD
+#else
+#  error Unknown architecture - cannot build start-stop-daemon
+#endif
+
+#define MIN_POLL_INTERVAL 20000 /*us*/
+
+#if defined(OSHURD)
+#  include <hurd.h>
+#  include <ps.h>
+#endif
+
+#if defined(OSOpenBSD) || defined(OSFreeBSD) || defined(OSNetBSD)
+#include <sys/param.h>
+#include <sys/user.h>
+#include <sys/proc.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+#include <sys/types.h>
+#include <err.h>
+#include <kvm.h>
+#include <limits.h>
+#endif
+
+#if HAVE_SYS_CAPABILITY_H
+#include <sys/prctl.h>
+#include <sys/capability.h>
+#endif
+
+#if defined(OShpux)
+#include <sys/param.h>
+#include <sys/pstat.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <signal.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <pwd.h>
+#include <grp.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/termios.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <assert.h>
+#include <ctype.h>
+
+#ifdef HAVE_ERROR_H
+#  include <error.h>
+#endif
+
+static int testmode = 0;
+static int quietmode = 0;
+static int exitnodo = 1;
+static int start = 0;
+static int stop = 0;
+static int background = 0;
+static int mpidfile = 0;
+static int signal_nr = 15;
+static const char *signal_str = NULL;
+static int user_id = -1;
+static int runas_uid = -1;
+static int runas_gid = -1;
+static const char *userspec = NULL;
+static char *changeuser = NULL;
+static const char *changegroup = NULL;
+static char *changeroot = NULL;
+static const char *changedir = "/";
+static const char *cmdname = NULL;
+static char *execname = NULL;
+static char *startas = NULL;
+static const char *pidfile = NULL;
+static char what_stop[1024];
+static const char *schedule_str = NULL;
+static const char *progname = "";
+static int nicelevel = 0;
+static char *caplist = NULL;
+
+static struct stat exec_stat;
+#if defined(OSHURD)
+static struct proc_stat_list *procset = NULL;
+#endif
+
+
+struct pid_list {
+       struct pid_list *next;
+       pid_t pid;
+};
+
+static struct pid_list *found = NULL;
+static struct pid_list *killed = NULL;
+
+struct schedule_item {
+       enum { sched_timeout, sched_signal, sched_goto, sched_forever } type;
+       int value; /* seconds, signal no., or index into array */
+       /* sched_forever is only seen within parse_schedule and callees */
+};
+
+static int schedule_length;
+static struct schedule_item *schedule = NULL;
+
+static void *xmalloc(int size);
+static void push(struct pid_list **list, pid_t pid);
+static void do_help(void);
+static void parse_options(int argc, char * const *argv);
+static int pid_is_user(pid_t pid, uid_t uid);
+static int pid_is_cmd(pid_t pid, const char *name);
+static void check(pid_t pid);
+static void do_pidfile(const char *name);
+static void do_stop(int signal_nr, int quietmode,
+                   int *n_killed, int *n_notkilled, int retry_nr);
+#if defined(OSLinux) || defined(OShpux)
+static int pid_is_exec(pid_t pid, const struct stat *esb);
+#endif
+
+
+#ifdef __GNUC__
+static void fatal(const char *format, ...)
+       NONRETURNPRINTFFORMAT(1, 2);
+static void badusage(const char *msg)
+       NONRETURNING;
+#else
+static void fatal(const char *format, ...);
+static void badusage(const char *msg);
+#endif
+
+/* This next part serves only to construct the TVCALC macro, which
+ * is used for doing arithmetic on struct timeval's.  It works like this:
+ *   TVCALC(result, expression);
+ * where result is a struct timeval (and must be an lvalue) and
+ * expression is the single expression for both components.  In this
+ * expression you can use the special values TVELEM, which when fed a
+ * const struct timeval* gives you the relevant component, and
+ * TVADJUST.  TVADJUST is necessary when subtracting timevals, to make
+ * it easier to renormalise.  Whenver you subtract timeval elements,
+ * you must make sure that TVADJUST is added to the result of the
+ * subtraction (before any resulting multiplication or what have you).
+ * TVELEM must be linear in TVADJUST.
+ */
+typedef long tvselector(const struct timeval*);
+static long tvselector_sec(const struct timeval *tv) { return tv->tv_sec; }
+static long tvselector_usec(const struct timeval *tv) { return tv->tv_usec; }
+#define TVCALC_ELEM(result, expr, sec, adj)                           \
+{                                                                    \
+  const long TVADJUST = adj;                                         \
+  long (*const TVELEM)(const struct timeval*) = tvselector_##sec;     \
+  (result).tv_##sec = (expr);                                        \
+}
+#define TVCALC(result,expr)                                          \
+do {                                                                 \
+  TVCALC_ELEM(result, expr, sec, (-1));                                      \
+  TVCALC_ELEM(result, expr, usec, (+1000000));                       \
+  (result).tv_sec += (result).tv_usec / 1000000;                     \
+  (result).tv_usec %= 1000000;                                       \
+} while(0)
+
+
+static void
+fatal(const char *format, ...)
+{
+       va_list arglist;
+
+       fprintf(stderr, "%s: ", progname);
+       va_start(arglist, format);
+       vfprintf(stderr, format, arglist);
+       va_end(arglist);
+       putc('\n', stderr);
+       exit(2);
+}
+
+
+static void *
+xmalloc(int size)
+{
+       void *ptr;
+
+       ptr = malloc(size);
+       if (ptr)
+               return ptr;
+       fatal("malloc(%d) failed", size);
+}
+
+
+static void
+xgettimeofday(struct timeval *tv)
+{
+       if (gettimeofday(tv,0) != 0)
+               fatal("gettimeofday failed: %s", strerror(errno));
+}
+
+
+static void
+push(struct pid_list **list, pid_t pid)
+{
+       struct pid_list *p;
+
+       p = xmalloc(sizeof(*p));
+       p->next = *list;
+       p->pid = pid;
+       *list = p;
+}
+
+static void
+clear(struct pid_list **list)
+{
+       struct pid_list *here, *next;
+
+       for (here = *list; here != NULL; here = next) {
+               next = here->next;
+               free(here);
+       }
+
+       *list = NULL;
+}
+
+static void
+do_help(void)
+{
+       printf(
+"start-stop-daemon VERSION for Debian - small and fast C version written by\n"
+"Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>, public domain.\n"
+"\n"
+"Usage:\n"
+"  start-stop-daemon -S|--start options ... -- arguments ...\n"
+"  start-stop-daemon -K|--stop options ...\n"
+"  start-stop-daemon -H|--help\n"
+"  start-stop-daemon -V|--version\n"
+"\n"
+"Options (at least one of --exec|--pidfile|--user is required):\n"
+"  -x|--exec <executable>        program to start/check if it is running\n"
+"  -p|--pidfile <pid-file>       pid file to check\n"
+"  -c|--chuid <name|uid[:group|gid]>\n"
+"              change to this user/group before starting process\n"
+"  -u|--user <username>|<uid>    stop processes owned by this user\n"
+"  -g|--group <group|gid>        run process as this group\n"
+"  -n|--name <process-name>      stop processes with this name\n"
+"  -s|--signal <signal>          signal to send (default TERM)\n"
+"  -a|--startas <pathname>       program to start (default is <executable>)\n"
+"  -D|--dropcap <capbilities>    drop theses capabilities\n"
+"  -C|--chdir <directory>        Change to <directory>(default is /)\n"
+"  -N|--nicelevel <incr>         add incr to the process's nice level\n"
+"  -b|--background               force the process to detach\n"
+"  -m|--make-pidfile             create the pidfile before starting\n"
+"  -R|--retry <schedule>         check whether processes die, and retry\n"
+"  -t|--test                     test mode, don't do anything\n"
+"  -o|--oknodo                   exit status 0 (not 1) if nothing done\n"
+"  -q|--quiet                    be more quiet\n"
+"  -v|--verbose                  be more verbose\n"
+"Retry <schedule> is <item>|/<item>/... where <item> is one of\n"
+" -<signal-num>|[-]<signal-name>  send that signal\n"
+" <timeout>                       wait that many seconds\n"
+" forever                         repeat remainder forever\n"
+"or <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\n"
+"\n"
+"Exit status:  0 = done      1 = nothing done (=> 0 if --oknodo)\n"
+"              3 = trouble   2 = with --retry, processes wouldn't die\n");
+}
+
+
+static void
+badusage(const char *msg)
+{
+       if (msg)
+               fprintf(stderr, "%s: %s\n", progname, msg);
+       fprintf(stderr, "Try `%s --help' for more information.\n", progname);
+       exit(3);
+}
+
+struct sigpair {
+       const char *name;
+       int signal;
+};
+
+const struct sigpair siglist[] = {
+       { "ABRT",       SIGABRT },
+       { "ALRM",       SIGALRM },
+       { "FPE",        SIGFPE  },
+       { "HUP",        SIGHUP  },
+       { "ILL",        SIGILL  },
+       { "INT",        SIGINT  },
+       { "KILL",       SIGKILL },
+       { "PIPE",       SIGPIPE },
+       { "QUIT",       SIGQUIT },
+       { "SEGV",       SIGSEGV },
+       { "TERM",       SIGTERM },
+       { "USR1",       SIGUSR1 },
+       { "USR2",       SIGUSR2 },
+       { "CHLD",       SIGCHLD },
+       { "CONT",       SIGCONT },
+       { "STOP",       SIGSTOP },
+       { "TSTP",       SIGTSTP },
+       { "TTIN",       SIGTTIN },
+       { "TTOU",       SIGTTOU }
+};
+
+static int parse_integer(const char *string, int *value_r) {
+       unsigned long ul;
+       char *ep;
+
+       if (!string[0])
+               return -1;
+
+       ul= strtoul(string,&ep,10);
+       if (ul > INT_MAX || *ep != '\0')
+               return -1;
+
+       *value_r= ul;
+       return 0;
+}
+
+static int parse_signal(const char *signal_str, int *signal_nr)
+{
+       unsigned int i;
+
+       if (parse_integer(signal_str, signal_nr) == 0)
+               return 0;
+
+       for (i = 0; i < sizeof (siglist) / sizeof (siglist[0]); i++) {
+               if (strcmp (signal_str, siglist[i].name) == 0) {
+                       *signal_nr = siglist[i].signal;
+                       return 0;
+               }
+       }
+       return -1;
+}
+
+static void
+parse_schedule_item(const char *string, struct schedule_item *item) {
+       const char *after_hyph;
+
+       if (!strcmp(string,"forever")) {
+               item->type = sched_forever;
+       } else if (isdigit(string[0])) {
+               item->type = sched_timeout;
+               if (parse_integer(string, &item->value) != 0)
+                       badusage("invalid timeout value in schedule");
+       } else if ((after_hyph = string + (string[0] == '-')) &&
+                  parse_signal(after_hyph, &item->value) == 0) {
+               item->type = sched_signal;
+       } else {
+               badusage("invalid schedule item (must be [-]<signal-name>, "
+                        "-<signal-number>, <timeout> or `forever'");
+       }
+}
+
+static void
+parse_schedule(const char *schedule_str) {
+       char item_buf[20];
+       const char *slash;
+       int count, repeatat;
+       ptrdiff_t str_len;
+
+       count = 0;
+       for (slash = schedule_str; *slash; slash++)
+               if (*slash == '/')
+                       count++;
+
+       schedule_length = (count == 0) ? 4 : count+1;
+       schedule = xmalloc(sizeof(*schedule) * schedule_length);
+
+       if (count == 0) {
+               schedule[0].type = sched_signal;
+               schedule[0].value = signal_nr;
+               parse_schedule_item(schedule_str, &schedule[1]);
+               if (schedule[1].type != sched_timeout) {
+                       badusage ("--retry takes timeout, or schedule list"
+                                 " of at least two items");
+               }
+               schedule[2].type = sched_signal;
+               schedule[2].value = SIGKILL;
+               schedule[3]= schedule[1];
+       } else {
+               count = 0;
+               repeatat = -1;
+               while (schedule_str != NULL) {
+                       slash = strchr(schedule_str,'/');
+                       str_len = slash ? slash - schedule_str : strlen(schedule_str);
+                       if (str_len >= (ptrdiff_t)sizeof(item_buf))
+                               badusage("invalid schedule item: far too long"
+                                        " (you must delimit items with slashes)");
+                       memcpy(item_buf, schedule_str, str_len);
+                       item_buf[str_len] = 0;
+                       schedule_str = slash ? slash+1 : NULL;
+
+                       parse_schedule_item(item_buf, &schedule[count]);
+                       if (schedule[count].type == sched_forever) {
+                               if (repeatat >= 0)
+                                       badusage("invalid schedule: `forever'"
+                                                " appears more than once");
+                               repeatat = count;
+                               continue;
+                       }
+                       count++;
+               }
+               if (repeatat >= 0) {
+                       schedule[count].type = sched_goto;
+                       schedule[count].value = repeatat;
+                       count++;
+               }
+               assert(count == schedule_length);
+       }
+}
+
+#ifdef HAVE_SYS_CAPABILITY_H
+static void
+remove_capabilities(char *capstr) {
+       cap_value_t capval;
+       char *savedptr, *ptr;
+       cap_t caps;
+
+       caps = cap_get_proc();
+       if (caps == NULL) {
+               fatal("Unable to retrieve my capabilities");
+       }
+
+       ptr = strtok_r(capstr, ",", &savedptr);
+       while (ptr) {
+               if (cap_from_name(ptr, &capval) != 0) {
+                       errno = EINVAL;
+                       fatal("Unable to parse this capability : \"%s\"", ptr);
+               }
+
+               if (prctl(PR_CAPBSET_DROP, capval, 0, 0) != 0) {
+                       fatal("Unable to drop this capability: %s", ptr);
+               }
+
+               if (cap_set_flag(caps, CAP_INHERITABLE, 1, (cap_value_t *)&capval, CAP_CLEAR) != 0) {
+                       fatal("Unable to clear the capability %s", ptr);
+               }
+
+               ptr = strtok_r(NULL, ",", &savedptr);
+       }
+
+       if (cap_set_proc(caps) != 0) {
+               fatal("Unable to remove theses capabilities from the inherited set\n");
+       }
+
+       if (cap_free(caps) == -1) {
+               fatal("Cannot free the capability");
+       }
+}
+#endif
+
+static void
+parse_options(int argc, char * const *argv)
+{
+       static struct option longopts[] = {
+               { "help",         0, NULL, 'H'},
+               { "stop",         0, NULL, 'K'},
+               { "start",        0, NULL, 'S'},
+               { "version",      0, NULL, 'V'},
+               { "startas",      1, NULL, 'a'},
+               { "name",         1, NULL, 'n'},
+               { "oknodo",       0, NULL, 'o'},
+               { "pidfile",      1, NULL, 'p'},
+               { "quiet",        0, NULL, 'q'},
+               { "signal",       1, NULL, 's'},
+               { "test",         0, NULL, 't'},
+               { "user",         1, NULL, 'u'},
+               { "group",        1, NULL, 'g'},
+               { "chroot",       1, NULL, 'r'},
+               { "dropcap",      1, NULL, 'D'},
+               { "verbose",      0, NULL, 'v'},
+               { "exec",         1, NULL, 'x'},
+               { "chuid",        1, NULL, 'c'},
+               { "nicelevel",    1, NULL, 'N'},
+               { "background",   0, NULL, 'b'},
+               { "make-pidfile", 0, NULL, 'm'},
+               { "retry",        1, NULL, 'R'},
+               { "chdir",        1, NULL, 'd'},
+               { NULL,         0, NULL, 0}
+       };
+       int c;
+
+       for (;;) {
+               c = getopt_long(argc, argv, "HKSVa:n:op:qr:s:tu:vx:c:N:bmR:g:d:D",
+                               longopts, (int *) 0);
+               if (c == -1)
+                       break;
+               switch (c) {
+               case 'H':  /* --help */
+                       do_help();
+                       exit(0);
+               case 'K':  /* --stop */
+                       stop = 1;
+                       break;
+               case 'S':  /* --start */
+                       start = 1;
+                       break;
+               case 'V':  /* --version */
+                       printf("start-stop-daemon " VERSION "\n");
+                       exit(0);
+               case 'a':  /* --startas <pathname> */
+                       startas = optarg;
+                       break;
+               case 'n':  /* --name <process-name> */
+                       cmdname = optarg;
+                       break;
+               case 'o':  /* --oknodo */
+                       exitnodo = 0;
+                       break;
+               case 'p':  /* --pidfile <pid-file> */
+                       pidfile = optarg;
+                       break;
+               case 'q':  /* --quiet */
+                       quietmode = 1;
+                       break;
+               case 's':  /* --signal <signal> */
+                       signal_str = optarg;
+                       break;
+               case 't':  /* --test */
+                       testmode = 1;
+                       break;
+               case 'u':  /* --user <username>|<uid> */
+                       userspec = optarg;
+                       break;
+               case 'v':  /* --verbose */
+                       quietmode = -1;
+                       break;
+               case 'x':  /* --exec <executable> */
+                       execname = optarg;
+                       break;
+               case 'c':  /* --chuid <username>|<uid> */
+                       /* we copy the string just in case we need the
+                        * argument later. */
+                       changeuser = strdup(optarg);
+                       changeuser = strtok(changeuser, ":");
+                       changegroup = strtok(NULL, ":");
+                       break;
+               case 'g':  /* --group <group>|<gid> */
+                       changegroup = optarg;
+                       break;
+               case 'r':  /* --chroot /new/root */
+                       changeroot = optarg;
+                       break;
+               case 'D':  /* --dropcap cap_net_raw,cap_mac_admin */
+#ifdef HAVE_SYS_CAPABILITY_H
+                       caplist = optarg;
+#else
+                       badusage("Capabilities are not supported on your OS");
+#endif
+                       break;
+               case 'N':  /* --nice */
+                       nicelevel = atoi(optarg);
+                       break;
+               case 'b':  /* --background */
+                       background = 1;
+                       break;
+               case 'm':  /* --make-pidfile */
+                       mpidfile = 1;
+                       break;
+               case 'R':  /* --retry <schedule>|<timeout> */
+                       schedule_str = optarg;
+                       break;
+               case 'd':  /* --chdir /new/dir */
+                       changedir = optarg;
+                       break;
+               default:
+                       badusage(NULL);  /* message printed by getopt */
+               }
+       }
+
+       if (signal_str != NULL) {
+               if (parse_signal (signal_str, &signal_nr) != 0)
+                       badusage("signal value must be numeric or name"
+                                " of signal (KILL, INT, ...)");
+       }
+
+       if (schedule_str != NULL) {
+               parse_schedule(schedule_str);
+       }
+
+       if (start == stop)
+               badusage("need one of --start or --stop");
+
+       if (!execname && !pidfile && !userspec && !cmdname)
+               badusage("need at least one of --exec, --pidfile, --user or --name");
+
+       if (!startas)
+               startas = execname;
+
+       if (start && !startas)
+               badusage("--start needs --exec or --startas");
+
+       if (mpidfile && pidfile == NULL)
+               badusage("--make-pidfile is only relevant with --pidfile");
+
+       if (background && !start)
+               badusage("--background is only relevant with --start");
+
+}
+
+#if defined(OSLinux)
+static int
+pid_is_exec(pid_t pid, const struct stat *esb)
+{
+       struct stat sb;
+       char buf[32];
+
+       sprintf(buf, "/proc/%d/exe", pid);
+       if (stat(buf, &sb) != 0)
+               return 0;
+       return (sb.st_dev == esb->st_dev && sb.st_ino == esb->st_ino);
+}
+
+
+static int
+pid_is_user(pid_t pid, uid_t uid)
+{
+       struct stat sb;
+       char buf[32];
+
+       sprintf(buf, "/proc/%d", pid);
+       if (stat(buf, &sb) != 0)
+               return 0;
+       return (sb.st_uid == uid);
+}
+
+
+static int
+pid_is_cmd(pid_t pid, const char *name)
+{
+       char buf[32];
+       FILE *f;
+       int c;
+
+       sprintf(buf, "/proc/%d/stat", pid);
+       f = fopen(buf, "r");
+       if (!f)
+               return 0;
+       while ((c = getc(f)) != EOF && c != '(')
+               ;
+       if (c != '(') {
+               fclose(f);
+               return 0;
+       }
+       /* this hopefully handles command names containing ')' */
+       while ((c = getc(f)) != EOF && c == *name)
+               name++;
+       fclose(f);
+       return (c == ')' && *name == '\0');
+}
+#endif /* OSLinux */
+
+
+#if defined(OSHURD)
+static void
+init_procset(void)
+{
+       struct ps_context *context;
+       error_t err;
+
+       err = ps_context_create(getproc(), &context);
+       if (err)
+               error(1, err, "ps_context_create");
+
+       err = proc_stat_list_create(context, &procset);
+       if (err)
+               error(1, err, "proc_stat_list_create");
+
+       err = proc_stat_list_add_all(procset, 0, 0);
+       if (err)
+               error(1, err, "proc_stat_list_add_all");
+}
+
+static struct proc_stat *
+get_proc_stat (pid_t pid, ps_flags_t flags)
+{
+       struct proc_stat *ps;
+       ps_flags_t wanted_flags = PSTAT_PID | flags;
+
+       if (!procset)
+               init_procset();
+
+       ps = proc_stat_list_pid_proc_stat(procset, pid);
+       if (!ps)
+               return NULL;
+       if (proc_stat_set_flags(ps, wanted_flags))
+               return NULL;
+       if ((proc_stat_flags(ps) & wanted_flags) != wanted_flags)
+               return NULL;
+
+       return ps;
+}
+
+static int
+pid_is_user(pid_t pid, uid_t uid)
+{
+       struct proc_stat *ps;
+
+       ps = get_proc_stat(pid, PSTAT_OWNER_UID);
+       return ps && proc_stat_owner_uid(ps) == uid;
+}
+
+static int
+pid_is_cmd(pid_t pid, const char *name)
+{
+       struct proc_stat *ps;
+
+       ps = get_proc_stat(pid, PSTAT_ARGS);
+       return ps && !strcmp(proc_stat_args(ps), name);
+}
+
+static int
+pid_is_running(pid_t pid)
+{
+       return get_proc_stat(pid, 0) != NULL;
+}
+
+#else /* !OSHURD */
+
+static int
+pid_is_running(pid_t pid)
+{
+       struct stat sb;
+       char buf[32];
+
+       sprintf(buf, "/proc/%d", pid);
+       if (stat(buf, &sb) != 0) {
+               if (errno!=ENOENT)
+                       fatal("Error stating %s: %s", buf, strerror(errno));
+               return 0;
+       }
+
+       return 1;
+}
+
+#endif /* OSHURD */
+
+static void
+check(pid_t pid)
+{
+#if defined(OSLinux) || defined(OShpux)
+       if (execname && !pid_is_exec(pid, &exec_stat))
+#elif defined(OSHURD) || defined(OSFreeBSD) || defined(OSNetBSD)
+    /* I will try this to see if it works */
+       if (execname && !pid_is_cmd(pid, execname))
+#endif
+               return;
+       if (userspec && !pid_is_user(pid, user_id))
+               return;
+       if (cmdname && !pid_is_cmd(pid, cmdname))
+               return;
+       if (start && !pid_is_running(pid))
+               return;
+       if (stop && pid_is_running(pid))
+               push(&found, pid);
+}
+
+static void
+do_pidfile(const char *name)
+{
+       FILE *f;
+       pid_t pid;
+
+       f = fopen(name, "r");
+       if (f) {
+               if (fscanf(f, "%d", &pid) == 1)
+                       check(pid);
+               fclose(f);
+       } else if (errno != ENOENT)
+               fatal("open pidfile %s: %s", name, strerror(errno));
+
+}
+
+/* WTA: this  needs to be an autoconf check for /proc/pid existance.
+ */
+
+#if defined(OSLinux) || defined (OSsunos) || defined(OSfreebsd)
+static void
+do_procinit(void)
+{
+       DIR *procdir;
+       struct dirent *entry;
+       int foundany;
+       pid_t pid;
+
+       procdir = opendir("/proc");
+       if (!procdir)
+               fatal("opendir /proc: %s", strerror(errno));
+
+       foundany = 0;
+       while ((entry = readdir(procdir)) != NULL) {
+               if (sscanf(entry->d_name, "%d", &pid) != 1)
+                       continue;
+               foundany++;
+               check(pid);
+       }
+       closedir(procdir);
+       if (!foundany)
+               fatal("nothing in /proc - not mounted?");
+}
+#endif /* OSLinux */
+
+
+#if defined(OSHURD)
+static int
+check_proc_stat (struct proc_stat *ps)
+{
+       check(ps->pid);
+       return 0;
+}
+
+static void
+do_procinit(void)
+{
+       if (!procset)
+               init_procset();
+
+       proc_stat_list_for_each (procset, check_proc_stat);
+}
+#endif /* OSHURD */
+
+
+#if defined(OSOpenBSD) || defined(OSFreeBSD) || defined(OSNetBSD)
+static int
+pid_is_cmd(pid_t pid, const char *name)
+{
+        kvm_t *kd;
+        int nentries, argv_len=0;
+        struct kinfo_proc *kp;
+        char  errbuf[_POSIX2_LINE_MAX], buf[_POSIX2_LINE_MAX];
+       char  **pid_argv_p;
+       char  *start_argv_0_p, *end_argv_0_p;
+        kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, errbuf);
+        if (kd == 0)
+                errx(1, "%s", errbuf);
+        if ((kp = kvm_getprocs(kd, KERN_PROC_PID, pid, &nentries)) == 0)
+                errx(1, "%s", kvm_geterr(kd));
+       if ((pid_argv_p = kvm_getargv(kd, kp, argv_len)) == 0)
+               errx(1, "%s", kvm_geterr(kd)); 
+
+       start_argv_0_p = *pid_argv_p;
+       /* find and compare string */
+         
+       /* find end of argv[0] then copy and cut of str there. */
+       if ((end_argv_0_p = strchr(*pid_argv_p, ' ')) == 0 )    
+       /* There seems to be no space, so we have the command
+        * allready in its desired form. */
+         start_argv_0_p = *pid_argv_p;
+       else {
+         /* Tests indicate that this never happens, since
+          * kvm_getargv itselfe cuts of tailing stuff. This is
+          * not what the manpage says, however. */
+         strncpy(buf, *pid_argv_p, (end_argv_0_p - start_argv_0_p));
+         buf[(end_argv_0_p - start_argv_0_p) + 1] = '\0';
+         start_argv_0_p = buf;
+       }
+        
+       if (strlen(name) != strlen(start_argv_0_p))
+               return 0;
+        return (strcmp(name, start_argv_0_p) == 0) ? 1 : 0;
+}
+static int
+pid_is_user(pid_t pid, uid_t uid)
+{
+       kvm_t *kd;
+       int nentries;   /* Value not used */
+       uid_t proc_uid;
+       struct kinfo_proc *kp;
+       char  errbuf[_POSIX2_LINE_MAX];
+
+
+       kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, errbuf);
+       if (kd == 0)
+               errx(1, "%s", errbuf);
+       if ((kp = kvm_getprocs(kd, KERN_PROC_PID, pid, &nentries)) == 0)
+               errx(1, "%s", kvm_geterr(kd));
+       if (kp->kp_proc.p_cred )
+               kvm_read(kd, (u_long)&(kp->kp_proc.p_cred->p_ruid),
+                       &proc_uid, sizeof(uid_t));
+       else
+               return 0;
+       return (proc_uid == (uid_t)uid);
+}
+
+static int
+pid_is_exec(pid_t pid, const char *name)
+{
+       kvm_t *kd;
+       int nentries;
+       struct kinfo_proc *kp;
+       char errbuf[_POSIX2_LINE_MAX], *pidexec;
+
+       kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, errbuf);
+       if (kd == 0)
+               errx(1, "%s", errbuf);
+       if ((kp = kvm_getprocs(kd, KERN_PROC_PID, pid, &nentries)) == 0)
+               errx(1, "%s", kvm_geterr(kd));
+       pidexec = (&kp->kp_proc)->p_comm;
+       if (strlen(name) != strlen(pidexec))
+               return 0;
+       return (strcmp(name, pidexec) == 0) ? 1 : 0;
+}
+
+
+static void
+do_procinit(void)
+{
+       /* Nothing to do */
+}
+
+#endif /* OSOpenBSD */
+
+
+#if defined(OShpux)
+static int
+pid_is_user(pid_t pid, uid_t uid)
+{
+       struct pst_status pst;
+
+       if (pstat_getproc(&pst, sizeof(pst), (size_t) 0, (int) pid) < 0)
+               return 0;
+       return ((uid_t) pst.pst_uid == uid);
+}
+
+static int
+pid_is_cmd(pid_t pid, const char *name)
+{
+       struct pst_status pst;
+
+       if (pstat_getproc(&pst, sizeof(pst), (size_t) 0, (int) pid) < 0)
+               return 0;
+       return (strcmp(pst.pst_ucomm, name) == 0);
+}
+
+static int
+pid_is_exec(pid_t pid, const struct stat *esb)
+{
+       struct pst_status pst;
+
+       if (pstat_getproc(&pst, sizeof(pst), (size_t) 0, (int) pid) < 0)
+               return 0;
+       return ((dev_t) pst.pst_text.psf_fsid.psfs_id == esb->st_dev
+               && (ino_t) pst.pst_text.psf_fileid == esb->st_ino);
+}
+
+static void
+do_procinit(void)
+{
+       struct pst_status pst[10];
+       int i, count;
+       int idx = 0;
+
+       while ((count = pstat_getproc(pst, sizeof(pst[0]), 10, idx)) > 0) {
+                for (i = 0; i < count; i++)
+                       check(pst[i].pst_pid);
+                idx = pst[count - 1].pst_idx + 1;
+       }
+}
+#endif /* OShpux */
+
+
+static void
+do_findprocs(void)
+{
+       clear(&found);
+       
+       if (pidfile)
+               do_pidfile(pidfile);
+       else
+               do_procinit();
+}
+
+/* return 1 on failure */
+static void
+do_stop(int signal_nr, int quietmode, int *n_killed, int *n_notkilled, int retry_nr)
+{
+       struct pid_list *p;
+
+       do_findprocs();
+       *n_killed = 0;
+       *n_notkilled = 0;
+       if (!found)
+               return;
+       clear(&killed);
+
+       for (p = found; p; p = p->next) {
+               if (testmode) {
+                       printf("Would send signal %d to %d.\n",
+                              signal_nr, p->pid);
+                       (*n_killed)++;
+               } else if (kill(p->pid, signal_nr) == 0) {
+                       push(&killed, p->pid);
+                       (*n_killed)++;
+               } else {
+                       printf("%s: warning: failed to kill %d: %s\n",
+                              progname, p->pid, strerror(errno));
+                       (*n_notkilled)++;
+               }
+       }
+       if (quietmode < 0 && killed) {
+               printf("Stopped %s (pid", what_stop);
+               for (p = killed; p; p = p->next)
+                       printf(" %d", p->pid);
+               putchar(')');
+               if (retry_nr > 0)
+                       printf(", retry #%d", retry_nr);
+               printf(".\n");
+       }
+}
+
+
+static void
+set_what_stop(const char *str)
+{
+       strncpy(what_stop, str, sizeof(what_stop));
+       what_stop[sizeof(what_stop)-1] = '\0';
+}
+
+static int
+run_stop_schedule(void)
+{
+       int r, position, n_killed, n_notkilled, value, ratio, anykilled, retry_nr;
+       struct timeval stopat, before, after, interval, maxinterval;
+
+       if (testmode) {
+               if (schedule != NULL) {
+                       printf("Ignoring --retry in test mode\n");
+                       schedule = NULL;
+               }
+       }
+
+       if (cmdname)
+               set_what_stop(cmdname);
+       else if (execname)
+               set_what_stop(execname);
+       else if (pidfile)
+               sprintf(what_stop, "process in pidfile `%.200s'", pidfile);
+       else if (userspec)
+               sprintf(what_stop, "process(es) owned by `%.200s'", userspec);
+       else
+               fatal("internal error, please report");
+
+       anykilled = 0;
+       retry_nr = 0;
+
+       if (schedule == NULL) {
+               do_stop(signal_nr, quietmode, &n_killed, &n_notkilled, 0);
+               if (n_notkilled > 0 && quietmode <= 0)
+                       printf("%d pids were not killed\n", n_notkilled);
+               if (n_killed)
+                       anykilled = 1;
+               goto x_finished;
+       }
+
+       for (position = 0; position < schedule_length; ) {
+               value= schedule[position].value;
+               n_notkilled = 0;
+
+               switch (schedule[position].type) {
+
+               case sched_goto:
+                       position = value;
+                       continue;
+
+               case sched_signal:
+                       do_stop(value, quietmode, &n_killed, &n_notkilled, retry_nr++);
+                       if (!n_killed)
+                               goto x_finished;
+                       else
+                               anykilled = 1;
+                       goto next_item;
+
+               case sched_timeout:
+ /* We want to keep polling for the processes, to see if they've exited,
+  * or until the timeout expires.
+  *
+  * This is a somewhat complicated algorithm to try to ensure that we
+  * notice reasonably quickly when all the processes have exited, but
+  * don't spend too much CPU time polling.  In particular, on a fast
+  * machine with quick-exiting daemons we don't want to delay system
+  * shutdown too much, whereas on a slow one, or where processes are
+  * taking some time to exit, we want to increase the polling
+  * interval.
+  *
+  * The algorithm is as follows: we measure the elapsed time it takes
+  * to do one poll(), and wait a multiple of this time for the next
+  * poll.  However, if that would put us past the end of the timeout
+  * period we wait only as long as the timeout period, but in any case
+  * we always wait at least MIN_POLL_INTERVAL (20ms).  The multiple
+  * (`ratio') starts out as 2, and increases by 1 for each poll to a
+  * maximum of 10; so we use up to between 30% and 10% of the
+  * machine's resources (assuming a few reasonable things about system
+  * performance).
+  */
+                       xgettimeofday(&stopat);
+                       stopat.tv_sec += value;
+                       ratio = 1;
+                       for (;;) {
+                               xgettimeofday(&before);
+                               if (timercmp(&before,&stopat,>))
+                                       goto next_item;
+
+                               do_stop(0, 1, &n_killed, &n_notkilled, 0);
+                               if (!n_killed)
+                                       goto x_finished;
+
+                               xgettimeofday(&after);
+
+                               if (!timercmp(&after,&stopat,<))
+                                       goto next_item;
+
+                               if (ratio < 10)
+                                       ratio++;
+
+ TVCALC(interval,    ratio * (TVELEM(&after) - TVELEM(&before) + TVADJUST));
+ TVCALC(maxinterval,          TVELEM(&stopat) - TVELEM(&after) + TVADJUST);
+
+                               if (timercmp(&interval,&maxinterval,>))
+                                       interval = maxinterval;
+
+                               if (interval.tv_sec == 0 &&
+                                   interval.tv_usec <= MIN_POLL_INTERVAL)
+                                       interval.tv_usec = MIN_POLL_INTERVAL;
+
+                               r = select(0,0,0,0,&interval);
+                               if (r < 0 && errno != EINTR)
+                                       fatal("select() failed for pause: %s",
+                                             strerror(errno));
+                       }
+
+               default:
+                       assert(!"schedule[].type value must be valid");
+
+               }
+
+       next_item:
+               position++;
+       }
+
+       if (quietmode <= 0)
+               printf("Program %s, %d process(es), refused to die.\n",
+                      what_stop, n_killed);
+
+       return 2;
+
+x_finished:
+       if (!anykilled) {
+               if (quietmode <= 0)
+                       printf("No %s found running; none killed.\n", what_stop);
+               return exitnodo;
+       } else {
+               return 0;
+       }
+}
+
+
+int main(int argc, char **argv) NONRETURNING;
+int
+main(int argc, char **argv)
+{
+       int devnull_fd = -1;
+#ifdef HAVE_TIOCNOTTY
+       int tty_fd = -1;
+#endif
+       progname = argv[0];
+
+       parse_options(argc, argv);
+       argc -= optind;
+       argv += optind;
+
+       if (execname && stat(execname, &exec_stat))
+               fatal("stat %s: %s", execname, strerror(errno));
+
+       if (userspec && sscanf(userspec, "%d", &user_id) != 1) {
+               struct passwd *pw;
+
+               pw = getpwnam(userspec);
+               if (!pw)
+                       fatal("user `%s' not found\n", userspec);
+
+               user_id = pw->pw_uid;
+       }
+
+       if (changegroup && sscanf(changegroup, "%d", &runas_gid) != 1) {
+               struct group *gr = getgrnam(changegroup);
+               if (!gr)
+                       fatal("group `%s' not found\n", changegroup);
+               runas_gid = gr->gr_gid;
+       }
+       if (changeuser && sscanf(changeuser, "%d", &runas_uid) != 1) {
+               struct passwd *pw = getpwnam(changeuser);
+               if (!pw)
+                       fatal("user `%s' not found\n", changeuser);
+               runas_uid = pw->pw_uid;
+               if (changegroup == NULL) { /* pass the default group of this user */
+                       changegroup = ""; /* just empty */
+                       runas_gid = pw->pw_gid;
+               }
+       }
+
+       if (stop) {
+               int i = run_stop_schedule();
+               exit(i);
+       }
+
+       do_findprocs();
+
+       if (found) {
+               if (quietmode <= 0)
+                       printf("%s already running.\n", execname ? execname : "process");
+               exit(exitnodo);
+       }
+       if (testmode) {
+               printf("Would start %s ", startas);
+               while (argc-- > 0)
+                       printf("%s ", *argv++);
+               if (changeuser != NULL) {
+                       printf(" (as user %s[%d]", changeuser, runas_uid);
+                       if (changegroup != NULL)
+                               printf(", and group %s[%d])", changegroup, runas_gid);
+                       else
+                               printf(")");
+               }
+               if (changeroot != NULL)
+                       printf(" in directory %s", changeroot);
+               if (nicelevel)
+                       printf(", and add %i to the priority", nicelevel);
+               printf(".\n");
+               exit(0);
+       }
+       if (quietmode < 0)
+               printf("Starting %s...\n", startas);
+       *--argv = startas;
+       if (background) { /* ok, we need to detach this process */
+               int i;
+               if (quietmode < 0)
+                       printf("Detaching to start %s...", startas);
+               i = fork();
+               if (i<0) {
+                       fatal("Unable to fork.\n");
+               }
+               if (i) { /* parent */
+                       if (quietmode < 0)
+                               printf("done.\n");
+                       exit(0);
+               }
+                /* child continues here */
+
+#ifdef HAVE_TIOCNOTTY
+               tty_fd=open("/dev/tty", O_RDWR);
+#endif
+               devnull_fd=open("/dev/null", O_RDWR);
+       }
+       if (nicelevel) {
+               errno=0;
+               if ((nice(nicelevel)==-1) && (errno!=0))
+                       fatal("Unable to alter nice level by %i: %s", nicelevel,
+                               strerror(errno));
+       }
+       if (mpidfile && pidfile != NULL) { /* user wants _us_ to make the pidfile :) */
+               FILE *pidf = fopen(pidfile, "w");
+               pid_t pidt = getpid();
+               if (pidf == NULL)
+                       fatal("Unable to open pidfile `%s' for writing: %s", pidfile,
+                               strerror(errno));
+               fprintf(pidf, "%d\n", pidt);
+               fclose(pidf);
+       }
+       if (changeroot != NULL) {
+               if (chdir(changeroot) < 0)
+                       fatal("Unable to chdir() to %s", changeroot);
+               if (chroot(changeroot) < 0)
+                       fatal("Unable to chroot() to %s", changeroot);
+       }
+       if (chdir(changedir) < 0)
+               fatal("Unable to chdir() to %s", changedir);
+       if (changeuser != NULL) {
+               if (setgid(runas_gid))
+                       fatal("Unable to set gid to %d", runas_gid);
+               if (initgroups(changeuser, runas_gid))
+                       fatal("Unable to set initgroups() with gid %d", runas_gid);
+               if (setuid(runas_uid))
+                       fatal("Unable to set uid to %s", changeuser);
+       }
+       if (background) { /* continue background setup */
+               int i;
+#ifdef HAVE_TIOCNOTTY
+                /* change tty */
+               ioctl(tty_fd, TIOCNOTTY, 0);
+               close(tty_fd);
+#endif
+               umask(022); /* set a default for dumb programs */
+               dup2(devnull_fd,0); /* stdin */
+               dup2(devnull_fd,1); /* stdout */
+               dup2(devnull_fd,2); /* stderr */
+#if defined(OShpux)
+                /* now close all extra fds */
+               for (i=sysconf(_SC_OPEN_MAX)-1; i>=3; --i) close(i);
+#else
+                /* now close all extra fds */
+               for (i=getdtablesize()-1; i>=3; --i) close(i);
+#endif
+
+               /* create a new session */
+#ifdef HAVE_SETSID
+               setsid();
+#else
+               setpgid(0,0);
+#endif
+       }
+
+#ifdef HAVE_SYS_CAPABILITY_H
+       if (caplist) {
+               remove_capabilities(caplist);
+       }
+#endif
+
+       execv(startas, argv);
+       fatal("Unable to start %s: %s", startas, strerror(errno));
+}
+
diff --git a/trunk/src/testd.c b/trunk/src/testd.c
new file mode 100644 (file)
index 0000000..b2a5c7e
--- /dev/null
@@ -0,0 +1,9 @@
+#include <sys/signal.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+int main() {
+    signal(SIGTERM, SIG_IGN);
+    while (1) sleep(20);
+    exit(0);
+}
diff --git a/trunk/src/testdinit b/trunk/src/testdinit
new file mode 100755 (executable)
index 0000000..a54ed71
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# testd         This shell script takes care of starting and stopping
+#               testd (example daemon).
+#
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# See how we were called.
+case "$1" in
+  start)
+        # Start daemons.
+        echo -n "Starting testd: "
+        testd &
+        echo
+        touch /var/lock/subsys/testd
+        ;;
+  stop)
+        # Stop daemons.
+        echo -n "Shutting down testd: "
+       killproc testd
+        echo
+        rm -f /var/lock/subsys/testd
+        ;;
+  status)
+       # Am I alive?
+       status testd
+       exit $?
+        ;;
+  restart)
+       echo -n "Shutting down testd: "
+       killproc testd
+       echo
+       echo -n "Starting testd: "
+       testd &
+       echo
+       ;;
+  *)
+        echo "Usage: testd {start|stop|status|restart}"
+        exit 1
+esac
+
+exit 0
diff --git a/trunk/src/usernetctl.c b/trunk/src/usernetctl.c
new file mode 100644 (file)
index 0000000..3b35f93
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * Copyright (c) 1997-2003 Red Hat, Inc. All rights reserved.
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <alloca.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <limits.h>
+
+/* This will be running setuid root, so be careful! */
+static const char * safeEnviron[] = {
+       "PATH=/bin:/sbin:/usr/bin:/usr/sbin",
+       "HOME=/root",
+       NULL
+};
+
+#define FOUND_FALSE -1
+#define NOT_FOUND 0
+#define FOUND_TRUE 1
+
+#ifndef SBINDIR
+#define SBINDIR "/sbin"
+#endif
+
+static void
+usage(void) {
+    fprintf(stderr, "usage: usernetctl <interface-config> <up|down|report>\n");
+    exit(1);
+}
+
+static size_t
+testSafe(char *ifaceConfig, int fd) {
+    struct stat sb;
+
+    /* These shouldn't be symbolic links -- anal, but that's fine w/ mkj. */
+    if (fstat(fd, &sb)) {
+       fprintf(stderr, "failed to stat %s: %s\n", ifaceConfig, 
+               strerror(errno));
+       exit(1);
+    }
+
+    /* Safety/sanity checks. */
+    if (!S_ISREG(sb.st_mode)) {
+       fprintf(stderr, "%s is not a normal file\n", ifaceConfig);
+       exit(1);
+    }
+
+    if (sb.st_uid) {
+       fprintf(stderr, "%s should be owned by root\n", ifaceConfig);
+       exit(1);
+    }
+    
+    if (sb.st_mode & S_IWOTH) {
+       fprintf(stderr, "%s should not be world writeable\n", ifaceConfig);
+       exit(1);
+    }
+
+    return sb.st_size;
+}
+
+
+static int
+userCtl(char *file) {
+    char *buf;
+    char *contents = NULL;
+    char *chptr = NULL;
+    char *next = NULL;
+    int fd = -1, retval = NOT_FOUND;
+    size_t size = 0;
+
+    /* Open the file and then test it to see if we like it. This way
+       we avoid switcheroo attacks. */
+    if ((fd = open(file, O_RDONLY)) == -1) {
+       fprintf(stderr, "failed to open %s: %s\n", file, strerror(errno));
+       exit(1);
+    }
+
+    size = testSafe(file, fd);
+    if (size > INT_MAX) {
+        fprintf(stderr, "file %s is too big\n", file);
+        exit(1);
+    }
+
+    buf = contents = malloc(size + 2);
+    if (contents == NULL) {
+        fprintf(stderr, "failed to allocate memory\n");
+        exit(1);
+    }
+
+    if (read(fd, contents, size) != size) {
+       perror("error reading device configuration");
+       exit(1);
+    }
+    close(fd);
+
+    contents[size] = '\n';
+    contents[size + 1] = '\0';
+
+    /* Each pass parses a single line (until an answer is found),  The contents
+       pointer itself points to the beginning of the current line. */
+    while (*contents) {
+       chptr = contents;
+       while (*chptr != '\n') chptr++;
+       next = chptr + 1;
+       while (chptr >= contents && isspace(*chptr)) chptr--;
+       *(++chptr) = '\0';
+
+       if (!strncasecmp(contents, "USERCTL=", 8)) {
+           contents += 8;
+           if ((contents[0] == '"' &&
+                contents[strlen(contents) - 1] == '"') ||
+               (contents[0] == '\'' &&
+                contents[strlen(contents) - 1] == '\''))
+               {
+               contents++;
+               contents[strlen(contents) - 1] = '\0';
+           }
+
+           if (!strcasecmp(contents, "yes") || !strcasecmp(contents, "true")) 
+               retval = FOUND_TRUE;
+           else 
+               retval = FOUND_FALSE;
+
+           break;
+       }
+
+       contents = next;
+    }
+
+    free(buf);
+
+    return retval;
+}
+
+int
+main(int argc, char ** argv) {
+    char * ifaceConfig;
+    char * chptr;
+    char * cmd = NULL;
+    int report = 0;
+    char tmp;
+
+    if (argc != 3) usage();
+
+    if (!strcmp(argv[2], "up")) {
+       cmd = SBINDIR "/ifup";
+    } else if (!strcmp(argv[2], "down")) {
+       cmd = SBINDIR "/ifdown";
+    } else if (!strcmp(argv[2], "report")) {
+       report = 1;
+    } else {
+       usage();
+    }
+
+    if (chdir("/etc/sysconfig/interfaces")) {
+       fprintf(stderr, "error switching to /etc/sysconfig/interfaces: "
+               "%s\n", strerror(errno));
+       exit(1);
+    }
+
+    /* force the interface configuration to be in the current directory */
+    chptr = ifaceConfig = argv[1];
+    while (*chptr) {
+       if (*chptr == '/')
+           ifaceConfig = chptr + 1;
+       chptr++;
+    }
+
+    /* automatically prepend "ifcfg-" if it is not specified */
+    if (strncmp(ifaceConfig, "ifcfg-", 6)) {
+       char *temp;
+        size_t len = strlen(ifaceConfig);
+
+       /* Make sure a wise guys hasn't tried an integer wrap-around or
+          stack overflow attack. There's no way it could refer to anything 
+          bigger than the largest filename, so cut 'em off there. */
+        if (len > PATH_MAX)
+               exit(1);
+
+       temp = (char *) alloca(len + 7);
+       strcpy(temp, "ifcfg-");
+       /* strcat is safe because we got the length from strlen */
+       strcat(temp, ifaceConfig);
+       ifaceConfig = temp;
+    }
+    
+    if(getuid() != 0)
+    switch (userCtl(ifaceConfig)) {
+       char *dash;
+
+       case NOT_FOUND:
+           /* a `-' will be found at least in "ifcfg-" */
+           dash = strrchr(ifaceConfig, '-');
+           if (*(dash-1) != 'g') {
+               /* This was a clone configuration; ask the parent config */
+               tmp = *dash;
+               *dash = '\0';
+               if (userCtl(ifaceConfig) == FOUND_TRUE) {
+                   /* exit the switch; users are allowed to control */
+                   *dash = tmp;
+                   break;
+               }
+               *dash = tmp;
+           }
+           /* else fall through */
+       case FOUND_FALSE:
+           if (! report)
+               fprintf(stderr,
+                       "Users are not allowed to control this interface.\n");
+           exit(1);
+           break;
+    }
+
+    /* looks good to me -- let's go for it if we are changing the interface,
+     * report good status to the user otherwise */
+
+    if (report)
+       exit(0);
+
+    /* pppd wants the real uid to be the same as the effective (god only
+       knows why when it works fine setuid out of the box) */
+    setuid(geteuid());
+
+    execle(cmd, cmd, ifaceConfig, NULL, safeEnviron);
+    fprintf(stderr, "exec of %s failed: %s\n", cmd, strerror(errno));
+    
+    exit(1);
+}
diff --git a/trunk/src/usleep.c b/trunk/src/usleep.c
new file mode 100644 (file)
index 0000000..13e55b7
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * usleep.c     Sleep for the specified number of microseconds
+ *
+ * Usage:       usleep [ microseconds ]
+ *
+ * Copyright 2001 Werner Fink, 2001 SuSE GmbH Nuernberg, Germany.
+ * Copyright 2005 Werner Fink, 2005 SUSE LINUX Products GmbH, 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 of the License, or
+ * (at your option) any later version.
+ *
+ * Author:      Werner Fink <werner@suse.de>
+ */
+
+#ifndef  __USE_STRING_INLINES
+# define __USE_STRING_INLINES
+#endif
+#ifdef   __NO_STRING_INLINES
+# undef  __NO_STRING_INLINES
+#endif
+#include <libgen.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#ifdef _POSIX_PRIORITY_SCHEDULING
+# include <sched.h>
+#endif
+#define USAGE          "Usage:\t%s [ microseconds ]\n", we_are
+
+static char *we_are;
+int main(int argc, char **argv)
+{
+    unsigned long int usec = 1;
+
+    if (argc > 2)
+       goto err;
+
+    if (argc > 1) {
+       char *endptr;
+       usec = strtoul(argv[1], &endptr, 10);
+       if (*endptr != '\0')
+           goto err;
+    }
+
+    if (usec)
+       usleep(usec);
+#ifdef _POSIX_PRIORITY_SCHEDULING
+    else
+       (void)sched_yield();
+#endif
+    _exit(0);
+
+    /* Do this at the end for speed */
+err:
+    we_are = basename(argv[0]);
+    fprintf(stderr, USAGE);
+
+    if (argc > 1 && *(argv[1]) == '-') {
+       argv[1]++;
+       if (!strcmp(argv[1], "-help") || *(argv[1]) == 'h' || *(argv[1]) == '?') {
+           fprintf(stderr, "Sleep for the specified number of microseconds.\n\n");
+           fprintf(stderr, "Help options:\n");
+           fprintf(stderr, "  -h, -?, --help    display this help and exit.\n");
+           exit (0);
+       }
+    }
+    exit (1);
+}
diff --git a/trunk/sysconfig/Makefile.am b/trunk/sysconfig/Makefile.am
new file mode 100644 (file)
index 0000000..ad69648
--- /dev/null
@@ -0,0 +1,21 @@
+@SET_MAKE@
+
+SUBDIRS = interfaces hwprofiles cpusets
+
+sysconfigdir = @sysconfigdir@
+
+sysconfig_DATA = \
+       init-colors \
+       hwprof \
+       system \
+       network \
+       static-routes \
+       static-routes6 \
+       static-nat \
+       static-arp \
+       i18n
+
+noinst_DATA = \
+       init-colors.gentoo
+
+EXTRA_DIST = $(sysconfig_DATA) $(noinst_DATA)
diff --git a/trunk/sysconfig/cpusets/Makefile.am b/trunk/sysconfig/cpusets/Makefile.am
new file mode 100644 (file)
index 0000000..bb5d314
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+cpusetsdir = @sysconfigdir@/cpusets
+
+cpusets_DATA = cpuset-test
+
+EXTRA_DIST = $(cpusets_DATA)
diff --git a/trunk/sysconfig/cpusets/cpuset-test b/trunk/sysconfig/cpusets/cpuset-test
new file mode 100644 (file)
index 0000000..c1582ad
--- /dev/null
@@ -0,0 +1,25 @@
+# Name of the cpuset
+NAME=test
+
+# list of CPUs in that cpuset
+CPUS=1-2
+
+# list of Memory Nodes in that cpuset
+MEMS=1-2
+
+# If a cpuset is cpu or mem exclusive, no other cpuset, other than a direct
+# ancestor or descendent, may share any of the same CPUs or Memory Nodes.
+
+# is cpu placement exclusive?
+CPU_EXCLUSIVE=1
+
+# is memory placement exclusive?
+MEM_EXCLUSIVE=1
+
+# 
+#NOTIFY_ON_RELEASE=0
+
+# PIDs of tasks in this cpuset
+#TASKS=
+
+ONBOOT=no
diff --git a/trunk/sysconfig/hwprof b/trunk/sysconfig/hwprof
new file mode 100644 (file)
index 0000000..80ebedb
--- /dev/null
@@ -0,0 +1,7 @@
+# Hardware Profiles configuration
+
+# Enable HWPROFILES support?
+HWPROFILES=no
+
+# Ask for profile if not found
+ASKFORPROFILE=no
diff --git a/trunk/sysconfig/hwprofiles/Makefile.am b/trunk/sysconfig/hwprofiles/Makefile.am
new file mode 100644 (file)
index 0000000..55ed8f2
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+hwprofilesdir = @sysconfigdir@/hwprofiles
+
+noinst_DATA = files
+                         
+EXTRA_DIST = $(noinst_DATA)
diff --git a/trunk/sysconfig/hwprofiles/files b/trunk/sysconfig/hwprofiles/files
new file mode 100644 (file)
index 0000000..5695211
--- /dev/null
@@ -0,0 +1,15 @@
+/etc/cups/ppd/*
+/etc/cups/printers.conf
+/etc/sysconfig/interfaces/ifcfg-eth0
+/etc/X11/XF86Config
+/etc/X11/xorg.conf
+/etc/sysconfig/system
+/etc/sysconfig/network
+/etc/sysconfig/mouse
+/etc/hosts
+/etc/resolv.conf
+/etc/modules.conf
+/etc/modules
+/etc/printcap
+/etc/fstab
+/etc/sysconfig/fbset
diff --git a/trunk/sysconfig/i18n b/trunk/sysconfig/i18n
new file mode 100644 (file)
index 0000000..562b293
--- /dev/null
@@ -0,0 +1,13 @@
+# $Id$
+
+# NOTE: Do not use expressions here, systemd does not expand them:
+# LANG="${LANG:-en_US.UTF-8}"
+#
+#LANG=en_US.UTF-8
+#LANG=pl_PL.UTF-8
+
+# list of supported locales, otherwise install glibc-localedb-all to get all locales
+#SUPPORTED_LOCALES="pl_PL.UTF-8/UTF-8 en_US.UTF-8/UTF-8 de_DE.UTF-8/UTF-8 en_GB.UTF-8/UTF-8 pl_PL/ISO-8859-2 de_DE/ISO-8859-1 en_GB/ISO-8859-1 en_US/ISO-8859-1"
+
+# enable, install "localedb-src" package and execute "localedb-gen"
+#SUPPORTED_LOCALES="en_US.UTF-8/UTF-8 en_US/ISO-8859-1"
diff --git a/trunk/sysconfig/init-colors b/trunk/sysconfig/init-colors
new file mode 100644 (file)
index 0000000..500e22e
--- /dev/null
@@ -0,0 +1,12 @@
+# Default PLD Linux colors.
+
+CBRACKETS="$CYAN"      # brackets [ ] color
+CDONE="$GREEN"         # DONE and WORK color
+CBUSY="$MAGENTA"       # BUSY color
+CFAIL="$RED"           # FAIL and DIED color
+CPOWEREDBY="$CYAN"     # "Powered by" color
+CPLD="$GREEN"          # "PLD Linux Distribution" color
+CI="$RED"              # Capital I color (press I to enter interactive startup)
+CRESMAN="$GREEN"       # "Resource Manager" color
+CHARS=""               # Characters displayed on the beginning of show line
+CCHARS="$NORMAL"       # Color of these characters (look at /usr/share/doc/rc-scripts-*/init-colors.gentoo.gz example)
diff --git a/trunk/sysconfig/init-colors.gentoo b/trunk/sysconfig/init-colors.gentoo
new file mode 100644 (file)
index 0000000..8987a5b
--- /dev/null
@@ -0,0 +1,12 @@
+# Gentoo colors, copy this file as: /etc/sysconfig/init-colors
+
+CBRACKETS="$BLUE $BOLD"                # brackets [ ] color
+CDONE="$GREEN $BOLD"           # DONE and WORK color
+CBUSY="$MAGENTA $BOLD"         # BUSY color
+CFAIL="$RED $BOLD"             # FAIL and DIED color
+CPOWEREDBY="$BLUE $BOLD"       # "Powered by" color
+CPLD="$GREEN $BOLD"            # "PLD Linux Distribution" color
+CI="$RED $BOLD"                        # Capital I color (press I to enter interactive startup)
+CRESMAN="$GREEN $BOLD"         # "Resource Manager" color
+CHARS=" * "                    # Characters displayed on the beginning of show line
+CCHARS="$GREEN $BOLD"          # Color of these characters
diff --git a/trunk/sysconfig/interfaces/Makefile.am b/trunk/sysconfig/interfaces/Makefile.am
new file mode 100644 (file)
index 0000000..6c76f24
--- /dev/null
@@ -0,0 +1,32 @@
+@SET_MAKE@
+
+SUBDIRS = data up.d down.d
+
+interfacesdir = @sysconfigdir@/interfaces
+
+interfaces_DATA = ifcfg-eth0
+
+noinst_DATA = \
+       ifcfg-br0 \
+       ifcfg-description \
+       ifcfg-eth0.1 \
+       ifcfg-irda0 \
+       ifcfg-irlan0 \
+       ifcfg-ppp0.pppoe \
+       ifcfg-ppp0.kou \
+       ifcfg-ppp0.callback \
+       ifcfg-ppp0.eagle-usb-neostrada \
+       ifcfg-ppp0.gprs-idea \
+       ifcfg-ppp0.gprs-plusgsm \
+       ifcfg-ppp0.leased1 \
+       ifcfg-ppp0.leased2 \
+       ifcfg-ppp0.speedtouch-neostrada \
+       ifcfg-ppp0.tpsa \
+       ifcfg-ppp0.ueagle-neostrada \
+       ifcfg-ppp0.ueagle4-neostrada \
+       ifcfg-sl0 \
+       tnlcfg-description \
+       tnlcfg-icm 
+
+
+EXTRA_DIST = $(interfaces_DATA) $(noinst_DATA)
diff --git a/trunk/sysconfig/interfaces/data/Makefile.am b/trunk/sysconfig/interfaces/data/Makefile.am
new file mode 100644 (file)
index 0000000..36cefab
--- /dev/null
@@ -0,0 +1,15 @@
+@SET_MAKE@
+
+interfacesdatadir = @sysconfigdir@/interfaces/data
+
+interfacesdata_DATA = 
+
+noinst_DATA = \
+       chat-ppp0.kou \
+       chat-ppp0.kou-disconnect \
+       chat-ppp0.callback \
+       chat-ppp0.leased1 \
+       chat-ppp0.tpsa \
+       chat-ppp0.gprs-plusgsm
+
+EXTRA_DIST = $(interfacesdata_DATA) $(noinst_DATA)
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.callback b/trunk/sysconfig/interfaces/data/chat-ppp0.callback
new file mode 100644 (file)
index 0000000..0a2c483
--- /dev/null
@@ -0,0 +1,24 @@
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+# $Id$
+# Script for dialing to host with 'modem level' callback serurity enabled 
+# as performed by USRobotics Courier modem 
+ABORT          BUSY
+ABORT          NO\\sDIAL
+ABORT          NO\\sCARRIER
+TIMEOUT                60
+''             atz
+OK             $INITSTRING
+OK             atdt $PHONE
+CONNECT                \\c
+\)?            $CBPASSWORD
+umber          $CBPHONE
+HANGUP                 OFF
+CLR_ABORT      NO\\sCARRIER
+NO\\sCARRIER   \\c
+TIMEOUT                120
+RING           ATA
+ABORT          NO\\sCARRIER
+CONNECT                \\c
+HANGUP                 ON
+ogin:          $USER
+assword:       $PASSWORD       
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-idea b/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-idea
new file mode 100644 (file)
index 0000000..626482b
--- /dev/null
@@ -0,0 +1,7 @@
+ABORT BUSY
+ABORT ERROR
+ABORT "NO CARRIER"
+"" AT
+OK    $INITSTRING
+OK-AT-OK ATD"$PHONE"
+CONNECT
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-playmobile b/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-playmobile
new file mode 100644 (file)
index 0000000..83a3f7c
--- /dev/null
@@ -0,0 +1,10 @@
+TIMEOUT 10
+ABORT 'BUSY'
+ABORT 'NO ANSWER'
+ABORT 'ERROR'
+"" ATZ
+OK 'AT+CGDCONT=1,"IP","","0.0.0.0",0,0;+CGQMIN=1,0,0, 0,0,0;+CGQREQ=1,0,0,0,0,0;+CGEQREQ=1,4,0,0,0,0,2,0 ,"0E0","0E0",3,0,0;+CGEQMIN=1,3,0,0,0,0,0,0,"0E0", "0E0",2,0,0'
+ABORT 'NO CARRIER'
+OK 'ATDT*99#'
+
+CONNECT ''
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm b/trunk/sysconfig/interfaces/data/chat-ppp0.gprs-plusgsm
new file mode 100644 (file)
index 0000000..4d25b22
--- /dev/null
@@ -0,0 +1,10 @@
+ABORT "BUSY"
+ABORT "ERROR"
+ABORT "NO CARRIER"
+ABORT "NO DIALTONE"
+ABORT "NO ANSWER"
+ABORT "Username/Password Incorrect"
+"" ATZ
+OK AT+CGDCONT=1,"IP","www.plusgsm.pl","",0,0
+OK "ATD*99***1#"
+CONNECT ''
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.kou b/trunk/sysconfig/interfaces/data/chat-ppp0.kou
new file mode 100644 (file)
index 0000000..e4861a0
--- /dev/null
@@ -0,0 +1,8 @@
+ABORT  BUSY
+ABORT  ERROR
+ABORT   'NO CARRIER'
+
+TIMEOUT        60
+
+''             ATZ
+OK             ATDT#777
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.kou-disconnect b/trunk/sysconfig/interfaces/data/chat-ppp0.kou-disconnect
new file mode 100644 (file)
index 0000000..bf8e1c9
--- /dev/null
@@ -0,0 +1,8 @@
+ABORT  BUSY
+ABORT  ERROR
+ABORT   'NO CARRIER'
+ABORT  'NO DIALTONE'
+SAY            "\nSending interruption to CDMA modem\n"
+""             "\K"
+""             "+++ATH"
+SAY            "\nCDMA connection interrupted\n"
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.leased1 b/trunk/sysconfig/interfaces/data/chat-ppp0.leased1
new file mode 100644 (file)
index 0000000..6b6a4e1
--- /dev/null
@@ -0,0 +1,9 @@
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+# $Id$
+# chat script for setting up hardwired (leased) serial line.
+# refer to ifcfg-ppp0.leased1 for more info 
+REPORT  CONNECT
+ABORT   'NO CARRIER'
+''              \\r$INITSTRING
+OK              ''
+CONNECT
diff --git a/trunk/sysconfig/interfaces/data/chat-ppp0.tpsa b/trunk/sysconfig/interfaces/data/chat-ppp0.tpsa
new file mode 100644 (file)
index 0000000..02ee559
--- /dev/null
@@ -0,0 +1,14 @@
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+#  $Id$
+# Script for dialing in to Public Internet Access by TPSA (0202122)
+  
+ABORT          BUSY
+ABORT          NO\\sDIAL
+ABORT          NO\\sCARRIER
+TIMEOUT        60
+''             atz
+OK             $INITSTRING
+OK             atdt$PHONE
+CONNECT                \\c
+ame:           $USER
+ord:           $PASSWORD       
diff --git a/trunk/sysconfig/interfaces/down.d/Makefile.am b/trunk/sysconfig/interfaces/down.d/Makefile.am
new file mode 100644 (file)
index 0000000..fed9958
--- /dev/null
@@ -0,0 +1,3 @@
+@SET_MAKE@
+
+SUBDIRS = all ip ipx ppp tnl
diff --git a/trunk/sysconfig/interfaces/down.d/all/Makefile.am b/trunk/sysconfig/interfaces/down.d/all/Makefile.am
new file mode 100644 (file)
index 0000000..89e512c
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+alldowndir= @downdir@/all
+
+alldown_SCRIPTS =
+noinst_SCRIPTS =  thetouch
+
+EXTRA_DIST = $(alldown_SCRIPTS) $(noinst_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/down.d/all/thetouch b/trunk/sysconfig/interfaces/down.d/all/thetouch
new file mode 100755 (executable)
index 0000000..5b94f29
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+# This script will run every time some interface will go down
+# using ifup or ifdown.
+#
+
diff --git a/trunk/sysconfig/interfaces/down.d/ip/Makefile.am b/trunk/sysconfig/interfaces/down.d/ip/Makefile.am
new file mode 100644 (file)
index 0000000..4ba0661
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipdowndir = @downdir@/ip
+
+ipdown_SCRIPTS =
+
+EXTRA_DIST = $(ipdown_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/down.d/ipx/Makefile.am b/trunk/sysconfig/interfaces/down.d/ipx/Makefile.am
new file mode 100644 (file)
index 0000000..18363b2
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipxdowndir = @downdir@/ipx
+
+ipxdown_SCRIPTS =
+
+EXTRA_DIST = $(ipxdown_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/down.d/ppp/Makefile.am b/trunk/sysconfig/interfaces/down.d/ppp/Makefile.am
new file mode 100644 (file)
index 0000000..e381269
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+pppdowndir= @downdir@/ppp
+
+pppdown_SCRIPTS = logger
+
+EXTRA_DIST = $(pppdown_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/down.d/ppp/logger b/trunk/sysconfig/interfaces/down.d/ppp/logger
new file mode 100644 (file)
index 0000000..6504679
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id$
+# You can put here anything :)
+#
+echo " Disconnect time: $(date) from $PPP_REMOTE                    " >> /var/log/ppp.log
+echo "+---------------------------------------------------------------+" >> /var/log/ppp.log
diff --git a/trunk/sysconfig/interfaces/down.d/tnl/Makefile.am b/trunk/sysconfig/interfaces/down.d/tnl/Makefile.am
new file mode 100644 (file)
index 0000000..e4aeb54
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+tnldowndir = @downdir@/tnl
+
+tnldown_SCRIPTS =
+
+EXTRA_DIST = $(tnldown_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/ifcfg-bond0 b/trunk/sysconfig/interfaces/ifcfg-bond0
new file mode 100644 (file)
index 0000000..de41301
--- /dev/null
@@ -0,0 +1,24 @@
+# $Id$
+# bonding setup
+
+# filename: ifcfg-bond0
+DEVICE=bond0
+IPADDR=192.168.0.1/24
+IPADDR1=10.10.0.1/21
+BOOTPROTO=none
+ONBOOT=yes
+
+# additionally create ifcfg-eth0 and ifcfg-eth1 as:
+# filename: ifcfg-eth0
+#DEVICE=eth0
+#SLAVE=yes
+#MASTER=bond0
+#BOOTPROTO=none
+#ONBOOT=yes
+
+# filename: ifcfg-eth1
+#DEVICE=eth1
+#SLAVE=yes
+#MASTER=bond0
+#BOOTPROTO=none
+#ONBOOT=yes
diff --git a/trunk/sysconfig/interfaces/ifcfg-br0 b/trunk/sysconfig/interfaces/ifcfg-br0
new file mode 100644 (file)
index 0000000..20126d5
--- /dev/null
@@ -0,0 +1,7 @@
+# $Id$
+#
+DEVICE=br0
+IPADDR=195.164.211.2
+ONBOOT=yes
+BRIDGE_DEVS="eth0 eth1"
+SPANNING_TREE=yes
diff --git a/trunk/sysconfig/interfaces/ifcfg-description b/trunk/sysconfig/interfaces/ifcfg-description
new file mode 100644 (file)
index 0000000..4716bfe
--- /dev/null
@@ -0,0 +1,241 @@
+# $Id$
+
+DEVICE=<name>
+
+[ BOOTPRIO=number ]
+  ifcfg-* interfaces are configured in BOOTPRIO order starting
+  from lowest value first. You need to set BOOTPRIO in _all_ your
+  ifcfg* files because if you won't do that only these interfaces
+  with BOOTPRIO variable will be configured. Use the same schema
+  when setting variable for example BOOTPRIO=number
+  or BOOTPRIO="number" because sorting is done by sort command.
+
+[ BOOTPROTO={none|bootp|dhcp|pump} ]
+  You can specify which dhcp client to use with the DHCP_CLIENT, if
+  the DHCP_CLIENT is not specified we trying to launch in order :
+  /sbin/dhcpcd
+  /sbin/dhclient
+  /sbin/dhcpxd
+  /sbin/pump
+  if you have a preferred client define the DHCP_CLIENT variable.
+  You can also pass some options to dhcp client via DHCP_OPTIONS.
+
+[ BOOTPROTO6={none|dhcp6|v4compat}
+  dhcp6 isn't supported, yet.
+  v4compat uses available IPv4 addresses (ie. from DHCPv4)
+  and then convert them to IPv6 (IPv4-compatible) to use with
+  automatic tunnels
+
+
+IPADDR="(IPv4 or IPv6 address)/prefix"
+IP_AOPTS="broadcast xxx etc" (by default broadcast is autocalculated)
+IP_ROPTS=""
+IP_LABEL=""
+
+IPADDR1=
+IP_AOPTS1= options for ip addr add
+IP_ROPTS1= options for ip route add (currently used only for IP4_PRIM_IF)
+IP_LABEL1= IPv6 address label as per RFC 3484 (ip addrlabel ...)
+
+IP4_PRIM_IF="1"                # number of primary IPv4 interface (IPADDRx)
+IP4_SRC_IF="1"         # number of IPv4 address for ip's ,,src'' parameter
+IP6_PRIM_IF=""         #
+
+[ ONBOOT={no|yes} ]
+[ HOTPLUG={no|yes} ] - bring up from hotplug (udev for example) (default to no)
+[ MULTICAST={|no|yes} ]        - for eth automatically set to yes
+[ ARP={no|yes} ]       - for eth automatically set to yes
+[ IPV6_DISABLE_AUTOCONF={yes|no} ] - disable IPv6 autoconfiguration
+
+[ IPX=yes|no ]
+if     IPX=yes ; then
+
+       IPXNETNUM_{802_2,802_2TR,802_3,EtherII,SNAP}
+       IPXPRIMARY_{802_2,802_2TR,802_3,EtherII,SNAP}=yes|no
+       IPXACTIVE_{802_2,802_2TR,802_3,EtherII,SNAP}=yes|no
+fi
+
+[ MTU= ]
+[ METRIC= ]
+[ PROXYARP={yes|no} ]
+
+QDISC=[sfq|teql0|red|prio|...] (queueing discipline)
+QDISC_CLASS=[htb|cbq|none]     (use cbq|htb as class based discipline;
+                                if none specified and bandwidth_out present
+                                then tbf is used)
+BANDWIDTH_IN=[upstream limit in kilobites, supported on 2.4 only]
+BANDWIDTH_OUT=[downstream limit in kilobites]
+
+VLAN_REORDER_HDR=[0|1] When this is set, the VLAN device will move the
+                       ethernet header around to make it look exactly like a
+                       real ethernet device.  This may help programs such
+                       as DHCPd which read the raw ethernet packet and
+                       make assumptions about the location of bytes.
+                       If you don't need it, don't turn it on, because there
+                       will be at least a small performance degradation.
+                       Default is ON.
+
+[ VLAN_GVRP=yes|no ]    Enable GVRP.
+
+[ DEFAULTHANDLING=yes|no ] (used in configuration for ATM interfaces,
+                           obsolete variable)
+[ HANDLING=0|1|2|3 ] (0 is default; used ie. in ATM configuration, for
+                     details see ifup script)
+
+if     DEVICE=eth*; then
+
+       [ MEDIA={auto|10baseT|10base2|AUI} ]
+       [ MACADDR=<hw address> ]
+
+       if macvlan
+               MACVLAN_DEV=<exitsting base interface eg. eth0>
+               MACVLAN_MACADDR=<desired hw address of new interface>
+       fi
+       
+
+       if      DEVICE=wireless interface (man iwconfig(8))
+               WLAN_UPEARLY=<yes>|<no> Up device before setting any WLAN parameters
+                                       (needed for some drivers)
+               WLAN_ESSID=<ESSID or Network Name (Domain ID)>|any|off
+               WLAN_NWID=<Network ID (Domain ID)>|off
+               WLAN_FREQ=<frequency> (2.422G)
+               WLAN_CHANNEL=<channel number> (3)
+               WLAN_SENS=<the sensitivity threshold>
+               WLAN_MODE=ad-hoc|managed|master|repeater|secondary|auto
+               WLAN_AP=<Access Point address>|any|auto|off
+               WLAN_NICKNAME=<station nickname)
+               WLAN_BITRATE=<bitrate like 11M>|auto|fixed
+               WLAN_RTS_THRESHOLD=<rts/cts threshold>|auto|fixed|off
+               WLAN_FRAGMENTATION_THRESHOLD=<frag threshold>|auto|fixed|off
+               WLAN_KEY=XXXX-XXXX-XXXX-XXXX|XXXXXXXX|s:<ascii string>
+               if WLAN_KEY; then
+                       WLAN_KEY_1=... <optional>
+                       WLAN_KEY_2=... <optional>
+                       WLAN_KEY_3=... <optional>
+                       WLAN_KEY_4=... <optional>
+                       WLAN_KEY_CURRENT=index <optional>
+               fi
+               WLAN_ENCRYPTION=on|off|open|restricted
+               WLAN_POWER=period <value>|timeout <value>|on|off|all|unicast|multicast
+               WLAN_TXPOWER=<power in dBm>|<power in mW>mW|auto|on|off
+               WLAN_RETRY=limit <value>|lifetime <value>
+               WLAN_COMMIT=yes|no (some cards require manual commit of changes)
+               if WLAN_WPA=yes; then
+                       WLAN_WPA_WAIT_TIMEOUT=<wait max x sec for wpa_suplicant>
+                       WLAN_WPA_DRIVER=<driver: see -D option of wpa_supplicant; default is wext>
+                       WLAN_WPA_CONFIG=<path to wpa_supplicant config file>
+                       WLAN_WPA_OPTIONS=[additional wpa_supplicant options]
+               fi
+       fi
+
+elif   DEVICE=ppp* || DEVICE=sl* ; then
+
+       PERSIST=yes|no
+       MODEMPORT=<device, say /dev/modem>
+       LINESPEED=<speed, say 115200>
+       DEFABORT=yes|no
+        DIRECT_CONNECT=yes|no (direct connection without chat/wvdial used for example
+                              on SDI or leased lines)
+
+       if      DEVICE=ppp* ; then
+
+               AUTH=yes|no
+               PEERDNS=yes|no
+               DEFROUTE=yes|no
+               ESCAPECHARS=yes|no
+               SYNC=yes|no (yes implies "sync" option)
+               HOLDOFF=30
+               HARDFLOWCTL=yes|no (yes implies "modem crtscts" options)
+               PPPOPTIONS=<arbitrary option string>
+               PAPNAME=<"name $PAPNAME" on pppd command line>
+               REMIP=<remote ip4 address, normally unspecified>
+               REMIP6=<remote ip6 address, normally unspecified>
+               MRU=
+               DISCONNECTTIMEOUT=<number of seconds, default currently 5>
+               RETRYTIMEOUT=<number of seconds, default currently 60>
+               INITSCRIPT=<modem command>
+               DATAFORCHAT=<list of variables>
+               <anything>=<anything> (for chat script)
+               IPV6_PPP=yes|no (use IPv6 for ppp ?)
+               if IPV6_PPP = yes ; then
+                       IPV6_CP_USEV4=yes|no (use local IPv4 mapped addresses
+                                             as IPv6 addresses)
+                       IPV6_CP_PERSISTENT=yes|no (use EUI-48 addresses
+                                                  as IPv6 addresses; not
+                                                  supported on Linux, yet)
+                       or by default use address specified by IP6_PRIM_IF
+                       and REMIP6
+               fi
+               PPPOA=yes|no (generic PPP over ATM)
+               if PPPOA = yes ; then
+                       PPPOA_VPI=<VPI number>
+                       PPPOA_VCI=<VCI number>
+               fi
+               PPPOE_DEV=<ethX> (PPP over Ethernet device)
+               if PPPOE_DEV exists ; then
+                       PPPOE_KERNEL=yes|no (use or not kernel space PPPoE support)
+                       PPPOE_OPT=<options> (used only with userspace pppoe program)
+               fi
+               PPPOA_EAGLE=yes|no (eagle-usb support)
+               if PPPOA_EAGLE = yes ; then
+                       PPPOA_OPT=<options> (used only with userspace pppoa program)
+               fi
+               PPPOA_SPEEDTOUCH=yes|no (speedtouch support)
+               if PPPOA_SPEEDTOUCH = yes ; then
+                       PPPOA_KERNEL=yes|no (use or not kernel space PPPoA support)
+                       PPPOA_VPI=<VPI number>
+                       PPPOA_VCI=<VCI number>
+                       PPPOA_OPT=<options> (used only with userspace pppoa program)
+               fi
+               UNIT=yes|no (pass unit option to pppd (depends on DEVICE name)
+                            defaults to yes)
+               WVDIALSECT= (section in wvdial config maybe)
+       fi
+
+       if      DEVICE=sl* ; then       (SLIP)
+               PROTOCOL=slip|cslip|adaptive
+               REMIP=<remote ip4 address>
+               REMIP6=<remote ip6 address, normally unspecified>
+       fi
+
+elif   DEVICE=br* ; then       /* Bridge */
+
+       BRIDGE_DEVS=<list of devices betwen which do bridging>
+                   Note: separation configuration for devices in this list
+                         should be avoided !
+       AGEING=<ethernet (MAC) address ageing time in seconds>
+       GCINT=<garbage collection interval time for the bridge in seconds>
+
+       SPANNING_TREE=yes|no (enable SPT - Spanning Tree Protocol)
+       if      SPANNING_TREE=yes ; then
+                       BRIDGEPRIO=<bridge's priority; 0-65535; less == better>
+                       FD=<bridge forward delay time in seconds>
+                       HELLO=<bridge hello time in seconds>
+                       MAXAGE=<maximum message age in seconds>
+                       PATHCOST_PORT=<port number>
+                       PATHCOST=<cost of the port specified in PATHCOST_PORT>
+                               Note: both PATHCOST_PORT and PATHCOST must be
+                                     specified to set cost of port
+                       PORTPRIO_PORT=<port>
+                       PORTPRIO=<port priority used by port selection algorithms;
+                                 a number between 0 and 255>
+                               Note: see note above
+       fi
+elif    DEVICE=irda* ; then     /* IrDA */
+
+        IRDAPORT=<device, say /dev/ttyS1>
+        DONGLE=<driver, see README.irattach from irda-utils package>
+        DISCOVERY=yes|no (starts discovery of remote IrDA devices)
+fi
+
+# You can also run some other programs *after* device has been brought up or down.
+# Just create functions run_up() and run_down().
+run_up()
+{
+       echo "This will be executed after device is brought up!"
+}
+
+run_down()
+{
+       echo "This will be executed after device is brought down!"
+}
diff --git a/trunk/sysconfig/interfaces/ifcfg-eth0 b/trunk/sysconfig/interfaces/ifcfg-eth0
new file mode 100644 (file)
index 0000000..0e70724
--- /dev/null
@@ -0,0 +1,41 @@
+# $Id$
+# Config for Ethernet card.
+#
+
+# Name of the device. Must match filename suffix.
+DEVICE=eth0
+
+# IP addresses/address prefix
+# where prefix:
+# 24 - resembles netmask 255.255.255.0
+# 16 - resembles netmask 255.255.0.0
+# etc.
+# IPADDR may be either IPv4 or IPv6
+# you may have up to 256 addresses set up
+#IPADDR=192.168.0.1/24
+#IPADDR1=192.168.0.2/24
+#IPADDR2=192.168.0.3/24
+#IPADDR3=192.168.0.4/24
+
+# you may select which of the above addresses
+# is primary for this interface (it'd be IPADDR1 in the example below)
+#IP4_PRIM_IF="1"
+
+# activate on boot? yes|no
+# you must set it to 'yes' if you want to have this up after bootup
+ONBOOT=yes
+
+# dhcp|pump|none
+BOOTPROTO=dhcp
+
+# pass parameters to dhcp client
+#DHCP_OPTIONS="-R"
+
+# sane qdisc
+QDISC=sfq
+
+# configure a 6to4 tunnel?
+#ENABLE_6TO4=yes
+
+# ethtool options like WoL
+#ETHTOOL_OPTS="wol g"
diff --git a/trunk/sysconfig/interfaces/ifcfg-eth0.1 b/trunk/sysconfig/interfaces/ifcfg-eth0.1
new file mode 100644 (file)
index 0000000..e0611e0
--- /dev/null
@@ -0,0 +1,10 @@
+# $Id$
+# VLAN device
+#
+
+DEVICE=eth0.1
+IPADDR1=192.168.0.2/32
+IPADDR2=3ffe:bbb:ccc:ddd::5/64
+IP4_PRIM_IF=1
+MUTLICAST=no
+ONBOOT=yes
diff --git a/trunk/sysconfig/interfaces/ifcfg-irda0 b/trunk/sysconfig/interfaces/ifcfg-irda0
new file mode 100644 (file)
index 0000000..97b8fd2
--- /dev/null
@@ -0,0 +1,11 @@
+# $Id$
+# Read /usr/share/doc/irda-utils-*/README.irattach.gz for more
+# informations about options below.
+#
+DEVICE=irda0
+IPADDR=192.168.0.10
+ONBOOT=yes
+IRDAPORT=/dev/ttyS1
+DONGLE=esi
+DISCOVERY=yes
+
diff --git a/trunk/sysconfig/interfaces/ifcfg-irlan0 b/trunk/sysconfig/interfaces/ifcfg-irlan0
new file mode 100644 (file)
index 0000000..98d7954
--- /dev/null
@@ -0,0 +1,6 @@
+# $Id$
+# alias irlan0 irlan
+#
+DEVICE=irlan0
+BOOTPROTO=dhcp
+ONBOOT=yes
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.callback b/trunk/sysconfig/interfaces/ifcfg-ppp0.callback
new file mode 100644 (file)
index 0000000..bbb45b5
--- /dev/null
@@ -0,0 +1,27 @@
+# $Id$
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0.callback
+ONBOOT=no
+HARDFLOWCTL=yes
+MODEMPORT=/dev/ttyS1
+LINESPEED=115200
+DEBUG=yes
+PERSIST=no
+HOLDOFF=10
+#demand option not finished yet ;-(
+DEMAND=no
+#ACTIVEFILTER=
+#IDLE=
+PHONE=phone
+INITSTRING=ATe0s2=255
+#CBPASSWORD and CBPHONE is ysed (by me) in callback. 
+#see included chat-ppp0 for example of
+#"modem level" callback (on USRobotics Courier)
+CBPASSWORD=cbpassword
+CBPHONE=myphone
+USER=user
+PASSWORD=password
+DATAFORCHAT="CBPASSWORD CBPHONE PHONE USER PASSWORD INITSTRING"
+
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada b/trunk/sysconfig/interfaces/ifcfg-ppp0.eagle-usb-neostrada
new file mode 100644 (file)
index 0000000..636a64a
--- /dev/null
@@ -0,0 +1,15 @@
+# $Id$
+#
+DEVICE=ppp0
+ONBOOT=yes
+PPPOA_EAGLE=yes
+AUTH=no
+MTU=1452
+PERSIST=yes
+DEFROUTE=yes
+USEPEERDNS=yes
+PAPNAME=XXX@neostrada.pl
+# put password in /etc/ppp/pap-secrets or install
+# ppp-plugin-ifcfg-password and uncommend following lines
+# PLUGIN_IFCFG_PASSWORD=yes
+# PASSWORD=YYYY
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-idea b/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-idea
new file mode 100644 (file)
index 0000000..02844c3
--- /dev/null
@@ -0,0 +1,28 @@
+# $Id$
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0.gprs-idea
+ONBOOT=no
+HARDFLOWCTL=no
+# ircomm0 for IRDA, rfcomm0 for BlueTooth
+MODEMPORT=/dev/ircomm0
+# MODEMPORT=/dev/bluetooth/rfcomm/0
+LINESPEED=115200
+AUTH=no
+DEBUG=yes
+DEFROUTE=yes
+PERSIST=yes
+HOLDOFF=1
+MTU=296
+#demand option not finished yet ;-(
+DEMAND=no
+PHONE='*99***1#'
+#or
+#PHONE='*99#'
+USER=idea
+PASSWORD=idea
+INITSTRING='AT+CGDCONT=1,"IP","www.idea.pl","",0,0'
+DATAFORCHAT="USER PASSWORD INITSTRING PHONE"
+PPPOPTIONS="noipdefault noproxyarp lcp-echo-failure 0 lcp-echo-interval 0 local"
+PLUGIN_IFCFG_PASSWORD=yes
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-playmobile b/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-playmobile
new file mode 100644 (file)
index 0000000..a77b712
--- /dev/null
@@ -0,0 +1,25 @@
+# $Id$
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/chat-ppp0.gprs-playmobile
+ONBOOT=no
+HARDFLOWCTL=no
+# ttyUSB0 or tts/USB0 for USB modems, ircomm0 for IRDA, rfcomm0 for BlueTooth
+MODEMPORT=/dev/ttyUSB0
+# MODEMPORT=/dev/bluetooth/rfcomm/0
+LINESPEED=115200
+AUTH=no
+DEBUG=yes
+DEFROUTE=yes
+PERSIST=yes
+HOLDOFF=1
+#MTU=296
+#demand option not finished yet ;-(
+DEMAND=no
+PHONE='*99***1#'
+#or
+#PHONE='*99#'
+INITSTRING='AT+CGDCONT=1,"IP","","0.0.0.0",0,0;+CGQMIN=1,0,0, 0,0,0;+CGQREQ=1,0,0,0,0,0;+CGEQREQ=1,4,0,0,0,0,2,0 ,"0E0","0E0",3,0,0;+CGEQMIN=1,3,0,0,0,0,0,0,"0E0", "0E0",2,0,0'
+DATAFORCHAT="INITSTRING PHONE"
+PPPOPTIONS="noipdefault noproxyarp lcp-echo-failure 0 lcp-echo-interval 0 local"
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm b/trunk/sysconfig/interfaces/ifcfg-ppp0.gprs-plusgsm
new file mode 100644 (file)
index 0000000..b7532af
--- /dev/null
@@ -0,0 +1,26 @@
+# $Id$
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0
+ONBOOT=no
+HARDFLOWCTL=yes
+# ircomm0 for IRDA, rfcomm0 for BlueTooth
+MODEMPORT=/dev/ircomm0
+LINESPEED=115200
+AUTH=no
+#QDISC="sfq quantum 1500b perturb 5"
+DEBUG=yes
+DEFROUTE=yes
+PERSIST=no
+HOLDOFF=10
+#demand option not finished yet ;-(
+DEMAND=no
+#ACTIVEFILTER=
+#IDLE=
+PHONE='*99***1#'
+USER=plusgsm
+PASSWORD=plusgsm
+INITSTRING='AT+CGDCONT=1,"IP","www.plusgsm.pl","",0,0'
+DATAFORCHAT="USER PASSWORD INITSTRING PHONE"
+
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.kou b/trunk/sysconfig/interfaces/ifcfg-ppp0.kou
new file mode 100644 (file)
index 0000000..4fbc59f
--- /dev/null
@@ -0,0 +1,20 @@
+# $Id$
+
+DEVICE=ppp0
+
+MODEMPORT=/dev/tts/USB0
+LINESPEED=460800
+
+# Your ESN of the device.
+# You should also add to chap secrets a line:
+# ESN * "cdma" *
+PAPNAME=#ESN
+
+ONBOOT=yes
+AUTH=no
+PERSIST=yes
+DEFROUTE=yes
+USEPEERDNS=yes
+DEBUG=no
+
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0.kou
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.leased1 b/trunk/sysconfig/interfaces/ifcfg-ppp0.leased1
new file mode 100644 (file)
index 0000000..7901581
--- /dev/null
@@ -0,0 +1,31 @@
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+# $Id$
+# config file for setting up hardwired (leased) serial line.
+# This configuration uses chats with modem, so You have to have an inteligent
+# modem (AT commands compatible).
+# But You can monitor connection speed.
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0.leased1
+ONBOOT=yes
+IPADDR=192.168.255.254/30
+REMIP=192.168.255.253
+HARDFLOWCTL=yes
+MODEMPORT=/dev/ttyS1
+LINESPEED=115200
+DEBUG=no
+PERSIST=yes
+HOLDOFF=10
+#demand option not finished yet ;-(
+DEMAND=no
+#ACTIVEFILTER=
+#IDLE=
+# one end is "calling"
+INITSTRING="ATs0=0&l1"
+# while other is "receiving"
+#INITSTRING="ATs0=1&l1"
+#if your modem doesn't support AT&L1 command try with ATD on one side 
+#and ATA on the other. 
+DATAFORCHAT="INITSTRING"
+
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.leased2 b/trunk/sysconfig/interfaces/ifcfg-ppp0.leased2
new file mode 100644 (file)
index 0000000..2da55b9
--- /dev/null
@@ -0,0 +1,30 @@
+# (c) 1999 Grzegorz Stanislawski <stangrze@open.net.pl>
+# $Id$
+# config file for setting up hardwired (leased) serial line.
+# This config assumes "transparent" modem (in ex. goramo), null modem
+# cable or current loop. 
+# Advantage is smaller logfiles and slower 'pid spinning' (no chat is
+# executed)
+# You can configure Your AT Hayes compatibile modem to transparent mode
+# using ATS0=0&L1&S5&W on master "calling" side and ATS0=1&L1&S5&W on
+# slave "reciving" side 
+# Note: After commiting last &W You won't be able to talk to Your modem 
+# until You reset it to factory defaults using some jumper.
+# if You don't have any jumper YOU HAVE BEEN WARNED. 
+#
+DEVICE=ppp0
+ONBOOT=yes
+IPADDR=192.168.255.254/30
+REMIP=192.168.255.253
+HARDFLOWCTL=yes
+MODEMPORT=/dev/ttyS1
+LINESPEED=115200
+DEBUG=no
+PERSIST=yes
+HOLDOFF=10
+#demand option not finished yet ;-(
+DEMAND=no
+#ACTIVEFILTER=
+#IDLE=
+
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.pppoe b/trunk/sysconfig/interfaces/ifcfg-ppp0.pppoe
new file mode 100644 (file)
index 0000000..94e4d9f
--- /dev/null
@@ -0,0 +1,29 @@
+# name of the device
+DEVICE=ppp0
+
+# add the password in /etc/ppp/chap-secrets
+PAPNAME=adslusername
+
+AUTH=no
+IPV6_PPP=no
+PPPOE_DEV=eth1
+PPPOE_KERNEL=yes
+#PPPOE_OPTS="persist"
+HARDFLOWCTL=yes
+DEBUG=no
+PERSIST=no
+HOLDOFF=10
+DEMAND=no
+DEFROUTE=yes
+PEERDNS=yes
+
+# you may select which of the above addresses
+# is primary for this interface (it'd be IPADDR1 in the example below)
+#IP4_PRIM_IF="1"
+
+# activate on boot? yes|no
+# you must set it to 'yes' if you want to have this up after bootup
+ONBOOT=yes
+
+# dhcp|pump|none
+BOOTPROTO=none
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada b/trunk/sysconfig/interfaces/ifcfg-ppp0.speedtouch-neostrada
new file mode 100644 (file)
index 0000000..b8ca012
--- /dev/null
@@ -0,0 +1,25 @@
+# $Id$
+#
+DEVICE=ppp0
+ONBOOT=yes
+PPPOA_SPEEDTOUCH=yes
+PPPOA_KERNEL=yes
+PPPOA_VPI=0
+PPPOA_VCI=35
+
+# If using kernel mode, make sure /lib/firmware/speedtch-{1,2}.bin exists
+# and don't define this variable.
+# Preferably, build speedtouch-firmware from CVS.
+#PPPOA_FIRMWARE="/usr/share/speedtouch/mgmt.o"
+
+AUTH=no
+#MTU=1452
+PERSIST=yes
+DEFROUTE=yes
+USEPEERDNS=yes
+#PAPNAME="rejestracja@neostrada.pl"
+PAPNAME="XXX@neostrada.pl"
+# put password in /etc/ppp/pap-secrets or install
+# ppp-plugin-ifcfg-password and uncommend following lines
+# PLUGIN_IFCFG_PASSWORD=yes
+# PASSWORD="YYYY"
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.tpsa b/trunk/sysconfig/interfaces/ifcfg-ppp0.tpsa
new file mode 100644 (file)
index 0000000..46c42f2
--- /dev/null
@@ -0,0 +1,24 @@
+# $Id$
+#
+DEVICE=ppp0
+CHATSCRIPT=/etc/sysconfig/interfaces/data/chat-ppp0.tpsa
+ONBOOT=no
+HARDFLOWCTL=yes
+MODEMPORT=/dev/ttyS1
+LINESPEED=115200
+AUTH=no
+QDISC="sfq quantum 1500b perturb 5"
+DEBUG=yes
+PERSIST=no
+HOLDOFF=10
+#demand option not finished yet ;-(
+DEMAND=no
+#ACTIVEFILTER=
+#IDLE=
+PHONE=0w202122
+USER=ppp
+PASSWORD=ppp
+INITSTRING=ATe0s2=255
+DATAFORCHAT="USER PASSWORD INITSTRING PHONE"
+
+REPORTFILE=/var/log/ppp0.log
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada b/trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle-neostrada
new file mode 100644 (file)
index 0000000..4270b18
--- /dev/null
@@ -0,0 +1,18 @@
+# $Id$
+#
+DEVICE="ppp0"
+PERSIST="yes"
+USER="XXXXXXXXXXXXXX@neostrada.pl"
+ONBOOT="no"
+
+PERSIST=yes
+DEFROUTE=yes
+USEPEERDNS=yes
+AUTH=no
+MTU=1452
+DEBUG=yes
+MAXFAIL=0
+
+PPPOA=yes
+PPPOA_VPI=0
+PPPOA_VCI=35
diff --git a/trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle4-neostrada b/trunk/sysconfig/interfaces/ifcfg-ppp0.ueagle4-neostrada
new file mode 100644 (file)
index 0000000..ac8f64b
--- /dev/null
@@ -0,0 +1,24 @@
+#
+DEVICE="ppp0"
+ONBOOT="no"
+
+PAPNAME="xxxxxxx@neostrada.pl"
+
+HARDFLOWCTL=no
+DEFROUTE=yes
+USEPEERDNS=yes
+AUTH=no
+#MTU=1452
+SYNC=yes
+
+PPPOA=yes
+PPPOA_VPI=0
+PPPOA_VCI=35
+
+PERSIST=yes
+MAXFAIL=0
+HOLDOFF=4
+
+PPPOPTIONS="noipdefault noaccomp nopcomp noccp"
+
+DEBUG=yes
diff --git a/trunk/sysconfig/interfaces/ifcfg-sl0 b/trunk/sysconfig/interfaces/ifcfg-sl0
new file mode 100644 (file)
index 0000000..4497fa9
--- /dev/null
@@ -0,0 +1,13 @@
+# $Id$
+#
+DEVICE=sl0
+IPADDR=195.164.211.2
+ONBOOT=yes
+MODEMPORT=/dev/ttyS0
+LINESPEED=57600
+REMIP=194.181.19.1
+MTU=296
+PROTOCOL=slip
+# say no for dip && modem connection
+# say yes for direct connection to for example router via slattach
+DIRECT_CONNECT=yes
diff --git a/trunk/sysconfig/interfaces/tnlcfg-description b/trunk/sysconfig/interfaces/tnlcfg-description
new file mode 100644 (file)
index 0000000..23192bf
--- /dev/null
@@ -0,0 +1,42 @@
+#      $Id$
+#
+# In this file you can also put all configuration data instead
+# of using second file named ifcfg-tunnel_name.
+
+MODE={ipip|gre|sit|ipxip}
+ONBOOT=yes|no
+DEVICE=<device name>
+if     MODE=ipxip ; then
+       ?
+elif   MODE=ipip || MODE=gre || MODE=sit ; then
+
+       REMOTEADDR=<IPv4 addres>
+       [ LOCALADDR=<IPv4 addres> ]
+       [ BIND_DEV= ] do jakiego device przybindować (ma związek z routingiem itp)
+
+       [ TTL= ]
+       [ TOS= ]
+       [ PMTUDISC={no|yes} ]
+
+       if      MODE=gre ; then
+
+               [ KEY= ]
+               [ IKEY= ]
+               [ OKEY= ]
+               [ ISEQ={no|yes} ]
+               [ ISEQ={no|yes} ]
+               [ OSEQ={no|yes} ]
+               [ CSUM={no|yes} ]
+               [ ICSUM={no|yes} ]
+               [ OCSUM={no|yes} ]
+       fi
+
+else   MODE=four ; then
+
+       REMOTEADDR=<IPv6 addres>
+       LOCALADDR=<IPv6 addres>
+
+       [ PRIORITY= ]
+       [ HOPLIMIT= ]
+       [ ENCAPLIMIT= ]
+fi
diff --git a/trunk/sysconfig/interfaces/tnlcfg-icm b/trunk/sysconfig/interfaces/tnlcfg-icm
new file mode 100644 (file)
index 0000000..21e429f
--- /dev/null
@@ -0,0 +1,20 @@
+MODE=sit
+DEVICE=icm
+REMOTEADDR=193.219.28.246
+LOCALADDR=156.17.210.110
+IPADDR1="3ffe:8010:70::2/126"
+IP6_PRIM_IF=1
+BIND_DEV=eth0
+TTL=64
+ONBOOT=yes
+#TOS=
+#SEQ={no|yes} ]
+#ISEQ={no|yes} ]
+#OSEQ={no|yes} ]
+#KEY= ]
+#IKEY= ]
+#OKEY= ]
+#CSUM={no|yes} ]
+#ICSUM={no|yes} ]
+#OCSUM={no|yes} ]
+#PMTUDISC={no|yes} ]
diff --git a/trunk/sysconfig/interfaces/up.d/Makefile.am b/trunk/sysconfig/interfaces/up.d/Makefile.am
new file mode 100644 (file)
index 0000000..cd1f744
--- /dev/null
@@ -0,0 +1,4 @@
+@SET_MAKE@
+
+SUBDIRS = all ip ipx ppp tnl
+
diff --git a/trunk/sysconfig/interfaces/up.d/all/Makefile.am b/trunk/sysconfig/interfaces/up.d/all/Makefile.am
new file mode 100644 (file)
index 0000000..3bd6864
--- /dev/null
@@ -0,0 +1,8 @@
+@SET_MAKE@
+
+allupdir = @updir@/all
+
+allup_SCRIPTS = 
+noinst_SCRIPTS = thetouch
+
+EXTRA_DIST = $(allup_SCRIPTS) $(noinst_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/up.d/all/thetouch b/trunk/sysconfig/interfaces/up.d/all/thetouch
new file mode 100755 (executable)
index 0000000..4036c67
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+# This script will run every time some interface will go up
+# using ifup or ifdown.
+#
+
diff --git a/trunk/sysconfig/interfaces/up.d/ip/Makefile.am b/trunk/sysconfig/interfaces/up.d/ip/Makefile.am
new file mode 100644 (file)
index 0000000..aae2158
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipupdir = @updir@/ip
+
+ipup_SCRIPTS = 
+
+EXTRA_DIST = $(ipup_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/up.d/ipx/Makefile.am b/trunk/sysconfig/interfaces/up.d/ipx/Makefile.am
new file mode 100644 (file)
index 0000000..d286c2b
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+ipxupdir = @updir@/ipx
+
+ipxup_SCRIPTS = 
+
+EXTRA_DIST = $(ipxup_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/up.d/ppp/Makefile.am b/trunk/sysconfig/interfaces/up.d/ppp/Makefile.am
new file mode 100644 (file)
index 0000000..18f3b25
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+pppupdir = @updir@/ppp
+
+pppup_SCRIPTS = logger
+
+EXTRA_DIST = $(pppup_SCRIPTS)
diff --git a/trunk/sysconfig/interfaces/up.d/ppp/logger b/trunk/sysconfig/interfaces/up.d/ppp/logger
new file mode 100644 (file)
index 0000000..21a3e43
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $Id$
+# You can put here anything :)
+#
+echo "+---------------------------------------------------------------+" >> /var/log/ppp.log
+echo " Connect time: $(date) with $PPP_REMOTE                    " >> /var/log/ppp.log
diff --git a/trunk/sysconfig/interfaces/up.d/tnl/Makefile.am b/trunk/sysconfig/interfaces/up.d/tnl/Makefile.am
new file mode 100644 (file)
index 0000000..ffbe34f
--- /dev/null
@@ -0,0 +1,7 @@
+@SET_MAKE@
+
+tnlupdir = @updir@/tnl
+
+tnlup_SCRIPTS =
+
+EXTRA_DIST = $(tnlup_SCRIPTS)
diff --git a/trunk/sysconfig/network b/trunk/sysconfig/network
new file mode 100644 (file)
index 0000000..535b59f
--- /dev/null
@@ -0,0 +1,69 @@
+# $Id$
+######################################################################
+# MAIN PART
+
+# Do you need IPv4 or IPv6 networking ?
+NETWORKING=yes
+
+# Do you need IPv4 networking ?
+IPV4_NETWORKING=yes
+
+# Do you want IPv4 forwarding ?
+# then set it in /etc/sysctl.conf
+
+# Set hostname here
+HOSTNAME=pldmachine
+
+# Allow udev to create /etc/sysconfig/interfaces/ifcfg-* automatically?
+# See /lib/udev/net_helper for details.
+AUTOMATIC_IFCFG=no
+
+# Set NIS domain name here if you use NIS
+# Note: DNS domain name should be set in /etc/hosts or DNS/NIS service, not here
+NISDOMAIN=
+
+# Traditional setup of gateway. This is obsolete, consider using static-routes
+# instead. However this is really enough for most users.
+GATEWAY=
+GATEWAYDEV=
+
+# Do you want to use IPX networking ?
+IPX=no
+IPXAUTOPRIMARY=
+IPXAUTOFRAME=
+IPXINTERNALNETNUM=
+IPXINTERNALNODENUM=
+
+# Do you need IPv6 networking ?
+IPV6_NETWORKING=yes
+
+# Do you want IPv6 forwarding ?
+# then set it in /etc/sysctl.conf
+
+# Enable tunnel interfaces configuration ?
+IPV6_TUNNELCONFIG=yes
+
+# Global route for IPv6 host with IPv6 forwarding
+IPV6_GLOBALROUTEGW=
+IPV6_GLOBALROUTEDEV=
+
+# Other
+
+# Do you want set static ARP table (based on /etc/ethers config file) ?
+STATIC_ARP=no
+
+# Do you want set static RARP table (based on /etc/ethers config file) ?
+STATIC_RARP=no
+
+# Specify interface on which you want to enable tleds software
+# (also you need tleds package installed) -- default set to no
+TLEDS_DEV=no
+
+# enable globally for all network interfaces.
+# bring up from hotplug (udev for example) (default to no)
+#HOTPLUG=yes
+
+# set up Zeroconf routes for communication via/with IPv4ALL link-local
+# addresses
+ZEROCONF=yes
+
diff --git a/trunk/sysconfig/static-arp b/trunk/sysconfig/static-arp
new file mode 100644 (file)
index 0000000..64d5b60
--- /dev/null
@@ -0,0 +1,3 @@
+# dev mac ip state opts
+# eth0 00:80:48:12:c2:3c 192.168.10.10 permanent
+#eth1 00:80:48:12:c2:44 12.12.12.12 permanent
diff --git a/trunk/sysconfig/static-nat b/trunk/sysconfig/static-nat
new file mode 100644 (file)
index 0000000..1365fbb
--- /dev/null
@@ -0,0 +1,3 @@
+# <IP>[/<mask>]                via <IP>
+# 192.168.1.1           via 1.1.1.1
+# 192.168.2.1/24        via 1.1.1.1
diff --git a/trunk/sysconfig/static-routes b/trunk/sysconfig/static-routes
new file mode 100644 (file)
index 0000000..61b35d3
--- /dev/null
@@ -0,0 +1,12 @@
+# Entry format for ip rule:
+# <rule>
+# Entry format for static route:
+# <device>     <network_ip>/<network_mask_length>      <other arguments>
+#
+# Combined example:
+
+#from 192.168.2.0/24 table 10
+#eth0 default via 192.168.2.1 table 10
+#
+# route 10.12.0.34 via 192.168.2.3 via any interface
+#any 10.12.0.34 via 192.168.2.3
diff --git a/trunk/sysconfig/static-routes6 b/trunk/sysconfig/static-routes6
new file mode 100644 (file)
index 0000000..3c1a7ca
--- /dev/null
@@ -0,0 +1,14 @@
+# IPv6 specific rules and routes
+
+# Entry format for ip rule:
+# <rule>
+# Entry format for static route:
+# <device>     <network_ip>/<network_mask_length>      <other arguments>
+#
+# Combined example:
+
+#from fec0:2::/32 table 10
+#eth0 default via fec0:2::1 table 10
+#
+# route fec0:12::34 via fec0:2::3 via any interface
+#any fec0:12::34 via fec0:2::3
diff --git a/trunk/sysconfig/system b/trunk/sysconfig/system
new file mode 100644 (file)
index 0000000..e152afa
--- /dev/null
@@ -0,0 +1,124 @@
+# $Id$
+
+# Do you want colorized starting scripts ?
+COLOR_INIT=yes
+
+# Print status at which column
+#INIT_COL=67
+
+# Do you want fast boot? (without NLS, excessive logging and fancy
+# terminals support)
+FASTRC=no
+
+# Messages with a higher priority than this will be printed
+# to the console (default 1)
+CONSOLE_LOGLEVEL=1
+
+# On errors (when system is starting) run sulogin instead of shell ?
+RUN_SULOGIN_ON_ERR=yes
+
+# Default run nice level for all services if $SERVICE_RUN_NICE_LEVEL is not
+# defined in /etc/sysconfig/<service>.
+DEFAULT_SERVICE_RUN_NICE_LEVEL=+0
+
+# Default limits set before running daemons (hard and soft) if
+# $SERVICE_LIMITS are not defined in /etc/sysconfig/<service>
+#
+# Use "-u" for process limits (automatically translated to "-p" for ksh).
+# Use "-Sx" or "-Hx" to set only soft or hard "x" limit.
+#
+# Advised limits are:
+# "-u unlimited" to make sure daemons will be able to fork;
+# "-c 0" to make sure it doesn't core dump anywhere; while this could mask
+# problems with the daemon, it also closes some security problems;
+# users' limits are set via pam_limits.
+DEFAULT_SERVICE_LIMITS="-u unlimited -c 0"
+
+# Default umask for all services if $SERVICE_UMASK is not defined in
+# /etc/sysconfig/<service>.
+DEFAULT_SERVICE_UMASK=022
+
+# Setup PNP using userspace tools?
+RUN_USERPNP=yes
+# Setup kernel space PNP (2.4.x)
+RUN_KERNELPNP=yes
+
+# After how many seconds reboot system after kernel panic ?
+# 0 - never reboot system (suggested 60)
+PANIC_REBOOT_TIME=0
+
+# Do not allow users to login when system is starting
+# (but allow when it end "starting" process) ?
+DELAY_LOGIN=yes
+
+# Clean /tmp at startup ?
+CLEAN_TMP=yes
+
+# We want utmpx/wtmpx
+NEED_XFILES=yes
+
+# Try to setup proper symlinks in /boot (based on kernel version) ?
+SET_SLINKS=yes
+
+# Run depmod at startup ?
+# Values:
+# yes/no       - as usually
+# ifmissing    - if modules.dep is missing
+RUN_DEPMOD=ifmissing
+
+# Run /sbin/ldconfig at startup ?
+RUN_LDCONFIG=no
+
+# Start udev (udev-core required)?
+START_UDEV=yes
+
+# EVMS/LVM options
+# Extensible Firmware Interface GUID Partition Table segment manager
+EVMS_GUID_PTABLE=no
+
+# Use EVMS for Linux LVM volumes
+EVMS_LVM=no
+
+# Create symlinks for LVM volumes (/dev/evms/lvm/* -> /dev/*)
+EVMS_LVM_COMPAT_NODES=yes
+
+# EVMS AIX LVM volumes
+EVMS_AIX=no
+
+# EVMS OS/2 LVM volumes
+EVMS_OS2=no
+
+# LVM2
+# disable if your only LVM volume is rootfs started on initrd and want faster startup
+LVM2=yes
+
+# Disable dm-multipath and friends here if you plan to use
+# non standard drivers (ex. DELL MPP RDAC driver)
+DM_MULTIPATH=yes
+
+# Set to anything other than 'no' to allow hotkey interactive startup...
+RC_PROMPT=yes
+
+# List of chroots separated by space (to handle processes inside/outside
+# chroot properly)
+#SYSTEM_CHROOTS=
+
+# List (space separated) of special mount points that must not be unmounted
+# on system shutdown.
+# May contain regular expressions (eg. "/dev/rootunion/.*")
+#UMOUNT_IGNORE=
+
+# Enable cpusets support?
+CPUSETS=no
+
+# Enable this system as vserver guest (yes/no/detect)
+VSERVER=detect
+
+# Vserver isolation only networking inside of guest (yes/no/detect)
+VSERVER_ISOLATION_NET=detect
+
+# Enable syslogging for rc-scripts
+RC_LOGGING=yes
+
+# Disable console logging by blogd
+RC_BOOTLOG=yes
diff --git a/trunk/sysctl.conf b/trunk/sysctl.conf
new file mode 100644 (file)
index 0000000..9b50cb9
--- /dev/null
@@ -0,0 +1,205 @@
+### IPV4 NETWORKING
+
+# Disables IPv4 packet forwarding
+net.ipv4.ip_forward = 0
+
+# Enables source route verification
+net.ipv4.conf.all.rp_filter = 1
+net.ipv4.conf.default.rp_filter = 1
+
+# Accept ICMP redirect messages (suggested 1 for hosts and 0 for routers)
+# net.ipv4.conf.all.accept_redirects = 1
+
+# Accept source routed packages (suggested 0 for hosts and 1 for routers)
+# net.ipv4.conf.all.accept_source_route = 1
+
+# Log packets with source addresses with no known route to kernel log
+# net.ipv4.conf.all.log_martians = 1
+
+# Do multicast routing ? The kernel needs to be compiled with
+# CONFIG_MROUTE and a multicast routing daemon is required.
+# net.ipv4.conf.all.mc_forwarding = 1
+
+# If you get message "Neighbour table overflow" try to play with this values.
+# Needed in huge networks. These example values are sufficent in networks with
+# mask 21.
+# net.ipv4.neigh.default.gc_thresh3 = 4096
+# net.ipv4.neigh.default.gc_thresh2 = 2048
+# net.ipv4.neigh.default.gc_thresh1 = 512
+# net.ipv6.neigh.default.gc_thresh3 = 1024
+# net.ipv6.neigh.default.gc_thresh2 = 512
+# net.ipv6.neigh.default.gc_thresh1 = 128
+
+# Do proxy ARP ?
+# net.ipv4.conf.all.proxy_arp = 1
+
+# Accept ICMP redirect messages only for gateways, listed in
+# default gateway list ?
+# net.ipv4.conf.all.secure_redirects = 1
+
+# Send ICMP redirects to other hosts ?
+# net.ipv4.conf.all.send_redirects = 1
+
+# Ignore all ICMP echo requests ? 
+# net.ipv4.icmp_echo_ignore_all = 1
+
+# Ignore ICMP echo requests to broadcast and multicast addresses ?
+# net.ipv4.icmp_echo_ignore_broadcasts = 1
+
+# Enable MTU discovery patch ? (KERNEL MUST SUPPORT THIS)
+# MTU (maximal transfer unit) is the size of the chunks we send out
+# over the net. "Path MTU Discovery" means that, instead of always
+# sending very small chunks, we start out sending big ones and if we
+# then discover that some host along the way likes its chunks smaller,
+# we adjust to a smaller size.
+# net.ipv4.ip_no_pmtu_disc = 1
+
+# Enable debugging of IP masquerading ?
+# net.ipv4.ip_masq_debug = 1
+
+# Bug-to-bug compatibility with some broken printers. On retransmit
+# try to send bigger packets to work around bugs in certain TCP
+# stacks. Can be turned off by setting IPV4_RETRANS_COLLAPSE to ,,yes''. 
+# net.ipv4.tcp_retrans_collapse = 1
+        
+# Disable select acknowledgments after RFC2018 ?
+# TCP may experience poor performance when multiple packets are lost
+# from one window of data. With the limited information available
+# from cumulative acknowledgments, a TCP sender can only learn about a
+# single lost packet per round trip time. An aggressive sender could
+# choose to retransmit packets early, but such retransmitted segments
+# may have already been successfully received.
+# net.ipv4.tcp_sack = 0
+
+# Disable timestamps as defined in RFC1323 ?
+# Timestamps are designed to provide compatible interworking with
+# TCP's that do not implement the TCP Extensions for High Performance
+# net.ipv4.tcp_timestamps = 0
+
+# Enable the strict RFC793 interpretation of the TCP urgent pointer field.
+# net.ipv4.tcp_stdurg = 1
+
+# Enable tcp_syncookies
+# net.ipv4.tcp_syncookies = 1
+
+# Disable window scaling as defined in RFC1323 ?
+# The window scale extension expands the definition of the TCP
+# window to 32 bits and then uses a scale factor to carry this
+# 32-bit value in the 16-bit Window field of the TCP header.
+# net.ipv4.tcp_window_scaling = 0
+
+# Enable dynamic socket address rewriting on interface address change.
+# This is useful for dialup interface with changing IP addresses.
+# sys.net.ipv4.ip_dynaddr = 7
+
+# Range of ports used by TCP and UDP to choose the local
+# port. Contains two numbers, the first number is the lowest port,
+# the second number the highest local port. Default is "1024 4999".
+# Should be changed to "32768 61000" for high-usage systems.
+# net.ipv4.ip_local_port_range = 4096 61000
+
+# Disables automatic defragmentation (needed for masquerading, LVS)
+# Non existant on Linux 2.4
+# net.ipv4.ip_always_defrag = 0
+
+### IPV6 NETWORKING
+
+# Disables IPv6 packet forwarding
+# net.ipv6.conf.all.forwarding = 0
+
+# Do you want IPv6 address autoconfiguration? Kernel default is yes.
+# net.ipv6.conf.all.autoconf = 0
+# net.ipv6.conf.default.autoconf = 0
+
+# Do you want kernel to add default route for IPv6 interfaces if
+# there is no router on the link? Kernel default is yes.
+# Kernel 2.4.0-test? or later (after ANK accepts my patch - baggins).
+# net.ipv6.conf.all.autoconf_route = 0
+
+### OTHER SETTINGS
+
+# Adjust number of inodes and file handles available in the system.
+# If you have a havily loaded system and kernel complains about
+# file/inode limit reached in VFS, increase this 2x. The default
+# value is 4096 (file) and 8192 (inode). The inode number should be
+# always 2-3 times the file number. For most systems this should not
+# be changed
+# fs.file-max = 8192
+# fs.inode-max = 16384
+
+# Controls whether core dumps will append the PID to the core filename.
+# Useful for debugging multi-threaded applications.
+#kernel.core_uses_pid = 1
+
+# Enable the magic-sysrq key
+kernel.sysrq = 1
+
+#
+# GRSECURITY http://www.grsecurity.org
+#
+# WARNING!
+# These values are SET ONCE!
+#
+#kernel.grsecurity.linking_restrictions = 1
+#kernel.grsecurity.fifo_restrictions = 1
+#kernel.grsecurity.destroy_unused_shm = 0
+#kernel.grsecurity.chroot_caps = 0
+#kernel.grsecurity.chroot_deny_chmod = 0
+#kernel.grsecurity.chroot_deny_chroot = 1
+#kernel.grsecurity.chroot_deny_fchdir = 0
+#kernel.grsecurity.chroot_deny_mknod = 1
+#kernel.grsecurity.chroot_deny_mount = 1
+#kernel.grsecurity.chroot_deny_pivot = 1
+#kernel.grsecurity.chroot_deny_shmat = 0
+#kernel.grsecurity.chroot_deny_sysctl = 1
+#kernel.grsecurity.chroot_deny_unix = 0
+#kernel.grsecurity.chroot_enforce_chdir = 0
+#kernel.grsecurity.chroot_execlog = 0
+#kernel.grsecurity.chroot_findtask = 1
+#kernel.grsecurity.chroot_restrict_nice = 0
+
+#kernel.grsecurity.exec_logging = 0
+#kernel.grsecurity.signal_logging = 1
+#kernel.grsecurity.forkfail_logging = 0
+#kernel.grsecurity.timechange_logging = 1
+#kernel.grsecurity.audit_chdir = 0
+#kernel.grsecurity.audit_gid = 65505
+#kernel.grsecurity.audit_group = 0
+#kernel.grsecurity.audit_ipc = 0
+#kernel.grsecurity.audit_mount = 0
+
+#kernel.grsecurity.execve_limiting = 1
+#kernel.grsecurity.dmesg = 1
+#kernel.grsecurity.tpe = 1
+#kernel.grsecurity.tpe_gid = 65500
+#kernel.grsecurity.tpe_glibc = 0
+#kernel.grsecurity.tpe_restrict_all = 0
+
+#kernel.grsecurity.rand_pids = 1
+#kernel.grsecurity.socket_all = 1
+#kernel.grsecurity.socket_all_gid = 65501
+#kernel.grsecurity.socket_client = 1
+#kernel.grsecurity.socket_client_gid = 65502
+#kernel.grsecurity.socket_server = 1
+#kernel.grsecurity.socket_server_gid = 65503
+
+#kernel.grsecurity.disable_modules = 0
+#kernel.grsecurity.grsec_lock = 0
+
+# kernel.randomize_va_space = 2
+# 0 - Turn the process address space randomization off by default.
+# 1 - Conservative address space randomization makes the addresses of
+#     mmap base and VDSO page randomized. This, among other things,
+#     implies that shared libraries will be loaded to random addresses.
+#     Also for PIE binaries, the location of code start is randomized.
+# 2 - This includes all the features that Conservative randomization
+#     provides. In addition to that, also start of the brk area is randomized.
+#     There a few legacy applications out there (such as some ancient
+#     versions of libc.so.5 from 1996) that assume that brk area starts
+#     just after the end of the code+bss. These applications break when
+#     start of the brk area is randomized. There are however no known
+#     non-legacy applications that would be broken this way, so for most
+#     systems it is safe to choose Full randomization.
+
+# for mplayer
+#dev.rtc.max-user-freq = 1024
diff --git a/trunk/t/backtick-test.sh b/trunk/t/backtick-test.sh
new file mode 100755 (executable)
index 0000000..67d2289
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# from man sh:
+
+# NOTE:  $(command)  expressions are currently parsed by finding the matching paren-
+# thesis, regardless of quoting.  This will hopefully be fixed soon.
+
+# this script file will finally tell when 'soon' comes
+
+a=1
+
+ret_old=`
+case $a in
+       0)      echo "a=0";;
+       1)      echo "a=1";;
+       *)      echo "a!=[01]";;
+esac
+`
+
+ret_new=$(
+case $a in
+       0)      echo "a=0";;
+       1)      echo "a=1";;
+       *)      echo "a!=[01]";;
+esac
+)
+
+echo "$ret_old vs $ret_new"
\ No newline at end of file
diff --git a/trunk/t/status-pidfile.sh b/trunk/t/status-pidfile.sh
new file mode 100755 (executable)
index 0000000..00e764d
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# broken check with --pidfile specified:
+#
+# $ (. /etc/rc.d/init.d/functions; status --pidfile /var/run/naviagent/agent.pid naviagent)
+# naviagent (pid 12788) is running...
+#
+# $ ls -l /proc/`cat /var/run/naviagent/agent.pid`
+# ls: cannot access /proc/12788: No such file or directory
+
+lib=$(dirname "$0")/..
+tmp=$(mktemp -d)
+
+# TODO: rc_cache_init should be able to use tmp dir, not real root
+. $lib/rc.d/init.d/functions
+
+# first unused pid
+pid=9999999 # may not exist
+procname=testd # irrelevant
+pidfile=$tmp/agent.pid
+
+if [ -d /proc/$pid ]; then
+       echo >&2 "bad pid chosen for test, /proc/$pid exists"
+       exit 1
+fi
+
+echo $pid > $pidfile
+status --pidfile $pidfile $procname
+rc=$?
+if [ $rc = 0 ]; then
+       echo "FAIL: should not say process is running"
+       rv=1
+else
+       echo "OK: process is not running"
+       rv=0
+fi
+
+rm -rf $tmp
+exit $rv
This page took 1.458304 seconds and 4 git commands to generate.