Bug 202737 - [patch] audio/hydrogen: fix dependencies, add more options
Summary: [patch] audio/hydrogen: fix dependencies, add more options
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: freebsd-ports-bugs (Nobody)
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2015-08-29 08:23 UTC by Andriy Voskoboinyk
Modified: 2015-10-29 13:47 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (FreeBSD)


Attachments
Makefile.diff (3.45 KB, patch)
2015-08-29 08:23 UTC, Andriy Voskoboinyk
no flags Details | Diff
portlint.log (186 bytes, text/plain)
2015-08-29 08:24 UTC, Andriy Voskoboinyk
no flags Details
poudriere-9.3-i386-nothing.log (374.38 KB, text/plain)
2015-08-29 08:24 UTC, Andriy Voskoboinyk
no flags Details
poudriere-9.3-i386-default.log (378.53 KB, text/plain)
2015-08-29 08:24 UTC, Andriy Voskoboinyk
no flags Details
poudriere-9.3-i386-all.log (390.51 KB, text/plain)
2015-08-29 08:25 UTC, Andriy Voskoboinyk
no flags Details
poudriere-10.2-amd64-default.log (411.42 KB, text/plain)
2015-08-29 08:25 UTC, Andriy Voskoboinyk
no flags Details
poudriere-10.2-amd64-all.log (422.01 KB, text/plain)
2015-08-29 08:25 UTC, Andriy Voskoboinyk
no flags Details
Maintainer update for audio/hydrogen (1.85 KB, patch)
2015-09-01 08:39 UTC, Shane
no flags Details | Diff
Maintainer update for audio/hydrogen (2.84 KB, patch)
2015-09-19 13:37 UTC, Shane
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:23:39 UTC
Created attachment 160468 [details]
Makefile.diff

- Drop unused qt4-linguist (the port already contains prebuilt translations), qt4-sql and qt4-qt3support.
- Add missing qt4-xmlpatterns dependency.
- Add LICENSE_FILE.
- Add new options:
-- DEBUG.
-- TEST + test target.
-- RUBBERBAND (from hydrogen-devel).
-- LIBARCHIVE (from hydrogen-devel).
- Make OSS support optional.
- Add LIBTAR option (and fix libtar detection).
- Bump PORTREVISION.
Comment 1 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:24:09 UTC
Created attachment 160469 [details]
portlint.log
Comment 2 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:24:39 UTC
Created attachment 160470 [details]
poudriere-9.3-i386-nothing.log
Comment 3 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:24:55 UTC
Created attachment 160471 [details]
poudriere-9.3-i386-default.log
Comment 4 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:25:10 UTC
Created attachment 160472 [details]
poudriere-9.3-i386-all.log
Comment 5 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:25:27 UTC
Created attachment 160473 [details]
poudriere-10.2-amd64-default.log
Comment 6 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-08-29 08:25:44 UTC
Created attachment 160474 [details]
poudriere-10.2-amd64-all.log
Comment 7 Shane 2015-09-01 08:37:35 UTC
Some of the changes are useful some aren't.

Adding LICENSE_FILE is not desired, hydrogen uses the gplv2 and multiple copies of the same license are not wanted.

Cleanup of USE_QT4 - yes I should have looked at that a long time ago.

Adding CFLAGS is not needed.

Adding options DEBUG and TEST - not sure DEBUG and TEST would be needed outside of initial port testing but no harm.

Adding librubberband support - this is an experimental feature that can be used in a -devel port but doesn't belong in a stable release. If a user installs audio/rubberband then hydrogen will use the cli tool to provide time stretching. While the rubberband port can be added as a dependency, hydrogen isn't really dependent on it, it will be used if it is there and ignored if it isn't.

Disabling OSS does nothing, as oss is part of the base system hydrogen finds it and uses it even if you say you don't want it.

The same goes for libarchive and libtar, hydrogen uses a tar format to combine multiple samples into one file, libarchive provides the same functionality with the addition of compression. If libarchive is found hydrogen will use it and ignore libtar, even if you say you don't want libarchive, as it is in the base system it will be found and libtar will never be use, so adding it as an option is pointless. The addition of USES=libarchive is useful so that the newer port version can be used.

