Re: [systemd-devel] [PATCH] Change CONFIG_FW_LOADER_USER_HELPER to default n and don't select it

2013-08-06 Thread Bryan Kadzban
On Tue, Aug 06, 2013 at 11:17:17AM +0200, Tom Gundersen wrote:
 On Tue, Aug 6, 2013 at 11:11 AM, Tom Gundersen t...@jklm.no wrote:
  On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst
  m.b.lankho...@gmail.com wrote:
  Op 05-08-13 18:29, Andy Lutomirski schreef:
  The systemd commit below can delay firmware loading by multiple
  minutes if CONFIG_FW_LOADER_USER_HELPER=y.  Unfortunately no one
  noticed that the systemd-udev change would break new kernels as well
  as old kernels.
 
  Since the kernel apparently can't count on reasonable userspace
  support, turn this thing off by default.
 
  commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a
  Author: Tom Gundersen t...@jklm.no
  Date:   Mon Mar 18 15:12:18 2013 +0100
 
  udev: make firmware loading optional and disable by default
 
  Distros that whish to support old kernels should set
--with-firmware-dirs=/usr/lib/firmware/updates:/usr/lib/firmware
  to retain the old behaviour.
 
  methinks this patch should be reverted then,
 
  Well, all the code is still there, so it can be enabled if anyone wants it.
 
  or a stub should be added to udev to always fail firmware loading so 
  timeouts don't occur.
 
  I think the only use (if any) of a userspace firmware loader would be
  for anyone who wants a custom one (i.e., not udev), so we shouldn't
  just fail the loading from udev unconditionally.
 
  How about we just improve the udev documentation a bit, similar to
  Andy's kernel patch?
 
 Sorry, I should first have checked. We already document this in the README:
 
 Userspace firmware loading is deprecated, will go away, and
 sometimes causes problems:
   CONFIG_FW_LOADER_USER_HELPER=n

...And this patch is making the kernel default to the correct behavior,
instead of the now-broken-by-udev behavior.

I'm not sure I see the issue with it?  :-)

(Add me to the list of people that think udev is broken too, fwiw.  But
let's at least not leave *both* sides in a broken-by-default state.)

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 3/6] nss-myhostname: integrate into systemd buildsystem

2013-01-07 Thread Bryan Kadzban
Alexander E. Patrakov wrote:
 2013/1/7 Bryan Kadzban br...@kadzban.is-a-geek.net:
 Untrue.  They're perfectly useful for dynamic linking as well:

 http://www.sourceware.org/autobook/autobook/autobook_68.html#SEC68

 Second paragraph.  Also the page several sections after this one, about
 installing a shared library with libtool.
 
 Unfortunately, on linux, libtool's la files are actively harmful for
 multilib setup and _must_ be removed (ideally, upstream) if possible.
 They represent an unsolvable problem in the following case:
 
  * you are on amd64
  * libfoo is built both as 64-bit and 32-bit library and has a *.la
 file at least in in /usr/lib64
  * you are trying to link a 32-bit program as follows:
 
 libtool --mode=compile --tag=CC gcc -m32 test.c -c -o test.lo
 libtool --mode=link --tag=CC gcc -m32 test.lo -lfoo -o test

I've seen a sort-of-inverse of that break (though not permanently fail)
before, when the system is not multilib (64-bit only).  If, when the .la
file was installed, --libdir was /usr/lib, and that directory was a
symlink to lib64, then libtool complains about the file having been
moved because it finds it in /usr/lib64 first.

But that's different than what you're describing, and I had not run into
the situation you describe.  That's despite having built lots and lots
of libraries as both 32-bit and 64-bit (with proper --libdir args for
each, doing 64-bit last to overwrite installed 32-bit binaries, and
special handling of *-config scripts to look at an environment variable
to decide which bit width script to execute to pick up the right flags),
and having linked against them, on the system I'm currently running.
Haven't ever had this happen.

I *suppose* that might be because pkg-config or some equivalent fixes it
up somehow, pointing to the .la files directly.  Or maybe -L affects
this somehow.

Well that sucks.  :-)  Sigh.

 Surely you don't want create a problem for distributions that want to
 build various systemd libraries both for 64 and 32 bits, do you?

Not really.  I assumed libtool handled multilib the same way gcc did.
Figures that it doesn't.  :-/

Argh.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH 3/6] nss-myhostname: integrate into systemd buildsystem

2013-01-06 Thread Bryan Kadzban
Tollef Fog Heen wrote:
 ]] Tom Gundersen
 
 This was what the old nss-myhostname did. Lennart: any good reason
 to exclude the .la or should nss-myhostname be treated the same as
 the other libs?
 
 .la files are only useful for static linking.

