summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/chmsee/PKGBUILD12
-rw-r--r--community/elinks/PKGBUILD6
-rw-r--r--community/haveged/PKGBUILD13
-rw-r--r--community/haveged/haveged.service11
-rw-r--r--community/ldc/PKGBUILD17
-rw-r--r--core/libusbx/PKGBUILD33
-rw-r--r--core/pinentry/PKGBUILD21
-rw-r--r--core/pinentry/qt4-pinentry-window.patch28
-rw-r--r--core/systemd/0001-Reinstate-TIMEOUT-handling.patch124
-rw-r--r--core/systemd/PKGBUILD213
-rw-r--r--core/systemd/initcpio-hook-udev20
-rw-r--r--core/systemd/initcpio-install-timestamp14
-rw-r--r--core/systemd/initcpio-install-udev28
-rw-r--r--core/systemd/locale.sh60
-rw-r--r--core/systemd/os-release5
-rw-r--r--core/systemd/systemd-tools.install29
-rw-r--r--core/systemd/systemd.install51
-rw-r--r--extra/aspell-de/PKGBUILD6
-rw-r--r--extra/cups/PKGBUILD14
-rw-r--r--extra/cups/cups-systemd-socket.patch527
-rw-r--r--extra/dnsmasq/PKGBUILD6
-rw-r--r--extra/dovecot/PKGBUILD8
-rw-r--r--extra/fcitx/PKGBUILD13
-rw-r--r--extra/gnu-efi/PKGBUILD34
-rw-r--r--extra/mod_perl/PKGBUILD16
-rw-r--r--extra/mx/PKGBUILD8
-rw-r--r--extra/quodlibet/PKGBUILD9
-rw-r--r--extra/vim/PKGBUILD12
-rw-r--r--kernels/linux-libre-rt/PKGBUILD15
-rw-r--r--kernels/linux-libre-rt/config.i6867
-rw-r--r--kernels/linux-libre-rt/config.x86_647
-rw-r--r--kernels/linux-libre-rt/linux-libre-rt.install12
-rw-r--r--libre/apache-ant/PKGBUILD12
-rw-r--r--libre/apache-ant/apache-ant.csh3
-rw-r--r--libre/your-freedom/PKGBUILD5
-rw-r--r--multilib/lib32-libphobos-ldc/PKGBUILD57
-rw-r--r--testing/psmisc/PKGBUILD25
-rw-r--r--testing/systemd/0001-Reinstate-TIMEOUT-handling.patch124
-rw-r--r--testing/systemd/PKGBUILD208
-rw-r--r--testing/systemd/initcpio-hook-udev20
-rw-r--r--testing/systemd/initcpio-install-timestamp14
-rw-r--r--testing/systemd/initcpio-install-udev28
-rw-r--r--testing/systemd/locale.sh60
-rw-r--r--testing/systemd/systemd-tools.install29
-rw-r--r--testing/systemd/systemd.install51
45 files changed, 1907 insertions, 108 deletions
diff --git a/community/chmsee/PKGBUILD b/community/chmsee/PKGBUILD
index 386876953..9a3937901 100644
--- a/community/chmsee/PKGBUILD
+++ b/community/chmsee/PKGBUILD
@@ -1,28 +1,28 @@
-# $Id: PKGBUILD 69903 2012-04-26 07:47:47Z lcarlier $
+# $Id: PKGBUILD 72043 2012-06-06 19:44:09Z lcarlier $
# Maintainer : Laurent Carlier <lordheavym@gmail.com>
# Contributor: dionydonny <dionydonny@gmail.com>
# Contributor: Ermanno <erm67@yahoo.it>
pkgname=chmsee
-pkgver=1.99.09
-pkgrel=2
+pkgver=1.99.10
+pkgrel=1
arch=('i686' 'x86_64')
pkgdesc="A chm (MS HTML help file format) viewer based on xulrunner."
url="http://chmsee.googlecode.com/"
license=('GPL')
-depends=('xulrunner>=11.0' 'chmlib' 'desktop-file-utils')
+depends=('xulrunner>=13.0' 'chmlib' 'desktop-file-utils')
makedepends=('python2')
source=(chmsee-$pkgver.tar.gz::https://github.com/jungleji/chmsee/tarball/v$pkgver
chmsee)
install=chmsee.install
-md5sums=('f0ee2a87ffd3f6667d88eb89c31387e4'
+md5sums=('8d8a45f10fe68c08d2248ea1df62a697'
'242a9390bc943cc38237fa71137fb26c')
build() {
cd ${srcdir}/jungleji-chmsee-*/src
cp Makefile.arch Makefile
- sed -i -e 's/11.*/12.*/g' ../application.ini
+ sed -i -e 's/12.*/13.*/g' ../application.ini
make
}
diff --git a/community/elinks/PKGBUILD b/community/elinks/PKGBUILD
index 57957d67c..3ed1b04bf 100644
--- a/community/elinks/PKGBUILD
+++ b/community/elinks/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 54357 2011-08-17 12:23:10Z kkeen $
+# $Id: PKGBUILD 72041 2012-06-06 18:55:27Z kkeen $
# Maintainer: Kyle Keen <keenerd@gmail.com>
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
@@ -7,8 +7,8 @@
pkgname=elinks
pkgver=0.13
-_commit="30c485af4c4ba128d82171a6066594f3cfaeae5d"
-pkgrel=9
+_commit="9313aae9062e1d9ff084858fa6844259cd8237d6"
+pkgrel=10
pkgdesc="An advanced and well-established feature-rich text mode web browser."
arch=("i686" "x86_64")
url="http://elinks.or.cz"
diff --git a/community/haveged/PKGBUILD b/community/haveged/PKGBUILD
index 118750b7b..35087ea57 100644
--- a/community/haveged/PKGBUILD
+++ b/community/haveged/PKGBUILD
@@ -1,19 +1,21 @@
+# $Id: PKGBUILD 72028 2012-06-06 10:37:52Z heftig $
# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
# Contributor: kfgz <kfgz at interia dot pl>
# Contributor: pootzko <pootzko at gmail dot com>
pkgname=haveged
pkgver=1.4
-pkgrel=1
-pkgdesc="A simple entropy daemon."
+pkgrel=3
+pkgdesc="Entropy harvesting daemon using CPU timings"
arch=('i686' 'x86_64')
url="http://www.issihosts.com/haveged"
license=('GPL')
-depends=('bash')
+depends=('glibc')
source=(${url}/${pkgname}-${pkgver}.tar.gz
- haveged)
+ haveged haveged.service)
md5sums=('39a03d4b8a4225706f78dbef3f623b0e'
- '264b725be5271288b40f363d7cfc6b68')
+ '264b725be5271288b40f363d7cfc6b68'
+ 'fc62a480f520377364503aca9efff0b0')
build() {
cd "${srcdir}"/${pkgname}-${pkgver/a/}
@@ -28,4 +30,5 @@ package() {
cd "${srcdir}"
install -D -m755 haveged "${pkgdir}"/etc/rc.d/haveged
+ install -D -m644 haveged.service "${pkgdir}"/usr/lib/systemd/system/haveged.service
}
diff --git a/community/haveged/haveged.service b/community/haveged/haveged.service
new file mode 100644
index 000000000..6803a0dec
--- /dev/null
+++ b/community/haveged/haveged.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Entropy Harvesting Daemon
+Documentation=man:haveged(8)
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/haveged -w 1024 -v 1
+PIDFile=/var/run/haveged.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/community/ldc/PKGBUILD b/community/ldc/PKGBUILD
index 3e29ab293..ba9552118 100644
--- a/community/ldc/PKGBUILD
+++ b/community/ldc/PKGBUILD
@@ -1,19 +1,24 @@
-# $Id: PKGBUILD 68277 2012-03-21 07:36:10Z svenstaro $
+# $Id: PKGBUILD 72035 2012-06-06 13:48:23Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
pkgname=ldc
-pkgver=20120321
-pkgrel=1
+pkgver=20120606
+pkgrel=2
pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2"
arch=('i686' 'x86_64')
url="http://www.dsource.org/projects/ldc"
license=('BSD')
depends=('llvm' 'libconfig')
makedepends=('git' 'cmake')
+backup=('etc/ldc2.conf')
source=()
md5sums=()
_gitroot=git://github.com/ldc-developers/ldc.git
_gitname=ldc
+_gitbranch=llvm-3.1
+
+[[ $CARCH == "x86_64" ]] && _multilib="ON"
+[[ $CARCH == "i686" ]] && _multilib="OFF"
build() {
cd "$srcdir"
@@ -23,7 +28,7 @@ build() {
cd "$_gitname" && git pull origin
msg "The local files are updated."
else
- git clone "$_gitroot" "$_gitname"
+ git clone --branch "$_gitbranch" "$_gitroot" "$_gitname"
fi
msg "GIT checkout done or server timeout"
@@ -37,6 +42,7 @@ build() {
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DINCLUDE_INSTALL_DIR=/usr/include/d/std-ldc \
+ -DMULTILIB=$_multilib \
..
make
}
@@ -52,4 +58,7 @@ package() {
mv $pkgdir/etc/bash_completion.d $pkgdir/usr/share/bash-completion/completions
install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ # We don't actually want the multilib libs in this package
+ rm -rf $pkgdir/usr/lib32
}
diff --git a/core/libusbx/PKGBUILD b/core/libusbx/PKGBUILD
new file mode 100644
index 000000000..ac1363119
--- /dev/null
+++ b/core/libusbx/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 160804 2012-06-06 10:38:17Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=libusbx
+pkgver=1.0.11
+pkgrel=2
+depends=('glibc')
+pkgdesc="Library that provides generic access to USB device"
+arch=(i686 x86_64)
+url="http://libusbx.org"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+options=(!libtool)
+replaces=('libusb1' 'libusb')
+provides=("libusb=$pkgver")
+conflicts=("libusb")
+
+md5sums=('9aaab6aee72f65900cc731ecbffb4cf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/pinentry/PKGBUILD b/core/pinentry/PKGBUILD
index c94625d29..072a2b244 100644
--- a/core/pinentry/PKGBUILD
+++ b/core/pinentry/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 146747 2012-01-16 22:52:55Z dreisner $
+# $Id: PKGBUILD 160802 2012-06-06 10:36:53Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
pkgname=pinentry
pkgver=0.8.1
-pkgrel=3
+pkgrel=4
pkgdesc="a collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
arch=('i686' 'x86_64')
license=('GPL')
@@ -12,11 +12,13 @@ makedepends=('gtk2' 'qt')
optdepends=('gtk2: for gtk2 backend'
'qt: for qt4 backend')
source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.gz
- gtk2-pinentry-segfault.patch)
+ qt4-pinentry-window.patch)
install=pinentry.install
build() {
- cd $startdir/src/$pkgname-$pkgver
+ cd $srcdir/$pkgname-$pkgver
+ #fix: https://bugs.archlinux.org/task/29998
+ patch -Np1 -i ../qt4-pinentry-window.patch
for file in qt4/*.moc; do
/usr/bin/moc ${file/.moc/.h} > ${file}
done
@@ -27,11 +29,12 @@ build() {
--enable-pinentry-gtk2 \
--enable-pinentry-qt4 \
--enable-fallback-curses
- make
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
make DESTDIR=${pkgdir} install
- #rm ${pkgdir}/usr/share/info/dir
- #rm ${pkgdir}/usr/bin/pinentry
- #ln -s /usr/bin/pinentry-gtk-2 ${pkgdir}/usr/bin/pinentry
}
md5sums=('81f99904daee5331eb6738408bb024b6'
- 'bd9888fafc56464b2c4deaad5b8edb07')
+ '450b8713fe42f1bd93311ef84767c3d8')
diff --git a/core/pinentry/qt4-pinentry-window.patch b/core/pinentry/qt4-pinentry-window.patch
new file mode 100644
index 000000000..8f9faae11
--- /dev/null
+++ b/core/pinentry/qt4-pinentry-window.patch
@@ -0,0 +1,28 @@
+From c2ab12b3742c929a225c3753439438edc27bfa81 Mon Sep 17 00:00:00 2001
+From: Stanislav Ochotnicky <sochotnicky@redhat.com>
+Date: Tue, 1 Feb 2011 14:42:27 +0100
+Subject: [PATCH] Fix qt4 pinentry window created in the background
+
+This is probably just a workaround. Proper fix is being investigated.
+See:
+https://bugzilla.redhat.com/show_bug.cgi?id=589532
+http://stackoverflow.com/questions/2788518/calling-activatewindow-on-qdialog-sends-window-to-background
+---
+ qt4/pinentrydialog.cpp | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/qt4/pinentrydialog.cpp b/qt4/pinentrydialog.cpp
+index 541baf4..d634eb6 100644
+--- a/qt4/pinentrydialog.cpp
++++ b/qt4/pinentrydialog.cpp
+@@ -69,7 +69,6 @@ void raiseWindow( QWidget* w )
+ SetForegroundWindow( w->winId() );
+ #endif
+ w->raise();
+- w->activateWindow();
+ }
+
+ QPixmap icon( QStyle::StandardPixmap which )
+--
+1.7.3.5
+
diff --git a/core/systemd/0001-Reinstate-TIMEOUT-handling.patch b/core/systemd/0001-Reinstate-TIMEOUT-handling.patch
new file mode 100644
index 000000000..766dcb87f
--- /dev/null
+++ b/core/systemd/0001-Reinstate-TIMEOUT-handling.patch
@@ -0,0 +1,124 @@
+From 2127f99fb43d2ef950e95329ce40bdd5da8b015c Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Fri, 25 May 2012 19:43:24 -0400
+Subject: [PATCH] Reinstate TIMEOUT= handling
+
+This is mostly to deal with ipw2?00 drivers which have yet to be fixed
+in the kernel.
+---
+ src/libudev/libudev-device.c | 19 +++++++++++++++++++
+ src/libudev/libudev-private.h | 1 +
+ src/udev/udevd.c | 13 ++++++++++---
+ 3 files changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
+index a8277d1..5966189 100644
+--- a/src/libudev/libudev-device.c
++++ b/src/libudev/libudev-device.c
+@@ -68,6 +68,7 @@ struct udev_device {
+ struct udev_list tags_list;
+ unsigned long long int seqnum;
+ unsigned long long int usec_initialized;
++ int timeout;
+ int devlink_priority;
+ int refcount;
+ dev_t devnum;
+@@ -89,6 +90,21 @@ struct udev_device {
+ bool db_persist;
+ };
+
++int udev_device_get_timeout(struct udev_device *udev_device)
++{
++ return udev_device->timeout;
++}
++
++static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
++{
++ char num[32];
++
++ udev_device->timeout = timeout;
++ snprintf(num, sizeof(num), "%u", timeout);
++ udev_device_add_property(udev_device, "TIMEOUT", num);
++ return 0;
++}
++
+ /**
+ * udev_device_get_seqnum:
+ * @udev_device: udev device
+@@ -362,6 +378,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
+
+ util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys", &property[8], NULL);
+ udev_device_set_syspath(udev_device, path);
++ } else if (strncmp(property, "TIMEOUT=", 8) == 0) {
++ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10));
+ } else if (startswith(property, "SUBSYSTEM=")) {
+ udev_device_set_subsystem(udev_device, &property[10]);
+ } else if (startswith(property, "DEVTYPE=")) {
+@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(struct udev *udev)
+ udev_list_init(udev, &udev_device->sysattr_value_list, true);
+ udev_list_init(udev, &udev_device->sysattr_list, false);
+ udev_list_init(udev, &udev_device->tags_list, true);
++ udev_device->timeout = -1;
+ udev_device->watch_handle = -1;
+ /* copy global properties */
+ udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
+diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
+index 4eb4a59..99aefeb 100644
+--- a/src/libudev/libudev-private.h
++++ b/src/libudev/libudev-private.h
+@@ -70,6 +70,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device);
+ void udev_device_set_is_initialized(struct udev_device *udev_device);
+ int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
+ void udev_device_cleanup_tags_list(struct udev_device *udev_device);
++int udev_device_get_timeout(struct udev_device *udev_device);
+ unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
+ void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
+ int udev_device_get_devlink_priority(struct udev_device *udev_device);
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index 0d85960..cd24462 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -384,7 +384,7 @@ out:
+ }
+ }
+
+-static void event_run(struct event *event)
++static void event_run(struct event *event, bool force)
+ {
+ struct udev_list_node *loop;
+
+@@ -410,7 +410,7 @@ static void event_run(struct event *event)
+ return;
+ }
+
+- if (children >= children_max) {
++ if (!force && children >= children_max) {
+ if (children_max > 1)
+ log_debug("maximum number (%i) of children reached\n", children);
+ return;
+@@ -444,6 +444,13 @@ static int event_queue_insert(struct udev_device *dev)
+
+ event->state = EVENT_QUEUED;
+ udev_list_node_append(&event->node, &event_list);
++
++ /* run all events with a timeout set immediately */
++ if (udev_device_get_timeout(dev) > 0) {
++ event_run(event, true);
++ return 0;
++ }
++
+ return 0;
+ }
+
+@@ -549,7 +556,7 @@ static void event_queue_start(struct udev *udev)
+ if (is_devpath_busy(event))
+ continue;
+
+- event_run(event);
++ event_run(event, false);
+ }
+ }
+
+--
+1.7.10.2
+
diff --git a/core/systemd/PKGBUILD b/core/systemd/PKGBUILD
new file mode 100644
index 000000000..c21f77b8f
--- /dev/null
+++ b/core/systemd/PKGBUILD
@@ -0,0 +1,213 @@
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Tom Gundersen <teg@jklm.no>
+
+pkgbase=systemd
+pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat')
+pkgver=184
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2' 'LGPL2.1' 'MIT')
+makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf'
+ 'gtk-doc' 'intltool' 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'xz')
+options=('!libtool')
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
+ 'initcpio-hook-udev'
+ 'initcpio-install-udev'
+ 'initcpio-install-timestamp'
+ '0001-Reinstate-TIMEOUT-handling.patch'
+ 'os-release'
+ 'locale.sh')
+md5sums=('6be0a2519fd42b988a1a2a56e5bd40c1'
+ 'e99e9189aa2f6084ac28b8ddf605aeb8'
+ '59e91c4d7a69b7bf12c86a9982e37ced'
+ 'df69615503ad293c9ddf9d8b7755282d'
+ '5543be25f205f853a21fa5ee68e03f0d'
+ '752636def0db3c03f121f8b4f44a63cd'
+ 'f15956945052bb911e5df81cf5e7e5dc')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # still waiting on ipw2x00 to get fixed...
+ patch -Np1 <"$srcdir/0001-Reinstate-TIMEOUT-handling.patch"
+
+ ./configure \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --enable-split-usr \
+ --enable-introspection \
+ --enable-gtk-doc \
+ --disable-audit \
+ --disable-ima \
+ --with-pamlibdir=/usr/lib/security \
+ --with-distro=arch \
+ --with-usb-ids-path=/usr/share/hwdata/usb.ids \
+ --with-pci-ids-path=/usr/share/hwdata/pci.ids \
+ --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware
+
+ make
+}
+
+package_systemd() {
+ pkgdesc="system and service manager"
+ depends=('acl' 'dbus-core' "libsystemd=$pkgver" 'kmod' 'libcap' 'pam'
+ "systemd-tools=$pkgver" 'util-linux' 'xz')
+ optdepends=('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/logind.conf
+ etc/systemd/journald.conf)
+ install="systemd.install"
+
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+ printf "d /run/console 0755 root root\n" > "$pkgdir/usr/lib/tmpfiles.d/console.conf"
+
+ install -dm755 "$pkgdir/bin"
+ ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd"
+
+ # fix systemd-analyze for python2
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # 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"
+
+ # don't write units to /etc by default -- we'll enable this on post_install
+ # as a sane default
+ rm "$pkgdir/etc/systemd/system/getty.target.wants/getty@tty1.service"
+ rmdir "$pkgdir/etc/systemd/system/getty.target.wants"
+
+ ### split off libsystemd (libs, includes, pkgconfig, man3)
+ rm -rf "$srcdir/_libsystemd"
+ 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
+
+ ### split out manpages for sysvcompat
+ rm -rf "$srcdir/_sysvcompat"
+ install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/
+ mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \
+ "$srcdir"/_sysvcompat/usr/share/man/man8
+
+ ### split out systemd-tools/udev
+ rm -rf "$srcdir/_tools"
+ install -dm755 \
+ "$srcdir"/_tools/etc/udev \
+ "$srcdir"/_tools/usr/bin \
+ "$srcdir"/_tools/usr/include \
+ "$srcdir"/_tools/usr/lib/{systemd/system,udev} \
+ "$srcdir"/_tools/usr/lib/systemd/system/{sysinit,sockets}.target.wants \
+ "$srcdir"/_tools/usr/lib/girepository-1.0 \
+ "$srcdir"/_tools/usr/share/pkgconfig \
+ "$srcdir"/_tools/usr/share/gir-1.0 \
+ "$srcdir"/_tools/usr/share/gtk-doc/html/{g,lib}udev \
+ "$srcdir"/_tools/usr/share/man/man{1,5,7,8}
+
+ cd "$srcdir/_tools"
+ mv "$pkgdir"/etc/udev etc
+ mv "$pkgdir"/etc/{binfmt,modules-load,sysctl,tmpfiles}.d etc
+ mv "$pkgdir"/usr/bin/udevadm usr/bin
+ mv "$pkgdir"/usr/lib/pkgconfig usr/lib
+ mv "$pkgdir"/usr/lib/systemd/systemd-udevd usr/lib/systemd
+ mv "$pkgdir"/usr/lib/systemd/system/systemd-udev* usr/lib/systemd/system
+ mv "$pkgdir"/usr/lib/systemd/system/sysinit.target.wants/systemd-udev* usr/lib/systemd/system/sysinit.target.wants
+ mv "$pkgdir"/usr/lib/systemd/system/sockets.target.wants/systemd-udev* usr/lib/systemd/system/sockets.target.wants
+ mv "$pkgdir"/usr/lib/lib{,g}udev* usr/lib
+ mv "$pkgdir"/usr/lib/{binfmt,sysctl,modules-load,tmpfiles}.d usr/lib
+ mv "$pkgdir"/usr/lib/udev usr/lib
+ mv "$pkgdir"/usr/include/{libudev.h,gudev-1.0} usr/include
+ mv "$pkgdir"/usr/lib/girepository-1.0 usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig/udev.pc usr/share/pkgconfig
+ mv "$pkgdir"/usr/share/gir-1.0 usr/share
+ mv "$pkgdir"/usr/share/gtk-doc/html/{g,lib}udev usr/share/gtk-doc/html
+ mv "$pkgdir"/usr/share/man/man7/udev.7 usr/share/man/man7
+ mv "$pkgdir"/usr/share/man/man8/{systemd-udevd,udevadm}.8 usr/share/man/man8
+ mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt}.1 usr/share/man/man1
+ mv "$pkgdir"/usr/share/man/man5/{binfmt,modules-load,sysctl,tmpfiles}.d.5 usr/share/man/man5
+ mv "$pkgdir"/usr/share/man/man5/{hostname,{vconsole,locale}.conf}.5 usr/share/man/man5
+ mv "$pkgdir"/usr/bin/systemd-{ask-password,delta,detect-virt,tmpfiles,tty-ask-password-agent} usr/bin
+ mv "$pkgdir"/usr/lib/systemd/systemd-{ac-power,binfmt,cryptsetup,modules-load,random-seed,remount-fs,reply-password,sysctl,timestamp,vconsole-setup} usr/lib/systemd
+}
+
+package_systemd-sysvcompat() {
+ pkgdesc="sysvinit compat for systemd"
+ conflicts=('sysvinit' 'initscripts')
+
+ mv "$srcdir/_sysvcompat"/* "$pkgdir"
+
+ install -dm755 "$pkgdir/sbin"
+ for tool in runlevel reboot shutdown poweroff halt telinit; do
+ ln -s '/usr/bin/systemctl' "$pkgdir/sbin/$tool"
+ done
+
+ ln -s '../usr/lib/systemd/systemd' "$pkgdir/sbin/init"
+
+ install -Dm755 "$srcdir/locale.sh" "$pkgdir/etc/profile.d/locale.sh"
+}
+
+package_libsystemd() {
+ pkgdesc="systemd client libraries"
+ depends=('xz')
+
+ mv "$srcdir/_libsystemd"/* "$pkgdir"
+}
+
+package_systemd-tools() {
+ pkgdesc='standalone tools from systemd'
+ url='http://www.freedesktop.org/wiki/Software/systemd'
+ depends=('acl' 'bash' 'glibc' 'glib2' 'kmod' 'hwids' 'util-linux' 'kbd')
+ optdepends=('cryptsetup: required for encrypted block devices')
+ provides=("udev=$pkgver")
+ conflicts=('udev')
+ replaces=('udev')
+ install='systemd-tools.install'
+
+ mv "$srcdir/_tools/"* "$pkgdir"
+
+ # the path to udevadm is hardcoded in some places
+ install -d "$pkgdir/sbin"
+ ln -s ../usr/bin/udevadm "$pkgdir/sbin/udevadm"
+
+ # udevd is no longer udevd because systemd. why isn't udevadm now udevctl?
+ ln -s ../lib/systemd/systemd-udevd "$pkgdir/usr/bin/udevd"
+ ln -s ../systemd/systemd-udevd "$pkgdir/usr/lib/udev/udevd"
+
+ # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
+ sed -i 's#GROUP="dialout"#GROUP="uucp"#g;
+ s#GROUP="tape"#GROUP="storage"#g;
+ s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules
+
+ # get rid of unneded lock directories
+ sed -ri '/\/run\/lock\/(subsys|lockdev)/d' "$pkgdir"/usr/lib/tmpfiles.d/legacy.conf
+
+ # add mkinitcpio hooks
+ install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev"
+ install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev"
+ install -Dm644 "$srcdir/initcpio-install-timestamp" "$pkgdir/usr/lib/initcpio/install/timestamp"
+
+ # XXX: kill off coredump rule until the journal can recover coredumps
+ # this file needs to come back as part of systemd, not systemd-tools
+ rm "$pkgdir/usr/lib/sysctl.d/coredump.conf"
+}
+
+# vim: ft=sh syn=sh et
diff --git a/core/systemd/initcpio-hook-udev b/core/systemd/initcpio-hook-udev
new file mode 100644
index 000000000..75da7e4a8
--- /dev/null
+++ b/core/systemd/initcpio-hook-udev
@@ -0,0 +1,20 @@
+#!/usr/bin/ash
+
+run_earlyhook() {
+ udevd --daemon --resolve-names=never
+ udevd_running=1
+}
+
+run_hook() {
+ msg ":: Triggering uevents..."
+ udevadm trigger --action=add --type=subsystems
+ udevadm trigger --action=add --type=devices
+ udevadm settle
+}
+
+run_cleanuphook() {
+ udevadm control --exit
+ udevadm info --cleanup-db
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/systemd/initcpio-install-timestamp b/core/systemd/initcpio-install-timestamp
new file mode 100644
index 000000000..259cc705b
--- /dev/null
+++ b/core/systemd/initcpio-install-timestamp
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+build() {
+ add_binary /usr/lib/systemd/systemd-timestamp /usr/bin/systemd-timestamp
+}
+
+help() {
+ cat <<HELPEOF
+Provides support for RD_TIMESTAMP in early userspace, which can be read by a
+program such as systemd-analyze to determine boot time.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/systemd/initcpio-install-udev b/core/systemd/initcpio-install-udev
new file mode 100644
index 000000000..762429983
--- /dev/null
+++ b/core/systemd/initcpio-install-udev
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+build() {
+ local rules tool
+
+ add_file "/etc/udev/udev.conf"
+ add_binary /usr/lib/systemd/systemd-udevd /usr/bin/udevd
+ add_binary /usr/bin/udevadm
+
+ for rules in 50-udev-default.rules 60-persistent-storage.rules 80-drivers.rules; do
+ add_file "/usr/lib/udev/rules.d/$rules"
+ done
+ for tool in ata_id scsi_id; do
+ add_file "/usr/lib/udev/$tool"
+ done
+
+ add_runscript
+}
+
+help() {
+ cat <<HELPEOF
+This hook will use udev to create your root device node and detect the needed
+modules for your root device. It is also required for firmware loading in
+initramfs. It is recommended to use this hook.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/core/systemd/locale.sh b/core/systemd/locale.sh
new file mode 100644
index 000000000..a4c413eed
--- /dev/null
+++ b/core/systemd/locale.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+if [ ! -r /etc/locale.conf ]; then
+ return
+fi
+
+. /etc/locale.conf
+
+if [ "${LANG+x}" = 'x' ]; then
+ export LANG
+fi
+
+if [ "${LC_CTYPE+x}" = 'x' ]; then
+ export LC_CTYPE
+fi
+
+if [ "${LC_NUMERIC+x}" = 'x' ]; then
+ export LC_NUMERIC
+fi
+
+if [ "${LC_TIME+x}" = 'x' ]; then
+ export LC_TIME
+fi
+
+if [ "${LC_COLLATE+x}" = 'x' ]; then
+ export LC_COLLATE
+fi
+
+if [ "${LC_MONETARY+x}" = 'x' ]; then
+ export LC_MONETARY
+fi
+
+if [ "${LC_MESSAGES+x}" = 'x' ]; then
+ export LC_MESSAGES
+fi
+
+if [ "${LC_PAPER+x}" = 'x' ]; then
+ export LC_PAPER
+fi
+
+if [ "${LC_NAME+x}" = 'x' ]; then
+ export LC_NAME
+fi
+
+if [ "${LC_ADDRESS+x}" = 'x' ]; then
+ export LC_ADDRESS
+fi
+
+if [ "${LC_TELEPHONE+x}" = 'x' ]; then
+ export LC_TELEPHONE
+fi
+
+if [ "${LC_MEASUREMENT+x}" = 'x' ]; then
+ export LC_MEASUREMENT
+fi
+
+if [ "${LC_IDENTIFICATION+x}" = 'x' ]; then
+ export LC_IDENTIFICATION
+fi
+
diff --git a/core/systemd/os-release b/core/systemd/os-release
new file mode 100644
index 000000000..5e24a6031
--- /dev/null
+++ b/core/systemd/os-release
@@ -0,0 +1,5 @@
+NAME="Arch Linux"
+ID=arch
+PRETTY_NAME="Arch Linux"
+ANSI_COLOR="1;36"
+
diff --git a/core/systemd/systemd-tools.install b/core/systemd/systemd-tools.install
new file mode 100644
index 000000000..c1c19d15d
--- /dev/null
+++ b/core/systemd/systemd-tools.install
@@ -0,0 +1,29 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 174)" -lt 0 ]; then
+ echo " * We now use upstream rules for assigning devices to the 'disk', 'optical',"
+ echo " 'scanner' and 'video' groups. Beware of any changes."
+ echo " * We no longer create symlinks from /dev/<dev> to /dev/<dev>0."
+ echo " * For security reasons, we no longer add devices to the 'storage' group. Use"
+ echo " udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want"
+ echo " this functionality back."
+ echo " * We no longer create the static nodes on install needed for an initrd-less"
+ echo " boot where devtmpfs is not mounted by the kernel, this only affects fresh"
+ echo " installs."
+ fi
+ if [ "$(vercmp $2 175)" -lt 0 ]; then
+ echo " * devtmpfs support is now a hard requirement. Users of the official Arch"
+ echo " kernels have this enabled."
+ fi
+ if [ "$(vercmp $2 181)" -lt 0 ]; then
+ echo " * udev-compat has been removed, and should be uninstalled."
+ echo " * Framebuffers are no longer blacklisted by default."
+ echo " * binaries moved from /sbin to /usr/bin"
+ fi
+ if [ "$(vercmp $2 181-3)" -lt 0 ]; then
+ echo " * if your kernel does not provide /dev/loop-control, you need to manually"
+ echo " load the 'loop' module before using losetup"
+ fi
+}
diff --git a/core/systemd/systemd.install b/core/systemd/systemd.install
new file mode 100644
index 000000000..0b10f9537
--- /dev/null
+++ b/core/systemd/systemd.install
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+sd_booted() {
+ [ -e sys/fs/cgroup/systemd ]
+}
+
+post_install() {
+ if [ ! -f etc/machine-id ]; then
+ systemd-machine-id-setup
+ fi
+
+ # enable getty@tty1 by default, but don't track the file
+ systemctl enable getty@.service
+
+ echo ":: Append 'init=/bin/systemd' to your kernel command line in your"
+ echo " bootloader to replace sysvinit with systemd"
+}
+
+post_upgrade() {
+ 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
+
+ # getty@tty1.service is no longer enabled by default, but we don't want to break
+ # existing setups.
+ if [ "$(vercmp 183 "$2")" -eq 1 ]; then
+ # systemctl seems to be whiny on sysvinit. this will succeed unless something
+ # horrific happens, so just mask the error.
+ systemctl -q enable getty@.service || true
+ fi
+}
+
+post_remove() {
+ if getent group lock >/dev/null; then
+ groupdel lock
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/aspell-de/PKGBUILD b/extra/aspell-de/PKGBUILD
index 7d15c7fe8..65b775c23 100644
--- a/extra/aspell-de/PKGBUILD
+++ b/extra/aspell-de/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 137818 2011-09-11 20:26:33Z pierre $
+# $Id: PKGBUILD 160921 2012-06-07 02:05:22Z pierre $
# Maintainer:
# Contributor: Simo Leone <simo@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
pkgname=aspell-de
-pkgver=20110609
+pkgver=20120607
pkgrel=1
pkgdesc="German dictionary for aspell"
arch=('i686' 'x86_64')
@@ -12,7 +12,7 @@ url="http://j3e.de/ispell/igerman98/index.html"
license=('GPL2')
depends=('aspell')
source=("http://j3e.de/ispell/igerman98/dict/igerman98-${pkgver}.tar.bz2")
-md5sums=('6e7ea765b6188c08d470111e221cc91a')
+md5sums=('9433d0ccd7db3c7681037980ece3f710')
build() {
cd "${srcdir}/igerman98-${pkgver}"
diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD
index 3a0a56d26..7a7ec85d7 100644
--- a/extra/cups/PKGBUILD
+++ b/extra/cups/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 160061 2012-05-29 14:41:20Z andyrtr $
+# $Id: PKGBUILD 160812 2012-06-06 15:26:42Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase="cups"
pkgname=('libcups' 'cups')
pkgver=1.5.3
-pkgrel=3
+pkgrel=4
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.cups.org/"
makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
- 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+ 'xinetd' 'gzip' 'autoconf' 'php' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme' 'systemd')
source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
cups-avahi-1-config.patch
cups-avahi-2-backend.patch
@@ -19,6 +19,7 @@ source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
cups-no-export-ssllibs.patch
cups-no-gcrypt.patch
cups-no-gzip-man.patch
+ cups-systemd-socket.patch
cups cups.logrotate cups.pam)
#options=('!emptydirs')
md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
@@ -30,6 +31,7 @@ md5sums=('e1ad15257aa6f162414ea3beae0c5df8'
'9b8467a1e51d360096b70e2c3c081e6c'
'3733c23e77eb503bd94cc368e02830dc'
'c9159ba1233902ba6ddbbe6885a46b72'
+ '4505b8b2c57a7c28ea79e08388bbbbb9'
'9657daa21760bb0b5fa3d8b51d5e01a1'
'f861b18f4446c43918c8643dcbbd7f6d'
'96f82c38f3f540b53f3e5144900acf17')
@@ -44,6 +46,9 @@ build() {
patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
+ # add systemd socket support - Fedora patch, also used in Gentoo
+ patch -Np1 -i ${srcdir}/cups-systemd-socket.patch
+
# Do not export SSL libs in cups-config
patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
@@ -57,6 +62,7 @@ build() {
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libdir=/usr/lib \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
--with-logdir=/var/log/cups \
--with-docdir=/usr/share/cups/doc \
--with-cups-user=daemon \
@@ -116,7 +122,7 @@ backup=(etc/cups/cupsd.conf
etc/logrotate.d/cups
etc/pam.d/cups
etc/xinetd.d/cups-lpd)
-depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'hicolor-icon-theme')
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core' 'libsystemd' 'hicolor-icon-theme')
optdepends=('php: for included phpcups.so module'
'xdg-utils: xdg .desktop file support')
diff --git a/extra/cups/cups-systemd-socket.patch b/extra/cups/cups-systemd-socket.patch
new file mode 100644
index 000000000..09d17d415
--- /dev/null
+++ b/extra/cups/cups-systemd-socket.patch
@@ -0,0 +1,527 @@
+diff -up cups-1.5.2/config.h.in.systemd-socket cups-1.5.2/config.h.in
+--- cups-1.5.2/config.h.in.systemd-socket 2012-03-16 14:50:57.089449755 +0000
++++ cups-1.5.2/config.h.in 2012-03-16 14:50:57.146449787 +0000
+@@ -503,6 +503,13 @@
+
+
+ /*
++ * Do we have systemd support?
++ */
++
++#undef HAVE_SYSTEMD
++
++
++/*
+ * Various scripting languages...
+ */
+
+diff -up cups-1.5.2/config-scripts/cups-systemd.m4.systemd-socket cups-1.5.2/config-scripts/cups-systemd.m4
+--- cups-1.5.2/config-scripts/cups-systemd.m4.systemd-socket 2012-03-16 14:50:57.146449787 +0000
++++ cups-1.5.2/config-scripts/cups-systemd.m4 2012-03-16 14:50:57.146449787 +0000
+@@ -0,0 +1,36 @@
++dnl
++dnl "$Id$"
++dnl
++dnl systemd stuff for CUPS.
++
++dnl Find whether systemd is available
++
++SDLIBS=""
++AC_ARG_WITH([systemdsystemunitdir],
++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
++ [], [with_systemdsystemunitdir=$($PKGCONFIG --variable=systemdsystemunitdir systemd)])
++if test "x$with_systemdsystemunitdir" != xno; then
++ AC_MSG_CHECKING(for libsystemd-daemon)
++ if $PKGCONFIG --exists libsystemd-daemon; then
++ AC_MSG_RESULT(yes)
++ SDCFLAGS=`$PKGCONFIG --cflags libsystemd-daemon`
++ SDLIBS=`$PKGCONFIG --libs libsystemd-daemon`
++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
++ AC_DEFINE(HAVE_SYSTEMD)
++ else
++ AC_MSG_RESULT(no)
++ fi
++fi
++
++if test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ; then
++ SYSTEMD_UNITS="cups.service cups.socket cups.path"
++else
++ SYSTEMD_UNITS=""
++fi
++
++AC_SUBST(SYSTEMD_UNITS)
++AC_SUBST(SDLIBS)
++
++dnl
++dnl "$Id$"
++dnl
+diff -up cups-1.5.2/configure.in.systemd-socket cups-1.5.2/configure.in
+--- cups-1.5.2/configure.in.systemd-socket 2011-08-31 02:36:33.000000000 +0100
++++ cups-1.5.2/configure.in 2012-03-16 14:50:57.146449787 +0000
+@@ -37,6 +37,7 @@ sinclude(config-scripts/cups-pam.m4)
+ sinclude(config-scripts/cups-largefile.m4)
+ sinclude(config-scripts/cups-dnssd.m4)
+ sinclude(config-scripts/cups-launchd.m4)
++sinclude(config-scripts/cups-systemd.m4)
+ sinclude(config-scripts/cups-defaults.m4)
+ sinclude(config-scripts/cups-pdf.m4)
+ sinclude(config-scripts/cups-scripting.m4)
+@@ -71,6 +72,9 @@ AC_OUTPUT(Makedefs
+ conf/snmp.conf
+ cups-config
+ data/testprint
++ data/cups.service
++ data/cups.socket
++ data/cups.path
+ desktop/cups.desktop
+ doc/help/ref-cupsd-conf.html
+ doc/help/standard.html
+diff -up cups-1.5.2/cups/usersys.c.systemd-socket cups-1.5.2/cups/usersys.c
+--- cups-1.5.2/cups/usersys.c.systemd-socket 2012-03-16 14:50:57.054449734 +0000
++++ cups-1.5.2/cups/usersys.c 2012-03-16 14:50:57.148449788 +0000
+@@ -778,7 +778,7 @@ cups_read_client_conf(
+ struct stat sockinfo; /* Domain socket information */
+
+ if (!stat(CUPS_DEFAULT_DOMAINSOCKET, &sockinfo) &&
+- (sockinfo.st_mode & S_IRWXO) == S_IRWXO)
++ (sockinfo.st_mode & (S_IROTH | S_IWOTH)) == (S_IROTH | S_IWOTH))
+ cups_server = CUPS_DEFAULT_DOMAINSOCKET;
+ else
+ #endif /* CUPS_DEFAULT_DOMAINSOCKET */
+diff -up cups-1.5.2/data/cups.path.in.systemd-socket cups-1.5.2/data/cups.path.in
+--- cups-1.5.2/data/cups.path.in.systemd-socket 2012-03-16 14:50:57.148449788 +0000
++++ cups-1.5.2/data/cups.path.in 2012-03-16 14:50:57.148449788 +0000
+@@ -0,0 +1,8 @@
++[Unit]
++Description=CUPS Printer Service Spool
++
++[Path]
++PathExistsGlob=@CUPS_REQUESTS@/d*
++
++[Install]
++WantedBy=multi-user.target
+diff -up cups-1.5.2/data/cups.service.in.systemd-socket cups-1.5.2/data/cups.service.in
+--- cups-1.5.2/data/cups.service.in.systemd-socket 2012-03-16 14:50:57.149449788 +0000
++++ cups-1.5.2/data/cups.service.in 2012-03-16 14:50:57.149449788 +0000
+@@ -0,0 +1,10 @@
++[Unit]
++Description=CUPS Printing Service
++
++[Service]
++ExecStart=@sbindir@/cupsd -f
++PrivateTmp=true
++
++[Install]
++Also=cups.socket cups.path
++WantedBy=printer.target
+diff -up cups-1.5.2/data/cups.socket.in.systemd-socket cups-1.5.2/data/cups.socket.in
+--- cups-1.5.2/data/cups.socket.in.systemd-socket 2012-03-16 14:50:57.150449788 +0000
++++ cups-1.5.2/data/cups.socket.in 2012-03-16 14:50:57.150449788 +0000
+@@ -0,0 +1,11 @@
++[Unit]
++Description=CUPS Printing Service Sockets
++
++[Socket]
++ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@
++ListenStream=631
++ListenDatagram=0.0.0.0:631
++BindIPv6Only=ipv6-only
++
++[Install]
++WantedBy=sockets.target
+diff -up cups-1.5.2/data/Makefile.systemd-socket cups-1.5.2/data/Makefile
+--- cups-1.5.2/data/Makefile.systemd-socket 2011-05-12 06:21:56.000000000 +0100
++++ cups-1.5.2/data/Makefile 2012-03-16 14:50:57.151449789 +0000
+@@ -112,6 +112,12 @@ install-data:
+ $(INSTALL_DATA) $$file $(DATADIR)/ppdc; \
+ done
+ $(INSTALL_DIR) -m 755 $(DATADIR)/profiles
++ if test "x$(SYSTEMD_UNITS)" != "x" ; then \
++ $(INSTALL_DIR) -m 755 $(SYSTEMDUNITDIR); \
++ for file in $(SYSTEMD_UNITS); do \
++ $(INSTALL_DATA) $$file $(SYSTEMDUNITDIR); \
++ done; \
++ fi
+
+
+ #
+@@ -159,6 +165,9 @@ uninstall:
+ -$(RMDIR) $(DATADIR)/charsets
+ -$(RMDIR) $(DATADIR)/banners
+ -$(RMDIR) $(DATADIR)
++ for file in $(SYSTEMD_UNITS); do \
++ $(RM) $(SYSTEMDUNITDIR)/$$file; \
++ done
+
+
+ #
+diff -up cups-1.5.2/Makedefs.in.systemd-socket cups-1.5.2/Makedefs.in
+--- cups-1.5.2/Makedefs.in.systemd-socket 2012-03-16 14:50:57.081449751 +0000
++++ cups-1.5.2/Makedefs.in 2012-03-16 14:50:57.152449790 +0000
+@@ -143,6 +143,7 @@ CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@
+ CXXLIBS = @CXXLIBS@
+ DBUS_NOTIFIER = @DBUS_NOTIFIER@
+ DBUS_NOTIFIERLIBS = @DBUS_NOTIFIERLIBS@
++SYSTEMD_UNITS = @SYSTEMD_UNITS@
+ DNSSD_BACKEND = @DNSSD_BACKEND@
+ DSOFLAGS = -L../cups @DSOFLAGS@
+ DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
+@@ -151,6 +152,7 @@ FONTS = @FONTS@
+ IMGLIBS = @IMGLIBS@
+ IMGFILTERS = @IMGFILTERS@
+ LAUNCHDLIBS = @LAUNCHDLIBS@
++SDLIBS = @SDLIBS@
+ LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \
+ -L../scheduler @LDARCHFLAGS@ \
+ @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM)
+@@ -267,6 +269,7 @@ PAMFILE = @PAMFILE@
+
+ DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@
+ DBUSDIR = @DBUSDIR@
++SYSTEMDUNITDIR = $(BUILDROOT)@systemdsystemunitdir@
+
+
+ #
+diff -up cups-1.5.2/scheduler/client.h.systemd-socket cups-1.5.2/scheduler/client.h
+--- cups-1.5.2/scheduler/client.h.systemd-socket 2011-03-25 21:25:38.000000000 +0000
++++ cups-1.5.2/scheduler/client.h 2012-03-16 14:50:57.153449791 +0000
+@@ -75,6 +75,9 @@ typedef struct
+ int fd; /* File descriptor for this server */
+ http_addr_t address; /* Bind address of socket */
+ http_encryption_t encryption; /* To encrypt or not to encrypt... */
++#ifdef HAVE_SYSTEMD
++ int is_systemd; /* Is this a systemd socket? */
++#endif /* HAVE_SYSTEMD */
+ } cupsd_listener_t;
+
+
+diff -up cups-1.5.2/scheduler/dirsvc.c.systemd-socket cups-1.5.2/scheduler/dirsvc.c
+--- cups-1.5.2/scheduler/dirsvc.c.systemd-socket 2012-03-16 14:50:57.112449768 +0000
++++ cups-1.5.2/scheduler/dirsvc.c 2012-03-16 14:50:57.155449792 +0000
+@@ -1512,7 +1512,7 @@ cupsdStartBrowsing(void)
+ }
+ }
+
+- if (BrowseSocket >= 0)
++ if (BrowseSocket >= 0 && !BrowseSocketIsSystemd)
+ {
+ /*
+ * Bind the socket to browse port...
+@@ -1556,13 +1556,17 @@ cupsdStartBrowsing(void)
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to set broadcast mode - %s.",
+ strerror(errno));
+
++ if (!BrowseSocketIsSystemd)
++ {
+ #ifdef WIN32
+- closesocket(BrowseSocket);
++ closesocket(BrowseSocket);
+ #else
+- close(BrowseSocket);
++ close(BrowseSocket);
+ #endif /* WIN32 */
+
+- BrowseSocket = -1;
++ BrowseSocket = -1;
++ }
++
+ BrowseLocalProtocols &= ~BROWSE_CUPS;
+ BrowseRemoteProtocols &= ~BROWSE_CUPS;
+
+@@ -1885,15 +1889,22 @@ cupsdStopBrowsing(void)
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS) &&
+ BrowseSocket >= 0)
+ {
+- /*
+- * Close the socket and remove it from the input selection set.
+- */
++ if (!BrowseSocketIsSystemd)
++ {
++ /*
++ * Close the socket.
++ */
+
+ #ifdef WIN32
+- closesocket(BrowseSocket);
++ closesocket(BrowseSocket);
+ #else
+- close(BrowseSocket);
++ close(BrowseSocket);
+ #endif /* WIN32 */
++ }
++
++ /*
++ * Remove it from the input selection set.
++ */
+
+ cupsdRemoveSelect(BrowseSocket);
+ BrowseSocket = -1;
+@@ -5693,11 +5704,14 @@ update_cups_browse(void)
+ strerror(errno));
+ cupsdLogMessage(CUPSD_LOG_ERROR, "CUPS browsing turned off.");
+
++ if (!BrowseSocketIsSystemd)
++ {
+ #ifdef WIN32
+- closesocket(BrowseSocket);
++ closesocket(BrowseSocket);
+ #else
+- close(BrowseSocket);
++ close(BrowseSocket);
+ #endif /* WIN32 */
++ }
+
+ cupsdRemoveSelect(BrowseSocket);
+ BrowseSocket = -1;
+diff -up cups-1.5.2/scheduler/dirsvc.h.systemd-socket cups-1.5.2/scheduler/dirsvc.h
+--- cups-1.5.2/scheduler/dirsvc.h.systemd-socket 2012-03-16 14:50:57.113449769 +0000
++++ cups-1.5.2/scheduler/dirsvc.h 2012-03-16 14:50:57.157449792 +0000
+@@ -100,6 +100,8 @@ VAR int Browsing VALUE(TRUE),
+ /* Short names for remote printers? */
+ BrowseSocket VALUE(-1),
+ /* Socket for browsing */
++ BrowseSocketIsSystemd VALUE(0),
++ /* BrowseSocket is systemd-provided? */
+ BrowsePort VALUE(IPP_PORT),
+ /* Port number for broadcasts */
+ BrowseInterval VALUE(DEFAULT_INTERVAL),
+diff -up cups-1.5.2/scheduler/listen.c.systemd-socket cups-1.5.2/scheduler/listen.c
+--- cups-1.5.2/scheduler/listen.c.systemd-socket 2011-04-16 00:38:13.000000000 +0100
++++ cups-1.5.2/scheduler/listen.c 2012-03-16 14:50:57.158449792 +0000
+@@ -401,7 +401,11 @@ cupsdStopListening(void)
+ lis;
+ lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
+ {
+- if (lis->fd != -1)
++ if (lis->fd != -1
++#ifdef HAVE_SYSTEMD
++ && !lis->is_systemd
++#endif /* HAVE_SYSTEMD */
++ )
+ {
+ #ifdef WIN32
+ closesocket(lis->fd);
+diff -up cups-1.5.2/scheduler/main.c.systemd-socket cups-1.5.2/scheduler/main.c
+--- cups-1.5.2/scheduler/main.c.systemd-socket 2012-03-16 14:50:57.121449773 +0000
++++ cups-1.5.2/scheduler/main.c 2012-03-16 14:51:55.409483636 +0000
+@@ -26,6 +26,8 @@
+ * launchd_checkin() - Check-in with launchd and collect the listening
+ * fds.
+ * launchd_checkout() - Update the launchd KeepAlive file as needed.
++ * systemd_checkin() - Check-in with systemd and collect the
++ * listening fds.
+ * parent_handler() - Catch USR1/CHLD signals...
+ * process_children() - Process all dead children...
+ * select_timeout() - Calculate the select timeout value.
+@@ -62,6 +64,10 @@
+ # endif /* !LAUNCH_JOBKEY_SERVICEIPC */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_SYSTEMD
++#include <systemd/sd-daemon.h>
++#endif /* HAVE_SYSTEMD */
++
+ #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
+ # include <malloc.h>
+ #endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
+@@ -78,6 +84,9 @@
+ static void launchd_checkin(void);
+ static void launchd_checkout(void);
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_SYSTEMD
++static void systemd_checkin(void);
++#endif /* HAVE_SYSTEMD */
+ static void parent_handler(int sig);
+ static void process_children(void);
+ static void sigchld_handler(int sig);
+@@ -537,6 +546,13 @@ main(int argc, /* I - Number of comm
+ }
+ #endif /* HAVE_LAUNCHD */
+
++#ifdef HAVE_SYSTEMD
++ /*
++ * If we were started by systemd get the listen sockets file descriptors...
++ */
++ systemd_checkin();
++#endif /* HAVE_SYSTEMD */
++
+ /*
+ * Startup the server...
+ */
+@@ -759,6 +775,15 @@ main(int argc, /* I - Number of comm
+ }
+ #endif /* HAVE_LAUNCHD */
+
++#ifdef HAVE_SYSTEMD
++ /*
++ * If we were started by systemd get the listen sockets file
++ * descriptors...
++ */
++
++ systemd_checkin();
++#endif /* HAVE_SYSTEMD */
++
+ /*
+ * Startup the server...
+ */
+@@ -1584,6 +1609,139 @@ launchd_checkout(void)
+ }
+ #endif /* HAVE_LAUNCHD */
+
++#ifdef HAVE_SYSTEMD
++static void
++systemd_checkin(void)
++{
++ int n, fd;
++
++ n = sd_listen_fds(0);
++ if (n < 0)
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Failed to acquire sockets from systemd - %s",
++ strerror(-n));
++ exit(EXIT_FAILURE);
++ return;
++ }
++
++ if (n == 0)
++ return;
++
++ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd ++)
++ {
++ http_addr_t addr;
++ socklen_t addrlen = sizeof (addr);
++ int r;
++ cupsd_listener_t *lis;
++ char s[256];
++
++ r = sd_is_socket(fd, AF_UNSPEC, SOCK_STREAM, 1);
++ if (r < 0)
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Unable to verify socket type - %s",
++ strerror(-r));
++ continue;
++ }
++
++ if (!r)
++ {
++ if (Browsing &&
++ ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_CUPS))
++ {
++ r = sd_is_socket(fd, AF_UNSPEC, SOCK_DGRAM, 0);
++ if (r < 0)
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Unable to verify socket type - %s",
++ strerror(-r));
++ continue;
++ }
++
++ if (r)
++ {
++ /*
++ * This is the browse socket.
++ */
++
++ char addrstr[256];
++ if (getsockname(fd, (struct sockaddr*) &addr, &addrlen))
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Unable to get local address - %s",
++ strerror(errno));
++ continue;
++ }
++
++ httpAddrString (&addr, addrstr, sizeof (addrstr));
++ BrowseSocket = fd;
++ BrowseSocketIsSystemd = 1;
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "systemd_checkin: Matched browse (port %d) with fd %d:%s...",
++ BrowsePort, fd, addrstr);
++ continue;
++ }
++
++ }
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Socket not of the right type");
++ continue;
++ }
++
++ if (getsockname(fd, (struct sockaddr*) &addr, &addrlen))
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Unable to get local address - %s",
++ strerror(errno));
++ continue;
++ }
++
++ /*
++ * Try to match the systemd socket address to one of the listeners...
++ */
++
++ for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
++ lis;
++ lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
++ if (httpAddrEqual(&lis->address, &addr))
++ break;
++
++ if (lis)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "systemd_checkin: Matched existing listener %s with fd %d...",
++ httpAddrString(&(lis->address), s, sizeof(s)), fd);
++ }
++ else
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "systemd_checkin: Adding new listener %s with fd %d...",
++ httpAddrString(&addr, s, sizeof(s)), fd);
++
++ if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
++ {
++ cupsdLogMessage(CUPSD_LOG_ERROR,
++ "systemd_checkin: Unable to allocate listener - "
++ "%s.", strerror(errno));
++ exit(EXIT_FAILURE);
++ }
++
++ cupsArrayAdd(Listeners, lis);
++
++ memcpy(&lis->address, &addr, sizeof(lis->address));
++ }
++
++ lis->fd = fd;
++ lis->is_systemd = 1;
++
++# ifdef HAVE_SSL
++ if (_httpAddrPort(&(lis->address)) == 443)
++ lis->encryption = HTTP_ENCRYPT_ALWAYS;
++# endif /* HAVE_SSL */
++ }
++}
++#endif /* HAVE_SYSTEMD */
+
+ /*
+ * 'parent_handler()' - Catch USR1/CHLD signals...
+diff -up cups-1.5.2/scheduler/Makefile.systemd-socket cups-1.5.2/scheduler/Makefile
+--- cups-1.5.2/scheduler/Makefile.systemd-socket 2012-03-16 14:50:57.130449778 +0000
++++ cups-1.5.2/scheduler/Makefile 2012-03-16 14:50:57.160449794 +0000
+@@ -382,7 +382,7 @@ cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cu
+ $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \
+ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
+ $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBS) \
+- $(LIBGSSAPI) $(LIBWRAP)
++ $(LIBGSSAPI) $(LIBWRAP) $(SDLIBS)
+
+ cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC)
+ echo Linking $@...
+@@ -390,7 +390,7 @@ cupsd-static: $(CUPSDOBJS) libcupsmime.a
+ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \
+ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \
+ $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \
+- $(LIBWRAP)
++ $(LIBWRAP) $(SDLIBS)
+
+
+ #
diff --git a/extra/dnsmasq/PKGBUILD b/extra/dnsmasq/PKGBUILD
index ed2ec4c1e..1fd617dbe 100644
--- a/extra/dnsmasq/PKGBUILD
+++ b/extra/dnsmasq/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 157810 2012-04-30 00:00:31Z dreisner $
+# $Id: PKGBUILD 160917 2012-06-07 00:05:24Z dreisner $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Contributor: Paul Mattal <paul@archlinux.org>
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=dnsmasq
-pkgver=2.61
+pkgver=2.62
pkgrel=1
pkgdesc="Lightweight, easy to configure DNS forwarder and DHCP server"
url="http://www.thekelleys.org.uk/dnsmasq/doc.html"
@@ -18,7 +18,7 @@ source=("http://www.thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.gz"
'dnsmasq.confd'
'rc.dnsmasq'
'dnsmasq.service')
-md5sums=('6ed0a5c2524dfc3a74ef494ee2469f09'
+md5sums=('f47e5cb8f5bac6343f24b2dbe317ab40'
'66479e99123faeab83ebaed709ef95b5'
'819fbdf6440d710616e6df5f8ca9cdba'
'631d8349acbed1b01d4e11d9f42fdb7d')
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
index 8f0256e4f..447c5564a 100644
--- a/extra/dovecot/PKGBUILD
+++ b/extra/dovecot/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 160790 2012-06-05 20:25:07Z andyrtr $
+# $Id: PKGBUILD 160808 2012-06-06 13:17:41Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Paul Mattal <paul@mattal.com>
# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
@@ -6,7 +6,7 @@
pkgname=dovecot
pkgver=2.1.7
-pkgrel=2
+pkgrel=3
pkgdesc="An IMAP and POP3 server written with security primarily in mind"
arch=('i686' 'x86_64')
url="http://dovecot.org/"
@@ -70,6 +70,6 @@ package() {
rm ${pkgdir}/etc/dovecot/README
# systemd tmpfile
- install -d -m755 ${pkgdir}/etc/tmpfiles.d
- install -m 644 ${srcdir}/dovecot.tmpfilesd ${pkgdir}/etc/tmpfiles.d/dovecot.conf
+ install -d -m755 ${pkgdir}/usr/lib/tmpfiles.d
+ install -m 644 ${srcdir}/dovecot.tmpfilesd ${pkgdir}/usr/lib/tmpfiles.d/dovecot.conf
}
diff --git a/extra/fcitx/PKGBUILD b/extra/fcitx/PKGBUILD
index 7b1b688aa..fdd4caf00 100644
--- a/extra/fcitx/PKGBUILD
+++ b/extra/fcitx/PKGBUILD
@@ -1,17 +1,18 @@
-# $Id: PKGBUILD 158796 2012-05-10 06:10:24Z eric $
+# $Id: PKGBUILD 160913 2012-06-06 22:50:26Z eric $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: csslayer <wengxt AT gmail com>
pkgbase=fcitx
pkgname=('fcitx' 'fcitx-gtk2' 'fcitx-gtk3' 'fcitx-qt')
-pkgver=4.2.3
+pkgver=4.2.4
pkgrel=1
arch=('i686' 'x86_64')
url="http://code.google.com/p/fcitx/"
license=('GPL')
-makedepends=('cmake' 'intltool' 'doxygen' 'gtk2' 'gtk3' 'qt' 'icu')
+makedepends=('cmake' 'intltool' 'doxygen' 'gtk2' 'gtk3' 'qt' 'icu' \
+ 'iso-codes' 'gobject-introspection' 'libxkbfile' 'enchant')
source=(http://fcitx.googlecode.com/files/${pkgbase}-${pkgver}.tar.xz)
-sha1sums=('8cd33487d1d6ad9c9c63743af8d76e667de4b859')
+sha1sums=('68aaf220d3f7e9bfe34062379e22388a44250fc2')
build() {
cd "${srcdir}"
@@ -34,8 +35,8 @@ check() {
package_fcitx() {
pkgdesc="Free Chinese Input Toy of X - Input Method Server for X window system"
- depends=('dbus-core' 'pango' 'libxinerama' 'gtk-update-icon-cache' \
- 'shared-mime-info' 'hicolor-icon-theme' 'desktop-file-utils')
+ depends=('pango' 'libxinerama' 'gtk-update-icon-cache' 'shared-mime-info' \
+ 'hicolor-icon-theme' 'desktop-file-utils' 'libxkbfile' 'enchant')
install=fcitx.install
cd "${srcdir}"/build
diff --git a/extra/gnu-efi/PKGBUILD b/extra/gnu-efi/PKGBUILD
new file mode 100644
index 000000000..35e433aaf
--- /dev/null
+++ b/extra/gnu-efi/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 160800 2012-06-06 10:29:37Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer : Keshav P R <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+_pkgname="gnu-efi"
+_ver="3.0"
+_pkgver="${_ver}q"
+pkgname="${_pkgname}"
+pkgver="${_pkgver}"
+pkgrel=1
+pkgdesc="Library for building UEFI Applications using GNU toolchain"
+url="http://sourceforge.net/projects/gnu-efi/"
+license=('GPL')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('pciutils')
+source=("http://download.sourceforge.net/gnu-efi/gnu-efi_${pkgver}.orig.tar.gz")
+options=(!strip !makeflags)
+
+build() {
+ cd "${srcdir}/gnu-efi-${_ver}"
+ sed 's|-fno-strict-aliasing|-fno-strict-aliasing -fno-stack-protector|g' -i "${srcdir}/gnu-efi-${_ver}/Make.defaults" || true
+ CFLAGS="" make
+ make -C apps clean all
+}
+
+package() {
+ cd "${srcdir}/gnu-efi-${_ver}"
+ make INSTALLROOT="${pkgdir}/usr/" install
+ install -d "${pkgdir}/usr/share/gnu-efi/"
+ install -D -m0644 "${srcdir}/gnu-efi-${_ver}/apps"/*.efi "${pkgdir}/usr/share/gnu-efi/"
+}
+md5sums=('698d93490e0c0171aa0e2a8eda44209f')
diff --git a/extra/mod_perl/PKGBUILD b/extra/mod_perl/PKGBUILD
index f333c0aeb..dd9d26bc2 100644
--- a/extra/mod_perl/PKGBUILD
+++ b/extra/mod_perl/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 160497 2012-06-02 10:26:43Z bluewind $
+# $Id: PKGBUILD 160911 2012-06-06 19:20:20Z foutrelis $
# Maintainer:
# Contributor: Firmicus <francois.archlinux.org>
# Contributor: Tom K <tomk@runbox.com>
pkgname=mod_perl
-pkgver=2.0.6
+pkgver=2.0.7
pkgrel=1
pkgdesc="Apache module that embeds the Perl interpreter within the server"
arch=('i686' 'x86_64')
@@ -13,11 +13,9 @@ license=('APACHE')
depends=('perl' 'apache' 'db' 'apr-util' 'perl-linux-pid')
options=('!emptydirs')
source=(http://perl.apache.org/dist/$pkgname-$pkgver.tar.gz
- mod_perl-2.0.6-nolfs.patch
- mod_perl-2.0.6-perl-5.16-fixes.patch)
-sha256sums=('8cf768d2c55291e10542ef8d9a4f4ebe835365e43b4584771e654079405827dc'
- '5d1b6a051d847108b23b5dc06ea5885c37dd81d3a9156b69d179d95b5cf92f08'
- 'c6cde22806b1b2d919545b21c49536c8c377c8d1f921e8948e1289bb2ab413d9')
+ mod_perl-2.0.6-nolfs.patch)
+sha256sums=('53414be9db843054b927f23a35edb7b82d99e32e031b3cd81d5ff2473f51e3c6'
+ '5d1b6a051d847108b23b5dc06ea5885c37dd81d3a9156b69d179d95b5cf92f08')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -28,10 +26,6 @@ build() {
# structures to be invalid if only the apache flags are used
patch -Np1 -i "$srcdir/mod_perl-2.0.6-nolfs.patch"
- # Fix build with Perl 5.16
- # http://search.cpan.org/dist/perl-5.16.0/pod/perldelta.pod#$%3C,_$%3E,_$%28_and_$%29_are_no_longer_cached
- patch -Np1 -i "$srcdir/mod_perl-2.0.6-perl-5.16-fixes.patch"
-
# install module in vendor directories.
perl Makefile.PL INSTALLDIRS=vendor MP_APXS=/usr/sbin/apxs
make
diff --git a/extra/mx/PKGBUILD b/extra/mx/PKGBUILD
index 380fe3732..176ca7f69 100644
--- a/extra/mx/PKGBUILD
+++ b/extra/mx/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 156936 2012-04-23 09:09:25Z ibiru $
+# $Id: PKGBUILD 160919 2012-06-07 00:15:28Z heftig $
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Guenther Wutz <admin@wutzara.de>
pkgname=mx
-pkgver=1.4.3
-pkgrel=2
+pkgver=1.4.6
+pkgrel=1
pkgdesc="A widget toolkit using Clutter"
arch=('i686' 'x86_64')
url="http://www.clutter-project.org"
@@ -13,7 +13,7 @@ depends=('clutter' 'libxrandr' 'dbus-glib' 'gtk2' 'startup-notification')
makedepends=('intltool' 'gobject-introspection' 'gtk-doc')
options=('!libtool')
source=("http://source.clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz")
-sha256sums=('d0c259a7bcaf130a17cef00ed4c7118287f05790a6b50bcffa02668130336eb5')
+sha256sums=('20fd8e1463d84c791c20dd1e021bc18041b05ad095a1acbaace7bf0dd43d09f2')
build() {
cd ${pkgname}-${pkgver}
diff --git a/extra/quodlibet/PKGBUILD b/extra/quodlibet/PKGBUILD
index c2341188c..c1dadacce 100644
--- a/extra/quodlibet/PKGBUILD
+++ b/extra/quodlibet/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 153859 2012-03-20 06:20:55Z eric $
+# $Id: PKGBUILD 160925 2012-06-07 02:14:07Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=quodlibet
pkgver=2.4
-pkgrel=1
+pkgrel=2
pkgdesc="An audio player written in pygtk"
arch=('i686' 'x86_64')
license=('GPL2')
@@ -13,10 +13,10 @@ depends=('gstreamer0.10-python' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good
makedepends=('intltool')
optdepends=('gstreamer0.10-ffmpeg: for ffmpeg (ASF/WMA) support '
'gstreamer0.10-bad-plugins: for MPEG-4 (AAC) and Musepack support'
- 'dbus-python: for dbus support'
+ 'python2-dbus: for dbus support'
'notification-daemon: for notification support'
'libgpod: for ipod support'
- 'python-feedparser: for audio feeds (podcast) support'
+ 'python2-feedparser: for audio feeds (podcast) support'
'udisks: for media devices support'
'media-player-info: for media devices support')
options=('!makeflags')
@@ -26,6 +26,7 @@ sha1sums=('7e11cda2827bb0d04b7d2b7854b8a2854ed074c8')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
sed -i 's#env python#env python2#' *.py quodlibet/util/fmps.py
+ sed -i 's#libudev.so.0#libudev.so.1#' quodlibet/devices/__init__.py
./setup.py build
}
diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD
index cbc430fb4..507eaed33 100644
--- a/extra/vim/PKGBUILD
+++ b/extra/vim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 160579 2012-06-02 10:29:06Z bluewind $
+# $Id: PKGBUILD 160931 2012-06-07 03:39:59Z tdziedzic $
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Maintainer: tobias [ tobias at archlinux org ]
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
@@ -6,11 +6,11 @@
pkgbase=vim
pkgname=('vim' 'gvim' 'vim-runtime')
_topver=7.3
-_patchlevel=515
-__hgrev=8201108e9cf0
+_patchlevel=547
+__hgrev=6f2497d0c277
_versiondir="vim${_topver//./}"
pkgver=${_topver}.${_patchlevel}
-pkgrel=2
+pkgrel=1
arch=('i686' 'x86_64')
license=('custom:vim')
url="http://www.vim.org"
@@ -21,8 +21,8 @@ source=("ftp://ftp.archlinux.org/other/vim/vim-${pkgver}.tar.xz"
'vimrc'
'archlinux.vim'
'gvim.desktop')
-sha1sums=('10d7642d5062effdb51f53952622f9338003bbbf'
- '0c1c584c1a2a2a279507f793cd5eff82863c625b'
+sha1sums=('2c4f78a66b6ad7a759122d1f66c74079b678f39c'
+ '999f527d82a4c7818d017e3b8230e27950e87718'
'4d9dcfb32874aa5467e6f06e418aeb4e675daaf2'
'3494baf53a63581ba69f86a81293640ff681c5c5'
'25dd3c2ce436e73a367c8f73b68f7f6889682437'
diff --git a/kernels/linux-libre-rt/PKGBUILD b/kernels/linux-libre-rt/PKGBUILD
index 7c4870f1a..9c07ee16c 100644
--- a/kernels/linux-libre-rt/PKGBUILD
+++ b/kernels/linux-libre-rt/PKGBUILD
@@ -13,8 +13,8 @@ pkgname=('linux-libre-rt' 'linux-libre-rt-headers') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=-LIBRE-RT
_basekernel=3.2
-_releasever=16
-_rtpatchver=rt27
+_releasever=19
+_rtpatchver=rt30
_pkgver=${_basekernel}.${_releasever}
pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
pkgrel=1
@@ -35,10 +35,10 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'i915-fix-ghost-tv-output.patch'
'ext4-options.patch')
md5sums=('65c669b6e4888db84a80882461851867'
- '88427253e35474302c40ab1d4843a9aa'
- 'f003895eb0231f829f74f93921568d53'
- '6141ab0cb60a5cf9e6ee3bdf8c8c79b1'
- 'c2f3423d7c7d8e5776e961b75a52a3fc'
+ '87d9a426bda3bdc58fcb5f002c459adb'
+ 'bb7b98d1186edd0544cefc7499d3740b'
+ '824bb5f926d00d499f3a2a68f06d9760'
+ '84d96cded290680ec2b875e2223deff9'
'82496e68851d1960543a07ba51cdb44a'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
@@ -53,7 +53,7 @@ build() {
fi
# add realtime patch
- patch -Np1 -i "${srcdir}/patch-${_pkgver}-${_rtpatchver}.patch"
+ patch -p1 -i "${srcdir}/patch-${_pkgver}-${_rtpatchver}.patch"
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
@@ -67,6 +67,7 @@ build() {
# needed.
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
+ # Patch submitted upstream, waiting for inclusion:
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
diff --git a/kernels/linux-libre-rt/config.i686 b/kernels/linux-libre-rt/config.i686
index 749ad1e09..7ae7c1d78 100644
--- a/kernels/linux-libre-rt/config.i686
+++ b/kernels/linux-libre-rt/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.2.2 Kernel Configuration
+# Linux/i386 3.2.18 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -106,7 +106,6 @@ CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
-# CONFIG_TREE_RCU is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
@@ -186,7 +185,6 @@ CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
-# CONFIG_SLUB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
@@ -419,8 +417,6 @@ CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
-# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -5048,7 +5044,6 @@ CONFIG_R8187SE=m
CONFIG_RTL8192U=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
diff --git a/kernels/linux-libre-rt/config.x86_64 b/kernels/linux-libre-rt/config.x86_64
index 13386d7f3..57f66119a 100644
--- a/kernels/linux-libre-rt/config.x86_64
+++ b/kernels/linux-libre-rt/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.2.2 Kernel Configuration
+# Linux/x86_64 3.2.18 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -108,7 +108,6 @@ CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
-# CONFIG_TREE_RCU is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
@@ -188,7 +187,6 @@ CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
-# CONFIG_SLUB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
@@ -405,8 +403,6 @@ CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
-# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -4809,7 +4805,6 @@ CONFIG_R8187SE=m
CONFIG_RTL8192U=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
-CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
diff --git a/kernels/linux-libre-rt/linux-libre-rt.install b/kernels/linux-libre-rt/linux-libre-rt.install
index 5f73fb8fb..407bf32c1 100644
--- a/kernels/linux-libre-rt/linux-libre-rt.install
+++ b/kernels/linux-libre-rt/linux-libre-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-rt
-KERNEL_VERSION=3.2.16-1-rt27-LIBRE-RT
+KERNEL_VERSION=3.2.19-1-rt30-LIBRE-RT
post_install () {
# updating module dependencies
@@ -28,7 +28,7 @@ post_install () {
post_upgrade() {
pacman -Q grub &>/dev/null
hasgrub=$?
- pacman -Q grub2 &>/dev/null
+ pacman -Q grub2-common &>/dev/null
hasgrub2=$?
pacman -Q lilo &>/dev/null
haslilo=$?
@@ -44,12 +44,8 @@ post_upgrade() {
echo ">>>"
fi
- if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then
- if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then
- echo "WARNING: /boot appears to be a seperate partition but is not mounted"
- echo " This is most likely not what you want. Please mount your /boot"
- echo " partition and reinstall the kernel unless you are sure this is OK"
- fi
+ if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
+ echo "WARNING: /boot appears to be a separate partition but is not mounted."
fi
# updating module dependencies
diff --git a/libre/apache-ant/PKGBUILD b/libre/apache-ant/PKGBUILD
index b6b429442..77e0dfe94 100644
--- a/libre/apache-ant/PKGBUILD
+++ b/libre/apache-ant/PKGBUILD
@@ -3,13 +3,13 @@
# Contributor: Andrew Wright <andreww@photism.org>
pkgname=apache-ant
-pkgver=1.8.2
+pkgver=1.8.4
provides=("apache-ant-libre=$pkgver")
replaces=("apache-ant-libre")
conflicts=("apache-ant-libre")
-pkgrel=4.2
+pkgrel=1.1
pkgdesc="A Java-based build tool"
arch=('any')
license=('Apache')
@@ -64,12 +64,14 @@ build() {
ln -sf ${jar%::*} lib/optional/`basename ${jar/*::}`
done
# Build
+ source "/etc/profile.d/jdk.sh" # Get the JAVA_HOME env var
sh build.sh -Ddist.dir="${srcdir}"/${pkgname}-${pkgver}-bin dist
}
package() {
cd "${srcdir}"/${pkgname}-${pkgver}-bin
- source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var
+ source "${srcdir}"/${pkgname}.sh # Get the ANT_HOME env var
+ source "/etc/profile.d/jdk.sh" # Get the JAVA_HOME env var
## Install profile.d script
install -d "${pkgdir}"/etc/profile.d
@@ -103,6 +105,6 @@ package() {
ln -sf ${ANT_HOME}/{LICENSE,NOTICE} "${pkgdir}"/usr/share/licenses/${pkgname}
}
-md5sums=('0d9e108afcd15b820150b8085c96d2b1'
+md5sums=('c474fa9d0c35a24037c23b6e476862c1'
'bd63c881be406f515fc4d22635e8326a'
- '298e8ba2e99ccda7706113ea37e030f2')
+ 'aaa615512cbe1ed7f3b62c1ff46802f8')
diff --git a/libre/apache-ant/apache-ant.csh b/libre/apache-ant/apache-ant.csh
index 490a17b65..fdc04b2f8 100644
--- a/libre/apache-ant/apache-ant.csh
+++ b/libre/apache-ant/apache-ant.csh
@@ -1,3 +1,2 @@
#!/bin/csh
-setenv ANT_HOME /usr/share/java/apache-ant
-setenv PATH ${PATH}:${ANT_HOME}/bin
+setenv ANT_HOME /opt/apache-ant
diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD
index 84a6f47fa..840a7f922 100644
--- a/libre/your-freedom/PKGBUILD
+++ b/libre/your-freedom/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Parabola Project <dev@list.parabolagnulinux.org>
pkgname=your-freedom
pkgver=$(LC_ALL=C date -u +%Y%m%d)
-pkgrel=1
+pkgrel=3
pkgdesc="This package conflicts with every unfree package known to date to ensure your system is free."
arch=('any')
url="https://parabolagnulinux.org"
@@ -23,4 +23,5 @@ package() {
sort -u
))
}
-md5sums=('0025025765e754425e381e8e2d136740')
+
+md5sums=('e2527b2b2bada2b4115f72bccef281c3')
diff --git a/multilib/lib32-libphobos-ldc/PKGBUILD b/multilib/lib32-libphobos-ldc/PKGBUILD
new file mode 100644
index 000000000..949ed5e59
--- /dev/null
+++ b/multilib/lib32-libphobos-ldc/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 72029 2012-06-06 11:58:40Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+pkgname=lib32-libphobos-ldc
+pkgver=20120606
+pkgrel=1
+pkgdesc="libphobos for ldc (32-bit)"
+arch=('x86_64')
+url="http://www.dsource.org/projects/ldc"
+license=('BSD')
+depends=('llvm' 'libconfig')
+makedepends=('git' 'cmake')
+source=()
+md5sums=()
+
+_gitroot=git://github.com/ldc-developers/ldc.git
+_gitname=ldc
+_gitbranch=llvm-3.1
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [[ -d "$_gitname" ]]; then
+ cd "$_gitname" && git pull origin
+ msg "The local files are updated."
+ else
+ git clone --branch "$_gitbranch" "$_gitroot" "$_gitname"
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting build..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone --recursive "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ mkdir build && cd build
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINCLUDE_INSTALL_DIR=/usr/include/d/std-ldc \
+ -DMULTILIB=ON \
+ ..
+ make
+}
+
+package() {
+ cd "$srcdir/$_gitname-build"
+
+ cd build
+ make DESTDIR=$pkgdir install
+ cd ..
+
+ # We don't want anything but the 32-bit libs
+ rm -rf $pkgdir/usr/{share,lib,include,bin} $pkgdir/etc
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/testing/psmisc/PKGBUILD b/testing/psmisc/PKGBUILD
new file mode 100644
index 000000000..9d560be15
--- /dev/null
+++ b/testing/psmisc/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 160929 2012-06-07 03:03:32Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=psmisc
+pkgver=22.17
+pkgrel=1
+pkgdesc="Miscellaneous procfs tools"
+arch=('i686' 'x86_64')
+url="http://psmisc.sourceforge.net/index.html"
+license=('GPL')
+groups=('base')
+depends=('ncurses')
+source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('5d400710cf030bf7396aec40f53e933942ec8b4a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/systemd/0001-Reinstate-TIMEOUT-handling.patch b/testing/systemd/0001-Reinstate-TIMEOUT-handling.patch
new file mode 100644
index 000000000..766dcb87f
--- /dev/null
+++ b/testing/systemd/0001-Reinstate-TIMEOUT-handling.patch
@@ -0,0 +1,124 @@
+From 2127f99fb43d2ef950e95329ce40bdd5da8b015c Mon Sep 17 00:00:00 2001
+From: Dave Reisner <dreisner@archlinux.org>
+Date: Fri, 25 May 2012 19:43:24 -0400
+Subject: [PATCH] Reinstate TIMEOUT= handling
+
+This is mostly to deal with ipw2?00 drivers which have yet to be fixed
+in the kernel.
+---
+ src/libudev/libudev-device.c | 19 +++++++++++++++++++
+ src/libudev/libudev-private.h | 1 +
+ src/udev/udevd.c | 13 ++++++++++---
+ 3 files changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
+index a8277d1..5966189 100644
+--- a/src/libudev/libudev-device.c
++++ b/src/libudev/libudev-device.c
+@@ -68,6 +68,7 @@ struct udev_device {
+ struct udev_list tags_list;
+ unsigned long long int seqnum;
+ unsigned long long int usec_initialized;
++ int timeout;
+ int devlink_priority;
+ int refcount;
+ dev_t devnum;
+@@ -89,6 +90,21 @@ struct udev_device {
+ bool db_persist;
+ };
+
++int udev_device_get_timeout(struct udev_device *udev_device)
++{
++ return udev_device->timeout;
++}
++
++static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
++{
++ char num[32];
++
++ udev_device->timeout = timeout;
++ snprintf(num, sizeof(num), "%u", timeout);
++ udev_device_add_property(udev_device, "TIMEOUT", num);
++ return 0;
++}
++
+ /**
+ * udev_device_get_seqnum:
+ * @udev_device: udev device
+@@ -362,6 +378,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
+
+ util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys", &property[8], NULL);
+ udev_device_set_syspath(udev_device, path);
++ } else if (strncmp(property, "TIMEOUT=", 8) == 0) {
++ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10));
+ } else if (startswith(property, "SUBSYSTEM=")) {
+ udev_device_set_subsystem(udev_device, &property[10]);
+ } else if (startswith(property, "DEVTYPE=")) {
+@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(struct udev *udev)
+ udev_list_init(udev, &udev_device->sysattr_value_list, true);
+ udev_list_init(udev, &udev_device->sysattr_list, false);
+ udev_list_init(udev, &udev_device->tags_list, true);
++ udev_device->timeout = -1;
+ udev_device->watch_handle = -1;
+ /* copy global properties */
+ udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
+diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
+index 4eb4a59..99aefeb 100644
+--- a/src/libudev/libudev-private.h
++++ b/src/libudev/libudev-private.h
+@@ -70,6 +70,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device);
+ void udev_device_set_is_initialized(struct udev_device *udev_device);
+ int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
+ void udev_device_cleanup_tags_list(struct udev_device *udev_device);
++int udev_device_get_timeout(struct udev_device *udev_device);
+ unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
+ void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
+ int udev_device_get_devlink_priority(struct udev_device *udev_device);
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index 0d85960..cd24462 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -384,7 +384,7 @@ out:
+ }
+ }
+
+-static void event_run(struct event *event)
++static void event_run(struct event *event, bool force)
+ {
+ struct udev_list_node *loop;
+
+@@ -410,7 +410,7 @@ static void event_run(struct event *event)
+ return;
+ }
+
+- if (children >= children_max) {
++ if (!force && children >= children_max) {
+ if (children_max > 1)
+ log_debug("maximum number (%i) of children reached\n", children);
+ return;
+@@ -444,6 +444,13 @@ static int event_queue_insert(struct udev_device *dev)
+
+ event->state = EVENT_QUEUED;
+ udev_list_node_append(&event->node, &event_list);
++
++ /* run all events with a timeout set immediately */
++ if (udev_device_get_timeout(dev) > 0) {
++ event_run(event, true);
++ return 0;
++ }
++
+ return 0;
+ }
+
+@@ -549,7 +556,7 @@ static void event_queue_start(struct udev *udev)
+ if (is_devpath_busy(event))
+ continue;
+
+- event_run(event);
++ event_run(event, false);
+ }
+ }
+
+--
+1.7.10.2
+
diff --git a/testing/systemd/PKGBUILD b/testing/systemd/PKGBUILD
new file mode 100644
index 000000000..06b3ac5f0
--- /dev/null
+++ b/testing/systemd/PKGBUILD
@@ -0,0 +1,208 @@
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Contributor: Tom Gundersen <teg@jklm.no>
+
+pkgbase=systemd
+pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat')
+pkgver=185
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2' 'LGPL2.1' 'MIT')
+makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf'
+ 'gtk-doc' 'intltool' 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'xz')
+options=('!libtool')
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
+ 'initcpio-hook-udev'
+ 'initcpio-install-udev'
+ 'initcpio-install-timestamp'
+ '0001-Reinstate-TIMEOUT-handling.patch'
+ 'locale.sh')
+md5sums=('a7dbbf05986eb0d2c164ec8e570eb78f'
+ 'e99e9189aa2f6084ac28b8ddf605aeb8'
+ '59e91c4d7a69b7bf12c86a9982e37ced'
+ 'df69615503ad293c9ddf9d8b7755282d'
+ '5543be25f205f853a21fa5ee68e03f0d'
+ 'f15956945052bb911e5df81cf5e7e5dc')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ # still waiting on ipw2x00 to get fixed...
+ patch -Np1 <"$srcdir/0001-Reinstate-TIMEOUT-handling.patch"
+
+ ./configure \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --enable-split-usr \
+ --enable-introspection \
+ --enable-gtk-doc \
+ --disable-audit \
+ --disable-ima \
+ --with-pamlibdir=/usr/lib/security \
+ --with-distro=arch \
+ --with-usb-ids-path=/usr/share/hwdata/usb.ids \
+ --with-pci-ids-path=/usr/share/hwdata/pci.ids \
+ --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware
+
+ make
+}
+
+package_systemd() {
+ pkgdesc="system and service manager"
+ depends=('acl' 'dbus-core' "libsystemd=$pkgver" 'kmod' 'libcap' 'pam'
+ "systemd-tools=$pkgver" 'util-linux' 'xz')
+ optdepends=('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/logind.conf
+ etc/systemd/journald.conf)
+ install="systemd.install"
+
+ make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+
+ printf "d /run/console 0755 root root\n" > "$pkgdir/usr/lib/tmpfiles.d/console.conf"
+
+ install -dm755 "$pkgdir/bin"
+ ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd"
+
+ # fix systemd-analyze for python2
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # 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"
+
+ # don't write units to /etc by default -- we'll enable this on post_install
+ # as a sane default
+ rm "$pkgdir/etc/systemd/system/getty.target.wants/getty@tty1.service"
+ rmdir "$pkgdir/etc/systemd/system/getty.target.wants"
+
+ ### split off libsystemd (libs, includes, pkgconfig, man3)
+ rm -rf "$srcdir/_libsystemd"
+ 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
+
+ ### split out manpages for sysvcompat
+ rm -rf "$srcdir/_sysvcompat"
+ install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/
+ mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \
+ "$srcdir"/_sysvcompat/usr/share/man/man8
+
+ ### split out systemd-tools/udev
+ rm -rf "$srcdir/_tools"
+ install -dm755 \
+ "$srcdir"/_tools/etc/udev \
+ "$srcdir"/_tools/usr/bin \
+ "$srcdir"/_tools/usr/include \
+ "$srcdir"/_tools/usr/lib/udev \
+ "$srcdir"/_tools/usr/lib/systemd/system/{sysinit,sockets}.target.wants \
+ "$srcdir"/_tools/usr/lib/girepository-1.0 \
+ "$srcdir"/_tools/usr/share/pkgconfig \
+ "$srcdir"/_tools/usr/share/gir-1.0 \
+ "$srcdir"/_tools/usr/share/gtk-doc/html/{g,lib}udev \
+ "$srcdir"/_tools/usr/share/man/man{1,5,7,8}
+
+ cd "$srcdir/_tools"
+ mv "$pkgdir"/etc/udev etc
+ mv "$pkgdir"/etc/{binfmt,modules-load,sysctl,tmpfiles}.d etc
+ mv "$pkgdir"/usr/bin/udevadm usr/bin
+ mv "$pkgdir"/usr/lib/pkgconfig usr/lib
+ mv "$pkgdir"/usr/lib/systemd/systemd-udevd usr/lib/systemd
+ mv "$pkgdir"/usr/lib/systemd/system/systemd-udev* usr/lib/systemd/system
+ mv "$pkgdir"/usr/lib/systemd/system/sysinit.target.wants/systemd-udev* usr/lib/systemd/system/sysinit.target.wants
+ mv "$pkgdir"/usr/lib/systemd/system/sockets.target.wants/systemd-udev* usr/lib/systemd/system/sockets.target.wants
+ mv "$pkgdir"/usr/lib/lib{,g}udev* usr/lib
+ mv "$pkgdir"/usr/lib/{binfmt,sysctl,modules-load,tmpfiles}.d usr/lib
+ mv "$pkgdir"/usr/lib/udev usr/lib
+ mv "$pkgdir"/usr/include/{libudev.h,gudev-1.0} usr/include
+ mv "$pkgdir"/usr/lib/girepository-1.0 usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig/udev.pc usr/share/pkgconfig
+ mv "$pkgdir"/usr/share/gir-1.0 usr/share
+ mv "$pkgdir"/usr/share/gtk-doc/html/{g,lib}udev usr/share/gtk-doc/html
+ mv "$pkgdir"/usr/share/man/man7/udev.7 usr/share/man/man7
+ mv "$pkgdir"/usr/share/man/man8/{systemd-udevd,udevadm}.8 usr/share/man/man8
+ mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt}.1 usr/share/man/man1
+ mv "$pkgdir"/usr/share/man/man5/{binfmt,modules-load,sysctl,tmpfiles}.d.5 usr/share/man/man5
+ mv "$pkgdir"/usr/share/man/man5/{hostname,{vconsole,locale}.conf}.5 usr/share/man/man5
+ mv "$pkgdir"/usr/bin/systemd-{ask-password,delta,detect-virt,tmpfiles,tty-ask-password-agent} usr/bin
+ mv "$pkgdir"/usr/lib/systemd/systemd-{ac-power,binfmt,cryptsetup,modules-load,random-seed,remount-fs,reply-password,sysctl,timestamp,vconsole-setup} usr/lib/systemd
+}
+
+package_systemd-sysvcompat() {
+ pkgdesc="sysvinit compat for systemd"
+ conflicts=('sysvinit' 'initscripts')
+
+ mv "$srcdir/_sysvcompat"/* "$pkgdir"
+
+ install -dm755 "$pkgdir/sbin"
+ for tool in runlevel reboot shutdown poweroff halt telinit; do
+ ln -s '/usr/bin/systemctl' "$pkgdir/sbin/$tool"
+ done
+
+ ln -s '../usr/lib/systemd/systemd' "$pkgdir/sbin/init"
+
+ install -Dm755 "$srcdir/locale.sh" "$pkgdir/etc/profile.d/locale.sh"
+}
+
+package_libsystemd() {
+ pkgdesc="systemd client libraries"
+ depends=('xz')
+
+ mv "$srcdir/_libsystemd"/* "$pkgdir"
+}
+
+package_systemd-tools() {
+ pkgdesc='standalone tools from systemd'
+ url='http://www.freedesktop.org/wiki/Software/systemd'
+ depends=('acl' 'bash' 'glibc' 'glib2' 'kmod' 'hwids' 'util-linux' 'kbd')
+ optdepends=('cryptsetup: required for encrypted block devices')
+ provides=("udev=$pkgver")
+ conflicts=('udev')
+ replaces=('udev')
+ install='systemd-tools.install'
+
+ mv "$srcdir/_tools/"* "$pkgdir"
+
+ # the path to udevadm is hardcoded in some places
+ install -d "$pkgdir/sbin"
+ ln -s ../usr/bin/udevadm "$pkgdir/sbin/udevadm"
+
+ # udevd is no longer udevd because systemd. why isn't udevadm now udevctl?
+ ln -s ../lib/systemd/systemd-udevd "$pkgdir/usr/bin/udevd"
+ ln -s ../systemd/systemd-udevd "$pkgdir/usr/lib/udev/udevd"
+
+ # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
+ sed -i 's#GROUP="dialout"#GROUP="uucp"#g;
+ s#GROUP="tape"#GROUP="storage"#g;
+ s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules
+
+ # get rid of unneded lock directories
+ sed -ri '/\/run\/lock\/(subsys|lockdev)/d' "$pkgdir"/usr/lib/tmpfiles.d/legacy.conf
+
+ # add mkinitcpio hooks
+ install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev"
+ install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev"
+ install -Dm644 "$srcdir/initcpio-install-timestamp" "$pkgdir/usr/lib/initcpio/install/timestamp"
+
+ # XXX: kill off coredump rule until the journal can recover coredumps
+ # this file needs to come back as part of systemd, not systemd-tools
+ rm "$pkgdir/usr/lib/sysctl.d/coredump.conf"
+}
+
+# vim: ft=sh syn=sh et
diff --git a/testing/systemd/initcpio-hook-udev b/testing/systemd/initcpio-hook-udev
new file mode 100644
index 000000000..75da7e4a8
--- /dev/null
+++ b/testing/systemd/initcpio-hook-udev
@@ -0,0 +1,20 @@
+#!/usr/bin/ash
+
+run_earlyhook() {
+ udevd --daemon --resolve-names=never
+ udevd_running=1
+}
+
+run_hook() {
+ msg ":: Triggering uevents..."
+ udevadm trigger --action=add --type=subsystems
+ udevadm trigger --action=add --type=devices
+ udevadm settle
+}
+
+run_cleanuphook() {
+ udevadm control --exit
+ udevadm info --cleanup-db
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/testing/systemd/initcpio-install-timestamp b/testing/systemd/initcpio-install-timestamp
new file mode 100644
index 000000000..259cc705b
--- /dev/null
+++ b/testing/systemd/initcpio-install-timestamp
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+build() {
+ add_binary /usr/lib/systemd/systemd-timestamp /usr/bin/systemd-timestamp
+}
+
+help() {
+ cat <<HELPEOF
+Provides support for RD_TIMESTAMP in early userspace, which can be read by a
+program such as systemd-analyze to determine boot time.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/testing/systemd/initcpio-install-udev b/testing/systemd/initcpio-install-udev
new file mode 100644
index 000000000..762429983
--- /dev/null
+++ b/testing/systemd/initcpio-install-udev
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+build() {
+ local rules tool
+
+ add_file "/etc/udev/udev.conf"
+ add_binary /usr/lib/systemd/systemd-udevd /usr/bin/udevd
+ add_binary /usr/bin/udevadm
+
+ for rules in 50-udev-default.rules 60-persistent-storage.rules 80-drivers.rules; do
+ add_file "/usr/lib/udev/rules.d/$rules"
+ done
+ for tool in ata_id scsi_id; do
+ add_file "/usr/lib/udev/$tool"
+ done
+
+ add_runscript
+}
+
+help() {
+ cat <<HELPEOF
+This hook will use udev to create your root device node and detect the needed
+modules for your root device. It is also required for firmware loading in
+initramfs. It is recommended to use this hook.
+HELPEOF
+}
+
+# vim: set ft=sh ts=4 sw=4 et:
diff --git a/testing/systemd/locale.sh b/testing/systemd/locale.sh
new file mode 100644
index 000000000..a4c413eed
--- /dev/null
+++ b/testing/systemd/locale.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+if [ ! -r /etc/locale.conf ]; then
+ return
+fi
+
+. /etc/locale.conf
+
+if [ "${LANG+x}" = 'x' ]; then
+ export LANG
+fi
+
+if [ "${LC_CTYPE+x}" = 'x' ]; then
+ export LC_CTYPE
+fi
+
+if [ "${LC_NUMERIC+x}" = 'x' ]; then
+ export LC_NUMERIC
+fi
+
+if [ "${LC_TIME+x}" = 'x' ]; then
+ export LC_TIME
+fi
+
+if [ "${LC_COLLATE+x}" = 'x' ]; then
+ export LC_COLLATE
+fi
+
+if [ "${LC_MONETARY+x}" = 'x' ]; then
+ export LC_MONETARY
+fi
+
+if [ "${LC_MESSAGES+x}" = 'x' ]; then
+ export LC_MESSAGES
+fi
+
+if [ "${LC_PAPER+x}" = 'x' ]; then
+ export LC_PAPER
+fi
+
+if [ "${LC_NAME+x}" = 'x' ]; then
+ export LC_NAME
+fi
+
+if [ "${LC_ADDRESS+x}" = 'x' ]; then
+ export LC_ADDRESS
+fi
+
+if [ "${LC_TELEPHONE+x}" = 'x' ]; then
+ export LC_TELEPHONE
+fi
+
+if [ "${LC_MEASUREMENT+x}" = 'x' ]; then
+ export LC_MEASUREMENT
+fi
+
+if [ "${LC_IDENTIFICATION+x}" = 'x' ]; then
+ export LC_IDENTIFICATION
+fi
+
diff --git a/testing/systemd/systemd-tools.install b/testing/systemd/systemd-tools.install
new file mode 100644
index 000000000..c1c19d15d
--- /dev/null
+++ b/testing/systemd/systemd-tools.install
@@ -0,0 +1,29 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 174)" -lt 0 ]; then
+ echo " * We now use upstream rules for assigning devices to the 'disk', 'optical',"
+ echo " 'scanner' and 'video' groups. Beware of any changes."
+ echo " * We no longer create symlinks from /dev/<dev> to /dev/<dev>0."
+ echo " * For security reasons, we no longer add devices to the 'storage' group. Use"
+ echo " udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want"
+ echo " this functionality back."
+ echo " * We no longer create the static nodes on install needed for an initrd-less"
+ echo " boot where devtmpfs is not mounted by the kernel, this only affects fresh"
+ echo " installs."
+ fi
+ if [ "$(vercmp $2 175)" -lt 0 ]; then
+ echo " * devtmpfs support is now a hard requirement. Users of the official Arch"
+ echo " kernels have this enabled."
+ fi
+ if [ "$(vercmp $2 181)" -lt 0 ]; then
+ echo " * udev-compat has been removed, and should be uninstalled."
+ echo " * Framebuffers are no longer blacklisted by default."
+ echo " * binaries moved from /sbin to /usr/bin"
+ fi
+ if [ "$(vercmp $2 181-3)" -lt 0 ]; then
+ echo " * if your kernel does not provide /dev/loop-control, you need to manually"
+ echo " load the 'loop' module before using losetup"
+ fi
+}
diff --git a/testing/systemd/systemd.install b/testing/systemd/systemd.install
new file mode 100644
index 000000000..0b10f9537
--- /dev/null
+++ b/testing/systemd/systemd.install
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+sd_booted() {
+ [ -e sys/fs/cgroup/systemd ]
+}
+
+post_install() {
+ if [ ! -f etc/machine-id ]; then
+ systemd-machine-id-setup
+ fi
+
+ # enable getty@tty1 by default, but don't track the file
+ systemctl enable getty@.service
+
+ echo ":: Append 'init=/bin/systemd' to your kernel command line in your"
+ echo " bootloader to replace sysvinit with systemd"
+}
+
+post_upgrade() {
+ 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
+
+ # getty@tty1.service is no longer enabled by default, but we don't want to break
+ # existing setups.
+ if [ "$(vercmp 183 "$2")" -eq 1 ]; then
+ # systemctl seems to be whiny on sysvinit. this will succeed unless something
+ # horrific happens, so just mask the error.
+ systemctl -q enable getty@.service || true
+ fi
+}
+
+post_remove() {
+ if getent group lock >/dev/null; then
+ groupdel lock
+ fi
+}
+
+# vim:set ts=2 sw=2 et: