Comments (5)
By design, LIB_INSTALL_DIR should contain Relative installation path to libraries under the installation prefix. The latter can be configured, and most probably already is system-wide, to contain an absolute path, e.g. "/usr", with the CMAKE_INSTALL_PREFIX variable.
from munt.
0 Project self-identification. munt or mt32emu?
The project is named munt. As README says, it comprises of several subprojects, mt32emu is one of them. mt32emu implements the emulation core as a library and it is used in almost all the other subprojects of munt. I think this situation is due to historical reasons, but I'm fine with this so far.
But you release both munt 2.4.0 and mt32emu 2.5.0 simultaneously with almost the same content.
What is this and how do I understand it?
We have released mt32emu 2.5.0 (the library) with some important new features. When we add necessary support to the other respective subprojects, we'll roll out them as well. Finally, the entire munt package will be released, which is a convenient form of distribution on other platforms, e.g. Windows.
1 ChangeLog mt32emu-qt
HEAD: * Fixed the ROM scanner function that didn't filter out partial ROMs which aren't yet supported. Related to (#44).
Is this fixed in mt32emu 2.5.0 or not?
This is fixed in the HEAD version of mt32emu-qt, so that this application is now compatible with the library version mt32emu 2.5.0. Previously, mt32emu-qt implemented the ROM scanner in an assumption that partial ROMs do not exist, despite the relevant library API suggested otherwise. This bug doesn't seem critical, so we are not bumping version mt32emu-qt 1.8.1 to deliver the fix urgently. If this is important to deliver for openSUSE, please let me know, and we'll make a bugfix release of mt32emu-qt.
2 You added the pakageconfig file which is great, but you missed at least 2 gross errors.
Please note, that the pkg-config file is generated by the cmake build script. This means that some configuration variables are transferred from the cmake build system. In particular, the contents of variables LIB_INSTALL_DIR
and libmt32emu_PKGCONFIG_INSTALL_PREFIX
affect the data populated into the generated mt32emu.pc file and its location.
2.1 The resulting mt32emu.pc file when built in openSUSE Tumbleweed x86_64 is
...
libdir=${exec_prefix}//usr/lib64
...
URL: http://munt.sourceforge.net/
...
2.1.1 Obviously, the 3rd line should be.
libdir=/usr/lib64
But something, most likely in the sed script, went wrong.
The cmake formula is libdir=${exec_prefix}/@LIB_INSTALL_DIR@
, so evidently, the variable LIB_INSTALL_DIR
needs an adjustment. For openSUSE, I'd recommend to use the same value I'm using for building x86_64
Fedora packages: lib64
.
2.1.2 The URL is not needed in this file at all. I haven't seen other open source projects post URLs here.
Would you be so kind and point me to where this is specified? When adding the URL field, I was referring to the pkg-config-guide that suggested to fill it in.
But if you think that it is still needed, then let it link not to http riderect 80, but to the https address of the project on github.
+1 for HTTPS, I'll update the project URL. Note however, the SourceForge remains the primary project host, GitHub is used for easier collaboration.
2.2 After the
%cmake_install
macro, the mt32emu.pc file is installed in%{_prefix}/lib/pkgconfig/%{name}.pc
(/usr/lib/pkgconfig/mt32emu.pc
) instead of%{_libdir}/pkgconfig
(/usr/lib64/pkgconfig/mt32emu.pc
).
There must be an error in the installation script.
Unfortunately, the location of pkg-config files in each system varies, hence we have to resort to make the directory, where to install mt32emu.pc file to, configurable. By adjusting the libmt32emu_PKGCONFIG_INSTALL_PREFIX
variable, the location of mt32emu.pc file can be changed to fulfil requirements of any particular distribution.
3 You added a desktop-file for mt32emu-qt which is great, but at least the category is wrong.
https://build.opensuse.org/package/view_file/multimedia:libs/mt32emu/mt32emu.desktop?expand=1
It should beCategories=Qt;AudioVideo;Midi;
Agree, the category needs to be improved. However, filename 'mt32emu.desktop' is wrong, as the mt32emu library has no user interface.
4 You added an icon for the desktop-file that's great too, but there's nothing wrong with it either.
4.1 This is a primitive 256x256 png icon.
Why do you need such a big size, and it's the only size you need, for such a primitive monochrome icon?
Sadly, we haven't obtained a scalable icon, which would be my preference to use as a desktop icon. The icon came with a set of bitmap images of variable resolutions. As a first step, we added the high-resolution icon because it can be downscaled without significant degrade in quality, in contrast to adding a lower resolution icon only. I'm going to add all the available icons for more resolutions to configure GNU desktops better.
from munt.
-Dlibmt32emu_PKGCONFIG_INSTALL_PREFIX="%{_libdir}"
Solved the installation problem, but not the content.
The cmake formula is
libdir=${exec_prefix}/@LIB_INSTALL_DIR@
, so evidently, the variableLIB_INSTALL_DIR
needs an adjustment. For openSUSE, I'd recommend to use the same value I'm using for buildingx86_64
Fedora packages:lib64
.
LIB_INSTALL_DIR=%{_libdir} (/usr/lib64 for x86_64), by default, but instead of libdir=/usr/lib64
I get libdir=${exec_prefix}//usr/lib64
.
I have to use sed.
from munt.
Thank you very much, I have figured out cmake. :-)
%cmake -LA \
-DCMAKE_SHARED_LINKER_FLAGS="-lm" \
-DLIB_INSTALL_DIR:PATH="%{_lib}" \
-Dlibmt32emu_PKGCONFIG_INSTALL_PREFIX="%{_libdir}"
from munt.
You welcome.
On a side note, I wish there were more similarities among all the GNU distributions, then packaging would be simpler 🙁
from munt.
Related Issues (20)
- DOSBox Patch LCD messages to LCDProc
- Problem writing reverb settings over SysEx HOT 3
- Dosbox r4479: MIDI:Can't find device:mt32 HOT 2
- [Feature Request] Partial exhaustion indicator in UI HOT 4
- [UI Feature Request] Numeric entry Output Gain control
- Make UI better self-documenting
- Application crashes occasionally when a new JACK audio device is started
- UI may show obsolete info when a pinned synth is stopped
- Add basic unit tests
- Improve emulation accuracy of partial allocator implemented in old-gen devices
- New Output Gain textboxes don't work well on Windows HOT 1
- Provide callback to inform clients about events of synth engine running out of available partials
- Add visual indication for events when the synth engine exceeds the currently available partials
- is there any documentation on how to use mt32emu? HOT 2
- SHA1 digests in ROMInfo objects may be initialised incorrectly HOT 1
- SteamOS 3.5 - Client 128: 'Munt MT-32' Misssing HOT 5
- Question about using MUNT regarding physical ownership of a tested and working CM-32L unit HOT 12
- [Feature Request] Remember volume or command-line volume option. HOT 1
- More of a question to the creator.
- Guides or information on dumping MT-32 ROM? HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from munt.