Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 680028 - media-sound/audacity-2.3.2 version bump
Summary: media-sound/audacity-2.3.2 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Professional Audio Applications Maintainers
URL:
Whiteboard:
Keywords: EBUILD
Depends on:
Blocks:
 
Reported: 2019-03-11 10:49 UTC by luzpaz
Modified: 2019-09-12 03:14 UTC (History)
11 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
audacity-2.3.1.ebuild (audacity-2.3.1.ebuild,3.00 KB, text/plain)
2019-03-11 13:20 UTC, Lars Wendler (Polynomial-C) (RETIRED)
Details
audacity-2.3.2.ebuild (WIP) (audacity-2.3.2.ebuild,2.97 KB, text/plain)
2019-07-31 10:46 UTC, Lars Wendler (Polynomial-C) (RETIRED)
Details
audacity-2.3.2-Fix-building-against-system-portaudio.patch (0005-Fix-building-against-system-portaudio.patch,1.94 KB, text/plain)
2019-08-26 22:36 UTC, Alexander Tsoy
Details
audacity-2.3.2.ebuild (audacity-2.3.2.ebuild,3.09 KB, text/plain)
2019-08-26 22:40 UTC, Alexander Tsoy
Details
audacity-2.3.2-Fix-building-without-midi.patch (audacity-2.3.2-Fix-building-without-midi.patch,1.55 KB, text/plain)
2019-08-27 00:56 UTC, Alexander Tsoy
Details
audacity-2.3.2.ebuild (audacity-2.3.2.ebuild,3.28 KB, text/plain)
2019-08-27 01:00 UTC, Alexander Tsoy
Details
audacity-2.3.2.ebuild (audacity-2.3.2.ebuild,3.36 KB, text/plain)
2019-08-27 13:58 UTC, Alexander Tsoy
Details
audacity-2.3.2-Fix-building-without-midi.patch (audacity-2.3.2-Fix-building-without-midi.patch,1.80 KB, text/plain)
2019-08-27 16:52 UTC, Alexander Tsoy
Details
audacity-2.3.2.ebuild (audacity-2.3.2.ebuild,3.28 KB, text/plain)
2019-08-27 23:59 UTC, Alexander Tsoy
Details

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-03-11 10:57:00 UTC
This release requires a new portaudio snapshot first.
Comment 2 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-03-11 13:20:47 UTC
Created attachment 568566 [details]
audacity-2.3.1.ebuild

Alright, added updated portaudio to the tree but now compilation of audacity-2.3.1 fails:


x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I.  -std=c++11 -Wno-deprecated-declarations -D__STDC_CONSTANT_MACROS -DWXINTL_NO_GETTEXT_MACRO -DLIBDIR=\"/usr/lib64\"   -pthread    -I../lib-src/lib-widget-extra -I/usr/lib64/wx/include/gtk2-unic
ode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread           -I/usr/include/soundtouch          -I/usr/lib64/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WX
GTK__ -pthread -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/l
ibpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -Wno-unused-local-typedefs -I../lib-src/portmixer/include -march=native -mtune=native -O2 -pipe -std=gnu++11 -DwxDEBUG_LEVEL=0 --std=gnu++11  -Wall -I../include -I../lib-src/FileDialog             -c -o audacity-DirManager.o `test -f 'DirManager.cpp' || echo './'`DirManager.cpp
In file included from effects/Effect.h:42,
                 from effects/EffectManager.h:26,
                 from Project.h:31,
                 from DirManager.cpp:103:
effects/../Track.h:122:37: error: ‘Note’ is not a member of ‘TrackKind’
      Pair<NoteTrack,     TrackKind::Note>,
                                     ^~~~
effects/../Track.h:122:37: error: ‘Note’ is not a member of ‘TrackKind’
effects/../Track.h:122:41: error: template argument 2 is invalid
      Pair<NoteTrack,     TrackKind::Note>,
                                         ^
effects/../Track.h:126:4: error: template argument 5 is invalid
    >;
    ^
effects/../Track.h: In function ‘constexpr TrackKind track_kind()’:
effects/../Track.h:145:64: error: ‘List’ was not declared in this scope
    return Lookup< typename std::remove_const<TrackType>::type, List >::value();
                                                                ^~~~
effects/../Track.h:145:64: note: suggested alternative: ‘wxList’
    return Lookup< typename std::remove_const<TrackType>::type, List >::value();
                                                                ^~~~
                                                                wxList
