Quantcast
Channel: openSUSE Planet - Global
Viewing all articles
Browse latest Browse all 23298

Matwey Kornilov: quilt и rpm

$
0
0
quilt—этосистемаконтроляпатчей, вкаком-тосмыслепредыдущаяступеньэволюциисистемконтроляверсий.

Пустьесть rpm-пакетинужнообновитьеговерсию, используяновыйархивисходныхкодов. Приэтомпатчиостанутсястарыми, инегарантируется, чтоониналожатсянановуюверсию, илинепотребуетсявмешательствочеловека, из-затого, чтокакой-топатчустарел. Послетого, какновыйархивполучениVersion:исправлен, можноприбегнутькпомощиquilt:
quilt setup libdc1394.spec

Этакомандасоздастновуюдиректориювкоторойбудутлежатьраспакованныеисходныекоды, символическаяссылканадиректориюpatches (хранитсамифайлыпатчей) ифайлseries (хранитпорядоквкоторомпатчинужноприменять). quiltневсегдауспешносправляетсяспатчами, которыезавернутыв%if.

Идеологическипроисходитследующее, унасестькомандаquilt, что-товродеаналогаgitилиhg, деревоисходниковистекпатчей. Стекпатчейвчем-тоаналогиченревизиямвсистемахконтроляверсий. Используястекможнопереходитьоттекущегосостояниякследующему (применяяпатч, quilt push) иликпредыдущему (откатывая, quilt pop). Первоначально, мынаходимсявсамомнижнемсостоянии (немодифицированныеисходныекоды):
>quilt top
Нетприменённыхпатчей
>quilt applied
Нетприменённыхпатчей
>quilt unapplied
patches/libdc1394.no-x11.patch
patches/libdc1394.ac.patch
patches/libdc1394-swab_fix.patch
patches/libdc1394.raw1394_set_iso_handler.patch
patches/libdc1394-v4l-2.6.38.patch
patches/libdc1394-visibility.patch

Дальшепопробуемналожитьпервыйпатч (здесьпотребоваласьпредварительнаяобработкаиз-захитройструктурыдиректорийвконкретномслучае),
>quilt push
Наложениепатча patches/libdc1394.no-x11.patch
patching file libdc1394-1.2.2/examples/Makefile.am
patching file libdc1394-2.2.1/configure.in

Текущийпатч: patches/libdc1394.no-x11.patch
>quilt top
patches/libdc1394.no-x11.patch
>quilt applied
patches/libdc1394.no-x11.patch

Итакдалее, поканезакончитсявесьстекпатчей, носкореевсеготакпростооннезакончится. Задача—обновляяпатчи, устранитьконфликты. Послепринудительногоприменения (quilt push -f) следуетвручнуюпросмотретьвсеконфликтныеместаиисправитьихнужнымобразом. Каждыйпатчотслеживаеттольконекотороечислофайлов (quilt files), ноеслиотредактированфайлнеизсписка, тоегонужнодобавить (quilt add). Послетогокаквсеисправлено, нужнообновитьтекущийпатч: quilt refresh (этотакойаналог commit, которыйисправляеттекущийналоженныйпатч, основываясьнарабочейдиректорииипредыдущейспрятаннойкопии)
>quilt refresh
Патч patches/libdc1394-v4l-2.6.38.patch обновлён




Viewing all articles
Browse latest Browse all 23298


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>