Opened 10 years ago

Closed 9 years ago

Last modified 9 years ago

#44815 closed defect (fixed)

"port uninstall --follow-dependencies" no longer follows all dependencies

Reported by: larryv (Lawrence Velázquez) Owned by: shasha@…
Priority: Normal Milestone:
Component: base Version: 2.3.99
Keywords: gsoc14-interactive Cc: raimue (Rainer Müller), jmroot (Joshua Root)
Port:

Description

With base at r124909:

% port installed leaves
None of the specified ports are installed.
% sudo port install py34-flask
--->  Computing dependencies for py34-flask
The following dependencies will be installed: 
 py34-itsdangerous
 py34-jinja2
 py34-markupsafe
 py34-setuptools
 py34-werkzeug
Continue? [Y/n]: 
--->  Fetching distfiles for py34-setuptools
---------->8----------
--->  Activating py34-flask @0.10.1_1
--->  Cleaning py34-flask
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
% port installed leaves
None of the specified ports are installed.
% sudo port uninstall --follow-dependencies py34-flask
--->  Deactivating py34-flask @0.10.1_1
--->  Cleaning py34-flask
--->  Uninstalling py34-flask @0.10.1_1
The following dependencies will be uninstalled:
 py34-itsdangerous @0.24_0
 py34-jinja2 @2.7.3_0
 py34-werkzeug @0.9.6_0
 py34-markupsafe @0.23_0
Continuing in 08 s. Press Ctrl-C to exit: 
--->  Deactivating py34-itsdangerous @0.24_0
--->  Cleaning py34-itsdangerous
--->  Uninstalling py34-itsdangerous @0.24_0
--->  Cleaning py34-itsdangerous
--->  Deactivating py34-jinja2 @2.7.3_0
--->  Cleaning py34-jinja2
--->  Uninstalling py34-jinja2 @2.7.3_0
--->  Cleaning py34-jinja2
--->  Deactivating py34-werkzeug @0.9.6_0
--->  Cleaning py34-werkzeug
--->  Uninstalling py34-werkzeug @0.9.6_0
--->  Cleaning py34-werkzeug
--->  Deactivating py34-markupsafe @0.23_0
--->  Cleaning py34-markupsafe
--->  Uninstalling py34-markupsafe @0.23_0
--->  Cleaning py34-markupsafe
--->  Cleaning py34-flask
% port installed leaves
The following ports are currently installed:
  py34-setuptools @5.7_0 (active)
%

Attachments (1)

uninstall-debugging.patch (979 bytes) - added by larryv (Lawrence Velázquez) 9 years ago.
bring patch into Trac to make sure we don't lose it somehow

Download all attachments as: .zip

Change History (10)

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

Version: 2.3.12.3.99

comment:2 Changed 9 years ago by jmroot (Joshua Root)

Could you try your test case after r131613?

comment:3 in reply to:  2 Changed 9 years ago by larryv (Lawrence Velázquez)

Looks good:

% port installed leaves
None of the specified ports are installed.
% sudo port install py33-flask
--->  Computing dependencies for py33-flask
The following dependencies will be installed: 
 py33-itsdangerous
 py33-jinja2
 py33-markupsafe
 py33-setuptools
 py33-werkzeug
Continue? [Y/n]: Y
--->  Fetching distfiles for py33-setuptools
---------->8----------
--->  Activating py33-flask @0.10.1_1
--->  Cleaning py33-flask
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
% port installed leaves
None of the specified ports are installed.
% sudo port uninstall --follow-dependencies py33-flask
--->  Deactivating py33-flask @0.10.1_1
--->  Cleaning py33-flask
--->  Uninstalling py33-flask @0.10.1_1
The following dependencies will be uninstalled:
 py33-itsdangerous @0.24_0
 py33-jinja2 @2.7.3_0
 py33-werkzeug @0.9.6_0
 py33-setuptools @12.0.3_0
 py33-markupsafe @0.23_0
Continuing in 07 s. Press Ctrl-C to exit: 
--->  Deactivating py33-itsdangerous @0.24_0
--->  Cleaning py33-itsdangerous
--->  Uninstalling py33-itsdangerous @0.24_0
--->  Cleaning py33-itsdangerous
--->  Deactivating py33-jinja2 @2.7.3_0
--->  Cleaning py33-jinja2
--->  Uninstalling py33-jinja2 @2.7.3_0
--->  Cleaning py33-jinja2
--->  Deactivating py33-werkzeug @0.9.6_0
--->  Cleaning py33-werkzeug
--->  Uninstalling py33-werkzeug @0.9.6_0
--->  Cleaning py33-werkzeug
--->  Deactivating py33-setuptools @12.0.3_0
--->  Cleaning py33-setuptools
--->  Uninstalling py33-setuptools @12.0.3_0
--->  Cleaning py33-setuptools
--->  Deactivating py33-markupsafe @0.23_0
--->  Cleaning py33-markupsafe
--->  Uninstalling py33-markupsafe @0.23_0
--->  Cleaning py33-markupsafe
--->  Cleaning py33-flask
% port installed leaves
None of the specified ports are installed.
%

