Opened 12 years ago

Last modified 12 years ago

#37153 new defect

Installing SMBup overwrites MacPorts files

Reported by: cdenman@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc:
Port:

Description (last modified by ryandesign (Ryan Carsten Schmidt))

craigdenman:~ craigdenman$ sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.2 installed,
MacPorts base version 2.1.2 downloaded.
--->  Updating the ports tree
--->  MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated
craigdenman:~ craigdenman$ port outdated
The following installed ports are outdated:
gnuplot                        4.6.0_0 < 4.6.1_0         
gzip                           1.4_0 < 1.5_0             
hdf5-18                        1.8.9_0 < 1.8.9_2         
libmikmod                      3.2.0-beta2_2 < 3.2.0_0  (epoch 0 < 1)  
maxima                         5.26.0_0 < 5.28.0_1       
octave                         3.2.4_8 < 3.2.4_10        
pango                          1.30.1_1 < 1.30.1_3       
pcre                           8.30_1 < 8.31_0           
qrupdate                       1.1.2_1 < 1.1.2_2         
sbcl                           1.0.58_0 < 1.1.1_0        
craigdenman:~ craigdenman$ sudo port upgrade outdated
--->  Computing dependencies for pango
--->  Building pango
Error: org.macports.build for port pango returned: command execution failed
Please see the log file for port pango for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_pango/pango/main.log
Error: Unable to upgrade port: 1
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
craigdenman:~ craigdenman$ 

Attachments (2)

main.log (18.4 KB) - added by cdenman@… 12 years ago.
main_2.log (218.1 KB) - added by cdenman@… 12 years ago.

Download all attachments as: .zip

Change History (15)

Changed 12 years ago by cdenman@…

Attachment: main.log added

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

Cc: ryandesign@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…

This wasn't a clean build attempt. Please "sudo port clean pango", then try again, and attach the new main.log if it fails again.

comment:2 in reply to:  1 Changed 12 years ago by cdenman@…

Replying to ryandesign@…:

This wasn't a clean build attempt. Please "sudo port clean pango", then try again, and attach the new main.log if it fails again.

I have already, but will redo and post new log. -- craig

Changed 12 years ago by cdenman@…

Attachment: main_2.log added

comment:3 Changed 12 years ago by cdenman@…

craigdenman:~ craigdenman$ sudo port clean pango
--->  Cleaning pango
craigdenman:~ craigdenman$ sudo port upgrade outdated
--->  Computing dependencies for pango
--->  Fetching archive for pango
--->  Attempting to fetch pango-1.30.1_3+x11.darwin_11.x86_64.tbz2 from http://packages.macports.org/pango
--->  Attempting to fetch pango-1.30.1_3+x11.darwin_11.x86_64.tbz2 from http://lil.fr.packages.macports.org/pango
--->  Attempting to fetch pango-1.30.1_3+x11.darwin_11.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/pango
--->  Fetching distfiles for pango
--->  Verifying checksum(s) for pango
--->  Extracting pango
--->  Applying patches to pango
--->  Configuring pango
--->  Building pango
Error: org.macports.build for port pango returned: command execution failed
Please see the log file for port pango for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_x11_pango/pango/main.log
Error: Unable to upgrade port: 1
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Last edited 12 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Summary: Pango 1.30.1_3 fails to buildpango: dyld: Library not loaded: /opt/local/lib/libexpat.1.dylib

Thanks. That new log shows us what the real problem is:

:info:build dyld: Library not loaded: /opt/local/lib/libexpat.1.dylib
:info:build   Referenced from: /opt/local/lib/libfontconfig.1.dylib
:info:build   Reason: Incompatible library version: libfontconfig.1.dylib requires version 8.0.0 or later, but libexpat.1.dylib provides version 7.0.0

So the question is, what's the matter with the expat library? I suspect it's installed for the wrong architecture somehow. What's the output of these commands:

otool -L /opt/local/lib/libexpat.1.dylib
lipo -info /opt/local/lib/libexpat.1.dylib
port -v installed expat

comment:5 Changed 12 years ago by cdenman@…

Thanks for your quick replies. Here is the info:

OSX 10.7.5

craigdenman$ `which xcodebuild` -version
Xcode 4.5.2
Build version 4G2008a

craigdenman:~ craigdenman$ otool -L /opt/local/lib/libexpat.1.dylib
/opt/local/lib/libexpat.1.dylib:
	/opt/local/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
