Bug 207307 - audio/audacity: changes CONFIGURE_ARGS and LIB_DEPENDS
Summary: audio/audacity: changes CONFIGURE_ARGS and LIB_DEPENDS
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Thomas Zander
URL:
Keywords: needs-qa, patch
Depends on:
Blocks:
 
Reported: 2016-02-18 12:43 UTC by Tatsuki Makino
Modified: 2016-03-05 18:12 UTC (History)
3 users (show)

See Also:
rakuco: maintainer-feedback+


Attachments
For information to change, it can apply, but it sholdn't commit directly (4.46 KB, patch)
2016-02-18 12:43 UTC, Tatsuki Makino
no flags Details | Diff
configure failure (14.49 KB, text/plain)
2016-02-19 20:52 UTC, Jack
no flags Details
For information to change (4.68 KB, patch)
2016-02-20 14:26 UTC, Tatsuki Makino
no flags Details | Diff
configure error (78.62 KB, text/plain)
2016-02-23 01:21 UTC, Jack
no flags Details
patch for lib-src/portmixer/configure{,.ac} (1.36 KB, patch)
2016-02-24 01:11 UTC, Tatsuki Makino
no flags Details | Diff
For information to change (9.09 KB, patch)
2016-02-25 04:51 UTC, Tatsuki Makino
rakuco: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tatsuki Makino 2016-02-18 12:43:57 UTC
Created attachment 167149 [details]
For information to change, it can apply, but it sholdn't commit directly

some libraries are installed but unused.

--with-libiconv-prefix:
USES+=iconv and CONFIGURE_ARGS+= ${ICONV_CONFIGURE_ARG}

--with-lib-preference:
"system" is dropped for using bundle library code.
But it can override with --with-PACKAGE=system for using library of ports/pkg.

--with-expat:
use ports/pkg by --with-expat=system.

--with-libsndfile:
libsndfile of ports/pkg has same code as bundled code.
It should use ports/pkg by --with-libsndfile=system.

--with-libsoxr:
It is not ported. It use bundled code.

--with-portaudio:
library of ports/pkg is failed configure.
library is available as system library, but does not have the Pa_GetStreamHostApiType function.
It must use bundled code.

--with-midi:
Perhaps, it is not ported. It use bundled code if use portSMF.

--with-widgetextra:
Perhaps, it is not ported. It use bundled code.

--with-portmixer:
I'm sorry, It is not checked.
Perhaps, it is required.

--with-libintl-prefix:
Add to OPTION NLS.

--enable-dynamic-loading:
OPTION DYNLOAD is added for choosing dynamic loading or run-time linking libmp3lame and libavformat.
Perhaps, if it turn on by default and add condition like following, it will be useful for pkg users.

.if ${PORT_OPTIONS:MDYNLOAD}
. if ${PORT_OPTIONS:MFFMPEG}
BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/libavcodec.pc:${PORTSDIR}/multimedia/ffmpeg
. endif
. if ${PORT_OPTIONS:MLAME}
BUILD_DEPENDS+= ${LOCALBASE}/include/lame/lame.h:${PORTSDIR}/audio/lame
. endif
.else
. if ${PORT_OPTIONS:MFFMPEG}
LIB_DEPENDS+=    libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
. endif
. if ${PORT_OPTIONS:MLAME}
LIB_DEPENDS+=      libmp3lame.so:${PORTSDIR}/audio/lame
. endif
.endif

--with-ffmpeg:
It is controlled by OPTION FFMPEG.
bundled code is old header only.
It should use ports/pkg.
It has already used ports/pkg since Bug 205484.

--with-libflac:
It is controlled by OPTION FLAC.
bundled patches don't affect to run.
It can use ports/pkg by --with-libflac=system.

--with-libid3tag:
It is controlled by OPTION ID3TAG.
bundled codes are patched for ID3v2.3.
frame.c, id3tag.h, tag.c and utf16.c are patched.
But, it can use ports/pkg.

--with-libmad:
It is controlled by OPTION MAD.
bundled codes are patched.
layer12.c and layer3.c are patched.
Perhaps, it can use ports/pkg.

--with-lame:
It is controlled by OPTION LAME.
--without-lame is broken. It is not detached code of libmp3lame.
It is only choosing to use ports/pkg or to use bundled header.

--with-soundtouch:
It is controlled by OPTION SOUNDTOUCH.
bundled patches don't affect to run.
It can use ports/pkg by --with-soundtouch=system.

--with-twolame:
It is controlled by OPTION TWOLAME.
bundled patches don't affect to run.
It can use ports/pkg by --with-twolame=system.

--with-libvamp:
It is controlled by OPTION VAMP.
ports/pkg has new version.
It use ports/pkg version.

