summaryrefslogtreecommitdiff
path: root/Ports/libarchive
diff options
context:
space:
mode:
authorCalvin Buckley <calvin@cmpct.info>2019-10-13 13:09:58 -0300
committerAndreas Kling <awesomekling@gmail.com>2019-10-13 18:47:12 +0200
commit282456dc375d5b9fe532e260baa7e52649dd368b (patch)
treeaa65ed4191cd2ab083243762bdee885a6336601d /Ports/libarchive
parent5050f7b5eec273344ab91335d4ebdbbcbc487689 (diff)
downloadserenity-282456dc375d5b9fe532e260baa7e52649dd368b.zip
Ports: libarchive
Provides a cpio and tar implementation. Unfortunately doesn't work yet; requires a working mbtowc implementation.
Diffstat (limited to 'Ports/libarchive')
-rwxr-xr-xPorts/libarchive/package.sh10
-rw-r--r--Ports/libarchive/patches/fix-autoconf.patch19
-rw-r--r--Ports/libarchive/patches/path-max-workaround.patch11
3 files changed, 40 insertions, 0 deletions
diff --git a/Ports/libarchive/package.sh b/Ports/libarchive/package.sh
new file mode 100755
index 0000000000..c6c41e7886
--- /dev/null
+++ b/Ports/libarchive/package.sh
@@ -0,0 +1,10 @@
+#!/bin/bash ../.port_include.sh
+port=libarchive
+version=3.4.0
+useconfigure=true
+files="https://libarchive.org/downloads/libarchive-3.4.0.tar.gz libarchive-3.4.0.tar.gz"
+patchlevel=1
+
+configure() {
+ run ./"$configscript" --host=i686-pc-serenity $configopts
+}
diff --git a/Ports/libarchive/patches/fix-autoconf.patch b/Ports/libarchive/patches/fix-autoconf.patch
new file mode 100644
index 0000000000..16947faa4c
--- /dev/null
+++ b/Ports/libarchive/patches/fix-autoconf.patch
@@ -0,0 +1,19 @@
+--- libarchive-3.4.0/build/autoconf/config.sub.orig 2019-10-03 23:14:02.281000072 +0100
++++ libarchive-3.4.0/build/autoconf/config.sub 2019-10-03 23:14:36.896816822 +0100
+@@ -2,7 +2,7 @@
+ # Configuration validation subroutine script.
+ # Copyright 1992-2019 Free Software Foundation, Inc.
+
+-timestamp='2019-05-23'
++timestamp='2019-10-12'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -1342,6 +1342,7 @@
+ # Each alternative MUST end in a * to match a version number.
+ # sysv* is not here because it comes later, after sysvr4.
+ gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
++ | serenity* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris*
+ | sym* | kopensolaris* | plan9* \
diff --git a/Ports/libarchive/patches/path-max-workaround.patch b/Ports/libarchive/patches/path-max-workaround.patch
new file mode 100644
index 0000000000..0a1129cb5e
--- /dev/null
+++ b/Ports/libarchive/patches/path-max-workaround.patch
@@ -0,0 +1,11 @@
+--- libarchive-3.4.0/libarchive/archive_read_disk_posix.c 2019-06-12 18:05:16.000000000 -0300
++++ libarchive-3.4.0-new/libarchive/archive_read_disk_posix.c 2019-10-12 22:30:12.774683968 -0300
+@@ -1984,7 +1984,7 @@
+ # else
+ /* No way to get a trusted value of maximum filename
+ * length. */
+- t->current_filesystem->name_max = PATH_MAX;
++ t->current_filesystem->name_max = 4096; /* Toolchain workaround */
+ # endif /* NAME_MAX */
+ # if defined(_PC_NAME_MAX)
+ else