From owner-freebsd-ports Mon Jan 21 1:10:31 2002 Delivered-To: freebsd-ports@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id ECCB637B41B for ; Mon, 21 Jan 2002 01:10:00 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0L9A0W07508; Mon, 21 Jan 2002 01:10:00 -0800 (PST) (envelope-from gnats) Received: from energyhq.homeip.net (213-97-200-73.uc.nombres.ttd.es [213.97.200.73]) by hub.freebsd.org (Postfix) with ESMTP id F128C37B404 for ; Mon, 21 Jan 2002 01:00:08 -0800 (PST) Received: (from flynn@localhost) by energyhq.homeip.net (8.11.6/8.11.6) id g0L902f02685; Mon, 21 Jan 2002 10:00:02 +0100 (CET) (envelope-from flynn) Message-Id: <200201210900.g0L902f02685@energyhq.homeip.net> Date: Mon, 21 Jan 2002 10:00:02 +0100 (CET) From: Miguel Mendez Reply-To: Miguel Mendez To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: ports/34105: New port: audio/p5-FreeDB Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 34105 >Category: ports >Synopsis: New port: audio/p5-FreeDB >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jan 21 01:10:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: Miguel Mendez >Release: FreeBSD 4.5-RC i386 >Organization: >Environment: System: FreeBSD energyhq.homeip.net 4.5-RC FreeBSD 4.5-RC #0: Fri Jan 18 19:08:06 CET 2002 root@energyhq.homeip.net:/storage2/obj/storage2/src/sys/ENERGYHQ i386 >Description: FreeDB.pm is a Perl Module that provides a simple object-oriented programming interface to the FreeDB entry for whatever CD you pop into your drive. WWW: http://www.red-bean.com/~bwf/software/FreeDB/ Miguel Mendez >How-To-Repeat: >Fix: --- p5-FreeDB.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: # # p5-FreeDB/ # p5-FreeDB/pkg-plist # p5-FreeDB/pkg-descr # p5-FreeDB/pkg-comment # p5-FreeDB/distinfo # p5-FreeDB/Makefile # p5-FreeDB/files # p5-FreeDB/files/patch-FreeDB.pm # echo c - p5-FreeDB/ mkdir -p p5-FreeDB/ > /dev/null 2>&1 echo x - p5-FreeDB/pkg-plist sed 's/^X//' >p5-FreeDB/pkg-plist << 'END-of-p5-FreeDB/pkg-plist' Xlib/perl5/site_perl/%%PERL_VER%%/FreeDB.pm Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/FreeDB/.packlist X@dirrm lib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/FreeDB END-of-p5-FreeDB/pkg-plist echo x - p5-FreeDB/pkg-descr sed 's/^X//' >p5-FreeDB/pkg-descr << 'END-of-p5-FreeDB/pkg-descr' XFreeDB.pm is a Perl Module that provides a simple object-oriented programming Xinterface to the FreeDB entry for whatever CD you pop into your drive. Take a Xlook at the online man page to find out more about it. X XWWW: http://www.red-bean.com/~bwf/software/FreeDB/ XMiguel Mendez END-of-p5-FreeDB/pkg-descr echo x - p5-FreeDB/pkg-comment sed 's/^X//' >p5-FreeDB/pkg-comment << 'END-of-p5-FreeDB/pkg-comment' XPerl Module that provides a programming interface to FreeDB END-of-p5-FreeDB/pkg-comment echo x - p5-FreeDB/distinfo sed 's/^X//' >p5-FreeDB/distinfo << 'END-of-p5-FreeDB/distinfo' XMD5 (FreeDB-1.1.2.tar.gz) = 6912b2da07c90f520bcfd3712639d2be END-of-p5-FreeDB/distinfo echo x - p5-FreeDB/Makefile sed 's/^X//' >p5-FreeDB/Makefile << 'END-of-p5-FreeDB/Makefile' X# New ports collection makefile for: p5-CDDB X# Date created: 20 Jan 2002 X# Whom: Miguel Mendez X# FreeDB.pm patch by Alan Eldridge X# X# $FreeBSD$ X# X XPORTNAME= FreeDB XPORTVERSION= 1.1.2 XCATEGORIES= audio perl5 XMASTER_SITES= http://www.red-bean.com/~bwf/software/FreeDB/ XPKGNAMEPREFIX= p5- X XMAINTAINER= flynn@energyhq.homeip.net X XPERL_CONFIGURE= yes X XMAN3= FreeDB.3 XMANPREFIX= ${PREFIX}/lib/perl5/${PERL_VERSION} X X.include END-of-p5-FreeDB/Makefile echo c - p5-FreeDB/files mkdir -p p5-FreeDB/files > /dev/null 2>&1 echo x - p5-FreeDB/files/patch-FreeDB.pm sed 's/^X//' >p5-FreeDB/files/patch-FreeDB.pm << 'END-of-p5-FreeDB/files/patch-FreeDB.pm' X--- FreeDB.pm.orig Wed Dec 8 08:46:32 1999 X+++ FreeDB.pm Sun Jan 20 21:00:40 2002 X@@ -49,6 +49,21 @@ X X $VERSION = '1.1.2'; X X+my ($os, $CDIOREADTOCHEADER, $CDIOREADTOCENTRY); X+ X+sub BEGIN { X+ $os = `uname`; X+ if ($os =~ m/FreeBSD/) { X+ $CDIOREADTOCHEADER = 0x40046304; X+ $CDIOREADTOCENTRY = 0xc00c6306; X+ } elsif ($os =~ m/Linux/) { X+ $CDIOREADTOCHEADER = 0x5305; X+ $CDIOREADTOCENTRY = 0x5306; X+ } else { X+ die "FIXME: $os not supported"; X+ } X+} X+ X # Preloaded methods go here. X X sub new { X@@ -576,7 +591,10 @@ X my ($trackno, $ttitle) = split('=', $i); X $tracks[$trackno] .= $ttitle; X } X- return 0 if (@tracks[1] eq ""); X+ X+# was @tracks[1] X+ X+ return 0 if ($tracks[1] eq ""); X my (@offsets) = ($tmp =~ /^\#\s+(\d+)/mg); X my ($disclength) = ($tmp =~ /^\#\s*Disc length:\s*(\d+)/mg); X X@@ -624,38 +642,68 @@ X # Sets: {discid} and _server_string() X sub _get_disc_info { X my $self = shift @_; X- my ($result, $start, $end, $discid, $tracknumber); X+ my ($result, $start, $end, $discid, $tracknumber, $chdr); X my ($track, $adr_ctrl, $format, $frame, $minute, $second); X- my $chdr = ""; X my @tracks = (); X X open (cdrom_fd, "$self->{'cdrom_device'}") or croak "Error: could not open device: \"$self->{'cdrom_device'}\"\n\nSolution: login as root and make a new group 'cdrom' in /etc/group\nthen issue these commands:\n chgrp cdrom $self->{'cdrom_device'}\n cdmod g+r $self->{'cdrom_device'}\n adduser cdrom\nNow logout and login as the user again.\n\n"; X X+ my $hdrfmt; X+ if ($os =~ m/Linux/) { X+ $hdrfmt = 'CC'; X+ } elsif ($os =~ m/FreeBSD/) { X+ $hdrfmt = 'xxCC'; X+ } X # Get start and end track number X- $result = ioctl(cdrom_fd, 0x5305, $chdr); X+ $chdr = pack($hdrfmt, 0, 0); X+ $result = ioctl(cdrom_fd, $CDIOREADTOCHEADER, $chdr); X $result or croak "CD reading ioctl failed.\n"; X $self->debug(2,"RESULT IS: $result\n"); X- ($start, $end) = unpack('CC', $chdr); X- X+ ($start, $end) = unpack($hdrfmt, $chdr); X # Get info for each track X for ($tracknumber = $start; $tracknumber <= $end; $tracknumber++) { X- my $tocentry = pack('C8', $tracknumber, 0, 2, 0, 0, 0, 0, 0); X+ my $tocentry; X+ X+ if ($os =~ m/Linux/) { X+ $tocentry = pack('C8', $tracknumber, 0, 2, 0, 0, 0, 0, 0); X+ } elsif ($os =~ m/FreeBSD/) { X+ $tocentry = pack('CCx10', 2, $tracknumber); X+ } X X- if( ioctl(cdrom_fd, 0x5306, $tocentry) < 0 ) { X+ if( ioctl(cdrom_fd, $CDIOREADTOCENTRY, $tocentry) < 0 ) { X croak "Error: problems during cdrom tracks read in\n\nSolution: sorry no solution\n"; X } X- ($track, $adr_ctrl, $format, $frame, $minute, $second) = unpack('C*', $tocentry); X+ if ($os =~ m/Linux/) { X+ ($track, $adr_ctrl, $format, $frame, $minute, $second) X+ = unpack('C*', $tocentry); X+ } elsif ($os =~ m/FreeBSD/) { X+ ($format, $track, $minute, $second, $frame) X+ = unpack('CCx7CCC', $tocentry); X+ } X $tracks[$tracknumber] = (60 * $minute + $second); X- X } X X # Get info for leadout X- my $tocentry = pack('C8', 0xAA, 0, 2, 0, 0, 0, 0 ,0); X- if( ioctl(cdrom_fd, 0x5306, $tocentry) < 0 ) X+ my $tocentry; X+ X+ if ($os =~ m/Linux/) { X+ $tocentry = pack('C8', 0xAA, 0, 2, 0, 0, 0, 0 ,0); X+ } elsif ($os =~ m/FreeBSD/) { X+ $tocentry = pack('CCx10', 2, 0xAA); X+ } X+ X+ if( ioctl(cdrom_fd, $CDIOREADTOCENTRY, $tocentry) < 0 ) X { X croak "Error: problems during cdrom tracks read in\n\nSolution: sorry no solution\n"; X } X- ($track, $adr_ctrl, $format, $frame, $minute, $second) = unpack('C*', $tocentry); X+ X+ if ($os =~ m/Linux/) { X+ ($track, $adr_ctrl, $format, $frame, $minute, $second) X+ = unpack('C*', $tocentry); X+ } elsif ($os =~ m/FreeBSD/) { X+ ($format, $track, $minute, $second, $frame) X+ = unpack('CCx7CCC', $tocentry); X+ } X $tracks[$end + 1] = (60 * $minute + $second); X X # Calculate cddb sum for all tracks and for total X X END-of-p5-FreeDB/files/patch-FreeDB.pm exit --- p5-FreeDB.shar ends here --- >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message