On 27.10.2020 11:32, Achim Gratz wrote:

Hi Marco,

the last release of libarchive hasn't been pushed to

https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/libarchive.git

could that please be corrected?

Also it is built without ZStd and LZO support (the former presumably
because you didn't have the headers installed and the latter because it
requires a configure argument).  Looking into that I noticed that the
configury rolls in Cygwin with MSys and MinGW and produces the expected
nonsense, in particular the SSL library is not found that way.  It works
slightly better via cmake, but that doesn't produce a correctly named
DLL, so I stopped there.  Likewise there are tests for lrzip/grzip that
don't seem to have a corresponding configure option (or configure
tests), so I didn't try if they work.

Here are the fixed up cygport file plus the configury patch:

--8<---------------cut here---------------start------------->8---
# -*- mode: sh; sh-shell: bash -*-
# inherit cmake # doesn't produce a correctly named library
BUILD_REQUIRES="  libbz2-devel zlib-devel libzstd-devel liblzo2-devel liblz4-devel 
liblzma-devel"
BUILD_REQUIRES+=" libiconv-devel libxml2-devel libssl-devel"
NAME="libarchive"
VERSION="3.4.3"
RELEASE="2"
CATEGORY="Archive"
SUMMARY="Multiple-format archive and compression library"
DESCRIPTION="Libarchive is a programming library that can create and read
several different streaming archive formats, including most popular tar
variants, several cpio formats, and both BSD and GNU ar variants. It can also
write shar archives and read ISO9660 CDROM images and ZIP archives. The bsdtar
program is an implementation of tar(1) that is built on top of libarchive. It
started as a test harness, but has grown into a feature-competitive replacement
for GNU tar."
HOMEPAGE="https://www.libarchive.org/";
SRC_URI="https://www.libarchive.org/downloads/${P}.tar.gz";
SRC_DIR="${P}"

PKG_NAMES="${PN}13 ${PN}-devel bsdtar bsdcpio bsdcat"
eval ${PN}13_CONTENTS='"usr/bin/cygarchive-13.dll"'
libarchive_devel_CONTENTS="usr/include/ usr/lib/ usr/share/doc/ 
usr/share/man/man[35]/"
bsdtar_CONTENTS="usr/bin/bsdtar.exe usr/share/man/man1/bsdtar.*"
bsdcpio_CONTENTS="usr/bin/bsdcpio.exe usr/share/man/man1/bsdcpio.*"
bsdcat_CONTENTS="usr/bin/bsdcat.exe usr/share/man/man1/bsdcat.*"

CYGCONF_ARGS="--with-lzo2"
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
--- origsrc/libarchive-3.4.3/configure.ac
+++ src/libarchive-3.4.3/configure.ac
@@ -86,13 +86,10 @@ AC_CANONICAL_HOST
dnl Compilation on mingw and Cygwin needs special Makefile rules
  inc_windows_files=no
-inc_cygwin_files=no
  case "$host_os" in
    *mingw* ) inc_windows_files=yes ;;
-  *cygwin* | *msys*) inc_cygwin_files=yes ;;
  esac
  AM_CONDITIONAL([INC_WINDOWS_FILES], [test $inc_windows_files = yes])
-AM_CONDITIONAL([INC_CYGWIN_FILES], [test $inc_cygwin_files = yes])
dnl Defines that are required for specific platforms (e.g. -D_POSIX_SOURCE, etc)
  PLATFORMCPPFLAGS=
@@ -243,7 +240,7 @@ AM_CONDITIONAL([STATIC_BSDCPIO], [ test
# Set up defines needed before including any headers
  case $host in
-  *mingw* | *cygwin* | *msys*  )
+  *mingw* | *msys*  )
    AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows Server 
2003 APIs.])
    AC_DEFINE([WINVER], 0x0502, [Define to '0x0502' for Windows Server 2003 
APIs.])
    AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows 
Server 2003 APIs.])
@@ -316,7 +313,7 @@ AC_ARG_WITH([bz2lib],
  if test "x$with_bz2lib" != "xno"; then
    AC_CHECK_HEADERS([bzlib.h])
    case "$host_os" in
-    *mingw* | *cygwin* | *msys*)
+    *mingw* | *msys*)
        dnl AC_CHECK_LIB cannot be used on the Windows port of libbz2, therefore
          dnl use AC_LINK_IFELSE.
          AC_MSG_CHECKING([for BZ2_bzDecompressInit in -lbz2])
@@ -1089,7 +1086,7 @@ main(int argc, char **argv)
  ])
case "$host_os" in
-  *mingw* | *cygwin* | *msys*)
+  *mingw* | *msys*)
        ;;
    *)
        CRYPTO_CHECK(MD5, LIBC, md5)
@@ -1157,7 +1154,7 @@ if test "x$with_openssl" != "xno"; then
      AC_CHECK_HEADERS([openssl/evp.h])
      saved_LIBS=$LIBS
      case "$host_os" in
-      *mingw* | *cygwin* | *msys*)
+      *mingw* | *msys*)
          case "$host_cpu" in
            x86_64)
              AC_CHECK_LIB(eay64,OPENSSL_config)
@@ -1198,7 +1195,7 @@ if test "x$found_LIBMD" != "xyes"; then
  fi
case "$host_os" in
-  *mingw* | *cygwin* | *msys*)
+  *mingw* | *msys*)
        CRYPTO_CHECK_WIN(MD5, CALG_MD5)
        CRYPTO_CHECK_WIN(SHA1, CALG_SHA1)
        CRYPTO_CHECK_WIN(SHA256, CALG_SHA_256)
--8<---------------cut here---------------end--------------->8---

With these, the package builds correctly.  I have a few test fails that
all look like ATWIL / permission problems to me and none look like they
weren't present before.

If you'd rather have me co-maintain or adopt the package, let me know.

You are the new maintainer


Regards,
Achim.


Thanks
 Marco

Reply via email to