You are not logged in.
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
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
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
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