Untrue.  They're perfectly useful for dynamic linking as well:

http://www.sourceware.org/autobook/autobook/autobook_68.html#SEC68

Second paragraph.  Also the page several sections after this one, about
installing a shared library with libtool.

 (I hold that static linking in general is a bad idea and .la files 
 should just go away entirely on Linux, but this is not a universally 
 held opinion.)

No, because that opinion would defeat the whole purpose of libtool,
which is to have a single interface (in terms of commands that get run)
that's portable both across Unix-like OSes, and across shared vs. static
libraries by adding one flag.

On Linux the .la files are probably not necessary for shared libs, no --
but using libtool to find them still is, if the code ever expects to
compile on another system.  And not everyone has the systemd all the
world is Linux viewpoint; some projects can't afford to be that
fragmentary toward other Unix implementations.

On the other hand, if nothing else ever has to link against this library
(if it's an nss provider in glibc for instance), then sure, kill the .la
file.  But be sure it isn't needed first.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] execute: Fix seccomp support on x32

2012-08-04 Thread Bryan Kadzban
microcai wrote:
 2012/8/4 Lennart Poettering lenn...@poettering.net:
 On Tue, 24.07.12 22:45, Jonathan Callen (a...@gentoo.org) wrote:
 
 In the x32 ABI, syscall numbers start at 0x4000.  Mask that
 bit on x32 for lookups in the syscall_names array and
 syscall_filter and ensure that syscall.h is parsed correctly.
 Hmpf, can't say I find this patch particularly beautiful?
 
 Can we solve this differently? For example, I'd be open to replace
 the direct seccomp code in systemd by some code based on libseccomp
 (now that libseccomp actually fixed its static global state
 issues). That way we should get this portability for free?
 
 looks like some  source-based distro will blame you again :)

libseccomp uses pkg-config, so it's much less of a problem IMO;
SECCOMP_CFLAGS=  SECCOMP_LIBS=  will allow configure to at least
finish properly if the library is not present.  (Whether the system
builds at all in this case is of course an issue that anyone sending
those params to ./configure will have to deal with.)
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] Always populate EXTRA_DIST

2012-07-27 Thread Bryan Kadzban
Lennart Poettering wrote:
 On Thu, 07.06.12 23:24, Bryan Kadzban (br...@kadzban.is-a-geek.net) wrote:
 
 Bryan Kadzban wrote:
 make dist can build a different tarball depending on the flags passed
 to ./configure and the (optional) dependencies found on the system.
 Move all append-to-EXTRA_DIST operations out of automake conditionals to
 fix this.

 Introduce a polkitpolicy_files so that the policy files built still
 correctly depend on the automake conditionals, but the .in files that
 get distributed do not.

 Signed-Off-By: Bryan Kadzban bryan.kadzban.is-a-geek.net
 Arg, always compile-check.  Tested, this time.

 v2, fixing warnings about polkitpolicy_files not being defined.
 
 Looks good, but could you rebase this to current master? Will apply then.

v3, rebased.  (Finally got time to do this.)

diff --git a/Makefile.am b/Makefile.am
index a74a806..e4dfafb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -95,6 +95,7 @@ lib_LTLIBRARIES =
 include_HEADERS =
 pkgconfiglib_DATA =
 polkitpolicy_in_files =
+polkitpolicy_files =
 dist_udevrules_DATA =
 nodist_udevrules_DATA =
 dist_man_MANS =
@@ -1950,9 +1951,6 @@ lib_LTLIBRARIES += libgudev-1.0.la
 pkgconfiglib_DATA += \
src/gudev/gudev-1.0.pc
 
-EXTRA_DIST += \
-   src/gudev/gudev-1.0.pc.in
-
 CLEANFILES += \
src/gudev/gudev-1.0.pc
 
@@ -2003,14 +2001,6 @@ libgudev_1_0_la_LDFLAGS = \
-export-dynamic -no-undefined \
-export-symbols-regex '^g_udev_.*'
 
-EXTRA_DIST += \
-   src/gudev/gudevmarshal.list \
-   src/gudev/gudevenumtypes.h.template \
-   src/gudev/gudevenumtypes.c.template \
-   src/gudev/gjs-example.js \
-   src/gudev/seed-example-enum.js \
-   src/gudev/seed-example.js
-
 src/gudev/gudevmarshal.h: src/gudev/gudevmarshal.list
$(AM_V_GEN)glib-genmarshal $ --prefix=g_udev_marshal --header  $@
 
