Упаковать бинарики в пакет

Есть на sourceforge проект (конкретно - obmenu3), который я хочу сделать доступным из AUR. Там выложены исходники и два бинарика - 32bit и 64bit. По ряду причин (не просто по прихоти) пересобирать из исходников я не хочу, а хочу просто обернуть готовые бинарики в пакетную обёртку.
Трудности у меня вызывает наличие двух архитектур. Соответственно, разные исходные файлы и разные контрольные суммы. Я, вроде, решил проблему, но решение мне не нравится.
...
arch=('i686' 'x86_64')
ARCH=`uname -a | cut -d " " -f 13`
source=(http://sourceforge.net/projects/obmenu3/files/$pkgver/obmenu3-$pkgver-$ARCH.tgz)
if [[ $ARCH == 'i686' ]]; then
  md5sums=('e5e35839d1aa2502619ce5fd479fe026')
else
  md5sums=('a77eb9e1d58f68f4acb6ee7580b179a5')
fi
...
Нет ли в этом решении чего-то такого, что не принято в приличном обществе? Может, для этой проблемы есть более культурное решение?
в культурном обществе есть переменная CARCH. Обычно ею и пользуются примерно в таком формате для определения md5sums.
Вот например
или даже так
PGP 0x31361F01
arcanisrepo
arcanis
в культурном обществе есть переменная CARCH. Обычно ею и пользуются примерно в таком формате для определения md5sums.
Вот например
или даже так
Именно то, что надо, спасибо! Вроде и читал про PKGBUILD, но как-то просмотрел...
кстати, общая рекомендация к той части, которую вы написали. К пользовательским переменным (не являющиеся частью makepkg.conf или системы или PKGBUILDа) при возможности лучше добавлять подчеркивание в начале во избежание конфликтов.
PGP 0x31361F01
arcanisrepo
Заменил шаманство с uname на CARCH, проверил, залил на AUR (obmenu3). И получил косяк на страничке пакета: переменная CARCH в ссылке на исходный файл, естественно, не отработалась. Получилось так:
Sources
    http://sourceforge.net/projects/obmenu3/files/1.01/obmenu3-1.01-.tgz
На самом деле файлы (в зависимости от архитектуры) - obmenu3-1.01-i686.tgz и obmenu3-1.01-x86_64.tgz. С этим как бороться? Или плюнуть?
плюнуть. Веб рожа не держит нестандартные переменные. Пока, по крайней мере
А вот cp -R я бы заменил на install -Dm644. Например, у меня так есть, или поштучно, файлов то немного. Но это не обязательно, но изменить хотя бы на такое надо:
cp -R "$srcdir/usr" "$pkgdir"
А то сейчас у вас там еще в корень симлинк на сурцы кладется) $srcdir содержит распакованные сурцы + симлинк на сурцы, находящиеся уровнем выше.
PGP 0x31361F01
arcanisrepo
arcanis
А вот cp -R я бы заменил на install -Dm644.
Вот тут или я торможу, или install. Декларируется, что 'install' is similar to 'cp', но при этом аналога ключика '-R' я у install не нашёл. А желания тупо создавать все каталоги по одному как-то не возникает. Так может install скопировать каталог со всеми подкаталогами, как cp -R? Я не осилил.
arcanis
но изменить хотя бы на такое надо:
cp -R "$srcdir/usr" "$pkgdir"
Да. согласен.
Спасибо.
Там отрабатываются только "постоянные переменные". А архитектура заранее не задана, так что это обычное дело, например почти во всех во пакетах с драйверами nvidia то же самое:
[ "$CARCH" = "i686"   ] && ARCH=x86
[ "$CARCH" = "x86_64" ] && ARCH=x86_64
source=("http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run")

Но некоторые выкрутились:
if [[ "$CARCH" = "i686" ]]; then
  _arch='x86'
  source=('http://us.download.nvidia.com/XFree86/Linux-x86/173.14.39/NVIDIA-Linux-x86-173.14.39-pkg0.run')
fi
if [[ "$CARCH" = "x86_64" ]]; then
  _arch='x86_64'
  source=('http://us.download.nvidia.com/XFree86/Linux-x86_64/173.14.39/NVIDIA-Linux-x86_64-173.14.39-pkg0.run')
fi
В результате отображается x86_64.
https://aur.archlinux.org/packages/nv/nvidia-173xx-all/PKGBUILD
Хотя наверное, можно было и попроще это записать.
Natrio
В результате отображается x86_64.
Хм... хрен редьки не слаще. Типа нужна человеку i686, а он смотрит на x86_64 и репу чешет. IMHO уж лучше пусть будет явный глюк.
А впрочем, вряд ли кто-то вообще на Source смотреть будет, так что всё равно.
[offtop]
uname -a | cut -d \  -f 13
=
uname -m
)
 
Зарегистрироваться или войдите чтобы оставить сообщение.