Created attachment 175509 [details] new port (update) An update for the already submitted new port! First port of a series to support using FreeBSD as a DAW with latest ardour version. This port conflicts with lv2core, which is quite outdated! LV2 is a standard for plugins and matching host applications, mainly targeted at audio processing and generation. LV2 is a simple but extensible successor of LADSPA, intended to address the limitations of LADSPA which many applications have outgrown. WWW: http://lv2plug.in/
Comment on attachment 175509 [details] new port (update) $ portlint -AC FATAL: Makefile: [15]: use a tab (not space) after a variable name FATAL: Makefile: [19]: use a tab (not space) after a variable name FATAL: Makefile: [21]: use a tab (not space) after a variable name FATAL: Makefile: [23]: use a tab (not space) after a variable name FATAL: Makefile: [25]: use a tab (not space) after a variable name 5 fatal errors and 0 warnings found. > XCOMMENT= LV2 Package Can you give a better description of what the package is about? Perhaps, extract and reword parts of pkg-descr or take/mix description(s) from other distributions (e.g. Arch Linux, Gentoo, PkgSrc, Debian). https://www.freebsd.org/doc/en/books/porters-handbook/makefile-comment.html > XLIB_DEPENDS= libsndfile.so:audio/libsndfile libfontconfig.so:x11-fonts/fontconfig libfreetype.so:print/freetype2 Wrap long lines to be readable on 80 column terminal. Auto-wrapping in text editors often looks ugly while long lines are hard to review. Also, sort dependencies by package origin (i.e. port directory). > XUSES= pkgconfig python:build tar:bzip2 waf gettext-runtime [...] > XUSE_GNOME= gtk20 pango atk cairo gdkpixbuf2 glib20 Prefer alphabetic sorting in USE* variables unless you have a rationale to do otherwise. > XCONFLICTS_INSTALL= lv2core For better visibility maybe move just under _DEPENDS section. > XCONFIGURE_TARGET= configure This is already the default value. > XNLS_USES= gettext This is nop unless OPTIONS_DEFINE contains NLS and the build is somehow instructed to disable gettext dependency if the option is disabled. > XUSE_GNOME= gtk20 pango atk cairo gdkpixbuf2 glib20 To avoid confusion don't place global variables *after* those tied to a specific option such as NLS i.e., USES= ... USE_BAR= ... USE_QUX= ... OPTIONS_DEFINE= ... TEST_USES= ... vs. USES= ... OPTIONS_DEFINE= ... TEST_USES= ... USE_BAR= ... USE_QUX= ... > X.if defined(BATCH) || defined(PACKAGE_BUILDING) > XMAKE_ARGS+= --verbose > X.endif No longer necessary after ports r421635 + ports r423928. > X @${REINPLACE_CMD} -e 's/autowaf\.build_pc(bld, '\''LV2CORE'\'', LV2CORE_VERSION,.*/bld\(features = '\''subst'\'',source = '\''lv2core\.pc\.in'\'',target = '\''lv2core\.pc'\'',install_path = '\''\$$\{LIBDIR\}data\/pkgconfig'\'',PREFIX = bld\.env\.PREFIX,INCLUDEDIR = bld\.env\.INCLUDEDIR,VERSION = LV2CORE_VERSION\)/g' ${WRKSRC}/lv2/lv2plug.in/ns/lv2core/wscript This line is hard to read. Use a patch under files/ directory unless the line changes on every release. Any text editor that handles diff(1) output (e.g. Emacs, Vim) should be able to highlight changes within and facilitate edits. > Xpost-install: > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-amp.lv2/amp.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-fifths.lv2/fifths.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-metro.lv2/metro.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-midigate.lv2/midigate.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-params.lv2/params.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-sampler.lv2/sampler.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-sampler.lv2/sampler_ui.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-scope.lv2/examploscope.so > X @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lv2/eg-scope.lv2/examploscope_ui.so This can be simplified to a bit more future-proof variant: post-install: # Waf doesn't have built-in strip support @${FIND} ${STAGEDIR}${PREFIX}/lib/lv2/ \ -name '*.so' -exec ${STRIP_CMD} {} + >Xbin/lv2specgen.py If the file uses python you need USES=python:run, or in this case just USES=python (without arguments). And you may need USES=shebang as "python" from lang/python may not be installed. https://www.freebsd.org/doc/en/books/porters-handbook/uses-shebangfix.html
*** Bug 212751 has been marked as a duplicate of this bug. ***
*** Bug 197126 has been marked as a duplicate of this bug. ***
$ lv2specgen.py Error importing pygments, syntax highlighting disabled Error importing rdflib
Rather than conflicting with the old port from this project I would suggest replacing it. The audio/lv2core port only provides a small subset of the files from the lv2 project that are needed to compile lv2 plugins, all of which are included in this new port. Considering this new port would be a change from installing a small subset of the project to the whole project, I think renaming audio/lv2core to audio/lv2 and then expanding it to this new proposal would better track the history. Only a few ports - audio/calf audio/slv2 and audio/linuxsampler depend on audio/lv2core so updating them to the project rename is a small task.
Assuming the submitter does basic runtime regression testing and fixes audio/calf build: /bin/sh ../libtool --tag=CXX --mode=link c++ -ffast-math -I/usr/local/include -I/usr/local/include/gtk-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/libdrm -I/usr/local/include/libpng16 -I/usr/local/include/harfbuzz -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/atk-1.0 -pthread -D_THREAD_SAFE -I/usr/local/include -I/usr/local/include/lash-1.0 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -pthread -O2 -pipe -fstack-protector -fno-strict-aliasing -Wall -avoid-version -module -export-symbols-regex "lv2_descriptor" -L/usr/local/lib -fstack-protector -o calf.la -rpath /calf.lv2 audio_fx.lo analyzer.lo metadata.lo modules_tools.lo modules_delay.lo modules_comp.lo modules_limit.lo modules_dist.lo modules_filter.lo modules_mod.lo fluidsynth.lo giface.lo monosynth.lo organ.lo osctl.lo plugin.lo preset.lo synth.lo utils.lo wavetable.lo modmatrix.lo -L/usr/local/lib -lfluidsynth -L/usr/local/lib -lgthread-2.0 -pthread -lglib-2.0 -lintl -lexpat [...] c++: warning: argument unused during compilation: '-pthread' c++: warning: argument unused during compilation: '-pthread' c++: warning: argument unused during compilation: '-pthread' c++: warning: argument unused during compilation: '-pthread' /usr/bin/ld:.libs/calf.so-ver:2: syntax error in VERSION script c++: error: linker command failed with exit code 1 (use -v to see invocation)
A commit references this bug: Author: jbeich Date: Mon Oct 31 20:40:44 UTC 2016 New revision: 425024 URL: https://svnweb.freebsd.org/changeset/ports/425024 Log: audio/lv2: add new port PR: 197126, 213285 (based on) Submitted by: Radim Kolar <hsn@sendmail.cz>, Michael Beer <beerml@sigma6audio.de> LV2 is an open standard for audio plugins, used by hundreds of plugins and other projects. At its core, LV2 is a simple stable interface, accompanied by extensions which add functionality to support the needs of increasingly powerful audio software. http://lv2plug.in/ Changes: head/audio/Makefile head/audio/lv2/ head/audio/lv2/Makefile head/audio/lv2/distinfo head/audio/lv2/files/ head/audio/lv2/files/patch-pkgconf head/audio/lv2/pkg-descr head/audio/lv2/pkg-plist head/audio/lv2core/Makefile
Created attachment 176353 [details] switch consumers (WIP) Apologies, I gave up on review due to ENOTIME to process consumers.
Don't understand what you are saying here!? I will send a new revision of the the LV2 which fixes building the calf (and linuxsampler with lv2 option) port and therefore is able to replace the lv2core port completely.
Created attachment 176643 [details] Update of LV2 port Thanks for your hints. Please find attached the updated port. All ports which depend on lv2core should now work with the lv2 port (as a lv2core replacement) aswell, if you change their dependency from lv2core to lv2. I tested this locally with calf and with linuxsampler and audacity which support lv2 optionally.
A commit references this bug: Author: jbeich Date: Sat Nov 5 01:19:19 UTC 2016 New revision: 425366 URL: https://svnweb.freebsd.org/changeset/ports/425366 Log: audio/lv2: fix substitution in lv2core.pc Only noticed by broken -export-symbols-regex (libtool) in audio/calf. --- /usr/local/libdata/pkgconfig/lv2core.pc before +++ /usr/local/libdata/pkgconfig/lv2core.pc after @@ -1,10 +1,10 @@ prefix=/usr/local -exec_prefix= -libdir=/usr/local/lib -includedir=/usr/local/include +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include Name: lv2core -Version: +Version: 12.0 Description: An audio plugin interface specification. Libs: Cflags: -I${includedir} PR: 213285 Submitted by: Michael Beer <beerml@sigma6audio.de> (maintainer) Changes: head/audio/lv2/Makefile head/audio/lv2/files/
A commit references this bug: Author: jbeich Date: Sat Nov 5 01:19:48 UTC 2016 New revision: 425367 URL: https://svnweb.freebsd.org/changeset/ports/425367 Log: audio/lv2core: deprecate in favor of audio/lv2 - Switch existing consumers to audio/lv2 PR: 197126, 213285 (for tracking) Changes: head/audio/calf/Makefile head/audio/linuxsampler/Makefile head/audio/linuxsampler/pkg-plist head/audio/lv2core/Makefile head/audio/slv2/Makefile
Comment on attachment 176643 [details] Update of LV2 port Please, re-submit as a diff against existing audio/lv2 in the ports tree.
A commit references this bug: Author: jbeich Date: Sat Nov 5 02:59:29 UTC 2016 New revision: 425373 URL: https://svnweb.freebsd.org/changeset/ports/425373 Log: audio/lv2core: deprecate in favor of audio/lv2 (try#2) - Switch existing consumers to audio/lv2 PR: 197126, 213285 (for tracking) Changes: head/audio/calf/Makefile head/audio/linuxsampler/Makefile head/audio/lv2core/Makefile head/audio/slv2/Makefile