@@ -2091,6 +2081,16 @@ INSTALL_EXEC_HOOKS += libgudev-install-move-hook
 UNINSTALL_EXEC_HOOKS += libgudev-uninstall-move-hook
 endif
 
+EXTRA_DIST += \
+   src/gudev/gudev-1.0.pc.in \
+   src/gudev/gudevmarshal.list \
+   src/gudev/gudevenumtypes.h.template \
+   src/gudev/gudevenumtypes.c.template \
+   src/gudev/gjs-example.js \
+   src/gudev/seed-example-enum.js \
+   src/gudev/seed-example.js
+
+
 # 
--
 if ENABLE_KEYMAP
 keymap_SOURCES = \
@@ -2126,10 +2126,6 @@ dist_udevhome_SCRIPTS = \
 TESTS += \
src/udev/keymap/check-keymaps.sh
 
-EXTRA_DIST += \
-   src/udev/keymap/check-keymaps.sh \
-   src/udev/keymap/keyboard-force-release.sh.in
-
 CLEANFILES += \
src/udev/keymap/keys.txt \
src/udev/keymap/keys-from-name.gperf \
@@ -2219,6 +2215,10 @@ src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt 
Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print const char* const key_names[KEY_CNT] = 
{ } { print [ $$1 ] = \ $$1 \, } END{print };}'  $  $@
 endif
 
+EXTRA_DIST += \
+   src/udev/keymap/check-keymaps.sh \
+   src/udev/keymap/keyboard-force-release.sh.in
+
 # 
--
 mtd_probe_SOURCES =  \
src/udev/mtd_probe/mtd_probe.c \
@@ -2550,13 +2550,13 @@ rootlibexec_PROGRAMS += \
 sysctl_DATA = \
sysctl.d/coredump.conf
 
-EXTRA_DIST += \
-   sysctl.d/coredump.conf.in
-
 CLEANFILES += \
sysctl.d/coredump.conf
 endif
 
+EXTRA_DIST += \
+   sysctl.d/coredump.conf.in
+
 # 
--
 if ENABLE_BINFMT
 systemd_binfmt_SOURCES = \
@@ -2597,10 +2597,10 @@ MANPAGES_ALIAS +=  \
man/systemd-binfmt.8
 
 man/systemd-binfmt.8: man/systemd-binfmt.service.8
+endif
 
 EXTRA_DIST += \
units/systemd-binfmt.service.in
-endif
 
 # 
--
 if ENABLE_VCONSOLE
@@ -2634,10 +2634,10 @@ MANPAGES_ALIAS += \
man/systemd-vconsole-setup.8
 
 man/systemd-vconsole-setup.8: man/systemd-vconsole-setup.service.8
+endif
 
 EXTRA_DIST += \
units/systemd-vconsole-setup.service.in
-endif
 
 # 
--
 if ENABLE_READAHEAD
@@ -2670,11 +2670,6 @@ nodist_systemunit_DATA += \
units/systemd-readahead-replay.service \
units/systemd-readahead-done.service
 
-EXTRA_DIST += \
-   units/systemd-readahead-collect.service.in \
-   units/systemd-readahead-replay.service.in \
-   units/systemd-readahead-done.service.in
-
 MANPAGES += \
man/sd_readahead.3 \
man/sd-readahead.3 \
@@ -2693,6 +2688,11 @@ man/systemd-readahead.8: 
man/systemd-readahead-replay.service.8
 
 endif
 
+EXTRA_DIST += \
+   units/systemd-readahead-collect.service.in \
+   units/systemd-readahead-replay.service.in \
+   units/systemd-readahead-done.service.in

Re: [systemd-devel] Minimal builds

2012-06-21 Thread Bryan Kadzban
Bryan Kadzban wrote:
 On Wed, Jun 20, 2012 at 06:22:49PM +0200, Lennart Poettering wrote:
 Heya,

 regarding the whole discussion on minimal builds and people wanting to
 pick specific parts of the systemd build leaving out others, beyond what
 the configure switches offer: Here are some guidelines how we recommend
 people to do this:

 http://freedesktop.org/wiki/Software/systemd/MinimalBuilds

 From our side this should be enough to settle the discussion.
 
 Would an extremely minimal patch (just to configure.ac, not touching any
 of the pkg-config dependencies, but only intltool, libcap, and gperf),
 allowing them to be made optional, be acceptable to systemd?

Note that the patch would not need to create a new configure switch,
either; it could just as easily trigger off some environment variable,
if there's a worry that its presence in the ./configure --help output
could cause people to use it without understanding what it does, and
break their systemd build.

