diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-03-17 03:42:22 +0000 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-03-17 03:42:22 +0000 |
commit | d8fdc79f0eff1e0a0c630ec38a5792640c0f8311 (patch) | |
tree | efb83c2c44bb7e9057d3d83cbc5e664c98596e4d /core | |
parent | dac65ee415245f1e492217dd3a3e1ea6d04a29ff (diff) |
Mon Mar 17 03:39:34 UTC 2014
Diffstat (limited to 'core')
23 files changed, 220 insertions, 879 deletions
diff --git a/core/coreutils/PKGBUILD b/core/coreutils/PKGBUILD index 018624ada..a367cabdc 100644 --- a/core/coreutils/PKGBUILD +++ b/core/coreutils/PKGBUILD @@ -1,34 +1,43 @@ -# $Id: PKGBUILD 201684 2013-12-18 05:22:31Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> +# $Id: PKGBUILD 207977 2014-03-16 10:09:10Z bpiotrowski $ +# Maintainer: Sébastien "Seblu" Luttringer +# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=coreutils pkgver=8.22 -pkgrel=2 -pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" +pkgrel=3 +pkgdesc='The basic file, shell and text manipulation utilities of the GNU operating system' arch=('i686' 'x86_64') license=('GPL3') -url="http://www.gnu.org/software/coreutils" +url='http://www.gnu.org/software/coreutils' groups=('base') depends=('glibc' 'pam' 'acl' 'gmp' 'libcap' 'openssl') -install=${pkgname}.install -source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}) +install=$pkgname.install +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig} + coreutils-8.22-shuf-segfault.patch) md5sums=('8fb0ae2267aa6e728958adc38f8163a2' - 'SKIP') + 'SKIP' + '94f7e6f373f37beb236caabed8fcdb52') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../coreutils-8.22-shuf-segfault.patch +} build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd $pkgname-$pkgver ./configure --prefix=/usr --libexecdir=/usr/lib --with-openssl \ - --enable-no-install-program=groups,hostname,kill,uptime + --enable-no-install-program=groups,hostname,kill,uptime make } check() { - cd ${srcdir}/${pkgname}-${pkgver} + cd $pkgname-$pkgver make RUN_EXPENSIVE_TESTS=yes check } package() { - cd ${srcdir}/${pkgname}-${pkgver} - make DESTDIR=${pkgdir} install + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install } diff --git a/core/coreutils/coreutils-8.22-shuf-segfault.patch b/core/coreutils/coreutils-8.22-shuf-segfault.patch new file mode 100644 index 000000000..e22b3c7b2 --- /dev/null +++ b/core/coreutils/coreutils-8.22-shuf-segfault.patch @@ -0,0 +1,74 @@ +From 24eb395471176e24762b08bfcef7562911537504 Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Sun, 23 Feb 2014 15:34:48 -0800 +Subject: [PATCH] shuf: with -r, don't dump core if the input is empty + +Problem reported by valiant xiao in <http://bugs.gnu.org/16855>. +* NEWS: Document this. +* src/shuf.c (main): With -r, report an error if the input is empty. +* tests/misc/shuf.sh: Test for the bug. +--- + NEWS | 3 +++ + src/shuf.c | 15 +++++++++++---- + tests/misc/shuf.sh | 4 ++++ + 3 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/NEWS b/NEWS +index e72942b..2df246d 100644 +--- a/NEWS ++++ b/NEWS +@@ -22,6 +22,9 @@ GNU coreutils NEWS -*- outline -*- + it would display an error, requiring --no-dereference to avoid the issue. + [bug introduced in coreutils-5.3.0] + ++ shuf -r no longer dumps core if the input is empty. ++ [bug introduced in coreutils-8.22] ++ + ** New features + + od accepts a new option: --endian=TYPE to handle inputs with different byte +diff --git a/src/shuf.c b/src/shuf.c +index d4641fe..2a91072 100644 +--- a/src/shuf.c ++++ b/src/shuf.c +@@ -576,11 +576,18 @@ main (int argc, char **argv) + /* Generate output according to requested method */ + if (repeat) + { +- if (input_range) +- i = write_random_numbers (randint_source, head_lines, +- lo_input, hi_input, eolbyte); ++ if (head_lines == 0) ++ i = 0; + else +- i = write_random_lines (randint_source, head_lines, line, n_lines); ++ { ++ if (n_lines == 0) ++ error (EXIT_FAILURE, 0, _("No lines to repeat")); ++ if (input_range) ++ i = write_random_numbers (randint_source, head_lines, ++ lo_input, hi_input, eolbyte); ++ else ++ i = write_random_lines (randint_source, head_lines, line, n_lines); ++ } + } + else + { +diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh +index d3ea1f2..d7251d1 100755 +--- a/tests/misc/shuf.sh ++++ b/tests/misc/shuf.sh +@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a permutation" 1>&2; } + t=$(shuf -e a b c d e | sort | fmt) + test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; } + ++# coreutils-8.22 dumps core. ++shuf -er ++test $? -eq 1 || fail=1 ++ + # Before coreutils-6.3, this would infloop. + # "seq 1860" produces 8193 (8K + 1) bytes of output. + seq 1860 | shuf > /dev/null || fail=1 +-- +1.8.5.3 + diff --git a/core/e2fsprogs/PKGBUILD b/core/e2fsprogs/PKGBUILD index 561e3e1c4..fb5cdf31d 100644 --- a/core/e2fsprogs/PKGBUILD +++ b/core/e2fsprogs/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 204953 2014-02-01 17:23:07Z ronald $ +# $Id: PKGBUILD 207985 2014-03-16 14:21:28Z thomas $ # Maintainer: Ronald van Haren <ronald.archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=e2fsprogs pkgver=1.42.9 -pkgrel=1 +pkgrel=2 pkgdesc="Ext2/3/4 filesystem utilities" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'MIT') url="http://e2fsprogs.sourceforge.net" groups=('base') -depends=('sh' 'util-linux') -makedepends=('bc') +depends=('sh' 'libutil-linux') +makedepends=('bc' 'util-linux') source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz" 'MIT-LICENSE') backup=('etc/mke2fs.conf') @@ -34,6 +34,8 @@ build() { } package() { + unset MAKEFLAGS + cd "${srcdir}/${pkgname}-${pkgver}" make DESTDIR="${pkgdir}" install install-libs diff --git a/core/readline/PKGBUILD b/core/readline/PKGBUILD index 052244dac..3057ba59b 100644 --- a/core/readline/PKGBUILD +++ b/core/readline/PKGBUILD @@ -1,41 +1,57 @@ -# $Id: PKGBUILD 206524 2014-03-01 06:07:23Z allan $ -# Maintainer: Allan McRae <allan@archlinux.org> +# $Id: PKGBUILD 207976 2014-03-16 10:09:09Z bpiotrowski $ +# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> pkgname=readline _basever=6.3 _patchlevel=000 #prepare for some patches pkgver=$_basever #.$_patchlevel -pkgrel=1 -pkgdesc="GNU readline library" +pkgrel=3 +pkgdesc='GNU readline library' arch=('i686' 'x86_64') -url="http://tiswww.case.edu/php/chet/readline/rltop.html" +url='http://tiswww.case.edu/php/chet/readline/rltop.html' license=('GPL') depends=('glibc' 'ncurses') backup=('etc/inputrc') options=('!emptydirs') install=readline.install source=(http://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz{,.sig} - inputrc) -if [ $_patchlevel -gt 00 ]; then + inputrc + readline-6.3-vi-last.patch + readline-6.3-dispatch-multikey.patch) + +if [[ $_patchlevel -gt 0 ]]; then for (( p=1; p<=$((10#${_patchlevel})); p++ )); do source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p){,.sig}) done fi + md5sums=('33c8fb279e981274f485fd91da77e94a' 'SKIP' - '58d54966c1191db45973cb3191ac621a') - + '58d54966c1191db45973cb3191ac621a' + 'fcfe0a50c69f56f66ad04127a927862e' + 'ee4e0df0dbf7e80783b7aa198c67fb45') -build() { - cd ${srcdir}/${pkgname}-$_basever +prepare() { + cd $pkgname-$pkgver for (( p=1; p<=$((10#${_patchlevel})); p++ )); do msg "applying patch readline${_basever//./}-$(printf "%03d" $p)" - patch -p0 -i $srcdir/readline${_basever//./}-$(printf "%03d" $p) + patch -p0 -i ../readline${_basever//./}-$(printf "%03d" $p) done - # Remove RPATH from shared objects (FS#14366) + # patch from upstream mailing list to fix vi mode + patch -p2 -i ../readline-6.3-vi-last.patch + + # patch from upstream mailing list to fix the crash after pressing Delete twice + patch -p2 -i ../readline-6.3-dispatch-multikey.patch + + # remove RPATH from shared objects (FS#14366) sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf +} + +build() { + cd $pkgname-$pkgver # build with -fPIC for x86_64 (FS#15634) [[ $CARCH == "x86_64" ]] && CFLAGS="$CFLAGS -fPIC" @@ -45,8 +61,6 @@ build() { } package() { - cd ${srcdir}/${pkgname}-$_basever - make DESTDIR=${pkgdir} install - - install -Dm644 ${srcdir}/inputrc ${pkgdir}/etc/inputrc + make -C $pkgname-$pkgver DESTDIR="$pkgdir" install + install -Dm644 inputrc "$pkgdir"/etc/inputrc } diff --git a/core/readline/readline-6.3-dispatch-multikey.patch b/core/readline/readline-6.3-dispatch-multikey.patch new file mode 100644 index 000000000..2624083a7 --- /dev/null +++ b/core/readline/readline-6.3-dispatch-multikey.patch @@ -0,0 +1,16 @@ +*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 +*************** +*** 745,749 **** + + RL_CHECK_SIGNALS (); +! if (r == 0) /* success! */ + { + _rl_keyseq_chain_dispose (); +--- 745,750 ---- + + RL_CHECK_SIGNALS (); +! /* We only treat values < 0 specially to simulate recursion. */ +! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ + { + _rl_keyseq_chain_dispose (); diff --git a/core/readline/readline-6.3-vi-last.patch b/core/readline/readline-6.3-vi-last.patch new file mode 100644 index 000000000..59153a4db --- /dev/null +++ b/core/readline/readline-6.3-vi-last.patch @@ -0,0 +1,15 @@ +*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 +--- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 +*************** +*** 965,969 **** + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! rl_key_sequence_length == 1 && /* XXX */ + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); +--- 965,969 ---- + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && + key != ANYOTHERKEY && +! _rl_dispatching_keymap == vi_movement_keymap && + _rl_vi_textmod_command (key)) + _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); diff --git a/core/systemd/0001-login-fix-pos-array-allocation.patch b/core/systemd/0001-login-fix-pos-array-allocation.patch deleted file mode 100644 index 531f7982d..000000000 --- a/core/systemd/0001-login-fix-pos-array-allocation.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a1937e679f76758635d295287398abe526de2522 Mon Sep 17 00:00:00 2001 -From: David Herrmann <dh.herrmann@gmail.com> -Date: Tue, 25 Feb 2014 12:20:25 +0100 -Subject: [PATCH] login: fix pos-array allocation - -GREEDY_REALLOC takes a pointer to the real size, not the array-width as -argument. Therefore, our array is currently way to small to keep the seat -positions. - -Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store -the array-width instead of array-size. ---- - src/login/logind-seat.c | 2 +- - src/shared/util.h | 9 +++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c -index 631be5f..36ec7ed 100644 ---- a/src/login/logind-seat.c -+++ b/src/login/logind-seat.c -@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { - if (seat_has_vts(s)) - pos = session->vtnr; - -- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) -+ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) - return; - - seat_evict_position(s, session); -diff --git a/src/shared/util.h b/src/shared/util.h -index 9913fce..78b1444 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); - #define GREEDY_REALLOC0(array, allocated, need) \ - greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) - -+#define GREEDY_REALLOC0_T(array, count, need) \ -+ ({ \ -+ size_t _size = (count) * sizeof((array)[0]); \ -+ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ -+ if (_ptr) \ -+ (count) = _size / sizeof((array)[0]); \ -+ _ptr; \ -+ }) -+ - static inline void _reset_errno_(int *saved_errno) { - errno = *saved_errno; - } --- -1.9.0 - diff --git a/core/systemd/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/core/systemd/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch deleted file mode 100644 index f499ed2c0..000000000 --- a/core/systemd/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc Mon Sep 17 00:00:00 2001 -From: David Herrmann <dh.herrmann@gmail.com> -Date: Tue, 25 Feb 2014 13:08:24 +0100 -Subject: [PATCH] login: set pos-slot to fallback on pos-eviction - -If we evict a session position, we open the position slot for future -sessions. However, there might already be another session on the same -position if both were started on the same VT. This is currently done if -gdm spawns the session on its own Xserver. - -Hence, look for such a session on pos-eviction and claim the new slot -immediately. ---- - src/login/logind-seat.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c -index 36ec7ed..96cf08e 100644 ---- a/src/login/logind-seat.c -+++ b/src/login/logind-seat.c -@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { - } - - void seat_evict_position(Seat *s, Session *session) { -+ Session *iter; - unsigned int pos = session->pos; - - session->pos = 0; -@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { - if (!pos) - return; - -- if (pos < s->position_count && s->positions[pos] == session) -+ if (pos < s->position_count && s->positions[pos] == session) { - s->positions[pos] = NULL; -+ -+ /* There might be another session claiming the same -+ * position (eg., during gdm->session transition), so lets look -+ * for it and set it on the free slot. */ -+ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { -+ if (iter->pos == pos) { -+ s->positions[pos] = iter; -+ break; -+ } -+ } -+ } - } - - void seat_claim_position(Seat *s, Session *session, unsigned int pos) { --- -1.9.0 - diff --git a/core/systemd/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/core/systemd/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch deleted file mode 100644 index 0745eb323..000000000 --- a/core/systemd/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9c413373d2112055a0142ef522bf95af9b491b4a Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" <jstpierre@mecheye.net> -Date: Fri, 21 Feb 2014 18:23:17 -0500 -Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo - ---- - src/login/org.freedesktop.login1.conf | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/login/org.freedesktop.login1.conf b/src/login/org.freedesktop.login1.conf -index d677f61..1318328 100644 ---- a/src/login/org.freedesktop.login1.conf -+++ b/src/login/org.freedesktop.login1.conf -@@ -141,6 +141,18 @@ - send_member="ActivateSession"/> - - <allow send_destination="org.freedesktop.login1" -+ send_interface="org.freedesktop.login1.Seat" -+ send_member="SwitchTo"/> -+ -+ <allow send_destination="org.freedesktop.login1" -+ send_interface="org.freedesktop.login1.Seat" -+ send_member="SwitchToPrevious"/> -+ -+ <allow send_destination="org.freedesktop.login1" -+ send_interface="org.freedesktop.login1.Seat" -+ send_member="SwitchToNext"/> -+ -+ <allow send_destination="org.freedesktop.login1" - send_interface="org.freedesktop.login1.Session" - send_member="Activate"/> - --- -1.9.0 - diff --git a/core/systemd/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/core/systemd/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch deleted file mode 100644 index 318f3ec27..000000000 --- a/core/systemd/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +++ /dev/null @@ -1,22 +0,0 @@ -From b3e4387351c835766f96796a20d94971afea7d3b Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz <tomek@pipebreaker.pl> -Date: Tue, 25 Feb 2014 12:43:55 +0100 -Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac - ---- - hwdb/20-net-ifname.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hwdb/20-net-ifname.hwdb b/hwdb/20-net-ifname.hwdb -index 29d2633..2408dc1 100644 ---- a/hwdb/20-net-ifname.hwdb -+++ b/hwdb/20-net-ifname.hwdb -@@ -2,4 +2,4 @@ - - # Dell iDRAC Virtual USB NIC - usb:v413CpA102* -- ID_NET_NAME_FROM_DATABASE=irdac -+ ID_NET_NAME_FROM_DATABASE=idrac --- -1.9.0 - diff --git a/core/systemd/0007-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/core/systemd/0007-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch deleted file mode 100644 index 420d24e58..000000000 --- a/core/systemd/0007-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +++ /dev/null @@ -1,70 +0,0 @@ -From ff5f34d08c191c326c41a083745522383ac86cae Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Wed, 26 Feb 2014 04:27:50 +0100 -Subject: [PATCH] mount: don't send out PropertiesChanged message if actually - nothing got changed - ---- - src/core/mount.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index b35e507..98812c9 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1390,7 +1390,7 @@ static int mount_add_one( - _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; - bool load_extras = false; - MountParameters *p; -- bool delete; -+ bool delete, changed = false; - Unit *u; - int r; - -@@ -1458,6 +1458,7 @@ static int mount_add_one( - } - - unit_add_to_load_queue(u); -+ changed = true; - } else { - delete = false; - -@@ -1476,6 +1477,7 @@ static int mount_add_one( - /* Load in the extras later on, after we - * finished initialization of the unit */ - load_extras = true; -+ changed = true; - } - } - -@@ -1488,10 +1490,16 @@ static int mount_add_one( - } - - p = &MOUNT(u)->parameters_proc_self_mountinfo; -+ -+ changed = changed || -+ !streq_ptr(p->options, options) || -+ !streq_ptr(p->what, what) || -+ !streq_ptr(p->fstype, fstype); -+ - if (set_flags) { - MOUNT(u)->is_mounted = true; - MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; -- MOUNT(u)->just_changed = !streq_ptr(p->options, o); -+ MOUNT(u)->just_changed = changed; - } - - MOUNT(u)->from_proc_self_mountinfo = true; -@@ -1514,7 +1522,8 @@ static int mount_add_one( - goto fail; - } - -- unit_add_to_dbus_queue(u); -+ if (changed) -+ unit_add_to_dbus_queue(u); - - return 0; - --- -1.9.0 - diff --git a/core/systemd/0008-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/core/systemd/0008-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch deleted file mode 100644 index f0f6ffe09..000000000 --- a/core/systemd/0008-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +++ /dev/null @@ -1,51 +0,0 @@ -From aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Wed, 26 Feb 2014 04:28:37 +0100 -Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that - are stopped - ---- - src/core/mount.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 98812c9..7a92e1c 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1679,20 +1679,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - Mount *mount = MOUNT(u); - - if (!mount->is_mounted) { -- /* This has just been unmounted. */ - - mount->from_proc_self_mountinfo = false; - - switch (mount->state) { - - case MOUNT_MOUNTED: -+ /* This has just been unmounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_dead(mount, MOUNT_SUCCESS); - break; - - default: -- mount_set_state(mount, mount->state); - break; -- - } - - } else if (mount->just_mounted || mount->just_changed) { -@@ -1703,6 +1703,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - case MOUNT_DEAD: - case MOUNT_FAILED: -+ /* This has just been mounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_mounted(mount, MOUNT_SUCCESS); - break; - --- -1.9.0 - diff --git a/core/systemd/0009-logs-show-fix-corrupt-output-with-empty-messages.patch b/core/systemd/0009-logs-show-fix-corrupt-output-with-empty-messages.patch deleted file mode 100644 index d64fe89cc..000000000 --- a/core/systemd/0009-logs-show-fix-corrupt-output-with-empty-messages.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 47d80904a1f72d559962cc5ad32fffd46672a34a Mon Sep 17 00:00:00 2001 -From: Uoti Urpala <uoti.urpala@pp1.inet.fi> -Date: Thu, 20 Feb 2014 03:00:09 +0200 -Subject: [PATCH] logs-show: fix corrupt output with empty messages - -If a message had zero length, journalctl would print no newline, and -two output lines would be concatenated. Fix. The problem was -introduced in commit 31f7bf199452 ("logs-show: print multiline -messages"). Affected short and verbose output modes. - -Before fix: - -Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: <info> (enp4s2): DHCPv4 state changed nbi -> preinit - -after: - -Feb 09 21:16:17 glyph dhclient[1323]: -Feb 09 21:16:17 glyph NetworkManager[788]: <info> (enp4s2): DHCPv4 state changed nbi -> preinit ---- - src/shared/logs-show.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c -index 61c3652..12d4a1c 100644 ---- a/src/shared/logs-show.c -+++ b/src/shared/logs-show.c -@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output - } - } - -+ /* A special case: make sure that we print a newline when -+ the message is empty. */ -+ if (message_len == 0) -+ fputs("\n", f); -+ - for (pos = message; - pos < message + message_len; - pos = end + 1, line++) { --- -1.9.0 - diff --git a/core/systemd/0010-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/core/systemd/0010-journalctl-refuse-extra-arguments-with-verify-and-si.patch deleted file mode 100644 index 259e1e3d4..000000000 --- a/core/systemd/0010-journalctl-refuse-extra-arguments-with-verify-and-si.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0b6b7c2004317da48e5bbd3078c5662d8f0061b6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Wed, 26 Feb 2014 23:01:43 -0500 -Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar - -Positional arguments only make sense with the default action. -For other actions, complain instead of ignoring them silently. ---- - src/journal/journalctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index a328ba1..0619b25 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { - return -EINVAL; - } - -+ if (arg_action != ACTION_SHOW && optind < argc) { -+ log_error("Extraneous arguments starting with '%s'", argv[optind]); -+ return -EINVAL; -+ } -+ - return 1; - } - --- -1.9.0 - diff --git a/core/systemd/0011-cdrom_id-use-the-old-MMC-fallback.patch b/core/systemd/0011-cdrom_id-use-the-old-MMC-fallback.patch deleted file mode 100644 index 793e63835..000000000 --- a/core/systemd/0011-cdrom_id-use-the-old-MMC-fallback.patch +++ /dev/null @@ -1,54 +0,0 @@ -From a14f14976094650e17d39f3a7d15a1c68c93c333 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn <lnykryn@redhat.com> -Date: Thu, 27 Feb 2014 11:06:37 +0100 -Subject: [PATCH] cdrom_id: use the old MMC fallback - -https://bugzilla.redhat.com/show_bug.cgi?id=1038015 -The problem seems to be that the your virtual DVD is emulating a really -old DVD device, and doing it kind of strangely. - -> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 -> probing: '/dev/sr0' -> INQUIRY: [IMM ][Virtual CD/DVD ][0316] -> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h - -So your virtual drive rejects the GET CONFIGURATION command as illegal. - -Other pre-MMC2 drives that don't accept this command usually return the -error -SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id -tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set -and all the /dev/disk/by-label (etc) links get set up. - -The virtual drive returns the error SK=5h,ASC=24h (invalid field in -Command Descriptor Block), which cdrom_id doesn't handle, so it gives up -and the links never get made. - -The ideal solution would be to make the IMM to emulate a device that's -less than 15 years old, but I'm not going to hold my breath waiting for -that. - -So probably cdrom_id should also use the old MMC fallback when the error -is SK=5h,ASC=24h, and then all of this would work as expected. - -Suggested-by:Luca Miccini <lmiccini@redhat.com> ---- - src/udev/cdrom_id/cdrom_id.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c -index 93467c2..33b2bc3 100644 ---- a/src/udev/cdrom_id/cdrom_id.c -+++ b/src/udev/cdrom_id/cdrom_id.c -@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) - if ((err != 0)) { - info_scsi_cmd_err(udev, "GET CONFIGURATION", err); - /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ -- if (SK(err) == 0x5 && ASC(err) == 0x20) { -+ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { - log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); - log_debug("trying to work around the problem"); - ret = cd_profiles_old_mmc(udev, fd); --- -1.9.0 - diff --git a/core/systemd/0012-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/core/systemd/0012-nspawn-fix-detection-of-missing-proc-self-loginuid.patch deleted file mode 100644 index beebbb631..000000000 --- a/core/systemd/0012-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 13e8ceb84e56907d73b6b07418deb37faaf0e66d Mon Sep 17 00:00:00 2001 -From: Tero Roponen <tero.roponen@gmail.com> -Date: Tue, 25 Feb 2014 17:19:35 +0200 -Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid - -Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: - Failed to read /proc/self/loginuid: No such file or directory - - Container Fedora failed with error code 1. - -This patch fixes the problem. ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 1fe641b..92b6728 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -1349,7 +1349,7 @@ static int reset_audit_loginuid(void) { - return 0; - - r = read_one_line_file("/proc/self/loginuid", &p); -- if (r == -EEXIST) -+ if (r == -ENOENT) - return 0; - if (r < 0) { - log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); --- -1.9.0 - diff --git a/core/systemd/0013-Fix-systemd-stdio-bridge-symlink.patch b/core/systemd/0013-Fix-systemd-stdio-bridge-symlink.patch deleted file mode 100644 index efad81a2a..000000000 --- a/core/systemd/0013-Fix-systemd-stdio-bridge-symlink.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 8100c1a8f58b2fb5d97e156420a7e16562e93bc4 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Sun, 2 Mar 2014 23:37:39 -0500 -Subject: [PATCH] Fix systemd-stdio-bridge symlink - -The symlink is created in bindir (/usr/bin), and points to a binary -which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A -relative symlink does not work here. ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 38445fb..e7134a2 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1978,7 +1978,7 @@ systemd_bus_proxyd_LDADD = \ - - bus-proxyd-install-hook: - $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) -- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge -+ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge - - bus-proxyd-uninstall-hook: - rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge --- -1.9.0 - diff --git a/core/systemd/0014-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/core/systemd/0014-execute-free-directory-path-if-we-fail-to-remove-it-.patch deleted file mode 100644 index 4a48353a4..000000000 --- a/core/systemd/0014-execute-free-directory-path-if-we-fail-to-remove-it-.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 98b47d54ce946ad3524f84eb38d2413498a333dc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Mon, 3 Mar 2014 17:11:39 +0100 -Subject: [PATCH] execute: free directory path if we fail to remove it because - we cannot allocate a thread - ---- - src/core/execute.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git a/src/core/execute.c b/src/core/execute.c -index 9de6e87..3312885 100644 ---- a/src/core/execute.c -+++ b/src/core/execute.c -@@ -2713,6 +2713,8 @@ static void *remove_tmpdir_thread(void *p) { - } - - void exec_runtime_destroy(ExecRuntime *rt) { -+ int r; -+ - if (!rt) - return; - -@@ -2722,13 +2724,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { - - if (rt->tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); -+ free(rt->tmp_dir); -+ } -+ - rt->tmp_dir = NULL; - } - - if (rt->var_tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); -+ free(rt->var_tmp_dir); -+ } -+ - rt->var_tmp_dir = NULL; - } - --- -1.9.0 - diff --git a/core/systemd/0015-journal-assume-that-next-entry-is-after-previous-ent.patch b/core/systemd/0015-journal-assume-that-next-entry-is-after-previous-ent.patch deleted file mode 100644 index 0c3b014c9..000000000 --- a/core/systemd/0015-journal-assume-that-next-entry-is-after-previous-ent.patch +++ /dev/null @@ -1,70 +0,0 @@ -From fb099c8d2af6620db2709e826a258089d10cdfe8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Thu, 27 Feb 2014 00:07:29 -0500 -Subject: [PATCH] journal: assume that next entry is after previous entry - -With a corrupted file, we can get in a situation where two entries -in the entry array point to the same object. Then journal_file_next_entry -will find the first one using generic_arrray_bisect, and try to move to -the second one, but since the address is the same, generic_array_get will -return the first one. journal_file_next_entry ends up in an infinite loop. - -https://bugzilla.redhat.com/show_bug.cgi?id=1047039 ---- - src/journal/journal-file.c | 26 ++++++++++++++++++++------ - 1 file changed, 20 insertions(+), 6 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 5876733..0e1fc7f 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - } - - typedef struct ChainCacheItem { -- uint64_t first; /* the array at the begin of the chain */ -+ uint64_t first; /* the array at the beginning of the chain */ - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -@@ -1945,7 +1945,7 @@ int journal_file_next_entry( - direction_t direction, - Object **ret, uint64_t *offset) { - -- uint64_t i, n; -+ uint64_t i, n, ofs; - int r; - - assert(f); -@@ -1986,10 +1986,24 @@ int journal_file_next_entry( - } - - /* And jump to it */ -- return generic_array_get(f, -- le64toh(f->header->entry_array_offset), -- i, -- ret, offset); -+ r = generic_array_get(f, -+ le64toh(f->header->entry_array_offset), -+ i, -+ ret, &ofs); -+ if (r <= 0) -+ return r; -+ -+ if (p > 0 && -+ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { -+ log_debug("%s: entry array corrupted at entry %"PRIu64, -+ f->path, i); -+ return -EBADMSG; -+ } -+ -+ if (offset) -+ *offset = ofs; -+ -+ return 1; - } - - int journal_file_skip_entry( --- -1.9.0 - diff --git a/core/systemd/0016-journal-forget-file-after-encountering-an-error.patch b/core/systemd/0016-journal-forget-file-after-encountering-an-error.patch deleted file mode 100644 index e82f052e9..000000000 --- a/core/systemd/0016-journal-forget-file-after-encountering-an-error.patch +++ /dev/null @@ -1,74 +0,0 @@ -From a9a245c128af6c0418085062c60251bc51fa4a94 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> -Date: Thu, 27 Feb 2014 00:11:54 -0500 -Subject: [PATCH] journal: forget file after encountering an error - -If we encounter an inconsistency in a file, let's just -ignore it. Otherwise, after previous patch, we would try, -and fail, to use this file in every invocation of sd_journal_next -or sd_journal_previous that happens afterwards. ---- - src/journal/sd-journal.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) - -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index ef455e9..b54bc21 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -51,6 +51,8 @@ - - #define DEFAULT_DATA_THRESHOLD (64*1024) - -+static void remove_file_real(sd_journal *j, JournalFile *f); -+ - static bool journal_pid_changed(sd_journal *j) { - assert(j); - -@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { - r = next_beyond_location(j, f, direction, &o, &p); - if (r < 0) { - log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); -+ remove_file_real(j, f); - continue; - } else if (r == 0) - continue; -@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { - } - - static int remove_file(sd_journal *j, const char *prefix, const char *filename) { -- char *path; -+ _cleanup_free_ char *path; - JournalFile *f; - - assert(j); -@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - return -ENOMEM; - - f = hashmap_get(j->files, path); -- free(path); - if (!f) - return 0; - -+ remove_file_real(j, f); -+ return 0; -+} -+ -+static void remove_file_real(sd_journal *j, JournalFile *f) { -+ assert(j); -+ assert(f); -+ - hashmap_remove(j->files, f->path); - - log_debug("File %s removed.", f->path); -@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - journal_file_close(f); - - j->current_invalidate_counter ++; -- -- return 0; - } - - static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { --- -1.9.0 - diff --git a/core/systemd/0017-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/core/systemd/0017-core-correctly-unregister-PIDs-from-PID-hashtables.patch deleted file mode 100644 index 209a3fb75..000000000 --- a/core/systemd/0017-core-correctly-unregister-PIDs-from-PID-hashtables.patch +++ /dev/null @@ -1,102 +0,0 @@ -From bd44e61b0480712ec5585ff7b0295362a5f9dd36 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Thu, 6 Mar 2014 02:19:42 +0100 -Subject: [PATCH] core: correctly unregister PIDs from PID hashtables - ---- - src/core/unit.c | 42 ++++++++++++++++++------------------------ - 1 file changed, 18 insertions(+), 24 deletions(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 2437ee3..85250ca 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -1704,11 +1704,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { - /* Watch a specific PID. We only support one or two units - * watching each PID for now, not more. */ - -- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); -+ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); -+ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -@@ -1737,7 +1737,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { - set_remove(u->pids, LONG_TO_PTR(pid)); - } - --static int watch_pids_in_path(Unit *u, const char *path) { -+void unit_unwatch_all_pids(Unit *u) { -+ assert(u); -+ -+ while (!set_isempty(u->pids)) -+ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); -+ -+ set_free(u->pids); -+ u->pids = NULL; -+} -+ -+static int unit_watch_pids_in_path(Unit *u, const char *path) { - _cleanup_closedir_ DIR *d = NULL; - _cleanup_fclose_ FILE *f = NULL; - int ret = 0, r; -@@ -1775,7 +1785,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { - if (!p) - return -ENOMEM; - -- r = watch_pids_in_path(u, p); -+ r = unit_watch_pids_in_path(u, p); - if (r < 0 && ret >= 0) - ret = r; - } -@@ -1788,31 +1798,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { - return ret; - } - -- - int unit_watch_all_pids(Unit *u) { - assert(u); - -- if (!u->cgroup_path) -- return -ENOENT; -- - /* Adds all PIDs from our cgroup to the set of PIDs we watch */ - -- return watch_pids_in_path(u, u->cgroup_path); --} -- --void unit_unwatch_all_pids(Unit *u) { -- Iterator i; -- void *e; -- -- assert(u); -- -- SET_FOREACH(e, u->pids, i) { -- hashmap_remove_value(u->manager->watch_pids1, e, u); -- hashmap_remove_value(u->manager->watch_pids2, e, u); -- } -+ if (!u->cgroup_path) -+ return -ENOENT; - -- set_free(u->pids); -- u->pids = NULL; -+ return unit_watch_pids_in_path(u, u->cgroup_path); - } - - void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { -@@ -1830,7 +1824,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { - continue; - - if (!pid_is_unwaited(pid)) -- set_remove(u->pids, e); -+ unit_unwatch_pid(u, pid); - } - } - --- -1.9.0 - diff --git a/core/systemd/PKGBUILD b/core/systemd/PKGBUILD index 0f913a380..2ddee6a56 100644 --- a/core/systemd/PKGBUILD +++ b/core/systemd/PKGBUILD @@ -2,76 +2,24 @@ # Maintainer: Tom Gundersen <teg@jklm.no> pkgbase=systemd -pkgname=('systemd' 'systemd-sysvcompat') -pkgver=210 -pkgrel=3 +pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat') +pkgver=211 +pkgrel=1 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gobject-introspection' 'gperf' 'gtk-doc' 'intltool' 'kmod' 'libcap' 'libgcrypt' 'libmicrohttpd' 'libxslt' - 'linux-api-headers' 'pam' 'python' 'python-lxml' 'quota-tools' 'xz') + 'libutil-linux' 'linux-api-headers' 'pam' 'python' 'python-lxml' 'quota-tools' 'xz') options=('strip' 'debug') source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" - '0001-login-fix-pos-array-allocation.patch' - '0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch' - '0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch' - '0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch' - '0007-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch' - '0008-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch' - '0009-logs-show-fix-corrupt-output-with-empty-messages.patch' - '0010-journalctl-refuse-extra-arguments-with-verify-and-si.patch' - '0011-cdrom_id-use-the-old-MMC-fallback.patch' - '0012-nspawn-fix-detection-of-missing-proc-self-loginuid.patch' - '0013-Fix-systemd-stdio-bridge-symlink.patch' - '0014-execute-free-directory-path-if-we-fail-to-remove-it-.patch' - '0015-journal-assume-that-next-entry-is-after-previous-ent.patch' - '0016-journal-forget-file-after-encountering-an-error.patch' - '0017-core-correctly-unregister-PIDs-from-PID-hashtables.patch' 'initcpio-hook-udev' 'initcpio-install-systemd' 'initcpio-install-udev') -md5sums=('03efddf8c9eca36d4d590f9967e7e818' - 'e64ade3fffc1e8fc5af0703135b389c4' - 'b619c45b2e973b9bd1cc85a66647a859' - '5265ac8a57f8b6438effd332c5a38e7e' - '0d047c3e44076fcefded5c2db31743d7' - 'c5bee064008abf23e5154768681944d2' - '11f93b3c02c268a16db95f69c3d8c459' - '43bc34b1e991dca2d9fb8b887e3b2d3d' - '2e4a5fc2b2cc2e64c3ade2f504763b81' - 'b55c5fb9dccb25085e199afc460ca011' - 'cc16a4ae58eb87a9739f183ed20e2290' - 'be17e74f25c70a2928fe16ce4fdb5a7e' - '4875226e16a893b82663691c6ae7c922' - '0180fbe462be9ca6a0da208ccb94844e' - 'c1182aee4a8baaf66d7a6b7a1347d60e' - '057ef5aa2089f0884151f22e7dbe4ed5' +md5sums=('0a70c382b6089526f98073b4ee85ef75' '29245f7a240bfba66e2b1783b63b6b40' '5e04f468a13ae2b9d6a9dfc77c49a7d1' 'bde43090d4ac0ef048e3eaee8202a407') -prepare() { - cd "$pkgname-$pkgver" - - patch -Np1 <../0001-login-fix-pos-array-allocation.patch - patch -Np1 <../0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch - patch -Np1 <../0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch - patch -Np1 <../0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch - patch -Np1 <../0007-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch - patch -Np1 <../0008-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch - patch -Np1 <../0009-logs-show-fix-corrupt-output-with-empty-messages.patch - patch -Np1 <../0010-journalctl-refuse-extra-arguments-with-verify-and-si.patch - patch -Np1 <../0011-cdrom_id-use-the-old-MMC-fallback.patch - patch -Np1 <../0012-nspawn-fix-detection-of-missing-proc-self-loginuid.patch - patch -Np1 <../0013-Fix-systemd-stdio-bridge-symlink.patch - patch -Np1 <../0014-execute-free-directory-path-if-we-fail-to-remove-it-.patch - patch -Np1 <../0015-journal-assume-that-next-entry-is-after-previous-ent.patch - patch -Np1 <../0016-journal-forget-file-after-encountering-an-error.patch - patch -Np1 <../0017-core-correctly-unregister-PIDs-from-PID-hashtables.patch - - autoreconf -fis -} - build() { cd "$pkgname-$pkgver" @@ -100,16 +48,14 @@ package_systemd() { pkgdesc="system and service manager" license=('GPL2' 'LGPL2.1' 'MIT') depends=('acl' 'bash' 'dbus' 'glib2' 'kbd' 'kmod' 'hwids' 'libcap' 'libgcrypt' - 'pam' 'libseccomp' 'util-linux' 'xz') - provides=("libsystemd=$pkgver" 'nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver" - 'libgudev-1.0.so' 'libsystemd.so' 'libsystemd-daemon.so' 'libsystemd-id128.so' - 'libsystemd-journal.so' 'libsystemd-login.so' 'libudev.so') - replaces=('libsystemd' 'nss-myhostname' 'systemd-tools' 'udev') - conflicts=('libsystemd' 'nss-myhostname' 'systemd-tools' 'udev') - optdepends=('cryptsetup: required for encrypted block devices' + 'libsystemd' 'pam' 'libseccomp' 'libutil-linux' 'xz') + provides=('nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver") + replaces=('nss-myhostname' 'systemd-tools' 'udev') + conflicts=('nss-myhostname' 'systemd-tools' 'udev') + optdepends=('python: systemd library bindings' + 'cryptsetup: required for encrypted block devices' 'libmicrohttpd: systemd-journal-gatewayd' 'quota-tools: kernel-level quota management' - 'python: systemd library bindings' 'systemd-sysvcompat: symlink package to provide sysvinit binaries') backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf etc/dbus-1/system.d/org.freedesktop.hostname1.conf @@ -163,11 +109,27 @@ package_systemd() { mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \ "$srcdir"/_sysvcompat/usr/share/man/man8 + ### split off runtime libraries + rm -rf "$srcdir/_libsystemd" + install -dm755 "$srcdir"/_libsystemd/usr/lib + cd "$srcdir"/_libsystemd + mv "$pkgdir"/usr/lib/lib{systemd,{g,}udev}*.so* usr/lib + # include MIT license, since it's technically custom install -Dm644 "$srcdir/$pkgname-$pkgver/LICENSE.MIT" \ "$pkgdir/usr/share/licenses/systemd/LICENSE.MIT" } +package_libsystemd() { + pkgdesc="systemd client libraries" + depends=('glib2' 'glibc' 'libgcrypt' 'xz') + license=('GPL2') + provides=('libgudev-1.0.so' 'libsystemd.so' 'libsystemd-daemon.so' 'libsystemd-id128.so' + 'libsystemd-journal.so' 'libsystemd-login.so' 'libudev.so') + + mv "$srcdir/_libsystemd"/* "$pkgdir" +} + package_systemd-sysvcompat() { pkgdesc="sysvinit compat for systemd" license=('GPL2') diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD index a004fee54..3d884bcbd 100644 --- a/core/util-linux/PKGBUILD +++ b/core/util-linux/PKGBUILD @@ -1,21 +1,18 @@ -# $Id: PKGBUILD 204875 2014-01-30 03:12:08Z tomegun $ +# $Id: PKGBUILD 207983 2014-03-16 14:07:48Z dreisner $ # Maintainer: Tom Gundersen <teg@jklm.no> # Maintainer: Dave Reisner <dreisner@archlinux.org> # Contributor: judd <jvinet@zeroflux.org> -pkgname=util-linux +pkgbase=util-linux +pkgname=(util-linux libutil-linux) pkgver=2.24.1 -pkgrel=1 +pkgrel=3 pkgdesc="Miscellaneous system utilities for Linux" url="http://www.kernel.org/pub/linux/utils/util-linux/" arch=('i686' 'x86_64') groups=('base' 'base-devel') -depends=('pam' 'shadow' 'coreutils' 'glibc') -optdepends=('python: python bindings to libmount') makedepends=('systemd' 'python') # checkdepends=('bc') -conflicts=('util-linux-ng' 'eject') -provides=("util-linux-ng=$pkgver" 'eject') license=('GPL2') options=('strip' 'debug') source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.24/$pkgname-$pkgver.tar.xz" @@ -23,12 +20,6 @@ source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.24/$pkgname-$pkgver.ta pam-login pam-common pam-su) -backup=(etc/pam.d/chfn - etc/pam.d/chsh - etc/pam.d/login - etc/pam.d/su - etc/pam.d/su-l) -install=util-linux.install md5sums=('88d46ae23ca599ac5af9cf96b531590f' 'a39554bfd65cccfd8254bb46922f4a67' '4368b3f98abd8a32662e094c54e7f9b1' @@ -63,7 +54,18 @@ build() { # make -C "$pkgname-$pkgver" check #} -package() { +package_util-linux() { + conflicts=('util-linux-ng' 'eject') + provides=("util-linux-ng=$pkgver" 'eject') + depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libutil-linux') + optdepends=('python: python bindings to libmount') + install=util-linux.install + backup=(etc/pam.d/chfn + etc/pam.d/chsh + etc/pam.d/login + etc/pam.d/su + etc/pam.d/su-l) + cd "$pkgname-$pkgver" make DESTDIR="${pkgdir}" install @@ -86,4 +88,17 @@ package() { cd "$pkgdir" mv {,usr/}sbin/* usr/bin rmdir sbin usr/sbin + + ### create libutil-linux split + rm -rf "$srcdir/_libutil-linux" + install -dm755 "$srcdir"/_libutil-linux/usr/lib + cd "$srcdir"/_libutil-linux + mv "$pkgdir"/usr/lib/lib*.{a,so}* usr/lib +} + +package_libutil-linux() { + pkgdesc="util-linux runtime libraries" + provides=('libblkid.so' 'libmount.so' 'libuuid.so') + + mv "$srcdir/_libutil-linux"/* "$pkgdir" } |