You are not logged in.
I'm testing my own package cloudsn-git:
https://aur.archlinux.org/packages/cloudsn-git/
If I use yaourt to install the package directly, everything works smoothly.
But if I download the pkgbuild tarbal and manually use makepkg to install it, the binary doesn't run. Instead python complains about name missing in my package.
I checked the pkg directory. The binaries are all different, but the directory structures are identical. The package made manually is slightly larger.
What can lead to the difference? I'm really confused. Isn't yaourt simply calling makepkg behind the scene?
Thanks in advance.
Last edited by qiuwei (2013-09-09 16:53:40)
Offline
Please update your PKGBUILD. See the manual or the wiki with the same name respectively. _gitroot and _gitname are obsolete techniques which makepkg now handles internally since pacman 4.1.
Here is an example of a well formed PKGBUILD
yaourt injects its own metadata into the PKGBUILD before calling makepkg (which is rather disturbing).
Last edited by Earnestly (2013-09-09 15:48:54)
Offline
Binaries? In a python application?
Offline
Binaries? In a python application?
Sorry, I meant pyc files.
Offline
Please update your PKGBUILD. See the manual or the wiki with the same name respectively. _gitroot and _gitname are obsolete techniques which makepkg now handles internally since pacman 4.1.
Here is an example of a well formed PKGBUILD
yaourt injects its own metadata into the PKGBUILD before calling makepkg (which is rather disturbing).
Thanks for the hints.
I tried rewriting the PKGBUILD, but the problem remains.
I found that this problem also exists for cloudsn, which is not maintained by me and doesn't use git.
Could you give a little bit more hints on what metadata yaourt injects into PKGBUILD?
Thanks in advance.
Offline
Could you give a little bit more hints on what metadata yaourt injects into PKGBUILD?
Read the source.
http://git.archlinux.fr/yaourt.git/tree … .sh.in#n36
http://git.archlinux.fr/yaourt.git/tree … sh.in#n358
etc.
I know it's difficult to read and quite poorly structured with lots of eval abuse, but it's all there.
Ignore yaourt though. It is not supported and entirely unofficial.
If it doesn't work with makepkg, then your PKGBUILD/package is broken.
Last edited by Earnestly (2013-09-09 16:27:24)
Offline
Read the source.
http://git.archlinux.fr/yaourt.git/tree … .sh.in#n36
http://git.archlinux.fr/yaourt.git/tree … sh.in#n358
etc.I know it's difficult to read and quite poorly structured with lots of eval abuse, but it's all there.
Ignore yaourt though. It is not supported and entirely unofficial.
If it doesn't work with makepkg, then your PKGBUILD/package is broken.
Thanks for the detailed instructions.
I found that the permissions of some files are different. The PKGBUILD used to work. I'm not sure whether the problem lies upstream or not.
Thanks!
Mark it as solved.
EDIT: My fault, I didn't realize that I was building the package on a ntfs partition:(
Last edited by qiuwei (2013-09-09 20:30:06)
Offline
For one thing, this is a python2 application. The shebang of the .py files is "#!/usr/bin/python", but this would be python3 in Arch's case, so you would have to alter the shebangs to "#!/usr/bin/env python2". I suspect, that yaourt does this automatically for some reason (or at least I assume that).
EDIT: Okay... weird.
Last edited by Awebb (2013-09-09 16:55:29)
Offline