Package: oss4
Version: 4.2-build2004-1
Severity: normal
Tags: patch
User: [email protected]
Usertags: kfreebsd

This patch makes liboss4-salsa2 and oss4-gtk buildable on GNU/kFreeBSD.

Please could you send the debian/patches part to upstream?

Thanks!

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 9.0-0-amd64
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
=== modified file 'debian/control'
--- debian/control      2011-08-04 14:07:36 +0000
+++ debian/control      2011-08-04 18:31:10 +0000
@@ -31,7 +31,7 @@
  the module-assistant utility.
 
 Package: oss4-gtk
-Architecture: linux-any
+Architecture: linux-any kfreebsd-any
 Depends: oss4-base, ${shlibs:Depends}, ${misc:Depends}
 Description: Open Sound System - simple GTK2-based mixer control
  Open Sound System (OSS) is an attempt in unifying

=== added file 'debian/patches/kfreebsd-gnu.patch'
--- debian/patches/kfreebsd-gnu.patch   1970-01-01 00:00:00 +0000
+++ debian/patches/kfreebsd-gnu.patch   2011-08-04 18:31:51 +0000
@@ -0,0 +1,116 @@
+--- a/include/soundcard.h
++++ b/include/soundcard.h
+@@ -50,7 +50,7 @@
+ /* In Linux we need to be prepared for cross compiling */
+ #include <linux/ioctl.h>
+ #else
+-# ifdef __FreeBSD__
++# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #    include <sys/ioccom.h>
+ # else
+ #    include <sys/ioctl.h>
+--- a/kernel/framework/audio/oss_audio_core.c
++++ b/kernel/framework/audio/oss_audio_core.c
+@@ -3646,7 +3646,7 @@
+       }
+       return 0;
+ 
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+     case FREEBSD_GETBLKSIZE:
+ #endif
+     case SNDCTL_DSP_GETBLKSIZE:
+--- a/kernel/framework/sndstat/oss_sndstat.c
++++ b/kernel/framework/sndstat/oss_sndstat.c
+@@ -109,9 +109,9 @@
+       put_status ("\n");
+     }
+ 
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 
defined(__OpenBSD__) || defined(__NetBSD__)
+   {
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+     extern char version[];
+ #endif
+ 
+--- a/lib/libOSSlib/compile.sh
++++ b/lib/libOSSlib/compile.sh
+@@ -7,7 +7,7 @@
+       $MAKE libOSSlib.so
+       ;;
+ 
+-"FreeBSD")
++"FreeBSD" | "GNU/kFreeBSD")
+       $MAKE libOSSlib.so
+       ;;
+ 
+--- a/setup/srcconf.c
++++ b/setup/srcconf.c
+@@ -122,7 +122,7 @@
+ #include "srcconf_linux.inc"
+ #endif
+ 
+-#ifdef __FreeBSD__
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include "srcconf_freebsd.inc"
+ #endif
+ 
+@@ -480,7 +480,7 @@
+ #include "gen_driver_linux.inc"
+ #endif
+ 
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include "gen_driver_freebsd.inc"
+ #endif
+ 
+@@ -1456,6 +1456,8 @@
+     strcpy (un.sysname, "SCO_SV");
+   if (strcmp (un.sysname, "Haiku") == 0)
+     strcpy (un.sysname, "BeOS");
++  if (strcmp (un.sysname, "GNU/kFreeBSD") == 0)
++    strcpy (un.sysname, "FreeBSD");
+   printf ("System: %s\n", un.sysname);
+   strcpy (conf->system, un.sysname);
+   sprintf (this_os, "kernel/OS/%s", un.sysname);
+@@ -1549,7 +1551,7 @@
+   if (hostcc == NULL) hostcc = DEFAULT_CC;
+   if (targetcc == NULL) targetcc = DEFAULT_CC;
+ 
+-#if defined(linux) || defined(__FreeBSD__) || defined(__SCO_VERSION__)
++#if defined(linux) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 
defined(__SCO_VERSION__)
+   mkdir ("target", 0755);
+   mkdir ("target/build", 0755);
+   system ("touch target/build/.nomake");
+--- a/setup/setupdir.sh
++++ b/setup/setupdir.sh
+@@ -31,6 +31,12 @@
+       OS=BeOS
+ fi
+ 
++# Use the same source directories for FreeBSD and GNU/kFreeBSD
++if test "$OS " = "GNU/kFreeBSD "
++then
++      OS=FreeBSD
++fi
++
+ # Use Linux24 as the OS name for Linux 2.4.x
+ if test "$OS " = "Linux "
+ then
+--- a/setup/FreeBSD/build.sh
++++ b/setup/FreeBSD/build.sh
+@@ -150,10 +150,10 @@
+       strip prototype/usr/sbin/osslic
+ 
+         BITS=3 # Default to 32 bit ELF format
+-        if test "`uname -m` " = "amd64 "
+-        then
++        case "`uname -m`" in amd64|x86_64)
+            BITS=6 # Use 64 bit ELF format
+-        fi
++      ;;
++      esac
+ 
+       prototype/usr/sbin/osslic -q -u 
-$BITS./prototype/$OSSLIBDIR/build/osscore.lib
+       

