Bug 42570

Summary: Не пора ли обновить?
Product: Sisyphus Reporter: Sergey V Turchin <zerg>
Component: altlinux-mime-defaultsAssignee: viy <viy>
Status: ASSIGNED --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: aris, viy
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Sergey V Turchin 2022-04-25 11:22:05 MSK
У меня что-то Firefox стал плохо предлагать открыть файлы приложениями.
Не знаю, связано ли, но пакет давно не отбновлялся, как-минимум.
Может, пора обновить?
Comment 1 Sergey V Turchin 2022-04-25 11:23:36 MSK
Собственно, в p10 даже больше волнует.
Comment 2 viy 2022-04-25 12:53:41 MSK
да, пора. посмотрю в близжайшее время.
Comment 3 viy 2022-04-26 21:48:10 MSK
По поводу не тех обработчиков заметил интересную проблему - нехватку алиасов
mime типов в usr-share-info. 
Т.е. в desktop файлах пишут такие mime типы, которых нет у нас в /usr/share/mime.

Пример. image/jpeg есть, но у него там нет алиаса image/jpg.
В то же время в .desktop файлах есть и обработчики image/jpg.
Получается, у image/jpeg и image/jpg свои списки обработчиков,
так как из-за отсутствия alias image/jpg не отображается на image/jpeg.
Пусть эти обработчики

image/jpg=atril.desktop;...
image/jpeg=Berry.desktop;...;atril.desktop;...

тогда, если кликнуть на .jpg картинку, то будут использован /usr/share/mime,
будет определен тип как image/jpeg и будет обработка с помощью Berry.desktop.
Если же .jpg картинка придет, к примеру, с браузера, то там mime тип будет такой, который сообщил сервер, т.е. может image/jpeg, а может и image/jpg,
соответственно, может неожиданно для нас обработчиком запуститься atril.

И таких дубликатов десятки. Я займусь этой темой плотнее, что потребует больше времени. Соберу базу потеряшек, которые есть в в desktop файлах, но нет у нас в /usr/share/mime.
Составлю для них таблицу алиасов. Напишу патчгенератор, который будет патчить xml в shared-mime-info. Сгенерирую altlinux-mime-defaults уже с новыми alias.

