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