Merge pull request #37 from Jan200101/PR/rpm

rework rpm spec
This commit is contained in:
swirl 2022-01-09 13:00:14 -05:00 committed by GitHub
commit 20747dd50a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 111 additions and 36 deletions

View File

@ -1,9 +0,0 @@
#!/usr/bin/env bash
git submodule init
git submodule update
VERSION=$(git describe --tags | sed 's/-.*//')
DIR=$(pwd)
sed -i "s/Version:.*/Version: ${VERSION}/" polymc.spec
sudo dnf builddep polymc.spec
rpmbuild -ba polymc.spec

View File

@ -1,13 +1,74 @@
%global _origdir %(pwd)
Name: polymc
Version:
Release: 1%{?dist}
Summary: A custom launcher for Minecraft
License: GPLv3
URL: https://polymc.org/
%global libnbtplusplus_commit dc72a20b7efd304d12af2025223fad07b4b78464
%global libnbtplusplus_shortcommit %(c=%{libnbtplusplus_commit}; echo ${c:0:7})
%global quazip_commit c9ef32de19bceb58d236f5c22382698deaec69fd
%global quazip_shortcommit %(c=%{quazip_commit}; echo ${c:0:7})
Name: polymc
Version: 1.0.4
Release: 2%{?dist}
Summary: Minecraft launcher with ability to manage multiple instances
#
# CC-BY-SA
# ---------------------------------------
# launcher/resources/multimc/
#
# BSD 3-clause "New" or "Revised" License
# ---------------------------------------
# application/
# libraries/LocalPeer/
# libraries/ganalytics/
#
# Boost Software License (v1.0)
# ---------------------------------------
# cmake/
#
# Expat License
# ---------------------------------------
# libraries/systeminfo/
#
# GNU Lesser General Public License (v2 or later)
# ---------------------------------------
# libraries/rainbow
#
# GNU Lesser General Public License (v2.1 or later)
# ---------------------------------------
# libraries/iconfix/
# libraries/quazip/
#
# GNU Lesser General Public License (v3 or later)
# ---------------------------------------
# libraries/libnbtplusplus/
#
# GPL (v2)
# ---------------------------------------
# libraries/pack200/
#
# ISC License
# ---------------------------------------
# libraries/hoedown/
#
# zlib/libpng license
# ---------------------------------------
# libraries/quazip/quazip/unzip.h
# libraries/quazip/quazip/zip.h
#
License: CC-BY-SA and ASL 2.0 and BSD and Boost and LGPLv2 and LGPLv2+ and LGPLv3+ and GPLv2 and GPLv2+ and GPLv3 and ISC and zlib
URL: https://polymc.org
Source0: https://github.com/PolyMC/PolyMC/archive/%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/MultiMC/libnbtplusplus/archive/%{libnbtplusplus_commit}/libnbtplusplus-%{libnbtplusplus_shortcommit}.tar.gz
Source2: https://github.com/PolyMC/quazip/archive/%{quazip_commit}/quazip-%{quazip_shortcommit}.tar.gz
BuildRequires: cmake3
BuildRequires: desktop-file-utils
BuildRequires: gcc-c++
# Fix warning: Could not complete Guile gdb module initialization from:
# /usr/share/gdb/guile/gdb/boot.scm
BuildRequires: gdb-headless
BuildArch: x86_64
BuildRequires: java-devel
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(Qt5)
@ -19,37 +80,60 @@ Requires: pkgconfig(Qt5)
Requires: pkgconfig(zlib)
%description
A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once
PolyMC is a free, open source launcher for Minecraft. It allows you to have
multiple, separate instances of Minecraft (each with their own mods, texture
packs, saves, etc) and helps you manage them and their associated options with
a simple interface.
%prep
mkdir -p %{_builddir}/%{name}
cp -r %{_origdir}/../../* %{_builddir}/%{name}
%autosetup -p1 -n PolyMC-%{version}
tar -xvf %{SOURCE1} -C libraries
tar -xvf %{SOURCE2} -C libraries
rmdir libraries/libnbtplusplus libraries/quazip
mv -f libraries/quazip-%{quazip_commit} libraries/quazip
mv -f libraries/libnbtplusplus-%{libnbtplusplus_commit} libraries/libnbtplusplus
%build
cd %{_builddir}/%{name}
cmake \
-DLauncher_LAYOUT=lin-system \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLauncher_LIBRARY_DEST_DIR=%{_lib} \
.
%cmake \
-DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" \
-DLauncher_LAYOUT:STRING="lin-system" \
-DLauncher_LIBRARY_DEST_DIR:STRING="%{_libdir}/%{name}" \
-DLauncher_UPDATER_BASE:STRING=""
%cmake_build
%install
cd %{_builddir}/%{name}
%cmake_install
# Proper library linking
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
echo "%{_libdir}/%{name}" > "%{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf"
%check
%ctest
desktop-file-validate %{buildroot}%{_datadir}/applications/org.polymc.PolyMC.desktop
%files
%{_bindir}/polymc
%{_datadir}/applications/org.polymc.PolyMC.desktop
%license COPYING.md
%doc README.md changelog.md
%{_bindir}/%{name}
%{_libdir}/%{name}/*
%{_datadir}/%{name}/*
%{_datadir}/metainfo/org.polymc.PolyMC.metainfo.xml
%{_datadir}/polymc/jars/*
%{_datadir}/icons/hicolor/scalable/apps/org.polymc.PolyMC.svg
%{_libdir}/libLauncher_nbt++.so
%{_libdir}/libLauncher_quazip.so
%{_libdir}/libLauncher_rainbow.so
%{_libdir}/libLauncher_iconfix.so
%{_datadir}/applications/org.polymc.PolyMC.desktop
%config %{_sysconfdir}/ld.so.conf.d/*
%changelog
* Fri Jan 7 2022 getchoo <getchoo at tuta dot io> - 1.0.4
* Sun Jan 09 2022 Jan Drögehoff <sentrycraft123@gmail.com> - 1.0.4-2
- rework spec
* Fri Jan 7 2022 getchoo <getchoo at tuta dot io> - 1.0.4-1
- Initial polymc spec