File vsxu.spec of Package vsxu
#
# spec file for package vsxu
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: vsxu
Version: 0.6.2
Release: 0
Summary: Visual programming language animation tool
License: GPL-3.0 and LGPL-3.0
Group: Productivity/Multimedia/Sound/Visualization
Url: http://www.vsxu.com/
# stripped source tarball generated from URL below using vsxu-noglew.sh
# https://github.com/vovoid/vsxu/archive/v%%{version}.tar.gz
Source0: %{name}-%{version}-noglew.tar.xz
Source1: %{name}.changes
Source98: %{name}-noglew.sh
Source99: %{name}-rpmlintrc
# PATCH-FEATURE-OPENSUSE vsxu-use-system-libs.patch
Patch0: vsxu-use-system-libs.patch
BuildRequires: Mesa-devel
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: libjpeg62-devel
BuildRequires: pkg-config
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(cal3d)
BuildRequires: pkgconfig(clzma)
BuildRequires: pkgconfig(ftgl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libglfw) < 3.0
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse) >= 0.9.9
BuildRequires: pkgconfig(lodepng)
BuildRequires: pkgconfig(lzham_codec)
BuildRequires: pkgconfig(pthread-stubs)
BuildRequires: pkgconfig(sdl2)
ExclusiveArch: %ix86 x86_64
%description
VSXu (VSX Ultra) is an OpenGL-based (hardware-accelerated), modular programming
environment with its main purpose to visualize music and create graphic effects
in real-time.
%package devel
Summary: Development files for vsxu
Group: Development/Libraries/C and C++
Requires: %{name}-libs = %{version}
%description devel
Those development headers are required if you plan on coding against VSXu.
%package libs
Summary: Visual programming language animation library
Group: System/Libraries
%description libs
Shared VSXu libraries. To be installed by system dependencies.
%package data
Summary: VSXu artwork and other data
Group: Productivity/Multimedia/Sound/Visualization
BuildArch: noarch
%description data
This package contains the core artwork and other shared data that is used by various
VSXu components.
%package artiste
Summary: VSXu graphic effects creator
Group: Productivity/Multimedia/Sound/Visualization
Requires: %{name}-data = %{version}
Requires: %{name}-libs = %{version}
%description artiste
VSXu VPL environment used to create visuals.
%package player
Summary: VSXu graphic effects player
Group: Productivity/Multimedia/Sound/Visualization
Requires: %{name}-data = %{version}
Requires: %{name}-libs = %{version}
%description player
VSXu player used to load and run the visuals created in VSXu artiste.
%package server
Summary: VSXu remote viewer
Group: Productivity/Multimedia/Sound/Visualization
Requires: %{name}-data = %{version}
Requires: %{name}-libs = %{version}
%description server
The server is used as a remote screen to VSXu artiste. Mainly intended for live performances.
%package tools
Summary: VSXu support tools
Group: Productivity/Multimedia/Sound/Visualization
Requires: %{name}-libs = %{version}
%description tools
This package contains a few support tools for VSXu.
%prep
%setup -q
%patch0 -p1
# fix builddate info
# Remove build time references so build-compare can do its work
FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{SOURCE1} '+%%H:%%M')
FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{SOURCE1} '+%%b %%e %%Y')
sed -e "s/__TIME__/\"$FAKE_BUILDTIME\"/" -i lib/application/src/sdl/vsx_application_sdl.h
sed -e "s/__DATE__/\"$FAKE_BUILDDATE\"/" -i lib/application/src/sdl/vsx_application_sdl.h
mkdir build
sed -e 's/\${CMAKE_INSTALL_PREFIX}\/share\/pixmaps/\${CMAKE_INSTALL_PREFIX}\/share\/icons/' \
-i lib/engine_graphics/CMakeLists.txt
sed -e 's/lib/%{_lib}/' -i programs/artiste/vsxu-artiste-fullscreen.desktop.in \
-i programs/artiste/vsxu-artiste.desktop.in \
-i programs/player/vsxu-player-fullscreen.desktop.in \
-i programs/player/vsxu-player.desktop.in \
-i programs/server/vsxu-server-fullscreen.desktop.in \
-i programs/server/vsxu-server.desktop.in
# for GLFW2
%if 0%{?suse_version} != 1320
sed -e 's/usr\/lib/usr\/%{_lib}\/glfw2/' -i cmake/modules/FindGLFW.cmake
%endif
%build
if [ %{_lib} = lib64 ]; then
EXTRA_FLAGS="$EXTRA_FLAGS -DLIB_SUFFIX=64"
fi
pushd build
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} $EXTRA_FLAGS ..
make %{?_smp_mflags}
%install
pushd build
make DESTDIR=%{buildroot} install %{?_smp_mflags}
%suse_update_desktop_file vsxu-artiste 3DGraphics
%suse_update_desktop_file vsxu-artiste-fullscreen 3DGraphics
%suse_update_desktop_file vsxu-server Network RemoteAccess 3DGraphics
%suse_update_desktop_file vsxu-server-fullscreen Network RemoteAccess 3DGraphics
# this is apparently superfluous
rm %{buildroot}/%{_bindir}/vsxu_launcher
%fdupes %{buildroot}%{_datadir}/%{name}
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files devel
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%{_includedir}/%{name}
%{_libdir}/pkgconfig/libvsx.pc
%files libs
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%dir %{_libdir}/vsxu
%dir %{_libdir}/vsxu/plugins
%{_libdir}/libvsx_application.so
%{_libdir}/libvsx_common.so
%{_libdir}/libvsx_compression.so
%{_libdir}/libvsx_engine.so
%{_libdir}/libvsx_engine_graphics.so
%{_libdir}/libvsx_widget.so
%{_libdir}/%{name}/plugins/_deprecated.so
%{_libdir}/%{name}/plugins/bitmap.generators.so
%{_libdir}/%{name}/plugins/bitmap.loaders.so
%{_libdir}/%{name}/plugins/bitmap.modifiers.so
%{_libdir}/%{name}/plugins/math.oscillators.so
%{_libdir}/%{name}/plugins/math.so
%{_libdir}/%{name}/plugins/mesh.generators.so
%{_libdir}/%{name}/plugins/mesh.importers.so
%{_libdir}/%{name}/plugins/mesh.modifiers.so
%{_libdir}/%{name}/plugins/mesh.render.so
%{_libdir}/%{name}/plugins/outputs.screen_opengl.so
%{_libdir}/%{name}/plugins/particlesystem.generators.so
%{_libdir}/%{name}/plugins/particlesystem.modifiers.so
%{_libdir}/%{name}/plugins/particlesystem.render.so
%{_libdir}/%{name}/plugins/render.basic.so
%{_libdir}/%{name}/plugins/render.glsl.so
%{_libdir}/%{name}/plugins/render.gravity_lines.so
%{_libdir}/%{name}/plugins/render.opengl.so
%{_libdir}/%{name}/plugins/render.text.so
%{_libdir}/%{name}/plugins/selectors.so
%{_libdir}/%{name}/plugins/sound.rtaudio.so
%{_libdir}/%{name}/plugins/string.so
%{_libdir}/%{name}/plugins/system.so
%{_libdir}/%{name}/plugins/texture.so
%files data
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/apps
%dir %{_datadir}/icons/hicolor/apps/16x16
%dir %{_datadir}/icons/hicolor/apps/22x22
%dir %{_datadir}/icons/hicolor/apps/24x24
%dir %{_datadir}/icons/hicolor/apps/32x32
%dir %{_datadir}/icons/hicolor/apps/36x36
%dir %{_datadir}/icons/hicolor/apps/48x48
%dir %{_datadir}/icons/hicolor/apps/64x64
%dir %{_datadir}/icons/hicolor/apps/72x72
%dir %{_datadir}/icons/hicolor/apps/96x96
%dir %{_datadir}/icons/hicolor/apps/128x128
%dir %{_datadir}/icons/hicolor/apps/192x192
%dir %{_datadir}/icons/hicolor/apps/256x256
%dir %{_datadir}/icons/hicolor/apps/512x512
%{_datadir}/%{name}
%{_datadir}/icons/hicolor/apps/16x16/vsxu.png
%{_datadir}/icons/hicolor/apps/22x22/vsxu.png
%{_datadir}/icons/hicolor/apps/24x24/vsxu.png
%{_datadir}/icons/hicolor/apps/32x32/vsxu.png
%{_datadir}/icons/hicolor/apps/36x36/vsxu.png
%{_datadir}/icons/hicolor/apps/48x48/vsxu.png
%{_datadir}/icons/hicolor/apps/64x64/vsxu.png
%{_datadir}/icons/hicolor/apps/72x72/vsxu.png
%{_datadir}/icons/hicolor/apps/96x96/vsxu.png
%{_datadir}/icons/hicolor/apps/128x128/vsxu.png
%{_datadir}/icons/hicolor/apps/192x192/vsxu.png
%{_datadir}/icons/hicolor/apps/256x256/vsxu.png
%{_datadir}/icons/hicolor/apps/512x512/vsxu.png
%{_datadir}/icons/vsxu.xpm
%files artiste
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%{_bindir}/vsxu_artiste
%{_datadir}/applications/vsxu-artiste-fullscreen.desktop
%{_datadir}/applications/vsxu-artiste.desktop
%files player
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%{_bindir}/vsxu_player
%{_datadir}/applications/vsxu-player-fullscreen.desktop
%{_datadir}/applications/vsxu-player.desktop
%files server
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%{_bindir}/vsxu_server
%{_datadir}/applications/vsxu-server-fullscreen.desktop
%{_datadir}/applications/vsxu-server.desktop
%files tools
%defattr(-,root,root)
%doc AUTHORS CHANGELOG COPYING COPYING.LESSER
%{_bindir}/obj2vxm
%{_bindir}/vsxbt
%{_bindir}/vsxl
%{_bindir}/vsxu_profiler
%{_bindir}/vsxz
%changelog