use pathelf to fix library seatch path of audacity binaries and libraries (see https://github.com/audacity/audacity/issues/2165)

don't provide internal libraries [release 3.1.3-3mamba;Sat Jun 18 2022]
This commit is contained in:
Silvan Calarco 2024-01-05 20:38:46 +01:00
parent 5fb1cb792d
commit 6f1ae1ec82
2 changed files with 98 additions and 20 deletions

View File

@ -1,6 +1,6 @@
# audacity
Audacity is a free audio editor.
Audacity is a free multitrack audio editor.
You can record sounds, play sounds, import and export WAV, AIFF, and MP3 files, and more.
Use it to edit your sounds using Cut, Copy and Paste (with unlimited Undo), mix tracks together, or apply effects to your recordings.
It also has a built-in amplitude envelope editor, a customizable spectrogram mode and a frequency analysis window for audio analysis applications.

View File

@ -1,8 +1,8 @@
Name: audacity
Version: 3.0.2
Release: 2mamba
Version: 3.1.3
Release: 3mamba
Epoch: 1
Summary: A free audio editor
Summary: A free multitrack audio editor
Group: Graphical Desktop/Applications/Multimedia
Vendor: openmamba
Distribution: openmamba
@ -36,19 +36,25 @@ BuildRequires: libglib-devel
BuildRequires: libgtk3-devel
BuildRequires: libharfbuzz-devel
BuildRequires: libid3tag-devel
BuildRequires: liblame-devel
BuildRequires: liblilv-devel
BuildRequires: libmad-devel
BuildRequires: libogg-devel
BuildRequires: libopus-devel
BuildRequires: libpango-devel
BuildRequires: libportaudio-devel
BuildRequires: libportmidi-devel
BuildRequires: libserd-devel
BuildRequires: libsndfile-devel
BuildRequires: libsord-devel
BuildRequires: libsoundtouch-devel
BuildRequires: libsoxr-devel
BuildRequires: libsqlite-devel
BuildRequires: libsratom-devel
BuildRequires: libstdc++6-devel
BuildRequires: libsuil-devel
BuildRequires: libtwolame-devel
BuildRequires: libuuid-devel
BuildRequires: libvamp-plugin-sdk-devel
BuildRequires: libvorbis-devel
BuildRequires: libwx_baseu-devel
@ -62,10 +68,12 @@ BuildRequires: liblrdf-devel
BuildRequires: libraptor-devel
BuildRequires: librdf-devel
BuildRequires: gettext-devel >= 0.14.1
BuildRequires: conan
BuildRequires: patchelf
Requires: liblame
%description
Audacity is a free audio editor.
Audacity is a free multitrack audio editor.
You can record sounds, play sounds, import and export WAV, AIFF, and MP3 files, and more.
Use it to edit your sounds using Cut, Copy and Paste (with unlimited Undo), mix tracks together, or apply effects to your recordings.
It also has a built-in amplitude envelope editor, a customizable spectrogram mode and a frequency analysis window for audio analysis applications.
@ -73,40 +81,55 @@ Built-in effects include Bass Boost, Wahwah, and Noise Removal, and it also supp
%debug_package
# Ignore these libraries because they are internal-only and should never be exposed in the RPM database
%global __requires_exclude ^lib-audio-devices.so|^lib-basic-ui.so|^lib-components.so|^lib-exceptions.so|^lib-ffmpeg-support.so|^lib-files.so|^lib-math.so|^lib-preferences.so|^lib-project-rate.so|^lib-project.so|^lib-registries.so|^lib-screen-geometry.so|^lib-string-utils.so|^lib-strings.so|^lib-theme.so|^lib-utility.so|^lib-uuid.so|^lib-xml.so
%global __provides_exclude ^lib-audio-devices.so|^lib-basic-ui.so|^lib-components.so|^lib-exceptions.so|^lib-ffmpeg-support.so|^lib-files.so|^lib-math.so|^lib-preferences.so|^lib-project-rate.so|^lib-project.so|^lib-registries.so|^lib-screen-geometry.so|^lib-string-utils.so|^lib-strings.so|^lib-theme.so|^lib-utility.so|^lib-uuid.so|^lib-xml.so
%prep
%setup -q
#-D -T
#:<< _EOF
%global __provides_exclude_from ^%{_libdir}/audacity/.*$
#%ifarch %{ix86}
#%patch6 -p1
#%endif
%patch7 -p1
# Disable check for wxWidget audacity fork
sed -i "s|NOT ours|0|" cmake-proxies/wxWidgets/CMakeLists.txt
## Disable check for wxWidget audacity fork
#sed -i "s|NOT ours|0|" cmake-proxies/wxWidgets/CMakeLists.txt
%build
#:<< _EOF
%cmake -d build \
-DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config-unicode-3 \
-Daudacity_use_sqlite=local \
-Daudacity_use_sndfile=system \
-Daudacity_conan_enabled=Off \
-Daudacity_has_networking=Off \
-Daudacity_has_crashreports=Off \
-Daudacity_has_updates_check=Off \
-Daudacity_has_sentry_reporting=Off \
-Daudacity_lib_preference=system \
-Daudacity_obey_system_dependencies=On \
-Daudacity_use_wxwidgets=system \
-Daudacity_use_uuid=system \
-Daudacity_use_sqlite=system \
-Daudacity_use_libsndfile=system \
-Daudacity_use_soxr=system \
-Daudacity_use_lame=system \
-Daudacity_use_sndfile=system \
-Daudacity_use_twolame=system \
-Daudacity_use_flac=system \
-Daudacity_use_libflac=system \
-Daudacity_use_ladspa=on \
-Daudacity_use_vorbis=system \
-Daudacity_use_id3tag=system \
-Daudacity_use_libvorbis=system \
-Daudacity_use_libid3tag=system \
-Daudacity_use_expat=system \
-Daudacity_use_soundtouch=system \
-Daudacity_use_vamp=system \
-Daudacity_use_lv2=system \
-Daudacity_use_portaudio=local \
-Daudacity_use_portaudio=system \
-Daudacity_use_midi=system \
-Daudacity_use_ogg=system \
-Daudacity_use_libogg=system \
-Daudacity_use_portsmf=local \
-Daudacity_use_sbsms=local \
-Daudacity_use_ffmpeg=loaded
%make
@ -116,23 +139,65 @@ sed -i "s|NOT ours|0|" cmake-proxies/wxWidgets/CMakeLists.txt
%makeinstall -C build
# remove internally installed wxwidgets libraries
rm -rf %{buildroot}%{_libdir}/audacity*
#rm -rf %{buildroot}%{_libdir}/audacity*
#install -D -m 0755 %{SOURCE1} %{buildroot}%{_datadir}/applications/audacity.desktop
# From Fedora:
# Remove the RPATH from all the private libraries provided with Audacity and
# make them all executable so that debug symbol extraction happens.
# CMake could do this on its own using the install target for the library,
# but the Audacity build system manually copies around the libraries so it
# doesn't use the install target. This is very involved to fix in the code,
# so this work around is easier and more maintainable than patching the build
# system.
pushd %{buildroot}%{_libdir}/%{name}
for libFile in *;
do
if [[ ! -d $libFile ]];
then
chrpath --delete $libFile
chmod 755 $libFile
fi
done
popd
pushd %{buildroot}%{_libdir}/%{name}/modules
for libFile in *;
do
if [[ ! -d $libFile ]];
then
chrpath --delete $libFile
chmod 755 $libFile
fi
done
popd
%find_lang %{name}
# ?
rm -f %{buildroot}/usr/audacity
# Fix incorrect library search path in audacity binary and libraries
patchelf --set-rpath '$ORIGIN/../%{_lib}/audacity' %{buildroot}%{_bindir}/audacity
find %{buildroot}%{_libdir}/audacity -name '*.so' -print | while read -r line
do
patchelf --set-rpath '$ORIGIN' "$line"
done
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%files -f %{name}.lang
%defattr(-,root,root)
%{_bindir}/audacity
%{_datadir}/appdata/audacity.appdata.xml
%dir %{_libdir}/audacity
%{_libdir}/audacity/lib-*.so
%dir %{_libdir}/audacity/modules
%{_libdir}/audacity/modules/mod-*.so
%{_datadir}/applications/audacity.desktop
%{_datadir}/metainfo/audacity.appdata.xml
%{_datadir}/mime/packages/audacity.xml
%dir %{_datadir}/audacity/modules
%{_datadir}/audacity/modules/mod-*.so
%dir %{_datadir}/audacity/plug-ins
%{_datadir}/audacity/plug-ins/*.ny
%{_datadir}/audacity/nyquist/*
@ -145,6 +210,19 @@ rm -rf %{buildroot}%{_libdir}/audacity*
%{_mandir}/man1/*
%changelog
* Sat Jun 18 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 3.1.3-3mamba
- use pathelf to fix library seatch path of audacity binaries and libraries (see https://github.com/audacity/audacity/issues/2165)
- don't provide internal libraries
* Tue Jun 14 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 3.1.3-2mamba
- fix missing internal libraries; added more configuration options
* Fri Dec 31 2021 Automatic Build System <autodist@mambasoft.it> 3.1.3-1mamba
- automatic version update by autodist
* Mon Nov 22 2021 Automatic Build System <autodist@mambasoft.it> 3.1.2-1mamba
- automatic version update by autodist
* Sat Jul 10 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 3.0.2-2mamba
- rebuilt with official wxWidgets 3.1.5