Форум » RusXMMS Project » Добавление патча p7zip в openSUSE » Ответить

Добавление патча p7zip в openSUSE

Gankov: Добрый день уважаемые разрабочики. Спасибо вам за вашу библиотеку и патчи, очень нужная вещь. Помогите пожалуйста разобраться с патчем для p7zip. Дело в том что хочу добавить этот патч в основной репозиторий openSUSE. Собрал патченый p7zip и выяснилось что патч работает не полностью. По какой то причине, архивы просматриваемые с помощью 7za открываются корректно, а архивы просматриваемые через 7z имеют известную проблему с кодировкой. Можно ли как то исправить проблему? Если посмотреть сависимые библиотеки видно что к 7z библиокета librcc не подключается. 22:20 kent@lazy ~/Work/unzip/unzip-6.00-test % ldd /usr/lib64/p7zip/7za linux-vdso.so.1 => (0x00007fff559ff000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003451c00000) librcc.so.0 => /usr/lib64/librcc.so.0 (0x0000003464800000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003455400000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003455000000) libc.so.6 => /lib64/libc.so.6 (0x0000003451000000) /lib64/ld-linux-x86-64.so.2 (0x000000344fa00000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fd5f2bb1000) librcd.so.0 => /usr/lib64/librcd.so.0 (0x0000003465000000) libenca.so.0 => /usr/lib64/libenca.so.0 (0x000000346ae00000) libaspell.so.15 => /usr/lib64/libaspell.so.15 (0x000000345bc00000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003451800000) libm.so.6 => /lib64/libm.so.6 (0x0000003451400000) libz.so.1 => /lib64/libz.so.1 (0x0000003452000000) 22:21 kent@lazy ~/Work/unzip/unzip-6.00-test % ldd /usr/lib64/p7zip/7z linux-vdso.so.1 => (0x00007fff51bff000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003451c00000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003451800000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003455400000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003455000000) libc.so.6 => /lib64/libc.so.6 (0x0000003451000000) /lib64/ld-linux-x86-64.so.2 (0x000000344fa00000) libm.so.6 => /lib64/libm.so.6 (0x0000003451400000) На всякий случай дам ссылку на проект в OBS. https://build.opensuse.org/package/show?package=p7zip&project=home%3AGankov%3Abranches%3AArchiving

Ответов - 13

Gankov: Сообщу пожалуй что уже удалось выяснить. При компиляции программы 7z используются мэйк файлы из папки CPP/7zip/UI/Console прописал в них библиотеку rccrecode по аналогии с файлами CPP/7zip/Bundles/Alone которые используются для компиляции 7za. Библиотека librcc в зависимостях 7z появилась, но русские буквы в 7z к сожалению так и не заработали.

darksoft: У меня с 9.13 и 7z и 7za нормально работают в Gentoo. Патч использую вот этот: http://dside.dyndns.org/darklin/portage/app-arch/p7zip/files/p7zip_9.13-ds-rusxmms.patch плюс потом, как написано в README, патчу makefilы find . -maxdepth 1 -name "makefile.linux*" -print0 | xargs -0 sed -i -e "s/LOCAL_LIBS=-lpthread/LOCAL_LIBS=-lpthread -lrcc/" find . -maxdepth 1 -name "makefile.machine" -print0 | xargs -0 sed -i -e "s/LOCAL_LIBS=-lpthread/LOCAL_LIBS=-lpthread -lrcc/"

