Compare commits

...
Sign in to create a new pull request.

13 commits

Author SHA1 Message Date
Fedora Release Engineering
bf3f776f6d Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 09:40:52 +00:00
Jerry James
31ad5ad8c3 Use the cmake declarative buildsystem 2026-07-14 19:34:30 -06:00
Jerry James
fde328aafb Version 3.7.1 2026-04-03 10:16:25 -06:00
Fedora Release Engineering
7fe9e53280 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 21:08:30 +00:00
Jerry James
e4006e879e Reflow the description text
- Be more precise about globbing in %files
2026-01-14 08:54:26 -07:00
Jerry James
025aa89f89 Version 3.7.0 2025-11-23 13:25:12 -07:00
Fedora Release Engineering
af131320c9 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 21:18:34 +00:00
Fedora Release Engineering
0834586d56 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 16:46:49 +00:00
Jerry James
4d83bff845 Work around a test failure
- The failure appears to be due to changes in bsearch behavior
  in newer glibc builds
2025-01-15 15:34:13 -07:00
Jerry James
985db2826a Version 3.6.2
- Use zlib-ng directly instead of via the compatibility interface
- Temporarily disable one failing test on ppc64le
2024-09-23 11:25:07 -06:00
Fedora Release Engineering
5440f7e3c9 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 10:52:40 +00:00
Jerry James
486cf09867 Fix the VCS field 2024-07-17 16:21:37 -06:00
Jerry James
011b66a426 Version 3.6.1 2024-06-24 09:05:31 -06:00
6 changed files with 160 additions and 56 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
/scipoptsuite-*.tgz
/zimpl-*.tar.gz

View file

@ -1 +1 @@
SHA512 (scipoptsuite-9.0.1.tgz) = 0068b433a5c168e46973d53c2df4121139d6efe13fe1d6d60a9e818bac97244403b54a1819ede06b28e6301cfc3c884c563d277fcb16e5fe740e4cbd2d472336
SHA512 (zimpl-3.7.1.tar.gz) = a94eba1ec9d7947d30c948599092100f5f1d6be509967f947154141a7718e054e398860fbfba34bb2e0dd129f58fd168d1087023ffe3215f7d498e829e38afc9

View file

