View Issue Details

IDProjectCategoryView StatusLast Update
0001293OpenMPTlibopenmpt-modplug emulation layerpublic2020-05-24 12:43
Reporterw.p. Assigned Tomanx  
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionOpenMPT 1.29.00.* (old testing) 
Target VersionOpenMPT 1.29.01.00 / libopenmpt 0.5.0 (upgrade first)Fixed in VersionOpenMPT 1.29.01.00 / libopenmpt 0.5.0 (upgrade first) 
Summary0001293: libmodplug should have version 0.8.9.x
Description

vlc-dev-4.0.0 requires libmodplug >= 0.9.0. On my OS openSUSE TW libmodplug is part of libopenmpt and my build of vlc-dev always fails with an error, because in the libopenmpt-devel package the version is only 0.8.5.x . For my build I patched the files in ~/libmodplug with files from https://github.com/Konstanty/libmodplug to get a working build.

Could you update the libmodplug files in libopenmpt to the needed version 0.9.0 ?

Steps To Reproduce

no needed

Additional Information

openSUSE bugzilla told me, that this is an upstream issue.

TagsNo tags attached.
Has the bug occurred in previous versions?yes
Tested code revision (in case you know it)

Relationships

related to 0000777 resolvedmanx Remove libmodplug emulation layer 

Activities

manx

manx

2020-02-01 09:13

administrator   ~0004195

Assuming you mean VLC-dev requires 0.8.9.0 and libopenmpt only offers 0.8.8.5 (as opposed to 0.9.x and 0.8.5.x).

What's the actual build failure case here? (do you have a link to the OpenSUSE discussion directing you here?)
If it's just that VLC configure requests pkgconfig libmodplug >= 0.8.9.0, then I suggest patching exactly that.

The reason being that libmodplug happily breaks binary compatibility with almost every released version and in particular also not-yet-released versions. libmodplug has already again broken binary compatibility for the C++ API since the last release ( https://github.com/Konstanty/libmodplug/commit/afe790abc9ff106e815ec72bc64e5c95818eee4c#diff-9baf68b1f1a1b9ff2719c2876edfb565 adds a data member to CSoundFile, which is exposed). libmodplug 0.8.9.0 is not released yet (see http://modplug-xmms.sourceforge.net/ ). Now, this luckily does not affect VLC because VLC uses the C API. However libopenmpt emulates both, the libmodplug C and C++ APIs and will follow the latest released libmodplug version and its particular binary interface, because otherwise we would expect libopenmpt-modplug users to track unreleased (and thus subject to change) libmodplug versions.

If OpenSUSE (and/or VLC) have chosen to track libmodplug git master instead of stable released version, I can only assume this has been because of the implemented security fixes. However, I highly suggest that backporting the security fixes to the latest stable release would be a better choice here, precisely because libmodplug does not appear to care about ABI compatibility.

Sadly, I cannot see any obvious reasonable solution for your actual problem here. I suggest patching VLC configure to check for the older version only in case you build against the libopenmpt emulation layer instead of libmodplug.

Another alternative might be to offer a mode in libopenmpt-modplug which tracks libmodplug git master (risking being inconsistent basically on every libmodplug commit) as opposed to libmodplug stable releases.
I'm unsure how to proceed.

w.p.

w.p.

2020-02-01 11:53

reporter   ~0004197

Thanks for your quick answer.

First - openSUSE does not distribute an libopenempt-package officially. You have to download it from packman because of legacy reasons. The actual version there is 4.11. And packman does exactly that - you suggested - by patching the configure -file of vlc-dev without any building problems. But when I compare the different modplug.h files, they differ in a lot of lines. So I am very unsure, whether using the 0.8.5.5 version for vlc-dev is such a good idea (I canĀ“t test it).

ubuntu does have a libmodplug-dev 0.8.9.0-1 package. And windows and macOS seem to have something similar too.

http://modplug-xmms. . . . seemed to be dead for me. Latest update was 2014.

Second - Obviously vlc does refer to https://sourceforge.net/projects/modplug-xmms/ . There is the required version "released" ("?").

My solution for myself is to patch the needed files in ~/libmodplug/ with the versions which vlc-dev expects me to have from the url above.

I have no idea about the problems with ABI compatibility problems, but it seems strange to me, that only openSUSE users in most cases may not use the 0.9.0 version. So I tried to get an updated solution for all of them, if vlc-4.0.0 will become released, but it seems not to be possible.

Thanks for your time

w.p.

manx

manx

2020-02-01 12:00

administrator   ~0004198

I honestly was not aware that http://modplug-xmms.sourceforge.net/ was dead. And github has neither a tag nor a release package for 0.8.9.0 either. But obviously you are right and the release is at https://sourceforge.net/projects/modplug-xmms/files/libmodplug/ .

I'll update libopenmpt accordingly.

w.p.

w.p.

2020-02-01 13:28

reporter   ~0004200

There is still a correction needed: There is an official libopenmpt-package on openSUSE. The vlc-beta - package is on packman.

w.p.

w.p.

2020-03-15 10:18

reporter   ~0004256

Hi manx!
I honestly hoped, that you would have changed openmpt/include/modplug/include/libmodplug/ in the meantime. But there was no change. Are there plans to do so? Vlc-beta-4.0.0 comes further to a release and it will need this change.

manx

manx

2020-04-14 09:17

administrator   ~0004287

Sorry for the long delay.

We decided to split out the libmodplug emulation layer from the regular libopenmpt package in order to allow for users to more easily mix-and-match libopenmpt versions with emulated libmodplug versions:

libopenmpt 0.5 development version no longer ships with the libmodplug emulation layer in the regular package.
The next libopenmpt 0.4 release (0.4.13) will have the libmodplug emulation layer deprecated and still ship 0.8.8.5.

The newly split-out libopenmpt-modplug package is obviously not very thoroughly tested right now, so please report back with any problems you encounter.

Issue History

Date Modified Username Field Change
2020-02-01 08:33 w.p. New Issue
2020-02-01 09:13 manx Assigned To => manx
2020-02-01 09:13 manx Status new => feedback
2020-02-01 09:13 manx Note Added: 0004195
2020-02-01 09:13 manx Target Version => OpenMPT 1.29.01.00 / libopenmpt 0.5.0 (upgrade first)
2020-02-01 10:22 manx Relationship added related to 0000777
2020-02-01 11:53 w.p. Note Added: 0004197
2020-02-01 11:53 w.p. Status feedback => assigned
2020-02-01 12:00 manx Note Added: 0004198
2020-02-01 13:28 w.p. Note Added: 0004200
2020-03-15 10:18 w.p. Note Added: 0004256
2020-04-12 11:08 manx Summary libmodplug should have version 0.9.x => libmodplug should have version 0.8.9.x
2020-04-14 08:34 manx Priority normal => high
2020-04-14 08:34 manx Severity minor => major
2020-04-14 08:34 manx Category libopenmpt => libopenmpt-modplug emulation layer
2020-04-14 09:17 manx Status assigned => feedback
2020-04-14 09:17 manx Note Added: 0004287
2020-05-24 12:43 manx Status feedback => resolved
2020-05-24 12:43 manx Resolution open => fixed
2020-05-24 12:43 manx Fixed in Version => OpenMPT 1.29.01.00 / libopenmpt 0.5.0 (upgrade first)