LINUX.ORG.RU

mime бредит

 ,


0

1

Ни с того, ни с сего bash-скрипты стали определяться, цитирую: «субтитрами MPSub».

Собственно, скриншот.

Как видно, с какого-то момента скрипты bash стали определяться как текстовые файлы. Для сравнения открыты два скрипта в KWrite: в левом мы видим подсветку (и в Dolphin этот скрипт определяется как скрипт bash), в правом подсветки нет (и в Dolphin этот скрипт определяется как текстовый файл с субтитрами). При этом все скрипты работают по команде как положено.

Скрин свойств скрипта.

WTF?!



Последнее исправление: Kindly_Cat (всего исправлений: 1)
Ответ на: комментарий от Spirit_of_Stallman

Выставлено. Я же написал:

При этом все скрипты работают по команде как положено.

Kindly_Cat
() автор топика

Не используй libmagic для текстовых файлов

Он для этого не подходит. Разрабы укурены. Чем-то серьёзным. У них даже сигнатуры COM-файлов из доса есть.

Если софтина использует libmagic для текстовых файлов — она сломана, безнадёжно. Найди альтернативу.

x3al ★★★★★
()
Ответ на: комментарий от Kindly_Cat

На котором в десктопном линуксе работает file, а заодно ~100% десктопного софта, очевидно. Расширений у файлов нет, отдельного атрибута под mime тоже, выкручиваются костылями.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от x3al

Ок, и как прикажешь не использовать libmagic для текстовых файлов, если на этой либе работает 100% десктопного софта? :)

Kindly_Cat
() автор топика
Ответ на: комментарий от x3al

На котором в десктопном линуксе работает file

$ file airbase-backup.sh 
airbase-backup.sh: Bourne-Again shell script, ASCII text executable

А от флага X mime-тип вообще никак не зависит.

KRoN73 ★★★★★
()

Ещё смешнее:

avalon coding # file unhide
unhide: Bourne-Again shell script, UTF-8 Unicode text executable

file, значит, определяет тип правильно, а Dolphin и KWrite - неправильно. Facepalm.

Kindly_Cat
() автор топика
Ответ на: комментарий от KRoN73

Что именно в ОП-посте этому противоречит? У него libmagic более другой версии, отсюда и баги. Я натыкался на баг, когда он UTF-8 плейнтекст считал досовыми и не только досовыми COM-файлами (и даже знал их сигнатуру, лол), это фича. Вообще, все бинарные матчи в libmagic идут перед текстовыми, отсюда растёт проблема.

x3al ★★★★★
()

Ищи софтину, которая добавила тебе тип «субтитры MPSub»

annulen ★★★★★
()

Написал в том же Kate скрипт с нуля, сохранил, он определился правильно - как bash-скрипт. Кажется, я вычислил виновника торжества.

Я до этого выставил в настройках Kate максимальную длину строки в 2048 символов, потому что с 1024 плохо открывался eixrc. Потом я установил обратно в 1024, но, видимо, уже написанным скриптам это не помогло.

Мне что теперь, заново эти скрипты переписывать?

Kindly_Cat
() автор топика
Ответ на: комментарий от x3al

У него libmagic более другой версии

Ну так и у меня не первая и единственная версия.

KRoN73 ★★★★★
()
Ответ на: комментарий от AGUtilities
avalon coding # file -i /etc/profile
/etc/profile: text/plain; charset=us-ascii
Kindly_Cat
() автор топика

Казалось бы, какое отношение имеет максимальная длина строки к типу файла?

Kindly_Cat
() автор топика

Ну это вообще тупнячок

Начал перепечатывать скрипт, сохранил - всё ок, определяется скриптом. Допечатал до конца, сохранил - стал определяться текстовым файлом.

FACEPALM

Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

Проверь от другого юзверя. Т.е. для начала стоит определить это проблема настроек пользователя или системная.

at ★★
()
Ответ на: комментарий от Kindly_Cat

Возможна проблема в следующих файлах:

