ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Peter Novodvorsky <nidd@altlinux.com>
To: devel@altlinux.org
Subject: [devel] kernel packagin', new generation
Date: Tue, 18 Feb 2003 01:34:57 +0300
Message-ID: <m33cmmtu26.fsf@shamrock.office.altlinux.ru> (raw)

Здравствуйте!

Я занимаюсь созданием новых пакетов с ядром. Поговорив в ldv, rider и
другими участниками команды мои планы по проектированию новых спеков
для ядра более-менее устаканились и я вам их и представляю.

При проектировании спека мной преследовались следующие три цели, две
конкретные и одна более абстракная:

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

Я предлагаю следующую инфраструктуру. Тарболы с исходными файлами
kernel, alsa, drm, pcmcia-cs, etc., собираются в отдельные
пакеты. Патчи тоже. Со следующей стркутурой:

kernel-source RPM:
/usr/src/kernel-source-%{version}.tar.bz2
/usr/share/kspec-tmpl/kernel-source-%{version}.spec.tmpl

alsa RPM:
/usr/src/alsa-%{version}.tar.bz2
/usr/share/kspec-tmpl/alsa-%{version}.spec.tmpl


%{patch_name}-kernel-patch RPM:
/usr/src/patches/%{patch_name}/*  /* various patch files */
/usr/src/patches/apply/%{patch_name}

Планируется сделать скрипт make-kspec. make-kspec подставляет
переменные в начало spec.tmpl'ей и генерит спеки к заданным
пакетам. Например, 

make-kspec --kver 2.4.18 --modules alsa,drm,pcmcia-cs \
           --patches grsec,reiserfs --flavour multimedia \
           --release alt1

Оно генерит четыре спека, -- для ядра, и для трех модулей определяя в
них соответствующие требующиеся переменные. Далее, как происходит
работа с патчами: для спека ядра заполняется переменная %patches,
которая будет равна аргументу --patches. В спеке, в секции %prep есть
примерно следующее

local applied_patches;

tar -jxvf %kernel_tarball
pushd kernel-source-%{kversion}
for i in `echo %patches | sed -e 's/,/\ /g'`; do
  applied_patches="$applied_patches,$i"
  %patches_dir/apply/$i --kver %{kversion} --already-applied $applied_patches
done

Из этого спека будет генерится пакет kernel-image-2.4.18-multimedia
с версией 2.4.18 и версией релиза alt1 и
kernel-headers-2.4.18-multimedia с той же версией и той же версией
релиза.

Из соответствующих модулей будут генерится:
{alsa,drm,pcmcia-cs}-2.4.18-multimedia с соответствующей версией
{alsa,drm,pcmcia-cs}  и номером релиза alt1, которые будут зависеть от
kernel-headers-2.4.18-multimedia.

Единственная проблема, которая приходит мне в голову: патчи могут
конфликтовать. Но на этот случай пакет %{name}-kernel-patch может
иметь разные варианты патчей и реагировать на аргумент
--already-applied по ситуации.


Критика желательна. Просто необходима. А так же желательно согласие по
принципиальным вопросам. :)

-- 
Peter Novodvorsky                             nidd@myxomop.com
   http://people.altlinux.ru/~nidd   Deadheads, unite!
           Kill 'em all, and let God sort 'em out


             reply	other threads:[~2003-02-17 22:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-17 22:34 Peter Novodvorsky [this message]
2003-02-17 21:50 ` Volkov Serge
2003-02-18  8:49 ` Alexander Bokovoy
2003-02-18  8:54 ` Alexey V. Lubimov
2003-02-18  9:48 ` Albert R. Valiev
2003-02-18 14:43   ` Peter Novodvorsky
2003-02-18 11:46     ` Aleksey Novodvorsky
2003-02-19  9:04     ` rider
2003-02-18 14:46 ` [devel] " Alexey Tourbin
2003-02-18 18:09   ` Peter Novodvorsky
2003-02-18 15:31     ` Alexey Tourbin
2003-02-18 18:44       ` Peter Novodvorsky
2003-02-18 16:00         ` Alexey Tourbin
2003-02-19  9:13     ` rider
2003-02-19 14:23       ` Peter Novodvorsky
2003-02-19 11:52         ` Denis Ovsienko
2003-02-19 15:00           ` Peter Novodvorsky
2003-02-20  0:21         ` Mikhail Zabaluev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m33cmmtu26.fsf@shamrock.office.altlinux.ru \
    --to=nidd@altlinux.com \
    --cc=devel@altlinux.org \
    --cc=devel@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git