[arch-commits] Commit in sysvinit/repos (12 files)

Tom Gundersen tomegun at archlinux.org
Tue Sep 4 17:22:19 UTC 2012


    Date: Tuesday, September 4, 2012 @ 13:22:19
  Author: tomegun
Revision: 166146

db-move: moved sysvinit from [staging] to [testing] (i686, x86_64)

Added:
  sysvinit/repos/testing-i686/
  sysvinit/repos/testing-i686/0001-simplify-writelog.patch
    (from rev 166142, sysvinit/repos/staging-i686/0001-simplify-writelog.patch)
  sysvinit/repos/testing-i686/0002-remove-ansi-escape-codes-from-log-file.patch
    (from rev 166142, sysvinit/repos/staging-i686/0002-remove-ansi-escape-codes-from-log-file.patch)
  sysvinit/repos/testing-i686/PKGBUILD
    (from rev 166142, sysvinit/repos/staging-i686/PKGBUILD)
  sysvinit/repos/testing-i686/sysvinit.install
    (from rev 166142, sysvinit/repos/staging-i686/sysvinit.install)
  sysvinit/repos/testing-x86_64/
  sysvinit/repos/testing-x86_64/0001-simplify-writelog.patch
    (from rev 166142, sysvinit/repos/staging-x86_64/0001-simplify-writelog.patch)
  sysvinit/repos/testing-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch
    (from rev 166142, sysvinit/repos/staging-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch)
  sysvinit/repos/testing-x86_64/PKGBUILD
    (from rev 166142, sysvinit/repos/staging-x86_64/PKGBUILD)
  sysvinit/repos/testing-x86_64/sysvinit.install
    (from rev 166142, sysvinit/repos/staging-x86_64/sysvinit.install)
Deleted:
  sysvinit/repos/staging-i686/
  sysvinit/repos/staging-x86_64/

------------------------------------------------------------------+
 testing-i686/0001-simplify-writelog.patch                        |  126 ++++++++++
 testing-i686/0002-remove-ansi-escape-codes-from-log-file.patch   |   80 ++++++
 testing-i686/PKGBUILD                                            |   62 ++++
 testing-i686/sysvinit.install                                    |    3 
 testing-x86_64/0001-simplify-writelog.patch                      |  126 ++++++++++
 testing-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch |   80 ++++++
 testing-x86_64/PKGBUILD                                          |   62 ++++
 testing-x86_64/sysvinit.install                                  |    3 
 8 files changed, 542 insertions(+)

