ports/60674: New port: print/kcdlabel
Markus Brueffer
brueffer at phoenix-systems.de
Mon Dec 29 04:31:33 UTC 2003
>Number: 60674
>Category: ports
>Synopsis: New port: print/kcdlabel
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Dec 28 20:30:14 PST 2003
>Closed-Date:
>Last-Modified:
>Originator: Markus Brueffer
>Release: FreeBSD 5.2-CURRENT i386
>Organization:
>Environment:
System: FreeBSD cheops.phoenix 5.2-CURRENT FreeBSD 5.2-CURRENT #16: Mon Dec 22 00:35:14 CET 2003 root at cheops.phoenix:/usr/obj/usr/src/sys/CHEOPS i386
>Description:
New port: print/kcdlabel
KCDLabel is a KDE program used to create covers, labels and
booklets for your CD cases.
>How-To-Repeat:
>Fix:
--- kcdlabel.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:
#
# kcdlabel
# kcdlabel/pkg-plist
# kcdlabel/pkg-descr
# kcdlabel/distinfo
# kcdlabel/Makefile
# kcdlabel/files
# kcdlabel/files/patch-audiocd.cpp
# kcdlabel/files/patch-audiocd.h
# kcdlabel/files/patch-kdirtree.cpp
#
echo c - kcdlabel
mkdir -p kcdlabel > /dev/null 2>&1
echo x - kcdlabel/pkg-plist
sed 's/^X//' >kcdlabel/pkg-plist << 'END-of-kcdlabel/pkg-plist'
Xbin/kcdlabel
Xshare/applnk/Multimedia/kcdlabel.desktop
Xshare/doc/HTML/en/kcdlabel/en.new
Xshare/doc/HTML/en/kcdlabel/index-1.html
Xshare/doc/HTML/en/kcdlabel/index-2.html
Xshare/doc/HTML/en/kcdlabel/index-3.html
Xshare/doc/HTML/en/kcdlabel/index-4.html
Xshare/doc/HTML/en/kcdlabel/index-5.html
Xshare/doc/HTML/en/kcdlabel/index.html
Xshare/doc/HTML/en/kcdlabel/index.sgml
Xshare/icons/medium/locolor/apps/kcdlabel.xpm
Xshare/icons/small/locolor/apps/mini-kcdlabel.xpm
Xshare/locale/cs/LC_MESSAGES/kcdlabel.mo
Xshare/locale/de/LC_MESSAGES/kcdlabel.mo
Xshare/locale/fr/LC_MESSAGES/kcdlabel.mo
Xshare/locale/hu/LC_MESSAGES/kcdlabel.mo
Xshare/locale/it/LC_MESSAGES/kcdlabel.mo
X at unexec rmdir %D/share/locale/it/LC_MESSAGES 2>/dev/null || true
X at unexec rmdir %D/share/locale/it 2>/dev/null || true
X at unexec rmdir %D/share/locale/hu/LC_MESSAGES 2>/dev/null || true
X at unexec rmdir %D/share/locale/hu 2>/dev/null || true
X at unexec rmdir %D/share/locale/fr/LC_MESSAGES 2>/dev/null || true
X at unexec rmdir %D/share/locale/fr 2>/dev/null || true
X at unexec rmdir %D/share/locale/de/LC_MESSAGES 2>/dev/null || true
X at unexec rmdir %D/share/locale/de 2>/dev/null || true
X at unexec rmdir %D/share/locale/cs/LC_MESSAGES 2>/dev/null || true
X at unexec rmdir %D/share/locale/cs 2>/dev/null || true
X at unexec rmdir %D/share/locale 2>/dev/null || true
X at unexec rmdir %D/share/icons/small/locolor/apps 2>/dev/null || true
X at unexec rmdir %D/share/icons/small/locolor 2>/dev/null || true
X at unexec rmdir %D/share/icons/small 2>/dev/null || true
X at unexec rmdir %D/share/icons/medium/locolor/apps 2>/dev/null || true
X at unexec rmdir %D/share/icons/medium/locolor 2>/dev/null || true
X at unexec rmdir %D/share/icons/medium 2>/dev/null || true
X at unexec rmdir %D/share/icons 2>/dev/null || true
X at dirrm share/doc/HTML/en/kcdlabel
X at unexec rmdir %D/share/doc/HTML/en 2>/dev/null || true
X at unexec rmdir %D/share/doc/HTML 2>/dev/null || true
X at unexec rmdir %D/share/applnk/Multimedia 2>/dev/null || true
X at unexec rmdir %D/share/applnk 2>/dev/null || true
END-of-kcdlabel/pkg-plist
echo x - kcdlabel/pkg-descr
sed 's/^X//' >kcdlabel/pkg-descr << 'END-of-kcdlabel/pkg-descr'
XKCDLabel is a KDE program used to create covers, labels and
Xbooklets for your CD cases.
X
XAuthor: Pascal Panneels <pascal.panneels at skynet.be>
XWWW: http://kcdlabel.sourceforge.net/
END-of-kcdlabel/pkg-descr
echo x - kcdlabel/distinfo
sed 's/^X//' >kcdlabel/distinfo << 'END-of-kcdlabel/distinfo'
XMD5 (kcdlabel-2.12-KDE3.tar.gz) = b1a3f875fa3c6005db1fc7da47b13020
END-of-kcdlabel/distinfo
echo x - kcdlabel/Makefile
sed 's/^X//' >kcdlabel/Makefile << 'END-of-kcdlabel/Makefile'
X# New ports collection makefile for: kcdlabel
X# Date created: Mon Dec 29 03:01:39 CET 2003
X# Whom: Markus Brueffer <brueffer at phoenix-systems.de>
X#
X# $FreeBSD$
X
XPORTNAME= kcdlabel
XPORTVERSION= 2.12
XCATEGORIES= print kde
XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR= ${PORTNAME}
XDISTNAME= ${PORTNAME}-${PORTVERSION}-KDE3
X
XMAINTAINER= brueffer at phoenix-systems.de
XCOMMENT= Create covers, labels and booklets for your CD cases
X
XUSE_KDELIBS_VER= 3
XUSE_GMAKE= yes
XGNU_CONFIGURE= yes
XUSE_REINPLACE= yes
X
Xpost-patch:
X @${REINPLACE_CMD} -e 's|-O2||g' ${WRKSRC}/${CONFIGURE_SCRIPT}
X
X.include <bsd.port.pre.mk>
X.include "${PORTSDIR}/x11/kde3/Makefile.kde"
X.include <bsd.port.post.mk>
END-of-kcdlabel/Makefile
echo c - kcdlabel/files
mkdir -p kcdlabel/files > /dev/null 2>&1
echo x - kcdlabel/files/patch-audiocd.cpp
sed 's/^X//' >kcdlabel/files/patch-audiocd.cpp << 'END-of-kcdlabel/files/patch-audiocd.cpp'
X--- kcdlabel/audiocd.cpp.orig Mon Dec 29 01:15:28 2003
X+++ kcdlabel/audiocd.cpp Mon Dec 29 02:15:09 2003
X@@ -58,8 +58,13 @@
X
X bool AudioCD::readTOC()
X {
X+#ifdef __FreeBSD__
X+ struct ioc_toc_header tochdr;
X+ struct ioc_read_toc_single_entry tocentry;
X+#else
X struct cdrom_tochdr tochdr;
X struct cdrom_tocentry tocentry;
X+#endif
X int i;
X
X emit statusText((char *)"Reading Toc...");
X@@ -73,36 +78,61 @@
X return(false);
X }
X
X+#ifdef __FreeBSD__
X+ if (ioctl(cdromfd, CDIOREADTOCHEADER, &tochdr) == -1)
X+#else
X if (ioctl(cdromfd,CDROMREADTOCHDR,&tochdr) == -1)
X+#endif
X {
X emit statusText((char *)"Read Toc - Read TOC Header error");
X close(cdromfd);
X return(false);
X }
X
X+#ifdef __FreeBSD__
X+ tocentry.address_format = CD_MSF_FORMAT;
X+ for (i = tochdr.starting_track; i <= tochdr.ending_track; i++) {
X+ tocentry.track = i;
X+ if (ioctl(cdromfd, CDIOREADTOCENTRY, &tocentry) == -1)
X+#else
X tocentry.cdte_format = CDROM_MSF;
X for (i=tochdr.cdth_trk0;i<=tochdr.cdth_trk1;i++)
X {
X tocentry.cdte_track = i;
X if (ioctl(cdromfd,CDROMREADTOCENTRY,&tocentry) == -1)
X+#endif
X {
X emit statusText((char *)"Read Toc - Read TOC Entry error");
X close(cdromfd);
X return(false);
X }
X+#ifdef __FreeBSD__
X+ TOC[nr_tracks++] = tocentry.entry;
X+ TrackOffsets.push_back( (TOC[nr_tracks-1].addr.msf.minute*60+TOC[nr_tracks-1].addr.msf.second)*75+TOC[nr_tracks-1].addr.msf.frame );
X+ }
X+ tocentry.track = CDROM_LEADOUT;
X+ if (ioctl(cdromfd, CDIOREADTOCENTRY, &tocentry) == -1)
X+#else
X TOC[nr_tracks++] = tocentry.cdte_addr.msf;
X TrackOffsets.push_back( (TOC[nr_tracks-1].minute*60+TOC[nr_tracks-1].second)*75+TOC[nr_tracks-1].frame );
X }
X tocentry.cdte_track = CDROM_LEADOUT;
X if (ioctl(cdromfd,CDROMREADTOCENTRY,&tocentry) == -1)
X+#endif
X {
X emit statusText((char *)"Read Toc - Read TOC Entry (Lead-out) error");
X close(cdromfd);
X return(false);
X }
X+#ifdef __FreeBSD__
X+ TOC[nr_tracks] = tocentry.entry;
X+ // cd length in seconds
X+ CDLength = TOC[nr_tracks].addr.msf.minute*60 + TOC[nr_tracks].addr.msf.second;
X+#else
X TOC[nr_tracks] = tocentry.cdte_addr.msf;
X // cd length in seconds
X CDLength = TOC[nr_tracks].minute*60 + TOC[nr_tracks].second;
X+#endif
X // close the cdrom device
X close(cdromfd);
X TOCAvailable=true;
X@@ -120,10 +150,18 @@
X
X while ( i < nr_tracks )
X {
X+#ifdef __FreeBSD__
X+ n = n + cddb_sum( ( TOC[i].addr.msf.minute * 60 ) + TOC[i].addr.msf.second );
X+#else
X n = n + cddb_sum( ( TOC[i].minute * 60 ) + TOC[i].second );
X+#endif
X i++;
X }
X+#ifdef __FreeBSD__
X+ t = (( TOC[nr_tracks].addr.msf.minute * 60 ) + TOC[nr_tracks].addr.msf.second ) - (( TOC[0].addr.msf.minute * 60)+ TOC[0].addr.msf.second );
X+#else
X t = (( TOC[nr_tracks].minute * 60 ) + TOC[nr_tracks].second ) - (( TOC[0].minute * 60)+ TOC[0].second );
X+#endif
X // get the discid in unsigned long
X ulDiscID = (( n % 0xff) << 24 | t << 8 | nr_tracks);
X // format the disc id to get a hexdecimal 8 digits string
END-of-kcdlabel/files/patch-audiocd.cpp
echo x - kcdlabel/files/patch-audiocd.h
sed 's/^X//' >kcdlabel/files/patch-audiocd.h << 'END-of-kcdlabel/files/patch-audiocd.h'
X--- kcdlabel/audiocd.h.orig Mon Dec 29 01:08:45 2003
X+++ kcdlabel/audiocd.h Mon Dec 29 02:15:45 2003
X@@ -30,7 +30,12 @@
X #include <qobject.h>
X #include <qstring.h>
X
X+#ifdef __FreeBSD__
X+#include <sys/cdio.h>
X+#define CDROM_LEADOUT 0xAA
X+#else
X #include <linux/cdrom.h> // specific to Linux !!! --> must be encapsulated in DEFINE IFDEF to enable compilation on other Un*x platforms...
X+#endif
X
X /**Access all the audio CD functions and compute CDDB DiscID
X *@author Pascal 'PeP' Panneels
X@@ -74,7 +79,11 @@
X QString DiscID; // CDDB DiscID
X int cdromfd; // device descriptor of the CDROM
X unsigned int nr_tracks; // # of tracks
X+#ifdef __FreeBSD__
X+ struct cd_toc_entry TOC[101]; // Table Of Content of the CD (max 99 tracks + lead-out + lead in)
X+#else
X struct cdrom_msf0 TOC[101]; // Table Of Content of the CD (max 99 tracks + lead-out + lead in)
X+#endif
X bool TOCAvailable; // true when the TOC is available
X unsigned long ulDiscID; // computed disc id as an unsigned long
X VectorIntType TrackOffsets; // offsets of each track
END-of-kcdlabel/files/patch-audiocd.h
echo x - kcdlabel/files/patch-kdirtree.cpp
sed 's/^X//' >kcdlabel/files/patch-kdirtree.cpp << 'END-of-kcdlabel/files/patch-kdirtree.cpp'
X--- kcdlabel/kdirtree.cpp.orig Mon Dec 29 02:18:03 2003
X+++ kcdlabel/kdirtree.cpp Mon Dec 29 02:18:49 2003
X@@ -20,7 +20,9 @@
X #include <string>
X #include <vector>
X #include <algorithm>
X+#ifndef __FreeBSD__
X #include <error.h>
X+#endif
X #include <stdio.h>
X #include <stdlib.h>
X #include <unistd.h>
END-of-kcdlabel/files/patch-kdirtree.cpp
exit
--- kcdlabel.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list