(Same as DBUS_CFLAGS / DBUS_LIBS overriding pkg-config today, actually.
Something like SYSTEMD_ONLY_DEPS_OPTIONAL, or whatever; the name isn't
exactly critical I don't think.)

I have sent a patch adding a libcap.pc file to the libcap installation,
to morgan@ -- not sure what will happen there, but that will help a bit
if it gets in.

But thinking more along those lines, I should consider changing
intltool's m4 script to allow it to be found via pkg-config, as well,
and changing gperf to install a .pc file like the patch to libcap.  Then
nothing would need to be changed in systemd at all, except using
PKG_CHECK_EXISTS for these deps instead of AC_CHECK_TOOL and an
AC_MSG_ERROR.  (And nothing should be required for intltool; the
existing IT_PROG_INTLTOOL should keep working.)
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] setting up to allow separate udev and systemd builds

2012-06-19 Thread Bryan Kadzban
Lennart Poettering wrote:
 On Fri, 15.06.12 20:06, Bryan Kadzban (br...@kadzban.is-a-geek.net) wrote:
 
 dbus
 libcap
 
 I am quite happy with depending on these two as it makes little sense to
 build an OS without it, unless you go super minimal in which case
 sysemd/udev are not relevant.

As I said, dbus probably makes sense for a full desktop system.  Most of
us that are pushing for these changes are *not* running that.  Only
Fedora and Ubuntu seem to be pushing it this hard from what I can tell.

Web/mail/whatever servers, where users never log in except possibly over
ssh, have *zero* use for dbus.

FS capability support is also unnecessary unless you're trying to get
some kind of security certification or something; the kernel even allows
disabling support entirely.  (CONFIG_EXT?_FS_XATTR)

 m4
 intltool
 gperf (--enable-keymap will require gperf for a udev build as well)
 
 These are only build-time deps, and hence are totally OK to have.
 
 I mean, the next thing you come up with is a patch to not require
 automake and use only make, just because you have a problem with
 dependencies? I mean, seriously.

No, because I realize as well as you do that automake is only required
to run automake, before configuring, before turning the git tree into
the distribution package (make dist-xz or whatever).  In the tarballs
as distributed, automake is totally unnecessary unless the distributed
tarball has a bug.

Automake is not a dependency.  m4, intltool, and gperf are, because
configure unconditionally requires them to be present.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] setting up to allow separate udev and systemd builds

2012-06-15 Thread Bryan Kadzban
microcai wrote:
 2012/6/15 William Hubbs w.d.hu...@gmail.com
 
 On Fri, Jun 15, 2012 at 07:27:26PM +0800, microcai wrote:
 2012/6/15 William Hubbs w.d.hu...@gmail.com
 systemd has several more dependencies than udev. Because of
 that and because of the way the build system is setup to only
 do a full systemd build, I have to install all of systemd's
 dependencies on every gentoo user's system regardless of
 whether or not they are using systemd or udev standalone.
 
 That's not true. Please tell us exactly which lib is use only by
 systemd and not by the rest of the system.
 At least dbus and intltool are not used by udev. There are probably
 more; I haven't really looked at all of the details yet.
 
 It isn't only libraries though; many things get built even when you
 use all of the --disable switches that are not needed on a system
 that is using udev standalone.
 
 
 but others will do use dbus and intltool.

Requirements that systemd-183, -184, and -185 all add, over and above
the requirements of udev-182 (these are the deps that my initial patch
relaxed the requirements on with the right flag to configure):

dbus
intltool
m4
gperf (--enable-keymap will require gperf for a udev build as well)
libcap

There is also an optional dependency that systemd-185 adds (libpam) --
but it's optional, so not relevant here.

Yes, some systems use dbus and FS capabilities.  But they are *not*
required for a Linux system, and they are not required for udev.  D-Bus
probably makes a full-on desktop system easier, no argument there -- but
not all of us are running full-on desktop systems, either.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCH] Allow configuring without systemd-only dependencies

2012-06-09 Thread Bryan Kadzban
William Hubbs wrote:
 On Thu, Jun 07, 2012 at 11:35:00PM -0700, Bryan Kadzban wrote:
 Some dependencies (intltool, m4, dbus, pkg-config, PAM) are only
 required or useful for systemd, not for udev.  Leave these required by
 default, but allow them to be made optional if the right flag is used to
 ./configure.
 
 How about using --disable-systemd to take out these dependencies instead
 of adding another switch?

Well, this is the minimum to let us (LFS) at least get a build process
together to upgrade from udev-182.  systemd as-is has too many build
dependencies for us to use it the way it is today.  I figured I'd see
what upstream thought about just doing the minimum we need first.  (We
can override variables at make time to build just the udev binary and
helpers.)