So the update I submit cleans up USE_QT4 and CMAKE_ARGS, adds libarchive to USES and adds DEBUG and TEST options.
Comment 8 Shane 2015-09-01 08:39:10 UTC
Created attachment 160581 [details]
Maintainer update for audio/hydrogen
Comment 9 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-09-01 21:12:24 UTC
(In reply to FreeBSD from comment #7)
> Disabling OSS does nothing, as oss is part of the base system hydrogen finds it 
> and uses it even if you say you don't want it.
> The same goes for libarchive and libtar, hydrogen uses a tar format to combine 
> multiple samples into one file, libarchive provides the same functionality with 
> the addition of compression. If libarchive is found hydrogen will use it and 
> ignore libtar, even if you say you don't want libarchive, as it is in the base 
> system it will be found and libtar will never be use, so adding it as an option 
> is pointless. The addition of USES=libarchive is useful so that the newer port 
> version can be used.

I cannot agree with this statements - at least, poudriere logs say the opposite:
poudriere-9.3-i386-nothing.log:
OSS                          : ? available but not desired  ( /usr/lib/libc.so )

poudriere-9.3-i386-all.log
libarchive                   : ? available but not desired  ( /usr/local/lib/libarchive.so )
...
====>> Checking shared library dependencies
 0x00000001 (NEEDED)                     Shared library: [libQtCore.so.4]
 0x00000001 (NEEDED)                     Shared library: [libQtGui.so.4]
 0x00000001 (NEEDED)                     Shared library: [libQtNetwork.so.4]
 0x00000001 (NEEDED)                     Shared library: [libQtXml.so.4]
 0x00000001 (NEEDED)                     Shared library: [libQtXmlPatterns.so.4]
 0x00000001 (NEEDED)                     Shared library: [libasound.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.7]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libhydrogen-core-0.9.6.1.so]
 0x00000001 (NEEDED)                     Shared library: [libjack.so.0]
 0x00000001 (NEEDED)                     Shared library: [liblash.so.1]
 0x00000001 (NEEDED)                     Shared library: [liblrdf.so.2]
 0x00000001 (NEEDED)                     Shared library: [libm.so.5]
 0x00000001 (NEEDED)                     Shared library: [libportaudio.so.2]
 0x00000001 (NEEDED)                     Shared library: [libpulse.so.0]
 0x00000001 (NEEDED)                     Shared library: [librubberband.so.2]
 0x00000001 (NEEDED)                     Shared library: [libsndfile.so.1]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
 0x00000001 (NEEDED)                     Shared library: [libtar.so.0]     <<<<<
 0x00000001 (NEEDED)                     Shared library: [libthr.so.3]
 0x00000001 (NEEDED)                     Shared library: [libz.so.6]
Comment 10 Shane 2015-09-02 10:50:37 UTC
I can't get it to ignore libarchive, adding -
CMAKE_ARGS+=	-DWANT_LIBARCHIVE:BOOL=OFF -DWANT_LIBTAR:BOOL=ON
LIB_DEPENDS+=	libtar.so:${PORTSDIR}/devel/libtar

I get

* libtar                       : ? available but not desired  ( /usr/local/lib/libtar.so )
* libarchive                   : + used  ( /usr/local/lib/libarchive.so )


# ldd work/stage/usr/local/bin/hydrogen | grep arch
	libarchive.so.13 => /usr/local/lib/libarchive.so.13 (0x802ea2000)

and I get the same in every poudriere setup
Comment 11 Andriy Voskoboinyk freebsd_committer freebsd_triage 2015-09-02 14:40:51 UTC
(In reply to FreeBSD from comment #10)
Have you applied post-patch fix?
Comment 12 Shane 2015-09-19 13:37:02 UTC
The issue with libtar stems from the search for libtar.h failing, while /usr/local/lib/libtar.so is found, only the base system is searched for libtar.h and after failing to find libtar.h it then causes libarchive to become mandatory. The libtar.h search can be influenced by setting CMAKE_REQUIRED_INCLUDES making the choice between libtar and libarchive feasible.
Comment 13 Shane 2015-09-19 13:37:44 UTC
Created attachment 161190 [details]
Maintainer update for audio/hydrogen
Comment 14 Mathieu Arnold freebsd_committer freebsd_triage 2015-10-29 10:38:39 UTC
Committed, with minor changes.

The tests fails though:

=======================<phase: test           >============================
===>  Testing for hydrogen-0.9.6.1_3
cd /wrkdirs/usr/ports/audio/hydrogen/work/hydrogen-0.9.6.1 && ./src/tests/tests
..Error XSDError in file:./data/xsd/drumkit_pattern.xsd, at line 31, column 75: Type psfloat of element element cannot be resolved.
...Assertion failed: (__instance), function get_instance, file /wrkdirs/usr/ports/audio/hydrogen/work/hydrogen-0.9.6.1/src/core/include/hydrogen/Preferences.h, line 238.
*** Signal 6

Stop.
Comment 15 commit-hook freebsd_committer freebsd_triage 2015-10-29 13:47:48 UTC
A commit references this bug:

Author: mat
Date: Thu Oct 29 13:47:30 UTC 2015
New revision: 400458
URL: https://svnweb.freebsd.org/changeset/ports/400458

Log:
  fix dependencies, add more options

  PR:		202737
  Submitted by:	Andriy Voskoboinyk, maintainer
  Sponsored by:	Absolight

Changes:
  head/audio/hydrogen/Makefile