/etc/magic
/etc/magic.mime
/etc/magic.mgc 
/usr/share/misc/magic
/usr/share/misc/magic.mgc
.mgc это скомпилированный вариант, для ускорения работы Если дело в /usr/share то проблема с file (или libmagic). В исходниках это файл file-5.11/magic/Magdir/commands Должно быть что то типа
# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
0	string/wt	#!\ /bin/bash	Bourne-Again shell script text executable
!:mime	text/x-shellscript
0	string/wt	#!\ /usr/bin/bash	Bourne-Again shell script text executable
!:mime	text/x-shellscript
0	string/wt	#!\ /usr/local/bash	Bourne-Again shell script text executable
!:mime	text/x-shellscript
0	string/wt	#!\ /usr/local/bin/bash	Bourne-Again shell script text executable
!:mime	text/x-shellscript

at ★★
()
Ответ на: комментарий от Kindly_Cat

Тип неправильно определяется только для файлов без суффикса или для всех?

Возможно проблема в /usr/share/mimelnk или mime-info. Но там черт ногу сломит ;) И какая программа связана с «субтитрами MPSub»? Возможно накосячила именно она.

at ★★
()
Ответ на: комментарий от at

Тип неправильно определяется только для файлов без суффикса или для всех?

Без какого суффикса?

И какая программа связана с «субтитрами MPSub»?

А как определить?

Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

Без какого суффикса?

Сори, привычка обзывать расширения суффиксами.

А как определить?

>xdg-mime query filetype 1.sh
application/x-shellscript
>xdg-mime query default application/x-shellscript
emacs23.desktop
at ★★
()
Ответ на: комментарий от Kindly_Cat

От пользователя или у рута должен быть доступ к иксам ;) (Т.е. если с file все нормально, предполагаю, что проблема в иксах)

>sux
Пароль:
root@home:~# XDG_UTILS_DEBUG_LEVEL=1 xdg-mime  query default application/x-shellscript
Running KDE trader query "application/x-shellscript" mimetype and "Application" servicetype
emacs24.desktop
(это вариант с отладкой)

at ★★
()
Ответ на: комментарий от Kindly_Cat

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

Т.е. выглядит это примерно так http://stackoverflow.com/questions/30931/register-file-extensions-mime-types-... (только нужно не установить, а изменить или удалить)

at ★★
()
Ответ на: комментарий от at

А, понял. Вот под обычным юзером:

┌─[/zero/shell/frag/basic]
└─[frag@avalon]: XDG_UTILS_DEBUG_LEVEL=1 xdg-mime  query default application/x-shellscript
Running KDE trader query "application/x-shellscript" mimetype and "Application" servicetype
kwrite.desktop
Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

Теперь

xdg-mime  query default text/x-mpsub
И удалить (отредактировать) файл, который поставил этот обработчик.

Т.е. xdg-mime uninstall, отредактировать, xdg-mime install

Данные кэшируется. После изменений эффекта не будет.

at ★★
()
Ответ на: комментарий от Kindly_Cat

Командой

xdg-mime  query default text/x-mpsub
определяем файл (это .xml или .desktop). Допустим это http://man.zarovka.com/usr/share/mime/text/x-mpsub.xml , где вместо <glob pattern=«*.sub»/> указано <glob pattern=«*»/> (т.е. реагировать на все файлы)

Для .desktop

xdg-desktop-menu uninstall --mode system directory-file desktop-file
Т.е. удаляем это из базы.

Редактируем.

То же самое, но install . То есть добавляем инфу в базу

Для .xml то же самое, но xdg-mime (у них немного различается формат)

at ★★
()
Ответ на: комментарий от at

Для изменения системных файлов нужно быть рутом с доступом к иксовой сессии (sux в моем примере). Но можно перекрыть системные настройки пользовательскими.

at ★★
()
Ответ на: комментарий от at

Я сделал uninstall для kwrite.desktop (на него указывал xdg-mime query default text/x-mpsub), сделал xdg-mime uninstall для x-mpsub.xml, но толка никакого. А что там редактировать я вообще понять не могу: в kwrite.dekstop ничего подозрительного не нашёл, а в x-mpsub.xml прописано <glob pattern=«*.sub»/>

Kindly_Cat
() автор топика
Ответ на: комментарий от at

Я сейчас ещё раз просмотрел скрипты, в общем, во всех криво определяющихся скриптах присутствуют вот эти символы:

` `

например:

APPVAR=`FORMAT='<category>/<name>\n' eix -e "$APPNAME"`

Скрипты, в которых этих символов нет, определяются правильно.

Kindly_Cat
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.