aboutsummaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorAlexander Leidinger <netchild@FreeBSD.org>2004-04-20 20:46:33 +0000
committerAlexander Leidinger <netchild@FreeBSD.org>2004-04-20 20:46:33 +0000
commit704080a7b5998febaff62958647ffcbc3faf78da (patch)
tree1db841537e9c6963aab59ab90fe03c8068837339 /sysutils
parentb23fe62489afc676114175b4c4413e29f8d6e614 (diff)
downloadports-704080a7b5998febaff62958647ffcbc3faf78da.tar.gz
ports-704080a7b5998febaff62958647ffcbc3faf78da.zip
Notes
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/cdrtools/Makefile156
-rw-r--r--sysutils/cdrtools/files/patch-README.rscsi45
-rw-r--r--sysutils/cdrtools/files/patch-RULES::rules.cnf12
-rw-r--r--sysutils/cdrtools/files/patch-ad6
-rw-r--r--sysutils/cdrtools/files/patch-ai20
-rw-r--r--sysutils/cdrtools/files/patch-bb13
-rw-r--r--sysutils/cdrtools/files/patch-cdda2wav::interface.c37
-rw-r--r--sysutils/cdrtools/files/patch-cdda2wav::ioctl.c88
-rw-r--r--sysutils/cdrtools/files/patch-cdda2wav::mycdrom.h24
-rw-r--r--sysutils/cdrtools/files/patch-cdrecord::cdrecord.111
-rw-r--r--sysutils/cdrtools/files/patch-cdrecord::cdrecord.dfl36
-rw-r--r--sysutils/cdrtools/files/patch-conf::configure10
-rw-r--r--sysutils/cdrtools/files/patch-mkisofs::mkisofs.820
-rw-r--r--sysutils/cdrtools/files/patch-readcd::readcd.113
-rw-r--r--sysutils/cdrtools/files/patch-rscsi::rscsi.c18
-rw-r--r--sysutils/cdrtools/files/patch-rscsi::rscsi.dfl29
-rw-r--r--sysutils/cdrtools/files/patch-scgcheck::scgcheck.112
-rw-r--r--sysutils/cdrtools/pkg-descr4
-rw-r--r--sysutils/cdrtools/pkg-descr.mkisofs23
-rw-r--r--sysutils/cdrtools/pkg-install.rscsi61
-rw-r--r--sysutils/cdrtools/pkg-message13
-rw-r--r--sysutils/cdrtools/pkg-plist36
-rw-r--r--sysutils/cdrtools/pkg-plist.mkisofs17
-rw-r--r--sysutils/mkisofs/Makefile2
24 files changed, 639 insertions, 67 deletions
diff --git a/sysutils/cdrtools/Makefile b/sysutils/cdrtools/Makefile
index 38a05b2e5591..9e8cce33de0b 100644
--- a/sysutils/cdrtools/Makefile
+++ b/sysutils/cdrtools/Makefile
@@ -7,7 +7,7 @@
PORTNAME?= cdrtools
PORTVERSION?= 2.0.3
-PORTREVISION?= 1
+PORTREVISION?= 2
CATEGORIES?= sysutils audio
MASTER_SITES= ftp://ftp.berlios.de/pub/cdrecord/ \
ftp://ftp.cs.tu-berlin.de/pub/misc/cdrecord/ \
@@ -15,54 +15,158 @@ MASTER_SITES= ftp://ftp.berlios.de/pub/cdrecord/ \
DISTNAME= cdrtools-2.00.3
MAINTAINER?= marius@FreeBSD.org
-COMMENT?= Cdrecord and several other programs to record CD-R[W]
+COMMENT?= Cdrecord and other programs to extract and record CDs/CD-R[W]s
CONFLICTS?= cdrtools-devel-*
.if defined(MKISOFS)
-MAN8= apple_driver.8 isoinfo.8 mkhybrid.8 mkisofs.8
+MAN8= isoinfo.8 mkisofs.8
+MLINKS= isoinfo.8 devdump.8 isoinfo.8 isodump.8 isoinfo.8 isovfy.8 \
+ mkisofs.8 mkhybrid.8
+DOCS= README README.compression README.eltorito README.graft_dirs \
+ README.hfs_boot README.hfs_magic README.hide README.joliet \
+ README.macosx README.mkhybrid README.prep_boot README.rootinfo \
+ README.session README.sort README.sparcboot
.else
-MAN1= cdda2wav.1 cdrecord.1 readcd.1
+MAN1= cdda2wav.1 cdrecord.1 readcd.1 scgcheck.1
+DOCS= README README.ATAPI README.DiskT@2 README.FreeBSD README.WORM \
+ README.audio README.cdplus README.cdrw README.cdtext \
+ README.copy README.mkisofs README.multi README.raw \
+ README.rscsi README.sony README.verify
+CDDA2WAVDOCS= FAQ Frontends HOWTOUSE OtherProgs README THANKS TODO
.endif
USE_GMAKE= yes
-MAKE_ENV= COPTX="-DBSD_SCSI_SENSE_BUG"
-SLAVEDIRS= sysutils/mkisofs
+USE_REINPLACE= yes
+MAKE_ENV= CCOM=${CC} LANG=C
+#CFLAGS+= -DSOURCE_MODIFIED
+
+.if defined(MKISOFS)
+DOCSSRC= ${WRKSRC}/${PORTNAME}
+PKGMESSAGE= ""
+.else
+DOCSSRC= ${WRKSRC}
+PKGMESSAGE= ${WRKDIR}/pkg-message
+.if defined(WITH_RSCSI)
+PKGINSTALL= ${PKGDIR}/pkg-install.rscsi
+PLIST_SUB= RSCSI=""
+PKGNAMESUFFIX= -rscsi
+.else
+PLIST_SUB= RSCSI="@comment "
+.endif
+.endif
+
+.include <bsd.port.pre.mk>
+
+pre-everything::
+.if !defined(MKISOFS) && !defined(WITH_RSCSI)
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "You may use the following build option(s):"
+ @${ECHO_MSG} ""
+ @${ECHO_MSG} "WITH_RSCSI=yes builds with the rscsi daemon which provides access to"
+ @${ECHO_MSG} " local SCSI-devices over the network (the client-side"
+ @${ECHO_MSG} " in cdda2wav, cdrecord, etc. is built unconditionally)."
+ @${ECHO_MSG} " BEWARE: The rscsi binary gets installed suid root as"
+ @${ECHO_MSG} " this is the preferred method to set it up."
+ @${ECHO_MSG} ""
+.endif
-.if ${MACHINE_ARCH} != "i386"
post-extract:
- ${LN} -sf ${WRKSRC}/RULES/i386-freebsd-cc.rul \
- ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul
+.for i in config.guess config.sub
+ @${CP} ${PORTSDIR}/Templates/${i} ${WRKSRC}/conf
+ @${CP} ${PORTSDIR}/Templates/${i} ${WRKSRC}/cdda2wav
+.endfor
+.if ${MACHINE_ARCH} != "i386" || ${CC} != "cc"
+ @${LN} -sf ${WRKSRC}/RULES/i386-freebsd-cc.rul \
+ ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-${CC}.rul
+.endif
+
+post-patch:
+.if defined(MKISOFS)
+.for i in 45libdeflt 45libedc 45libparanoia 55cdda2wav 55cdrecord 55readcd \
+ 55rscsi 55scgcheck
+ @${RM} ${WRKSRC}/TARGETS/${i}
+.endfor
+.else
+.for i in 45libfile 45libhfs_iso 45libunls 55mkisofs 55mkisofs!@!diag
+ @${RM} ${WRKSRC}/TARGETS/${i}
+.endfor
+.if !defined(WITH_RSCSI)
+ @${RM} ${WRKSRC}/TARGETS/55rscsi
+.endif
+.for i in README.rscsi include/deflts.h cdda2wav/cdda2wav.1 \
+ cdrecord/cdrecord.1 cdrecord/cdrecord.dfl cdrecord/defaults.c \
+ librscg/scsi-remote.c readcd/readcd.1 rscsi/rscsi.c rscsi/rscsi.dfl \
+ scgcheck/scgcheck.1
+ @${REINPLACE_CMD} -e 's|\/opt\/schily|${PREFIX}|g; \
+ s|\/usr\/local|${PREFIX}|g; s|\/etc\/default|${PREFIX}\/etc|g; \
+ s|\/var\/adm\/messages|\/var\/run\/dmesg.boot|g' ${WRKSRC}/${i}
+.endfor
+# @${REINPLACE_CMD} -E -e \
+# 's|#define.+INSERT_YOUR_EMAIL_ADDRESS_HERE|& "${MAINTAINER}"|' \
+# ${WRKSRC}/cdrecord/cdrecord.c
+ @${SED} 's|%%PREFIX%%|${PREFIX}|g' ${PKGDIR}/pkg-message > \
+ ${WRKDIR}/pkg-message
.endif
do-install:
.if defined(MKISOFS)
@${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/OBJ/${ARCH}-freebsd-cc/mkisofs \
- ${PREFIX}/bin
+ ${PREFIX}/bin
@${LN} -sf mkisofs ${PREFIX}/bin/mkhybrid
- @${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/diag/OBJ/${ARCH}-freebsd-cc/devdump \
- ${PREFIX}/bin
- @${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/diag/OBJ/${ARCH}-freebsd-cc/isodump \
- ${PREFIX}/bin
- @${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/diag/OBJ/${ARCH}-freebsd-cc/isoinfo \
- ${PREFIX}/bin
- @${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/diag/OBJ/${ARCH}-freebsd-cc/isovfy \
- ${PREFIX}/bin
- @${INSTALL_MAN} ${WRKSRC}/mkisofs/apple_driver.8 ${PREFIX}/man/man8
- @${INSTALL_MAN} ${WRKSRC}/mkisofs/diag/isoinfo.8 ${PREFIX}/man/man8
- @${INSTALL_MAN} ${WRKSRC}/mkisofs/mkhybrid.8 ${PREFIX}/man/man8
+.for i in devdump isodebug isodump isoinfo isovfy
+ @${INSTALL_PROGRAM} ${WRKSRC}/mkisofs/diag/OBJ/${ARCH}-freebsd-cc/${i} \
+ ${PREFIX}/bin
+.endfor
@${INSTALL_MAN} ${WRKSRC}/mkisofs/mkisofs.8 ${PREFIX}/man/man8
+ @${INSTALL_MAN} ${WRKSRC}/mkisofs/diag/isoinfo.8 ${PREFIX}/man/man8
.else
- @${INSTALL_PROGRAM} ${WRKSRC}/cdrecord/OBJ/${ARCH}-freebsd-cc/cdrecord \
- ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/cdda2wav/OBJ/${ARCH}-freebsd-cc/cdda2wav \
- ${PREFIX}/bin
+ ${PREFIX}/bin
@${LN} -sf cdda2wav ${PREFIX}/bin/list_audio_tracks
+ @${INSTALL_PROGRAM} ${WRKSRC}/cdrecord/OBJ/${ARCH}-freebsd-cc/cdrecord \
+ ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/readcd/OBJ/${ARCH}-freebsd-cc/readcd \
- ${PREFIX}/bin
+ ${PREFIX}/bin
+.if defined(WITH_RSCSI)
+ @${INSTALL_PROGRAM} ${WRKSRC}/rscsi/OBJ/${ARCH}-freebsd-cc/rscsi \
+ ${PREFIX}/sbin
+ @${CHMOD} u+s ${PREFIX}/sbin/rscsi
+.endif
+ @${INSTALL_PROGRAM} ${WRKSRC}/scgcheck/OBJ/${ARCH}-freebsd-cc/scgcheck \
+ ${PREFIX}/bin
@${INSTALL_MAN} ${WRKSRC}/cdda2wav/cdda2wav.1 ${PREFIX}/man/man1
@${INSTALL_MAN} ${WRKSRC}/cdrecord/cdrecord.1 ${PREFIX}/man/man1
@${INSTALL_MAN} ${WRKSRC}/readcd/readcd.1 ${PREFIX}/man/man1
+ @${INSTALL_MAN} ${WRKSRC}/scgcheck/scgcheck.1 ${PREFIX}/man/man1
+ @${INSTALL_DATA} ${WRKSRC}/cdrecord/cdrecord.dfl \
+ ${PREFIX}/etc/cdrecord.sample
+.if !exists(${PREFIX}/etc/cdrecord)
+ @${INSTALL_DATA} ${WRKSRC}/cdrecord/cdrecord.dfl ${PREFIX}/etc/cdrecord
.endif
+.if defined(WITH_RSCSI)
+ @${INSTALL_DATA} ${WRKSRC}/rscsi/rscsi.dfl ${PREFIX}/etc/rscsi.sample
+.if !exists(${PREFIX}/etc/rscsi)
+ @${INSTALL_DATA} ${WRKSRC}/rscsi/rscsi.dfl ${PREFIX}/etc/rscsi
+.endif
+.endif
+.endif
+.if !defined(NOPORTDOCS)
+ @${MKDIR} ${DOCSDIR}
+.for i in ${DOCS}
+ @${INSTALL_DATA} ${DOCSSRC}/${i} ${DOCSDIR}
+.endfor
+.if !defined(MKISOFS)
+ @${MKDIR} ${DOCSDIR}/cdda2wav
+.for i in ${CDDA2WAVDOCS}
+ @${INSTALL_DATA} ${DOCSSRC}/cdda2wav/${i} ${DOCSDIR}/cdda2wav
+.endfor
+.endif
+.endif
+
+post-install:
+ -@if [ -f ${PKGINSTALL} ]; then ${SETENV} PKG_PREFIX=${PREFIX} \
+ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL; fi
+ @if [ -f ${WRKDIR}/pkg-message ]; then ${CAT} ${WRKDIR}/pkg-message; fi
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/sysutils/cdrtools/files/patch-README.rscsi b/sysutils/cdrtools/files/patch-README.rscsi
new file mode 100644
index 000000000000..abad7914c1f4
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-README.rscsi
@@ -0,0 +1,45 @@
+--- README.rscsi.orig Sun Aug 17 11:31:39 2003
++++ README.rscsi Sun Aug 17 14:38:57 2003
+@@ -18,24 +18,21 @@
+ NOTE: In this case, rscsi must be installed suid root.
+ **** This is the preferred method ****
+
+-To enable remote SCSI via the login shell method you should do the following:
+-
+- - Add an entry to /etc/passwd in the form:
++ The FreeBSD port automatically installs the rscsi binary suid
++ root and creates the user "rscsi".
+
+- rscsi:x:1999:1000:Tape:/export/home/rscsi:/opt/schily/sbin/rscsi
+-
+- (modify this according to your OS). And don't forget to
+- modify /etc/shadow the way it needs to be on your OS.
++To enable remote SCSI via the login shell method you should do the following:
+
+- - Create a home directory for this user and add a .rhosts file
+- to allow access to all users you like.
++ - Make sure that there is an entry for rshd(8) in /etc/inetd.conf
++ and inetd(8) is running.
+
+- - Install rscsi suid root into /opt/schily/sbin
++ - Edit /usr/local/rscsi/.rhosts to allow access to all users you
++ like.
+
+- - Install a file /etc/default/rscsi and define access rights.
++ - Edit /usr/local/etc/rscsi and define access rights.
+ Without this file, rscsi will not work at all.
+
+- The template for this file is: rscsi/rscsi.dfl
++ The template for this file is: /usr/local/etc/rscsi.sample
+
+ RSCSI Security:
+
+@@ -96,7 +93,7 @@
+ information about the remote libscg version used for the connection.
+
+ - To be able to use the remote SCSI client code from win32 you need to create
+- a file /etc/passwd with a corect entry for the user you are on win32.
++ a file /etc/passwd with a correct entry for the user you are on win32.
+ Call 'id' to get the right user id.
+ Note that remote SCSI has not yet been tested on Win32.
+
diff --git a/sysutils/cdrtools/files/patch-RULES::rules.cnf b/sysutils/cdrtools/files/patch-RULES::rules.cnf
new file mode 100644
index 000000000000..f7148061bd95
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-RULES::rules.cnf
@@ -0,0 +1,12 @@
+--- RULES/rules.cnf.orig Sun Jan 27 16:11:31 2002
++++ RULES/rules.cnf Sun Jun 1 18:58:37 2003
+@@ -33,8 +33,7 @@
+ #
+ # Hack until the <mach>-<os>-*cc.rul files are updated
+ #
+-_HCCCOM= $(OARCH:%-gcc=gcc)
+-HCCCOM= $(_HCCCOM:%-cc=cc)
++HCCCOM= $(C_ARCH)
+
+ _CCCOM= $(_UNIQ)$(CCCOM)
+ __CCCOM= $(_CCCOM:$(_UNIQ)=$(HCCCOM))
diff --git a/sysutils/cdrtools/files/patch-ad b/sysutils/cdrtools/files/patch-ad
index da1f89816180..8e7ac09a0fcb 100644
--- a/sysutils/cdrtools/files/patch-ad
+++ b/sysutils/cdrtools/files/patch-ad
@@ -18,8 +18,8 @@
-LDCC= @echo " ==> LINKING \"$@\""; gcc
-DYNLD= @echo " ==> LINKING dynamic library \"$@\""; gcc
-RANLIB= @echo " ==> RANDOMIZING ARCHIVE \"$@\""; ranlib
-+LDCC= $(CC)
-+DYNLD= $(CC)
++LDCC= $(CCOM)
++DYNLD= $(CCOM)
+RANLIB= ranlib
ARFLAGS= cr
LORDER= lorder
@@ -27,5 +27,5 @@
RMDEP= :
-MKDEP= @echo " ==> MAKING DEPENDENCIES \"$@\""; $(RMDEP); gcc -M
-+MKDEP= $(CC) -M
++MKDEP= $(CCOM) -M
MKDEP_OUT=
diff --git a/sysutils/cdrtools/files/patch-ai b/sysutils/cdrtools/files/patch-ai
deleted file mode 100644
index 4d3b61bc72cc..000000000000
--- a/sysutils/cdrtools/files/patch-ai
+++ /dev/null
@@ -1,20 +0,0 @@
---- cdrecord/drv_philips.c.orig Tue Nov 27 02:08:49 2001
-+++ cdrecord/drv_philips.c Sun Dec 16 13:05:46 2001
-@@ -542,10 +542,15 @@
- * expects different parameters.
- */
-
-+ /*
-+ * We need to return some !0 value, otherwise the upper
-+ * layer would still issue a READ BUFFER, sigh.
-+ */
-+
- if (sp)
-- *sp = 0L;
-+ *sp = 1L * 1024 * 1024;
- if (fp)
-- *fp = 0L;
-+ *fp = 1L * 1024 * 1024;
-
- return (100); /* 100 % */
- }
diff --git a/sysutils/cdrtools/files/patch-bb b/sysutils/cdrtools/files/patch-bb
deleted file mode 100644
index b37ea2f81308..000000000000
--- a/sysutils/cdrtools/files/patch-bb
+++ /dev/null
@@ -1,13 +0,0 @@
---- mkisofs/tree.c.orig Thu Apr 27 11:44:57 2000
-+++ mkisofs/tree.c Sat Apr 29 11:34:23 2000
-@@ -538,8 +538,8 @@
- table->de_flags |= INHIBIT_JOLIET_ENTRY;
- /* table->name = strdup("<translation table>");*/
- table->name = strdup(trans_tbl);
-- table->table = (char *) e_malloc(ISO_ROUND_UP(tablesize));
-- memset(table->table, 0, ISO_ROUND_UP(tablesize));
-+ table->table = (char *) e_malloc(ISO_ROUND_UP(tablesize+1));
-+ memset(table->table, 0, ISO_ROUND_UP(tablesize+1));
- iso9660_file_length(trans_tbl, table, 0);
-
- if (use_RockRidge) {
diff --git a/sysutils/cdrtools/files/patch-cdda2wav::interface.c b/sysutils/cdrtools/files/patch-cdda2wav::interface.c
new file mode 100644
index 000000000000..ba5d9bfba731
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-cdda2wav::interface.c
@@ -0,0 +1,37 @@
+--- cdda2wav/interface.c Mon Dec 29 11:28:09 2003
++++ cdda2wav/interface.c Sun Jan 18 01:35:50 2004
+@@ -444,7 +444,15 @@
+ default: /* for example ATAPI cds */
+ #else
+ #if defined (__FreeBSD__)
+- case 117:
++#if __FreeBSD_version >= 501113
++ case 4: /* GEOM */
++ if (memcmp(pdev_name, "/dev/acd", sizeof("/dev/acd") - 1) != 0) {
++ fprintf(stderr, "%s is not an ATAPI CDROM device\n", pdev_name);
++ exit(SYNTAX_ERROR);
++ }
++ /* FALLTHROUGH */
++#endif
++ case 117: /* pre-GEOM atapi cd */
+ if (!S_ISCHR(statstruct->st_mode)) {
+ fprintf(stderr, "%s is not a char device\n",pdev_name);
+ exit(SYNTAX_ERROR);
+@@ -593,9 +601,6 @@
+ exit(RACE_ERROR);
+ }
+ #endif
+- if (scgp != NULL && global.scsi_verbose) {
+- scgp->verbose = global.scsi_verbose;
+- }
+ }
+ return retval;
+ }
+@@ -888,6 +893,7 @@
+ FatalError("No memory for SCSI structure.\n");
+ }
+ scgp->silent = 0;
++ scgp->verbose = global.scsi_verbose;
+ SetupCookedIoctl( global.dev_name );
+ #else
+ FatalError("Sorry, there is no known method to access the device.\n");
diff --git a/sysutils/cdrtools/files/patch-cdda2wav::ioctl.c b/sysutils/cdrtools/files/patch-cdda2wav::ioctl.c
new file mode 100644
index 000000000000..1c13170bf8b4
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-cdda2wav::ioctl.c
@@ -0,0 +1,88 @@
+--- cdda2wav/ioctl.c Sat Dec 27 17:29:28 2003
++++ cdda2wav/ioctl.c Sun Jan 18 01:36:36 2004
+@@ -59,10 +59,14 @@
+ #include <cdrecord.h>
+
+ #if defined (HAVE_IOCTL_INTERFACE)
+-#if !defined sun && !defined __sun
++#if !defined(sun) && !defined(__sun) && !(__FreeBSD_version >= 501112)
+ static struct cdrom_read_audio arg;
+ #endif
+
++#if defined(__FreeBSD__) && __FreeBSD_version >= 400014
++static unsigned sector_size = CD_FRAMESIZE;
++#endif
++
+ static int err;
+
+ static void EnableCdda_cooked __PR((SCSI *scgp, int fAudioMode, unsigned uSectorsize));
+@@ -72,13 +76,23 @@
+ int fAudioMode;
+ unsigned uSectorsize;
+ {
++#if defined(__FreeBSD__) && __FreeBSD_version >= 400014
++ if (scgp && scgp->verbose)
++ fprintf(stderr, "EnableCdda_cooked (CDRIOCSETBLOCKSIZE)...\n");
++
++ if (fAudioMode) {
++ if (ioctl(global.cooked_fd, CDRIOCGETBLOCKSIZE, &sector_size) ==-1)
++ sector_size = CD_FRAMESIZE;
++ ioctl(global.cooked_fd, CDRIOCSETBLOCKSIZE, &uSectorsize);
++ } else
++ ioctl(global.cooked_fd, CDRIOCSETBLOCKSIZE, &sector_size);
++#elif defined CDIOCSETCDDA
+ if (scgp && scgp->verbose) {
+ fprintf(stderr, "EnableCdda_cooked (CDIOCSETCDDA)...\n");
+ if (uSectorsize != CD_FRAMESIZE_RAW)
+ fprintf(stderr, "non audio sector size is ignored.\n");
+ }
+
+-#if defined CDIOCSETCDDA
+ ioctl(global.cooked_fd, CDIOCSETCDDA, &fAudioMode);
+ #else
+ fprintf(stderr, "EnableCdda_cooked (CDIOCSETCDDA) is not available...\n");
+@@ -197,6 +211,10 @@
+ /* trash the cache */
+
+ #if defined __FreeBSD__
++#if __FreeBSD_version >= 501112
++ pread(global.cooked_fd, (void *) &p[0], 3*CD_FRAMESIZE_RAW,
++ find_an_off_sector(lSector, SectorBurstVal)*CD_FRAMESIZE_RAW);
++#else
+ static struct cdrom_read_audio arg2;
+
+ arg2.address.lba = find_an_off_sector(lSector, SectorBurstVal);
+@@ -206,6 +224,7 @@
+
+ ioctl(global.cooked_fd, CDROMREADAUDIO, &arg2);
+ #endif
++#endif
+ #if defined __linux__
+ static struct cdrom_read_audio arg2;
+
+@@ -267,6 +286,17 @@
+
+ /* read 2352 bytes audio data */
+ #if defined __FreeBSD__
++#if __FreeBSD_version >= 501112
++ if (x && x->verbose) {
++ fprintf(stderr, "ReadCdRom_cooked (pread)...\n");
++ }
++
++ do {
++ err = 0;
++ if (pread(global.cooked_fd, (void *) &p[0], SectorBurstVal*CD_FRAMESIZE_RAW,
++ lSector*CD_FRAMESIZE_RAW) == -1)
++ err = -1;
++#else
+ arg.address.lba = lSector;
+ arg.addr_format = CDROM_LBA;
+ arg.nframes = SectorBurstVal;
+@@ -278,6 +308,7 @@
+
+ do {
+ err = ioctl(global.cooked_fd, CDROMREADAUDIO, &arg);
++#endif
+ #endif
+ #if defined __linux__
+ arg.addr.lba = lSector;
diff --git a/sysutils/cdrtools/files/patch-cdda2wav::mycdrom.h b/sysutils/cdrtools/files/patch-cdda2wav::mycdrom.h
new file mode 100644
index 000000000000..49c7b484d701
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-cdda2wav::mycdrom.h
@@ -0,0 +1,24 @@
+--- cdda2wav/mycdrom.h Wed Sep 4 14:07:16 2002
++++ cdda2wav/mycdrom.h Sat Jan 17 18:52:08 2004
+@@ -4,6 +4,12 @@
+ #else
+ # if defined HAVE_SYS_CDIO_H
+ # include <sys/cdio.h>
++# if defined(__FreeBSD__) && __FreeBSD__ >= 2
++# include <osreldate.h>
++# if __FreeBSD_version >= 400014
++# include <sys/cdrio.h>
++# endif
++# endif
+
+ # if (defined (__sun) && defined (SVR4))
+ # if 0
+@@ -53,7 +59,7 @@
+ # endif /* if 0 */
+ # else /* not Sun SVR4 */
+ # if defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
+-# if !defined CDIOCREADAUDIO
++# if (!defined(__FreeBSD__) && !defined(CDIOCREADAUDIO)) || __FreeBSD_version < 228000
+ # undef HAVE_IOCTL_INTERFACE
+ # else
+
diff --git a/sysutils/cdrtools/files/patch-cdrecord::cdrecord.1 b/sysutils/cdrtools/files/patch-cdrecord::cdrecord.1
new file mode 100644
index 000000000000..4413a3a8604d
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-cdrecord::cdrecord.1
@@ -0,0 +1,11 @@
+--- cdrecord/cdrecord.1.orig Mon Sep 29 14:48:48 2003
++++ cdrecord/cdrecord.1 Mon Sep 29 14:49:23 2003
+@@ -1738,8 +1738,6 @@
+ .SH SEE ALSO
+ .BR cdda2wav (1),
+ .BR readcd (1),
+-.BR scg (7),
+-.BR fbk (7),
+ .BR mkisofs (8),
+ .BR rcmd (3),
+ .BR ssh (1).
diff --git a/sysutils/cdrtools/files/patch-cdrecord::cdrecord.dfl b/sysutils/cdrtools/files/patch-cdrecord::cdrecord.dfl
new file mode 100644
index 000000000000..3eebcb7bab92
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-cdrecord::cdrecord.dfl
@@ -0,0 +1,36 @@
+--- cdrecord/cdrecord.dfl.orig Mon Aug 18 19:45:45 2003
++++ cdrecord/cdrecord.dfl Mon Aug 18 19:46:32 2003
+@@ -6,7 +6,7 @@
+ #
+ # The default device, if not specified elswhere
+ #
+-CDR_DEVICE=yamaha
++#CDR_DEVICE=yamaha
+
+ #
+ # The default speed, if not specified elswhere
+@@ -21,7 +21,7 @@
+ #
+ # The default FIFO size if, not specified elswhere
+ #
+-CDR_FIFOSIZE=4m
++#CDR_FIFOSIZE=4m
+
+ #
+ # The following definitions allow abstract device names.
+@@ -33,9 +33,9 @@
+ #
+ # drive name device speed fifosize driveropts
+ #
+-teac= 1,3,0 -1 -1 ""
+-panasonic= 1,4,0 -1 -1 ""
+-plextor= 1,4,0 -1 -1 ""
+-sanyo= 1,4,0 -1 -1 burnfree
+-yamaha= 1,5,0 -1 -1 ""
+-cdrom= 0,6,0 2 1m ""
++#teac= 1,3,0 -1 -1 ""
++#panasonic= 1,4,0 -1 -1 ""
++#plextor= 1,4,0 -1 -1 ""
++#sanyo= 1,4,0 -1 -1 burnfree
++#yamaha= 1,5,0 -1 -1 ""
++#cdrom= 0,6,0 2 1m ""
diff --git a/sysutils/cdrtools/files/patch-conf::configure b/sysutils/cdrtools/files/patch-conf::configure
new file mode 100644
index 000000000000..eda23804083c
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-conf::configure
@@ -0,0 +1,10 @@
+--- conf/configure.orig Fri Sep 19 16:47:37 2003
++++ conf/configure Fri Sep 19 16:49:26 2003
+@@ -5567,6 +5567,7 @@
+ int
+ main()
+ {
++ exit(1);
+ if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0) {
+ if (errno == EINVAL || errno == ENOMEM ||
+ errno == EPERM || errno == EACCES)
diff --git a/sysutils/cdrtools/files/patch-mkisofs::mkisofs.8 b/sysutils/cdrtools/files/patch-mkisofs::mkisofs.8
new file mode 100644
index 000000000000..26ae04ad8e71
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-mkisofs::mkisofs.8
@@ -0,0 +1,20 @@
+--- mkisofs/mkisofs.8.orig Mon Sep 29 15:11:48 2003
++++ mkisofs/mkisofs.8 Mon Sep 29 15:19:01 2003
+@@ -1668,7 +1668,7 @@
+ The format of the
+ .I magic
+ file is almost identical to the
+-.BR magic (4)
++.BR magic (5)
+ file used by the Linux
+ .BR file (1)
+ command - the routines for reading and decoding the
+@@ -1707,7 +1707,7 @@
+ .TE
+ .PP
+ The format of the file is described in the
+-.BR magic (4)
++.BR magic (5)
+ man page. The only difference here is that for each entry in the magic file, the
+ .I message
+ for the initial offset
diff --git a/sysutils/cdrtools/files/patch-readcd::readcd.1 b/sysutils/cdrtools/files/patch-readcd::readcd.1
new file mode 100644
index 000000000000..f6618e3f419a
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-readcd::readcd.1
@@ -0,0 +1,13 @@
+--- readcd/readcd.1.orig Mon Sep 29 14:53:05 2003
++++ readcd/readcd.1 Mon Sep 29 15:10:06 2003
+@@ -432,9 +432,7 @@
+ .SH FILES
+ .SH SEE ALSO
+ .BR cdrecord (1),
+-.BR mkisofs (1),
+-.BR scg (7),
+-.BR fbk (7),
++.BR mkisofs (8),
+ .BR rcmd (3),
+ .BR ssh (1).
+
diff --git a/sysutils/cdrtools/files/patch-rscsi::rscsi.c b/sysutils/cdrtools/files/patch-rscsi::rscsi.c
new file mode 100644
index 000000000000..619d34c510ac
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-rscsi::rscsi.c
@@ -0,0 +1,18 @@
+--- rscsi/rscsi.c Thu Mar 6 16:26:19 2003
++++ rscsi/rscsi.c Thu Jul 31 07:51:15 2003
+@@ -143,8 +143,14 @@
+ if (debug_name == NULL && argc <= 0)
+ debug_name = "/tmp/RSCSI";
+ #endif
+- if (argc > 0)
++#ifdef NONONO
++ /*
++ * Should we allow root to shoot himself into the foot?
++ * Allowing to write arbitrary files may be a security risk.
++ */
++ if (argc > 0 && getuid() == 0)
+ debug_name = *argv;
++#endif
+
+ if (debug_name != NULL)
+ debug_file = fopen(debug_name, "w");
diff --git a/sysutils/cdrtools/files/patch-rscsi::rscsi.dfl b/sysutils/cdrtools/files/patch-rscsi::rscsi.dfl
new file mode 100644
index 000000000000..85eab6940d08
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-rscsi::rscsi.dfl
@@ -0,0 +1,29 @@
+--- rscsi/rscsi.dfl.orig Sun Aug 17 11:50:57 2003
++++ rscsi/rscsi.dfl Sun Aug 17 12:28:46 2003
+@@ -18,14 +18,13 @@
+ # Each USER= entry adds the listed user to the users who may run rscsi
+ #
+ # A typical passwd entry looks like this:
+-# rscsi:x:1999:1000:Remote SCSI:/export/home/rscsi:/opt/schily/sbin/rscsi
++# rscsi:*:99:99::0:0:Remote SCSI:/usr/local/rscsi:/opt/schily/sbin/rscsi
+ #
+-# Add entries for all valid remote users to /export/home/rscsi/.rhosts
++# Add entries for all valid remote users to /usr/local/rscsi/.rhosts
+ #
+ # USER= entries are checked with a pattern matcher. USER=* matches all users.
+ #
+ USER=rscsi
+-USER=joerg
+
+ #
+ # Each ACCESS= entry adds a target or group of targets to the list of visible
+@@ -52,6 +51,6 @@
+ # name name
+ #
+ #ACCESS=rscsi sparky -1 -1 -1 -1
+-ACCESS=rscsi sparky 0 -1 6 -1
+-ACCESS=rscsi sparky 1 -1 3 -1
+-ACCESS=rscsi sparky 1 -1 4 -1
++#ACCESS=rscsi sparky 0 -1 6 -1
++#ACCESS=rscsi sparky 1 -1 3 -1
++#ACCESS=rscsi sparky 1 -1 4 -1
diff --git a/sysutils/cdrtools/files/patch-scgcheck::scgcheck.1 b/sysutils/cdrtools/files/patch-scgcheck::scgcheck.1
new file mode 100644
index 000000000000..0120c5231a34
--- /dev/null
+++ b/sysutils/cdrtools/files/patch-scgcheck::scgcheck.1
@@ -0,0 +1,12 @@
+--- scgcheck/scgcheck.1.orig Mon Sep 29 14:56:16 2003
++++ scgcheck/scgcheck.1 Mon Sep 29 14:56:44 2003
+@@ -234,8 +234,7 @@
+ .SH SEE ALSO
+ .BR cdrecord (1),
+ .BR readcd (1),
+-.BR mkisofs (1),
+-.BR scg (7).
++.BR mkisofs (8).
+
+ .SH NOTES
+ .PP
diff --git a/sysutils/cdrtools/pkg-descr b/sysutils/cdrtools/pkg-descr
index 0db4377d8da7..ca090d58ee54 100644
--- a/sysutils/cdrtools/pkg-descr
+++ b/sysutils/cdrtools/pkg-descr
@@ -8,4 +8,8 @@ This package contains the following software:
may be used to read data CD's, to write to DVD-RAM
and to copy Solaris boot CD's
+- scgcheck (checks and validates the ABI of libscg)
+
+- rscsi (daemon providing access to local SCSI-devices over the network)
+
WWW: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
diff --git a/sysutils/cdrtools/pkg-descr.mkisofs b/sysutils/cdrtools/pkg-descr.mkisofs
index d95bc8559469..dd8933f67583 100644
--- a/sysutils/cdrtools/pkg-descr.mkisofs
+++ b/sysutils/cdrtools/pkg-descr.mkisofs
@@ -1,6 +1,21 @@
-mkisofs is effectively a pre-mastering program to generate the iso9660
-filesystem - it takes a snapshot of a given directory tree, and generates
-a binary image which will correspond to an iso9660 filesystem when written
-to a block device.
+This package contains the following software:
+
+- mkisofs (an ISO-9660 filesystem image creator)
+ It takes a snapshot of a given directory tree, and generates a binary
+ image which will correspond to an iso9660 filesystem when written to
+ a block device.
+
+- mkhybrid (an ISO-9660/HFS filesystem image creator)
+ Link to mkisofs
+
+- several diagnostic programs for ISO-9660
+
+ - devdump dump a device or file in hex
+
+ - isodump dump a device or file based on ISO-9660
+
+ - isoinfo analyze or list an ISO-9660 image
+
+ - isovfy verify an ISO-9660 image
WWW: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
diff --git a/sysutils/cdrtools/pkg-install.rscsi b/sysutils/cdrtools/pkg-install.rscsi
new file mode 100644
index 000000000000..fe91941c71ae
--- /dev/null
+++ b/sysutils/cdrtools/pkg-install.rscsi
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+PATH=/bin:/usr/sbin:/usr/bin
+
+PKG_PREFIX=${PKG_PREFIX:=/usr/local}
+
+case $2 in
+ PRE-INSTALL)
+ ;;
+
+ POST-INSTALL)
+ USER=rscsi
+ UID=99
+ GROUP=${USER}
+ GID=${UID}
+ UCOMMENT="Remote SCSI"
+ UHOME=${PKG_PREFIX}/rscsi
+ USHELL=${PKG_PREFIX}/sbin/rscsi
+
+ echo "==========================================================================="
+ echo
+
+ if ! pw groupshow "${GROUP}" >/dev/null 2>&1; then
+ if ! pw groupadd ${GROUP} -g ${GID}; then
+ echo "Adding group \"${GROUP}\" failed."
+ exit 1
+ fi
+ fi
+
+ if ! pw usershow "${USER}" >/dev/null 2>&1; then
+ if ! pw useradd ${USER} -u ${UID} -c "${UCOMMENT}" \
+ -d ${UHOME} -g ${GROUP} -s ${USHELL}; then
+ echo "Adding user \"${USER}\" failed."
+ exit 1
+ fi
+ fi
+
+ if ! [ -d ${UHOME} ] ; then
+ mkdir -p ${UHOME}
+ chown ${UID}:${GID} ${UHOME}
+ fi
+
+ if ! [ -f ${UHOME}/.rhosts ] ; then
+ cp /usr/share/skel/dot.rhosts ${UHOME}/.rhosts
+ chown ${UID}:${GID} ${UHOME}/.rhosts
+ chmod 0600 ${UHOME}/.rhosts
+ fi
+
+ echo "See ${PKG_PREFIX}/share/doc/cdrtools/README.rscsi and ${PKG_PREFIX}/etc/rscsi"
+ echo "for further information on how to configure remote access to SCSI-devices"
+ echo "via rscsi."
+
+ if ! grep '^shell' /etc/inetd.conf >/dev/null 2>&1; then
+ echo "Don't forget to add an entry for rshd(8) to /etc/inetd.conf in order to"
+ echo "be able to use the remote SCSI daemon."
+ fi
+
+ echo
+
+ ;;
+esac
diff --git a/sysutils/cdrtools/pkg-message b/sysutils/cdrtools/pkg-message
new file mode 100644
index 000000000000..2e93701dd3dc
--- /dev/null
+++ b/sysutils/cdrtools/pkg-message
@@ -0,0 +1,13 @@
+===========================================================================
+
+Note: The location of the cdrtools `defaults' files has been set to
+
+ %%PREFIX%%/etc
+
+This is the FreeBSD ports standard config file location, NOT the cdrtools
+standard location, which is /etc/default.
+
+The reason for this is that FreeBSD ports and packages should not use
+configuration files outside of %%PREFIX%%.
+
+===========================================================================
diff --git a/sysutils/cdrtools/pkg-plist b/sysutils/cdrtools/pkg-plist
index 208f38dc4336..85b9084df7e0 100644
--- a/sysutils/cdrtools/pkg-plist
+++ b/sysutils/cdrtools/pkg-plist
@@ -2,3 +2,39 @@ bin/cdda2wav
bin/cdrecord
bin/list_audio_tracks
bin/readcd
+bin/scgcheck
+%%RSCSI%%sbin/rscsi
+%%RSCSI%%@exec chmod u+s %B/%f
+@unexec if cmp -s %D/etc/cdrecord.sample %D/etc/cdrecord; then rm -f %D/etc/cdrecord; else echo "If permanently deleting this package, %D/etc/cdrecord must be removed manually."; fi
+etc/cdrecord.sample
+@exec [ -f %B/cdrecord ] || cp %B/%f %B/cdrecord
+%%RSCSI%%@unexec if cmp -s %D/etc/rscsi.sample %D/etc/rscsi; then rm -f %D/etc/rscsi; else echo "If permanently deleting this package, %D/etc/rscsi must be removed manually."; fi
+%%RSCSI%%etc/rscsi.sample
+%%RSCSI%%@exec [ -f %B/rscsi ] || cp %B/%f %B/rscsi
+%%RSCSI%%@unexec if pw usershow rscsi >/dev/null 2>&1; then echo "If permanently deleting this package, user \"rscsi\" and its homedirectory must be removed manually."; fi
+%%RSCSI%%@unexec if pw groupshow rscsi >/dev/null 2>&1; then echo "If permanently deleting this package, group \"rscsi\" must be removed manually."; fi
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/README.ATAPI
+%%PORTDOCS%%%%DOCSDIR%%/README.DiskT@2
+%%PORTDOCS%%%%DOCSDIR%%/README.FreeBSD
+%%PORTDOCS%%%%DOCSDIR%%/README.WORM
+%%PORTDOCS%%%%DOCSDIR%%/README.audio
+%%PORTDOCS%%%%DOCSDIR%%/README.cdplus
+%%PORTDOCS%%%%DOCSDIR%%/README.cdrw
+%%PORTDOCS%%%%DOCSDIR%%/README.cdtext
+%%PORTDOCS%%%%DOCSDIR%%/README.copy
+%%PORTDOCS%%%%DOCSDIR%%/README.mkisofs
+%%PORTDOCS%%%%DOCSDIR%%/README.multi
+%%PORTDOCS%%%%DOCSDIR%%/README.raw
+%%PORTDOCS%%%%DOCSDIR%%/README.rscsi
+%%PORTDOCS%%%%DOCSDIR%%/README.sony
+%%PORTDOCS%%%%DOCSDIR%%/README.verify
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/FAQ
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/Frontends
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/HOWTOUSE
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/OtherProgs
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/README
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/THANKS
+%%PORTDOCS%%%%DOCSDIR%%/cdda2wav/TODO
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/cdda2wav
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
diff --git a/sysutils/cdrtools/pkg-plist.mkisofs b/sysutils/cdrtools/pkg-plist.mkisofs
index c3fd0359d9e9..6ceb748b1bb9 100644
--- a/sysutils/cdrtools/pkg-plist.mkisofs
+++ b/sysutils/cdrtools/pkg-plist.mkisofs
@@ -1,6 +1,23 @@
bin/devdump
+bin/isodebug
bin/isodump
bin/isoinfo
bin/isovfy
bin/mkhybrid
bin/mkisofs
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/README.compression
+%%PORTDOCS%%%%DOCSDIR%%/README.eltorito
+%%PORTDOCS%%%%DOCSDIR%%/README.graft_dirs
+%%PORTDOCS%%%%DOCSDIR%%/README.hfs_boot
+%%PORTDOCS%%%%DOCSDIR%%/README.hfs_magic
+%%PORTDOCS%%%%DOCSDIR%%/README.hide
+%%PORTDOCS%%%%DOCSDIR%%/README.joliet
+%%PORTDOCS%%%%DOCSDIR%%/README.macosx
+%%PORTDOCS%%%%DOCSDIR%%/README.mkhybrid
+%%PORTDOCS%%%%DOCSDIR%%/README.prep_boot
+%%PORTDOCS%%%%DOCSDIR%%/README.rootinfo
+%%PORTDOCS%%%%DOCSDIR%%/README.session
+%%PORTDOCS%%%%DOCSDIR%%/README.sort
+%%PORTDOCS%%%%DOCSDIR%%/README.sparcboot
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
diff --git a/sysutils/mkisofs/Makefile b/sysutils/mkisofs/Makefile
index 5c7c60b0a7bb..31cc112a2b15 100644
--- a/sysutils/mkisofs/Makefile
+++ b/sysutils/mkisofs/Makefile
@@ -7,7 +7,7 @@
PORTNAME= mkisofs
PORTVERSION= 2.0.3
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= sysutils
COMMENT= Create iso9660/Rock Ridge/Joliet filesystems