Browse Source

RPM build init

pull/537/head
1b00 5 years ago
parent
commit
4529370125
  1. 28
      package/rpm/README.md
  2. 60
      package/rpm/build_rpm.sh
  3. 106
      package/rpm/magnum.spec

28
package/rpm/README.md

@ -0,0 +1,28 @@
# Install next packages
## for usage
corrade should be installed
```
$ sudo dnf install openal-soft \
SDL2 \
freeglut \
glfw
```
## for build and devel package
corrade-devel should be installed
```
$ sudo dnf install git gcc-c++ cmake make rpmdevtools \
openal-soft-devel \
SDL2-devel \
freeglut-devel \
glfw-devel
```
## on centos
for glfw and glfw-devel packages install EPEL repo:
```
$ sudo dnf install --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
```

60
package/rpm/build_rpm.sh

@ -0,0 +1,60 @@
#!/bin/bash
name=magnum
cd ../../
# get latest tag for empty param
if [[ -z ${1} ]];
then
version=$(git describe --abbrev=0);
else
version="${1}"
fi
# try to get hash for input param
hash=$(git rev-parse --short ${version})
if [ "$?" -ne "0" ];
then
echo "------------------------------------------------------------------"
echo "Build FAILED"
echo "Parameter should be either master or valid git tag|hash or empty string";
exit 1;
fi
# if hash provided as input param then name version as "hash"
if [ "${version}" == "${hash}" ];
then
version="hash"
fi
# create the file tree you need to build RPM packages
rpmdev-setuptree
# create release string
release=${hash}$(rpmbuild --eval=%{?dist});
# create package name string
package_name=${name}-${version}-${release}
# archive sources as ${package_name}.tar.gz into rpm source dir
tarfile=$(rpmbuild --eval=%{_sourcedir})/${package_name}.tar
git archive --prefix=${name}-${version}/ -o ${tarfile} ${hash}
gzip -nf ${tarfile}
cd ./package/rpm
# modify Version and Release in rpm spec file
specfile=$(rpmbuild --eval=%{_specdir})/${package_name}.spec
cp ${name}.spec ${specfile}
sed -i "s/Version:.\+/Version: ${version}/g" ${specfile}
sed -i "s/Release:.\+/Release: ${hash}%{?dist}/g" ${specfile}
# build rpm into rpm build dir
rpmbuild -bb ${specfile}
# tell user what is the result of efforts
if [ "$?" -ne "0" ];
then
echo "------------------------------------------------------------------"
echo "Build of '${package_name}' FAILED"
echo "Specfile: ${specfile}"
echo "Get more info above"
exit 1;
else
echo "------------------------------------------------------------------"
echo "Build of '${package_name}' SUCCEED"
echo "Specfile: ${specfile}"
arch=$(rpmbuild --eval=%{_arch})
rpmdir=$(rpmbuild --eval=%{_rpmdir})
echo "To install them run next command:"
echo " $ sudo rpm -Uhv ${rpmdir}/${arch}/${name}*${version}-${release}.${arch}.rpm"
fi

106
package/rpm/magnum.spec

@ -0,0 +1,106 @@
Name: magnum
Version: v2020.06
Release: bf4d59707%{?dist}
Summary: Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
License: MIT
URL: https://magnum.graphics/
Source0: %{name}-%{version}-%{release}.tar.gz
Requires: corrade
Requires: SDL2
Requires: freeglut
Requires: glfw
Requires: openal-soft
BuildRequires: gcc-c++
BuildRequires: cmake >= 3.4.0
BuildRequires: SDL2-devel
BuildRequires: freeglut-devel
BuildRequires: corrade-devel
BuildRequires: glfw-devel
BuildRequires: openal-soft-devel
%description
C++11/C++14 graphics middleware for games and data visualization
%package devel
Summary: Lightweight and modular C++11/C++14 graphics middleware for games and data visualization
Requires: corrade-devel
Requires: %{name} = %{version}
Requires: SDL2-devel
Requires: freeglut-devel
Requires: glfw-devel
Requires: openal-soft-devel
%description devel
C++11/C++14 graphics middleware for games and data visualization
%global debug_package %{nil}
%prep
%autosetup
%build
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_AUDIO=ON \
-DWITH_GLXAPPLICATION=ON \
-DWITH_GLFWAPPLICATION=ON \
-DWITH_SDL2APPLICATION=ON \
-DWITH_WINDOWLESSGLXAPPLICATION=ON \
-DWITH_GLXCONTEXT=ON \
-DWITH_OPENGLTESTER=ON \
-DWITH_ANYAUDIOIMPORTER=ON \
-DWITH_ANYIMAGECONVERTER=ON \
-DWITH_ANYIMAGEIMPORTER=ON \
-DWITH_ANYSCENECONVERTER=ON \
-DWITH_ANYSCENEIMPORTER=ON \
-DWITH_ANYSHADERCONVERTER=ON \
-DWITH_MAGNUMFONT=ON \
-DWITH_MAGNUMFONTCONVERTER=ON \
-DWITH_OBJIMPORTER=ON \
-DWITH_TGAIMAGECONVERTER=ON \
-DWITH_TGAIMPORTER=ON \
-DWITH_WAVAUDIOIMPORTER=ON \
-DWITH_DISTANCEFIELDCONVERTER=ON \
-DWITH_IMAGECONVERTER=ON \
-DWITH_SCENECONVERTER=ON \
-DWITH_SHADERCONVERTER=ON \
-DWITH_FONTCONVERTER=ON \
-DWITH_GL_INFO=ON \
-DWITH_AL_INFO=ON
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
strip $RPM_BUILD_ROOT/%{_prefix}/lib*/lib*.so.* $RPM_BUILD_ROOT/%{_prefix}/lib*/magnum/*/*.so $RPM_BUILD_ROOT/%{_prefix}/bin/*
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%{_prefix}/bin/*
%{_prefix}/lib*/magnum/*/*
%{_prefix}/lib*/lib*.so.*
%doc COPYING
%files devel
%{_prefix}/include/Magnum/*
%{_prefix}/include/MagnumExternal/*
%{_prefix}/include/MagnumPlugins/*
%{_prefix}/lib*/lib*.a
%{_prefix}/lib*/lib*.so
%{_prefix}/share/cmake*
%doc COPYING
%changelog
* Sun Oct 17 2021 1b00 <1b00@pm.me> - v2020.06-bf4d59707
- Initial release.
Loading…
Cancel
Save