Opened 10 years ago

Closed 10 years ago

#19831 closed defect (fixed)

cdparanoia-10.2 upgrade fail

Reported by: christophe.haro@… Owned by: mf2k (Frank Schima)
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: Cc: ctempleton3@…, vinc17@…, steven@…
Port: cdparanoia

Description (last modified by blb@…)

My installation is :

Mac OS X 10.5.7
haro$ uname -a
Darwin callisto.local 9.7.0 Darwin Kernel Version 9.7.0: Tue Mar 31 22:52:17 PDT 2009; root:xnu-1228.12.14~1/RELEASE_I386 i386
haro$ sudo port selfupdate
MacPorts base version 1.710 installed
Downloaded MacPorts base version 1.710

The MacPorts installation is not outdated so it was not updated

callisto:~ haro$ port list outdated
cdparanoia                     @10.2           audio/cdparanoia

When I try to upgrade cdparanoia, I get :

callisto:~ haro$ sudo port -u upgrade outdated
--->  Fetching cdparanoia
--->  Attempting to fetch cdparanoia-III-10.2.src.tgz from http://arn.se.distfiles.macports.org/cdparanoia
--->  Attempting to fetch cdparanoia-III-10.2.src.tgz from http://downloads.xiph.org/releases/cdparanoia
--->  Verifying checksum(s) for cdparanoia
--->  Extracting cdparanoia
--->  Applying patches to cdparanoia
--->  Configuring cdparanoia
--->  Building cdparanoia
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_audio_cdparanoia/work/cdparanoia-III-10.2" && make all " returned error 2
Command output: 		-o cdparanoia -lcdda_interface -lcdda_paranoia -lm
Undefined symbols:
  "_cdda_version", referenced from:
      _main in main.o
      _main in main.o
      _main in main.o
  "_paranoia_cachemodel_size", referenced from:
      _analyze_cache in cachetest.o
  "_paranoia_version", referenced from:
      _main in main.o
      _main in main.o
      _main in main.o
      _analyze_cache in cachetest.o
  "_cdda_read_timed", referenced from:
      _time_drive in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
      _analyze_cache in cachetest.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[1]: *** [cdparanoia] Error 1
make: *** [all] Error 2

Error: Unable to upgrade port: 1

Attachments (1)

cdparanoia.diff (523 bytes) - added by mtalexander (Mike Alexander) 10 years ago.
Portfile patch to fix the problem

Download all attachments as: .zip

Change History (17)

comment:1 Changed 10 years ago by blb@…

Description: modified (diff)
Port: @10.2 removed
Summary: cdparanoia upgrade failcdparanoia-10.2 upgrade fail

Try deactivating the currently-installed copy first, then try cleaning and installing it:

sudo port deactivate cdparanoia                                                                                                     
sudo port clean cdparanoia                                                                                                          
sudo port install cdparanoia                                                                                                        

comment:2 in reply to:  1 ; Changed 10 years ago by christophe.haro@…

Replying to blb@…:

Try deactivating the currently-installed copy first, then try cleaning and installing it:

sudo port deactivate cdparanoia                                                                                                     
sudo port clean cdparanoia                                                                                                          
sudo port install cdparanoia                                                                                                        

Ok ! That works fine ! Thanks for your help, but what was wrong ?

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

Replying to christophe.haro@…:

Thanks for your help, but what was wrong ?

Some software doesn't always build reliably when older versions of its libraries are visible; deactivating the old one hides the library and usually lets it build. Usually patching the build can keep it from failing.

comment:4 Changed 10 years ago by ctempleton3@…

I am unable to upgrade too. But I am not seeing the same error message do you want me to pen a new ticket?

$ uname -a && sudo port selfupdate && port outdated cdparanoia && sudo port deactivate cdparanoia && sudo port clean cdparanoia && sudo port insta
ll cdparanoia
Darwin sarah 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007;
root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc
Password:
 
MacPorts base version 1.710 installed
Downloaded MacPorts base version 1.710
 
The MacPorts installation is not outdated so it was not updated
The following installed ports are outdated:
cdparanoia                     0.9.8_0 < 10.2_0
--->  Deactivating cdparanoia
--->  Cleaning cdparanoia
--->  Fetching cdparanoia
--->  Verifying checksum(s) for cdparanoia
--->  Extracting cdparanoia
--->  Applying patches to cdparanoia
--->  Configuring cdparanoia
--->  Building cdparanoia
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/ma
cports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_au
dio_cdparanoia/work/cdparanoia-III-10.2" && nice -n 5 make all " returned error
2
Command output: cd paranoia && make all
make libcdda_paranoia.a CFLAGS="-O2 -fsigned-char -O2"
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -c paranoia.c
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -c p_block.c
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -c overlap.c
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -c gap.c
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -c isort.c
ar -r libcdda_paranoia.a paranoia.o p_block.o overlap.o gap.o isort.o
ar: creating archive libcdda_paranoia.a
ranlib libcdda_paranoia.a
make lessmessy
rm -f *.o  *.t core *~
make libcdda_paranoia.dylib CFLAGS="-O2 -fsigned-char -O2 -fpic"
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -fpic -c paranoia.c
paranoia.c:1: warning: -fpic is not supported; -fPIC assumed
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -fpic -c p_block.c
p_block.c:1: warning: -fpic is not supported; -fPIC assumed
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -fpic -c overlap.c
overlap.c:1: warning: -fpic is not supported; -fPIC assumed
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -fpic -c gap.c
gap.c:1: warning: -fpic is not supported; -fPIC assumed
/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -fpic -c isort.c
isort.c:1: warning: -fpic is not supported; -fPIC assumed
/usr/bin/gcc-4.0 -dynamiclib -o libcdda_paranoia.0.10.2.dylib paranoia.o p_block
.o overlap.o gap.o isort.o  -L../interface -lcdda_interface -install_name /opt/l
ocal/lib/libcdda_paranoia.0.dylib
ld: common symbols not allowed with MH_DYLIB output format with the -multi_modul
e option
paranoia.o definition of common _paranoia_read_flags (size 4)
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/libtool: internal link edit command
 failed
