I've been trying to get this thing working using the attached patch. Basically, it's some things already in upstream, plus Andy's response to Dan's second "get-us-started" patch, with Bruce's additions to configure.ac applied by hand because it wasn't an incremental diff. Originally, I was using Brian's second patch, and Bruce's changes conflicted (extra whitespace) and put the 'fi' in a place where pkg-config was turned off. So, it's possible that I've broken it by mismerging.
Needs a version of pkg-config (I built 0.25 in chroot because I had a script handy for that) - which is where we are going. Unfortunately, when I was testing in a completed system I forgot to add --enable-udev-only=yes, so my notes on what it does are irrelevant :-( My original commandline was ./configure --prefix=/usr --disable-acl --disable-tcpwrap --disable-hostnamed --disable-timedated --disable-localed --disable-coredump --disable-gudev --disable-keymap --disable-audit --disable-ima --disable-introspection --disable-gtk-doc-html --enable-split-usr --with-usb-ids-path=no --with-pci-ids-path=no --libexecdir=/lib --bindir=/sbin --sysconfdir=/etc --with-rootprefix='' So add --enable-udev-only=yes and drop --disable-introspection which is not now recognised. Unfortunately, not all of the changes are working. 1. The hunk to turn off POSIX capabilities doesn't do anything: +if test $enable_udev_only = no; then AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])]) AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])]) CAP_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST(CAP_LIBS) +fi In configure I got past this by touching /usr/include/sys/capability.h 2. but then make dies at CC src/shared/libsystemd_units_la-install.lo In file included from src/shared/path-lookup.h:33:0, from src/shared/install.c:33: ./src/core/manager.h:28:23: fatal error: dbus/dbus.h: No such file or directory compilation terminated. make[2]: *** [src/shared/libsystemd_units_la-install.lo] Error 1 I haven't looked deeply enough to determine if that is an oversight, or if the --enable-udev-only=yes is not working. Offered as work-in-progress. ĸen -- das eine Mal als Tragödie, das andere Mal als Farce
Contains: commit 392f9c8404e42f7dd6e5b5adf488d87838515981 Author: Tom Gundersen <t...@jklm.no> Date: Sun May 27 01:24:16 2012 +0200 udev.pc: install udev files to /lib/udev rather than /lib/systemd commit 051d68786bd5bfe87e7cc0c1d68ec4be83eb662a Author: Kay Sievers <k...@vrfy.org> Date: Thu May 31 11:58:06 2012 +0200 util: don't require libcap when building libsystemd-shared src/shared/util.c includes <sys/capability.h> but doesn't use anything defined there. Since <sys/capability.h> is part of libcap, not libc, don't require it. Allows systemd-without-udevd to require fewer external libraries. (Bryan's patch) commit 477572f5c7ffc2febc75277ca84d15bd151d42ca Author: Kay Sievers <k...@vrfy.org> Date: Thu May 31 22:12:47 2012 +0200 build-sys: split-off D-Bus requires from selinux convenience lib (an alternative approach to Bryan's second patch) Andy's dump.diff from Friday Bruce's additions to configure.ac applied by hand. These conflicted with Bryan's patch which I was originally using (changed leading whitespace) and I limited the second if...fi to not make pkg-config optional, since we are now going to include a version of that in LFS Requires autoreconf diff -Naur systemd-183.orig/configure.ac systemd-183/configure.ac --- systemd-183.orig/configure.ac 2012-05-24 14:44:38.487832722 +0100 +++ systemd-183/configure.ac 2012-06-01 23:26:14.141531108 +0100 @@ -44,8 +44,21 @@ LT_PREREQ(2.2) LT_INIT +# figure out early if we only want udev +AC_ARG_ENABLE([udev-only], + [AS_HELP_STRING([--enable-udev-only], + [build only udev (default: no)])],, + [enable_udev_only=no]) +case "$enable_udev_only" in +yes|no) ;; +*) enable_udev_only=no ;; +esac +AM_CONDITIONAL([UDEV_ONLY], [test $enable_udev_only = yes]) + # i18n stuff for the PolicyKit policy files -IT_PROG_INTLTOOL([0.40.0]) +if test $enable_udev_only = no; then + IT_PROG_INTLTOOL([0.40.0]) +fi GETTEXT_PACKAGE=systemd AC_SUBST(GETTEXT_PACKAGE) @@ -74,10 +87,12 @@ AC_CHECK_TOOL(OBJCOPY, objcopy) AC_CHECK_TOOL(STRINGS, strings) +if test $enable_udev_only = no; then AC_CHECK_TOOL(GPERF, gperf) if test -z "$GPERF" ; then AC_MSG_ERROR([*** gperf not found]) fi +fi CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -pipe \ @@ -134,16 +149,20 @@ save_LIBS="$LIBS" LIBS= +if test $enable_udev_only = no; then AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])]) AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])]) CAP_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST(CAP_LIBS) +fi # This makes sure pkg.m4 is available. m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) -PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.3.2]) +if test $enable_udev_only = no; then + PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.3.2]) +fi PKG_CHECK_MODULES(KMOD, [libkmod >= 5]) PKG_CHECK_MODULES(BLKID,[blkid >= 2.20]) diff -Naur systemd-183.orig/Makefile.am systemd-183/Makefile.am --- systemd-183.orig/Makefile.am 2012-05-24 14:44:38.486832709 +0100 +++ systemd-183/Makefile.am 2012-06-01 23:25:04.103816418 +0100 @@ -201,6 +201,11 @@ endif # ------------------------------------------------------------------------------ +bin_PROGRAMS = + +rootlibexec_PROGRAMS = + +if !UDEV_ONLY rootbin_PROGRAMS = \ systemctl \ systemd-notify \ @@ -209,7 +214,7 @@ systemd-tmpfiles \ systemd-machine-id-setup -bin_PROGRAMS = \ +bin_PROGRAMS += \ systemd-cgls \ systemd-cgtop \ systemd-stdio-bridge \ @@ -220,7 +225,7 @@ dist_bin_SCRIPTS = \ src/analyze/systemd-analyze -rootlibexec_PROGRAMS = \ +rootlibexec_PROGRAMS += \ systemd \ systemd-cgroups-agent \ systemd-initctl \ @@ -347,6 +352,7 @@ nodist_userunit_DATA = \ units/user/exit.service +endif #!UDEV_ONLY EXTRA_DIST += \ units/getty@.service.m4 \ @@ -382,6 +388,7 @@ introspect.awk \ man/custom-html.xsl +if !UDEV_ONLY if TARGET_FEDORA dist_systemunit_DATA += \ units/fedora/prefdm.service \ @@ -436,6 +443,7 @@ nodist_systemunit_DATA += \ units/systemd-ask-password-plymouth.service +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-ask-password-plymouth.service.in @@ -452,7 +460,10 @@ @INTLTOOL_POLICY_RULE@ # ------------------------------------------------------------------------------ -MANPAGES = \ +MANPAGES = + +if !UDEV_ONLY +MANPAGES += \ man/systemd.1 \ man/systemctl.1 \ man/systemd-cgls.1 \ @@ -503,6 +514,7 @@ man/reboot.8 \ man/poweroff.8 \ man/init.1 +endif # !UDEV_ONLY man/reboot.8: man/halt.8 man/poweroff.8: man/halt.8 @@ -527,8 +539,10 @@ $(MANPAGES_ALIAS) # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-shared.la +endif libsystemd_shared_la_SOURCES = \ src/shared/linux/auto_dev-ioctl.h \ @@ -586,8 +600,10 @@ src/shared/hwclock.h #------------------------------------------------------------------------------- +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-dbus.la +endif libsystemd_dbus_la_SOURCES = \ src/shared/dbus-common.c \ @@ -606,13 +622,25 @@ # ------------------------------------------------------------------------------ noinst_LTLIBRARIES += \ - libsystemd-label.la + libsystemd-units.la -libsystemd_label_la_SOURCES = \ +libsystemd_units_la_SOURCES = \ src/shared/install.c \ src/shared/install.h \ src/shared/path-lookup.c \ - src/shared/path-lookup.h \ + src/shared/path-lookup.h + +libsystemd_units_la_CFLAGS = \ + $(AM_CFLAGS) \ + $(DBUS_CFLAGS) + +# ------------------------------------------------------------------------------ +if !UDEV_ONLY +noinst_LTLIBRARIES += \ + libsystemd-label.la +endif + +libsystemd_label_la_SOURCES = \ src/shared/cgroup-label.c \ src/shared/socket-label.c \ src/shared/label.c \ @@ -626,15 +654,16 @@ libsystemd_label_la_CFLAGS = \ $(AM_CFLAGS) \ - $(DBUS_CFLAGS) \ $(SELINUX_CFLAGS) libsystemd_label_la_LIBADD = \ $(SELINUX_LIBS) # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-logs.la +endif libsystemd_logs_la_SOURCES = \ src/shared/logs-show.c \ @@ -648,8 +677,10 @@ libsystemd-id128.la # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-capability.la +endif libsystemd_capability_la_SOURCES = \ src/shared/capability.c \ @@ -663,8 +694,10 @@ $(CAP_LIBS) # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-audit.la +endif libsystemd_audit_la_SOURCES = \ src/shared/audit.c \ @@ -675,8 +708,10 @@ # ------------------------------------------------------------------------------ if HAVE_ACL +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-acl.la +endif libsystemd_acl_la_SOURCES = \ src/shared/acl-util.c \ @@ -691,8 +726,10 @@ endif # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_LTLIBRARIES += \ libsystemd-core.la +endif libsystemd_core_la_SOURCES = \ src/core/unit.c \ @@ -810,6 +847,7 @@ libsystemd_core_la_LIBADD = \ libsystemd-capability.la \ + libsystemd-units.la \ libsystemd-label.la \ libsystemd-shared.la \ libsystemd-dbus.la \ @@ -833,6 +871,7 @@ src/core/load-fragment-gperf-nulstr.c # ------------------------------------------------------------------------------ +if !UDEV_ONLY systemd_SOURCES = \ src/core/main.c @@ -881,11 +920,13 @@ pkgconfigdata_DATA = \ src/core/systemd.pc +endif # !UDEV_ONLY EXTRA_DIST += \ src/core/systemd.pc.in # ------------------------------------------------------------------------------ +if !UDEV_ONLY noinst_PROGRAMS += \ test-engine \ test-job-type \ @@ -903,6 +944,7 @@ test-job-type \ test-env-replace \ test-strv +endif test_engine_SOURCES = \ src/test/test-engine.c @@ -980,6 +1022,7 @@ $(DBUS_CFLAGS) test_install_LDADD = \ + libsystemd-units.la \ libsystemd-label.la \ libsystemd-shared.la @@ -990,8 +1033,10 @@ libsystemd-shared.la # ------------------------------------------------------------------------------ +if !UDEV_ONLY systemd_initctl_SOURCES = \ src/initctl/initctl.c +endif systemd_initctl_CFLAGS = \ $(AM_CFLAGS) \ @@ -1191,6 +1236,7 @@ $(DBUS_CFLAGS) systemctl_LDADD = \ + libsystemd-units.la \ libsystemd-label.la \ libsystemd-shared.la \ libsystemd-daemon.la \ @@ -1281,8 +1327,10 @@ -version-info $(LIBSYSTEMD_DAEMON_CURRENT):$(LIBSYSTEMD_DAEMON_REVISION):$(LIBSYSTEMD_DAEMON_AGE) \ -Wl,--version-script=$(top_srcdir)/src/libsystemd-daemon/libsystemd-daemon.sym +if !UDEV_ONLY pkginclude_HEADERS += \ src/systemd/sd-daemon.h +endif # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed libsystemd-daemon-install-hook: @@ -1294,12 +1342,15 @@ mv $(DESTDIR)$(libdir)/libsystemd-daemon.so.* $(DESTDIR)$(rootlibdir); \ fi +if !UDEV_ONLY INSTALL_EXEC_HOOKS += \ libsystemd-daemon-install-hook +endif libsystemd-daemon-uninstall-hook: rm -f $(DESTDIR)$(rootlibdir)/libsystemd-daemon.so* +if !UDEV_ONLY UNINSTALL_EXEC_HOOKS += \ libsystemd-daemon-uninstall-hook @@ -1322,6 +1373,7 @@ man/sd_is_socket_inet.3 \ man/sd_is_mq.3 \ man/sd_notifyf.3 +endif # !UDEV_ONLY man/sd_is_socket.3: man/sd_is_fifo.3 man/sd_is_socket_unix.3: man/sd_is_fifo.3 @@ -1470,13 +1522,17 @@ ln -sf ../systemd-udev.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev.service ln -sf ../systemd-udev-trigger.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev-trigger.service +if !UDEV_ONLY INSTALL_DATA_HOOKS += systemd-install-hook +endif bin_PROGRAMS += \ udevadm +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-udevd +endif noinst_LTLIBRARIES += \ libudev-core.la @@ -2019,6 +2075,7 @@ libsystemd-shared.la \ libsystemd-id128.la +if !UDEV_ONLY noinst_PROGRAMS += \ test-id128 @@ -2052,6 +2109,7 @@ UNINSTALL_EXEC_HOOKS += \ libsystemd-id128-uninstall-hook +endif # !UDEV_ONLY EXTRA_DIST += \ src/libsystemd-id128/libsystemd-id128.pc.in \ @@ -2182,6 +2240,7 @@ $(XZ_LIBS) endif +if !UDEV_ONLY # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed libsystemd-journal-install-hook: if test "$(libdir)" != "$(rootlibdir)"; then \ @@ -2246,6 +2305,7 @@ INSTALL_DATA_HOOKS += \ journal-install-data-hook +endif # !UDEV_ONLY EXTRA_DIST += \ src/journal/libsystemd-journal.pc.in \ @@ -2267,11 +2327,13 @@ libsystemd-label.la \ libsystemd-shared.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-coredump sysctl_DATA = \ sysctl.d/coredump.conf +endif EXTRA_DIST += \ sysctl.d/coredump.conf.in @@ -2288,6 +2350,7 @@ systemd_binfmt_LDADD = \ libsystemd-shared.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-binfmt @@ -2314,6 +2377,7 @@ MANPAGES += \ man/binfmt.d.5 +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-binfmt.service.in @@ -2327,6 +2391,7 @@ systemd_vconsole_setup_LDADD = \ libsystemd-shared.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-vconsole-setup @@ -2345,6 +2410,7 @@ MANPAGES += \ man/vconsole.conf.5 +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-vconsole-setup.service.in @@ -2371,6 +2437,7 @@ libsystemd-daemon.la \ libudev.la +if !UDEV_ONLY pkginclude_HEADERS += \ src/systemd/sd-readahead.h @@ -2386,24 +2453,29 @@ units/systemd-readahead-collect.service \ units/systemd-readahead-replay.service \ units/systemd-readahead-done.service +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-readahead-collect.service.in \ units/systemd-readahead-replay.service.in \ units/systemd-readahead-done.service.in +if !UDEV_ONLY MANPAGES += \ man/sd_readahead.3 \ man/sd-readahead.7 endif +endif # ------------------------------------------------------------------------------ if ENABLE_QUOTACHECK +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-quotacheck nodist_systemunit_DATA += \ units/quotacheck.service +endif EXTRA_DIST += \ units/quotacheck.service.in @@ -2417,12 +2489,14 @@ # ------------------------------------------------------------------------------ if ENABLE_RANDOMSEED +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-random-seed nodist_systemunit_DATA += \ units/systemd-random-seed-save.service \ units/systemd-random-seed-load.service +endif EXTRA_DIST += \ units/systemd-random-seed-save.service.in \ @@ -2446,12 +2520,15 @@ rm -f systemd-random-seed-load.service && \ $(LN_S) ../systemd-random-seed-load.service systemd-random-seed-load.service ) +if !UDEV_ONLY INSTALL_DATA_HOOKS += \ randomseed-install-data-hook endif +endif # ------------------------------------------------------------------------------ if HAVE_LIBCRYPTSETUP +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-cryptsetup @@ -2460,6 +2537,7 @@ dist_systemunit_DATA += \ units/cryptsetup.target +endif # !UDEV_ONLY systemd_cryptsetup_SOURCES = \ src/cryptsetup/cryptsetup.c @@ -2488,9 +2566,11 @@ rm -f cryptsetup.target && \ $(LN_S) ../cryptsetup.target cryptsetup.target ) +if !UDEV_ONLY INSTALL_DATA_HOOKS += \ cryptsetup-install-data-hook endif +endif # ------------------------------------------------------------------------------ if ENABLE_HOSTNAMED @@ -2506,6 +2586,7 @@ libsystemd-daemon.la \ libsystemd-dbus.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-hostnamed @@ -2536,6 +2617,7 @@ INSTALL_DATA_HOOKS += \ hostnamed-install-data-hook +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-hostnamed.service.in @@ -2556,6 +2638,7 @@ libsystemd-daemon.la \ libsystemd-dbus.la +if !UDEV_ONLY nodist_systemunit_DATA += \ units/systemd-localed.service @@ -2586,15 +2669,18 @@ INSTALL_DATA_HOOKS += \ localed-install-data-hook +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-localed.service.in +if !UDEV_ONLY dist_pkgdata_DATA = \ src/locale/kbd-model-map dist_noinst_SCRIPT = \ src/locale/generate-kbd-model-map +endif update-kbd-model-map: src/locale/generate-kbd-model-map > src/locale/kbd-model-map @@ -2615,6 +2701,7 @@ libsystemd-daemon.la \ libsystemd-dbus.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-timedated @@ -2645,6 +2732,7 @@ INSTALL_DATA_HOOKS += \ timedated-install-data-hook +endif # !UDEV_ONLY EXTRA_DIST += \ units/systemd-timedated.service.in @@ -2717,8 +2805,10 @@ libsystemd-dbus.la \ libudev.la +if !UDEV_ONLY rootbin_PROGRAMS += \ loginctl +endif systemd_inhibit_SOURCES = \ src/login/inhibit.c @@ -2731,8 +2821,10 @@ libsystemd-shared.la \ libsystemd-dbus.la +if !UDEV_ONLY rootbin_PROGRAMS += \ systemd-inhibit +endif test_login_SOURCES = \ src/login/test-login.c @@ -2752,9 +2844,11 @@ $(AM_CFLAGS) \ $(DBUS_CFLAGS) +if !UDEV_ONLY noinst_PROGRAMS += \ test-login \ test-inhibit +endif libsystemd_login_la_SOURCES = \ src/login/sd-login.c @@ -2797,10 +2891,13 @@ libsystemd-shared.la \ $(PAM_LIBS) +if !UDEV_ONLY pamlib_LTLIBRARIES = \ pam_systemd.la endif +endif +if !UDEV_ONLY # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed libsystemd-login-install-hook: if test "$(libdir)" != "$(rootlibdir)"; then \ @@ -2859,6 +2956,7 @@ INSTALL_DATA_HOOKS += \ logind-install-data-hook +endif # !UDEV_ONLY systemd_multi_seat_x_SOURCES = \ src/login/multi-seat-x.c @@ -2868,6 +2966,7 @@ libsystemd-shared.la \ libudev.la +if !UDEV_ONLY rootlibexec_PROGRAMS += \ systemd-multi-seat-x @@ -2908,6 +3007,7 @@ man/sd_seat_can_multi_session.3 \ man/sd_get_sessions.3 \ man/sd_get_uids.3 +endif # !UDEV_ONLY man/sd_login_monitor_unref.3: man/sd_login_monitor_new.3 man/sd_login_monitor_flush.3: man/sd_login_monitor_new.3 @@ -3011,9 +3111,11 @@ units/user/%: units/%.m4 Makefile $(M4_PROCESS_USER) +if !UDEV_ONLY nodist_polkitpolicy_DATA = \ $(polkitpolicy_in_files:.policy.in=.policy) \ $(polkitpolicy_in_in_files:.policy.in.in=.policy) +endif EXTRA_DIST += \ $(polkitpolicy_in_files) \ @@ -3069,6 +3171,7 @@ CLEANFILES += \ $(dbusinterface_DATA) +if !UDEV_ONLY systemd-install-data-hook: $(MKDIR_P) -m 0755 \ $(DESTDIR)$(tmpfilesdir) \ @@ -3276,6 +3379,7 @@ rm -f display-manager.service && \ $(LN_S) $(systemunitdir)/display-manager.service display-manager.service ) endif +endif # !UDEV_ONLY install-exec-hook: $(INSTALL_EXEC_HOOKS)
-- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page