From c73173ae5389e1a82aaebf2b4503ec7af32052fb Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Wed, 31 Oct 2012 10:53:37 -0500 Subject: Tmpfiles: create and delete entries once in the boot runlevel. Initially, we were creating tmpfiles entries in the sysinit runlevel and again in the boot runlevel. Systemd runs the --create and --remove options in one service called systemd-tmpfiles-setup after the local file systems are mounted. Now we have a service called tmpfiles.setup which emulates this. This also closes the bug mentioned below, since we were originally writing to files that were on read-only file systems and that were not available. Reported-by: X-Gentoo-Bug: 439012 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=439012 --- conf.d/Makefile | 2 +- conf.d/tmpfiles | 3 +++ conf.d/tmpfilesd | 3 --- init.d/.gitignore | 3 +-- init.d/Makefile | 3 +-- init.d/tmpfiles.setup.in | 18 ++++++++++++++++++ init.d/tmpfilesd.boot.in | 18 ------------------ init.d/tmpfilesd.sysinit.in | 20 -------------------- runlevels/Makefile | 4 ++-- 9 files changed, 26 insertions(+), 48 deletions(-) create mode 100644 conf.d/tmpfiles delete mode 100644 conf.d/tmpfilesd create mode 100644 init.d/tmpfiles.setup.in delete mode 100644 init.d/tmpfilesd.boot.in delete mode 100644 init.d/tmpfilesd.sysinit.in diff --git a/conf.d/Makefile b/conf.d/Makefile index 1f28967..24db589 100644 --- a/conf.d/Makefile +++ b/conf.d/Makefile @@ -1,5 +1,5 @@ DIR= ${CONFDIR} -CONF= bootmisc fsck hostname localmount netmount urandom tmpfilesd \ +CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \ ${CONF-${OS}} ifeq (${MKNET},) diff --git a/conf.d/tmpfiles b/conf.d/tmpfiles new file mode 100644 index 0000000..c3f208f --- /dev/null +++ b/conf.d/tmpfiles @@ -0,0 +1,3 @@ +# Extra options for tmpfiles.sh +#tmpfiles_opts="--verbose" +tmpfiles_opts="" diff --git a/conf.d/tmpfilesd b/conf.d/tmpfilesd deleted file mode 100644 index c3f208f..0000000 --- a/conf.d/tmpfilesd +++ /dev/null @@ -1,3 +0,0 @@ -# Extra options for tmpfiles.sh -#tmpfiles_opts="--verbose" -tmpfiles_opts="" diff --git a/init.d/.gitignore b/init.d/.gitignore index 515348b..c42cd77 100644 --- a/init.d/.gitignore +++ b/init.d/.gitignore @@ -41,5 +41,4 @@ syslogd termencoding ttys wscons -tmpfilesd.boot -tmpfilesd.sysinit +tmpfiles.setup diff --git a/init.d/Makefile b/init.d/Makefile index 54e5fd5..04e09a7 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -1,8 +1,7 @@ DIR= ${INITDIR} SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ root.in savecache.in swap.in swapfiles.in \ - tmpfilesd.boot.in tmpfilesd.sysinit.in \ - swclock.in sysctl.in urandom.in ${SRCS-${OS}} + tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}} BIN= ${OBJS} # Build our old net foo or not diff --git a/init.d/tmpfiles.setup.in b/init.d/tmpfiles.setup.in new file mode 100644 index 0000000..a3ecd31 --- /dev/null +++ b/init.d/tmpfiles.setup.in @@ -0,0 +1,18 @@ +#!@PREFIX@/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Released under the 2-clause BSD license. + +description="set up tmpfiles.d entries" + +depend() +{ + need localmount +} + +start() +{ + ebegin "setting up tmpfiles.d entries" + @LIBEXECDIR@/sh/tmpfiles.sh --create --remove ${tmpfiles_opts} + eend $? + return 0 +} diff --git a/init.d/tmpfilesd.boot.in b/init.d/tmpfilesd.boot.in deleted file mode 100644 index 471c128..0000000 --- a/init.d/tmpfilesd.boot.in +++ /dev/null @@ -1,18 +0,0 @@ -#!@PREFIX@/sbin/runscript -# Copyright 1999-2012 Gentoo Foundation -# Released under the 2-clause BSD license. - -description="Create tmpfiles.d entries (boot)" - -depend() -{ - need localmount -} - -start() -{ - ebegin "Creating ${description#Create }" - @LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts} - eend $? - return 0 -} diff --git a/init.d/tmpfilesd.sysinit.in b/init.d/tmpfilesd.sysinit.in deleted file mode 100644 index 303a1cf..0000000 --- a/init.d/tmpfilesd.sysinit.in +++ /dev/null @@ -1,20 +0,0 @@ -#!@PREFIX@/sbin/runscript -# Copyright 1999-2012 Gentoo Foundation -# Released under the 2-clause BSD license. - -description="Create tmpfiles.d entries (sysinit)" - -depend() -{ - # Convert to 'need dev' when the new udev is ready, for OpenRC 0.11 - #need dev-mount - use dev -} - -start() -{ - ebegin "Creating ${description#Create }" - @LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts} - eend $? - return 0 -} diff --git a/runlevels/Makefile b/runlevels/Makefile index a4fd006..e459d15 100644 --- a/runlevels/Makefile +++ b/runlevels/Makefile @@ -38,9 +38,9 @@ BOOT-FreeBSD+= hostid newsyslog savecore syslogd # FreeBSD specific stuff BOOT-FreeBSD+= adjkerntz dumpon syscons -BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfilesd.boot +BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfiles.setup SHUTDOWN-Linux= killprocs mount-ro -SYSINIT-Linux= devfs dmesg sysfs tmpfilesd.sysinit +SYSINIT-Linux= devfs dmesg sysfs # Generic BSD stuff BOOT-NetBSD+= hostid newsyslog savecore syslogd -- cgit v1.2.3