Opened 9 years ago

Closed 9 years ago

#32874 closed defect (fixed)

SuiteSparse keeps rebuilding

Reported by: ryandesign (Ryan Schmidt) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc: bpabbott@…
Port: SuiteSparse

Description

Sometimes a port builds twice. Here is an example:

$ port outdated SuiteSparse
The following installed ports are outdated:
SuiteSparse                    3.7.0_0 < 3.4.0_0  (epoch 0 < 20120107)  
$ sudo port -u upgrade SuiteSparse
Password:
--->  Fetching archive for SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0+universal.darwin_10.i386-x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Fetching SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0.tar.gz from http://ykf.ca.distfiles.macports.org/MacPorts/mpdistfiles/SuiteSparse
--->  Verifying checksum(s) for SuiteSparse
--->  Extracting SuiteSparse
--->  Applying patches to SuiteSparse
--->  Configuring SuiteSparse
--->  Building SuiteSparse
--->  Staging SuiteSparse into destroot
--->  Installing SuiteSparse @3.4.0_0+universal
--->  Cleaning SuiteSparse
--->  Uninstalling SuiteSparse @3.4.0_0+universal
--->  Fetching archive for SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0+universal.darwin_10.i386-x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0+universal.darwin_10.i386-x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0+universal.darwin_10.i386-x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0+universal.darwin_10.i386-x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Fetching SuiteSparse
--->  Verifying checksum(s) for SuiteSparse
--->  Extracting SuiteSparse
--->  Applying patches to SuiteSparse
--->  Configuring SuiteSparse
--->  Building SuiteSparse
--->  Staging SuiteSparse into destroot
--->  Installing SuiteSparse @3.4.0_0+universal
--->  Deactivating SuiteSparse @3.7.0_0+universal
--->  Activating SuiteSparse @3.4.0_0+universal
--->  Cleaning SuiteSparse
--->  Uninstalling SuiteSparse @3.7.0_0+universal
$
  • Why did MacPorts build SuiteSparse @3.4.0_0+universal a second time when it had just succeeded at building and installing it?
  • Why on the second time did it try four times to download the binary?

Attached is what remains of the logfile; it seems to be from the second build only.

Attachments (1)

main.log.bz2 (22.0 KB) - added by ryandesign (Ryan Schmidt) 9 years ago.

Download all attachments as: .zip

Change History (7)

Changed 9 years ago by ryandesign (Ryan Schmidt)

Attachment: main.log.bz2 added

comment:1 Changed 9 years ago by bpabbott@…

I'm seeing the same effect. I do development for Octave. Each time I try to update my Octave port, it begins with the sequence below.

--->  Cleaning SuiteSparse
--->  Unable to uninstall SuiteSparse @3.4.0_0, the following ports depend on it:
--->  	octave36 @3.6.0-rc0_0+atlas+fltk+gcc44
--->  	octave36 @3.6.0-rc0_0+atlas+fltk+gcc45
--->  	octave36 @3.6.0-rc1_0+atlas+fltk+gcc45
--->  	octave-devel @3.6.1-rc0_0+atlas+fltk+gcc45
Warning: Uninstall forced.  Proceeding despite dependencies.
--->  Deactivating SuiteSparse @3.4.0_0
--->  Unable to deactivate SuiteSparse @3.4.0_0, the following ports depend on it:
--->  	octave-devel @3.6.1-rc0_0+atlas+fltk+gcc45
Warning: Deactivate forced.  Proceeding despite dependencies.
--->  Cleaning SuiteSparse
--->  Uninstalling SuiteSparse @3.4.0_0
--->  Cleaning SuiteSparse
--->  Fetching archive for SuiteSparse
--->  Attempting to fetch SuiteSparse-3.4.0_0.darwin_11.x86_64.tbz2 from http://packages.macports.org/SuiteSparse
--->  Fetching SuiteSparse
--->  Verifying checksum(s) for SuiteSparse
--->  Extracting SuiteSparse
--->  Applying patches to SuiteSparse
--->  Configuring SuiteSparse
--->  Building SuiteSparse
--->  Staging SuiteSparse into destroot
--->  Installing SuiteSparse @3.4.0_0
--->  Activating SuiteSparse @3.4.0_0
--->  Cleaning SuiteSparse

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

Cc: bpabbott@… added

bpabbott, your output does not show SuiteSparse trying to fetch the package or rebuilding the port multiple times; it only shows it trying to fetch the package and rebuilding the port once. What is the command you use to update the Octave port?

comment:3 Changed 9 years ago by bpabbott@…

My local octave port is called "octave-local". Each time I install or update ...

sudo port install octave-local

Suitesparse-3.4.0_0 is deactivated, cleaned, fetched, and built ... even though it was already installed.

comment:4 Changed 9 years ago by ryandesign (Ryan Schmidt)

I see. Well that does sound odd and I'm not sure why it happens. It also doesn't sound like the issue in this ticket, though perhaps both issues have the same cause. Perhaps it has somehow to do with the fact that SuiteSparse's epoch is nonzero -- we had both a 3.4.0_0 at epoch 0 and a 3.4.0_0 at epoch 20120107. Perhaps that is confusing MacPorts somehow. In fact, SuiteSparse also existed at 3.4.0_1 epoch 0 and 3.4.0_2 epoch 0, so really its revision should have been set to 3 when its epoch was increased. You could try editing the SuiteSparse Portfile and setting the revision to 3 and rebuilding it one more time, then see if future rebuilds of your octave-local still trigger a SuiteSparse rebuild. If not, let us know and we can increase the revision to 3 in the official SuiteSparse Portfile.

comment:5 Changed 9 years ago by bpabbott@…

My SuiteSparse portfile contained ...

name                SuiteSparse
version             3.4.0
epoch               20120107
categories          math science
platforms           darwin
maintainers         nomaintainer
license             GPL-2+ LGPL-2.1+

I added the revision line and set it to 3.

name                SuiteSparse
version             3.4.0
revision            3
epoch               20120107
categories          math science
platforms           darwin
maintainers         nomaintainer
license             GPL-2+ LGPL-2.1+

After an initial "sudo port upgrade SuiteSparse", I'm now able to upgrade Octave without rebuilding SuiteSparse.

Thanks

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

Component: baseports
Port: SuiteSparse added
Resolution: fixed
Status: newclosed
Summary: Sometimes a port builds twiceSuiteSparse keeps rebuilding

Thanks for verifying that. I had assumed this was a MacPorts base bug, and was merely citing SuiteSparse as the most recently example I had seen, but it looks like it is just a SuiteSparse-specific issue in which the epoch/version/revision were not updated in accordance with required practices. The issue was brought up again on macports-users just now. I've committed the revision update in r89910.

Note: See TracTickets for help on using tickets.