Bug 223397 - [NEW PORT] audio/yoshimi: Sophisticated software synthesizer
Summary: [NEW PORT] audio/yoshimi: Sophisticated software synthesizer
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: Tobias Kortkamp
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-03 07:33 UTC by bye
Modified: 2017-12-12 14:24 UTC (History)
1 user (show)

See Also:


Attachments
audio/yoshimi svn diff file (45.93 KB, patch)
2017-11-03 07:33 UTC, bye
no flags Details | Diff
yoshimi diff with updated distversionsuffix and docs fix (45.81 KB, patch)
2017-11-03 15:15 UTC, bye
no flags Details | Diff
yoshimi.diff (47.59 KB, patch)
2017-11-08 12:41 UTC, Tobias Kortkamp
no flags Details | Diff
audio/yoshimi (46.08 KB, patch)
2017-11-11 06:01 UTC, bye
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description bye 2017-11-03 07:33:43 UTC
Created attachment 187683 [details]
audio/yoshimi svn diff file

This is also another synth port yoshimi 1.5.4.1

when installing there's a curl dependency and it's vulnerable so I have to pass 
DISABLE_VULNERABILITIES=yes along with my make command, I am not sure how to get around this issue other than leaving it the way it is.

I also had to manually move and gzip the manual file and that causes portlint -AC to complain:
/usr/ports/audio/yoshimi # portlint -ACM
FATAL: /usr/ports/audio/yoshimi/pkg-plist: [54]: Man pages must be installed into ``man'' not ``share/man''.
1 fatal error and 0 warnings found.

I don't know why that one file gets copied to ${STAGEDIR}${PREFIX}/share/man/man1
Comment 1 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-03 08:37:05 UTC
Thanks for your submission.  A short review below.

+PORTNAME=	yoshimi
+PORTVERSION=	1.5.4.1

You have invented a version number that has no basis in reality.  Why
is GH_TAGNAME set to a different commit than what was tagged as
1.5.4.1 by upstream?

Version 1.5.4.1 is commit efce85d and not 31291f0.

You may have to follow the procedure from [1] if you need newer
commits.

[1] https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html#makefile-master_sites-github-ex5

+COMMENT=       Yoshimi A Software synth

The port name shouldn't appear again in COMMENT.  The pkg-descr is not
very descriptive and could use some work too.  It sounds like a
Changelog entry.

+BUILD_DEPENDS=	ninja:devel/ninja	\

ninja is implied by USES=cmake

+USES=		cmake:outsource	\
+		pkgconfig

This should all be on one line.

+USE_XORG+=	x11 ice sm xext
+USE_GL+=	gl

Please replace += with =.

+USE_GITHUB=	yes
+GH_ACCOUNT=	Yoshimi
+GH_PROJECT=	yoshimi
+GH_TAGNAME=	31291f0

GH_{PROJECT,ACCOUNT} are set to ${PORTNAME} by default.  GitHub
project and account names are also case-insentive, so both
GH_{PROJECT,ACCOUNT} can go away here.

+MAKE_JOBS_UNSAFE=	yes

Why is this set?

+.include <bsd.port.pre.mk>
...
+.include <bsd.port.post.mk>

This isn't necessary here.  Just use .include <bsd.port.mk> at the
end.

+post-install:
+	@(mv ${STAGEDIR}${PREFIX}/share/man/man1/yoshimi.1 ${STAGEDIR}${PREFIX}/share/man/yoshimi.1 && \
+	${RM} -rf ${STAGEDIR}${PREFIX}/share/man/man1 && \
+	${GZIP_CMD} ${STAGEDIR}${PREFIX}/share/man/yoshimi.1);

mv should be ${MV}.

> I also had to manually move and gzip the manual file and that causes
> portlint -AC to complain:

It complains because you moved it into the wrong place ;-).  Moving it
to ${PREFIX}/share/man is wrong.  It needs to go into
${PREFIX}/man/man1.  Gzipping man pages is done automatically when
there're installed into the right location.

+%%DATADIR%%/yoshimi-user-manual.pdf

This should probably go into ${DOCSDIR} too.
Comment 2 bye 2017-11-03 14:52:30 UTC
+MAKE_JOBS_UNSAFE=	yes

Why is this set?
Initially there was some trouble building with with multithreading, upstread made some changes in A *BSD branch and merged it back in to mainline.

+.include <bsd.port.pre.mk>
...
+.include <bsd.port.post.mk>

This isn't necessary here.  Just use .include <bsd.port.mk> at the
end.

I have that in there because the manual gets installed into share/man/man1 as yoshimi.1 and portlint complains that I should gzip that file and install it in /man directory, that's why I added the post-install code below.

+post-install:
+	@(mv ${STAGEDIR}${PREFIX}/share/man/man1/yoshimi.1 ${STAGEDIR}${PREFIX}/share/man/yoshimi.1 && \
+	${RM} -rf ${STAGEDIR}${PREFIX}/share/man/man1 && \
+	${GZIP_CMD} ${STAGEDIR}${PREFIX}/share/man/yoshimi.1);

that means that I should also add:
        @(${MV} ${DATADIR}/yoshimi-user-manual.pdf ${STAGE}${PREFIX}${DOCSDIR}/yoshimi-user-manual.pdf)

