Tue Feb 4 11:36:44 2014 UTC ()
Import asunder-2.4 as audio/asunder.
Based on packaged by Dave Tyson and provided via PR pkg/48542.

Asunder is a GTK based graphical Audio CD ripper and encoder.


(obache)
diff -r0 -r1.1 pkgsrc/audio/asunder/DESCR
diff -r0 -r1.1 pkgsrc/audio/asunder/MESSAGE
diff -r0 -r1.1 pkgsrc/audio/asunder/Makefile
diff -r0 -r1.1 pkgsrc/audio/asunder/PLIST
diff -r0 -r1.1 pkgsrc/audio/asunder/distinfo
diff -r0 -r1.1 pkgsrc/audio/asunder/patches/patch-src_main.c
diff -r0 -r1.1 pkgsrc/audio/asunder/patches/patch-src_wrappers.c

File Added: pkgsrc/audio/asunder/DESCR
Asunder is a GTK based graphical Audio CD ripper and encoder.

File Added: pkgsrc/audio/asunder/MESSAGE
===========================================================================
$NetBSD: MESSAGE,v 1.1 2014/02/04 11:36:44 obache Exp $

By default Asunder tries to open /dev/cdrom. This and other ripping
options can be changed using the preferences menu.
===========================================================================

File Added: pkgsrc/audio/asunder/Makefile
# $NetBSD: Makefile,v 1.1 2014/02/04 11:36:44 obache Exp $

DISTNAME=	asunder-2.4
CATEGORIES=	audio
MASTER_SITES=	http://littlesvr.ca/asunder/releases/
EXTRACT_SUFX=	.tar.bz2

MAINTAINER=	dtyson@anduin.org.uk
HOMEPAGE=	http://littlesvr.ca/asunder/
COMMENT=	Graphical CD ripper
LICENSE=	gnu-gpl-v2

DEPENDS+=	cdparanoia-[0-9]*:../../audio/cdparanoia
DEPENDS+=	lame-[0-9]*:../../audio/lame
DEPENDS+=	flac-[0-9]*:../../audio/flac

GNU_CONFIGURE=		yes
USE_PKGLOCALEDIR=	yes
USE_TOOLS+=		gmake pkg-config intltool msgfmt

BUILDLINK_API_DEPENDS.libcddb+=	libcddb>=0.9.5
.include "../../audio/libcddb/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../x11/gtk2/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/audio/asunder/PLIST
@comment $NetBSD: PLIST,v 1.1 2014/02/04 11:36:44 obache Exp $
bin/asunder
share/applications/asunder.desktop
share/locale/ar/LC_MESSAGES/asunder.mo
share/locale/be@latin/LC_MESSAGES/asunder.mo
share/locale/bg/LC_MESSAGES/asunder.mo
share/locale/bn_IN/LC_MESSAGES/asunder.mo
share/locale/bs_BA/LC_MESSAGES/asunder.mo
share/locale/ca/LC_MESSAGES/asunder.mo
share/locale/cs/LC_MESSAGES/asunder.mo
share/locale/da/LC_MESSAGES/asunder.mo
share/locale/de/LC_MESSAGES/asunder.mo
share/locale/el/LC_MESSAGES/asunder.mo
share/locale/eo/LC_MESSAGES/asunder.mo
share/locale/es/LC_MESSAGES/asunder.mo
share/locale/eu/LC_MESSAGES/asunder.mo
share/locale/fi/LC_MESSAGES/asunder.mo
share/locale/fr/LC_MESSAGES/asunder.mo
share/locale/gl/LC_MESSAGES/asunder.mo
share/locale/he/LC_MESSAGES/asunder.mo
share/locale/hr/LC_MESSAGES/asunder.mo
share/locale/hu/LC_MESSAGES/asunder.mo
share/locale/it/LC_MESSAGES/asunder.mo
share/locale/ja/LC_MESSAGES/asunder.mo
share/locale/lv/LC_MESSAGES/asunder.mo
share/locale/nb/LC_MESSAGES/asunder.mo
share/locale/nl/LC_MESSAGES/asunder.mo
share/locale/nn/LC_MESSAGES/asunder.mo
share/locale/pl/LC_MESSAGES/asunder.mo
share/locale/pt/LC_MESSAGES/asunder.mo
share/locale/pt_BR/LC_MESSAGES/asunder.mo
share/locale/ru/LC_MESSAGES/asunder.mo
share/locale/sk/LC_MESSAGES/asunder.mo
share/locale/sl/LC_MESSAGES/asunder.mo
share/locale/sq/LC_MESSAGES/asunder.mo
share/locale/sr/LC_MESSAGES/asunder.mo
share/locale/sr@latin/LC_MESSAGES/asunder.mo
share/locale/sv/LC_MESSAGES/asunder.mo
share/locale/tr/LC_MESSAGES/asunder.mo
share/locale/ur_PK/LC_MESSAGES/asunder.mo
share/locale/zh_CN/LC_MESSAGES/asunder.mo
share/locale/zh_TW/LC_MESSAGES/asunder.mo
share/pixmaps/asunder.png

File Added: pkgsrc/audio/asunder/distinfo
$NetBSD: distinfo,v 1.1 2014/02/04 11:36:44 obache Exp $

SHA1 (asunder-2.4.tar.bz2) = f6b23e08891d753fe859573e805c3045d89357d3
RMD160 (asunder-2.4.tar.bz2) = 515dcc9e2ac79611780516923072aa73c59aa1cf
Size (asunder-2.4.tar.bz2) = 223890 bytes
SHA1 (patch-src_main.c) = 6da17bc7775788c297ef1ae5921afc423dac8f54
SHA1 (patch-src_wrappers.c) = 7422ef3af92eb1d809f3beea66c983982008f647

