You are not logged in.
Ok, I just finished building & writing my first PKGBUILD. I built gtkpod so that I can use my ipod as I'm a very hardcore fanatic about music so it was very important to me to have this app. I intentionally went the long way to learn abs instead of just building up the source and saying done. The reason is because I want to be able to offer my package (as well as others in the future) back to Arch. Having said that, first off I don't think the PKGBUILD file is perfect yet. I also don't know how to incoprate md5 checks for the source files. (Can anyone offer some guidance on that??) I'd really like to see if I can get someone to look at both the PKGBUILD file as well as possibly a script file of the package as it's built to just offer any suggestions on it. I know the normal process here is to build it up and upload it to incoming and wait, but it occured to me that I started with an app that probably has little demand from others. D'OH!! Anyway, I'm kind of babbling because I'm quite happy, but any feedback and/or advice would be great!
Offline
I am glad you were able to build your application. I was trilled after my first (err - only) successful build. All you need to do is post your PKGBUILD here and others will look at it. Also when you do post your package to incoming be sure to announce it in the "new packages' forum and post the PKGBUILD file there also
Offline
to get your md5sum:
makepkg -g >> PKGBUILD
then edit your PKGBUILD moving the md5sum form the bottom of the file where the above command inserts the md5sum to just below source=() or url=(). then remove the line that was inserted
AKA uknowme
I am not your friend
Offline
to get your md5sum:
makepkg -g >> PKGBUILD
then edit your PKGBUILD moving the md5sum form the bottom of the file where the above command inserts the md5sum to just below source=() or url=(). then remove the line that was inserted
thanks sarah31, that was embarassingly easy!!! :oops: i thought maybe i had to get them from the server that the source tarball was on. ok, all i have left then is to double check my dependancies (don't worry i know it's in the forums as i read a brief thing about how to get a list of them the other day.) and then i'll post the PKGBUILD file. (thanks also terrapin for your input)
Offline
you can use namcap to find you r dependencies. just note it may not find all of them 100% of the time so it helps to know what are build and runtime depends. (there are also depends that may not be tracable via ldd, which namcap is using).
AKA uknowme
I am not your friend
Offline
ok, this is what each command came up with:
Script started on Mon Nov 10 17:00:45 2003
tom@thompson:/var/abs/local/gtkpod$ ls
PKGBUILD depends gtkpod-0.60-1.pkg.tar.gz gtkpod-0.60.tar.gz results
tom@thompson:/var/abs/local/gtkpod$ namcap gtkpod-0.60-1.pkg.tar.gz
gtkpod W: Dependency included but already satisfied (xfree86)
tom@thompson:/var/abs/local/gtkpod$ ldd /usr/bin/gtkpod
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x40024000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x4026a000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x402d4000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x402ee000)
libm.so.6 => /lib/libm.so.6 (0x40302000)
libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0x40324000)
libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0x40345000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x40352000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x40385000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x403b9000)
libdl.so.2 => /lib/libdl.so.2 (0x403be000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x403c1000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x403c6000)
libz.so.1 => /usr/lib/libz.so.1 (0x4042f000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4043d000)
libid3-3.8.so.3 => /usr/lib/libid3-3.8.so.3 (0x404f4000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40546000)
libc.so.6 => /lib/libc.so.6 (0x40596000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x406c2000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x40789000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4078d000)
libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x4079b000)
libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x407ae000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x407b6000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x407dd000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x40847000)
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x4084f000)
tom@thompson:/var/abs/local/gtkpod$ exit
Script done on Mon Nov 10 17:02:03 2003
As you can see, the ldd command came up with a ton of stuff, but a lot of it may be just build time requirements. One particular example that comes to mind because I needed to install when I was building the package the first time was the libid3 file. This is needed because gtkpod has the ability to edit the id3 tags of any mp3's on the computer or the ipod. However, I don't know if this is built into the program and therefore not needed for installing from the binary or not. (I suspect that on is needed either way.) namcap (i just noticed that's pacman backwards...nice) shows just needing xfree86. now, i think it seems obvious by the application name that it requires gtk to run. So, I guess in short I see your point. It really seems like a best judgement thing after looking at the output from both.
And finally here is the PKGBUILD as it is now:
# Contributor: Tom Weinstein tweinstein@cmtengr.com <jedthehumanoid>
pkgname=gtkpod
pkgver=0.60
pkgrel=1
pkgdesc="gtkpod is a gtk based application for using an ipod in linux"
url="http://gtkpod.sourceforge.net/"
depends=('gtk2' 'id3lib' 'xfree86')
source=(http://twtelecom.dl.sourceforge.net/sourceforge/gtkpod/gtkpod-0.60.tar.gz)
md5sums=('4108e065a6865b98ae677b031426b945')
build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}
Offline
No, if you actually read what namcap said it said that you included 'xfree86' but it's already satisfied by something else's dependencies. Namcap lists a lot less than ldd because it finds only the top level link dependencies (ie. gtk2 depends on xfree86, so xfree86 is already satisfied.. xfree86 depends on glibc, so glibc is already satisfied). Looks like namcap thinks the only two things that are needed is gtk2 and id3lib.
ldd gives you all of the linked dependencies (the program has those libraries linked to it). Build dependencies are things like make, gcc, cvs, etc. Things that are needed to create the packages, but don't need to be installed to run it. id3lib, for example, is a dependency in this case. If you uninstall id3lib then gtkpod won't run at all.
I have discovered that all of mans unhappiness derives from only one source, not being able to sit quietly in a room
- Blaise Pascal
Offline
No, if you actually read what namcap said it said that you included 'xfree86' but it's already satisfied by something else's dependencies.
oops, yeah makes perfect sense now. thanks Xentac.
Offline