first experiences with rev-upgrade (was: Re: Error determining file type of `/opt/local/bin/prove': lstat(/opt/local/bin/prove):no such file or directory)

Ryan Schmidt ryandesign at macports.org
Sun Apr 8 01:28:47 PDT 2012


On Apr 8, 2012, at 02:10, Joshua Root wrote:

> It's just rev-upgrade failing to run. The actual error causing it to
> fail is not "Error determining file type" etc. BTW, it's:
> 
> invalid command name ""
>    while executing
> "[registry::entry owner [$f path]] name"
> 
> i.e. [registry::entry owner [$f path]] returned "" because [$f path]
> doesn't exist.
> 
>> Also obviously I would want this issue fixed before the release of MacPorts 2.1.0 so others do not run into it.
> 
> Should be fixed.

Thanks, it is. I now have:


> $ sudo port -s install ale
> --->  Computing dependencies for ale
> --->  Fetching distfiles for ale
> --->  Attempting to fetch ale-0.8.7.tar.gz from http://distfiles.macports.org/ale
> --->  Verifying checksum(s) for ale
> --->  Extracting ale
> --->  Configuring ale
> --->  Building ale
> --->  Staging ale into destroot
> --->  Installing ale @0.8.7_0+universal
> --->  Activating ale @0.8.7_0+universal
> --->  Cleaning ale
> --->  Updating database of binaries: 3.8%
> Warning: Error determining file type of `/opt/local/bin/prove.mp_1328294983': lstat(/opt/local/bin/prove.mp_1328294983):no such file or directory
> Warning: A file belonging to the `perl5' port is missing or unreadable. Consider reinstalling it.

Much better. The message is accurate because I do periodically run my housekeeping script which deletes *.mp_* files.

https://trac.macports.org/browser/users/ryandesign/scripts/housekeeping

I will take its advice and rebuild perl5.


> --->  Updating database of binaries: 53.5%
> Warning: Error determining file type of `/Volumes/work/macports/lib/ocaml/site-lib/stublibs/.turd_ocaml-findlib': lstat(/Volumes/work/macports/lib/ocaml/site-lib/stublibs/.turd_ocaml-findlib):no such file or directory
> Warning: A file belonging to the `ocaml-findlib' port is missing or unreadable. Consider reinstalling it.

This is due to using destroot.keepdirs, but I'm not sure where the problem is. Clearly the buildbot's destroot path should not be appearing on my system, but there it is:

$ port contents ocaml-findlib | head -n 3
Port ocaml-findlib contains:
  /Volumes/work/macports/lib/ocaml/site-lib/stublibs/.turd_ocaml-findlib
  /opt/local/bin/ocamlfind


> --->  Updating database of binaries: 100.0%

Great, it completed successfully.


Then all this happens:

> --->  Scanning binaries for linking errors: 1.6%
> Warning: Could not open /opt/local/lib/libnet.1.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 5.8%
> Warning: Could not open /opt/local/lib/libwx_macu-2.8.0.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 6.4%
> Warning: Could not open /opt/local/lib/libBulletSoftBody.2.77.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libLinearMath.2.77.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libBulletCollision.2.77.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libBulletDynamics.2.77.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 15.0%
> Warning: Could not open /opt/local/lib/libMagickCore.4.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libMagickWand.4.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 21.1%
> Warning: Could not open /opt/local/lib/libgss.3.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 21.4%
> Warning: Could not open /opt/local/lib/libwx_base_carbonu-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_base_carbonu_net-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_base_carbonu_xml-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_macu_core-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_macu_adv-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_macu_xrc-2.8.0.dylib: Error opening or reading file
> 
> Warning: Could not open /opt/local/lib/libwx_macu_aui-2.8.0.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 24.5%
> Warning: Could not open /opt/local/lib/libfcgi.2.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 31.4%
> Warning: Could not open /opt/local/lib/libyajl.2.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 33.3%
> Warning: Could not open /opt/local/lib/libode.1.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 47.4%
> Warning: Could not open /opt/local/lib/libqhull.6.3.0.1483.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 58.6%
> Warning: Could not open /opt/local/lib/libodbc.1.dylib: Error opening or reading file
> --->  Scanning binaries for linking errors: 100.0%
> --->  Found 83 broken file(s), matching files to ports
> --->  Found 15 broken port(s), determining rebuild order
> --->  Rebuilding in order
>      FileZilla @3.5.1 
>      virtualbox-oracle-vm-virtualbox-extension-pack @4.1.2 
>      poedit @1.4.6.1 
>      PlasmaClient @0.0.4a-438 +chatlog+developer+universal
>      alienarena @7.53-20111227 +universal
>      libdmtx @0.7.2 +universal
>      libinfinity @0.5.1 -universal
>      rasqal @0.9.28 +universal
>      x264 @20111210 +universal
>      libgsasl @1.6.1 +universal
>      pure-fastcgi @0.5 
>      pure-odbc @0.9 
>      octave @3.2.4 +accelerate+gcc44-atlas
>      texlive-bin @2011 +motif+universal+x11
>      dsniff-devel @2.4b1 +universal
> --->  Computing dependencies for FileZilla
> --->  Dependencies to be installed: wxWidgets
> --->  Activating wxWidgets @2.8.12_0
> --->  Cleaning wxWidgets
> --->  Cleaning FileZilla
> --->  Computing dependencies for virtualbox-oracle-vm-virtualbox-extension-pack
> --->  Deactivating virtualbox-oracle-vm-virtualbox-extension-pack @4.1.2_0
> --->  Activating virtualbox-oracle-vm-virtualbox-extension-pack @4.1.8_0
> --->  Cleaning virtualbox-oracle-vm-virtualbox-extension-pack
> --->  Computing dependencies for poedit
> --->  Cleaning poedit
> --->  Computing dependencies for PlasmaClient
> --->  Fetching distfiles for PlasmaClient
> --->  Verifying checksum(s) for PlasmaClient
> --->  Extracting PlasmaClient
> --->  Applying patches to PlasmaClient
> --->  Configuring PlasmaClient
> --->  Building PlasmaClient
> Error: org.macports.build for port PlasmaClient returned: command execution failed
> Please see the log file for port PlasmaClient for details:
>     /opt/local/var/macports/logs/_Users_rschmidt_macports_dports_games_PlasmaClient/PlasmaClient/main.log
> Error: Unable to upgrade port: 1
> Error rebuilding PlasmaClient
>     while executing
> "error "Error rebuilding [$port name]""
>     (procedure "revupgrade_scanandrebuild" line 359)
>     invoked from within
> "revupgrade_scanandrebuild broken_port_counts $opts"
>     (procedure "macports::revupgrade" line 5)
>     invoked from within
> "macports::revupgrade $opts"
>     (procedure "action_revupgrade" line 2)
>     invoked from within
> "action_revupgrade $action $portlist $opts"
>     (procedure "action_target" line 94)
>     invoked from within
> "$action_proc $action $portlist [array get global_options]"
>     (procedure "process_cmd" line 95)
>     invoked from within
> "process_cmd $remaining_args"
>     invoked from within
> "if { [llength $remaining_args] > 0 } {
> 
>     # If there are remaining arguments, process those as a command
>     set exit_status [process_cmd $remaining..."
>     (file "/opt/local/bin/port" line 4772)

Ignoring that PlasmaClient failed to build (PlasmaClient is dead), this seems like a lot of stuff to have happen when all I requested was for one port to be installed.

It's unclear what I'm meant to do with the warnings about files not existing.

Is this how the rev-upgrade feature is intended to work? I think this will probably cause annoyance and confusion among upgrading users.

We don't automatically upgrade a user's outdated ports; we make the user run "port outdated" and upgrade ports themselves on their own time, possibly by using "sudo port upgrade outdated". Why does rev-upgrade run automatically instead of making the user run it manually when they're ready?




More information about the macports-dev mailing list