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
openSUSE Build Service is sponsored by