Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package squirrel for openSUSE:Factory checked in at 2023-03-22 22:31:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/squirrel (Old) and /work/SRC/openSUSE:Factory/.squirrel.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "squirrel" Wed Mar 22 22:31:24 2023 rev:14 rq:1073749 version:3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/squirrel/squirrel.changes 2023-01-14 00:04:08.206032088 +0100 +++ /work/SRC/openSUSE:Factory/.squirrel.new.31432/squirrel.changes 2023-03-22 22:32:10.146654261 +0100 @@ -1,0 +2,20 @@ +Mon Mar 20 13:16:19 UTC 2023 - Adam Majer <adam.ma...@suse.de> + +- spec file changes: + * drop static library because everything that needs maintenance + patch is then vulnerable without rebuild (see bug that was just patched) + * drop Group since it was wrong anyway + * move runtime library to its won subpackage from executable + * switch to cmake + * update sover ourselves since upstream doesn't do this and + seems to break ABI between versions. +- c++11.patch: drop C++11 standard in favour of latest +- sover.patch: patch to update sover on version updates, generated + from sover.patch.in during setup +- squirrel-gcc47.patch: dropped, fixed upstream +- squirrel-autoconfiscate.patch: dropped, obsolete +- squirrel-rename_binary.patch: dropped, obsolete +- squirrel-config.cmake.in: add missing file +- squirrel.rpmlintrc: ignore EOL warnings in doc files + +------------------------------------------------------------------- Old: ---- squirrel-autoconfiscate.patch.bz2 squirrel-gcc47.patch squirrel-rename_binary.patch New: ---- c++11.patch sover.patch sover.patch.in squirrel-config.cmake.in squirrel.rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ squirrel.spec ++++++ --- /var/tmp/diff_new_pack.AwX0Ot/_old 2023-03-22 22:32:10.650656797 +0100 +++ /var/tmp/diff_new_pack.AwX0Ot/_new 2023-03-22 22:32:10.654656817 +0100 @@ -16,7 +16,14 @@ # -%define tardir squirrel3 +### Upstream doesn't version the library and changes ABI +### bump this version on every version update or check that it should remain +### Re-run %%setup (quilt setup) after each update +%define sover 1001 + +# Disable LTO optimizations +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects + %define tarver 3_2 Name: squirrel Version: 3.2 @@ -25,13 +32,16 @@ License: MIT Group: Development/Languages/Other URL: https://squirrel-lang.org/ -Source: https://downloads.sourceforge.net/%{name}/%{name}_%{tarver}_stable.tar.gz -Patch0: squirrel-autoconfiscate.patch.bz2 -Patch3: squirrel-rename_binary.patch -Patch4: squirrel-gcc47.patch -BuildRequires: dos2unix +Source: https://downloads.sourceforge.net/squirrel/squirrel_%{tarver}_stable.tar.gz +Source1: squirrel-config.cmake.in +Source10: sover.patch.in +Source11: squirrel.rpmlintrc +Patch1: c++11.patch +# Generated from S:10 in %%prep, so update that if patch no longer applies +Patch10: sover.patch +BuildRequires: cmake BuildRequires: gcc-c++ -BuildRequires: libtool +BuildRequires: sed %description Squirrel is a programming language featuring higher-order functions, @@ -39,28 +49,23 @@ cooperative threads, exception handling, reference counting, garbage collection on demand, and a C-like syntax. +%package -n libsquirrel%{sover} +Summary: Development files for %{name} + +%description -n libsquirrel%{sover} +This package contains runtime library for Squirrel + %package devel Summary: Development files for %{name} -Group: Development/Languages/C and C++ -Requires: %{name} = %{version} +Requires: libsquirrel%{sover} = %{version} %description devel This package contains everything to embed the Squirrel engine in your own application. -%package devel-static -Summary: Static squirrel libraries -Group: Development/Languages/C and C++ -Requires: %{name} = %{version} - -%description devel-static -This package contains the static versions of the engine and -standard lbrary. - %package doc Summary: Documentation for %{name} -Group: Development/Languages/Other -Requires: %{name} = %{version} +Supplements: %{name} = %{version} BuildArch: noarch %description doc @@ -68,61 +73,60 @@ %package examples Summary: Example scripts for %{name} -Group: Development/Languages/Other -Requires: %{name} = %{version} +Suggests: %{name} = %{version} BuildArch: noarch %description examples Example scripts to show squirrel usage. %prep -%setup -q -n %{tardir} -dos2unix -q $(find . -type f) -%patch0 -%patch3 -%patch4 -p1 -find . -type f -exec chmod -x {} + -chmod +x configure config.guess config.sub depcomp install-sh ltmain.sh missing -autoreconf -fi +%setup -q -n squirrel3 +sed -e 's,1000,%{sover},g' < %{_sourcedir}/sover.patch.in > %{_sourcedir}/sover.patch +%patch1 -p1 +%patch10 -p1 +cp %SOURCE1 . %build -%global _lto_cflags %{_lto_cflags} -ffat-lto-objects -export CXXFLAGS="%{optflags} -std=gnu++0x" -export CFLAGS="%{optflags}" -%configure --enable-static +%cmake \ + -DDISABLE_STATIC=1 \ + -DLONG_OUTPUT_NAMES=1 make %{?_smp_mflags} %install -%make_install -install -d %{buildroot}/%{_defaultdocdir}/%{name} -install -m 644 README HISTORY COPYRIGHT %{buildroot}/%{_defaultdocdir}/%{name} -rm -fv %{buildroot}/%{_libdir}/*.la +%cmake_install +# compat link for older distros +%if %suse_version < 1599 +ln -s /usr/bin/squirrel3 %{buildroot}%{_bindir}/sqrl +%endif -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post -n libsquirrel%{sover} -p /sbin/ldconfig +%postun -n libsquirrel%{sover} -p /sbin/ldconfig %files -%dir %{_defaultdocdir}/%{name} -%doc %{_defaultdocdir}/%{name}/README -%doc %{_defaultdocdir}/%{name}/HISTORY -%doc %{_defaultdocdir}/%{name}/COPYRIGHT +%{_bindir}/squirrel3 +%if %suse_version < 1599 %{_bindir}/sqrl -%{_libdir}/*.so.* +%endif + +%files -n libsquirrel%{sover} +%license COPYRIGHT +%{_libdir}/*.so.%{sover} +%{_libdir}/*.so.%{sover}.* %files devel -%{_includedir}/* +%dir %{_libdir}/cmake +%dir %{_libdir}/cmake/squirrel +%{_includedir}/sq*.h %{_libdir}/*.so - -%files devel-static -%{_libdir}/*.a +%{_libdir}/cmake/squirrel/* %files doc -%exclude %{_defaultdocdir}/%{name}/README -%exclude %{_defaultdocdir}/%{name}/HISTORY -%exclude %{_defaultdocdir}/%{name}/COPYRIGHT -%{_defaultdocdir}/%{name}/* +%license COPYRIGHT +%doc README HISTORY +%doc doc/* %files examples -%{_datadir}/%{name} +%license COPYRIGHT +%doc samples/* %changelog ++++++ c++11.patch ++++++ Index: squirrel3/CMakeLists.txt =================================================================== --- squirrel3.orig/CMakeLists.txt +++ squirrel3/CMakeLists.txt @@ -13,7 +13,6 @@ include(GNUInstallDirs) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") -set(CMAKE_CXX_STANDARD 11) if(CMAKE_COMPILER_IS_GNUCXX) add_compile_options( ++++++ sover.patch ++++++ Index: squirrel3/CMakeLists.txt =================================================================== --- squirrel3.orig/CMakeLists.txt +++ squirrel3/CMakeLists.txt @@ -51,7 +50,7 @@ if(CMAKE_SIZEOF_VOID_P EQUAL 8) endif() if(NOT DISABLE_DYNAMIC) - set_target_properties(squirrel sqstdlib PROPERTIES SOVERSION 0 VERSION 0.0.0) + set_target_properties(squirrel sqstdlib PROPERTIES SOVERSION 1001 VERSION 1001.1001.1001) endif() if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_HEADER_INSTALLER) ++++++ sover.patch.in ++++++ Index: squirrel3/CMakeLists.txt =================================================================== --- squirrel3.orig/CMakeLists.txt +++ squirrel3/CMakeLists.txt @@ -51,7 +50,7 @@ if(CMAKE_SIZEOF_VOID_P EQUAL 8) endif() if(NOT DISABLE_DYNAMIC) - set_target_properties(squirrel sqstdlib PROPERTIES SOVERSION 0 VERSION 0.0.0) + set_target_properties(squirrel sqstdlib PROPERTIES SOVERSION 1000 VERSION 1000.1000.1000) endif() if(NOT SQ_DISABLE_INSTALLER AND NOT SQ_DISABLE_HEADER_INSTALLER) ++++++ squirrel-config.cmake.in ++++++ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/squirrel-config-version.cmake") include("${CMAKE_CURRENT_LIST_DIR}/squirrel-targets.cmake") ++++++ squirrel.rpmlintrc ++++++ addFilter("(squirrel-examples.noarch|squirrel-doc.noarch): .* wrong-file-end-of-line-encoding")