# # spec file for package projectM # # Copyright (c) 2021 SUSE LLC # # 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 https://bugs.opensuse.org/ # %define _libver 3 %ifarch %arm aarch64 %bcond_without sdl %bcond_without gles_flavor %else %bcond_with sdl %bcond_with gles_flavor %endif %bcond_without pulseaudio_qt Name: projectM Version: 3.1.12 Release: 2.3 Summary: A Music Visualizer License: LGPL-2.1-or-later Group: Productivity/Multimedia/Sound/Visualization URL: http://projectm.sourceforge.net Source0: https://github.com/projectM-visualizer/projectm/archive/v%{version}.tar.gz#/projectm-%{version}.tar.gz # PATCH-FIX-OPENSUSE projectM-disable_native_plugins.patch Patch0: projectM-disable_native_plugins.patch BuildRequires: automake BuildRequires: fdupes BuildRequires: glm-devel BuildRequires: hicolor-icon-theme BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: update-desktop-files BuildRequires: pkgconfig(pthread-stubs) Recommends: %{name}-data = %{version} %if %{with pulseaudio_qt} BuildRequires: libqt5-linguist-devel BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5OpenGL) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(ftgl) BuildRequires: pkgconfig(libpulse) %endif %if %{with sdl} BuildRequires: libSDL2-devel %endif %if %{with gles_flavor} # Workaround: Qt5OpenGL is required for configure when testing libglm BuildRequires: pkgconfig(Qt5OpenGL) BuildRequires: pkgconfig(glesv1_cm) %endif %if %{with pulseaudio_qt} Obsoletes: %{name}-qt5 < %{version} Provides: %{name}-qt5 = %{version} %endif %description projectM is a music visualizer. %package -n lib%{name}%{_libver} Summary: Run-time library for projectM Group: System/Libraries Obsoletes: lib%{name}-qt5-%{_libver} < %{version} Provides: lib%{name}-qt5-%{_libver} = %{version} %description -n lib%{name}%{_libver} projectM is a music visualizer. This package contains its runtime library. %package data Summary: Data files for projectM Group: Productivity/Multimedia/Sound/Visualization Requires: %{name} = %{version} Requires: dejavu Obsoletes: %{name}-qt5-data < %{version} Provides: %{name}-qt5-data = %{version} %description data projectM is a music visualizer. This package contains its data: config, presets, shaders. %package devel Summary: Development Files for projectM Group: Development/Libraries/C and C++ Requires: %{name} = %{version} Requires: %{name}-data = %{version} Requires: lib%{name}%{_libver} = %{version} Obsoletes: %{name}-qt5-devel < %{version} Provides: %{name}-qt5-devel = %{version} %description devel projectM is a music visualizer. This package contains its development files. %prep %autosetup -p1 -n projectm-%{version} chmod -x LICENSE.txt %if %{with gles_flavor} # https://github.com/projectM-visualizer/projectm/issues/356 echo "#include " | cat - src/projectM-qt/qprojectmwidget.hpp > /tmp/out && mv /tmp/out src/projectM-qt/qprojectmwidget.hpp %endif %build autoreconf -fiv perl -pi -e 's#2>/dev/null##g' configure %if %{with gles_flavor} export CFLAGS="$CFLAGS -DSOIL_GLES2" %endif %if %{with sdl} export LDFLAGS="$LDFLAGS -lEGL" %endif %configure \ %if %{with gles_flavor} --enable-gles \ %endif %if %{with sdl} --enable-sdl \ %else --disable-sdl \ %endif %if %{with pulseaudio_qt} --enable-qt \ %else --disable-qt \ %endif --disable-static --disable-rpath %make_build %install %make_install %if %{with sdl} rm -rf %{buildroot}%{_bindir}/projectM-unittest %endif find %{buildroot} -type f -name "*.la" -delete -print %suse_update_desktop_file -r projectM-pulseaudio AudioVideo Audio Mixer %fdupes -s %{buildroot} %post -n lib%{name}%{_libver} -p /sbin/ldconfig %postun -n lib%{name}%{_libver} -p /sbin/ldconfig %files %license LICENSE.txt %doc README.md %if %{with pulseaudio_qt} %{_bindir}/%{name}-pulseaudio %{_datadir}/applications/%{name}-pulseaudio.desktop %{_datadir}/icons/hicolor/scalable/apps/projectM.svg %{_mandir}/man1/%{name}-pulseaudio.1%{?ext_man} %endif %if %{with sdl} %{_bindir}/%{name}SDL %endif %files -n lib%{name}%{_libver} %{_libdir}/lib%{name}.so.%{_libver}* %files data %{_datadir}/%{name} %files devel %{_includedir}/lib%{name} %{_libdir}/lib%{name}.so %{_libdir}/pkgconfig/lib%{name}.pc %changelog * Thu Feb 29 2024 Dominique Leuenberger - Use %%autosetup macro. Allows to eliminate the usage of deprecated %%patchN. * Thu Mar 4 2021 Aaron Stern - Update to version 3.1.12: * Fixes #468 missing Intrinsics.h * Sun Dec 27 2020 Aaron Stern - Update to version 3.1.7: * Vendoring libglm headers to remove a dependency * Subdirectory scanning for textures and presets * Support for text drawing and feedback in pmSDL (may not be enabled by configuration) macOS should support building with autotools now, not just xcode - Removed patch to reduce build dependencies, as it's no longer required: * 0001-Reduce-dependencies.patch * Tue May 19 2020 Guillaume GARDET - Re-enable pulseaudio_qt on aarch64 and %%arm * Tue May 19 2020 Guillaume GARDET - Fix build on aarch64 and %%arm: * Enable GLES flavor * Disable Qt * Enable SDL - Other architectures are unchanged * Tue Apr 28 2020 Christophe Giboudeaux - Add patch to reduce build dependencies: * 0001-Reduce-dependencies.patch * Sat Mar 28 2020 Christophe Giboudeaux - Update to 3.1.3. Lots of fixes since 3.1.0. Only list changes in the latest version: * Input device capture toggle support Check https://github.com/projectM-visualizer/projectm/releases for older changes. - Drop projectM-increase_soversion.patch. Merged upstream. - Rebase projectM-disable_native_plugins.patch * Sat Mar 16 2019 Jan Engelhardt - Ensure neutrality of description. * Mon Mar 4 2019 Luigi Baldoni - Update to version 3.1.0 * Thanks to the tireless efforts of @deltaoscarmike there are now modern GLSL shaders being run for the core renderer and all presets with shader code in them (transpiled on the fly from HLSL to GLSL). * Improved support for GLES and embedded platforms (compile with --enable-gles). * Thread-safety errors fixed. * The macOS iTunes plugin is fully working once again. * Work continues on making it run in a web browser (#92), windows (#98), working with downstream package maintainers, projects using it as a plugin. version 3.0.0 * This includes fantastic work from @deltaoscarmike on modernizing OpenGL for GLES3 support which should enable the building of projectM on modern and embedded devices - #70 . * Also includes work from @mbellew adding intel SSE support to optimize expression parsing - #59 . * Coming soon: fixing shader support - #26 version 2.2.1 * New! Qt5 support thanks to @deltaoscarmike * Building improvements. version 2.2.0 * Now building using GNU autotools - Dropped qt4 package - Dropped projectM-2.1.0-fix-isnan-gcc6.patch, projectM-2.1.0-no-return-in-nonvoid.patch, projectM-2.1.0-SUSE_misc.patch and projectM-2.1.0-Qt5.patch - Added projectM-disable_native_plugins.patch and projectM-increase_soversion.patch * Wed Jul 26 2017 aloisio@gmx.com - Spec cleanup (use %%cmake macros) - Added projectM-2.1.0-no-return-in-nonvoid.patch and projectM-2.1.0-SUSE_misc.patch - Obtain official tarball from sourceforge - Dropped FindGLEW.cmake (no current target needs it) - Added separate -qt5 version of the package and projectM-2.1.0-Qt5.patch and pre_checkin.sh to support the latter * Mon May 23 2016 antoine.belvire@laposte.net - Fix build with GCC6: * Add projectM-2.1.0-fix-isnan-gcc6.patch * Thu Dec 11 2014 olaf@aepfle.de - Correct usage of fdupes macro * Tue Jun 25 2013 i@marguerite.su - fix bnc#825162: Error in standard configuration File causes projectM not to start * Sun Mar 24 2013 schwab@suse.de - Properly determine list of lib64 platforms * Thu May 24 2012 i@marguerite.su - update version 2.1.0 * Fixed several memory leaks (when projectM gets destroyed, or when a preset gets destroyed) * Resolved some parser errors and an embarrasing evaluation bug (in particular, 2^x does not equal x^2) * +/- keys support to edit the ratings * libvisual / gstreamer compatible * Various cmake build fixes and improvements - drop two patches. upstream fixed. * Sat May 12 2012 reddwarf@opensuse.org - fix the version in the pkg-config file * Tue Mar 27 2012 dvaleev@suse.com - fix ppc64 build * Tue Jan 3 2012 saschpe@suse.de - Remove licenses from subpackages (inherited anyways) - Remove src/WinLibs tree (bnc#738417) * Sat Dec 31 2011 prusnak@opensuse.org - spec cleanup - fix font locations in config.inp * Sat Dec 10 2011 i@marguerite.su - initial package 2.0.1+ from git - split libraries and data