Opened 4 months ago

Closed 4 months ago

#62166 closed request (fixed)

Port request munt and munt-mt32emu

Reported by: DominusExult (Dominik Reichardt) Owned by: DominusExult <domiman+github@…>
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc:
Port: munt-mt32emu

Description

could you add munt and its libmt32emu to your ports? Its repository is in https://github.com/munt/munt and is CMAKE based. Munt consists of two programs:

  • mt32emu-qt a QT5 based GUI
  • mt32emu-smf2wav a terminal program

When you build them these will create a static lib to link against. mt32emu is a library for other programs to link against. The library is sometimes found as "munt-mt32emu" in package managers, while the programs are built as "munt".

I can try and get a barebone port for each up. I don't think I can figure out the more advanced port sorcery that takes care of really old macOS versions, though.

Thanks for your consideration!

Attachments (1)

Portfile (1.0 KB) - added by DominusExult (Dominik Reichardt) 4 months ago.
portfile for libmt32emu

Download all attachments as: .zip

Change History (7)

Changed 4 months ago by DominusExult (Dominik Reichardt)

Attachment: Portfile added

portfile for libmt32emu

comment:1 Changed 4 months ago by DominusExult (Dominik Reichardt)

I've attached a working portfile for the libmt32emu.

I wonder if you can have two configure and build phases, because the library is by default a shared one. For a static build you need to pass -Dlibmt32emu_SHARED=FALSE. I have no idea how to make a port file that builds both a dynamic and shared library.

comment:2 Changed 4 months ago by ryandesign (Ryan Schmidt)

Building both a static library and a shared library is the default for many autotools-based projects and is the reason why we recommend ports do it in MacPorts, but most cmake-based projects do not offer this option, and there isn't a recommended way to make a port run the configure and build phases twice. (It is possible and some ports do it but it is a hack and maybe we should avoid proliferating that hack into too many portfiles). In this case, normally offering only the shared library is fine.

The correct value for master_sites for this port would be sourceforge:project/munt/munt/${version}.

comment:3 Changed 4 months ago by ryandesign (Ryan Schmidt)

Keywords: haspatch added
Port: munt-mt32emu added

comment:4 Changed 4 months ago by ryandesign (Ryan Schmidt)

Oh, and you have some tab characters in your Portfile. Please use only spaces for indentation. The first line of your file, the modeline, specifies that this will be the case.

comment:5 Changed 4 months ago by DominusExult (Dominik Reichardt)

Thank you Ryan. I've already opened a pull request that failed the first review because of the tabs/spaces issue, as well as having written "openmaintainer" which schould have been "nomaintainer". Sorry for the quadruple noise on mailinglist, irc, tracker and github pull request. I was too eager and too focused on doing this at the wrong time of the day.

Pull request at https://github.com/macports/macports-ports/pull/9842

On the mailing list I was asked to use the github portgroup, but this turned out to be more problematic, as the way the releases are stored there doesn't fit any of the given github.tarball_from options (location of the files didn't match and the naming scheme on the github page is munt_2_4_0.tar.gz and not munt-2.4.0.tar.gz).

And also thanks for the insight on the cmake issue with shared and static files.

comment:6 Changed 4 months ago by DominusExult <domiman+github@…>

Owner: set to DominusExult <domiman+github@…>
Resolution: fixed
Status: newclosed

In 353f31329e2c86e17b0a0fff53ae5feea9d72c46/macports-ports (master):

munt-mt32emu: New port

Fixes: #62166

Note: See TracTickets for help on using tickets.