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
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.
+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.
(In reply to bcomputerguy from comment #2) > that means that I should also add ... to the post install section Yeah, for example.
(In reply to Tobias Kortkamp from comment #3) But obviously use ${STAGEDIR} properly when moving it too.
Created attachment 187694 [details] yoshimi diff with updated distversionsuffix and docs fix this svn diff should be error free.
any update on this port or audio/amsynth?
(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 ;-)
(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?
(In reply to bcomputerguy from comment #8) share/man/man1 != man/man1
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.
(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?
(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/
(In reply to Tobias Kortkamp from comment #12) "the manual" being Yoshimi's manual...
Created attachment 187915 [details] audio/yoshimi I tested this port as well as made the pkg-descr updates that you requested.
(In reply to bcomputerguy from comment #14) That's great, but again you reintroduced all the problems I already fixed...
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
Updated to latest version, removed patch files. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224274