Group :: System/Libraries
RPM: libprojectM
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
%define oname projectM
%ifarch %arm riscv64
%def_disable qt
%else
%def_disable qt
%endif
Name: lib%oname
Version: 2.1.0
Release: alt15
Summary: Awesome music visualizer
License: LGPLv2.1
Group: System/Libraries
Url: http://projectm.sourceforge.net/
#Source: http://freefr.dl.sourceforge.net/project/projectm/2.0.1/%oname-complete-%version-Source.tar.gz
Source: %oname-complete-%version-Source.tar
Patch1: %name-complete-2.1.0-doxy.patch
Patch2: %name-complete-2.1.0-link.patch
Patch3: %name-%version-alt-gcc6.patch
Patch4: %name-2.1.0-paths.patch
Patch5: %name-qt-2.1.0-paths.patch
Patch6: %name-g++8.patch
Requires: fonts-ttf-dejavu
BuildPreReq: doxygen
BuildRequires: cmake gcc-c++ libXScrnSaver-devel libXcomposite-devel libXcursor-devel libXft-devel libXinerama-devel
BuildRequires: libXpm-devel libXrandr-devel libXtst-devel libXv-devel libXxf86misc-devel libftgl-devel libglew-devel
BuildRequires: libgomp-devel libxkbfile-devel xorg-xf86vidmodeproto-devel libvisual0.4-devel libpulseaudio-devel >= 0.9.8
BuildRequires: libSDL-devel
%if_enabled qt
BuildRequires: libqt4-devel
%endif
%description
projectM is a reimplementation of Milkdrop under OpenGL. It is an
awesome music visualizer. There is nothing better in the world of
Unix.
%package qt
Summary: The Qt frontend to the projectM visualization plugin
Group: System/Libraries
Requires: %name = %version-%release
%description qt
projectM-qt is a GUI designed to enhance the projectM user and preset writer
experience. It provides a way to browse, search, rate presets and setup
preset playlists for projectM-jack and projectM-pulseaudio.
%package -n %oname-pulseaudio
Summary: The projectM visualization plugin for pulseaudio
Group: Sound
Requires: %name-qt = %version-%release
%description -n %oname-pulseaudio
This package allows the use of the projectM visualization plugin through any
pulseaudio compatible applications.
%package -n %oname-test
Summary: Test utils for projectM
Group: Other
License: GPLv2
Requires: %name = %version-%release
%description -n %oname-test
Test utils for projectM
%package -n %oname-libvisual
Summary: The projectM visualization plugin for libvisual
Group: Sound
License: GPLv2
Requires: %name = %version-%release
%description -n %oname-libvisual
This package allows the use of the projectM visualization plugin through any
libvisual compatible applications.
%package devel
Summary: Header files for projectM library
Group: Development/C
Requires: %name = %version-%release
%description devel
Header files for projectM library.
%package static
Summary: Static projectM library
Group: Development/Libraries
Requires: %name-devel = %version-%release
%description static
Static projectM library.
%prep
%setup -n %oname-complete-%version-Source
%patch1 -p1
%patch2 -p1
%patch3 -p2
%patch4 -p1
%patch5 -p1
%patch6 -p2
%build
%add_optflags -std=gnu++11
%cmake \
-DUSE_FBO:STRING=FALSE \
%if_disabled qt
-DINCLUDE-PROJECTM-QT:BOOL=FALSE \
-DINCLUDE-PROJECTM-PULSEAUDIO:BOOL=FALSE \
-DINCLUDE-PROJECTM-JACK:BOOL=FALSE \
%endif
#
%cmake_build
cd docs && doxygen %oname.dox
%install
%cmakeinstall_std
rm -f %buildroot/%_libdir/libprojectM.a
rm -f %buildroot/%_datadir/%oname/fonts/*.ttf
ln -s /usr/share/fonts/ttf/dejavu/DejaVuSans.ttf %buildroot/%_datadir/%oname/fonts/Vera.ttf
ln -s /usr/share/fonts/ttf/dejavu/DejaVuSansMono.ttf %buildroot/%_datadir/%oname/fonts/VeraMono.ttf
%files
%doc AUTHORS.txt FAQ.txt docs/doxygen/html
%_libdir/libprojectM.so.*
%dir %_datadir/%oname/
%_datadir/%oname/config.inp
%dir %_datadir/%oname/fonts/
%_datadir/%oname/fonts/*.ttf
%dir %_datadir/%oname/presets/
%_datadir/%oname/presets/*
%dir %_datadir/%oname/shaders/
%_datadir/%oname/shaders/*
%if_enabled qt
%files qt
%_libdir/libprojectM-qt.so.*
%files -n %oname-pulseaudio
%_bindir/*-pulseaudio
%_desktopdir/*-pulseaudio.desktop
%_pixmapsdir/prjm16-transparent.svg
%endif
%files -n %oname-test
%_bindir/*-test*
%files -n %oname-libvisual
%doc src/projectM-libvisual/AUTHORS src/projectM-libvisual/ChangeLog
%_libdir/libvisual*/actor/libprojectM_libvisual.so
%files devel
%_includedir/%name/
%_libdir/libprojectM.so
%_pkgconfigdir/libprojectM.pc
%if_enabled qt
%_includedir/%name-qt/
%_libdir/libprojectM-qt.so
%_pkgconfigdir/libprojectM-qt.pc
%endif
# TODO:
# - consider https://src.fedoraproject.org/rpms/libprojectM/raw/master/f/libprojectM-c++14.patch
%changelog
…
Full changelog you can see here
%ifarch %arm riscv64
%def_disable qt
%else
%def_disable qt
%endif
Name: lib%oname
Version: 2.1.0
Release: alt15
Summary: Awesome music visualizer
License: LGPLv2.1
Group: System/Libraries
Url: http://projectm.sourceforge.net/
#Source: http://freefr.dl.sourceforge.net/project/projectm/2.0.1/%oname-complete-%version-Source.tar.gz
Source: %oname-complete-%version-Source.tar
Patch1: %name-complete-2.1.0-doxy.patch
Patch2: %name-complete-2.1.0-link.patch
Patch3: %name-%version-alt-gcc6.patch
Patch4: %name-2.1.0-paths.patch
Patch5: %name-qt-2.1.0-paths.patch
Patch6: %name-g++8.patch
Requires: fonts-ttf-dejavu
BuildPreReq: doxygen
BuildRequires: cmake gcc-c++ libXScrnSaver-devel libXcomposite-devel libXcursor-devel libXft-devel libXinerama-devel
BuildRequires: libXpm-devel libXrandr-devel libXtst-devel libXv-devel libXxf86misc-devel libftgl-devel libglew-devel
BuildRequires: libgomp-devel libxkbfile-devel xorg-xf86vidmodeproto-devel libvisual0.4-devel libpulseaudio-devel >= 0.9.8
BuildRequires: libSDL-devel
%if_enabled qt
BuildRequires: libqt4-devel
%endif
%description
projectM is a reimplementation of Milkdrop under OpenGL. It is an
awesome music visualizer. There is nothing better in the world of
Unix.
%package qt
Summary: The Qt frontend to the projectM visualization plugin
Group: System/Libraries
Requires: %name = %version-%release
%description qt
projectM-qt is a GUI designed to enhance the projectM user and preset writer
experience. It provides a way to browse, search, rate presets and setup
preset playlists for projectM-jack and projectM-pulseaudio.
%package -n %oname-pulseaudio
Summary: The projectM visualization plugin for pulseaudio
Group: Sound
Requires: %name-qt = %version-%release
%description -n %oname-pulseaudio
This package allows the use of the projectM visualization plugin through any
pulseaudio compatible applications.
%package -n %oname-test
Summary: Test utils for projectM
Group: Other
License: GPLv2
Requires: %name = %version-%release
%description -n %oname-test
Test utils for projectM
%package -n %oname-libvisual
Summary: The projectM visualization plugin for libvisual
Group: Sound
License: GPLv2
Requires: %name = %version-%release
%description -n %oname-libvisual
This package allows the use of the projectM visualization plugin through any
libvisual compatible applications.
%package devel
Summary: Header files for projectM library
Group: Development/C
Requires: %name = %version-%release
%description devel
Header files for projectM library.
%package static
Summary: Static projectM library
Group: Development/Libraries
Requires: %name-devel = %version-%release
%description static
Static projectM library.
%prep
%setup -n %oname-complete-%version-Source
%patch1 -p1
%patch2 -p1
%patch3 -p2
%patch4 -p1
%patch5 -p1
%patch6 -p2
%build
%add_optflags -std=gnu++11
%cmake \
-DUSE_FBO:STRING=FALSE \
%if_disabled qt
-DINCLUDE-PROJECTM-QT:BOOL=FALSE \
-DINCLUDE-PROJECTM-PULSEAUDIO:BOOL=FALSE \
-DINCLUDE-PROJECTM-JACK:BOOL=FALSE \
%endif
#
%cmake_build
cd docs && doxygen %oname.dox
%install
%cmakeinstall_std
rm -f %buildroot/%_libdir/libprojectM.a
rm -f %buildroot/%_datadir/%oname/fonts/*.ttf
ln -s /usr/share/fonts/ttf/dejavu/DejaVuSans.ttf %buildroot/%_datadir/%oname/fonts/Vera.ttf
ln -s /usr/share/fonts/ttf/dejavu/DejaVuSansMono.ttf %buildroot/%_datadir/%oname/fonts/VeraMono.ttf
%files
%doc AUTHORS.txt FAQ.txt docs/doxygen/html
%_libdir/libprojectM.so.*
%dir %_datadir/%oname/
%_datadir/%oname/config.inp
%dir %_datadir/%oname/fonts/
%_datadir/%oname/fonts/*.ttf
%dir %_datadir/%oname/presets/
%_datadir/%oname/presets/*
%dir %_datadir/%oname/shaders/
%_datadir/%oname/shaders/*
%if_enabled qt
%files qt
%_libdir/libprojectM-qt.so.*
%files -n %oname-pulseaudio
%_bindir/*-pulseaudio
%_desktopdir/*-pulseaudio.desktop
%_pixmapsdir/prjm16-transparent.svg
%endif
%files -n %oname-test
%_bindir/*-test*
%files -n %oname-libvisual
%doc src/projectM-libvisual/AUTHORS src/projectM-libvisual/ChangeLog
%_libdir/libvisual*/actor/libprojectM_libvisual.so
%files devel
%_includedir/%name/
%_libdir/libprojectM.so
%_pkgconfigdir/libprojectM.pc
%if_enabled qt
%_includedir/%name-qt/
%_libdir/libprojectM-qt.so
%_pkgconfigdir/libprojectM-qt.pc
%endif
# TODO:
# - consider https://src.fedoraproject.org/rpms/libprojectM/raw/master/f/libprojectM-c++14.patch
%changelog
…
Full changelog you can see here