| Summary: | Значения макросов %firefox_*_extensionsdir не соответствует текущему firefox'у | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Nikolay A. Fetisov <naf> |
| Component: | firefox | Assignee: | Alexey Gladkov <legion> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | legion, rauty, sbolshakov |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=37472 | ||
Описанные директории продолжают поддерживаться firefox. Если это не так в пакете, то это ошибка. (Ответ для Alexey Gladkov на комментарий #1) > Описанные директории продолжают поддерживаться firefox. Если это не так в > пакете, то это ошибка. Чистая система, свежепоставленный firefox. $ rpm -aq |grep firefox firefox-89.0.2-alt1.aarch64 $ strace -f firefox &>/tmp/strace Ждём запуска, закрываем. $ grep extensions /tmp/strace [pid 44414] mkdirat(AT_FDCWD, "/home/naf/.mozilla/extensions", 0700) = -1 EEXIST (Файл существует) [pid 44414] openat(AT_FDCWD, "/usr/lib64/firefox/distribution/extensions", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = -1 ENOENT (Нет такого файла или каталога) [pid 44414] faccessat(AT_FDCWD, "/usr/lib64/firefox/distribution/extensions", F_OK) = -1 ENOENT (Нет такого файла или каталога) [pid 44414] mkdirat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev", 0700) = -1 EEXIST (Файл существует) [pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0 [pid 44414] faccessat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", F_OK) = 0 [pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 [pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/systemextensionsdev", <unfinished ...> [pid 44414] faccessat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", F_OK) = 0 [pid 44414] newfstatat(AT_FDCWD, "/home/naf/.mozilla/firefox/o017yq4i.default-default/extensions", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 $ grep ec8030f7-c20a-464f-9b0e-13a3a9e97384 /tmp/strace <пусто> Могу проверить ещё на x86_64/i586, но как минимум на ARM64 Firefox сейчас не смотрит в %_libdir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} и %_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}, а %_libdir/firefox/distribution/extensions/, наоборот, проверяет. Ну и можно положить какое-либо-расширение.xpi в эти каталоги - загружать его Firefox будет из %_libdir/firefox/distribution/extensions/ . Поведение текущего Firefox, по-видимому, следующее:
- расширения размещаются и используются только из каталога расширений пользователя,
в ~/.mozilla/firefox/*/extensions/ ,
- дистрибутивные расширения ищутся в %_libdir/firefox/distribution/extensions/ ,
- при запуске Firefox все расширения из %_libdir/firefox/distribution/extensions/
копируются в каталог расширений пользователя,
- и то, что было скопировано - запоминается в профиле пользователя,
- свои копии дистрибутивных расширений пользователь может обновлять или удалять
как и добавленные им самим расширения,
- удалённые пользователем копии дистрибутивных расширений при новом запуске
Firefox'а из системного каталога не восстанавливаются,
- новые расширения из дистрибутивного каталога при новом запуске Firefox
копируются в каталог пользователя и подключаются в его профиль,
- обновления расширений в системном каталоге при запуске Firefox копирются
в каталог пользователя,
- и расширения - это архивы <id>.xpi, где id - это идентификатор из manifest.json.
Развёрнутые архивы расширений больше не используются.
С символьной ссылкой %_libdir/firefox/distribution/extensions/ -> %_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/ Firefox работает нормально.
Архитектурно-зависимых расширений, использующих %mozilla_arch_extdir и его производные
в Sisyphus не видно.
firefox-90.0-alt1 -> sisyphus: Tue Jul 13 2021 Alexey Gladkov <legion@altlinux.ru> 90.0-alt1 - New release (90.0). - Move rpm-build-firefox from firefox to separate package. - Security fixes: + CVE-2021-29970: Use-after-free in accessibility features of a document + CVE-2021-29971: Granted permissions only compared host; omitting scheme and port on Android + CVE-2021-30547: Out of bounds write in ANGLE + CVE-2021-29972: Use of out-of-date library included use-after-free vulnerability + CVE-2021-29973: Password autofill on HTTP websites was enabled without user interaction on Android + CVE-2021-29974: HSTS errors could be overridden when network partitioning was enabled + CVE-2021-29975: Text message could be overlaid on top of another website + CVE-2021-29976: Memory safety bugs fixed in Firefox 90 and Firefox ESR 78.12 + CVE-2021-29977: Memory safety bugs fixed in Firefox 90 Fri Jul 09 2021 Alexey Gladkov <legion@altlinux.ru> 89.0.2-alt2 - Enable searching system- and account-global directories for extensions (ALT#40364). |
В rpm-build-firefox-89.0.2-alt1 предполагается установка расширений в каталоги, определяемые макросами %firefox_arch_extensionsdir и %firefox_noarch_extensionsdir, т.е. в %_libdir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} и %_datadir/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384} соответственно. Firefox 89.0.2 при запуске к этим каталогам не обращается, и их содержимое не подключает. Вместо них он обращается к каталогу %_libdir/firefox/distribution/extensions/ , причём каталог %_libdir/firefox/distribution/ в пакете firefox есть, а вот %_libdir/firefox/distribution/extensions/ там отсутствует. В случае создания каталога %_libdir/firefox/distribution/extensions/ и размещения в нём расширений они определяются и подключаются. Ну а имеющиеся сейчас в репозитории расширения firefox-* использоваться браузером не могут.