Copied: sysvinit/repos/testing-i686/0001-simplify-writelog.patch (from rev 166142, sysvinit/repos/staging-i686/0001-simplify-writelog.patch)
===================================================================
--- testing-i686/0001-simplify-writelog.patch	                        (rev 0)
+++ testing-i686/0001-simplify-writelog.patch	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,126 @@
+From 5577552eb1344ddd661893564b1e628f8edcf13d Mon Sep 17 00:00:00 2001
+From: Florian Pritz <bluewind at xinu.at>
+Date: Fri, 15 Jun 2012 16:41:52 +0200
+Subject: [PATCH 1/2] simplify writelog()
+
+All we do is prepend the date and remove \r. We don't handle color
+codes, but the user can just cat the log file in a terminal and it will
+interpret the codes correctly.
+
+Signed-off-by: Florian Pritz <bluewind at xinu.at>
+---
+ bootlogd.c |   76 +++++++++++++++++-------------------------------------------
+ 1 file changed, 21 insertions(+), 55 deletions(-)
+
+diff --git a/bootlogd.c b/bootlogd.c
+index 570d382..e36e261 100644
+--- a/bootlogd.c
++++ b/bootlogd.c
+@@ -68,11 +68,6 @@ int didnl = 1;
+ int createlogfile = 0;
+ int syncalot = 0;
+ 
+-struct line {
+-	char buf[256];
+-	int pos;
+-} line;
+-
+ /*
+  *	Console devices as listed on the kernel command line and
+  *	the mapping to actual devices in /dev
+@@ -351,63 +346,34 @@ int consolename(char *res, int rlen)
+  */
+ void writelog(FILE *fp, unsigned char *ptr, int len)
+ {
+-	time_t		t;
+-	char		*s;
+-	char		tmp[8];
+-	int		olen = len;
+-	int		dosync = 0;
+-	int		tlen;
+-
+-	while (len > 0) {
+-		tmp[0] = 0;
+-		if (didnl) {
++	int dosync = 0;
++	int i;
++	static int first_run = 1;
++
++	for (i = 0; i < len; i++) {
++		int ignore = 0;
++
++		/* prepend date to every line */
++		if (*(ptr-1) == '\n' || first_run) {
++			time_t t;
++			char *s;
+ 			time(&t);
+ 			s = ctime(&t);
+ 			fprintf(fp, "%.24s: ", s);
+-			didnl = 0;
++			dosync = 1;
++			first_run = 0;
+ 		}
+-		switch (*ptr) {
+-			case 27: /* ESC */
+-				strcpy(tmp, "^[");
+-				break;
+-			case '\r':
+-				line.pos = 0;
+-				break;
+-			case 8: /* ^H */
+-				if (line.pos > 0) line.pos--;
+-				break;
+-			case '\n':
+-				didnl = 1;
+-				dosync = 1;
+-				break;
+-			case '\t':
+-				line.pos += (line.pos / 8 + 1) * 8;
+-				if (line.pos >= (int)sizeof(line.buf))
+-					line.pos = sizeof(line.buf) - 1;
+-				break;
+-			case  32 ... 127:
+-			case 161 ... 255:
+-				tmp[0] = *ptr;
+-				tmp[1] = 0;
+-				break;
+-			default:
+-				sprintf(tmp, "\\%03o", *ptr);
+-				break;
+-		}
+-		ptr++;
+-		len--;
+ 
+-		tlen = strlen(tmp);
+-		if (tlen && (line.pos + tlen < (int)sizeof(line.buf))) {
+-			memcpy(line.buf + line.pos, tmp, tlen);
+-			line.pos += tlen;
++		if (*ptr == '\r') {
++			ignore = 1;
+ 		}
+-		if (didnl) {
+-			fprintf(fp, "%s\n", line.buf);
+-			memset(&line, 0, sizeof(line));
++
++		if (!ignore) {
++			fwrite(ptr, sizeof(char), 1, fp);
+ 		}
+-	}
+ 
++		ptr++;
++	}
+ 	if (dosync) {
+ 		fflush(fp);
+ 		if (syncalot) {
+@@ -415,7 +381,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 		}
+ 	}
+ 
+-	outptr += olen;
++	outptr += len;
+ 	if (outptr >= endptr)
+ 		outptr = ringbuf;
+ 
+-- 
+1.7.10.4
+

Copied: sysvinit/repos/testing-i686/0002-remove-ansi-escape-codes-from-log-file.patch (from rev 166142, sysvinit/repos/staging-i686/0002-remove-ansi-escape-codes-from-log-file.patch)
===================================================================
--- testing-i686/0002-remove-ansi-escape-codes-from-log-file.patch	                        (rev 0)
+++ testing-i686/0002-remove-ansi-escape-codes-from-log-file.patch	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,80 @@
+From 8d0022d9540112a92ce8d88c91c4ac10bad8c9ef Mon Sep 17 00:00:00 2001
+From: Florian Pritz <bluewind at xinu.at>
+Date: Sun, 24 Jun 2012 15:49:51 +0200
+Subject: [PATCH 2/2] remove ansi escape codes from log file
+
+References: https://en.wikipedia.org/wiki/ANSI_escape_code
+
+Signed-off-by: Florian Pritz <bluewind at xinu.at>
+---
+ bootlogd.c |   45 +++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/bootlogd.c b/bootlogd.c
+index e36e261..88e610d 100644
+--- a/bootlogd.c
++++ b/bootlogd.c
+@@ -349,6 +349,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 	int dosync = 0;
+ 	int i;
+ 	static int first_run = 1;
++	static int inside_esc = 0;
+ 
+ 	for (i = 0; i < len; i++) {
+ 		int ignore = 0;
+@@ -364,10 +365,50 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 			first_run = 0;
+ 		}
+ 
+-		if (*ptr == '\r') {
+-			ignore = 1;
++		/* remove escape sequences, but do it in a way that allows us to stop
++		 * in the middle in case the string was cut off */
++		if (inside_esc == 1) {
++			/* first '[' is special because if we encounter it again, it should be considered the final byte */
++			if (*ptr == '[') {
++				/* multi char sequence */
++				ignore = 1;
++				inside_esc = 2;
++			} else {
++				/* single char sequence */
++				if (*ptr >= 64 && *ptr <= 95) {
++					ignore = 1;
++				}
++				inside_esc = 0;
++			}
++		} else if (inside_esc == 2) {
++			switch (*ptr) {
++				case '0' ... '9': /* intermediate chars of escape sequence */
++				case ';':
++				case 32 ... 47:
++					if (inside_esc) {
++						ignore = 1;
++					}
++					break;
++				case 64 ... 126: /* final char of escape sequence */
++					if (inside_esc) {
++						ignore = 1;
++						inside_esc = 0;
++					}
++					break;
++			}
++		} else {
++			switch (*ptr) {
++				case '\r':
++					ignore = 1;
++					break;
++				case 27: /* ESC */
++					ignore = 1;
++					inside_esc = 1;
++					break;
++			}
+ 		}
+ 
++
+ 		if (!ignore) {
+ 			fwrite(ptr, sizeof(char), 1, fp);
+ 		}
+-- 
+1.7.10.4
+

Copied: sysvinit/repos/testing-i686/PKGBUILD (from rev 166142, sysvinit/repos/staging-i686/PKGBUILD)
===================================================================
--- testing-i686/PKGBUILD	                        (rev 0)
+++ testing-i686/PKGBUILD	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,62 @@
+# $Id$
+# Maintainer: Eric Belanger <eric at archlinux.org>
+
+pkgbase=sysvinit
+pkgname=('sysvinit-tools' 'sysvinit')
+pkgver=2.88
+pkgrel=8
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/sysvinit"
+license=('GPL')
+groups=('base')
+depends=('util-linux' 'coreutils' 'glibc' 'awk')
+source=(http://download.savannah.gnu.org/releases/sysvinit/${pkgbase}-${pkgver}dsf.tar.bz2
+        "0001-simplify-writelog.patch"
+        "0002-remove-ansi-escape-codes-from-log-file.patch")
+sha1sums=('f2ca149df1314a91f3007cccd7a0aa47d990de26'
+          '326112c8a9bd24cb45bd4bb2f958a25f0ac4773d'
+          'bbecfa7dfa45ac7c37ed8ac59fb53f6a85064b32')
+
+build() {
+  cd "${srcdir}/${pkgbase}-${pkgver}dsf"
+
+  # FS#30005
+  patch -p1 -d "src" -i "${srcdir}/0001-simplify-writelog.patch"
+  patch -p1 -d "src" -i "${srcdir}/0002-remove-ansi-escape-codes-from-log-file.patch"
+
+  make 
+}
+
+package_sysvinit-tools() {
+  pkgdesc="Linux System V Init Tools"
+
+  cd "${srcdir}/${pkgbase}-${pkgver}dsf"
+  make ROOT="${pkgdir}" install
+
+  # provided by util-linux
+  cd "${pkgdir}"
+  rm bin/mountpoint
+  rm usr/share/man/man1/mountpoint.1
+  rm usr/bin/{mesg,utmpdump,wall}
+  rm usr/share/man/man1/{mesg,utmpdump,wall}.1
+  rm sbin/sulogin
+  rm usr/share/man/man8/sulogin.8
+
+  ### split out sysvinit
+  rm -rf ${srcdir}/_sysvinit
+  install -dm755 \
+        ${srcdir}/_sysvinit/sbin \
+        ${srcdir}/_sysvinit/usr/share/man/man8
+  cd ${srcdir}/_sysvinit
+  mv ${pkgdir}/sbin/{halt,init,poweroff,reboot,runlevel,shutdown,telinit} sbin/
+  mv ${pkgdir}/usr/share/man/man5 usr/share/man/
+  mv ${pkgdir}/usr/share/man/man8/{halt,init,poweroff,reboot,runlevel,shutdown,telinit}.8 usr/share/man/man8/
+}
+
+package_sysvinit() {
+  pkgdesc="Linux System V Init"
+  depends=('sysvinit-tools')
+  install=sysvinit.install
+
+  mv "${srcdir}"/_sysvinit/* $pkgdir
+}

Copied: sysvinit/repos/testing-i686/sysvinit.install (from rev 166142, sysvinit/repos/staging-i686/sysvinit.install)
===================================================================
--- testing-i686/sysvinit.install	                        (rev 0)
+++ testing-i686/sysvinit.install	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,3 @@
+post_upgrade() {
+  [ -x sbin/init ] && sbin/init u
+}

Copied: sysvinit/repos/testing-x86_64/0001-simplify-writelog.patch (from rev 166142, sysvinit/repos/staging-x86_64/0001-simplify-writelog.patch)
===================================================================
--- testing-x86_64/0001-simplify-writelog.patch	                        (rev 0)
+++ testing-x86_64/0001-simplify-writelog.patch	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,126 @@
+From 5577552eb1344ddd661893564b1e628f8edcf13d Mon Sep 17 00:00:00 2001
+From: Florian Pritz <bluewind at xinu.at>
+Date: Fri, 15 Jun 2012 16:41:52 +0200
+Subject: [PATCH 1/2] simplify writelog()
+
+All we do is prepend the date and remove \r. We don't handle color
+codes, but the user can just cat the log file in a terminal and it will
+interpret the codes correctly.
+
+Signed-off-by: Florian Pritz <bluewind at xinu.at>
+---
+ bootlogd.c |   76 +++++++++++++++++-------------------------------------------
+ 1 file changed, 21 insertions(+), 55 deletions(-)
+
+diff --git a/bootlogd.c b/bootlogd.c
+index 570d382..e36e261 100644
+--- a/bootlogd.c
++++ b/bootlogd.c
+@@ -68,11 +68,6 @@ int didnl = 1;
+ int createlogfile = 0;
+ int syncalot = 0;
+ 
+-struct line {
+-	char buf[256];
+-	int pos;
+-} line;
+-
+ /*
+  *	Console devices as listed on the kernel command line and
+  *	the mapping to actual devices in /dev
+@@ -351,63 +346,34 @@ int consolename(char *res, int rlen)
+  */
+ void writelog(FILE *fp, unsigned char *ptr, int len)
+ {
+-	time_t		t;
+-	char		*s;
+-	char		tmp[8];
+-	int		olen = len;
+-	int		dosync = 0;
+-	int		tlen;
+-
+-	while (len > 0) {
+-		tmp[0] = 0;
+-		if (didnl) {
++	int dosync = 0;
++	int i;
++	static int first_run = 1;
++
++	for (i = 0; i < len; i++) {
++		int ignore = 0;
++
++		/* prepend date to every line */
++		if (*(ptr-1) == '\n' || first_run) {
++			time_t t;
++			char *s;
+ 			time(&t);
+ 			s = ctime(&t);
+ 			fprintf(fp, "%.24s: ", s);
+-			didnl = 0;
++			dosync = 1;
++			first_run = 0;
+ 		}
+-		switch (*ptr) {
+-			case 27: /* ESC */
+-				strcpy(tmp, "^[");
+-				break;
+-			case '\r':
+-				line.pos = 0;
+-				break;
+-			case 8: /* ^H */
+-				if (line.pos > 0) line.pos--;
+-				break;
+-			case '\n':
+-				didnl = 1;
+-				dosync = 1;
+-				break;
+-			case '\t':
+-				line.pos += (line.pos / 8 + 1) * 8;
+-				if (line.pos >= (int)sizeof(line.buf))
+-					line.pos = sizeof(line.buf) - 1;
+-				break;
+-			case  32 ... 127:
+-			case 161 ... 255:
+-				tmp[0] = *ptr;
+-				tmp[1] = 0;
+-				break;
+-			default:
+-				sprintf(tmp, "\\%03o", *ptr);
+-				break;
+-		}
+-		ptr++;
+-		len--;
+ 
+-		tlen = strlen(tmp);
+-		if (tlen && (line.pos + tlen < (int)sizeof(line.buf))) {
+-			memcpy(line.buf + line.pos, tmp, tlen);
+-			line.pos += tlen;
++		if (*ptr == '\r') {
++			ignore = 1;
+ 		}
+-		if (didnl) {
+-			fprintf(fp, "%s\n", line.buf);
+-			memset(&line, 0, sizeof(line));
++
++		if (!ignore) {
++			fwrite(ptr, sizeof(char), 1, fp);
+ 		}
+-	}
+ 
++		ptr++;
++	}
+ 	if (dosync) {
+ 		fflush(fp);
+ 		if (syncalot) {
+@@ -415,7 +381,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 		}
+ 	}
+ 
+-	outptr += olen;
++	outptr += len;
+ 	if (outptr >= endptr)
+ 		outptr = ringbuf;
+ 
+-- 
+1.7.10.4
+

Copied: sysvinit/repos/testing-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch (from rev 166142, sysvinit/repos/staging-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch)
===================================================================
--- testing-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch	                        (rev 0)
+++ testing-x86_64/0002-remove-ansi-escape-codes-from-log-file.patch	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,80 @@
+From 8d0022d9540112a92ce8d88c91c4ac10bad8c9ef Mon Sep 17 00:00:00 2001
+From: Florian Pritz <bluewind at xinu.at>
+Date: Sun, 24 Jun 2012 15:49:51 +0200
+Subject: [PATCH 2/2] remove ansi escape codes from log file
+
+References: https://en.wikipedia.org/wiki/ANSI_escape_code
+
+Signed-off-by: Florian Pritz <bluewind at xinu.at>
+---
+ bootlogd.c |   45 +++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/bootlogd.c b/bootlogd.c
+index e36e261..88e610d 100644
+--- a/bootlogd.c
++++ b/bootlogd.c
+@@ -349,6 +349,7 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 	int dosync = 0;
+ 	int i;
+ 	static int first_run = 1;
++	static int inside_esc = 0;
+ 
+ 	for (i = 0; i < len; i++) {
+ 		int ignore = 0;
+@@ -364,10 +365,50 @@ void writelog(FILE *fp, unsigned char *ptr, int len)
+ 			first_run = 0;
+ 		}
+ 
+-		if (*ptr == '\r') {
+-			ignore = 1;
++		/* remove escape sequences, but do it in a way that allows us to stop
++		 * in the middle in case the string was cut off */
++		if (inside_esc == 1) {
++			/* first '[' is special because if we encounter it again, it should be considered the final byte */
++			if (*ptr == '[') {
++				/* multi char sequence */
++				ignore = 1;
++				inside_esc = 2;
++			} else {
++				/* single char sequence */
++				if (*ptr >= 64 && *ptr <= 95) {
++					ignore = 1;
++				}
++				inside_esc = 0;
++			}
++		} else if (inside_esc == 2) {
++			switch (*ptr) {
++				case '0' ... '9': /* intermediate chars of escape sequence */
++				case ';':
++				case 32 ... 47:
++					if (inside_esc) {
++						ignore = 1;
++					}
++					break;
++				case 64 ... 126: /* final char of escape sequence */
++					if (inside_esc) {
++						ignore = 1;
++						inside_esc = 0;
++					}
++					break;
++			}
++		} else {
++			switch (*ptr) {
++				case '\r':
++					ignore = 1;
++					break;
++				case 27: /* ESC */
++					ignore = 1;
++					inside_esc = 1;
++					break;
++			}
+ 		}
+ 
++
+ 		if (!ignore) {
+ 			fwrite(ptr, sizeof(char), 1, fp);
+ 		}
+-- 
+1.7.10.4
+

Copied: sysvinit/repos/testing-x86_64/PKGBUILD (from rev 166142, sysvinit/repos/staging-x86_64/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,62 @@
+# $Id$
+# Maintainer: Eric Belanger <eric at archlinux.org>
+
+pkgbase=sysvinit
+pkgname=('sysvinit-tools' 'sysvinit')
+pkgver=2.88
+pkgrel=8
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/sysvinit"
+license=('GPL')
+groups=('base')
+depends=('util-linux' 'coreutils' 'glibc' 'awk')
+source=(http://download.savannah.gnu.org/releases/sysvinit/${pkgbase}-${pkgver}dsf.tar.bz2
+        "0001-simplify-writelog.patch"
+        "0002-remove-ansi-escape-codes-from-log-file.patch")
+sha1sums=('f2ca149df1314a91f3007cccd7a0aa47d990de26'
+          '326112c8a9bd24cb45bd4bb2f958a25f0ac4773d'
+          'bbecfa7dfa45ac7c37ed8ac59fb53f6a85064b32')
+
+build() {
+  cd "${srcdir}/${pkgbase}-${pkgver}dsf"
+
+  # FS#30005
+  patch -p1 -d "src" -i "${srcdir}/0001-simplify-writelog.patch"
+  patch -p1 -d "src" -i "${srcdir}/0002-remove-ansi-escape-codes-from-log-file.patch"
+
+  make 
+}
+
+package_sysvinit-tools() {
+  pkgdesc="Linux System V Init Tools"
+
+  cd "${srcdir}/${pkgbase}-${pkgver}dsf"
+  make ROOT="${pkgdir}" install
+
+  # provided by util-linux
+  cd "${pkgdir}"
+  rm bin/mountpoint
+  rm usr/share/man/man1/mountpoint.1
+  rm usr/bin/{mesg,utmpdump,wall}
+  rm usr/share/man/man1/{mesg,utmpdump,wall}.1
+  rm sbin/sulogin
+  rm usr/share/man/man8/sulogin.8
+
+  ### split out sysvinit
+  rm -rf ${srcdir}/_sysvinit
+  install -dm755 \
+        ${srcdir}/_sysvinit/sbin \
+        ${srcdir}/_sysvinit/usr/share/man/man8
+  cd ${srcdir}/_sysvinit
+  mv ${pkgdir}/sbin/{halt,init,poweroff,reboot,runlevel,shutdown,telinit} sbin/
+  mv ${pkgdir}/usr/share/man/man5 usr/share/man/
+  mv ${pkgdir}/usr/share/man/man8/{halt,init,poweroff,reboot,runlevel,shutdown,telinit}.8 usr/share/man/man8/
+}
+
+package_sysvinit() {
+  pkgdesc="Linux System V Init"
+  depends=('sysvinit-tools')
+  install=sysvinit.install
+
+  mv "${srcdir}"/_sysvinit/* $pkgdir
+}

Copied: sysvinit/repos/testing-x86_64/sysvinit.install (from rev 166142, sysvinit/repos/staging-x86_64/sysvinit.install)
===================================================================
--- testing-x86_64/sysvinit.install	                        (rev 0)
+++ testing-x86_64/sysvinit.install	2012-09-04 17:22:19 UTC (rev 166146)
@@ -0,0 +1,3 @@
+post_upgrade() {
+  [ -x sbin/init ] && sbin/init u
+}




More information about the arch-commits mailing list