comment:4 Changed 9 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed

comment:5 Changed 9 years ago by larryv (Lawrence Velázquez)

Resolution: fixed
Status: closedreopened

Just ran into this again with base at r132513.

% port installed inactive or leaves
The following ports are currently installed:
  cctools @862_1+llvm34+universal (active)
  dyld-headers @239.3_0 (active)
  ld64 @127.2_9+llvm34+universal
  libmacho-headers @862_2 (active)
  libunwind-headers @3.5.0_7 (active)
  p5.16-cpan-meta-requirements @2.131.0_0
  p5.16-io-socket-inet6 @2.720.0_0 (active)
  p5.16-io-socket-ssl @2.10.0_0
  p5.16-net-ssleay @1.670.0_0+universal
  p5.16-perl-ostype @1.7.0_1
  p5.16-sub-uplevel @0.240.0_1
  p5.16-test-exception @0.360.0_0 (active)
  p5.16-test-nowarnings @1.40.0_1 (active)
  p5.16-test-warn @0.300.0_0 (active)
  p5.16-tree-dag_node @1.230.0_0
  p5.16-version @0.991.100_0+universal
  sqlite3 @3.8.7.4_0+universal
  sqlite3 @3.8.8.1_0+universal
% sudo port -N uninstall --follow-dependencies inactive or leaves
Password:
--->  Uninstalling ld64 @127.2_9+llvm34+universal
---------- >8 ----------
--->  Cleaning cctools
% port installed inactive or leaves
The following ports are currently installed:
  p5.16-test-simple @1.1.14_0 (active)
%

comment:6 Changed 9 years ago by larryv (Lawrence Velázquez)

I’ve applied Josh’s debugging patch to a few of my base installs, but I haven’t been able to come up with a minimal test case yet.

  • src/registry2.0/portuninstall.tcl

     
    321321                        foreach depdt $dependents {
    322322                            if {[lsearch -exact $uports $depdt] == -1} {
    323323                                set all_dependents_uninstalling 0
     324                                ui_msg "not adding $dep to uninstall list, $depdt depends on it"
    324325                                break
    325326                            }
    326327                        }
     
    328329                            lappend uports $dep
    329330                            lappend portilist $dep@${iversion}_${irevision}${ivariants}
    330331                            set uninstalling_this_dep 1
     332                            ui_msg "adding $dep to uninstall list"
    331333                        }
    332334                    }
    333335                }

Changed 9 years ago by larryv (Lawrence Velázquez)

Attachment: uninstall-debugging.patch added

bring patch into Trac to make sure we don't lose it somehow

comment:7 Changed 9 years ago by larryv (Lawrence Velázquez)

Ran into this again — unfortunately, right after updating base and wiping out Josh’s modifications. Jotting down an abbreviated transcript because I don’t have time to poke around right now; will revisit soon.

% port installed leaves
The following ports are currently installed:
  p5.16-io-socket-inet6 @2.720.0_0 (active)
  p5.16-test-exception @0.380.0_0 (active)
  p5.16-test-nowarnings @1.40.0_1 (active)
  p5.16-test-pod @1.480.0_1 (active)
  p5.16-test-warn @0.300.0_0 (active)
% sudo port -N uninstall --follow-dependencies leaves
[bunch of stuff]
% port installed leaves
The following ports are currently installed:
  p5.16-pod-simple @3.300.0_0 (active)
  p5.16-test-simple @1.1.14_0 (active)
%

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

Resolution: fixed
Status: reopenedclosed

Should be fixed by r138001. Please reopen if not.

comment:9 in reply to:  8 Changed 9 years ago by larryv (Lawrence Velázquez)

Thanks! Looks better now, but I’ll keep an eye out.

[titan] 91370 % port installed leaves                                          ~/Projects/MacPorts/git-svn/trunk/dports
The following ports are currently installed:
  p5.16-test-exception @0.400.0_0 (active)
  p5.16-test-nowarnings @1.40.0_1 (active)
  p5.16-test-pod @1.500.0_0 (active)
  p5.16-test-warn @0.300.0_0 (active)
[titan] 91371 % sudo port -N uninstall --follow-dependencies leaves            ~/Projects/MacPorts/git-svn/trunk/dports
---------- >8 ----------
[titan] 91372 % port installed leaves                                          ~/Projects/MacPorts/git-svn/trunk/dports
None of the specified ports are installed.
[titan] 91373 %                                                                ~/Projects/MacPorts/git-svn/trunk/dports
Note: See TracTickets for help on using tickets.