You are not logged in.

#1 2009-02-17 05:33:49

tinhtruong
Member
From: Australia
Registered: 2008-12-18
Posts: 117

[SOLVED] Permission denied with 'make install' in fakeroot

I'm the maintainer for xvnkb (a vietnamese input method) but I've got a problem in making an Arch package for it:
Here is the PKGBUILD:

# Maintainer: Truong Xuan Tinh <tinh.truong@evolus.vn>
# Contributor: kyanh <kyanh@gmail.com>
pkgname=xvnkb
pkgver=0.2.9a
pkgrel=3
pkgdesc="Vietnamese Keyboard"
arch=('i686')
license=('GPL')
url=("http://xvnkb.sf.net/")
source=(http://xvnkb.sourceforge.net/$pkgname-$pkgver.tar.bz2)
depends=('glibc' 'freetype2' 'libxft' 'libxrender')
provides=('xvnkb')
md5sums=('cd242c03831c31cc5b294aa9870a0dc4')

build() {
 cd $srcdir/$pkgname-$pkgver
 ./configure --prefix=/usr
 make || return 1
 make DESTDIR=$pkgdir install || return 1
}

Here is full output of the build process:

==> Making package: xvnkb 0.2.9a-3 i686 (Tue Feb 17 12:29:42 ICT 2009)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
  -> Downloading xvnkb-0.2.9a.tar.bz2...
--2009-02-17 12:29:43--  http://xvnkb.sourceforge.net/xvnkb-0.2.9a.tar.bz2
Resolving xvnkb.sourceforge.net... 216.34.181.96
Connecting to xvnkb.sourceforge.net|216.34.181.96|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 76429 (75K) [application/x-bzip2]
Saving to: `xvnkb-0.2.9a.tar.bz2.part'

100%[===================================================================================================================>] 76,429      52.3K/s   in 1.4s    

2009-02-17 12:29:46 (52.3 KB/s) - `xvnkb-0.2.9a.tar.bz2.part' saved [76429/76429]

==> Validating source files with md5sums...
    xvnkb-0.2.9a.tar.bz2 ... Passed
==> Extracting Sources...
  -> bsdtar -x -f xvnkb-0.2.9a.tar.bz2
==> Entering fakeroot environment...
==> Starting build()...

Configuration for xvnkb 0.2.9a on Linux

  Type "./configure --help" for more information

Checking uchar... no
Checking ushort... yes
Checking uint... yes
Checking ulong... yes
Checking dynamic linking loader... yes
Checking X11 lib... /usr/X11R6
Checking pkg-config... yes
Checking Xft... yes

Compile options:
  Enable XFT: yes
  Enable spell checking: yes
  Enable extended keystroke: no
  Enable ABC liked Telex keystroke: no
done.

Type "make" to compile

cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c xvnkb.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c visckey.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c property.c
cc -march=i686 -mtune=generic -O2 -pipe -shared -fpic -Wl,-soname,xvnkb.so.0.2.9a xvnkb.o visckey.o property.o -o xvnkb.so.0.2.9a -L/usr/X11R6/lib -ldl
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c data.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c flash.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c main.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c event.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c mainwin.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c menu.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c hotkey.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c systray.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c mode.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c session.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c xconfig.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c xresource.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c label.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c button.c
cc -fpic -march=i686 -mtune=generic -O2 -pipe -fomit-frame-pointer -D_REENTRANT -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -Wall -I/usr/X11R6/include -c msgbox.c
cc -march=i686 -mtune=generic -O2 -pipe data.o flash.o main.o event.o mainwin.o menu.o hotkey.o systray.o mode.o property.o session.o xconfig.o xresource.o label.o button.o msgbox.o -o xvnkb -L/usr/X11R6/lib -lX11 -ldl -lXft -lXrender -lfontconfig -lfreetype -lz -lX11  
make[1]: Entering directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'

Create Makefile.dep ... done

make[2]: Entering directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c xvnkb_ctrl.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c data.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c mode.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c property.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c xconfig.c
cc -march=i686 -mtune=generic -O2 -pipe -o xvnkb_ctrl xvnkb_ctrl.o data.o mode.o property.o xconfig.o -L/usr/X11R6/lib -lX11
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c xvnkb_setup.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c xresource.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c event.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c button.c
cc -march=i686 -mtune=generic -O2 -pipe -DUSE_XFT -I/usr/include/freetype2   -DVERSION=\"0.2.9a\" -DXVNKB_TOOL -Wall -I/usr/X11R6/include -c msgbox.c
cc -march=i686 -mtune=generic -O2 -pipe -o xvnkb_setup xvnkb_setup.o data.o xresource.o event.o button.o msgbox.o -L/usr/X11R6/lib -lX11 -lXft -lXrender -lfontconfig -lfreetype -lz -lX11  
make[2]: Leaving directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'
make[1]: Leaving directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'
make[1]: Entering directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/tinh/abs/xvnkb/src/xvnkb-0.2.9a/tools'
Copy xvnkb  =>  /usr/local/bin ... cp: cannot create regular file `/usr/local/bin/xvnkb': Permission denied
Copy xvnkb.so.0.2.9a  =>  /usr/local/lib ... cp: cannot create regular file `/usr/local/lib/xvnkb.so.0.2.9a': Permission denied
Copy xvnkb_localeconf.sh  =>  /usr/local/bin ... cp: cannot create regular file `/usr/local/bin/xvnkb_localeconf.sh': Permission denied
Initialize xvnkb core ... cp: cannot create regular file `/lib/xvnkb.so.0.2.9a': Permission denied
chattr: No such file or directory while trying to stat /lib/xvnkb.so.0.2.9a
./xvnkb_install: line 67: /etc/ld.so.preload: Permission denied
done
If you want to input Vietnamese Unicode, please run

  # /usr/local/bin/xvnkb_localeconf.sh en_US.utf8.UTF-8

and set your LANG to en_US.utf8.UTF-8.
See xvnkb documents for more information.

You can use xvnkb now!  If you are using X, please restart your Window Manager.
It will load xvnkb core control automatically for you and affect to all
applications.  Right now, xvnkb core control can affect to new starting
applications only.  Run "xvnkb" to control status.

==> Tidying install...
  -> Compressing man pages...
  -> Stripping debugging symbols from binaries and libraries...
==> Creating package...
  -> Generating .PKGINFO file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: xvnkb 0.2.9a-3 i686 (Tue Feb 17 12:29:58 ICT 2009)

And here is the error output (a part of the log output above):

Copy xvnkb  =>  /usr/local/bin ... cp: cannot create regular file `/usr/local/bin/xvnkb': Permission denied
Copy xvnkb.so.0.2.9a  =>  /usr/local/lib ... cp: cannot create regular file `/usr/local/lib/xvnkb.so.0.2.9a': Permission denied
Copy xvnkb_localeconf.sh  =>  /usr/local/bin ... cp: cannot create regular file `/usr/local/bin/xvnkb_localeconf.sh': Permission denied
Initialize xvnkb core ... cp: cannot create regular file `/lib/xvnkb.so.0.2.9a': Permission denied
chattr: No such file or directory while trying to stat /lib/xvnkb.so.0.2.9a
./xvnkb_install: line 67: /etc/ld.so.preload: Permission denied

It seems that the application try to execute a custom script in 'make install'.
Any help are appreciated.

Last edited by tinhtruong (2009-02-18 02:17:18)

Offline

#2 2009-02-17 06:28:19

tdy
Member
From: Sacremende
Registered: 2008-12-14
Posts: 440

Re: [SOLVED] Permission denied with 'make install' in fakeroot

tinhtruong wrote:

It seems that the application try to execute a custom script in 'make install'.
Any help are appreciated.

Instead of hacking their xvnkb_install script, I would just install with these lines (based on ebuild).  Keep in mind that I don't really have a way of testing whether the program will work properly.

  install -Dm755 xvnkb "$pkgdir/usr/bin/xvnkb"
  install -Dm755 tools/xvnkb_ctrl "$pkgdir/usr/bin/xvnkb_ctrl"
  install -Dm755 xvnkb.so.$pkgver "$pkgdir/usr/lib/xvnkb.so.$pkgver"
  ln -sf xvnkb.so.$pkgver "$pkgdir/usr/lib/xvnkb.so"

and xvnkb.install (not sure if this is necessary on Arch, but the ebuild gives this message):

post_install() {
  echo ">>> The following command needs to be run before starting X:"
  echo ">>> $ export LD_PRELOAD=/usr/lib/xvnkb.so"
}

post_upgrade() {
  post_install $1
}

and just a couple small notes:
- provides=('xvnkb') is unnecessary here
- glibc/freetype2/libxrender dependencies are unnecessary since they are all included in libxft
- url shouldn't have parentheses since it's not an array:

url="http://xvnkb.sf.net/"

Last edited by tdy (2009-02-17 07:47:24)

Offline

#3 2009-02-17 10:14:19

tinhtruong
Member
From: Australia
Registered: 2008-12-18
Posts: 117

Re: [SOLVED] Permission denied with 'make install' in fakeroot

Thanks tdy,
I have updated the PKGBUILD and the xvnkb.install file to the AUR.
But I have a small problem. When xvnkb is running, the CPU usage of xvnkb and X is too high.
xvnkb is not running:
withoutxvnkbja4.png
xvnkb is running
withxvnkbjd3.png
I don't know what may cause this problem.
Any help are appreciated.

Offline

#4 2009-02-17 13:06:24

tdy
Member
From: Sacremende
Registered: 2008-12-14
Posts: 440

Re: [SOLVED] Permission denied with 'make install' in fakeroot

Well, I can't really help you with the cpu issue.  One thing to note is that xvnkb was last updated 4 years ago, so maybe it's buggy.. I don't know.

Last edited by tdy (2009-02-17 15:12:01)

Offline

Board footer

Powered by FluxBB