Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Feb 2018 13:37:49 +0000
From:      Marcin Cieslak <saper@saper.info>
To:        Adam Weinberger <adamw@adamw.org>
Cc:        ports@FreeBSD.org
Subject:   Re: poudriere: "Permission denied" in the extract phase?
Message-ID:  <nycvar.OFS.7.76.6.1802251254141.2659@z.fncre.vasb>
In-Reply-To: <371FB508-F90E-41E4-8B3D-85F7DA54FFAA@adamw.org>
References:  <nycvar.OFS.7.76.6.1802250231290.2659@z.fncre.vasb> <nycvar.OFS.7.76.6.1802250252140.2659@z.fncre.vasb> <371FB508-F90E-41E4-8B3D-85F7DA54FFAA@adamw.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--1563967779-541707789-1519565870=:2659
Content-Type: text/plain; charset=US-ASCII

On Sun, 25 Feb 2018, Adam Weinberger wrote:

> > > (full log:
> > > https://gist.github.com/saper/0be3f9b4e9eb819d3ec00f5273705517#file-node-sass-4-7-2-log
> > > )
> > > 
> > > Why are /bin/mkdir -p and /bin/cp commands invoked again in the "extract"
> > > phase?
> > > 
> > > FreeBSD 11.1-STABLE #10 r321629 running poudriere-3.2.4 (I have updated
> > > poudriere today)
> 
> First of all, just so you know, npm module ports won't be added to the ports
> tree. I just wanted to be clear in case you were planning on submitting it.
> There were a couple threads about this a while back.
> 
> With that out of the way, you're hitting errors for two reasons here.

Yes, this is my private port that I am using to produce FreeBSD binaries
for node-sass. Getting binary npm modules into our ports tree is another conversation.

The problem here is that a whole thing worked for me before for months
so I am aware of all those limitations for particular build phases
(it took me long to figure out that).

> The first problem is that npm needs network access, and poudriere prevents
> ports from dialing out. You can work around this with the
> ALLOW_NETWORKING_PACKAGES variable in poudriere.conf.
> 
> The other problem you're hitting is that npm saves a cache, and for some
> reason you're trying to run it from /usr/ports/distfiles/node-sass. Ports
> themselves should never, ever have the ability to create files in
> /usr/ports/distfiles. If you run 'npm install' from ${WRKSRC}, then you can
> do:
> 	cd ${WRKSRC} && ${SETENV} HOME=/tmp npm install

Aren't ports allowed to write in /usr/ports/distfiles during the fetch phase?
That would be new to me...

This whole thing was working for me before (with older poudriere/bsd.port.mk maybe).
I try to force npm to fetch everything (including dependent modules)
in the fetch phase:

 42 post-fetch:
 43         ${MKDIR} ${DISTDIR}/${PORTNAME}
 44         ${MKDIR} ${NPM_CACHE}
 45         ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME}
 46         ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME}
 47         (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${NPM_CACHE} npm install --ignore-scripts)

I copy everything I need from distfiles to ${WRKSRC} in the extract phase:

 49 post-extract:
 50         (cd ${DISTDIR}/${PORTNAME} && ${FIND} node_modules | ${PAX} -rw ${WRKSRC})
 51 

I build everything without touching the network:

 52 do-build:
 53         (cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} NPM_CONFIG_CACHE=${NPM_CACHE} npm instal    l --nodedir=${LOCALBASE})

The problem in particular is that "post-fetch" target is invoked ALSO during the "extract" target,
I don't know why:

=======================<phase: extract        >============================
                               ^^^^^^^^^^^^
===>  License MIT accepted by the user
===> Fetching all distfiles required by node-sass-4.7.2 for building
     ^^^^^^^^^^^^
/bin/mkdir -p /portdistfiles/node-sass
/bin/mkdir -p /portdistfiles/npm

It did that already in the fetch phase:

===========================================================================
=======================<phase: fetch          >============================
===>  License MIT accepted by the user
===> Fetching all distfiles required by node-sass-4.7.2 for building
/bin/mkdir -p /portdistfiles/node-sass
/bin/mkdir -p /portdistfiles/npm

and it tries that again in the checksum phase:

===========================================================================
=======================<phase: checksum       >============================
===>  License MIT accepted by the user
===> Fetching all distfiles required by node-sass-4.7.2 for building
/bin/mkdir -p /portdistfiles/node-sass
/bin/mkdir -p /portdistfiles/npm

Maybe there is an additional check for a successful fetch that I have missed.

Marcin
--1563967779-541707789-1519565870=:2659
Content-Type: application/pkcs7-signature; name=smime.p7s
Content-Transfer-Encoding: BASE64
Content-Description: S/MIME Cryptographic Signature
Content-Disposition: attachment; filename=smime.p7s