craigdenman:~ craigdenman$ lipo -info /opt/local/lib/libexpat.1.dylib
Non-fat file: /opt/local/lib/libexpat.1.dylib is architecture: x86_64
craigdenman:~ craigdenman$ port -v installed expat
The following ports are currently installed:
  expat @2.0.1_1 platform='darwin 11' archs='x86_64'
  expat @2.0.1_1+universal platform='darwin 11' archs='i386 x86_64'
  expat @2.1.0_0+universal (active) platform='darwin 11' archs='i386 x86_64'
craigdenman:~ craigdenman$ 
Last edited 12 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Ok, that shows us two things that are wrong:

It confirms that your libexpat really is version 7.0.0, although expat 2.1.0 is supposed to contain libexpat version 8.0.0 (and does on my system).

We also see that although MacPorts claims to have installed an i386/x86_64 universal version of expat, your libexpat is actually x86_64 only.

Both of these observations point to the likelyhood that you have installed a third-party software package that has overwritten some of your MacPorts libraries. We've encountered some third-party software thusly mispackaged before; see for example wiki:ProblemHotlist#xmlwf. You'll need to reinstall expat, but there may be other affected ports as well. If you can remember installing any such third-party software, let us know what it was; that might help us figure out what all has been overwritten and now needs to be rebuilt.

If not, you might want to look at the modification date of your libexpat.1.dylib:

ls -lT /opt/local/lib/libexpat.1.dylib

And then look for any other files in MacPorts that were installed around the same time, within a minute or five. You can then use "port provides" to figure out what port provided it, and then rebuild it, for example to rebuild expat:

sudo port -n upgrade --force expat

comment:7 Changed 12 years ago by cdenman@…

Here is some info. I noticed these folders created on that date.

/opt/local/lib/sasl2
/opt/local/lib/terminfo
/opt/local/lib/engines
/opt/local/lib/samba3
/opt/local/lib/gettext

And these dylib's:

/opt/local/lib/libasprintf.dylib
/opt/local/lib/libexpat.0.dylib
/opt/local/lib/libexpat.1.dylib
/opt/local/lib/libexpat.dylib
/opt/local/lib/libgettextlib.dylib
/opt/local/lib/libgettextpo.dylib
/opt/local/lib/libgettextsrc.dylib
/opt/local/lib/libintl.dylib
/opt/local/lib/libsasl2.2.dylib
/opt/local/lib/libsasl2.dylib
/opt/local/lib/libcharset.dylib
/opt/local/lib/libcurses.a
/opt/local/lib/libcurses.dylib
/opt/local/lib/libform.dylib
/opt/local/lib/libformw.5.dylib
/opt/local/lib/libformw.a
/opt/local/lib/libformw.dylib
/opt/local/lib/libiconv.dylib
/opt/local/lib/libmenu.dylib
/opt/local/lib/libmenuw.5.dylib
/opt/local/lib/libmenuw.a
/opt/local/lib/libmenuw.dylib
/opt/local/lib/libncurses.dylib
/opt/local/lib/libncurses++w.a
/opt/local/lib/libncursesw.5.dylib
/opt/local/lib/libncursesw.a
/opt/local/lib/libncursesw.dylib
/opt/local/lib/libpanel.dylib
/opt/local/lib/libpanelw.5.dylib
/opt/local/lib/libpanelw.a
/opt/local/lib/libpanelw.dylib
/opt/local/lib/libtermcap.dylib
/opt/local/lib/libcrypto.dylib
/opt/local/lib/libssl.dylib
/opt/local/lib/libpopt.dylib
/opt/local/lib/libz.1.dylib
/opt/local/lib/libz.dylib

and this folder:

/opt/local/include/openssl

and this:

/opt/local/include/ncurses.h

and more:

/opt/local/bin/captoinfo
/opt/local/bin/infotocap
/opt/local/bin/ncursesw5-config
/opt/local/bin/reset

and yet more:

/opt/local/share/gettext
/opt/local/share/tabset

and this:

/opt/local/etc/samba3

I am now thinking that it was (perhaps) an SMB server application that I found from:

http://eduo.info/apps/smbup

Scroll down on the SMBup page and you can see all of the "applications" checked off that are the problem (helps to corroborate the culprit). The SMB server works well, all other issues disregarded.

I guess I may need to "--force" upgrades for each application installed or modified by SMBup.