@ -1,6 +1,6 @@
--- zimpl/CMakeLists.txt.orig 2023-08-08 06:33:21.000000000 -0600
+++ zimpl/CMakeLists.txt 2023-11-15 21:04:39.935423110 -0700
@@ -41,8 +41,6 @@ endif()
--- zimpl-3.7.1/CMakeLists.txt.orig 2026-03-31 18:33:37.000000000 -0600
+++ zimpl-3.7.1/CMakeLists.txt 2026-04-03 09:07:34.324781686 -0600
@@ -49,8 +49,6 @@ endif()
# use C99 standard
set(CMAKE_C_STANDARD 99)
@ -8,9 +8,9 @@
-set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
option(ZLIB "use ZLIB" ON)
option(SANITIZE_ADDRESS "should the address sanitizer be enabled in debug mode if available" OFF)
--- zimpl/src/CMakeLists.txt.orig 2023-08-08 06:33:23.000000000 -0600
+++ zimpl/src/CMakeLists.txt 2023-11-15 21:04:39.936423097 -0700
option(SANITIZE "should sanitizers be enabled if available" OFF)
--- zimpl-3.7.1/src/CMakeLists.txt.orig 2026-03-31 18:33:37.000000000 -0600
+++ zimpl-3.7.1/src/CMakeLists.txt 2026-04-03 09:10:52.288477757 -0600
@@ -118,12 +118,10 @@ if(MSVC)
endif()
@ -24,27 +24,31 @@
+add_library(libzimpl SHARED ${libsources})
+set_target_properties(libzimpl PROPERTIES
+ POSITION_INDEPENDENT_CODE on
+ VERSION 0.0.0 SOVERSION 0)
+ VERSION 0.0.0 SOVERSION 0)
target_link_libraries(libzimpl ${libs})
#create zimpl binary
@@ -140,21 +138,18 @@ endif()
@@ -138,9 +136,6 @@ endif()
set_target_properties(libzimpl PROPERTIES
OUTPUT_NAME "zimpl")
-set_target_properties(libzimpl-pic PROPERTIES
- OUTPUT_NAME "zimpl-pic")
-
include(GNUInstallDirs)
# install the header files of zimpl
install(FILES ${headers} DESTINATION include/zimpl)
@@ -150,7 +145,7 @@ if(MSVC)
endif()
# install the binary and the library to appropriate locations and add them to an export group
-install(TARGETS libzimpl zimpl libzimpl-pic EXPORT zimpl-targets
+install(TARGETS libzimpl zimpl EXPORT zimpl-targets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include)
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -164,7 +159,7 @@ endif()
install(FILES ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR}/licenses/zimpl)
# Add library targets to the build-tree export set
-export(TARGETS libzimpl libzimpl-pic
@ -52,9 +56,9 @@
FILE "${CMAKE_BINARY_DIR}/zimpl-targets.cmake")
#configure the config file for the build tree
--- zimpl/src/zimpl/zimpllib.c.orig 2023-08-08 06:33:23.000000000 -0600
+++ zimpl/src/zimpl/zimpllib.c 2023-11-15 21:04:39.936423097 -0700
@@ -456,3 +456,66 @@ bool zpl_read_with_args(char** argv, int
--- zimpl-3.7.1/src/zimpl/zimpllib.c.orig 2026-03-31 18:33:37.000000000 -0600
+++ zimpl-3.7.1/src/zimpl/zimpllib.c 2026-04-03 09:07:34.325265327 -0600
@@ -455,3 +455,66 @@ bool zpl_read_with_args(char** argv, int
return ret;
}
@ -121,8 +125,8 @@
+{
+ abort();
+}
--- zimpl/zimpl-config.cmake.in.orig 2023-08-08 06:33:23.000000000 -0600
+++ zimpl/zimpl-config.cmake.in 2023-11-15 21:04:39.936423097 -0700
--- zimpl-3.7.1/zimpl-config.cmake.in.orig 2026-03-31 18:33:37.000000000 -0600
+++ zimpl-3.7.1/zimpl-config.cmake.in 2026-04-03 09:07:34.325434322 -0600
@@ -3,7 +3,7 @@ if(NOT TARGET libzimpl)
endif()

20
zimpl-test-bsearch.patch Normal file
View file

@ -0,0 +1,20 @@
--- zimpl-362/check/minlp.pip.ref.orig 2024-09-12 23:08:28.000000000 -0600
+++ zimpl-362/check/minlp.pip.ref 2025-01-15 15:31:47.835678296 -0700
@@ -31,7 +31,7 @@ Subject to
c1_1:
-1 x#1 +1 x#1^2 = 1
c2_1:
- +30 x#1 * x#2 * x#3 <= 77
+ +30 x#2 * x#3 * x#1 <= 77
c3_1:
+1 y * z -4 y^2 * z^3 = 0
c4_1:
@@ -40,7 +40,7 @@ Subject to
c5_1:
+2 y +5 z +1 y * z = -7
c6_1:
- +4 x#1^2 +2.66666666666667 x#1 * x#2 +0.444444444444444 x#2^2 = 9
+ +4 x#1^2 +2.66666666666667 x#2 * x#1 +0.444444444444444 x#2^2 = 9
c7_1_a_0:
- __c7_1_t_0@d + a = 0
c7_1_b_1:

77
zimpl-zlib-ng.patch Normal file
View file

@ -0,0 +1,77 @@
--- zimpl-362/CMakeLists.txt.orig 2024-09-17 19:44:17.589497126 -0600
+++ zimpl-362/CMakeLists.txt 2024-09-17 19:55:30.619340046 -0600
@@ -125,11 +125,11 @@ include_directories(${GMP_INCLUDE_DIRS})
set(libs ${libs} ${GMP_LIBRARIES})
if(ZLIB)
- find_package(ZLIB)
+ find_package(ZLIB-NG)
endif()
-if(ZLIB_FOUND)
- set(libs ${libs} ${ZLIB_LIBRARIES})
- include_directories(${ZLIB_INCLUDE_DIRS})
+if(ZLIB-NG_FOUND)
+ set(libs ${libs} -lz-ng)
+ include_directories(/usr/include)
else()
add_definitions(-DWITHOUT_ZLIB)
endif()
--- zimpl-362/src/zimpl/iread.c.orig 2024-09-17 19:44:29.886348077 -0600
+++ zimpl-362/src/zimpl/iread.c 2024-09-17 19:50:15.407160377 -0600
@@ -38,7 +38,7 @@
#endif
#ifndef WITHOUT_ZLIB
-#include <zlib.h>
+#include <zlib-ng.h>
#endif
#include "zimpl/lint.h"
--- zimpl-362/src/zimpl/metaio.c.orig 2024-09-12 23:08:28.000000000 -0600
+++ zimpl-362/src/zimpl/metaio.c 2024-09-17 19:49:03.368033502 -0600
@@ -34,7 +34,8 @@
#include <assert.h>
#ifndef WITHOUT_ZLIB
-#include <zlib.h>
+#define WITH_GZFILEOP
+#include <zlib-ng.h>
#endif
#include "zimpl/lint.h"
@@ -248,7 +249,7 @@ MFP* mio_open(char const* name, char con
{
mfp->type = MFP_ZLIB;
- if (NULL == (mfp->fp.zlib = gzopen(filename, "r")))
+ if (NULL == (mfp->fp.zlib = zng_gzopen(filename, "r")))
{
perror(filename);
free(mfp);
@@ -300,7 +301,7 @@ void mio_close(MFP* mfp)
break;
#ifndef WITHOUT_ZLIB
case MFP_ZLIB :
- gzclose(mfp->fp.zlib);
+ zng_gzclose(mfp->fp.zlib);
break;
#endif /* ! WITHOUT_ZLIB */
default :
@@ -328,7 +329,7 @@ int mio_getc(MFP const* mfp)
break;
#ifndef WITHOUT_ZLIB
case MFP_ZLIB :
- c = gzgetc(mfp->fp.zlib);
+ c = zng_gzgetc(mfp->fp.zlib);
break;
#endif /* ! WITHOUT_ZLIB */
default :
@@ -354,7 +355,7 @@ char* mio_gets(MFP const* mfp, char* buf
break;
#ifndef WITHOUT_ZLIB
case MFP_ZLIB :
- s = gzgets(mfp->fp.zlib, buf, len);
+ s = zng_gzgets(mfp->fp.zlib, buf, len);
break;
#endif /* ! WITHOUT_ZLIB */
default :

View file

@ -1,16 +1,10 @@
# ZIMPL is only available in the scipoptsuite tarball, which is a collection of
# packages. Most of them can be downloaded separately, so we do not build the
# entire suite here. See https://github.com/scipopt/scip/issues/37.
# There is now a zimpl repository, but upstream has not tagged any releases yet.
%global scipoptsuitever 9.0.1
%global giturl https://github.com/scipopt/zimpl
Name: zimpl
Version: 3.6.0
Version: 3.7.1
Release: %autorelease
Summary: Zuse Institut Mathematical Programming Language
%global upver %(sed 's/\\.//g' <<< %{version})
# LGPL-3.0-or-later: the project as a whole
# Other licenses are due to fonts embedded in the PDF manual:
# OFL-1.1-RFN: AMS
@ -18,42 +12,46 @@ Summary: Zuse Institut Mathematical Programming Language
# GPL-1.0-or-later: CM-Super
License: LGPL-3.0-or-later AND OFL-1.1-RFN AND Knuth-CTAN AND GPL-1.0-or-later
URL: https://zimpl.zib.de/
VCS: https://github.com/scipopt/zimpl
Source0: https://scipopt.org/download/release/scipoptsuite-%{scipoptsuitever}.tgz
VCS: git:%{giturl}.git
Source: %{giturl}/archive/v%{version}/%{name}-%{version}.tar.gz
# Build a shared library instead of a static library. ZIMPL leaves some symbols
# undefined, namely those listed in src/zimpl/xlpglue.h. They take advantage of
# the fact that linking with a static library only pulls in the referenced
# symbols to avoid referring to the xlp symbols in certain cases, for example,
# in the scip test suite. Since Fedora wants shared libraries, we have to give
# those symbols weak dummy definitions to avoid unresolved symbols at link time.
Patch0: %{name}-shared.patch
Patch: %{name}-shared.patch
# This package and cddlib both have C functions named set_copy and set_free.
# This is a problem for polymake, which links both libraries. Rename the
# zimpl functions to set_copy_zimpl and set_free_zimpl.
Patch1: %{name}-cddlib-set-clash.patch
Patch: %{name}-cddlib-set-clash.patch
# Use zlib-ng directly, rather than via the compatibility interface
Patch: %{name}-zlib-ng.patch
# Fix a test failure that appears to be due to changes in bsearch behavior
# in newer glibc builds
Patch: %{name}-test-bsearch.patch
# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
BuildSystem: cmake
BuildRequires: bison
BuildRequires: cmake
BuildRequires: flex
BuildRequires: gcc
BuildRequires: pkgconfig(gmp)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(zlib-ng)
Requires: libzimpl%{?_isa} = %{version}-%{release}
%global _desc %{expand:
Zimpl is a little language to translate the mathematical model of a
problem into a linear or nonlinear (mixed-) integer mathematical program
expressed in .lp or .mps file format which can be read and (hopefully)
solved by a LP or MIP solver.}
%global _desc %{expand:Zimpl is a little language to translate the mathematical model of a problem
into a linear or nonlinear (mixed-) integer mathematical program expressed in
.lp or .mps file format which can be read and (hopefully) solved by a LP or
MIP solver.}
%description %_desc
%description
%_desc
This package contains a command-line tool to access ZIMPL
functionality.
This package contains a command-line tool to access ZIMPL functionality.
%package -n libzimpl
# LGPL-3.0-or-later: the project as a whole
@ -62,7 +60,8 @@ functionality.
License: LGPL-3.0-or-later AND LGPL-2.0-or-later AND GPL-3.0-or-later WITH Bison-exception-2.2
Summary: Zuse Institut Mathematical Programming Language
%description -n libzimpl %_desc
%description -n libzimpl
%_desc
This package contains a library interface to ZIMPL functionality.
@ -75,36 +74,39 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libzimpl%{?_isa} = %{version}-%{release}
%description -n libzimpl-devel
This package contains headers and library links for developing
applications that use libzimpl.
This package contains headers and library links for developing applications
that use libzimpl.
%prep
%autosetup -n scipoptsuite-%{scipoptsuitever}/%{name} -p1
# Fix installation directories
if [ "%{_lib}" != "lib" ]; then
sed -i 's,\(DESTINATION \)lib,\1%{_lib},' src/CMakeLists.txt
fi
%autosetup -p1
# Avoid warnings about obsolete invocations of grep
sed -i 's/fgrep/grep -F/' check/check.sh
%build
%conf -p
export CFLAGS='%{build_cflags} -DFREEMEM -DNO_MSHELL'
export CXXFLAGS='%{build_cxxflags} -DFREEMEM -DNO_MSHELL'
%cmake
%cmake_build
%install
%cmake_install
%install -a
mkdir -p %{buildroot}%{_mandir}/man1
cp -p doc/zimpl.man %{buildroot}%{_mandir}/man1/zimpl.1
# We do this in %%files with the %%license macro
rm -fr %{buildroot}%{_datadir}/licenses
# Help the debuginfo generator find source files
mkdir -p %{_vpath_builddir}/zimpl
ln -s ../../src/zimpl/mmlscan.l %{_vpath_builddir}/zimpl
ln -s ../../src/zimpl/mmlparse2.y %{_vpath_builddir}/zimpl
%check
# FIXME: Test qubo.zpl (qbo: lp) fails on ppc64le
%ifnarch %{power64}
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
cd check
sh check.sh ../%{_vpath_builddir}/bin/zimpl
cd -
%endif
%files
%doc doc/zimpl.pdf
@ -114,7 +116,7 @@ cd -
%files -n libzimpl
%doc CHANGELOG README
%license LICENSE
%{_libdir}/libzimpl.so.0*
%{_libdir}/libzimpl.so.0{,.*}
%files -n libzimpl-devel
%{_includedir}/zimpl/