MIIOSwYJKoZIhvcNAQcCoIIOPDCCDjgCAQExDzANBglghkgBZQMEAgEFADAL
BgkqhkiG9w0BBwGgggqQMIIElzCCA3+gAwIBAgIOSBtqCKJEiNNcmz3JSA0w
DQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB
IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNp
Z24wHhcNMTYwNjE1MDAwMDAwWhcNMjQwNjE1MDAwMDAwWjBdMQswCQYDVQQG
EwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEzMDEGA1UEAxMqR2xv
YmFsU2lnbiBQZXJzb25hbFNpZ24gMSBDQSAtIFNIQTI1NiAtIEczMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyrCba00KOKyGuwh9h+/MAcZm
ZUF9OxGKA56AADHaDE08rB0WEbgm6J4XvJP3OGQ7cgHdVJu6XMZkRd6EcfjD
yRrIwE6oAVWJe57co3gKk/XxvuubSZuUahrcOiv3D2qaHwva4zumubxQQI4f
unEzRIJHPiNjaq0cCcZsMcp5pxsEz8aG0sr8Oh80sxKNnzPmuUETLESktfMC
pQKHUGmWXLsG6sgCZOezUjDjKpPKW7l4PUt0TEBEyqLhifv9/YPn5C4o10PP
daDazZPeKNif2PVQ5u0HRnkFrHh4wmmrMtY22Mse3eR01gD6rEEGWf+gdzuy
EQE+ZVlNhCP4gXjdBQIDAQABo4IBZDCCAWAwDgYDVR0PAQH/BAQDAgEGMCcG
A1UdJQQgMB4GCCsGAQUFBwMCBggrBgEFBQcDBAYIKwYBBQUHAwkwEgYDVR0T
AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlifCwqX3HPgCenpkr2NvMtKYwrEw
HwYDVR0jBBgwFoAUj/BLf6guRSSuTVD6Y5qL3uLdG7wwPgYIKwYBBQUHAQEE
MjAwMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20v
cm9vdHIzMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFsc2ln
bi5jb20vcm9vdC1yMy5jcmwwWQYDVR0gBFIwUDALBgkrBgEEAaAyASgwQQYJ
KwYBBAGgMgFfMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNp
Z24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEBCwUAA4IBAQCxh3ekjKKy
RrUdfI6D1U7qUggdFLksiU+KiIqJzJG6GXcQ2KiBy2tF3+KYb0IixXMpIVli
VXlcD5Vh4tiMxJ4WONMFt3f7/53gSXLf24WMwErubc+mGMzgUGE5HKC98PcK
UV/5pPggQdzPxCBNeiXnLU1tCGYhPatFTDhUBGaVhBeuUCbgR9gpXJ9guqrD
OVwouKvovdIeI5KEAcoAAiSL6naeLk/GbKUaBFa2RxXC17e+YyBWtWlWDEM3
1V8pUIx76lkO8IJYREhLcg/LnyoYy5wcrzI6pbX2vw1x/jR3GHSC1AEdoqbE
xui2XLLlSa6y9yQNgdkPz7GTLmpwIT+dMIIF8TCCBNmgAwIBAgIMGk4Oe/1h
2+wMOby/MA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNVBAYTAkJFMRkwFwYDVQQK
ExBHbG9iYWxTaWduIG52LXNhMTMwMQYDVQQDEypHbG9iYWxTaWduIFBlcnNv
bmFsU2lnbiAxIENBIC0gU0hBMjU2IC0gRzMwHhcNMTcwNTI1MDg0NDE2WhcN
MjAwNTI1MDg0NDE2WjA8MRkwFwYDVQQDDBBzYXBlckBzYXBlci5pbmZvMR8w
HQYJKoZIhvcNAQkBFhBzYXBlckBzYXBlci5pbmZvMIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEA2sO3aQNus/oe4ZBZ4fu1Y1mzxnUYAkb4k/dw
gMFc2Kd0eRoOY0AHj4rTEi/vVzzizxjLbEwXzQ9cBEAu/PqS8WsOmhZXtlfi
szPDmP7ZpOwmNTWKSd9O7jHu9uTCGfEOsocQNYH2ULD1gVFkgKb8jHf+3u9d
uCzh6qMomTtwLrCGEP70Lq385xUzRaD6qbOeIB99tpzgvMR6Z0GPTt4z8tLM
kfdtohq5llwZ5vYnj/hJohVS9iLMQMHW4nuLj/mLZNaYE1CWJBT1rBwn5YPJ
uR6811O9eAP7aX4iG8k1jkiBh+QNgGRBIK4GIdqy7IVRhA7v2OlpLYHMk4zP
9Fs3M+56QromVKBnxfzLhuYMUK6ugj9jwskNVitqlEFUeyfgvmR1jnPRp1Nd
XGJllTNwGicR8wkaRj14RxfrvTZfwXs8OBODKFupqun/tNzdpOgyHMGQACss
9yv2SnLGCJvJK3rGIdRZEiUhLZH/Ct4L92dBhev+SjUqWKbHb4yIlGMgLdoh
nwqatuWw7iyOeInjcinX7ghiIKDWhulUN493Fzl6kaUBtIIcrb7jzZ2pHAQT
WUmuVnCTHk6NtoWB09lvuK77fw4GfxLWDFWkBQiJYPVBrmxlrkCKzrWdTMfS
W9BiEC10jT1sSimUBIjDz22RkfsApeBJoAIWjiOZogILu9MCAwEAAaOCAdAw
ggHMMA4GA1UdDwEB/wQEAwIFoDCBngYIKwYBBQUHAQEEgZEwgY4wTQYIKwYB
BQUHMAKGQWh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dz
cGVyc29uYWxzaWduMXNoYTJnM29jc3AuY3J0MD0GCCsGAQUFBzABhjFodHRw
Oi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3NwZXJzb25hbHNpZ24xc2hhMmcz
MEwGA1UdIARFMEMwQQYJKwYBBAGgMgEoMDQwMgYIKwYBBQUHAgEWJmh0dHBz
Oi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAkGA1UdEwQCMAAw
RAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9n
c3BlcnNvbmFsc2lnbjFzaGEyZzMuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh
cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1Ud
DgQWBBReBINaGUKUo7HCrIjsKLKERu6ooTAfBgNVHSMEGDAWgBSWJ8LCpfcc
+AJ6emSvY28y0pjCsTANBgkqhkiG9w0BAQsFAAOCAQEAC0VK968ySq/6B+Kd
ecjVThQOKtVXuG17Krfk0xz7OPYR/V+qZtBFm2Uc6tkUEmAmq3Tyf+SE3TTX
Q58eJFq0uCTUhIY714ioJs1uVWBz8rPyJ3swkOfDaUXUxkQsBsf73VfKjUk4
kB5MTrApLYUe35NmEY3FqyyX13elhW1tp864vOKM2Git61cYoRn/bwd/z2JM
Zkxwkd5JgvmM+p4Da+WO4CUsGzdrZEH8X/8NQIzWtUDIh7VEQZFX5fot/KvH
Am8AajtpmNqTfMyg6LfcfJUXSFqXn/KEWu4Td62vX6Pd70dYKUZxnLwYvGqG
A4Ktrp9zyrUzxLbmdaPln7CstjGCA38wggN7AgEBMG0wXTELMAkGA1UEBhMC
QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMzAxBgNVBAMTKkdsb2Jh
bFNpZ24gUGVyc29uYWxTaWduIDEgQ0EgLSBTSEEyNTYgLSBHMwIMGk4Oe/1h
2+wMOby/MA0GCWCGSAFlAwQCAQUAoIHkMBgGCSqGSIb3DQEJAzELBgkqhkiG
9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE4MDIyNTEzMzc0OVowLwYJKoZIhvcN
AQkEMSIEID49iWtVyRfswgjR/7huqVUHl8c1PZa/NgpTruNf05cSMHkGCSqG
SIb3DQEJDzFsMGowCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBFjALBglghkgB
ZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMC
AgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABIIC
ACFJv98KTlYbwhy9q/15y03ztjnfsHucZTFKNUFdHMj8FkbzPRMcXj/uN2nK
HAIX18b8zHpHDWaoSeqe7akzkjbdEuj8sTtlQGjy8wyGe7Hd0CyVNqtZngGP
tuw7T8tQhHtibAxYC5cA7KIVH7HK5kKlEgA1Suef9ULpij3JAoMDGqB71DkI
yVfDw8ZH50hMawM30ZFLphJ1nfJH2xOm47OnaOapq/OS0P6AQ271IuFK7HCg
3arrpXVnniO11sjLNn01QefpR8xY7+EQb3hsEhEoVnoYRh0QmG1aPf7T78h8
a5NCAZl+0fT3PZK5bjq7EnGaDL71CrdyP8pbXV0TYq/vqhpxMFGy67tRrcVe
hR8TwvsFdh7ybWDW3N/HNFEZ0B+ZrzXWBkJXRDS3bamje5fENuP1je1nDXMs
P4YXnP+O+y8VzxAmRw03cgpfdCaa71AhmWpUApe18Bm0W8A6rRVjl/bBahju
G2P3vYE0NdS2dk0Icfg2f51NcEXWCkKJ3pmFKVJ7Y/BcbLtyaEKu2wRAuM66
ba2Qug5zfhsiUJq9VMse56TWSt06PCGkH0mkplIDMdn0iliJn8V29vgH9V8l
NAJmdS+916EBlYXsfacgYNWQCnoCRmsSeGqHpJuyIcEMzydKVM4OiOyarrWE
4XZGM17D/al9uxGJ0OGBMpPb

--1563967779-541707789-1519565870=:2659--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?nycvar.OFS.7.76.6.1802251254141.2659>