Bug#401733: gnome-media: FTBFS on GNU/kFreeBSD

Petr Salinger Petr.Salinger at seznam.cz
Tue Dec 5 17:23:26 CET 2006


Package: gnome-media
Severity: important
Version: 2.14.2-3
Tags: patch


Hi,

the current version fails to build on GNU/kFreeBSD.

It needs to add in a few places "|| defined(__FreeBSD_kernel__)".
Please find attached patch with that.

It would also be nice if you can ask upstream
to include this changes.

Thanks in advance

                         Petr
-------------- next part --------------
only in patch2:
unchanged:
--- gnome-media-2.14.2.orig/gnome-cd/gst-cdrom.c
+++ gnome-media-2.14.2/gnome-cd/gst-cdrom.c
@@ -16,6 +16,9 @@
 #endif
 
 #define _ISOC99_SOURCE
+#if defined(__FreeBSD_kernel__) && defined(__GLIBC__)
+#define _BSD_SOURCE 1
+#endif
 #include <math.h>
 #include <string.h>
 #include <glib/gi18n.h>
@@ -33,14 +36,14 @@
 
 #ifdef __linux__
 #include <linux/cdrom.h>
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/cdio.h>
 #endif
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/cdrio.h>
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 # define GST_CDROM_IOCTL_CDCAPABILITY_REQUEST  CDIOCCAPABILITY
 # define GST_CDROM_IOCTL_EJECT_REQUEST         CDIOCEJECT
 #elif defined(__NetBSD__) || defined(__OpenBSD__)
@@ -844,7 +847,7 @@
 /*
 	GstCdparanoiaCDRom *lcd = GST_CDPARANOIA_CDROM (cdrom);
 	GstCdparanoiaCDRomPrivate *priv;
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	struct ioc_read_toc_single_entry tocentry;
 #elif defined(__NetBSD__) || defined(__OpenBSD__)
 	struct ioc_read_toc_entry tocentries;
@@ -862,7 +865,7 @@
 		return;
 	}
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
 	if (ioctl (cdrom->fd, CDIOREADTOCHEADER, priv->tochdr) < 0) {
 #else
 	if (ioctl (cdrom->fd, CDROMREADTOCHDR, priv->tochdr) < 0) {
@@ -873,7 +876,7 @@
 		return;
 	}
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
 	priv->track0 = priv->tochdr->starting_track;
 	priv->track1 = priv->tochdr->ending_track;
 #else
@@ -886,8 +889,8 @@
 	priv->track_info =
 	    g_malloc ((priv->number_tracks +
 		       1) * sizeof (GstCdparanoiaCDRomTrackInfo));
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	for (i = 0, j = priv->track0; i < priv->number_tracks; i++, j++) {
 		tocentry.track = j;
 		tocentry.address_format = CD_MSF_FORMAT;
@@ -899,7 +902,7 @@
 		tocentries.address_format = CD_MSF_FORMAT;
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 		if (ioctl (cdrom->fd, CDIOREADTOCENTRY, &tocentry) < 0) {
 #else
 		if (ioctl (cdrom->fd, CDIOREADTOCENTRYS, &tocentries) < 0) {
@@ -909,7 +912,7 @@
 		}
 
 		priv->track_info[i].track = j;
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 		priv->track_info[i].audio_track =
 		    tocentry.entry.control != CDROM_DATA_TRACK ? 1 : 0;
 		ASSIGN_MSF (priv->track_info[i].address,
@@ -936,8 +939,8 @@
 			    tocentry.cdte_addr.msf);
 #endif
 	}
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	tocentry.track = CDROM_LEADOUT;
 	tocentry.address_format = CD_MSF_FORMAT;
 	if (ioctl (cdrom->fd, CDIOREADTOCENTRY, &tocentry) < 0) {
@@ -950,7 +953,7 @@
 		gst_cdparanoia_cdrom_invalidate (lcd);
 		return;
 	}
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	ASSIGN_MSF (priv->track_info[priv->number_tracks].address,
 		    tocentry.entry.addr.msf);
 #else
only in patch2:
unchanged:
--- gnome-media-2.14.2.orig/gnome-cd/bsd-cdrom.c
+++ gnome-media-2.14.2/gnome-cd/bsd-cdrom.c
@@ -166,7 +166,7 @@
 {
 	BSDCDRom *lcd = BSD_CDROM (cdrom);
 	BSDCDRomPrivate *priv;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	struct ioc_read_toc_single_entry tocentry;
 #else
 	struct ioc_read_toc_entry tocentries;
@@ -195,7 +195,7 @@
 
 	bsd_cdrom_invalidate (lcd);
 	priv->track_info = g_malloc ((priv->number_tracks + 1) * sizeof (BSDCDRomTrackInfo));
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	for (i = 0, j = priv->track0; i < priv->number_tracks; i++, j++) {
 		tocentry.track = j;
 		tocentry.address_format = CD_MSF_FORMAT;
@@ -207,7 +207,7 @@
 		tocentries.address_format = CD_MSF_FORMAT;
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 		if (ioctl (cdrom->fd, CDIOREADTOCENTRY, &tocentry) < 0) {
 #else
 		if (ioctl (cdrom->fd, CDIOREADTOCENTRYS, &tocentries) < 0) {
@@ -217,7 +217,7 @@
 		}
 
 		priv->track_info[i].track = j;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 		priv->track_info[i].audio_track = tocentry.entry.control == 0 ? 1 : 0;
 		ASSIGN_MSF (priv->track_info[i].address, tocentry.entry.addr.msf);
 #else
@@ -226,7 +226,7 @@
 #endif
 	}
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	/* On BSD, the leadout track is the track LAST_TRACK + 1. */
 	tocentry.track = priv->number_tracks + 1;
 	tocentry.address_format = CD_MSF_FORMAT;
@@ -241,7 +241,7 @@
 		bsd_cdrom_invalidate (lcd);
 		return;
 	}
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	ASSIGN_MSF (priv->track_info[priv->number_tracks].address, tocentry.entry.addr.msf);
 #else
 	ASSIGN_MSF (priv->track_info[priv->number_tracks].address, tocentry.addr.msf);
@@ -265,7 +265,7 @@
 		return FALSE;
 	}
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	if (gnome_cdrom_get_status (cdrom, &status, error) == FALSE) {
 		bsd_cdrom_close (lcd);
 		g_free (status);
@@ -902,7 +902,7 @@
 		return FALSE;
 	}
 #endif
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 	/* FIXME: Figure out how to do this on BSD */
 #else
 	if (ioctl (cdrom->fd, CDIOREADTOCHEADER, priv->tochdr) < 0) {


More information about the Pkg-gnome-maintainers mailing list