<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.linux.busybox">
    <title>gmane.linux.busybox</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37654"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37653"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37652"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37651"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37650"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37649"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37648"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37647"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37646"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37645"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37644"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37643"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37642"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37641"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37640"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37639"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37638"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37637"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37636"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.busybox/37635"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37654">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37654</link>
    <description>&lt;pre&gt;Hi Laurent !


Yes! After activating brain I got to same.

init shall create a named pipe (fifo, e.g. /dev/init) and held
open the read end of the pipe. As soon as data is available on
this pipe init shall stop normal processing and exec to restart
action/script with the read end of the pipe on stdin of the
script.

To shutdown the system we have to write the type of shutdown to
the fifo. The script can read this info and determine action. One
solution for unlimited number of clean shutdown cases. No need to
have init do any other shutdown action. Everything controlled by
final script.

halt/reboot/poweroff without -f just write single character "H" /
"R" / "P" followed by a newline to fifo. May be extended to any
number of cases without need to add anything further to init.
script may even restart init and resume normal operation after
doing some processing.

This is just a suggestion. The easy and extendable way I think.

--
Harald
&lt;/pre&gt;</description>
    <dc:creator>Harald Becker</dc:creator>
    <dc:date>2013-05-23T03:47:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37653">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37653</link>
    <description>&lt;pre&gt;
It was designed that wasy because you have to tell init to stop  
respawning services. (You've always been able to do reboot -f yourself  
if you don't actually care.)

Rob
&lt;/pre&gt;</description>
    <dc:creator>Rob Landley</dc:creator>
    <dc:date>2013-05-23T03:09:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37652">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37652</link>
    <description>&lt;pre&gt;
 It is still necessary to have some minimal hook in init, so that
init stops monitoring processes during the shutdown procedure. 

&lt;/pre&gt;</description>
    <dc:creator>Laurent Bercot</dc:creator>
    <dc:date>2013-05-23T01:58:05</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37651">
    <title>New shell command: prlimit</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37651</link>
    <description>&lt;pre&gt;The attached patch adds a new shell builtin, "prlimit", which is similar
to ulimit but can operate on any process (not just the current process),
by using Linux's prlimit() function.

prlimit takes a PID as a first argument, and then processes the rest of
its arguments identically to ulimit, e.g.:

prlimit 3431 -c unlimited

Maybe this is of general interest?

&lt;/pre&gt;</description>
    <dc:creator>Joshua Judson Rosen</dc:creator>
    <dc:date>2013-05-23T02:53:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37650">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37650</link>
    <description>&lt;pre&gt;Hi Laurent !


Nobody can know everything!


Remember: killall5 is SYSV not Linux, so process scanning is
historical and no more required on Linux. 


Sounds much like the way I'm doing shutdown ... :)

IMO we shall make things more easy and not add more cases to the
init shutdown process.


To grab Laurent's idea: What about a separate shutdown applet in
Busybox:

kill(-1,TERM), sleep, kill(-1,KILL), sleep, umount, sync then
exec into the given remainder of command line? And remove all
special shutdown processing from init process?

Vor easy shutdown we can do: shutdown poweroff -f
... or: shutdown kexec whatever

... and, as Denys tend to have things compatible to upstream
utilities: Busybox is already different on it's init system. Why
not going one step further and making it simpler.

--
Harald
&lt;/pre&gt;</description>
    <dc:creator>Harald Becker</dc:creator>
    <dc:date>2013-05-23T02:28:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37649">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37649</link>
    <description>&lt;pre&gt;
 Indeed, I'm used to the POSIX specification and should read the
Linux man pages more often... thanks Harald.

 And if the killing process does not kill itself, then there is no
reason at all for process scanning, and the killall5 insanity is
totally unnecessary.
 Only a "killall-and-exec" program is needed, which performs
kill(-1, SIGKILL) and execs into the remainder of the command line.
This command line can be the last part of a shutdown script - it
can be a script itself, unmounting the filesystems and powering off
the machine.

&lt;/pre&gt;</description>
    <dc:creator>Laurent Bercot</dc:creator>
    <dc:date>2013-05-23T00:42:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37648">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37648</link>
    <description>&lt;pre&gt;Hi Laurent !


See "man 2 kill" and scroll down to the notes. kill(-1,sig) does
not send to calling process on Linux. Linux specific not POSIX.

--
Harald
&lt;/pre&gt;</description>
    <dc:creator>Harald Becker</dc:creator>
    <dc:date>2013-05-23T01:36:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37647">
    <title>[PATCH] date: accept 'yyyy-mm-dd HH' and 'yyyy-mm-dd' date formats.</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37647</link>
    <description>&lt;pre&gt;This makes busybox date more compatible with coreutils and fixes a TODO
in libbb/time.c.

Signed-off-by: Bartosz Golaszewski &amp;lt;bartekgola&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 libbb/time.c |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/libbb/time.c b/libbb/time.c
index 57e14b6..3d8305d 100644
--- a/libbb/time.c
+++ b/libbb/time.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -58,7 +58,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
 return; /* don't fall through to end == ":" check */
 } else
 #endif
