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;

Reply via email to