Opened 10 years ago

Closed 10 years ago

#42305 closed defect (fixed)

librsvg @2.36.4_3 publishes archive library into loaders

Reported by: earl_chew@… Owned by: pixilla (Bradley Giesbrecht)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: dershow, nick.lavrik@…
Port: librsvg

Description

The pixbuf loaders directory contains shared libraries:

% ls /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/
libpixbufloader-ani.so*    libpixbufloader-qtif.so*
libpixbufloader-bmp.so*    libpixbufloader-ras.so*
libpixbufloader-gif.so*    libpixbufloader-svg.a
libpixbufloader-icns.so*   libpixbufloader-svg.so*
libpixbufloader-ico.so*    libpixbufloader-tga.so*
libpixbufloader-jasper.so* libpixbufloader-tiff.so*
libpixbufloader-jpeg.so*   libpixbufloader-wbmp.so*
libpixbufloader-pcx.so*    libpixbufloader-xbm.so*
libpixbufloader-png.so*    libpixbufloader-xpm.so*
libpixbufloader-pnm.so*

The libpixbufloader-svg.a contribution from librsvg seems to be out of place here.

Change History (9)

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to pixilla@…

comment:2 Changed 10 years ago by pixilla (Bradley Giesbrecht)

I know little of these pixbuf files but it is more likely that gdk-pixbuf2 is responsible for their location:

$ port provides /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/*
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-icns.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-icns.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ico.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ico.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pcx.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pcx.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pnm.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pnm.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-qtif.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-qtif.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.a is provided by: librsvg
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.la is provided by: librsvg
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so is provided by: librsvg
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tga.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tga.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xbm.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xbm.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so is provided by: gdk-pixbuf2

earl_chew: What make you think the current layout is wrong? Can you share a preferred layout?

Last edited 10 years ago by pixilla (Bradley Giesbrecht) (previous) (diff)

comment:3 in reply to:  2 Changed 10 years ago by earl_chew@…

Replying to pixilla@…:

I know little of these pixbuf files but it is more likely that gdk-pixbuf2 is responsible for their location:

$ port provides /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/*
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.la is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.so is provided by: gdk-pixbuf2
...

earl_chew: What make you think the current layout is wrong? Can you share a preferred layout?


Hmmm ... that's funny because on my system I see something a little different. Maybe it's because I installed from binary, and didn't build from source. This is what I see:

$ port provides /opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/*
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-icns.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ico.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pcx.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pnm.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-qtif.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.a is provided by: librsvg
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so is provided by: librsvg
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tga.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xbm.so is provided by: gdk-pixbuf2
/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so is provided by: gdk-pixbuf2

What I'd like to point out is that I think the gdk-pixbuf-2.0/.../loaders/ directory is intended to contain pixbuf modules that are shared libraries (*.so) so that they can be dynamically loaded. This is particularly useful when new plugins are provided to extend functionality (just like librsvg).

For reference, take a look at http://packages.debian.org/sid/amd64/libgdk-pixbuf2.0-0/filelist from Debian:

/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ani.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-bmp.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-gif.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-icns.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ico.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jasper.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pcx.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-pnm.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-qtif.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-ras.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tga.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-wbmp.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xbm.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders

So what I suggest is that the only change that needs to be made is for librsvg to remove libpixbufloader-svg.a (ie don't put the archive library version .a in gdk-pixbuf-2.0/2.10.0/loaders/, and only put the shared library version .so there).

comment:4 Changed 10 years ago by pixilla (Bradley Giesbrecht)

Resolution: fixed
Status: newclosed

eral_chew: Thank you.

See r116588

comment:5 Changed 10 years ago by dershow

Resolution: fixed
Status: closedreopened

I just tried to upgrade librsvg @2.36.4_4 to @2.36.4_5. It builds, but then I get an error when it is trying to stage it:

--->  Staging librsvg into destroot
Error: org.macports.destroot for port librsvg returned: file: no such file or directory
Please see the log file for port librsvg for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_librsvg/librsvg/main.log
Error: Unable to upgrade port: 1
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets

And here are the last few lines of the log:

:info:destroot xinstall: chdir(/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_librsvg/librsvg/work/librsvg-2.36.4/macports)
:info:destroot xinstall: svg2pdf -> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_librsvg/librsvg/work/destroot/opt/local/bin/svg2pdf
:debug:destroot delete: file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_librsvg/librsvg/work/destroot/opt/local/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.a
:error:destroot org.macports.destroot for port librsvg returned: file: no such file or directory
:debug:destroot Error code: NONE
:debug:destroot Backtrace: file: no such file or directory
    while executing
"$post $targetname"
:info:destroot Warning: targets not executed for librsvg: org.macports.install org.macports.destroot
:notice:destroot Please see the log file for port librsvg for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_librsvg/librsvg/main.log

It looks to me like it is trying to delete a file that is not actually installed with the prior version, so it can't complete the staging.

comment:6 Changed 10 years ago by dershow

Cc: dersh@… added

Cc Me!

comment:7 Changed 10 years ago by nick.lavrik@…

Cc: nick.lavrik@… added

Cc Me!

comment:8 Changed 10 years ago by dershow

It looks like this was reported in two other tixs and has been fixed now:

https://trac.macports.org/ticket/42315

https://trac.macports.org/ticket/42319

comment:9 Changed 10 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.