Да они тут много на изменяли в ядре oO
Патч из оверлея, как?
Тут наводил в своих папках порядок, нашел исходник reiser4 судя по дате качался Срд 27 Июл 2011 из git, там наиболее последние изменения, может кому пригодится?
Хотел архивом скинуть, да уж больно много сам архив весит, даже укомпресованый(.xz = 26M), по этому сделал патч на пустой каталог, удалось укомпресовать до 456k.
патч можно установить в любой пустой каталог.
вот!
ЗЫ: Решил скинуть так как просто жалко что опять затеряется, а так может кому пригодится
Поставил собирать gentoo-sources-3.1.4, как соберется попробую с патчем пересобрать.
>patch -p1 < reiser4.patch /usr/src/linux/ :)
patching file as_ops.c
patching file block_alloc.c
patching file block_alloc.h
patching file blocknrset.c
patching file carry.c
patching file carry.h
patching file carry_ops.c
patching file carry_ops.h
patching file context.c
patching file context.h
patching file coord.c
patching file coord.h
patching file debug.c
patching file debug.h
patching file dformat.h
patching file dscale.c
patching file dscale.h
patching file entd.c
patching file entd.h
patching file eottl.c
patching file estimate.c
patching file export_ops.c
patching file flush.c
patching file flush.h
patching file flush_queue.c
patching file forward.h
patching file fsdata.c
patching file fsdata.h
patching file .git/config
patching file .git/description
patching file .git/HEAD
patching file .git/hooks/applypatch-msg.sample
patching file .git/hooks/commit-msg.sample
patching file .git/hooks/post-commit.sample
patching file .git/hooks/post-receive.sample
patching file .git/hooks/post-update.sample
patching file .git/hooks/pre-applypatch.sample
patching file .git/hooks/pre-commit.sample
patching file .git/hooks/prepare-commit-msg.sample
patching file .git/hooks/pre-rebase.sample
patching file .git/hooks/update.sample
patching file .git/info/exclude
patching file .git/logs/HEAD
patching file .git/logs/refs/heads/master
patching file .git/packed-refs
patching file .git/refs/heads/master
patching file .git/refs/remotes/origin/HEAD
patching file init_super.c
patching file inode.c
patching file inode.h
patching file ioctl.h
patching file jnode.c
patching file jnode.h
patching file kassign.c
patching file kassign.h
The next patch would create the file Kconfig,
which already exists! Assume -R? [n] y
patching file Kconfig
Hunk #1 FAILED at 1.
File Kconfig is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file Kconfig.rej
patching file key.c
patching file key.h
patching file ktxnmgrd.c
patching file ktxnmgrd.h
patching file lock.c
patching file lock.h
The next patch would create the file Makefile,
which already exists! Assume -R? [n] y
patching file Makefile
Hunk #1 FAILED at 1.
File Makefile is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
patching file oid.c
patching file page_cache.c
patching file page_cache.h
patching file plugin/cluster.c
patching file plugin/cluster.h
patching file plugin/compress/compress.c
patching file plugin/compress/compress.h
patching file plugin/compress/compress_mode.c
patching file plugin/compress/lzoconf.h
patching file plugin/compress/Makefile
patching file plugin/compress/minilzo.c
patching file plugin/compress/minilzo.h
patching file plugin/crypto/cipher.c
patching file plugin/crypto/cipher.h
patching file plugin/crypto/digest.c
patching file plugin/dir/dir.h
patching file plugin/dir/hashed_dir.c
patching file plugin/dir/Makefile
patching file plugin/dir/seekable_dir.c
patching file plugin/dir_plugin_common.c
patching file plugin/disk_format/disk_format40.c
patching file plugin/disk_format/disk_format40.h
patching file plugin/disk_format/disk_format.c
patching file plugin/disk_format/disk_format.h
patching file plugin/disk_format/Makefile
patching file plugin/fibration.c
patching file plugin/fibration.h
patching file plugin/file/cryptcompress.c
patching file plugin/file/cryptcompress.h
patching file plugin/file/file.c
patching file plugin/file/file_conversion.c
patching file plugin/file/file.h
patching file plugin/file/invert.c
patching file plugin/file/Makefile
patching file plugin/file/symfile.c
patching file plugin/file/symlink.c
patching file plugin/file/tail_conversion.c
patching file plugin/file_ops.c
patching file plugin/file_ops_readdir.c
patching file plugin/file_plugin_common.c
patching file plugin/hash.c
patching file plugin/inode_ops.c
patching file plugin/inode_ops_rename.c
patching file plugin/item/acl.h
patching file plugin/item/blackbox.c
patching file plugin/item/blackbox.h
patching file plugin/item/cde.c
patching file plugin/item/cde.h
patching file plugin/item/ctail.c
patching file plugin/item/ctail.h
patching file plugin/item/extent.c
patching file plugin/item/extent_file_ops.c
patching file plugin/item/extent_flush_ops.c
patching file plugin/item/extent.h
patching file plugin/item/extent_item_ops.c
patching file plugin/item/internal.c
patching file plugin/item/internal.h
patching file plugin/item/item.c
patching file plugin/item/item.h
patching file plugin/item/Makefile
patching file plugin/item/sde.c
patching file plugin/item/sde.h
patching file plugin/item/static_stat.c
patching file plugin/item/static_stat.h
patching file plugin/item/tail.c
patching file plugin/item/tail.h
patching file plugin/Makefile
patching file plugin/node/Makefile
patching file plugin/node/node40.c
patching file plugin/node/node40.h
patching file plugin/node/node.c
patching file plugin/node/node.h
patching file plugin/object.c
patching file plugin/object.h
patching file plugin/plugin.c
patching file plugin/plugin.h
patching file plugin/plugin_header.h
patching file plugin/plugin_set.c
patching file plugin/plugin_set.h
patching file plugin/regular.c
patching file plugin/security/Makefile
patching file plugin/security/perm.c
patching file plugin/security/perm.h
patching file plugin/space/bitmap.c
patching file plugin/space/bitmap.h
patching file plugin/space/Makefile
patching file plugin/space/space_allocator.h
patching file plugin/tail_policy.c
patching file pool.c
patching file pool.h
patching file readahead.c
patching file readahead.h
The next patch would create the file README,
which already exists! Assume -R? [n] y
patching file README
Hunk #1 FAILED at 1.
File README is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file README.rej
patching file reiser4.h
patching file safe_link.c
patching file safe_link.h
patching file seal.c
patching file seal.h
patching file search.c
patching file status_flags.c
patching file status_flags.h
patching file super.c
patching file super.h
patching file super_ops.c
patching file tap.c
patching file tap.h
patching file tree.c
patching file tree.h
patching file tree_mod.c
patching file tree_mod.h
patching file tree_walk.c
patching file tree_walk.h
patching file txnmgr.c
patching file txnmgr.h
patching file type_safe_hash.h
patching file vfs_ops.c
patching file vfs_ops.h
patching file wander.c
patching file wander.h
patching file writeout.h
patching file znode.c
patching file znode.h
В menuconfig reiser4 не появился. :(
newzenon Это просто исходник reiser4 я его сделал в виде патча что бы просто меньше места занимал, это не патч для ядра.
Это то что обычно находится в каталоге fs/reiser4 после установки оригинального патча от разработчика reiser4.
Просто тут можно понаблюдать, какие разработчик сделал изменения в коде, после того как перестал выкладывать патчи.
ormorph, предупреждать надо.
ormorph, ну и как его прикручивать?
Прикрутить скорее всего не получится, так как я посмотрел, он еще определялся с кодом, он еще сырой, плюс некоторые ссылки на заголовочники сделаны не правильно, это можно просмотреть например используя утилиту kompare
А так патч создовался просто:
[console]$ diff -urN reiser4.orig reiser4 >reiser4.patch && bzip2 reiser4.patch[/console]
где reiser4.orig пустой каталог а reiser4 - каталог с исходником.
А так извлекается исходник либо:
[console]$ mkdir reiser4
$ bunzip2 reiser4.patch.bz2
$ patch -Np0 -i reiser4.patch[/console]
Либо:
[console]$ mkdir blabla
$ cd blabla
$ patch -Np1 -i ../reiser4.patch[/console]
ormorph, ничего не понял, bunzip куда? в /usr/src/linux/fs/reiser4? Потом patch -Np1 -i откуда?
newzenon
Тут все довольно просто, если выполнить patch -Np0 -i reiser4.patch, вы видите что стоит после p цифра ноль, то извлекается исходник в папку reiser4 которая находится в текущем каталоге( в котором вы находитесь: pwd)
если параметр -Np1 то извлекается исходник непосредственно в тот каталог в котором вы находитесь(не в папку reiser4).
-i это то же самое что и <
Брррр...
Исходники ядра у меня в /usr/src/linux
Вот я распаковал твой архив:
>ls /usr/src/linux/fs/reiser4 /usr/src/linux/ :)
Kconfig.diff entd.h.diff ktxnmgrd.h.diff super_ops.c.diff
Makefile.diff eottl.c.diff lock.c.diff tap.c.diff
README.diff estimate.c.diff lock.h.diff tap.h.diff
as_ops.c.diff export_ops.c.diff oid.c.diff tree.c.diff
block_alloc.c.diff flush.c.diff page_cache.c.diff tree.h.diff
block_alloc.h.diff flush.h.diff page_cache.h.diff tree_mod.c.diff
blocknrset.c.diff flush_queue.c.diff plugin/ tree_mod.h.diff
carry.c.diff forward.h.diff pool.c.diff tree_walk.c.diff
carry.h.diff fsdata.c.diff pool.h.diff tree_walk.h.diff
carry_ops.c.diff fsdata.h.diff readahead.c.diff txnmgr.c.diff
carry_ops.h.diff init_super.c.diff readahead.h.diff txnmgr.h.diff
context.c.diff inode.c.diff reiser4.h.diff type_safe_hash.h.diff
context.h.diff inode.h.diff safe_link.c.diff vfs_ops.c.diff
coord.c.diff ioctl.h.diff safe_link.h.diff vfs_ops.h.diff
coord.h.diff jnode.c.diff seal.c.diff wander.c.diff
debug.c.diff jnode.h.diff seal.h.diff wander.h.diff
debug.h.diff kassign.c.diff search.c.diff writeout.h.diff
dformat.h.diff kassign.h.diff status_flags.c.diff znode.c.diff
dscale.c.diff key.c.diff status_flags.h.diff znode.h.diff
dscale.h.diff key.h.diff super.c.diff
entd.c.diff ktxnmgrd.c.diff super.h.diff>cd /usr/src/linux/fs/reiser4 И?
)))
Хотите откатить наложенный патч?
Cудя по всему ставили с параметром -p1 находясь в каталоге ядра.
Тогда находясь в каталоге ядра выполните команду:
[console]# patch -Np1 -R -i путь/reiser4.patch[/console]
все наложенное будет удалено.
ormorph, cейчас чистые исходники 3.1.4 и твой распакованный архив в /usr/src/linux/fs/reiser4, как наложить-то?
newzenon
Разработчик данного исходника сам, создавал патч той же самой командой что и я,по этому в нем кроме добавления исходника в каталоге reiser4 правятся файлы самого ядра, тем более я уже проверял данный исходник подменив просто каталог в fs/reiser4 на этот исходник, он так же не собирается.
Не мучайтесь smile
ormorph, Так то что выложил это не исходник, это diff'ы.
Ну да ладно приспичит поставлю 38-ое или 39-ое там reiser4 нормально работал.
ormorph, Так то что выложил это не исходник, это diff'ы.
Ну да ладно приспичит поставлю 38-ое или 39-ое там reiser4 нормально работал.
Ну по чему, это как раз исходник, так как diff утилита которая записывает изменения, то когда берется два каталога для сравнения, при этом один пустой, то в файл записывается полное содержимое полного каталога, можете проверить, после установки патча, его размер стал 30М, потерялись только данные даты создания файлов, их дата стала теперь число установки патча, а так все содержимое на месте.
Просто когда то качал данный исходник с git командой что я в начале давал.
Если сравнить командой diff, оригинал и установленный патч в пустой каталог, то изменения отсутствуют.
Просто данный исходник в виде патча весит очень мало, по сравнению с архивом.
Так из какого каталога тогда сам патч запускать?
Допустим создам пустой каталог
[console]$ mkdir /usr/src/linux/fs/reiser4
$ cd /usr/src/linux
$ wget http://ompldr.org/vYmtnNg/reiser4.patch.bz2
$ bunzip2 reiser4.patch.bz2
$ patch -Np0 -i reiser4.patch[/console]
Или перед bunzip надо было перейти в /usr/src/linux/fs/
А после в /usr/src/linux/fs/reiser4
Запутал меня совсем... :(
Так из какого каталога тогда сам патч запускать?
Допустим создам пустой каталог
[console]$ mkdir /usr/src/linux/fs/reiser4
$ cd /usr/src/linux
$ wget http://ompldr.org/vYmtnNg/reiser4.patch.bz2
$ bunzip2 reiser4.patch.bz2
$ patch -Np0 -i reiser4.patch[/console]
Или перед bunzip надо было перейти в /usr/src/linux/fs/
А после в /usr/src/linux/fs/reiser4
Запутал меня совсем... :(
О нет так не делается smile
тогда уж после mkdir /usr/src/linux/fs/reiser4
выполнить cd /usr/src/linux/fs/
Просто посмотрите на команду которой создавался патч там каталог reiser4 является источником исходника.
0 -означает то же самое положение к каталогу, при котором создавался патч. Т.е. команда в обоих случаях ls покажет перед собой каталог reiser4
Просто патч это хороший способ хранить текстовую информацию, бинарники только нельзя, можете посмотреть какая информация единственно утеряна в результате выполнения утилиты diff
Выполнив команду:
cat reiser4.patch |grep Binary
Потеряна только бинарная информация, необходимая для утилиты git, сам же исходник без изменений.
Зы: Создатель оригинального патча(reiser4-for-2.6.38.patch) создавал его командой: diff -urN linux-2.6.38.orig linux-2.6.38 , где linux-2.6.38.orig начальный исходник, а linux-2.6.38 исходник в котором сделаны изменения.
Все аналогично как я описывал в начале.