But if a --disable-systemd switch ends up getting committed, sure,
that'd work too.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


[systemd-devel] [PATCH] Always populate EXTRA_DIST

2012-06-08 Thread Bryan Kadzban
make dist can build a different tarball depending on the flags passed
to ./configure and the (optional) dependencies found on the system.
Move all append-to-EXTRA_DIST operations out of automake conditionals to
fix this.

Introduce a polkitpolicy_files so that the policy files built still
correctly depend on the automake conditionals, but the .in files that
get distributed do not.

Signed-Off-By: Bryan Kadzban bryan.kadzban.is-a-geek.net
diff --git a/Makefile.am b/Makefile.am
index f45fa27..6991391 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1714,9 +1714,6 @@ lib_LTLIBRARIES += libgudev-1.0.la
 pkgconfiglib_DATA += \
src/gudev/gudev-1.0.pc
 
-EXTRA_DIST += \
-   src/gudev/gudev-1.0.pc.in
-
 CLEANFILES += \
src/gudev/gudev-1.0.pc
 
@@ -1767,14 +1764,6 @@ libgudev_1_0_la_LDFLAGS = \
-export-dynamic -no-undefined \
-export-symbols-regex '^g_udev_.*'
 
-EXTRA_DIST += \
-   src/gudev/gudevmarshal.list \
-   src/gudev/gudevenumtypes.h.template \
-   src/gudev/gudevenumtypes.c.template \
-   src/gudev/gjs-example.js \
-   src/gudev/seed-example-enum.js \
-   src/gudev/seed-example.js
-
 CLEANFILES += \
$(nodist_libgudev_1_0_la_SOURCES)
 
@@ -1858,6 +1847,15 @@ INSTALL_EXEC_HOOKS += libgudev-install-move-hook
 UNINSTALL_EXEC_HOOKS += libgudev-uninstall-move-hook
 endif
 
+EXTRA_DIST += \
+   src/gudev/gudev-1.0.pc.in \
+   src/gudev/gudevmarshal.list \
+   src/gudev/gudevenumtypes.h.template \
+   src/gudev/gudevenumtypes.c.template \
+   src/gudev/gjs-example.js \
+   src/gudev/seed-example-enum.js \
+   src/gudev/seed-example.js
+
 # 
--
 if ENABLE_KEYMAP
 keymap_SOURCES = \
@@ -1893,10 +1891,6 @@ dist_udevhome_SCRIPTS = \
 TESTS += \
src/udev/keymap/check-keymaps.sh
 
-EXTRA_DIST += \
-   src/udev/keymap/check-keymaps.sh \
-   src/udev/keymap/keyboard-force-release.sh.in
-
 CLEANFILES += \
$(nodist_keymap_SOURCES) \
src/udev/keymap/keys.txt \
@@ -1987,6 +1981,10 @@ src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt 
Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print const char* const key_names[KEY_CNT] = 
{ } { print [ $$1 ] = \ $$1 \, } END{print };}'  $  $@
 endif
 
+EXTRA_DIST += \
+   src/udev/keymap/check-keymaps.sh \
+   src/udev/keymap/keyboard-force-release.sh.in
+
 # 
--
 mtd_probe_SOURCES =  \
src/udev/mtd_probe/mtd_probe.c \
@@ -2288,13 +2286,13 @@ rootlibexec_PROGRAMS += \
 sysctl_DATA = \
sysctl.d/coredump.conf
 
-EXTRA_DIST += \
-   sysctl.d/coredump.conf.in
-
 CLEANFILES += \
sysctl.d/coredump.conf
 endif
 
+EXTRA_DIST += \
+   sysctl.d/coredump.conf.in
+
 # 
--
 if ENABLE_BINFMT
 systemd_binfmt_SOURCES = \
@@ -2335,10 +2333,10 @@ MANPAGES_ALIAS +=  \
man/systemd-binfmt.8
 
 man/systemd-binfmt.8: man/systemd-binfmt.service.8
+endif
 
 EXTRA_DIST += \
units/systemd-binfmt.service.in
-endif
 
 # 
--
 if ENABLE_VCONSOLE
@@ -2366,10 +2364,10 @@ INSTALL_DATA_HOOKS += \
 
 MANPAGES += \
man/vconsole.conf.5
+endif
 
 EXTRA_DIST += \
units/systemd-vconsole-setup.service.in
-endif
 
 # 
--
 if ENABLE_READAHEAD
@@ -2416,16 +2414,16 @@ nodist_systemunit_DATA += \
units/systemd-readahead-replay.service \
units/systemd-readahead-done.service
 
