Add --enable-legacylib option to configure, allowing for build and
installation of libudev.so.0 shared library for supporting pre-udev-183
software. Library is installed to rootlibdir.
Note that this legacy library will not be maintained, and should not be used
for anything other than supporting a working system until all software
on the system is migrated to use libudev.so.1
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
We haven't confirmed yet that everything is compliant with
196 but libudev is and it seems relevant that udevadm reports
the udev version that provides hwdb functions
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Keymaps rules had stated to add or modify /usr/lib/udev/* files instead
of using generic paths, and there was no mention of /etc/udev/* being valid
even though it is (and is the better way to do system-specific
modifications)
Since these keymaps are the default reference files they should be
installed in the same location as the default rules files. This
matches sys-fs/udev behaviour as well
This is necessary because the code originally defined paths assuming UDEV_LIBEXECDIR
was /usr prefixed, and also that udevrulesdir was located in /etc. Since (1) both of
these defaults have changed, and (2) they could be set to more or less anything, we
want to ensure that there is support for the standard paths as well, irrespective of
what UDEV_LIBEXECDIR and UDEV_RULES_DIR are set to.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Commit ff2c503df0 introduced accept4() into
udev, which broke compatibility with kernels older than Linux 2.6.32 (or
Linux 2.6.36 on ARM). The purpose of accept4() is to permit
O_NONBLOCK and O_CLOEXEC to be specified at the accept() call site
while previously, they had to be set using fcntl() because Linux does
not inherit them.
Since accept4() increases the minimum kernel version, we add a fallback
path for situations in which it is unavailable.
Reported-by: Stephen Klimaszewski <steev@gentoo.org>
Signed-off-by: Richard Yao <ryao@gentoo.org>
Module loading support was unconditionally disabled in the initial
autotools tests. I had missed this in my testing because I still had the
80-drivers.rules file from udev 171 on my system, which masked this
issue by invoking modprobe explicitly. This patch corrects the issue.
Signed-off-by: Richard Yao <ryao@gentoo.org>
The use of the eudev version in pkgconfig files caused build failures,
so we switch to the udev version for compatibility purposes.
Resolvesgentoo/eudev#22
Signed-off-by: Richard Yao <ryao@gentoo.org>
This commit makes sure that src/gudev/gudevprivate.h is included
in the distribution, fixing a failure in building gudev with
`make distcheck`. There's also some code cleanup and migration
of all configurable paths to the main configure.ac file.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit the related issues of building gudev with/out
introspection. It draws on suggestions from nvinson in
https://github.com/gentoo/eudev/pull/20
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
We move the test-udev.c and test-libudev.c from src/test to test.
This corrects the a problem with hard coded relative paths finding
the test/test/sys directory created by test/udev-test.pl.
This commit draws heavily from nvinson patch in
https://github.com/gentoo/eudev/pull/20
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is a continuation of the previous one in which all the configured
paths obtained in configure.ac are propagated to the Makefile.am and .c files
via AM_CPPFLAGS of the form -DUDEV_CONF_FILE=\"$(udevconffile)\". This should
address the issue in
https://github.com/gentoo/eudev/issues/17
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
The configuration of the installation paths for various components
was scattered between the main configure.ac file and the various
Makefile.am's. These components are: udev config file, hwdb, keymaps
and force-release keymaps and the rules. This commit consolidates
them all into one point in configure.ac and anticipates the inclusion
of new AM_CPPFLAGS of the form -DHWDB_BIN=@udevhwdbdir@ as upstream
has done, so it is easier to address issues like:
https://github.com/gentoo/eudev/issues/17
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
The original checks for python were to build some man pages and
for systemd-python. These checks are no longer relevant. There
still is a dependency on python for tests but this is checked by
test/rules-test.sh which tests for python or skips. Also, there
is a dependency on perl for both tests and hwdb. These checks can
be reintroduced at a future date when re revisit both.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
The GTK_DOC_CHECK macro includes AC_ARG_ENABLE/AS_HELP_STRING etc
for --enable-gtk-doc and there is no need for a second check.
One caveat should be noted: GTK_DOC_CHECK must begin the line for
gtkdocize to recognize its presense in configure.ac.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
The keys/keymap test preformed by src/keymap/check-keymaps.sh must
find both keys.txt and the keymap directory. When building out of
the source tree, eg when doing `make distcheck`, these are located
at ${top_builddir}/src/keymap/keys.txt and ${top_srcdir}/keymap/,
respectively. This patch fixes the build so that these are now
correctly found.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit reintroduces code to
1) build src/keymap
2) test keymap/Makefile.am that it has all the key maps listed
3) test that all the key names in keymap/* are in <linux/input.h>
4) do a syntax check on rules/*.rules which now includes
95-keymap.rules and 95-keyboard-force-release.rules
For #4, the regex expressions in rule-syntax-check.py had to be
updated. They do not allow trailing comments via # comment, and
I did not include that. A rule in 95-keymap.rules had to have its
comment moved from the end to another line.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Changes to rules were introduced by
7c2dee4a4d while builtin-blkid support was
introduced in other commits. The removal of systemd resulted in this
code causing linker errors. This code adds complexity with no clear
benefit, so we remove it.
Signed-off-by: Richard Yao <ryao@gentoo.org>
Changes to rules were introduced by
06316d9f1a while kmod support was
introduced in other commits. A ton of commits were made involving kmod
and it is quite clear that it is broken, so we remove it.
This changes our rules to depend on modprobe. As long as the modprobe
binary is in /, and not /usr, udev module loading should function
properly.
Signed-off-by: Richard Yao <ryao@gentoo.org>
The original Makefile.am was drawn to the top level. This commit
breaks it out into the various directories with SUBDIRS connecting
them. This makes each directory easier to maintain.
This is the first pass attempting to keep as much of the build system
as is necessary for only udev from the fork. Emphasis was given to
configure.ac. Gutting had to be done to Makefile.am but this needs
work to be broken out into SUBDIR Makefile.am which each address those
pieces.
This is the usual setup, where pythonX.Y and pythonX.Y-config go
together. Using python-config with python3 will only lead to
confusion.
--libs is changed to --ldflags, since the latter also includes other
required flags like -L<dir>.
The tests for HAVE_PYTHON and HAVE_PYTHON_DEVEL are separated. It is
possible to have python development libraries installed without the
binary (or to want to build python modules without using python during
the build).
A line is added to the output, to show what flags will be used for
python.