Hallo,
Ich habe ein sehr seltsames Verhalten festgestellt und zwar bastel ich gerade eine PKGBUILD für ghdl.
In der PKGBUILD steht:
cd ${srcdir}/ghdl-${pkgver}-i686-pc-linux/
tar -C ${pkgdir} -jxvf ghdl-${pkgver}-i686-pc-linux.tar.bz2
So das ist auch alles schön und gut. Nur fehlt jedes mal eine bestimmte Datei nach dem entpacken nach pkg...
Wenn ich die tar.bz2 manuell aufmache und entpacke ist die Datei da. Wenn ich das mit der pkgbuild mache ist sie weg..
Es geht um genauer zu werden um die Datei libgrt.a
hier der Pfad wenn ich tar jxvf ghdl-0.29-i686-pc-linux.tar.bz2 mache:
src/ghdl-0.29-i686-pc-linux/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib/libgrt.a
wenn ich das automatisiert mache wie in der PKGBUILD oben fehlt allerdings immer genau diese datei. Ich denke mal das ist ein Bug in tar oder bz2 vielleicht liegt es an der Größe der Datei oder so ich weiß es nicht was da nicht stimmt oO
Wenn ich das Tar -C ${pkgdir} weglasse entpackt er die Datei normal mit.
EDIT:
Ich dachte nun klappt es so und ich hätte die PKGBUILD ausgetrickst. Aber es fehlt wieder diese eine Datei!:
cd ${srcdir}/ghdl-${pkgver}-i686-pc-linux/
tar jxvf ghdl-${pkgver}-i686-pc-linux.tar.bz2
mkdir -pv ${pkgdir}/usr/local
mv ${srcdir}/ghdl-${pkgver}-i686-pc-linux/usr/local/* ${pkgdir}/usr/local/
EDIT 2:
Ich habe nochmal einen Test gemacht und wollte die Datei gezielt verschieben...
mkdir -pv ${pkgdir}/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib/
mv ${srcdir}/ghdl-${pkgver}-i686-pc-linux/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib/libgrt.a ${pkgdir}/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib/
Lief auch alles glatt ohne fehler.. die Datei ist allerdings verschwunden. Weg. Keine spur davon. Sie liegt nicht an dem Zielort wo sie hinsollte:
Hier der Beweis:
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % pwd
/home/user/sources/ghdl/pkg/ghdl-bin/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % ls
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % ls -la
insgesamt 8
drwxr-xr-x 2 user users 4096 18. Apr 02:38 ./
drwxr-xr-x 3 user users 4096 18. Apr 02:38 ../
EDIT 3:
Wenn ich die Datei ohne PKGBUILD mauell dahin bewege kommt die Datei an:
user@trudy ~/sources/ghdl % cd src/ghdl-0.29-i686-pc-linux/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/
user@trudy ..l/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl % ls
lib/ src/
user@trudy ..l/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl % cd lib
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % ls
grt.lst grt.ver libgrt.a v87/ v93/
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % mv libgrt.a ~/sources/ghdl/pkg/ghdl-bin/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % cd ~/sources/ghdl/pkg/ghdl-bin/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib
user@trudy ..b/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib % ls
libgrt.a
EDIT: 4
Falls jemand das mal ausprobieren will hier ist die PKGBUILD:
pkgname=ghdl-bin
pkgver=0.29
pkgrel=1
pkgdesc="Complete VHDL simulator, using the GCC technology"
arch=('i686')
url="http://ghdl.free.fr/"
license=('GPL')
source=(http://ghdl.free.fr/ghdl-${pkgver}-i686-pc-linux.tar)
md5sums=('3105ffa575244f30d79855e25e5f7816')
package() {
cd ${srcdir}/ghdl-${pkgver}-i686-pc-linux/
tar jxvf ghdl-${pkgver}-i686-pc-linux.tar.bz2
mkdir -pv ${pkgdir}/usr/local/lib/gcc/i686-pc-linux-gnu/4.3.4/vhdl/lib/
cp -vr ${srcdir}/ghdl-${pkgver}-i686-pc-linux/usr/local/* ${pkgdir}/usr/local/
}
EDIT FINAL:
Problem gelöst! hab options=('staticlibs') vergessen. Dadurch wurde die *.a file immer wegoptimiert..