summaryrefslogtreecommitdiff
path: root/libarchive
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2023-12-17 18:50:46 +0100
committerTomas Bzatek <tbzatek@redhat.com>2023-12-17 18:50:46 +0100
commit32d2925cddbadc85aab19c9ee1f4582d10329e3b (patch)
tree19d7096a1d296a18a52b17871eca57432876f6bd /libarchive
parentb22a4476a66a913a07d5e80334c0400a9b162206 (diff)
downloadtuxcmd-modules-32d2925cddbadc85aab19c9ee1f4582d10329e3b.tar.xz
libarchive: Switch to shared build by default
Static build still available, reworked to use system libarchive.a, while linking other libraries as shared.
Diffstat (limited to 'libarchive')
-rw-r--r--libarchive/Makefile32
-rw-r--r--libarchive/README35
2 files changed, 21 insertions, 46 deletions
diff --git a/libarchive/Makefile b/libarchive/Makefile
index 8aededc..373f166 100644
--- a/libarchive/Makefile
+++ b/libarchive/Makefile
@@ -2,7 +2,6 @@
DESTDIR = /usr
INSTALL = install -c
INSTALL_DATA = ${INSTALL} -m 644
-DIR_LIBARCHIVE = ./libarchive-2.8.0
# compiler options
CC = gcc
@@ -14,35 +13,24 @@ CFLAGS = -I. -I/usr/include \
LIB_SUFFIX = `if test \`uname -m\` = x86_64 -o \`uname -m\` = ppc64; then echo 64; fi`
VFS_COMMON_OBJECTS = filelist.o filelist-vfs-intf.o strutils.o vfsutils.o
-
+
VFS_OBJECTS = libarchive.o
.SUFFIXES: .c
.c.o:
- $(CC) $(CFLAGS) `pkg-config glib-2.0 gio-2.0 --cflags` -c $<
-
+ $(CC) $(CFLAGS) `pkg-config glib-2.0 gio-2.0 libarchive --cflags` -c $<
-all: static
-LIBARCHIVE_LIBS_EXT = `grep "$(DIR_LIBARCHIVE)/Makefile" -e '^LIBS = -l' | sed 's/.*=\(.*\)/\1/'`
+all: shared
shared: CFLAGS += -DMODULE_SHARED
shared: $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS)
- $(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(CFLAGS) `pkg-config glib-2.0 gio-2.0 --libs` -larchive
-
-static: CFLAGS += -I$(DIR_LIBARCHIVE) -I$(DIR_LIBARCHIVE)/libarchive
-static: lib_libarchive_compile $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS)
- $(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(DIR_LIBARCHIVE)/.libs/libarchive.a $(CFLAGS) `pkg-config glib-2.0 gio-2.0 --libs` $(LIBARCHIVE_LIBS_EXT)
-
-lib_libarchive_compile:
- @which uudecode > /dev/null || exit 1;
- @if test ! -f "$(DIR_LIBARCHIVE)/.libs/libarchive.a"; then \
- echo "Building libarchive..."; echo; \
- (cd "$(DIR_LIBARCHIVE)" && CFLAGS="-Wall" ./configure --enable-static --disable-shared --disable-bsdtar --disable-bsdcpio --with-pic && $(MAKE)) || exit 1; \
- echo; echo "Libarchive build successful"; echo; \
- fi;
+ $(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(CFLAGS) `pkg-config --shared --libs glib-2.0 gio-2.0 libarchive`
+static: CFLAGS += `pkg-config --static --cflags libarchive`
+static: $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS)
+ $(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(CFLAGS) /usr/lib$(LIB_SUFFIX)/libarchive.a `pkg-config --shared --libs glib-2.0 gio-2.0` `pkg-config --static --libs libarchive | sed 's/-larchive//'`
filelist.o: filelist.h filelist.c
filelist-vfs-intf.o: filelist-vfs-intf.h filelist-vfs-intf.c
@@ -52,9 +40,5 @@ vfsutils.o: vfsutils.h vfsutils.c
install::
$(INSTALL) ./libarchive_plugin.so $(DESTDIR)/lib$(LIB_SUFFIX)/tuxcmd/
-clean:
+clean:
rm -f *.o *.d *.gch libarchive_plugin.so
- @if test -e $(DIR_LIBARCHIVE)/Makefile; then \
- (cd "$(DIR_LIBARCHIVE)" && $(MAKE) clean) \
- fi;
-
diff --git a/libarchive/README b/libarchive/README
index 30d69ed..522c038 100644
--- a/libarchive/README
+++ b/libarchive/README
@@ -1,14 +1,13 @@
libarchive plugin for Tux Commander
- Version: 0.1.5
- Release date: 2009-Oct-25
+ Version: 0.3
+ Release date: 2023-Dec-17
-Copyright (C) 2008-2009 Tomas Bzatek <tbzatek@users.sourceforge.net>
+Copyright (C) 2008-2023 Tomas Bzatek <tbzatek@users.sourceforge.net>
http://tuxcmd.sourceforge.net
-This plugin uses libarchive library v2.5.5
-Copyright (c) 2003-2007 Tim Kientzle
-http://people.freebsd.org/~kientzle/libarchive/
-See libarchive-2.5.5/COPYING for licensing conditions
+This plugin uses the libarchive library
+Copyright (c) 2003-2010 Tim Kientzle
+https://libarchive.org/
@@ -16,10 +15,6 @@ This is the libarchive archiving VFS (Virtual File System) plugin
for Tux Commander file manager. Uses libarchive library, providing access
and routines for manipulation with the archives.
-By default, Tux Commander binary package comes with statically linked
-libarchive plugin, not requiring any libraries other than zlib and bzip2,
-which are pretty standard in modern linux distributions.
-
Feature highlights:
* read-only support for TAR, TAR.GZ, TAR.BZ2, ISO9660, CPIO, A (ar),
@@ -31,20 +26,16 @@ Feature highlights:
To be implemented:
* archive consistency testing (needs new VFS API)
* write support (probably creating new archives only)
-
+
Requirements:
- system zlib and bzip2 libraries
-
-Static compilation (default):
- - requires uudecode utility (sharutils package)
+Static compilation:
- "make static"
- - libz and libbz2 are still linked dynamically
- - libarchive sources are included in plugin source tree, no need
- for any external files
-
-Shared library compilation:
+ - mostly shared linking, except of libarchive
+ - requires libarchive.a either in /usr/lib or /usr/lib64
+ (depending on your platform)
+
+Shared library compilation (default):
- requires libarchive library installed on your system
- "make shared"
-
-Compilation has been tested with gcc compiler version 4.4.2