Opened 17 years ago

Closed 15 years ago

#10881 closed defect (fixed)

BUG: pkg/mpkg/dmg/mdmg/rpm/dpkg commands skip destroot

Reported by: dcurtis@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 1.8.0
Component: base Version:
Keywords: mpkg destroot Cc: grahamperrin, liontooth@…, rick.richardson@…, tommyd@…, nerdrew@…, jmroot (Joshua Root)
Port:

Description (last modified by jberry@…)

Cannot build packages / meta-packages. For some reason it's thinking it should skip the destroot step and so there is nothing to archive for the pkg.


[Users/dcurtis] > pkg xrender
DEBUG: Found port in file:///usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/xrender
DEBUG: Changing to port directory: /usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/xrender
DEBUG: Requested variant darwin is not provided by port xrender.
DEBUG: Requested variant i386 is not provided by port xrender.
DEBUG: Requested variant macosx is not provided by port xrender.
DEBUG: Executing variant darwin_8 provides darwin_8
DEBUG: Found port in file:///usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/XFree86
DEBUG: Changing to port directory: /usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/XFree86
DEBUG: Searching for dependency: XFree86
DEBUG: Didn't find receipt, going to depspec regex for: XFree86
DEBUG: Found Dependency: path: /usr/X11R6/lib filename: libX11.6.dylib regex: ^libX11\.6\.dylib$
DEBUG: Found Dependency: path: /usr/X11R6/lib filename: libX11.6.dylib regex: ^libX11\.6\.dylib$
DEBUG: Found port in file:///usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/render
DEBUG: Changing to port directory: /usr/local/var/db/dports/sources/rsync.rsync.darwinports.org_dpupdate_dports/x11/render
DEBUG: Searching for dependency: render
DEBUG: Found Dependency: receipt exists for render
DEBUG: Skipping com.apple.main (xrender) since this port is already installed
DEBUG: Skipping com.apple.fetch (xrender) since this port is already installed
DEBUG: Skipping com.apple.checksum (xrender) since this port is already installed
DEBUG: setting option extract.cmd to /usr/bin/bzip2
DEBUG: Skipping com.apple.extract (xrender) since this port is already installed
DEBUG: Skipping com.apple.patch (xrender) since this port is already installed
DEBUG: Skipping com.apple.configure (xrender) since this port is already installed
DEBUG: Skipping com.apple.build (xrender) since this port is already installed
DEBUG: Skipping com.apple.destroot (xrender) since this port is already installed
DEBUG: Executing com.apple.pkg (xrender)
--->  Creating pkg for xrender-0.9.0
can't stat /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/destroot (No such file or directory)
can't make bom /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/xrender-0.9.0.pkg/Contents/Archive.bom for dir /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/destroot
Error: Target com.apple.pkg returned: shell command "mkbom /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/destroot /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/xrender-0.9.0.pkg/Contents/Archive.bom" returned error 1
Command output: can't stat /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/destroot (No such file or directory)
can't make bom /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/xrender-0.9.0.pkg/Contents/Archive.bom for dir /usr/local/var/db/dports/build/_usr_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_x11_xrender/work/destroot

Warning: the following items did not execute (for xrender): com.apple.pkg
Error: Status 1 encountered during processing.

Change History (25)

comment:1 Changed 17 years ago by dcurtis@…

For any port; if you clean, destroot, pkg then you will not recieve this error. It's something about required steps (bascially "skipping destroot because port installed").

comment:2 Changed 17 years ago by markd@…

Summary: mpkg/pkg command builds with errorsBUG: mpkg/pkg command skips destroot

comment:3 Changed 17 years ago by jberry@…

Description: modified (diff)

Please mark output as code so it's easier to read.

comment:4 Changed 17 years ago by dcurtis@…

temporary fix:

when doing mpkg use the -k flag and it will leave the destroot contents.

comment:5 Changed 17 years ago by pipping@…

Milestone: Port Bugs

comment:6 Changed 17 years ago by pipping@…

Milestone: Port BugsMacPorts 1.4

comment:7 Changed 17 years ago by jmpp@…

Milestone: MacPorts 1.4Needs developer review
Priority: BlockerImportant

Fixing this so that a meta package builds through regular port(1) operation would require forcing some things internally, which I'm figuring is not going to be that easy since some guessing as to what to force would have to take place. Therefore setting to "Needs developer review" so that discussion on the issue can set it to a version'd milestone.

-jmpp

comment:8 Changed 17 years ago by jmpp@…

Owner: changed from darwinports-bugs@… to macports-dev@…

comment:9 Changed 17 years ago by jmpp@…

Milestone: Needs developer reviewMacPorts base bugs

Milestone Needs developer review deleted

