PKGBUILD и Firefox Nightly: что я делаю не так?

До недавнего времени не было необходимости собирать пакеты из исходного кода самому. На Arch я около года, пришло время, так сказать, окунуться с головой.

Любимый мной firefox-nightly в AUR оказался несколько подзаброшенным. Я решил сделать пакет из исходников для русской версии, взял PKGBUILD, откорректировал его, подставив свежие данные и суммы, собрал его успешно(?) в .pkg.tar.zst. При установке пакета через pacman -U или pamac программа не запускается, выдавая "Невозможно найти firefox-nightly-ru".

Прошу не кидаться тапками - я учусь. Wiki тоже вроде бы вычитал досконально, но что-то упускаю или не понимаю принципиально важного момента. Кто бы мог помочь? Гугл не помог - детального мануала нигде нет.

PKGBUILD:


# Maintainer:
# Contributor:
_name=firefox
_channel=nightly
_lang=ru
pkgname=${_name}-${_channel}-${_lang}
pkgdesc="Standalone Web Browser from Mozilla — Nightly build (${_lang})"
url="https://www.mozilla.org/${_lang}/${_name}/${_channel}"
_version=88.0a1
pkgver=88.0a1.0bc57a9e
pkgrel=1
arch=(i686 x86_64)
license=(MPL GPL LGPL)
depends=(dbus-glib gtk3 libxt nss mime-types)
optdepends=('pulseaudio: audio support'
            'ffmpeg: h.264 video'
            'hunspell: spell checking'
            'hyphen: hyphenation'
            'libnotify: notification integration'
            'networkmanager: location detection via available WiFi networks'
            'speech-dispatcher: text-to-speech')

conflicts=('firefox-nightly')
provides=('firefox-nightly')

_url="https://ftp.mozilla.org/pub/${_name}/nightly/latest-mozilla-central-l10n"
_src="${_name}-${_version}.${_lang}.linux"
_filename="$(date +%Y%m%d)-${_src}"
source=("${pkgname}.desktop" 'policies.json')
source_i686=("${_filename}-i686.tar.bz2"::"${_url}/${_src}-i686.tar.bz2"
             "${_filename}-i686.tar.bz2.asc"::"${_url}/${_src}-i686.tar.bz2.asc"
             "${_filename}-i686.txt"::"${_url}/${_src}-i686.checksums")
source_x86_64=("${_filename}-x86_64.tar.bz2"::"${_url}/${_src}-x86_64.tar.bz2"
               "${_filename}-x86_64.tar.bz2.asc"::"${_url}/${_src}-x86_64.tar.bz2.asc"
               "${_filename}-x86_64.txt"::"${_url}/${_src}-x86_64.checksums")

sha512sums=('02bd8c8c717e6796fb1772f51c1bfd78ff3ca7c5355c08b9568dc36cb72b8b84330d20522653eedda12bdec1517cd4074a4bc5d51a8667880121e946b85c11ec'
            '5ed67bde39175d4d10d50ba5b12063961e725e94948eadb354c0588b30d3f97d2178b66c1af466a6e7bd208ab694227a1391c4141f88d3da1a1178454eba5308')
sha512sums_i686=(SKIP SKIP SKIP)
sha512sums_x86_64=(SKIP SKIP SKIP)

validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) # Mozilla’s GnuPG release key

pkgver() {
  echo "${_version}.$(head -n1 ${_filename}-${CARCH}.txt | cut -c-8)"
}

