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