--with-libvorbis:
It is controlled by OPTION VORBIS.
bundled libogg version is 1.3.1.
bundled libvorbis version is 1.3.3, but some version 1.2.x codes are mixed and unused.
bundled patches don't affect to run.
It should use ports/pkg by --with-libvorbis=system.
Comment 1 Jack 2016-02-19 01:18:08 UTC
Ok, I will check this out and see if everything works properly.
Comment 2 Jack 2016-02-19 20:52:10 UTC
Created attachment 167204 [details]
configure failure

The patch does not compile with and without the DYNLOAD option. Same errors.
Comment 3 Tatsuki Makino 2016-02-20 14:26:42 UTC
Created attachment 167219 [details]
For information to change

(In reply to xxjack12xx from comment #2)

I'm sorry, I removed block of {CPP,C,CXX,LD}FLAGS. But to configure LAME requires variables CPPFLAGS+=-I${LOCALBASE}/include and LDFLAGS+=-L${LOCALBASE}/lib. And I was deceived by gcc48.

When we compile test.c as following by gcc48 -v, gcc48 searches /usr/local/include without -I/usr/local/include.

test.c:
#include <lame/lame.h>
int main() { return 0; }

result of gcc48 -v test.c:
Using built-in specs.
COLLECT_GCC=gcc48
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc48/gcc/x86_64-portbld-freebsd9.3/4.8.5/lto-wrapper
Target: x86_64-portbld-freebsd9.3
(snip)
ignoring nonexistent directory "/usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd9.3/4.8.5/../../../../../x86_64-portbld-freebsd9.3/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd9.3/4.8.5/include
 /usr/local/include
 /usr/local/lib/gcc48/gcc/x86_64-portbld-freebsd9.3/4.8.5/include-fixed
 /usr/include
End of search list.
(snip)

I add CPPFLAGS and LDFLAGS for LAME.
Would you try new one?
Comment 4 Jack 2016-02-23 01:21:13 UTC
Created attachment 167312 [details]
configure error

Got a little further, but still errors.
Comment 5 Tatsuki Makino 2016-02-24 01:11:32 UTC
Created attachment 167340 [details]
patch for lib-src/portmixer/configure{,.ac}

(In reply to xxjack12xx from comment #4)
files/patch-lib-src_portmixer_configure or files/patch-lib-src_portmixer_configure.ac and autoreconf are needed for solving it.

If cpp is run as cpp -I/usr/local/include -I${WRKSRC}/./lib-src/portaudio-v19/include, /usr/local/include is searched before ${WRKSRC}/./lib-src...
It occurs in the environment where -I/usr/local/include is added (OPTION LAME is on) and audio/portaudio is installed (/usr/local/include/portaudio.h is existed).
Comment 6 Tatsuki Makino 2016-02-25 04:51:46 UTC
Created attachment 167381 [details]
For information to change

attachment 167219 [details] + attachment 167340 [details] + fixing libnyquist.

Bundled libnyquist depends bundled portaudio and bundled libsndfile.
${WRKSRC}/lib-src/libsndfile/src/sndfile.h is not generated and build is failed if --with-libsndfile=system is used.
Added post-configure target and patch for lib-src/libnyquist/Makefile.in fix it.
Patches for lib-src/libnyquist/Makefile.am, lib-src/libnyquist/configure.ac and m4/audacity_checklib_libsndfile.m4 don't affect. But they are needed if autoreconf and libtool are added to USES (Bug 206914).
Comment 7 Jack 2016-03-02 00:50:29 UTC
Compiles fine with the latest patch now.
Comment 8 commit-hook freebsd_committer freebsd_triage 2016-03-05 18:10:21 UTC
A commit references this bug:

Author: riggs
Date: Sat Mar  5 18:10:10 UTC 2016
New revision: 410194
URL: https://svnweb.freebsd.org/changeset/ports/410194

Log:
  Fix dependencies, CONFIGURE_ARGS, introduce DYNLOAD OPTION

  DYNLOAD is added for run-time linking libmp3lame and libavformat.
  In future, this might allow for removal of LIB_DEPENDS on lame
  and ffmpeg.

  PR:		207307
  Submitted by:	tatsuki_makino@hotmail.com
  Reviewed by:	xxjack12xx@gmail.com (maintainer)
  Approved by:	xxjack12xx@gmail.com (maintainer)

Changes:
  head/audio/audacity/Makefile
  head/audio/audacity/files/patch-lib-src_libnyquist_Makefile.am
  head/audio/audacity/files/patch-lib-src_libnyquist_Makefile.in
  head/audio/audacity/files/patch-lib-src_libnyquist_configure.ac
  head/audio/audacity/files/patch-lib-src_portmixer_configure
  head/audio/audacity/files/patch-lib-src_portmixer_configure.ac
  head/audio/audacity/files/patch-m4_audacity__checklib__libsndfile.m4