I am guessing that the author might fix if he knew the issues.

Any other suggestions? I will proceed to see about fixing -- one "application" at a time.

Last edited 12 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Yes, it has been reported to us once before that installing SMBup will cause this problem. Please do report the problem to the developers of SMBup so that they can fix how they distribute their application.

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

The ports providing all those files are:

  • cyrus-sasl2
  • expat
  • gettext
  • libiconv
  • ncurses
  • openssl
  • popt
  • zlib

They probably need to be rebuilt in the right order. For example, looking at "port deps openssl", it depends on zlib, so zlib should be rebuilt before openssl.

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

A good order might be:

  1. expat (has no dependencies)
  2. libiconv (has only build dependencies)
  3. ncurses (has no dependencies)
  4. zlib (has no dependencies)
  5. openssl (depends on zlib)
  6. gettext (depends on expat, libiconv and ncurses)
  7. popt (depends on gettext and libiconv)

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

Port: pango removed
Summary: pango: dyld: Library not loaded: /opt/local/lib/libexpat.1.dylibInstalling SMBup overwrites MacPorts files

These commands should rebuild them all:

sudo port clean              expat libiconv ncurses zlib openssl gettext popt
sudo port -n upgrade --force expat libiconv ncurses zlib openssl gettext popt

comment:12 in reply to:  11 Changed 12 years ago by cdenman@…

Thank you for your guidance on how to rebuild.

I first completed:

craigdenman:~ craigdenman$ sudo port clean pango Password: ---> Cleaning pango

To clean up from any earlier attempt to build Pango. Then, I completed your suggested commands below.

Replying to ryandesign@…:

These commands should rebuild them all:

sudo port clean              expat libiconv ncurses zlib openssl gettext popt
sudo port -n upgrade --force expat libiconv ncurses zlib openssl gettext popt

The port cleaning and the port forced upgrade completed without error.

I then followed up by performing the selfupdate and upgrade to the outdated ports:

craigdenman:~ craigdenman$ sudo port selfupdate Password: ---> Updating MacPorts base sources using rsync MacPorts base version 2.1.2 installed, MacPorts base version 2.1.2 downloaded. ---> Updating the ports tree ---> MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run

port upgrade outdated

craigdenman:~ craigdenman$ port outdated The following installed ports are outdated: gnuplot 4.6.0_0 < 4.6.1_0 gzip 1.4_0 < 1.5_0 hdf5-18 1.8.9_0 < 1.8.9_2 libmikmod 3.2.0-beta2_2 < 3.2.0_0 (epoch 0 < 1) maxima 5.26.0_0 < 5.28.0_1 octave 3.2.4_8 < 3.2.4_10 pango 1.30.1_1 < 1.30.1_3 pcre 8.30_1 < 8.31_0 qrupdate 1.1.2_1 < 1.1.2_2 sbcl 1.0.58_0 < 1.1.1_0 craigdenman:~ craigdenman$ sudo port upgrade outdated

The port upgrade to the outdated ports completed without error.

My MacPorts has been restored.

Thank you.

Version 0, edited 12 years ago by cdenman@… (next)

comment:13 Changed 12 years ago by eduo@…

Hello.

I feel I should add a note, should this popup in the future.

Indeed, one of the ideas behind the way SMBUp installs stuff is to mimic Macports' paths so it's possible to force upgrades on it and keep SMBUp working. It installs the same dependencies as samba for macports at the time the installer was created (and warns the users it'll do so, since it actually works if Macports Samba is installed already and mentions MacPorts already exists if it's the case).

It's also because all tutorials on the internet pointed to macports so by doing this paths for more advanced set-ups and tutorials still worked.

So, the idea was to use the same paths as used by all tutorials out there for Samba installations on Lion and do so in a way that allowed easy recovery or updates (with --force) with macports.

Newer versions (not yet released) actually change the default path and allow the user to define their own (being able to define MacPorts' but not using it any more by default), since although this was never a problem (until this thread was brought to my attention, that is) there was always the possibility of this confusion.

I have had for a year a mail ready for any support question that mentions MacPorts problems indicating, precisely, how to force clean and install the various libraries.

I apologize for not seeing this thread on time to comment on it. I try to keep up but somehow I missed it and didn't know about it until today (I had a mail from cdenman I sadly couldn't attend to until today).

Note: See TracTickets for help on using tickets.