From 96f215d25f39e5fc296ed882db06e906e5b36133 Mon Sep 17 00:00:00 2001
From: James Antill <jantill@redhat.com>
Date: Thu, 26 May 2022 15:43:18 -0400
Subject: [PATCH] Auto sync2gitlab import of udftools-2.3-2.el8.src.rpm

---
 .gitignore                          |   1 +
 EMPTY                               |   1 -
 sources                             |   1 +
 udftools-2.3-backported_fixes.patch | 357 ++++++++++++++++++++++++++++
 udftools.spec                       | 211 ++++++++++++++++
 5 files changed, 570 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 delete mode 100644 EMPTY
 create mode 100644 sources
 create mode 100644 udftools-2.3-backported_fixes.patch
 create mode 100644 udftools.spec

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1f1754c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/udftools-2.3.tar.gz
diff --git a/EMPTY b/EMPTY
deleted file mode 100644
index 0519ecb..0000000
--- a/EMPTY
+++ /dev/null
@@ -1 +0,0 @@
- 
\ No newline at end of file
diff --git a/sources b/sources
new file mode 100644
index 0000000..4f2392e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (udftools-2.3.tar.gz) = 17304264388ae53e348d6aa870f0d23c29477344fee848236b46886c086221941872073974f804c0735eafd0cf9f7acdac7988132f03c0a87dba37467b5bda95
diff --git a/udftools-2.3-backported_fixes.patch b/udftools-2.3-backported_fixes.patch
new file mode 100644
index 0000000..94be4b3
--- /dev/null
+++ b/udftools-2.3-backported_fixes.patch
@@ -0,0 +1,357 @@
+From 5905cc991fa466239fba4b6cd7f9f3bda5a87641 Mon Sep 17 00:00:00 2001
+From: Zhang Sheng <zhangsheng@uniontech.com>
+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 <zhangsheng@uniontech.com>
+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?= <pali.rohar@gmail.com>
+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 <stdint.h>
+ #include <sys/types.h>
+ 
+-#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?= <pali.rohar@gmail.com>
+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?= <pali.rohar@gmail.com>
+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 <jkucera@redhat.com>
+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
new file mode 100644
index 0000000..90f749e
--- /dev/null
+++ b/udftools.spec
@@ -0,0 +1,211 @@
+Summary: Linux UDF Filesystem userspace utilities
+Name: udftools
+Version: 2.3
+Release: 2%{?dist}
+License: GPLv2+
+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
+BuildRequires: readline-devel, ncurses-devel
+BuildRequires: autoconf, automake, libtool, perl-Carp
+BuildRequires: udev
+Requires: udev
+
+%description
+Linux UDF Filesystem userspace utilities.
+
+
+%prep
+%autosetup -p1
+
+%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}
+
+%install
+%make_install
+#./libtool --finish %%{buildroot}%%{_libdir} #causes failure and is probably unneeded, we dont ship a library
+rm -rf %{buildroot}%{_bindir}/udffsck
+
+
+%files
+%doc AUTHORS NEWS
+%license COPYING
+%{_bindir}/*
+%{_sbindir}/*
+%{_pkgdocdir}/*
+%{_mandir}/man?/*
+%{_udevrulesdir}/80-pktsetup.rules
+
+
+%changelog
+* Tue Jun 15 2021 Jiri Kucera <jkucera@redhat.com> - 2.3-2
+- wrudf: Fix parsing Volume Descriptor Sequence
+- wrudf: Exit on allocation failure
+  Related: #1882531
+
+* Fri Jun 11 2021 Jiri Kucera <jkucera@redhat.com> - 2.3-1
+- Update to 2.3
+  Related: #1882531
+
+* Thu May 27 2021 Jiri Kucera <jkucera@redhat.com> - 2.2-5
+- Rebuild
+  Related: #1882531
+
+* Wed May 19 2021 Jiri Kucera <jkucera@redhat.com> - 2.2-4
+- Import to rhel-8.5.0
+  Resolves: #1882531
+
+* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Apr 20 2020 Filipe Rosset <rosset.filipe@gmail.com> - 2.2-1
+- Update to 2.2
+
+* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.1-3
+- Rebuild for readline 8.0
+
+* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Sat Dec 29 2018 Filipe Rosset <rosset.filipe@gmail.com> - 2.1-1
+- new upstream version 2.1 fixes rhbz #1625987 + spec cleanup and modernization
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jan 24 2017 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.3-1
+- rebase to 1.3
+
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1.2-2
+- Rebuild for readline 7.x
+
+* Wed Jul 13 2016 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.2-1
+- Rebase from a new upstream, dropped patches
+- Several binaries moved from bin to sbin
+
+* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0b3-31
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Fri Feb 20 2015 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-29
+- FTBFS fixed, --std=gnu89 is no longer default with gcc-5
+
+* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-28
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-27
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed Apr 09 2014 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-26
+- added missing option in man pages
+
+* Fri Oct 04 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-25
+- invalid source url fixed
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Tue Apr 16 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-23
+- Build dependency on txt2man unacceptable. Included final man page wrudf.1 instead of source.
+
+* Tue Apr 16 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-22
+- added man page for wrudf
+
+* Mon Apr 15 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-21
+- added "--help"/"-h" with basic info to wrudf
+
+* Fri Apr 05 2013 Frantisek Kluknavsky <fkluknav@redhat.com> - 1.0.0b3-20
+- udffsck is an empty placeholder, erased
+
+* Mon Mar 25 2013 Harald Hoyer <harald@redhat.com> 1.0.0b3-19
+- run autoreconf to support aarch64 architecture
+Resolves: rhbz#926671
+
+* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Tue Sep 18 2012 Honza Horak <hhorak@redhat.com> - 1.0.0b3-17
+- Minor spec file fixes
+
+* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Jan 26 2012 Honza Horak <hhorak@redhat.com> - 1.0.0b3-15
+- fixed segmentation fault
+  Resolves: #685005
+- fixed some most obvious issues from static analysis
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Wed Jun 23 2010 Roman Rakus <rrakus@redhat.com> - 1.0.0b3-12
+- Build with -fno-strict-aliasing CFLAG
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.0b3-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.0.0b3-9
+- Autorebuild for GCC 4.3
+
+* Thu Aug 23 2007 Harald Hoyer <harald@redhat.com> - 1.0.0b3-8
+- fixed compile issues
+- added more bigendian patches
+- changed license tag
+
+* Mon Aug 28 2006 Matthias Saou <http://freshrpms.net/> 1.0.0b3-7
+- FC6 rebuild.
+
+* Mon Mar  6 2006 Matthias Saou <http://freshrpms.net/> 1.0.0b3-6
+- Add ncurses-devel build requirement, since it's not pulled in anymore.
+- Add patch to fix as many trivial warnings as possible. Some stuff seems to
+  still not be 64bit clean, though.
+
+* Mon Mar  6 2006 Matthias Saou <http://freshrpms.net/> 1.0.0b3-5
+- FC5 rebuild.
+
+* Thu Feb  9 2006 Matthias Saou <http://freshrpms.net/> 1.0.0b3-4
+- Rebuild for new gcc/glibc.
+- Exclude the static library... there isn't even a header file.
+
+* Tue May  3 2005 Matthias Saou <http://freshrpms.net/> 1.0.0b3-3
+- Include patches to fix big endian issue and gcc4 compile.
+
+* Mon Feb  7 2005 Matthias Saou <http://freshrpms.net/> 1.0.0b3-1
+- Initial RPM release, based on spec file from John Treacy.
+- Exclude .la file.
+- Remove unneeded /sbin/ldconfig calls (only a static lib for now).
+