openSUSE Commits
Threads by month
- ----- 2024 -----
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2013
- 1 participants
- 1122 discussions
Hello community,
here is the log from the commit of package mt_st for openSUSE:Factory checked in at 2013-11-29 16:24:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mt_st (Old)
and /work/SRC/openSUSE:Factory/.mt_st.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mt_st"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mt_st/mt_st.changes 2011-10-04 18:14:01.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mt_st.new/mt_st.changes 2013-11-29 16:24:31.000000000 +0100
@@ -1,0 +2,14 @@
+Mon Nov 11 22:42:52 UTC 2011 - tbehrens(a)suse.com
+
+- Update to version 1.1
+ * unused defines removed from mtio.h (compiles also with distributions no
+ having linux/qic117.h)
+ * add support for MT_ST_SILI to mt and stinit
+ * add command showoptions for kernels >= 2.6.26
+
+- removed obsolete mt-st-0.9b-local_qic117_h.patch (changes are
+ upstream)
+
+- updated mt-st-0.9b.patch to mt-st-1.1.patch
+
+-------------------------------------------------------------------
Old:
----
mt-st-0.7.lsm
mt-st-0.9b-local_qic117_h.patch
mt-st-0.9b.patch
mt-st-0.9b.tar.bz2
New:
----
mt-st-1.1.patch
mt-st-1.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mt_st.spec ++++++
--- /var/tmp/diff_new_pack.MDayGi/_old 2013-11-29 16:24:31.000000000 +0100
+++ /var/tmp/diff_new_pack.MDayGi/_new 2013-11-29 16:24:31.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mt_st
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,21 +15,18 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-# norootforbuild
-
Name: mt_st
-Version: 0.9b
-Release: 97
+Version: 1.1
+Release: 0
+Provides: mt-st
+Summary: Utility for Controlling Magnetic Tape Drives
License: GPL-2.0+
Group: Productivity/Archiving/Backup
-Provides: mt-st
-AutoReqProv: on
-Summary: mt-st Controls Magnetic Tape Drives
Source: mt-st-%{version}.tar.bz2
+Url: ftp://ftp.ibiblio.org/pub/linux/system/backup/mt-st-%{version}.tar.gz
Patch: mt-st-%{version}.patch
-Patch1: mt-st-0.9b-local_qic117_h.patch
-Patch2: mt-st-codecleanup.patch
+Patch1: mt-st-codecleanup.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -49,7 +46,6 @@
%setup -q -n mt-st-%{version}
%patch
%patch1
-%patch2
%build
make CC="%__cc" CFLAGS="%{optflags} -W -Wall"
@@ -58,7 +54,6 @@
make install DESTDIR=%{buildroot} MANDIR=%{buildroot}%{_mandir}
%files
-#%docdir %attr(755,root,root) %{_defaultdocdir}/%{name}
%defattr(-,root,root)
%doc README README.stinit stinit.def.examples
%attr(755,root,root) /usr/bin/mtst
++++++ mt-st-0.9b-local_qic117_h.patch -> mt-st-1.1.patch ++++++
--- /work/SRC/openSUSE:Factory/mt_st/mt-st-0.9b-local_qic117_h.patch 2011-09-23 02:13:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mt_st.new/mt-st-1.1.patch 2013-11-29 16:24:31.000000000 +0100
@@ -1,11 +1,38 @@
---- mtio.h
-+++ mtio.h
-@@ -10,7 +10,7 @@
+--- Makefile
++++ Makefile
+@@ -1,8 +1,9 @@
+-CFLAGS= -Wall -O2
+-SBINDIR= /sbin
+-BINDIR= /bin
+-USRBINDIR= /usr/bin
+-MANDIR= /usr/share/man
++CFLAGS = -Wall -O2 -pipe
++PREFIX = $(DESTDIR)/usr
++SBINDIR = $(PREFIX)/sbin
++BINDIR = $(PREFIX)/bin
++USRBINDIR= $(PREFIX)/bin
++MANDIR = $(PREFIX)/share/man
- #include <linux/types.h>
- #include <linux/ioctl.h>
--#include <linux/qic117.h>
-+#include "qic117.h"
+ MTDIR=$(BINDIR)
- /*
- * Structures and definitions for mag tape io control commands
+@@ -15,14 +13,12 @@
+ $(CC) $(CFLAGS) -o stinit stinit.c
+
+ install: mt stinit
+- install -s mt $(MTDIR)
+- install -c -m 444 mt.1 $(MANDIR)/man1
+- (if [ -f $(MANDIR)/man1/mt.1.gz ] ; then \
+- rm -f $(MANDIR)/man1/mt.1.gz; gzip $(MANDIR)/man1/mt.1; fi)
+- install -s stinit $(SBINDIR)
+- install -c -m 444 stinit.8 $(MANDIR)/man8
+- (if [ -f $(MANDIR)/man8/stinit.8.gz ] ; then \
+- rm -f $(MANDIR)/man8/stinit.8.gz; gzip $(MANDIR)/man8/stinit.8; fi)
++ mkdir -p $(BINDIR) $(SBINDIR) $(MANDIR) $(MANDIR)/man1 $(MANDIR)/man8
++ install mt $(BINDIR)/mtst
++ install -c -m 644 mt.1 $(MANDIR)/man1/mtst.1
++ install stinit $(SBINDIR)
++ install -c -m 644 stinit.8 $(MANDIR)/man8
++
+
+ dist: clean
+ (mydir=`basename \`pwd\``;\
++++++ mt-st-0.9b.tar.bz2 -> mt-st-1.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/Makefile new/mt-st-1.1/Makefile
--- old/mt-st-0.9b/Makefile 2005-08-16 21:16:28.000000000 +0200
+++ new/mt-st-1.1/Makefile 2008-03-01 11:50:12.000000000 +0100
@@ -1,8 +1,11 @@
CFLAGS= -Wall -O2
SBINDIR= /sbin
BINDIR= /bin
+USRBINDIR= /usr/bin
MANDIR= /usr/share/man
+MTDIR=$(BINDIR)
+
all: mt stinit
mt: mt.c
@@ -12,7 +15,7 @@
$(CC) $(CFLAGS) -o stinit stinit.c
install: mt stinit
- install -s mt $(BINDIR)
+ install -s mt $(MTDIR)
install -c -m 444 mt.1 $(MANDIR)/man1
(if [ -f $(MANDIR)/man1/mt.1.gz ] ; then \
rm -f $(MANDIR)/man1/mt.1.gz; gzip $(MANDIR)/man1/mt.1; fi)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/README new/mt-st-1.1/README
--- old/mt-st-0.9b/README 2005-08-21 20:53:29.000000000 +0200
+++ new/mt-st-1.1/README 2008-04-27 16:44:29.000000000 +0200
@@ -29,6 +29,12 @@
- make
- make install
+Changes in version 1.1:
+- unused defines removed from mtio.h (compiles also with distributions no
+ having linux/qic117.h)
+- add support for MT_ST_SILI to mt and stinit
+- add command showoptions for kernels >= 2.6.26
+
Changes in version 0.9b:
- only stinit changed
@@ -93,4 +99,4 @@
by the command compression using a new ioctl)
- bus fixes
-May 29, 2005 Kai Makisara (email Kai.Makisara(a)kolumbus.fi)
+April 27, 2008 Kai Makisara (email Kai.Makisara(a)kolumbus.fi)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/README.stinit new/mt-st-1.1/README.stinit
--- old/mt-st-0.9b/README.stinit 2005-08-21 20:53:02.000000000 +0200
+++ new/mt-st-1.1/README.stinit 2008-04-27 16:44:58.000000000 +0200
@@ -34,6 +34,10 @@
Makefile - a sample makefile for the program
README.stinit - this file
+Changes in version 1.1:
+- fix mode number printing in verbose mode (from Martin Jacobs)
+- add support for the sili option
+
Changes in version 0.9b:
- fix back out to SCSI_IOCTL_SEND_COMMAND for 2.4 kernels (2.4 uses errno
EINVAL for unsupported ioctls)
@@ -64,5 +68,5 @@
Initial version 0.5.
-May 29, 2005 Kai M�kisara <Kai.Makisara(a)kolumbus.fi>
+April 27, 2008 Kai M�kisara <Kai.Makisara(a)kolumbus.fi>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/mt-st-0.9b.lsm new/mt-st-1.1/mt-st-0.9b.lsm
--- old/mt-st-0.9b/mt-st-0.9b.lsm 2005-08-21 20:49:26.000000000 +0200
+++ new/mt-st-1.1/mt-st-0.9b.lsm 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-Begin4
-Title: mt-st
-Version: 0.9b
-Entered-date: 2005-08-21
-Description: Magnetic tape control tools for Linux SCSI tapes.
-Includes a mt-like program supporting additional commands using ioctls
-specific to the Linux SCSI tape driver (up to kernel 2.6.12), and the program
-stinit to define the SCSI tape devices in system startup scripts.
-Keywords: tape SCSI
-Author: Kai.Makisara(a)kolumbus.fi (Kai Makisara)
-Maintained-by: Kai.Makisara(a)kolumbus.fi (Kai Makisara)
-Primary-site: ftp://ftp.ibiblio.org/pub/linux/system/backup
- 37 kB mt-st-0.9b.tar.gz
- 0.7 kB mt-st-0.9b.lsm
-Copying-policy: GPL
-End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/mt-st-1.1.lsm new/mt-st-1.1/mt-st-1.1.lsm
--- old/mt-st-0.9b/mt-st-1.1.lsm 1970-01-01 01:00:00.000000000 +0100
+++ new/mt-st-1.1/mt-st-1.1.lsm 2008-04-27 16:45:58.000000000 +0200
@@ -0,0 +1,16 @@
+Begin4
+Title: mt-st
+Version: 1.1
+Entered-date: 2008-04-27
+Description: Magnetic tape control tools for Linux SCSI tapes.
+Includes a mt-like program supporting additional commands using ioctls
+specific to the Linux SCSI tape driver (up to kernel 2.6.26), and the program
+stinit to define the SCSI tape devices in system startup scripts.
+Keywords: tape SCSI
+Author: Kai.Makisara(a)kolumbus.fi (Kai Makisara)
+Maintained-by: Kai.Makisara(a)kolumbus.fi (Kai Makisara)
+Primary-site: ftp://ftp.ibiblio.org/pub/linux/system/backup
+ 36 kB mt-st-1.1.tar.gz
+ 0.7 kB mt-st-1.1.lsm
+Copying-policy: GPL
+End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/mt.1 new/mt-st-1.1/mt.1
--- old/mt-st-0.9b/mt.1 2005-08-21 20:53:50.000000000 +0200
+++ new/mt-st-1.1/mt.1 2008-04-27 19:00:08.000000000 +0200
@@ -1,4 +1,4 @@
-.TH MT 1 "August 2005" \" -*- nroff -*-
+.TH MT 1 "April 2008" \" -*- nroff -*-
.SH NAME
mt \- control magnetic tape drive operation
.SH SYNOPSIS
@@ -207,6 +207,11 @@
.IP scsi2logical
seek and tell use SCSI-2 logical block addresses instead of device
dependent addresses
+.IP sili
+Set the SILI bit is when reading in variable block mode. This may speed up
+reading blocks shorter than the read byte count. Set this option only if
+you know that the drive supports SILI and the HBA reliably returns transfer
+residual byte counts. Requires kernel version >= 2.6.26.
.IP sysv
enable the System V semantics
.RE
@@ -221,6 +226,9 @@
The methods to specify the bits to clear are given above in description of
.BR stoptions.
Allowed only for the superuser.
+.IP stshowoptions
+(SCSI tapes) Print the currently enabled options for the device. Requires
+kernel version >= 2.6.26 and sysfs must be mounted at /sys.
.IP stwrthreshold
(SCSI tapes) The write threshold for the tape device is set to
.I count
@@ -268,7 +276,7 @@
.SH AUTHOR
The program is written by Kai Makisara <Kai.Makisara(a)kolumbus.fi>.
.SH COPYRIGHT
-The program and the manual page are copyrighted by Kai Makisara, 1998-2005.
+The program and the manual page are copyrighted by Kai Makisara, 1998-2008.
They can be distributed according to the GNU Copyleft.
.SH SEE ALSO
st(4)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/mt.c new/mt-st-1.1/mt.c
--- old/mt-st-0.9b/mt.c 2005-08-21 20:48:06.000000000 +0200
+++ new/mt-st-1.1/mt.c 2008-04-27 18:49:00.000000000 +0200
@@ -5,10 +5,10 @@
tape drive.
Maintained by Kai M�kisara (email Kai.Makisara(a)kolumbus.fi)
- Copyright by Kai M�kisara, 1998 - 2005. The program may be distributed
+ Copyright by Kai M�kisara, 1998 - 2008. The program may be distributed
according to the GNU Public License
- Last Modified: Sun Aug 21 21:48:06 2005 by kai.makisara
+ Last Modified: Sun Apr 27 19:49:00 2008 by kai.makisara
*/
#include <stdio.h>
@@ -20,6 +20,8 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/utsname.h>
#include "mtio.h"
@@ -27,7 +29,7 @@
#define DEFTAPE "/dev/tape" /* default tape device */
#endif /* DEFTAPE */
-#define VERSION "0.9b"
+#define VERSION "1.1"
typedef int (* cmdfunc)(/* int, struct cmdef_tr *, int, char ** */);
@@ -66,6 +68,7 @@
static int do_status(int, cmdef_tr *, int, char **);
static int print_densities(int, cmdef_tr *, int, char **);
static int do_asf(int, cmdef_tr *, int, char **);
+static int do_show_options(int, cmdef_tr *, int, char **);
static void test_error(int, cmdef_tr *);
static cmdef_tr cmds[] = {
@@ -159,6 +162,8 @@
ET_ONLINE },
{ "asf", 0, do_asf, MTREW, FD_RDONLY, ONE_ARG,
ET_ONLINE },
+ { "stshowopt", 0, do_show_options, 0, FD_RDONLY, ONE_ARG,
+ 0 },
{ NULL, 0, 0, 0 }
};
@@ -210,14 +215,18 @@
{0x29, "QIC-3080MC"},
{0x30, "AIT-1 or MLR3"},
{0x31, "AIT-2"},
- {0x32, "AIT-3"},
+ {0x32, "AIT-3 or SLR7"},
{0x33, "SLR6"},
{0x34, "SLR100"},
{0x40, "DLT1 40 GB, or Ultrium"},
{0x41, "DLT 40GB, or Ultrium2"},
{0x42, "LTO-2"},
+ {0x44, "LTO-3"},
{0x45, "QIC-3095-MC (TR-4)"},
- {0x47, "TR-5"},
+ {0x46, "LTO-4"},
+ {0x47, "DDS-5 or TR-5"},
+ {0x51, "IBM 3592 J1A"},
+ {0x52, "IBM 3592 E05"},
{0x80, "DLT 15GB uncomp. or Ecrix"},
{0x81, "DLT 15GB compressed"},
{0x82, "DLT 20GB uncompressed"},
@@ -258,6 +267,7 @@
#ifdef MT_ST_SYSV
{"sysv", MT_ST_SYSV, "enable the SystemV semantics"},
#endif
+ {"sili", MT_ST_SILI, "enable SILI for variable block mode"},
{"cleaning", MT_ST_SET_CLN, "set the cleaning bit location and mask"},
{NULL, 0}};
@@ -672,6 +682,72 @@
return 0;
}
+
+/* From linux/drivers/scsi/st.[ch] */
+#define ST_NBR_MODE_BITS 2
+#define ST_NBR_MODES (1 << ST_NBR_MODE_BITS)
+#define ST_MODE_SHIFT (7 - ST_NBR_MODE_BITS)
+#define ST_MODE_MASK ((ST_NBR_MODES - 1) << ST_MODE_SHIFT)
+#define TAPE_NR(minor) ( (((minor) & ~255) >> (ST_NBR_MODE_BITS + 1)) | \
+ ((minor) & ~(-1 << ST_MODE_SHIFT)) )
+#define TAPE_MODE(minor) (((minor) & ST_MODE_MASK) >> ST_MODE_SHIFT)
+static const char *st_formats[] = {
+ "", "r", "k", "s", "l", "t", "o", "u",
+ "m", "v", "p", "x", "a", "y", "q", "z"};
+
+/* Show the options if visible in sysfs */
+static int do_show_options(int mtfd, cmdef_tr *cmd, int argc, char **argv)
+{
+ int i, fd, options, tapeminor, tapeno, tapemode;
+ struct stat stat;
+ struct utsname uts;
+ char fname[100], buf[20];
+
+ if (uname(&uts) < 0) {
+ perror(tape_name);
+ return 2;
+ }
+ sscanf(uts.release, "%d.%d.%d", &i, &tapeno, &tapemode);
+ if (i < 2 || tapeno < 6 || tapemode < 26)
+ printf("Your kernel (%d.%d.%d) may be too old for this command.\n",
+ i, tapeno, tapemode);
+
+ if (fstat(mtfd, &stat) < 0) {
+ perror(tape_name);
+ return 1;
+ }
+
+ if (!(stat.st_mode & S_IFCHR)) {
+ fprintf(stderr, "mt: not a character device.\n");
+ return 1;
+ }
+
+ tapeminor = minor(stat.st_rdev);
+ tapeno = TAPE_NR(tapeminor);
+ tapemode = TAPE_MODE(tapeminor);
+ tapemode <<= 4 - ST_NBR_MODE_BITS; /* from st.c */
+ sprintf(fname, "/sys/class/scsi_tape/st%d%s/options", tapeno,
+ st_formats[tapemode]);
+ /* printf("Trying file '%s' (st_rdev 0x%lx).\n", fname, stat.st_rdev); */
+
+ if ((fd = open(fname, O_RDONLY)) < 0 ||
+ read(fd, buf, 20) < 0) {
+ fprintf(stderr, "Can't read the sysfs file '%s'.\n", fname);
+ return 2;
+ }
+ close(fd);
+
+ options = strtol(buf, NULL, 0);
+
+ printf("The options set:");
+ for (i=0; boolean_tbl[i].name != NULL; i++)
+ if (options & boolean_tbl[i].bitmask)
+ printf(" %s", boolean_tbl[i].name);
+ printf("\n");
+
+ return 0;
+}
+
/* Print a list of possible density codes */
static int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/mtio.h new/mt-st-1.1/mtio.h
--- old/mt-st-0.9b/mtio.h 2005-08-16 21:16:28.000000000 +0200
+++ new/mt-st-1.1/mtio.h 2008-02-20 20:31:49.000000000 +0100
@@ -1,8 +1,9 @@
/*
* linux/mtio.h header file for Linux. Written by H. Bergman
*
- * Modified for special ioctls provided by zftape in September 1997
- * by C.-J. Heine.
+ * Sanitized version for mt/stinit (definitions not used by these
+ * programs have been removed) 7 Oct 2007/Kai M�kisara
+ *
*/
#ifndef _LINUX_MTIO_H
@@ -10,7 +11,6 @@
#include <linux/types.h>
#include <linux/ioctl.h>
-#include <linux/qic117.h>
/*
* Structures and definitions for mag tape io control commands
@@ -110,38 +110,6 @@
#define MT_ISSCSI1 0x71 /* Generic ANSI SCSI-1 tape unit */
#define MT_ISSCSI2 0x72 /* Generic ANSI SCSI-2 tape unit */
-/* QIC-40/80/3010/3020 ftape supported drives.
- * 20bit vendor ID + 0x800000 (see ftape-vendors.h)
- */
-#define MT_ISFTAPE_UNKNOWN 0x800000 /* obsolete */
-#define MT_ISFTAPE_FLAG 0x800000
-
-struct mt_tape_info {
- long t_type; /* device type id (mt_type) */
- char *t_name; /* descriptive name */
-};
-
-#define MT_TAPE_INFO { \
- {MT_ISUNKNOWN, "Unknown type of tape device"}, \
- {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \
- {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \
- {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \
- {MT_ISCMSJ500, "CMS Jumbo 500"}, \
- {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \
- {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \
- {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \
- {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \
- {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, \
- {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, \
- {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \
- {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, \
- {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \
- {MT_ISONSTREAM_SC, "OnStream SC-, DI-, DP-, or USB tape drive"}, \
- {MT_ISSCSI1, "Generic SCSI-1 tape"}, \
- {MT_ISSCSI2, "Generic SCSI-2 tape"}, \
- {0, NULL} \
-}
-
/* structure for MTIOCPOS - mag tape get position command */
@@ -149,139 +117,6 @@
long mt_blkno; /* current block number */
};
-
-/* structure for MTIOCGETCONFIG/MTIOCSETCONFIG primarily intended
- * as an interim solution for QIC-02 until DDI is fully implemented.
- */
-struct mtconfiginfo {
- long mt_type; /* drive type */
- long ifc_type; /* interface card type */
- unsigned short irqnr; /* IRQ number to use */
- unsigned short dmanr; /* DMA channel to use */
- unsigned short port; /* IO port base address */
-
- unsigned long debug; /* debugging flags */
-
- unsigned have_dens:1;
- unsigned have_bsf:1;
- unsigned have_fsr:1;
- unsigned have_bsr:1;
- unsigned have_eod:1;
- unsigned have_seek:1;
- unsigned have_tell:1;
- unsigned have_ras1:1;
- unsigned have_ras2:1;
- unsigned have_ras3:1;
- unsigned have_qfa:1;
-
- unsigned pad1:5;
- char reserved[10];
-};
-
-/* structure for MTIOCVOLINFO, query information about the volume
- * currently positioned at (zftape)
- */
-struct mtvolinfo {
- unsigned int mt_volno; /* vol-number */
- unsigned int mt_blksz; /* blocksize used when recording */
- unsigned int mt_rawsize; /* raw tape space consumed, in kb */
- unsigned int mt_size; /* volume size after decompression, in kb */
- unsigned int mt_cmpr:1; /* this volume has been compressed */
-};
-
-/* raw access to a floppy drive, read and write an arbitrary segment.
- * For ftape/zftape to support formatting etc.
- */
-#define MT_FT_RD_SINGLE 0
-#define MT_FT_RD_AHEAD 1
-#define MT_FT_WR_ASYNC 0 /* start tape only when all buffers are full */
-#define MT_FT_WR_MULTI 1 /* start tape, continue until buffers are empty */
-#define MT_FT_WR_SINGLE 2 /* write a single segment and stop afterwards */
-#define MT_FT_WR_DELETE 3 /* write deleted data marks, one segment at time */
-
-struct mtftseg
-{
- unsigned mt_segno; /* the segment to read or write */
- unsigned mt_mode; /* modes for read/write (sync/async etc.) */
- int mt_result; /* result of r/w request, not of the ioctl */
- void *mt_data; /* User space buffer: must be 29kb */
-};
-
-/* get tape capacity (ftape/zftape)
- */
-struct mttapesize {
- unsigned long mt_capacity; /* entire, uncompressed capacity
- * of a cartridge
- */
- unsigned long mt_used; /* what has been used so far, raw
- * uncompressed amount
- */
-};
-
-/* possible values of the ftfmt_op field
- */
-#define FTFMT_SET_PARMS 1 /* set software parms */
-#define FTFMT_GET_PARMS 2 /* get software parms */
-#define FTFMT_FORMAT_TRACK 3 /* start formatting a tape track */
-#define FTFMT_STATUS 4 /* monitor formatting a tape track */
-#define FTFMT_VERIFY 5 /* verify the given segment */
-
-struct ftfmtparms {
- unsigned char ft_qicstd; /* QIC-40/QIC-80/QIC-3010/QIC-3020 */
- unsigned char ft_fmtcode; /* Refer to the QIC specs */
- unsigned char ft_fhm; /* floppy head max */
- unsigned char ft_ftm; /* floppy track max */
- unsigned short ft_spt; /* segments per track */
- unsigned short ft_tpc; /* tracks per cartridge */
-};
-
-struct ftfmttrack {
- unsigned int ft_track; /* track to format */
- unsigned char ft_gap3; /* size of gap3, for FORMAT_TRK */
-};
-
-struct ftfmtstatus {
- unsigned int ft_segment; /* segment currently being formatted */
-};
-
-struct ftfmtverify {
- unsigned int ft_segment; /* segment to verify */
- unsigned long ft_bsm; /* bsm as result of VERIFY cmd */
-};
-
-struct mtftformat {
- unsigned int fmt_op; /* operation to perform */
- union fmt_arg {
- struct ftfmtparms fmt_parms; /* format parameters */
- struct ftfmttrack fmt_track; /* ctrl while formatting */
- struct ftfmtstatus fmt_status;
- struct ftfmtverify fmt_verify; /* for verifying */
- } fmt_arg;
-};
-
-struct mtftcmd {
- unsigned int ft_wait_before; /* timeout to wait for drive to get ready
- * before command is sent. Milliseconds
- */
- qic117_cmd_t ft_cmd; /* command to send */
- unsigned char ft_parm_cnt; /* zero: no parm is sent. */
- unsigned char ft_parms[3]; /* parameter(s) to send to
- * the drive. The parms are nibbles
- * driver sends cmd + 2 step pulses */
- unsigned int ft_result_bits; /* if non zero, number of bits
- * returned by the tape drive
- */
- unsigned int ft_result; /* the result returned by the tape drive*/
- unsigned int ft_wait_after; /* timeout to wait for drive to get ready
- * after command is sent. 0: don't wait */
- int ft_status; /* status returned by ready wait
- * undefined if timeout was 0.
- */
- int ft_error; /* error code if error status was set by
- * command
- */
-};
-
/* mag tape io control commands */
#define MTIOCTOP _IOW('m', 1, struct mtop) /* do a mag tape op */
#define MTIOCGET _IOR('m', 2, struct mtget) /* get tape status */
@@ -366,6 +201,7 @@
#define MT_ST_SCSI2LOGICAL 0x800
#define MT_ST_SYSV 0x1000
#define MT_ST_NOWAIT 0x2000
+#define MT_ST_SILI 0x4000
/* The mode parameters to be controlled. Parameter chosen with bits 20-28 */
#define MT_ST_CLEAR_DEFAULT 0xfffff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/stinit.8 new/mt-st-1.1/stinit.8
--- old/mt-st-0.9b/stinit.8 2005-08-21 20:54:05.000000000 +0200
+++ new/mt-st-1.1/stinit.8 2008-04-27 19:01:28.000000000 +0200
@@ -1,4 +1,4 @@
-.TH STINIT 8 "August 2005" \" -*- nroff -*-
+.TH STINIT 8 "April 2008" \" -*- nroff -*-
.SH NAME
stinit \- initialize SCSI magnetic tape drives
.SH SYNOPSIS
@@ -234,6 +234,13 @@
commands if
.I value
is non-zero. The default is to use the device-specific addresses.
+.IP sili=value
+If
+.I value
+is non-zero, the SILI bit is set when reading in variable block mode. This
+may speed up reading blocks shorter than the read byte count. Set this only if
+you know that the drive supports SILI and the HBA reliably returns transfer
+residual byte counts. Requires kernel version >= 2.6.26.
.IP defs-for-w[rites]=value
The parameters defining the tape format (density, block size, etc.)
are forced when writing starts at the beginning of a tape if
@@ -266,7 +273,7 @@
.SH AUTHOR
The program is written by Kai Makisara <Kai.Makisara(a)kolumbus.fi>.
.SH COPYRIGHT
-The program and the manual page are copyrighted by Kai Makisara, 1998-2005.
+The program and the manual page are copyrighted by Kai Makisara, 1998-2008.
They can be distributed according to the GNU Copyleft.
.SH SEE ALSO
st(4) mt(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mt-st-0.9b/stinit.c new/mt-st-1.1/stinit.c
--- old/mt-st-0.9b/stinit.c 2005-08-21 20:47:51.000000000 +0200
+++ new/mt-st-1.1/stinit.c 2008-04-27 13:24:16.000000000 +0200
@@ -1,11 +1,11 @@
/* This program initializes Linux SCSI tape drives using the
inquiry data from the devices and a text database.
- Copyright 1996-2005 by Kai M�kisara (email Kai.Makisara(a)kolumbus.fi)
+ Copyright 1996-2008 by Kai M�kisara (email Kai.Makisara(a)kolumbus.fi)
Distribution of this program is allowed according to the
GNU Public Licence.
- Last modified: Sun Aug 21 21:47:51 2005 by kai.makisara
+ Last modified: Sun Apr 27 14:24:16 2008 by kai.makisara
*/
#include <stdio.h>
@@ -30,7 +30,7 @@
#endif
#define SKIP_WHITE(p) for ( ; *p == ' ' || *p == '\t'; p++)
-#define VERSION "0.9b"
+#define VERSION "1.1"
typedef struct _modepar_tr {
int defined;
@@ -58,6 +58,7 @@
int long_timeout;
int cleaning;
int nowait;
+ int sili;
modepar_tr modedefs[4];
} devdef_tr;
@@ -265,6 +266,7 @@
defs->long_timeout = (-1);
defs->cleaning = (-1);
defs->nowait = (-1);
+ defs->sili = (-1);
for (i=0; i < NBR_MODES; i++) {
defs->modedefs[i].defined = FALSE;
defs->modedefs[i].blocksize = (-1);
@@ -370,6 +372,8 @@
defs->cleaning = num_arg(t);
if ((t = find_string(defstr, "no-w", line, LINEMAX)) != NULL)
defs->nowait = num_arg(t);
+ if ((t = find_string(defstr, "sili", line, LINEMAX)) != NULL)
+ defs->sili = num_arg(t);
defs->modedefs[mode].defined = TRUE;
if ((t = find_string(defstr, "block", line, LINEMAX)) != NULL)
@@ -521,10 +525,10 @@
}
if (result) {
close(fn);
- sprintf(buffer,
+ sprintf((char *)buffer,
"The SCSI INQUIRY for device '%s' failed (power off?)",
tname);
- perror(buffer);
+ perror((char *)buffer);
return FALSE;
}
}
@@ -570,7 +574,7 @@
return dev;
}
else { /* Search from the device directories */
- for (dvd=devdirs; dvd->dir != NULL; dvd++) {
+ for (dvd=devdirs; dvd->dir[0] != 0; dvd++) {
dn = dvd->dir;
if ((dirp = opendir(dn)) == NULL)
continue;
@@ -758,6 +762,8 @@
clear_set[0] = clear_set[1] = 0;
if (defs->nowait >= 0)
clear_set[defs->nowait != 0] |= MT_ST_NOWAIT;
+ if (defs->sili >= 0)
+ clear_set[defs->sili != 0] |= MT_ST_SILI;
if (defs->modedefs[i].buffer_writes >= 0)
clear_set[defs->modedefs[i].buffer_writes != 0] |= MT_ST_BUFFER_WRITES;
if (defs->modedefs[i].async_writes >= 0)
@@ -852,7 +858,7 @@
}
if (verbose > 1)
for (i=0; i < NBR_MODES; i++)
- printf("Mode %d, name '%s'\n", i, fnames[i]);
+ printf("Mode %d, name '%s'\n", i + 1, fnames[i]);
tname = fnames[0];
if (!do_inquiry(tname, company, product, rev, print_non_found)) {
++++++ mt-st-codecleanup.patch ++++++
--- /var/tmp/diff_new_pack.MDayGi/_old 2013-11-29 16:24:32.000000000 +0100
+++ /var/tmp/diff_new_pack.MDayGi/_new 2013-11-29 16:24:32.000000000 +0100
@@ -2,7 +2,7 @@
+++ mt.c 2007-03-14 17:06:12.000000000 +0100
@@ -29,9 +29,11 @@
- #define VERSION "0.9b"
+ #define VERSION "1.1"
-typedef int (* cmdfunc)(/* int, struct cmdef_tr *, int, char ** */);
+typedef struct cmdef_tr cmdef_tr;
@@ -23,18 +23,17 @@
#define NO_FD 0
#define FD_RDONLY 1
-@@ -159,7 +161,7 @@ static cmdef_tr cmds[] = {
- ET_ONLINE },
- { "asf", 0, do_asf, MTREW, FD_RDONLY, ONE_ARG,
+@@ -162,7 +161,7 @@ static cmdef_tr cmds[] = {
ET_ONLINE },
+ { "stshowopt", 0, do_show_options, 0, FD_RDONLY, ONE_ARG,
+ 0 },
- { NULL, 0, 0, 0 }
+ { NULL, 0, 0, 0, NO_FD, NO_ARGS, 0 }
};
-@@ -259,7 +261,8 @@ static struct booleans {
- {"sysv", MT_ST_SYSV, "enable the SystemV semantics"},
- #endif
+@@ -259,6 +261,7 @@ static struct booleans {
+ {"sili", MT_ST_SILI, "enable SILI for variable block mode"},
{"cleaning", MT_ST_SET_CLN, "set the cleaning bit location and mask"},
- {NULL, 0}};
+ {NULL, 0, ""}
@@ -148,16 +147,3 @@
{
int len;
char *cp, *bp;
-@@ -521,10 +521,10 @@ do_inquiry(char *tname, char *company, c
- }
- if (result) {
- close(fn);
-- sprintf(buffer,
-+ sprintf((char *)buffer,
- "The SCSI INQUIRY for device '%s' failed (power off?)",
- tname);
-- perror(buffer);
-+ perror((char *)buffer);
- return FALSE;
- }
- }
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libXaw3d for openSUSE:Factory checked in at 2013-11-29 16:24:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libXaw3d (Old)
and /work/SRC/openSUSE:Factory/.libXaw3d.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libXaw3d"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libXaw3d/libXaw3d.changes 2013-11-26 06:12:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libXaw3d.new/libXaw3d.changes 2013-11-29 16:24:03.000000000 +0100
@@ -1,0 +2,14 @@
+Tue Nov 26 13:38:57 UTC 2013 - jengelh(a)inai.de
+
+- Add obsoletes/provides xaw3d-devel because we are now
+ libXaw3d-devel
+
+-------------------------------------------------------------------
+Fri Nov 22 07:29:57 UTC 2013 - jengelh(a)inai.de
+
+- Redo xaw3d-elf.patch to modify Makefile.am instead and to also
+ include description
+- Remove hackish Provides: from .spec file that were only
+ for use with symlinks
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libXaw3d.spec ++++++
--- /var/tmp/diff_new_pack.0ZPodV/_old 2013-11-29 16:24:03.000000000 +0100
+++ /var/tmp/diff_new_pack.0ZPodV/_new 2013-11-29 16:24:03.000000000 +0100
@@ -37,16 +37,18 @@
Patch6: xaw3d-elf.patch
Patch7: xaw3d.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-#git#BuildRequires: autoconf >= 2.60, automake, libtool
+BuildRequires: autoconf >= 2.60
+BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
+BuildRequires: libtool
BuildRequires: pkgconfig
+BuildRequires: xorg-x11-devel
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xmu)
BuildRequires: pkgconfig(xorg-macros) >= 1.8
BuildRequires: pkgconfig(xt)
-BuildRequires: xorg-x11-devel
%description
Xaw3d is a general-purpose replacement for the Athena toolkit which
@@ -62,12 +64,6 @@
%package -n libXaw3d6
Summary: The 3D Athena Widget Set
Group: System/Libraries
-Requires: libXaw3d8 = %version
-%ifarch ppc64 s390x x86_64 sparc64
-Provides: libXaw3d.so.6()(64bit)
-%else
-Provides: libXaw3d.so.6
-%endif
%description -n libXaw3d6
Xaw3d is a general-purpose replacement for the Athena toolkit which
@@ -76,12 +72,6 @@
%package -n libXaw3d7
Summary: The 3D Athena Widget Set
Group: System/Libraries
-Requires: libXaw3d8 = %version
-%ifarch ppc64 s390x x86_64 sparc64
-Provides: libXaw3d.so.7()(64bit)
-%else
-Provides: libXaw3d.so.7
-%endif
%description -n libXaw3d7
Xaw3d is a general-purpose replacement for the Athena toolkit which
@@ -114,6 +104,9 @@
%ifarch ppc64
Obsoletes: xaw3d-devel-64bit
%endif
+# O/P added for 13.2
+Provides: xaw3d-devel = %version-%release
+Obsoletes: xaw3d-devel < %version-%release
%description devel
Xaw3d is a general-purpose replacement for the Athena toolkit which
@@ -128,22 +121,6 @@
Requires: libXaw3d6 = %version
Requires: libXaw3d7 = %version
Requires: libXaw3d8 = %version
-# Not only for cakes -- the library is a lie, too.
-%ifarch ppc64 s390x x86_64 sparc64
-Provides: libXaw.so.6()(64bit)
-Provides: libXaw6.so.6()(64bit)
-Provides: libXaw.so.7()(64bit)
-Provides: libXaw7.so.7()(64bit)
-Provides: libXaw.so.8()(64bit)
-Provides: libXaw8.so.8()(64bit)
-%else
-Provides: libXaw.so.6
-Provides: libXaw6.so.6
-Provides: libXaw.so.7
-Provides: libXaw7.so.7
-Provides: libXaw.so.8
-Provides: libXaw8.so.8
-%endif
%description -n xaw3dd
Installation of this package will cause programs utilizing the Athena
@@ -157,6 +134,7 @@
%patch -P 1 -P 2 -P 3 -P 4 -P 5 -P 6 -P 7 -p1
%build
+autoreconf -fi
%configure --docdir=%_docdir/%name --disable-static \
--enable-internationalization \
--enable-multiplane-bitmaps \
@@ -171,21 +149,6 @@
make install DESTDIR=%buildroot
rm -vf %{buildroot}%{_libdir}/*.la
-for i in 6 7; do
- lib=libXaw3d.so.${i}.0.0
- rm -vf %{buildroot}%{_libdir}/${lib}
- install -m 0755 src/.mylibs/${lib} %{buildroot}%{_libdir}/
- ln -sf ${lib} %{buildroot}%{_libdir}/libXaw3d.so.${i}
-done
-mkdir -p %{buildroot}%{_libdir}/Xaw3d
-for i in 6 7 8; do
- lib=libXaw.so.${i}.0.0
- rm -vf %{buildroot}%{_libdir}/${lib}
- rm -vf %{buildroot}%{_libdir}/Xaw3d/${lib}
- install -m 0755 src/.mylibs/${lib} %{buildroot}%{_libdir}/Xaw3d/
- ln -sf ${lib} %{buildroot}%{_libdir}/Xaw3d/libXaw.so.${i}
-done
-
# Copy README here and then gobble it up via %%doc
mkdir -p %{buildroot}%_docdir/xaw3dd
cp %_sourcedir/README.SuSE %{buildroot}/%_docdir/xaw3dd/README.SUSE
++++++ xaw3d-elf.patch ++++++
--- /var/tmp/diff_new_pack.0ZPodV/_old 2013-11-29 16:24:03.000000000 +0100
+++ /var/tmp/diff_new_pack.0ZPodV/_new 2013-11-29 16:24:03.000000000 +0100
@@ -1,22 +1,63 @@
---- libXaw3d-1.6.2/src/Makefile.in
-+++ libXaw3d-1.6.2/src/Makefile.in 2013-10-29 15:45:03.514256258 +0000
-@@ -438,7 +438,18 @@ laygram.h: laygram.c
- $(MAKE) $(AM_MAKEFLAGS) laygram.c; \
- else :; fi
- libXaw3d.la: $(libXaw3d_la_OBJECTS) $(libXaw3d_la_DEPENDENCIES)
-- $(AM_V_CCLD)$(libXaw3d_la_LINK) -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mkdir -p .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 6:0:0 -no-undefined $(LDFLAGS) -o libXaw.la -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mv .libs/*.so* .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 6:0:0 -no-undefined $(LDFLAGS) -o $@ -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mv .libs/*.so* .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 7:0:0 -no-undefined $(LDFLAGS) -o libXaw.la -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mv .libs/*.so* .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 7:0:0 -no-undefined $(LDFLAGS) -o $@ -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mv .libs/*.so* .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 8:0:0 -no-undefined $(LDFLAGS) -o libXaw.la -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
-+ mv .libs/*.so* .mylibs
-+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) -version-info 8:0:0 -no-undefined $(LDFLAGS) -o $@ -rpath $(libdir) $(libXaw3d_la_OBJECTS) $(libXaw3d_la_LIBADD) $(LIBS)
+From: Jan Engelhardt <jengelh(a)inai.de>
+Date: 2013-11-22 08:20:11.934094533 +0100
+
+According to Werner Fink, the libraries' DT_SONAME must be
+libXaw{,3d}.so.{6,7,8} and that we cannot cheat our way with symlinks
+or otherwise the runtime linker would complain, though this has never
+been corroborated by some program output. (If you have it, paste it
+here in the description.)
+
+On the other hand, the absence (so far) of a runtime linker
+complaint is observable on openSUSE 12.3's "xaw3dd" package
+where we did in fact use symlinks.
+
+ ares07:~> ldd /usr/bin/xterm | grep Xaw
+ libXaw.so.7 => /usr/lib64/Xaw3d/libXaw.so.7
+ (0x00007fe219b67000)
+ ares07:~> readelf -a /usr/lib64/Xaw3d/libXaw.so.7 | grep SONAME
+ 0x000000000000000e (SONAME) Library soname: [libXaw.so.7]
+ ares07:~> xterm
+ xterm: Xt error: Can't open display:
+ xterm: DISPLAY is not set
+
+---
+ src/Makefile.am | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+Index: libXaw3d-1.6.2/src/Makefile.am
+===================================================================
+--- libXaw3d-1.6.2.orig/src/Makefile.am
++++ libXaw3d-1.6.2/src/Makefile.am
+@@ -1,4 +1,8 @@
+-lib_LTLIBRARIES = libXaw3d.la
++# The .la file with newest SOVERSION should come last,
++# so that it "wins" during `make install`.
++lib_LTLIBRARIES = xaw6/libXaw3d.la xaw7/libXaw3d.la libXaw3d.la
++xawdir = ${libdir}/Xaw3d
++xaw_LTLIBRARIES = xaw6/libXaw.la xaw7/libXaw.la libXaw.la
- mostlyclean-compile:
- -rm -f *.$(OBJEXT)
+ AM_YFLAGS = -d -p LayYY
+
+@@ -73,6 +77,22 @@ libXaw3d_la_LIBADD = \
+
+ libXaw3d_la_LDFLAGS = -version-info 8:0:0 -no-undefined
+
++libXaw_la_SOURCES = ${libXaw3d_la_SOURCES}
++libXaw_la_LIBADD = ${libXaw3d_la_LIBADD}
++libXaw_la_LDFLAGS = ${libXaw3d_la_LDFLAGS}
++xaw6_libXaw3d_la_SOURCES = ${libXaw3d_la_SOURCES}
++xaw6_libXaw3d_la_LIBADD = ${libXaw3d_la_LIBADD}
++xaw6_libXaw3d_la_LDFLAGS = ${libXaw3d_la_LDFLAGS} -version-info 6:0:0
++xaw6_libXaw_la_SOURCES = ${libXaw3d_la_SOURCES}
++xaw6_libXaw_la_LIBADD = ${libXaw3d_la_LIBADD}
++xaw6_libXaw_la_LDFLAGS = ${libXaw3d_la_LDFLAGS} -version-info 6:0:0
++xaw7_libXaw3d_la_SOURCES = ${libXaw3d_la_SOURCES}
++xaw7_libXaw3d_la_LIBADD = ${libXaw3d_la_LIBADD}
++xaw7_libXaw3d_la_LDFLAGS = ${libXaw3d_la_LDFLAGS} -version-info 7:0:0
++xaw7_libXaw_la_SOURCES = ${libXaw3d_la_SOURCES}
++xaw7_libXaw_la_LIBADD = ${libXaw3d_la_LIBADD}
++xaw7_libXaw_la_LDFLAGS = ${libXaw3d_la_LDFLAGS} -version-info 7:0:0
++
+ BUILT_SOURCES = laygram.h
+
+ dist_doc_DATA = README.XAW3D
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libtirpc for openSUSE:Factory checked in at 2013-11-29 16:23:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libtirpc (Old)
and /work/SRC/openSUSE:Factory/.libtirpc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtirpc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libtirpc/libtirpc.changes 2013-10-02 08:50:08.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libtirpc.new/libtirpc.changes 2013-11-29 16:23:18.000000000 +0100
@@ -1,0 +2,13 @@
+Wed Nov 13 22:18:38 UTC 2013 - nfbrown(a)suse.com
+
+- Use krb5 rather than gssglue to provide gss
+ access routines.
+ Both krb5 and gssglue provide routines of the same
+ name, and both can get linked into rpc.gssd, resulting
+ in some confusion.
+ Upstream support seems to be leaning heavily towards
+ avoiding libgssglue. nfs-utils is built without it,
+ and best to build libtirpc without it.
+ (bnc#841788)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libtirpc.spec ++++++
--- /var/tmp/diff_new_pack.6VTcvf/_old 2013-11-29 16:23:18.000000000 +0100
+++ /var/tmp/diff_new_pack.6VTcvf/_new 2013-11-29 16:23:18.000000000 +0100
@@ -26,7 +26,7 @@
Summary: Transport Independent RPC Library
License: BSD-4-Clause
Group: System/Libraries
-BuildRequires: libgssglue-devel
+BuildRequires: krb5-devel
BuildRequires: libtool
BuildRequires: pkg-config
Url: http://sourceforge.net/projects/libtirpc/
@@ -84,8 +84,7 @@
%configure --disable-static \
--with-pic \
--libdir=/%{_lib} \
- --enable-gss \
- --with-gssglue
+ --enable-gss
%{__make} %{?_smp_mflags}
%install
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ksh for openSUSE:Factory checked in at 2013-11-29 16:22:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ksh (Old)
and /work/SRC/openSUSE:Factory/.ksh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ksh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ksh/ksh.changes 2013-11-12 09:50:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ksh.new/ksh.changes 2013-11-29 16:22:50.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Nov 20 11:42:55 UTC 2013 - werner(a)suse.de
+
+- Make typeset builtin not crash but show an error (bnc#851300)
+
+-------------------------------------------------------------------
+Mon Nov 18 16:04:27 UTC 2013 - werner(a)suse.de
+
+- Extend patch ksh93-sfio.dif which may avoid yet an other crash
+
+-------------------------------------------------------------------
+Thu Nov 14 13:55:13 UTC 2013 - werner(a)suse.de
+
+- Finally the last changes had fixed the crash reportd in bnc#844071
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ksh.spec ++++++
--- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100
+++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100
@@ -552,6 +552,7 @@
test "$result" = xy || exit 1
result=$(${SHELL} -c 'echo | echo "x$(/bin/echo y)"')
test "$result" = xy || exit 1
+ ${SHELL} -c 'trap "exit 0" EXIT; typeset -T X=(typeset x; function x.get { :; }); X -a xs=((x=yo) (x=jo))'
exec 3> ${TMPDIR:-/tmp}/log
LANG=POSIX
strace $MEMORY -o '!%{S:31}' ${SHELL} %{S:10} 400
++++++ ksh93-fdstatus.dif ++++++
--- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100
+++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100
@@ -1,3 +1,9 @@
+| Fix for bnc#814135, bnc#808449, bnc#835885, and bnc#844071
+| - crash in bestreclaim() after traversing a memory block with a very large size (ksh)
+| - set -k does not work properly with ksh-93t-13.17 and higher
+| - Problem after update of ksh from ksh-93u-0.14.1 to ksh-93u-0.22.1
+| - Regression: Fix crash in sfio code of libast
+| This is a backport from the beta version ksh93v-2013-10-10
--- src/cmd/ksh93/bltins/enum.c
+++ src/cmd/ksh93/bltins/enum.c 2013-10-25 13:26:45.739248213 +0000
@@ -266,7 +266,9 @@ int b_enum(int argc, char** argv, Shblti
@@ -1559,7 +1565,22 @@
}
}
return(parent);
-@@ -3479,8 +3524,7 @@ static void sh_funct(Shell_t *shp,Namval
+@@ -3420,7 +3469,13 @@ int sh_funscope(int argn, char *argv[],i
+ if(np && (nq=*nref++))
+ {
+ np->nvalue.nrp = newof(0,struct Namref,1,0);
+- np->nvalue.nrp->np = nq;
++ if(nv_isattr(nq,NV_LDOUBLE)==NV_LDOUBLE)
++ np->nvalue.nrp->np = nq;
++ else
++ {
++ np->nvalue.nrp->np = (Namval_t*)pointerof((Sflong_t)(*nq->nvalue.ldp));
++ nv_onattr(nq,NV_LDOUBLE);
++ }
+ nv_onattr(np,NV_REF|NV_NOFREE);
+ }
+ }
+@@ -3479,8 +3530,7 @@ static void sh_funct(Shell_t *shp,Namval
struct funenv fun;
char *fname = nv_getval(SH_FUNNAMENOD);
struct Level *lp =(struct Level*)(SH_LEVELNOD->nvfun);
@@ -1577,7 +1598,7 @@
#if 0
nv_putval(SH_FUNNAMENOD,shp->st.funname,NV_NOFREE);
#else
-@@ -3628,11 +3671,11 @@ static void coproc_init(Shell_t *shp, in
+@@ -3628,11 +3677,11 @@ static void coproc_init(Shell_t *shp, in
sh_pipe(shp->cpipe);
if((outfd=shp->cpipe[1]) < 10)
{
@@ -1591,7 +1612,7 @@
shp->fdstatus[outfd] = IOCLOSE;
shp->cpipe[1] = fd;
}
-@@ -3721,7 +3764,7 @@ static int run_subshell(Shell_t *shp,con
+@@ -3721,7 +3770,7 @@ static int run_subshell(Shell_t *shp,con
if(!shp->gd->shpath)
shp->gd->shpath = pathshell();
pid = spawnveg(shp->shpath,arglist,envlist,grp);
@@ -1600,7 +1621,7 @@
for(i=3; i < 10; i++)
{
if(shp->fdstatus[i]&IOCLEX && i!=pin && i!=pout)
-@@ -4002,7 +4045,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
+@@ -4002,7 +4051,7 @@ static pid_t sh_ntfork(Shell_t *shp,cons
shp->gd->shpath = pathshell();
spawnpid = path_spawn(shp,shp->gd->shpath,&argv[-1],arge,pp,(grp<<1)|1);
if(fd>=0)
++++++ ksh93-sfio.dif ++++++
--- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100
+++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100
@@ -182,7 +182,27 @@
--- src/lib/libast/sfio/sfsetbuf.c
+++ src/lib/libast/sfio/sfsetbuf.c 2013-10-18 12:02:37.534736056 +0000
-@@ -254,6 +254,15 @@ size_t size; /* buffer size, -1 for defa
+@@ -190,7 +190,9 @@ size_t size; /* buffer size, -1 for defa
+ #ifdef MAP_TYPE
+ if(f->bits&SF_MMAP)
+ { if(f->data)
+- { SFMUNMAP(f,f->data,f->endb-f->data);
++ { if(f->getr && (f->mode&SF_GETR) && f->next)
++ f->next[-1] = f->getr;
++ SFMUNMAP(f,f->data,f->endb-f->data);
+ f->data = NIL(uchar*);
+ }
+ } else
+@@ -204,6 +206,8 @@ size_t size; /* buffer size, -1 for defa
+
+ f->flags &= ~SF_MALLOC;
+ f->bits &= ~SF_MMAP;
++ f->mode &= ~SF_GETR;
++ f->getr = 0;
+
+ /* pure read/string streams must have a valid string */
+ if((f->flags&(SF_RDWR|SF_STRING)) == SF_RDSTR &&
+@@ -254,6 +258,15 @@ size_t size; /* buffer size, -1 for defa
#endif
}
@@ -198,7 +218,7 @@
#if SFSETLINEMODE
if(init)
f->flags |= sfsetlinemode();
-@@ -308,15 +317,6 @@ size_t size; /* buffer size, -1 for defa
+@@ -308,15 +325,6 @@ size_t size; /* buffer size, -1 for defa
(void)_sfpopen(f,-1,-1,1);
}
}
++++++ ksh93-typedef.dif ++++++
--- /var/tmp/diff_new_pack.QrcbaV/_old 2013-11-29 16:22:51.000000000 +0100
+++ /var/tmp/diff_new_pack.QrcbaV/_new 2013-11-29 16:22:51.000000000 +0100
@@ -18,6 +18,15 @@
if(aflag=='+')
return;
if(nv_isarray(np) && nv_arrayptr(np))
+@@ -538,7 +541,7 @@ static int setall(char **argv,regist
+ }
+ else if(*shp->prefix==0)
+ shp->prefix = 0;
+- if(*argv[0]=='+')
++ if(*argv && *argv[0]=='+')
+ nvflags |= NV_NOADD;
+ flag &= ~(NV_NOARRAY|NV_NOSCOPE|NV_VARNAME|NV_IDENT|NV_STATIC|NV_COMVAR|NV_IARRAY);
+ if(argv[1])
@@ -675,6 +678,7 @@ static int setall(char **argv,regist
{
if(comvar || (shp->last_root==shp->var_tree && (tp->tp || (!shp->st.real_fun && (nvflags&NV_STATIC)) || (!(flag&(NV_EXPORT|NV_RDONLY)) && nv_isattr(np,(NV_EXPORT|NV_IMPORT))==(NV_EXPORT|NV_IMPORT)))))
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package glibc for openSUSE:Factory checked in at 2013-11-29 16:22:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glibc (Old)
and /work/SRC/openSUSE:Factory/.glibc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/glibc/glibc-testsuite.changes 2013-10-31 16:02:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes 2013-11-29 16:22:37.000000000 +0100
@@ -1,0 +2,39 @@
+Mon Nov 25 13:59:52 UTC 2013 - schwab(a)suse.de
+
+- Update to glibc 2.18.90 bd12ab55c05e:
+ * New locales: ak_GH, anp_IN, ar_SS, cmn_TW, hak_TW, lzh_TW, nan_TW, pap_AW,
+ pap_CW, quz_PE, the_NP.
+ * Substantially revised locales: gd_GB, ht_HT
+ * The LC_ADDRESS field was updated to support country_car for almost all
+ supported locales.
+ * ISO 1427 definitions were updated.
+ * ISO 3166 definitions were updated.
+ * The localedef utility now supports --big-endian and --little-endian
+ command-line options to generate locales for a different system from that
+ for which the C library was built.
+ * Binary locale files now only depend on the endianness of the system for
+ which they are generated and not on other properties of that system.
+ * ISO 639 definitions were updated for Chiga (cgg) and Chinese (gan, hak, czh,
+ cjy, lzh, cmn, mnp, cdo, czo, cpx, wuu, hsn, yue).
+ * SystemTap probes for malloc have been introduced.
+ * Support for powerpc64le has been added.
+ * The soft-float powerpc port now supports e500 processors.
+- Remove upstreamed patches:
+ cbrtl-ldbl-96.patch
+ fcntl-o-tmpfile.patch
+ getaddrinfo-overflow.patch
+ glibc-2.18.tar.xz
+ glibc-ld-profile.patch
+ glibc-nscd-hconf.diff
+ i686-strcasecmp-fallback.patch
+ m68k-Scrt1.patch
+ malloc-overflows.patch
+ nonascii-case.patch
+ nss-database.patch
+ printf-overrun.patch
+ readdir_r-overflow.patch
+ strcoll-overflow.patch
+- Remove obsolete patches:
+ glibc-2.4.90-revert-only-euro.diff
+
+-------------------------------------------------------------------
glibc-utils.changes: same change
glibc.changes: same change
Old:
----
cbrtl-ldbl-96.patch
fcntl-o-tmpfile.patch
getaddrinfo-overflow.patch
glibc-2.18.tar.xz
glibc-2.4.90-revert-only-euro.diff
glibc-ld-profile.patch
glibc-nscd-hconf.diff
i686-strcasecmp-fallback.patch
m68k-Scrt1.patch
malloc-overflows.patch
nonascii-case.patch
nss-database.patch
printf-overrun.patch
readdir_r-overflow.patch
strcoll-overflow.patch
New:
----
glibc-2.18.90-bd12ab55c05e.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ glibc-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:38.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:38.000000000 +0100
@@ -106,14 +106,14 @@
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
%define enablekernel 2.6.16
%endif
-Version: 2.18
+Version: 2.18.90
Release: 0
-%define glibc_major_version 2.18
-%define git_id %{nil}
+%define glibc_major_version 2.18.90
+%define git_id bd12ab55c05e
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-#Source: glibc-%{version}-%{git_id}.tar.xz
-Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
+Source: glibc-%{version}-%{git_id}.tar.xz
+#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
Source3: noversion.tar.bz2
Source4: manpages.tar.bz2
Source5: nsswitch.conf
@@ -217,8 +217,6 @@
### Locale related patches
# PATCH-FIX-OPENSUSE Add additional locales
Patch100: glibc-2.3.locales.diff.bz2
-# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?)
-Patch101: glibc-2.4.90-revert-only-euro.diff
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
Patch102: glibc-2.4.90-no_NO.diff
# PATCH-FIX-OPENSUSE -- Renames for China
@@ -236,44 +234,18 @@
Patch302: getaddrinfo-ipv6-sanity.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
-# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
-Patch305: glibc-nscd-hconf.diff
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
Patch306: glibc-fix-double-loopback.diff
###
# Patches from upstream
###
-# PATCH-FIX-UPSTREAM Add O_TMPFILE to <fcntl.h>
-Patch1000: fcntl-o-tmpfile.patch
-# PATCH-FIX-UPSTREAM Integer overflows in malloc
-Patch1001: malloc-overflows.patch
-# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o
-Patch1002: m68k-Scrt1.patch
-# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458)
-Patch1003: getaddrinfo-overflow.patch
###
# Patches awaiting upstream approval
###
-# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj(a)suse.de
-Patch2008: glibc-ld-profile.patch
-# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
-Patch2013: nss-database.patch
-# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
-Patch2015: printf-overrun.patch
-# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
-Patch2017: nonascii-case.patch
-# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
-Patch2018: i686-strcasecmp-fallback.patch
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
Patch2019: pldd-wait-ptrace-stop.patch
-# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96
-Patch2020: cbrtl-ldbl-96.patch
-# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412)
-Patch2021: strcoll-overflow.patch
-# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237)
-Patch2022: readdir_r-overflow.patch
# Non-glibc patches
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
@@ -466,7 +438,6 @@
%patch20 -p1
%patch100 -p1
-%patch101 -p1
%patch102 -p1
%patch103 -p1
@@ -474,24 +445,9 @@
%patch301 -p1
%patch302 -p1
%patch304 -p1
-%patch305 -p1
%patch306 -p1
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-%patch1003 -p1
-
-# XXX Disable, it breaks the testsuite, test elf/tst-audit2
-# %patch2008 -p1
-%patch2013 -p1
-%patch2015 -p1
-%patch2017 -p1
-%patch2018 -p1
%patch2019 -p1
-%patch2020 -p1
-%patch2021 -p1
-%patch2022 -p1
%patch3000
glibc-utils.spec: same change
++++++ glibc.spec ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -106,14 +106,14 @@
# 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel
%define enablekernel 2.6.16
%endif
-Version: 2.18
+Version: 2.18.90
Release: 0
-%define glibc_major_version 2.18
-%define git_id %{nil}
+%define glibc_major_version 2.18.90
+%define git_id bd12ab55c05e
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-#Source: glibc-%{version}-%{git_id}.tar.xz
-Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
+Source: glibc-%{version}-%{git_id}.tar.xz
+#Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
Source3: noversion.tar.bz2
Source4: manpages.tar.bz2
Source5: nsswitch.conf
@@ -217,8 +217,6 @@
### Locale related patches
# PATCH-FIX-OPENSUSE Add additional locales
Patch100: glibc-2.3.locales.diff.bz2
-# PATCH-FIX-OPENSUSE Support pre-EURO currencies (XXX: Still needed?)
-Patch101: glibc-2.4.90-revert-only-euro.diff
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
Patch102: glibc-2.4.90-no_NO.diff
# PATCH-FIX-OPENSUSE -- Renames for China
@@ -236,44 +234,18 @@
Patch302: getaddrinfo-ipv6-sanity.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
-# PATCH-FIX-OPENSUSE nscd does not account for 'multi on' in /etc/host.conf when ai-resolving host bso#11928
-Patch305: glibc-nscd-hconf.diff
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
Patch306: glibc-fix-double-loopback.diff
###
# Patches from upstream
###
-# PATCH-FIX-UPSTREAM Add O_TMPFILE to <fcntl.h>
-Patch1000: fcntl-o-tmpfile.patch
-# PATCH-FIX-UPSTREAM Integer overflows in malloc
-Patch1001: malloc-overflows.patch
-# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o
-Patch1002: m68k-Scrt1.patch
-# PATCH-FIX-UPSTREAM Fix stack overflow due to large AF_INET6 requests (CVE-2013-4458)
-Patch1003: getaddrinfo-overflow.patch
###
# Patches awaiting upstream approval
###
-# PATCH-FIX-UPSTREAM Fix LD_PROFILE (glibc bug#13818) - aj(a)suse.de
-Patch2008: glibc-ld-profile.patch
-# PATCH-FIX-UPSTREAM Properly cache the result from looking up the nss database config
-Patch2013: nss-database.patch
-# PATCH-FIX-UPSTREAM Revert problematic fixes for [BZ #11741]
-Patch2015: printf-overrun.patch
-# PATCH-FIX-UPSTREAM Fix strcasecmp for tr_TR.ISO-8859-9
-Patch2017: nonascii-case.patch
-# PATCH-FIX-UPSTREAM Fix fallback in i686 strcasecmp/strncasecmp
-Patch2018: i686-strcasecmp-fallback.patch
# PATCH-FIX-UPSTREAM Fix pldd not to leave process stopped after detaching
Patch2019: pldd-wait-ptrace-stop.patch
-# PATCH-FIX-UPSTREAM Fix cbrtl for ldbl-96
-Patch2020: cbrtl-ldbl-96.patch
-# PATCH-FIX-UPSTREAM Fix buffer overflow in strcoll (CVE-2012-4412)
-Patch2021: strcoll-overflow.patch
-# PATCH-FIX-UPSTREAM Fix readdir_r with long file names (CVE-2013-4237)
-Patch2022: readdir_r-overflow.patch
# Non-glibc patches
# PATCH-FIX-OPENSUSE Remove debianisms from manpages
@@ -466,7 +438,6 @@
%patch20 -p1
%patch100 -p1
-%patch101 -p1
%patch102 -p1
%patch103 -p1
@@ -474,24 +445,9 @@
%patch301 -p1
%patch302 -p1
%patch304 -p1
-%patch305 -p1
%patch306 -p1
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-%patch1003 -p1
-
-# XXX Disable, it breaks the testsuite, test elf/tst-audit2
-# %patch2008 -p1
-%patch2013 -p1
-%patch2015 -p1
-%patch2017 -p1
-%patch2018 -p1
%patch2019 -p1
-%patch2020 -p1
-%patch2021 -p1
-%patch2022 -p1
%patch3000
++++++ getaddrinfo-ipv6-sanity.diff ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -1,8 +1,8 @@
-Index: glibc-2.17.90/sysdeps/posix/getaddrinfo.c
+Index: glibc-2.18.90/sysdeps/posix/getaddrinfo.c
===================================================================
---- glibc-2.17.90.orig/sysdeps/posix/getaddrinfo.c
-+++ glibc-2.17.90/sysdeps/posix/getaddrinfo.c
-@@ -270,7 +270,7 @@ extern service_user *__nss_hosts_databas
+--- glibc-2.18.90.orig/sysdeps/posix/getaddrinfo.c
++++ glibc-2.18.90/sysdeps/posix/getaddrinfo.c
+@@ -286,7 +286,7 @@ extern service_user *__nss_hosts_databas
static int
gaih_inet (const char *name, const struct gaih_service *service,
const struct addrinfo *req, struct addrinfo **pai,
@@ -11,7 +11,7 @@
{
const struct gaih_typeproto *tp = gaih_inet_typeproto;
struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
-@@ -840,7 +840,10 @@ gaih_inet (const char *name, const struc
+@@ -855,7 +855,10 @@ gaih_inet (const char *name, const struc
if (req->ai_family == PF_UNSPEC)
fct4 = __nss_lookup_function (nip, "gethostbyname4_r");
@@ -23,7 +23,7 @@
{
int herrno;
-@@ -943,7 +946,7 @@ gaih_inet (const char *name, const struc
+@@ -958,7 +961,7 @@ gaih_inet (const char *name, const struc
if (fct != NULL)
{
if (req->ai_family == AF_INET6
@@ -32,7 +32,7 @@
{
gethosts (AF_INET6, struct in6_addr);
no_inet6_data = no_data;
-@@ -2471,7 +2474,11 @@ getaddrinfo (const char *name, const cha
+@@ -2418,7 +2421,11 @@ getaddrinfo (const char *name, const cha
if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET
|| hints->ai_family == AF_INET6)
{
++++++ glibc-2.3.2.no_archive.diff ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -1,12 +1,11 @@
--------------------------------------------------------------------
Wed Jun 4 14:29:07 CEST 2003 - kukuk(a)suse.de
- Make --no-archive default for localedef
-Index: glibc-2.17.90/locale/programs/localedef.c
+Index: glibc-2.18.90/locale/programs/localedef.c
===================================================================
---- glibc-2.17.90.orig/locale/programs/localedef.c
-+++ glibc-2.17.90/locale/programs/localedef.c
+--- glibc-2.18.90.orig/locale/programs/localedef.c
++++ glibc-2.18.90/locale/programs/localedef.c
@@ -81,7 +81,7 @@ const char *alias_file;
static struct localedef_t *locales;
@@ -21,10 +20,10 @@
#define OPT_DELETE_FROM_ARCHIVE 308
#define OPT_LIST_ARCHIVE 309
+#define OPT_ARCHIVE 310
+ #define OPT_LITTLE_ENDIAN 400
+ #define OPT_BIG_ENDIAN 401
- /* Definitions of arguments for argp functions. */
- static const struct argp_option options[] =
-@@ -134,6 +135,8 @@ static const struct argp_option options[
+@@ -136,6 +137,8 @@ static const struct argp_option options[
N_("Suppress warnings and information messages") },
{ "verbose", 'v', NULL, 0, N_("Print more messages") },
{ NULL, 0, NULL, 0, N_("Archive control:") },
@@ -33,7 +32,7 @@
{ "no-archive", OPT_NO_ARCHIVE, NULL, 0,
N_("Don't add new data to archive") },
{ "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0,
-@@ -311,6 +314,9 @@ parse_opt (int key, char *arg, struct ar
+@@ -317,6 +320,9 @@ parse_opt (int key, char *arg, struct ar
case OPT_PREFIX:
output_prefix = arg;
break;
++++++ glibc-2.3.locales.diff.bz2 ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -1,8 +1,8 @@
-Index: glibc-2.17.90/localedata/SUPPORTED
+Index: glibc-2.18.90/localedata/SUPPORTED
===================================================================
---- glibc-2.17.90.orig/localedata/SUPPORTED
-+++ glibc-2.17.90/localedata/SUPPORTED
-@@ -446,3 +446,13 @@ zh_TW.UTF-8/UTF-8 \
+--- glibc-2.18.90.orig/localedata/SUPPORTED
++++ glibc-2.18.90/localedata/SUPPORTED
+@@ -457,3 +457,13 @@ zh_TW.UTF-8/UTF-8 \
zh_TW/BIG5 \
zu_ZA.UTF-8/UTF-8 \
zu_ZA/ISO-8859-1 \
@@ -16,10 +16,10 @@
+sh_YU.UTF-8/UTF-8 \
+sh_YU/ISO-8859-2 \
+
-Index: glibc-2.17.90/localedata/locales/LC_COLLATE.ISO14651
+Index: glibc-2.18.90/localedata/locales/LC_COLLATE.ISO14651
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/LC_COLLATE.ISO14651
++++ glibc-2.18.90/localedata/locales/LC_COLLATE.ISO14651
@@ -0,0 +1,68282 @@
+LC_COLLATE
+
@@ -68303,10 +68303,10 @@
+
+END LC_COLLATE
+
-Index: glibc-2.17.90/localedata/locales/LC_CTYPE.BASE
+Index: glibc-2.18.90/localedata/locales/LC_CTYPE.BASE
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/LC_CTYPE.BASE
++++ glibc-2.18.90/localedata/locales/LC_CTYPE.BASE
@@ -0,0 +1,5263 @@
+comment_char %
+escape_char /
@@ -73571,10 +73571,10 @@
+END LC_CTYPE
+
+
-Index: glibc-2.17.90/localedata/locales/en_BE
+Index: glibc-2.18.90/localedata/locales/en_BE
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/en_BE
++++ glibc-2.18.90/localedata/locales/en_BE
@@ -0,0 +1,264 @@
+comment_char %
+escape_char /
@@ -73840,10 +73840,10 @@
+END LC_MEASUREMENT
+
+
-Index: glibc-2.17.90/localedata/locales/en_BE@euro
+Index: glibc-2.18.90/localedata/locales/en_BE@euro
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/en_BE@euro
++++ glibc-2.18.90/localedata/locales/en_BE@euro
@@ -0,0 +1,264 @@
+comment_char %
+escape_char /
@@ -74109,10 +74109,10 @@
+END LC_MEASUREMENT
+
+
-Index: glibc-2.17.90/localedata/locales/sh_YU
+Index: glibc-2.18.90/localedata/locales/sh_YU
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/sh_YU
++++ glibc-2.18.90/localedata/locales/sh_YU
@@ -0,0 +1,264 @@
+comment_char %
+escape_char /
++++++ glibc-2.4.90-no_NO.diff ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -1,7 +1,7 @@
-Index: glibc-2.17.90/intl/locale.alias
+Index: glibc-2.18.90/intl/locale.alias
===================================================================
---- glibc-2.17.90.orig/intl/locale.alias
-+++ glibc-2.17.90/intl/locale.alias
+--- glibc-2.18.90.orig/intl/locale.alias
++++ glibc-2.18.90/intl/locale.alias
@@ -56,8 +56,6 @@ korean ko_KR.eucKR
korean.euc ko_KR.eucKR
ko_KR ko_KR.eucKR
@@ -11,11 +11,11 @@
norwegian nb_NO.ISO-8859-1
nynorsk nn_NO.ISO-8859-1
polish pl_PL.ISO-8859-2
-Index: glibc-2.17.90/localedata/SUPPORTED
+Index: glibc-2.18.90/localedata/SUPPORTED
===================================================================
---- glibc-2.17.90.orig/localedata/SUPPORTED
-+++ glibc-2.17.90/localedata/SUPPORTED
-@@ -324,6 +324,8 @@ nl_NL/ISO-8859-1 \
+--- glibc-2.18.90.orig/localedata/SUPPORTED
++++ glibc-2.18.90/localedata/SUPPORTED
+@@ -331,6 +331,8 @@ nl_NL/ISO-8859-1 \
nl_NL@euro/ISO-8859-15 \
nn_NO.UTF-8/UTF-8 \
nn_NO/ISO-8859-1 \
@@ -24,10 +24,10 @@
nr_ZA/UTF-8 \
nso_ZA/UTF-8 \
oc_FR.UTF-8/UTF-8 \
-Index: glibc-2.17.90/localedata/locales/no_NO
+Index: glibc-2.18.90/localedata/locales/no_NO
===================================================================
--- /dev/null
-+++ glibc-2.17.90/localedata/locales/no_NO
++++ glibc-2.18.90/localedata/locales/no_NO
@@ -0,0 +1,69 @@
+escape_char /
+comment_char %
++++++ i686-no-sse42-strstr.patch ++++++
--- /var/tmp/diff_new_pack.JA1u4X/_old 2013-11-29 16:22:39.000000000 +0100
+++ /var/tmp/diff_new_pack.JA1u4X/_new 2013-11-29 16:22:39.000000000 +0100
@@ -89,7 +89,7 @@
-#include "init-arch.h"
-
-#define STRSTR __strstr_ia32
--#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+-#if defined SHARED && !defined NO_HIDDEN
-#undef libc_hidden_builtin_def
-#define libc_hidden_builtin_def(name) \
- __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package dracut for openSUSE:Factory checked in at 2013-11-29 16:22:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
and /work/SRC/openSUSE:Factory/.dracut.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2013-10-21 19:52:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2013-11-29 16:22:26.000000000 +0100
@@ -1,0 +2,56 @@
+Thu Nov 28 09:56:36 CET 2013 - hare(a)suse.de
+
+- Update with patches from git repository:
+ * kernel-modules: add ohci-pci to the list of forced module installs
+ * Run 'xz' and 'lzma' with multiple threads
+ * systemd: do not exit the initqueue, if systemd asks a password
+ * iscsi,nbd: do not fail in hostonly mode
+ * dracut-functions.sh: Avoid loading unnecessary 32-bit libraries
+ for 64-bit initrds
+ * fips: also install /etc/system-fips in the initramfs
+ * dracut.modules.7.asc: removed empty section
+ * dracut.sh: fixed PATH shortener
+ * dracut.spec: move /sbin/dracut to /usr/sbin/dracut
+ * iscsi/nbd: do not try to mount the whole disk, if root= is missing
+ * fips: include crct10dif_generic
+ * Handle crypto modules with and without modaliases
+ * usrmount/module-setup.sh: fixed typo
+ * lvm: always install thin utils for lvm
+ * kernel-modules(ARM): add mmc_block usb_storage to static list of
+ kernel mods
+ * dracut-functions.sh:check_block_and_slaves*() skip LVM internal devs
+ * mkdir basic dirs in /run
+ * network/fcoe: only redirect output to loginit.pipe, if exists
+ * dracut.sh: no need to make subdirs in run
+ * dracut.sh: also mkdir /run/lock, which is copied to
+ * lvm: fix thin recognition
+ * Add lzo, lz4 compression and read INITRD_COMPRESS
+ * remove resume-genrules.sh
+ * resume: fix swap detection in hostonly
+ * base/init.sh: also mkdir /run/lock
+ * dmsquash-live: add /dev/mapper/live-base
+ * Doc: cleanup, extend and split and reuse
+ * dracut.sh: do not bail out, if kernel modules dir is missing
+ * 10i18n/parse-i18n.sh: parse rd.vconsole and rd.locale
+ * */module-setup.sh: add comments for dracut called functions
+ * lvm: install thin utils for non-hostonly
+- Patches for S/390 support
+ * 95dasd: Install kernel modules only once
+ * 95dasd: Only install module if normalize_dasd_arg is present
+ * 95dasd_mod: make dasd_cio_free optional
+ * 95zfcp: Make installation optional
+ * 95znet: Make installation optional
+ * Install /bin/mount
+ * Fixup keymap setting for openSUSE
+ * Add DASD configuration for SuSE
+ * Add zfcp scripts for SUSE
+ * Make logfile configurable
+ * Add SUSE compability wrapper for dracut
+ * Add manpage for SUSE compat mkinitrd
+ * Work around xsltproc bug
+ * Correct paths for openSUSE
+ * Check for plymouth lib directories
+- Drop obsolete patches
+- Install mkinitrd-suse
+
+-------------------------------------------------------------------
Old:
----
correct-paths-for-opensuse.patch
mkinitrd-fix-boot-dir-detection.patch
mkinitrd_update_bootloader.diff
suse_only_logger.patch
use_initrd_insteadof_initramfs.patch
use_sysconfig_values_correctly.patch
New:
----
0001-95dasd-Install-kernel-modules-only-once.patch
0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
0003-95dasd_mod-make-dasd_cio_free-optional.patch
0004-95zfcp-Make-installation-optional.patch
0005-95znet-Make-installation-optional.patch
0006-Install-bin-mount.patch
0007-Fixup-keymap-setting-for-openSUSE.patch
0008-Add-DASD-configuration-for-SuSE.patch
0009-Add-zfcp-scripts-for-SUSE.patch
0010-Make-logfile-configurable.patch
0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
0013-Correct-paths-for-openSUSE.patch
0014-Check-for-plymouth-lib-directories.patch
0015-Fixup-script-permissions.patch
0016-Remove-shebang-from-shell-completion-files.patch
dracut-git-update.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.CcQ3xx/_old 2013-11-29 16:22:28.000000000 +0100
+++ /var/tmp/diff_new_pack.CcQ3xx/_new 2013-11-29 16:22:28.000000000 +0100
@@ -28,29 +28,35 @@
License: GPL-2.0+ and LGPL-2.1+
Group: System/Base
Url: https://dracut.wiki.kernel.org/
-# Source can be generated by
-# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=…
-Source0: dracut-%{version}.tar.xz
+Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
# openSUSE / SLE module to convert initrd command line parameters to dracut one
# (not to be upstreamed)
Source1: module-setup-initrd.sh
Source2: parse-suse-initrd.sh
Source3: mkinitrd_setup_dummy
-# PATCH-FIX-OPENSUSE correct the paths for openSUSE - tittiatcoke(a)gmail.com
-Patch0: correct-paths-for-opensuse.patch
-# PATCH-FIX-OPENSUSE change the default naming from initramfs to initrd - tittiatcoke(a)gmail.com
-Patch1: use_initrd_insteadof_initramfs.patch
-# PATCH-FIX-OPENSUSE Strip the gz extension from the keymap mentioned in /etc/sysconfig/keyboard - tittiatcoke(a)gmail.com
-Patch2: use_sysconfig_values_correctly.patch
-# PATCH-FIX-OPENSUSE Write caller and used parameters to syslog if mkinitrd is called - trenn(a)suse.de
-Patch4: suse_only_logger.patch
-# PATCH-FIX-OPENSUSE Call the update-bootloader after dracut finished creating the initrd - tittiatcoke(a)gmail.com
-Patch5: mkinitrd_update_bootloader.diff
-# PATCH-FIX-OPENSUSE Validate the initrd parameter first, before just blindly add the boot_dir parameter in front of it
-Patch6: mkinitrd-fix-boot-dir-detection.patch
+
+Patch0: dracut-git-update.patch
+# S/390 fixes, send to upstream
+Patch1: 0001-95dasd-Install-kernel-modules-only-once.patch
+Patch2: 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch
+Patch3: 0003-95dasd_mod-make-dasd_cio_free-optional.patch
+Patch4: 0004-95zfcp-Make-installation-optional.patch
+Patch5: 0005-95znet-Make-installation-optional.patch
+Patch6: 0006-Install-bin-mount.patch
+Patch7: 0007-Fixup-keymap-setting-for-openSUSE.patch
+Patch8: 0008-Add-DASD-configuration-for-SuSE.patch
+Patch9: 0009-Add-zfcp-scripts-for-SUSE.patch
+Patch10: 0010-Make-logfile-configurable.patch
+Patch11: 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch
+Patch12: 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch
+
+# SUSE specific patches
+Patch20: 0013-Correct-paths-for-openSUSE.patch
+Patch21: 0014-Check-for-plymouth-lib-directories.patch
+Patch22: 0015-Fixup-script-permissions.patch
+Patch23: 0016-Remove-shebang-from-shell-completion-files.patch
BuildRequires: bash
-BuildRequires: dash
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -78,6 +84,7 @@
Requires: util-linux >= 2.21
Requires: xz
Recommends: binutils
+Recommends: logrotate
Requires: pigz
%{?systemd_requires}
@@ -123,9 +130,20 @@
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
%build
%configure\
@@ -137,13 +155,13 @@
%install
make %{?_smp_mflags} install DESTDIR=%{buildroot}
-echo "DRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh
+echo -e "#!/bin/bash\nDRACUT_VERSION=%{version}-%{release}" > %{buildroot}/%{dracutlibdir}/dracut-version.sh
rm -fr %{buildroot}%{dracutlibdir}/modules.d/01fips
rm -fr %{buildroot}%{dracutlibdir}/modules.d/02fips-aesni
# we do not support dash in the initramfs
-# rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash
+rm -fr %{buildroot}/%{dracutlibdir}/modules.d/00dash
# add suse cmline conversion
mkdir -p %{buildroot}%{dracutlibdir}/modules.d/99suse
@@ -165,7 +183,6 @@
mkdir -p %{buildroot}%{_localstatedir}/lib/dracut/overlay
mkdir -p %{buildroot}%{_localstatedir}/log
touch %{buildroot}%{_localstatedir}/log/dracut.log
-#mkdir -p %{buildroot}%{_localstatedir}/initramfs
install -m 0644 dracut.conf.d/suse.conf.example %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf
echo 'add_drivers+="autofs4"' >> %{buildroot}%{_sysconfdir}/dracut.conf.d/01-dist.conf
@@ -173,16 +190,17 @@
%ifarch %ix86 x86_64
echo 'early_microcode="yes"' > %{buildroot}%{_sysconfdir}/dracut.conf.d/02-early-microcode.conf
%endif
+rm %{buildroot}%{_bindir}/mkinitrd
%if !%{replace_mkinitrd}
rm %{buildroot}/etc/bash_completion.d/lsinitrd
-rm %{buildroot}%{_bindir}/mkinitrd
rm %{buildroot}%{_bindir}/lsinitrd
rm %{buildroot}%{_mandir}/man8/mkinitrd*
rm %{buildroot}%{_mandir}/man1/lsinitrd*
%else
# moved to /sbin
mkdir -p %{buildroot}/sbin
-mv %{buildroot}%{_bindir}/mkinitrd %{buildroot}/sbin/mkinitrd
+install -m 0755 mkinitrd-suse.sh %{buildroot}/sbin/mkinitrd
+mv %{buildroot}%{_mandir}/man8/mkinitrd-suse.8 %{buildroot}%{_mandir}/man8/mkinitrd.8
install -m 0755 %{S:3} %{buildroot}/sbin/mkinitrd_setup
%endif
@@ -200,7 +218,7 @@
/sbin/mkinitrd
/sbin/mkinitrd_setup
%{_bindir}/lsinitrd
-/etc/bash_completion.d/lsinitrd
+%config /etc/bash_completion.d/lsinitrd
%endif
%dir %{dracutlibdir}
%dir %{dracutlibdir}/modules.d
@@ -226,6 +244,7 @@
%{_mandir}/man7/dracut.kernel.7*
%{_mandir}/man7/dracut.cmdline.7*
%{_mandir}/man7/dracut.bootup.7*
+%{_mandir}/man7/dracut.modules.7*
%{_mandir}/man8/dracut-cmdline.service.8*
%{_mandir}/man8/dracut-initqueue.service.8*
%{_mandir}/man8/dracut-pre-pivot.service.8*
@@ -244,7 +263,6 @@
%{dracutlibdir}/modules.d/00systemd-bootchart/module-setup.sh
%{dracutlibdir}/modules.d/03rescue/module-setup.sh
%{dracutlibdir}/modules.d/00bootchart
-%{dracutlibdir}/modules.d/00dash
%{dracutlibdir}/modules.d/04watchdog
%{dracutlibdir}/modules.d/05busybox
%{dracutlibdir}/modules.d/10i18n
@@ -271,8 +289,10 @@
%{dracutlibdir}/modules.d/95rootfs-block
%{dracutlibdir}/modules.d/95dasd
%{dracutlibdir}/modules.d/95dasd_mod
+%{dracutlibdir}/modules.d/95dasd_rules
%{dracutlibdir}/modules.d/95fstab-sys
%{dracutlibdir}/modules.d/95zfcp
+%{dracutlibdir}/modules.d/95zfcp_rules
%{dracutlibdir}/modules.d/95terminfo
%{dracutlibdir}/modules.d/95udev-rules
%{dracutlibdir}/modules.d/95virtfs
@@ -305,7 +325,7 @@
%{_unitdir}/*.service
%{_unitdir}/*/*.service
%endif
-%{_sysconfdir}/bash_completion.d/dracut
+%config %{_sysconfdir}/bash_completion.d/dracut
%files network
%defattr(-,root,root,0755)
++++++ 0001-95dasd-Install-kernel-modules-only-once.patch ++++++
>From 0c3400336c7916819fd24b8081e24098880ef244 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 11:51:30 +0100
Subject: [PATCH] 95dasd: Install kernel modules only once
Move kernel module selection to 95dasd_mod and make 95dasd depend
on that module.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95dasd/module-setup.sh | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 861df29..16207bc 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -11,15 +11,11 @@ check() {
# called by dracut
depends() {
+ echo "dasd_mod"
return 0
}
# called by dracut
-installkernel() {
- instmods dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
-}
-
-# called by dracut
install() {
inst_hook cmdline 30 "$moddir/parse-dasd.sh"
inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg
--
1.8.1.4
++++++ 0002-95dasd-Only-install-module-if-normalize_dasd_arg-is-.patch ++++++
>From 3d10724ecd78a62ec8c987c97f9b5f4236c681a4 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 11:53:09 +0100
Subject: [PATCH] 95dasd: Only install module if normalize_dasd_arg is present
normalize_dasd_arg is a RedHat specific script, so no point
installing this module if the script isn't present.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95dasd/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
index 16207bc..9c93d40 100755
--- a/modules.d/95dasd/module-setup.sh
+++ b/modules.d/95dasd/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
local _arch=$(uname -m)
+ [ -x /sbin/normalize_dasd_arg ] || return 1
[ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
return 0
}
--
1.8.1.4
++++++ 0003-95dasd_mod-make-dasd_cio_free-optional.patch ++++++
>From 7d00da419fcbdb8736cbbe7caf13209589b43d9c Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 12:33:57 +0100
Subject: [PATCH] 95dasd_mod: make dasd_cio_free optional
dasd_cio_free is a RedHat-specific tool, so make it optional.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95dasd_mod/module-setup.sh | 3 ++-
modules.d/95dasd_mod/parse-dasd-mod.sh | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules.d/95dasd_mod/module-setup.sh b/modules.d/95dasd_mod/module-setup.sh
index 011010d..8fde525 100755
--- a/modules.d/95dasd_mod/module-setup.sh
+++ b/modules.d/95dasd_mod/module-setup.sh
@@ -23,6 +23,7 @@ installkernel() {
# called by dracut
install() {
inst_hook cmdline 31 "$moddir/parse-dasd-mod.sh"
- inst_multiple dasd_cio_free grep sed seq
+ inst_multiple grep sed seq
+ inst_multiple -o dasd_cio_free
}
diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh b/modules.d/95dasd_mod/parse-dasd-mod.sh
index 87c88ed..0236d12 100755
--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
+++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
@@ -15,4 +15,6 @@ if [ -n "$mod_args" ]; then
fi
unset dasd_arg
-dasd_cio_free
+if [ -x /sbin/dasd_cio_free ] ; then
+ dasd_cio_free
+fi
--
1.8.1.4
++++++ 0004-95zfcp-Make-installation-optional.patch ++++++
>From f0c233bc4396d3e47a8e660d2d27d78bd32762d7 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 11:58:31 +0100
Subject: [PATCH] 95zfcp: Make installation optional
zfcp_cio_free is a RedHat-specific tool, so do not install this
module if the program isn't present.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95zfcp/module-setup.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh
index 5d9b506..dfbeed5 100755
--- a/modules.d/95zfcp/module-setup.sh
+++ b/modules.d/95zfcp/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -x /sbin/zfcp_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0
@@ -12,9 +13,6 @@ check() {
# called by dracut
depends() {
- arch=$(uname -m)
- [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
-
return 0
}
--
1.8.1.4
++++++ 0005-95znet-Make-installation-optional.patch ++++++
>From 8a7276ae8aae5694c40d977580c7db6c5c47a81a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 12:00:14 +0100
Subject: [PATCH] 95znet: Make installation optional
znet_cio_free is a RedHat-specific tool, so do not install this
module on systems where the program is missing.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95znet/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/95znet/module-setup.sh b/modules.d/95znet/module-setup.sh
index 4c211a9..5012b77 100755
--- a/modules.d/95znet/module-setup.sh
+++ b/modules.d/95znet/module-setup.sh
@@ -5,6 +5,7 @@
# called by dracut
check() {
arch=$(uname -m)
+ [ -z /sbin/znet_cio_free ] || return 1
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
return 0
--
1.8.1.4
++++++ 0006-Install-bin-mount.patch ++++++
>From 9e87dcb25f82122be3ee16ca8f3c198dd3d02d77 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Wed, 27 Nov 2013 14:35:19 +0100
Subject: [PATCH] Install /bin/mount
systemd relies on /bin/mount to be present, so install it.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/99fs-lib/module-setup.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules.d/99fs-lib/module-setup.sh b/modules.d/99fs-lib/module-setup.sh
index 7979bab..b24207d 100755
--- a/modules.d/99fs-lib/module-setup.sh
+++ b/modules.d/99fs-lib/module-setup.sh
@@ -85,4 +85,5 @@ install() {
fi
inst_multiple -o $_helpers fsck
+ inst /usr/bin/mount /bin/mount
}
--
1.8.1.4
++++++ 0007-Fixup-keymap-setting-for-openSUSE.patch ++++++
>From 4b40f3a3361d5267d9987c57945ef006e90e964d Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Wed, 27 Nov 2013 14:42:24 +0100
Subject: [PATCH] Fixup keymap setting for openSUSE
openSUSE is using compressed keymaps.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/10i18n/module-setup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index 0741c64..f07b148 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -161,6 +161,9 @@ install() {
# Gentoo user may have KEYMAP set to something like "-u pl2",
KEYMAP=${KEYMAP#-* }
+ # openSUSE user may have KEYMAP set to something like ".gz"
+ KEYMAP=${KEYMAP/.gz/}
+
# KEYTABLE is a bit special - it defines base keymap name and UNICODE
# determines whether non-UNICODE or UNICODE version is used
--
1.8.1.4
++++++ 0008-Add-DASD-configuration-for-SuSE.patch ++++++
>From 60265e04911e2cfb980d048e378fb2e510b8370d Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 12:23:44 +0100
Subject: [PATCH] Add DASD configuration for SuSE
On SuSE the DASD configuration is kept in udev rules, one rule
file per device. So add a new module for copying and creating
these rules during boot.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
dracut-functions.sh | 28 +++++++++++++++++
modules.d/95dasd_rules/module-setup.sh | 27 ++++++++++++++++
modules.d/95dasd_rules/parse-dasd.sh | 56 ++++++++++++++++++++++++++++++++++
3 files changed, 111 insertions(+)
create mode 100755 modules.d/95dasd_rules/module-setup.sh
create mode 100755 modules.d/95dasd_rules/parse-dasd.sh
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 2872516..0337c13 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -899,6 +899,34 @@ inst_rules() {
done
}
+inst_rules_wildcard() {
+ local _target=/etc/udev/rules.d _rule _found
+
+ inst_dir "${udevdir}/rules.d"
+ inst_dir "$_target"
+ for _rule in ${udevdir}/rules.d/$1 ${dracutbasedir}/rules.d/$1 ; do
+ if [[ -e $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ if [ -n ${hostonly} ] ; then
+ for _rule in ${_target}/$1 ; do
+ if [[ -f $_rule ]]; then
+ inst_rule_programs "$_rule"
+ inst_rule_group_owner "$_rule"
+ inst_rule_initqueue "$_rule"
+ inst_simple "$_rule"
+ _found=$_rule
+ fi
+ done
+ fi
+ [[ $_found ]] || dinfo "Skipping udev rule: $_rule"
+}
+
prepare_udev_rules() {
[ -z "$UDEVVERSION" ] && export UDEVVERSION=$(udevadm --version)
diff --git a/modules.d/95dasd_rules/module-setup.sh b/modules.d/95dasd_rules/module-setup.sh
new file mode 100755
index 0000000..d313171
--- /dev/null
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/dasd_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo 'dasd_mod'
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-dasd-*.rules
+ fi
+ inst_rules 59-dasd.rules
+}
diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh
new file mode 100755
index 0000000..9389c44
--- /dev/null
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local _drv _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-dasd-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ case "$_cu_type" in
+ 3990/*|2105/*|2107/*|1750/*|9343/*)
+ _drv=dasd-eckd
+ ;;
+ 6310/*)
+ _drv=dasd-fba
+ ;;
+ 3880/*)
+ case "$_dev_type" in
+ 3380/*)
+ _drv=dasd_eckd
+ ;;
+ 3370/*)
+ _drv=dasd-fba
+ ;;
+ esac
+ ;;
+ esac
+ [ -z "${_drv}" ] && return 0
+
+ [ -e ${_rule} ] && return 0
+
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect $ccw %k ${ccw} $_drv"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+}
+
+for dasd_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $dasd_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${dasd_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ create_udev_rule $2
+ fi
+ )
+done
--
1.8.1.4
++++++ 0009-Add-zfcp-scripts-for-SUSE.patch ++++++
>From f6ed21cbdd3f5a34ed094c38a81faad1e8f6fdbb Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 21 Nov 2013 13:47:17 +0100
Subject: [PATCH] Add zfcp scripts for SUSE
SuSE is storing the zfcp configuration in udev files, so we should
be including these.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/95zfcp_rules/module-setup.sh | 25 +++++++++++++
modules.d/95zfcp_rules/parse-zfcp.sh | 65 ++++++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+)
create mode 100755 modules.d/95zfcp_rules/module-setup.sh
create mode 100755 modules.d/95zfcp_rules/parse-zfcp.sh
diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh
new file mode 100755
index 0000000..9a1ab20
--- /dev/null
+++ b/modules.d/95zfcp_rules/module-setup.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ local _arch=$(uname -m)
+ [ -x /sbin/zfcp_disk_configure ] || return 1
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
+ return 0
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_multiple /usr/lib/udev/collect
+ inst_hook cmdline 30 "$moddir/parse-zfcp.sh"
+ if [[ $hostonly ]] ; then
+ inst_rules_wildcard 51-zfcp-*.rules
+ fi
+}
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh
new file mode 100755
index 0000000..24dbdd3
--- /dev/null
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+create_udev_rule() {
+ local ccw=$1
+ local wwpn=$2
+ local lun=$3
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ local _cu_type _dev_type
+ local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
+
+ if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
+ read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
+ read _dev_type < /sys/bus/ccw/devices/${ccw}/devtype
+ fi
+ if [ "$_cu_type" != "1731/03" ] ; then
+ return 0;
+ fi
+ if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ] ; then
+ return 0;
+ fi
+
+ [ -e ${_rule} ] && return 0
+
+ if [ ! -f "$_rule" ] ; then
+ cat > $_rule <<EOF
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", IMPORT{program}="collect $ccw %k ${ccw} zfcp"
+ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
+EOF
+ fi
+ m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule)
+ if [ -z "$m" ] ; then
+ cat >> $_rule <<EOF
+ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
+EOF
+ fi
+}
+
+for zfcp_arg in $(getargs rd.zfcp); do
+ (
+ IFS=","
+ set $zfcp_arg
+ create_udev_rule $1 $2 $3
+ )
+done
+
+for zfcp_arg in $(getargs root=) $(getargs resume=); do
+ (
+ case $zfcp_arg in
+ /dev/disk/by-path/ccw-*)
+ ccw_arg=${zfcp_arg##*/}
+ break;
+ esac
+ if [ -n "$ccw_arg" ] ; then
+ IFS="-"
+ set -- $ccw_arg
+ wwpn=${4%:*}
+ lun=${4#*:}
+ create_udev_rule $2 $wwpn $lun
+ fi
+ )
+done
--
1.8.1.4
++++++ 0010-Make-logfile-configurable.patch ++++++
>From bd9556ea50348e21d59e022433df05fe35ddfc14 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 28 Nov 2013 13:21:30 +0100
Subject: [PATCH] Make logfile configurable
Add '--logfile' option to make the log file configurable during
runtime.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
dracut.8.asc | 6 ++++++
dracut.sh | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/dracut.8.asc b/dracut.8.asc
index 2ea6744..d381dcf 100644
--- a/dracut.8.asc
+++ b/dracut.8.asc
@@ -275,6 +275,12 @@ Default:
**--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.
+**--logfile** _<logfile>_:: logfile to use; overrides any setting from
+ the configuration files.
++
+Default:
+ _/var/log/dracut.log_
+
**-l, --local**::
activates the local mode. dracut will use modules from the current working
directory instead of the system-wide installed modules in
diff --git a/dracut.sh b/dracut.sh
index bce2662..5f63d94 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -183,6 +183,7 @@ Creates initial ramdisk images for preloading modules
--keep Keep the temporary initramfs for debugging purposes
--printsize Print out the module install size
--sshkey [SSHKEY] Add ssh key to initramfs (use with ssh-client module)
+ --logfile [FILE] Logfile to use (overrides configuration setting)
If [LIST] has multiple arguments, then you have to put these in quotes.
@@ -335,6 +336,7 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
--long debug \
--long profile \
--long sshkey: \
+ --long logfile: \
--long verbose \
--long quiet \
--long local \
@@ -418,6 +420,7 @@ while :; do
--debug) debug="yes";;
--profile) profile="yes";;
--sshkey) sshkey="$2"; shift;;
+ --logfile) logfile_l="$2"; shift;;
-v|--verbose) ((verbosity_mod_l++));;
-q|--quiet) ((verbosity_mod_l--));;
-l|--local)
@@ -690,6 +693,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $ro_mnt_l ]] && ro_mnt="yes"
[[ $early_microcode_l ]] && early_microcode=$early_microcode_l
[[ $early_microcode ]] || early_microcode=no
+[[ $logfile_l ]] && logfile="$logfile_l"
# eliminate IFS hackery when messing with fw_dir
fw_dir=${fw_dir//:/ }
--
1.8.1.4
++++++ 0011-mkinitrd-suse-Add-SUSE-compability-wrapper-for-dracu.patch ++++++
>From 48b0614371e7fabee84a45132771b9427091efa9 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 28 Nov 2013 10:53:57 +0100
Subject: [PATCH] mkinitrd-suse: Add SUSE compability wrapper for dracut
SUSE has its own mkinitrd system. As the arguments clash
with the dracut-provided mkinitrd script I've added a new
mkinitrd-suse.sh wrapper.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
mkinitrd-suse.sh | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 354 insertions(+)
create mode 100755 mkinitrd-suse.sh
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
new file mode 100755
index 0000000..d20270a
--- /dev/null
+++ b/mkinitrd-suse.sh
@@ -0,0 +1,354 @@
+#!/bin/bash --norc
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+#
+# mkinitrd compability wrapper for SUSE.
+#
+# Copyright (c) 2013 SUSE Linux Products GmbH. All rights reserved.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+#
+
+boot_dir="/boot"
+quiet=0
+host_only=1
+force=0
+logfile=/var/log/YaST2/mkinitrd.log
+dracut_cmd=dracut
+
+error() { echo "$@" >&2; }
+
+usage () {
+ [[ $1 = '-n' ]] && cmd=echo || cmd=error
+
+ $cmd "usage: ${0##*/} [options]"
+ $cmd ""
+ $cmd " Create initial ramdisk images that contain all kernel modules needed"
+ $cmd " in the early boot process, before the root file system becomes"
+ $cmd " available."
+ $cmd " This usually includes SCSI and/or RAID modules, a file system module"
+ $cmd " for the root file system, or a network interface driver module for dhcp."
+ $cmd ""
+ $cmd " options:"
+ $cmd " -f \"feature list\" Features to be enabled when generating initrd."
+ $cmd " Available features are:"
+ $cmd " iscsi, md, multipath, lvm, lvm2,"
+ $cmd " ifup, fcoe, dcbd"
+ $cmd " -k \"kernel list\" List of kernel images for which initrd files are"
+ $cmd " created. Defaults to all kernels found in /boot."
+ $cmd " -i \"initrd list\" List of file names for the initrd; position have"
+ $cmd " match to \"kernel list\". Defaults to all kernels"
+ $cmd " found in /boot."
+ $cmd " -b boot_dir Boot directory. Defaults to /boot."
+ $cmd " -t tmp_dir Temporary directory. Defaults to /var/tmp."
+ $cmd " -M map System.map file to use."
+ $cmd " -A Create a so called \"monster initrd\" which"
+ $cmd " includes all features and modules possible."
+ $cmd " -B Do not update bootloader configuration."
+ $cmd " -v Verbose mode."
+ $cmd " -L Disable logging."
+ $cmd " -h This help screen."
+ $cmd " -m \"module list\" Modules to include in initrd. Defaults to the"
+ $cmd " INITRD_MODULES variable in /etc/sysconfig/kernel"
+ $cmd " -u \"DomU module list\" Modules to include in initrd. Defaults to the"
+ $cmd " DOMU_INITRD_MODULES variable in"
+ $cmd " /etc/sysconfig/kernel."
+ $cmd " -d root_device Root device. Defaults to the device from"
+ $cmd " which / is mounted. Overrides the rootdev"
+ $cmd " enviroment variable if set."
+ $cmd " -j device Journal device"
+ $cmd " -D interface Run dhcp on the specified interface."
+ $cmd " -I interface Configure the specified interface statically."
+ $cmd " -a acpi_dsdt Attach compiled ACPI DSDT (Differentiated"
+ $cmd " System Description Table) to initrd. This"
+ $cmd " replaces the DSDT of the BIOS. Defaults to"
+ $cmd " the ACPI_DSDT variable in /etc/sysconfig/kernel."
+ $cmd " -s size Add splash animation and bootscreen to initrd."
+
+ [[ $1 = '-n' ]] && exit 0
+ exit 1
+}
+
+# Little helper function for reading args from the commandline.
+# it automatically handles -a b and -a=b variants, and returns 1 if
+# we need to shift $3.
+read_arg() {
+ # $1 = arg name
+ # $2 = arg value
+ # $3 = arg parameter
+ param="$1"
+ local rematch='^[^=]*=(.*)$' result
+ if [[ $2 =~ $rematch ]]; then
+ read "$param" <<< "${BASH_REMATCH[1]}"
+ else
+ for ((i=3; $i <= $#; i++)); do
+ # Only read next arg if it not an arg itself.
+ if [[ ${@:$i:1} = -* ]];then
+ break
+ fi
+ result="$result ${@:$i:1}"
+ # There is no way to shift our callers args, so
+ # return "no of args" to indicate they should do it instead.
+ done
+ read "$1" <<< "$result"
+ return $(($i - 3))
+ fi
+}
+
+# Helper functions to calculate ipconfig command line
+calc_netmask() {
+ local prefix=$1
+
+ [ -z "$prefix" ] && return
+ mask=$(echo "(2 ^ 32) - (2 ^ $prefix)" | bc -l)
+ byte1=$(( mask >> 24 ))
+ byte2=$(( mask >> 16 ))
+ byte3=$(( mask >> 8 ))
+ byte4=$(( mask & 0xff ))
+ netmask=$(printf "%d.%d.%d.%d" $(( byte1 & 0xff )) $(( byte2 & 0xff )) $(( byte3 & 0xff )) $byte4);
+
+ echo $netmask
+}
+
+ipconfig() {
+ local interface=$1
+ local iplink macaddr broadcast gateway ipaddr prefix netmask
+
+ iplink=$(ip addr show dev $interface | sed -n 's/ *inet \(.*\) brd.*/\1/p')
+ macaddr=$(ip addr show dev $interface | sed -n 's/.*ether \(.*\) brd.*/\1/p')
+ broadcast=$(ip addr show dev $interface | sed -n 's/.*brd \(.*\) scope.*/\1/p')
+ gateway=$(ip route show dev $interface | sed -n 's/default via \([0-9\.]*\).*/\1/p')
+
+ ipaddr=${iplink%%/*}
+ prefix=${iplink##*/}
+ netmask=$(calc_netmask $prefix)
+
+ echo "${ipaddr}:${serveraddr}:${gateway}:${netmask}:${hostname}:${interface}:none::${macaddr}"
+}
+
+is_xen_kernel() {
+ local kversion=$1
+ local root_dir=$2
+ local cfg
+
+ for cfg in ${root_dir}/boot/config-$kversion $root_dir/lib/modules/$kversion/build/.config
+ do
+ test -r $cfg || continue
+ grep -q "^CONFIG_XEN=y\$" $cfg
+ return
+ done
+ test $kversion != "${kversion%-xen*}"
+ return
+}
+
+
+# Taken over from SUSE mkinitrd
+default_kernel_images() {
+ local regex kernel_image kernel_version version_version initrd_image
+ local qf='%{NAME}-%{VERSION}-%{RELEASE}\n'
+
+ case "$(uname -m)" in
+ s390|s390x)
+ regex='image'
+ ;;
+ ppc|ppc64)
+ regex='vmlinux'
+ ;;
+ i386|x86_64)
+ regex='vmlinuz'
+ ;;
+ arm*)
+ regex='[uz]Image'
+ ;;
+ aarch64)
+ regex='Image'
+ ;;
+ *) regex='vmlinu.'
+ ;;
+ esac
+
+ kernel_images=""
+ initrd_images=""
+ for kernel_image in $(ls $boot_dir \
+ | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
+ | grep -v kdump$ ) ; do
+
+ # Note that we cannot check the RPM database here -- this
+ # script is itself called from within the binary kernel
+ # packages, and rpm does not allow recursive calls.
+
+ [ -L "$boot_dir/$kernel_image" ] && continue
+ [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue
+ kernel_version=$(/usr/bin/get_kernel_version \
+ $boot_dir/$kernel_image 2> /dev/null)
+ initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|")
+ if [ "$kernel_image" != "$initrd_image" -a \
+ -n "$kernel_version" -a \
+ -d "/lib/modules/$kernel_version" ]; then
+ kernel_images="$kernel_images $boot_dir/$kernel_image"
+ initrd_images="$initrd_images $boot_dir/$initrd_image"
+ fi
+ done
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ for initrd_image in $initrd_images;do
+ targets="$targets $initrd_image"
+ done
+ host_only=1
+ force=1
+}
+
+while (($# > 0)); do
+ case ${1%%=*} in
+ -f) read_arg feature_list "$@" || shift $?
+ # Could be several features
+ ;;
+ -k) # Would be nice to get a list of images here
+ read_arg kernel_images "$@" || shift $?
+ for kernel_image in $kernel_images;do
+ kernels="$kernels ${kernel_image#*-}"
+ done
+ host_only=1
+ force=1
+ ;;
+ -i) read_arg initrd_images "$@" || shift $?
+ for initrd_image in $initrd_images;do
+ # Check if the initrd_image contains a path.
+ # if not, then add the default boot_dir
+ dname=`dirname $initrd_image`
+ if [ "$dname" == "." ]; then
+ targets="$targets $boot_dir/$initrd_image";
+ else
+ targets="$targets $initrd_image";
+ fi
+ done
+ ;;
+ -b) read_arg boot_dir "$@" || shift $?
+ if [ ! -d $boot_dir ];then
+ error "Boot directory $boot_dir does not exist"
+ exit 1
+ fi
+ ;;
+ -t) read_arg tmp_dir "$@" || shift $?
+ dracut_args="${dracut_args} --tmpdir $tmp_dir"
+ ;;
+ -M) read_arg map_file "$@" || shift $?
+ ;;
+ -A) host_only=0;;
+ -B) skip_update_bootloader=1;;
+ -v|--verbose) dracut_args="${dracut_args} -v";;
+ -L) logfile=;;
+ -h|--help) usage -n;;
+ -m) read_arg module_list "$@" || shift $? ;;
+ -u) read_arg domu_module_list "$@" || shift $?
+ echo "mkinitrd: DomU modules not yet supported" ;;
+ -d) read_arg rootfs "$@" || shift $?
+ dracut_args="${dracut_args} --filesystems $rootfs" ;;
+ -D) read_arg dhcp_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=${dhcp_if}:dhcp"
+ ;;
+ -I) read_arg static_if "$@" || shift $?
+ dracut_cmdline="${dracut_cmdline} ip=$(ipconfig $static_if)":
+ ;;
+ -a) read_arg acpi_dsdt "$@" || shift $?
+ echo "mkinitrd: custom DSDT not yet supported"
+ exit 1
+ ;;
+ -s) read_arg boot_splash "$@" || shift $?
+ echo "mkinitrd: boot splash not yet supported"
+ exit 1
+ ;;
+ -V) echo "mkinitrd: vendor scipts are no longer supported"
+ exit 1;;
+ --dracut)
+ read_arg dracut_cmd "$@" || shift $? ;;
+ --version|-R)
+ echo "mkinitrd: dracut compatibility wrapper"
+ exit 0;;
+ --force) force=1;;
+ --quiet|-q) quiet=1;;
+ *) if [[ ! $targets ]]; then
+ targets=$1
+ elif [[ ! $kernels ]]; then
+ kernels=$1
+ else
+ usage
+ fi;;
+ esac
+ shift
+done
+
+[[ $targets && $kernels ]] || default_kernel_images
+[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage)
+
+# We can have several targets/kernels, transform the list to an array
+targets=( $targets )
+[[ $kernels ]] && kernels=( $kernels )
+
+[[ $logfile ]] && dracut_args="${dracut_args} --logfile $logfile"
+[[ $host_only == 1 ]] && dracut_args="${dracut_args} --hostonly"
+[[ $force == 1 ]] && dracut_args="${dracut_args} --force"
+[[ $dracut_cmdline ]] && dracut_args="${dracut_args} --kernel-cmdline ${dracut_cmdline}"
+[ -z "$(type -p update-bootloader)" ] && skip_update_bootloader=1
+
+# Update defaults from /etc/sysconfig/kernel
+if [ -f /etc/sysconfig/kernel ] ; then
+ . /etc/sysconfig/kernel
+fi
+[[ $module_list ]] || module_list="${INITRD_MODULES}"
+basicmodules="$basicmodules ${module_list}"
+[[ $domu_module_list ]] || domu_module_list="${DOMU_INITRD_MODULES}"
+[[ $acpi_dsdt ]] || acpi_dsdt="${ACPI_DSDT}"
+
+echo "Creating: target|kernel|dracut args|basicmodules "
+for ((i=0 ; $i<${#targets[@]} ; i++)); do
+
+ if [[ $img_vers ]];then
+ target="${targets[$i]}-${kernels[$i]}"
+ else
+ target="${targets[$i]}"
+ fi
+ kernel="${kernels[$i]}"
+
+ # Duplicate code: No way found how to redirect output based on $quiet
+ if [[ $quiet == 1 ]];then
+ echo "$target|$kernel|$dracut_args|$basicmodules"
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel" &>/dev/null
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel" &>/dev/null
+ fi
+ else
+ if is_xen_kernel $kernel $rootfs ; then
+ basicmodules="$basicmodules ${domu_module_list}"
+ fi
+ if [[ $basicmodules ]]; then
+ $dracut_cmd $dracut_args --add-drivers "$basicmodules" "$target" \
+ "$kernel"
+ else
+ $dracut_cmd $dracut_args "$target" "$kernel"
+ fi
+ fi
+done
+
+if [ "$skip_update_bootloader" ] ; then
+ echo 2>&1 "Did not refresh the bootloader. You might need to refresh it manually."
+else
+ update-bootloader --refresh
+fi
--
1.8.1.4
++++++ 0012-mkinitrd-suse.8.asc-Add-manpage-for-SUSE-compat-mkin.patch ++++++
>From ed220c000020db2d883e798cbfa51e80e289b218 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Fri, 29 Nov 2013 08:01:34 +0100
Subject: [PATCH] mkinitrd-suse.8.asc: Add manpage for SUSE compat mkinitrd
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
Makefile | 1 +
mkinitrd-suse.8.asc | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 mkinitrd-suse.8.asc
diff --git a/Makefile b/Makefile
index e7da948..ba551cf 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ man7pages = dracut.cmdline.7 \
man8pages = dracut.8 \
dracut-catimages.8 \
mkinitrd.8 \
+ mkinitrd-suse.8 \
modules.d/98systemd/dracut-cmdline.service.8 \
modules.d/98systemd/dracut-initqueue.service.8 \
modules.d/98systemd/dracut-mount.service.8 \
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
new file mode 100644
index 0000000..9eb8fc9
--- /dev/null
+++ b/mkinitrd-suse.8.asc
@@ -0,0 +1,106 @@
+MKINITRD(8)
+===========
+:doctype: manpage
+:man source: dracut
+:man manual: dracut
+
+NAME
+----
+mkinitrd-suse - is a compat wrapper, which calls dracut to generate an initramfs
+
+SYNOPSIS
+--------
+*mkinitrd* ['OPTION...']
+
+DESCRIPTION
+-----------
+*mkinitrd* creates an initramfs image <initrd-image> for the kernel with
+version <kernel-version> by calling *dracut*.
+
+[IMPORTANT]
+This version of mkinitrd is provided for compability with older
+versions of mkinitrd. If a more fine grained control over the
+resulting image is needed, *dracut* should be called directly.
+
+OPTIONS
+-------
+**-R, --version**::
+ print info about the version
+
+**-k** _<kernel_list>_::
+ List of kernel images for which initrd files are created (relative
+ to _boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x
+ and _vmlinuz_ for everything else.
+
+**-i** _<initrd_list>_::
+ List of file names (relative to _boot_dir_) for the initrd; positions
+ have to match the _kernel_list_. Defaults to _initrd_.
+
+**-m** _<module_list>_::
+ Modules to include in initrd, defaults to _INITRD_MODULES_ variable
+ in */etc/sysconfig/kernel*.
+
+**-f** _<feature_list>_::
+ Features to be enabled for the initrd. In general mkinitrd
+ configures the initrd for the root device it is started from. With
+ this option additional feature can be enabled.
+
+**-b** _<bootdir>_::
+ Boot directory, defaults to */boot*, where the initrd is created.
+
+**-d** _<root_device>_::
+ Root device, defaults to the device from which the root_dir is
+ mounted; overwrites the rootdev enviroment variable if set
+
+**-s** _<size>_::
+ Add splash animation and bootscreen to initrd.
+
+**-D** _<interface>::
+ Run dhcp on the specified interface (for example "eth0").
+
+**-I** _<interface>::
+ Configure the specified interface statically.
+
+**-a** _<acpi_dsdt>::
+ Attach compiled ACPI DSDT (Differentiated System Description Table)
+ to initrd. This replaces the DSDT of the BIOS. Defaults to the
+ _ACPI_DSDT_ variable in */etc/sysconfig/kernel*.
+
+**-M** _<map>::
+ System.map file to use.
+
+**-B**::
+ Don’t run the *update-bootloader(8)* script after the initrd(s) have
+ been created. This is useful if you call mkinitrd(8) for anything
+ else than the running system.
+
+**-A**::
+ Create a so called "monster initrd" which includes all available
+ features and modules.
+
+**-v, --verbose**::
+ increase verbosity level
+
+**-L**::
+ Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for
+ testing if you don’t want to clutter the system log.
+
+**--force**::
+ overwrite existing initramfs file.
+
+**--help**::
+ print a help message and exit.
+
+AVAILABILITY
+------------
+The mkinitrd command is part of the dracut package and is available from
+link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]
+
+AUTHORS
+-------
+Harald Hoyer, Hannes Reinecke
+
+SEE ALSO
+--------
+*dracut*(8)
+*update-bootloader*(8)
--
1.8.1.4
++++++ 0013-Correct-paths-for-openSUSE.patch ++++++
>From 16b73ffc6f9c67800811f39641c484123d2a159a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 28 Nov 2013 10:07:59 +0100
Subject: [PATCH] Correct paths for openSUSE
openSUSE has things stored in different places, so fixup the
paths here.
Signed-off-by: Christian Rodrigues <crrodriguez(a)opensuse.org>
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
dracut.sh | 2 +-
modules.d/10i18n/module-setup.sh | 2 ++
modules.d/98systemd/rescue.service | 2 +-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 5f63d94..8680874 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -683,7 +683,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l))
[[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l
[[ $lvmconf_l ]] && lvmconf=$lvmconf_l
[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
-[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware"
+[[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware /lib/firmware/$kernel"
[[ $tmpdir_l ]] && tmpdir="$tmpdir_l"
[[ $tmpdir ]] || tmpdir=/var/tmp
[[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index f07b148..3854a38 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -102,6 +102,8 @@ install() {
install_base() {
inst_multiple setfont loadkeys kbd_mode stty
+ inst /usr/bin/setfont /bin/setfont
+ inst /usr/bin/loadkeys /bin/loadkeys
if ! dracut_module_included "systemd"; then
inst ${moddir}/console_init.sh /lib/udev/console_init
diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service
index edc2461..d80900f 100644
--- a/modules.d/98systemd/rescue.service
+++ b/modules.d/98systemd/rescue.service
@@ -16,7 +16,7 @@ Environment=HOME=/
Environment=DRACUT_SYSTEMD=1
Environment=NEWROOT=/sysroot
WorkingDirectory=/
-ExecStartPre=-/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth quit
ExecStart=-/bin/sh -i -l
ExecStopPost=-/bin/rm -f -- /.console_lock
ExecStopPost=-/usr/bin/systemctl --fail --no-block default
--
1.8.1.4
++++++ 0014-Check-for-plymouth-lib-directories.patch ++++++
>From cc0ec0cdcef806efe2315931ba4705fb35b82c6a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Wed, 27 Nov 2013 15:54:00 +0100
Subject: [PATCH] Check for plymouth lib directories
SUSE installs plymount files in /usr/lib, not /usr/libexec.
So check for both when including plymouth support.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/50plymouth/module-setup.sh | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/modules.d/50plymouth/module-setup.sh b/modules.d/50plymouth/module-setup.sh
index 1360924..7ccf9e4 100755
--- a/modules.d/50plymouth/module-setup.sh
+++ b/modules.d/50plymouth/module-setup.sh
@@ -15,12 +15,19 @@ depends() {
# called by dracut
install() {
- if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \
- || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
+ if [ -d /usr/libexec/plymouth ] ; then
+ _plymouth=/usr/libexec/plymouth;
+ elif [ -d /usr/lib/plymouth ] ; then
+ _plymouth=/usr/lib/plymouth
+ fi
+ if [ -n "$_plymouth" ] ; then
+ if grep -q nash ${_plymouth}/plymouth-populate-initrd \
+ || [ ! -x ${_plymouth}/plymouth-populate-initrd ]; then
. "$moddir"/plymouth-populate-initrd.sh
- else
- PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
- /usr/libexec/plymouth/plymouth-populate-initrd -t "$initdir"
+ else
+ PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
+ ${_plymouth}/plymouth-populate-initrd -t "$initdir"
+ fi
fi
inst_hook emergency 50 "$moddir"/plymouth-emergency.sh
--
1.8.1.4
++++++ 0015-Fixup-script-permissions.patch ++++++
>From 96a44d8e982838a01e3d8f2a62941a9af0952b95 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Fri, 29 Nov 2013 11:36:02 +0100
Subject: [PATCH] Fixup script permissions
Scripts with a shebang should be marked as executable.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
modules.d/03modsign/load-modsign-keys.sh | 0
modules.d/03modsign/module-setup.sh | 0
modules.d/40network/net-lib.sh | 0
modules.d/40network/parse-vlan.sh | 0
modules.d/50drm/module-setup.sh | 0
modules.d/91crypt-loop/crypt-loop-lib.sh | 0
modules.d/98pollcdrom/pollcdrom.sh | 0
7 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 modules.d/03modsign/load-modsign-keys.sh
mode change 100644 => 100755 modules.d/03modsign/module-setup.sh
mode change 100644 => 100755 modules.d/40network/net-lib.sh
mode change 100644 => 100755 modules.d/40network/parse-vlan.sh
mode change 100644 => 100755 modules.d/50drm/module-setup.sh
mode change 100644 => 100755 modules.d/91crypt-loop/crypt-loop-lib.sh
mode change 100644 => 100755 modules.d/98pollcdrom/pollcdrom.sh
diff --git a/modules.d/03modsign/load-modsign-keys.sh b/modules.d/03modsign/load-modsign-keys.sh
old mode 100644
new mode 100755
diff --git a/modules.d/03modsign/module-setup.sh b/modules.d/03modsign/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/40network/parse-vlan.sh
old mode 100644
new mode 100755
diff --git a/modules.d/50drm/module-setup.sh b/modules.d/50drm/module-setup.sh
old mode 100644
new mode 100755
diff --git a/modules.d/91crypt-loop/crypt-loop-lib.sh b/modules.d/91crypt-loop/crypt-loop-lib.sh
old mode 100644
new mode 100755
diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
old mode 100644
new mode 100755
--
1.8.1.4
++++++ 0016-Remove-shebang-from-shell-completion-files.patch ++++++
>From d29f993d5a4205f918c5fefb7e03dabc1062e11b Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Fri, 29 Nov 2013 12:46:24 +0100
Subject: [PATCH] Remove shebang from shell-completion files
Shell-completion files are meant to be sourced, not executed.
So they shouldn't have a shebang at the start.
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
dracut-bash-completion.sh | 2 +-
lsinitrd-bash-completion.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dracut-bash-completion.sh b/dracut-bash-completion.sh
index d796c35..9f359c6 100644
--- a/dracut-bash-completion.sh
+++ b/dracut-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
diff --git a/lsinitrd-bash-completion.sh b/lsinitrd-bash-completion.sh
index 78ab165..3df2965 100644
--- a/lsinitrd-bash-completion.sh
+++ b/lsinitrd-bash-completion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
--
1.8.1.4
++++++ dracut-git-update.patch ++++++
++++ 5557 lines (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package bluez for openSUSE:Factory checked in at 2013-11-29 16:22:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bluez (Old)
and /work/SRC/openSUSE:Factory/.bluez.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluez"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bluez/bluez.changes 2013-10-08 12:50:36.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.bluez.new/bluez.changes 2013-11-29 16:22:20.000000000 +0100
@@ -1,0 +2,51 @@
+Sun Nov 24 16:43:28 UTC 2013 - crrodriguez(a)opensuse.org
+
+- run %uev_rules_update in %post if such macro is defined
+
+-------------------------------------------------------------------
+Mon Nov 18 08:11:54 UTC 2013 - seife+obs(a)b1-systems.com
+
+- update to bluez-5.11:
+ * Fix issue with connection attempt when not powered.
+ * Fix issue with assigning player to AVRCP target role.
+ * Fix issue with OBEX default cache directory.
+ * Fix issue with SDP search error handling.
+ * Fix issue with processing of SDP records.
+ * Fix issue with HID to HCI switching utility.
+ * Fix issue with mgmt end-to-end testing tool.
+ * Fix issue with L2CAP end-to-end testing tool.
+ * Add support for SMP end-to-end testing tool.
+ * Add support for more Wii controllers.
+
+-------------------------------------------------------------------
+Sat Oct 19 08:36:07 UTC 2013 - seife+obs(a)b1-systems.com
+
+- remove libnl BuildRequires, it is not needed
+
+-------------------------------------------------------------------
+Wed Oct 16 14:31:38 UTC 2013 - seife+obs(a)b1-systems.com
+
+- update to bluez-5.10, changelog from source:
+ ver 5.10:
+ * Fix issue with discoverable timeout handling.
+ * Fix issue with MAP messages and record version.
+ * Fix issue with MAP messages and status events.
+ * Fix issue with MAP messages and relative folders.
+ * Fix issue with MAP messages and type property signals.
+ * Fix issue with transfer size for OBEX GET operations.
+ * Fix issue with AVRCP service class identifier.
+ * Fix issue with AVRCP tracking seeked signal.
+ * Add support for OBEX command line client.
+ ver 5.9:
+ * Fix issue with network service and adapter removal.
+ * Fix issue with misleading OBEX error messages.
+ * Fix issue with OBEX transport reference handling.
+ * Fix issue with memory leak with MAP event handler.
+ * Fix issue with missing MAP property changed signal.
+ * Fix issue with message type property values.
+ * Fix issue with empty UUID list for devices.
+ * Fix issue with profile agent cancel method.
+ * Remove dependency on USB library.
+- removed bluez-5.4-compilerwarning.diff, is obsolete
+
+-------------------------------------------------------------------
Old:
----
bluez-5.4-compilerwarning.diff
bluez-5.8.tar.xz
New:
----
bluez-5.11.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bluez.spec ++++++
--- /var/tmp/diff_new_pack.T9Oxh4/_old 2013-11-29 16:22:22.000000000 +0100
+++ /var/tmp/diff_new_pack.T9Oxh4/_new 2013-11-29 16:22:22.000000000 +0100
@@ -2,7 +2,7 @@
# spec file for package bluez
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# Copyright (c) 2010-2012 B1 Systems GmbH, Vohburg, Germany
+# Copyright (c) 2010-2013 B1 Systems GmbH, Vohburg, Germany
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
BuildRequires: systemd-devel
BuildRequires: pkgconfig(dbus-1) >= 1.4
%{?systemd_requires}
-Version: 5.8
+Version: 5.11
Release: 0
Summary: Bluetooth Stack for Linux
License: GPL-2.0+
@@ -35,7 +35,6 @@
Source6: README.SUSE
Source7: bluetooth.modprobe
Source99: README.packagers
-Patch1: bluez-5.4-compilerwarning.diff
Patch2: bluez-sdp-unix-path.patch
BuildRequires: alsa-devel
BuildRequires: automake
@@ -44,12 +43,10 @@
BuildRequires: libsndfile-devel
BuildRequires: libtool
BuildRequires: libudev-devel
-BuildRequires: libusb-devel
BuildRequires: pkg-config
BuildRequires: readline-devel
BuildRequires: udev
BuildRequires: pkgconfig(glib-2.0) >= 2.28
-BuildRequires: pkgconfig(libnl-1)
Recommends: sbc
Provides: bluez-utils = 3.36
Obsoletes: bluez-utils <= 3.36
@@ -114,7 +111,6 @@
%prep
%setup -q
-%patch1 -p1
%patch2 -p1
cp %{SOURCE6} .
mkdir dbus-apis
@@ -129,7 +125,6 @@
%configure --with-pic \
--enable-pie \
--enable-library \
- --enable-usb \
--enable-tools \
--enable-cups \
--enable-test \
@@ -169,6 +164,7 @@
%service_add_pre bluetooth.service
%post
+%{?udev_rules_update:%udev_rules_update}
# todo: check if this is still obeyed / needed with systemd
%{fillup_only -n bluetooth}
# We need the bluez systemd service enabled at any time. It won't start up
++++++ bluez-5.8.tar.xz -> bluez-5.11.tar.xz ++++++
++++ 44288 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package userspace-rcu for openSUSE:Factory checked in at 2013-11-29 12:05:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/userspace-rcu (Old)
and /work/SRC/openSUSE:Factory/.userspace-rcu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "userspace-rcu"
Changes:
--------
--- /work/SRC/openSUSE:Factory/userspace-rcu/userspace-rcu.changes 2013-09-11 13:23:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.userspace-rcu.new/userspace-rcu.changes 2013-11-29 12:05:39.000000000 +0100
@@ -1,0 +2,17 @@
+Tue Nov 26 15:07:34 UTC 2013 - pgajdos(a)suse.com
+
+- updated to 0.8.1:
+ * tls-compat: fix comment typo
+ * Keep ABI compatible with already compiled LGPL applications
+ * Fix: tls-compat multi-lib conflict
+ * Use cross compiler for doc examples
+ * gcc warning fixes: -Wsign-compare and -Wextra
+ * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
+ * Fix: urcu-bp segfault in glibc pthread_kill()
+ * Fix urcu-bp: don't move registry
+ * Fix: compat futex duplicated lock and completion
+ * Fix: i386 compat code duplicated mutex instances
+ * Fix: urcu-bp: Bulletproof RCU arena resize bug
+ * Fix: test_mutex.c uninitialized mutex
+
+-------------------------------------------------------------------
Old:
----
userspace-rcu-0.8.0.tar.bz2
userspace-rcu-0.8.0.tar.bz2.asc
New:
----
userspace-rcu-0.8.1.tar.bz2
userspace-rcu-0.8.1.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ userspace-rcu.spec ++++++
--- /var/tmp/diff_new_pack.v3DpEj/_old 2013-11-29 12:05:39.000000000 +0100
+++ /var/tmp/diff_new_pack.v3DpEj/_new 2013-11-29 12:05:39.000000000 +0100
@@ -19,7 +19,7 @@
Name: userspace-rcu
-Version: 0.8.0
+Version: 0.8.1
Release: 0
%define soname 2
Summary: Userspace Read-Copy-Update Library
++++++ userspace-rcu-0.8.0.tar.bz2 -> userspace-rcu-0.8.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/ChangeLog new/userspace-rcu-0.8.1/ChangeLog
--- old/userspace-rcu-0.8.0/ChangeLog 2013-09-06 13:58:25.000000000 +0200
+++ new/userspace-rcu-0.8.1/ChangeLog 2013-11-12 17:08:39.000000000 +0100
@@ -1,3 +1,17 @@
+2013-11-12 Userspace RCU 0.8.1
+ * tls-compat: fix comment typo
+ * Keep ABI compatible with already compiled LGPL applications
+ * Fix: tls-compat multi-lib conflict
+ * Use cross compiler for doc examples
+ * gcc warning fixes: -Wsign-compare and -Wextra
+ * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
+ * Fix: urcu-bp segfault in glibc pthread_kill()
+ * Fix urcu-bp: don't move registry
+ * Fix: compat futex duplicated lock and completion
+ * Fix: i386 compat code duplicated mutex instances
+ * Fix: urcu-bp: Bulletproof RCU arena resize bug
+ * Fix: test_mutex.c uninitialized mutex
+
2013-09-06 Userspace RCU 0.8.0
* Fix: hash table growth (for small tables) should be limited
* Fix: doc/examples cross-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/compat_arch_x86.c new/userspace-rcu-0.8.1/compat_arch_x86.c
--- old/userspace-rcu-0.8.0/compat_arch_x86.c 2013-05-14 16:18:25.000000000 +0200
+++ new/userspace-rcu-0.8.1/compat_arch_x86.c 2013-11-11 23:10:16.000000000 +0100
@@ -27,6 +27,14 @@
#include <urcu/uatomic.h>
/*
+ * Using attribute "weak" for __rcu_cas_avail and
+ * __urcu_x86_compat_mutex. Those are globally visible by the entire
+ * program, even though many shared objects may have their own version.
+ * The first version that gets loaded will be used by the entire
+ * program (executable and all shared objects).
+ */
+
+/*
* It does not really matter if the constructor is called before using
* the library, as long as the caller checks if __rcu_cas_avail < 0 and calls
* compat_arch_init() explicitely if needed.
@@ -38,9 +46,11 @@
* 1: available
* 0: unavailable
*/
+__attribute__((weak))
int __rcu_cas_avail = -1;
-static pthread_mutex_t compat_mutex = PTHREAD_MUTEX_INITIALIZER;
+__attribute__((weak))
+pthread_mutex_t __urcu_x86_compat_mutex = PTHREAD_MUTEX_INITIALIZER;
/*
* get_eflags/set_eflags/compare_and_swap_is_available imported from glibc
@@ -84,7 +94,7 @@
assert(!ret);
ret = pthread_sigmask(SIG_BLOCK, &newmask, oldmask);
assert(!ret);
- ret = pthread_mutex_lock(&compat_mutex);
+ ret = pthread_mutex_lock(&__urcu_x86_compat_mutex);
assert(!ret);
}
@@ -92,7 +102,7 @@
{
int ret;
- ret = pthread_mutex_unlock(&compat_mutex);
+ ret = pthread_mutex_unlock(&__urcu_x86_compat_mutex);
assert(!ret);
ret = pthread_sigmask(SIG_SETMASK, oldmask, NULL);
assert(!ret);
@@ -103,7 +113,7 @@
sigset_t mask;
unsigned long result;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
*(unsigned char *)addr = (unsigned char)_new;
@@ -125,7 +135,7 @@
result = 0;
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
return result;
}
@@ -134,7 +144,7 @@
sigset_t mask;
unsigned long retval;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
retval = *(unsigned char *)addr;
@@ -156,7 +166,7 @@
retval = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
return retval;
}
@@ -166,7 +176,7 @@
unsigned long retval;
sigset_t mask;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
{
@@ -200,7 +210,7 @@
retval = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
return retval;
}
@@ -208,7 +218,7 @@
{
sigset_t mask;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
*(unsigned char *)addr |= (unsigned char)v;
@@ -226,14 +236,14 @@
*/
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
}
void _compat_uatomic_and(void *addr, unsigned long v, int len)
{
sigset_t mask;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
*(unsigned char *)addr &= (unsigned char)v;
@@ -251,7 +261,7 @@
*/
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
}
unsigned long _compat_uatomic_add_return(void *addr, unsigned long v, int len)
@@ -259,7 +269,7 @@
sigset_t mask;
unsigned long result;
- mutex_lock_signal_save(&compat_mutex, &mask);
+ mutex_lock_signal_save(&__urcu_x86_compat_mutex, &mask);
switch (len) {
case 1:
*(unsigned char *)addr += (unsigned char)v;
@@ -281,7 +291,7 @@
result = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
- mutex_lock_signal_restore(&compat_mutex, &mask);
+ mutex_lock_signal_restore(&__urcu_x86_compat_mutex, &mask);
return result;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/compat_futex.c new/userspace-rcu-0.8.1/compat_futex.c
--- old/userspace-rcu-0.8.0/compat_futex.c 2013-07-04 21:33:07.000000000 +0200
+++ new/userspace-rcu-0.8.1/compat_futex.c 2013-11-11 23:10:16.000000000 +0100
@@ -31,8 +31,18 @@
#include <urcu/arch.h>
#include <urcu/futex.h>
-static pthread_mutex_t compat_futex_lock = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t compat_futex_cond = PTHREAD_COND_INITIALIZER;
+/*
+ * Using attribute "weak" for __urcu_compat_futex_lock and
+ * __urcu_compat_futex_cond. Those are globally visible by the entire
+ * program, even though many shared objects may have their own version.
+ * The first version that gets loaded will be used by the entire program
+ * (executable and all shared objects).
+ */
+
+__attribute__((weak))
+pthread_mutex_t __urcu_compat_futex_lock = PTHREAD_MUTEX_INITIALIZER;
+__attribute__((weak))
+pthread_cond_t __urcu_compat_futex_cond = PTHREAD_COND_INITIALIZER;
/*
* _NOT SIGNAL-SAFE_. pthread_cond is not signal-safe anyway. Though.
@@ -58,22 +68,22 @@
*/
cmm_smp_mb();
- ret = pthread_mutex_lock(&compat_futex_lock);
+ ret = pthread_mutex_lock(&__urcu_compat_futex_lock);
assert(!ret);
switch (op) {
case FUTEX_WAIT:
if (*uaddr != val)
goto end;
- pthread_cond_wait(&compat_futex_cond, &compat_futex_lock);
+ pthread_cond_wait(&__urcu_compat_futex_cond, &__urcu_compat_futex_lock);
break;
case FUTEX_WAKE:
- pthread_cond_broadcast(&compat_futex_cond);
+ pthread_cond_broadcast(&__urcu_compat_futex_cond);
break;
default:
gret = -EINVAL;
}
end:
- ret = pthread_mutex_unlock(&compat_futex_lock);
+ ret = pthread_mutex_unlock(&__urcu_compat_futex_lock);
assert(!ret);
return gret;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/configure new/userspace-rcu-0.8.1/configure
--- old/userspace-rcu-0.8.0/configure 2013-09-04 16:01:42.000000000 +0200
+++ new/userspace-rcu-0.8.1/configure 2013-11-12 17:09:25.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for userspace-rcu 0.8.0.
+# Generated by GNU Autoconf 2.69 for userspace-rcu 0.8.1.
#
# Report bugs to <mathieu dot desnoyers at efficios dot com>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='userspace-rcu'
PACKAGE_TARNAME='userspace-rcu'
-PACKAGE_VERSION='0.8.0'
-PACKAGE_STRING='userspace-rcu 0.8.0'
+PACKAGE_VERSION='0.8.1'
+PACKAGE_STRING='userspace-rcu 0.8.1'
PACKAGE_BUGREPORT='mathieu dot desnoyers at efficios dot com'
PACKAGE_URL=''
@@ -1326,7 +1326,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures userspace-rcu 0.8.0 to adapt to many kinds of systems.
+\`configure' configures userspace-rcu 0.8.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1397,7 +1397,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of userspace-rcu 0.8.0:";;
+ short | recursive ) echo "Configuration of userspace-rcu 0.8.1:";;
esac
cat <<\_ACEOF
@@ -1504,7 +1504,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-userspace-rcu configure 0.8.0
+userspace-rcu configure 0.8.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1927,7 +1927,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by userspace-rcu $as_me 0.8.0, which was
+It was created by userspace-rcu $as_me 0.8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2863,7 +2863,7 @@
# Define the identity of the package.
PACKAGE='userspace-rcu'
- VERSION='0.8.0'
+ VERSION='0.8.1'
cat >>confdefs.h <<_ACEOF
@@ -13588,7 +13588,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by userspace-rcu $as_me 0.8.0, which was
+This file was extended by userspace-rcu $as_me 0.8.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13658,7 +13658,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-userspace-rcu config.status 0.8.0
+userspace-rcu config.status 0.8.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/configure.ac new/userspace-rcu-0.8.1/configure.ac
--- old/userspace-rcu-0.8.0/configure.ac 2013-09-04 16:01:34.000000000 +0200
+++ new/userspace-rcu-0.8.1/configure.ac 2013-11-12 17:07:29.000000000 +0100
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
-AC_INIT([userspace-rcu],[0.8.0],[mathieu dot desnoyers at efficios dot com])
+AC_INIT([userspace-rcu],[0.8.1],[mathieu dot desnoyers at efficios dot com])
# Following the numbering scheme proposed by libtool for the library version
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/doc/examples/Makefile.examples.template new/userspace-rcu-0.8.1/doc/examples/Makefile.examples.template
--- old/userspace-rcu-0.8.0/doc/examples/Makefile.examples.template 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/doc/examples/Makefile.examples.template 2013-11-11 23:10:16.000000000 +0100
@@ -11,7 +11,9 @@
#
# This makefile is purposefully kept simple to support GNU and BSD make.
+ifndef CC
CC = gcc
+endif
CFLAGS = -g -O2 -Wall
all: $(BINARY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/tests/benchmark/test_mutex.c new/userspace-rcu-0.8.1/tests/benchmark/test_mutex.c
--- old/userspace-rcu-0.8.0/tests/benchmark/test_mutex.c 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/tests/benchmark/test_mutex.c 2013-11-11 23:10:16.000000000 +0100
@@ -52,7 +52,7 @@
int a;
};
-static pthread_mutex_t lock;
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
static volatile int test_go, test_stop;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/tests/benchmark/test_urcu_hash.c new/userspace-rcu-0.8.1/tests/benchmark/test_urcu_hash.c
--- old/userspace-rcu-0.8.0/tests/benchmark/test_urcu_hash.c 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/tests/benchmark/test_urcu_hash.c 2013-11-12 17:06:57.000000000 +0100
@@ -82,13 +82,13 @@
return test_hash_cb[test_choice].populate_hash;
}
-DEFINE_URCU_TLS(unsigned int, rand_lookup);
-DEFINE_URCU_TLS(unsigned long, nr_add);
-DEFINE_URCU_TLS(unsigned long, nr_addexist);
-DEFINE_URCU_TLS(unsigned long, nr_del);
-DEFINE_URCU_TLS(unsigned long, nr_delnoent);
-DEFINE_URCU_TLS(unsigned long, lookup_fail);
-DEFINE_URCU_TLS(unsigned long, lookup_ok);
+__DEFINE_URCU_TLS_GLOBAL(unsigned int, rand_lookup);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, nr_add);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, nr_addexist);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, nr_del);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, nr_delnoent);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, lookup_fail);
+__DEFINE_URCU_TLS_GLOBAL(unsigned long, lookup_ok);
struct cds_lfht *test_ht;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu/compiler.h new/userspace-rcu-0.8.1/urcu/compiler.h
--- old/userspace-rcu-0.8.0/urcu/compiler.h 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu/compiler.h 2013-11-11 23:10:16.000000000 +0100
@@ -86,10 +86,15 @@
#define URCU_FORCE_CAST(type, arg) ((type) (arg))
#endif
-#define caa_is_signed_type(type) (((type) (-1)) < 0)
+#define caa_is_signed_type(type) ((type) -1 < (type) 0)
-#define caa_cast_long_keep_sign(v) \
- (caa_is_signed_type(__typeof__(v)) ? (long) (v) : (unsigned long) (v))
+/*
+ * Sign-extend to long if needed, and output type is unsigned long.
+ */
+#define caa_cast_long_keep_sign(v) \
+ (caa_is_signed_type(__typeof__(v)) ? \
+ (unsigned long) (long) (v) : \
+ (unsigned long) (v))
#if defined (__GNUC__) \
&& ((__GNUC_MAJOR__ == 4) && (__GNUC_MINOR__ >= 5) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu/tls-compat.h new/userspace-rcu-0.8.1/urcu/tls-compat.h
--- old/userspace-rcu-0.8.0/urcu/tls-compat.h 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu/tls-compat.h 2013-11-12 17:06:57.000000000 +0100
@@ -70,10 +70,22 @@
# define DEFINE_URCU_TLS(type, name) \
CONFIG_RCU_TLS type name
+# define __DEFINE_URCU_TLS_GLOBAL(type, name) \
+ CONFIG_RCU_TLS type name
+
# define URCU_TLS(name) (name)
#else /* #ifndef CONFIG_RCU_TLS */
+/*
+ * The *_1() macros ensure macro parameters are expanded.
+ *
+ * __DEFINE_URCU_TLS_GLOBAL and __URCU_TLS_CALL exist for the sole
+ * purpose of notifying applications compiled against non-fixed 0.7 and
+ * 0.8 userspace RCU headers and using multiple flavors concurrently to
+ * recompile against fixed userspace RCU headers.
+ */
+
# include <pthread.h>
struct urcu_tls {
@@ -82,15 +94,24 @@
int init_done;
};
+# define DECLARE_URCU_TLS_1(type, name) \
+ type *__tls_access2_ ## name(void)
+
# define DECLARE_URCU_TLS(type, name) \
- type *__tls_access_ ## name(void)
+ DECLARE_URCU_TLS_1(type, name)
/*
* Note: we don't free memory at process exit, since it will be dealt
* with by the OS.
*/
-# define DEFINE_URCU_TLS(type, name) \
- type *__tls_access_ ## name(void) \
+# define __URCU_TLS_CALL_1(name) \
+ __tls_access2_ ## name
+
+# define __URCU_TLS_CALL(name) \
+ __URCU_TLS_CALL_1(name)
+
+# define DEFINE_URCU_TLS_1(type, name) \
+ type *__tls_access2_ ## name(void) \
{ \
static struct urcu_tls __tls_ ## name = { \
.init_mutex = PTHREAD_MUTEX_INITIALIZER,\
@@ -118,7 +139,34 @@
return __tls_p; \
}
-# define URCU_TLS(name) (*__tls_access_ ## name())
+/*
+ * Define with and without macro expansion to handle erroneous callers.
+ * Trigger an abort() if the caller application uses the clashing symbol
+ * if a weak symbol is overridden.
+ */
+# define __DEFINE_URCU_TLS_GLOBAL(type, name) \
+ DEFINE_URCU_TLS_1(type, name) \
+ int __urcu_tls_symbol_refcount_ ## name __attribute__((weak)); \
+ static __attribute__((constructor)) \
+ void __urcu_tls_inc_refcount_ ## name(void) \
+ { \
+ __urcu_tls_symbol_refcount_ ## name++; \
+ } \
+ type *__tls_access_ ## name(void) \
+ { \
+ if (__urcu_tls_symbol_refcount_ ## name > 1) { \
+ fprintf(stderr, "Error: Userspace RCU symbol clash for multiple concurrent flavors. Please upgrade liburcu libraries and headers, then recompile your application.\n"); \
+ abort(); \
+ } \
+ return __URCU_TLS_CALL(name)(); \
+ }
+
+# define DEFINE_URCU_TLS(type, name) \
+ DEFINE_URCU_TLS_1(type, name)
+
+# define URCU_TLS_1(name) (*__tls_access2_ ## name())
+
+# define URCU_TLS(name) URCU_TLS_1(name)
#endif /* #else #ifndef CONFIG_RCU_TLS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu-bp.c new/userspace-rcu-0.8.1/urcu-bp.c
--- old/userspace-rcu-0.8.0/urcu-bp.c 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu-bp.c 2013-11-12 17:06:57.000000000 +0100
@@ -66,47 +66,46 @@
#define MREMAP_FIXED 2
/*
- * mremap wrapper for non-Linux systems. Maps a RW, anonymous private mapping.
+ * mremap wrapper for non-Linux systems not allowing MAYMOVE.
* This is not generic.
*/
static
void *mremap_wrapper(void *old_address, size_t old_size,
size_t new_size, int flags)
{
- void *new_address;
+ assert(!(flags & MREMAP_MAYMOVE));
- assert(flags & MREMAP_MAYMOVE);
- assert(!(flags & MREMAP_FIXED));
- new_address = mmap(old_address, new_size,
- PROT_READ | PROT_WRITE,
- MAP_ANONYMOUS | MAP_PRIVATE,
- -1, 0);
- if (new_address == MAP_FAILED)
- return MAP_FAILED;
- if (old_address) {
- memcpy(new_address, old_address, old_size);
- munmap(old_address, old_size);
- }
- return new_address;
+ return MAP_FAILED;
}
#endif
/* Sleep delay in us */
#define RCU_SLEEP_DELAY 1000
-#define ARENA_INIT_ALLOC 16
+#define INIT_NR_THREADS 8
+#define ARENA_INIT_ALLOC \
+ sizeof(struct registry_chunk) \
+ + INIT_NR_THREADS * sizeof(struct rcu_reader)
/*
* Active attempts to check for reader Q.S. before calling sleep().
*/
#define RCU_QS_ACTIVE_ATTEMPTS 100
+static
+void __attribute__((constructor)) rcu_bp_init(void);
+static
void __attribute__((destructor)) rcu_bp_exit(void);
static pthread_mutex_t rcu_gp_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t init_lock = PTHREAD_MUTEX_INITIALIZER;
+static int initialized;
+
+static pthread_key_t urcu_bp_key;
+
#ifdef DEBUG_YIELD
unsigned int rcu_yield_active;
-DEFINE_URCU_TLS(unsigned int, rcu_rand_yield);
+__DEFINE_URCU_TLS_GLOBAL(unsigned int, rcu_rand_yield);
#endif
struct rcu_gp rcu_gp = { .ctr = RCU_GP_COUNT };
@@ -115,23 +114,28 @@
* Pointer to registry elements. Written to only by each individual reader. Read
* by both the reader and the writers.
*/
-DEFINE_URCU_TLS(struct rcu_reader *, rcu_reader);
+__DEFINE_URCU_TLS_GLOBAL(struct rcu_reader *, rcu_reader);
static CDS_LIST_HEAD(registry);
+struct registry_chunk {
+ size_t data_len; /* data length */
+ size_t used; /* amount of data used */
+ struct cds_list_head node; /* chunk_list node */
+ char data[];
+};
+
struct registry_arena {
- void *p;
- size_t len;
- size_t used;
+ struct cds_list_head chunk_list;
};
-static struct registry_arena registry_arena;
+static struct registry_arena registry_arena = {
+ .chunk_list = CDS_LIST_HEAD_INIT(registry_arena.chunk_list),
+};
/* Saved fork signal mask, protected by rcu_gp_lock */
static sigset_t saved_fork_signal_mask;
-static void rcu_gc_registry(void);
-
static void mutex_lock(pthread_mutex_t *mutex)
{
int ret;
@@ -228,9 +232,6 @@
/* Write new ptr before changing the qparity */
cmm_smp_mb();
- /* Remove old registry elements */
- rcu_gc_registry();
-
/*
* Wait for readers to observe original parity or be quiescent.
*/
@@ -301,82 +302,165 @@
}
/*
- * only grow for now.
+ * Only grow for now. If empty, allocate a ARENA_INIT_ALLOC sized chunk.
+ * Else, try expanding the last chunk. If this fails, allocate a new
+ * chunk twice as big as the last chunk.
+ * Memory used by chunks _never_ moves. A chunk could theoretically be
+ * freed when all "used" slots are released, but we don't do it at this
+ * point.
*/
-static void resize_arena(struct registry_arena *arena, size_t len)
+static
+void expand_arena(struct registry_arena *arena)
{
- void *new_arena;
+ struct registry_chunk *new_chunk, *last_chunk;
+ size_t old_chunk_len, new_chunk_len;
- if (!arena->p)
- new_arena = mmap(arena->p, len,
- PROT_READ | PROT_WRITE,
- MAP_ANONYMOUS | MAP_PRIVATE,
- -1, 0);
- else
- new_arena = mremap_wrapper(arena->p, arena->len,
- len, MREMAP_MAYMOVE);
- assert(new_arena != MAP_FAILED);
+ /* No chunk. */
+ if (cds_list_empty(&arena->chunk_list)) {
+ assert(ARENA_INIT_ALLOC >=
+ sizeof(struct registry_chunk)
+ + sizeof(struct rcu_reader));
+ new_chunk_len = ARENA_INIT_ALLOC;
+ new_chunk = mmap(NULL, new_chunk_len,
+ PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE,
+ -1, 0);
+ if (new_chunk == MAP_FAILED)
+ abort();
+ bzero(new_chunk, new_chunk_len);
+ new_chunk->data_len =
+ new_chunk_len - sizeof(struct registry_chunk);
+ cds_list_add_tail(&new_chunk->node, &arena->chunk_list);
+ return; /* We're done. */
+ }
- /*
- * re-used the same region ?
- */
- if (new_arena == arena->p)
- return;
+ /* Try expanding last chunk. */
+ last_chunk = cds_list_entry(arena->chunk_list.prev,
+ struct registry_chunk, node);
+ old_chunk_len =
+ last_chunk->data_len + sizeof(struct registry_chunk);
+ new_chunk_len = old_chunk_len << 1;
+
+ /* Don't allow memory mapping to move, just expand. */
+ new_chunk = mremap_wrapper(last_chunk, old_chunk_len,
+ new_chunk_len, 0);
+ if (new_chunk != MAP_FAILED) {
+ /* Should not have moved. */
+ assert(new_chunk == last_chunk);
+ bzero((char *) last_chunk + old_chunk_len,
+ new_chunk_len - old_chunk_len);
+ last_chunk->data_len =
+ new_chunk_len - sizeof(struct registry_chunk);
+ return; /* We're done. */
+ }
- bzero(new_arena + arena->len, len - arena->len);
- arena->p = new_arena;
+ /* Remap did not succeed, we need to add a new chunk. */
+ new_chunk = mmap(NULL, new_chunk_len,
+ PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE,
+ -1, 0);
+ if (new_chunk == MAP_FAILED)
+ abort();
+ bzero(new_chunk, new_chunk_len);
+ new_chunk->data_len =
+ new_chunk_len - sizeof(struct registry_chunk);
+ cds_list_add_tail(&new_chunk->node, &arena->chunk_list);
}
-/* Called with signals off and mutex locked */
-static void add_thread(void)
+static
+struct rcu_reader *arena_alloc(struct registry_arena *arena)
{
+ struct registry_chunk *chunk;
struct rcu_reader *rcu_reader_reg;
+ int expand_done = 0; /* Only allow to expand once per alloc */
+ size_t len = sizeof(struct rcu_reader);
- if (registry_arena.len
- < registry_arena.used + sizeof(struct rcu_reader))
- resize_arena(®istry_arena,
- caa_max(registry_arena.len << 1, ARENA_INIT_ALLOC));
- /*
- * Find a free spot.
- */
- for (rcu_reader_reg = registry_arena.p;
- (void *)rcu_reader_reg < registry_arena.p + registry_arena.len;
- rcu_reader_reg++) {
- if (!rcu_reader_reg->alloc)
- break;
+retry:
+ cds_list_for_each_entry(chunk, &arena->chunk_list, node) {
+ if (chunk->data_len - chunk->used < len)
+ continue;
+ /* Find spot */
+ for (rcu_reader_reg = (struct rcu_reader *) &chunk->data[0];
+ rcu_reader_reg < (struct rcu_reader *) &chunk->data[chunk->data_len];
+ rcu_reader_reg++) {
+ if (!rcu_reader_reg->alloc) {
+ rcu_reader_reg->alloc = 1;
+ chunk->used += len;
+ return rcu_reader_reg;
+ }
+ }
+ }
+
+ if (!expand_done) {
+ expand_arena(arena);
+ expand_done = 1;
+ goto retry;
}
- rcu_reader_reg->alloc = 1;
- registry_arena.used += sizeof(struct rcu_reader);
+
+ return NULL;
+}
+
+/* Called with signals off and mutex locked */
+static
+void add_thread(void)
+{
+ struct rcu_reader *rcu_reader_reg;
+ int ret;
+
+ rcu_reader_reg = arena_alloc(®istry_arena);
+ if (!rcu_reader_reg)
+ abort();
+ ret = pthread_setspecific(urcu_bp_key, rcu_reader_reg);
+ if (ret)
+ abort();
/* Add to registry */
rcu_reader_reg->tid = pthread_self();
assert(rcu_reader_reg->ctr == 0);
cds_list_add(&rcu_reader_reg->node, ®istry);
+ /*
+ * Reader threads are pointing to the reader registry. This is
+ * why its memory should never be relocated.
+ */
URCU_TLS(rcu_reader) = rcu_reader_reg;
}
-/* Called with signals off and mutex locked */
-static void rcu_gc_registry(void)
+/* Called with mutex locked */
+static
+void cleanup_thread(struct registry_chunk *chunk,
+ struct rcu_reader *rcu_reader_reg)
{
- struct rcu_reader *rcu_reader_reg;
- pthread_t tid;
- int ret;
+ rcu_reader_reg->ctr = 0;
+ cds_list_del(&rcu_reader_reg->node);
+ rcu_reader_reg->tid = 0;
+ rcu_reader_reg->alloc = 0;
+ chunk->used -= sizeof(struct rcu_reader);
+}
+
+static
+struct registry_chunk *find_chunk(struct rcu_reader *rcu_reader_reg)
+{
+ struct registry_chunk *chunk;
- for (rcu_reader_reg = registry_arena.p;
- (void *)rcu_reader_reg < registry_arena.p + registry_arena.len;
- rcu_reader_reg++) {
- if (!rcu_reader_reg->alloc)
+ cds_list_for_each_entry(chunk, ®istry_arena.chunk_list, node) {
+ if (rcu_reader_reg < (struct rcu_reader *) &chunk->data[0])
continue;
- tid = rcu_reader_reg->tid;
- ret = pthread_kill(tid, 0);
- assert(ret != EINVAL);
- if (ret == ESRCH) {
- cds_list_del(&rcu_reader_reg->node);
- rcu_reader_reg->ctr = 0;
- rcu_reader_reg->alloc = 0;
- registry_arena.used -= sizeof(struct rcu_reader);
- }
+ if (rcu_reader_reg >= (struct rcu_reader *) &chunk->data[chunk->data_len])
+ continue;
+ return chunk;
}
+ return NULL;
+}
+
+/* Called with signals off and mutex locked */
+static
+void remove_thread(void)
+{
+ struct rcu_reader *rcu_reader_reg;
+
+ rcu_reader_reg = URCU_TLS(rcu_reader);
+ cleanup_thread(find_chunk(rcu_reader_reg), rcu_reader_reg);
+ URCU_TLS(rcu_reader) = NULL;
}
/* Disable signals, take mutex, add to registry */
@@ -386,28 +470,95 @@
int ret;
ret = sigfillset(&newmask);
- assert(!ret);
+ if (ret)
+ abort();
ret = pthread_sigmask(SIG_BLOCK, &newmask, &oldmask);
- assert(!ret);
+ if (ret)
+ abort();
/*
* Check if a signal concurrently registered our thread since
- * the check in rcu_read_lock(). */
+ * the check in rcu_read_lock().
+ */
if (URCU_TLS(rcu_reader))
goto end;
+ /*
+ * Take care of early registration before urcu_bp constructor.
+ */
+ rcu_bp_init();
+
mutex_lock(&rcu_gp_lock);
add_thread();
mutex_unlock(&rcu_gp_lock);
end:
ret = pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
- assert(!ret);
+ if (ret)
+ abort();
+}
+
+/* Disable signals, take mutex, remove from registry */
+static
+void rcu_bp_unregister(void)
+{
+ sigset_t newmask, oldmask;
+ int ret;
+
+ ret = sigfillset(&newmask);
+ if (ret)
+ abort();
+ ret = pthread_sigmask(SIG_BLOCK, &newmask, &oldmask);
+ if (ret)
+ abort();
+
+ mutex_lock(&rcu_gp_lock);
+ remove_thread();
+ mutex_unlock(&rcu_gp_lock);
+ ret = pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
+ if (ret)
+ abort();
}
+/*
+ * Remove thread from the registry when it exits, and flag it as
+ * destroyed so garbage collection can take care of it.
+ */
+static
+void urcu_bp_thread_exit_notifier(void *rcu_key)
+{
+ assert(rcu_key == URCU_TLS(rcu_reader));
+ rcu_bp_unregister();
+}
+
+static
+void rcu_bp_init(void)
+{
+ mutex_lock(&init_lock);
+ if (!initialized) {
+ int ret;
+
+ ret = pthread_key_create(&urcu_bp_key,
+ urcu_bp_thread_exit_notifier);
+ if (ret)
+ abort();
+ initialized = 1;
+ }
+ mutex_unlock(&init_lock);
+}
+
+static
void rcu_bp_exit(void)
{
- if (registry_arena.p)
- munmap(registry_arena.p, registry_arena.len);
+ struct registry_chunk *chunk, *tmp;
+ int ret;
+
+ cds_list_for_each_entry_safe(chunk, tmp,
+ ®istry_arena.chunk_list, node) {
+ munmap(chunk, chunk->data_len + sizeof(struct registry_chunk));
+ }
+ ret = pthread_key_delete(urcu_bp_key);
+ if (ret)
+ abort();
}
/*
@@ -439,12 +590,35 @@
assert(!ret);
}
+/*
+ * Prune all entries from registry except our own thread. Fits the Linux
+ * fork behavior. Called with rcu_gp_lock held.
+ */
+static
+void urcu_bp_prune_registry(void)
+{
+ struct registry_chunk *chunk;
+ struct rcu_reader *rcu_reader_reg;
+
+ cds_list_for_each_entry(chunk, ®istry_arena.chunk_list, node) {
+ for (rcu_reader_reg = (struct rcu_reader *) &chunk->data[0];
+ rcu_reader_reg < (struct rcu_reader *) &chunk->data[chunk->data_len];
+ rcu_reader_reg++) {
+ if (!rcu_reader_reg->alloc)
+ continue;
+ if (rcu_reader_reg->tid == pthread_self())
+ continue;
+ cleanup_thread(chunk, rcu_reader_reg);
+ }
+ }
+}
+
void rcu_bp_after_fork_child(void)
{
sigset_t oldmask;
int ret;
- rcu_gc_registry();
+ urcu_bp_prune_registry();
oldmask = saved_fork_signal_mask;
mutex_unlock(&rcu_gp_lock);
ret = pthread_sigmask(SIG_SETMASK, &oldmask, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu-qsbr.c new/userspace-rcu-0.8.1/urcu-qsbr.c
--- old/userspace-rcu-0.8.0/urcu-qsbr.c 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu-qsbr.c 2013-11-12 17:06:57.000000000 +0100
@@ -64,11 +64,11 @@
* Written to only by each individual reader. Read by both the reader and the
* writers.
*/
-DEFINE_URCU_TLS(struct rcu_reader, rcu_reader);
+__DEFINE_URCU_TLS_GLOBAL(struct rcu_reader, rcu_reader);
#ifdef DEBUG_YIELD
unsigned int rcu_yield_active;
-DEFINE_URCU_TLS(unsigned int, rcu_rand_yield);
+__DEFINE_URCU_TLS_GLOBAL(unsigned int, rcu_rand_yield);
#endif
static CDS_LIST_HEAD(registry);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu-qsbr.h new/userspace-rcu-0.8.1/urcu-qsbr.h
--- old/userspace-rcu-0.8.0/urcu-qsbr.h 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu-qsbr.h 2013-11-11 23:10:16.000000000 +0100
@@ -91,7 +91,7 @@
* library debugging & tracing features we could come up with.
*/
-#if (!defined(BUILD_QSBR_LIB) && defined(RCU_DEBUG))
+#if (!defined(BUILD_QSBR_LIB) && !defined(RCU_DEBUG))
static inline void rcu_read_lock(void)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/userspace-rcu-0.8.0/urcu.c new/userspace-rcu-0.8.1/urcu.c
--- old/userspace-rcu-0.8.0/urcu.c 2013-08-30 20:25:20.000000000 +0200
+++ new/userspace-rcu-0.8.1/urcu.c 2013-11-12 17:06:57.000000000 +0100
@@ -107,11 +107,11 @@
* Written to only by each individual reader. Read by both the reader and the
* writers.
*/
-DEFINE_URCU_TLS(struct rcu_reader, rcu_reader);
+__DEFINE_URCU_TLS_GLOBAL(struct rcu_reader, rcu_reader);
#ifdef DEBUG_YIELD
unsigned int rcu_yield_active;
-DEFINE_URCU_TLS(unsigned int, rcu_rand_yield);
+__DEFINE_URCU_TLS_GLOBAL(unsigned int, rcu_rand_yield);
#endif
static CDS_LIST_HEAD(registry);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package supertuxkart for openSUSE:Factory checked in at 2013-11-29 12:05:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/supertuxkart (Old)
and /work/SRC/openSUSE:Factory/.supertuxkart.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "supertuxkart"
Changes:
--------
--- /work/SRC/openSUSE:Factory/supertuxkart/supertuxkart.changes 2013-02-21 10:46:15.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.supertuxkart.new/supertuxkart.changes 2013-11-29 12:05:33.000000000 +0100
@@ -1,0 +2,22 @@
+Tue Nov 26 18:14:30 UTC 2013 - dimstar(a)opensuse.org
+
+- Update to version 0.8.1:
+ + New track 'STK Enterprise'.
+ + Updated tracks 'Old Mine', 'Around the Lighthouse' and 'Zen
+ Garden'.
+ + New modes 'Soccer' and 'Egg Hunt'.
+ + New karts 'Xue' and 'Sara'.
+ + Updated 'Beastie' kart.
+ + Wiimote support.
+ + Added tutorial.
+ + Added new 'SuperTux' difficulty.
+ + New bubblegum shield defensive weapon.
+ + New combined speedometer and nitro meter.
+ + Added ability to filter add-ons.
+ + Updated nitro models.
+ + Added ability to save and resume Grand Prix.
+ + Improved skid marks and particle effects.
+- Drop supertuxkart-desktop.patch: fixed upstream.
+- Add bluez-devel BuildRequires: new dependency.
+
+-------------------------------------------------------------------
@@ -16 +38 @@
-- openal-devel is now called openal-soft-devel
+- openal-devel is now called openal-soft-devel.
Old:
----
supertuxkart-0.8-src.tar.bz2
supertuxkart-desktop.patch
New:
----
supertuxkart-0.8.1-src.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ supertuxkart.spec ++++++
--- /var/tmp/diff_new_pack.qNMR6o/_old 2013-11-29 12:05:38.000000000 +0100
+++ /var/tmp/diff_new_pack.qNMR6o/_new 2013-11-29 12:05:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package supertuxkart
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: supertuxkart
-Version: 0.8
+Version: 0.8.1
Release: 0
Summary: A 3D kart racing game
License: GPL-2.0+ and GPL-3.0+ and CC-BY-SA-3.0
@@ -26,8 +26,7 @@
Source: http://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/%{version}/…
# Geeko kart add-on (CC-BY 3.0)
Source1: http://stkaddons.net/dl/14e6ba25b17f0d.zip
-# PATCH-FIX-UPSTREAM supertuxkart-desktop.patch dimstar(a)opensuse.org -- Fix exec path in supertuxkart.desktop, taken from upstream svn.
-Patch0: supertuxkart-desktop.patch
+BuildRequires: bluez-devel
BuildRequires: cmake
BuildRequires: curl-devel
BuildRequires: fdupes
@@ -69,7 +68,6 @@
%prep
%setup -q -n SuperTuxKart-%{version}
-%patch0 -p2
%build
# We need an internal version of Irrlicht...
@@ -79,7 +77,7 @@
mkdir cmake_build
cd cmake_build
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} ..
- make %{?_smp_mflags} VERBOSE=1
+make %{?_smp_mflags}
%install
cd cmake_build
@@ -95,7 +93,7 @@
%doc AUTHORS COPYING README TODO ChangeLog
%{_bindir}/supertuxkart
%{_datadir}/applications/%{name}.desktop
-%{_datadir}/pixmaps/%{name}_*.xpm
+%{_datadir}/pixmaps/%{name}_*.png
%files data
%defattr(-,root,root)
++++++ supertuxkart-0.8-src.tar.bz2 -> supertuxkart-0.8.1-src.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/supertuxkart/supertuxkart-0.8-src.tar.bz2 /work/SRC/openSUSE:Factory/.supertuxkart.new/supertuxkart-0.8.1-src.tar.bz2 differ: char 11, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-veusz for openSUSE:Factory checked in at 2013-11-29 12:05:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-veusz (Old)
and /work/SRC/openSUSE:Factory/.python-veusz.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-veusz"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-veusz/python-veusz.changes 2013-11-20 11:28:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-veusz.new/python-veusz.changes 2013-11-29 12:05:08.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Nov 27 09:48:00 UTC 2013 - badshah400(a)gmail.com
+
+- Add python-veusz-fix-histogram-errorbars.patch to fix bnc#852537
+ (upstream bug gh#jeremysanders/veusz#49) which led to incorrect
+ bars for histograms; patch taken from upstream and applied to
+ fit version 1.19.
+
+-------------------------------------------------------------------
New:
----
python-veusz-fix-histogram-errorbars.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-veusz.spec ++++++
--- /var/tmp/diff_new_pack.krj9cq/_old 2013-11-29 12:05:08.000000000 +0100
+++ /var/tmp/diff_new_pack.krj9cq/_new 2013-11-29 12:05:08.000000000 +0100
@@ -30,6 +30,8 @@
Source1: %{pyname}.desktop
Source2: %{pyname}.xml
Source3: %{pyname}_256.png
+#PATCH-FIX-UPSTREAM python-veusz-fix-histogram-errorbars.patch bnc#852537 gh#jeremysanders/veusz#49 badshah400(a)gmail.com -- Fix errors in histogram error bars, patch came from upstream and suitably modified for version 1.19
+Patch0: python-veusz-fix-histogram-errorbars.patch
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: hicolor-icon-theme
@@ -61,6 +63,7 @@
%prep
%setup -q -n %{pyname}-%{version}
+%patch0 -p1
find -name \*~ | xargs rm -f
%build
++++++ python-veusz-fix-histogram-errorbars.patch ++++++
Subject: [PATCH] Fix github bug #49 - error bars wrong for histogrammed data
veusz/document/dataset_histo.py | 2 ++
diff --git a/veusz/document/dataset_histo.py b/veusz/document/dataset_histo.py
index 77e7558..b63c0b5 100644
--- a/veusz/document/dataset_histo.py
+++ b/veusz/document/dataset_histo.py
@@ -113,6 +113,7 @@ def getErrors(self, data, binlocs):
"""Compute error bars if requried."""
hist, edges = N.histogram(data, bins=binlocs)
+ hist = hist.astype(N.float64) # integers can break plots (github#49)
# calculate scaling values for error bars
if self.method == 'density':
@@ -144,6 +145,7 @@ def getBinVals(self):
normed = self.method == 'density'
binlocs = self.binLocations()
hist, edges = N.histogram(data, bins=binlocs, normed=normed)
+ hist = hist.astype(N.float64) # integers can break plots (github#49)
if self.method == 'fractions':
hist = hist * (1./data.size)
--
1.8.4
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0