Initial import of cdrtools-ossdvd, a patched version of cdrtools

with DVD writing support.
This commit is contained in:
wiz 2003-12-17 16:09:06 +00:00
parent 38ed1c39f2
commit dffc752e32
15 changed files with 445 additions and 0 deletions

View file

@ -0,0 +1,9 @@
Cdrecord allows you to burn CDs with a CD-R/CD-RW recorder. It
works as a burn engine for several applications. Cdrecord supports
CD recorders from many different vendors; all SCSI-3/mmc and
ATAPI/mmc compliant drives should also work. Supported features
include: IDE/ATAPI, parallel-port, and SCSI drives; audio CDs, data
CDs, and mixed CDs; full multi-session support, CD-RWs (rewritable),
TAO, DAO and human-readable error messages.
This version is patched to also write DVDs.

View file

@ -0,0 +1,9 @@
===========================================================================
$NetBSD: MESSAGE.SunOS,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
You will need to stop Solaris volume management before using
${PKGNAME_NOREV}:
/etc/init.d/volmgt stop
===========================================================================

View file

@ -0,0 +1,14 @@
===========================================================================
$NetBSD: MESSAGE.cdrecord.conf,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
Note: The location of the ${PKGNAME_NOREV} `defaults' file has been set to
${CDRECORD_CONF}
This is the pkgsrc standard config file location, NOT the ${PKGNAME_NOREV}
standard location, which is /etc/default/cdrecord.
The reason for this is that pkgsrc packages should not use configuration
files outside ${LOCALBASE} unless they are explicitly set by the user.
===========================================================================

View file

@ -0,0 +1,98 @@
# $NetBSD: Makefile,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
DISTNAME= cdrtools-2.01a18
PKGNAME= cdrtools-ossdvd-2.01.1.18
WRKSRC= ${WRKDIR}/cdrtools-2.01
CATEGORIES= sysutils
MASTER_SITES= ftp://ftp.berlios.de/pub/cdrecord/alpha/
PATCHFILES= cdrtools-2.01a18-ossdvd.patch.bz2
PATCH_SITES= ftp://ftp.crashrecovery.org/pub/linux/cdrtools/
PATCH_DIST_STRIP= -p1
MAINTAINER= lukem@NetBSD.org
HOMEPAGE= http://crashrecovery.org/oss-dvd.html
COMMENT= Software for creating ISO9660 images and writing CDs/CD-RWs/DVDs
CONFLICTS= mkisofs-[0-9]* cdrecord-* cdrtools-*
.include "../../mk/bsd.prefs.mk"
USE_BUILDLINK2= # defined
USE_GMAKE= # defined
TBL?= tbl
.if ${LOCALBASE} != "/opt/schily"
BUILDLINK_TRANSFORM= r:/opt/schily
BUILDLINK_TRANSFORM+= r:/opt/schily
.endif
# avoid picking up a bad ${ARCH} during the build
MAKE_ENV+= ARCH=""
MAKE_ENV+= MAKEPROG="gmake"
MAKE_ENV+= COPTX="${CFLAGS}"
MAKE_ENV+= LDOPTX="${LDFLAGS}"
# if we're using a gcc which is named gcc, we need to set CCOM=gcc
# in MAKE_ENV so the make infrastructure picks the right options.
.if !empty(CC:M*gcc*)
MAKE_ENV+= CCOM="gcc"
.endif
# allow us to override the default /etc/default/cdrecord by patching
# the documentation appropriately. Additionally, we also provide a
# MESSAGE stating the reasons we do this, as required by the license.
CDRECORD_CONF?= ${PKG_SYSCONFDIR}/cdrecord.conf
.if ${CDRECORD_CONF} != "/etc/default/cdrecord"
MESSAGE_SRC+= MESSAGE.cdrecord.conf
MESSAGE_SUBST+= PKGNAME_NOREV=${PKGNAME_NOREV}
MESSAGE_SUBST+= CDRECORD_CONF=${CDRECORD_CONF}
.endif
CDRECORD_CONF_FILES= cdrecord/defaults.c cdrecord/cdrecord.1
CDRECORD_CONF_FILES+= readcd/readcd.1
post-patch:
@cd ${WRKSRC}; for file in ${CDRECORD_CONF_FILES}; do \
${MV} ${WRKSRC}/$$file ${WRKSRC}/$${file}.old && \
${SED} -e 's|@CDRECORD_CONF@|${CDRECORD_CONF}|' \
${WRKSRC}/$${file}.old > ${WRKSRC}/$$file; \
done
do-configure:
cd ${WRKSRC}/RULES; \
for suffix in netbsd-cc.rul netbsd-gcc.rul; do \
if [ ! -f ${MACHINE}-$$suffix ]; then \
${LN} -sf i386-$$suffix ${MACHINE}-$$suffix; \
fi; \
done
post-build:
cd ${WRKSRC}; \
for file in cdda2wav/cdda2wav.1 mkisofs/mkisofs.8; do \
${TBL} $${file} > $${file}.tmp; \
${MV} -f $${file}.tmp $${file}; \
done
do-install:
cd ${WRKSRC}/cdda2wav; \
${INSTALL_PROGRAM} OBJ/*/cdda2wav ${PREFIX}/bin; \
${INSTALL_MAN} cdda2wav.1 ${PREFIX}/man/man1
cd ${WRKSRC}/cdrecord; \
${INSTALL_PROGRAM} OBJ/*/cdrecord ${PREFIX}/bin; \
${INSTALL_MAN} cdrecord.1 ${PREFIX}/man/man1
cd ${WRKSRC}/mkisofs; \
${INSTALL_PROGRAM} OBJ/*/mkisofs ${PREFIX}/bin; \
${INSTALL_MAN} mkisofs.8 ${PREFIX}/man/man8
cd ${WRKSRC}/mkisofs/diag; \
for f in devdump isodump isoinfo isovfy; do \
${INSTALL_PROGRAM} OBJ/*/$$f ${PREFIX}/bin; \
${INSTALL_MAN} isoinfo.8 ${PREFIX}/man/man8/$$f.8; \
done
cd ${WRKSRC}/readcd; \
${INSTALL_PROGRAM} OBJ/*/readcd ${PREFIX}/bin; \
${INSTALL_MAN} readcd.1 ${PREFIX}/man/man1
.include "../../mk/ossaudio.buildlink2.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -0,0 +1,17 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
bin/cdda2wav
bin/cdrecord
bin/mkisofs
bin/readcd
bin/devdump
bin/isodump
bin/isoinfo
bin/isovfy
man/man1/cdda2wav.1
man/man1/cdrecord.1
man/man1/readcd.1
man/man8/mkisofs.8
man/man8/devdump.8
man/man8/isodump.8
man/man8/isoinfo.8
man/man8/isovfy.8

View file

@ -0,0 +1,15 @@
$NetBSD: distinfo,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
SHA1 (cdrtools-2.01a18.tar.gz) = 2638f8d825ac03e45fd30aa2578dc7b83ad83849
Size (cdrtools-2.01a18.tar.gz) = 1648542 bytes
SHA1 (cdrtools-2.01a18-ossdvd.patch.bz2) = 0f052c327b13274fe9ad0585f2b78ecd5078f343
Size (cdrtools-2.01a18-ossdvd.patch.bz2) = 7611 bytes
SHA1 (patch-ac) = 0d9217924ed353b1c23bac1ffd8b2ee69eda8f47
SHA1 (patch-ah) = 34ecab01125bcac2a28e295b198edce0de8b8777
SHA1 (patch-ai) = 38f6bc8a9deee6861d5589dcf65dcd4968614457
SHA1 (patch-aj) = e606fbd4fba068b96cc784d3a0f0ee0d7cf7a84a
SHA1 (patch-ba) = 635f7584d125517309ae00919f5a7808b28ba127
SHA1 (patch-bb) = 653956259faeb46106e243e543eb17eb25d5a371
SHA1 (patch-ca) = 5dbc3d3f248781627b6d6100808c70db60e83bd4
SHA1 (patch-cb) = c7060bce4ef117e55169a39eb0850a0b57de56c2
SHA1 (patch-cc) = a14098dd14e0b58d3fed1167341a22167eea7c19

View file

@ -0,0 +1,23 @@
$NetBSD: patch-ac,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- include/btorder.h.orig Sun Jun 15 23:41:22 2003
+++ include/btorder.h
@@ -28,6 +28,9 @@
#include <sys/types.h> /* try to load isa_defs.h on Solaris */
#define _INCL_SYS_TYPES_H
#endif
+#ifdef __NetBSD__
+#include <machine/endian.h>
+#endif
#ifndef _MCONFIG_H
#include <mconfig.h> /* load bit/byte-oder from xmconfig.h*/
@@ -108,7 +111,7 @@ error Only one of _BIT_FIELDS_LTOH or _
# if defined(__ppc__) || defined(ppc) || defined(__ppc) || \
defined(__PPC) || defined(powerpc) || defined(__powerpc__)
-# if defined(__BIG_ENDIAN__)
+# if defined(__BIG_ENDIAN__) || BYTE_ORDER == BIG_ENDIAN
# define _BIT_FIELDS_HTOL
# else
# define _BIT_FIELDS_LTOH

View file

@ -0,0 +1,40 @@
$NetBSD: patch-ah,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- cdda2wav/setuid.c.orig Thu Nov 21 16:12:35 2002
+++ cdda2wav/setuid.c Sat Nov 30 18:17:51 2002
@@ -92,7 +92,7 @@
if (geteuid() == 0) return; /* nothing to do */
-#if defined _POSIX_SAVED_IDS && defined (HAVE_SETEUID)
+#if defined (HAVE_SETEUID)
if (seteuid(effective_uid)) {
perror("seteuid in needroot()");
exit(PERM_ERROR);
@@ -126,7 +126,7 @@
return;
if (geteuid() != 0) return; /* nothing to do */
-#if defined _POSIX_SAVED_IDS && defined (HAVE_SETEUID)
+#if defined (HAVE_SETEUID)
if (seteuid(real_uid)) {
perror("seteuid in dontneedroot()");
exit(PERM_ERROR);
@@ -186,7 +186,7 @@
if (getegid() == effective_gid) return; /* nothing to do */
-#if defined _POSIX_SAVED_IDS && defined (HAVE_SETEGID)
+#if defined (HAVE_SETEGID)
if (setegid(effective_gid)) {
perror("setegid in needgroup()");
exit(PERM_ERROR);
@@ -217,7 +217,7 @@
exit(INTERNAL_ERROR);
}
if (getegid() != effective_gid) return; /* nothing to do */
-#if defined _POSIX_SAVED_IDS && defined (HAVE_SETEGID)
+#if defined (HAVE_SETEGID)
if (setegid(real_gid)) {
perror("setegid in dontneedgroup()");
exit(PERM_ERROR);

View file

@ -0,0 +1,107 @@
$NetBSD: patch-ai,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- libscg/scsi-bsd.c.orig Mon Oct 21 15:57:07 2002
+++ libscg/scsi-bsd.c Sat Nov 30 18:20:19 2002
@@ -48,7 +48,7 @@
* Choose your name instead of "schily" and make clear that the version
* string is related to a modified source.
*/
-LOCAL char _scg_trans_version[] = "scsi-bsd.c-1.41"; /* The version for this transport*/
+LOCAL char _scg_trans_version[] = "scsi-bsd.c-1.41nb1"; /* The version for this transport*/
#define MAX_SCG 16 /* Max # of SCSI controllers */
#define MAX_TGT 16
@@ -108,7 +108,7 @@
* return "schily" for the SCG_AUTHOR request.
*/
case SCG_AUTHOR:
- return (_scg_auth_schily);
+ return ("frueauf");
case SCG_SCCS_ID:
return (__sccsid);
}
@@ -140,6 +140,15 @@
register int l;
register int nopen = 0;
char devname[64];
+#if defined(__NetBSD__)
+ struct scsi_addr mysaddr;
+#if defined(__i386__)
+ char slicename[] = "d"; /* i386 is special */
+#else
+ char slicename[] = "c"; /* this is what the rest uses */
+#endif
+ char *myslicename = slicename;
+#endif
if (busno >= MAX_SCG || tgt >= MAX_TGT || tlun >= MAX_LUN) {
errno = EINVAL;
@@ -166,6 +175,60 @@
if ((device != NULL && *device != '\0') || (busno == -2 && tgt == -2))
goto openbydev;
+
+/*
+ * I know of no method in NetBSD to probe the scsibus and get the mapping
+ * busnumber,target,lun --> devicename.
+ *
+ * Because of this implement a true bruteforce hack to find
+ * out what cdroms there are.
+ *
+ * Note that this method only finds cd0-cd7. Anything higher
+ * than this needs additional tweaks.
+ *
+ * Feel free to implement this cleanly if you have better knowledge.
+ * Until then this helps to get -scanbus und thus xcdroast working :-)
+ *
+ */
+#if defined(__NetBSD__)
+ if (busno >= 0 && tgt >= 0 && tlun >= 0) {
+ for (l=0; l < MAX_LUN ; l++) {
+ sprintf(devname, "/dev/rcd%d%s", l, myslicename);
+ f = open(devname, O_RDWR);
+ if (f >= 0) {
+ if (ioctl(f, SCIOCIDENTIFY, &mysaddr) < 0) {
+ close(f);
+ errno = EINVAL;
+ return (0);
+ }
+ if (busno == SADDR_BUS(mysaddr) && tgt == SADDR_TARGET(mysaddr) && tlun == SADDR_LUN(mysaddr)) {
+ scglocal(scgp)->scgfiles[busno][tgt][tlun] = f;
+ return(1);
+ }
+ } else goto openbydev;
+ }
+ } else for (l=0; l < MAX_LUN ; l++) {
+ sprintf(devname, "/dev/rcd%d%s", l, myslicename);
+ f = open(devname, O_RDWR);
+ if (f >= 0) {
+ if (ioctl(f, SCIOCIDENTIFY, &mysaddr) < 0) {
+ close(f);
+ errno = EINVAL;
+ return (0);
+ }
+ scg_scsibus(scgp) = busno = SADDR_BUS(mysaddr);
+ scg_target(scgp) = tgt = SADDR_TARGET(mysaddr);
+ if ((tlun >= 0) && (tlun != SADDR_LUN(mysaddr))) {
+ close(f);
+ errno = EINVAL;
+ return (0);
+ }
+ scg_lun(scgp) = tlun = SADDR_LUN(mysaddr);
+ if (scg_setup(scgp, f, busno, tgt, tlun))
+ nopen++;
+ }
+ }
+#else /* not __NetBSD__ */
if (busno >= 0 && tgt >= 0 && tlun >= 0) {
js_snprintf(devname, sizeof(devname),
@@ -202,6 +265,7 @@
}
}
}
+#endif /* end of not __NetBSD__ */
/*
* Could not open /dev/su-* or got dev=devname:b,l,l / dev=devname:@,l
* We do the apropriate tests and try our best.

View file

@ -0,0 +1,25 @@
$NetBSD: patch-aj,v 1.1.1.1 2003/12/17 16:09:08 wiz Exp $
--- cdrecord/scsi_cdr.c.orig Fri Nov 28 20:29:50 2003
+++ cdrecord/scsi_cdr.c
@@ -315,6 +315,12 @@ EXPORT int
request_sense(scgp)
SCSI *scgp;
{
+
+#ifdef __NetBSD__
+ /* request sense already done by kernel */
+ scg_prsense((Uchar *)scgp->scmd->u_sense.cmd_sense,
+ scgp->scmd->sense_count);
+#else
char sensebuf[CCS_SENSE_LEN];
register struct scg_cmd *scmd = scgp->scmd;
@@ -334,6 +340,7 @@ request_sense(scgp)
if (scg_cmd(scgp) < 0)
return (-1);
scg_prsense((Uchar *)sensebuf, CCS_SENSE_LEN - scg_getresid(scgp));
+#endif
return (0);
}

View file

@ -0,0 +1,19 @@
$NetBSD: patch-ba,v 1.1.1.1 2003/12/17 16:09:08 wiz Exp $
--- readcd/readcd.c.orig Fri Jul 18 09:04:20 2003
+++ readcd/readcd.c
@@ -385,11 +385,11 @@ main(ac, av)
/*
* We don't need root privilleges anymore.
*/
-#ifdef HAVE_SETREUID
- if (setreuid(-1, getuid()) < 0)
-#else
#ifdef HAVE_SETEUID
if (seteuid(getuid()) < 0)
+#else
+#ifdef HAVE_SETREUID
+ if (setreuid(-1, getuid()) < 0)
#else
if (setuid(getuid()) < 0)
#endif

View file

@ -0,0 +1,19 @@
$NetBSD: patch-bb,v 1.1.1.1 2003/12/17 16:09:08 wiz Exp $
--- mkisofs/mkisofs.c.orig Sun Jul 13 14:42:16 2003
+++ mkisofs/mkisofs.c
@@ -2279,11 +2279,11 @@ parse_input_files:
}
}
/* We don't need root privilleges anymore. */
-#ifdef HAVE_SETREUID
- if (setreuid(-1, getuid()) < 0)
-#else
#ifdef HAVE_SETEUID
if (seteuid(getuid()) < 0)
+#else
+#ifdef HAVE_SETREUID
+ if (setreuid(-1, getuid()) < 0)
#else
if (setuid(getuid()) < 0)
#endif

View file

@ -0,0 +1,13 @@
$NetBSD: patch-ca,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- cdrecord/defaults.c.orig Thu Aug 15 03:52:00 2002
+++ cdrecord/defaults.c
@@ -53,7 +53,7 @@ open_cdrdefaults()
* don't contribute work and don't give support, they are causing extra
* work for me and this way slow down the cdrecord development.
*/
- return (defltopen("/etc/default/cdrecord"));
+ return (defltopen("@CDRECORD_CONF@"));
}
EXPORT void

View file

@ -0,0 +1,24 @@
$NetBSD: patch-cb,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- cdrecord/cdrecord.1.orig Sun Jul 20 23:06:32 2003
+++ cdrecord/cdrecord.1
@@ -1684,8 +1684,8 @@ login shell.
.SH FILES
.TP
-/etc/default/cdrecord
-Default values can be set for the following options in /etc/default/cdrecord.
+@CDRECORD_CONF@
+Default values can be set for the following options in @CDRECORD_CONF@.
For example:
.SM CDR_FIFOSIZE=8m
or
@@ -1694,7 +1694,7 @@ or
.TP
CDR_DEVICE
This may either hold a device identifier that is suitable to the open
-call of the SCSI transport library or a label in the file /etc/default/cdrecord
+call of the SCSI transport library or a label in the file @CDRECORD_CONF@
that allows to identify a specific drive on the system.
.TP
CDR_SPEED

View file

@ -0,0 +1,13 @@
$NetBSD: patch-cc,v 1.1.1.1 2003/12/17 16:09:07 wiz Exp $
--- readcd/readcd.1.orig Wed Dec 25 02:28:41 2002
+++ readcd/readcd.1
@@ -186,7 +186,7 @@ If the argument to the
.B dev=
option does not contain the characters ',', '/', '@' or ':',
it is interpreted as an label name that may be found in the file
-/etc/default/cdrecord (see FILES section).
+@CDRECORD_CONF@ (see FILES section).
.TP
.BI timeout= #
Set the default SCSI command timeout value to