-EXTRA_DIST += \
-   units/systemd-readahead-collect.service.in \
-   units/systemd-readahead-replay.service.in \
-   units/systemd-readahead-done.service.in
-
 MANPAGES += \
man/sd_readahead.3 \
man/sd-readahead.7
 endif
 
+EXTRA_DIST += \
+   units/systemd-readahead-collect.service.in \
+   units/systemd-readahead-replay.service.in \
+   units/systemd-readahead-done.service.in
+
 # 
--
 if ENABLE_QUOTACHECK
 rootlibexec_PROGRAMS += \
@@ -2434,9 +2432,6 @@ rootlibexec_PROGRAMS += \
 nodist_systemunit_DATA += \
units/quotacheck.service
 
-EXTRA_DIST += \
-   units/quotacheck.service.in
-
 systemd_quotacheck_SOURCES = \
src/quotacheck/quotacheck.c
 
@@ -2444,6 +2439,9 @@ systemd_quotacheck_LDADD = \
libsystemd-shared.la
 endif
 
+EXTRA_DIST += \
+   units/quotacheck.service.in
+
 # 
--
 if ENABLE_RANDOMSEED
 rootlibexec_PROGRAMS += \
@@ -2453,10 +2451,6 @@ nodist_systemunit_DATA += \
units/systemd-random-seed-save.service \
units/systemd-random-seed-load.service
 
-EXTRA_DIST += \
-   units/systemd-random-seed-save.service.in

Re: [systemd-devel] [PATCH] Always populate EXTRA_DIST

2012-06-08 Thread Bryan Kadzban
Bryan Kadzban wrote:
 make dist can build a different tarball depending on the flags passed
 to ./configure and the (optional) dependencies found on the system.
 Move all append-to-EXTRA_DIST operations out of automake conditionals to
 fix this.
 
 Introduce a polkitpolicy_files so that the policy files built still
 correctly depend on the automake conditionals, but the .in files that
 get distributed do not.
 
 Signed-Off-By: Bryan Kadzban bryan.kadzban.is-a-geek.net

Arg, always compile-check.  Tested, this time.

v2, fixing warnings about polkitpolicy_files not being defined.
diff --git a/Makefile.am b/Makefile.am
index f45fa27..0d39f88 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -91,6 +91,7 @@ lib_LTLIBRARIES =
 include_HEADERS =
 pkgconfiglib_DATA =
 polkitpolicy_in_files =
+polkitpolicy_files =
 dist_udevrules_DATA =
 nodist_udevrules_DATA =
 dist_man_MANS =
@@ -1714,9 +1715,6 @@ lib_LTLIBRARIES += libgudev-1.0.la
 pkgconfiglib_DATA += \
src/gudev/gudev-1.0.pc
 
-EXTRA_DIST += \
-   src/gudev/gudev-1.0.pc.in
-
 CLEANFILES += \
src/gudev/gudev-1.0.pc
 
@@ -1767,14 +1765,6 @@ libgudev_1_0_la_LDFLAGS = \
-export-dynamic -no-undefined \
-export-symbols-regex '^g_udev_.*'
 
-EXTRA_DIST += \
-   src/gudev/gudevmarshal.list \
-   src/gudev/gudevenumtypes.h.template \
-   src/gudev/gudevenumtypes.c.template \
-   src/gudev/gjs-example.js \
-   src/gudev/seed-example-enum.js \
-   src/gudev/seed-example.js
-
 CLEANFILES += \
$(nodist_libgudev_1_0_la_SOURCES)
 
@@ -1858,6 +1848,15 @@ INSTALL_EXEC_HOOKS += libgudev-install-move-hook
 UNINSTALL_EXEC_HOOKS += libgudev-uninstall-move-hook
 endif
 
+EXTRA_DIST += \
+   src/gudev/gudev-1.0.pc.in \
+   src/gudev/gudevmarshal.list \
+   src/gudev/gudevenumtypes.h.template \
+   src/gudev/gudevenumtypes.c.template \
+   src/gudev/gjs-example.js \
+   src/gudev/seed-example-enum.js \
+   src/gudev/seed-example.js
+
 # 
--
 if ENABLE_KEYMAP
 keymap_SOURCES = \
@@ -1893,10 +1892,6 @@ dist_udevhome_SCRIPTS = \
 TESTS += \
src/udev/keymap/check-keymaps.sh
 
-EXTRA_DIST += \
-   src/udev/keymap/check-keymaps.sh \
-   src/udev/keymap/keyboard-force-release.sh.in
-
 CLEANFILES += \
