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
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) {

Reply via email to