Package: udev Severity: normal Tags: patch Hi,
Udev currently only builds on linux platforms, while libvolume-id can be useful for other platforms too. Here is a patch that makes it build libvolume-id0 and libvolume-id-dev on non-linux archs, tested on i386 and hurd-i386. Samuel Samuel
diff -ur udev-0.114/debian/control udev-0.114-mine/debian/control --- udev-0.114/debian/control 2007-08-10 15:39:26.000000000 +0000 +++ udev-0.114-mine/debian/control 2007-08-10 15:45:37.000000000 +0000 @@ -2,11 +2,11 @@ Section: admin Priority: important Maintainer: Marco d'Itri <[EMAIL PROTECTED]> -Build-Depends: debhelper (>> 4.2), quilt (>= 0.40), libselinux1-dev (>= 1.28-1) +Build-Depends: debhelper (>> 4.2), quilt (>= 0.40), libselinux1-dev (>= 1.28-1) [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64] Standards-Version: 3.7.2.2 Package: udev -Architecture: any +Architecture: alpha amd64 arm armeb armel hppa i386 ia64 m68k mips mipsel powerpc s390 sparc Pre-Depends: debconf (>= 1.4.69) | debconf-2.0 Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6) Replaces: initramfs-tools (<= 0.41) @@ -37,7 +37,7 @@ Package: udev-udeb XC-Package-Type: udeb Section: debian-installer -Architecture: any +Architecture: alpha amd64 arm armeb armel hppa i386 ia64 m68k mips mipsel powerpc s390 sparc Depends: ${shlibs:Depends} Description: /dev/ and hotplug management daemon udev is a daemon which dynamically creates and removes device nodes from Seulement dans udev-0.114-mine/debian: libvolume-id0 Seulement dans udev-0.114-mine/debian: libvolume-id-dev diff -ur udev-0.114/debian/rules udev-0.114-mine/debian/rules --- udev-0.114/debian/rules 2007-08-10 15:39:26.000000000 +0000 +++ udev-0.114-mine/debian/rules 2007-08-10 15:53:47.000000000 +0000 @@ -1,8 +1,7 @@ #!/usr/bin/make -f SHELL+= -e -BUILD_UDEB := 1 -USE_SELINUX := true +USE_SELINUX := false @@ -14,13 +13,28 @@ DL := $(CURDIR)/debian/libvolume-id0 DD := $(CURDIR)/debian/libvolume-id-dev -MAKE_EXTRAS := extras/ata_id/ extras/cdrom_id/ extras/edd_id extras/path_id \ - extras/scsi_id/ extras/usb_id/ extras/volume_id/ - DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) + +ifeq ($(findstring linux,$(DEB_HOST_ARCH_OS)),linux) +BUILD_UDEB := 1 +BUILD_LINUX := 1 +USE_SELINUX := true +endif + +MAKE_EXTRAS := extras/volume_id/ + +ifdef BUILD_LINUX +MAKE_EXTRAS += extras/ata_id/ extras/cdrom_id/ extras/edd_id extras/path_id \ + extras/scsi_id/ extras/usb_id/ +endif MAKE_VARIABLES := V=true EXTRAS="$(MAKE_EXTRAS)" +ifndef BUILD_LINUX +MAKE_VARIABLES += LINUX=false +endif + ifndef BUILD_UDEB NO_PACKAGE := --no-package=udev-udeb endif @@ -58,6 +72,7 @@ $(MAKE) install $(MAKE_VARIABLES) DESTDIR=$D dh_movefiles --sourcedir=debian/udev +ifdef BUILD_LINUX rmdir $D/dev/ $D/usr/lib/pkgconfig/ $D/usr/include/ rm -f $D/etc/udev/rules.d/* @@ -83,6 +98,7 @@ $D/usr/share/initramfs-tools/scripts/init-premount/udev install --mode=755 extra/initramfs.bottom \ $D/usr/share/initramfs-tools/scripts/init-bottom/udev +endif ifdef BUILD_UDEB cd UDEB/ && \ @@ -121,8 +137,10 @@ endif dh_installchangelogs ChangeLog - dh_installdocs FAQ README RELEASE-NOTES TODO docs/writing_udev_rules/ + dh_installdocs FAQ README RELEASE-NOTES TODO cp extras/volume_id/README $D/usr/share/doc/udev/README.vol_id +ifdef BUILD_LINUX + dh_installdocs docs/writing_udev_rules/ dh_installexamples \ etc/udev/suse/ etc/udev/redhat/ etc/udev/gentoo/ \ extra/udev.vim @@ -130,6 +148,7 @@ dh_installinit --no-start --update-rcd-params='start 03 S .' dh_installinit --no-start --update-rcd-params='start 36 S .' \ --name=udev-mtab +endif # remove duplicate changelogs rm -rf $(DD)/usr/share/doc/libvolume-id-dev/ @@ -141,8 +160,8 @@ dh_makeshlibs --version-info='libvolume-id0 (>= 0.113)' dh_shlibdeps --libpackage=libvolume-id0 -l $(DL)/lib/ dh_installdeb - dh_gencontrol $(NO_PACKAGE) - dh_builddeb $(NO_PACKAGE) + dh_gencontrol -s $(NO_PACKAGE) + dh_builddeb -s $(NO_PACKAGE) binary: binary-arch diff -ur udev-0.114/Makefile udev-0.114-mine/Makefile --- udev-0.114/Makefile 2007-08-05 12:08:47.850000000 +0000 +++ udev-0.114-mine/Makefile 2007-08-10 15:54:44.000000000 +0000 @@ -42,6 +42,10 @@ # make the build silent V = +# Build for Linux +LINUX = true + +ifeq ($(strip $(LINUX)),true) PROGRAMS = \ udevd \ udevtrigger \ @@ -52,6 +56,7 @@ udevtest \ test-udev \ udevstart +endif HEADERS = \ udev.h \ @@ -63,17 +68,22 @@ list.h UDEV_OBJS = \ + udev_utils.o \ + udev_utils_string.o \ + udev_utils_file.o \ + udev_sysdeps.o + +ifeq ($(strip $(LINUX)),true) +UDEV_OBJS += \ udev_device.o \ udev_config.o \ udev_node.o \ udev_db.o \ udev_sysfs.o \ udev_rules.o \ - udev_rules_parse.o \ - udev_utils.o \ - udev_utils_string.o \ - udev_utils_file.o \ - udev_sysdeps.o + udev_rules_parse.o +endif + LIBUDEV = libudev.a MAN_PAGES = \ @@ -157,7 +167,7 @@ endif export E Q -all: $(PROGRAMS) $(MAN_PAGES) +all: $(LIBUDEV) $(PROGRAMS) $(MAN_PAGES) $(Q) extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) CC="$(CC)" \ CFLAGS="$(CFLAGS)" \ @@ -226,6 +236,7 @@ .PHONY: clean install-config: +ifeq ($(strip $(LINUX)),true) $(INSTALL) -d $(DESTDIR)$(configdir)/rules.d @ if [ ! -r $(DESTDIR)$(configdir)/udev.conf ]; then \ $(INSTALL_DATA) etc/udev/udev.conf $(DESTDIR)$(configdir); \ @@ -235,12 +246,14 @@ echo "pick a udev rules file from the etc/udev directory that matches your distribution"; \ echo; \ fi +endif @ extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) -C $$target $@ || exit 1; \ done; .PHONY: install-config install-man: +ifeq ($(strip $(LINUX)),true) $(INSTALL_DATA) -D udev.7 $(DESTDIR)$(mandir)/man7/udev.7 $(INSTALL_DATA) -D udevinfo.8 $(DESTDIR)$(mandir)/man8/udevinfo.8 $(INSTALL_DATA) -D udevtest.8 $(DESTDIR)$(mandir)/man8/udevtest.8 @@ -249,12 +262,14 @@ $(INSTALL_DATA) -D udevsettle.8 $(DESTDIR)$(mandir)/man8/udevsettle.8 $(INSTALL_DATA) -D udevmonitor.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8 - ln -f -s udevd.8 $(DESTDIR)$(mandir)/man8/udevcontrol.8 +endif @extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) -C $$target $@ || exit 1; \ done; .PHONY: install-man uninstall-man: +ifeq ($(strip $(LINUX)),true) - rm -f $(DESTDIR)$(mandir)/man7/udev.7 - rm -f $(DESTDIR)$(mandir)/man8/udevinfo.8 - rm -f $(DESTDIR)$(mandir)/man8/udevtest.8 @@ -263,12 +278,14 @@ - rm -f $(DESTDIR)$(mandir)/man8/udevsettle.8 - rm -f $(DESTDIR)$(mandir)/man8/udevmonitor.8 - rm -f $(DESTDIR)$(mandir)/man8/udevcontrol.8 +endif @ extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) -C $$target $@ || exit 1; \ done; .PHONY: uninstall-man install-bin: +ifeq ($(strip $(LINUX)),true) $(INSTALL) -d $(DESTDIR)$(udevdir) $(INSTALL_PROGRAM) -D udevd $(DESTDIR)$(sbindir)/udevd $(INSTALL_PROGRAM) -D udevtrigger $(DESTDIR)$(sbindir)/udevtrigger @@ -277,6 +294,7 @@ $(INSTALL_PROGRAM) -D udevmonitor $(DESTDIR)$(usrsbindir)/udevmonitor $(INSTALL_PROGRAM) -D udevinfo $(DESTDIR)$(usrbindir)/udevinfo $(INSTALL_PROGRAM) -D udevtest $(DESTDIR)$(usrbindir)/udevtest +endif @extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) -C $$target $@ || exit 1; \ done; @@ -288,6 +306,7 @@ .PHONY: install-bin uninstall-bin: +ifeq ($(strip $(LINUX)),true) - rm -f $(DESTDIR)$(sbindir)/udevd - rm -f $(DESTDIR)$(sbindir)/udevtrigger - rm -f $(DESTDIR)$(sbindir)/udevsettle @@ -299,6 +318,7 @@ - killall udevd - rm -rf /dev/.udev endif +endif @extras="$(EXTRAS)"; for target in $$extras; do \ $(MAKE) -C $$target $@ || exit 1; \ done;