Ken Moffat wrote:
> On Sat, Jun 02, 2012 at 12:46:57AM +0100, Andrew Benton wrote:
>> I spent a couple of hours banging my head against the dbus
>> dependency before I gave up. It turned out it was easier to live
>> without systemd. Bryan wrote about the dbus issue earlier 
>> http://linuxfromscratch.org/pipermail/lfs-dev/2012-May/066541.html 
>> I haven't tested his suggestions as I've given up on systemd.
>> 
> Thanks - I'd overlooked that part of his mail in the belief it was 
> all about avoiding pkg-config.
> 
> Unfortunately, the *order* of the options is significant.

That's surprising; normally order is not...

> Adding those four after my previous options
> --with-dbussystemservicedir was dislkied.  When I removed that,
> --enable-udev-only=yes was no longer accepted.

Any particular error message from configure?

I have to admit I'm not sure what the most recent patch being tested is,
so I'm not entirely sure what might be happening here.  Maybe the AS_IF
stuff (testing $enable_udev_only) in configure.ac is dropping the flags
for some reason?

> I'll wait for Bryan to test his proposed patch.

Done last night, and posted to linux-hotplug (no response so far, but it
was late, and this is a weekend, and nobody's working at RH at the
moment, so that's not surprising).

http://marc.info/?l=linux-hotplug&m=133862040203388&w=2

Note that the patch as posted there is *not* suitable for LFS.  You
still need pkg.m4, intltool.m4, and libtool.m4 to run autoconf, at
least, although you don't need pkg-config or intltool or dbus or libcap
at ./configure, or make, or make check, or make install time.  (Tested
last night with Bruce's image.)

On a system with those packages, if you start with current git, apply
the patch, do the autoreconf stuff, configure (enabling systemd), and
"make dist-xz", then you should be able to take the generated tarball
and install it in an LFS chapter 6 setup.  I don't *think* you need to
actually build systemd for this to give you a tarball.  Anyway, extract
that tarball and build like so (substituting whichever libdir you use):

BLKID_CFLAGS="-I/usr/include/blkid" \
BLKID_LIBS="-L/lib -lblkid" \
KMOD_CFLAGS="-I/usr/include" \
KMOD_LIBS="-L/lib -lkmod" \
./configure --prefix=/usr \
    --with-rootprefix='' \
    --bindir=/sbin \
    --sysconfdir=/etc \
    --libexecdir=/lib \
    --libdir=/lib \
    --docdir=/usr/share/doc/udev \
    --disable-introspection \
    --disable-keymap \
    --disable-gudev \
    --with-usb-ids-path=no \
    --with-pci-ids-path=no \
    --disable-acl \
    --disable-tcpwrap \
    --disable-hostnamed \
    --disable-timedated \
    --disable-localed \
    --disable-coredump \
    --disable-audit \
    --disable-ima \
    --disable-pam \
    --disable-systemd

(The patch takes care of the dbus*dir and pamlibdir flags.)

Not sure if --libdir is actually required; I have it because I use
/lib64.  --docdir defaults to /usr/share/doc/systemd (and the patch
still installs a few README / NEWS type files there); a version may also
be useful for LFS.  Anyway, then:

make
make SUBDIRS=. check

(SUBDIRS=. because the default SUBDIRS includes po, but "make check" in
po fails due to not having a bunch of intltool-related variables set to
anything, due to --disable-systemd.)

make pkgdatadir= \
    pkgincludedir= \
    pkgsysconfdir= \
    bashcompletiondir= \
    polkitpolicydir= \
    sysctldir= \
    systemgeneratordir= \
    systemunitdir= \
    tmpfilesdir= \
    userunitdir= \
    rootlibexecdir=/lib/udev \
    pkgconfiglibdir=/usr/lib/pkgconfig \
    install
mv /lib/udev/systemd-udevd /lib/udev/udevd
sed -e 'whatever' /usr/share/man/man[78]/*udev*
mv /usr/share/man/man8/{systemd-,}udevd

(Then install the udev-config tarball, plus the Debian rule_generator
rules and scripts.)

rootlibexecdir might be fixed by the next release, but it's /lib/systemd
by default in git, and it's where systemd-udevd gets dumped.
pkgconfiglibdir is <libdir>/pkgconfig by default, but pkg-config doesn't
look there (since we set libdir to not be in /usr), so override it for
libudev.pc.

The others are set to an empty string to avoid having "make install"
create a bunch of empty directories.  They're sorted with the pkg*dir
stuff first (/usr/share/systemd, /usr/include/systemd, /etc/systemd),
then with everything else in alphabetical order.

This installs:

/sbin/udevadm
/lib/libudev.so.1.0.1 (and symlinks)
/lib/libudev.a (maybe move to /usr?)
/lib/libudev.la (maybe move to /usr?)
/lib/udev/{ata,v4l,scsi,cdrom}_id
/lib/udev/mtd_probe
/lib/udev/accelerometer
/lib/udev/collect
/lib/udev/systemd-udevd (moved to plain udevd)
/lib/udev/rules.d/*.rules (but *not* 99-systemd.rules; that gets
disabled by the patch)
/etc/udev/udev.conf
/usr/share/man/man7/udev.7
/usr/share/man/man8/udevadm.8
/usr/share/man/man8/systemd-udevd.8 (moved to udevd.8)
/usr/share/doc/udev/*
/usr/share/pkgconfig/udev.pc
/usr/lib/pkgconfig/libudev.pc
/usr/include/libudev.h

Which I think should be everything.  If the patch is accepted, then with
systemd-185 I think we should be able to stop hacking on it.

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to