ports/55275: [NEW PORT] audio/squash: Learning console-based MP3/OGG player

Andrew Barnert barnert at myrealbox.com
Sun Oct 26 00:20:18 UTC 2003


The following reply was made to PR ports/55275; it has been noted by GNATS.

From: Andrew Barnert <barnert at myrealbox.com>
To: freebsd-gnats-submit at FreeBSD.org, matthias.andree at 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 at 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 at 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
 
 



More information about the freebsd-ports-bugs mailing list