leocad/leocad.spec
2023-03-19 16:04:45 -07:00

294 lines
7.7 KiB
RPMSpec

%define qt5 1
%if 0%{?suse_version}
%define dist .openSUSE%(echo %{suse_version} | sed 's/0$//')
%endif
%if 0%{?sles_version}
%define dist .SUSE%(echo %{sles_version} | sed 's/0$//')
%endif
%if %(if [[ "%{vendor}" == obs://* ]] ; then echo 1 ; else echo 0 ; fi)
%define opensuse_bs 1
%endif
%if 0%{?centos_ver}
%define centos_version %{centos_ver}00
%endif
Summary: CAD program for creating virtual LEGO models
Name: leocad
URL: http://leocad.org
%if 0%{?suse_version} || 0%{?sles_version}
Group: Productivity/Graphics/Viewers
%endif
%if 0%{?mdkversion} || 0%{?rhel_version}
Group: Graphics
%endif
%if 0%{?fedora} || 0%{?centos_version}
Group: Amusements/Graphics
%endif
Version: 23.03
%if 0%{?opensuse_bs}
Release: <CI_CNT>.<B_CNT>%{?dist}
%else
Release: 1%{?dist}
%endif
%if 0%{?mdkversion} || 0%{?rhel_version} || 0%{?fedora} || 0%{?centos_version} || 0%{?scientificlinux_version} || 0%{?mageia}
License: GPLv2+
%endif
%if 0%{?suse_version} || 0%{?sles_version}
License: GPL-2.0+
BuildRequires: fdupes
%endif
Packager: Peter Bartfai <pbartfai@stardust.hu>
BuildRoot: %{_builddir}/%{name}
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?scientificlinux_version}
%if ( 0%{?centos_version}>=600 || 0%{?rhel_version}>=600 || 0%{?scientificlinux_version}>=600 )
%if 0%{?qt5}
BuildRequires: qt5-qtbase-devel >= 5.4.0, qt5-linguist
%else
BuildRequires: qt-devel >= 1:4.7.0
%endif
%endif
%endif
%if 0%{?fedora}
%if 0%{?qt5}
BuildRequires: qt5-qtbase-devel >= 5.4.0, qt5-linguist, qt5-qtgamepad-devel
%else
BuildRequires: qt-devel
%endif
%endif
%if 0%{?opensuse_bs}!=1
BuildRequires: git
%endif
%if (0%{?rhel_version}<700 && 0%{?centos_version}<700 && 0%{?scientificlinux_version}<600)
%else
BuildRequires: libjpeg-turbo-devel
%endif
BuildRequires: gcc-c++, libpng-devel, make
%if 0%{?fedora}
BuildRequires: libjpeg-turbo-devel
%if 0%{?opensuse_bs}
BuildRequires: samba4-libs
%if 0%{?fedora_version}==22
BuildRequires: qca
%endif
%if 0%{?fedora_version}==23
BuildRequires: qca, gnu-free-sans-fonts
%endif
%endif
%endif
%if 0%{?suse_version}
BuildRequires: update-desktop-files
%if 0%{?qt5}
BuildRequires: libqt5-qtbase-devel >= 5.4.0, zlib-devel, libqt5-linguist
%else
BuildRequires: libqt4-devel
%endif
Requires(pre): gconf2
%if 0%{?suse_version} > 1220
BuildRequires: glu-devel
%endif
%if 0%{?opensuse_bs}
BuildRequires: -post-build-checks
%endif
%endif
%if 0%{?sles_version}
%if 0%{?opensuse_bs}
BuildRequires: -post-build-checks
%endif
Requires(post): desktop-file-utils
%endif
%if 0%{?mageia}
%if 0%{?qt5}
BuildRequires: qttools5
%ifarch x86_64
BuildRequires: lib64qt5base5-devel
%else
BuildRequires: libqt5base5-devel
%endif
%if 0%{?opensuse_bs}
%ifarch x86_64
BuildRequires: lib64sane1, lib64proxy-webkit
%else
BuildRequires: libsane1, libproxy-webkit
%endif
%endif
%else
BuildRequires: libqt4-devel
%if 0%{?opensuse_bs}
%ifarch x86_64
BuildRequires: lib64sane1, lib64uuid-devel, lib64proxy-webkit
%else
BuildRequires: libsane1, libuuid-devel, libproxy-webkit
%endif
%endif
%endif
%endif
%if 0%{?mdkversion}
BuildRequires: libqt4-devel
# For openSUSE Build Service
%if 0%{?opensuse_bs}
%if (0%{?mdkversion} != 200910) && (0%{?mdkversion} != 201000)
BuildRequires: kde-l10n-en_GB
%endif
BuildRequires: aspell-en, myspell-en_US
%endif
%endif
%if ( 0%{?centos_version}<600 && 0%{?centos_version}>=500 ) || ( 0%{?rhel_version}<600 && 0%{?rhel_version}>=500 )
BuildRequires: qt4-devel >= 1:4.7.0
%endif
%description
CAD program for creating virtual LEGO models.
It has an intuitive interface, designed to allow
new users to start creating new models without
having to spend too much time learning the
application.
%prep
cd $RPM_SOURCE_DIR
if [ -s leocad.tar.gz ] ; then
if [ -d leocad ] ; then rm -rf leocad ; fi
tar zxf leocad.tar.gz
else
if [ -f leocad-git.tar.gz ] ; then
if [ -d leocad ] ; then rm -rf leocad ; fi
mkdir leocad
cd leocad
tar zxf ../leocad-git.tar.gz --strip=1
elif [ -d leocad ] ; then
cd leocad
git pull
cd ..
else
git clone https://github.com/leozide/leocad
fi
fi
%build
cd $RPM_SOURCE_DIR/leocad
%ifarch i386 i486 i586 i686
%define qplatform linux-g++-32
%endif
%ifarch x86_64
%define qplatform linux-g++-64
%endif
%if ( 0%{?centos_version}<600 && 0%{?centos_version}>=500 ) || ( 0%{?rhel_version}<600 && 0%{?rhel_version}>=500 )
if [ -x %{_libdir}/qt4/bin/qmake ] ; then
export PATH=%{_libdir}/qt4/bin:$PATH
fi
%endif
%if (0%{?qt5}!=1)
%ifarch x86_64
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -I%{_libdir}/qt4/include"
%endif
%endif
%if 0%{?fedora}==23
%ifarch x86_64
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIC"
export Q_CXXFLAGS="$Q_CXXFLAGS -fPIC"
%endif
%endif
%if 0%{?qt5}
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIC"
if which qmake-qt5 >/dev/null 2>/dev/null ; then
qmake-qt5 -spec %{qplatform} DISABLE_UPDATE_CHECK=1 LDRAW_LIBRARY_PATH=/usr/share/ldraw QMAKE_CXXFLAGS+="$Q_CXXFLAGS"
else
qmake -spec %{qplatform} DISABLE_UPDATE_CHECK=1 LDRAW_LIBRARY_PATH=/usr/share/ldraw QMAKE_CXXFLAGS+="$Q_CXXFLAGS"
fi
%else
if which qmake-qt4 >/dev/null 2>/dev/null ; then
qmake-qt4 -spec %{qplatform} DISABLE_UPDATE_CHECK=1 LDRAW_LIBRARY_PATH=/usr/share/ldraw QMAKE_CXXFLAGS+="$Q_CXXFLAGS"
else
qmake -spec %{qplatform} DISABLE_UPDATE_CHECK=1 LDRAW_LIBRARY_PATH=/usr/share/ldraw QMAKE_CXXFLAGS+="$Q_CXXFLAGS"
fi
%endif
make clean
make TESTING="$RPM_OPT_FLAGS"
%if 0%{?qt5}
if which lrelease-qt5 >/dev/null 2>/dev/null ; then
lrelease-qt5 leocad.pro
else
lrelease leocad.pro
fi
%else
if which lrelease-qt4 >/dev/null 2>/dev/null ; then
lrelease-qt4 leocad.pro
else
lrelease leocad.pro
fi
%endif
%if 0%{?qt5} != 1
%endif
%install
cd $RPM_SOURCE_DIR/leocad
install -d $RPM_BUILD_ROOT%{_bindir}
install -d $RPM_BUILD_ROOT%{_datadir}/leocad
install -d $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/mimetypes
install -d $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps
install -d $RPM_BUILD_ROOT%{_mandir}/man1
install -m 755 build/release/leocad $RPM_BUILD_ROOT%{_bindir}/leocad
install -m 644 docs/README.md $RPM_BUILD_ROOT%{_datadir}/leocad/README.md
install -m 644 docs/CREDITS.txt $RPM_BUILD_ROOT%{_datadir}/leocad/CREDITS.txt
install -m 644 docs/COPYING.txt $RPM_BUILD_ROOT%{_datadir}/leocad/COPYING.txt
install -m 644 docs/leocad.1 $RPM_BUILD_ROOT%{_mandir}/man1/leocad.1
gzip -f $RPM_BUILD_ROOT%{_mandir}/man1/leocad.1
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mime/packages/
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications/
install -m 644 qt/leocad.xml \
$RPM_BUILD_ROOT%{_datadir}/mime/packages/leocad.xml
install -m 644 qt/leocad.desktop \
$RPM_BUILD_ROOT%{_datadir}/applications/leocad.desktop
install -m 644 tools/icon/scalable/mimetypes/application-vnd.leocad.svg \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/mimetypes/application-vnd.leocad.svg
install -m 644 tools/icon/scalable/apps/leocad.svg \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps/leocad.svg
%if 0%{?suse_version}
%suse_update_desktop_file leocad Graphics
%endif
%files
%if 0%{?sles_version} || 0%{?suse_version}
%defattr(-,root,root)
%endif
%{_bindir}/leocad
%dir %{_datadir}/leocad
%doc %{_datadir}/leocad/README.md
%doc %{_datadir}/leocad/CREDITS.txt
%doc %{_datadir}/leocad/COPYING.txt
%{_datadir}/mime/packages/leocad.xml
%{_datadir}/applications/leocad.desktop
%{_datadir}/icons/hicolor/scalable/mimetypes/application-vnd.leocad.svg
%{_datadir}/icons/hicolor/scalable/apps/leocad.svg
%if 0%{?mdkversion} || 0%{?mageia}
%{_mandir}/man1/leocad.1.xz
%else
%{_mandir}/man1/leocad.1.gz
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%changelog
* Sun Jan 30 2022 - sT331h0rs3 (at) gmail.com 0.92
- Actualize LeoCAD version
* Sat May 08 2021 - sT331h0rs3 (at) gmail.com 0.91
- Build with Qt5 by default
- Actualize LeoCAD version
- Fix paths to SVG files
* Tue Sep 16 2016 - pbartfai (at) stardust.hu 0.90
- Initial version