Opened 12 years ago

Closed 10 years ago

#15338 closed defect (worksforme)

openexr conflicts with but also depends on ilmbase

Reported by: jannesbolten@… Owned by: waqar@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: simon@…
Port: openexr ilmbase

Description

when i try to upgrade my openexr installation using MacPorts, I keep getting an error that relates to ilmbase. it seems that ilmbase is a dependency of openexr, so it needs to be activated. but when MacPorts tries to activate ilmbase, there is an error. MacPorts asks for openexr to be deactivated first. that's fine. deactivating openexr and subsequently activating ilmbase is no problem. but if i then try to upgrade openexr, there is this error:

--->  Activating openexr 1.4.0_0
Error: Activating openexr 1.4.0_0 failed: Image error: /opt/local/include/OpenEXR/half.h is being used by the active ilmbase port.  Please deactivate this port first, or use the -f flag to force the activation.

so this is a bit of a catch-22 situation.

for completeness' sake, here's what i see when i try to upgrade openexr with ilmbase deactivated:

--->  Activating ilmbase 1.0.1_1
Error: Activating ilmbase 1.0.1_1 failed: Image error: /opt/local/include/OpenEXR/half.h is being used by the active openexr port.  Please deactivate this port first, or use the -f flag to force the activation.
--->  Building openexr with target all
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_OpenEXR/work/openexr-1.6.1" && make all " returned error 2
Command output: ./ImfIO.h:110: error: 'Int64' does not name a type
./ImfIO.h:118: error: 'Int64' has not been declared
./ImfIO.h:180: error: 'Int64' does not name a type
./ImfIO.h:188: error: 'Int64' has not been declared
./ImfXdr.h:162: error: 'Int64' has not been declared
./ImfXdr.h:245: error: 'Int64' has not been declared
./ImfXdr.h:499: error: 'Int64' has not been declared
./ImfXdr.h:499: error: redefinition of 'template<class S, class T> void Imf::Xdr::write(T&, int)'
./ImfXdr.h:387: error: 'template<class S, class T> void Imf::Xdr::write(T&, int)' previously declared here
./ImfXdr.h: In function 'void Imf::Xdr::write(T&, int)':
./ImfXdr.h:507: warning: right shift count >= width of type
./ImfXdr.h:508: warning: right shift count >= width of type
./ImfXdr.h:509: warning: right shift count >= width of type
./ImfXdr.h:510: warning: right shift count >= width of type
./ImfXdr.h: In function 'void Imf::Xdr::write(T&, double)':
./ImfXdr.h:540: error: 'Int64' does not name a type
./ImfXdr.h: At global scope:
./ImfXdr.h:781: error: 'Int64' has not been declared
./ImfXdr.h:781: error: redefinition of 'template<class S, class T> void Imf::Xdr::read(T&, int&)'
./ImfXdr.h:668: error: 'template<class S, class T> void Imf::Xdr::read(T&, int&)' previously declared here
./ImfXdr.h: In function 'void Imf::Xdr::read(T&, int&)':
./ImfXdr.h:787: error: 'Int64' was not declared in this scope
./ImfXdr.h:787: error: expected `)' before 'b'
./ImfXdr.h: In function 'void Imf::Xdr::read(T&, double&)':
./ImfXdr.h:827: error: 'Int64' does not name a type
./ImfXdr.h:829: error: 'Int64' was not declared in this scope
./ImfXdr.h:829: error: expected `)' before 'b'
make[2]: *** [ImfAttribute.lo] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Change History (8)

comment:1 Changed 12 years ago by jmroot (Joshua Root)

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

Assigning to maintainer.

comment:2 Changed 12 years ago by simon@…

Cc: simon@… added

I had the same problem. I fixed it with the following steps.

port deactivate openexr
port activate ilmbase
port -f uninstall openexr
port clean --all openexr
port install openexr

Hope this helps,

Simon

comment:3 Changed 12 years ago by ryandesign (Ryan Schmidt)

Why "Activating openexr 1.4.0_0"? openexr was updated to 1.6.1_0 in r35935. I don't have any problem with conflicting files when using the current version of openexr and ilmbase. Please sudo port selfupdate and try again.

comment:4 Changed 12 years ago by ryandesign (Ryan Schmidt)

You may want to just remove your existing installed versions of openexr and ilmbase and reinstall.

sudo port uninstall openexr ilmbase
sudo port selfupdate
sudo port install openexr

comment:5 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:6 Changed 11 years ago by blb@…

Keywords: openexr removed
Port: openexr added

Was the problem that a file in the older openexr was moved to ilmbase (and subsequently removed by the newer openexr)?

comment:7 Changed 11 years ago by jannesbolten@…

really, i don't remember. but thanks for looking into this...

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

Keywords: ilmbase removed
Port: ilmbase added
Resolution: worksforme
Status: newclosed
Summary: openexr won't upgradeopenexr conflicts with but also depends on ilmbase
Note: See TracTickets for help on using tickets.