diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97bb489 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +xar-1.5.2.tar.gz +/xar-417.1.tar.gz diff --git a/Makefile b/Makefile deleted file mode 100644 index 795b5c9..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: xar -# $Id$ -NAME := xar -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/sources b/sources index e69de29..712a6eb 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (xar-417.1.tar.gz) = 4c3c61f5289d0b2e380cbde772b383da369ca8ad046f5d779e02f59300288c90c5e31d105a2c01ac17dc719b8b46b55d8d36a8b3b20360f315766fce92dec762 diff --git a/xar-1.6.1-ext2.patch b/xar-1.6.1-ext2.patch new file mode 100644 index 0000000..da413b0 --- /dev/null +++ b/xar-1.6.1-ext2.patch @@ -0,0 +1,24 @@ +--- a/lib/ext2.c.orig ++++ b/lib/ext2.c +@@ -139,8 +139,10 @@ + if(! (flags & ~EXT2_NOCOMPR_FL) ) + x_addprop(f, "NoCompBlock"); + #endif ++#ifdef EXT2_ECOMPR_FL + if(! (flags & ~EXT2_ECOMPR_FL) ) + x_addprop(f, "CompError"); ++#endif + if(! (flags & ~EXT2_BTREE_FL) ) + x_addprop(f, "BTree"); + if(! (flags & ~EXT2_INDEX_FL) ) +@@ -225,8 +227,10 @@ + if( e2prop_get(f, "NoCompBlock", (char **)&tmp) == 0 ) + flags |= EXT2_NOCOMPR_FL ; + #endif ++#ifdef EXT2_ECOMPR_FL + if( e2prop_get(f, "CompError", (char **)&tmp) == 0 ) + flags |= EXT2_ECOMPR_FL ; ++#endif + if( e2prop_get(f, "BTree", (char **)&tmp) == 0 ) + flags |= EXT2_BTREE_FL ; + if( e2prop_get(f, "HashIndexed", (char **)&tmp) == 0 ) diff --git a/xar-1.8-Add-OpenSSL-To-Configuration.patch b/xar-1.8-Add-OpenSSL-To-Configuration.patch new file mode 100644 index 0000000..81cf068 --- /dev/null +++ b/xar-1.8-Add-OpenSSL-To-Configuration.patch @@ -0,0 +1,20 @@ +diff -rupN a/configure.ac b/configure.ac +--- a/configure.ac 2020-01-25 04:24:35.603846773 +0300 ++++ b/configure.ac 2020-01-25 04:41:05.743109638 +0300 +@@ -320,6 +320,16 @@ if test "x${have_libxml2}" = "x0" ; then + fi + + dnl ++dnl Configure libcrypto (part of OpenSSL). ++dnl ++have_libcrypto="1" ++AC_CHECK_HEADERS([openssl/evp.h], , [have_libcrypto="0"]) ++AC_CHECK_LIB([crypto], [OPENSSL_init_crypto], , [have_libcrypto="0"]) ++if test "x${have_libcrypto}" = "x0" ; then ++ AC_MSG_ERROR([Cannot build without libcrypto (OpenSSL)]) ++fi ++ ++dnl + dnl Configure libz. + dnl + have_libz="1" diff --git a/xar-1.8-arm-ppc.patch b/xar-1.8-arm-ppc.patch new file mode 100644 index 0000000..b2eec5a --- /dev/null +++ b/xar-1.8-arm-ppc.patch @@ -0,0 +1,23 @@ +--- a/lib/archive.c ++++ b/lib/archive.c +@@ -387,7 +387,8 @@ + return NULL; + } + +- XAR(ret)->heap_offset = xar_get_heap_offset(ret) + offset; ++ XAR(ret)->heap_offset = ++ XAR(ret)->toc_count + sizeof(xar_header_t) + offset; + if( lseek(XAR(ret)->fd, XAR(ret)->heap_offset, SEEK_SET) == -1 ) { + xar_close(ret); + return NULL; +--- a/src/xar.c ++++ a/src/xar.c +@@ -783,7 +783,7 @@ + int main(int argc, char *argv[]) { + int ret; + char *filename = NULL; +- char command = 0, c; ++ signed char command = 0, c; + char **args; + const char *tocfile = NULL; + int arglen, i, err; diff --git a/xar-1.8-openssl-1.1.patch b/xar-1.8-openssl-1.1.patch new file mode 100644 index 0000000..f811d99 --- /dev/null +++ b/xar-1.8-openssl-1.1.patch @@ -0,0 +1,45 @@ +lib/hash.c: fix compilation with OpenSSL-1.1+ + +EVP_MD_CTX has become an anonymous struct now, so can't allocate size +for it anymore. + +--- a/lib/hash.c 2015-06-09 03:22:07.000000000 +0000 ++++ b/lib/hash.c 2019-01-01 14:37:01.487775958 +0000 +@@ -102,7 +102,7 @@ + #ifdef __APPLE__ + CCDigestRef digest; + #else +- EVP_MD_CTX digest; ++ EVP_MD_CTX *digest; + const EVP_MD *type; + #endif + unsigned int length; +@@ -123,7 +123,8 @@ + #else + OpenSSL_add_all_digests(); + HASH_CTX(hash)->type = EVP_get_digestbyname(digest_name); +- EVP_DigestInit(&HASH_CTX(hash)->digest, HASH_CTX(hash)->type); ++ HASH_CTX(hash)->digest = EVP_MD_CTX_create(); ++ EVP_DigestInit(HASH_CTX(hash)->digest, HASH_CTX(hash)->type); + #endif + + HASH_CTX(hash)->digest_name = strdup(digest_name); +@@ -143,7 +143,7 @@ + #ifdef __APPLE__ + CCDigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); + #else +- EVP_DigestUpdate(&HASH_CTX(hash)->digest, buffer, nbyte); ++ EVP_DigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte); + #endif + } + +@@ -160,7 +160,8 @@ + CCDigestFinal(HASH_CTX(hash)->digest, buffer); + CCDigestDestroy(HASH_CTX(hash)->digest); + #else +- EVP_DigestFinal(&HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length); ++ EVP_DigestFinal(HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length); ++ EVP_MD_CTX_destroy(HASH_CTX(hash)->digest); + #endif + + *nbyte = HASH_CTX(hash)->length; diff --git a/xar-1.8-safe_dirname.patch b/xar-1.8-safe_dirname.patch new file mode 100644 index 0000000..eb2f5f0 --- /dev/null +++ b/xar-1.8-safe_dirname.patch @@ -0,0 +1,16 @@ +linuxattr: fix missing symbol safe_dirname + +This one was probably missed when they did a global rename to xar_ +prefixed variants. + +--- a/lib/linuxattr.c ++++ b/lib/linuxattr.c +@@ -223,7 +223,7 @@ + if( statfs(file, &sfs) != 0 ) { + char *tmp, *bname; + tmp = strdup(file); +- bname = safe_dirname(tmp); ++ bname = xar_safe_dirname(tmp); + statfs(bname, &sfs); + free(tmp); + free(bname); diff --git a/xar.spec b/xar.spec new file mode 100644 index 0000000..d206546 --- /dev/null +++ b/xar.spec @@ -0,0 +1,258 @@ +%global subversion 417.1 + +Name: xar +Version: 1.8.0.%{subversion} +Release: 20%{?dist} +Summary: The eXtensible ARchiver +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD +URL: https://opensource.apple.com/source/xar +Source: https://opensource.apple.com/tarballs/xar/xar-%{subversion}.tar.gz +BuildRequires: make +BuildRequires: gcc +BuildRequires: libxml2-devel +BuildRequires: openssl-devel +BuildRequires: zlib-devel +BuildRequires: bzip2-devel +BuildRequires: gawk +BuildRequires: autoconf + + +#First 4 patches taken from Gentoo Xar package. To make Xar more suitable for Linux systems +#Copyright Gentoo authors 2019 GPLv2 +Patch0: xar-1.6.1-ext2.patch +Patch1: xar-1.8-safe_dirname.patch +Patch2: xar-1.8-arm-ppc.patch +Patch3: xar-1.8-openssl-1.1.patch + +Patch4: xar-1.8-Add-OpenSSL-To-Configuration.patch + + +%description +The XAR project aims to provide an easily extensible archive format. Important +design decisions include an easily extensible XML table of contents for random +access to archived files, storing the toc at the beginning of the archive to +allow for efficient handling of streamed archives, the ability to handle files +of arbitrarily large sizes, the ability to choose independent encodings for +individual files in the archive, the ability to store checksums for individual +files in both compressed and uncompressed form, and the ability to query the +table of content's rich meta-data. + + +%package devel +Summary: Development files for the eXtensible ARchiver +Requires: %{name} = %{version}-%{release} + +%description devel +Development files for the eXtensible ARchiver. + + +%prep +%setup -n xar-%{subversion} +pushd xar +%patch -P0 -p1 +%patch -P1 -p1 +%patch -P2 -p1 +%patch -P3 -p1 +%patch -P4 -p1 +sed 's:-Wl,-rpath,::g' -i configure.ac #No rpath +sed 's:filetree.h:../lib/filetree.h:g' -i src/xar.c #Fix path +sed 's:util.h:../lib/util.h:g' -i src/xar.c #Fix path +popd + +%build +pushd xar +cp /usr/lib/rpm/redhat/config.{guess,sub} . +env NOCONFIGURE=1 ./autogen.sh +%configure --disable-static +make %{?_smp_mflags} +popd + + +%install +pushd xar +make install DESTDIR=%{buildroot} +rm -f %{buildroot}%{_libdir}/libxar.la #Not needed +popd + +%ldconfig_scriptlets + + +%files +%doc README xar/ChangeLog xar/TODO +%license xar/LICENSE +%{_bindir}/xar +%{_libdir}/libxar.so.* +%{_mandir}/man1/xar.1* + +%files devel +%{_includedir}/xar/ +%{_libdir}/libxar.so + + +%changelog +* Fri Jul 17 2026 Fedora Release Engineering - 1.8.0.417.1-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jun 13 2026 Yaakov Selkowitz - 1.8.0.417.1-19 +- Rebuilt for openssl 4.0 + +* Wed Feb 04 2026 Marcin Juszkiewicz - 1.8.0.417.1-18 +- update gnu-config files to make it build on riscv64 + +* Sat Jan 17 2026 Fedora Release Engineering - 1.8.0.417.1-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 1.8.0.417.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 1.8.0.417.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Sep 04 2024 Miroslav Suchý - 1.8.0.417.1-14 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 1.8.0.417.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 1.8.0.417.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 1.8.0.417.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 1.8.0.417.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Yaakov Selkowitz - 1.8.0.417.1-9 +- Enable build on aarch64, ppc64le + +* Sat Jul 23 2022 Fedora Release Engineering - 1.8.0.417.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 1.8.0.417.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 1.8.0.417.1-6 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.8.0.417.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 1.8.0.417.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.8.0.417.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 1.8.0.417.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jan 25 2020 Mosaab Alzoubi - 1.8.0.417.1-1 +- Use Apple upstream instead of non-fresh Github one +- New upstream in 1.8 dev branch with 417.1 subversion +- Close CVE-2018-17093 +- Close CVE-2018-17094 +- Close CVE-2017-11124 +- Close CVE-2017-11125 +- Close CVE-2010-3798 +- Use license macro +- Add OpenSSL To Configuration + +* Wed Jan 1 2020 Mosaab Alzoubi - 1.6.1-1 +- Update to 1.6.1 +- Change upstream +- Exclude CVE-2010-0055 patch, includes in upstream +- Exclude norpath patch, using sed +- Pass FTBFS state #1676224 +- General clean of the spec +- Use Fedora guide lines in Source URL + +* Sun Feb 03 2019 Fedora Release Engineering - 1.5.2-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 1.5.2-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 1.5.2-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.5.2-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.5.2-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.5.2-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Feb 05 2016 Fedora Release Engineering - 1.5.2-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 1.5.2-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 1.5.2-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 1.5.2-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 1.5.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Feb 15 2013 Fedora Release Engineering - 1.5.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 1.5.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 1.5.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 1.5.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Apr 28 2010 Matthias Saou 1.5.2-6 +- Include patch to fix CVE-2010-0055 (#570678). + +* Fri Aug 21 2009 Tomas Mraz - 1.5.2-5 +- rebuilt with new openssl + +* Mon Jul 27 2009 Fedora Release Engineering - 1.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 1.5.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Jan 18 2009 Tomas Mraz 1.5.2-2 +- rebuild with new openssl + +* Tue Dec 23 2008 Matthias Saou 1.5.2-1 +- Update to 1.5.2. +- Remove no longer needed install and memset patches. +- Disable newly built-by-default static lib and remove useless .la file. + +* Tue Feb 19 2008 Fedora Release Engineering +- Autorebuild for GCC 4.3 + +* Fri Dec 07 2007 Release Engineering +- Rebuild for deps + +* Thu Aug 23 2007 Matthias Saou 1.5.1-4 +- Rebuild for new BuildID feature. +- Add /usr/bin/awk build requirement, needed for the libxml configure check. + +* Wed Aug 8 2007 Matthias Saou 1.5.1-2 +- Patch memset call with swapped arguments (Dave Jones). + +* Wed Jul 11 2007 Matthias Saou 1.5.1-1 +- Update to 1.5.1. + +* Wed May 30 2007 Matthias Saou 1.5-1 +- Update to 1.5. +- Include patch to remove rpath. +- Include patch to fix file modes, and get the lib properly stripped. + +* Sun Feb 25 2007 Matthias Saou 1.4-1 +- Initial RPM release.