to the post install section. If not please advise how to proceed with these changes.
Comment 3 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-03 15:07:07 UTC
(In reply to bcomputerguy from comment #2)
> that means that I should also add ... to the post install section

Yeah, for example.
Comment 4 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-03 15:08:04 UTC
(In reply to Tobias Kortkamp from comment #3)
But obviously use ${STAGEDIR} properly when moving it too.
Comment 5 bye 2017-11-03 15:15:04 UTC
Created attachment 187694 [details]
yoshimi diff with updated distversionsuffix and docs fix

this svn diff should be error free.
Comment 6 bye 2017-11-08 06:55:50 UTC
any update on this port or audio/amsynth?
Comment 7 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-08 11:21:47 UTC
(In reply to bcomputerguy from comment #6)

+post-install:
+	@(${MV} ${STAGEDIR}${PREFIX}/share/man/man1/yoshimi.1 ${STAGEDIR}${PREFIX}/share/man/yoshimi.1 && \
+	${RM} -rf ${STAGEDIR}${PREFIX}/share/man/man1 && \
+	${GZIP_CMD} ${STAGEDIR}${PREFIX}/share/man/yoshimi.1);

This is still not correct.  As I've written in comment #1 above the
manpage should go into /usr/local/man/man1/ and NOT /usr/local/share/man/.
Gzipping manpages manually is *never* necessary.  It's your first clue
that something is not quite right ;-)
Comment 8 bye 2017-11-08 11:25:45 UTC
(In reply to Tobias Kortkamp from comment #7)

With DEVELOPER=yes set
stage-qa complains that man/man1 is the incorrect location and the man page needs to be gzipped. Are you saying that I should just ignore those warnings?
Comment 9 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-08 11:27:04 UTC
(In reply to bcomputerguy from comment #8)

share/man/man1 != man/man1
Comment 10 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-08 12:41:03 UTC
Created attachment 187853 [details]
yoshimi.diff

Here is a version of the port with this and a bunch of other problems
fixed.  It also builds fine in Poudriere on 10.3/i386.  I still need
to test build it on 11.1/amd64.

Open tasks for you before I commit:

- Provide a better pkg-descr i.e. at least one paragraph about what
  this project does and especially what it provides over
  audio/zynaddsubfx (maybe adapt its pkg-descr to Yoshimi).
- Change your Bugzilla email to hello@bluebee.me or the maintainer
  email to your current address.
Comment 11 bye 2017-11-08 15:32:10 UTC
(In reply to Tobias Kortkamp from comment #10)

Do I have to make something up for pkg-descr? I use it because after learning how to program synths I found that one and liked it, that's it. Why can't I just use the info the authors put out in the pkg-descr?
Comment 12 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-08 16:55:38 UTC
(In reply to bcomputerguy from comment #11)
No, you don't have to necessarily make something up but the pkg-descr should
be a coherent text that describes the port to people that don't know what
it or ZynAddSubFX is.  This is all described here:
https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-desc.html

Anyway here is an updated pkg-descr which I adapted from the manual's 
introduction chapter:

Yoshimi is an algorithmic MIDI software synthesizer, originally forked
from ZynAddSubFX.  It synthesizes in real time, can run polyphonic or
monophonic, with multiple simultaneous patches on one or more MIDI
channels, and has broad microtonal capability.  It includes extensive
addititive, subtractive, and pad synth capabilities which can be run
simultaneously within the same patch.  It also has eight audio effects
modules.

WWW: http://yoshimi.github.io/
Comment 13 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-08 16:56:33 UTC
(In reply to Tobias Kortkamp from comment #12)
"the manual" being Yoshimi's manual...
Comment 14 bye 2017-11-11 06:01:40 UTC
Created attachment 187915 [details]
audio/yoshimi

I tested this port as well as made the pkg-descr updates that you requested.
Comment 15 Tobias Kortkamp freebsd_committer freebsd_triage 2017-11-11 12:37:30 UTC
(In reply to bcomputerguy from comment #14)
That's great, but again you reintroduced all the problems I already fixed...
Comment 16 commit-hook freebsd_committer freebsd_triage 2017-11-11 14:49:47 UTC
A commit references this bug:

Author: tobik
Date: Sat Nov 11 14:49:28 UTC 2017
New revision: 453975
URL: https://svnweb.freebsd.org/changeset/ports/453975

Log:
  New port: audio/yoshimi

  Yoshimi is an algorithmic MIDI software synthesizer, originally forked
  from ZynAddSubFX.  It synthesizes in real time, can run polyphonic or
  monophonic, with multiple simultaneous patches on one or more MIDI
  channels, and has broad microtonal capability.  It includes extensive
  addititive, subtractive, and pad synth capabilities which can be run
  simultaneously within the same patch.  It also has eight audio effects
  modules.

  WWW: http://yoshimi.github.io/

  PR:		223397
  Submitted by:	owen94012@gmail.com

Changes:
  head/audio/Makefile
  head/audio/yoshimi/
  head/audio/yoshimi/Makefile
  head/audio/yoshimi/distinfo
  head/audio/yoshimi/files/
  head/audio/yoshimi/files/patch-src_CMakeLists.txt
  head/audio/yoshimi/pkg-descr
  head/audio/yoshimi/pkg-plist
Comment 17 bye 2017-12-12 14:24:23 UTC
Updated to latest version, removed patch files.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224274