[arch-general] fakeroot package() -> mkdir: cannot create directory : Permission denied
Guys, This is the first time I've seen makepkg not be able to create the $pkgdir/<dir> needed to package a file. I take it from the forum posts that this usually means that makepkg is trying to create the file in the actual filesystem instead of in the fakeroot $pkgdir. (eg: https://bbs.archlinux.org/viewtopic.php?pid=999088) However, I cannot figure out what is causing it to do so on this simple package. The actual error I receive is: ==> Packaging - tde-tqca-tls mkdir: cannot create directory `/opt/tqt3/plugins/crypto/': Permission denied make: *** [install_target] Error 1 What has me puzzled is this is a simple little package. The entire $srcdir/$pkgname after building is just: 16:24 nirvana:/mnt/nv1/home/chroot/david/build> l src/tqca-tls total 388 drwxr-xr-x 2 nobody nobody 4096 Mar 3 16:22 . drwxr-xr-x 3 nobody nobody 4096 Mar 3 16:22 .. -rwxr-xr-x 1 nobody nobody 11839 Mar 3 16:22 configure -rw-r--r-- 1 nobody nobody 436 Mar 3 16:22 conf.log -rw-r--r-- 1 nobody nobody 128 Mar 3 16:22 conf.pri -rw-r--r-- 1 nobody nobody 26430 Feb 16 11:55 COPYING -rw-r--r-- 1 nobody nobody 74 Mar 3 16:22 extra.pri -rwxr-xr-x 1 nobody nobody 98829 Mar 3 16:22 libqca-tls.so -rw-r--r-- 1 nobody nobody 3557 Mar 3 16:22 Makefile -rw-r--r-- 1 nobody nobody 1743 Feb 16 11:55 openssl.qcm -rwxr-xr-x 1 nobody nobody 62 Feb 16 11:55 prepare -rw-r--r-- 1 nobody nobody 10409 Feb 17 17:22 qca.h -rw-r--r-- 1 nobody nobody 6028 Feb 16 11:55 qcaprovider.h -rw-r--r-- 1 nobody nobody 29465 Feb 16 11:55 qca-tls.cpp -rw-r--r-- 1 nobody nobody 1014 Feb 16 11:55 qca-tls.h -rw-r--r-- 1 nobody nobody 143896 Mar 3 16:22 qca-tls.o -rw-r--r-- 1 nobody nobody 478 Feb 16 11:55 qca-tls.pro -rw-r--r-- 1 nobody nobody 148 Feb 16 11:55 qca-tls.qc -rwxr-xr-x 1 nobody nobody 119 Feb 16 11:55 qcextra -rw-r--r-- 1 nobody nobody 360 Feb 16 11:55 README Looking at the Makefile generate by configure, the install part of the makefile is: install_target: all @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" || $(MKDIR) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" -$(INSTALL_FILE) "$(TARGET)" "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)" -strip --strip-unneeded "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)" The complete makefile is: http://www.3111skyline.com/dl/dt/trinity/arch/err/Makefile-tqca-tls.txt I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir from within the Makefile. Anyone else been bitten by this? Any quick fix? -- David C. Rankin, J.D.,P.E.
Make INSTALL_ROOT=$pkgdir install 4.3.2012 0.36 "David C. Rankin" <drankinatty@suddenlinkmail.com> kirjoitti:
Guys,
This is the first time I've seen makepkg not be able to create the $pkgdir/<dir> needed to package a file. I take it from the forum posts that this usually means that makepkg is trying to create the file in the actual filesystem instead of in the fakeroot $pkgdir. (eg: https://bbs.archlinux.org/viewtopic.php?pid=999088)
However, I cannot figure out what is causing it to do so on this simple package. The actual error I receive is:
==> Packaging - tde-tqca-tls mkdir: cannot create directory `/opt/tqt3/plugins/crypto/': Permission denied make: *** [install_target] Error 1
What has me puzzled is this is a simple little package. The entire $srcdir/$pkgname after building is just:
16:24 nirvana:/mnt/nv1/home/chroot/david/build> l src/tqca-tls total 388 drwxr-xr-x 2 nobody nobody 4096 Mar 3 16:22 . drwxr-xr-x 3 nobody nobody 4096 Mar 3 16:22 .. -rwxr-xr-x 1 nobody nobody 11839 Mar 3 16:22 configure -rw-r--r-- 1 nobody nobody 436 Mar 3 16:22 conf.log -rw-r--r-- 1 nobody nobody 128 Mar 3 16:22 conf.pri -rw-r--r-- 1 nobody nobody 26430 Feb 16 11:55 COPYING -rw-r--r-- 1 nobody nobody 74 Mar 3 16:22 extra.pri -rwxr-xr-x 1 nobody nobody 98829 Mar 3 16:22 libqca-tls.so -rw-r--r-- 1 nobody nobody 3557 Mar 3 16:22 Makefile -rw-r--r-- 1 nobody nobody 1743 Feb 16 11:55 openssl.qcm -rwxr-xr-x 1 nobody nobody 62 Feb 16 11:55 prepare -rw-r--r-- 1 nobody nobody 10409 Feb 17 17:22 qca.h -rw-r--r-- 1 nobody nobody 6028 Feb 16 11:55 qcaprovider.h -rw-r--r-- 1 nobody nobody 29465 Feb 16 11:55 qca-tls.cpp -rw-r--r-- 1 nobody nobody 1014 Feb 16 11:55 qca-tls.h -rw-r--r-- 1 nobody nobody 143896 Mar 3 16:22 qca-tls.o -rw-r--r-- 1 nobody nobody 478 Feb 16 11:55 qca-tls.pro -rw-r--r-- 1 nobody nobody 148 Feb 16 11:55 qca-tls.qc -rwxr-xr-x 1 nobody nobody 119 Feb 16 11:55 qcextra -rw-r--r-- 1 nobody nobody 360 Feb 16 11:55 README
Looking at the Makefile generate by configure, the install part of the makefile is:
install_target: all @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" || $(MKDIR) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" -$(INSTALL_FILE) "$(TARGET)" "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)" -strip --strip-unneeded "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)"
The complete makefile is:
http://www.3111skyline.com/dl/dt/trinity/arch/err/Makefile-tqca-tls.txt
I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir from within the Makefile. Anyone else been bitten by this? Any quick fix?
-- David C. Rankin, J.D.,P.E.
On 04/03/12 08:36, David C. Rankin wrote:
Guys,
This is the first time I've seen makepkg not be able to create the $pkgdir/<dir> needed to package a file. I take it from the forum posts that this usually means that makepkg is trying to create the file in the actual filesystem instead of in the fakeroot $pkgdir. (eg: https://bbs.archlinux.org/viewtopic.php?pid=999088)
However, I cannot figure out what is causing it to do so on this simple package. The actual error I receive is:
==> Packaging - tde-tqca-tls mkdir: cannot create directory `/opt/tqt3/plugins/crypto/': Permission denied make: *** [install_target] Error 1
What has me puzzled is this is a simple little package. The entire $srcdir/$pkgname after building is just:
16:24 nirvana:/mnt/nv1/home/chroot/david/build> l src/tqca-tls total 388 drwxr-xr-x 2 nobody nobody 4096 Mar 3 16:22 . drwxr-xr-x 3 nobody nobody 4096 Mar 3 16:22 .. -rwxr-xr-x 1 nobody nobody 11839 Mar 3 16:22 configure -rw-r--r-- 1 nobody nobody 436 Mar 3 16:22 conf.log -rw-r--r-- 1 nobody nobody 128 Mar 3 16:22 conf.pri -rw-r--r-- 1 nobody nobody 26430 Feb 16 11:55 COPYING -rw-r--r-- 1 nobody nobody 74 Mar 3 16:22 extra.pri -rwxr-xr-x 1 nobody nobody 98829 Mar 3 16:22 libqca-tls.so -rw-r--r-- 1 nobody nobody 3557 Mar 3 16:22 Makefile -rw-r--r-- 1 nobody nobody 1743 Feb 16 11:55 openssl.qcm -rwxr-xr-x 1 nobody nobody 62 Feb 16 11:55 prepare -rw-r--r-- 1 nobody nobody 10409 Feb 17 17:22 qca.h -rw-r--r-- 1 nobody nobody 6028 Feb 16 11:55 qcaprovider.h -rw-r--r-- 1 nobody nobody 29465 Feb 16 11:55 qca-tls.cpp -rw-r--r-- 1 nobody nobody 1014 Feb 16 11:55 qca-tls.h -rw-r--r-- 1 nobody nobody 143896 Mar 3 16:22 qca-tls.o -rw-r--r-- 1 nobody nobody 478 Feb 16 11:55 qca-tls.pro -rw-r--r-- 1 nobody nobody 148 Feb 16 11:55 qca-tls.qc -rwxr-xr-x 1 nobody nobody 119 Feb 16 11:55 qcextra -rw-r--r-- 1 nobody nobody 360 Feb 16 11:55 README
Looking at the Makefile generate by configure, the install part of the makefile is:
install_target: all @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" || $(MKDIR) "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/" -$(INSTALL_FILE) "$(TARGET)" "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)" -strip --strip-unneeded "$(INSTALL_ROOT)/opt/tqt3/plugins/crypto/$(TARGET)"
The complete makefile is:
http://www.3111skyline.com/dl/dt/trinity/arch/err/Makefile-tqca-tls.txt
I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir from within the Makefile. Anyone else been bitten by this? Any quick fix?
make INSTALL_ROOT=$pkdir install
On 03/03/2012 04:39 PM, Allan McRae wrote:
make INSTALL_ROOT=$pkdir install
Allan, Jesse, Thank you for your quick response! I've tried the fix, but I'm still getting the exact same error: ==> Packaging - tde-tqca-tls mkdir: cannot create directory `/opt/tqt3/plugins/crypto/': Permission denied make: *** [install_target] Error 1 ==> ERROR: A failure occurred in package(). I updated the PKGBUILD with your suggestion: package() { msg "Packaging - $pkgname" cd ${srcdir}/${pkgname#*-} # make DESTDIR="${pkgdir}" install make INSTALL_ROOT=$pkdir install } Is there something else I can try like patching the 'configure' file that would help? This build is in a chroot -- I don't know if that makes a difference in the way makepkg behaves? The configure file is here: http://www.3111skyline.com/dl/dt/trinity/arch/err/configure-tqca-tls.txt Any other thoughts on the issue are always appreciated. I'll try building another package that builds and installs fine in the chroot and see what it has in the Makefile. Weird issue :) -- David C. Rankin, J.D.,P.E.
On 03 March 2012 at 23:01 "David C. Rankin" <drankinatty@suddenlinkmail.com> wrote:
On 03/03/2012 04:39 PM, Allan McRae wrote:
make INSTALL_ROOT=$pkdir install
Allan, Jesse,
Thank you for your quick response! I've tried the fix, but I'm still getting the exact same error:
==> Packaging - tde-tqca-tls mkdir: cannot create directory `/opt/tqt3/plugins/crypto/': Permission denied make: *** [install_target] Error 1 ==> ERROR: A failure occurred in package().
I updated the PKGBUILD with your suggestion:
package() { msg "Packaging - $pkgname" cd ${srcdir}/${pkgname#*-} # make DESTDIR="${pkgdir}" install make INSTALL_ROOT=$pkdir install
}
Is there something else I can try like patching the 'configure' file that would help? This build is in a chroot -- I don't know if that makes a difference in the way makepkg behaves? The configure file is here: http://www.3111skyline.com/dl/dt/trinity/arch/err/configure-tqca-tls.txt
Any other thoughts on the issue are always appreciated. I'll try building another package that builds and installs fine in the chroot and see what it has in the Makefile. Weird issue :)
-- David C. Rankin, J.D.,P.E.
Typo? make INSTALL_ROOT=$pkdir install surely it should be make INSTALL_ROOT=$pkgdir install -timttmy
On 03/03/2012 04:39 PM, Allan McRae wrote:
I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir
from within the Makefile. Anyone else been bitten by this? Any quick fix?
make INSTALL_ROOT=$pkdir install
What determines whether you need: make DESTDIR="${pkgdir}" install or make INSTALL_ROOT="${pkgdir}" install ?? Can you grep something before building and tell? -- David C. Rankin, J.D.,P.E.
David C. Rankin wrote:
On 03/03/2012 04:39 PM, Allan McRae wrote:
I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir
from within the Makefile. Anyone else been bitten by this? Any quick fix?
make INSTALL_ROOT=$pkdir install
What determines whether you need:
make DESTDIR="${pkgdir}" install
or
make INSTALL_ROOT="${pkgdir}" install
??
Can you grep something before building and tell?
A lot of software uses the GNU autotools to generate the makefiles. You can tell by the presence of the files configure.ac (or configure.in) and Makefile.am. For most of those DESTDIR should work (unless the developer added some custom rules that don't follow the usual practice). For other software, there is no easy way to tell. I have seen DESTDIR, DEST_DIR and INSTALL_ROOT among others (plus some software does not have a way to install like that and you need to change the prefix and cross your fingers that it will work). Jerome -- mailto:jeberger@free.fr http://jeberger.free.fr Jabber: jeberger@jabber.fr
On 03/03/2012 06:34 PM, David C. Rankin wrote:
On 03/03/2012 04:39 PM, Allan McRae wrote:
I'm not sure what makepkg needs to tell it to put the packages in the $pkgdir
from within the Makefile. Anyone else been bitten by this? Any quick fix?
make INSTALL_ROOT=$pkdir install
What determines whether you need:
make DESTDIR="${pkgdir}" install
or
make INSTALL_ROOT="${pkgdir}" install
??
Can you grep something before building and tell?
The Makefile.... I just find it's easier to just let it puke and then have a look at the Makefile BTW how is trinity going? I haven't looked at trinity for some time, as I dropped out.
participants (6)
-
"Jérôme M. Berger"
-
Allan McRae
-
baho Utot
-
David C. Rankin
-
Jesse Jaara
-
marshall@brooklandsand.co.uk