diff options
-rw-r--r-- | audio/Makefile | 1 | ||||
-rw-r--r-- | audio/sound-juicer/Makefile | 30 | ||||
-rw-r--r-- | audio/sound-juicer/distinfo | 1 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::Makefile.in | 20 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::cd-drive.c | 70 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::dvd_plus_rw_utils.cpp | 11 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::sj-main.c | 31 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::sj-prefs.c | 10 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::sj-util.c | 85 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-src::transport.hxx | 11 | ||||
-rw-r--r-- | audio/sound-juicer/files/patch-tests::Makefile.in | 11 | ||||
-rw-r--r-- | audio/sound-juicer/pkg-descr | 5 | ||||
-rw-r--r-- | audio/sound-juicer/pkg-plist | 19 |
13 files changed, 305 insertions, 0 deletions
diff --git a/audio/Makefile b/audio/Makefile index 8e92ee4831ba..cb900652f271 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -306,6 +306,7 @@ SUBDIR += solfege SUBDIR += songprint SUBDIR += sonice + SUBDIR += sound-juicer SUBDIR += soundgrab SUBDIR += soundtracker SUBDIR += sox diff --git a/audio/sound-juicer/Makefile b/audio/sound-juicer/Makefile new file mode 100644 index 000000000000..fce090c8a555 --- /dev/null +++ b/audio/sound-juicer/Makefile @@ -0,0 +1,30 @@ +# New ports collection makefile for: soundjuicer +# Date created: 20 Jan 2004 +# Whom: Alexander Nedotsukov <bland@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= sound-juicer +PORTVERSION= 0.5.9 +CATEGORIES= audio gnome +MASTER_SITES= http://www.burtonini.com/computing/ +DIST_SUBDIR= gnome2 + +MAINTAINER= bland@FreeBSD.org +COMMENT= Clean, mean and lean CD ripper for GNOME2 + +LIB_DEPENDS= musicbrainz.3:${PORTSDIR}/audio/libmusicbrainz + +USE_X_PREFIX= yes +USE_GMAKE= yes +USE_GNOME= gnomehack gnomeprefix libgnomeui gstreamerplugins +USE_LIBTOOL= yes +CONFIGURE_ARGS= --enable-ignore-missing-cd + +pre-everything:: + @${ECHO_MSG} + @${ECHO_MSG} "You must have gstreamer-plugins built with Cdparanoia support!" + @${ECHO_MSG} + +.include <bsd.port.mk> diff --git a/audio/sound-juicer/distinfo b/audio/sound-juicer/distinfo new file mode 100644 index 000000000000..83fbaab031a6 --- /dev/null +++ b/audio/sound-juicer/distinfo @@ -0,0 +1 @@ +MD5 (gnome2/sound-juicer-0.5.9.tar.gz) = 1c4b30e621e2697b8be82a47bbbf6d5e diff --git a/audio/sound-juicer/files/patch-src::Makefile.in b/audio/sound-juicer/files/patch-src::Makefile.in new file mode 100644 index 000000000000..a95326528a96 --- /dev/null +++ b/audio/sound-juicer/files/patch-src::Makefile.in @@ -0,0 +1,20 @@ +--- src/Makefile.in.orig Thu Jan 22 14:21:35 2004 ++++ src/Makefile.in Thu Jan 22 14:21:56 2004 +@@ -128,7 +128,7 @@ + am__include = @am__include@ + am__quote = @am__quote@ + install_sh = @install_sh@ +-AM_CFLAGS = -Wall -Werror -export-dynamic -W -Wno-unused-parameter ++AM_CFLAGS = -Wall -export-dynamic -W + + AM_CPPFLAGS = \ + @DISABLE_DEPRECATED_CFLAGS@ \ +@@ -212,7 +212,7 @@ + DEFAULT_INCLUDES = -I. -I$(srcdir) -I. + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lcam + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bacon-cd-selection.Po \ diff --git a/audio/sound-juicer/files/patch-src::cd-drive.c b/audio/sound-juicer/files/patch-src::cd-drive.c new file mode 100644 index 000000000000..d08924aa3537 --- /dev/null +++ b/audio/sound-juicer/files/patch-src::cd-drive.c @@ -0,0 +1,70 @@ +--- src/cd-drive.c.orig Mon Dec 8 22:08:56 2003 ++++ src/cd-drive.c Fri Jan 23 10:49:43 2004 +@@ -65,7 +65,7 @@ + + /* For dvd_plus_rw_utils.cpp */ + int get_dvd_r_rw_profile (const char *name); +-int get_mmc_profile (void *fd); ++int get_mmc_profile (int fd); + + static void + add_dvd_plus (CDDrive *cdrom) +@@ -99,7 +99,7 @@ + return CD_MEDIA_TYPE_ERROR; + } + +- mmc_profile = get_mmc_profile ((void *)&fd); ++ mmc_profile = get_mmc_profile (fd); + close (fd); + + switch (mmc_profile) { +@@ -790,7 +790,11 @@ + struct cam_device *cam_dev; + + type = 0; ++#if defined(__FreeBSD__) && (__FreeBSD_version > 500000) ++ cam_path = g_strdup_printf ("/dev/%s%d", dev_type, i); ++#else + cam_path = g_strdup_printf ("/dev/%s%dc", dev_type, i); ++#endif + + if (!g_file_test (cam_path, G_FILE_TEST_EXISTS)) { + g_free (cam_path); +@@ -803,29 +807,18 @@ + continue; + } + +- /* XXX Other controllers might need to be added. */ +- if ((strncmp (cam_dev->sim_name, "ata", 3)) == 0) { +- dev = g_strdup_printf ("/dev/a%s%dc", dev_type, i); +- } else { +- dev = g_strdup (cam_path); +- } ++ dev = g_strdup (cam_path); + + g_free (cam_path); + +- if ((fd = open (dev, O_RDWR, 0)) < 0) { +- g_free (dev); +- free (cam_dev); +- i++; +- continue; +- } +- +- type |= CDDRIVE_TYPE_CD_DRIVE; +- if (ioctl (fd, CDRIOCWRITESPEED, &max_speed) >= 0) { +- /* XXX is it CD-R or CD-RW ? */ +- type |= CDDRIVE_TYPE_CD_RECORDER; ++ if ((fd = open (dev, O_RDWR, 0)) >= 0) { ++ type |= CDDRIVE_TYPE_CD_DRIVE; ++ if (ioctl (fd, CDRIOCWRITESPEED, &max_speed) >= 0) { ++ /* XXX is it CD-R or CD-RW ? */ ++ type |= CDDRIVE_TYPE_CD_RECORDER; ++ } ++ close (fd); + } +- +- close (fd); + + if (type & CDDRIVE_TYPE_CD_RECORDER + || type & CDDRIVE_TYPE_CDRW_RECORDER diff --git a/audio/sound-juicer/files/patch-src::dvd_plus_rw_utils.cpp b/audio/sound-juicer/files/patch-src::dvd_plus_rw_utils.cpp new file mode 100644 index 000000000000..df1c7010836a --- /dev/null +++ b/audio/sound-juicer/files/patch-src::dvd_plus_rw_utils.cpp @@ -0,0 +1,11 @@ +--- src/dvd_plus_rw_utils.cpp.orig Wed Jan 21 12:47:50 2004 ++++ src/dvd_plus_rw_utils.cpp Wed Jan 21 12:48:04 2004 +@@ -113,7 +113,7 @@ + } + + extern "C" +-int get_mmc_profile (void *fd) ++int get_mmc_profile (int fd) + { Scsi_Command cmd(fd); + unsigned char buf[8]; + int profile=-1,once=1; diff --git a/audio/sound-juicer/files/patch-src::sj-main.c b/audio/sound-juicer/files/patch-src::sj-main.c new file mode 100644 index 000000000000..2bf4272ad2ce --- /dev/null +++ b/audio/sound-juicer/files/patch-src::sj-main.c @@ -0,0 +1,31 @@ +--- src/sj-main.c.orig Wed Jan 7 20:38:00 2004 ++++ src/sj-main.c Thu Jan 22 14:22:54 2004 +@@ -535,9 +535,10 @@ + */ + void device_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) + { +- g_assert (strcmp (entry->key, GCONF_DEVICE) == 0); + gboolean ignore_no_media = GPOINTER_TO_INT (user_data); + ++ g_assert (strcmp (entry->key, GCONF_DEVICE) == 0); ++ + if (entry->value == NULL) { + device = prefs_get_default_device(); + if (device == NULL) { +@@ -833,7 +834,7 @@ + void on_contents_activate(GtkWidget *button, gpointer user_data) { + GError *error = NULL; + +- gnome_help_display ("sound-juicer", NULL, &error); ++ gnome_help_display ("sound-juicer.xml", NULL, &error); + if (error) { + GtkWidget *dialog; + +@@ -870,6 +871,7 @@ + VERSION, LIBGNOMEUI_MODULE, + argc, argv, + GNOME_PARAM_POPT_TABLE, options, ++ GNOME_PARAM_APP_DATADIR, DATADIR, + NULL); + g_set_application_name (_("Sound Juicer")); + diff --git a/audio/sound-juicer/files/patch-src::sj-prefs.c b/audio/sound-juicer/files/patch-src::sj-prefs.c new file mode 100644 index 000000000000..fb5ed24ae2f2 --- /dev/null +++ b/audio/sound-juicer/files/patch-src::sj-prefs.c @@ -0,0 +1,10 @@ +--- src/sj-prefs.c.orig Tue Jan 20 22:45:59 2004 ++++ src/sj-prefs.c Wed Jan 21 14:38:24 2004 +@@ -75,7 +75,6 @@ + CDDrive *cdrom = cdroms->data; + cd_drive_free (cdrom); + cdroms = g_list_remove (cdroms, cdrom); +- g_free (cdrom); + } + } + return default_device; diff --git a/audio/sound-juicer/files/patch-src::sj-util.c b/audio/sound-juicer/files/patch-src::sj-util.c new file mode 100644 index 000000000000..ac2bcfbd80a6 --- /dev/null +++ b/audio/sound-juicer/files/patch-src::sj-util.c @@ -0,0 +1,85 @@ +--- src/sj-util.c.orig Wed Jan 7 20:38:00 2004 ++++ src/sj-util.c Fri Jan 23 10:48:36 2004 +@@ -120,6 +120,9 @@ + gtk_widget_destroy (dialog); + goto done; + } ++#ifdef __FreeBSD__ ++ ioctl (fd, CDIOCALLOW); ++#endif + result = ioctl (fd, CDROMEJECT); + if (result == -1) { + GtkWidget *dialog; +@@ -148,21 +151,33 @@ + tray_is_opened (const char *device) + { + int fd, status; +- ++ ++#if defined(__linux__) + fd = open (device, O_RDONLY | O_NONBLOCK | O_EXCL); + if (fd < 0) { + return FALSE; + } +- ++ + status = ioctl (fd, CDROM_DRIVE_STATUS, CDSL_CURRENT); ++ close (fd); + if (status < 0) { +- close (fd); + return FALSE; + } + +- close (fd); +- + return status == CDS_TRAY_OPEN; ++#elif defined(__FreeBSD__) ++ struct ioc_toc_header h; ++ ++ fd = open (device, O_RDONLY | O_NONBLOCK | O_EXCL); ++ if (fd < 0) { ++ return FALSE; ++ } ++ ++ status = ioctl (fd, CDIOREADTOCHEADER, &h); ++ close (fd); ++ ++ return status < 0; ++#endif + } + + gboolean is_audio_cd (const char *device) +@@ -170,6 +185,10 @@ + CDMediaType type; + int fd, status; + ++ if (tray_is_opened (device)) { ++ return FALSE; ++ } ++ + type = guess_media_type (device); + switch (type) { + case CD_MEDIA_TYPE_CD: +@@ -189,15 +208,18 @@ + return FALSE; + } + ++#if defined(__linux__) + status = ioctl (fd, CDROM_DISC_STATUS, CDSL_CURRENT); ++ close (fd); + if (status < 0) { +- close (fd); + return FALSE; + } +- +- close (fd); +- + return status == CDS_AUDIO; ++#elif defined (__FreeBSD__) ++ return TRUE; ++#else ++ return TRUE; ++#endif + } + + /* Pass NULL to use g_free */ diff --git a/audio/sound-juicer/files/patch-src::transport.hxx b/audio/sound-juicer/files/patch-src::transport.hxx new file mode 100644 index 000000000000..f20977fbfa7d --- /dev/null +++ b/audio/sound-juicer/files/patch-src::transport.hxx @@ -0,0 +1,11 @@ +--- src/transport.hxx.orig Wed Jan 21 12:52:37 2004 ++++ src/transport.hxx Wed Jan 21 12:53:43 2004 +@@ -386,7 +386,7 @@ + Scsi_Command(int f) + { char pass[32]; // periph_name is 16 chars long + +- cam=NULL, fd=-1, autoclose=1, filename=NULL; ++ cam=NULL, fd=fd, autoclose=1, filename=NULL; + + memset (&ccb,0,sizeof(ccb)); + ccb.ccb_h.func_code = XPT_GDEVLIST; diff --git a/audio/sound-juicer/files/patch-tests::Makefile.in b/audio/sound-juicer/files/patch-tests::Makefile.in new file mode 100644 index 000000000000..e3325efd909c --- /dev/null +++ b/audio/sound-juicer/files/patch-tests::Makefile.in @@ -0,0 +1,11 @@ +--- tests/Makefile.in.orig Tue Jan 20 22:30:02 2004 ++++ tests/Makefile.in Tue Jan 20 22:30:28 2004 +@@ -173,7 +173,7 @@ + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/src + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lcam + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles + @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/cd-drive.Po \ diff --git a/audio/sound-juicer/pkg-descr b/audio/sound-juicer/pkg-descr new file mode 100644 index 000000000000..d2fe92826282 --- /dev/null +++ b/audio/sound-juicer/pkg-descr @@ -0,0 +1,5 @@ +Sound Juicer is a clean, mean and lean CD ripper for GNOME2. +It supports a clean interface and simple preferences, aiming +to do The Right Thing and What You Mean all of the time. + +WWW: http://www.burtonini.com/blog/computers/sound-juicer/ diff --git a/audio/sound-juicer/pkg-plist b/audio/sound-juicer/pkg-plist new file mode 100644 index 000000000000..132fd4f299ee --- /dev/null +++ b/audio/sound-juicer/pkg-plist @@ -0,0 +1,19 @@ +bin/sound-juicer +etc/gconf/schemas/sound-juicer.schemas +share/gnome/applications/sound-juicer.desktop +share/gnome/help/sound-juicer/C/fdl-appendix.xml +share/gnome/help/sound-juicer/C/figures/prefs.png +share/gnome/help/sound-juicer/C/figures/startup.png +share/gnome/help/sound-juicer/C/legal.xml +share/gnome/help/sound-juicer/C/sound-juicer.xml +share/gnome/omf/sound-juicer/sound-juicer-manual-C.omf +@exec scrollkeeper-install -q %D/share/gnome/omf/sound-juicer/sound-juicer-manual-C.omf 2>/dev/null || /usr/bin/true +share/gnome/pixmaps/sound-juicer.png +share/gnome/sound-juicer/orange-slice.png +share/gnome/sound-juicer/sound-juicer.glade +@dirrm share/gnome/sound-juicer +@dirrm share/gnome/omf/sound-juicer +@dirrm share/gnome/help/sound-juicer/C/figures +@dirrm share/gnome/help/sound-juicer/C +@dirrm share/gnome/help/sound-juicer +@unexec scrollkeeper-uninstall -q %D/share/gnome/omf/sound-juicer/sound-juicer-manual-C.omf 2>/dev/null || /usr/bin/true |