port upgrade strangeness

Ryan Schmidt ryandesign at macports.org
Mon Mar 5 13:56:25 PST 2007


Patrick,

Please see my answers inline.

On Mar 5, 2007, at 13:26, Patrick Burleson wrote:

> I was doing some playing around with the port command last night and
> ran into the following:
>
> silentbob:~ pburleson$ port list installed
> apache2                        @2.2.4          www/apache2
> apr                            @1.2.8          devel/apr
> apr-util                       @1.2.8          devel/apr-util
> autoconf                       @2.61           devel/autoconf
> bison                          @2.3            devel/bison
> db44                           @4.4.20         databases/db44
> expat                          @2.0.0          textproc/expat
> fcgi                           @2.4.0          www/fcgi
> gettext                        @0.16.1         devel/gettext
> libiconv                       @1.11           textproc/libiconv
> lighttpd                       @1.4.13         www/lighttpd
> m4                             @1.4.8b         devel/m4
> mysql5                         @5.0.33         databases/mysql5
> ncurses                        @5.5            devel/ncurses
> ncursesw                       @5.5            devel/ncursesw
> neon                           @0.26.3         www/neon
> openssl                        @0.9.8e         devel/openssl
> pcre                           @7.0            devel/pcre
> perl5.8                        @5.8.8          lang/perl5.8
> postgresql81                   @8.1.8          databases/postgresql81
> postgresql81-server            @8.1.8          databases/ 
> postgresql81-server
> rb-fcgi                        @0.8.6          ruby/rb-fcgi
> rb-mysql                       @2.7.1          ruby/rb-mysql
> rb-postgres                    @0.7.1          ruby/rb-postgres
> rb-rubygems                    @0.9.1          ruby/rb-rubygems
> readline                       @5.1.004        devel/readline
> ruby                           @1.8.5-p12      lang/ruby
> subversion                     @1.4.3          devel/subversion
> zlib                           @1.2.3          archivers/zlib
> silentbob:~ pburleson$ sudo port upgrade lighttpd
> silentbob:~ pburleson$ sudo port upgrade fcgi

Since these ports were not outdated, you did not need to ask MacPorts  
to upgrade them. To discover which ports are outdated, you can run  
"port outdated".

> silentbob:~ pburleson$ sudo port upgrade subversion
> --->  Fetching openssl
> --->  Attempting to fetch openssl-0.9.8e.tar.gz from
> http://www.openssl.org/source/
> --->  Verifying checksum(s) for openssl
> --->  Extracting openssl
> --->  Applying patches to openssl
> --->  Configuring openssl
> --->  Building openssl with target all
> --->  Staging openssl into destroot
> --->  Deactivating openssl 0.9.8d_0+darwin_8
> --->  Installing openssl 0.9.8e_0+darwin_8
> --->  Activating openssl 0.9.8e_0+darwin_8
> --->  Cleaning openssl

