diff --git a/SPECS-EXTENDED/udftools/udftools-2.3-backported_fixes.patch b/SPECS-EXTENDED/udftools/udftools-2.3-backported_fixes.patch new file mode 100644 index 00000000000..94be4b3c5ed --- /dev/null +++ b/SPECS-EXTENDED/udftools/udftools-2.3-backported_fixes.patch @@ -0,0 +1,357 @@ +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/SPECS-EXTENDED/udftools/udftools.signatures.json b/SPECS-EXTENDED/udftools/udftools.signatures.json index 0530f850770..93f4015b06f 100644 --- a/SPECS-EXTENDED/udftools/udftools.signatures.json +++ b/SPECS-EXTENDED/udftools/udftools.signatures.json @@ -1,6 +1,5 @@ { "Signatures": { - "udftools-2.1.tar.gz": "783221bcc2518ea480cee01ceeb8825db7a089f4e986b557f6460f89636142b6", - "wrudf.1": "970a2547045d13e9a76f57339e6152747bc25f5f30c84006cbb6faaa6937d4bc" + "udftools-2.3.tar.gz": "750dcf5c797765eb42265e0a56d1a99f97f94b7f6f4534263a5410503f0caf59" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/udftools/udftools.spec b/SPECS-EXTENDED/udftools/udftools.spec index f110b5bd58f..7359caffa9f 100644 --- a/SPECS-EXTENDED/udftools/udftools.spec +++ b/SPECS-EXTENDED/udftools/udftools.spec @@ -2,18 +2,16 @@ Vendor: Microsoft Corporation Distribution: Azure Linux Summary: Linux UDF Filesystem userspace utilities Name: udftools -Version: 2.1 -Release: 6%{?dist} -License: GPLv2+ -URL: http://sourceforge.net/projects/linux-udf/ -#Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz -Source: https://github.com/pali/udftools/releases/tag/%{version}/udftools-%{version}.tar.gz -#old versions at Source: https://sourceforge.net/projects/linux-udf/files/%{name}/%{version}/%{name}-%{version}.tar.gz -Source2: wrudf.1 +Version: 2.3 +Release: 10%{?dist} +License: GPL-2.0-or-later +URL: https://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 -BuildRequires: systemd-devel Requires: udev %description @@ -21,24 +19,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}/* @@ -48,9 +45,47 @@ rm -rf %{buildroot}%{_bindir}/udffsck %changelog -* Mon Jun 14 2021 Thomas Crain - 2.1-6 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). -- Add dependency on systemd-devel for udev pkgconfig files +* Mon Jan 13 2025 Archana Shettigar - 2.3-10 +- Initial Azure Linux import from Fedora 41 (license: MIT). +- License verified + +* 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 diff --git a/SPECS-EXTENDED/udftools/wrudf.1 b/SPECS-EXTENDED/udftools/wrudf.1 deleted file mode 100644 index cab2d53ce3e..00000000000 --- a/SPECS-EXTENDED/udftools/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) diff --git a/cgmanifest.json b/cgmanifest.json index 9ffd3bc0b59..1b9dd40245c 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -29136,8 +29136,8 @@ "type": "other", "other": { "name": "udftools", - "version": "2.1", - "downloadUrl": "https://github.com/pali/udftools/releases/tag/2.1/udftools-2.1.tar.gz" + "version": "2.3", + "downloadUrl": "https://github.com/pali/udftools/releases/download/2.3/udftools-2.3.tar.gz" } } },