Closed daemonblade closed 9 months ago
this could require a major rewrite to support. I haven't been following ports development so I don't know how this is even being implemented (to be honest I'm shocked subpackages even succeeded). It's a whole new ball of wax.
do you have any idea what changes are needed? I was hoping changes like this would be take care of by the framework but sounds like it wasn't. The flavor support was a major pain -- requiring that awful 15 minute indexing to happen, and changing how the ports were referenced with that "@" symbol. I'm scared to think how the subpackages were implemented.
I'll take a look during the weekend. It may be as simple as an additional mount_nullfs and an extra make-var - hopefully.
The failure appears to be centred around dependency resolution. How does synth compute which dependencies are required for a port? It's not recognising that the multimedia/ffmpeg needs to be built before audio/alsa-plugins. If I look at /usr/ports/INDEX, alsa-plugins correctly has "ffmpeg-6.1.1_3,1 listed as a dependency - synth apparently does not consult this file?
no, it doesn't use index at all (which has to be generated on every single dep change to any port. It's not part of the repository either. Synth runs a make query on several variables, in the form of "make -V LIB_DEPENDS -V BUILD_DEPENDS" etc. It's possible that there is a new variable in play. But really subpackages should not have broken this.
I can try to track down the code where this happens and post it.
As you've probably discovered by now, SUBPACKAGE has introduced LIB_DEPENDS.* variables to the Makefile. Hopefully, this won't be too hard to incorporate into synth.
so here is the query:
Can you provide a complete list of the new, missing dependency variables?
My first reading of bsd.port.mk suggests that we need to replace {FETCH|EXTRACT|PATCH|BUILD|LIB|RUN}_DEPENDS
with {FETCH|EXTRACT|PATCH|BUILD|LIB|RUN}_DEPENDS_ALL
.
For audio/alsa-plugins:
alsa-plugins,11:55am> make -VLIB_DEPENDS_ALL
libasound.so:audio/alsa-lib libasound.so:audio/alsa-lib libavcodec.so:multimedia/ffmpeg libasound.so:audio/alsa-lib libjack.so:audio/jack libasound.so:audio/alsa-lib libsamplerate.so:audio/libsamplerate libasound.so:audio/alsa-lib libspeexdsp.so:audio/speexdsp
which looks better to me.
You are saying somebody renamed _DEPENDS to _DEPENDS_ALL ? That would be pretty reckless. My guess is *_DEPENDS_ALL is a combination of several variables. WHich would make sense if they added a new variable to that combination.
If the full rename happened it would completely break all ports so I am thinking that didn't happen.
Yup, _DEPENDS_ALL is a combo of the _DEPENDS + _DEPENDS.subpkg1 + _DEPENDS.subpkg2 + ...
Alright, so it may just be (relatively) simple matter of extracting the .subpkg1 and .subpkg2 depends and including them with the rest. I'll see what I can do.
To test it, what port do you recommend that I build?
It looks like your interpretation is correct. see: https://github.com/freebsd/freebsd-ports/commit/47564762a319a037686c921accbb831db779715c#diff-9340abbbd3230f71b4794701ef9b7a68555511d3d67d45ae97b93d99b27f7ba3
All the _DEPENDS* were essentially renames to _DEPENDS_ALL.
I still think this is reckless but it could be a relative easy fix.
I would suggest to test against the port that I reported at the start. You'd have to start with an empty repo, and then see if audio/alsa-plugins completes its build. audio/alsa-plugins is one of the few that took the jump to SUBPACKGES
Okay, audio/alsa-plugins builds along with every package that needs to exist to get to the point of building. I will tag v3.0 in a minute.
Alright, the tag is actually "v3.00" to match previous formats. Let me know if that completely solves the issue. if so you might want to let fluffy (the maintainer) know to update the port.
The fix is good. I think it's good for a formal release. Thanks!
FreeBSD ports has introduced SUBPACKAGES, and some ports (eg: audio/alsa-plugins) have started adopting the feature. Unfortunately, this breaks synth: