Date: Sat, 25 Oct 2003 17:20:16 -0700 (PDT) From: Andrew Barnert <barnert@myrealbox.com> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/55275: [NEW PORT] audio/squash: Learning console-based MP3/OGG player Message-ID: <200310260020.h9Q0KGse009180@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/55275; it has been noted by GNATS. From: Andrew Barnert <barnert@myrealbox.com> To: freebsd-gnats-submit@FreeBSD.org, matthias.andree@web.de Cc: Subject: Re: ports/55275: [NEW PORT] audio/squash: Learning console-based MP3/OGG player Date: Sat, 25 Oct 2003 17:12:34 -0700 This is the first followup I've submitted, so I apologize if I did anything wrong. Anyway... The submitted port has a few minor problems. FreeBSD 5.1 is 501000, not 501100. I'm not sure whether the OSVERSION < 501100 is correct and the 5.1 is wrong, or vice-versa. I assumed (without checking) that it works on 5.1, and changed the version to 501000. It 501100 (-CURRENT) is required, change this back and change the IGNORE message instead. Squash 0.7 is no longer available from the savannah servers. Since 0.9 has been out for a while nowm, I updated the version to 0.9, and fixed the patches to work. The code was PREFIX-ified, but the documentation was not, so it still contained references to, e.g., "/etc/squash.conf". The instructions tell the user to read INSTALL, which tells the user to look at the sample configuration file in 'extra/squash.conf' (which does not get installed anywhere). So I copied this to the docs directory (/usr/local/share/doc/squash/extra/squash.conf). Would it be better to put it in examples instead (and patch the docs accordingly)? As the docs say, the import_music.rb script needs to be run from the directory that musicdb_lib.rb is in, or musicdb_lib.rb needs to be in your RUBYPATH. Probably, it would be better to install it somewhere on the Ruby path, then, rather than in /usr/local/bin. However, I didn't do this. The import_music.rb script doesn't work if your song_path and info_path are different. Which is particularly bad for users who don't have write access to the song_path, or don't want to write extra files there (e.g., it's a shared mp3 directory over nfs/smb/etc.). However, I think this is a flaw in squash, not in the port. Anyway, here's an update with the fixes mentioned above: --- squash-0.9.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # squash # squash/distinfo # squash/Makefile # squash/files # squash/files/patch-Makefile # squash/files/patch-include::global.h # squash/files/patch-src::display.c # squash/pkg-plist # squash/pkg-descr # squash/pkg-message.in # echo c - squash mkdir -p squash > /dev/null 2>&1 echo x - squash/distinfo sed 's/^X//' >squash/distinfo << 'END-of-squash/distinfo' XMD5 (squash-0.9.tar.bz2) = d29fc3230037cff7cebbe996765c1284 END-of-squash/distinfo echo x - squash/Makefile sed 's/^X//' >squash/Makefile << 'END-of-squash/Makefile' X# New ports collection makefile for: squash X# Date created: 5 August 2003 X# Whom: Matthias Andree <matthias.andree@gmx.de> X# X# $FreeBSD$ X XPORTNAME= squash XPORTVERSION= 0.9 XCATEGORIES= audio XMASTER_SITES= http://savannah.nongnu.org/download/${PORTNAME}/ X XMAINTAINER= matthias.andree@gmx.de XCOMMENT= Learning console-based MP3/OGG player X XRUN_DEPENDS+= ruby:${PORTSDIR}/lang/ruby XLIB_DEPENDS+= fftw.2:${PORTSDIR}/math/fftw XLIB_DEPENDS+= mad.1:${PORTSDIR}/audio/mad XLIB_DEPENDS+= vorbisfile.3:${PORTSDIR}/audio/libvorbis XLIB_DEPENDS+= vorbis.2:${PORTSDIR}/audio/libvorbis XLIB_DEPENDS+= ao.3:${PORTSDIR}/audio/libao X XUSE_BZIP2= yes XUSE_GMAKE= yes XUSE_REINPLACE= yes X Xpost-patch: X ${REINPLACE_CMD} "s,#!/usr/bin/ruby,#!${LOCALBASE}/bin/ruby," \ X ${WRKSRC}/extra/*.rb X ${REINPLACE_CMD} "s,/etc/squash.conf,${PREFIX}/etc/squash.conf," \ X ${WRKSRC}/src/global.c X ${REINPLACE_CMD} "s,/etc/squash.conf,${PREFIX}/etc/squash.conf," \ X ${WRKSRC}/doc/INSTALL X Xdo-install: X ${MKDIR} ${PREFIX}/bin X ${INSTALL_PROGRAM} ${WRKSRC}/squash ${PREFIX}/bin X ${INSTALL_SCRIPT} ${WRKSRC}/extra/*.rb ${PREFIX}/bin X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR} X.for i in README doc/INSTALL doc/FEATURES doc/MEM_USAGE doc/USERS_GUIDE doc/LOCKS X ${INSTALL_MAN} ${WRKSRC}/${i} ${DOCSDIR} X.endfor X ${MKDIR} ${DOCSDIR}/extra X ${INSTALL_MAN} ${WRKSRC}/extra/squash.conf ${DOCSDIR}/extra X.endif X Xpost-install: X ${RM} -f ${PKGMESSAGE} X ${SED} "s,%%DD%%,${DOCSDIR}," ${PKGMESSAGE}.in >${PKGMESSAGE} || \ X { ${RM} -f ${PKGMESSAGE} ; exit 1 ; } X ${ECHO} X ${CAT} ${PKGMESSAGE} X ${ECHO} X Xpost-clean: X ${RM} -f ${PKGMESSAGE} X X.include <bsd.port.pre.mk> X.if ${OSVERSION} < 501000 XIGNORE= "ignored: FreeBSD before 5.1 lacks the wordexp interface" X.endif X.include <bsd.port.post.mk> END-of-squash/Makefile echo c - squash/files mkdir -p squash/files > /dev/null 2>&1 echo x - squash/files/patch-Makefile sed 's/^X//' >squash/files/patch-Makefile << 'END-of-squash/files/patch-Makefile' X--- Makefile Fri Aug 1 17:30:01 2003 X+++ Makefile Tue Aug 5 12:53:40 2003 X@@ -8,7 +8,7 @@ X # Complier Flags X CC := gcc X-CFLAGS := -O3 -std=gnu99 -pedantic -Wall X-INCLUDE := -Iinclude X-LDFLAGS := -lmad -lpthread -lm X+CFLAGS := -O3 -std=gnu99 -pedantic -Wall ${CFLAGS} X+INCLUDE := -Iinclude -I/usr/local/include X+LDFLAGS := -L/usr/local/lib -lmad -lm -lthr X X ifdef EMPEG X X--- Makefile Fri Aug 1 17:30:01 2003 X+++ Makefile Tue Aug 5 12:53:40 2003 X@@ -39,7 +39,7 @@ X ifdef EMPEG_DSP X CFLAGS := -DEMPEG_DSP $(CFLAGS) X else X- LDFLAGS := $(LDFLAGS) -lao -ldl X+ LDFLAGS := $(LDFLAGS) -lao X endif X X ifdef NO_FFTW END-of-squash/files/patch-Makefile echo x - squash/files/patch-include::global.h sed 's/^X//' >squash/files/patch-include::global.h << 'END-of-squash/files/patch-include::global.h' X--- include/global.h~ Mon Aug 4 16:43:16 2003 X+++ include/global.h Tue Aug 5 11:54:11 2003 X@@ -40,7 +40,7 @@ X #include <ao/ao.h> X #include <math.h> X #include <stdarg.h> X-#include <wait.h> X+#include <sys/wait.h> X #include <sys/mman.h> X #include <sys/types.h> X #include <sys/stat.h> END-of-squash/files/patch-include::global.h echo x - squash/files/patch-src::display.c sed 's/^X//' >squash/files/patch-src::display.c << 'END-of-squash/files/patch-src::display.c' X--- src/display.c~ Tue Jul 29 06:56:49 2003 X+++ src/display.c Tue Aug 5 11:59:03 2003 X@@ -30,6 +30,22 @@ X #endif X #include "display.h" X X+char *mystrndup(const char *s, size_t sz) X+{ X+ size_t l = strlen(s), i; X+ char *x; X+ X+ i = l < sz ? l : sz; X+ X+ x = malloc(i + 1); X+ X+ if (x) { X+ memcpy(x, s, i); X+ x[i] = '\0'; X+ } X+ return x; X+} X+ X /* X * Initialize the ncurses display and window system. X */ X@@ -878,7 +894,7 @@ X } X X /* Clip filename */ X- filename = strndup( filename, win_width - 2 ); X+ filename = mystrndup( filename, win_width - 2 ); X X /* Display filename and songs loaded */ X mvwprintw( win, 1, 1, "Current Selected Song filename:" ); END-of-squash/files/patch-src::display.c echo x - squash/pkg-plist sed 's/^X//' >squash/pkg-plist << 'END-of-squash/pkg-plist' Xbin/squash Xbin/collect_info.rb Xbin/edit_tag.rb Xbin/export_music.rb Xbin/import_music.rb Xbin/joystick.rb Xbin/musicdb_lib.rb Xbin/uncollect_info.rb X%%PORTDOCS%%%%DOCSDIR%%/FEATURES X%%PORTDOCS%%%%DOCSDIR%%/INSTALL X%%PORTDOCS%%%%DOCSDIR%%/MEM_USAGE X%%PORTDOCS%%%%DOCSDIR%%/USERS_GUIDE X%%PORTDOCS%%%%DOCSDIR%%/README X%%PORTDOCS%%%%DOCSDIR%%/LOCKS X%%PORTDOCS%%%%DOCSDIR%%/extra/squash.conf X%%PORTDOCS%%@dirrm %%DOCSDIR%%/extra X%%PORTDOCS%%@dirrm %%DOCSDIR%% END-of-squash/pkg-plist echo x - squash/pkg-descr sed 's/^X//' >squash/pkg-descr << 'END-of-squash/pkg-descr' XSquash is a C/Ncurses based music player. It supports mp3 and ogg through Xlibraries (and planned flac support). Squash uses statistics to determine songs Xto play automatically. It garners this information through whether or not a song Xis skipped. Squash also avoids picking the same song twice. Thus Squash is like Xa radio station that plays the songs you like -- and you don't even have to call Xin requests! X XWWW: http://savannah.nongnu.org/projects/squash/ X X- Adam Luter, Matthias Andree END-of-squash/pkg-descr echo x - squash/pkg-message.in sed 's/^X//' >squash/pkg-message.in << 'END-of-squash/pkg-message.in' X--------------------------------------------------------------------------- XNOTE: You MUST configure squash and run a script before you can use squash. XPlease see %%DD%%/INSTALL for details. X--------------------------------------------------------------------------- END-of-squash/pkg-message.in exit
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310260020.h9Q0KGse009180>