pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: patch for current audio/rubberband
On Tue, Mar 7, 2023 at 11:18 PM Alistair Crooks <agc%pkgsrc.org@localhost> wrote:
>
> pkgsrc/mk/plist/shlib-dylib.awk looks for shared objects in the PLIST that match the regexps
>
> /.*\/lib[^\/]+\.so(\.[0-9]+)+$/
> /.*\/lib[^\/]+\.so$/
>
> As neither ladspa-rubberband.so or vamp-rubberband.so starts with "lib" for the directory entry name, they don't get matched
>
> My first thought is to go for a specialised PLIST.Darwin, I think (see also pkgsrc/devel/valgrind/PLIST.Darwin), but there are probably much better ways to do it
What if the regex to rename .so to .dylib didn't require ^lib[^\/]+ in
the basename?
I looked at shlib-dylib.awk and counted the various PLIST regex matching, below.
20750 .so files from all PLIST have .so files without ^lib in the basename.
Some are man pages and share binaries... I wouldn't want an endless discussion.
There are already 580 PLIST.{varient} examples, so I would go with that.
bmake print-PLIST >PLIST.Darwin
However, intensional or not, shlib-dylib.awk is not processed recursively,
although pkg_create is, so there is the circumstance:
ERROR: The following files are in the PLIST but not in
/opt/pkgsrc/audio/rubberband/work/.destdir/opt/pkg:
ERROR: /opt/pkgsrc/audio/rubberband/work/.destdir/opt/pkg/lib/ladspa/ladspa-rubberband.so
ERROR: /opt/pkgsrc/audio/rubberband/work/.destdir/opt/pkg/lib/vamp/vamp-rubberband.so
even though those files are in the .dylib form in PLIST.Darwin, their .so
form per default PLIST is expected. (This situation must break a lot
of packages on Darwin?)
Would there be dammage by invoking shlib-dylib.awk recursively
and removing ^lib[^\/]+ from the regex? I've stopped short of testing
because any approval would require an independent testing effort.
If a committer would be interested in sponsoring this effort as a mentor,
I would take a stab at it if there was a commitment to confirm and
apply any successful result?
On the other hand, this works...
bmake bmake stage-install
bmake print-PLIST >PLIST
bmake install
that's another way around the rubberband problem.
-George
# dylib vs so in a poc install lib dir, at various depths:
for a in 1 2 3 4 5 6; do echo depth $a ; echo -n " dylib"
find /opt/pkg/lib -name \*.dylib -mindepth $a -maxdepth $a -type f | wc -l
echo -n " so "
find /opt/pkg/lib -name \*.so -mindepth $a -maxdepth $a -type f | wc -l
done
depth 1
dylib 259
so 0
depth 2
dylib 17
so 27
depth 3
dylib 0
so 72
depth 4
dylib 2
so 12
depth 5
dylib 1
so 26
depth 6
dylib 0
so 0
find . -maxdepth 3 -name PLIST -exec awk '/.*\/lib[^\/]+\.so(\.[0-9]+)+$/' \
\{\} \; | wc -l ## first case original
4433
find . -maxdepth 3 -name PLIST -exec awk '/.*\/lib[^\/]+\.so$/' \
\{\} \; | wc -l ## second case original
5733
find . -maxdepth 3 -name PLIST -exec awk '/.*\/lib[^\/]+\.so(\.[0-9]+)*$/' \
\{\} \; | wc -l ## combined original
10166
find . -maxdepth 3 -name PLIST -exec awk '/.*\/[^\/]+\.so(\.[0-9]+)*$/' \
\{\} \; | wc -l ## combined original sans lib
20750
find . -maxdepth 3 -name PLIST -exec awk '/\/lib\/.*\.so(\.[0-9]+)*$/' \
\{\} \; | wc -l ## combined original path lib
2802
find . -maxdepth 3 -name PLIST -exec awk '/.*\/[^\/]+\.so(\.[0-9]+)*$/' \
\{\} \; | grep -v '^lib' | wc -l ## mostly use of env in PLIST,
also man pages, share binaries
6872
find . -maxdepth 3 -name PLIST | wc -l ## PLIST standard
15718
find . -maxdepth 3 -name PLIST.\* | wc -l ## PLIST.{varient}
580
>
> On Tue, 7 Mar 2023 at 22:00, George Georgalis <george%galis.org@localhost> wrote:
>>
>> On Mon, Mar 6, 2023 at 8:00 AM George Georgalis <george%galis.org@localhost> wrote:
>>>
>>> This nominal diff will allow the build to complete and install,
>>> the binary is working on Darwin/11.3/arm64 although I have
>>> not tried using the plugins in other apps
>>
>>
>> the PLIST issue only impacts macos, so a fix will be more
>> involved than just updating the PLIST file.
>> https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57262
>>
>>
>> --
>> George Georgalis, (415) 894-2710, http://www.galis.org/
>>
--
George Georgalis, (415) 894-2710, http://www.galis.org/
Home |
Main Index |
Thread Index |
Old Index