Author: aurel32
Status: ugly, libbsd has to be fixed
	needs enhanced cdparanoia_3.10+debian~pre0-4, already built, but does not seem uploaded (may be binNMU of all packages using cdparanoia should be performed as it slightly changed ABI)

diff -u kdemultimedia-3.5.5/debian/rules kdemultimedia-3.5.5/debian/rules
--- kdemultimedia-3.5.5/debian/rules
+++ kdemultimedia-3.5.5/debian/rules
@@ -6,11 +6,14 @@
 include /usr/share/cdbs/1/rules/utils.mk
 
 DEB_CONFIGURE_EXTRA_FLAGS := \
-	--with-alsa --with-arts-alsa \
 	--with-extra-includes=/usr/include/speex:/usr/include/kde/arts
 	# The include/kde/arts one should be temporary. See
 	# "juk/Makefile.am: arts_includes vs ARTS_CFLAGS" in -talk.
 
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+DEB_CONFIGURE_EXTRA_FLAGS += --with-alsa --with-arts-alsa
+endif
+
 DOC_HTML_PRUNE := kcontrol
 
 DEB_DH_STRIP_ARGS  := --dbg-package=kdemultimedia-dbg
only in patch2:
unchanged:
--- kdemultimedia-3.5.5.orig/config.h.in
+++ kdemultimedia-3.5.5/config.h.in
@@ -406,13 +406,14 @@
 #endif
 #endif
 
+#include <stddef.h>
 
 
 #if !defined(HAVE_STRLCAT_PROTO)
 #ifdef __cplusplus
 extern "C" {
 #endif
-unsigned long strlcat(char*, const char*, unsigned long);
+size_t strlcat(char*, const char*, size_t);
 #ifdef __cplusplus
 }
 #endif
@@ -424,7 +425,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-unsigned long strlcpy(char*, const char*, unsigned long);
+size_t strlcpy(char*, const char*, size_t);
 #ifdef __cplusplus
 }
 #endif
only in patch2:
unchanged:
--- kdemultimedia-3.5.5.orig/debian/patches/13_kfreebsd.patch
+++ kdemultimedia-3.5.5/debian/patches/13_kfreebsd.patch
@@ -0,0 +1,125 @@
+--- kde.orig/kscd/kscdmagic/sound.cpp	2005-09-05 02:02:29.000000000 +0200
++++ kde.patched/kscd/kscdmagic/sound.cpp	2005-09-05 02:03:33.000000000 +0200
+@@ -102,7 +102,7 @@
+ 
+   int format, stereo, fragment, fqc;
+ 
+-#ifdef __FreeBSD__
++#if defined (__FreeBSD__) || defined(__FreeBSD_kernel__)
+   attempt(device = open(dspName,O_WRONLY),"opening dsp device",true);
+   format = SOUNDFORMAT;
+   attempt(ioctl(device,SNDCTL_DSP_SETFMT,&format),"setting format",true);
+@@ -143,7 +143,7 @@
+   //Was 0x00010000 + m; 
+ 
+   attemptNoDie(ioctl(device,SNDCTL_DSP_SETFRAGMENT,&fragment),"setting fragment",true);
+-#ifndef __FreeBSD__
++#if ! defined(__FreeBSD__) && ! defined(__FreeBSD_kernel__)
+   attempt(ioctl(device,SNDCTL_DSP_SETFMT,&format),"setting format",true);
+   if (format != SOUNDFORMAT) error("setting format (2)");
+ #endif
+--- kde.orig/kscd/libwm/include/wm_config.h	2005-09-05 08:34:47.000000000 +0200
++++ kde.patched/kscd/libwm/include/wm_config.h	2005-09-05 08:35:44.000000000 +0200
+@@ -129,9 +129,9 @@
+  ***  ******  **  **  ******  ******  **  ******  **  *  **********
+  ***  ******  **  **      **      **     ****    ***    ***********
+  ******************************************************************/
+-#if defined(__FreeBSD__) || defined(__FreeBSD)
++#if defined(__FreeBSD__) || defined(__FreeBSD) || defined(__FreeBSD_kernel__)
+ 
+-#if __FreeBSD_version >= 500100
++#if __FreeBSD_version >= 500100 || __FreeBSD_kernel_version >= 500100
+ #define DEFAULT_CD_DEVICE	"/dev/acd0"
+ #else
+ #define DEFAULT_CD_DEVICE	"/dev/acd0c"
+--- kde.orig/kscd/libwm/plat_freebsd.c	2005-09-05 08:37:39.000000000 +0200
++++ kde.patched/kscd/libwm/plat_freebsd.c	2005-09-05 08:38:55.000000000 +0200
+@@ -30,7 +30,7 @@
+  *
+  */
+ 
+-#if defined(__FreeBSD__) || defined(__FreeBSD) || defined(__NetBSD__) || defined (__NetBSD)
++#if defined(__FreeBSD__) || defined(__FreeBSD) || defined(__NetBSD__) || defined (__NetBSD) || defined(__FreeBSD_kernel__)
+ 
+ #include <errno.h>
+ #include <stdio.h>
+@@ -61,7 +61,10 @@
+ #else
+ # define LEFT_PORT 0
+ # define RIGHT_PORT 1
+-# if __FreeBSD_version < 300000
++#ifndef __FreeBSD_kernel_version
++#define __FreeBSD_kernel_version __FreeBSD_version
++#endif
++# if __FreeBSD_kernel_version < 300000
+ #  include <scsi.h>
+ # endif
+ #endif
+--- kde.orig/mpeglib/configure.in.in.orig	2005-09-05 08:42:19.000000000 +0200
++++ kde.patched/mpeglib/configure.in.in	2005-09-05 08:42:38.000000000 +0200
+@@ -211,6 +211,9 @@
+ kde_mpeglib_compiles=no
+ 
+ case "$OS_TYPE" in
++  GNU/kFreeBSD)
++    kde_mpeglib_compiles=yes
++    ;;
+   FreeBSD)
+     kde_mpeglib_compiles=yes
+     ;;
+--- kde.orig/configure.in.orig	2005-09-05 08:40:05.000000000 +0200
++++ kde.patched/configure.in	2005-09-05 08:41:28.000000000 +0200
+@@ -1923,6 +1923,9 @@
+ kde_mpeglib_compiles=no
+ 
+ case "$OS_TYPE" in
++  GNU/kFreeBSD)
++    kde_mpeglib_compiles=yes
++    ;;
+   FreeBSD)
+     kde_mpeglib_compiles=yes
+     ;;
+--- kde.orig/configure.orig	2005-09-05 08:40:08.000000000 +0200
++++ kde.patched/configure	2005-09-05 08:42:02.000000000 +0200
+@@ -42630,6 +42630,9 @@
+ kde_mpeglib_compiles=no
+ 
+ case "$OS_TYPE" in
++  GNU/kFreeBSD)
++    kde_mpeglib_compiles=yes
++    ;;
+   FreeBSD)
+     kde_mpeglib_compiles=yes
+     ;;
+--- kde.orig/configure	2005-09-05 09:35:31.000000000 +0200
++++ kde.patched/configure	2005-09-05 09:36:44.000000000 +0200
+@@ -42913,6 +42913,15 @@
+ 
+     ;;
+ 
++GNU/kFreeBSD)
++    OS_TYPE="BSD"
++
++cat >>confdefs.h <<\_ACEOF
++#define OS_BSD 1
++_ACEOF
++
++    ;;
++
+   BSD/OS)
+     OS_TYPE="BSD"
+ 
+--- kde.orig/configure.in	2005-09-05 09:35:26.000000000 +0200
++++ kde.patched/configure.in	2005-09-05 09:36:27.000000000 +0200
+@@ -1956,6 +1956,11 @@
+     AC_DEFINE(OS_Linux,1,[Define if you have linux pthread])
+     ;;
+ 
++  GNU/kFreeBSD)
++    OS_TYPE="BSD"
++    AC_DEFINE(OS_BSD,1,[Define if you have BSD pthread])
++    ;;
++
+   FreeBSD)
+     OS_TYPE="BSD"
+     AC_DEFINE(OS_BSD,1,[Define if you have BSD pthread])
