diff --git a/dev-libs/libtar/libtar-1.2.20.recipe b/dev-libs/libtar/libtar-1.2.20.recipe index 21b451f2e..ec6422688 100644 --- a/dev-libs/libtar/libtar-1.2.20.recipe +++ b/dev-libs/libtar/libtar-1.2.20.recipe @@ -12,13 +12,16 @@ COPYRIGHT=" 1998-2003 Mark D. Roth " LICENSE="BSD (3-clause)" -REVISION="4" -SOURCE_URI="http://pkgbuild.com/~giovanni/libtar/libtar-$portVersion.tar.gz" -CHECKSUM_SHA256="43c5f50e6b4398c8be35d6f3abee26064c3f26174715b60004576792e3283353" -SOURCE_DIR="libtar" +REVISION="5" +gitCommit="9c2e044833c5e908f5be0a77991b08849021793e" +SOURCE_URI="https://github.com/tklauser/libtar/archive/$gitCommit.tar.gz" +CHECKSUM_SHA256="21d86460dd128f56cfa391e4bc82e91f98e84c2948a854e33daed5c58d4e9cb6" +SOURCE_FILENAME="libtar-$portVersion-$gitCommit.tar.gz" +SOURCE_DIR="libtar-$gitCommit" +PATCHES="libtar-$portVersion.patchset" ARCHITECTURES="all" -SECONDARY_ARCHITECTURES="x86_gcc2 x86" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" libtar${secondaryArchSuffix} = $portVersion diff --git a/dev-libs/libtar/patches/libtar-1.2.20.patchset b/dev-libs/libtar/patches/libtar-1.2.20.patchset new file mode 100644 index 000000000..ee8a66cfd --- /dev/null +++ b/dev-libs/libtar/patches/libtar-1.2.20.patchset @@ -0,0 +1,64 @@ +From e98f76074b3d35856e43da9c9b3ac51295391543 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 24 Oct 2022 09:44:42 +0200 +Subject: disable st_rdev for Haiku + + +diff --git a/compat/compat.h b/compat/compat.h +index 70ac2f4..5cd7bb7 100644 +--- a/compat/compat.h ++++ b/compat/compat.h +@@ -186,11 +186,15 @@ int inet_aton(const char *, struct in_addr *); + ** machine. + */ + ++#ifdef __HAIKU__ ++#define compat_makedev(maj, min) 0 ++#else + # ifdef MAKEDEV_THREE_ARGS + # define compat_makedev(maj, min) makedev(0, maj, min) + # else + # define compat_makedev makedev + # endif ++#endif + + #endif /* NEED_MAKEDEV */ + +diff --git a/lib/append.c b/lib/append.c +index 00c9aef..76122a4 100644 +--- a/lib/append.c ++++ b/lib/append.c +@@ -102,9 +102,11 @@ tar_append_file(TAR *t, const char *realname, const char *savename) + td = (tar_dev_t *)libtar_hashptr_data(&hp); + else + { ++#ifndef __HAIKU__ + #ifdef DEBUG + printf("+++ adding hash for device (0x%lx, 0x%lx)...\n", + major(s.st_dev), minor(s.st_dev)); ++#endif + #endif + td = (tar_dev_t *)calloc(1, sizeof(tar_dev_t)); + if (td == NULL) +diff --git a/lib/encode.c b/lib/encode.c +index 5ea29ff..c6ef39e 100644 +--- a/lib/encode.c ++++ b/lib/encode.c +@@ -144,12 +144,14 @@ th_set_link(TAR *t, const char *linkname) + void + th_set_device(TAR *t, dev_t device) + { ++#ifndef __HAIKU__ + #ifdef DEBUG + printf("th_set_device(): major = %d, minor = %d\n", + major(device), minor(device)); + #endif + int_to_oct(major(device), t->th_buf.devmajor, 8); + int_to_oct(minor(device), t->th_buf.devminor, 8); ++#endif + } + + +-- +2.30.2 +