Open luzpaz opened 1 year ago
well, I think it hasn't been packaged for any other distro aha
Got it. Closing.
if anyone can help for doing it it would be great though!
maybe we can use this issue to plan how to get score in more distros?
there's also https://github.com/NixOS/nixpkgs/pull/174802 for getting it into Nix
I think the best would be to try toget a debian package
I think the best would be to try toget a debian package
Agreed. And by the same logic: getting an Arch package (which will permeate to manjaro and other arch clones)
Edit: updated the OP
@dvzrv do you know what would be the steps to take to migrate https://aur.archlinux.org/packages/ossia-score from AUR to community? thanks!
working on the mingw packages... it already builds entirely against it on the CI so shouldn't be too hard (likewise arch is checked in the CI)
For debian the simplest looks like it'd be by using https://gitlab.kitware.com/debian/dh-cmake
@yurivict do you know what we should do to get ossia in FreeBSD ports? Ideally I'd like to set-up some form of CI to make sure we don't break it but I honestly have no idea on how to do it on GH Actions...
@dvzrv do you know what would be the steps to take to migrate https://aur.archlinux.org/packages/ossia-score from AUR to community? thanks!
Generally speaking, I'd be interested in maintaining score and libossia for Arch Linux. However, I see major road blocks for both projects in their current form:
Judging from the above I do not believe I have the time or energy to keep up with a devendoring effort of this scale.
Moving forward, I would reconsider if the build setup would allow devendoring libraries that do not have substantial modifications done by you to make the ossia projects work and which are available (or can be made available) on downstream distributions. Libraries that are not necessary for the Linux target should not be pulled in at all. Libraries that are not headers-only should be dynamically linked. Generally, I would appreciate if you could target latest stable releases of libraries (this is also useful to keep in sync with pinned versions via submodules for your own build purposes) and no pre-release versions (I can recommend nvchecker for the purpose of tracking upstream releases). This may require contacting upstreams to create releases.
libossia:
score:
Some of the above are a bit special as they are monstrous sdk targets (e.g. vst3sdk). Those I have by now dealt with in the context of providing them as source targets (e.g. below /usr/src/vst3sdk/
), so that projects may rely on a custom variable to find those sources (e.g. PROJECT_VST3SDK_SOURCES=/usr/src/vst3sdk/
).
thanks for your thorough answer @dvzrv ! do you mind if I check & edit your post for annotating the libraries with their state?
thanks for your thorough answer @dvzrv ! do you mind if I check & edit your post for annotating the libraries with their state?
Sure, please do! I mainly just added the 3rdparty subdirectories of both projects. Although some common libs I recognized right away, I didn't go into deeper investigation for them all (e.g. what version you're using them in vs. what is current latest or whether they are required on Linux, etc.)
okay, I did a round of them, here are the ones that I think can be devendored without too much difficulty:
which others would be critical for you?
by the way, I don't think it's too necessary to have a separate package for libossia, it is really built with entirely different & ABI-incompatible options and features when built for usage by score, than when built as a standalone library (where it is more used as network communication middleware for Max/MSP externals)
which others would be critical for you?
Thanks for going over the list! Much appreciated! I think even the header only libs can be packaged (with some we do already). However, some upstreams are a bit undead and don't necessarily even have releases.
I'd need to spend some time to figure out which are easy to package, so thanks for highlighting those that are not actually needed (or only in dev context). I'm currently on vacation so it might take me up to mid July to really get going on this.
okay, i added a -DSCORE_USE_SYSTEM_LIBRARIES=1 flag that will try to lookup system libs first. Will mark the ones for which it is done.
I encountered an issue with fmt for which we use v10 (the latest stable release from May) - score does not build with v9.
Note that as far as I can see all the external libs are linked dynamically.. do you have some specific ones in mind when you mention "everything is dynamically linked" ?
in any case thanks and enjoy your vacations!
do you know what we should do to get ossia in FreeBSD ports?
Last time a massive amount of bundled dependencies prevented porting of ossia to FreeBSD. Some bundled dependencies probably conflicted with pre-installed packages. Now there's still a massive amount of bundled dependencies present in the project.
Having all dependencies bundled with the project is just not a sustainable practice, because if all projects would do this they would require exponentially long time to build, because every package would be rebuilt many times for many dependencies.
@yurivict from the list I put of the libraries "not in Arch", do you see some that would be present in freebsd so that I can try detecting them?
@jcelerier where is this list? The string "not in Arch" isn't in the source tree, and configure doesn't print it.
@yurivict i'm referring to the post a bit above this one: https://github.com/ossia/score/issues/1476#issuecomment-1612618879
@jcelerier We now have PerlinNoise, libartnet, libremidi, mdspan, nano-signal-slot ports in FreeBSD.
last master commits are going to look for them (and all others) through cmake find_package.. installing a VM to try
Amazing packaging work happening here. Props to all involved!
@ycollet this issue may be relevant... do you know what would be the steps to get into Fedora proper? cheers!
I still have it in the audinux repository: https://copr.fedorainfracloud.org/coprs/ycollet/audinux/
But for the main Fedora repository, a fedora packager must adopt the spec and manage to put it in the fedora repository. I am not a fedora packager ... So, for now, I still build ossia in audinux :)
Opened FreeBSD new port request: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272606
I have a question: can the dependency llfio
be made optional?
It doesn't easily compile on FreeBSD: many C++ errors in the code.
@yurivict yes it is optional, if it is not part of the build it justy won't be used
(it'd be nice to get it to work on freebsd though... on my linux it iterates so much faster compared to std::filesystem or fts it's not even funny, on folders with a few hundred thousand files... and I don't even use it in a particularly optimized way). for the record it's only used from this file: https://github.com/ossia/score/blob/1ba227378059faa674f2b623bf6db41db14cd902/src/lib/score/tools/RecursiveWatch.cpp
Note: I opened a repology report asking to merge 'score' packages in to 'ossia-score' (https://repology.org/project/score/report)
Edit: repology has merged packages now under ossia-score. :+1:
How to disable pre-compiled headers?
I am getting this gcc-12 failure on FreeBSD:
grep -r "sorry, unimplemented: PCH allocation failure
There is the SCORE_PCH
option which is OFF, but pre-compiled headers are still used.
The message "PCH allocation failure" appears in the gcc source.
This is a showstopper for the FreeBSD port. Anybody knows how to solve this?
I'll be looking at it asap next week, kinda busy with another project this week
Update:
ππππ«Άπ½
On Sun 23. Jul 2023 at 19:33, luzpaz @.***> wrote:
Update:
- winget package added
- chocolatey package request made
β Reply to this email directly, view it on GitHub https://github.com/ossia/score/issues/1476#issuecomment-1646899616, or unsubscribe https://github.com/notifications/unsubscribe-auth/AENTXP7A4FUXOAA2E73CUQTXRVN7ZANCNFSM6AAAAAAZSDRPKA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- null
Chocolatey package running into issues (old issues apparently: https://community.chocolatey.org/packages/ossia-score). Since it was rejected back then, it's rejected now (https://github.com/chocolatey-community/chocolatey-package-requests/issues/1435#issuecomment-1665384923)
3.1.12 released which should improve the packaging story, it has the work done this summer
bumped winget and freschcode.club repos. Those should update soon.
bumped some downstream tickets so we inch closer toward the goal of this ticket
3.1.13 released :)
Bumped existing downstream repos. Badge should reflect that soon.
3.2.0 released. added repology to the readme
NixOS merged it :) also there's a flatpak ready to be merged : https://github.com/flathub/flathub/pull/5376 @yurivict @dvzrv @ycollet anything I can do to help packaging on upstream distros ?
@yurivict btw I added a FreeBSD CI step which is finally green : https://github.com/ossia/score/actions/runs/9827416259/job/27130071142
flatpak available :) https://flathub.org/fr/apps/io.ossia.score
On my side, I will work on the package probably in august.
great, please tell me if it's possible to help in any way !
Same here. I'm very busy this month and likely into half of the next.
If you could provide more detailed information on the optional dependencies, that'd be great. In https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ossia-score#n11 you provide many, but they are all unnamed. Does the application link against some or all of them? Is any of that dlopen'ed?
'pipewire'
dlopen'd
'faust'
linked directly, if the package is built against faust it will require it at runtime. (but faust is not necessary for ossia to work, it's just additional albeit useful features). Though I could change it to being dlopen'd without much issues, there's only 3/4 function calls required.
'lilv' 'lv2'
linked directly so if ossia is built with lv2 support they are required at runtime (and it's way too much work to dlopen Lilv)
'suil'
dlopen'd. Note that for LV2 UI support, this requires this patch as upstream suil does not support Qt 6 yet : https://github.com/lv2/suil/pull/21
'sdl2'
used for gamepad support, linked directly
'libfreenect2'
used for kinect support, linked directly. very, very, very optional.
'ysfx'
used for JSFX plug-ins support, linked directly
'ultraleap-hand-tracking-service'
used for leapmotion / ultrealeap support, dlopen'd
'gpsd'
used for GPSd support, dlopen'd
'bluez'
used for Bluetooth / BLE support, accessed through D-Bus, it should work without it available (but I am not able to remove it without removing half of my system to make sure to be honest... I do a run-time check nevertheless)
'ndi-sdk'
used for NDI support, dlopen'd
'libcoap'
used for CoAP protocol support, linked directly
'avahi'
used in a lot of places for DNS-SD / Bonjour support. dlopen'd though the experience may be really subpar without it.
Note: the above badge will auto-update when OS packaging repos and distros incorporate the ossia-score package.
Linux
https://github.com/OpenMandrivaAssociation/distribution/issues/3008
)https://github.com/microsoft/vcpkg/issues/42159
)FreeBSD
macOS
Windows
Other