Running apacman as root (in this case, sudo apacman -Syu --noconfirm --needed) causes the cockpit package build to fail:
:: Starting full aur upgrade...
Aur Targets (1): cockpit
:: Proceed with installation? [Y/n]
==> Making package: cockpit 0.79-1 (Thu Oct 8 17:50:36 EDT 2015)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Downloading 0.79.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129 0 129 0 0 703 0 --:--:-- --:--:-- --:--:-- 701
100 3836k 100 3836k 0 0 3316k 0 0:00:01 0:00:01 --:--:-- 6418k
==> Validating source files with sha1sums...
0.79.tar.gz ... Passed
==> Extracting sources...
-> Extracting 0.79.tar.gz with bsdtar
==> Starting prepare()...
==> Starting build()...
++ dirname ../autogen.sh
+ srcdir=..
+ test -z ..
+ PKG_NAME=Cockpit
+ test -f ../src/ws/cockpit.service.in
++ pwd
+ olddir=/tmp/pkgbuild-0/cockpit/src/cockpit-0.79/build
+ cd ..
+ cd tools
+ npm install
npm ERR! Linux 4.2.2-1-ARCH
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! node v4.1.2
npm ERR! npm v3.3.5
npm ERR! path /var/empty/.npm
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir '/var/empty/.npm'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/var/empty/.npm']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/var/empty/.npm',
npm ERR! parent: 'CockpitDeps' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /tmp/pkgbuild-0/cockpit/src/cockpit-0.79/tools/npm-debug.log
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: the build failed
-> Status failed (1): cockpit
local database is up to date
Looks like the nobody user doesn't have access to whatever folder npm is attempting to use. It also looks like fakeroot was not used either because the build() function was called instead of package(). This pacakge builds just fine as a normal user (who runs apacman -S cockpit).
Question: Perhaps this is most easily solved by having an option to use a particular uid (numeric user id or name) instead of the default nobody to build packages if apacman is called as root?
Yet another package that fails for the same reason is arch-wiki-man. I also discovered that if ccache is used, then similar problem will happen due to /var/empty/.ccache (see #94). Looking forward to fix!
Running apacman as root (in this case, sudo apacman -Syu --noconfirm --needed) causes the cockpit package build to fail:
Looks like the nobody user doesn't have access to whatever folder npm is attempting to use. It also looks like fakeroot was not used either because the build() function was called instead of package(). This pacakge builds just fine as a normal user (who runs apacman -S cockpit).
Question: Perhaps this is most easily solved by having an option to use a particular uid (numeric user id or name) instead of the default nobody to build packages if apacman is called as root?