package() {
  OPT_PATH="opt/${pkgname}"

  # Install the package files
  install -d "${pkgdir}"/{usr/bin,opt}
  cp -r ${_name} "${pkgdir}"/${OPT_PATH}
  ln -s "/${OPT_PATH}/${_name}" "${pkgdir}"/usr/bin/${pkgname}

  # Install .desktop files
  install -Dm644 "${srcdir}"/${pkgname}.desktop -t "${pkgdir}"/usr/share/applications

  # Install icons
  SRC_LOC="${srcdir}"/${_name}/browser
  DEST_LOC="${pkgdir}"/usr/share/icons/hicolor
  for i in 16 32 48 64 128
  do
      install -Dm644 "${SRC_LOC}"/chrome/icons/default/default${i}.png "${DEST_LOC}"/${i}x${i}/apps/${pkgname}.png
  done

  # Disable auto-updates
  install -Dm644 "${srcdir}"/policies.json -t "${pkgdir}"/${OPT_PATH}/distribution

  # Use system-provided dictionaries
  rm -rf "${pkgdir}"/${OPT_PATH}/{dictionaries,hyphenation}
  ln -sf /usr/share/hunspell "${pkgdir}"/${OPT_PATH}/dictionaries
  ln -sf /usr/share/hyphen "${pkgdir}"/${OPT_PATH}/hyphenation
}

Проверьте название бинарника вашего пакета
pacman -Qll firefox-nightly-ru | grep bin
vs220
Проверьте название бинарника вашего пакета
pacman -Qll firefox-nightly-ru | grep bin
Как-то так.
[bcat@bc-vb Загрузки]$ pacman -Qll firefox-nightly-ru | grep bin
firefox-nightly-ru /opt/firefox-nightly-ru/firefox-bin
firefox-nightly-ru /opt/firefox-nightly-ru/firefox-bin.sig
firefox-nightly-ru /usr/bin/
firefox-nightly-ru /usr/bin/firefox-nightly-ru
/usr/bin/firefox-nightly-ru
В терминале запускается?
vs220
/usr/bin/firefox-nightly-ru
В терминале запускается?
Да, запускается. А из Меню запуска - выдает ошибку.
Adrian.Carver
# Install .desktop files
install -Dm644 "${srcdir}"/${pkgname}.desktop -t "${pkgdir}"/usr/share/applications
Что в файле написано?
Adrian.Carver
А из Меню запуска - выдает ошибку.
Ну меню ваше значит не умеет самообновлять список бинарников.
Ищите как в нем перечитать список
RusWolf
Adrian.Carver
# Install .desktop files
install -Dm644 "${srcdir}"/${pkgname}.desktop -t "${pkgdir}"/usr/share/applications
Что в файле написано?

[Desktop Entry]
Name=Firefox Nightly
StartupWMClass=Nightly
GenericName=Web Browser
GenericName[ru]=Веб-браузер
Comment=Browse the World Wide Web
Comment[ru]=Доступ в Интернет
Exec=firefox-nightly %u
Terminal=false
Type=Application
Icon=firefox-nightly-icon
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
StartupNotify=true
Actions=NewTab;NewWindow;NewPrivateWindow;SafeMode;ProfileManager

[Desktop Action NewTab]
Name=Open new tab
Name[ru]=Открыть новую вкладку
Exec=firefox-nightly -new-tab about:newtab

[Desktop Action NewWindow]
Name=Open new window
Name[ru]=Открыть новое окно
Exec=firefox-nightly -new-window

[Desktop Action NewPrivateWindow]
Name=New private window
Name[ru]=Новое приватное окно
Exec=firefox-nightly -private-window

[Desktop Action SafeMode]
Name=Safe Mode
Name[ru]=Безопасный режим
Exec=firefox-nightly -safe-mode %u

[Desktop Action ProfileManager]
Name=Profile Manager
Name[ru]=Менеджер профилей
Exec=firefox-nightly --ProfileManager %u
Adrian.Carver
Exec=firefox-nightly %u
Что же ты хочешь, когда у тебя /usr/bin/firefox-nightly-ru? :)
Или меняй у себя название бинарника или свой .desktop files делай.
Нашел.

Exec=firefox-nightly %u. Должно быть Exec=firefox-nightly-ru %u.

Пересобрал, работает!
Спасибо огромное!
 
Зарегистрироваться или войдите чтобы оставить сообщение.