=== modified file 'debian/patches/series'
--- debian/patches/series       2011-08-04 14:07:36 +0000
+++ debian/patches/series       2011-08-04 14:16:29 +0000
@@ -11,3 +11,4 @@
 liboss4-salsa.patch
 snd_asoundlib_version.patch
 #generic_srccconf.patch
+kfreebsd-gnu.patch

=== modified file 'debian/rules'
--- debian/rules        2011-08-04 14:07:36 +0000
+++ debian/rules        2011-08-04 18:29:42 +0000
@@ -4,6 +4,8 @@
 DEB_DH_INSTALL_ARGS := -X.svn
 UPSTREAM_VERSION := $(shell dpkg-parsechangelog|grep "^Version:"|cut -d" " 
-f2|rev|cut -d- -f2-|rev|cut -d':' -f2)
 
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/rules/patchsys-quilt.mk
 
@@ -13,15 +15,18 @@
        mkdir -p $(CURDIR)/build-tree/oss-build
        cd $(CURDIR)/build-tree/oss-build && $(CURDIR)/configure 
--enable-libsalsa=NO
 
+       touch $@
+
+stamp-build-oss4:
        # we do NOT want to build the kernel modules now
-       sed -i -e 's/SUBDIRS=lib cmd kernel\(.*\)/SUBDIRS=lib cmd\1/' 
$(CURDIR)/build-tree/oss-build/Makefile
+       sed -i -e 's/SUBDIRS=lib cmd kernel\(.*\)/SUBDIRS=lib cmd\1/' \
+               -e 's/SUBDIRS=lib cmd os_cmd kernel[^\s]*/SUBDIRS=lib cmd 
os_cmd/' \
+               $(CURDIR)/build-tree/oss-build/Makefile
        echo > $(CURDIR)/build-tree/oss-build/.makefile
 
-       touch $@
-
-stamp-build-oss4:
        cd $(CURDIR)/build-tree/oss-build && make build
 
+ifeq ($(DEB_HOST_ARCH_OS), linux)
        # TODO: rewrite upstream's 'build.sh' from scratch
        cat `find $(CURDIR)/build-tree/oss-build/kernel/drv -name .devices`| 
grep -v '^#' \
        | sort | grep -v '^osscore' | grep -v '^oss_audiocs' | grep -v 
'^oss_sadasupport' \
@@ -31,6 +36,7 @@
            ( sed "s:CONFIGFILEPATH:/etc/oss4/conf:g" < 
$(CURDIR)/build-tree/oss-build/noregparm/kernel/drv/$$n/$$n.man > 
/tmp/ossman.txt && \
            /usr/bin/txt2man -t "$$n" -v "OSS Devices" -s 7 /tmp/ossman.txt | 
gzip -9 > $(CURDIR)/build-tree/oss-build/prototype/usr/share/man/man7/$$n.7.gz 
) \
        done
+endif
 
        touch $@
 
@@ -76,6 +82,7 @@
 clean::
        rm -rf stamp-build-oss4 stamp-prepare-oss4 stamp-source-oss4 \
        stamp-build-libsalsa \
+       build-tree \
        debian/oss4-dkms.install debian/dkms/dkms.conf \
        oss-v$(UPSTREAM_VERSION)-src-gpl.tar.bz2.cdbs-config_list \
        debian/oss.conf

Reply via email to