Created attachment 503542 [details] build.log # emerge -pqv media-sound/audacity [ebuild U ] media-sound/audacity-2.2.0 [2.1.3-r1] USE="alsa ffmpeg flac lame mad portmixer vorbis -doc -id3tag -jack -ladspa -libav -lv2 -midi -nls -sbsms -soundtouch -twolame -vamp -vst*" CPU_FLAGS_X86="sse" x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -std=c++11 -Wno-deprecated-declarations -D__STDC_CONSTANT_MACROS -DLIBDIR=\"/usr/lib64\" -I../lib-src/portaudio-v19/include -I../lib-src/lib-widget-extra -I/usr/lib64/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I../lib-src/libnyquist -I../lib-src/portmidi -I/usr/lib64/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -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/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -Wno-unused-local-typedefs -I../lib-src/portmixer/include -march=native -O3 -ggdb -pipe -DwxDEBUG_LEVEL=0 --std=gnu++11 -Wall -I../include -I../lib-src/FileDialog -c -o audacity-AudioIO.o `test -f 'AudioIO.cpp' || echo './'`AudioIO.cpp AudioIO.cpp: In constructor 'AudioIO::ScrubQueue::ScrubQueue(double, double, wxLongLong, double, long int, const ScrubbingOptions&)': AudioIO.cpp:960:20: warning: 'AudioIO::ScrubQueue::mUpdating' will be initialized after [-Wreorder] mutable wxMutex mUpdating; ^~~~~~~~~ AudioIO.cpp:958:15: warning: 'const long int AudioIO::ScrubQueue::mMaxDebt' [-Wreorder] const long mMaxDebt; ^~~~~~~~ AudioIO.cpp:533:4: warning: when initialized here [-Wreorder] ScrubQueue(double t0, double t1, wxLongLong startClockMillis, ^~~~~~~~~~ AudioIO.cpp: In function 'double SystemTime(bool)': AudioIO.cpp:983:26: error: 'PaUtil_GetTime' was not declared in this scope return PaUtil_GetTime() - streamStartTime; ^ AudioIO.cpp: In member function 'bool AudioIO::StartPortAudioStream(double, unsigned int, unsigned int, sampleFormat)': AudioIO.cpp:1798:7: error: 'mAudioOutLatency' was not declared in this scope mAudioOutLatency = info->outputLatency; ^~~~~~~~~~~~~~~~ AudioIO.cpp:1799:7: error: 'mSystemMinusAudioTimePlusLatency' was not declared in this scope mSystemMinusAudioTimePlusLatency += mAudioOutLatency; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AudioIO.cpp: In lambda function: AudioIO.cpp:3964:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for( i = 0; (int)i < numChannels; i++ ) ~~~~~~~^~~~~~~~~~~~~ AudioIO.cpp: In function 'void DoSoftwarePlaythrough(const void*, sampleFormat, unsigned int, float*, int)': AudioIO.cpp:4579:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i=0; i < inputChannels; i++) { ~~^~~~~~~~~~~~~~~ AudioIO.cpp: In function 'int audacityAudioCallback(const void*, void*, long unsigned int, const PaStreamCallbackTimeInfo*, PaStreamCallbackFlags, void*)': AudioIO.cpp:4622:18: error: 'class AudioIO' has no member named 'mCallbackCount' if (gAudioIO->mCallbackCount++ == 0) { ^~~~~~~~~~~~~~ AudioIO.cpp:4624:18: error: 'class AudioIO' has no member named 'mStartTime'; did you mean 'mTime'? gAudioIO->mStartTime = SystemTime(gAudioIO->mUsingAlsa) - gAudioIO->mT0; ^~~~~~~~~~ AudioIO.cpp:4885:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int c = 0; c < numPlaybackChannels; c++) ~~^~~~~~~~~~~~~~~~~~~~~ AudioIO.cpp:5004:29: error: 'class AudioIO' has no member named 'mMidiOutputComplete'; did you mean 'mMixerOutputVol'? gAudioIO->mMidiOutputComplete = true, ^~~~~~~~~~~~~~~~~~~ AudioIO.cpp:5067:26: error: 'class AudioIO' has no member named 'mMidiOutputComplete'; did you mean 'mMixerOutputVol'? gAudioIO->mMidiOutputComplete = true, ^~~~~~~~~~~~~~~~~~~ make[2]: *** [Makefile:3171: audacity-AudioIO.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.2.0/work/audacity-minsrc-2.2.0/src' make[1]: *** [Makefile:1585: all] Error 2 make[1]: Leaving directory '/var/tmp/portage/media-sound/audacity-2.2.0/work/audacity-minsrc-2.2.0/src' make: *** [Makefile:808: all-recursive] Error 1
Created attachment 503556 [details, diff] 2.2.0-support-without-midi.patch The attached patch allows media-sound/audacity-2.2.0 to build and run successfully with USE="-midi".
Had same issue, thank you for patch, it worked!
@Matt Whitlock, do you know if there's an upstream bug for this?
(In reply to Simon from comment #3) > @Matt Whitlock, do you know if there's an upstream bug for this? I have no idea. I assumed upstream doesn't care about (or test) all possible combinations of their configure options. Let's face it: Gentoo is practically the only distro that lets users build software in severely stripped down configurations.
Same patch applies to 2.2.1
If someone is interested, this patch and a couple of other patches may be used with the ebuild I suggested in Bug 624264
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18dbd4fcf1bca48ad8b368346bfe73e2f2f40f02 commit 18dbd4fcf1bca48ad8b368346bfe73e2f2f40f02 Author: Lars Wendler <polynomial-c@gentoo.org> AuthorDate: 2018-02-21 10:42:32 +0000 Commit: Lars Wendler <polynomial-c@gentoo.org> CommitDate: 2018-02-21 11:08:50 +0000 media-sound/audacity: Fixed compilation with USE="-midi" Thanks to Matt Whitlock for providing the initial patch. Closes: https://bugs.gentoo.org/637110 Package-Manager: Portage-2.3.24, Repoman-2.3.6 media-sound/audacity/audacity-2.2.2.ebuild | 8 + .../audacity/files/audacity-2.2.2-midi.patch | 168 +++++++++++++++++++++ 2 files changed, 176 insertions(+)