$(nodist_keymap_SOURCES) \
src/udev/keymap/keys.txt \
@@ -1987,6 +1982,10 @@ src/udev/keymap/keys-to-name.h: src/udev/keymap/keys.txt 
Makefile
$(AM_V_GEN)$(AWK) 'BEGIN{ print const char* const key_names[KEY_CNT] = 
{ } { print [ $$1 ] = \ $$1 \, } END{print };}'  $  $@
 endif
 
+EXTRA_DIST += \
+   src/udev/keymap/check-keymaps.sh \
+   src/udev/keymap/keyboard-force-release.sh.in
+
 # 
--
 mtd_probe_SOURCES =  \
src/udev/mtd_probe/mtd_probe.c \
@@ -2288,13 +2287,13 @@ rootlibexec_PROGRAMS += \
 sysctl_DATA = \
sysctl.d/coredump.conf
 
-EXTRA_DIST += \
-   sysctl.d/coredump.conf.in
-
 CLEANFILES += \
sysctl.d/coredump.conf
 endif
 
+EXTRA_DIST += \
+   sysctl.d/coredump.conf.in
+
 # 
--
 if ENABLE_BINFMT
 systemd_binfmt_SOURCES = \
@@ -2335,10 +2334,10 @@ MANPAGES_ALIAS +=  \
man/systemd-binfmt.8
 
 man/systemd-binfmt.8: man/systemd-binfmt.service.8
+endif
 
 EXTRA_DIST += \
units/systemd-binfmt.service.in
-endif
 
 # 
--
 if ENABLE_VCONSOLE
@@ -2366,10 +2365,10 @@ INSTALL_DATA_HOOKS += \
 
 MANPAGES += \
man/vconsole.conf.5
+endif
 
 EXTRA_DIST += \
units/systemd-vconsole-setup.service.in
-endif
 
 # 
--
 if ENABLE_READAHEAD
@@ -2416,16 +2415,16 @@ nodist_systemunit_DATA += \
units/systemd-readahead-replay.service \
units/systemd-readahead-done.service
 
-EXTRA_DIST += \
-   units/systemd-readahead-collect.service.in \
-   units/systemd-readahead-replay.service.in \
-   units/systemd-readahead-done.service.in
-
 MANPAGES += \
man/sd_readahead.3 \
man/sd-readahead.7
 endif
 
+EXTRA_DIST += \
+   units/systemd-readahead-collect.service.in \
+   units/systemd-readahead-replay.service.in \
+   units/systemd-readahead-done.service.in
+
 # 
--
 if ENABLE_QUOTACHECK
 rootlibexec_PROGRAMS += \
@@ -2434,9 +2433,6 @@ rootlibexec_PROGRAMS += \
 nodist_systemunit_DATA += \
units/quotacheck.service
 
-EXTRA_DIST += \
-   units/quotacheck.service.in
-
 systemd_quotacheck_SOURCES = \
src/quotacheck/quotacheck.c
 
@@ -2444,6 +2440,9 @@ systemd_quotacheck_LDADD = \
libsystemd-shared.la
 endif
 
+EXTRA_DIST += \
+   units/quotacheck.service.in

[systemd-devel] [PATCH] Allow configuring without systemd-only dependencies

2012-06-08 Thread Bryan Kadzban
Some dependencies (intltool, m4, dbus, pkg-config, PAM) are only
required or useful for systemd, not for udev.  Leave these required by
default, but allow them to be made optional if the right flag is used to
./configure.

Signed-Off-By: Bryan Kadzban br...@kadzban.is-a-geek.net

-

This is necessary for anyone who wants to build udev only.  It's not
sufficient, but without this or something like it, ./configure fails
hard.  This change touches *only* configure; if the dependencies are
made optional in a ./configure run, and they don't exist on the system
(or in some cases, even if they do) make will fail hard.

I'm not attached to the --with-X flag's name; coming up with a better
one would be fine.

