diff options
author | Samuli Suominen <drac@gentoo.org> | 2008-06-16 18:34:13 +0000 |
---|---|---|
committer | Samuli Suominen <drac@gentoo.org> | 2008-06-16 18:34:13 +0000 |
commit | fcd458fe763d7e9cd5d1b974a4f13cd6414733ce (patch) | |
tree | df6013024e10132731e0bb2900e6fce11cff41d7 /app-cdr/cdrtools | |
parent | Marking Mail-DKIM-0.31 ~ppc64 for bug 219448 (diff) | |
download | gentoo-2-fcd458fe763d7e9cd5d1b974a4f13cd6414733ce.tar.gz gentoo-2-fcd458fe763d7e9cd5d1b974a4f13cd6414733ce.tar.bz2 gentoo-2-fcd458fe763d7e9cd5d1b974a4f13cd6414733ce.zip |
old
(Portage version: 2.1.5.5)
Diffstat (limited to 'app-cdr/cdrtools')
-rw-r--r-- | app-cdr/cdrtools/cdrtools-2.01.01_alpha36-r1.ebuild | 126 | ||||
-rw-r--r-- | app-cdr/cdrtools/cdrtools-2.01.01_alpha37.ebuild | 126 | ||||
-rw-r--r-- | app-cdr/cdrtools/cdrtools-2.01.01_alpha38.ebuild | 126 | ||||
-rw-r--r-- | app-cdr/cdrtools/cdrtools-2.01.01_alpha39.ebuild | 126 | ||||
-rw-r--r-- | app-cdr/cdrtools/files/cdrtools-2.01-scsi-remote.patch | 26 | ||||
-rw-r--r-- | app-cdr/cdrtools/files/cdrtools-2.01.01a01-scanbus.patch | 23 | ||||
-rw-r--r-- | app-cdr/cdrtools/files/cdrtools-2.01.01a18-rezero.patch | 12 | ||||
-rw-r--r-- | app-cdr/cdrtools/files/mkisofs-iconv-11.patch | 602 | ||||
-rw-r--r-- | app-cdr/cdrtools/files/mkisofs-iconv-25.patch | 624 |
9 files changed, 0 insertions, 1791 deletions
diff --git a/app-cdr/cdrtools/cdrtools-2.01.01_alpha36-r1.ebuild b/app-cdr/cdrtools/cdrtools-2.01.01_alpha36-r1.ebuild deleted file mode 100644 index 624b6fab836f..000000000000 --- a/app-cdr/cdrtools/cdrtools-2.01.01_alpha36-r1.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-cdr/cdrtools/cdrtools-2.01.01_alpha36-r1.ebuild,v 1.3 2008/01/25 21:05:40 grobian Exp $ - -inherit eutils toolchain-funcs flag-o-matic - -DESCRIPTION="A set of tools for CD/DVD reading and recording, including cdrecord" -HOMEPAGE="http://cdrecord.berlios.de/" -SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/${P/_alpha/a}.tar.bz2" - -LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="unicode" - -DEPEND="virtual/libc - sys-apps/acl - !app-cdr/dvdrtools - !app-cdr/cdrkit" - -PROVIDE="virtual/cdrtools" - -S="${WORKDIR}/${PN}-2.01.01" - -src_unpack() { - unpack ${A} - cd "${S}" - - epatch "${FILESDIR}"/${PN}-2.01.01a03-warnings.patch - epatch "${FILESDIR}"/${PN}-2.01.01_alpha34-asneeded.patch - - cd "${S}"/DEFAULTS - local MYARCH="linux" - - sed -i "s:/opt/schily:/usr:g" Defaults.${MYARCH} - sed -i "s:/usr/src/linux/include::g" Defaults.${MYARCH} - # For dynamic linking: - sed -i "s:static:dynamic:" Defaults.${MYARCH} - - cd "${S}"/librscg - sed -i "s:/opt/schily:/usr:g" scsi-remote.c - - # lame symlinks that all point to the same thing - cd "${S}"/RULES - local t - for t in ppc64 sh4 s390x ; do - ln -s i586-linux-cc.rul ${t}-linux-cc.rul || die - ln -s i586-linux-gcc.rul ${t}-linux-gcc.rul || die - done -} - -src_compile() { - if use unicode; then - local flags="$(test-flags -finput-charset=ISO-8859-1 -fexec-charset=UTF-8)" - if [[ -n ${flags} ]]; then - append-flags ${flags} - else - ewarn "Your compiler does not support the options required to build" - ewarn "cdrtools with unicode in USE. unicode flag will be ignored." - fi - fi - emake CC="$(tc-getCC) -D__attribute_const__=const" COPTX="${CFLAGS}" CPPOPTX="${CPPFLAGS}" LDOPTX="${LDFLAGS}" || die -} - -src_install() { - dobin cdda2wav/OBJ/*-*-cc/cdda2wav || die "cdda2wav" - dobin cdrecord/OBJ/*-*-cc/cdrecord || die "cdrecord" - dobin mkisofs/OBJ/*-*-cc/mkisofs || die "mkisofs" - dobin readcd/OBJ/*-*-cc/readcd || die "readcd" - dosbin rscsi/OBJ/*-*-cc/rscsi || die "rscsi" - - insinto /usr/include - doins incs/*-*-cc/align.h incs/*-*-cc/avoffset.h incs/*-*-cc/xconfig.h || die "include" - - cd mkisofs/diag/OBJ/*-*-cc - dobin devdump isodump isoinfo isovfy || die "dobin" - - cd "${S}" - insinto /etc/default - doins rscsi/rscsi.dfl - doins cdrecord/cdrecord.dfl - - cd "${S}"/libs/*-*-cc - dolib.a *.a || die "dolib failed" - - cd "${S}"/libs/*-*-cc/pic - dolib.so * || die "dolib.so failed" - - cd "${S}" - insinto /usr/include/scsilib - doins include/schily/*.h - insinto /usr/include/scsilib/scg - doins include/scg/*.h - - cd "${S}" - dodoc ABOUT Changelog README README.linux-shm START READMEs/README.linux - doman */*.1 - doman */*.8 - - cd "${S}"/cdrecord - docinto cdrecord - dodoc README* - - cd "${S}"/mkisofs - docinto mkisofs - dodoc README* - - cd "${S}"/cdda2wav - docinto cdda2wav - dodoc FAQ Frontends HOWTOUSE README TODO - - cd "${S}"/libparanoia - docinto libparanoia - dodoc README* - - cd "${S}"/doc - docinto print - dodoc *.ps -} - -pkg_postinst() { - echo - einfo "The command line option 'dev=/dev/hdX' (X is the name of your drive)" - einfo "should be used for IDE CD writers. And make sure that the permissions" - einfo "on this device are set properly and your user is in the correct group." -} diff --git a/app-cdr/cdrtools/cdrtools-2.01.01_alpha37.ebuild b/app-cdr/cdrtools/cdrtools-2.01.01_alpha37.ebuild deleted file mode 100644 index ae7a7d10eb09..000000000000 --- a/app-cdr/cdrtools/cdrtools-2.01.01_alpha37.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-cdr/cdrtools/cdrtools-2.01.01_alpha37.ebuild,v 1.1 2008/01/27 17:14:57 pylon Exp $ - -inherit eutils toolchain-funcs flag-o-matic - -DESCRIPTION="A set of tools for CD/DVD reading and recording, including cdrecord" -HOMEPAGE="http://cdrecord.berlios.de/" -SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/${P/_alpha/a}.tar.bz2" - -LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="unicode" - -DEPEND="virtual/libc - sys-apps/acl - !app-cdr/dvdrtools - !app-cdr/cdrkit" - -PROVIDE="virtual/cdrtools" - -S="${WORKDIR}/${PN}-2.01.01" - -src_unpack() { - unpack ${A} - cd "${S}" - - epatch "${FILESDIR}"/${PN}-2.01.01a03-warnings.patch - epatch "${FILESDIR}"/${PN}-2.01.01_alpha34-asneeded.patch - - cd "${S}"/DEFAULTS - local MYARCH="linux" - - sed -i "s:/opt/schily:/usr:g" Defaults.${MYARCH} - sed -i "s:/usr/src/linux/include::g" Defaults.${MYARCH} - # For dynamic linking: - sed -i "s:static:dynamic:" Defaults.${MYARCH} - - cd "${S}"/librscg - sed -i "s:/opt/schily:/usr:g" scsi-remote.c - - # lame symlinks that all point to the same thing - cd "${S}"/RULES - local t - for t in ppc64 sh4 s390x ; do - ln -s i586-linux-cc.rul ${t}-linux-cc.rul || die - ln -s i586-linux-gcc.rul ${t}-linux-gcc.rul || die - done -} - -src_compile() { - if use unicode; then - local flags="$(test-flags -finput-charset=ISO-8859-1 -fexec-charset=UTF-8)" - if [[ -n ${flags} ]]; then - append-flags ${flags} - else - ewarn "Your compiler does not support the options required to build" - ewarn "cdrtools with unicode in USE. unicode flag will be ignored." - fi - fi - emake CC="$(tc-getCC) -D__attribute_const__=const" COPTX="${CFLAGS}" CPPOPTX="${CPPFLAGS}" LDOPTX="${LDFLAGS}" || die -} - -src_install() { - dobin cdda2wav/OBJ/*-*-cc/cdda2wav || die "cdda2wav" - dobin cdrecord/OBJ/*-*-cc/cdrecord || die "cdrecord" - dobin mkisofs/OBJ/*-*-cc/mkisofs || die "mkisofs" - dobin readcd/OBJ/*-*-cc/readcd || die "readcd" - dosbin rscsi/OBJ/*-*-cc/rscsi || die "rscsi" - - insinto /usr/include - doins incs/*-*-cc/align.h incs/*-*-cc/avoffset.h incs/*-*-cc/xconfig.h || die "include" - - cd mkisofs/diag/OBJ/*-*-cc - dobin devdump isodump isoinfo isovfy || die "dobin" - - cd "${S}" - insinto /etc/default - doins rscsi/rscsi.dfl - doins cdrecord/cdrecord.dfl - - cd "${S}"/libs/*-*-cc - dolib.a *.a || die "dolib failed" - - cd "${S}"/libs/*-*-cc/pic - dolib.so * || die "dolib.so failed" - - cd "${S}" - insinto /usr/include/scsilib - doins include/schily/*.h - insinto /usr/include/scsilib/scg - doins include/scg/*.h - - cd "${S}" - dodoc ABOUT Changelog README README.linux-shm START READMEs/README.linux - doman */*.1 - doman */*.8 - - cd "${S}"/cdrecord - docinto cdrecord - dodoc README* - - cd "${S}"/mkisofs - docinto mkisofs - dodoc README* - - cd "${S}"/cdda2wav - docinto cdda2wav - dodoc FAQ Frontends HOWTOUSE README TODO - - cd "${S}"/libparanoia - docinto libparanoia - dodoc README* - - cd "${S}"/doc - docinto print - dodoc *.ps -} - -pkg_postinst() { - echo - einfo "The command line option 'dev=/dev/hdX' (X is the name of your drive)" - einfo "should be used for IDE CD writers. And make sure that the permissions" - einfo "on this device are set properly and your user is in the correct group." -} diff --git a/app-cdr/cdrtools/cdrtools-2.01.01_alpha38.ebuild b/app-cdr/cdrtools/cdrtools-2.01.01_alpha38.ebuild deleted file mode 100644 index 84edb033ee21..000000000000 --- a/app-cdr/cdrtools/cdrtools-2.01.01_alpha38.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-cdr/cdrtools/cdrtools-2.01.01_alpha38.ebuild,v 1.1 2008/04/18 14:36:53 beandog Exp $ - -inherit eutils toolchain-funcs flag-o-matic - -DESCRIPTION="A set of tools for CD/DVD reading and recording, including cdrecord" -HOMEPAGE="http://cdrecord.berlios.de/" -SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/${P/_alpha/a}.tar.bz2" - -LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="unicode" - -DEPEND="virtual/libc - sys-apps/acl - !app-cdr/dvdrtools - !app-cdr/cdrkit" - -PROVIDE="virtual/cdrtools" - -S="${WORKDIR}/${PN}-2.01.01" - -src_unpack() { - unpack ${A} - cd "${S}" - - epatch "${FILESDIR}"/${PN}-2.01.01a03-warnings.patch - epatch "${FILESDIR}"/${PN}-2.01.01_alpha34-asneeded.patch - - cd "${S}"/DEFAULTS - local MYARCH="linux" - - sed -i "s:/opt/schily:/usr:g" Defaults.${MYARCH} - sed -i "s:/usr/src/linux/include::g" Defaults.${MYARCH} - # For dynamic linking: - sed -i "s:static:dynamic:" Defaults.${MYARCH} - - cd "${S}"/librscg - sed -i "s:/opt/schily:/usr:g" scsi-remote.c - - # lame symlinks that all point to the same thing - cd "${S}"/RULES - local t - for t in ppc64 sh4 s390x ; do - ln -s i586-linux-cc.rul ${t}-linux-cc.rul || die - ln -s i586-linux-gcc.rul ${t}-linux-gcc.rul || die - done -} - -src_compile() { - if use unicode; then - local flags="$(test-flags -finput-charset=ISO-8859-1 -fexec-charset=UTF-8)" - if [[ -n ${flags} ]]; then - append-flags ${flags} - else - ewarn "Your compiler does not support the options required to build" - ewarn "cdrtools with unicode in USE. unicode flag will be ignored." - fi - fi - emake CC="$(tc-getCC) -D__attribute_const__=const" COPTX="${CFLAGS}" CPPOPTX="${CPPFLAGS}" LDOPTX="${LDFLAGS}" || die -} - -src_install() { - dobin cdda2wav/OBJ/*-*-cc/cdda2wav || die "cdda2wav" - dobin cdrecord/OBJ/*-*-cc/cdrecord || die "cdrecord" - dobin mkisofs/OBJ/*-*-cc/mkisofs || die "mkisofs" - dobin readcd/OBJ/*-*-cc/readcd || die "readcd" - dosbin rscsi/OBJ/*-*-cc/rscsi || die "rscsi" - - insinto /usr/include - doins incs/*-*-cc/align.h incs/*-*-cc/avoffset.h incs/*-*-cc/xconfig.h || die "include" - - cd mkisofs/diag/OBJ/*-*-cc - dobin devdump isodump isoinfo isovfy || die "dobin" - - cd "${S}" - insinto /etc/default - doins rscsi/rscsi.dfl - doins cdrecord/cdrecord.dfl - - cd "${S}"/libs/*-*-cc - dolib.a *.a || die "dolib failed" - - cd "${S}"/libs/*-*-cc/pic - dolib.so * || die "dolib.so failed" - - cd "${S}" - insinto /usr/include/scsilib - doins include/schily/*.h - insinto /usr/include/scsilib/scg - doins include/scg/*.h - - cd "${S}" - dodoc ABOUT Changelog README README.linux-shm START READMEs/README.linux - doman */*.1 - doman */*.8 - - cd "${S}"/cdrecord - docinto cdrecord - dodoc README* - - cd "${S}"/mkisofs - docinto mkisofs - dodoc README* - - cd "${S}"/cdda2wav - docinto cdda2wav - dodoc FAQ Frontends HOWTOUSE README TODO - - cd "${S}"/libparanoia - docinto libparanoia - dodoc README* - - cd "${S}"/doc - docinto print - dodoc *.ps -} - -pkg_postinst() { - echo - einfo "The command line option 'dev=/dev/hdX' (X is the name of your drive)" - einfo "should be used for IDE CD writers. And make sure that the permissions" - einfo "on this device are set properly and your user is in the correct group." -} diff --git a/app-cdr/cdrtools/cdrtools-2.01.01_alpha39.ebuild b/app-cdr/cdrtools/cdrtools-2.01.01_alpha39.ebuild deleted file mode 100644 index 2eeabb6c7b52..000000000000 --- a/app-cdr/cdrtools/cdrtools-2.01.01_alpha39.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-cdr/cdrtools/cdrtools-2.01.01_alpha39.ebuild,v 1.1 2008/05/16 02:32:06 beandog Exp $ - -inherit eutils toolchain-funcs flag-o-matic - -DESCRIPTION="A set of tools for CD/DVD reading and recording, including cdrecord" -HOMEPAGE="http://cdrecord.berlios.de/" -SRC_URI="ftp://ftp.berlios.de/pub/cdrecord/alpha/${P/_alpha/a}.tar.bz2" - -LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="unicode" - -DEPEND="virtual/libc - sys-apps/acl - !app-cdr/dvdrtools - !app-cdr/cdrkit" - -PROVIDE="virtual/cdrtools" - -S="${WORKDIR}/${PN}-2.01.01" - -src_unpack() { - unpack ${A} - cd "${S}" - - epatch "${FILESDIR}"/${PN}-2.01.01a03-warnings.patch - epatch "${FILESDIR}"/${PN}-2.01.01_alpha34-asneeded.patch - - cd "${S}"/DEFAULTS - local MYARCH="linux" - - sed -i "s:/opt/schily:/usr:g" Defaults.${MYARCH} - sed -i "s:/usr/src/linux/include::g" Defaults.${MYARCH} - # For dynamic linking: - sed -i "s:static:dynamic:" Defaults.${MYARCH} - - cd "${S}"/librscg - sed -i "s:/opt/schily:/usr:g" scsi-remote.c - - # lame symlinks that all point to the same thing - cd "${S}"/RULES - local t - for t in ppc64 sh4 s390x ; do - ln -s i586-linux-cc.rul ${t}-linux-cc.rul || die - ln -s i586-linux-gcc.rul ${t}-linux-gcc.rul || die - done -} - -src_compile() { - if use unicode; then - local flags="$(test-flags -finput-charset=ISO-8859-1 -fexec-charset=UTF-8)" - if [[ -n ${flags} ]]; then - append-flags ${flags} - else - ewarn "Your compiler does not support the options required to build" - ewarn "cdrtools with unicode in USE. unicode flag will be ignored." - fi - fi - emake CC="$(tc-getCC) -D__attribute_const__=const" COPTX="${CFLAGS}" CPPOPTX="${CPPFLAGS}" LDOPTX="${LDFLAGS}" || die -} - -src_install() { - dobin cdda2wav/OBJ/*-*-cc/cdda2wav || die "cdda2wav" - dobin cdrecord/OBJ/*-*-cc/cdrecord || die "cdrecord" - dobin mkisofs/OBJ/*-*-cc/mkisofs || die "mkisofs" - dobin readcd/OBJ/*-*-cc/readcd || die "readcd" - dosbin rscsi/OBJ/*-*-cc/rscsi || die "rscsi" - - insinto /usr/include - doins incs/*-*-cc/align.h incs/*-*-cc/avoffset.h incs/*-*-cc/xconfig.h || die "include" - - cd mkisofs/diag/OBJ/*-*-cc - dobin devdump isodump isoinfo isovfy || die "dobin" - - cd "${S}" - insinto /etc/default - doins rscsi/rscsi.dfl - doins cdrecord/cdrecord.dfl - - cd "${S}"/libs/*-*-cc - dolib.a *.a || die "dolib failed" - - cd "${S}"/libs/*-*-cc/pic - dolib.so * || die "dolib.so failed" - - cd "${S}" - insinto /usr/include/scsilib - doins include/schily/*.h - insinto /usr/include/scsilib/scg - doins include/scg/*.h - - cd "${S}" - dodoc ABOUT Changelog README README.linux-shm START READMEs/README.linux - doman */*.1 - doman */*.8 - - cd "${S}"/cdrecord - docinto cdrecord - dodoc README* - - cd "${S}"/mkisofs - docinto mkisofs - dodoc README* - - cd "${S}"/cdda2wav - docinto cdda2wav - dodoc FAQ Frontends HOWTOUSE README TODO - - cd "${S}"/libparanoia - docinto libparanoia - dodoc README* - - cd "${S}"/doc - docinto print - dodoc *.ps -} - -pkg_postinst() { - echo - einfo "The command line option 'dev=/dev/hdX' (X is the name of your drive)" - einfo "should be used for IDE CD writers. And make sure that the permissions" - einfo "on this device are set properly and your user is in the correct group." -} diff --git a/app-cdr/cdrtools/files/cdrtools-2.01-scsi-remote.patch b/app-cdr/cdrtools/files/cdrtools-2.01-scsi-remote.patch deleted file mode 100644 index 556c5120bb2f..000000000000 --- a/app-cdr/cdrtools/files/cdrtools-2.01-scsi-remote.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- cdrecord-2.01/librscg/scsi-remote.c.org 2004-08-30 16:09:33.000000000 -0600 -+++ cdrecord-2.01/librscg/scsi-remote.c 2004-08-30 16:11:06.000000000 -0600 -@@ -1071,9 +1071,9 @@ - /* - * Become 'locuser' to tell the rsh program the local user id. - */ -- if (getuid() != pw->pw_uid && -- setuid(pw->pw_uid) == -1) { -- errmsg("setuid(%lld) failed.\n", -+ if ((pw->pw_uid) != geteuid() && -+ seteuid(pw->pw_uid) == -1) { -+ errmsg("seteuid(%lld) failed.\n", - (Llong)pw->pw_uid); - _exit(EX_BAD); - /* NOTREACHED */ ---- cdrtools-2.01/rscsi/rscsi.dfl.org 2005-05-07 20:19:15.930567520 +0200 -+++ cdrtools-2.01/rscsi/rscsi.dfl 2005-05-07 20:19:21.072785784 +0200 -@@ -11,6 +11,8 @@ - # The file where debug info should go to. - # If you don't like debugging (e.g. for speed) comment out - # the this line. -+# Security note: Set this to a safe place to write output, such as your home -+# directory - # - #DEBUG=/tmp/RSCSI - diff --git a/app-cdr/cdrtools/files/cdrtools-2.01.01a01-scanbus.patch b/app-cdr/cdrtools/files/cdrtools-2.01.01a01-scanbus.patch deleted file mode 100644 index b91dd0a09489..000000000000 --- a/app-cdr/cdrtools/files/cdrtools-2.01.01a01-scanbus.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- cdrtools-2.01.01/libscg/scsi-linux-ata.c.scanbus 2005-01-19 21:13:34.000000000 +0100 -+++ cdrtools-2.01.01/libscg/scsi-linux-ata.c 2005-01-19 21:32:59.634364995 +0100 -@@ -384,7 +384,8 @@ - "try open(%s) return %i, errno %i, cancel\n", - device, f, errno); - } -- return (-2); -+ /* return (-2); */ -+ break; - } else if (errno == ENOENT || errno == ENODEV) { - break; - } ---- cdrtools-2.01.01/libscg/scsi-linux-sg.c.scanbus 2005-01-19 21:34:38.264068893 +0100 -+++ cdrtools-2.01.01/libscg/scsi-linux-sg.c 2005-01-19 21:34:54.386932733 +0100 -@@ -428,7 +428,7 @@ - if (scgp->errstr) - js_snprintf(scgp->errstr, SCSI_ERRSTR_SIZE, - "Cannot open '%s'", devname); -- return (0); -+ //return (0); - } - } else { - int iparm; diff --git a/app-cdr/cdrtools/files/cdrtools-2.01.01a18-rezero.patch b/app-cdr/cdrtools/files/cdrtools-2.01.01a18-rezero.patch deleted file mode 100644 index 9dcbb17aedcd..000000000000 --- a/app-cdr/cdrtools/files/cdrtools-2.01.01a18-rezero.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- cdrtools-2.01.01/cdrecord/cdrecord.c 2006-10-28 11:11:33.000000000 +0200 -+++ cdrtools-2.01.01/cdrecord/cdrecord.c.rezero 2006-10-28 11:10:43.000000000 +0200 -@@ -4042,7 +4042,8 @@ - scsi_start_stop_unit(scgp, 1, 0, immed); - wait_unit_ready(scgp, 120); - scgp->silent++; -- rezero_unit(scgp); /* Is this needed? Not supported by some drives */ -+ /* kernel >= 2.6.12 does not like that as user -+ rezero_unit(scgp); Is this needed? Not supported by some drives */ - scgp->silent--; - test_unit_ready(scgp); - scsi_start_stop_unit(scgp, 1, 0, immed); diff --git a/app-cdr/cdrtools/files/mkisofs-iconv-11.patch b/app-cdr/cdrtools/files/mkisofs-iconv-11.patch deleted file mode 100644 index bef3f7d849fe..000000000000 --- a/app-cdr/cdrtools/files/mkisofs-iconv-11.patch +++ /dev/null @@ -1,602 +0,0 @@ -diff -uNr cdrtools-2.01.01.orig/include/unls.h cdrtools-2.01.01/include/unls.h ---- cdrtools-2.01.01.orig/include/unls.h 2005-04-21 19:12:27.000000000 +0900 -+++ cdrtools-2.01.01/include/unls.h 2006-07-22 10:36:29.655598750 +0900 -@@ -26,6 +26,10 @@ - #include <prototyp.h> - #endif - -+#ifdef USE_ICONV -+#include <iconv.h> -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -40,6 +44,9 @@ - unsigned char **unls_uni2cs; /* Unicode -> Charset */ - struct unls_unicode *unls_cs2uni; /* Charset -> Unicode */ - struct unls_table *unls_next; /* Next table */ -+#ifdef USE_ICONV -+ iconv_t iconv_d; -+#endif - }; - - extern int init_unls __PR((void)); -@@ -51,6 +58,9 @@ - extern void unload_unls __PR((struct unls_table *)); - extern struct unls_table *load_unls_default __PR((void)); - extern int init_unls_file __PR((char * name)); -+#ifdef USE_ICONV -+extern int init_unls_iconv __PR((char * name)); -+#endif - - #ifdef __cplusplus - } -diff -uNr cdrtools-2.01.01.orig/libunls/Targets cdrtools-2.01.01/libunls/Targets ---- cdrtools-2.01.01.orig/libunls/Targets 2002-12-03 09:34:27.000000000 +0900 -+++ cdrtools-2.01.01/libunls/Targets 2006-07-22 10:36:29.655598750 +0900 -@@ -39,4 +39,5 @@ - nls_cp10029.c \ - nls_cp10079.c \ - nls_cp10081.c \ -- nls_file.c -+ nls_file.c \ -+ nls_iconv.c -diff -uNr cdrtools-2.01.01.orig/libunls/libunls.mk cdrtools-2.01.01/libunls/libunls.mk ---- cdrtools-2.01.01.orig/libunls/libunls.mk 2000-03-25 21:51:56.000000000 +0900 -+++ cdrtools-2.01.01/libunls/libunls.mk 2006-07-22 10:36:29.655598750 +0900 -@@ -8,6 +8,7 @@ - INSDIR= lib - TARGETLIB= unls - #CPPOPTS += -Istdio -+CPPOPTS += -DUSE_ICONV - include Targets - LIBS= - -diff -uNr cdrtools-2.01.01.orig/libunls/nls.h cdrtools-2.01.01/libunls/nls.h ---- cdrtools-2.01.01.orig/libunls/nls.h 2005-05-02 05:55:50.000000000 +0900 -+++ cdrtools-2.01.01/libunls/nls.h 2006-07-22 10:36:29.655598750 +0900 -@@ -110,5 +110,8 @@ - extern int init_unls_cp10079 __PR((void)); - extern int init_unls_cp10081 __PR((void)); - extern int init_unls_file __PR((char * name)); -+#ifdef USE_ICONV -+extern int init_unls_iconv __PR((char * name)); -+#endif - - #endif /* _NLS_H */ -diff -uNr cdrtools-2.01.01.orig/libunls/nls_iconv.c cdrtools-2.01.01/libunls/nls_iconv.c ---- cdrtools-2.01.01.orig/libunls/nls_iconv.c 1970-01-01 09:00:00.000000000 +0900 -+++ cdrtools-2.01.01/libunls/nls_iconv.c 2006-07-22 10:36:29.655598750 +0900 -@@ -0,0 +1,79 @@ -+/* @(#)nls_iconv.c 1.0 02/04/20 2002 J. Schilling */ -+#ifndef lint -+static char sccsid[] = -+ "@(#)nls_iconv.c 1.0 02/01/20 2002 J. Schilling"; -+#endif -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+/* -+ * Modifications to make the code portable Copyright (c) 2000 J. Schilling -+ * -+ * nls_iconv: create a pseudo-charset table to use iconv() provided by C -+ * library or libiconv by Bruno Haible -+ * The Unicode to charset table has only exact mappings. -+ * -+ * -+ * Jungshik Shin (jshin@mailaps.org) 04-Feb-2002 -+ */ -+ -+#ifdef USE_ICONV -+#include <mconfig.h> -+#include <stdio.h> -+#include <stdxlib.h> -+#include <strdefs.h> -+#include "nls.h" -+#include <iconv.h> -+ -+ -+int -+init_unls_iconv(charset) -+ char *charset; -+{ -+ iconv_t iconv_d; /* iconv conversion descriptor */ -+ struct unls_table *table; -+ -+ /* give up if no charset is given */ -+ if (charset == NULL) -+ return -1; -+ -+ /* see if we already have a table with this name - built in tables -+ have precedence over iconv() - i.e. can't have the name of an -+ existing table. Also, we may have already registered this file -+ table */ -+ if (find_unls(charset) != NULL) -+ return -1; -+ -+ if ((iconv_d = iconv_open("UCS-2BE", charset)) == (iconv_t) -1) -+ return -1; -+ -+ -+ /* set up the table */ -+ if ((table = (struct unls_table *)malloc(sizeof (struct unls_table))) -+ == NULL) { -+ return -1; -+ } -+ -+ /* give the table the file name, so we can find it again if needed */ -+ table->unls_name = strdup(charset); -+ table->iconv_d = iconv_d; -+ table->unls_uni2cs = NULL; -+ table->unls_cs2uni = NULL; -+ table->unls_next = NULL; -+ -+ /* register the table */ -+ return register_unls(table); -+} -+#endif -diff -uNr cdrtools-2.01.01.orig/mkisofs/Makefile cdrtools-2.01.01/mkisofs/Makefile ---- cdrtools-2.01.01.orig/mkisofs/Makefile 2004-02-23 00:13:43.000000000 +0900 -+++ cdrtools-2.01.01/mkisofs/Makefile 2006-07-22 10:36:29.903614250 +0900 -@@ -31,6 +31,7 @@ - CPPOPTS += -DUDF - CPPOPTS += -DDVD_VIDEO - CPPOPTS += -DSORTING -+CPPOPTS += -DUSE_ICONV - CPPOPTS += -I../libhfs_iso/ - CPPOPTS += -DHAVE_CONFIG_H -DUSE_LIBSCHILY -DUSE_SCG \ - '-DAPPID_DEFAULT="MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING"' \ -diff -uNr cdrtools-2.01.01.orig/mkisofs/joliet.c cdrtools-2.01.01/mkisofs/joliet.c ---- cdrtools-2.01.01.orig/mkisofs/joliet.c 2005-05-02 03:38:14.000000000 +0900 -+++ cdrtools-2.01.01/mkisofs/joliet.c 2006-07-22 10:36:29.903614250 +0900 -@@ -90,6 +90,11 @@ - #include <unls.h> /* For UNICODE translation */ - #include <schily.h> - -+#ifdef USE_ICONV -+#include <iconv.h> -+#include <errno.h> -+#endif -+ - static Uint jpath_table_index; - static struct directory **jpathlist; - static int next_jpath_index = 1; -@@ -103,13 +108,23 @@ - }; - - #ifdef UDF -- void convert_to_unicode __PR((unsigned char *buffer, -+# ifdef USE_ICONV -+ size_t -+# else -+ void -+# endif -+ convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); -- int joliet_strlen __PR((const char *string)); -+ int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #else --static void convert_to_unicode __PR((unsigned char *buffer, -+# ifdef USE_ICONV -+ static size_t -+# else -+ static void -+#endif -+ convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); --static int joliet_strlen __PR((const char *string)); -+static int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #endif - static void get_joliet_vol_desc __PR((struct iso_primary_descriptor *jvol_desc)); - static void assign_joliet_directory_addresses __PR((struct directory *node)); -@@ -161,6 +176,20 @@ - if (inls == onls) - return (c); - -+#ifdef USE_ICONV -+ if(inls->unls_cs2uni == NULL || onls->unls_uni2cs == NULL) { -+ /* -+ * This shouldn't be reached -+ */ -+ static BOOL iconv_warned = FALSE; -+ if(!iconv_warned) { -+ error("Warning: Iconv conversion not supported in conv_charset.\n"); -+ iconv_warned = TRUE; -+ } -+ return (c); -+ } -+#endif -+ - /* get high and low UNICODE bytes */ - uh = inls->unls_cs2uni[c].unls_high; - ul = inls->unls_cs2uni[c].unls_low; -@@ -186,10 +215,18 @@ - * - * Notes: - */ --#ifdef UDF --void -+#ifdef USE_ICONV -+# if UDF -+size_t -+# else -+static size_t -+# endif - #else -+# if UDF -+void -+# else - static void -+# endif - #endif - convert_to_unicode(buffer, size, source, inls) - unsigned char *buffer; -@@ -216,6 +253,51 @@ - tmpbuf = (Uchar *) source; - } - -+#ifdef USE_ICONV -+ if (inls->iconv_d && inls->unls_cs2uni==NULL && -+ inls->unls_uni2cs==NULL) { -+ char *inptr = tmpbuf; -+ char *outptr = buffer; -+ size_t inleft = strlen(tmpbuf); -+ size_t inlen = inleft; -+ size_t outleft = size; -+ -+ iconv(inls->iconv_d, NULL, NULL, NULL, NULL); -+ if(iconv(inls->iconv_d, &inptr, &inleft, &outptr, &outleft) == -+ (size_t)-1 && errno == EILSEQ) { -+ fprintf(stderr, "Incorrectly encoded string (%s) " -+ "encountered.\nPossibly creating an invalid " -+ "Joliet extension. Aborting.\n", source); -+ exit(1); -+ } -+ -+ for (i = 0; (i + 1) < size - outleft; i += 2) { /* Size may be odd!!!*/ -+ if (buffer[i]=='\0') { -+ switch (buffer[i+1]) { /* Invalid characters for Joliet */ -+ case '*': -+ case '/': -+ case ':': -+ case ';': -+ case '?': -+ case '\\': -+ buffer[i+1]='_'; -+ default: -+ if (buffer[i+1] == 0x7f || -+ buffer[i+1] < 0x20) -+ buffer[i+1]='_'; -+ } -+ } -+ } -+ if (size & 1) { /* beautification */ -+ buffer[size - 1] = 0; -+ } -+ if (source == NULL) { -+ free(tmpbuf); -+ } -+ return (inlen - inleft); -+ } -+#endif -+ - /* - * Now start copying characters. If the size was specified to be 0, - * then assume the input was 0 terminated. -@@ -271,6 +353,9 @@ - if (source == NULL) { - free(tmpbuf); - } -+#ifdef USE_ICONV -+ return j; -+#endif - } - - /* -@@ -287,12 +372,50 @@ - #else - static int - #endif --joliet_strlen(string) -+joliet_strlen(string, inls) - const char *string; -+ struct unls_table *inls; - { - int rtn; - -+#ifdef USE_ICONV -+ if (inls->iconv_d && inls->unls_cs2uni==NULL && -+ inls->unls_uni2cs==NULL) { -+ /* -+ * we const-cast since we're sure iconv won't change -+ * the string itself -+ */ -+ char *string_ptr = (char *)string; -+ size_t string_len = strlen(string); -+ -+ /* -+ * iconv has no way of finding out the required size -+ * in the target -+ */ -+ -+ char *tmp, *tmp_ptr; -+ /* we assume that the maximum length is 2 * jlen */ -+ size_t tmp_len = (size_t)jlen * 2 + 1; -+ tmp = e_malloc(tmp_len); -+ tmp_ptr = tmp; -+ -+ iconv(inls->iconv_d, NULL, NULL, NULL, NULL); -+ iconv(inls->iconv_d, &string_ptr, &string_len, &tmp_ptr, -+ &tmp_len); -+ -+ /* -+ * iconv advanced the tmp pointer with as many chars -+ * as it has written to it, so we add up the delta -+ */ -+ rtn = (tmp_ptr - tmp); -+ -+ free(tmp); -+ } else { -+ rtn = strlen(string) << 1; -+ } -+#else - rtn = strlen(string) << 1; -+#endif - - /* - * We do clamp the maximum length of a Joliet string to be the -@@ -480,16 +603,33 @@ - /* compare the Unicode names */ - - while (*rpnt && *lpnt) { -+#ifdef USE_ICONV -+ size_t ri, li; -+ -+ ri = convert_to_unicode(rtmp, 2, rpnt, rinls); -+ li = convert_to_unicode(ltmp, 2, lpnt, linls); -+ rpnt += ri; -+ lpnt += li; -+ if(!ri && !li) -+ return (0); -+ else if(ri && !li) -+ return (1); -+ else if(!ri && li) -+ return (-1); -+#else - convert_to_unicode(rtmp, 2, rpnt, rinls); - convert_to_unicode(ltmp, 2, lpnt, linls); -+#endif - - if (a_to_u_2_byte(rtmp) < a_to_u_2_byte(ltmp)) - return (-1); - if (a_to_u_2_byte(rtmp) > a_to_u_2_byte(ltmp)) - return (1); - -+#ifndef USE_ICONV - rpnt++; - lpnt++; -+#endif - } - - if (*rpnt) -@@ -574,10 +714,10 @@ - } - #ifdef APPLE_HYB - if (USE_MAC_NAME(de)) -- namelen = joliet_strlen(de->hfs_ent->name); -+ namelen = joliet_strlen(de->hfs_ent->name, hfs_inls); - else - #endif /* APPLE_HYB */ -- namelen = joliet_strlen(de->name); -+ namelen = joliet_strlen(de->name, in_nls); - - if (dpnt == root) { - jpath_table_l[jpath_table_index] = 1; -@@ -742,10 +882,10 @@ - #ifdef APPLE_HYB - /* Use the HFS name if it exists */ - if (USE_MAC_NAME(s_entry1)) -- cvt_len = joliet_strlen(s_entry1->hfs_ent->name); -+ cvt_len = joliet_strlen(s_entry1->hfs_ent->name, hfs_inls); - else - #endif /* APPLE_HYB */ -- cvt_len = joliet_strlen(s_entry1->name); -+ cvt_len = joliet_strlen(s_entry1->name, in_nls); - - /* - * Fix the record length -@@ -891,12 +1031,12 @@ - if (USE_MAC_NAME(s_entry)) - /* Use the HFS name if it exists */ - jpath_table_size += -- joliet_strlen(s_entry->hfs_ent->name) + -+ joliet_strlen(s_entry->hfs_ent->name, hfs_inls) + - offsetof(struct iso_path_table, name[0]); - else - #endif /* APPLE_HYB */ - jpath_table_size += -- joliet_strlen(s_entry->name) + -+ joliet_strlen(s_entry->name, in_nls) + - offsetof(struct iso_path_table, name[0]); - if (jpath_table_size & 1) { - jpath_table_size++; -@@ -918,13 +1058,13 @@ - /* Use the HFS name if it exists */ - s_entry->jreclen = - offsetof(struct iso_directory_record, name[0]) -- + joliet_strlen(s_entry->hfs_ent->name) -+ + joliet_strlen(s_entry->hfs_ent->name, hfs_inls) - + 1; - else - #endif /* APPLE_HYB */ - s_entry->jreclen = - offsetof(struct iso_directory_record, name[0]) -- + joliet_strlen(s_entry->name) -+ + joliet_strlen(s_entry->name, in_nls) - + 1; - } else { - /* -@@ -1072,6 +1212,9 @@ - #endif - - while (*rpnt && *lpnt) { -+#ifdef USE_ICONV -+ size_t ri, li; -+#endif - if (*rpnt == ';' && *lpnt != ';') - return (-1); - if (*rpnt != ';' && *lpnt == ';') -@@ -1092,16 +1235,32 @@ - return (1); - #endif - -+#ifdef USE_ICONV -+ -+ ri = convert_to_unicode(rtmp, 2, rpnt, rinls); -+ li = convert_to_unicode(ltmp, 2, lpnt, linls); -+ rpnt += ri; -+ lpnt += li; -+ if(!ri && !li) -+ return (0); -+ else if(ri && !li) -+ return (1); -+ else if(!ri && li) -+ return (-1); -+#else - convert_to_unicode(rtmp, 2, rpnt, rinls); - convert_to_unicode(ltmp, 2, lpnt, linls); -+#endif - - if (a_to_u_2_byte(rtmp) < a_to_u_2_byte(ltmp)) - return (-1); - if (a_to_u_2_byte(rtmp) > a_to_u_2_byte(ltmp)) - return (1); - -+#ifndef USE_ICONV - rpnt++; - lpnt++; -+#endif - } - if (*rpnt) - return (1); -diff -uNr cdrtools-2.01.01.orig/mkisofs/mkisofs.c cdrtools-2.01.01/mkisofs/mkisofs.c ---- cdrtools-2.01.01.orig/mkisofs/mkisofs.c 2006-01-30 19:37:30.000000000 +0900 -+++ cdrtools-2.01.01/mkisofs/mkisofs.c 2006-07-22 10:36:29.907614500 +0900 -@@ -59,6 +59,11 @@ - #endif - #endif /* no_more_needed */ - -+#ifdef USE_ICONV -+#include <locale.h> -+#include <langinfo.h> -+#endif -+ - struct directory *root = NULL; - int path_ind; - -@@ -223,6 +228,10 @@ - int do_sort = 0; /* sort file data */ - #endif /* SORTING */ - -+#ifdef USE_ICONV -+int iconv_possible; -+#endif -+ - struct unls_table *in_nls = NULL; /* input UNICODE conversion table */ - struct unls_table *out_nls = NULL; /* output UNICODE conversion table */ - #ifdef APPLE_HYB -@@ -2339,6 +2348,37 @@ - init_unls_file(hfs_ocharset); - #endif /* APPLE_HYB */ - -+#ifdef USE_ICONV -+ iconv_possible = !(iso9660_level >= 4 || ((ocharset && -+ strcmp(ocharset, icharset ? icharset : "")) && -+ use_RockRidge) || apple_ext || apple_hyb); -+ -+ setlocale(LC_CTYPE, ""); -+ -+ if (icharset == NULL && iconv_possible) { -+ char *charset = nl_langinfo(CODESET); -+ /* set to detected value but only if it is not pure US-ASCII */ -+ if(strcmp(charset, "ANSI_X3.4-1968") != 0) -+ icharset = charset; -+ -+ if(icharset && verbose > 0) -+ fprintf(stderr, "INFO:\t" -+ "%s character encoding detected by locale settings." -+ "\n\tAssuming %s encoded filenames on source " -+ "filesystem,\n" -+ "\tuse -input-charset to override.\n", -+ icharset, icharset); -+ } -+ -+ if(iconv_possible) { -+ /* -+ * don't care if initialization fails -+ */ -+ init_unls_iconv(icharset); -+ init_unls_iconv(ocharset); -+ } -+#endif -+ - if (icharset == NULL) { - #if (defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__DJGPP__)) && !defined(IS_CYGWIN_1) - in_nls = load_unls("cp437"); -@@ -2366,6 +2406,12 @@ - if (in_nls == NULL || out_nls == NULL) { /* Unknown charset specified */ - fprintf(stderr, "Unknown charset\nKnown charsets are:\n"); - list_unls(); /* List all known charset names */ -+#ifdef USE_ICONV -+ if(!iconv_possible) -+ fprintf(stderr, "Iconv charsets cannot be used with " -+ "Apple extension, HFS, ISO9660 version 2 or\n" -+ "Rock Ridge.\n"); -+#endif - exit(1); - } - -diff -uNr cdrtools-2.01.01.orig/mkisofs/mkisofs.h cdrtools-2.01.01/mkisofs/mkisofs.h ---- cdrtools-2.01.01.orig/mkisofs/mkisofs.h 2005-05-02 03:38:14.000000000 +0900 -+++ cdrtools-2.01.01/mkisofs/mkisofs.h 2006-07-22 10:36:29.907614500 +0900 -@@ -503,9 +503,14 @@ - - /* joliet.c */ - #ifdef UDF -+# ifdef USE_ICONV -+extern size_t convert_to_unicode __PR((unsigned char *buffer, -+ int size, char *source, struct unls_table *inls)); -+# else - extern void convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); --extern int joliet_strlen __PR((const char *string)); -+# endif -+extern int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #endif - extern unsigned char conv_charset __PR((unsigned char, struct unls_table *, - struct unls_table *)); -diff -uNr cdrtools-2.01.01.orig/mkisofs/udf.c cdrtools-2.01.01/mkisofs/udf.c ---- cdrtools-2.01.01.orig/mkisofs/udf.c 2004-04-15 20:15:08.000000000 +0900 -+++ cdrtools-2.01.01/mkisofs/udf.c 2006-07-22 10:36:29.907614500 +0900 -@@ -441,7 +441,7 @@ - int i; - int expanded_length; - -- expanded_length = joliet_strlen(src); -+ expanded_length = joliet_strlen(src, in_nls); - if (expanded_length > 1024) - expanded_length = 1024; - if (expanded_length > (dst_size-1)*2) diff --git a/app-cdr/cdrtools/files/mkisofs-iconv-25.patch b/app-cdr/cdrtools/files/mkisofs-iconv-25.patch deleted file mode 100644 index 3c8133919722..000000000000 --- a/app-cdr/cdrtools/files/mkisofs-iconv-25.patch +++ /dev/null @@ -1,624 +0,0 @@ -diff -urN cdrtools-2.01.01/include/schily/unls.h cdrtools-2.01.01_1/include/schily/unls.h ---- cdrtools-2.01.01/include/schily/unls.h 2006-10-10 12:24:15.000000000 +0400 -+++ cdrtools-2.01.01_1/include/schily/unls.h 2007-05-17 14:03:01.000000000 +0400 -@@ -23,6 +23,10 @@ - #include <schily/mconfig.h> - #endif - -+#ifdef USE_ICONV -+#include <iconv.h> -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -37,6 +41,10 @@ - unsigned char **unls_uni2cs; /* Unicode -> Charset */ - struct unls_unicode *unls_cs2uni; /* Charset -> Unicode */ - struct unls_table *unls_next; /* Next table */ -+ -+#ifdef USE_ICONV -+ iconv_t iconv_d; -+#endif - }; - - extern int init_unls __PR((void)); -@@ -49,6 +57,10 @@ - extern struct unls_table *load_unls_default __PR((void)); - extern int init_unls_file __PR((char * name)); - -+#ifdef USE_ICONV -+extern int init_nls_iconv __PR((char * name)); -+#endif -+ - #ifdef __cplusplus - } - #endif -diff -urN cdrtools-2.01.01/libunls/libunls.mk cdrtools-2.01.01_1/libunls/libunls.mk ---- cdrtools-2.01.01/libunls/libunls.mk 2007-02-04 03:56:54.000000000 +0300 -+++ cdrtools-2.01.01_1/libunls/libunls.mk 2007-05-17 12:56:34.000000000 +0400 -@@ -8,7 +8,7 @@ - INSDIR= lib - TARGETLIB= unls - #CPPOPTS += -Istdio --CPPOPTS += -DSCHILY_PRINT -+CPPOPTS += -DSCHILY_PRINT -DUSE_ICONV - - include Targets - LIBS= -diff -urN cdrtools-2.01.01/libunls/nls.h cdrtools-2.01.01_1/libunls/nls.h ---- cdrtools-2.01.01/libunls/nls.h 2006-09-13 19:09:14.000000000 +0400 -+++ cdrtools-2.01.01_1/libunls/nls.h 2007-05-17 12:55:43.000000000 +0400 -@@ -111,4 +111,8 @@ - extern int init_unls_cp10081 __PR((void)); - extern int init_unls_file __PR((char * name)); - -+#ifdef USE_ICONV -+extern int init_nls_iconv __PR((char * name)); -+#endif -+ - #endif /* _NLS_H */ -diff -urN cdrtools-2.01.01/libunls/nls_iconv.c cdrtools-2.01.01_1/libunls/nls_iconv.c ---- cdrtools-2.01.01/libunls/nls_iconv.c 1970-01-01 03:00:00.000000000 +0300 -+++ cdrtools-2.01.01_1/libunls/nls_iconv.c 2007-05-17 14:07:04.000000000 +0400 -@@ -0,0 +1,97 @@ -+/* @(#)nls_iconv.c 1.0 02/04/20 2002 J. Schilling */ -+#ifndef lint -+static char sccsid[] = -+ "@(#)nls_iconv.c 1.0 02/01/20 2002 J. Schilling"; -+#endif -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; see the file COPYING. If not, write to -+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+/* -+ * Modifications to make the code portable Copyright (c) 2000 J. Schilling -+ * -+ * nls_iconv: create a pseudo-charset table to use iconv() provided by C -+ * library or libiconv by Bruno Haible -+ * The Unicode to charset table has only exact mappings. -+ * -+ * -+ * Jungshik Shin (jshin@mailaps.org) 04-Feb-2002 -+ */ -+ -+#ifdef USE_ICONV -+//#include <mconfig.h> -+#include <stdio.h> -+//#include <stdxlib.h> -+//#include <strdefs.h> -+#include "nls.h" -+#include <iconv.h> -+ -+static void inc_use_count __PR((void)); -+static void dec_use_count __PR((void)); -+ -+ -+static void -+inc_use_count() -+{ -+ MOD_INC_USE_COUNT; -+} -+ -+static void -+dec_use_count() -+{ -+ MOD_DEC_USE_COUNT; -+} -+ -+int -+init_nls_iconv(charset) -+ char *charset; -+{ -+ iconv_t iconv_d; /* iconv conversion descriptor */ -+ struct unls_table *table; -+ -+ /* give up if no charset is given */ -+ if (charset == NULL) -+ return -1; -+ -+ /* see if we already have a table with this name - built in tables -+ have precedence over iconv() - i.e. can't have the name of an -+ existing table. Also, we may have already registered this file -+ table */ -+ if (find_unls(charset) != NULL) -+ return -1; -+ -+ if ((iconv_d = iconv_open("UCS-2BE", charset)) == (iconv_t) -1) -+ return -1; -+ -+ -+ /* set up the table */ -+ if ((table = (struct unls_table *)malloc(sizeof (struct unls_table))) -+ == NULL) { -+ return -1; -+ } -+ -+ /* give the table the file name, so we can find it again if needed */ -+ table->unls_name = strdup(charset); -+ table->iconv_d = iconv_d; -+ table->unls_cs2uni = NULL; -+ table->unls_uni2cs = NULL; -+// table->inc_use_count = inc_use_count; -+// table->dec_use_count = dec_use_count; -+ table->unls_next = NULL; -+ -+ /* register the table */ -+ return register_unls(table); -+} -+#endif -+ -diff -urN cdrtools-2.01.01/libunls/Targets cdrtools-2.01.01_1/libunls/Targets ---- cdrtools-2.01.01/libunls/Targets 2002-12-03 03:34:27.000000000 +0300 -+++ cdrtools-2.01.01_1/libunls/Targets 2007-05-17 12:51:22.000000000 +0400 -@@ -39,4 +39,5 @@ - nls_cp10029.c \ - nls_cp10079.c \ - nls_cp10081.c \ -- nls_file.c -+ nls_file.c \ -+ nls_iconv.c -diff -urN cdrtools-2.01.01/mkisofs/joliet.c cdrtools-2.01.01_1/mkisofs/joliet.c ---- cdrtools-2.01.01/mkisofs/joliet.c 2006-10-08 17:48:36.000000000 +0400 -+++ cdrtools-2.01.01_1/mkisofs/joliet.c 2007-05-17 13:53:36.000000000 +0400 -@@ -90,6 +90,11 @@ - #include <schily/unls.h> /* For UNICODE translation */ - #include <schily/schily.h> - -+#ifdef USE_ICONV -+#include <iconv.h> -+#include <errno.h> -+#endif -+ - static Uint jpath_table_index; - static struct directory **jpathlist; - static int next_jpath_index = 1; -@@ -103,13 +108,23 @@ - }; - - #ifdef UDF -- void convert_to_unicode __PR((unsigned char *buffer, -+# ifdef USE_ICONV -+ size_t -+# else -+ void -+# endif -+ convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); -- int joliet_strlen __PR((const char *string)); -+ int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #else --static void convert_to_unicode __PR((unsigned char *buffer, -+# ifdef USE_ICONV -+ static size_t -+# else -+ static void -+#endif -+ convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); --static int joliet_strlen __PR((const char *string)); -+ static int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #endif - static void get_joliet_vol_desc __PR((struct iso_primary_descriptor *jvol_desc)); - static void assign_joliet_directory_addresses __PR((struct directory *node)); -@@ -161,6 +176,20 @@ - if (inls == onls) - return (c); - -+#ifdef USE_ICONV -+ if(inls->unls_cs2uni == NULL || onls->unls_uni2cs == NULL) { -+ /* -+ * This shouldn't be reached -+ */ -+ static BOOL iconv_warned = FALSE; -+ if(!iconv_warned) { -+ error("Warning: Iconv conversion not supported in conv_charset.\n"); -+ iconv_warned = TRUE; -+ } -+ return (c); -+ } -+#endif -+ - /* get high and low UNICODE bytes */ - uh = inls->unls_cs2uni[c].unls_high; - ul = inls->unls_cs2uni[c].unls_low; -@@ -186,10 +215,18 @@ - * - * Notes: - */ --#ifdef UDF --void -+#ifdef USE_ICONV -+# if UDF -+size_t -+# else -+static size_t -+# endif - #else -+# if UDF -+void -+# else - static void -+# endif - #endif - convert_to_unicode(buffer, size, source, inls) - unsigned char *buffer; -@@ -216,6 +253,51 @@ - tmpbuf = (Uchar *) source; - } - -+#ifdef USE_ICONV -+ if (inls->iconv_d && inls->unls_cs2uni==NULL && -+ inls->unls_uni2cs==NULL) { -+ char *inptr = tmpbuf; -+ char *outptr = buffer; -+ size_t inleft = strlen(tmpbuf); -+ size_t inlen = inleft; -+ size_t outleft = size; -+ -+ iconv(inls->iconv_d, NULL, NULL, NULL, NULL); -+ if(iconv(inls->iconv_d, &inptr, &inleft, &outptr, &outleft) == -+ (size_t)-1 && errno == EILSEQ) { -+ fprintf(stderr, "Incorrectly encoded string (%s) " -+ "encountered.\nPossibly creating an invalid " -+ "Joliet extension. Aborting.\n", source); -+ exit(1); -+ } -+ -+ for (i = 0; (i + 1) < size - outleft; i += 2) { /* Size may be odd!!!*/ -+ if (buffer[i]=='\0') { -+ switch (buffer[i+1]) { /* Invalid characters for Joliet */ -+ case '*': -+ case '/': -+ case ':': -+ case ';': -+ case '?': -+ case '\\': -+ buffer[i+1]='_'; -+ default: -+ if (buffer[i+1] == 0x7f || -+ buffer[i+1] < 0x20) -+ buffer[i+1]='_'; -+ } -+ } -+ } -+ if (size & 1) { /* beautification */ -+ buffer[size - 1] = 0; -+ } -+ if (source == NULL) { -+ free(tmpbuf); -+ } -+ return (inlen - inleft); -+ } -+#endif -+ - /* - * Now start copying characters. If the size was specified to be 0, - * then assume the input was 0 terminated. -@@ -271,6 +353,9 @@ - if (source == NULL) { - free(tmpbuf); - } -+#ifdef USE_ICONV -+ return j; -+#endif - } - - /* -@@ -287,12 +372,50 @@ - #else - static int - #endif --joliet_strlen(string) -+joliet_strlen(string, inls) - const char *string; -+ struct unls_table *inls; - { - int rtn; - -+#ifdef USE_ICONV -+ if (inls->iconv_d && inls->unls_cs2uni==NULL && -+ inls->unls_uni2cs==NULL) { -+ /* -+ * we const-cast since we're sure iconv won't change -+ * the string itself -+ */ -+ char *string_ptr = (char *)string; -+ size_t string_len = strlen(string); -+ -+ /* -+ * iconv has no way of finding out the required size -+ * in the target -+ */ -+ -+ char *tmp, *tmp_ptr; -+ /* we assume that the maximum length is 2 * jlen */ -+ size_t tmp_len = (size_t)jlen * 2 + 1; -+ tmp = e_malloc(tmp_len); -+ tmp_ptr = tmp; -+ -+ iconv(inls->iconv_d, NULL, NULL, NULL, NULL); -+ iconv(inls->iconv_d, &string_ptr, &string_len, &tmp_ptr, -+ &tmp_len); -+ -+ /* -+ * iconv advanced the tmp pointer with as many chars -+ * as it has written to it, so we add up the delta -+ */ -+ rtn = (tmp_ptr - tmp); -+ -+ free(tmp); -+ } else { -+ rtn = strlen(string) << 1; -+ } -+#else - rtn = strlen(string) << 1; -+#endif - - /* - * We do clamp the maximum length of a Joliet string to be the -@@ -481,16 +604,33 @@ - /* compare the Unicode names */ - - while (*rpnt && *lpnt) { -+#ifdef USE_ICONV -+ size_t ri, li; -+ -+ ri = convert_to_unicode(rtmp, 2, rpnt, rinls); -+ li = convert_to_unicode(ltmp, 2, lpnt, linls); -+ rpnt += ri; -+ lpnt += li; -+ if(!ri && !li) -+ return (0); -+ else if(ri && !li) -+ return (1); -+ else if(!ri && li) -+ return (-1); -+#else - convert_to_unicode(rtmp, 2, rpnt, rinls); - convert_to_unicode(ltmp, 2, lpnt, linls); -+#endif - - if (a_to_u_2_byte(rtmp) < a_to_u_2_byte(ltmp)) - return (-1); - if (a_to_u_2_byte(rtmp) > a_to_u_2_byte(ltmp)) - return (1); - -+#ifndef USE_ICONV - rpnt++; - lpnt++; -+#endif - } - - if (*rpnt) -@@ -564,10 +704,10 @@ - } - #ifdef APPLE_HYB - if (USE_MAC_NAME(de)) -- namelen = joliet_strlen(de->hfs_ent->name); -+ namelen = joliet_strlen(de->hfs_ent->name, hfs_inls); - else - #endif /* APPLE_HYB */ -- namelen = joliet_strlen(de->name); -+ namelen = joliet_strlen(de->name, in_nls); - - if (dpnt == root) { - jpath_table_l[jpath_table_index] = 1; -@@ -712,10 +852,10 @@ - #ifdef APPLE_HYB - /* Use the HFS name if it exists */ - if (USE_MAC_NAME(s_entry1)) -- cvt_len = joliet_strlen(s_entry1->hfs_ent->name); -+ cvt_len = joliet_strlen(s_entry1->hfs_ent->name, hfs_inls); - else - #endif /* APPLE_HYB */ -- cvt_len = joliet_strlen(s_entry1->name); -+ cvt_len = joliet_strlen(s_entry1->name, in_nls); - - /* - * Fix the record length -@@ -849,12 +989,12 @@ - if (USE_MAC_NAME(s_entry)) - /* Use the HFS name if it exists */ - jpath_table_size += -- joliet_strlen(s_entry->hfs_ent->name) + -+ joliet_strlen(s_entry->hfs_ent->name, hfs_inls) + - offsetof(struct iso_path_table, name[0]); - else - #endif /* APPLE_HYB */ - jpath_table_size += -- joliet_strlen(s_entry->name) + -+ joliet_strlen(s_entry->name, in_nls) + - offsetof(struct iso_path_table, name[0]); - if (jpath_table_size & 1) { - jpath_table_size++; -@@ -876,13 +1016,13 @@ - /* Use the HFS name if it exists */ - s_entry->jreclen = - offsetof(struct iso_directory_record, name[0]) -- + joliet_strlen(s_entry->hfs_ent->name) -+ + joliet_strlen(s_entry->hfs_ent->name, hfs_inls) - + 1; - else - #endif /* APPLE_HYB */ - s_entry->jreclen = - offsetof(struct iso_directory_record, name[0]) -- + joliet_strlen(s_entry->name) -+ + joliet_strlen(s_entry->name, in_nls) - + 1; - } else { - /* -@@ -1024,6 +1164,9 @@ - #endif - - while (*rpnt && *lpnt) { -+#ifdef USE_ICONV -+ size_t ri, li; -+#endif - if (*rpnt == ';' && *lpnt != ';') - return (-1); - if (*rpnt != ';' && *lpnt == ';') -@@ -1044,16 +1187,32 @@ - return (1); - #endif - -+#ifdef USE_ICONV -+ -+ ri = convert_to_unicode(rtmp, 2, rpnt, rinls); -+ li = convert_to_unicode(ltmp, 2, lpnt, linls); -+ rpnt += ri; -+ lpnt += li; -+ if(!ri && !li) -+ return (0); -+ else if(ri && !li) -+ return (1); -+ else if(!ri && li) -+ return (-1); -+#else - convert_to_unicode(rtmp, 2, rpnt, rinls); - convert_to_unicode(ltmp, 2, lpnt, linls); -+#endif - - if (a_to_u_2_byte(rtmp) < a_to_u_2_byte(ltmp)) - return (-1); - if (a_to_u_2_byte(rtmp) > a_to_u_2_byte(ltmp)) - return (1); - -+#ifndef USE_ICONV - rpnt++; - lpnt++; -+#endif - } - if (*rpnt) - return (1); -diff -urN cdrtools-2.01.01/mkisofs/Makefile cdrtools-2.01.01_1/mkisofs/Makefile ---- cdrtools-2.01.01/mkisofs/Makefile 2007-02-05 02:19:08.000000000 +0300 -+++ cdrtools-2.01.01_1/mkisofs/Makefile 2007-05-17 12:51:54.000000000 +0400 -@@ -33,6 +33,7 @@ - CPPOPTS += -DUDF - CPPOPTS += -DDVD_VIDEO - CPPOPTS += -DSORTING -+CPPOPTS += -DUSE_ICONV - CPPOPTS += -I../libhfs_iso/ - CPPOPTS += -DUSE_SCG \ - '-DAPPID_DEFAULT="MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING"' \ -diff -urN cdrtools-2.01.01/mkisofs/mkisofs.c cdrtools-2.01.01_1/mkisofs/mkisofs.c ---- cdrtools-2.01.01/mkisofs/mkisofs.c 2007-04-04 14:19:49.000000000 +0400 -+++ cdrtools-2.01.01_1/mkisofs/mkisofs.c 2007-05-17 13:00:27.000000000 +0400 -@@ -63,6 +63,11 @@ - #endif - #endif /* no_more_needed */ - -+#ifdef USE_ICONV -+#include <locale.h> -+#include <langinfo.h> -+#endif -+ - struct directory *root = NULL; - int path_ind; - -@@ -290,6 +295,10 @@ - int do_sort = 0; /* sort file data */ - #endif /* SORTING */ - -+#ifdef USE_ICONV -+int iconv_possible; -+#endif -+ - /* - * inode numbers for zero sized files start from this number and count - * backwards. This is done to allow unique inode numbers even on multi-session -@@ -2060,6 +2069,37 @@ - init_unls_file(hfs_ocharset); - #endif /* APPLE_HYB */ - -+#ifdef USE_ICONV -+ iconv_possible = !(iso9660_level >= 4 || ((ocharset && -+ strcmp(ocharset, icharset ? icharset : "")) && -+ use_RockRidge) || apple_ext || apple_hyb); -+ -+ setlocale(LC_CTYPE, ""); -+ -+ if (icharset == NULL && iconv_possible) { -+ char *charset = nl_langinfo(CODESET); -+ /* set to detected value but only if it is not pure US-ASCII */ -+ if(strcmp(charset, "ANSI_X3.4-1968") != 0) -+ icharset = charset; -+ -+ if(icharset && verbose > 0) -+ fprintf(stderr, "INFO:\t" -+ "%s character encoding detected by locale settings." -+ "\n\tAssuming %s encoded filenames on source " -+ "filesystem,\n" -+ "\tuse -input-charset to override.\n", -+ icharset, icharset); -+ } -+ -+ if(iconv_possible) { -+ /* -+ * don't care if initialization fails -+ */ -+ init_nls_iconv(icharset); -+ init_nls_iconv(ocharset); -+ } -+#endif -+ - if (icharset == NULL) { - #if (defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__DJGPP__)) && !defined(IS_CYGWIN_1) - in_nls = load_unls("cp437"); -@@ -2087,7 +2127,13 @@ - if (in_nls == NULL || out_nls == NULL) { /* Unknown charset specified */ - fprintf(stderr, "Unknown charset\nKnown charsets are:\n"); - list_unls(); /* List all known charset names */ -+#ifdef USE_ICONV -+ if(!iconv_possible) -+ fprintf(stderr, "Iconv charsets cannot be used with " -+ "Apple extension, HFS, ISO9660 version 2 or\n" -+ "Rock Ridge.\n"); - exit(1); -+#endif - } - - -diff -urN cdrtools-2.01.01/mkisofs/mkisofs.h cdrtools-2.01.01_1/mkisofs/mkisofs.h ---- cdrtools-2.01.01/mkisofs/mkisofs.h 2006-11-25 18:44:46.000000000 +0300 -+++ cdrtools-2.01.01_1/mkisofs/mkisofs.h 2007-05-17 13:49:04.000000000 +0400 -@@ -514,9 +514,14 @@ - - /* joliet.c */ - #ifdef UDF -+# ifdef USE_ICONV -+extern size_t convert_to_unicode __PR((unsigned char *buffer, -+ int size, char *source, struct unls_table *inls)); -+# else - extern void convert_to_unicode __PR((unsigned char *buffer, - int size, char *source, struct unls_table *inls)); --extern int joliet_strlen __PR((const char *string)); -+#endif -+extern int joliet_strlen __PR((const char *string, struct unls_table *inls)); - #endif - extern unsigned char conv_charset __PR((unsigned char, struct unls_table *, - struct unls_table *)); -diff -urN cdrtools-2.01.01/mkisofs/udf.c cdrtools-2.01.01_1/mkisofs/udf.c ---- cdrtools-2.01.01/mkisofs/udf.c 2006-10-26 20:04:26.000000000 +0400 -+++ cdrtools-2.01.01_1/mkisofs/udf.c 2007-05-17 12:52:33.000000000 +0400 -@@ -436,7 +436,7 @@ - int i; - int expanded_length; - -- expanded_length = joliet_strlen(src); -+ expanded_length = joliet_strlen(src, in_nls); - if (expanded_length > 1024) - expanded_length = 1024; - if (expanded_length > (dst_size-1)*2) |