-//TODO: coreutils 6.9 also accepts "yyyy-mm-dd HH" (no minutes)
 {
 bb_error_msg_and_die(bb_msg_invalid_date, date_str);
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -68,7 +67,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
 end = '\0';
 /* else end != NUL and we error out */
 }
-} else if (date_str[0] == '&amp;lt; at &amp;gt;') {
+} else
+/* yyyy-mm-dd HH */
+if ((sscanf(date_str, "%u-%u-%u %u%c", &amp;amp;ptm-&amp;gt;tm_year,
+&amp;amp;ptm-&amp;gt;tm_mon, &amp;amp;ptm-&amp;gt;tm_mday,
+&amp;amp;ptm-&amp;gt;tm_hour, &amp;amp;end) &amp;gt;= 4) ||
+/* yyyy-mm-dd */
+(sscanf(date_str,&lt;/pre&gt;</description>
    <dc:creator>Bartosz Golaszewski</dc:creator>
    <dc:date>2013-05-22T20:52:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37646">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37646</link>
    <description>&lt;pre&gt;
 Follow-up. Sorry for the spam.
 So, as I expected, killall5 is a heavy monster, scanning the process
list in /proc (so, not portable), and killing them one by one unless
they match some criteria. Absolutely ugly, needs some specific tweaks
to support FUSE, and would exhibit a huge race condition if it didn't
SIGSTOP all processes before scanning and SIGCONT them after killing.

 Definitely not the kind of program you'd want your daughter to hang
around with. I'll stay with my "perform the kill in process 1" routine,
it's a lot faster (only 1 system call) and much less ad-hoc and kludgy.

 Something is still puzzling me though: to stop all processes before the
scan, killall5 performs kill(-1, SIGSTOP).
 How does it not stop itself ? You're not supposed to be able to ignore
SIGSTOP, and although sysvinit killall5 ignores it anyway (yay more
useless system calls), busybox killall5 does not and still works - I'd
assume.
 There's no comment about this in either sysvinit or busybox, and I have
been unable to fin&lt;/pre&gt;</description>
    <dc:creator>Laurent Bercot</dc:creator>
    <dc:date>2013-05-22T17:41:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37645">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37645</link>
    <description>&lt;pre&gt;
 Erratum: killall5 prevents this, since it does not signal the processes
in its own session. Ugh. I'll have to study how it's done - the kill()
system call does not make this easy, so I suspect excluding one process
group or session from the slaughter requires scanning. Brb studying this.

&lt;/pre&gt;</description>
    <dc:creator>Laurent Bercot</dc:creator>
    <dc:date>2013-05-22T17:01:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37644">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37644</link>
    <description>&lt;pre&gt;
 You are forgetting two things ;)

 1. Supervision systems rooted in process 1 - including sysvinit and
busybox init - automatically restart one or more processes when they
die, which is a good thing since it guarantees that the machine will
always be in a usable state (provided supervised services are properly
configured).
 Automatically restarted processes might prevent filesystem unmounting.
So, before killing everything manually to shut down the OS, it is
necessary to disable supervision. If the supervision chain is rooted in
process 1 as it should be, this can only be done by signalling process 1
in some way.

 2. Your manual shutdown script will kill itself when it sends SIGKILL
to everyone, and will not complete. The only way to prevent that is to
run the shutdown procedure as process 1 - or at least to have a hook in
process 1 to run the remaining shutdown script after the kill.

 Manually shutting down works in your example because you have a shell
running as process 1, which 1. provides no supervi&lt;/pre&gt;</description>
    <dc:creator>Laurent Bercot</dc:creator>
    <dc:date>2013-05-22T16:53:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37643">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37643</link>
    <description>&lt;pre&gt;
I think the entire "reboot/shutdown through init" idea
is not too clever invention in general.

The operation of shutting down the system
is not intrinsically tied to init.

Imagine that you was given a root shell prompt
at the Unix-like machine and instructed to shut it down
as cleanly as possible, without looking at ps output
and without assuming which type of init system is used
(it may as well use a custom, non-standard init process).

What would you do?

I'd do something like:

cd /
killall5 -TERM
sleep &amp;lt;SMALLNUM&amp;gt;
killall5 -KILL
sleep &amp;lt;SMALLNUM&amp;gt;
umount -a -r
sync
poweroff -f   # says directly to kernel: "physically power off the box please"

See? This requires no communication with init, or
knowledge about other running processes: Unix programs
*have to* shutdown on SIGTERM, with a very few exceptions.
Bad boys will be dealt with SIGKILL anyway.

You can perform kexec the same way.

--
vda
&lt;/pre&gt;</description>
    <dc:creator>Denys Vlasenko</dc:creator>
    <dc:date>2013-05-22T16:42:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37642">
    <title>Re: Ntpd: bug and patch: not reporting lost sync</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37642</link>
    <description>&lt;pre&gt;
I will add something like this in main loop:


                if (G.ntp_peers &amp;amp;&amp;amp; G.stratum != MAXSTRAT) {
                        for (item = G.ntp_peers; item != NULL; item =
item-&amp;gt;link) {
                                peer_t *p = (peer_t *) item-&amp;gt;data;
                                if (p-&amp;gt;p-&amp;gt;reachable_bits)
                                        goto have_reachable_peer;
                        }
                        /* No peer responded for last 8 packets, panic */
                        G.polladj_count = 0;
                        G.poll_exp = MINPOLL;
                        G.stratum = MAXSTRAT;
                        run_script("unsync", G.last_update_offset);
 have_reachable_peer: ;
                }
        } /* while (!bb_got_signal) */

and the script can look for unsync event.
&lt;/pre&gt;</description>
    <dc:creator>Denys Vlasenko</dc:creator>
    <dc:date>2013-05-22T16:19:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37641">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37641</link>
    <description>&lt;pre&gt;Hi Denys !


I started working with Unix like systems at the end of the 1980s
and worked on big Machines like Data General, Honeywell Bull
down to small process controlling machines. On many of those
machines either a RUNLEVEL like information is used to determine
type of system shutdown or an information passed outside the init
process.

I do not know if there are standards on how to do this. It is
just what I found to be used on many systems.


Using files on shared memory is newer practice and not so
problematic as you may assume. /etc/fstab knows about a mount
parameter called auto. Only those file systems are
mounted/umounted in an automatic process. Other systems may be
hold active during shutdown. And what matters mounting info
readonly? The final script just reads the information, so any
file written to the root system may be appropriate. As the file
needs cleaning on startup it is usually written at a location
which gets cleared on system startup (eg. /var/run).

Beside this there is another long st&lt;/pre&gt;</description>
    <dc:creator>Harald Becker</dc:creator>
    <dc:date>2013-05-22T05:17:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37640">
    <title>ubimkvol -m and ubiformat</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37640</link>
    <description>&lt;pre&gt;I have an embedded use case where I need the -m option to ubimkvol and 
the ubiformat utility. As busybox doesn't currently support either, I am 
pulling in the full binaries from the mtd-utils package.

I haven't had a chance to review the code yet, but presumably if the -m 
option was as simple to implement as it would intuitively appear to be, 
somebody would have already done it :).

