[MacPorts] #37333: missing destroot and worksrcpath directories on destroot stage when creating binary + documentation port

MacPorts noreply at macports.org
Mon Dec 17 09:54:40 PST 2012


#37333: missing destroot and worksrcpath directories on destroot stage when
creating binary + documentation port
-------------------------+--------------------------------
 Reporter:  garymamon@…  |      Owner:  macports-tickets@…
     Type:  defect       |     Status:  new
 Priority:  Normal       |  Milestone:
Component:  ports        |    Version:  2.1.2
 Keywords:  destroot     |       Port:
-------------------------+--------------------------------
 I am trying to construct a port for a binary package plus documentation
 plus Makefile (for install), using MacPorts to force installation of
 dependent packages if missing. Because my package ("scamp") is already
 compiled (with a special compiler), my PortFile has:


 {{{
 use_configure       no
 build               {}
 }}}


 But after running:

 % cd ~/ports; portindex; cd; sudo port clean scamp; sudo port uninstall
 scamp; sudo rm /opt/local/var/macports/distfiles/scamp/scamp-2.0b5.tbz2 ;
 sudo rm -rf
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp; sudo
 port -v install scamp @2.0b5

 after correct fetching, checksuming, extracting [from .tbz2 file],
 configuring, and building, I run into an error, whatever I try for the
 destroot stage in my Portfile. For example with (an empty)

 {{{
 destroot {
          puts "prefix = ${prefix}"
          puts "workpath = ${workpath}"
          puts "worksrcpath = ${worksrcpath}"
          puts "destroot = ${destroot}"
 }
 }}}

 I get


 {{{
 prefix = /opt/local
 workpath =
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp/work
 worksrcpath =
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp/work/scamp-2.0b5
 destroot =
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp/work/destroot
 Error: No files have been installed in the destroot directory!
 Error: Please make sure that this software supports 'make install
 DESTDIR=${destroot}' or implement an alternative destroot mechanism in the
 Portfile.
 Error: Files might have been installed directly into your system, check
 before proceeding.
 Error: org.macports.destroot for port scamp returned: Staging scamp into
 destroot failed
 }}}

 Now if I try
 {{{
 ls -l
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp/work/scamp-2.0b5
 }}}
 or
 {{{
 ls -l
 /opt/local/var/macports/build/_Users_gam_ports_science_scamp/scamp/work/destroot
 }}}
 the directories do not exist! On the other hand, the {{{workpath}}}
 directory exists and contains the root of the files I wish to have
 installed by the end user (i.e. Makefile, README, INSTALL, bin, doc,
 man...). Note that the Makefile has an install:
 {{{
 install:
         cp -R bin $(DESTDIR)
         mkdir -p $(DESTDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
         mkdir -p $(DESTDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/share
         cp -R doc man [A-Z]*
 $(DESTDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)/share
 }}}

 Are these destroot issues normal or a bug in MacPorts? How can I work
 around them?

-- 
Ticket URL: <https://trac.macports.org/ticket/37333>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list