FS#12812 - makepkg3.2.2 crash, if PKGBUILD losed arch=() line.
Attached to Project:
Pacman
Opened by Road Tang (roadtang) - Friday, 16 January 2009, 05:40 GMT
Last edited by Allan McRae (Allan) - Monday, 03 August 2009, 03:30 GMT
Opened by Road Tang (roadtang) - Friday, 16 January 2009, 05:40 GMT
Last edited by Allan McRae (Allan) - Monday, 03 August 2009, 03:30 GMT
|
Details
Summary and Info:
when make the PKGBUILD of squirm from the ABS. the makepkg crash with message "/usr/bin/makepkg: line 113: printf: `$': invalid format character" I found the PKGBUILD losed arch=() line. after add arch=(i686), the makepkg works. Steps to Reproduce: 1. get the squirm PKGBUILD, put it into current directory. ------------- start--------------- # Maintainer: Spider.007 <archPackage@spider007.net> # Contributor: Spider.007 <archPackage@spider007.net> packager="Spider.007 <archPackage@spider007.net>" pkgname=squirm pkgver=1.26 pkgrel=1 pkgdesc="Squirm is a fast & configurable redirector for squid. This package includes an adzap2squirm script" url="http://squirm.foote.com.au/" groups= provides= depends=('squid') source=("$url/$pkgname-$pkgver.tgz") md5sums=('54ac1d208620ec1e4419f97315d38848') build() { cp $startdir/Makefile $startdir/src/$pkgname-$pkgver cd $startdir/src/$pkgname-$pkgver make || return 1 sed "s|PREFIX=|PREFIX=$startdir/pkg|g" Makefile > Makefile.new && mv Makefile.new Makefile make install } -------------------- end ------------------------- 2. run makepkg version3.2.2, errors take places. 3. add arch=(i686) to PKGBUILD 4. run makepkg again. It's good. |
This task depends upon
Closed by Allan McRae (Allan)
Monday, 03 August 2009, 03:30 GMT
Reason for closing: Fixed
Additional comments about closing: pacman-3.3.0
Monday, 03 August 2009, 03:30 GMT
Reason for closing: Fixed
Additional comments about closing: pacman-3.3.0
> makepkg
==> ERROR: squirm is not available for the 'i686' architecture.
Note that many packages may need a line added to their PKGBUILD
such as arch=('i686').
The line that is causing the issue is:
printf "\033[1;31m==> $(gettext "ERROR:")\033[1;0m\033[1;1m ${mesg}\033[1;0m\n" "$@" >&2
That looks fine to me...
A long shot, but what locale are you using?
Not en_US. my local is zh_CN.gb2312..
I changed LC_ALL to en_US. the problem disappeared.
$ makepkg
/usr/bin/makepkg: line 113: printf: `$': invalid format character
==> 错误:
$ env LC_ALL=en_US makepkg
==> ERROR: squirm is not available for the 'i686' architecture.
Note that many packages may need a line added to their PKGBUILD
such as arch=('i686').
but why?
msgid "%s is not available for the '%s' architecture."
msgstr "%1$s 不具备 '%2$s' 架构。"
If I get rid of the "1$" and "2$: it works... Someone with translation experience will need to chime in here.