diff --git a/.gitignore b/.gitignore index 3e5c554..e671b73 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ udftools-1.0.0b3.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 5a01dbc..4f2392e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (udftools-2.2.tar.gz) = 1d6f7b725053ab8c2092ca07bce07fb075168ba48f7d2580076ee84b2652af3898622746c5a2f0bdb8c0d1d0e09d1f4a3cbaae4f998924652a56561b84690e2b +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..112fbc0 --- /dev/null +++ b/udftools-2.3-backported_fixes.patch @@ -0,0 +1,288 @@ +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 + { diff --git a/udftools.spec b/udftools.spec index 94fb4e1..3c28250 100644 --- a/udftools.spec +++ b/udftools.spec @@ -1,11 +1,11 @@ Summary: Linux UDF Filesystem userspace utilities Name: udftools -Version: 2.2 -Release: 3%{?dist} +Version: 2.3 +Release: 1%{?dist} License: GPLv2+ URL: http://sourceforge.net/projects/linux-udf/ -Source: https://github.com/pali/udftools/releases/tag/%{version}/udftools-%{version}.tar.gz -Source2: wrudf.1 +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 @@ -17,24 +17,23 @@ Linux UDF Filesystem userspace utilities. %prep -%setup +%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} +##%%{__make} %%{?_smp_mflags} %install %make_install -#./libtool --finish %{buildroot}%{_libdir} #causes failure and is probably unneeded, we dont ship a library -install -m 644 %{SOURCE2} %buildroot%{_mandir}/man1/ +#./libtool --finish %%{buildroot}%%{_libdir} #causes failure and is probably unneeded, we dont ship a library rm -rf %{buildroot}%{_bindir}/udffsck %files -%doc AUTHORS ChangeLog +%doc AUTHORS NEWS %license COPYING %{_bindir}/* %{_sbindir}/* @@ -44,6 +43,9 @@ rm -rf %{buildroot}%{_bindir}/udffsck %changelog +* 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 diff --git a/wrudf.1 b/wrudf.1 deleted file mode 100644 index cab2d53..0000000 --- a/wrudf.1 +++ /dev/null @@ -1,60 +0,0 @@ -.\" Text automatically generated by txt2man -.TH wrudf 1 "16 April 2013" "udftools" "Linux Reference Manual" -.SH NAME -\fBwrudf \fP- Maintain an UDF filesystem. -.SH SYNOPSIS -.nf -.fam C -\fBwrudf\fP \fIdevice\fP -\fBwrudf\fP \fB--help\fP | \fB-help\fP | \fB-h\fP -.fam T -.fi -.fam T -.fi -.SH DESCRIPTION -\fBwrudf\fP provides an interactive shell with operations on existing UDF filesystem: cp, rm, mkdir, rmdir, ls, cd. -.SS COMMANDS -.TP -.B -cp -copy -.TP -.B -rm -remove -.TP -.B -mkdir -make directory -.TP -.B -rmdir -remove directory -.TP -.B -lsc -list files (Compact disc version) -.TP -.B -lsh -list files (Hard disc version) -.TP -.B -cdc -change working directory (Compact disc) -.TP -.B -cdh -change working directory (Hard disc) -.TP -.B -quit -quit \fBwrudf\fP -.TP -.B -exit -quit \fBwrudf\fP -.SH AVAILABILITY -\fBwrudf\fP is part of the udftools package and is available from http://linux-udf.sourceforge.net. -.SH SEE ALSO -\fBcdrwtool\fP(1), \fBmkudffs\fP(8), \fBpktsetup\fP(8)