The package rpms/xar.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/xar.git/commit/?id=1bf13b8b27fb5f...
https://src.fedoraproject.org/cgit/rpms/xar.git/commit/?id=c8055a1fd09f45....
Change:
-ExcludeArch: ppc64le
+ExcludeArch: ppc64le
Thanks.
Full change:
============
commit c8055a1fd09f45d0a0fa50e89dd3633ac2be965b
Author: Mosaab Alzoubi <moceap(a)hotmail.com>
Date: Sat Jan 25 05:16:53 2020 +0300
Use Apple Upstream #2
diff --git a/xar.spec b/xar.spec
index 62d67c7..1ecd823 100644
--- a/xar.spec
+++ b/xar.spec
@@ -14,6 +14,8 @@ BuildRequires: zlib-devel
BuildRequires: bzip2-devel
BuildRequires: gawk
BuildRequires: autoconf
+ExcludeArch: aarch64
+ExcludeArch: ppc64le
#First 4 patches taken from Gentoo Xar package. To make Xar more suitable for Linux
systems
@@ -96,7 +98,6 @@ popd
- Close CVE-2017-11124
- Close CVE-2017-11125
- Close CVE-2010-3798
-- Enable aarch64 and ppc64le arches
- Use license macro
- Add OpenSSL To Configuration
commit 1bf13b8b27fb5f56ee51d8973eed10c4b9342f3e
Author: Mosaab Alzoubi <moceap(a)hotmail.com>
Date: Sat Jan 25 05:09:29 2020 +0300
Use Apple Upstream
diff --git a/.gitignore b/.gitignore
index 88d4009..97bb489 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
xar-1.5.2.tar.gz
+/xar-417.1.tar.gz
diff --git a/sources b/sources
index 5f601a7..712a6eb 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (xar-xar-1.6.1.tar.gz) =
3e3e82fa562152f72e27c9bdd4233e744884ed19af3bdf0c7d23cf5a3735f49baa2e9ba1d952f603f96ff201eae15b5a2663c65133702cf55916f84b963cd8ea
+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
index e48aaec..62d67c7 100644
--- a/xar.spec
+++ b/xar.spec
@@ -1,24 +1,30 @@
-Name: xar
-Version: 1.6.1
-
-%global owner mackyle
-%global project %{name}
-%global gittag %{name}-%{version}
-
-Release: 1%{?dist}
-Summary: The eXtensible ARchiver
-License: BSD
-URL:
http://mackyle.github.io/xar/
-Source:
https://github.com/%{owner}/%{project}/archive/%{gittag}/%{name}-%{gittag...
+%global subversion 417.1
+
+Name: xar
+Version: 1.8.0.%{subversion}
+Release: 1%{?dist}
+Summary: The eXtensible ARchiver
+License: BSD
+URL:
https://opensource.apple.com/source/xar
+Source:
https://opensource.apple.com/tarballs/xar/xar-%{subversion}.tar.gz
BuildRequires: gcc
-BuildRequires: libxml2-devel
-BuildRequires: openssl-devel
-BuildRequires: zlib-devel
-BuildRequires: bzip2-devel
-BuildRequires: gawk
-BuildRequires: autoconf
-ExcludeArch: aarch64
-ExcludeArch: ppc64le
+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
@@ -40,10 +46,17 @@ Development files for the eXtensible ARchiver.
%prep
-%autosetup -n %{project}-%{gittag}
-sed 's:-Wl,-rpath,::g' -i xar/configure.ac #No rpath
-sed 's:OpenSSL_add_all_ciphers:OPENSSL_init_crypto:g' -i xar/configure.ac #No
rpath
-
+%setup -n xar-%{subversion}
+pushd xar
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -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
@@ -63,7 +76,8 @@ popd
%files
-%doc xar/xar_README.txt xar/NEWS xar/ChangeLog xar/LICENSE
+%doc README xar/ChangeLog xar/TODO
+%license xar/LICENSE
%{_bindir}/xar
%{_libdir}/libxar.so.*
%{_mandir}/man1/xar.1*
@@ -74,6 +88,18 @@ popd
%changelog
+* Sat Jan 25 2020 Mosaab Alzoubi <moceap[AT]hotmail[DOT]com> - 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
+- Enable aarch64 and ppc64le arches
+- Use license macro
+- Add OpenSSL To Configuration
+
* Wed Jan 1 2020 Mosaab Alzoubi <moceap[AT]hotmail[DOT]com> - 1.6.1-1
- Update to 1.6.1
- Change upstream