The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

pkgdiff - анализатор различий пакетов

02.02.2012 16:32

Компания Роса представила утилиту pkgdiff, предназначенную для анализа различий между несколькими версиями пакета (RPM, DEB, TAR.GZ и т.п.). Pkgdiff позволяет упростить задачу по оценке внесённых в пакет изменений, на основании сопоставления содержимого пакета и метаданных. Поддерживается формирование наглядных отчётов (пример 1, пример 2), имеющих несколько уровней детализации: от вывода списка различающихся файлов и изменений структуры пакета, до детальных построчных различий отдельных файлов. Дополнительно проводится анализ изменений с учетом типа файла, например, для библиотек оценивается изменение ABI. Код утилиты написан на языке Perl и распространяется под лицензией GPL.

  1. Главная ссылка к новости (http://www.rosalab.ru/blogs/pa...)
  2. OpenNews: Первый релиз Urpm-tools
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32970-deb
Ключевые слова: deb, rpm, packet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, анон (?), 17:29, 02/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    очень приятная софтина
     
  • 1.6, Аноним (-), 18:39, 02/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Допустим, пробежаться по контенту source файлов диффом оптом мы можем сами (не касаясь формата "отчетов"), однако только ради этого можно было тулзу написать: "Дополнительно проводится анализ изменений с учетом типа файла, например, для библиотек оценивается изменение ABI."
     
     
  • 2.8, myhand (ok), 19:23, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Допустим, пробежаться по контенту source файлов диффом оптом мы можем сами

    Для этого не обязательно бегать самим - достаточно заставить побегать готовые утилиты (debdiff, думаю для rpm-ок тоже что-то найдется).

    > Дополнительно проводится анализ изменений с учетом типа файла, например, для библиотек оценивается изменение ABI

    На этом "например" и заканчивается все оригинальное.  И только ради этого стоило городить трехколесный велосипед, вместо развития существующих утилит?

     
     
  • 3.9, Аноним (-), 19:46, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Соответствующих? Развития? И какой инструмент следует развивать (надеюсь не libreoffice какой-нибудь)? (дайте ссылку на проект)
     
     
  • 4.12, myhand (ok), 20:10, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Дал выше.
     
     
  • 5.23, Аноним (-), 04:59, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ааа, вы про debdiff и подобные для других систем. Ну а если нужна одна утилита которая будет объединять множество пакетных систем (что, кстати, вполне логично, так как логика одинаковая). Да и лоничнее это - запилить одну логику для всего в одной тулзе, а частности (поддержка конкретной пакетной системы) релализовать уже на дочерних элементах наследующих логику (ООП-стайл же, ну).
     
  • 3.10, Флинт (?), 19:51, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    debdiff - Debian.. но ведь, есть жизнь и на других планетах! к тому же, я часто сталкивался с тем что проги разработанные поклонниками Debian'а зачастую ооочень "дебианизированы", т.е. свои пути, зачастую привязка к чисто дебиановским пакетам и пр.. портирование таких вещей сильно затруднено.. проще написать своё чем выпускать патч для своего дистра..
     
     
  • 4.14, myhand (ok), 20:19, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > debdiff - Debian.. но ведь, есть жизнь и на других планетах!

    Думаю, что и для rpm есть аналогичное.  А вот смысла в утилите, поддерживающей (криво) оба формата - нету никакого.

    > тому же, я часто сталкивался с тем что проги разработанные поклонниками
    > Debian'а зачастую ооочень "дебианизированы", т.е. свои пути, зачастую привязка к чисто
    > дебиановским пакетам

    Не врите, пожалуйста.  Дебиан достаточно жестко следует FHS.  Что касается "чисто дебиановских" пакетов - таких в природе нет, исключая разве что специфичные для дебиановской разработки утилиты.


     
     
  • 5.15, Флинт (?), 20:27, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    поглядите в зависимости Fatrat из Git.. для того чтобы собрать полнофункциональную версию надо портировать кусок из пакета, которого нигде кроме Debian'а нет! это только то с чем я непосредственно сталкивался.. так же могу привести пример по портированию на Mandriva/ROSA и OpenSUSE пакетов tclmore и ztcl необходимух для включения функции сжатия трафика в клиенте Tkabber(у них косяки с путями)
     
     
  • 6.17, myhand (ok), 20:55, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > поглядите в зависимости Fatrat из Git.

    Гляжу.  Build-Depends: debhelper (>= 7.4.10), cmake (>= 2.6.0), libtorrent-rasterbar-dev (>= 0.14.6), libboost-system-dev, libboost-filesystem-dev, libboost-date-time-dev, libqt4-dev (>= 4.4.0), libqtwebkit-dev, qt4-dev-tools (>= 4.4.0), libgloox-dev (>= 0.9), libcurl4-gnutls-dev | libcurl-devdebhelper (>= 7.3.7), cmake (>= 2.6.0), fatrat-dev (>= 1.1.3).  В debian/rules обычные пляски с ./configure && cmake.  Чего вам там не хватило-то, болезный? :)

    Я уж молчу, что к дебиану данный проект не имеет никакого отношения.  Хотите стянуть наработки из дебиан (что вполне нормально) - это одно (идем сюда: http://anonscm.debian.org/gitweb/?p=collab-maint/fatrat.git).  А если хотите работать с upstream непосредственно - идем в другое место (http://git.dolezel.info/?p=fatrat.git;a=tree) и не плачемся про плохой дебиан, а делаем работу самостоятельно.

     
     
  • 7.18, Флинт (?), 21:09, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    плохо глядели...
    цитата из файла INSTALL:
    "Web interface                 | WITH_WEBINTERFACE     | libpion-net"
    найдите pion-net в других(не deb-base) дистрах..
     
     
  • 8.20, myhand (ok), 21:23, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То, что в других дистрибутивах этот софт не запаковали - личные половые трудност... текст свёрнут, показать
     
  • 7.19, Флинт (?), 21:16, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а у вас Fatrat собран к тому же еще и без поддержки java-плагинов судя по списку...
    цитата из того же INSTALL:
    "Java extensions               | WITH_JPLUGINS         | JRE 1.6, (JDK for compilation) "
     
  • 3.11, Аноним (-), 19:56, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    читай внимательно!
    берем два бинарных пакета, а на выходе получаем различия в исходном коде
    там происходит обратная трансляция и компиляция, жаль выводить умеет только разницу,а не весь код, думаю тут дело в лицензионных ограничениях и масонских заговорах.
    только что попробовал "pkgdiff dx3d9.cab dx3d11.cab" и слил патчи для вайна на 11 директ икс.
    а если выпонить pkgdiff dx3d11.cab /dev/random то... (тсс это секрет)
     
     
  • 4.13, myhand (ok), 20:15, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > читай внимательно!
    > берем два бинарных пакета, а на выходе получаем различия в исходном коде

    Глупостей не пишите.  Картинки, которые в тексте вам показали - различия между двумя src.rpm в одном примере и двумя тарболами в другом.

    Для дебиан он умеет сравнивать бинарные пакеты (*.deb).  Примерно также как и debdiff.

    > там происходит обратная трансляция и компиляция

    Ага, вызываемая телепатическим модулем.


     
     
  • 5.21, Аноним (-), 22:21, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    бро, все действительно так как ты сказал?
     
  • 4.16, Флинт (?), 20:35, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > там происходит обратная трансляция и компиляция,

    нет.. он тупо сравнивает.. проверял на пакетах vacuum-im(которые сам же и собирал)..
    выводится только отличия в заголовках и ина о том что сами бинарники различны..

     
  • 4.22, Аноним (-), 23:00, 02/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    странно, но pkgdiff windows7.iso /dev/random возвращает 0
     
  • 4.24, Аноним (-), 05:13, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >читай внимательно!
    >берем два бинарных пакета, а на выходе получаем различия в исходном коде

    там происходит обратная трансляция и компиляция, жаль выводить умеет только разницу,а не весь код, думаю тут дело в лицензионных ограничениях и масонских заговорах.
    только что попробовал "pkgdiff dx3d9.cab dx3d11.cab" и слил патчи для вайна на 11 директ икс.
    а если выпонить pkgdiff dx3d11.cab /dev/random то... (тсс это секрет)

     
  • 4.25, Аноним (-), 05:25, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >читай внимательно!
    >берем два бинарных пакета, а на выходе получаем различия в исходном коде

    там происходит обратная трансляция и компиляция, жаль выводить умеет только разницу,а не весь код, думаю тут дело в лицензионных ограничениях и масонских заговорах.
    только что попробовал "pkgdiff dx3d9.cab dx3d11.cab" и слил патчи для вайна на 11 директ икс.
    >а если выпонить pkgdiff dx3d11.cab /dev/random то... (тсс это секрет)

    Ваганыч, ты?
    Я, в отличии от вас почитал еще и файл pkgdiff.pl который  прилетел по git clone git://github.com/pkgdiff/pkgdiff

    Там 2327 строк средней компактности простого перлового кода. Для тебя лично могу разложить всю логику, провести анализ кода с разных позиции и проделать аналитическую работу с научной позиции (это когда не размахивают повсюду своим субъективным отростком (я ваш дом труба шатал) - а ищут пути достижения объективного результата). Только один момент: необходима компенсация моего времени. Все остальное - обсуждаемо.

     
  • 3.27, aponomarenko (ok), 13:06, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> Допустим, пробежаться по контенту source файлов диффом оптом мы можем сами
    > Для этого не обязательно бегать самим - достаточно заставить побегать готовые утилиты
    > (debdiff, думаю для rpm-ок тоже что-то найдется).
    >> Дополнительно проводится анализ изменений с учетом типа файла, например, для библиотек оценивается изменение ABI
    > На этом "например" и заканчивается все оригинальное.  И только ради этого
    > стоило городить трехколесный велосипед, вместо развития существующих утилит?

    Пожалуй, главной причиной независимого инструмента была цель абстрагироваться от формата сравниваемых пакетов. Debdiff работает только с Deb-пакетами, Urpmdiff - только с RPM-пакетами. Развитие Debdiff в плане добавления в него поддержки RPM выглядит, мягко говоря, странно. Также это было бы слишком сложно - весь код завязан на одном формате. Кроме того развивать там практически нечего - всего 1000 строк в одном инструменте и 200 в другом - легче сделать с нуля и возможно с дополнительной поддержкой опций этих двух инструментов.

    Дополнительно к функциональности Debdiff и Urpmdiff (сравнение зависимостей, списка добавленных/удаленных файлов) PkgDiff классифицирует файлы, по-возможности сравнивает их содержимое, строит удобные HTML-отчеты и поддерживает сравнение не только RPM и Deb, но также и архивов (TAR.GZ, TAR.xz, и др.).

    Также это всего лишь первая версия PkgDiff. В будущих версиях будет добавлена возможность оценки влияния изменений в пакете на зависимые пакеты в репозитории, а также детальные проверки для некоторых наиболее важных форматов файлов (например, для CLI - сравнение опций и тд.).

     
     
  • 4.28, myhand (ok), 13:29, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Пожалуй, главной причиной независимого инструмента была цель абстрагироваться от формата сравниваемых пакетов.

    Но, простите, ЗАЧЕМ?  Какой дистрибутив в здравом уме и трезвой памяти будет использовать ваши тридевять форматов одновременно?

    > Развитие Debdiff в плане добавления в него поддержки RPM выглядит, мягко говоря, странно.

    Да не поддержки RPM (хотя, заверните RPM в DEB через alien - будет вам и поддержка), речь шла о добавлении "оценки изменений ABI".  Больше ровно ничего оригинального нет.

    > Кроме того развивать там практически нечего - всего 1000 строк в одном инструменте и 200 в другом - легче сделать с нуля

    Конечно, легче.  Это не значит, что лучше.

     
     
  • 5.29, aponomarenko (ok), 15:20, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> Пожалуй, главной причиной независимого инструмента была цель абстрагироваться от формата сравниваемых пакетов.
    > Но, простите, ЗАЧЕМ?  Какой дистрибутив в здравом уме и трезвой памяти
    > будет использовать ваши тридевять форматов одновременно?

    Например, в нашей сборочной системе (ABF) поддерживаются оба формата. Она используется как для сборки RPM-based дистрибутивов (например, ROSA), так и Deb-based (внутренние разработки для мобильных устройств). Кроме того, одновременное использование архивов (апстрим-пакетов) и бинарных пакетов - повсеместно.

    >> Развитие Debdiff в плане добавления в него поддержки RPM выглядит, мягко говоря, странно.
    > Да не поддержки RPM (хотя, заверните RPM в DEB через alien -
    > будет вам и поддержка),

    При преобразовании с помощью alien теряются зависимости пакета. Так что такой способ не подойдет.

    > речь шла о добавлении "оценки изменений ABI".
    >  Больше ровно ничего оригинального нет.

    Именно! Детальное сравнение содержимого файлов пакета - одна из основных фич, которых нет в других инструментах. Например, для библиотек - проверяются изменения в ABI (с помощью инструмента ABI Compliance Checker разрабатываемого в Лаборатории РОСА). Для текстовых файлов - отображается визуальный HTML отчет о различиях. Для man-страниц - производится интерпретация и уже затем текстовое построчное сравнение. И это только первая версия инструмента.

    >> Кроме того развивать там практически нечего - всего 1000 строк в одном инструменте и 200 в другом - легче сделать с нуля
    > Конечно, легче.  Это не значит, что лучше.

    В общем случае - согласен, но конкретно в данном - все-таки лучше сделать новый инструмент. Разные цели - разные инструменты. Поддержка разных форматов и поддержка одного - это существенно разные цели.

     
     
  • 6.30, myhand (ok), 16:16, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, в нашей сборочной системе (ABF) поддерживаются оба формата.

    Вот мне и любопытно, зачем?  Ну, помимо галочек в аччотах и очередного дистроклепательства?

    >> речь шла о добавлении "оценки изменений ABI".
    >>  Больше ровно ничего оригинального нет.
    >
    >Именно! Детальное сравнение содержимого файлов пакета - одна из основных фич, которых нет в других инструментах.

    Да есть, в том же debdiff (он умеет и dsc сравнивать, помимо прочего).  Кроме, действительно, оценки изменений ABI.  Интегрировали бы это в debdiff - вам бы спасибо сказали.  Все требуемые зависимости там есть в пакетах.

     
     
  • 7.31, aponomarenko (ok), 16:48, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Например, в нашей сборочной системе (ABF) поддерживаются оба формата.
    > Вот мне и любопытно, зачем?  Ну, помимо галочек в аччотах и
    > очередного дистроклепательства?

    Сборочная система собирает пакеты разных форматов - как RPM, так и DEB. Зачем? Чтобы выпускать разные продукты на разных пакетных базах с помощью одной сборочной системы.

    И никакого дистроклепательства нет. Международная Mandriva 2011 была выпущена, между прочим, в Лаборатории РОСА.

    >>> речь шла о добавлении "оценки изменений ABI".
    >>>  Больше ровно ничего оригинального нет.
    >>
    >>Именно! Детальное сравнение содержимого файлов пакета - одна из основных фич, которых нет в других инструментах.
    > Да есть, в том же debdiff (он умеет и dsc сравнивать, помимо
    > прочего).

    Это всего лишь проверка одного файла, у нас же цель проверять все файлы.

    > Кроме, действительно, оценки изменений ABI.
    > Интегрировали бы это в debdiff - вам бы спасибо сказали.  Все
    > требуемые зависимости там есть в пакетах.

    После доработки Debdiff получился бы код следующего содержания - 90% нового кода и 10% старого из Debdiff. Причем код Debdiff будет сильно переработан, так как будет увеличен уровень абстракции от формата пакета. Так зачем же его использовать, если это только усложнит разработку и приведет к тому же результату?

     
     
  • 8.32, myhand (ok), 17:15, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем Я понимаю еще - разные версии из upstream Но это Энтропия расте... текст свёрнут, показать
     
     
  • 9.33, aponomarenko (ok), 17:52, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Объясняю на пальцах Есть два дистрибутива Один для Desktop ов - Mandriva ROSA ... текст свёрнут, показать
     
     
  • 10.34, myhand (ok), 19:02, 03/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Можно не разрабатывать два дистрибутива Вот и я о чем Смысл такого действа ... текст свёрнут, показать
     

  • 1.7, Флинт (?), 19:15, 02/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    я РОСист.. увидел сообщение о утилите в RSS от ROSALab.. скачал.. попробовал.. в общем полезно, НО несколько выбивается из "Mandriva/ROSA-way".. нет GUI!!!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру