-
Notifications
You must be signed in to change notification settings - Fork 33
/
SLiM.spec
219 lines (181 loc) · 9.92 KB
/
SLiM.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# Cross-distribution SLiM RPM spec.
%if %{defined suse_version}
%if 0%{?suse_version} < 1600
%global qtNameAndVersion libqt5
%else
%global qtNameAndVersion qt6
%endif
%endif
%if %{defined fedora}
%if 0%{?fedora} >= 39
%global qtNameAndVersion qt6
%else
%global qtNameAndVersion qt5
%endif
%endif
%if %{defined rhel}
%if 0%{?epel} >= 9
# qt6 is only available through EPEL on RHEL 9 and higher
%global qtNameAndVersion qt6
%else
%global qtNameAndVersion qt5
%endif
%endif
Name: SLiM
Version: 4.3
Release: 1%{?dist}
Summary: an evolutionary simulation framework
License: GPLv3+
URL: https://messerlab.org/slim/
Source0: https://github.com/MesserLab/SLiM/archive/v%{version}.tar.gz
# Prevent users of the Copr repository from using Simple Login Manager, due to binary file name conflict.
Conflicts: slim
# This paragraph of the spec file is old and delicate.
BuildRequires: cmake
# openSUSE Build Requires
%if %{defined suse_version}
BuildRequires: glew-devel
BuildRequires: Mesa-libGL-devel
BuildRequires: gcc-c++
BuildRequires: appstream-glib-devel
%if 0%{?suse_version} < 1600
BuildRequires: %{qtNameAndVersion}-qtbase-devel
%else
# only Tumbleweed officially supports Qt6; further, it's "base" not "qtbase" in Tumbleweed. :(
BuildRequires: %{qtNameAndVersion}-base-devel
%endif
%else
# if not on openSUSE
BuildRequires: %{qtNameAndVersion}-qtbase-devel
BuildRequires: libappstream-glib
%endif
ExclusiveArch: x86_64
# RHEL 8 has the oldest point release of 5.15, and is the oldest RHEL supported.
%if 0%{?rhel} == 8
Requires: qt5-qtbase >= 5.15.1
%else
Requires: %{qtNameAndVersion}-qtbase
%endif
%description
SLiM is an evolutionary simulation framework that combines a powerful engine for
population genetic simulations with the capability of modeling arbitrarily
complex evolutionary scenarios. Simulations are configured via the integrated
Eidos scripting language that allows interactive control over practically every
aspect of the simulated evolutionary scenarios. The underlying individual-based
simulation engine is highly optimized to enable modeling of entire chromosomes
in large populations. We also provide a graphical user interface on macOS and
Linux for easy simulation set-up, interactive runtime control, and dynamical
visualization of simulation output.
%prep
%setup -q
%build
%if 0%{?rhel} == 8
%if "%_vpath_builddir" != "%_vpath_srcdir"
echo "current directory: %(pwd)"
echo "source directory: %_vpath_srcdir"
echo "build directory: %_vpath_builddir"
mkdir -p %_vpath_builddir
%else
%{warn "The build directory is the same as the source directory on RHEL 8!"}
%endif
## Tell CMake where the source directory and the build directory are, directly.
%cmake -S %_vpath_srcdir -B %_vpath_builddir -DBUILD_SLIMGUI=ON
cd %_vpath_builddir
%else
# rpmbuild is not running on RHEL 8
%cmake -DBUILD_SLIMGUI=ON
%endif
%cmake_build
%install
%if 0%{?rhel} == 8
cmake --install %_vpath_builddir --prefix %{buildroot}/usr
%else
%cmake_install
%endif
%files
%{_bindir}/eidos
%{_bindir}/slim
%{_bindir}/SLiMgui
%{_datadir}/applications/org.messerlab.slimgui.desktop
%{_datadir}/icons/hicolor/scalable/apps/org.messerlab.slimgui.svg
%{_datadir}/icons/hicolor/scalable/mimetypes/text-slim.svg
%{_datadir}/icons/hicolor/symbolic/apps/org.messerlab.slimgui-symbolic.svg
%{_datadir}/metainfo/org.messerlab.slimgui.appdata.xml
%{_datadir}/metainfo/org.messerlab.slimgui.metainfo.xml
%{_datadir}/mime/packages/org.messerlab.slimgui-mime.xml
%changelog
* Sun Sep 15 2024 Bryce Carson <[email protected]> - 4.3-2
- Significant work has been invested into debugging the build of RHEL 8 on COPR. For whatever reason, since 4.0.1-1, we were unable to build on RHEL 8 (or perhaps it was EPEL 8?). Regardless, the ability to build on RHEL 8 and EPEL 8 has been achieved or restored, using conditionals which check what distribution the build is occuring on. These conditionals check the distribution using the defined RPM macros, a reliable system that the operating systems try not to step on each others toes; it'd be nicer if CentOS didn't call itself RHEL, though, but CentOS purposefully tries to be "bug-compatible" (if I recall) with RHEL, yet be slightly upstream of it with RHEL. The buildroot (which is the installation prefix within the CHROOT) and the source and build directories must be manually specified when building on RHEL 8 or EPEL 8 systems (which is RHEL 8 + EPEL [the extra packages for enterprise linux repository] for RHEL 8). I don't know what changed amongst the macros, if anything ever did change, but with 4.0.1-1 we were able to build for EPEL 8 two years ago, and then we weren't when I tried however long ago that issue four-hundred and forty cropped up. This has been resolved with the use of conditionals in the RPM preprocessor (do recall that "if" is not actually a macro) and RPM macros.
- Conditionals and macros are used to decide whether to use Qt 6 or Qt 5.
* Mon Sep 02 2024 Bryce Carson <[email protected]> - 4.3-1
- Changes to the package have occurred. See the following points.
- Further version checks for various distributions are introduced to allow cross-distribution packaging and building against Qt5 or Qt6, appropriate to the platform.
- An attempt to fix issue 440 is made
- See the SLiM release notes on GitHub for information about changes to the packaged software.
* Tue Apr 30 2024 Ben Haller <[email protected]> - 4.2.2-1
- No changes to the package have been made since the last release.
- Ship the fix for the 4.2.1-2 crashing bug as a separate release.
- Fix an issue with reading of some VCF files.
* Tue Apr 30 2024 Ben Haller <[email protected]> - 4.2.1-2
- No changes to the package have been made since the last release.
- Another fix for a crashing bug under certain conditions.
* Fri Apr 12 2024 Ben Haller <[email protected]> - 4.2.1-1
- No changes to the package have been made since the last release.
- Fix for a crashing bug under certain conditions.
* Wed Mar 20 2024 Bryce Carson <[email protected]> - 4.2-1
- No changes to the package have been made since the last release. See the SLiM release notes on GitHub for information about changes to the packaged software.
* Mon Dec 4 2023 Bryce Carson <[email protected]> - 4.1-1
- Final candidate 1 for 4.1 release
- CMake install of package desktop environment data properly implemented
- RPM macros adopted
* Tue Sep 27 2022 Bryce Carson <[email protected]> - 4.0.1-2
- `CMakeLists.txt` improved, so the installation section of the RPM is now simplified.
- Data files now exist in `data/`, rather than in the root folder of the software.
* Tue Sep 13 2022 Ben Haller <[email protected]> - 4.0.1-1
- Final candidate 1 for 4.0.1 release
* Tue Aug 23 2022 Bryce Carson <[email protected]> - 4.0-2
- Include new changelog entry to identify the date of the new release
* Wed Aug 10 2022 Bryce Carson <[email protected]> - 4.0-1
- New release
* Sat Feb 12 2022 Bryce Carson <[email protected]> - 3.7.1-1
- Increment version
* Wed Dec 15 2021 Ben Haller <[email protected]> - 3.7-1
- Final candidate 1 for 3.7 release
- Removed robinhood patch
- Removed --parallel for cmake since it was no longer working
* Sat Apr 24 2021 Bryce Carson <[email protected]> - 3.6-5
- Fixed email address in previous changelog entry.
- Included a conflict tag to prevent users of this package from using the conflicting binary in Simple Login Manager.
* Sat Mar 20 2021 Bryce Carson <[email protected]> - 3.6-4
- Added support for openSUSE (with SUSE Linux Enterprise users possibly able to use the openSUSE RPM).
- Cleaned up the changelog.
- The `[<jobs>]` argument to the cmake `--parallel` option was removed, so that Copr uses the default number of concurrent processes (and hopefully the maximum number, rather than hardcoding eight processes).
* Wed Mar 3 2021 Bryce Carson <[email protected]> - 3.6-3
- Application of patch to allow building on Fedora 34 and Fedora Rawhide.
* Wed Mar 3 2021 Bryce Carson <[email protected]> - 3.6-2
- Specified required Qt 5.15.2 on Fedora 34.
- Added package version in previous changelog entry.
* Wed Mar 3 2021 Bryce Carson <[email protected]> - 3.6-1
- New package release.
- Removed source edits that were addressed upstream.
* Sun Jan 31 2021 Bryce Carson <[email protected]> - 3.5-6
- spec file improvements; brace expansion used and sorting performed.
- FreeDesktop compliance improvements; the organization domain and application name are corrected and are now compliant.
- Source modifications allow Gnome Classic to display the proper application name.
- The symbolic application icon is now created programmatically from upstream icons in the source, rather than a second source file.
* Thu Jan 28 2021 Bryce Carson <[email protected]> - 3.5-5
- org.messerlab.slimgui.desktop changed in prep to correct Categories value; fixes desktop integration on Fedora 33 when using Gnome Classic environment.
- New symbolic icon included; improves desktop integration on Fedora 33 when using Gnome 3 with Wayland.
- Edited the changelog to not refer to the prep stage as a macro, simply "prep", to fix rpmlint warnings.
* Thu Jan 14 2021 Bryce Carson <[email protected]> - 3.5-4
- org.messerlab.slimgui.desktop changed in prep to correct StartupWMClass and icon; fixes desktop integration on Fedora 33.
- Sorted changelog in descending chronological order.
* Sun Dec 06 2020 Bryce Carson <[email protected]> - 3.5-3
- Updated the requires in the .spec file (and thus the package dependencies) to reflect updates to Qt5 on Fedora 33.
- Qt5 5.15.2 now required on Fedora 33.
* Sun Dec 06 2020 Bryce Carson <[email protected]> - 3.5-2
- Changed the tar command in .spec file to address discrepancy between GitHub archive URI and downloaded source archive.
* Sun Dec 06 2020 Bryce Carson <[email protected]> - 3.5-1
- Created new release package
- Differences from 3.4-8 include removal of necessary source modifications for 3.4
- The source modifications for 3.4 were addressed by the upstream