diff --git a/.gitignore b/.gitignore index e671b73..f37a651 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1 @@ udftools-1.0.0b3.tar.gz -/udftools-1.2.tar.gz -/udftools-1.3.tar.gz -/udftools-2.1.tar.gz -/udftools-2.2.tar.gz -/udftools-2.3.tar.gz diff --git a/sources b/sources index 4f2392e..e7f1658 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (udftools-2.3.tar.gz) = 17304264388ae53e348d6aa870f0d23c29477344fee848236b46886c086221941872073974f804c0735eafd0cf9f7acdac7988132f03c0a87dba37467b5bda95 +2f491ddd63f31040797236fe18db9e60 udftools-1.0.0b3.tar.gz diff --git a/udftools-1.0.0b3-mkudffs-bigendian.patch b/udftools-1.0.0b3-mkudffs-bigendian.patch new file mode 100644 index 0000000..3209262 --- /dev/null +++ b/udftools-1.0.0b3-mkudffs-bigendian.patch @@ -0,0 +1,36 @@ +Date: Sun, 12 Dec 2004 14:25:09 +0100 +From: Christoph Hellwig +To: submit@bugs.debian.org + +Package: udftools +Version: 1.0.0b3-6 + +mkduffs crashes with a segmentation fault when trying to create a +filesystem on big-endian systems. e.g. mkudffs /dev/sda4 on my +PowerMac. + +udffstools from CVS on sf.net is fine, and I've extracted the actual +fix: + + +diff -uNr -Xdontdiff -p udftools-1.0.0b3/mkudffs/mkudffs.c udftools/mkudffs/mkudffs.c +--- udftools-1.0.0b3/mkudffs/mkudffs.c 2004-02-23 04:35:33.000000000 +0100 ++++ udftools/mkudffs/mkudffs.c 2004-03-02 03:09:39.000000000 +0100 +@@ -250,14 +250,14 @@ void split_space(struct udf_disc *disc) + if (size % offsets[PSPACE_SIZE]) + size -= (size % offsets[PSPACE_SIZE]); + set_extent(disc, PSPACE, start, size); +- for (i=0; iudf_lvd[0]->numPartitionMaps; i++) ++ for (i=0; iudf_lvd[0]->numPartitionMaps); i++) + { + if (i == 1) + disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(0xFFFFFFFF); + else + disc->udf_lvid->freeSpaceTable[i] = cpu_to_le32(size); + } +- for (j=0; judf_lvd[0]->numPartitionMaps; j++) ++ for (j=0; judf_lvd[0]->numPartitionMaps); j++) + { + if (j == 1) + disc->udf_lvid->sizeTable[i+j] = cpu_to_le32(0xFFFFFFFF); + diff --git a/udftools-1.0.0b3-pktsetup-chardev.patch b/udftools-1.0.0b3-pktsetup-chardev.patch new file mode 100644 index 0000000..5ef0825 --- /dev/null +++ b/udftools-1.0.0b3-pktsetup-chardev.patch @@ -0,0 +1,346 @@ +From: Peter Osterlund +Subject: Re: [RFC][PATCH] Control pktcdvd with an auxiliary character device +To: linux-kernel@vger.kernel.org +Cc: Christoph Hellwig , Arnd Bergmann , + Jens Axboe , Andrew Morton +Date: Wed Jul 14 02:17:27 2004 +0200 + +Peter Osterlund writes: + +> Peter Osterlund writes: +> +> > Christoph Hellwig writes: +> > +> > > On Sun, Jul 11, 2004 at 01:20:45AM +0200, Arnd Bergmann wrote: +> > > > These are actually incorrect definitions since the ioctl argument is +> > > > not a pointer to unsigned int but instead just an int. However, that's +> > > > too late to fix without breaking the existing tools. +> > > +> > > The tools need to change anyway to get away from the broken behaviour to +> > > issue in ioctl on the actual block device to bind it.. +> > +> > OK, I'll create a patch that gets rid of the ioctl interface and uses +> > an auxiliary character device instead to control device bindings. +> +> Here is a patch for 2.6.7-mm7 that does that. The driver creates a +> misc character device and bind/unbind of the block devices are +> controlled by ioctl commands on the char device. +> +> This patch needs corresponding changes in the pktsetup user space +> program. I'll post a patch for pktsetup as a separate message. + +And here is a patch for udftools-1.0.0b3 that updates the pktsetup +program to make it able to use the character device for block device +setup/teardown. + +--- + + udftools-1.0.0b3-petero/pktsetup/pktsetup.c | 245 +++++++++++++++++++++++++++- + 1 files changed, 238 insertions(+), 7 deletions(-) + +diff -puN pktsetup/pktsetup.c~pktsetup-char-dev pktsetup/pktsetup.c +--- udftools-1.0.0b3/pktsetup/pktsetup.c~pktsetup-char-dev 2004-07-12 19:57:51.000000000 +0200 ++++ udftools-1.0.0b3-petero/pktsetup/pktsetup.c 2004-07-14 00:34:02.471317888 +0200 +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 1999,2000 Jens Axboe ++ * Copyright (c) 2004 Peter Osterlund + * + * 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 +@@ -19,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -33,8 +35,33 @@ + #define PACKET_SETUP_DEV _IOW('X', 1, unsigned int) + #define PACKET_TEARDOWN_DEV _IOW('X', 2, unsigned int) + #endif ++#ifndef PACKET_CTRL_CMD ++#define PACKET_CTRL_CMD _IOWR('X', 1, struct pkt_ctrl_command) ++#endif ++ ++#define MAJOR(dev) ((dev & 0xfff00) >> 8) ++#define MINOR(dev) ((dev & 0xff) | ((dev >> 12) & 0xfff00)) ++#define MKDEV(ma,mi) ((mi & 0xff) | (ma << 8) | ((mi & ~0xff) << 12)) ++ ++#define MISC_MAJOR 10 ++#define CTL_DIR "/dev/pktcdvd" ++#define CTL_DEV "control" ++ ++#define PKT_CTRL_CMD_SETUP 0 ++#define PKT_CTRL_CMD_TEARDOWN 1 ++#define PKT_CTRL_CMD_STATUS 2 ++ ++struct pkt_ctrl_command { ++ __u32 command; /* in: Setup, teardown, status */ ++ __u32 dev_index; /* in/out: Device index */ ++ __u32 dev; /* in/out: Device nr for cdrw device */ ++ __u32 pkt_dev; /* out: Device nr for packet device */ ++ __u32 num_devices; /* out: Largest device index + 1 */ ++ __u32 padding; ++}; ++ + +-int init_cdrom(int fd) ++static int init_cdrom(int fd) + { + if (ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT) < 0) { + perror("drive not ready\n"); +@@ -54,7 +81,7 @@ int init_cdrom(int fd) + return 0; + } + +-void setup_dev(char *pkt_device, char *device, int rem) ++static void setup_dev(char *pkt_device, char *device, int rem) + { + int pkt_fd, dev_fd, cmd; + +@@ -88,29 +115,233 @@ void setup_dev(char *pkt_device, char *d + close(pkt_fd); + } + +-int usage(void) ++static int usage(void) + { +- printf("pktsetup /dev/pktcdvd0 /dev/cdrom\tsetup device\n"); +- printf("pktsetup -d /dev/pktcdvd0\t\ttear down device\n"); ++ printf("For pktcdvd < 0.2.0:\n"); ++ printf(" pktsetup /dev/pktcdvd0 /dev/cdrom setup device\n"); ++ printf(" pktsetup -d /dev/pktcdvd0 tear down device\n"); ++ printf("For pktcdvd >= 0.2.0:\n"); ++ printf(" pktsetup dev_name /dev/cdrom setup device\n"); ++ printf(" pktsetup -d dev_name tear down device\n"); ++ printf(" pktsetup -d major:minor tear down device\n"); ++ printf(" pktsetup -s show device mappings\n"); + return 1; + } + ++/* ++ * Find the minor device number for the pktcdvd control device. ++ */ ++static int get_misc_minor(void) ++{ ++ int minor; ++ char name[64]; ++ FILE *f; ++ ++ if ((f = fopen("/proc/misc", "r")) == NULL) ++ return -1; ++ while (fscanf(f, " %d %64s", &minor, name) == 2) { ++ if (strcmp(name, "pktcdvd") == 0) { ++ fclose(f); ++ return minor; ++ } ++ } ++ fclose(f); ++ return -1; ++} ++ ++static const char *pkt_dev_name(const char *dev) ++{ ++ static char buf[128]; ++ snprintf(buf, sizeof(buf), "%s/%s", CTL_DIR, dev); ++ return buf; ++} ++ ++static void create_ctl_dev(void) ++{ ++ int misc_minor; ++ struct stat stat_buf; ++ int dev; ++ ++ if ((misc_minor = get_misc_minor()) < 0) { ++ system("/sbin/modprobe pktcdvd"); ++ misc_minor = get_misc_minor(); ++ } ++ if (misc_minor < 0) { ++ fprintf(stderr, "Can't find pktcdvd character device\n"); ++ return; ++ } ++ dev = MKDEV(MISC_MAJOR, misc_minor); ++ ++ if ((stat(pkt_dev_name(CTL_DEV), &stat_buf) >= 0) && ++ S_ISCHR(stat_buf.st_mode) && (stat_buf.st_rdev == dev)) ++ return; /* Already set up */ ++ ++ mkdir(CTL_DIR, 0755); ++ unlink(pkt_dev_name(CTL_DEV)); ++ mknod(pkt_dev_name(CTL_DEV), S_IFCHR | 0644, dev); ++} ++ ++static int remove_stale_dev_node(int ctl_fd, char *devname) ++{ ++ struct stat stat_buf; ++ int i, dev; ++ struct pkt_ctrl_command c; ++ ++ if (stat(pkt_dev_name(devname), &stat_buf) < 0) ++ return 0; ++ if (!S_ISBLK(stat_buf.st_mode)) ++ return 1; ++ dev = stat_buf.st_rdev; ++ memset(&c, 0, sizeof(struct pkt_ctrl_command)); ++ for (i = 0; ; i++) { ++ c.command = PKT_CTRL_CMD_STATUS; ++ c.dev_index = i; ++ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) { ++ perror("ioctl"); ++ return 1; ++ } ++ if (i >= c.num_devices) ++ break; ++ if (c.pkt_dev == dev) ++ return 1; /* busy */ ++ } ++ unlink(pkt_dev_name(devname)); ++ return 0; ++} ++ ++static void setup_dev_chardev(char *pkt_device, char *device, int rem) ++{ ++ struct pkt_ctrl_command c; ++ struct stat stat_buf; ++ int ctl_fd, dev_fd; ++ ++ memset(&c, 0, sizeof(struct pkt_ctrl_command)); ++ ++ create_ctl_dev(); ++ if ((ctl_fd = open(pkt_dev_name(CTL_DEV), O_RDONLY)) < 0) { ++ perror("ctl open"); ++ return; ++ } ++ ++ if (!rem) { ++ if ((dev_fd = open(device, O_RDONLY | O_NONBLOCK)) == -1) { ++ perror("open cd-rom"); ++ goto out_close; ++ } ++ if (init_cdrom(dev_fd)) { ++ close(dev_fd); ++ goto out_close; ++ } ++ close(dev_fd); ++ ++ if (stat(device, &stat_buf) < 0) { ++ perror("stat cd-rom"); ++ goto out_close; ++ } ++ if (!S_ISBLK(stat_buf.st_mode)) { ++ fprintf(stderr, "Not a block device\n"); ++ goto out_close; ++ } ++ c.command = PKT_CTRL_CMD_SETUP; ++ c.dev = stat_buf.st_rdev; ++ ++ if (remove_stale_dev_node(ctl_fd, pkt_device) != 0) { ++ fprintf(stderr, "Device node '%s' already in use\n", pkt_device); ++ goto out_close; ++ } ++ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) { ++ perror("ioctl"); ++ goto out_close; ++ } ++ mknod(pkt_dev_name(pkt_device), S_IFBLK | 0640, c.pkt_dev); ++ } else { ++ int major, minor, remove_node; ++ ++ if ((stat(pkt_dev_name(pkt_device), &stat_buf) >= 0) && ++ S_ISBLK(stat_buf.st_mode)) { ++ major = MAJOR(stat_buf.st_rdev); ++ minor = MINOR(stat_buf.st_rdev); ++ remove_node = 1; ++ } else if (sscanf(pkt_device, "%d:%d", &major, &minor) == 2) { ++ remove_node = 0; ++ } else { ++ fprintf(stderr, "Can't find major/minor numbers\n"); ++ goto out_close; ++ } ++ ++ c.command = PKT_CTRL_CMD_TEARDOWN; ++ c.pkt_dev = MKDEV(major, minor); ++ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) { ++ perror("ioctl"); ++ goto out_close; ++ } ++ if (remove_node) ++ unlink(pkt_dev_name(pkt_device)); ++ } ++ ++out_close: ++ close(ctl_fd); ++} ++ ++static void show_mappings(void) ++{ ++ struct pkt_ctrl_command c; ++ int ctl_fd, i; ++ ++ memset(&c, 0, sizeof(struct pkt_ctrl_command)); ++ ++ create_ctl_dev(); ++ if ((ctl_fd = open(pkt_dev_name(CTL_DEV), O_RDONLY)) < 0) { ++ perror("ctl open"); ++ return; ++ } ++ ++ for (i = 0; ; i++) { ++ c.command = PKT_CTRL_CMD_STATUS; ++ c.dev_index = i; ++ if (ioctl(ctl_fd, PACKET_CTRL_CMD, &c) < 0) { ++ perror("ioctl"); ++ goto out_close; ++ } ++ if (i >= c.num_devices) ++ break; ++ if (c.dev) { ++ printf("%2d : %d:%d -> %d:%d\n", ++ i, MAJOR(c.pkt_dev), MINOR(c.pkt_dev), ++ MAJOR(c.dev), MINOR(c.dev)); ++ } ++ } ++ ++out_close: ++ close(ctl_fd); ++} ++ + int main(int argc, char **argv) + { + int rem = 0, c; ++ char *pkt_device; ++ char *device; + + if (argc == 1) + return usage(); + +- while ((c = getopt(argc, argv, "d")) != EOF) { ++ while ((c = getopt(argc, argv, "ds?")) != EOF) { + switch (c) { + case 'd': + rem = 1; + break; ++ case 's': ++ show_mappings(); ++ return 0; + default: + return usage(); + } + } +- setup_dev(argv[optind], argv[optind + 1], rem); ++ pkt_device = argv[optind]; ++ device = argv[optind + 1]; ++ if (strchr(pkt_device, '/')) ++ setup_dev(pkt_device, device, rem); ++ else ++ setup_dev_chardev(pkt_device, device, rem); + return 0; + } +_ + +-- +Peter Osterlund - petero2@telia.com +http://w1.894.telia.com/~u89404340 diff --git a/udftools-1.0.0b3-warningfixes.patch b/udftools-1.0.0b3-warningfixes.patch new file mode 100644 index 0000000..5f83597 --- /dev/null +++ b/udftools-1.0.0b3-warningfixes.patch @@ -0,0 +1,90 @@ +diff -Naupr udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h udftools-1.0.0b3/cdrwtool/cdrwtool.h +--- udftools-1.0.0b3.orig/cdrwtool/cdrwtool.h 2002-11-26 08:18:50.000000000 +0100 ++++ udftools-1.0.0b3/cdrwtool/cdrwtool.h 2006-07-27 14:16:06.000000000 +0200 +@@ -226,6 +226,7 @@ int read_disc_info(int, disc_info_t *); + int read_track_info(int, track_info_t *, int); + int reserve_track(int, struct cdrw_disc *); + int close_track(int, unsigned int); ++int close_session(int, unsigned int); + int read_buffer_cap(int, struct cdrw_disc *); + int set_cd_speed(int, int); + void cdrom_close(int); +@@ -236,5 +237,6 @@ int print_disc_track_info(int); + void make_write_page(write_params_t *, struct cdrw_disc *); + void print_params(write_params_t *); + void cdrw_init_disc(struct cdrw_disc *); ++int udf_set_version(struct udf_disc *, int); + + #endif /* _CDRWTOOL_H */ +diff -Naupr udftools-1.0.0b3.orig/include/udf_endian.h udftools-1.0.0b3/include/udf_endian.h +--- udftools-1.0.0b3.orig/include/udf_endian.h 2002-11-26 08:18:51.000000000 +0100 ++++ udftools-1.0.0b3/include/udf_endian.h 2006-07-27 14:09:30.000000000 +0200 +@@ -23,6 +23,8 @@ + #ifndef __UDF_ENDIAN_H + #define __UDF_ENDIAN_H + ++#include ++ + #include "bswap.h" + + static inline lb_addr lelb_to_cpu(lb_addr in) +diff -Naupr udftools-1.0.0b3.orig/libudffs/unicode.c udftools-1.0.0b3/libudffs/unicode.c +--- udftools-1.0.0b3.orig/libudffs/unicode.c 2002-11-26 08:18:51.000000000 +0100 ++++ udftools-1.0.0b3/libudffs/unicode.c 2006-07-27 14:11:17.000000000 +0200 +@@ -169,8 +169,6 @@ error_out: + + int decode_string(struct udf_disc *disc, char *in, char *out, int inlen) + { +- int i; +- + if (disc->flags & FLAG_UTF8) + return decode_utf8(in, out, inlen); + else if (disc->flags & (FLAG_UNICODE8 | FLAG_UNICODE16)) +diff -Naupr udftools-1.0.0b3.orig/pktsetup/pktsetup.c udftools-1.0.0b3/pktsetup/pktsetup.c +--- udftools-1.0.0b3.orig/pktsetup/pktsetup.c 2002-11-26 08:18:51.000000000 +0100 ++++ udftools-1.0.0b3/pktsetup/pktsetup.c 2006-07-27 14:18:24.000000000 +0200 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #include + +diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.am udftools-1.0.0b3/wrudf/Makefile.am +--- udftools-1.0.0b3.orig/wrudf/Makefile.am 2002-11-26 08:18:51.000000000 +0100 ++++ udftools-1.0.0b3/wrudf/Makefile.am 2006-07-27 14:21:24.000000000 +0200 +@@ -1,5 +1,5 @@ + bin_PROGRAMS = wrudf + wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses +-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ++wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h + + AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG +diff -Naupr udftools-1.0.0b3.orig/wrudf/Makefile.in udftools-1.0.0b3/wrudf/Makefile.in +--- udftools-1.0.0b3.orig/wrudf/Makefile.in 2004-02-23 10:33:48.000000000 +0100 ++++ udftools-1.0.0b3/wrudf/Makefile.in 2006-07-27 14:21:44.000000000 +0200 +@@ -85,7 +85,7 @@ am__quote = @am__quote@ + install_sh = @install_sh@ + bin_PROGRAMS = wrudf + wrudf_LDADD = $(top_builddir)/libudffs/libudffs.la -lreadline -lncurses +-wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ++wrudf_SOURCES = wrudf.c wrudf-cmnd.c wrudf-desc.c wrudf-cdrw.c wrudf-cdr.c ide-pc.c wrudf.h ide-pc.h ../include/ecma_167.h ../include/osta_udf.h ../include/bswap.h ../include/libudffs.h + + AM_CPPFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DDEBUG + subdir = wrudf +diff -Naupr udftools-1.0.0b3.orig/wrudf/wrudf.h udftools-1.0.0b3/wrudf/wrudf.h +--- udftools-1.0.0b3.orig/wrudf/wrudf.h 2002-11-26 08:18:51.000000000 +0100 ++++ udftools-1.0.0b3/wrudf/wrudf.h 2006-07-27 14:22:33.000000000 +0200 +@@ -23,9 +23,11 @@ + #include + #include + #include ++#include + + #include "ecma_167.h" + #include "osta_udf.h" ++#include "libudffs.h" + + struct generic_desc + { diff --git a/udftools-1.0.0b3-wrudf-gcc4.patch b/udftools-1.0.0b3-wrudf-gcc4.patch new file mode 100644 index 0000000..1369012 --- /dev/null +++ b/udftools-1.0.0b3-wrudf-gcc4.patch @@ -0,0 +1,53 @@ +Subject: Bug#288621: udftools: FTBFS (amd64/gcc-4.0): invalid lvalue in assignment +From: Andreas Jochens +Message-Id: +Date: Tue, 04 Jan 2005 19:29:01 +0100 +Lines: 59 + +Package: udftools +Severity: normal +Tags: patch + +When building 'udftools' on amd64 with gcc-4.0, +I get the following error: + +wrudf.c:119: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:119: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:119: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness +wrudf.c:119: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness +wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:230: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:230: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness +wrudf.c:230: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness +wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:245: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness +wrudf.c:245: warning: pointer targets in passing argument 1 of 'strcmp' differ in signedness +wrudf.c:245: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness +wrudf.c:248: error: invalid lvalue in assignment +make[2]: *** [wrudf.o] Error 1 +make[2]: Leaving directory `/udftools-1.0.0b3/wrudf' + +With the attached patch 'udftools' can be compiled +on amd64 using gcc-4.0. + +The patch also changes the Build-Depends from 'libreadline4-dev' +to 'libreadline5-dev'. + +Regards +Andreas Jochens + +diff -urN ../tmp-orig/udftools-1.0.0b3/wrudf/wrudf.c ./wrudf/wrudf.c +--- ../tmp-orig/udftools-1.0.0b3/wrudf/wrudf.c 2002-11-26 08:18:51.000000000 +0100 ++++ ./wrudf/wrudf.c 2005-01-04 16:56:49.394078200 +0100 +@@ -245,7 +245,7 @@ + } else if( strncmp( spm->partIdent.ident, UDF_ID_VIRTUAL, strlen(UDF_ID_VIRTUAL)) == 0 ) + virtualPartitionNum = i; + } +- (char*)spm += spm->partitionMapLength; ++ spm = (char*)spm + spm->partitionMapLength; + } + + if( medium == CDR ) { +diff -urN ../tmp-orig/udftools-1.0.0b3/debian/control ./debian/control diff --git a/udftools-2.3-backported_fixes.patch b/udftools-2.3-backported_fixes.patch deleted file mode 100644 index 94be4b3..0000000 --- a/udftools-2.3-backported_fixes.patch +++ /dev/null @@ -1,357 +0,0 @@ -From 5905cc991fa466239fba4b6cd7f9f3bda5a87641 Mon Sep 17 00:00:00 2001 -From: Zhang Sheng -Date: Wed, 24 Mar 2021 13:50:05 +0800 -Subject: [PATCH] libudffs: Fix misspelling - ---- - libudffs/extent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libudffs/extent.c b/libudffs/extent.c -index 827d2b7..382962e 100644 ---- a/libudffs/extent.c -+++ b/libudffs/extent.c -@@ -449,7 +449,7 @@ struct udf_desc *find_desc(struct udf_extent *ext, uint32_t offset) - /** - * @brief allocate a new udf_descriptor having a udf_data item and insert it - * into the udf_descriptor list of a udf_extent ordered by block number -- * @oaram ext the udf_extent containing the udf_descriptor list head -+ * @param ext the udf_extent containing the udf_descriptor list head - * @param ident the tag ident of the new udf_descriptor - * @param offset the first block the new descriptor describes - * @param length the length of the udf_data item payload in bytes - -From 0d92ec4627e9921c4d8fa6f9db2ec584d5c8e3ad Mon Sep 17 00:00:00 2001 -From: Zhang Sheng -Date: Thu, 1 Apr 2021 21:15:16 +0800 -Subject: [PATCH] wrudf: Fix incorrect return value checking for `lseek` - ---- - wrudf/wrudf-cdrw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/wrudf/wrudf-cdrw.c b/wrudf/wrudf-cdrw.c -index 7e4391e..569c578 100644 ---- a/wrudf/wrudf-cdrw.c -+++ b/wrudf/wrudf-cdrw.c -@@ -583,7 +583,7 @@ readSingleBlock(uint32_t pbn) - return blockBuffer; - } else { - off = lseek(device, 2048 * pbn, SEEK_SET); -- if( off != (off_t)-1 ) -+ if( off == (off_t)-1 ) - return NULL; - len = read(device, blockBuffer, 2048); - if( len != 2048 ) - -From 6063117955e96f2acd4425dade79fa1428a6cced Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 20 Apr 2021 00:13:03 +0200 -Subject: [PATCH] bswap: Fix typo - ---- - include/bswap.h | 96 ++++++++++++++++++++++++------------------------- - 1 file changed, 48 insertions(+), 48 deletions(-) - -diff --git a/include/bswap.h b/include/bswap.h -index 8cfc7ff..e436903 100644 ---- a/include/bswap.h -+++ b/include/bswap.h -@@ -28,17 +28,17 @@ - #include - #include - --#define constant_swab16(x) \ -+#define constant_swap16(x) \ - ((uint16_t)((((uint16_t)(x) & 0x00FFU) << 8) | \ - (((uint16_t)(x) & 0xFF00U) >> 8))) - --#define constant_swab32(x) \ -+#define constant_swap32(x) \ - ((uint32_t)((((uint32_t)(x) & 0x000000FFU) << 24) | \ - (((uint32_t)(x) & 0x0000FF00U) << 8) | \ - (((uint32_t)(x) & 0x00FF0000U) >> 8) | \ - (((uint32_t)(x) & 0xFF000000U) >> 24))) - --#define constant_swab64(x) \ -+#define constant_swap64(x) \ - ((uint64_t)((((uint64_t)(x) & 0x00000000000000FFULL) << 56) | \ - (((uint64_t)(x) & 0x000000000000FF00ULL) << 40) | \ - (((uint64_t)(x) & 0x0000000000FF0000ULL) << 24) | \ -@@ -48,13 +48,13 @@ - (((uint64_t)(x) & 0x00FF000000000000ULL) >> 40) | \ - (((uint64_t)(x) & 0xFF00000000000000ULL) >> 56))) - --static inline uint16_t swab16(uint16_t x) -+static inline uint16_t swap16(uint16_t x) - { - return ((uint16_t)((((uint16_t)(x) & 0x00FFU) << 8) | \ - (((uint16_t)(x) & 0xFF00U) >> 8))); - } - --static inline uint32_t swab32(uint32_t x) -+static inline uint32_t swap32(uint32_t x) - { - return ((uint32_t)((((uint32_t)(x) & 0x000000FFU) << 24) | \ - (((uint32_t)(x) & 0x0000FF00U) << 8) | \ -@@ -62,7 +62,7 @@ static inline uint32_t swab32(uint32_t x) - (((uint32_t)(x) & 0xFF000000U) >> 24))); - } - --static inline uint64_t swab64(uint64_t x) -+static inline uint64_t swap64(uint64_t x) - { - return ((uint64_t)((((uint64_t)(x) & 0x00000000000000FFULL) << 56) | \ - (((uint64_t)(x) & 0x000000000000FF00ULL) << 40) | \ -@@ -74,17 +74,17 @@ static inline uint64_t swab64(uint64_t x) - (((uint64_t)(x) & 0xFF00000000000000ULL) >> 56))); - } - --#define constant_swab16p(x) \ -+#define constant_swap16p(x) \ - ((uint16_t)(((*(uint16_t *)(x) & 0x00FFU) << 8) | \ - ((*(uint16_t *)(x) & 0xFF00U) >> 8))) - --#define constant_swab32p(x) \ -+#define constant_swap32p(x) \ - ((uint32_t)(((*(uint32_t *)(x) & 0x000000FFU) << 24) | \ - ((*(uint32_t *)(x) & 0x0000FF00U) << 8) | \ - ((*(uint32_t *)(x) & 0x00FF0000U) >> 8) | \ - ((*(uint32_t *)(x) & 0xFF000000U) >> 24))) - --#define constant_swab64p(x) \ -+#define constant_swap64p(x) \ - ((uint64_t)(((*(uint64_t *)(x) & 0x00000000000000FFULL) << 56) | \ - ((*(uint64_t *)(x) & 0x000000000000FF00ULL) << 40) | \ - ((*(uint64_t *)(x) & 0x0000000000FF0000ULL) << 24) | \ -@@ -95,13 +95,13 @@ static inline uint64_t swab64(uint64_t x) - ((*(uint64_t *)(x) & 0xFF00000000000000ULL) >> 56))) - - --static inline uint16_t swab16p(uint16_t *x) -+static inline uint16_t swap16p(uint16_t *x) - { - return ((uint16_t)(((*(uint16_t *)(x) & 0x00FFU) << 8) | \ - ((*(uint16_t *)(x) & 0xFF00U) >> 8))); - } - --static inline uint32_t swab32p(uint32_t *x) -+static inline uint32_t swap32p(uint32_t *x) - { - return ((uint32_t)(((*(uint32_t *)(x) & 0x000000FFU) << 24) | \ - ((*(uint32_t *)(x) & 0x0000FF00U) << 8) | \ -@@ -109,7 +109,7 @@ static inline uint32_t swab32p(uint32_t *x) - ((*(uint32_t *)(x) & 0xFF000000U) >> 24))); - } - --static inline uint64_t swab64p(uint64_t *x) -+static inline uint64_t swap64p(uint64_t *x) - { - return ((uint64_t)(((*(uint64_t *)(x) & 0x00000000000000FFULL) << 56) | \ - ((*(uint64_t *)(x) & 0x000000000000FF00ULL) << 40) | \ -@@ -124,37 +124,37 @@ static inline uint64_t swab64p(uint64_t *x) - #ifdef WORDS_BIGENDIAN - - #define le16_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab16(x) : \ -- swab16(x)) -+ constant_swap16(x) : \ -+ swap16(x)) - - #define le32_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab32(x) : \ -- swab32(x)) -+ constant_swap32(x) : \ -+ swap32(x)) - - #define le64_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab64(x) : \ -- swab64(x)) -+ constant_swap64(x) : \ -+ swap64(x)) - - --#define constant_le16_to_cpu(x) constant_swab16((x)) --#define constant_le32_to_cpu(x) constant_swab32((x)) --#define constant_le64_to_cpu(x) constant_swab64((x)) -+#define constant_le16_to_cpu(x) constant_swap16((x)) -+#define constant_le32_to_cpu(x) constant_swap32((x)) -+#define constant_le64_to_cpu(x) constant_swap64((x)) - - #define le16_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab16p(x) : \ -- swab16p(x)) -+ constant_swap16p(x) : \ -+ swap16p(x)) - - #define le32_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab32p(x) : \ -- swab32p(x)) -+ constant_swap32p(x) : \ -+ swap32p(x)) - - #define le64_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab64p(x) : \ -- swab64p(x)) -+ constant_swap64p(x) : \ -+ swap64p(x)) - --#define constant_le16_to_cpup(x) constant_swab16p((x)) --#define constant_le32_to_cpup(x) constant_swab32p((x)) --#define constant_le64_to_cpup(x) constant_swab64p((x)) -+#define constant_le16_to_cpup(x) constant_swap16p((x)) -+#define constant_le32_to_cpup(x) constant_swap32p((x)) -+#define constant_le64_to_cpup(x) constant_swap64p((x)) - - #define be16_to_cpu(x) ((uint16_t)(x)) - #define be32_to_cpu(x) ((uint32_t)(x)) -@@ -191,37 +191,37 @@ static inline uint64_t swab64p(uint64_t *x) - #define constant_le64_to_cpup(x) (*(uint64_t *)(x)) - - #define be16_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab16(x) : \ -- swab16(x)) -+ constant_swap16(x) : \ -+ swap16(x)) - - #define be32_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab32(x) : \ -- swab32(x)) -+ constant_swap32(x) : \ -+ swap32(x)) - - #define be64_to_cpu(x) (__builtin_constant_p(x) ? \ -- constant_swab64(x) : \ -- swab64(x)) -+ constant_swap64(x) : \ -+ swap64(x)) - - --#define constant_be16_to_cpu(x) constant_swab16((x)) --#define constant_be32_to_cpu(x) constant_swab32((x)) --#define constant_be64_to_cpu(x) constant_swab64((x)) -+#define constant_be16_to_cpu(x) constant_swap16((x)) -+#define constant_be32_to_cpu(x) constant_swap32((x)) -+#define constant_be64_to_cpu(x) constant_swap64((x)) - - #define be16_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab16p(x) : \ -- swab16p(x)) -+ constant_swap16p(x) : \ -+ swap16p(x)) - - #define be32_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab32p(x) : \ -- swab32p(x)) -+ constant_swap32p(x) : \ -+ swap32p(x)) - - #define be64_to_cpup(x) (__builtin_constant_p(x) ? \ -- constant_swab64p(x) : \ -- swab64p(x)) -+ constant_swap64p(x) : \ -+ swap64p(x)) - --#define constant_be16_to_cpup(x) constant_swab16p((x)) --#define constant_be32_to_cpup(x) constant_swab32p((x)) --#define constant_be64_to_cpup(x) constant_swab64p((x)) -+#define constant_be16_to_cpup(x) constant_swap16p((x)) -+#define constant_be32_to_cpup(x) constant_swap32p((x)) -+#define constant_be64_to_cpup(x) constant_swap64p((x)) - - #endif /* WORDS_BIGENDIAN */ - - -From 07c5f12de1f9d3582b21d78296b7d05403dca008 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Tue, 20 Apr 2021 00:13:26 +0200 -Subject: [PATCH] mkudffs: Add missing branch for mmc_profile detection - ---- - mkudffs/options.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/mkudffs/options.c b/mkudffs/options.c -index 58d810a..0b9e4a7 100644 ---- a/mkudffs/options.c -+++ b/mkudffs/options.c -@@ -797,6 +797,10 @@ void parse_args(int argc, char *argv[], struct udf_disc *disc, char **device, in - else /* All other disc statuses means that medium is recordable = CD-R */ - mmc_profile = 0x09; - } -+ else -+ { -+ mmc_profile = 0x00; /* Unknown optical disc */ -+ } - } - else - { - -From 7a432b0bcd76cbd6a79925cde213f5d9073df137 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Sat, 12 Jun 2021 12:09:05 +0200 -Subject: [PATCH] wrudf: Fix parsing Volume Descriptor Sequence - -Fixes reading Reserve Volume Descriptor Sequence and fixes crashing when -readTaggedBlock() returns NULL. ---- - wrudf/wrudf.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/wrudf/wrudf.c b/wrudf/wrudf.c -index 79ca383..7a500c9 100644 ---- a/wrudf/wrudf.c -+++ b/wrudf/wrudf.c -@@ -93,6 +93,7 @@ void - initialise(char *devicename) - { - uint32_t i, len, blkno, lastblk, size; -+ int inMainSeq; - long_ad *fsdAd; - short_ad *adSpaceMap; - struct sparablePartitionMap *spm; -@@ -158,17 +159,17 @@ initialise(char *devicename) - /* read Volume Descriptor Sequence */ - blkno = extentMainVolDescSeq.extLocation; - len = extentMainVolDescSeq.extLength; -+ inMainSeq = 1; - - for( i = 0; i < len; blkno++, i += 2048 ) { -- int inMainSeq = 1; -- - if( (p = readTaggedBlock(blkno, ABSOLUTE)) == NULL ) { - if( !inMainSeq ) - fail("Volume Descriptor Sequences read failure\n"); -- blkno = extentRsrvVolDescSeq.extLocation; -+ blkno = extentRsrvVolDescSeq.extLocation - 1; - len = extentRsrvVolDescSeq.extLength; - inMainSeq = 0; -- i = 0; -+ i = (uint32_t) -2048; -+ continue; - } - switch( p->descTag.tagIdent ) { - case TAG_IDENT_PVD: - -From b08c75d234d69b2d1cf07dc639d432db767a775f Mon Sep 17 00:00:00 2001 -From: Jiri Kucera -Date: Sun, 13 Jun 2021 19:37:47 +0200 -Subject: [PATCH] wrudf-cdr.c: Exit on allocation failure - ---- - wrudf/wrudf-cdr.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/wrudf/wrudf-cdr.c b/wrudf/wrudf-cdr.c -index 538167a..27883da 100644 ---- a/wrudf/wrudf-cdr.c -+++ b/wrudf/wrudf-cdr.c -@@ -26,7 +26,7 @@ uint32_t newVATentry() { - sizeVAT += 2048; - vat = realloc(vat, sizeVAT); - if( vat == NULL ) -- printf("VAT reallocation failed\n"); -+ fail("VAT reallocation failed\n"); - } - /* could go through VAT and try to find unused 0xFFFFFFFF entry rather than alloc new one at the end */ - vat[newVATindex] = getNWA() - pd->partitionStartingLocation; diff --git a/udftools.spec b/udftools.spec index 5f86291..815c7be 100644 --- a/udftools.spec +++ b/udftools.spec @@ -1,218 +1,54 @@ Summary: Linux UDF Filesystem userspace utilities Name: udftools -Version: 2.3 -Release: 14%{?dist} -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +Version: 1.0.0b3 +Release: 7%{?dist} +License: GPL +Group: Applications/Archiving URL: http://sourceforge.net/projects/linux-udf/ -Source: https://github.com/pali/udftools/releases/download/%{version}/udftools-%{version}.tar.gz -Patch1: udftools-2.3-backported_fixes.patch -BuildRequires: make +Source: http://dl.sf.net/linux-udf/udftools-%{version}.tar.gz +Patch0: udftools-1.0.0b3-pktsetup-chardev.patch +Patch1: udftools-1.0.0b3-mkudffs-bigendian.patch +Patch2: udftools-1.0.0b3-wrudf-gcc4.patch +Patch3: udftools-1.0.0b3-warningfixes.patch +Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: readline-devel, ncurses-devel -BuildRequires: autoconf, automake, libtool, perl-Carp -BuildRequires: udev -Requires: udev %description Linux UDF Filesystem userspace utilities. %prep -%autosetup -p1 +%setup +%patch0 -p1 -b .pktsetup-chardev +%patch1 -p1 -b .mkudffs-bigendian +%patch2 -p1 -b .wrudf-gcc4 +%patch3 -p1 -b .warningfixes + %build -#./bootstrap #not in the tarball anymore, lets use pregenerated autotools -##export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing --std=gnu99" %configure -%make_build -##%%{__make} %%{?_smp_mflags} +%{__make} %{?_smp_mflags} + %install -%make_install -#./libtool --finish %%{buildroot}%%{_libdir} #causes failure and is probably unneeded, we dont ship a library -rm -rf %{buildroot}%{_bindir}/udffsck +%{__rm} -rf %{buildroot} +%makeinstall + + +%clean +%{__rm} -rf %{buildroot} %files -%doc AUTHORS NEWS -%license COPYING +%defattr(-, root, root, 0755) +%doc AUTHORS ChangeLog COPYING %{_bindir}/* -%{_sbindir}/* -%{_pkgdocdir}/* +%exclude %{_libdir}/libudffs.a +%exclude %{_libdir}/libudffs.la %{_mandir}/man?/* -%{_udevrulesdir}/80-pktsetup.rules %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 2.3-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Sat Jan 17 2026 Fedora Release Engineering - 2.3-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Jul 25 2025 Fedora Release Engineering - 2.3-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Sun Jan 19 2025 Fedora Release Engineering - 2.3-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Fri Jul 26 2024 Miroslav Suchý - 2.3-10 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 2.3-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 2.3-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 2.3-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 2.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 2.3-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 2.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 2.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jun 15 2021 Jiri Kucera - 2.3-2 -- wrudf: Fix parsing Volume Descriptor Sequence -- wrudf: Exit on allocation failure - -* Wed Jun 09 2021 Jiri Kucera - 2.3-1 -- Update to 2.3 - -* Wed Jan 27 2021 Fedora Release Engineering - 2.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 2.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Apr 20 2020 Filipe Rosset - 2.2-1 -- Update to 2.2 - -* Fri Jan 31 2020 Fedora Release Engineering - 2.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sat Jul 27 2019 Fedora Release Engineering - 2.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sun Feb 17 2019 Igor Gnatenko - 2.1-3 -- Rebuild for readline 8.0 - -* Sun Feb 03 2019 Fedora Release Engineering - 2.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Dec 29 2018 Filipe Rosset - 2.1-1 -- new upstream version 2.1 fixes rhbz #1625987 + spec cleanup and modernization - -* Sat Jul 14 2018 Fedora Release Engineering - 1.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 1.3-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 1.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 1.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 1.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Jan 24 2017 Frantisek Kluknavsky - 1.3-1 -- rebase to 1.3 - -* Thu Jan 12 2017 Igor Gnatenko - 1.2-2 -- Rebuild for readline 7.x - -* Wed Jul 13 2016 Frantisek Kluknavsky - 1.2-1 -- Rebase from a new upstream, dropped patches -- Several binaries moved from bin to sbin - -* Fri Feb 05 2016 Fedora Release Engineering - 1.0.0b3-31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jun 19 2015 Fedora Release Engineering - 1.0.0b3-30 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Feb 20 2015 Frantisek Kluknavsky - 1.0.0b3-29 -- FTBFS fixed, --std=gnu89 is no longer default with gcc-5 - -* Mon Aug 18 2014 Fedora Release Engineering - 1.0.0b3-28 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 1.0.0b3-27 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Apr 09 2014 Frantisek Kluknavsky - 1.0.0b3-26 -- added missing option in man pages - -* Fri Oct 04 2013 Frantisek Kluknavsky - 1.0.0b3-25 -- invalid source url fixed - -* Sun Aug 04 2013 Fedora Release Engineering - 1.0.0b3-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Apr 16 2013 Frantisek Kluknavsky - 1.0.0b3-23 -- Build dependency on txt2man unacceptable. Included final man page wrudf.1 instead of source. - -* Tue Apr 16 2013 Frantisek Kluknavsky - 1.0.0b3-22 -- added man page for wrudf - -* Mon Apr 15 2013 Frantisek Kluknavsky - 1.0.0b3-21 -- added "--help"/"-h" with basic info to wrudf - -* Fri Apr 05 2013 Frantisek Kluknavsky - 1.0.0b3-20 -- udffsck is an empty placeholder, erased - -* Mon Mar 25 2013 Harald Hoyer 1.0.0b3-19 -- run autoreconf to support aarch64 architecture -Resolves: rhbz#926671 - -* Fri Feb 15 2013 Fedora Release Engineering - 1.0.0b3-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Sep 18 2012 Honza Horak - 1.0.0b3-17 -- Minor spec file fixes - -* Sun Jul 22 2012 Fedora Release Engineering - 1.0.0b3-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jan 26 2012 Honza Horak - 1.0.0b3-15 -- fixed segmentation fault - Resolves: #685005 -- fixed some most obvious issues from static analysis - -* Sat Jan 14 2012 Fedora Release Engineering - 1.0.0b3-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Feb 07 2011 Fedora Release Engineering - 1.0.0b3-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Jun 23 2010 Roman Rakus - 1.0.0b3-12 -- Build with -fno-strict-aliasing CFLAG - -* Sun Jul 26 2009 Fedora Release Engineering - 1.0.0b3-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Wed Feb 25 2009 Fedora Release Engineering - 1.0.0b3-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Mon Feb 18 2008 Fedora Release Engineering - 1.0.0b3-9 -- Autorebuild for GCC 4.3 - -* Thu Aug 23 2007 Harald Hoyer - 1.0.0b3-8 -- fixed compile issues -- added more bigendian patches -- changed license tag - * Mon Aug 28 2006 Matthias Saou 1.0.0b3-7 - FC6 rebuild.