От вас же прошу замечать все такие случаи: какой реальный тип файла, какой его mime тип в /usr/share/mime, какой его объявленный (в браузере, в почте) mime тип, какой реальный обработчик, и какой желательный обработчик?
Comment 4 Yuri N. Sedunov 2022-04-26 22:12:59 MSK
(Ответ для viy на комментарий #3)
> Составлю для них таблицу алиасов. Напишу патчгенератор, который будет
> патчить xml в shared-mime-info. 

Не надо портить shared-mime-info.
Comment 5 viy 2022-04-26 23:23:03 MSK
(Ответ для Yuri N. Sedunov на комментарий #4)
> Не надо портить shared-mime-info.

Гм. не понял вас. Поясните, пожалуйста, на примере.
у нас есть до сотни обработчиков для image/png
не буду их перечислять
и также у нас есть десятки обработчиков для image/x-png
org.gnome.gThumb.desktop org.gnome.eog.desktop eom.desktop gqview.desktop
pqiv.desktop geeqie.desktop atril.desktop org.gnome.Shotwell-Viewer.desktop;
feh.desktop; gimagereader-gtk.desktop; gimagereader-qt5.desktop;gliv.desktop;
pix.desktop;viewnior.desktop; xviewer.desktop;xreader.desktop;
gnome-paint.desktop;mtpaint.desktop; photoflare.desktop;pinta.desktop;
shutter.desktop

но image/x-png в базе нет.

как именно испортится shared-mime-info,
если к image/png будет добавлен алиас image/x-png ?
Comment 6 Yuri N. Sedunov 2022-04-27 00:09:08 MSK
Хороший пример.

> но image/x-png в базе нет.

И в современной спецификации такого нет.
http://www.iana.org/assignments/media-types/media-types.xhtml#image

Этот префикс "x-" означает, что тип нестандартный. x-png сушествовал (давно) до принятия IANA png в качестве официального типа.

Временно описание x-png можно положить в /usr/share/mime-info/ (не путать с /usr/share/mime), но лучше исправить десктоп-файлы, разумеется, автоматически при пересборке пакетов.
Comment 7 viy 2022-04-27 12:09:57 MSK
(Ответ для Yuri N. Sedunov на комментарий #6)
> И в современной спецификации такого нет.
> http://www.iana.org/assignments/media-types/media-types.xhtml#image
> 
> Этот префикс "x-" означает, что тип нестандартный. x-png сушествовал (давно)
> до принятия IANA png в качестве официального типа.
> 
> Временно описание x-png можно положить в /usr/share/mime-info/ (не путать с
> /usr/share/mime), но лучше исправить десктоп-файлы, разумеется,
> автоматически при пересборке пакетов.

Спасибо, теперь вас понял. Это было недоразумение - вы предположили, что я предлагаю описывать тот же x-png как отдельный mime тип. Я полностью с вами согласен в критике такого предложения. 
2 разных mime типа для одного файла - это бедствие.

Однако, по счастью, я такого не предлагал, а предлагал добавить alias
в уже существующий mime тип.
Извиняюсь, что не расписал технические детали, чем, похоже, ввел вас в заблуждение.

добавление alias это стандартный для shared-mime-info способ решать подобные проблемы. К примеру, посмотрим на определение mime-type application/pdf
в packages/freedesktop.org.xml

  <mime-type type="application/pdf">
    <comment>PDF document</comment>
    ...
    <magic>
      <match type="string" value="%PDF-" offset="0:1024"/>
    </magic>
    <glob pattern="*.pdf"/>
    <alias type="application/x-pdf"/>
    <alias type="image/pdf"/>
    <alias type="application/acrobat"/>
    <alias type="application/nappdf"/>
  </mime-type>

Там есть 4 alias-а: application/x-pdf, image/pdf, application/{acrobat,nappdf}
на все случаи жизни.

К сожалению, база alias-ов freedesktop.org.xml не настолько полна, как хотелось бы. К примеру, для <mime-type type="image/png"> просится добавить
    <alias type="image/x-png"/>
и таких реально встречающихся alias-ов там по факту еще надо добавить наверное до десятка-полтора. В базе alias-ов freedesktop.org.xml сейчас более 300 алиасов, это увеличит ее на 3-5%.
Comment 8 Sergey V Turchin 2022-04-27 12:26:24 MSK
А есть ли какой-то команднострочный редактор xml-файлов?
Я как-то давным-давно искал себе и какую-то шнягу вроде-бы даже нашёл, точно не помню уже.
Может, сейчас что-то нормальное появилось?

Тогда при сборке будет несложно добавить нужные alias-ы к нужным типам, если будет список, кого куда.
Comment 9 viy 2022-04-27 12:40:18 MSK
(Ответ для Sergey V Turchin на комментарий #8)
> А есть ли какой-то команднострочный редактор xml-файлов?

Формально есть xslt и proc'и к нему, но на практике мне проще питоньим скриптом,
в сложных случаях xslt API, в простых случаях массив словарей API.

> Тогда при сборке будет несложно добавить нужные alias-ы к нужным типам, если
> будет список, кого куда.

Да, я так и хочу. Скрипт, список алиасов добавить,
и после обработки статистика:
X отвергнуто (нет такого mime-type)
Y уже есть
Z добавлено.
Comment 10 viy 2022-05-03 14:49:02 MSK
медленно спускаюсь с горы:
пишу автоматизацию, чтобы получать готовый отчет в любое время
как ее часть, в сизиф пришел
[#299403] DONE srpm=repocop-collector-mime-0.01-alt1.src.rpm
Comment 11 viy 2022-05-05 11:45:03 MSK
(Ответ для Sergey V Turchin на комментарий #0)
> У меня что-то Firefox стал плохо предлагать открыть файлы приложениями.

Кстати: тоже заметил описанную вами проблему в firefox
(в p10, firefox-95.0.1-alt1.x86_64).

Он у меня пытается открыть pdf с помощью LibreOffice Draw.
Это именно глюк firefox, с консоли xdg-open document.pdf
работает как положенно.

У меня сейчас нет под рукой Сизифа. Если можно, 
вы не могли бы проверить, есть ли этот баг на Сизифном firefox (99.0.1) ?

В зависимости от этого, я бы повесил баг либо на Сизифный firefox,
что у них слетела поддержка 
https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html

либо баг с просьбой скопировать firefox 99 в p10.
Comment 12 Sergey V Turchin 2022-05-05 12:09:25 MSK
(Ответ для viy на комментарий #11)
> вы не могли бы проверить, есть ли этот баг на Сизифном firefox (99.0.1) ?
С новым профилем открывает нормально с http://oreol-tour.ru/zp_obrazci_pdf.html
В KDE по умолчанию сам, после настройки "спрашивать" предлагает Okular.

[...]
Comment 13 viy 2022-05-06 20:31:26 MSK
(Ответ для Sergey V Turchin на комментарий #12)
> (Ответ для viy на комментарий #11)
> > вы не могли бы проверить, есть ли этот баг на Сизифном firefox (99.0.1) ?
> С новым профилем открывает нормально

Я у себя под p10 тоже проверил. Создал нового пользователя и запустил firefox.
С новым профилем открыл pdf правильно. :(

Т.е. это в каких-то версиях firefox тонко сломалась совместимость. Профиль у меня старый, более 10 лет. 

Такой баг разве в апстрим вешать, и то не понятно, как. Им для отладки нужен профиль, а там конфиденциальное. Так что в итоге баги вешать не буду, а для себя займусь миграцией - сохраню закладки, пароли и перейду на новый чистый профиль firefox.
Comment 14 Sergey V Turchin 2022-05-11 14:30:57 MSK
Ну да фиг с ним тогда. altlinux-mime-defaults обновить только.
Comment 15 viy 2022-05-16 18:51:57 MSK
(Ответ для Sergey V Turchin на комментарий #14)
> Ну да фиг с ним тогда. altlinux-mime-defaults обновить только.

я обновил в сизифе (и отправил в p10 #300061 EPERM #1 p10 altlinux-mime-defaults.git=0.437-alt0.p10.1)
но закрывать баг не надо, я еще не написал скрипты для подсчета недостающих алиасов.
как сделаю, можно будет подправить shared-mime-info, после чего я выложу
altlinux-mime-defaults еще раз.