File Added: pkgsrc/audio/asunder/patches/Attic/patch-src_main.c
$NetBSD: patch-src_main.c,v 1.1 2014/02/04 11:36:44 obache Exp $

insert NetBSD specific cd code

--- src/main.c.orig	2013-12-27 00:51:30.000000000 +0000
+++ src/main.c
@@ -28,7 +28,7 @@ Foundation; version 2 of the licence.
 #include <stdbool.h>
 #include <signal.h>
 
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
     #include <sys/cdio.h>
 #elif defined(__linux__)
     #include <linux/cdrom.h>
@@ -192,7 +192,7 @@ bool check_disc(char * cdrom)
     bool ret = false;
     int status;
     
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
     struct ioc_read_subchannel cdsc;
     struct cd_sub_channel_info data;
 #endif
@@ -229,7 +229,7 @@ bool check_disc(char * cdrom)
     static bool alreadyKnowGood = false; /* check when program just started */
     static bool alreadyCleared = true; /* no need to clear when program just started */
     
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
     bzero(&cdsc, sizeof(cdsc));
     cdsc.data = &data;
     cdsc.data_len = sizeof(data);
@@ -356,7 +356,7 @@ void eject_disc(char * cdrom)
     //~ {
         //~ ioctl(fd, CDROMCLOSETRAY, CDSL_CURRENT);
     //~ } else {
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
             ioctl(fd, CDIOCALLOW);
             ioctl(fd, CDIOCEJECT);
 #elif defined(__linux__)
@@ -479,6 +479,12 @@ cddb_disc_t * read_disc(char * cdrom)
     struct ioc_read_toc_single_entry te;
     struct ioc_read_subchannel cdsc;
     struct cd_sub_channel_info data;
+#elif defined(__NetBSD__)
+    struct ioc_toc_header th;
+    struct ioc_read_toc_entry te;
+    struct cd_toc_entry toc ;
+    struct ioc_read_subchannel cdsc;
+    struct cd_sub_channel_info data;
 #elif defined(__linux__)
     struct cdrom_tochdr th;
     struct cdrom_tocentry te;
@@ -549,6 +555,60 @@ cddb_disc_t * read_disc(char * cdrom)
             }
         }
     }
+#elif defined(__NetBSD__)
+    // read disc status info
+    bzero(&cdsc,sizeof(cdsc));
+    cdsc.data = &data;
+    cdsc.data_len = sizeof(data);
+    cdsc.data_format = CD_CURRENT_POSITION;
+    cdsc.address_format = CD_MSF_FORMAT;
+    status = ioctl(fd, CDIOCREADSUBCHANNEL, (char *)&cdsc);
+    if (status >= 0)
+    {
+        // see if we can read the disc's table of contents (TOC).
+        if (ioctl(fd, CDIOREADTOCHEADER, &th) == 0)
+        {
+            debugLog("starting track: %d\n", th.starting_track);
+            debugLog("ending track: %d\n", th.ending_track);
+            
+            disc = cddb_disc_new();
+            if (disc == NULL)
+                fatalError("cddb_disc_new() failed. Out of memory?");
+            
+            te.address_format = CD_LBA_FORMAT;
+            te.data = &toc ;
+            te.data_len=sizeof(struct cd_toc_entry) ;
+            for (i=th.starting_track; i<=th.ending_track; i++)
+            {
+                te.starting_track = i;
+                if ((ioctl(fd, CDIOREADTOCENTRIES, &te)) == 0)
+                {
+                    if (te.data->control & 0x04)
+                    {
+                        // track is a DATA track. make sure its "rip" box is not checked by default
+                        track_format[i] = FALSE;
+                    } else {
+                        track_format[i] = TRUE;
+                    }
+
+                    track = cddb_track_new();
+                    if (track == NULL)
+                        fatalError("cddb_track_new() failed. Out of memory?");
+                    
+                    cddb_track_set_frame_offset(track, te.data->addr.lba+SECONDS_TO_FRAMES(2));
+                    snprintf(trackname, 9, "Track %d", i);
+                    cddb_track_set_title(track, trackname);
+                    cddb_track_set_artist(track, "Unknown Artist");
+                    cddb_disc_add_track(disc, track);
+                }
+            }
+            te.starting_track = 0xAA;
+            if (ioctl(fd, CDIOREADTOCENTRIES, &te) == 0)
+             {
+                cddb_disc_set_length(disc, (te.data->addr.lba+SECONDS_TO_FRAMES(2))/SECONDS_TO_FRAMES(1));
+            }
+        }
+    }
 #elif defined(__linux__)
     // read disc status info
     status = ioctl(fd, CDROM_DISC_STATUS, CDSL_CURRENT);

File Added: pkgsrc/audio/asunder/patches/Attic/patch-src_wrappers.c
$NetBSD: patch-src_wrappers.c,v 1.1 2014/02/04 11:36:44 obache Exp $

skip missing WIFCONTINUED

--- src/wrappers.c.orig	2013-12-18 16:17:29.000000000 +0000
+++ src/wrappers.c
@@ -135,8 +135,10 @@ void sigchld(int signum)
         debugLog("killed by signal %d\n", WTERMSIG(status));
     else if (WIFSTOPPED(status))
         debugLog("stopped by signal %d\n", WSTOPSIG(status));
+#if defined(WIFCONTINUED)
     else if (WIFCONTINUED(status))
         debugLog("continued\n");
+#endif
 
     if (status != 0)
     {