You asked for Subversion to be upgraded. Subversion was not outdated,  
so Subversion was not upgraded. But the upgrade command is recursive  
(unless you use the -n switch). The subversion port depends on neon  
(see "port deps subversion") which depends on openssl (see "port deps  
neon"), and since the last time you synced, openssl was upgraded from  
0.9.8d to 0.9.8e which is why it is being upgraded now.

> --->  Fetching sqlite3
> --->  Attempting to fetch sqlite-3.3.13.tar.gz from http:// 
> www.sqlite.org/
> --->  Verifying checksum(s) for sqlite3
> --->  Extracting sqlite3
> --->  Applying patches to sqlite3
> --->  Configuring sqlite3
> --->  Building sqlite3 with target all
> --->  Staging sqlite3 into destroot
> --->  Installing sqlite3 3.3.13_0+darwin_8
> --->  Activating sqlite3 3.3.13_0+darwin_8
> --->  Cleaning sqlite3
> --->  Fetching apr-util
> --->  Verifying checksum(s) for apr-util
> --->  Extracting apr-util
> --->  Configuring apr-util
> --->  Building apr-util with target all
> --->  Staging apr-util into destroot
> --->  Deactivating apr-util 1.2.8_1
> --->  Installing apr-util 1.2.8_2
> --->  Activating apr-util 1.2.8_2
> --->  Cleaning apr-util

Subversion also depends on apr-util. The change between apr-util  
1.2.8_1 and 1.2.8_2 was to require the MacPorts version of sqlite3  
[1], which is why that was installed for you now.

[1] See: http://trac.macports.org/projects/macports/changeset/22339

> silentbob:~ pburleson$ port list installed
> apache2                        @2.2.4          www/apache2
> apr                            @1.2.8          devel/apr
> apr-util                       @1.2.8          devel/apr-util
> apr-util                       @1.2.8          devel/apr-util
> autoconf                       @2.61           devel/autoconf
> bison                          @2.3            devel/bison
> db44                           @4.4.20         databases/db44
> expat                          @2.0.0          textproc/expat
> fcgi                           @2.4.0          www/fcgi
> gettext                        @0.16.1         devel/gettext
> libiconv                       @1.11           textproc/libiconv
> lighttpd                       @1.4.13         www/lighttpd
> m4                             @1.4.8b         devel/m4
> mysql5                         @5.0.33         databases/mysql5
> ncurses                        @5.5            devel/ncurses
> ncursesw                       @5.5            devel/ncursesw
> neon                           @0.26.3         www/neon
> openssl                        @0.9.8e         devel/openssl
> openssl                        @0.9.8e         devel/openssl
> pcre                           @7.0            devel/pcre
> perl5.8                        @5.8.8          lang/perl5.8
> postgresql81                   @8.1.8          databases/postgresql81
> postgresql81-server            @8.1.8          databases/ 
> postgresql81-server
> rb-fcgi                        @0.8.6          ruby/rb-fcgi
> rb-mysql                       @2.7.1          ruby/rb-mysql
> rb-postgres                    @0.7.1          ruby/rb-postgres
> rb-rubygems                    @0.9.1          ruby/rb-rubygems
> readline                       @5.1.004        devel/readline
> ruby                           @1.8.5-p12      lang/ruby
> sqlite3                        @3.3.13         databases/sqlite3
> subversion                     @1.4.3          devel/subversion
> zlib                           @1.2.3          archivers/zlib
> silentbob:~ pburleson$
>
>
> The oddity there is when I issued the command "sudo port upgrade
> subversion". Things that I already have installed are downloaded and
> installed again, and there's the weird inclusion of sqlite3. Then in
> the final list of installed ports, openssl and apr-util are
> duplicated. Is my MacPorts install borked? I have everything setup the
> default way, in /opt/local .

Nothing is borked or weird. The only problem is that you are using  
"port list installed", and that doesn't do what you think it does.  
Short answer: use "port installed" instead. This was just discussed  
on the list a week or two ago but I can't seem to find the thread for  
you in the archives so I'll just tell you the gist of what was  
discussed.

If you try "port installed" you will see what ports are installed,  
and their versions, and which are active. You will see that you have  
both openssl 0.9.8d_0 and 0.9.8e_0 installed. Only 0.9.8e_0 is  
active, but 0.9.8d_0 is still there, inactive, and could be activated  
by you if you wanted (after you deactivated 0.9.8e_0). If you no  
longer need 0.9.8d_0, you can "sudo port uninstall openssl  
@0.9.8d_0". The same goes for apr-util: you have 1.2.8_1 and 1.2.8_2  
installed (and only the latter is active).

The reason openssl 0.9.8e and apr-util 1.2.8 are showing up twice in  
"port list installed" is, as I said, because that command doesn't do  
what you think it does. The "port list" command does the following:  
for each port given as an argument, it shows the most recent version  
available. The "installed" pseudo-portname provides "port list" with  
the names of each installed port. You have two apr-util ports and two  
openssl ports installed, therefore "port list" shows you the latest  
versions of apr-util and openssl twice.

As you can see, this is not the information you wanted to receive.  
And to see the information you wanted, you just have to run "port  
installed" instead.


If you want MacPorts to automatically uninstall older versions of  
ports as it upgrades them, use the -u flag when upgrading. For example:

sudo port -u upgrade apr-util





More information about the macports-users mailing list