make[2]: *** [libcdda_paranoia.dylib] Error 1
make[1]: *** [slib] Error 2
make: *** [all] Error 2

Error: Status 1 encountered during processing.
$

comment:5 Changed 10 years ago by ctempleton3@…

Cc: ctempleton3@… added

Cc Me!

comment:6 Changed 10 years ago by blb@…

The error about MH_DYLIB sounds like #19829 (which appears to happen on 10.4).

comment:7 Changed 10 years ago by vinc17@…

Cc: vinc17@… added

Cc Me!

comment:8 in reply to:  3 Changed 10 years ago by vinc17@…

Replying to blb@…:

Some software doesn't always build reliably when older versions of its libraries are visible; deactivating the old one hides the library and usually lets it build. Usually patching the build can keep it from failing.

Here I suspect that the cause is that MacPorts sets LDFLAGS (the LIBRARY_PATH solution should be safer).

comment:9 Changed 10 years ago by steven@…

Cc: steven@… added

Cc Me!

comment:10 in reply to:  1 Changed 10 years ago by gale@…

Replying to blb@…:

Try deactivating the currently-installed copy first, then try cleaning and installing it:

That worked for me. But my error was different on Mac OS X 10.4.11 Intel, so I'm reporting it here:

/usr/bin/gcc-4.0 -O2 -fsigned-char -O2 -L/opt/local/lib -O2 main.o report.o header.o buffering_write.o cachetest.o \
        -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_audio_cdparanoia/work/cdparanoia-III-10.2/paranoia -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_audio_cdparanoia/work/cdparanoia-III-10.2/interface \
        -o cdparanoia -lcdda_interface -lcdda_paranoia -lm
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:
_cdda_version
_paranoia_version
_cdda_read_timed
_paranoia_cachemodel_size
_CFDataGetBytes
_CFDataGetLength
_CFDictionaryGetValue
_CFDictionarySetValue
_CFRelease
_CFStringGetCString
_IOIteratorNext
_IOMasterPort
_IOObjectRelease
_IOObjectRetain
_IORegistryEntryCreateCFProperties
_IORegistryEntryCreateCFProperty
_IOServiceGetMatchingServices
_IOServiceMatching
___CFConstantStringClassReference
_kCFAllocatorDefault
_kCFBooleanTrue
collect2: ld returned 1 exit status
make[1]: *** [cdparanoia] Error 1
make: *** [all] Error 2

Error: Unable to upgrade port: 1

comment:11 Changed 10 years ago by steven@…

Works here too! (uninstall, clean & install)

ProductName: Mac OS X ProductVersion: 10.5.7 BuildVersion: 9J61 GCC: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5490)

Changed 10 years ago by mtalexander (Mike Alexander)

Attachment: cdparanoia.diff added

Portfile patch to fix the problem

comment:12 Changed 10 years ago by mtalexander (Mike Alexander)

I attached a patch that fixes this problem. This is the same as the Portfile attached to #20320 which is described as:

If you have cdparanoia-0.9.8_0 installed when you try to build version 10.2_0 the build fails since it links against ${destroot}/lib before the directories containing the dynamic libraries it just built. It would be possible to fix the Makefile to avoid this (and perhaps best to do so) but since it doesn't need anything from ${destroot}/lib the easy fix is to make it ignore it. The attached port file does this, and also drops -O2 from CFLAGS since the make file provides that in cases where it is needed and including it in CFLAGS causes it to be included inappropriately (for example in the debug target of the make file).

comment:13 Changed 10 years ago by mf2k (Frank Schima)

Owner: changed from macports-tickets@… to macsforever2000@…
Status: newassigned

comment:14 Changed 10 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: assignedclosed

Committed revision r54119. Thanks!

comment:15 Changed 10 years ago by mf2k (Frank Schima)

Resolution: fixed
Status: closedreopened

I had to comment out the changes in r54120 because they require MacPorts 1.8. They can be put back in when it is released. Thanks for jmr for catching that.

comment:16 Changed 10 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: reopenedclosed

Worked around #17865 in r54122.

Note: See TracTickets for help on using tickets.