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