diff options
author | Márcio Alexandre Silva Delgado <coadde@lavabit.com> | 2012-11-11 19:57:22 -0200 |
---|---|---|
committer | Márcio Alexandre Silva Delgado <coadde@lavabit.com> | 2012-11-11 19:57:22 -0200 |
commit | 246bf186da93a3852240ac92428f54b41c58e1db (patch) | |
tree | 8f0e6a272bf36d3c00a15d60bb69d9b01c3e022b /libre/systemd | |
parent | 7ad962cb59151982416803f4c42bf114dbc9c4ee (diff) | |
parent | 57c4a12d7c00bb82275af154cbcdbb7ec871c57c (diff) |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/srv/git/abslibre
Diffstat (limited to 'libre/systemd')
-rwxr-xr-x | libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch | 27 | ||||
-rwxr-xr-x | libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch | 155 | ||||
-rwxr-xr-x | libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch | 31 | ||||
-rwxr-xr-x | libre/systemd/PKGBUILD | 123 | ||||
-rwxr-xr-x | libre/systemd/os-release | 7 | ||||
-rwxr-xr-x | libre/systemd/rePKGBUILD | 52 | ||||
-rwxr-xr-x | libre/systemd/systemd.install | 50 |
7 files changed, 0 insertions, 445 deletions
diff --git a/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch b/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch deleted file mode 100755 index 06fc30944..000000000 --- a/libre/systemd/0001-check-for-proper-return-from-dirent_ensure_type.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 7e5d190ccce8dc064d5756225e306e65fa534ae9 Mon Sep 17 00:00:00 2001 -From: Dave Reisner <dreisner@archlinux.org> -Date: Mon, 2 Apr 2012 08:20:34 -0400 -Subject: [PATCH] check for proper return from dirent_ensure_type - -Fixes 'systemctl list-unit-files', which previously returned only: - - Failed to issue method call: No such file or directory ---- - src/install.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/install.c b/src/install.c -index 174d79b..9256116 100644 ---- a/src/install.c -+++ b/src/install.c -@@ -1853,7 +1853,7 @@ int unit_file_get_list( - - r = dirent_ensure_type(d, de); - if (r < 0) { -- if (errno == ENOENT) -+ if (r == -ENOENT) - continue; - - goto finish; --- -1.7.9.5 diff --git a/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch b/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch deleted file mode 100755 index 692d93356..000000000 --- a/libre/systemd/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 75c8e3cffd7da8eede614cf61384957af2c82a29 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Thu, 22 Mar 2012 02:06:40 +0100 -Subject: [PATCH] logind: close FIFO before ending sessions cleanly - -For clean session endings ask logind explicitly to get rid of the FIFO -before closing it so that the FIFO logic doesn't result in su/sudo to be -terminated immediately. ---- - src/login/logind-dbus.c | 30 ++++++++++++++++++++ - src/login/pam-module.c | 71 +++++++++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 98 insertions(+), 3 deletions(-) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index d8f4d89..ea6b89f 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -80,6 +80,9 @@ - " <arg name=\"seat\" type=\"s\" direction=\"out\"/>\n" \ - " <arg name=\"vtnr\" type=\"u\" direction=\"out\"/>\n" \ - " </method>\n" \ -+ " <method name=\"ReleaseSession\">\n" \ -+ " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \ -+ " </method>\n" \ - " <method name=\"ActivateSession\">\n" \ - " <arg name=\"id\" type=\"s\" direction=\"in\"/>\n" \ - " </method>\n" \ -@@ -1075,6 +1078,33 @@ static DBusHandlerResult manager_message_handler( - if (r < 0) - return bus_send_error_reply(connection, message, &error, r); - -+ } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ReleaseSession")) { -+ const char *name; -+ Session *session; -+ -+ if (!dbus_message_get_args( -+ message, -+ &error, -+ DBUS_TYPE_STRING, &name, -+ DBUS_TYPE_INVALID)) -+ return bus_send_error_reply(connection, message, &error, -EINVAL); -+ -+ session = hashmap_get(m->sessions, name); -+ if (!session) -+ return bus_send_error_reply(connection, message, &error, -ENOENT); -+ -+ /* We use the FIFO to detect stray sessions where the -+ process invoking PAM dies abnormally. We need to make -+ sure that that process is not killed if at the clean -+ end of the session it closes the FIFO. Hence, with -+ this call explicitly turn off the FIFO logic, so that -+ the PAM code can finish clean up on its own */ -+ session_remove_fifo(session); -+ -+ reply = dbus_message_new_method_return(message); -+ if (!reply) -+ goto oom; -+ - } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "ActivateSession")) { - const char *name; - Session *session; -diff --git a/src/login/pam-module.c b/src/login/pam-module.c -index 8544413..4106d2b 100644 ---- a/src/login/pam-module.c -+++ b/src/login/pam-module.c -@@ -414,7 +414,6 @@ _public_ PAM_EXTERN int pam_sm_open_session( - "/org/freedesktop/login1", - "org.freedesktop.login1.Manager", - "CreateSession"); -- - if (!m) { - pam_syslog(handle, LOG_ERR, "Could not allocate create session message."); - r = PAM_BUF_ERR; -@@ -620,11 +619,77 @@ _public_ PAM_EXTERN int pam_sm_close_session( - int argc, const char **argv) { - - const void *p = NULL; -+ const char *id; -+ DBusConnection *bus = NULL; -+ DBusMessage *m = NULL, *reply = NULL; -+ DBusError error; -+ int r; - -- pam_get_data(handle, "systemd.session-fd", &p); -+ assert(handle); -+ -+ dbus_error_init(&error); -+ -+ id = pam_getenv(handle, "XDG_SESSION_ID"); -+ if (id) { -+ -+ /* Before we go and close the FIFO we need to tell -+ * logind that this is a clean session shutdown, so -+ * that it doesn't just go and slaughter us -+ * immediately after closing the fd */ -+ -+ bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); -+ if (!bus) { -+ pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error)); -+ r = PAM_SESSION_ERR; -+ goto finish; -+ } -+ -+ m = dbus_message_new_method_call( -+ "org.freedesktop.login1", -+ "/org/freedesktop/login1", -+ "org.freedesktop.login1.Manager", -+ "ReleaseSession"); -+ if (!m) { -+ pam_syslog(handle, LOG_ERR, "Could not allocate release session message."); -+ r = PAM_BUF_ERR; -+ goto finish; -+ } -+ -+ if (!dbus_message_append_args(m, -+ DBUS_TYPE_STRING, &id, -+ DBUS_TYPE_INVALID)) { -+ pam_syslog(handle, LOG_ERR, "Could not attach parameters to message."); -+ r = PAM_BUF_ERR; -+ goto finish; -+ } - -+ reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error); -+ if (!reply) { -+ pam_syslog(handle, LOG_ERR, "Failed to release session: %s", bus_error_message(&error)); -+ r = PAM_SESSION_ERR; -+ goto finish; -+ } -+ } -+ -+ r = PAM_SUCCESS; -+ -+finish: -+ pam_get_data(handle, "systemd.session-fd", &p); - if (p) - close_nointr(PTR_TO_INT(p) - 1); - -- return PAM_SUCCESS; -+ dbus_error_free(&error); -+ -+ if (bus) { -+ dbus_connection_close(bus); -+ dbus_connection_unref(bus); -+ } -+ -+ if (m) -+ dbus_message_unref(m); -+ -+ if (reply) -+ dbus_message_unref(reply); -+ -+ return r; - } --- -1.7.9.5 diff --git a/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch b/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch deleted file mode 100755 index 9bf84dda6..000000000 --- a/libre/systemd/0001-util-never-follow-symlinks-in-rm_rf_children.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 5ebff5337594d690b322078c512eb222d34aaa82 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt <mschmidt@redhat.com> -Date: Fri, 2 Mar 2012 10:39:10 +0100 -Subject: [PATCH] util: never follow symlinks in rm_rf_children() - -The function checks if the entry is a directory before recursing, but -there is a window between the check and the open, during which the -directory could be replaced with a symlink. - -CVE-2012-1174 -https://bugzilla.redhat.com/show_bug.cgi?id=803358 ---- - src/util.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/util.c b/src/util.c -index 20cbc2b..dfc1dc6 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) { - if (is_dir) { - int subdir_fd; - -- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) { -+ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); -+ if (subdir_fd < 0) { - if (ret == 0 && errno != ENOENT) - ret = -errno; - continue; --- -1.7.9.4 diff --git a/libre/systemd/PKGBUILD b/libre/systemd/PKGBUILD deleted file mode 100755 index d4f08f7d5..000000000 --- a/libre/systemd/PKGBUILD +++ /dev/null @@ -1,123 +0,0 @@ -# $Id$ -# Maintainer: Dave Reisner <dreisner@archlinux.org> -# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar> -# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy> - -pkgbase=systemd -pkgname=('systemd') -pkgver=44 -pkgrel=7 -arch=('i686' 'x86_64' 'mips64el') -url="http://www.freedesktop.org/wiki/Software/systemd" -license=('GPL2' 'LGPL2.1' 'MIT') -makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gperf' 'intltool' - 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'udev' 'xz') -options=('!libtool') -source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" - "os-release" - 0001-util-never-follow-symlinks-in-rm_rf_children.patch - 0001-logind-close-FIFO-before-ending-sessions-cleanly.patch - 0001-check-for-proper-return-from-dirent_ensure_type.patch) -md5sums=('11f44ff74c87850064e4351518bcff17' - 'd0210754762d923d36c9452a1648d550' - 'b5863d6d4b47e2b5bda8eb57bde0d327' - 'd37833358ef6c23fad622ea4a0941d1f' - '11f930fd0a3966abc794bf9127a7dde0') - -build() { - cd "$pkgname-$pkgver" - - # https://bugzilla.redhat.com/show_bug.cgi?id=803358 (upstream 5ebff53375) - patch -Np1 <"$srcdir/0001-util-never-follow-symlinks-in-rm_rf_children.patch" - - # https://bugs.archlinux.org/task/28386 (upstream 75c8e3cffd) - patch -Np1 <"$srcdir/0001-logind-close-FIFO-before-ending-sessions-cleanly.patch" - - # Fix broken 'systemctl list-unit-files' (upstream fb5ef067c49) - patch -Np1 <"$srcdir/0001-check-for-proper-return-from-dirent_ensure_type.patch" - - ./configure --sysconfdir=/etc \ - --libexecdir=/usr/lib \ - --with-pamlibdir=/usr/lib/security \ - --localstatedir=/var \ - --with-distro=arch \ - --enable-split-usr \ - --disable-ima - - make -} - -package_systemd() { - pkgdesc="system and service manager" - depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz') - optdepends=('cryptsetup: required for encrypted block devices' - 'dbus-python: systemd-analyze' - 'initscripts: legacy support for hostname and vconsole setup' - 'initscripts-systemd: native boot and initialization scripts' - 'python2-cairo: systemd-analyze' - 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts' - '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 - etc/dbus-1/system.d/org.freedesktop.login1.conf - etc/dbus-1/system.d/org.freedesktop.locale1.conf - etc/dbus-1/system.d/org.freedesktop.timedate1.conf - etc/systemd/system.conf - etc/systemd/user.conf - etc/systemd/systemd-logind.conf - etc/systemd/systemd-journald.conf) - install="$pkgname.install" - - cd "$pkgname-$pkgver" - - make DESTDIR="$pkgdir" install - - install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release" - - printf "d /run/console 755 root root\n" >"$pkgdir/usr/lib/tmpfiles.d/console.conf" - chmod 644 "$pkgdir/usr/lib/tmpfiles.d/console.conf" - - # symlink to /bin/systemd for compat and sanity - install -dm755 "$pkgdir/bin" - ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd" - - # use python2 for systemd-analyze - sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze" - - # didn't build this... - rm -f "$pkgdir/usr/share/man/man1/systemadm.1" - - # fix .so links in manpage stubs - find "$pkgdir/usr/share/man" -type f -name '*.[[:digit:]]' \ - -exec sed -i '1s|^\.so \(.*\)\.\([[:digit:]]\+\)|.so man\2/\1.\2|' {} + - - # rename man pages to avoid conflicts with sysvinit and initscripts - manpages=(man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 - man5/{hostname,{vconsole,locale}.conf}.5) - cd "$pkgdir/usr/share/man" - for manpage in "${manpages[@]}"; do - IFS='/' read section page <<< "$manpage" - mv "$manpage" "$section/systemd.$page" - done - sed -i '1s|/\([^/]\+\)|/systemd.\1|' "$pkgdir"/usr/share/man/man8/systemd.{poweroff,reboot}.8 - - # move bash-completion and symlink for loginctl - install -Dm644 "$pkgdir/etc/bash_completion.d/systemd-bash-completion.sh" \ - "$pkgdir/usr/share/bash-completion/completions/systemctl" - ln -s systemctl "$pkgdir/usr/share/bash-completion/completions/loginctl" - rm -rf "$pkgdir/etc/bash_completion.d" - - # fix systemctl where - find "$pkgdir" -type f -name '*.service' -exec \ - sed -i 's@\([=-]\)/bin/systemctl@\1/usr/bin/systemctl@g' {} + - - ### split off libsystemd (libs, includes, pkgconfig, man3) - install -dm755 "$srcdir"/libsystemd/usr/{include,lib/pkgconfig} - - cd "$srcdir"/libsystemd - mv "$pkgdir/usr/lib"/libsystemd-*.so* usr/lib - mv "$pkgdir/usr/include/systemd" usr/include - mv "$pkgdir/usr/lib/pkgconfig"/libsystemd-*.pc usr/lib/pkgconfig -} - -# vim: ft=sh syn=sh et diff --git a/libre/systemd/os-release b/libre/systemd/os-release deleted file mode 100755 index 65253e9c3..000000000 --- a/libre/systemd/os-release +++ /dev/null @@ -1,7 +0,0 @@ -NAME=Parabola -ID=parabola -ID_LIKE=arch -PRETTY_NAME="Parabola GNU/Linux-libre" -ANSI_COLOR="1;35" -HOME_URL="https://parabolagnulinux.org/" -BUG_REPORT_URL="https://labs.parabola.nu/" diff --git a/libre/systemd/rePKGBUILD b/libre/systemd/rePKGBUILD deleted file mode 100755 index f825ee579..000000000 --- a/libre/systemd/rePKGBUILD +++ /dev/null @@ -1,52 +0,0 @@ -# This is an example rePKGBUILD file. Use this as a start to creating your own, -# and remove these comments. For more information, see 'man PKGBUILD'. -# NOTE: Please fill out the license field for your package! If it is unknown, -# then please put 'unknown'. - -# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar> -# Maintainer: André Silva <andre.paulista@adinet.com.uy> -source PKGBUILD -unset build package md5sums source check -_repo=extra -pkgname='systemd' -options=(!strip) -source=(PKGBUILD - http://mirrors.kernel.org/archlinux/${_repo}/os/$CARCH/${pkgbase}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} - # files for pkg modifications - os-release) - -build() { - cd "${srcdir}/" - rm -v .{INSTALL,PKGINFO} $pkgname-$pkgver-$pkgrel-$CARCH$PKGEXT || true - # put actions for package modifications below this line - - rm -v etc/os-release -} - -package_systemd() { - pkgdesc="system and service manager (Parabola rebranded)" - depends=('acl' 'dbus-core' 'libsystemd' 'kbd' 'kmod' 'libcap' 'pam' 'util-linux' 'udev' 'xz') - optdepends=('cryptsetup: required for encrypted block devices' - 'dbus-python: systemd-analyze' - 'initscripts: legacy support for hostname and vconsole setup' - 'initscripts-systemd: native boot and initialization scripts' - 'python2-cairo: systemd-analyze' - 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts' - '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 - etc/dbus-1/system.d/org.freedesktop.login1.conf - etc/dbus-1/system.d/org.freedesktop.locale1.conf - etc/dbus-1/system.d/org.freedesktop.timedate1.conf - etc/systemd/system.conf - etc/systemd/user.conf - etc/systemd/systemd-logind.conf - etc/systemd/systemd-journald.conf) - install="$pkgname.install" - - # Install Parabola os-release - install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release" - - find ${srcdir} -maxdepth 1 -type l -delete - cp -a ${srcdir}/* ${pkgdir} -} diff --git a/libre/systemd/systemd.install b/libre/systemd/systemd.install deleted file mode 100755 index 0c3e9abee..000000000 --- a/libre/systemd/systemd.install +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh - -checkgroups() { - if ! getent group lock >/dev/null; then - groupadd -g 54 lock - fi -} - -sd_booted() { - [ -e sys/fs/cgroup/systemd ] -} - -post_install() { - checkgroups - - if [ ! -f etc/machine-id ]; then - systemd-machine-id-setup - fi - - echo "systemd has been installed to /bin/systemd. Please ensure you append" - echo "init=/bin/systemd to your kernel command line in your bootloader." -} - -post_upgrade() { - checkgroups - - if [ ! -f etc/machine-id ]; then - systemd-machine-id-setup - fi - - if sd_booted; then - # we moved the binary in 44-2 to /usr, so a reexec leads to a - # coredump. refuse this reexec and warn the user that they should - # reboot instead. - if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then - echo "warning: refusing to reexec systemd. the system should be rebooted." - else - systemctl daemon-reload - systemctl daemon-reexec - fi - fi -} - -post_remove() { - if getent group lock >/dev/null; then - groupdel lock - fi -} - -# vim:set ts=2 sw=2 et: |