Author | Topic |
|
Posted: 21.01.10 22:32. Post subject: Помогите собрать unzip с патчем.
Решил собрать для openSUSE unzip c вашим патчем. Сами библиотеки собрались без проблем, но вот unzip собрать не получается. Во первых скрипт update_shared выдает следующее ./update_shared: line 3: tc-getCC: команда не найдена ./update_shared: line 3: tc-getCC: команда не найдена Что ему не хватает? ну и дальше не собирается. Подозреваю что с этим связано. Так как далее везде "команда не найдена"
|
|
|
Replys - 46
, page:
1
2
3
All
[new only]
|
|
|
| administrator
|
|
|
Posted: 22.01.10 02:24. Post subject: Извиняюсь, я, кажетс..
|
|
|
|
Posted: 23.01.10 15:21. Post subject: Спасибо попробую. Ес..
Спасибо попробую. Есть вопрос по работе данного патча, в первую очередь интересует, сможет ли пропатченный unzip правильно определить кодировку, если архив был создан в линуксе в кодировке UTF-8, и одновременно без каких либо изменений настроек открывать виндовые архивы? То есть есть ли внем автоопределение кодировки? По коду патча я толком не понял.
|
|
|
|
| administrator
|
|
|
Posted: 24.01.10 03:09. Post subject: Я с Unicodом не проб..
Я с Unicodом не пробовал, но авто-определение есть и в теории должно работать, - если не будет, - пишите, исправим ;)
|
|
|
|
Posted: 02.02.10 00:15. Post subject: И все таки не получа..
И все таки не получается собрать, может подкините идею в какую сторону копать. Hidden text. Click here I have the following modifications for unzip.spec: ----------------------------------------------------------------- ----- building unzip.spec (user abuild) ----------------------------------------------------------------- ----------------------------------------------------------------- + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' /usr/src/packages/SOURCES/unzip.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.AG418X + umask 022 + cd /usr/src/packages/BUILD + cd /usr/src/packages/BUILD + rm -rf unzip-5.52 + /usr/bin/bzip2 -dc /usr/src/packages/SOURCES/unzip552.tar.bz2 + /bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd unzip-5.52 + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch (unzip.dif):' Patch (unzip.dif): + /bin/cat /usr/src/packages/SOURCES/unzip.dif + /usr/bin/patch -s -p1 --fuzz=2 + echo 'Patch #10 (unzip-5.52-ds-rusxmms.patch):' Patch #10 (unzip-5.52-ds-rusxmms.patch): + /bin/cat /usr/src/packages/SOURCES/unzip-5.52-ds-rusxmms.patch + /usr/bin/patch -s -p1 --fuzz=2 + echo 'Patch #11 (unzip-ds-unixenc.patch):' Patch #11 (unzip-ds-unixenc.patch): + /bin/cat /usr/src/packages/SOURCES/unzip-ds-unixenc.patch + /usr/bin/patch -s -p1 --fuzz=2 + /bin/cp /usr/src/packages/SOURCES/update_shared update_shared + sh update_shared + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.KhIFJ4 + umask 022 + cd /usr/src/packages/BUILD + /bin/rm -rf /usr/src/packages/BUILDROOT/unzip-5.52-143.x86_64 ++ dirname /usr/src/packages/BUILDROOT/unzip-5.52-143.x86_64 + /bin/mkdir -p /usr/src/packages/BUILDROOT + /bin/mkdir /usr/src/packages/BUILDROOT/unzip-5.52-143.x86_64 + cd unzip-5.52 + export 'RPM_OPT_FLAGS=-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fstack-protector' + RPM_OPT_FLAGS='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fstack-protector' + make -f unix/Makefile LF2= linux_noasm make unzips CC=gcc LD="gcc -lrcc" CF=" -Wall -I. " make[1]: Entering directory `/usr/src/packages/BUILD/unzip-5.52' gcc -c -Wall -I. unzip.c gcc -c -Wall -I. crc32.c gcc -c -Wall -I. crctab.c gcc -c -Wall -I. crypt.c gcc -c -Wall -I. envargs.c gcc -c -Wall -I. explode.c gcc -c -Wall -I. extract.c gcc -c -Wall -I. fileio.c gcc -c -Wall -I. globals.c gcc -c -Wall -I. inflate.c gcc -c -Wall -I. list.c gcc -c -Wall -I. match.c gcc -c -Wall -I. process.c gcc -c -Wall -I. ttyio.c gcc -c -Wall -I. unreduce.c gcc -c -Wall -I. unshrink.c gcc -c -Wall -I. zipinfo.c gcc -c -Wall -I. unix/unix.c gcc -lrcc -o unzip unzip.o crc32.o crctab.o crypt.o envargs.o explode.o extract.o fileio.o globals.o inflate.o list.o match.o process.o ttyio.o unreduce.o unshrink.o zipinfo.o unix.o fileio.o: In function `rccUnzipFree': fileio.c:(.text+0x14): undefined reference to `rccFree' fileio.o: In function `rccUnzipInit': fileio.c:(.text+0x3f): undefined reference to `rccInit' fileio.c:(.text+0x5e): undefined reference to `rccInitDefaultContext' fileio.c:(.text+0x6d): undefined reference to `rccLoad' fileio.c:(.text+0x81): undefined reference to `rccInitDb4' fileio.o: In function `_DS_OEM_INTERN': fileio.c:(.text+0xe6): undefined reference to `rccSizedRecode' fileio.o: In function `_DS_ISO_INTERN': fileio.c:(.text+0x15e): undefined reference to `rccSizedRecode' collect2: ld returned 1 exit status make[1]: *** [unzip] Error 1 make[1]: Leaving directory `/usr/src/packages/BUILD/unzip-5.52' make: *** [linux_noasm] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.KhIFJ4 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.KhIFJ4 (%build)
|
|
|
|
|
| administrator
|
|
|
Posted: 04.02.10 18:38. Post subject: Хм. странно, все эти..
Хм. странно, все эти символы имеются в -lrcc. Ладно, может быть вы мне пришлете SPEC файл или даже лучше не собирающийся SRPM, а я попробую разобраться в чем дело.
|
|
|
|
Posted: 09.03.10 14:21. Post subject: Я залил SRPM сюда: h..
Я залил SRPM сюда: http://www.sendspace.com/file/celwn4 Пакет собирается и работает в openSUSE 11.1, но не компилируется в openSUSE 11.2. Есть подозрение, что это связано с версией GCC. В oS 11.1 версия 4.3, а в oS 11.2 -- 4.4. Посмотрите, пожалуйста.
|
|
|
|
| administrator
|
|
|
Posted: 10.03.10 05:24. Post subject: Поправил и собрал на..
|
|
|
|
Posted: 10.03.10 13:16. Post subject: Спасибо. Я смотрю, в..
Спасибо. Я смотрю, вы отключили некоторые флаги оптимизации. Но в таком виде пакет не пройдёт. Нельзя ли внести радикальные исправления? Дело в том, что русскоязычное сообщество openSUSE хочет продвинуть исправленный пакет unzip вместе с библиотеками rusxmms в официальный дистрибутив. А требования для собираемых пакетов довольно строгие. И ещё вопрос: перекодируются только русские имена или другие тоже?
|
|
|
|
| administrator
|
|
|
Posted: 10.03.10 17:29. Post subject: Для OpenSuSe можно в..
Для OpenSuSe можно вернуть дефолтовые флаги. Я их убрал, чтобы из одного SPECа собиралось и в Mandriva2010, где в числе флагов есть -Werror=format_security. А исходники unzip довольно не акуратны в этом плане. Т.е. если собирать только для OpenSuSe можно вернуть в SPEC flags="%optflags -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" и все будет работать. LibRCC работает с кучей языков. Мануально выставляя кодировки можно вообще с чем угодно работать. Авто-определение есть для России - Украины - ISO8859-1 через LibRCD, большинства восточно-европейских языков через Enca, и китайско-японско-корейского через LibGUESS.
|
|
|
|
| administrator
|
|
|
Posted: 10.03.10 17:34. Post subject: btw. Чем могу помогу..
btw. Чем могу помогу в плане продвижения. Если есть необходимость можете связаться со мной через Jabber: csa@dside.dyndns.org или ICQ: 79214249
|
|
|
|
Posted: 10.03.10 18:12. Post subject: Собираю с флагами: R..
Собираю пакет в openSUSE Factory (11.3), на перспективу. Собираю с флагами: RPM_OPT_FLAGS="%optflags -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" Нужна ли опция -D_LARGEFILE_SOURCE при наличии -D_LARGEFILE64_SOURCE? Вот параметры, которые передаются компилятору: gcc -c -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -DRCC_LAZY=1 В процессе компиляции вижу вывод: ... dsrecode.h: In function 'rccRecode2': dsrecode.h:38:1: warning: no return statement in function returning non-void ... и в итоге: I: Program returns random data in a function E: unzip no-return-in-nonvoid-function dsrecode.h:38 Сборка пакета завершена с ошибкой, и он отбрасывается как непригодный. Собирается без ошибки в openSUSE 11.2. Но та же ошибка при сборке в 11.1. Видимо, rpmlint по-разному заточен. Про языки понятно. К сожалению, LibGUESS тоже нет в официальном репозитории. Большое спасибо за помощь.
|
|
|
|
|
| administrator
|
|
|
Posted: 10.03.10 18:26. Post subject: Ок, dsrecode.h я сей..
Ок, dsrecode.h я сейчас поправлю, это не проблема. Что касается LibGUESS, то она 1) опциональна и можно пока забить 2) если надо будет я исходники в librcc положу и буду статически компилировать вместе с librcc так что не проблема.
|
|
|
|
Posted: 10.03.10 18:37. Post subject: Отлично! исходники ..
Отлично! quote: | исходники в librcc положу и буду статически компилировать вместе с librcc |
|
Это был бы наилучший вариант. Чем больше языков будет охвачено, тем больше шансов на включение в дистрибутив.
|
|
|
|
| administrator
|
|
|
Posted: 10.03.10 19:19. Post subject: Поправил патч. Тепер..
Поправил патч. Теперь собирается. Что касается LibGUESS, - я думаю мы вполне можем говорить, что дальне-восточные языки поддерживаются (по крайне мере на мануальном уровне), но, до появления первого заинтересованого лица, я не хочу включать libguess внутрь, т.к. не могу полноценно проверить ;)
|
|
|
|
Posted: 11.03.10 12:38. Post subject: Да. Теперь компилиру..
Да. Теперь компилируется без ошибок. Но есть проблема. Версия под x86_64 не работает. В dsrecode.h жёстко прописан путь: rcc_handle = dlopen("/usr/lib/" RCC_LIBRARY, RTLD_NOW); А библиотека в lib64. А shared-версию никак не получится реанимировать? Это было бы предпочтительнее.
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 15:33. Post subject: На самом деле shared..
На самом деле shared версия создает проблемы в некоторых случаях. Например, при сборке openoffice. Они там в своих скриптах запускают unzip в каком-то хитром chroot environmentе где unzip не имеет доступа к librcc.so.0 Я лучше добавлю определение правильного пути.
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 20:47. Post subject: 1. Выложил исправлен..
1. Выложил исправленный патч. 2. Я тут подумал, что этот эффект возможно имеет место быть только в Gentoo и в SuSe можно и просто слинковать (я бы таки не стал для надежности). Тогда надо просто не definить RCC_LAZY и линковать с -lrcc. Т.е. строчку make в spec файле поменять на: make %{?jobs:-j%jobs} -f unix/Makefile LF2="-ldl -lrcc" LOCAL_UNZIP="" linux_noasm
|
|
|
|
Posted: 11.03.10 21:06. Post subject: Спасибо. Пожалуй, дл..
Спасибо. Пожалуй, для надёжности не будем линковать.
|
|
|
|
| administrator
|
|
|
Posted: 11.03.10 21:40. Post subject: Кстати, unzip-6 имее..
Кстати, уже есть unzip-6 и патч от 5.52 подходит
|
|
|
|
Posted: 11.03.10 22:45. Post subject: Наши мейнтейнеры пок..
Наши мейнтейнеры пока не обновляют. Уж не знаю, почему. Зато патчами обвешали как новогоднюю ёлку. :) Сейчас всё собирается нормально. unzip, mc и графический Ark отображают русские имена правильно. Но файловые менеджеры Dolphin и Krusader открывают архив как директорию, и там имена не перекодированы. Буду ещё разбираться.
|
|
|
Replys - 46
, page:
1
2
3
All
[new only]
|
|