Opened 6 years ago

Last modified 17 months ago

#48051 new defect

Installing a port +universal needlessly reinstalls recursive dependencies +universal

Reported by: larryv (Lawrence Velázquez) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 2.3.99
Keywords: Cc: ryandesign (Ryan Schmidt), mojca (Mojca Miklavec), fhgwright (Fred Wright)
Port:

Description

I have zlib installed. It only has an extract dependency on xz, which I also have installed.

% port -v deps zlib
Full Name: zlib @1.2.8_0
Extract Dependencies: bin:xz:xz
% port -v installed xz zlib
The following ports are currently installed:
  xz @5.2.1_0 (active) platform='darwin 15' archs='x86_64'
  zlib @1.2.8_0 (active) platform='darwin 15' archs='x86_64'

If I try to install zlib +universal, I don’t expect xz to be reinstalled because it’s just an extract dependency. Indeed, this doesn’t happen.

% sudo port -N install zlib +universal
--->  Computing dependencies for zlib
--->  Fetching distfiles for zlib
--->  Verifying checksums for zlib
--->  Extracting zlib
--->  Applying patches to zlib
--->  Configuring zlib
--->  Building zlib
--->  Staging zlib into destroot
--->  Installing zlib @1.2.8_0+universal
--->  Deactivating zlib @1.2.8_0
--->  Cleaning zlib
--->  Activating zlib @1.2.8_0+universal
--->  Cleaning zlib
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.

Cool. I don’t actually need a universal zlib, so I reactivate the old one and uninstall the universal one.


Now I want to install openssl +universal. It has a library dependency on zlib.

% port -v deps openssl
Full Name: openssl @1.0.2c_0
Library Dependencies: port:zlib
% port -v installed openssl xz zlib
The following ports are currently installed:
  xz @5.2.1_0 (active) platform='darwin 15' archs='x86_64'
  zlib @1.2.8_0 (active) platform='darwin 15' archs='x86_64'

So I expect zlib to be rebuilt universal before openssl is built. Like before, I don’t expect xz to be reinstalled because it’s just an extract dependency. This time, I am sorely disappointed.

% sudo port -kN install openssl +universal
--->  Fetching distfiles for gperf
--->  Verifying checksums for gperf
--->  Extracting gperf
--->  Applying patches to gperf
--->  Configuring gperf
--->  Building gperf
--->  Staging gperf into destroot
--->  Installing gperf @3.0.4_2+universal
--->  Activating gperf @3.0.4_2+universal
--->  Computing dependencies for libiconv
--->  Fetching distfiles for libiconv
--->  Verifying checksums for libiconv
--->  Extracting libiconv
--->  Applying patches to libiconv
--->  Configuring libiconv
--->  Building libiconv
--->  Staging libiconv into destroot
--->  Installing libiconv @1.14_0+universal
--->  Deactivating libiconv @1.14_0
--->  Cleaning libiconv
--->  Activating libiconv @1.14_0+universal
--->  Fetching distfiles for expat
--->  Verifying checksums for expat
--->  Extracting expat
--->  Applying patches to expat
--->  Configuring expat
--->  Building expat
--->  Staging expat into destroot
--->  Installing expat @2.1.0_0+universal
--->  Deactivating expat @2.1.0_0
--->  Cleaning expat
--->  Activating expat @2.1.0_0+universal
--->  Fetching distfiles for ncurses
--->  Verifying checksums for ncurses
--->  Extracting ncurses
--->  Applying patches to ncurses
--->  Configuring ncurses
--->  Building ncurses
--->  Staging ncurses into destroot
--->  Installing ncurses @5.9_2+universal
--->  Deactivating ncurses @5.9_2
--->  Cleaning ncurses
--->  Activating ncurses @5.9_2+universal
--->  Computing dependencies for gettext
--->  Fetching distfiles for gettext
--->  Verifying checksums for gettext
--->  Extracting gettext
--->  Configuring gettext
--->  Building gettext
--->  Staging gettext into destroot
--->  Installing gettext @0.19.4_0+universal
--->  Computing dependencies for gettext
--->  Deactivating gettext @0.19.4_0
--->  Cleaning gettext
--->  Activating gettext @0.19.4_0+universal
--->  Computing dependencies for xz
--->  Fetching distfiles for xz
--->  Verifying checksums for xz
--->  Extracting xz
--->  Configuring xz
--->  Building xz
--->  Staging xz into destroot
--->  Installing xz @5.2.1_0+universal
--->  Computing dependencies for xz
--->  Deactivating xz @5.2.1_0
--->  Cleaning xz
--->  Activating xz @5.2.1_0+universal
--->  Computing dependencies for zlib
--->  Fetching distfiles for zlib
--->  Verifying checksums for zlib
--->  Extracting zlib
--->  Applying patches to zlib
--->  Configuring zlib
--->  Building zlib
--->  Staging zlib into destroot
--->  Installing zlib @1.2.8_0+universal
--->  Deactivating zlib @1.2.8_0
--->  Cleaning zlib
--->  Activating zlib @1.2.8_0+universal
--->  Computing dependencies for openssl
--->  Fetching distfiles for openssl
--->  Verifying checksums for openssl
--->  Extracting openssl
--->  Applying patches to openssl
--->  Configuring openssl
--->  Building openssl
--->  Staging openssl into destroot
--->  Installing openssl @1.0.2c_0+universal
--->  Activating openssl @1.0.2c_0+universal
--->  Updating database of binaries
--->  Scanning binaries for linking errors               
--->  No broken files found.

Change History (3)

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

Cc: ryandesign@… added

Cc Me!

comment:2 Changed 5 years ago by mojca (Mojca Miklavec)

Cc: mojca@… added

Cc Me!

comment:3 Changed 17 months ago by fhgwright (Fred Wright)

Cc: fhgwright added
Note: See TracTickets for help on using tickets.