effects/../Track.h:145:69: error: template argument 2 is invalid
    return Lookup< typename std::remove_const<TrackType>::type, List >::value();
                                                                     ^
effects/../Track.h: In instantiation of ‘constexpr TrackKind track_kind() [with TrackType = const Track]’:
effects/../Track.h:807:50:   required from ‘typename std::enable_if<std::is_pointer<_Tp>::value, T>::type track_cast(Track*) [with T = const Track*; typename std::enable_if<std::is_pointer<_Tp>::value, T>::type = const Track*]’
effects/../Track.h:980:52:   required from ‘bool TrackIter<TrackType>::valid() const [with TrackType = const Track]’
effects/../Track.h:866:47:   required from ‘TrackIter<TrackType>::TrackIter(TrackNodePointer, TrackNodePointer, TrackNodePointer, const Predicate&) [with Predicate = std::function<bool(const Track*)>; TrackType = const Track; TrackNodePointer = std::pair<std::_List_iterator<std::shared_ptr<Track> >, std::__cxx11::list<std::shared_ptr<Track> >*>]’
effects/../Track.h:891:67:   required from ‘typename std::enable_if<(std::is_base_of<_Tp, _Up>::value && ((! std::is_const<_Tp>::value) || std::is_const<TrackType2>::value)), TrackIter<TrackType2> >::type TrackIter<TrackType>::Filter() const [with TrackType2 = const Track; TrackType = Track; typename std::enable_if<(std::is_base_of<_Tp, _Up>::value && ((! std::is_const<_Tp>::value) || std::is_const<TrackType2>::value)), TrackIter<TrackType2> >::type = TrackIter<const Track>]’
effects/../Track.h:1243:73:   required from here
effects/../Track.h:146:1: error: body of ‘constexpr’ function ‘constexpr TrackKind track_kind() [with TrackType = const Track]’ not a return-statement
 }
 ^
