Bug 12299

Summary: isoinfo adds ";1" to the end of file name
Product: Sisyphus Reporter: Vladimir <v_black>
Component: mcAssignee: Sergey Y. Afonin <asy>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: asy, icesik, jinn, mike, week
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
iso9660 mcextfs ";1" patch
none
iso9660 mcextfs ";1" patch for mc 4.7.0.10 none

Description Vladimir 2007-07-11 14:44:02 MSD
Bad: isoinfo выдает в конце имени каждого файла внутри образа ;1
В именах каталогов такого не замечено.
пакет: isoutils-2.01.01-alt2a03.0
Steps to Reproduce:
isoinfo -l -i some-iso.iso
Actual Results:  
Что-то типа:
ABOUT.HTM;1
ABOUTA~1.BMP;1
BG.BMP;1
COMPDE~1.HTM;1
PUNC.HTM;1

Expected Results:  
Хотелось бы без таких излишеств :)
Comment 1 Michael Shigorin 2007-07-12 12:11:41 MSD
Насколько понимаю -- INVALID, поскольку это фича ISO9660.  Попробуйте также -l -R.
Comment 2 Vladimir 2007-07-12 12:56:41 MSD
(In reply to comment #1)
> Насколько понимаю -- INVALID, поскольку это фича ISO9660.  Попробуйте также -l -R.
тоже самое :(. (и -R и -J пробовал) 
На пробу брались образы дисков из образовательного комплекта для школ. Конечно
можно обойтись монтированием, но для этого надо права рута, а зайти в образ как
в каталог через mc, например, быстрее и удобнее для вытаскивания файлов из
образа пользователем.
Comment 3 Michael Shigorin 2007-07-12 15:07:30 MSD
Стоп.  Уточните версии mc и rpm -qf /usr/bin/isoinfo -- вообще-то к mc именно я
и делал extfs, исправление в связи со сменой формата вывода там потребовалось
один раз года два тому.
Comment 4 Vladimir 2007-07-12 15:14:09 MSD
Вот:
rpm -qf /usr/bin/isoinfo
isoutils-2.01.01-alt2a03.0
и mc:
mc-4.6.1r-alt9
Собственно с него все и началось - mc попросил isoinfo, я поставил, увидел ;1 и
стал копать кто виноват...Так что в mc все это в полный рост :(
Comment 5 Michael Shigorin 2007-07-12 15:24:34 MSD
Created attachment 2088 [details]
iso9660 mcextfs ";1" patch

У меня именно эти версии не вызывают никаких проблем, иначе бы уже и фиксил.

Последнее релевантное из переписки по теме -- проверяйте приложенный патчик для
/usr/share/mc/extfs/iso9660, если поможет, то перевешивайте на mc (хотя мог уже
и приложить):

Date: Thu, 22 Jul 2004 17:07:06 +0400
From: alex <prof_alex/mail.ru>
To: Michael Shigorin <mike/osdn.org.ua>
Subject: Re: iso9660 и новый isoinfo

Michael Shigorin wrote:
>
>Формат опять чуть уехал -- в [ ... ] группа цифр теперь разбита
>надвое пробелом.  Патч прицеплен (и висит на
>https://bugzilla.altlinux.org/show_bug.cgi?id=4536).
>
    В продолжение темы хочестся добавить, что проблемы не только с
форматом. С Joliet вечная беда, то UCS level 1 не понимает, то в UCS
level 3 добавляет ';1' в конце имени файла. Причем некоррекно отображает
даже имена файлов из образов дисков созданных при помощи mkisofs. Вот к
примеру INSERT из http://www.inside-security.de/:
>isoinfo -d -i INSERT-1.2.8_en.iso
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: Inside Security Rescue Toolkit
Volume set id:
Publisher id:
Data preparer id:
Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD
CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
---поскипано---
Joliet with UCS level 3 found
Rock Ridge signatures version 1 found
---поскипано---

пробуем получить список файлов:
>isoinfo -R -J -j koi8-r -l -i INSERT-1.2.8_en.iso

---поскипано---
Directory listing of
/isolinux____)____insert-1.2.8_master_en_isolinux____Y___________/
d---------   0	  0    0	    2048 Apr 21 2004 [	   35 02]  .
d---------   0	  0    0	    4096 Mar  3 2004 [	   32 02]  ..
----------   0	  0    0	    2048 Apr 21 2004 [	24561 00]
boot.cat____Y____b___}____boot.catPX$_$______$__________________
----------   0	  0    0	     174 Apr 20 2004 [	24562 00]
boot.msg____1____insert-1.2.8_master_en_isolinux_boot.msg___q0__
----------   0	  0    0	    1545 Apr 20 2004 [	24563 00]
f2_@___@________hV__hV__f_________________h____ ________________
----------   0	  0    0	    9424 Apr 21 2004 [	24564 00]
isolinux.bin________9____insert-1.2.8_master_en_isolinux_isolinu
----------   0	  0    0	    2434 Jan 26 2004 [	24569 00]
isolinux.cfg________9____insert-1.2.8_master_en_isolinux_isolinu  
----------   0	  0    0	    8762 Jul 29 2003 [	24571 00]   
logo.16_____1____insert-1.2.8_master_en_isolinux_logo.16____Y___
----------   0	  0    0	   67648 Apr  2 2004 [	24576 00]
memtest_____1____insert-1.2.8_master_en_isolinux_memtest____Y___
----------   0	  0    0	  495568 Apr  3 2004 [	24610 00]
miniroot.gz_9____insert-1.2.8_master_en_isolinux_miniroot.gz____
----------   0	  0    0	  921594 Apr  2 2004 [	24852 00]
vmlinuz_____1____insert-1.2.8_master_en_isolinux_vmlinuz____Y___

Ключ '-R' есть в командной строке, но он игнорируется, теперь так:
>isoinfo -R -l -i INSERT-1.2.8_en.iso

---поскипано---
Directory listing of /isolinux/
dr-xr-xr-x   2	  0    0	    2048 Apr 21 2004 [	   31 02]  .
dr-xr-xr-x   4	  0    0	    2048 Mar  3 2004 [	   29 02]  ..
-r--r--r--   1	  0    0	    2048 Apr 21 2004 [	24561 00]  boot.cat
-r-xr-xr-x   1	  0    0	     174 Apr 20 2004 [	24562 00]  boot.msg
-r-xr-xr-x   1	  0    0	    1545 Apr 20 2004 [	24563 00]  f2
-r-xr-xr-x   2	  0    0	    9424 Apr 21 2004 [	24564 00]
isolinux.bin
-r-xr-xr-x   1	  0    0	    2434 Jan 26 2004 [	24569 00]
isolinux.cfg
-r-xr-xr-x   1	  0    0	    2434 Jan 26 2004 [	24569 00]
isolinux.cfg
-r-xr-xr-x   2	  0    0	    8762 Jul 29 2003 [	24571 00]  logo.16
-r-xr-xr-x   2	  0    0	   67648 Apr  2 2004 [	24576 00]  memtest
-r-xr-xr-x   1	  0    0	  495568 Apr  3 2004 [	24610 00]
miniroot.gz
-r-xr-xr-x   2	  0    0	  921594 Apr  2 2004 [	24852 00]  vmlinuz

Как видно, Rock Ridge содержит все что нам надо, но игнорируется при
указании ключа '-J' (даже если поменять их местами легче не становится).
Отсюда предложение: забить на Joliet если есть RR. Я думаю, что именно к
этому нас подталкивает Joerg Schilling (очень хвалит RR и ругает 
ограниченность Joliet). Ну и танцы с бубном вокруг имен файлов	
оканчивающихся на ';1' (интересно, а цифры отличные от единицы бывают?).
    То что у меня получилось работает на версиях 2.01a21 - 2.01a34, но
число различных образов у меня не велико, так что интересно как это 
работает у других.
Comment 6 Vladimir 2007-07-12 16:29:52 MSD
(In reply to comment #5)
> Created an attachment (id=2088) [edit]
> iso9660 mcextfs ";1" patch
Посмотрел патч... даже попробовал накатить. - нет он не для файла из
mc-4.6.1r-alt9 (проверил, iso9660 из этого пакета) визуальный анализ показывает
в патче присутствие переменной ISOINFO_CMD и отсутствие оной в исходном файле.
Т.е. как бы или патч "отвалился" или файл с тех пор сильно переделали или у меня
в системе он каким-то образом подменился. Может бросите свой (работающий) для
сравнения?
Comment 7 Michael Shigorin 2007-07-12 16:39:11 MSD
Он не содержит изменений относительон пакетного из mc-4.6.1r-alt9, проверил rpm
-V mc.
Comment 8 Michael Shigorin 2007-11-26 12:48:57 MSK
Короче, это в любом разе не проблема isoinfo как пакета (разве что апстрима,
который меняет формат вывода по погоде на дворе).  Для исправления в mc надо
тестирование.  Если кому-то не лень меня допинать прошерстить архивы и найти
всё, что мне присылали или писали по теме -- пинайте.

PS: "Good" или "Bad" в подсказке багзилы специально покрашены -- это
характеристика строчек из примеров, а не шаблон :)
Comment 9 Dmitriy Khanzhin 2007-11-28 19:58:50 MSK
Ээээ... таак...
А я вот накатил патч, и эти ;1 из имен файлов при просмотре исошек, созданных
в виндах, в mc пропали.
А то, что isoinfo их показывает- IMHO, фича, что-то еще по виндовой Нере
смутно припоминается.
[diman@dimanko RPMS.x86_64]$ rpm -q mc
mc-4.6.1r-alt9
Так что, получается, Майк, патч не приложен.
Comment 10 Dmitriy Khanzhin 2007-11-28 20:21:40 MSK
О, зато после приложения патча начались чудеса вроде
"Несогласованный архив extfs" при попытке войти в rpm внутри iso.
Надо поисследовать.
Comment 11 Andrey Rahmatullin 2008-03-16 22:44:58 MSK
Шотут?
Comment 12 Michael Shigorin 2008-03-16 23:16:07 MSK
Не совсем в курсе про именно тут...  Краткая история предыдущих серий -- апстрим
isoinfo время от времени (раз в пару лет) слегка меняет формат вывода, отчего
регэкс в extfs/iso9660 ломается; плюс разные кривые порождалки ISO иногда вылазят.

Хорошо бы им кто-то предложил сделать фиксированный формат (и опцию для того)
а-ля ls -lR, или патчик, но пока могу разве что пофорвардить те несколько
исправлений, которые мне при разных таких изменениях люди слали.  Последнее
применить не удалось (за отсутствием то ли времени, то ли тесткейса).  Надо?
Comment 13 Andrey Rahmatullin 2008-03-16 23:20:18 MSK
Исправлений для mc? Ну давай. В приложенном к багу патче я увидел строку про 
удаление ;1 и сходу не понял, зачем там нужны все остальные строки. Не 
прикладывал, да.
Comment 14 Mikhail Gusarov 2008-06-13 13:00:39 MSD

    
Comment 15 Andrey Rahmatullin 2009-11-03 22:44:34 MSK
Шотут.
Comment 16 Sergey Y. Afonin 2010-12-07 18:22:11 MSK
А что должна делать вот эта строчка из iso9660 ?

isoinfo -d -i "$1" | gawk "/UCS level 1|NO Joliet/" > /dev/null || ISOINFO="$ISOINFO $JOLIET_OPT"

У меня такое ощущение, что она должна выглядеть, как

isoinfo -d -i "$1" | egrep "UCS level 1|NO Joliet" > /dev/null || ISOINFO="$ISOINFO $JOLIET_OPT"

C gawk значение "$?" получается 0 при любом раскладе...
Comment 17 Sergey Y. Afonin 2010-12-14 23:54:23 MSK
Вот это вот

   sub(" $", "", name)
+  # for pure ISO9660 and Joliet UCS level 3
+  sub(";1$", "", name)
   ## sub(";[0-9]+$", "", name) ## would break copyout

хватает, относительно текущего iso9660. Но, в одном из имеющихся у меня iso, есть несколько файлов, у которых в конце ".;1". При монтировании через loop этой точки нет. Можно сделать, конечно, "\.\?;1$", но, вдруг, эта точка где-то будет по делу ?
Comment 18 Sergey Y. Afonin 2010-12-19 04:20:43 MSK
Created attachment 4719 [details]
iso9660 mcextfs ";1" patch for mc 4.7.0.10
Comment 19 Sergey Y. Afonin 2010-12-19 04:23:12 MSK
";1" должно обрабатываться, а вот что делать с единичными ".;1", пока не сильно понятно.
Comment 20 Sergey Y. Afonin 2010-12-21 23:23:01 MSK
 4.7.0.10-alt5

      - fixed processing of ";1" in some ISO images (closes: ALT#12299)