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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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/[email protected] \
@@ -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