I am trying to build libguestfs version libguestfs-1.18.11 in my archlinux box i am getting this error: febootstrap: error: /lib appears as both directory and ordinary file (glibc, ntfs-3g) make[2]: *** [stamp-supermin] Error 1 make[2]: Leaving directory `/mnt/downloads/dnl/PKGBUILDs/kvm/libguestfs/src/libguestfs-1.18.11/appliance' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/mnt/downloads/dnl/PKGBUILDs/kvm/libguestfs/src/libguestfs-1.18.11' make: *** [all] Error 2 ==> ERROR: A failure occurred in build(). Aborting... any pointers ? -- Evaggelos Balaskas - Unix System Engineer http://gr.linkedin.com/in/evaggelosbalaskas
On Sun, Nov 25, 2012 at 10:42:37AM +0200, Evaggelos Balaskas wrote:
I am trying to build libguestfs version libguestfs-1.18.11 in my archlinux box
i am getting this error:
febootstrap: error: /lib appears as both directory and ordinary file (glibc, ntfs-3g)
The error is as it says: according to febootstrap, two packages (glibc and ntfs-3g) both list /lib, but list it as a directory and a regular file. This is an irreconcilable problem as far as febootstrap is concerned. There are several possibilities: (a) It really is a packaging problem with ArchLinux, nothing to do with febootstrap. (b) febootstrap's pacman support is having some trouble reading the packages, so it thinks /lib has different types, but really it doesn't. (c) Pacman normally resolves this in some way, and febootstrap should do the same thing. Running the febootstrap command with -v may help. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming blog: http://rwmj.wordpress.com Fedora now supports 80 OCaml packages (the OPEN alternative to F#) http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora
I am really sorry for bothering you for this, but it seems i can't get a break ! indeed ntfs-3g (makepkg from source) creates a /lib configure.ac : rootlibdir="/lib${libdir##*/lib}" $ pacman -Qpl ntfs-3g-2012.1.15-4-x86_64.pkg.tar.xz| head -1 ntfs-3g /lib/ $ pacman -Qpl glibc-2.16.0-5-x86_64.pkg.tar.xz | head glibc /etc/ glibc /etc/gai.conf glibc /etc/locale.gen glibc /etc/nscd.conf glibc /etc/rc.d/ glibc /etc/rc.d/nscd glibc /etc/rpc glibc /lib glibc /lib64 glibc /sbin/ "/lib/" from ntfs-3g is empty but somehow is configured on source code. febootstrap -v didnt returned me some more info pacman doesnt conflict with /lib from ntfs-3g (cause lets faced it this package is the problem) cause in fact pacman knows the existances of /lib and doesnt do anything else. any help would be appreciated On Sun, Nov 25, 2012 at 8:08 PM, Richard W.M. Jones <rjones@redhat.com> wrote:
On Sun, Nov 25, 2012 at 10:42:37AM +0200, Evaggelos Balaskas wrote:
I am trying to build libguestfs version libguestfs-1.18.11 in my archlinux box
i am getting this error:
febootstrap: error: /lib appears as both directory and ordinary file (glibc, ntfs-3g)
The error is as it says: according to febootstrap, two packages (glibc and ntfs-3g) both list /lib, but list it as a directory and a regular file. This is an irreconcilable problem as far as febootstrap is concerned.
There are several possibilities:
(a) It really is a packaging problem with ArchLinux, nothing to do with febootstrap.
(b) febootstrap's pacman support is having some trouble reading the packages, so it thinks /lib has different types, but really it doesn't.
(c) Pacman normally resolves this in some way, and febootstrap should do the same thing.
Running the febootstrap command with -v may help.
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming blog: http://rwmj.wordpress.com Fedora now supports 80 OCaml packages (the OPEN alternative to F#) http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora
-- Evaggelos Balaskas - Unix System Engineer http://gr.linkedin.com/in/evaggelosbalaskas
On Thu, Nov 29, 2012 at 11:19:54AM +0200, Evaggelos Balaskas wrote:
I am really sorry for bothering you for this, but it seems i can't get a break !
indeed ntfs-3g (makepkg from source) creates a /lib
configure.ac : rootlibdir="/lib${libdir##*/lib}"
$ pacman -Qpl ntfs-3g-2012.1.15-4-x86_64.pkg.tar.xz| head -1 ntfs-3g /lib/
So it looks like this /lib is a directory.
$ pacman -Qpl glibc-2.16.0-5-x86_64.pkg.tar.xz | head [...] glibc /lib
And this one is a directory too. febootstrap should be able to combine these: https://github.com/libguestfs/febootstrap/blob/master/src/febootstrap.ml#L11... But for some reason that's not happening. Probably the pacman plugin isn't getting the type of one of the files correctly. You'll have to enable debugging and perhaps add more debug statements into febootstrap_pacman.ml, while running: ./src/febootstrap --names glibc ntfs-3g until you can see what's going wrong. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
I 've just figured this out. glibc creates a symbolic link for /lib: lib -> usr/lib so yes this is a file (a symbolic link) ntfs3g creates an empty /lib directory ! The problem exist in ntfs-3g source code in this configure.ac : rootlibdir="/lib${libdir##*/lib}" after configuring libntfs-3g i can see this: Makefile:rootlibdir = /lib pacman (archlinux's package manager) doesnt care about the dir /lib cause have already installed /lib symbolic link to usr/lib I am guessing that the below lines from febootstrap source code 113 else if (ft1.ft_dir || ft2.ft_dir) && (not (ft1.ft_dir && ft2.ft_dir)) then ( 114 eprintf "febootstrap: error: %s appears as both directory and ordinary file (%s, %s)\n" 115 name1 pkg1 pkg2; 116 exit 1 have a valid reason to exist and checks for this issues. in fedora ntfs-3g spec file the /lib under %files doesnt exist. I'll make some changes to ntfs-3g PKGBUILD and suggest the patch to archlinux community. Rich, thanks again for the help. -- Evaggelos Balaskas - Unix System Engineer http://gr.linkedin.com/in/evaggelosbalaskas
On Thu, Nov 29, 2012 at 05:51:14PM +0200, Evaggelos Balaskas wrote:
I 've just figured this out.
glibc creates a symbolic link for /lib: lib -> usr/lib so yes this is a file (a symbolic link)
ntfs3g creates an empty /lib directory !
So this is (arguably) a bug in febootstrap, although it might be easier to fix it by removing the empty /lib directory from the ntfs-3g package. [...]
I am guessing that the below lines from febootstrap source code
113 else if (ft1.ft_dir || ft2.ft_dir) && (not (ft1.ft_dir && ft2.ft_dir)) then ( 114 eprintf "febootstrap: error: %s appears as both directory and ordinary file (%s, %s)\n" 115 name1 pkg1 pkg2; 116 exit 1
have a valid reason to exist and checks for this issues.
The code in general is designed to deal with the case where multiple files with the same path exist in multiple packages. This is a very common case in just about all packaging systems; most likely pacman has some code in it to deal with this case too. The code should combine certain types of configuration files, directories with the same path, and so on. What we would need to do is to modify this test so it can handle the case of a directory and a symbolic link to a directory. There's unfortunately no simple, one line fix for this, but it could be fixed with a larger patch.
in fedora ntfs-3g spec file the /lib under %files doesnt exist.
I'll make some changes to ntfs-3g PKGBUILD and suggest the patch to archlinux community.
I think this is going to be the best way to fix this. If ntfs-3g isn't using the empty directory for anything, it doesn't seem to make much sense having it in the package. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v
just an update: I talked with archlinux devs about /lib on ntfs-3g and they resolved it. The next update of ntfs-3g will not have an empty /lib dir. -- Evaggelos Balaskas - Unix System Engineer http://gr.linkedin.com/in/evaggelosbalaskas
participants (2)
-
Evaggelos Balaskas -
Richard W.M. Jones