Opened 4 years ago

Closed 2 years ago

Last modified 2 years ago

#60648 closed defect (fixed)

MacPorts marks ports requested that weren't

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone: MacPorts 2.8.0
Component: base Version: 2.6.2
Keywords: Cc:
Port:

Description

As far as I can tell, we are inadvertently marking some ports as requested when they weren't. This might explain the impression I've gotten from some prior mailing list discussions in which users' lists of requested ports don't seem to match their expectations.

I am updating ports on a buildbot worker machine. I had already updated the ports tree a few hours ago and now I am updating it again:

$ sudo port -v sync
--->  Updating the ports tree
Synchronizing local ports tree from rsync://rsync.macports.org/macports/release/tarballs/ports.tar
receiving file list ... done
./
ports.tar
ports.tar.rmd160

sent 63853 bytes  received 22343 bytes  19154.67 bytes/sec
total size is 82885632  speedup is 961.59
Creating port index in /opt/bblocal/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports
Adding port gnome/gedit
Adding port gnome/tepl
Adding port python/py-pyficache
Adding subport py27-pyficache
Adding subport py35-pyficache
Adding subport py36-pyficache
Adding subport py37-pyficache
Adding subport py38-pyficache
Adding port python/py-pytest-cov
Adding subport py27-pytest-cov
Adding subport py35-pytest-cov
Adding subport py36-pytest-cov
Adding subport py37-pytest-cov
Adding subport py38-pytest-cov
Adding port python/py-spyder-kernels-devel
Adding subport py36-spyder-kernels-devel
Adding subport py37-spyder-kernels-devel
Adding subport py38-spyder-kernels-devel
Adding port python/py-trepan3k
Adding subport py37-trepan3k
Adding subport py38-trepan3k
Adding port python/py-uncompyle6
Adding subport py27-uncompyle6
Adding subport py35-uncompyle6
Adding subport py36-uncompyle6
Adding subport py37-uncompyle6
Adding subport py38-uncompyle6
Adding port python/py-wcwidth
Adding subport py27-wcwidth
Adding subport py35-wcwidth
Adding subport py36-wcwidth
Adding subport py37-wcwidth
Adding subport py38-wcwidth
Adding port python/py-xdis
Adding subport py27-xdis
Adding subport py35-xdis
Adding subport py36-xdis
Adding subport py37-xdis
Adding subport py38-xdis

Total number of ports parsed:	39 
Ports successfully parsed:	39 
Ports failed:			0 
Up-to-date ports skipped:	23783

Synchronizing local ports tree from file:///opt/macports-infrastructure/ports
Current branch master is up to date.
Creating port index in /opt/macports-infrastructure/ports
Adding port sysutils/net.macports.buildmaster
Adding port sysutils/net.macports.mprsyncup

Total number of ports parsed:	2 
Ports successfully parsed:	2 
Ports failed:			0 
Up-to-date ports skipped:	12

Note that the py-wcwidth Portfile got reindexed. This happened because a dependency on py27-backports-functools_lru_cache was added to py27-wcwidth.

I use an additional ports tree for various service configurations. These ports have names starting with "net.macports." I wanted to uninstall these ports and reinstall them after having changed a portgroup that they include:

$ sudo port uninstall net.macports.buildworker net.macports.backup
The following versions of net.macports.buildworker are currently installed:
 1) net.macports.buildworker @29_0+base+ports
 2) net.macports.buildworker @30_0+base+ports (active)