Before I go spend a lot of time getting familiar with busybox and 
mtd-utils code in the pursuit of adding this functionality, I wanted to 
get a little feedback if possible if anybody's already tried that and 
run into issues or determined that it's fairly complex and not worth 
doing within busybox.

Thanks much…
&lt;/pre&gt;</description>
    <dc:creator>Paul B. Henson</dc:creator>
    <dc:date>2013-05-21T18:02:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37639">
    <title>Re: [PATCH v2] sulogin: allow system maintenance login if root password is empty</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37639</link>
    <description>&lt;pre&gt;
Applied, thanks.
&lt;/pre&gt;</description>
    <dc:creator>Denys Vlasenko</dc:creator>
    <dc:date>2013-05-21T15:13:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37638">
    <title>Re: [PATCH] make bb_ask zero its memory every time</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37638</link>
    <description>&lt;pre&gt;
I'd rather remove "that is zeroed every time" comment
in sulogin.c - it's smaller that way :)

Done.
&lt;/pre&gt;</description>
    <dc:creator>Denys Vlasenko</dc:creator>
    <dc:date>2013-05-21T14:48:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37637">
    <title>Re: [PATCH] init: handle kexec clean reboot</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37637</link>
    <description>&lt;pre&gt;
I wasn't aware it is a common practice.
For example, who does this?
(I'm not saying you are misleading us, I'm just curious :).

