added core/systemd for rebuild (#191)

This commit is contained in:
Kevin Mihelich 2012-07-06 19:53:54 -04:00
parent 56b7a7e3fa
commit d94b3d4caf
10 changed files with 641 additions and 0 deletions

View file

@ -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

View file

@ -0,0 +1,26 @@
From a2368a3f37ede469d4359421c1e4ad304c682a07 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Wed, 6 Jun 2012 14:30:16 +0200
Subject: [PATCH] udev: systemd-udev-settle.service fix After=
https://bugs.freedesktop.org/show_bug.cgi?id=50779
---
units/systemd-udev-settle.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/units/systemd-udev-settle.service.in b/units/systemd-udev-settle.service.in
index d637700..2c4c129 100644
--- a/units/systemd-udev-settle.service.in
+++ b/units/systemd-udev-settle.service.in
@@ -21,7 +21,7 @@ Documentation=man:udev(7)
Documentation=man:systemd-udevd(8)
DefaultDependencies=no
Wants=systemd-udev.service
-After=udev-trigger.service
+After=systemd-udev-trigger.service
Before=basic.target
ConditionCapability=CAP_MKNOD
--
1.7.11

View file

@ -0,0 +1,79 @@
From d305a67b46644d6360ef557109384c831ee8e018 Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Sun, 10 Jun 2012 20:37:14 +0200
Subject: [PATCH] vconsole-setup: enable utf-8 mode explicitly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Rather than assuming the console is in utf-8 mode if nothing else is
specified, be a bit more robust and enable it explicitly.
This fixes a regression compared with Arch's initscripts when not
using a framebuffer as the old VGA console would not be in utf-8
mode by default.
Furthermore, this would allow vconsole-setup to be used after boot
to change the vconsole into utf-8 mode in case it has been set to
non-utf-8 mode for whatever reason. I.e, the following would leave
the console in utf-8 mode as expected:
# export LANG=en_US.ISO-8859-1
# /usr/lib/systemd/systemd-vconsole-setup
# export LANG=en_US.UTF-8
# /usr/lib/systemd/systemd-vconsole-setup
Reported-by: Xyne <xyne@archlinx.ca>
Reported-by: Thomas Bächler <thomas@archlinux.org>
Cc: Dave Reisner <dreisner@archlinux.org>
---
src/vconsole/vconsole-setup.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
index d04fab4..aa5fa18 100644
--- a/src/vconsole/vconsole-setup.c
+++ b/src/vconsole/vconsole-setup.c
@@ -80,6 +80,25 @@ static int disable_utf8(int fd) {
return r;
}
+static int enable_utf8(int fd) {
+ int r = 0, k;
+
+ if (ioctl(fd, KDSKBMODE, K_UNICODE) < 0)
+ r = -errno;
+
+ if (loop_write(fd, "\033%G", 3, false) < 0)
+ r = -errno;
+
+ k = write_one_line_file("/sys/module/vt/parameters/default_utf8", "1");
+ if (k < 0)
+ r = k;
+
+ if (r < 0)
+ log_warning("Failed to enable UTF-8: %s", strerror(-r));
+
+ return r;
+}
+
static int load_keymap(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) {
const char *args[8];
int i = 0;
@@ -418,9 +437,12 @@ int main(int argc, char **argv) {
r = EXIT_FAILURE;
- if (!utf8)
+ if (utf8)
+ enable_utf8(fd);
+ else
disable_utf8(fd);
+
if (load_keymap(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 &&
load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0)
r = EXIT_SUCCESS;
--
1.7.11

218
core/systemd/PKGBUILD Normal file
View file

@ -0,0 +1,218 @@
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - rebuild for tcp_wrappers removal, remove this when bumped upstream
pkgbase=systemd
pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat')
pkgver=185
pkgrel=4.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'
'0001-vconsole-setup-enable-utf-8-mode-explicitly.patch'
'0001-udev-systemd-udev-settle.service-fix-After.patch'
'locale.sh')
md5sums=('a7dbbf05986eb0d2c164ec8e570eb78f'
'e99e9189aa2f6084ac28b8ddf605aeb8'
'59e91c4d7a69b7bf12c86a9982e37ced'
'df69615503ad293c9ddf9d8b7755282d'
'5543be25f205f853a21fa5ee68e03f0d'
'83f51149ff9c4d75ea946e2b3cc61e53'
'b3e41e90beaff35c66ba1b4bc223430a'
'f15956945052bb911e5df81cf5e7e5dc')
build() {
cd "$pkgname-$pkgver"
# still waiting on ipw2x00 to get fixed...
patch -Np1 <"$srcdir/0001-Reinstate-TIMEOUT-handling.patch"
# upstream commit d305a67b46644d6360ef557109384c831ee8e018
patch -Np1 <"$srcdir/0001-vconsole-setup-enable-utf-8-mode-explicitly.patch"
# upstream commit 8e8eb8fbafcaa841fa5393e396acde27b26edf2f
patch -Np1 <"$srcdir/0001-udev-systemd-udev-settle.service-fix-After.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=('python2-dbus: systemd-analyze'
'initscripts: legacy support for hostname and vconsole setup'
'initscripts-systemd: legacy generator for 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/bin/systemd-machine-id-setup 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-{tmpfiles,udevd},udevadm}.8 usr/share/man/man8
mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt,machine-id-setup}.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' 'libsystemd' '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"
# 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
# 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

View file

@ -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:

View file

@ -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:

View file

@ -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:

60
core/systemd/locale.sh Normal file
View file

@ -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

View file

@ -0,0 +1,35 @@
# arg 1: the new package version
# arg 2: the old package version
post_install() {
systemd-machine-id-setup
}
post_upgrade() {
systemd-machine-id-setup
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
}

View file

@ -0,0 +1,37 @@
#!/bin/sh
sd_booted() {
[ -e sys/fs/cgroup/systemd ]
}
post_install() {
# 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 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
}
# vim:set ts=2 sw=2 et: