File libappimage.spec of Package libappimage
#
# spec file for package libappimage
#
# copyright (c) 2025 munix9@googlemail.com
#
%global sover 1_0
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%bcond_with tests
Name: libappimage
Version: 1.0.4
Release: 0
Summary: Implements functionality for dealing with AppImage files
License: MIT
URL: https://github.com/AppImageCommunity/libappimage
Source0: %{name}-%{version}.tar.gz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: desktop-file-utils
BuildRequires: libtool
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: cmake(XdgUtils)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(lzo2)
BuildRequires: pkgconfig(squashfuse)
BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} <= 1500
BuildRequires: gcc10-c++
%else
BuildRequires: gcc-c++
%endif
%if %{with tests}
BuildRequires: pkgconfig(gtest)
%endif
%description
This library is part of the AppImage project. It implements functionality
for dealing with AppImage files. It is written in C++ and is using Boost.
%package -n %{name}%{sover}
Summary: Implements functionality for dealing with AppImage files
%description -n %{name}%{sover}
This library is part of the AppImage project. It implements functionality
for dealing with AppImage files. It is written in C++ and is using Boost.
%package devel
Summary: Header files for libappimage
Requires: %{name}%{sover} = %{version}
Requires: pkgconfig(cairo)
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(librsvg-2.0)
%description devel
Development files for libappimage.
%prep
%autosetup -p1
# fix version
sed -e 's/set(V_PATCH 3)/set(V_PATCH 4)/' -i CMakeLists.txt
# fix "CMake Deprecation Warning"
sed -e 's/VERSION 3\.[0-9]/VERSION 3.10/' -i CMakeLists.txt cmake/scripts.cmake \
cmake/reproducible_builds.cmake \
src/CMakeLists.txt src/xdg-basedir/CMakeLists.txt \
src/libappimage/CMakeLists.txt tests/CMakeLists.txt \
tests/libappimage/temporarydirectory/CMakeLists.txt
# fix pkgconfig/libappimage.pc
sed -e 's/@CMAKE_INSTALL_LIBDIR@/%{_lib}/' -i cmake/libappimage.pc.in
%build
%define __builder ninja
_git_commit="$(echo "%{version}" | rev | cut -d. -f1 | rev)"
%cmake \
%if 0%{?suse_version} <= 1500
-DCMAKE_C_COMPILER=gcc-10 \
-DCMAKE_CXX_COMPILER=g++-10 \
%endif
-DBUILD_TESTING=%{?with_tests:ON}%{!?with_tests:OFF} \
-DCMAKE_SKIP_RPATH=ON \
-DGIT_COMMIT="$_git_commit" \
-DUSE_SYSTEM_LIBARCHIVE=ON \
-DUSE_SYSTEM_SQUASHFUSE=ON \
-DUSE_SYSTEM_XDGUTILS=ON \
-DUSE_SYSTEM_XZ=ON
# -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \
# -DCMAKE_SKIP_RPATH=OFF \
%cmake_build
%install
%cmake_install
%if %{with tests}
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$PWD/build/tests/libappimage/temporarydirectory:$LD_LIBRARY_PATH
%ctest --parallel 1 --timeout 60 --verbose
%endif
%ldconfig_scriptlets -n %{name}%{sover}
%files -n %{name}%{sover}
%license LICENSE
%doc README.md
%{_libdir}/%{name}.so.*
%files devel
%{_includedir}/appimage
%{_libdir}/%{name}_{hashlib,shared}.a
%{_libdir}/%{name}.so
%{_libdir}/cmake/%{name}
%{_libdir}/pkgconfig/%{name}.pc
%changelog