mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
configure: Remove --enable-rw-rootfs detect using /etc/fstab instead
This patch removes the --enable-rw-rootfs build flag. Like OpenRC we now check /etc/fstab instad; if `/` is listed *and* doesn't have the `ro` flag set, we remount / read-write. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
@@ -61,10 +61,6 @@ AC_ARG_ENABLE(auto_reload,
|
||||
AS_HELP_STRING([--enable-auto-reload], [Automatic reload on any .conf change]),,[
|
||||
enable_auto_reload=no])
|
||||
|
||||
AC_ARG_ENABLE(rw-rootfs,
|
||||
AS_HELP_STRING([--enable-rw-rootfs], [Remount / R/W at boot, usually not for embedded]),,[
|
||||
enable_rw_rootfs=no])
|
||||
|
||||
AC_ARG_ENABLE(progress,
|
||||
AS_HELP_STRING([--enable-progress], [Modern progress display at bootup]),,[
|
||||
enable_progress=no])
|
||||
@@ -164,9 +160,6 @@ AS_IF([test "x$enable_fallback_shell" = "xyes"], [
|
||||
AS_IF([test "x$enable_auto_reload" = "xyes"], [
|
||||
AC_DEFINE(AUTO_RELOAD, 1, [Finit automatically does `initctl reload` on any .conf change])])
|
||||
|
||||
AS_IF([test "x$enable_rw_rootfs" = "xyes"], [
|
||||
AC_DEFINE(REMOUNT_ROOTFS, 1, [Remount / as rw at boot])])
|
||||
|
||||
AS_IF([test "x$enable_progress" = "xyes"], [
|
||||
AC_DEFINE(PROGRESS_STYLE, 2, [Modern bootup messages, systemd inspired])])
|
||||
|
||||
@@ -301,7 +294,6 @@ Optional features:
|
||||
Scripting tool logit..: $enable_logit
|
||||
Emergency shell.......: $enable_emergency_shell
|
||||
Fallback shell........: $enable_fallback_shell
|
||||
Remount / RW at boot..: $enable_rw_rootfs
|
||||
Modern progress.......: $enable_progress
|
||||
Classic progress......: $enable_progress_classic
|
||||
Default console dev...: $console
|
||||
|
||||
@@ -14,7 +14,7 @@ fi
|
||||
# The plugins are optional, but you may need D-Bus and X11 if you want
|
||||
# to run X-Window, the other configure flags are however required.
|
||||
PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure \
|
||||
--enable-rw-rootfs --enable-progress \
|
||||
--enable-progress \
|
||||
--enable-dbus-plugin --enable-x11-common-plugin \
|
||||
--enable-alsa-utils-plugin --enable-inetd-echo-plugin \
|
||||
--enable-inetd-chargen-plugin --enable-inetd-daytime-plugin \
|
||||
|
||||
@@ -22,7 +22,7 @@ echo
|
||||
# The plugins are optional, but you may need D-Bus and X11 if you want
|
||||
# to run X-Window, the other configure flags are however required.
|
||||
./configure \
|
||||
--enable-rw-rootfs --enable-progress \
|
||||
--enable-progress \
|
||||
--enable-dbus-plugin --enable-x11-common-plugin \
|
||||
--enable-alsa-utils-plugin --enable-inetd-echo-plugin \
|
||||
--enable-inetd-chargen-plugin --enable-inetd-daytime-plugin \
|
||||
|
||||
@@ -14,7 +14,7 @@ fi
|
||||
# The plugins are optional, but you may need D-Bus and X11 if you want
|
||||
# to run X-Window, the other configure flags are however required.
|
||||
PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure \
|
||||
--enable-rw-rootfs --enable-progress \
|
||||
--enable-progress \
|
||||
--enable-dbus-plugin --enable-x11-common-plugin \
|
||||
--enable-alsa-utils-plugin --enable-inetd-echo-plugin \
|
||||
--enable-inetd-chargen-plugin --enable-inetd-daytime-plugin \
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ Bootstrap
|
||||
9. Parse `/etc/finit.conf` and all `/etc/finit.d/*.conf` files
|
||||
10. Start built-in watchdog, if enabled
|
||||
11. Set hostname
|
||||
12. Pivot root, or remount `/` read-write, depending on system type
|
||||
12. Remount `/` read-write if `/` is listed in `/etc/fstab` without `ro`
|
||||
13. Call 1st level hooks, `HOOK_ROOTFS_UP`
|
||||
14. Mount all file systems listed in `/etc/fstab` and swap, if available
|
||||
15. Enable SysV init signals
|
||||
|
||||
+1
-6
@@ -40,11 +40,6 @@ Below are a few of the main switches to configure:
|
||||
|
||||
* `--disable-inetd`: Disable the built-in inetd server.
|
||||
|
||||
* `--enable-rw-rootfs`: Most desktop and server systems boot with the
|
||||
root file stystem read-only. With this setting Finit will remount it
|
||||
as read-write early at boot so the `bootmisc.so` plugin can run.
|
||||
Usually not needed on embedded systems.
|
||||
|
||||
* `--enable-static`: Build Finit statically. The plugins will be
|
||||
built-ins (.o files) and all external libraries, except the C library
|
||||
will be linked statically.
|
||||
@@ -73,7 +68,7 @@ First, unpack the archive:
|
||||
Then configure, build and install:
|
||||
|
||||
```shell
|
||||
$ ./configure --enable-rw-rootfs --enable-inetd-echo-plugin \
|
||||
$ ./configure --enable-inetd-echo-plugin \
|
||||
--enable-inetd-chargen-plugin --enable-inetd-daytime-plugin \
|
||||
--enable-inetd-discard-plugin --enable-inetd-time-plugin \
|
||||
--with-heading="Alpine Linux 3.4" --with-hostname=alpine
|
||||
|
||||
+25
-5
@@ -433,7 +433,7 @@ int main(int argc, char *argv[])
|
||||
*/
|
||||
makedir("/dev/shm", 0755);
|
||||
if (!fismnt("/dev/shm") && !ismnt("/etc/fstab", "/dev/shm"))
|
||||
mount("shm", "/dev/shm", "tmpfs", 0, NULL);
|
||||
mount("shm", "/dev/shm", "tmpfs", 0, "mode=0777");
|
||||
|
||||
/*
|
||||
* New tmpfs based /run for volatile runtime data
|
||||
@@ -498,10 +498,30 @@ int main(int argc, char *argv[])
|
||||
* Mount filesystems
|
||||
*/
|
||||
if (!rescue) {
|
||||
#ifdef REMOUNT_ROOTFS
|
||||
run("mount -n -o remount,rw /");
|
||||
#endif
|
||||
#ifdef SYSROOT
|
||||
#ifndef SYSROOT
|
||||
/*
|
||||
* Remount / read-write if it exists in fstab is not 'ro'.
|
||||
* This is what the Debian sysv initscripts does.
|
||||
*/
|
||||
if (setfsent()) {
|
||||
struct fstab *fs;
|
||||
|
||||
while ((fs = getfsent())) {
|
||||
if (strcmp(fs->fs_file, "/"))
|
||||
continue;
|
||||
|
||||
if (strcmp(fs->fs_type, "ro"))
|
||||
run_interactive("mount -n -o remount,rw /", "Remounting / as read-write");
|
||||
break;
|
||||
}
|
||||
|
||||
endfsent();
|
||||
}
|
||||
#else
|
||||
/*
|
||||
* XXX: Untested, in the initramfs age we should
|
||||
* probably use switch_root instead.
|
||||
*/
|
||||
mount(SYSROOT, "/", NULL, MS_MOVE, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user