problems after upgrading from darwinports
Hello, I just installed macports 1.320 from the dmg+installer on top of my old darwinports installation, subsequently I'm having great trouble installing or uprading a number of ports, particularly ones that require db44. I'm running OS X 10.4.8 on a 1.25 GHz PowerPC G4. I also installed the latest developer tools and Xcode as recommended. For instance, I get the following output when trying to install rb-rmagick (imagemagick is up-to-date): 23:38:34:dorian #> sudo port install rb-rmagick ---> Building rb-rmagick with target all Error: Target com.apple.build returned: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_ruby_rb-rmagick/work/RMagick-1.13.0" && make all RUBY="/opt/local/bin/ruby -rvendor-specific"" returned error 2 Command output: ---> lib/rvg <--- lib/rvg <--- lib ---> ext ---> ext/RMagick make gcc -I. -I/opt/local/lib/ruby/1.8/powerpc-darwin8.8.0 -I/opt/local/lib/ruby/1.8/powerpc-darwin8.8.0 -I/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_ruby_rb-rmagick/work/RMagick-1.13.0/ext/RMagick -DRUBY_VERSION=0x185 -I/opt/local/include -fno-common -Wall -g -c rmutil.c rmutil.c: In function 'Color_to_ColorInfo': rmutil.c:1771: error: incompatible types in assignment rmutil.c: In function 'Color_to_s': rmutil.c:1801: warning: format '%d' expects type 'int', but argument 5 has type 'MagickRealType' rmutil.c:1801: warning: format '%d' expects type 'int', but argument 6 has type 'MagickRealType' rmutil.c:1801: warning: format '%d' expects type 'int', but argument 7 has type 'MagickRealType' rmutil.c:1801: warning: format '%d' expects type 'int', but argument 8 has type 'MagickRealType' make[1]: *** [rmutil.o] Error 1 setup.rb:655:in `command': system("make") failed (RuntimeError) from setup.rb:664:in `make' from setup.rb:1258:in `setup_dir_ext' from setup.rb:1532:in `__send__' from setup.rb:1532:in `traverse' from setup.rb:1549:in `dive_into' from setup.rb:1530:in `traverse' from setup.rb:1534:in `traverse' from setup.rb:1533:in `each' ... 8 levels... from setup.rb:826:in `__send__' from setup.rb:826:in `invoke' from setup.rb:772:in `invoke' from setup.rb:1578 make: *** [all] Error 1 Error: Status 1 encountered during processing. and then I get the following when trying to install db44 (needed for apache 2.2.3 etc...): 23:37:14:dorian #> sudo port install db44 Password: ---> Building db44 with target all Error: Target com.apple.build returned: shell command "cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_databases_db44/work/db-4.4.20/build_unix" && make all" returned error 2 Command output: ./db_cxx.h:492: error: 'ostream' has not been declared ./db_cxx.h:493: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:493: error: 'ostream' declared as a 'virtual' field ./db_cxx.h:493: error: expected ';' before '*' token ./db_cxx.h:494: error: 'ostream' has not been declared ./db_cxx.h:653: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:653: error: expected ';' before '*' token ./db_cxx.h:654: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:654: error: expected ';' before '*' token ./db_cxx.h:1032: error: expected class-name before '{' token ../dist/../cxx/cxx_db.cpp: In function 'int _verify_callback_c(void*, const void*)': ../dist/../cxx/cxx_db.cpp:503: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:503: error: 'out' was not declared in this scope ../dist/../cxx/cxx_db.cpp:506: error: expected primary-expression before ')' token ../dist/../cxx/cxx_db.cpp:506: error: expected `;' before 'handle' ../dist/../cxx/cxx_db.cpp: At global scope: ../dist/../cxx/cxx_db.cpp:516: error: 'ostream' has not been declared ../dist/../cxx/cxx_db.cpp:637: error: expected constructor, destructor, or type conversion before '*' token ../dist/../cxx/cxx_db.cpp:642: error: variable or field 'set_error_stream' declared void ../dist/../cxx/cxx_db.cpp:642: error: 'int Db::set_error_stream' is not a static member of 'class Db' ../dist/../cxx/cxx_db.cpp:642: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:642: error: 'error_stream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:643: error: expected ',' or ';' before '{' token ../dist/../cxx/cxx_db.cpp:647: error: expected constructor, destructor, or type conversion before '*' token ../dist/../cxx/cxx_db.cpp:652: error: variable or field 'set_message_stream' declared void ../dist/../cxx/cxx_db.cpp:652: error: 'int Db::set_message_stream' is not a static member of 'class Db' ../dist/../cxx/cxx_db.cpp:652: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:652: error: 'message_stream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:653: error: expected ',' or ';' before '{' token make: *** [cxx_db.lo] Error 1 Error: Status 1 encountered during processing. I'm at a bit of a loss as to how to proceed. It seems that I'm missing something, perhaps some compiler or something, but I have no idea what. can anyone help? thanks dorian -- I do things for love or money
I don't know why you're experiencing these problems but I'll try to make some suggestions. On Nov 15, 2006, at 02:52, Dorian Mcfarland wrote:
I just installed macports 1.320 from the dmg+installer on top of my old darwinports installation,
First I have to ask why. Did "sudo port selfupdate" not work for some reason? That would be the normal way to update to the latest DarwinPorts/MacPorts version.
subsequently I'm having great trouble installing or uprading a number of ports, particularly ones that require db44. I'm running OS X 10.4.8 on a 1.25 GHz PowerPC G4. I also installed the latest developer tools and Xcode as recommended.
Oh. Shoot. Well, that was one thing I was going to suggest -- to make sure you have the latest Xcode (2.4.1).
For instance, I get the following output when trying to install rb- rmagick (imagemagick is up-to-date):
[snip errors I don't know how to solve]
and then I get the following when trying to install db44 (needed for apache 2.2.3 etc...):
[snip more strange errors] Just a note: you do not need db44 for apache2. apache2 depends on apr- util, and apr-util depends on db44. But I think the main reason it does this is to support serving BDB-style repositories with subversion, which also requires apr-util. If you do not use subversion, or do not serve BDB-style repositories with it (they are no longer the default), then you do not require db44. To exclude it, first build apr-util with the +no_bdb variant. Then build apache2. (If you are using subversion, then build it with the +no_bdb variant also.) This is not to say that something isn't wrong. Something *is* wrong; you should be able to compile db44. But I did want to point out that db44 is not strictly necessary for most cases.
I'm at a bit of a loss as to how to proceed. It seems that I'm missing something, perhaps some compiler or something, but I have no idea what.
The only compiler you should need is gcc, the one included with Xcode. However, it occurs to me that Xcode installs several versions of gcc, only one of which is the active one. Which one is active for you? It should be 4.0.1. What output does the command "gcc_select" produce on your system? I get this: $ gcc_select Current default compiler: gcc version 4.0.1 (Apple Computer, Inc. build 5367)
actually, after a full reinstall of darwinports(completely removing /opt/local) I still have the same problem with db44
$ gcc_select Current default compiler: gcc version 4.0.1 (Apple Computer, Inc. build 5367)
this is still the case. I am now at a total loss! anyone have any ideas why I might be getting the following: <snip> creating libdb-4.4.la (cd .libs && rm -f libdb-4.4.la && ln -s ../libdb-4.4.la libdb-4.4.la) rm -f libdb.a ln -s .libs/libdb-4.4.a libdb.a /bin/sh ./libtool --mode=compile /usr/bin/g++-4.0 -c -I. -I../dist/.. -O ../dist/../cxx/cxx_db.cpp /usr/bin/g++-4.0 -c -I. -I../dist/.. -O ../dist/../cxx/cxx_db.cpp -fno-common -DPIC -o .libs/cxx_db.o In file included from ../dist/../cxx/cxx_db.cpp:15: ./db_cxx.h:60:22: error: iostream.h: No such file or directory ./db_cxx.h:61:23: error: exception.h: No such file or directory ./db_cxx.h:268: error: 'ostream' has not been declared ./db_cxx.h:274: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:274: error: 'ostream' declared as a 'virtual' field ./db_cxx.h:274: error: expected ';' before '*' token ./db_cxx.h:275: error: 'ostream' has not been declared ./db_cxx.h:276: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:276: error: 'ostream' declared as a 'virtual' field ./db_cxx.h:276: error: expected ';' before '*' token ./db_cxx.h:277: error: 'ostream' has not been declared ./db_cxx.h:491: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:491: error: 'ostream' declared as a 'virtual' field ./db_cxx.h:491: error: expected ';' before '*' token ./db_cxx.h:492: error: 'ostream' has not been declared ./db_cxx.h:493: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:493: error: 'ostream' declared as a 'virtual' field ./db_cxx.h:493: error: expected ';' before '*' token ./db_cxx.h:494: error: 'ostream' has not been declared ./db_cxx.h:653: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:653: error: expected ';' before '*' token ./db_cxx.h:654: error: ISO C++ forbids declaration of 'ostream' with no type ./db_cxx.h:654: error: expected ';' before '*' token ./db_cxx.h:1032: error: expected class-name before '{' token ../dist/../cxx/cxx_db.cpp: In function 'int _verify_callback_c(void*, const void*)': ../dist/../cxx/cxx_db.cpp:503: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:503: error: 'out' was not declared in this scope ../dist/../cxx/cxx_db.cpp:506: error: expected primary-expression before ')' token ../dist/../cxx/cxx_db.cpp:506: error: expected `;' before 'handle' ../dist/../cxx/cxx_db.cpp: At global scope: ../dist/../cxx/cxx_db.cpp:516: error: 'ostream' has not been declared ../dist/../cxx/cxx_db.cpp:637: error: expected constructor, destructor, or type conversion before '*' token ../dist/../cxx/cxx_db.cpp:642: error: variable or field 'set_error_stream' declared void ../dist/../cxx/cxx_db.cpp:642: error: 'int Db::set_error_stream' is not a static member of 'class Db' ../dist/../cxx/cxx_db.cpp:642: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:642: error: 'error_stream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:643: error: expected ',' or ';' before '{' token ../dist/../cxx/cxx_db.cpp:647: error: expected constructor, destructor, or type conversion before '*' token ../dist/../cxx/cxx_db.cpp:652: error: variable or field 'set_message_stream' declared void ../dist/../cxx/cxx_db.cpp:652: error: 'int Db::set_message_stream' is not a static member of 'class Db' ../dist/../cxx/cxx_db.cpp:652: error: 'ostream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:652: error: 'message_stream' was not declared in this scope ../dist/../cxx/cxx_db.cpp:653: error: expected ',' or ';' before '{' token make: *** [cxx_db.lo] Error 1 Warning: the following items did not execute (for db44): com.apple.activate com.apple.build com.apple.destroot com.apple.install anyone? thanks dorian -- I do things for love or money
On Nov 15, 2006, at 23:59, Dorian Mcfarland wrote:
actually, after a full reinstall of darwinports(completely removing /opt/local) I still have the same problem with db44
Well thank you for trying that at least; it helps us rule out any other part of MacPorts as a culprit!
$ gcc_select Current default compiler: gcc version 4.0.1 (Apple Computer, Inc. build 5367)
this is still the case.
I am now at a total loss! anyone have any ideas why I might be getting the following:
<snip> creating libdb-4.4.la (cd .libs && rm -f libdb-4.4.la && ln -s ../libdb-4.4.la libdb-4.4.la) rm -f libdb.a ln -s .libs/libdb-4.4.a libdb.a /bin/sh ./libtool --mode=compile /usr/bin/g++-4.0 -c -I. -I../ dist/.. -O ../dist/../cxx/cxx_db.cpp /usr/bin/g++-4.0 -c -I. -I../dist/.. -O ../dist/../cxx/cxx_db.cpp - fno-common -DPIC -o .libs/cxx_db.o In file included from ../dist/../cxx/cxx_db.cpp:15: ./db_cxx.h:60:22: error: iostream.h: No such file or directory ./db_cxx.h:61:23: error: exception.h: No such file or directory
[snip, since the rest will be because of these two lines] I hadn't tried to install db44 before (though I had successfully installed db43). But db44 installed for me just now with no problems, on my G4 running 10.4.8, which you say is what you have also. Lines 60 and 61 of db_cxx.h do indeed ask for iostream.h and exception.h to be included. On your system, db44 apparently can't find these files. Can you find them? See if "locate iostream.h" and "locate exception.h" produce any output. I've got 'em in /usr/include/ c++/4.0.0/backward/iostream.h and /usr/include/mach/exception.h. I also checked what OS packages might have installed these files: $ grep -R iostream.h /Library/Receipts/* 2>/dev/null Binary file /Library/Receipts/BSDSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/DevSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.2.8.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.3.9.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.4.Universal.pkg/Contents/ Archive.bom matches Binary file /Library/Receipts/gcc2.95.2.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/gcc3.3.pkg/Contents/Archive.bom matches $ grep -R exception.h /Library/Receipts/* 2>/dev/null Binary file /Library/Receipts/DevSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.2.8.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.3.9.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.4.Universal.pkg/Contents/ Archive.bom matches Do you also have these packages installed? I'd say you should at least have BSDSDK and DevSDK. MacOSX10.4.Universal probably isn't a bad idea to have either, as any universal software you build will require this, and there has been some talk of having MacPorts build universal binaries. Interesting perhaps that iostream.h seems to be part of gcc2.95.2 and gcc3.3 but apparently not gcc4.0. Has anyone with an Intel Mac successfully compiled db44? I ask because AFAIK they don't have gcc2 or gcc3 installed; if someone had compiled db44 on an Intel Mac, we should be able to rule out the gcc2 and gcc3 packages.
On Nov 15, 2006, at 23:59, Dorian Mcfarland wrote:
actually, after a full reinstall of darwinports(completely removing /opt/local) I still have the same problem with db44
Well thank you for trying that at least; it helps us rule out any other part of MacPorts as a culprit!
hmm, actually, if I was being thorough and thoughtful I would have tried to install db44 first, but I already have ruby and all of it's dependencies installed. Sorry bout that!
Lines 60 and 61 of db_cxx.h do indeed ask for iostream.h and exception.h to be included. On your system, db44 apparently can't find these files. Can you find them? See if "locate iostream.h" and "locate exception.h" produce any output. I've got 'em in /usr/include/c++/4.0.0/backward/iostream.h and /usr/include/mach/exception.h.
I have: /usr/include/gcc/darwin/3.3/c++/backward/iostream.h /usr/include/gcc/darwin/4.0/c++/backward/iostream.h /usr/include/php/Zend/zend_istdiostream.h /usr/local/php5/include/php/Zend/zend_istdiostream.h and: /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach/exception.h /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach/i386/exception.h /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach/machine/exception.h /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/mach/ppc/exception.h /usr/include/mach/exception.h /usr/include/mach/i386/exception.h /usr/include/mach/machine/exception.h /usr/include/mach/ppc/exception.h /usr/include/objc/objc-exception.h
I also checked what OS packages might have installed these files:
hmm... I got: 10:29:08:DarwinPorts-1.3.2 #> grep -R iostream.h /Library/Receipts/* 2>/dev/null Binary file /Library/Receipts/BSDSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/gcc3.3.pkg/Contents/Archive.bom matches 10:37:14:DarwinPorts-1.3.2 #> grep -R exception.h /Library/Receipts/* 2>/dev/null 10:41:27:DarwinPorts-1.3.2 #>
Do you also have these packages installed? I'd say you should at least have BSDSDK and DevSDK. MacOSX10.4.Universal probably isn't a bad idea to have either, as any universal software you build will require this, and there has been some talk of having MacPorts build universal binaries.
so I installed the rest of the devtools until I got: 10:41:27:DarwinPorts-1.3.2 #> grep -R iostream.h /Library/Receipts/* 2>/dev/null Binary file /Library/Receipts/BSDSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/DevSDK.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.2.8.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.3.9.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/MacOSX10.4.Universal.pkg/Contents/Archive.bom matches Binary file /Library/Receipts/gcc3.3.pkg/Contents/Archive.bom matches did a port clean on db44, then tried to install again and everything worked perfectly (we'll if any other strangeness happens). thanks very much for all your help. Dorian
Interesting perhaps that iostream.h seems to be part of gcc2.95.2 and gcc3.3 but apparently not gcc4.0. Has anyone with an Intel Mac successfully compiled db44? I ask because AFAIK they don't have gcc2 or gcc3 installed; if someone had compiled db44 on an Intel Mac, we should be able to rule out the gcc2 and gcc3 packages. -- I do things for love or money
participants (2)
-
Dorian Mcfarland
-
Ryan Schmidt