You are not logged in.

#1 2010-10-24 09:35:09

machinecrusade
Member
From: Victoria, Canada
Registered: 2010-09-12
Posts: 11

makepkg makes a .pkg.tar.xz with only a PKGINFO.

i have downloaded a program.  http://linux.xulin.de/c/isodump-0.06.00.tar.gz   it installs fine.  i would like to make a package.
i made this from an example pkgbuild...

# dh's first pkg

pkgname=isodump
pkgver=0.06.00
pkgrel=1
pkgdesc="isodump- im going to convert an img to an iso, but i think it does some other stufdf as well.    -dh"
arch=(i686)
url=""
license=('GPL')
groups=()
depends=()
makedepends=()
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=($pkgname-$pkgver.tar.gz)
noextract=()
md5sums=('da6996e1c3e8abc5de0904b232e379e0') #generate with 'makepkg -g'

build() {
  cd "$srcdir/$pkgname-$pkgver"

  ./configure --prefix=/usr
  make
}

package() {
  cd "$srcdir/$pkgname-$pkgver"

  sudo make DESTDIR="$pkgdir/" install
}

# vim:set ts=2 sw=2 et:

###note the "sudo" on line 35.   it would not create directories and install without it,  btw my sudo needs no passwd.  im pretty sure that 'sudo' shouldn't be there,  anyways... back to my problem at hand.

i ran makepkg, my output as follows...

[dh923@deathstar buildingpkgs]$ makepkg
==> Making package: isodump 0.06.00-1 (Sun Oct 24 02:01:04 PDT 2010)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
  -> Found isodump-0.06.00.tar.gz
==> Validating source files with md5sums...
    isodump-0.06.00.tar.gz ... Passed
==> Extracting Sources...
  -> Extracting isodump-0.06.00.tar.gz with bsdtar
==> Starting build()...
Your System is Linux release 2.6.35-ARCH.
Great! Linking Makefile.
find . -name "*.o" -exec rm -f {} \;
rm -f isodump isodump.1 header.h mkmkman mkman* all install
Now run 'make' or 'make install'!
gcc -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -I./ -DOS_TYPE_Linux -DOS_TYPE_STR=\"Linux\" -Dprg_name=\"isodump\" -DMANUAL_NUMBER=1  -Wl,-warn-common -s -L./  isodump.c   -o isodump
ln -s isodump.h header.h
gcc -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -I./ -DOS_TYPE_Linux -DOS_TYPE_STR=\"Linux\" -Dprg_name=\"isodump\" -DMANUAL_NUMBER=1  -Wl,-warn-common -s -L./  mkmkman.c   -o mkmkman
cat isodump.man | ./mkmkman > mkman.c
gcc -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -I./ -DOS_TYPE_Linux -DOS_TYPE_STR=\"Linux\" -Dprg_name=\"isodump\" -DMANUAL_NUMBER=1  -Wl,-warn-common -s -L./  mkman.c   -o mkman
./mkman > isodump.1
size isodump
   text    data     bss     dec     hex filename
  10805     312      60   11177    2ba9 isodump
touch all
==> Entering fakeroot environment...
==> Starting package()...
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded: ignored.
install -m 0755 -o root -g root isodump /usr/local/bin
install -m 0644 -o root -g root isodump.1 /usr/local/man/man1
touch install
==> Tidying install...
  -> Purging other files...
  -> Compressing man and info pages...
  -> Stripping unneeded symbols from binaries and libraries...
==> WARNING: Package contains reference to $srcdir
==> Creating package...
  -> Generating .PKGINFO file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: isodump 0.06.00-1 (Sun Oct 24 02:01:06 PDT 2010)

i thought it looked good,  (except for the the libfakeroot error) but the pkg it made was very small.  it only had this in it
.PKGINFO

# Generated by makepkg 3.4.1
# using fakeroot version 1.14.4
# Sun Oct 24 09:01:05 UTC 2010
pkgname = isodump
pkgver = 0.06.00-1
pkgdesc = isodump- im going to convert an img to an iso, but i think it does some other stufdf as well.    -dh
url = 
builddate = 1287910865
packager = Unknown Packager
size = 4096
arch = i686
license = GPL
makepkgopt = strip
makepkgopt = docs
makepkgopt = libtool
makepkgopt = emptydirs
makepkgopt = zipman
makepkgopt = purge

what have i missed.   i posted it here in newbie corner because im sure i didn't rtfm enough.    what have i missed?

Last edited by machinecrusade (2010-10-24 09:36:50)

Offline

#2 2010-10-24 09:43:36

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,365
Website

Re: makepkg makes a .pkg.tar.xz with only a PKGINFO.

If you did not have sudo there you would have noticed that "make install" does not respect DESTDIR so it installed files in /usr/bin...

Offline

#3 2010-10-24 17:57:33

machinecrusade
Member
From: Victoria, Canada
Registered: 2010-09-12
Posts: 11

Re: makepkg makes a .pkg.tar.xz with only a PKGINFO.

this is the last few lines of my install output if sudo is removed from the pkgbuild.

==> Entering fakeroot environment...
==> Starting package()...
install -m 0755 -o root -g root isodump /usr/local/bin
install: cannot create regular file `/usr/local/bin/isodump': Permission denied
make: *** [install] Error 1
    Aborting...

but with or without sudo,  wheres the package?  i thought i would have a package that i would use pacman to install/remove.  not just a .xz with a PKGINFO in it?    im so confused.....

Offline

#4 2010-10-24 19:07:11

Barrucadu
Member
From: York, England
Registered: 2008-03-30
Posts: 1,158
Website

Re: makepkg makes a .pkg.tar.xz with only a PKGINFO.

The Makefile isn't very good - it's ignoring DESTDIR and copying files straight to /usr/local.

You may need to use sed or something to patch it, or it may respect a different variable.

Offline

Board footer

Powered by FluxBB