[aur-general] Fwd: Re: Linux Manga Downloader

Jesse Juhani Jaara jesse.jaara at gmail.com
Tue May 8 13:42:15 EDT 2012


ti, 2012-05-08 kello 18:16 +0200, Jorge Barroso kirjoitti:
>pkgver=0.2.0.1-5
If I'm not completely mistaken '-' is not allowed in the version string.
set the version to 0.2.0.1_5Beta. And then add another variable.
_rawversion=0.2.0.1-5
> pkgdesc="A manga downloader for linux, it allows fownloads from many
> English and Spanish websites"
the description could be shortened to this "Download manga from several
English and Spanish websites."
The description should be as short as possible, but still of course try
to distinct it from other same kind of apps.

> arch=('any')
> url="http://code.google.com/p/linux-manga-downloader/"
> license=('GPL3')
> depends=('libnotify' 'gtkdialog' 'wget' 'lynx' 'zenity')
You can just omit the install variable, you don't need instal file for
this package so no need for the install= variable ether.

> source=($pkgname-$pkgver.tar.gz)
This is plain wrong. This tells makepkg to include the source-files of
the application in the ArchLinux PKGBUILD source-package. This is wrong.
Instead you should provide full URL to the download file online.
So it should be
source=(http://${pkgabme}.googlecode.com/files/${pkgname}_
${_rawversion}_all.deb)

build() function is met only for the command needed to compile the
sourcecode into binary executable. Usually this includes commands
./configure --prefix=/usr
and
make
for c and c++ aplications.

package() funcktion in the other hand is used to copy the files into
their rightfull place, if the application comes with Makefile you use
command 'make DESTDIR="${pkgdir}" install' for this


> cd "$srcdir/$pkgname_$pkgver/usr/local/bin"
> chmod +x 4chan
......
> cp zerochan /usr/local/bin/zerochan
All that could be simplified into
---------------------------------------
1. cd "${srcdir}"
2. tar xf data.tar.gz
3. mkdir -p "${pkgdir}/usr/"
4. cp -r "${srcdir}/./usr/local/bin" "${pkgdir}/usr/bin"
5. cp -r "${srcdir}/./usr/share" "${pkgdir}/usr/share"
6.
7. chmod +x "${pkgdir}/usr/bin"/*
8. sed 's|usr/local|usr|' -i "${pkgdir}/usr/bin"/*
9. sed 's|usr/local|usr|' -i
"${pkgdir}/usr/share/applications/LDM.desktop"
---------------------------------------
Explanation:
1. cd into the directory where our extracted deb file is
2. extrackt the data file part of the deb archive
3. Make the directory /usr in directory ${pkgdir}
   ${pkgdir}== /the/directory/where/your/PKGBUILD_file_is/pkg
4. copy the bin directory to ${pkgdir}/usr/bin, this is important part.
   You MUST never copy anyfiles to /usr or anytoher direcoty, without 
   putting ${pkgdir} in front of it. Othervice makepkg will try to copy
   that file directly to the system, instead of putting it in a pacman
   installable file. The -r after cp tell cp to copy the whole directory
5. Do the same for the share directory. Also notice that in line 4 we
   copy the file to /usr/bin and not /usr/local/bin. This is becouse we
   don't use the /usr/local directory in ArchLinux and so everythin
   should go to /usr.
6. Just some randon empty line to make reading easyer. One between lines
   1 and 2 would be nice too. Does not serve any bigger purpose.
7. Make sure every file in directory "${pkgdir}/usr/bin" is executable.
8. Make sure that we don't refer to the old ubuntu stule /usr/local/
   directory anywhere, but instead use the Arch style /usr only.
9. Fix the desktop file to point into /usr instead of /usr/local

I think this should make everything clear :D (You still have to fix any
errors I might have made)
Also like Chris Shakalis said you could use the install command instead
of cp and chmod, but cp and chmod work as well too.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: This is a digitally signed message part
URL: <http://mailman.archlinux.org/pipermail/aur-general/attachments/20120508/a7883d01/attachment-0001.asc>


More information about the aur-general mailing list