Opened 6 years ago
Closed 6 years ago
#56554 closed defect (fixed)
pdftk is using libstdc++ (this installation is configured to use libc++)
Reported by: | angelog0 (Angelo Graziosi) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.0 |
Keywords: | Cc: | olupton (Olli Lupton), ogourgue (Olivier Gourgue), dliessi (Davide Liessi), jmgoicolea (Jose Goicolea), amadeus24 | |
Port: | pdftk |
Description
After there was the upgrade to 2.5.0
sudo port selfupdate
it found pdftk
port broken
---> Scanning binaries for linking errors ---> No broken files found. ---> Found 1 broken port, determining rebuild order You can always run 'port rev-upgrade' again to fix errors. The following ports will be rebuilt: pdftk @2.02+gcc5 Continue? [Y/n]: [...]
but then after 3 builds it still failed
Error: Port pdftk is still broken after rebuilding it more than 3 times. Error: Please run port -d -y rev-upgrade and use the output to report a bug. Error: rev-upgrade failed: Port pdftk still broken after rebuilding 3 times Error: Follow https://guide.macports.org/#project.tickets to report a bug.
So
sudo port -d -y rev-upgrade
The output is attached.
Attachments (1)
Change History (16)
Changed 6 years ago by angelog0 (Angelo Graziosi)
Attachment: | pdftk-debug.log.bz2 added |
---|
comment:1 Changed 6 years ago by jmroot (Joshua Root)
Cc: | ryandesign@… removed |
---|---|
Owner: | set to ryandesign |
Status: | new → assigned |
comment:2 Changed 6 years ago by olupton (Olli Lupton)
Cc: | olupton added |
---|
comment:3 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Summary: | PDFtk broken port after MP-2.5.0 upgrade → pdftk is using libstdc++ (this installation is configured to use libc++) |
---|
comment:4 Changed 6 years ago by kencu (Ken)
Putting this in the Portfile should do it:
configure.cxx_stdlib libstdc++
at least that is what you told me.
comment:5 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
configure.cxx_stdlib libstdc++
means the port uses /usr/lib/libstdc++.6.dylib, which is not the case here. configure.cxx_stdlib macports-libstdc++
means the port uses /opt/local/lib/libgcc/libstdc++.6.dylib, which is the case here, but I was not expecting each port that compiles with MacPorts g++ to have to do that individually. Why should that be necessary? Why can't MacPorts base do it automatically when a port is using MacPorts g++?
comment:6 follow-ups: 7 9 Changed 6 years ago by kencu (Ken)
I certainly hope that we haven't differentiate between libstdc++
and macports-libstdc++
in this logic. We have gone to great pains to make them compatible with each other, and differentiating between them would generate a horrid mess.
The error states pdftk is using libstdc++
so I believe that is what it wants to see.
A 10 second test should answer the question quite readily for the OP.
This is but the first of many such tickets I suspect, and as you pointed out, "We'll have to fix them all".
comment:7 follow-up: 8 Changed 6 years ago by raimue (Rainer Müller)
Replying to kencu:
I certainly hope that we haven't to differentiate between
libstdc++
andmacports-libstdc++
in this logic. We have gone to great pains to make them compatible with each other at least on systems where it occurs commonly (cxx11 PG), and differentiating between them would generate a horrid mess.
The point of enforcing configure.cxx_stdlib
was to make linkage consistent and to allow selection of a matching precompiled archive. Using either libstdc++
or macports-libstdc++
will change the result on disk and is therefore considered to be different.
comment:8 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to raimue:
Replying to kencu:
I certainly hope that we haven't to differentiate between
libstdc++
andmacports-libstdc++
in this logic. We have gone to great pains to make them compatible with each other at least on systems where it occurs commonly (cxx11 PG), and differentiating between them would generate a horrid mess.The point of enforcing
configure.cxx_stdlib
was to make linkage consistent and to allow selection of a matching precompiled archive. Using eitherlibstdc++
ormacports-libstdc++
will change the result on disk and is therefore considered to be different.
The result on disk for pdftk, right now, is that it links with /opt/local/lib/libgcc/libstdc++.6.dylib, which is what configure.cxx_stdlib macports-libstdc++
means.
comment:9 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to kencu:
This is but the first of many such tickets I suspect, and as you pointed out, "We'll have to fix them all".
Yes, I did say that somewhere, but I was never referring to ports that specifically request to use MacPorts FSF g++. Granted there should be very few of those these days, but I had expected that MacPorts base would be able to understand that all ports that use MacPorts FSF g++ will obviously link with /opt/local/lib/libgcc/libstdc++.6.dylib, and that therefore they would assume configure.cxx_stdlib
is macports-libstdc++
.
comment:10 Changed 6 years ago by ogourgue (Olivier Gourgue)
Cc: | ogourgue added |
---|
comment:11 Changed 6 years ago by dliessi (Davide Liessi)
Cc: | dliessi added |
---|
comment:12 Changed 6 years ago by jmgoicolea (Jose Goicolea)
Cc: | jmgoicolea added |
---|
comment:13 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | amadeus24 added |
---|
Has duplicate #56590.
This bug in MacPorts 2.5.0 has been fixed and will be released soon in MacPorts 2.5.1.
comment:15 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
The log says:
This is intentional, to the extent that pdftk intentionally builds using MacPorts gcc, which uses libstdc++. I don't know what I'm supposed to change in this port to make the error go away.