Unfortunately there's no use intltool if it's present, otherwise don't
bother variant of IT_PROG_INTLTOOL.  If that's wanted, I could hack it
together with another invocation of AC_PATH_PROG, but this is slightly
simpler.
diff --git a/configure.ac b/configure.ac
index 70f3e96..446fb95 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,8 +44,15 @@ AS_IF([test x$host_cpu = xmips || test x$host_cpu = 
xmipsel ||
 LT_PREREQ(2.2)
 LT_INIT
 
+AC_ARG_WITH([require-systemd-deps],
+[AS_HELP_STRING([--without-require-systemd-deps],
+[make systemd configure dependencies optional 
@:@default: required@:@])],
+[with_require_systemd_deps=$withval], 
[with_require_systemd_deps=yes])
+
 # i18n stuff for the PolicyKit policy files
+AS_IF([test x$with_require_systemd_deps = xyes], [
 IT_PROG_INTLTOOL([0.40.0])
+])
 
 GETTEXT_PACKAGE=systemd
 AC_SUBST(GETTEXT_PACKAGE)
@@ -61,7 +68,9 @@ AC_PROG_CC_C99
 AM_PROG_CC_C_O
 AC_PROG_GCC_TRADITIONAL
 
+AS_IF([test x$with_require_systemd_deps = xyes], [
 AC_PATH_PROG([M4], [m4])
+])
 
 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
 m4_ifdef([GTK_DOC_CHECK], [
@@ -75,7 +84,7 @@ GOBJECT_INTROSPECTION_CHECK([1.31.1])
 AC_CHECK_TOOL(OBJCOPY, objcopy)
 AC_CHECK_TOOL(STRINGS, strings)
 AC_CHECK_TOOL(GPERF, gperf)
-if test -z $GPERF ; then
+if test -z $GPERF  test x$with_require_systemd_deps = xyes ; then
 AC_MSG_ERROR([*** gperf not found])
 fi
 
@@ -132,6 +141,7 @@ AC_SUBST([GCLDFLAGS], $with_ldflags)
 AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library 
not found])])
 AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader 
library not found])])
 
+AS_IF([test x$with_require_systemd_deps = xyes], [
 save_LIBS=$LIBS
 LIBS=
 AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library 
not found])])
@@ -139,11 +149,14 @@ AC_CHECK_HEADERS([sys/capability.h], [], 
[AC_MSG_ERROR([*** POSIX caps headers n
 CAP_LIBS=$LIBS
 LIBS=$save_LIBS
 AC_SUBST(CAP_LIBS)
+])
 
 # This makes sure pkg.m4 is available.
 m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install 
pkg-config])
 
+AS_IF([test x$with_require_systemd_deps = xyes], [
 PKG_CHECK_MODULES(DBUS, [dbus-1 = 1.3.2])
+])
 PKG_CHECK_MODULES(KMOD, [libkmod = 5])
 PKG_CHECK_MODULES(BLKID,[blkid = 2.20])
 
@@ -648,22 +661,22 @@ AM_CONDITIONAL(HAVE_SYSV_COMPAT, test 
$SYSTEM_SYSV_COMPAT = yes)
 AC_ARG_WITH([dbuspolicydir],
 AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]),
 [],
-[with_dbuspolicydir=`pkg-config --variable=sysconfdir 
dbus-1`/dbus-1/system.d])
+[AS_IF([test x$with_require_systemd_deps = xyes], 
[with_dbuspolicydir=`pkg-config --variable=sysconfdir 
dbus-1`/dbus-1/system.d])])
 
 AC_ARG_WITH([dbussessionservicedir],
 AS_HELP_STRING([--with-dbussessionservicedir=DIR], [D-Bus session 
service directory]),
 [],
-[with_dbussessionservicedir=`pkg-config 
--variable=session_bus_services_dir dbus-1`])
+[AS_IF([test x$with_require_systemd_deps = xyes], 
[with_dbussessionservicedir=`pkg-config --variable=session_bus_services_dir 
dbus-1`])])
 
 AC_ARG_WITH([dbussystemservicedir],
 AS_HELP_STRING([--with-dbussystemservicedir=DIR], [D-Bus system 
service directory]),
 [],
-[with_dbussystemservicedir=`pkg-config 
--variable=session_bus_services_dir dbus-1`/../system-services])
+[AS_IF([test x$with_require_systemd_deps = xyes], 
[with_dbussystemservicedir=`pkg-config --variable=session_bus_services_dir 
dbus-1`/../system-services])])
 
 AC_ARG_WITH([dbusinterfacedir],
 AS_HELP_STRING([--with-dbusinterfacedir=DIR], [D-Bus interface 
directory]),
 [],
-[with_dbusinterfacedir=`pkg-config --variable=session_bus_services_dir 
dbus-1`/../interfaces])
+[AS_IF([test x$with_require_systemd_deps = xyes], 
[with_dbusinterfacedir=`pkg-config --variable=session_bus_services_dir 
dbus-1`/../interfaces])])
 
 AC_ARG_WITH([rootprefix],
 AS_HELP_STRING([--with-rootprefix=DIR], [rootfs directory prefix for 
config files and kernel modules]),
@@ -677,7 +690,7 @@ AC_ARG_WITH([rootlibdir],
 AC_ARG_WITH([pamlibdir],
 AS_HELP_STRING