Restart action runs after shutdown actions finish.
I thought usually after shutdown actions most stuff
is unmounted or remounted ro. This might complicate
parameter passing over filesystem...
&lt;/pre&gt;</description>
    <dc:creator>Denys Vlasenko</dc:creator>
    <dc:date>2013-05-21T14:38:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37636">
    <title>Re: [PATCH v2] sulogin: allow system maintenance login if root password is empty</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37636</link>
    <description>&lt;pre&gt;Hi,
looks good to me.

Ciao,
Tito
&lt;/pre&gt;</description>
    <dc:creator>Tito</dc:creator>
    <dc:date>2013-05-21T05:20:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37635">
    <title>[PATCH v2] sulogin: allow system maintenance login if root password is empty</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37635</link>
    <description>&lt;pre&gt;The current password checking is unable to distinguish between the user
entering an empty password or pressing Control-D. As a result, an empty
password always results in normal startup.

We modify bb_ask to return NULL if Control-D is pressed without entering
a password. The sulogin applet is then modified to only proceed to
normal startup if bb_ask returns NULL. This covers EOF with no password,
interrupt by timeout and ^C.

Signed-off-by: Jonathan Liu &amp;lt;net147&amp;lt; at &amp;gt;gmail.com&amp;gt;
---
 libbb/bb_askpass.c   | 4 ++--
 loginutils/sulogin.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c
index fe2b506..e875bdd 100644
--- a/libbb/bb_askpass.c
+++ b/libbb/bb_askpass.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -65,8 +65,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
 i = 0;
 while (1) {
 int r = read(fd, &amp;amp;ret[i], 1);
-if (r &amp;lt; 0) {
-/* read is interrupted by timeout or ^C */
+if ((i == 0 &amp;amp;&amp;amp; r == 0) || r &amp;lt; 0) {
+/* EOF with no password, read is interrupted by &lt;/pre&gt;</description>
    <dc:creator>Jonathan Liu</dc:creator>
    <dc:date>2013-05-21T01:25:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.busybox/37634">
    <title>Re: [PATCH] sulogin: allow system maintenance login if root password is empty</title>
    <link>http://permalink.gmane.org/gmane.linux.busybox/37634</link>
    <description>&lt;pre&gt;What about returning NULL when EOF is pressed?
&lt;/pre&gt;</description>
    <dc:creator>Ralf Friedl</dc:creator>
    <dc:date>2013-05-20T17:18:37</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.busybox">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.busybox</link>
  </textinput>
</rdf:RDF>
