FMIT is a graphical utility for tuning your musical instruments, with error and volume history and advanced features like microtonal tuning, statistics, and various views like waveform shape, harmonics ratios and real-time Discrete Fourier Transform (DFT). All views and advanced features are optional so that the interface can also be very simple.
This will replace bug 176790
Created attachment 437644 [details] fmit-1.0.15.ebuild
Created attachment 437646 [details] Manifest
Created attachment 437648 [details] metadata.xml
A lot has changes since the last ebuikd in bug 176790 * dependencies changed * build system changed * project home page changed * SRC_URI changed
Created attachment 437650 [details] fmit-1.0.15.ebuild fixed dev-qt/qtsvg in DEPEND
I will also proxy-maint this ebuild.
As pointed out by gokturk on IRC, the license I have is not exactly correct : Most of the programming code is under GPL (v2) License and Copyright © 2004 Gilles Degottex, and under LGPL (v2) License, otherwise.
Note to proxy-maint: most likely no maintainership request/maintainer bug is needed here as Brendan is on his way to become a dev, see bug #584840.
Created attachment 437688 [details] fmit-1.0.15.ebuild Attaching updated ebuild. Fixed : * License * cleaned up DEPEND/RDPEND
Created attachment 437692 [details] fmit-1.0.15.ebuild Removed unneeded eutils class and removed a blank line.
There are a few further issues with this ebuild that will need to be resolved before it can be committed: - SRC_URI downloads to "v1.0.15.tar.gz" rather than package name. This should be avoided and the downloaded distfile can be renamed with the "-> ${P}.tar.gz" operator in SRC_URI. [0] - DEPEND adds itself to DEPEND (`DEPEND="${DEPEND}"`) - is this intended? - Is dev-qt/qtsvg a build-time-only dependency - can the application run if this is later uninstalled? - The variable "config" in src_configure() should arguably be made local. - I am also getting all builds failing when testing in a minimal test environment. The failure message is "Project ERROR: Unknown module(s) in QT: opengl". [0] https://devmanual.gentoo.org/ebuild-writing/variables/index.html#src_uri
> - SRC_URI downloads to "v1.0.15.tar.gz" rather than package name. This > should be avoided and the downloaded distfile can be renamed with the "-> > ${P}.tar.gz" operator in SRC_URI. [0] Fixed. > > - DEPEND adds itself to DEPEND (`DEPEND="${DEPEND}"`) - is this intended? No its my mistake, this is now fixed. > > - Is dev-qt/qtsvg a build-time-only dependency - can the application run if > this is later uninstalled? Yep, tested it a few times here. > - The variable "config" in src_configure() should arguably be made local. Unsure how best to do this, using local myconf=() gives me : "use() calls are not allowed in global scope" I would say blame me at this point ;) > > - I am also getting all builds failing when testing in a minimal test > environment. The failure message is "Project ERROR: Unknown module(s) in QT: > opengl". > > [0] https://devmanual.gentoo.org/ebuild-writing/variables/index.html#src_uri Fixed, added "dev-qt/qtopengl:5"
Created attachment 437704 [details] fmit-1.0.15.ebuild Fixes for comment 12.
Created attachment 437706 [details] fmit-1.0.15.ebuild
Created attachment 437712 [details] fmit-1.0.15.ebuild put stuff into local, as discussed with wreath on IRC.
Created attachment 437714 [details] fmit-1.0.15.ebuild
Created attachment 437716 [details] Manifest Updated Manifest
- dev-qt/qtsvg:5 is a runtime dependency even though both ldd and scanelf have false negatives on this. I've personally ran the binary with and without qtsvg and the app icon does not show up without it. - we should make sure that the translation files are being picked up properly. the debug message on the console reads: INFO: Loading FMIT translation file: fmit_en_US in /var/tmp/portage/media-sound/fmit-1.0.15/image/share/fmit/tr which points to a location that does not exist post-merge. - we should investigate why the following debug message is printed: QIODevice::read (QFile, ":/README.txt"): device not open
(In reply to Göktürk Yüksek from comment #19) > - dev-qt/qtsvg:5 is a runtime dependency even though both ldd and scanelf > have false negatives on this. To clarify my comment: it's not that the tools are not working as they are supposed to. the library is indirectly required during runtime which these tools are not designed to detect.
- we should make sure that the translation files are being picked up properly. Not sure how best to resolve this atm. I pass "PREFIX=" to eqmake5 otherwise I get sandbox violations. However when I do this the app seems to end up with that path hard coded. Files get installed correctly via the src_install() function however.
(In reply to Brendan Horan from comment #21) > - we should make sure that the translation files are being picked up > properly. > > Not sure how best to resolve this atm. > > I pass "PREFIX=" to eqmake5 otherwise I get sandbox violations. > However when I do this the app seems to end up with that path hard coded. > Files get installed correctly via the src_install() function however. OK I think I know whats going on. It may be a bug/issue with upstream So in "src/main.cpp" We have this : QString fmitprefix(STR(PREFIX)); That pulls in PREFIX from the ebuild "PREFIX="${D}"/usr" Then the translation path is set via : QString trPath = fmitprefix + QString("/share/fmit/tr"); So that sends up been : /var/tmp/portage/media-sound/fmit-1.0.15/image//usr/share/fmit/tr/fmit_en.ts So now I know WHY and HOW, but no idea how to fix this.
Created attachment 437836 [details] fmit-1.0.15.ebuild Fixed the following : - dev-qt/qtsvg:5 is a runtime dependency FIXED - we should make sure that the translation files are being picked up properly. Fixed, with patch - we should investigate why the following debug message is printed: QIODevice::read (QFile, ":/README.txt"): device not open Fixed, with patch
Created attachment 437838 [details] Manifest Regenerated Mainfest in thin format.
Created attachment 437840 [details] metadata.xml Removed unneeded line from metadata
Created attachment 437842 [details, diff] fmit-1.0.15-main.cpp.patch Adding patch
Please excuse any messed up tab indents, my vim is hating me.
We might wanna sed the sources instead of hardcoding it. you'll have to keep updating the patch for every version otherwise. also, '/usr/share/doc/1.0.15/README.txt' is missing ${PN}. Normally we use ${PF} here (meaning with the revisions if there are any). QString fmitprefix(STR(/usr)); also looks strange, you sure it's not STR("/usr") as opposed to STR(/usr) ?
Created attachment 437906 [details] fmit-1.0.15.ebuild -> We might wanna sed the sources instead of hardcoding it. Fixed, dropped the patch used sed. -> '/usr/share/doc/1.0.15/README.txt' is missing ${PN}. Normally we use ${PF} here -(meaning with the revisions if there are any). FIXED -> QString fmitprefix(STR(/usr)); also looks strange, you sure it's not STR("/usr") as opposed to STR(/usr) ? FIXED
Created attachment 437908 [details] Manifest Regenerated Manifest
Missing '|| die' on sed statements. For the first sed, you can remove the double quotes around ${PF}, bash performs parameter expansion inside "". For the second sed, you can remove escaping the double quotes around /usr by containing the whole thing in single wholes. i.e. " \"foo\" " vs. ' "foo" '. Let's get single line comments before each sed for some little explanation.
The line > sed -i "/QString fmitprefix/c\QString fmitprefix(STR(\"/usr\"));" src/main.cpp needs to be changed to > sed -i "/QString fmitprefix/c\QString fmitprefix(STR(usr));" src/main.cpp || die Otherwise, fmit will generate incorrect paths (as evident from the strace snippet below): > 3654 write(1, "INFO: Loading FMIT translation file: fmit_en_US in \"/usr\"/share/fmit/tr\n", 72) = 72 > 3654 access("\"/usr\"/share/fmit/tr/fmit_en_US.qm", R_OK) = -1 ENOENT (No such file or directory) > 3654 access("\"/usr\"/share/fmit/tr/fmit_en_US", R_OK) = -1 ENOENT (No such file or directory) > 3654 access("\"/usr\"/share/fmit/tr/fmit_en.qm", R_OK) = -1 ENOENT (No such file or directory) > 3654 access("\"/usr\"/share/fmit/tr/fmit_en", R_OK) = -1 ENOENT (No such file or directory) > 3654 access("\"/usr\"/share/fmit/tr/fmit.qm", R_OK) = -1 ENOENT (No such file or directory) > 3654 access("\"/usr\"/share/fmit/tr/fmit", R_OK) = -1 ENOENT (No such file or directory) Unfortunately, even with this correction, fmit still fails to load the translation file (strace output below): > 1737 write(1, "INFO: Loading FMIT translation file: fmit_en_US in /usr/share/fmit/tr\n", 70) = 70 > 1737 access("/usr/share/fmit/tr/fmit_en_US.qm", R_OK) = -1 ENOENT (No such file or directory) > 1737 access("/usr/share/fmit/tr/fmit_en_US", R_OK) = -1 ENOENT (No such file or directory) > 1737 access("/usr/share/fmit/tr/fmit_en.qm", R_OK) = -1 ENOENT (No such file or directory) > 1737 access("/usr/share/fmit/tr/fmit_en", R_OK) = -1 ENOENT (No such file or directory) > 1737 access("/usr/share/fmit/tr/fmit.qm", R_OK) = -1 ENOENT (No such file or directory) > 1737 access("/usr/share/fmit/tr/fmit", R_OK) = -1 ENOENT (No such file or directory) and this may be due to the fact that 'lrelease fmit.pro' isn't called prior to calling eqmake5 as mentioned in upstream's closed bug #38 (https://github.com/gillesdegottex/fmit/issues/38).
Created attachment 438072 [details] fmit-1.0.15.ebuild New ebuild fixes the following : * Translations now generated (lrelease) * Prefix path for translations fixed in main.cpp * Prefix path in MicrotonalView.cpp fixed * Comments added for each sed to explain * || die was added when needed * Quotes in first sed statement removed around ${PF} * second sed statement was adjusted, no longer need to quote anything
Created attachment 438074 [details] fmit-1.0.15.ebuild New ebuild fixes the following : * Translations now generated (lrelease) * Prefix path for translations fixed in main.cpp * Prefix path in MicrotonalView.cpp fixed * Comments added for each sed to explain * || die was added when needed * Quotes in first sed statement removed around ${PF} * second sed statement was adjusted, no longer need to quote anything
Created attachment 438076 [details] Manifest Recreated Manifest
Created attachment 438078 [details] fmit-1.0.15.ebuild Need build time dependency of dev-qt/qtchooser , updated ebuild
Created attachment 438080 [details] Manifest Updated manifest
Created attachment 438082 [details] Manifest Cleaned up Manifest
Created attachment 438234 [details] fmit-1.0.15.ebuild kensington via IRC gave advise not to depend on qtchooser, but rather qtcore. I've fixed that. I will generate Manifest once the ebuild gets a dev OK.
Created attachment 438236 [details] fmit-1.0.15.ebuild fixed typo.
Created attachment 438238 [details] fmit-1.0.15.ebuild
This is merged in https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11775bd71064f465aac6822dd358a5a9e5fb4f9d. Thanks for your contribution! For your information, here is what I did on top of your attachments: - added missing dep media-libs/freeglut, referenced in src/modules/GLFT.cpp:440: glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, (unsigned char)str[i]); - Replaced eapply_user with default for future convenience. This allows you to add patches with PATCHES=() without ever touching src_prepare() - Prefixed lrelease with $(qt5_get_bindir)/ (thanks to username234) - Updated HOMEPAGE to https - Removed trailing whitespaces
(In reply to Göktürk Yüksek from comment #42) > This is merged in > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=11775bd71064f465aac6822dd358a5a9e5fb4f9d. Thanks for your contribution! > > For your information, here is what I did on top of your attachments: > - added missing dep media-libs/freeglut, referenced in > src/modules/GLFT.cpp:440: glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, > (unsigned char)str[i]); > - Replaced eapply_user with default for future convenience. This allows you > to add patches with PATCHES=() without ever touching src_prepare() > - Prefixed lrelease with $(qt5_get_bindir)/ (thanks to username234) > - Updated HOMEPAGE to https > - Removed trailing whitespaces Thanks for the help Göktürk Yüksek. (and others) As discussed via IRC freeglut is no longer a dependency : https://github.com/gillesdegottex/fmit/releases I will fix upstream and than fix ebuild via a rebump/PR later on. thanks