File GBML.spec of Package GBML-dev
#
# spec file for package GBML
#
Name: GBML-dev
Version: 1.4.0.0
Release: 0
Url: https://gitlab.com/supremesonicbrazil/GBML
Summary: Gaming Backup Multitool for Linux (GBML)
License: GPL v3.0
Group: Amusements/Games
Source: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: sqlite3
BuildRequires: libQt5Core-devel, libqt5-qtbase-common-devel, libQt5Gui-devel, libQt5Widgets-devel
BuildRequires: update-desktop-files
# Needed to workaround "directories not owned by a package" issue
BuildRequires: hicolor-icon-theme
BuildRequires: polkit
Conflicts: GBML
%description
Steam Linux Swiss Knife is an open-source program that aims to automate the backup and restore of Steam games, their saves and configs, centralizing paths in a local and extremely lightweight database.
%prep
%setup -q -n %{name}-%{version}
%build
# Compiling from source code in a temporary folder
echo "----------[Compiling GBML...]----------"
# Checking qmake installation
if [ -x /usr/bin/qmake-qt5 ]; then
QMAKE=qmake-qt5 # Fedora
else
QMAKE=qmake # Other distros
fi
# Compiling from source code in a temporary folder
mkdir bin
$QMAKE -o ./bin/Makefile ./src/GamingBackupMultitoolLinux.pro
cd bin
make
mv GamingBackupMultitoolLinux gbml
# Creating database
echo "----------[Creating database...]----------"
echo 'CREATE TABLE "RegisteredGames" (
`AppID`TEXT,
`SteamName`TEXT,
`GameFolder`TEXT,
`SavePath1`TEXT,
`SaveFolder1`TEXT,
`ConfigPath1`TEXT,
`ConfigFolder1`TEXT,
`SavePath2`TEXT,
`SaveFolder2`TEXT,
`ConfigPath2`TEXT,
`ConfigFolder2`TEXT,
`SavePath3`TEXT,
`SaveFolder3`TEXT,
`ConfigPath3`TEXT,
`ConfigFolder3`TEXT,
PRIMARY KEY(AppID)
);' | sqlite3 ./SteamLinuxGames.db
echo "DB Created"
cd ..
echo ".import DB.csv RegisteredGames" | sqlite3 -separator '|' ./bin/SteamLinuxGames.db
# Creating desktop entry and setting it as executable
echo "----------[Creating desktop entry...]----------"
echo '[Desktop Entry]
Version=1.0
Name=Gaming Backup Multitool for Linux
Comment=Backup automation for Steam games, saves and configs
Exec=/usr/bin/gbml
Icon=/usr/share/gbml/img/icon.png
Terminal=false
Type=Application
Categories=Utility;Application;' > ./%{name}.desktop
chmod +x ./%{name}.desktop
# Finishing
echo "Done! Steam Linux Swiss Knife was successfully built in 'bin'."
echo "Now, please run INSTALL.sh as sudo."
echo "--------------------------------------------------------------------------------"
%install
echo "----------[Installing SLSK to /opt/SLSK...]----------"
mkdir -p %{buildroot}/usr/share/gbml
mkdir -p %{buildroot}/usr/bin
mv ./bin/gbml %{buildroot}/usr/bin/gbml
mv ./bin/SteamLinuxGames.db %{buildroot}/usr/share/gbml/SteamLinuxGames.db
cp -r ./img %{buildroot}/usr/share/gbml/img
rm -r ./bin
#desktop icon
%suse_update_desktop_file -r -i %{name} Game Amusement
##install -d %{buildroot}%{_datadir}/applications/
##install ./%{name}.desktop %{buildroot}%{_datadir}/applications/
# Finishing
echo "Done! Steam Linux Swiss Knife was successfully installed in '/opt/SLSK'."
echo "If you want to uninstall it anytime, just do a 'sudo rm -r /opt/SLSK'."
echo "Enjoy!"
echo "--------------------------------------------------------------------------------"
%post
%icon_theme_cache_post
%desktop_database_post
%postun
%icon_theme_cache_postun
%desktop_database_postun
%files
%defattr(-,root,root)
/usr/bin/gbml
%dir /usr/share/gbml
/usr/share/gbml/SteamLinuxGames.db
%dir /usr/share/gbml/img
/usr/share/gbml/img/*
%{_datadir}/applications/%{name}.desktop
%changelog