Enter option(s) [1-2/all]: 2
--->  Deactivating net.macports.buildworker @30_0+base+ports
--->  Cleaning net.macports.buildworker
--->  Uninstalling net.macports.buildworker @30_0+base+ports
--->  Deactivating net.macports.backup @3_0
--->  Cleaning net.macports.backup
--->  Uninstalling net.macports.backup @3_0
--->  Cleaning net.macports.backup
$ sudo port install net.macports.buildworker net.macports.backup
--->  Computing dependencies for py27-backports-functools_lru_cache
--->  Fetching distfiles for py27-backports-functools_lru_cache
--->  Attempting to fetch backports.functools_lru_cache-1.6.1.tar.gz from https://distfiles.macports.org/py-backports-functools_lru_cache
--->  Verifying checksums for py27-backports-functools_lru_cache
--->  Extracting py27-backports-functools_lru_cache
--->  Configuring py27-backports-functools_lru_cache
--->  Building py27-backports-functools_lru_cache
--->  Staging py27-backports-functools_lru_cache into destroot
--->  Installing py27-backports-functools_lru_cache @1.6.1_0
--->  Activating py27-backports-functools_lru_cache @1.6.1_0
--->  Cleaning py27-backports-functools_lru_cache
--->  Computing dependencies for py27-wcwidth
--->  Fetching distfiles for py27-wcwidth
--->  Verifying checksums for py27-wcwidth
--->  Extracting py27-wcwidth
--->  Configuring py27-wcwidth
--->  Building py27-wcwidth
--->  Staging py27-wcwidth into destroot
--->  Installing py27-wcwidth @0.2.4_1
--->  Cleaning py27-wcwidth
--->  Computing dependencies for py27-wcwidth
--->  Deactivating py27-wcwidth @0.2.4_0
--->  Cleaning py27-wcwidth
--->  Activating py27-wcwidth @0.2.4_1
--->  Cleaning py27-wcwidth
--->  Computing dependencies for net.macports.buildworker
--->  Fetching distfiles for net.macports.buildworker
--->  Verifying checksums for net.macports.buildworker
--->  Extracting net.macports.buildworker
--->  Configuring net.macports.buildworker
--->  Building net.macports.buildworker
--->  Staging net.macports.buildworker into destroot
--->  Installing net.macports.buildworker @30_0+base+ports
--->  Activating net.macports.buildworker @30_0+base+ports
--->  Loading startupitem 'net.macports.buildworker' for net.macports.buildworker
--->  Cleaning net.macports.buildworker
--->  Fetching distfiles for net.macports.backup
--->  Verifying checksums for net.macports.backup
--->  Extracting net.macports.backup
--->  Configuring net.macports.backup
--->  Building net.macports.backup
--->  Staging net.macports.backup into destroot
--->  Installing net.macports.backup @3_0
--->  Activating net.macports.backup @3_0
--->  Loading startupitem 'net.macports.backup' for net.macports.backup
--->  Cleaning net.macports.backup
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.

Note that py27-backports-functools_lru_cache got installed as a consequence of the updated py27-wcwidth, which is somewhere in the dependency chain of py27-twisted which is a dependency of buildbot-slave-0.8 which is a dependency of net.macports.buildworker.

net.macports.buildworker and net.macports.backup should now be marked as requested because I explicitly asked to install them. py27-backports-functools_lru_cache should not be marked as requested because it was merely coincidentally installed as a dependency. And yet:

$ port installed requested
The following ports are currently installed:
  afsctool @1.6.4_3 (active)
  git @2.23.0_1+credential_osxkeychain+diff_highlight+doc+pcre+perl5_26
  git @2.24.0_0+credential_osxkeychain+diff_highlight+doc+pcre+perl5_26
  git @2.27.0_0+credential_osxkeychain+diff_highlight+doc+pcre+perl5_28 (active)
  libarchive @3.4.0_1
  net.macports.backup @3_0 (active)
  net.macports.buildworker @29_0+base+ports
  net.macports.buildworker @30_0+base+ports (active)
  py27-backports-functools_lru_cache @1.6.1_0 (active)

py27-backports-functools_lru_cache should not be showing up as requested here.

Change History (4)

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

Owner: set to jmroot
Resolution: fixed
Status: newclosed

In 31e10a8eb28d8615bd65e297265d37b4ba7a1cba/macports-base (master):

upgrade: unset requested flag for new dependencies

Fixes: #60648

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

Milestone: MacPorts Future

comment:3 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Super, thank you!

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

Milestone: MacPorts FutureMacPorts 2.8.0
Note: See TracTickets for help on using tickets.