You are not logged in.
Pages: 1
Сочинял рецепт для firefox-esr, сначала как скрипт, и скрипт в терминале (bash) отрабатывал без ошибок.
Поместил все в receipt и tazpkg ругается на неправильный синтаксис в стр.49 (syntax error: unterminated quoted string), это последнее else в pre_install. В чем подвох?
[c]#SliTaz package receipt.
PACKED_SIZE="16.0K"
UNPACKED_SIZE="40.0K"
PACKAGE="firefox-esr"
VERSION="latest"
CATEGORY="network"
SHORT_DESC="User friendly, secure and fast web browser."
MAINTAINER="pankso@slitaz.org"
LICENSE="MPL2"
TARBALL="$PACKAGE-$VERSION.tar.bz2"
WEB_SITE="http://www.mozilla.org/firefox"
#WGET_URL="https://download.mozilla.org/?product=firefox-esr-latest&os=linux&lang=en-US"
TAGS="web-browser"
#DEPENDS="gtk+ dbus dbus-glib glib jpeg xorg-libX11 xorg-libXdamage \
alsa-lib xorg-libXt libevent libvpx pango nss"
DEPENDS="gtk+ dbus glib jpeg xorg-libX11 xorg-libXdamage alsa-lib xorg-libXt libvpx pango nss"
# Rules to configure and make the package.
#compile_rules()
#{
#}
# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
echo "genpkg-rules ..."
}
# Pre and post install commands for Tazpkg.
pre_install()
{
LN=$LANG
L=${LN:0:2}
if $L=C
then
wget --no-check-certificate -c -O firefox-esr-latest.tar.bz2 "https://download.mozilla.org/?product=firefox-esr-latest&os=linux&lang=en-US"
else
if $L=pt
then
LA=${LN:0:5}
wget --no-check-certificate -c -O firefox-esr-latest.tar.bz2 "https://download.mozilla.org/?product=firefox-esr-latest&os=linux&lang=$LA"
else
if $L=es
then
LA=${LN:0:5}
wget --no-check-certificate -c -O firefox-esr-latest.tar.bz2 "https://download.mozilla.org/?product=firefox-esr-latest&os=linux&lang=$LA"
else
wget --no-check-certificate -c -O firefox-esr-latest.tar.bz2 "https://download.mozilla.org/?product=firefox-esr-latest&os=linux&lang=$L"
fi
fi
fi
mkdir -p /opt/$PACKAGE-$VERSION
tar -xvf $TARBALL -C /opt/$PACKAGE-$VERSION
}
post_install()
{
chown -R -v root:root /opt/$PACKAGE-$VERSION
ln -s /opt/$PACKAGE-$VERSION/firefox /usr/bin/firefox
}
pre_remove()
{
}
post_remove()
{
rm -r /opt/$PACKAGE-$VERSION
rm /usr/bin/firefox
}[/c]
Offline
Разделил: скриптовую часть убрал в /usr/bin/get-firefox-esr-latest. Так все пашет.
Offline
Привет, Юрий.
Закомментирована только первая строка, вторая будет исполняться как команды:
[c]#DEPENDS="gtk+ dbus dbus-glib glib jpeg xorg-libX11 xorg-libXdamage \
alsa-lib xorg-libXt libevent libvpx pango nss"[/c]
Ошибка в записи первого условия:
[c]if $L=C[/c]
Нужно так:
[c]if [ "$L" == "C" ][/c]
Проблемы с загрузкой файлов по протоколу https при помощи Busybox Wget давно решены, поэтому можно удалять старый костыль:
[c]wget --no-check-certificate[/c]
Да и проверка сертификата это не просто прихоть...
Посмотри побольше разных get-пакетов, как там всё делается. Твой подход имеет право на жизнь, но очень необычный.
Offline
Спасибо!
Подход не работает для многих локалей (по крайней мере пока).
--no-check-certificate наоборот добавил, без этого не работало.
Честно говоря, делал пакет для личного пользования, поэтому качать англ версию и делать языковые пакеты смысла не было.
То, что сделал, выкладываю почти всегда - кому-то еще пригодится.
Offline
У меня работает без [c]--no-check-certificate[/c].
Установи [c]cacerts[/c] и [c]openssl[/c] — лишним точно не будет. Сейчас каждый второй сайт работает через https. Да и в нете вопрос приватности муссируется уже не первый год. Firefox помечает сайты с http как ненадежные (если на странице есть любое поле ввода) и т.д.
Любые пакеты Firefox лучше качать отсюда (официальный репозиторий): http://ftp.mozilla.org/pub/firefox/releases/ и не пользоваться адресами типа "https://download.mozilla.org/?product=", которые могут отдавать разное (больше контроль над тем, что ты загрузишь), но при этом тебе придется самому указывать версию того, что ты хочешь загрузить.
Offline
Так все с этого ftp и началось: http://ftp.mozilla.org/pub/firefox/releases/latest-esr/README.txt
Offline
Просто я долгое время возился с рецептами пакетов и у меня появились определенные (пред)убеждения
Такие как: каждый пакет имеет версию; по определенному указанному адресу из интернета можно скачать определенную указанную версию исходников для этого пакета; сборка пакета должна быть повторимой. А вот исходники пакета "cacerts" обновляются и при следующей пересборке, не меняя рецепт, мы получим другое содержимое пакета...
Твой подход с постоянно обновляемым ESR, конечно же, имеет право на жизнь
И даже более того, я подумываю, не изменить ли мне рецепты пакетов firefox-official-*, чтобы они пересобирались с последними версиями. Мне кажется, это очень хорошее исключение из правил.
Offline
В сборку не влезал совсем. Это просто перепаковка в формат slitaz.
И зачем собирать заново, если есть готовая сборка?
i486 и совсем старое железо?
Offline
Последний раз рецепт для Firefox обновлялся 24 ноября 2013 года под версию 17.0.11esr: http://hg.slitaz.org/wok/rev/789fdff5190c
С тех пор никто не обновлял Firefox, компилируемый из исходников на сборочном боте SliTaz: http://cook.slitaz.org/cooker.cgi?pkg=firefox
Компиляция из исходников — это способ получить только то, что нужно, изменяя параметры компиляции.
Хотя... Вот, например, в размере пакетов это не различается:
[*]20 МБ официальный пакет в tar.bz2: http://ftp.mozilla.org/pub/firefox/releases/17.0.11esr/linux-i686/en-US/
[*]15,5 МБ пакет SliTaz в cpio.lzma (жмёт лучше чем tar.bz2): http://cook.slitaz.org/cooker.cgi?pkg=firefox
Да, еще момент есть. Уже некоторое время готовые сборки Firefox требуют GTK+3. А многие всё никак не могут его принять на своей системе... Не так давно можно было собрать Firefox из исходников, исключив GTK+3. Как сейчас — не знаю, мне неважно.
Offline
Если при компиляции можно получить, что нужно - в ней есть смысл. Это ясно. Но если без gtk3 firefox не соберешь, а готовый бинарный браузер запускается без gtk+3 в системе, значит, все, что ему нужно - у него есть.
И смысл сборки?
Я gtk3 тоже не жалую. Как, впрочем, и qt5. Все упрощают, упрощают что-то, а в действительности программы растут и растут, и в размере и в аппетите.
Offline
Не совсем уловил мысль:
если без gtk3 firefox не соберешь, а готовый бинарный браузер запускается без gtk+3 в системе, значит, все, что ему нужно - у него есть.
И смысл сборки?
Сейчас ему нужен GTK+3 во время сборки из исходников (ну, я так думаю ☺) и ему нужен GTK+3 во время работы:
[c]ldd /opt/mozilla/firefox/libmozgtk.so:
linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb774a000)
libdl.so.2 => /lib/libdl.so.2 (0xb7745000)
libgtk-3.so.0 => /usr/lib/libgtk-3.so.0 (0xb7178000)
libgdk-3.so.0 => /usr/lib/libgdk-3.so.0 (0xb7104000)
libc.so.6 => /lib/libc.so.6 (0xb6f8d000)
/lib/ld-2.14.1.so (0xb777e000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6f8a000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6f81000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6f78000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6f6c000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb6f5d000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb6f5a000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb6f57000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6f52000)
libcairo-gobject.so.2 => /usr/lib/libcairo-gobject.so.2 (0xb6f4c000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6e6a000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb6de2000)
libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0xb6ddf000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb6dd6000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6dce000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb6dbe000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb6d9f000)
libatk-bridge-2.0.so.0 => /usr/lib/libatk-bridge-2.0.so.0 (0xb6d74000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6d53000)
libatspi.so.0 => /usr/lib/libatspi.so.0 (0xb6d29000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb6d22000)
libuuid.so.1 => /lib/libuuid.so.1 (0xb6d1d000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb6d07000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb6beb000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6bcb000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb6bc8000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6bc3000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb6b7f000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6b6d000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6b29000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb6b27000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6af5000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6ad4000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0xb6a68000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb69c7000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0xb69b6000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb689b000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb672e000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb672a000)
libz.so.1 => /usr/lib/libz.so.1 (0xb6717000)
libresolv.so.2 => /lib/libresolv.so.2 (0xb66fe000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb66bc000)
libffi.so.6 => /usr/lib/libffi.so.6 (0xb66b6000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb65c2000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0xb6562000)
librt.so.1 => /lib/librt.so.1 (0xb6559000)
libm.so.6 => /lib/libm.so.6 (0xb652c000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0xb6529000)[/c]
Я читал где-то на форумах, что ребята пересобирали Firefox с определенными ключами, так что Firefox не требовал GTK+3 ни во время компиляции, ни во время работы. Не знаю насколько это актуально сейчас...
Offline
Да, действительно, официальный firefox собран с gtk3 и требует его, firefox-esr - там нет этого костыля libmozgtk.
У парней из arch есть все (или почти все): firefox 51.0.1 gtk2 https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=firefox-gtk2
Offline
Pages: 1
[ Generated in 0.021 seconds, 7 queries executed - Memory usage: 1.57 MiB (Peak: 1.77 MiB) ]