comment:10 Changed 17 years ago by nox@…

Priority: ImportantHigh
Version: 1.3.2

comment:11 Changed 17 years ago by afb@…

This bug also affects the rpm/dpkg targets (as they also need a destroot)

The workaround is to either use the force, or to uninstall everything...
(or disable the autoclean, as suggested above - same as the -k option)

comment:12 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #13669.

comment:13 Changed 16 years ago by jmpp@…

Priority: HighNormal

comment:14 Changed 16 years ago by afb@…

Cc: grahamperrin added

comment:15 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: liontooth@… rick.richardson@… added
Summary: BUG: mpkg/pkg command skips destrootBUG: pkg/mpkg/dmg/mdmg/rpm/dpkg commands skip destroot

dmg and mdmg targets are also affected; see duplicates #14437 and #13669, respectively.

comment:16 Changed 16 years ago by rick.richardson@…

There are two workarounds in the ticket above:

  • port -f destroot ghostscript, to make the root "valid"
  • disable autoclean for future installs to be packageable

e.g.

$ sudo port -f destroot ghostscript

$ sudo port dmg ghostscript

comment:17 Changed 16 years ago by dbruce@…

I still can't make a dmg of my port (tuxmath) even with the above work-arounds. Is there currently a functioning way to do this?

Here's what I did:
sudo port mdmg tuxmath - ran into the problems above with the missing directories for tuxmath itself as well as for many of the dep libs. After creating all these dirs manually with mkdir, here's what I get:

janis-lehtinens-imac:~ dbruce$ sudo port clean tuxmath[[BR]]
--->  Cleaning tuxmath[[BR]]
janis-lehtinens-imac:~ dbruce$ sudo port -f destroot tuxmath[[BR]]
--->  Fetching tuxmath[[BR]]
--->  Verifying checksum(s) for tuxmath[[BR]]
--->  Extracting tuxmath[[BR]]
--->  Configuring tuxmath[[BR]]
--->  Building tuxmath with target all[[BR]]
--->  Staging tuxmath into destroot[[BR]]
janis-lehtinens-imac:~ dbruce$ sudo port mdmg tuxmath[[BR]]
--->  Creating pkg for tuxmath-1.6.1[[BR]]
--->  Creating pkg for expat-2.0.1[[BR]]
(... skipping lots of Creating pkg for *...)[[BR]]
--->  Creating pkg for zlib-1.2.3[[BR]]
--->  Creating disk image for tuxmath-1.6.1[[BR]]
Error: Target org.macports.mdmg returned: shell command "ditto -rsrcFork /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_games_tuxmath/work/tuxmath-1.6.1.mpkg '/Volumes/tuxmath-1.6.1 3/tuxmath-1.6.1.mpkg'" returned error 1
Command output: ditto: /Volumes/tuxmath-1.6.1 3/tuxmath-1.6.1.mpkg/Contents/Packages/tuxmath-1.6.1.pkg/Contents/Archive.pax.gz: No space left on device

(the disk is definitely not full)

So -

  1. For the packages that fail to create the needed dir, what needs to be added to the Portfile?
  2. Is there something beyond "sudo port -f destroot tuxmath; sudo port dmg tuxmath" I need to do?

David Bruce - dbruce@…

comment:18 in reply to:  17 Changed 16 years ago by afb@…

Replying to dbruce@tampabay.rr.com:

I still can't make a dmg of my port (tuxmath) even with the above work-arounds. Is there currently a functioning way to do this?

That is a different issue (#13968), the size calculations for meta-packages/diskimages are off...

comment:19 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Has duplicate #15987.

comment:20 Changed 15 years ago by probono@…

Given that this has been around for 2 years, is this considered a bug or a feature? (honest question)

comment:21 Changed 15 years ago by tobypeterson

Milestone: MacPorts base bugsMacPorts Future

Milestone MacPorts base bugs deleted

comment:22 Changed 15 years ago by nelek@…

How am I supposed to work around this if I'm trying to build a package with dependencies? Even if i do the workaround, i still get the error for each other dependency I'm trying to build. For large sets this is totally unworkable.

And how can a serious bug like this exist for 2 years without a fix??

[CODE] ERROR: The specified root is invalid: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_bzip2/work/destroot CODE

comment:23 Changed 15 years ago by blb@…

Cc: tommyd@… added

Cc reporter of dup #18213.

comment:24 Changed 15 years ago by nerdrew@…

Cc: nerdrew@… added

Cc Me!

comment:25 Changed 15 years ago by jmroot (Joshua Root)

Cc: jmr@… added
Milestone: MacPorts FutureMacPorts 1.8.0
Resolution: fixed
Status: newclosed

This appears to have been fixed by r50490.

Note: See TracTickets for help on using tickets.