panic: Дабы не плодить темы отпишусь здесь. Не собирается в gentoo p7zip-9.13-r2 ./Common/StreamObjects.cpp In file included from ../../Common/StreamObjects.h:6:0, from ../../Common/StreamObjects.cpp:5: ../../Common/../../Common/DynamicBuffer.h: In instantiation of «void CDynamicBuffer<T>::GrowLength(size_t) [with T = unsigned char; size_t = long unsigned int]»: ../../Common/../../Common/DynamicBuffer.h:39:7: required from «void CDynamicBuffer<T>::EnsureCapacity(size_t) [with T = unsigned char; size_t = long unsigned int]» ../../Common/StreamObjects.cpp:41:37: required from here ../../Common/../../Common/DynamicBuffer.h:20:5: ошибка: «SetCapacity» was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] ../../Common/../../Common/DynamicBuffer.h:20:5: замечание: declarations in dependent base «CBuffer<unsigned char>» are not found by unqualified lookup ../../Common/../../Common/DynamicBuffer.h:20:5: замечание: use «this->SetCapacity» instead make[1]: *** [StreamObjects.o] Ошибка 1 make[1]: *** Ожидание завершения заданий... x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/LimitedStreams.cpp make[1]: Выход из каталога `/var/tmp/portage/app-arch/p7zip-9.13-r2/work/p7zip_9.13/CPP/7zip/Bundles/Format7zFree' make: *** [common7z] Ошибка 2 x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/LockedStream.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/MemBlocks.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/MethodId.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/MethodProps.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/OffsetStream.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/OutBuffer.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/OutMemStream.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/ProgressMt.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/ProgressUtils.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/StreamBinder.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/StreamObjects.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/StreamUtils.cpp x86_64-pc-linux-gnu-g++ -m64 -Os -march=core2 -pipe -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE -c -I. -I../../../myWindows -I../../../ -I../../../include_windows ../../Common/VirtThread.cpp In file included from ../../Common/StreamObjects.h:6:0, from ../../Common/StreamObjects.cpp:5: ../../Common/../../Common/DynamicBuffer.h: In instantiation of «void CDynamicBuffer<T>::GrowLength(size_t) [with T = unsigned char; size_t = long unsigned int]»: ../../Common/../../Common/DynamicBuffer.h:39:7: required from «void CDynamicBuffer<T>::EnsureCapacity(size_t) [with T = unsigned char; size_t = long unsigned int]» ../../Common/StreamObjects.cpp:41:37: required from here ../../Common/../../Common/DynamicBuffer.h:20:5: ошибка: «SetCapacity» was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] ../../Common/../../Common/DynamicBuffer.h:20:5: замечание: declarations in dependent base «CBuffer<unsigned char>» are not found by unqualified lookup ../../Common/../../Common/DynamicBuffer.h:20:5: замечание: use «this->SetCapacity» instead make[1]: *** [StreamObjects.o] Ошибка 1 make[1]: *** Ожидание завершения заданий... make[1]: Выход из каталога `/var/tmp/portage/app-arch/p7zip-9.13-r2/work/p7zip_9.13/CPP/7zip/Bundles/Alone' make: *** [7za] Ошибка 2 emake failed


darksoft: Какая версия gcc?

panic: Используются внутренние спецификации. COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.3/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.3/lto-wrapper Целевая архитектура: x86_64-pc-linux-gnu Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.7.3/work/gcc-4.7.3/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.3 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.3 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.3/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.3/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --without-cloog --without-ppl --disable-lto --enable-nls --without-included-gettext --with-system-zlib --enable-obsolete --disable-werror --enable-secureplt --enable-multilib --with-multilib-list=m32,m64 --enable-libmudflap --disable-libssp --disable-libgomp --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.7.3/python --enable-checking=release --disable-libgcj --enable-libstdcxx-time --enable-objc-gc --enable-languages=c,c++,objc,obj-c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-targets=all --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.7.3 p1.0, pie-0.5.5' Модель многопоточности: posix gcc версия 4.7.3 (Gentoo 4.7.3 p1.0, pie-0.5.5)

darksoft: Это проблема в p7zip/Gentoo. Без RusXMMS оно все равно не собирается с gcc 4.7. Тут патч. http://suren.me/darklin/portage/app-arch/p7zip/files/p7zip_9.13-ds-dynbuf.patch PS. Буду благодарен за подтверждение работоспособности.

panic: Дык встрой в ебуилд, я обновлю оверлей, попробую и отпишусь, если что - откатишь

darksoft: Так я и встроил, ebuild лежит там рядом. http://suren.me/darklin/portage/app-arch/p7zip/p7zip-9.13-r3.ebuild

panic: А http://dside.dyndns.org/darklin и http://suren.me/darklin не равнозначны? Какой более правильный? Пока, для эксперимента, переключаюсь на второй.

darksoft: Равнозначные, это просто мирор. Еще есть: http://csa.aragats.am/darklin/ dside.dyndns.org в Питере suren.me в Германии aragats.am в Штатах

panic: Отчитываюсь. Про обновлении оверлея командой layman -S указанный ебилд не скачивался. Скачал руками селал ebuild digest. Ебилд устанавливаться не захотел, потребовал занести p7zip в нестабильные (~amd64). Поправил конфиги, после этого поставился app-arch/p7zip-9.20.1-r3 из основного дерева (без патча). Реквестирую смену версии, на app-arch/p7zip-9.13 предлагаю забить.

darksoft: Ну укажи версию: emerge =app-arch/p7zip-9.13-r3 Я патч под 20.1, конечно, портирую, но чуть позже.

darksoft: Патч подходит к 20.1 без изменений. Обновил overlay



полная версия страницы