Compare commits

...

32 Commits

Author SHA1 Message Date
Michael Shigorin
bc2789e9d6 1.0.5-alt0.M70T.1
- backported pkg/lists fix (and the commit before it)
2015-02-02 23:44:32 +03:00
Michael Shigorin
ba84ab0ae3 pkg/lists: uncrustify Makefile
The problem with the changed piece of code is that it would
- both call cp(1) multiple times if multiple *_LIST variables
  were non-empty (which is usually the case), and
- try to evaluate stdout of the called commands as a shell
  script (which would be empty unless someone passed e.g. -v
  to that cp(1) but it's crazy to rely on things like this).

So the functions should prepare arguments for a single copy
command that is predictable and could be made verbose.

Ouch.
2015-02-02 23:41:45 +03:00
Michael Shigorin
0e31d305ae pkg/lists: tweak Makefile to expand variables
The issue at hand is the hack to be employed in the init feature:

	@$(call add,THE_LISTS,$$(INIT_TYPE))

where INIT_TYPE is set separately; $(value $V) would leave that kind
of substitution unmolested while we would actually need it done.
2015-02-02 23:41:29 +03:00
Michael Shigorin
c601706517 gear-store-tags 2014-03-17 20:39:06 +04:00
Michael Shigorin
d59601f7ad 1.0.4-alt0.M70T.1
- kernel: don't insist on k-m-r8168
2014-03-17 20:37:43 +04:00
Michael Shigorin
8ca80d1ac4 kernel, stage1: don't provide r8168.ko by default
It conflicts with r8169.ko inobviously.

The whole mess looks like this:
- r8169.ko doesn't work for all of Realtek 8111/8168/8169 mutations
- r8168.ko works with some of the chips r8169.ko doesn't
- r8168.ko also works with many chips r8169.ko works with
- r8169.ko is provided by kernel-image package (thus default)
- r8168.ko is provided by kernel-modules-r8168 package (optional)
- kernel-modules-r8168 package requires r8168-blacklist package
- r8168-blacklist package is a one-liner that blacklists r8169.ko
- STAGE1_KMODULES wouldn't include r8168 (std-def) or rtl8168 (led-ws)
- sub.in/stage1/modules would mention r8168.ko (m-p-d: r8169.ko)

So a LiveCD built with use/kernel/net might work with RTL8111/8110
just fine when booted live but fail to automatically load the module
when installed onto hard drive; manual modprobe r8169 would work though.
NB: some of the chips (those available to me) would work just fine
both ways -- this has contributed to fixing this *that* late.

Bottom line:

  do not install backup/kludge drivers overriding main ones by default!

Thanks sem@ for providing the crucial hint.
2014-03-14 12:09:37 +04:00
Michael Shigorin
c29ec7beaa gear-store-tags 2014-03-03 20:14:56 +04:00
Michael Shigorin
ee09a917e8 1.0.3-alt0.M70T.1
- vm fixes/backports
2014-03-03 20:13:56 +04:00
Michael Shigorin
d60492e87c vm.mk: extend vm/net base image size to 5 Gb
qemu-img makes use of sparse files so the image will take up
reasonable space when handled appropriately (and compress nicely
as well); making images of minimal size is going to result in
grave usage problems starting with apt-get update hitting ENOSPC.
2014-03-03 19:16:24 +04:00
Michael Shigorin
b84182c5cb tar2vm: use UUID, prepare for virtio as well
Thanks glebfm@ and sem@ for reminding me about UUID;
the only hardwired thing left is "sda" which *will*
break for virtio_blk case when updating the kernel;
fixing this up in a firsttime script might be due
but the diagnostics should be pretty informative.

These images boot with SATA emulation, virtio_blk setup
(plain virtio disk), and virtio_scsi setup available in
newer qemu/kvm and libvirt; one is advised to read
http://linux-kvm.com/content/virtio-scsi
2014-03-03 19:06:53 +04:00
Michael Shigorin
c4dcf994b0 tar2vm: append to MODULES_PRELOAD, do not clobber
Thanks glebfm@ for spotting that it's = instead of +=
as it goes in all the other places; I remember no good
reason to overwrite the potentially preexisting contents.

(backport)
2014-03-03 19:05:00 +04:00
Michael Shigorin
8547de0f0b vm.mk: use led-ws kernel instead of un-def
It's the most compact "generic" kernel available
in Sisyphus and some branches; led-vs might have
been more suitable but it's not supported within
p7/branch (current stable).
2014-03-01 23:00:20 +04:00
Michael Shigorin
3311ce5d80 p7.mk: added vm/net alias
vm/altlinux-p7-vm-net is yet another bridge...

(backport)
2014-03-01 22:30:54 +04:00
Michael Shigorin
d65a61ea47 vm.mk: vm/net should use/repo
IOW one has every right to expect that package manager
is set up already in a networked virtual machine.

(backport)
2014-03-01 22:30:54 +04:00
Michael Shigorin
b441894df7 vm.mk: use sysvinit
I don't see any reason to use systemd within VM images,
and it would stick its journal as a syslog implementation
when not ditched explicitly :-/

(backport)
2014-03-01 22:30:49 +04:00
Michael Shigorin
e31b12cbf8 tar2vm: use -s Luke
This is a partial backport of g4918019 commit:
"Really no need to test and sleep when there's sync mode"
2014-02-27 17:53:55 +04:00
Michael Shigorin
4b45694ee4 gear-store-tags 2013-12-24 04:15:48 +02:00
Michael Shigorin
d9f11e6fee 1.0.2-alt0.M70T.1
- backported adaptations to handle EFI signed binaries the current way
2013-12-23 14:16:23 +04:00
Michael Shigorin
7bb22cce78 efi: drop -signed subpackages
We chose to provide methods to sign packages but to avoid
signing these by default (with some arbitrary test keys)
the signatures are being added *after* the build by means
of rpmrebuild-pesign; all of this is made significantly
more complicated if there are separate -signed subpackages.

So these are being dropped in the packages; account for that.
2013-12-23 12:02:14 +02:00
Michael Shigorin
f716669bc1 gear-store-tags 2013-11-25 21:07:30 +04:00
Michael Shigorin
3b2a0649bf 1.0.1-alt0.M70T.1
- important bugfix: THE_PACKAGES weren't getting through to .base
  (backported from 1.1.14)
2013-11-25 21:06:01 +04:00
Michael Shigorin
7929f61cad metadata: fix THE_PACKAGES processing
Actually the issue was worse in general: *_PACKAGES
weren't quoted when put into .base thus resulting
in a potentially broken echo command (silent one).

The macro scheme used was overgeneralized; stuffing
quoting differentiation into it was doable but ugly
(unless one is able to pass an unquoted quote sign
as a function's parameter in some elegant manner),
let's just make it straightforward.
2013-11-25 09:33:54 +04:00
Michael Shigorin
dfaf3fe3ef gear-store-tags 2013-06-17 14:03:30 +04:00
Michael Shigorin
5ffd07c65e 1.0.0-alt1
- 1.0
2013-06-17 14:02:13 +04:00
Michael Shigorin
29ce07fb8d 00example: fixed a harmless typo
The script would work nevertheless (given the feature's included)
but lapses are especially wrong in examples.
2013-06-10 20:04:46 +04:00
Michael Shigorin
aa19008b22 gear-store-tags 2013-06-10 20:01:07 +04:00
Michael Shigorin
57b368d75d 0.9.16-alt1
- 1.0pre
2013-06-10 19:43:31 +04:00
Michael Shigorin
5b21100bed README update
These have been proofread somewhat to correspond
to the current state of affairs; a missing one
was added for fonts feature.
2013-06-10 19:43:31 +04:00
Michael Shigorin
52a6d4fd7a initial conf.d/p7.mk
Not as clean as it should be unfortunately,
main.mk has to be reworked to drop the crap...
2013-06-10 19:43:31 +04:00
Michael Shigorin
b195d895d5 regular.mk: add infinality font setup to e17
Looks better indeed, thanks cow@.
2013-06-04 12:31:04 +04:00
Michael Shigorin
3703a758a9 regular.mk: use lightdm instead of gdm3 for cinnamon
...and switch to cinnamon-regular metapackage in general:
the remaining blocker being gdm required by that and not
actually going to work (it used to start gnome-shell which
wouldn't work in that configuration either) is now fixed,
thanks cow@.

PS: plymouth is moved upstream, drop the dup.
2013-06-04 12:30:25 +04:00
Michael Shigorin
ec1b9230b3 gear-store-tags 2013-05-27 13:44:18 +04:00
43 changed files with 246 additions and 147 deletions

View File

@@ -1,6 +1,6 @@
Name: mkimage-profiles
Version: 0.9.15
Release: alt1
Version: 1.0.5
Release: alt0.M70T.1
Summary: ALT Linux based distribution metaprofile
License: GPLv2+
@@ -16,7 +16,7 @@ BuildRequires: /proc
Requires: rsync git-core
Requires: time schedutils sfdisk
Requires: mkimage >= 0.2.5
Requires: mkimage >= 0.2.12
# Recommends: graphviz qemu-img
@@ -78,6 +78,28 @@ cp -a * %buildroot%mpdir
%doc %docs/*
%changelog
* Mon Feb 02 2015 Michael Shigorin <mike@altlinux.org> 1.0.5-alt0.M70T.1
- backported pkg/lists fix (and the commit before it)
* Mon Mar 17 2014 Michael Shigorin <mike@altlinux.org> 1.0.4-alt0.M70T.1
- kernel: don't insist on k-m-r8168
* Mon Mar 03 2014 Michael Shigorin <mike@altlinux.org> 1.0.3-alt0.M70T.1
- vm fixes/backports
* Mon Dec 23 2013 Michael Shigorin <mike@altlinux.org> 1.0.2-alt0.M70T.1
- backported adaptations to handle EFI signed binaries the current way
* Mon Nov 25 2013 Michael Shigorin <mike@altlinux.org> 1.0.1-alt0.M70T.1
- important bugfix: THE_PACKAGES weren't getting through to .base
(backported from 1.1.14)
* Mon Jun 17 2013 Michael Shigorin <mike@altlinux.org> 1.0.0-alt1
- 1.0
* Mon Jun 10 2013 Michael Shigorin <mike@altlinux.org> 0.9.16-alt1
- 1.0pre
* Mon May 27 2013 Michael Shigorin <mike@altlinux.org> 0.9.15-alt1
- +installer

View File

@@ -0,0 +1,6 @@
object d59601f7ad0c025a93ecf7d32f1e82dee40003fa
type commit
tag v1.0.4
tagger Michael Shigorin <mike@altlinux.org> 1395074306 +0400
r8168 go home

View File

@@ -1,6 +0,0 @@
object 859f8b8ea3be8b8d3357ff399f8c1cb18ffdf1ce
type commit
tag v0.9.14
tagger Michael Shigorin <mike@altlinux.org> 1369044688 +0300
more regular fixes

View File

@@ -1 +1 @@
2cf2d18b61fdd86c90547d652d3dd774e4f47bfd v0.9.14
20e406ed3fc12686b58273df14d4714454c3395a v1.0.4

7
README
View File

@@ -1,5 +1,6 @@
[float]
=== Welcome to mkimage-profiles! ===
== Welcome to m-p! ==
*Brief summary*
Configurables: ~/.mkimage/profiles.mk;
see doc/params.txt and conf.d/README
@@ -43,7 +44,7 @@
* субпрофили:
** список собирается в $(SUBPROFILES)
** базовые комплекты помещены в подкаталогах под sub.in/;
их наборы скриптов могут расширяться фичами
их наборы скриптов могут расширяться фичами
* фичи:
** законченные блоки функциональности (или наборы таковых)
** описываются в индивидуальных features.in/*/config.mk

View File

@@ -38,9 +38,10 @@ DISKSIZEM="$(($DISKSIZE / 1048576))"
# NB: xfs doesn't have a spare sector for the bootloader
ROOTFSTYPE="${4:-ext4}"
# single root partition hardwired so far,
# add another image for swap if needed
ROOTDEV="/dev/sda1"
# SCSI case hardwired so far;
# use virtio_scsi setup if performance is critical
# *and* updating the image is going to occur
BOOTDEV="/dev/sda"
# last preparations...
for i in losetup sfdisk parted kpartx mkfs."$ROOTFSTYPE"; do
@@ -78,20 +79,29 @@ losetup "$LOOPDEV" "$IMG"
parted --script "$LOOPDEV" mklabel msdos
parted --script "$LOOPDEV" mkpart primary ext2 1 "$DISKSIZEM"
kpartx -a "$LOOPDEV"
kpartx -a -s "$LOOPDEV"
LOOPDEV1="/dev/mapper/$(basename "$LOOPDEV")p1"
mkfs."$ROOTFSTYPE" "$LOOPDEV1"
ROOTUUID="$(blkid -s UUID -o value -c /dev/null "$LOOPDEV1")"
if [ -n "$ROOTUUID" ]; then
ROOTDEV="UUID=$ROOTUUID"
else
ROOTDEV="${BOOTDEV}1"
fi
# mount and populate it
mkdir -pm755 "$ROOTFS"
mount "$LOOPDEV1" "$ROOTFS"
tar -C "$ROOTFS" --numeric-owner -xf "$TAR"
for i in /dev /proc /sys; do mount --bind "$i" "$ROOTFS$i"; done
# NB: different storage modules might be needed for non-kvm
# NB: different storage modules might be needed for different VMs
VIRTIO_MODULES="virtio_pci virtio_blk virtio_scsi"
echo "$LOOPDEV1 / $ROOTFSTYPE defaults 1 1" >> "$ROOTFS/etc/fstab"
echo "MODULES_PRELOAD=sd_mod ata_piix $ROOTFSTYPE" >> "$ROOTFS/etc/initrd.mk"
echo "MODULES_PRELOAD += sd_mod ata_piix $VIRTIO_MODULES $ROOTFSTYPE" \
>> "$ROOTFS/etc/initrd.mk"
KERNEL="$(readlink $ROOTFS/boot/vmlinuz | sed 's,vmlinuz-,,')"
chroot "$ROOTFS" make-initrd -k "$KERNEL"
@@ -125,7 +135,7 @@ EOF
chroot "$ROOTFS" lilo -C /etc/lilo-loop.conf
cat > "$ROOTFS"/etc/lilo.conf << EOF
boot=${ROOTDEV%[0-9]*}
boot=$BOOTDEV
$LILO_COMMON
EOF

View File

@@ -1,7 +1,8 @@
== conf.d ==
Этот каталог содержит включаемые фрагменты конфигурации образов с тем,
чтобы было удобнее параллельно разрабатывать специфические дистрибутивы
и VE без излишних merge conflict'ов.
чтобы было удобнее параллельно разрабатывать специфические образы
без излишних merge conflict'ов.
Следует понимать, что основная цель появления mkimage-profiles на свет
-- это уменьшение "форков" внутри семейства дистрибутивных профилей.
@@ -13,47 +14,49 @@
По переменным (см. тж. ../doc/pkglists.txt):
- для пользовательского окружения (live, main) предназначены
* для пользовательского окружения (live, main) предназначены
THE_PACKAGES, THE_LISTS, THE_GROUPS, THE_PACKAGES_REGEXP
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
* для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
(NB: тоже попадают в базовую установку)
- SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
* SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
во все стадии, в том числе в образ чувствительной к объёму install2
(в stage1 -- только в инструментальный чрут); применяйте для того,
что обязано быть и в инсталяторе, и в готовой системе
- для направленного действия служат:
* STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
* STAGE2_PACKAGES (инсталятор и спасательная/"живая" система)
* INSTALL2_PACKAGES (инсталятор)
* BASE_PACKAGES, BASE_LISTS, BASE_PACKAGES_REGEXP (базовая система)
* MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
* LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)
* для направленного действия служат:
** STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
** STAGE2_PACKAGES (инсталятор и спасательная/"живая" система)
** INSTALL2_PACKAGES (инсталятор)
** BASE_PACKAGES, BASE_LISTS, BASE_PACKAGES_REGEXP (базовая система)
** MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
** LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)
- аналогично по модулям ядра:
* THE_KMODULES попадут в "пользовательскую" среду (live, main)
* STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
* BASE_KMODULES попадут в установку по умолчанию
* MAIN_KMODULES будут доступны для установки с носителя
* LIVE_KMODULES предназначены для LiveCD/LiveFlash
* аналогично по модулям ядра:
** THE_KMODULES попадут в "пользовательскую" среду (live, main)
** STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
** BASE_KMODULES попадут в установку по умолчанию
** MAIN_KMODULES будут доступны для установки с носителя
** LIVE_KMODULES предназначены для LiveCD/LiveFlash
Не стоит бояться такого разнообразия, для большинства задач достаточно THE_*.
По подстановкам:
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
* $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
* $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
значений; в этом случае их значения могут изменяться до окончания
конфигурации, а также зависеть от значений других переменных
По спискам пакетов:
- на этапе экспериментирования можно забивать прямо в описание образа
- при фиксации состояния стоит воспользоваться существующими списками,
* на этапе экспериментирования можно забивать прямо в описание образа
* при фиксации состояния стоит воспользоваться существующими списками,
а дополнительные оформить как можно более чётко обособленными по тем
задачам, для решения которых они и подобраны
- повторяющиеся логически связанные группы списков может иметь смысл
* повторяющиеся логически связанные группы списков может иметь смысл
выделить в фичу (см., например, power или x11)
- если явной фичи не наблюдается, но у группы дистрибутивов намечается
* если явной фичи не наблюдается, но у группы дистрибутивов намечается
заметная общая часть -- её можно выделить в промежуточную цель вида
distro/.name, не являющуюся самостоятельно собираемой

25
conf.d/p7.mk Normal file
View File

@@ -0,0 +1,25 @@
# p7 base kits
mixin/p7:
@$(call set,BRANDING,altlinux-starterkit)
ifeq (distro,$(IMAGE_CLASS))
### kludge compatibility: introspection stub for ../main.mk :-/
distro/altlinux-p7-cinnamon: distro/regular-cinnamon mixin/p7; @:
distro/altlinux-p7-e17: distro/regular-e17 mixin/p7; @:
distro/altlinux-p7-icewm: distro/regular-icewm mixin/p7; @:
distro/altlinux-p7-gnome3: distro/regular-gnome3 mixin/p7; @:
distro/altlinux-p7-kde4: distro/regular-kde4 mixin/p7; @:
distro/altlinux-p7-lxde: distro/regular-lxde mixin/p7; @:
distro/altlinux-p7-mate: distro/regular-mate mixin/p7; @:
distro/altlinux-p7-razorqt: distro/regular-razorqt mixin/p7; @:
distro/altlinux-p7-rescue: distro/regular-rescue mixin/p7; @:
distro/altlinux-p7-tde: distro/regular-tde mixin/p7; @:
distro/altlinux-p7-xfce: distro/regular-xfce mixin/p7; @:
endif
ifeq (vm,$(IMAGE_CLASS))
vm/altlinux-p7-vm-net: vm/net mixin/p7; @:
endif

View File

@@ -50,11 +50,11 @@ distro/regular-xmonad: distro/.regular-gtk use/x11/xmonad
distro/regular-mate: distro/.regular-gtk
@$(call add,LIVE_LISTS,$(call tags,(desktop || mobile) && (mate || nm)))
distro/regular-e17: distro/.regular-gtk use/x11/e17
distro/regular-e17: distro/.regular-gtk use/x11/e17 use/fonts/infinality
@$(call add,LIVE_PACKAGES,xterm)
distro/regular-cinnamon: distro/.regular-desktop \
use/x11/cinnamon use/fonts/infinality +plymouth
distro/regular-cinnamon: distro/.regular-gtk \
use/x11/cinnamon use/fonts/infinality
@$(call set,META_VOL_ID,ALT Linux $(IMAGE_NAME)) # see also #28271
distro/regular-gnome3: distro/.regular-desktop use/x11/gnome3 +plymouth; @:

View File

@@ -1,9 +1,10 @@
# virtual machines
ifeq (vm,$(IMAGE_CLASS))
vm/net: vm/bare use/vm-net/dhcp use/vm-ssh; @:
vm/net: vm/bare use/vm-net/dhcp use/vm-ssh use/repo
@$(call set,VM_SIZE,5368709120) # 5 Gb is enough for everyone
# NB: use/x11 employs some installer-feature packages
vm/icewm: vm/net use/cleanup/installer use/repo +icewm; @:
vm/icewm: vm/net use/cleanup/installer +icewm; @:
endif

View File

@@ -1,4 +1,7 @@
== Предположения фрагментов кода об окружении ==
== Предположения ==
Некоторые фрагменты кода закладываются на определённое поведение
других частей mkimage-profiles либо содержание переменных.
NB: пути приводятся от верхнего уровня; проект в целом предполагает
ALT Linux 6.0+ и GNU make 3.81+ (на которых и разрабатывается),

View File

@@ -10,12 +10,16 @@
* build/build.log
** подробность зависит от значения переменной DEBUG,
которую можно передать при запуске make (см. params.txt);
которую можно передать при запуске make (см. params.txt);
** содержит коммит, из которого происходит сборка, и признак
"грязности" рабочего каталога при наличии модификаций после
этого коммита;
"грязности" рабочего каталога при наличии модификаций после
этого коммита;
** содержит список конфигурационных переменных и их конечных значений,
созданный на основании distcfg.mk (см. тж. build/vars.mk)
созданный на основании distcfg.mk (см. тж. build/vars.mk)
* REPORT=1 включает генерацию дополнительного вывода:
** build/reports/targets.png -- граф зависимостей между целями
** build/reports/scripts.log -- порядок запуска скриптовых хуков
** build/reports/cleanlog.log -- более пригодный для diff(1) журнал сборки
Общая информация по отладке сборки профилей mkimage:
Общая информация по отладке сборки профилей mkimage доступна на вики:
http://www.altlinux.org/Mkimage/debug

View File

@@ -11,14 +11,14 @@
В большинстве случаев можно рекомендовать создание feature
средствами метапрофиля, поскольку при этом дерево кода более
удобно для анализа и обновления (и в отличие от m-p-d -- нет
удобно для анализа и обновления (и в отличие от _m-p-d_ -- нет
вынужденной необходимости либо контролировать включение нужных
фич "вручную" в скриптах по косвенным признакам, либо выносить
их в пакеты installer-feature-*).
Создание и упаковку installer-feature-* можно рекомендовать, если:
* необходимы пакетные зависимости;
* необходимы пакетные зависимости (в т.ч. версии/конфликты);
* требуется компилируемый платформозависимый код (для чего бы...);
* код фичи достаточно специфичен, нетривиален и объёмен,
чтобы загромождать метапрофиль было не очень осмысленно;

View File

@@ -1,11 +1,11 @@
= mkimage-profiles =
Michael Shigorin <mike@altlinux.org>
:DocVersion: v0.2.0
:DocDate: Oct 2012
:DocVersion: v1.0
:DocDate: Jun 2013
= Введение =
mkimage-profiles, или m-p — результат осмысления и обобщения опыта создания
mkimage-profiles, или _m-p_ — результат осмысления и обобщения опыта создания
семейств дистрибутивов свободного программного обеспечения на базе ALT Linux.
*Цели*
@@ -29,40 +29,25 @@ mkimage-profiles, или m-p — результат осмысления и об
git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles.git
cd mkimage-profiles
make distro/icewm.iso
include::../README[]
make icewm.iso
= Основы =
include::assumptions.txt[]
include::debug.txt[]
include::features.txt[]
include::../README[]
include::params.txt[]
include::features.txt[]
include::pkglists.txt[]
include::qemu.txt[]
include::style.txt[]
include::vm.txt[]
= Каталоги =
include::../conf.d/README[]
include::../features.in/README[]
include::../image.in/README[]
include::../lib/README[]
include::../pkg.in/README[]
include::../features.in/README[]
include::../sub.in/README[]
@@ -71,3 +56,26 @@ include::../sub.in/main/README[]
include::../sub.in/stage1/README[]
include::../sub.in/stage2/README[]
include::../pkg.in/README[]
include::../pkg.in/lists/README[]
include::../pkg.in/lists/tagged/README[]
include::../pkg.in/groups/README[]
include::../lib/README[]
= Приложения =
include::assumptions.txt[]
include::debug.txt[]
include::style.txt[]
include::vm.txt[]
include::qemu.txt[]

View File

@@ -114,4 +114,4 @@
[float]
=== пример ===
make DEBUG=1 CLEAN=1 distro/syslinux.iso
make DEBUG=1 CLEAN=1 syslinux.iso

View File

@@ -1,10 +1,11 @@
== Списки пакетов ==
Состав пакетной базы субпрофилей определяется значенями
следующих переменных профиля (см. тж. ../conf.d/README):
следующих переменных профиля (см. тж. ../conf.d/README;
некоторые "*" ниже заэкранированы ради парсера asciidoc):
* main: пакетная база для установки
** sub.in/main/Makefile, features.in/*/main/lib/*.mk
** sub.in/main/Makefile, features.in/\*/main/lib/*.mk
** THE_LISTS, BASE_LISTS, MAIN_LISTS
** THE_GROUPS, MAIN_GROUPS
** THE_PACKAGES, BASE_PACKAGES, MAIN_PACKAGES,
@@ -14,7 +15,7 @@
*** KFLAVOURS
* stage2: общая часть installer, live, rescue
** sub.in/stage2/Makefile, features.in/*/stage2/lib/*.mk
** sub.in/stage2/Makefile, features.in/\*/stage2/lib/*.mk
** SYSTEM_PACKAGES, STAGE2_PACKAGES
** STAGE1_KMODULES, STAGE1_KMODULES_REGEXP,
STAGE2_KMODULES, STAGE2_KMODULES_REGEXP
@@ -23,13 +24,13 @@
* installer: компактная "живая" система, содержащая только инсталятор
** см. stage2
*** features.in/install2/install2/stage2cfg.mk,
features.in/*/install2/lib/*.mk
features.in/\*/install2/lib/*.mk
*** INSTALL2_PACKAGES
* live: пользовательский LiveCD (может содержать также инсталятор)
** см. stage2
** features.in/live/live/stage2cfg.mk,
features.in/*/live/lib/*.mk
features.in/\*/live/lib/*.mk
** THE_LISTS, LIVE_LISTS
** THE_GROUPS, LIVE_GROUPS
** THE_PACKAGES, LIVE_PACKAGES, COMMON_PACKAGES
@@ -43,7 +44,7 @@
** RESCUE_LISTS
* stage1: ядро и загрузчик второй стадии
** sub.in/stage1/Makefile, features.in/*/stage1/lib/*.mk
** sub.in/stage1/Makefile, features.in/\*/stage1/lib/*.mk
** STAGE1_PACKAGES, SYSTEM_PACKAGES
** STAGE1_PACKAGES_REGEXP
** STAGE1_KMODULES_REGEXP

View File

@@ -1,4 +1,4 @@
== Требования по оформлению кода ==
== Оформление кода ==
* постарайтесь не вносить без обсуждения разнобой стилей,
если есть предметные пожелания по коррекции текущего --

View File

@@ -1,4 +1,4 @@
== Сборка образов виртуальных машин ==
== Сборка образов VM ==
*ВНИМАНИЕ:* заключительная операция создания образа жёсткого диска
из архива с содержимым корневой файловой системы требует доступа

View File

@@ -23,15 +23,15 @@
Остальное содержимое является дополнительным и используется
в таком порядке (см. ../Makefile):
- сперва в $(BUILDDIR)/image/ копируются все подкаталоги,
* сперва в $(BUILDDIR)/image/ копируются все подкаталоги,
соответствующие итоговым именам субпрофилей, запрошенных
для профиля образа; при этом они сливаются с деревом,
которое уже сформировано субпрофилями (../sub.in/*) и уже
скопированными фичами; если какие-либо файлы перекрылись
по именам, rsync должен оставить резервные копии (*~),
которые должны просигнализировать о беспорядке;
- запускается generate.sh, если существует и исполнимый;
- применяется generate.mk, если существует и непустой.
* запускается generate.sh, если существует и исполнимый;
* применяется generate.mk, если существует и непустой.
Например, если используются субпрофили stage1, stage2/install2
и main, можно решить собрать специфические для фичи скрипты

View File

@@ -5,7 +5,7 @@
# NB: to be executed, it must be marked executable first :)
# let's do something very useful
echo "$0: WORKDIR=$WORKDIR; directory listig:"
echo "$0: WORKDIR=$WORKDIR; directory listing:"
ls -l "$WORKDIR"
# and let's _not_ terminate with non-zero for no real reason;

View File

@@ -1,4 +1,5 @@
== features.in ==
Этот каталог содержит т.н. фичи (features, особенности).
Фича -- отдельно подключаемая сущность, которая содержит
@@ -37,3 +38,5 @@
Несложный пример содержится в 00example/, более близкий к жизни
и нынешним пределам возможностей метапрофиля -- в syslinux/.
См. тж. файлы README в каталогах фич (отсутствие -- баг!).

View File

@@ -12,6 +12,7 @@
останется lilo как последняя "новая" цель с точки зрения make.
При необходимости всё-таки "пересилить" последнее изменение можно
@$(call set,BASE_BOOTLOADER,grub_или_lilo)
Реализация экспериментальная (нужно модуляризовать installer-steps).

View File

@@ -9,18 +9,18 @@
Назначение и возможные значения (если требуются):
- STAGE1_BRANDING
* относится к загрузке со сгенерированного образа (например, ISO)
* bootloader bootsplash (при старте)
* STAGE1_BRANDING
** относится к загрузке со сгенерированного образа (например, ISO)
** bootloader bootsplash (при старте)
- STAGE2_BRANDING
* общая часть для всех вариантов stage2
* bootsplash (при выключении)
* STAGE2_BRANDING
** общая часть для всех вариантов stage2
** bootsplash (при выключении)
- INSTALL2_BRANDING
* специфические пакеты брендирования инсталятора
* notes slideshow
* INSTALL2_BRANDING
** специфические пакеты брендирования инсталятора
** notes slideshow
- THE_BRANDING
* общий список для использования в установленной системе и LiveCD
* alterator bootsplash graphics indexhtml notes slideshow
* THE_BRANDING
** общий список для использования в установленной системе и LiveCD
** alterator bootsplash graphics indexhtml notes slideshow

View File

@@ -18,11 +18,9 @@ use/efi/refind: use/efi
@$(call set,EFI_BOOTLOADER,refind)
use/efi/signed: use/efi
@$(call set,MKI_VER_MINIMAL,0.2.7) # refind->elilo handoff
@$(call set,MKI_VER_MINIMAL,0.2.7) # refind->elilo handoff ### 0.2.11
@$(call set,EFI_CERT,altlinux)
@$(call add,THE_PACKAGES,shim-signed)
@$(call set,EFI_SHELL,efi-shell-signed) # even more useful
@$(call add,RESCUE_PACKAGES,refind-signed)
@$(call add,RESCUE_PACKAGES,openssl sbsigntools)
use/efi/shell: use/efi

5
features.in/fonts/README Normal file
View File

@@ -0,0 +1,5 @@
Эта фича занимается конфигурированием подсистемы
конфигурации шрифтов fontconfig (sic!); помимо
возможности выставить желаемые кусочки вручную
предлагаются и заранее заданные интегральные
варианты, прошедшие обкатку в дистрибутивах.

View File

@@ -9,5 +9,7 @@ use/kernel:
@$(call add_feature)
@$(call set,KFLAVOURS,std-def)
# r8168 is a kludge, never install it by default
use/kernel/net:
@$(call add,THE_KMODULES,e1000e igb r8168 rtl8168)
@$(call add,THE_KMODULES,e1000e igb)
@$(call add,MAIN_KMODULES,r8168 rtl8168)

View File

@@ -9,22 +9,25 @@ WHATEVER += metadata
# handle these too
DOT_BASE += $(BASE_PACKAGES_REGEXP)
# args: name, suffix, command
define dump-THEM
if [ -n "$($(1)_$(2))" ]; then echo -e "\n## $(1)_$(2)"; $(3) $($(1)_$(2)); fi;
# args: type, name
define dump
if [ -n "$($(2)_$(1))" ]; then \
echo -e "\n## $(2)_$(1)"; \
case "$(1)" in \
PACKAGES) echo "$($(2)_$(1))";; \
LISTS) cat $($(2)_$(1));; \
esac; \
fi;
endef
dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo)
dump-LISTS = $(call dump-THEM,$(1),LISTS,cat)
# BASE_PACKAGES, BASE_LISTS and whatever else goes into base install;
# thus construct requisite .base packagelist for alterator-pkg
metadata-.base:
@cd $(call list,/); \
{ \
echo "## generated by features.in/metadata/lib/metadata.mk"; \
$(foreach p,SYSTEM COMMON THE BASE,$(call dump-PACKAGES,$(p))) \
$(foreach l,THE BASE,$(call dump-LISTS,$(l))) \
echo "## generated by features.in/metadata/lib/50-metadata.mk";\
$(foreach p,SYSTEM COMMON THE BASE,$(call dump,PACKAGES,$(p))) \
$(foreach l,THE BASE,$(call dump,LISTS,$(l))) \
if [ -n "$(DOT_BASE)" ]; then \
echo -e "\n## DOT_BASE\n$(DOT_BASE)"; \
fi; \

View File

@@ -1,4 +1,6 @@
Эта фича определяет формат упаковки создаваемого образа.
На данный момент поддерживаются iso (загрузочный ISO9660
для дистрибутивов) и tar/cpio с возможностью сжатия gz/xz
(виртуальные окружения).
для дистрибутивов), tar/cpio с возможностью сжатия gz/xz
(виртуальные окружения), а также различные варианты для
образов виртуальных машин, поддерживаемые qemu-img.

View File

@@ -1,6 +1,3 @@
Эта фича конфигурирует поддержку управления питанием
-- выключение и регулировку частоты CPU для ACPI,
засыпание для APM (не проверялось).
TODO: учесть изложенное в https://bugzilla.altlinux.org/25018
(для gnome & co)

View File

@@ -1,3 +1,2 @@
Эта фича заменяет в базовой системе sysvinit на systemd;
в настоящее время является экспериментальной, читайте
http://www.altlinux.org/systemd
см. тж. http://www.altlinux.org/systemd

View File

@@ -1,15 +1,17 @@
== image.in ==
Этот каталог копируется из метапрофиля в профиль "как есть"
и формирует "заготовку" финальной стадии, собирающей собственно
образ из результатов работы индивидуальных субпрофилей
(для distro/*) либо непосредственно "на месте" (для ve/*).
(для distro) либо непосредственно "на месте" (для ve, vm).
Содержимое files/ копируется в корень образа.
Соответственно для сборки также потребуется или
../features.in/build-distro, или ../features.in/build-ve.
Соответственно для сборки также потребуется одна из фич
../features.in/build-*.
Пакетная база рабочего чрута минимальна (может чуть расширяться
фичами -- см. ../features.in/repo/lib/build-genbasedir.mk
фичами -- см. ../features.in/repo/lib/50-genbasedir.mk
в качестве примера).
Если требуется какая-либо иная обработка чрута, следует

View File

@@ -1,4 +1,5 @@
== lib ==
Этот каталог содержит вспомогательные makefiles,
обеспечивающие основную функциональность создания
конфигурации образа и генерации соответствующего

View File

@@ -7,8 +7,10 @@ endif
ifeq (vm,$(IMAGE_CLASS))
vm/.bare: profile/bare
@$(call add,BASE_PACKAGES,interactivesystem lilo shadow-utils e2fsprogs)
@$(call set,KFLAVOURS,un-def)
@$(call add,BASE_PACKAGES,sysklogd syslogd sysvinit interactivesystem)
@$(call add,BASE_PACKAGES,lilo shadow-utils e2fsprogs)
@$(call set,KFLAVOURS,led-ws)
@$(call add,BASE_KMODULES,guest)
vm/bare: vm/.bare
@$(call add,BASE_PACKAGES,apt)

View File

@@ -1,4 +1,5 @@
== pkg.in ==
Этот каталог содержит все возможные списки пакетов и описания групп,
которые по мере необходимости копируются из метапрофиля в формируемый
профиль.

View File

@@ -1,5 +1,6 @@
[float]
=== pkg.in/groups ===
Этот каталог содержит описания групп, копируемые из метапрофиля
в создаваемый профиль по необходимости (только фигурирующие в
списке, которым является значение переменной MAIN_GROUPS).

View File

@@ -21,13 +21,12 @@ TARGET := $(BUILDDIR)/$(SUFFIX)
all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups
@mp-commit "$(TARGET)" "requested $(SUFFIX) copied over"
# env | sort -u | grep _LISTS | xargs cp
copy-lists:
@# env | sort -u | grep _LISTS | xargs cp
@$(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),\
$(shell cp --parents -at $(TARGET) \
-- $(value $V))))
@cp --parents -at $(TARGET) -- \
$(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),$($V)))
copy-groups:
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
@@ -43,6 +42,6 @@ debug:
@echo -e $(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),\
$(shell echo '\\n"**"' $V: $(value $V)))) '\n'
$(shell echo '\\n"**"' $V: $($V)))) '\n'
endif

View File

@@ -1,3 +1,5 @@
=== pkg.in/lists ===
Этот каталог содержит списки пакетов, копируемые из метапрофиля
в создаваемый профиль по необходимости (определяется по наличию
имён списков в переменных *_LISTS, см. реализацию в Makefile).

View File

@@ -1,9 +1,10 @@
=== pkg.in/lists/tagged ===
Этот каталог содержит тегированные списки; на данный момент
реализация (../../../bin/tags2lists) требует, чтобы каждый
из тегов был отдельным словом, состоящим из символов из набора
a-zA-Z0-9_ (внимание: не используйте в слове "-"); рекомендуется
разделять слова "+".
[a-zA-Z0-9_] (внимание: не используйте в слове "-");
рекомендуется разделять слова "+".
Применение: дополнение жёстко статически заданной функциональности
более "плавающим" в долгосрочном плане результатом раскрытия

View File

@@ -1,2 +1,2 @@
cinnamon-default
cinnamon-regular
installer-feature-xdg-user-dirs

View File

@@ -17,19 +17,19 @@
Краткое описание существующих вариантов:
- stage1: propagator и загрузчик (совместно с фичей syslinux);
* stage1: propagator и загрузчик (совместно с фичей syslinux);
типично требуется для инсталяторов, live- и rescue-образов,
но может использоваться без добавления таковых в образ,
обеспечивая сетевую загрузку второй стадии
- stage2: наиболее сложный технологически субпрофиль, поскольку
* stage2: наиболее сложный технологически субпрофиль, поскольку
он является только базовым для получения ряда итоговых частей
дистрибутива (install2, live, rescue); задействуется для этого
только опосредованно через use/stage2/* и модифицирует stage1
в силу наличия связи между ними (в stage1 попадает образ ядра
и firmware, в stage2 -- соответствующие модули)
- main: пакетная база, укладываемая на образ (NB: поскольку рабочий
* main: пакетная база, укладываемая на образ (NB: поскольку рабочий
чрут в этом случае не содержит ничего, кроме пакетов, добавлять
image-scripts.d/* смысла нет, только scripts.d/*)

View File

@@ -6,12 +6,13 @@
как локальный репозиторий для сборки.
Подбирает:
* SYSTEM_PACKAGES, COMMON_PACKAGES, BASE_PACKAGES, BASE_LISTS:
в установку по умолчанию;
* MAIN_PACKAGES, MAIN_LISTS: дополнительные пакеты.
В image-scripts.d/* смысла нет, только scripts.d/* --
рабочий чрут не содержит исполняемых файлов.
В image-scripts.d смысла нет, только scripts.d, т.к. рабочий чрут
не содержит исполняемых файлов.
Не следует использовать этот субпрофиль напрямую, для добавления
пакетного репозитория в образ предназначена фича use/repo/main.

View File

@@ -1,4 +1,5 @@
=== sub.in/stage1 ===
Этот каталог содержит субпрофиль первой стадии загрузки;
здесь место syslinux (загрузчик) и propagator (ориентировка
на местности, вытягивание второй стадии с CD/FTP/...).

View File

@@ -169,7 +169,7 @@ qlogicfas408.ko
qlogicfas.ko
qlogicfc.ko
qlogicisp.ko
r8168.ko
r8169.ko
raid_class.ko
reiserfs.ko
rrunner.ko