effects/../Track.h: In instantiation of ‘constexpr TrackKind track_kind() [with TrackType = Track]’:
effects/../Track.h:807:50:   required from ‘typename std::enable_if<std::is_pointer<_Tp>::value, T>::type track_cast(Track*) [with T = Track*; typename std::enable_if<std::is_pointer<_Tp>::value, T>::type = Track*]’
effects/../Track.h:980:52:   required from ‘bool TrackIter<TrackType>::valid() const [with TrackType = Track]’
effects/../Track.h:866:47:   required from ‘TrackIter<TrackType>::TrackIter(TrackNodePointer, TrackNodePointer, TrackNodePointer, const Predicate&) [with Predicate = std::function<bool(const Track*)>; TrackType = Track; TrackNodePointer = std::pair<std::_List_iterator<std::shared_ptr<Track> >, std::__cxx11::list<std::shared_ptr<Track> >*>]’
effects/../Track.h:1475:53:   required from ‘TrackIterRange<TrackType> TrackList::Tracks(const Pred&) [with TrackType = Track; Pred = std::function<bool(const Track*)>]’
effects/../Track.h:1251:34:   required from ‘TrackIterRange<TrackType> TrackList::Any() [with TrackType = Track]’
effects/../Track.h:1202:34:   required from here
effects/../Track.h:146:1: error: body of ‘constexpr’ function ‘constexpr TrackKind track_kind() [with TrackType = Track]’ not a return-statement
make[2]: *** [Makefile:2999: audacity-DirManager.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.3.1/work/audacity-Audacity-2.3.1/src'
make[1]: *** [Makefile:1635: all] Error 2
make[1]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.3.1/work/audacity-Audacity-2.3.1/src'
make: *** [Makefile:811: all-recursive] Error 1
 * ERROR: media-sound/audacity-2.3.1::gentoo failed (compile phase):
 *   emake failed



Any help is appreciated.
Comment 3 Michal Plichta 2019-03-12 09:46:51 UTC
https://wiki.audacityteam.org/wiki/Building_On_Linux never mention we need portaudio???
Comment 4 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-03-12 10:10:59 UTC
(In reply to Michal Plichta from comment #3)
> https://wiki.audacityteam.org/wiki/Building_On_Linux never mention we need
> portaudio???

Because they bundle lots of libs in their source tarballs but Gentoo discourages usage of bundled libs for security reasons.
Comment 5 Manuel Ullmann 2019-03-22 21:03:08 UTC
I’ve also looked a little bit into it and noticed, that the portaudio patch you applied was already present in 2.2.2, which did not break compilation. So the root cause has to be somewhere else.

At least we now know one more place, where nothing is to be found. ;)
Comment 6 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-05-14 06:59:26 UTC
audacity-2.3.2 fails with the same error message. Still, any help is highly appreciated.
Comment 7 Jaak Ristioja 2019-05-15 10:30:53 UTC
Apparently Audacity does not compile without the USE_MIDI macro being defined. USE_MIDI is not getting defined, because portSMF is disabled:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/audacity-2.3.2 --htmldir=/usr/share/doc/audacity-2.3.2/html --libdir=/usr/lib64 --disable-dynamic-loading --enable-nyquist --enable-unicode --with-lib-preference=system --with-portaudio --with-widgetextra=local --with-wx-version=3.0 --enable-sse --enable-ladspa --disable-nls --enable-vst --with-ffmpeg --with-libflac --with-libid3tag --with-lame --with-lv2 --with-libmad --with-midi --with-sbsms --with-soundtouch --without-libtwolame --without-libvamp --with-libvorbis --with-portmixer --with-mod-script-pipe --with-mod-nyq-bench
...
checking for PORTSMF... no
configure: portSMF library is NOT available as system library
checking for ./lib-src/portsmf/allegro.h... yes
configure: portSMF library is available in the local tree
...
PORTSMF: disabled
...

Given --with-lib-preference=system this is seems to be expected behavior. There is no portSMF pkg-config file on the system.
Comment 8 CaptainBlood 2019-07-06 10:37:07 UTC
In order to build audacity, here are the USE flags being set here for eons, since 2.2.x at least, likely be older but emerge.log got reset:

media-sound/audacity +lame
media-sound/audacity +midi
media-sound/audacity +portmixer
media-sound/audacity +soundtouch

The + is set here to emphasize USE flags technically required to build.

2.3.2 builds fine here.

Maybe an unstable ebuild could be released forcing these, or any other appropriate configuration.

This is nothing but my two cents, that may fit some users.
Comment 9 luzpaz 2019-07-08 11:26:26 UTC
Thanks for working on this
Comment 10 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2019-07-31 10:46:18 UTC
Created attachment 585228 [details]
audacity-2.3.2.ebuild (WIP)

Current work in progress ebuild. I still have trouble compiling audacity against our system-portaudio. I suppose we still haven't sufficiently patched our system-portaudio for audacity. Patches or hints what needs to be fixed are highly welcome!
Comment 11 Alexander Tsoy 2019-08-26 20:19:51 UTC
(In reply to Jaak Ristioja from comment #7)
> Apparently Audacity does not compile without the USE_MIDI macro being
> defined. USE_MIDI is not getting defined, because portSMF is disabled:
> 
> ...
> 
> Given --with-lib-preference=system this is seems to be expected behavior.
> There is no portSMF pkg-config file on the system.
There are two different midi-related configure options:
--with-midi=system : requires portsmf, which is currently not in the gentoo repo;
--with-portmidi=system : requires media-libs/portmidi and pkg-config file "portmidi.pc", which is not provided by upstream and exists only in bundled portmidi in audacity source tree.

So we cannot currently build Audacity against system midi libraries and the following part of ebuild is incorrect:

midi? ( media-libs/portmidi )
...
$(use_with midi)
Comment 12 Alexander Tsoy 2019-08-26 22:36:11 UTC
Created attachment 588238 [details]
audacity-2.3.2-Fix-building-against-system-portaudio.patch

Debian patch
Comment 13 Alexander Tsoy 2019-08-26 22:40:08 UTC
Created attachment 588240 [details]
audacity-2.3.2.ebuild

- fixed building against system portaudio;
- fixed dependency on media-libs/portaudio ([alsa?]);
- temporary switched to bundled portmidi and portsmf until we decide what to do with them.
Comment 14 Alexander Tsoy 2019-08-26 22:43:16 UTC
(In reply to Lars Wendler (Polynomial-C) from comment #2)
I can reproduce this with USE=-midi. Looks like some ifdefs (USE_MIDI and/or EXPERIMENTAL_MIDI_OUT) are missing (similar to bug 637110). I'm still investigating.
Comment 15 Alexander Tsoy 2019-08-27 00:56:14 UTC
Created attachment 588242 [details]
audacity-2.3.2-Fix-building-without-midi.patch

I'll submit PR upstream when find time to test these changes against git master (most likely src/menus/FileMenus.cpp is already fixed here).
Comment 16 Alexander Tsoy 2019-08-27 01:00:20 UTC
Created attachment 588244 [details]
audacity-2.3.2.ebuild

Fixed building with USE=-midi

EXPERIMENTAL_MIDI_OUT depends on USE_MIDI and must be commented out in src/Experimental.h with USE=-midi
Comment 17 Alexander Tsoy 2019-08-27 01:12:12 UTC
TODO:
- bump to EAPI=7
- what to do with portsmf and portmidi?
Comment 18 Alexander Tsoy 2019-08-27 13:58:40 UTC
Created attachment 588266 [details]
audacity-2.3.2.ebuild

- EAPI=7
- drop REQUIRED_USE and don't enable midi use-flag by default
- add missing lv2 dependencies
- explicitly request system libraries
Comment 19 Alexander Tsoy 2019-08-27 16:52:59 UTC
Created attachment 588274 [details]
audacity-2.3.2-Fix-building-without-midi.patch
Comment 20 Alexander Tsoy 2019-08-27 23:59:47 UTC
Created attachment 588402 [details]
audacity-2.3.2.ebuild

Pass --with-lib-preference=system to configure instead of specifying it for each option (default is "system local").
Comment 21 Larry the Git Cow gentoo-dev 2019-08-28 07:44:49 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6b9364ffd66913edfbf0276653a7f881ca4bde6

commit e6b9364ffd66913edfbf0276653a7f881ca4bde6
Author:     Alexander Tsoy <alexander@tsoy.me>
AuthorDate: 2019-08-28 07:43:54 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2019-08-28 07:44:43 +0000

    media-sound/audacity: Bump to version 2.3.2
    
    Closes: https://bugs.gentoo.org/680028
    Package-Manager: Portage-2.3.73, Repoman-2.3.17
    Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

 media-sound/audacity/Manifest                      |   2 +
 media-sound/audacity/audacity-2.3.2.ebuild         | 141 +++++++++++++++++++++
 .../audacity-2.3.2-Fix-building-without-midi.patch |  71 +++++++++++
 ...3.2-fix_building_against_system_portaudio.patch |  56 ++++++++
 4 files changed, 270 insertions(+)
Comment 22 Matt Whitlock 2019-08-30 17:52:31 UTC
Has anyone seen this?:


Making all in portmixer
make[2]: Entering directory '/var/tmp/portage/media-sound/audacity-2.3.2/work/audacity-Audacity-2.3.2/lib-src/portmixer'
make[2]: *** No rule to make target 'all'.  Stop.
make[2]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.3.2/work/audacity-Audacity-2.3.2/lib-src/portmixer'
make[1]: *** [Makefile:1014: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.3.2/work/audacity-Audacity-2.3.2/lib-src'
make: *** [Makefile:812: all-recursive] Error 1
 * ERROR: media-sound/audacity-2.3.2::gentoo failed (compile phase):
 *   emake failed


If I look in lib-src/portmixer, I see a Makefile.am and Makefile.in but no Makefile.
Comment 23 Alexander Tsoy 2019-08-30 18:23:08 UTC
(In reply to Matt Whitlock from comment #22)
Yes, I can reproduce this with USE=-portmixer. The problem is in lib-src/Makefile.am, which is unconditionally includes portmixer subdir. And this is not a regression AFAIS.
Comment 24 Matt Whitlock 2019-08-30 18:45:22 UTC
(In reply to Alexander Tsoy from comment #23)
> (In reply to Matt Whitlock from comment #22)
> Yes, I can reproduce this with USE=-portmixer. The problem is in
> lib-src/Makefile.am, which is unconditionally includes portmixer subdir. And
> this is not a regression AFAIS.

I have 2.2.2 installed with USE="-portmixer".

I guess I'll take a look at producing a patch for this next week. (Won't be the first time I'll have dug into Audacity to fix build failures. Upstream isn't very thorough about testing their configure options.)
Comment 25 Matt Whitlock 2019-09-12 03:14:47 UTC
(In reply to Matt Whitlock from comment #24)
> I guess I'll take a look at producing a patch for this next week.

See bug #694122.