Go to file
Anton Midyukov 1ef77caf70 build-vm, pack: implement tar, tar.gz, tar.xz support for vm/* target
build-vm ceases to be a target for building only virtual machine images.
Now it can be used to build tarballs designed for installation on real
machines.

This commit is the result of transferring the required functionality from
build-mr (mipsel rootfs) by Ivan Melnikov <iv@altlinux.org>.

NB: mike@ strongly objected to this dilution but gave up eventually;
    the whole kernel/build-vm/tar2fs/pack mess should be split into
    distinct layers busy with their own responsibilities:

    1) a tarball with kernel is done without tar2fs at all
       (and no build-vm bits should be needed either, maybe
       it's worth splitting and renaming as "vm" meaning
       disk image for some armh board is grossly misleading);

    2) a tarball with kernel can be further (multi-)packed
       as, well, (compressed) tarball and a disk image
       (only the latter one should employ build-vm/tar2fs);

    3) compression should be done in pack feature style,
       preferably described once and not duplicated all over
       the profile for every single new kind of its output.

    In the mean time, running into this and moving no further
    starts to hurt more than it could help.
2019-08-19 23:24:26 +03:00
.gear gear-store-tags 2019-07-09 09:38:55 +03:00
bin kernel, tar2fs: do not create /boot/.origver 2019-08-19 23:18:31 +03:00
conf.d mixin.mk: add adobe and mozilla fonts in mixin/regular-desktop 2019-07-22 19:40:28 +03:00
doc doc: assorted updates/fixups 2018-07-25 16:49:05 +03:00
features.in build-vm, pack: implement tar, tar.gz, tar.xz support for vm/* target 2019-08-19 23:24:26 +03:00
image.in image.in: add INSTALL_LANGS variable to setup rpm _install_langs 2018-12-24 20:06:57 +03:00
lib lib/ve.mk: split package management and networking 2019-04-02 17:43:34 +03:00
pkg.in desktop+cinnamon+extra: drop gimp 2019-08-19 17:13:10 +03:00
sub.in rootfs: upgrade to /etc/firsttime.flag 2018-11-05 21:34:50 +03:00
.gitignore .gitignore: add image.in/files/* 2019-05-29 19:21:57 +03:00
COPYING actually released as free software 2011-11-04 16:15:30 +02:00
main.mk image.in, main.mk: align debug targets 2017-08-07 21:51:17 +03:00
Makefile introduce QUIET variable 2015-04-02 20:48:42 +03:00
QUICKSTART docs update 2017-06-09 19:31:42 +03:00
README README, pkglists.txt: minor fixes 2016-02-10 16:49:17 +03:00
reports.mk cleanlog, reports.mk: factor the script out 2019-06-10 19:47:14 +03:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

== Welcome to m-p! ==

*Brief summary*

  Configurables: ~/.mkimage/profiles.mk;
  see doc/params.txt and conf.d/README

  License: GPLv2+, see COPYING

  Most docs are in Russian, welcome to learn it or ask for English.

Задача:

* конфигурирование и создание образов на базе ALT Linux

Концепция:

* конфигурация, как и образ -- объект постадийной сборки
* метапрофиль служит репозиторием для построения индивидуального
  профиля, по которому создаётся итоговый образ

Особенности:

* метапрофиль при сборке может быть доступен только на чтение
* для сборки подыскивается предпочтительно tmpfs
* в профиль копируются только нужные объекты;
  он автономен относительно метапрофиля

Стадии работы:

* инициализация сборочного профиля
* сборка конфигурации образа
* наполнение сборочного профиля
* сборка образа

Объекты:

* дистрибутивы и виртуальные среды/машины:
** описываются в conf.d/*.mk
** могут основываться на предшественниках, расширяя их
** дистрибутивы также включают один или более субпрофилей по надобности
** желательно избегать множественного наследования, см. тж. фичи

* субпрофили:
** список собирается в $(SUBPROFILES)
** базовые комплекты помещены в подкаталогах под sub.in/;
   их наборы скриптов могут расширяться фичами

* фичи:
** законченные блоки функциональности (или наборы таковых)
** описываются в индивидуальных features.in/*/config.mk
** могут требовать другие фичи, а также субпрофили
** накопительный список собирается в $(FEATURES)
** при сборке $(BUILDDIR) содержимое фич добавляется в профиль

* списки пакетов (*_LISTS):
** _внимание_: не надо создавать фичу, если достаточно списка пакетов!
** просьба по возможности избегать дублирования (см. bin/pkgdups)

* индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README

Результат:

* при успешном завершении сборки образ называется по имени цели
  и укладывается в $(IMAGEDIR):
** указанный явно,
** либо ~/out/ (если возможно),
** или $(BUILDDIR)/out/ иначе
* формируются отчёты, если запрошены (REPORT)

См. тж.:

* http://altlinux.org/m-p: обзорная документация, в т.ч. howto
* doc/:
** params.txt: переменные, указываемые при запуске сборки
** pkglists.txt: формирование состава образа
** features.txt: обзор подключаемых особенностей

Примечание: пути в документации задаются от каталога верхнего уровня,
если не указаны как относительные в явном виде (./) или по смыслу.

Удачи; что не так -- пишите.

Michael Shigorin <mike@altlinux.org>