Compare commits

..

5 Commits

Author SHA1 Message Date
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
631 changed files with 1917 additions and 8753 deletions

View File

@@ -1,32 +1,33 @@
Name: mkimage-profiles
Version: 1.3.2
Release: alt1
Version: 1.0.2
Release: alt0.M70T.1
Summary: ALT based distribution metaprofile
Summary: ALT Linux based distribution metaprofile
License: GPLv2+
Group: Development/Other
Url: http://altlinux.org/m-p
Url: http://www.altlinux.org/Mkimage/Profiles/m-p
Source: %name-%version.tar
Packager: Michael Shigorin <mike@altlinux.org>
BuildArch: noarch
BuildRequires: rsync
BuildRequires: rsync asciidoc-a2x xmlgraphics-fop fonts-ttf-dejavu
BuildRequires: /proc
Requires: rsync git-core
Requires: time schedutils sfdisk
Requires: mkimage >= 0.2.5
Requires: mkimage-preinstall
Requires: mkimage >= 0.2.12
# Recommends: graphviz qemu-img
%define mpdir %_datadir/%name
%add_findreq_skiplist %mpdir/*.in/*
%def_with doc
%define docs $HOME/docs
Summary(ru_RU.UTF-8): метапрофиль дистрибутивов на базе Альт
%package doc
Summary: %name documentation
Group: Development/Documentation
%description
mkimage-profiles is a collection of bits and pieces useful for
@@ -36,14 +37,13 @@ to choose from, and some ready-made image recipes as well.
Make no mistake: constructing distributions isn't just fun, it takes
a lot of passion and knowledge to produce a non-trivial one. So m-p
(the short alias for mkimage-profiles) is complex too. If you need
-- or want -- to make a few tweaks to an existing recipe, it might
(the short nick for mkimage-profiles) is complex too. If you need
-- or want -- to make just a few tweaks to an existing recipe, it might
be easier to comprehend the generated profile (aka builddir) which
contains only the needed subprofiles, script hooks and package lists
and is way more compact.
The main deliverable form for x86 is a (hybrid) ISO; virtual environment
template caches (OpenVZ/LXC) can be made either as well as VM disk images.
Virtual environment template caches (OpenVZ/LXC) can be made either.
In short, setup hasher (http://en.altlinux.org/hasher) and here we go:
cd %mpdir
@@ -53,502 +53,37 @@ In short, setup hasher (http://en.altlinux.org/hasher) and here we go:
But if you're into regular distro hacking and are not afraid of make
and modest metaprogramming (some code generation and introspection),
welcome to the metaprofile itself; read the docs and get the git:
%url (NB: these are mostly in Russian with translation on demand).
%description -l ru_RU.UTF-8
mkimage-profiles является собранием всего необходимого для
построения дистрибутивов и содержит списки пакетов, особенности
и целые субпрофили (вроде "кирпичика" rescue), из которых можно
выбирать требуемое; также включены и описания готовых образов.
Поймите правильно: создание дистрибутивов является занятием
не только интересным, но и требующим вдохновения и знаний
для получения нетривиального результата. Если хочется или же
необходимо чуток поправить уже существующий "рецепт", может
быть проще разобраться в сгенерированном профиле (builddir),
который содержит только необходимые субпрофили, скрипты
и списки пакетов, являясь намного более компактным.
Основной формой результата на x86 является (гибридный) ISO-образ;
также возможно создавать шаблоны контейнеров OpenVZ/LXC и образы
дисков виртуальных машин.
Короче говоря, настройте hasher (http://altlinux.org/hasher) и:
cd %mpdir
head README
make syslinux.iso
Но если разработка дистрибутивов становится обыденным делом
и не страшитесь make и чуточки метапрограммирования (немного
генерирования кода и интроспекции), добро пожаловать в сам
метапрофиль; гляньте документацию и забирайте git:
%url
%package doc
Summary: %name documentation
Group: Development/Documentation
%{?_with_doc:BuildRequires: java /proc}
%{?_with_doc:BuildRequires: asciidoc-a2x fop fonts-ttf-dejavu}
Summary(ru_RU.UTF-8): документация %name
%description doc
This package holds developer docs for %name
as a book in HTML and PDF formats.
%description -l ru_RU.UTF-8 doc
Этот пакет содержит документацию разработчика
для %name в форме книжки (HTML, PDF).
%prep
%setup
%build
%if_with doc
make BUILDDIR=%docs docs
%endif
%install
mkdir -p %buildroot{%mpdir,%_man7dir}
mkdir -p %buildroot%mpdir
cp -a * %buildroot%mpdir
%if_with doc
mv %buildroot%mpdir/doc/mkimage-profiles.7 %buildroot%_man7dir/
%endif
%files
%mpdir/
%if_with doc
%_man7dir/*
%endif
%if_with doc
%files doc
%doc README
%doc QUICKSTART
%doc %docs/*
%endif
%changelog
* Mon Dec 10 2018 Michael Shigorin <mike@altlinux.org> 1.3.2-alt1
- sisyphus drops
* 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 05 2018 Michael Shigorin <mike@altlinux.org> 1.3.1-alt1
- current fixes and tweaks
* Mon Oct 15 2018 Michael Shigorin <mike@altlinux.org> 1.3.0-alt1
- pre-p9 sisyphus: fixes, drops and just two kludges
* Mon Aug 13 2018 Michael Shigorin <mike@altlinux.org> 1.2.21-alt1
- volumes feature; fixups
* Mon Aug 06 2018 Michael Shigorin <mike@altlinux.org> 1.2.20-alt1
- isoboot/isodata; apt-conf feature; dual-seat e801
* Mon Jul 23 2018 Michael Shigorin <mike@altlinux.org> 1.2.19-alt1
- alt-workstation: x86 (sem@), e2k (me)
* Mon Jul 16 2018 Michael Shigorin <mike@altlinux.org> 1.2.18-alt1
- ldm feature (lakostis@)
* Mon Jun 25 2018 Michael Shigorin <mike@altlinux.org> 1.2.17-alt1
- e2k & profiles
* Mon Jun 11 2018 Michael Shigorin <mike@altlinux.org> 1.2.16-alt1
- starterkits-20180612
* Mon May 28 2018 Michael Shigorin <mike@altlinux.org> 1.2.15-alt1
- fixup release
* Mon May 21 2018 Michael Shigorin <mike@altlinux.org> 1.2.14-alt1
- pkgpriorities feature (manowar@)
- extended e2k support
* Mon Apr 23 2018 Michael Shigorin <mike@altlinux.org> 1.2.13-alt1
- antohami@'s improvements
* Mon Mar 19 2018 Michael Shigorin <mike@altlinux.org> 1.2.12-alt1
- @IA32, @X86
* Mon Mar 12 2018 Michael Shigorin <mike@altlinux.org> 1.2.11-alt1
- starterkits-20180312
* Mon Feb 19 2018 Michael Shigorin <mike@altlinux.org> 1.2.10-alt1
- antohami@'s fixups
* Mon Feb 12 2018 Michael Shigorin <mike@altlinux.org> 1.2.9-alt1
- antohami@'s release
* Mon Feb 05 2018 Michael Shigorin <mike@altlinux.org> 1.2.8-alt1
- regular fixes
* Mon Jan 22 2018 Michael Shigorin <mike@altlinux.org> 1.2.7-alt1
- 2018: better sound feature (antohami@)
* Mon Dec 11 2017 Michael Shigorin <mike@altlinux.org> 1.2.6-alt1
- starterkits-20171212
* Mon Dec 04 2017 Michael Shigorin <mike@altlinux.org> 1.2.5-alt1
- qcow2c
* Mon Nov 20 2017 Michael Shigorin <mike@altlinux.org> 1.2.4-alt1
- opennebula-systemd
* Mon Sep 25 2017 Michael Shigorin <mike@altlinux.org> 1.2.3-alt1
- p8+
* Mon Sep 11 2017 Michael Shigorin <mike@altlinux.org> 1.2.2-alt1
- regular-engineering
* Mon Aug 21 2017 Michael Shigorin <mike@altlinux.org> 1.2.1-alt1
- seven years ago...
* Mon Aug 07 2017 Michael Shigorin <mike@altlinux.org> 1.2.0-alt1
- e2k
* Mon Jul 31 2017 Michael Shigorin <mike@altlinux.org> 1.1.110-alt1
- lxde-sysv
* Mon Jun 12 2017 Michael Shigorin <mike@altlinux.org> 1.1.109-alt1
- starterkits-20170612
* Mon Apr 24 2017 Michael Shigorin <mike@altlinux.org> 1.1.108-alt1
- yandex.mirror
* Mon Apr 03 2017 Michael Shigorin <mike@altlinux.org> 1.1.107-alt1
- serial improvements
* Mon Mar 13 2017 Michael Shigorin <mike@altlinux.org> 1.1.106-alt1
- starterkits-20170312
* Mon Feb 27 2017 Michael Shigorin <mike@altlinux.org> 1.1.105-alt1
- disable git hooks (glebfm@)
* Mon Feb 06 2017 Michael Shigorin <mike@altlinux.org> 1.1.104-alt1
- [[vncinst]] fixed
* Mon Jan 30 2017 Michael Shigorin <mike@altlinux.org> 1.1.103-alt1
- rescue -= bootsplash
* Mon Jan 09 2017 Michael Shigorin <mike@altlinux.org> 1.1.102-alt1
- 2017
* Mon Dec 12 2016 Michael Shigorin <mike@altlinux.org> 1.1.101-alt1
- starterkits-20161212
* Mon Dec 05 2016 Michael Shigorin <mike@altlinux.org> 1.1.100-alt1
- preparing for starterkits
* Mon Nov 14 2016 Michael Shigorin <mike@altlinux.org> 1.1.99-alt1
- xfce-sysv
- preparing...
* Mon Oct 31 2016 Michael Shigorin <mike@altlinux.org> 1.1.98-alt1
- preparing for workstation 8.1
* Mon Oct 03 2016 Michael Shigorin <mike@altlinux.org> 1.1.97-alt1
- regular tweaks
* Mon Sep 12 2016 Michael Shigorin <mike@altlinux.org> 1.1.96-alt1
- starterkits-20160912
* Mon Aug 15 2016 Michael Shigorin <mike@altlinux.org> 1.1.95-alt1
- s/basealt/alt/g
* Mon Jun 27 2016 Michael Shigorin <mike@altlinux.org> 1.1.94-alt1
- workstation
* Mon Jun 13 2016 Michael Shigorin <mike@altlinux.org> 1.1.93-alt1
- starterkits-20160612
* Mon May 30 2016 Michael Shigorin <mike@altlinux.org> 1.1.92-alt1
- server-openstack
* Mon May 23 2016 Michael Shigorin <mike@altlinux.org> 1.1.91-alt1
- nvidia/nouveau rehash
- overlayfs support (lakostis@)
* Tue May 03 2016 Michael Shigorin <mike@altlinux.org> 1.1.90-alt1
- starterkits-20160429
* Mon Apr 25 2016 Michael Shigorin <mike@altlinux.org> 1.1.89-alt1
- preparing for p8 starterkits
* Mon Apr 11 2016 Michael Shigorin <mike@altlinux.org> 1.1.88-alt1
- pkg.in/profiles
* Mon Mar 14 2016 Michael Shigorin <mike@altlinux.org> 1.1.87-alt1
- starterkits-20160312
* Mon Feb 29 2016 Michael Shigorin <mike@altlinux.org> 1.1.86-alt1
- junior
* Mon Feb 15 2016 Michael Shigorin <mike@altlinux.org> 1.1.85-alt1
- regular-jeos-ovz
* Mon Feb 08 2016 Michael Shigorin <mike@altlinux.org> 1.1.84-alt1
- %name(7) :)
* Mon Jan 25 2016 Michael Shigorin <mike@altlinux.org> 1.1.83-alt1
- openssh 7.x (see also #31716)
* Mon Jan 11 2016 Michael Shigorin <mike@altlinux.org> 1.1.82-alt1
- firmwarez
* Mon Dec 07 2015 Michael Shigorin <mike@altlinux.org> 1.1.81-alt1
- regular fixes
* Mon Nov 30 2015 Michael Shigorin <mike@altlinux.org> 1.1.80-alt1
- pre-starterkit cleanups
* Mon Nov 16 2015 Michael Shigorin <mike@altlinux.org> 1.1.79-alt1
- faked workaround
* Mon Nov 09 2015 Michael Shigorin <mike@altlinux.org> 1.1.78-alt1
- regular-enlightenment
* Mon Oct 19 2015 Michael Shigorin <mike@altlinux.org> 1.1.77-alt1
- webkiosk improvements
* Mon Oct 12 2015 Michael Shigorin <mike@altlinux.org> 1.1.76-alt1
- no more GREP_OPTIONS
* Mon Sep 28 2015 Michael Shigorin <mike@altlinux.org> 1.1.75-alt1
- systemd-specific hook for installer (solo@)
* Mon Sep 14 2015 Michael Shigorin <mike@altlinux.org> 1.1.74-alt1
- starterkits-20150912
* Mon Sep 07 2015 Michael Shigorin <mike@altlinux.org> 1.1.73-alt1
- im feature
* Mon Aug 31 2015 Michael Shigorin <mike@altlinux.org> 1.1.72-alt1
- starterkits alpha
* Mon Aug 10 2015 Michael Shigorin <mike@altlinux.org> 1.1.71-alt1
- docs feature
* Mon Jul 20 2015 Michael Shigorin <mike@altlinux.org> 1.1.70-alt1
- check KFLAVOURS
* Mon Jun 29 2015 Michael Shigorin <mike@altlinux.org> 1.1.69-alt1
- yet another systemd- tweak
* Mon Jun 22 2015 Michael Shigorin <mike@altlinux.org> 1.1.68-alt1
- LIVE_CLEANUP_KDRIVERS actually works
* Mon Jun 08 2015 Michael Shigorin <mike@altlinux.org> 1.1.67-alt1
- minor post-tweaks
* Mon Jun 01 2015 Michael Shigorin <mike@altlinux.org> 1.1.66-alt1
- remote rescue
* Mon May 04 2015 Michael Shigorin <mike@altlinux.org> 1.1.65-alt1
- archdep pkglists
* Mon Apr 20 2015 Michael Shigorin <mike@altlinux.org> 1.1.64-alt1
- modularized stage1 modules list
* Mon Mar 30 2015 Michael Shigorin <mike@altlinux.org> 1.1.63-alt1
- support USB3, ACPI suspend
* Mon Mar 16 2015 Michael Shigorin <mike@altlinux.org> 1.1.62-alt1
- starterkits-20150312
* Mon Mar 09 2015 Michael Shigorin <mike@altlinux.org> 1.1.61-alt1
- EFI_BOOTARGS
* Mon Mar 02 2015 Michael Shigorin <mike@altlinux.org> 1.1.60-alt1
- vmguest, install2: refactoring
* Mon Feb 23 2015 Michael Shigorin <mike@altlinux.org> 1.1.59-alt1
- regular rebase
* Mon Feb 16 2015 Michael Shigorin <mike@altlinux.org> 1.1.58-alt1
- vagrant feature (closes: #28553)
* Mon Feb 09 2015 Michael Shigorin <mike@altlinux.org> 1.1.57-alt1
- fix the lists copying fix
* Mon Feb 02 2015 Michael Shigorin <mike@altlinux.org> 1.1.56-alt1
- fix lilo check for vm images
* Mon Jan 26 2015 Michael Shigorin <mike@altlinux.org> 1.1.55-alt1
- lists copying fixed
* Mon Jan 05 2015 Michael Shigorin <mike@altlinux.org> 1.1.54-alt1
- live: don't force localboot
* Mon Dec 15 2014 Michael Shigorin <mike@altlinux.org> 1.1.53-alt1
- starterkits-20141212
* Mon Nov 17 2014 Michael Shigorin <mike@altlinux.org> 1.1.52-alt1
- docs: "7.0+" (closes: #30474)
- l10n feature
* Mon Nov 10 2014 Michael Shigorin <mike@altlinux.org> 1.1.51-alt1
- current updates
* Mon Oct 27 2014 Michael Shigorin <mike@altlinux.org> 1.1.50-alt1
- minor tweaks
* Mon Oct 13 2014 Michael Shigorin <mike@altlinux.org> 1.1.49-alt1
- pkglist updates
* Mon Sep 29 2014 Michael Shigorin <mike@altlinux.org> 1.1.48-alt1
- (sysv)init: exclude systemd explicitly
* Mon Sep 22 2014 Michael Shigorin <mike@altlinux.org> 1.1.47-alt1
- kpackages() argswap
* Mon Sep 15 2014 Michael Shigorin <mike@altlinux.org> 1.1.46-alt1
- regular fixes
* Mon Sep 01 2014 Michael Shigorin <mike@altlinux.org> 1.1.45-alt1
- starterkits alpha
* Mon Aug 18 2014 Michael Shigorin <mike@altlinux.org> 1.1.44-alt1
- connman fixup
* Mon Aug 04 2014 Michael Shigorin <mike@altlinux.org> 1.1.43-alt1
- fixed package build
* Mon Jul 28 2014 Michael Shigorin <mike@altlinux.org> 1.1.42-alt1
- current bits
* Mon Jul 07 2014 Michael Shigorin <mike@altlinux.org> 1.1.41-alt1
- post-214 fixups
* Mon Jun 30 2014 Michael Shigorin <mike@altlinux.org> 1.1.40-alt1
- systemd-214
* Mon Jun 16 2014 Michael Shigorin <mike@altlinux.org> 1.1.39-alt1
- starterkits-20140612
* Mon Jun 02 2014 Michael Shigorin <mike@altlinux.org> 1.1.38-alt1
- mksquashfs 4.3 support
* Mon May 26 2014 Michael Shigorin <mike@altlinux.org> 1.1.37-alt1
- use/browser
* Mon May 19 2014 Michael Shigorin <mike@altlinux.org> 1.1.36-alt1
- regular-lxqt
* Mon May 12 2014 Michael Shigorin <mike@altlinux.org> 1.1.35-alt1
- yet another rescue week
* Mon May 05 2014 Michael Shigorin <mike@altlinux.org> 1.1.34-alt1
- remember Odessa
* Mon Apr 28 2014 Michael Shigorin <mike@altlinux.org> 1.1.33-alt1
- net-eth tweaks
* Mon Apr 21 2014 Michael Shigorin <mike@altlinux.org> 1.1.32-alt1
- regular-rescue week
* Mon Apr 14 2014 Michael Shigorin <mike@altlinux.org> 1.1.31-alt1
- live: refactoring
- forensics mode
* Mon Apr 07 2014 Michael Shigorin <mike@altlinux.org> 1.1.30-alt1
- robotics support
* Mon Mar 31 2014 Michael Shigorin <mike@altlinux.org> 1.1.29-alt1
- mediacheck feature
* Mon Mar 24 2014 Michael Shigorin <mike@altlinux.org> 1.1.28-alt1
- install2: more cleanups
* Mon Mar 17 2014 Michael Shigorin <mike@altlinux.org> 1.1.27-alt1
- don't insist on k-m-r8168
- codebase deduplication
* Mon Mar 10 2014 Michael Shigorin <mike@altlinux.org> 1.1.26-alt1
- docs week
- deflogin: empty ROOTPW explicitly ignored (potential security fix)
* Mon Mar 03 2014 Michael Shigorin <mike@altlinux.org> 1.1.25-alt1
- regular updates
* Mon Feb 10 2014 Michael Shigorin <mike@altlinux.org> 1.1.24-alt1
- service bridge
* Mon Feb 03 2014 Michael Shigorin <mike@altlinux.org> 1.1.23-alt1
- live, net*, syslinux fixes (see also #26608)
* Mon Jan 27 2014 Michael Shigorin <mike@altlinux.org> 1.1.22-alt1
- ahci kludge (see #29705) :(
* Mon Jan 20 2014 Michael Shigorin <mike@altlinux.org> 1.1.21-alt1
- rescue tweaks
* Mon Jan 13 2014 Michael Shigorin <mike@altlinux.org> 1.1.20-alt1
- support for CIFS installation method (sin@)
- glibc-locales for regular images (closes: #29693)
* Mon Dec 30 2013 Michael Shigorin <mike@altlinux.org> 1.1.19-alt1
- regular fixes
* Mon Dec 23 2013 Michael Shigorin <mike@altlinux.org> 1.1.18-alt1
- efi updates
* Mon Dec 16 2013 Michael Shigorin <mike@altlinux.org> 1.1.17-alt1
- refind branding
* Mon Dec 09 2013 Michael Shigorin <mike@altlinux.org> 1.1.16-alt1
- e18
* Mon Dec 02 2013 Michael Shigorin <mike@altlinux.org> 1.1.15-alt1
- regular fixups
* Mon Nov 25 2013 Michael Shigorin <mike@altlinux.org> 1.1.14-alt1
* 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
- regular-sysv-tde related churn
* Mon Nov 04 2013 Michael Shigorin <mike@altlinux.org> 1.1.13-alt1
- rescue friday
* Mon Oct 21 2013 Michael Shigorin <mike@altlinux.org> 1.1.12-alt1
- live-builder update
* Mon Oct 14 2013 Michael Shigorin <mike@altlinux.org> 1.1.11-alt1
- luks better
* Mon Sep 30 2013 Michael Shigorin <mike@altlinux.org> 1.1.10-alt1
- regular tweaks
* Mon Sep 23 2013 Michael Shigorin <mike@altlinux.org> 1.1.9-alt1
- regular fixes
* Mon Sep 16 2013 Michael Shigorin <mike@altlinux.org> 1.1.8-alt1
- armh/p7/ve fixes
* Mon Aug 26 2013 Michael Shigorin <mike@altlinux.org> 1.1.7-alt1
- minor fixes
* Mon Aug 12 2013 Michael Shigorin <mike@altlinux.org> 1.1.6-alt1
- vm-net retired
* Mon Aug 05 2013 Michael Shigorin <mike@altlinux.org> 1.1.5-alt1
- armh related fixes
* Mon Jul 29 2013 Michael Shigorin <mike@altlinux.org> 1.1.4-alt1
- assorted fixups
* Mon Jul 22 2013 Michael Shigorin <mike@altlinux.org> 1.1.3-alt1
- armh fixes and tweaks
* Mon Jul 15 2013 Michael Shigorin <mike@altlinux.org> 1.1.2-alt1
- control and sound features
* Mon Jul 01 2013 Michael Shigorin <mike@altlinux.org> 1.1.1-alt1
- cuboxism
* Mon Jun 17 2013 Michael Shigorin <mike@altlinux.org> 1.1.0-alt1
- 1.1.x branch: public alpha development status
+ new subprofile: rootfs
+ new features: armh*, deflogin, init, services
+ refactored features: build-*, efi, fonts, live, x11*
+ tar2vm got rewritten as tar2fs, gained ARM support
- minor spec metadata update
(backported from 1.1.14)
* Mon Jun 17 2013 Michael Shigorin <mike@altlinux.org> 1.0.0-alt1
- 1.0

View File

@@ -1,6 +0,0 @@
object 21f8054f955de22bf0bfb2854f0128770d0ad489
type commit
tag v1.3.1
tagger Michael Shigorin <mike@altlinux.org> 1541443415 +0300
fixes&tweaks

View File

@@ -0,0 +1,6 @@
object 3b2a0649bf39199b177979e143a3497ba7dff9c0
type commit
tag v1.0.1
tagger Michael Shigorin <mike@altlinux.org> 1385399240 +0400
THE_PACKAGES

View File

@@ -1 +1 @@
ca7455c6104540e2073cca673043ededb3b96a85 v1.3.1
f13525a33f0d85a02deda42b7fd5f45c98dc2911 v1.0.1

View File

@@ -6,16 +6,15 @@
-include $(HOME)/.mkimage/profiles.mk
# for immediate assignment
ifndef ARCH
ARCH := $(shell arch \
ifndef ARCHES
ifdef ARCH
ARCHES := $(ARCH)
else
ARCHES := $(shell arch \
| sed 's/i686/i586/; s/armv7.*/armh/; s/armv.*/arm/; s/ppc.*/ppc/')
endif
ifndef ARCHES
ARCHES := $(ARCH)
endif
export ARCHES ARCH
export ARCHES
export PATH := $(CURDIR)/bin:$(PATH)
@@ -30,10 +29,8 @@ MAKE += -r --no-print-directory
DIRECT_TARGETS := help help/distro help/ve help/vm clean distclean check
.PHONY: $(DIRECT_TARGETS)
# these build nothing so no use of reports either
$(DIRECT_TARGETS):
@$(MAKE) -f main.mk REPORT= $@
@$(MAKE) -f main.mk $@
export NUM_TARGETS := $(words $(MAKECMDGOALS))
@@ -56,12 +53,8 @@ SHELL = /bin/bash
say "** goal: $@ [$$n/$(NUM_TARGETS)]"; \
fi; \
for ARCH in $(ARCHES); do \
if [ -z "$(QUIET)" ]; then \
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then \
say; \
fi; \
say "** ARCH: $$ARCH"; \
fi; \
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then say; fi; \
say "** ARCH: $$ARCH"; \
if $(MAKE) -f main.mk ARCH=$$ARCH $@ $(POSTPROC); then \
if [ -n "$$REPORT" ]; then \
$(MAKE) -f reports.mk ARCH=$$ARCH; \
@@ -72,6 +65,3 @@ SHELL = /bin/bash
docs:
@$(MAKE) -C doc
docs-publish:
@$(MAKE) -C doc publish

View File

@@ -3,22 +3,23 @@ http://en.altlinux.org/Hasher; large tmpfs helps a lot).
требуется
~~~~~~~~~
- ALT 8.0 или выше (возможна адаптация "вниз", см. ветки)
- ALT Linux 6.0 или выше (возможна адаптация "вниз")
- установленный mkimage (свежий, как и hasher)
- пользователь с правом запуска hasher и подключения /proc к нему
- пользователь с правом запуска hasher
полезно
~~~~~~~
- смонтированный tmpfs на несколько гигабайт (или укажите BUILDDIR)
- смонтированный tmpfs на несколько гигабайт
* например, в /tmp или /home/USER/hasher
* каталог из prefix в /etc/hasher-priv/system
- установленный git-core и настроенный ~/.gitconfig
- установленный git-core
- настроенный ~/.gitconfig
команды
~~~~~~~
от имени root::
----
# apt-get install mkimage mkimage-preinstall hasher git-core
# apt-get install mkimage hasher git-core
# hasher-useradd USER
----
@@ -26,10 +27,10 @@ http://en.altlinux.org/Hasher; large tmpfs helps a lot).
----
$ git config --global user.email "my@email"
$ git config --global user.name "My Name"
$ mkdir -p ~/out ~/tmp
$ mkdir ~/out
----
тестовая сборка (в каталоге mkimage-profiles)::
тестовая сборка::
----
$ make syslinux.iso
----
@@ -50,5 +51,3 @@ $ make ARCH=i586 APTCONF=~/apt/apt.conf.i586 REPORT=1 ve/generic.tar
- http://www.altlinux.org/hasher
- http://www.altlinux.org/mkimage
- http://www.altlinux.org/m-p
- http://www.altlinux.org/m-p-howto ("как поправить под себя")
- http://www.altlinux.org/starterkits/builder (сборочный LiveCD)

17
README
View File

@@ -21,7 +21,7 @@
Особенности:
* метапрофиль при сборке может быть доступен только на чтение
* метапрофиль может быть полностью read-only при сборке
* для сборки подыскивается предпочтительно tmpfs
* в профиль копируются только нужные объекты;
он автономен относительно метапрофиля
@@ -36,27 +36,23 @@
Объекты:
* дистрибутивы и виртуальные среды/машины:
** описываются в conf.d/*.mk
** описываются в conf.d/*.mk или соответственно lib/{distro,ve,vm}.mk
** могут основываться на предшественниках, расширяя их
** дистрибутивы также включают один или более субпрофилей по надобности
** дистрибутивы также:
*** включают один или более субпрофилей по надобности
** желательно избегать множественного наследования, см. тж. фичи
* субпрофили:
** список собирается в $(SUBPROFILES)
** базовые комплекты помещены в подкаталогах под sub.in/;
их наборы скриптов могут расширяться фичами
* фичи:
** законченные блоки функциональности (или наборы таковых)
** описываются в индивидуальных features.in/*/config.mk
** могут требовать другие фичи, а также субпрофили
** накопительный список собирается в $(FEATURES)
** при сборке $(BUILDDIR) содержимое фич добавляется в профиль
* списки пакетов (*_LISTS):
** _внимание_: не надо создавать фичу, если достаточно списка пакетов!
** просьба по возможности избегать дублирования (см. bin/pkgdups)
* индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README
Результат:
@@ -70,15 +66,12 @@
См. тж.:
* http://altlinux.org/m-p: обзорная документация, в т.ч. howto
* http://altlinux.org/m-p
* doc/:
** params.txt: переменные, указываемые при запуске сборки
** pkglists.txt: формирование состава образа
** features.txt: обзор подключаемых особенностей
Примечание: пути в документации задаются от каталога верхнего уровня,
если не указаны как относительные в явном виде (./) или по смыслу.
Удачи; что не так -- пишите.
Michael Shigorin <mike@altlinux.org>

View File

@@ -1,14 +0,0 @@
#!/bin/sh
# missing "; @:" for recipeless rules makes SHELL payload useless
# (see also ../lib/report.mk); this results in broken target graphs
# (so REPORT=1 gets crippled)
sed 's/^[a-z]\+\/.*:.*$/\n&/' "$@" \
| grep -vE '^(#|export|if|else|endif|define|endef)' \
| sed ':loop /^[^#].*[^\\]\\$/N; s/\\\n//; t loop' \
| grep -vE ':=| = | ?= | += |^\$' \
| sed ':loop /^[a-z]\+\/.*:.*$/N; s/\n\t\+@*/\; /; t loop' \
| grep -vE ';|^$' && exit 1 ||:
# see also http://unix.stackexchange.com/questions/228547

View File

@@ -2,20 +2,10 @@
# analyze free space, preferring tmpfs over really many gigaz
# and taking into account configured hasher workdir prefices
# NB: use BUILDDIR to override autodetection (see ../QUICKSTART)
# hope there aren't spaces in RM's $HOME are they?
DIRS="$TMP $TMPDIR $HOME/hasher /tmp /var/tmp .."
MINSIZE=262144 # face control criterion
# mkimage needs /proc among those, be clear about that
check_allowed_mountpoints()
{
grep -wqs "^allowed_mountpoints=[^#]*/proc" \
/etc/hasher-priv/system \
`/usr/libexec/hasher-priv/getconf.sh`
}
# poor man's SourceIfExists()
try_source() { [ -f "$1" ] && . "$1"; }
@@ -55,7 +45,7 @@ choose_tmpdir() {
echo -n "$i "
df -PT "$i" | tail -1
done \
| sort -unk5 \
| sort -unk6 \
| while read dir dev fstype size used free percent mnt; do
check_options "$dev" "$mnt" || continue
[ "$free" -gt "$MINSIZE" ] || continue
@@ -69,12 +59,6 @@ choose_tmpdir() {
}
# bringing it all together
if ! check_allowed_mountpoints; then
echo "error: hasher's allowed_mountpoints do not include /proc;"
echo "please check hasher docs and /etc/hasher-priv/system"
exit 1
fi >&2
TMPDIRS="`contemplate_dirs $DIRS`"
if [ -z "$TMPDIRS" ]; then
echo "error: no suitable directories found;"

View File

@@ -20,7 +20,7 @@ if type -t git >&/dev/null && pushd "$1" >/dev/null; then
fi
if [ -n "$(git status -s)" ]; then
git add . \
&& git commit -anq -m "$2" \
&& git commit -qam "$2" \
|| fatal "git add/commit failed"
fi
popd >/dev/null

View File

@@ -21,10 +21,10 @@ while read first second third rest; do
for to in $TO; do
out=" \"$FROM\" -> \"$to\""
case $to in
*distro/*|*vm/*|*ve/*)
*distro/*)
echo "$out [weight=10];";;
*)
echo "$out;";;
echo "$out";;
esac
done
done

View File

@@ -30,7 +30,4 @@ transformed="$(sed \
-e "s, *) *, ) ,g")"
[ "$DEBUG" = 2 ] && echo "`basename $0`: transformed = \"$transformed\"" >&2
[ -z "$transformed" ] ||
find $transformed \
| sed 's,^\./,,' \
| egrep -v '(\.sw.|~)$'
[ -z "$transformed" ] || find $transformed | sed 's,^\./,,' | grep -v '\.sw.$'

View File

@@ -1,307 +0,0 @@
#!/bin/bash -ex
# usage:
# tar2fs chroot.tar image.raw [size_in_bytes [fstype]]
. shell-error
export LANG=C
if [ $# -lt 2 ]; then
fatal "error: tar2fs needs at least two arguments"
fi
# this needs env_keep sudo setup to actually work
if [ -n "$GLOBAL_BUILDDIR" ]; then
WORKDIR="$GLOBAL_BUILDDIR/vmroot"
else
WORKDIR="$(mktemp --tmpdir -d vmroot-XXXXX)"
fi
[ -n "$WORKDIR" ] || fatal "couldn't come up with suitable WORKDIR"
[ -n "$GLOBAL_DEBUG" ] || message "WORKDIR: $WORKDIR"
MB=1048576 # a parted's "megabyte" in bytes is *broken*
SIZE_FACTOR=2 # multiply the sizes found by this value
BOOT_SIZE_FACTOR=2 # multiply /boot size by this value additionally
CUR_BOUNDARY=0 # align first partition at 1MB for performance (+1)
INITRD_MODULES=
BOOTFSTYPE=
BOOTPART=
ARCH="$(arch)" # NB: sudo => no GLOBAL_ will do either; mind qemu-*
case "$ARCH" in
*86*)
# NB: different storage modules might be needed for non-kvm
INITRD_MODULES="sd_mod ata_piix ahci virtio-scsi virtio-blk"
BLOCKDEV="/dev/sda" # might be /dev/vda for virtio
ROOTPART="1"
;;
arm*)
BOOTFSTYPE="ext2" # support expected in every sane target uboot
BLOCKDEV="/dev/mmcblk0p" # ...hopefully...
BOOTPART="1"
ROOTPART="2"
;;
e2k)
BOOTFSTYPE="ext2" # firmware knows it
BLOCKDEV="/dev/sda" # ...hopefully...
BOOTPART="1"
ROOTPART="2"
;;
esac
# figure out the part taken by /boot in the given tarball
boot_size() {
if [ -n "$BOOTPART" ]; then
tar tvf "$1" \
| awk ' \
BEGIN { sum=0 }
/^-.* \.\/boot\// { sum=sum+$3 }
END { print sum }'
else
echo "0"
fi
}
# parted wrapper for convenience
parting() { parted "$LOOPDEV" --align optimal --script -- "$@"; }
# unfortunately parted is insane enough to lump alignment controls
# into unit controls so creating adjacent partitions sized in MiB
# is not as straightforward as it might be... thus "+1" padding;
# see also http://www.gnu.org/software/parted/manual/parted.html#unit
mkpart() {
# a bit different start/end semantics to handle end of device too
local start="$(($CUR_BOUNDARY + 1))" # yes, we lose a megabyte
if [ -n "$1" ]; then
CUR_BOUNDARY="$(($start + $1))"
local end="$CUR_BOUNDARY"MiB
else
local end="-1s" # last sector of the image
fi
parting mkpart primary ext2 "$start"MiB "$end"
}
# a tarball containing chroot with a kernel
TAR="$1"
[ -s "$TAR" ] || fatal "source tarball doesn't really exist"
# a path to the image to be generated
IMG="$2"
[ -d "$(dirname "$IMG")" ] || fatal "target directory doesn't exist"
# 0 means auto; if a value is specified it holds (no /boot subtracted)
ROOTSIZE="$3"
[ -n "$ROOTSIZE" -a "$ROOTSIZE" != 0 ] || unset ROOTSIZE
# image size in bytes
TARSIZE="$(stat -Lc %s "$TAR")"
# /boot size in that tarball
BOOTSIZE="$(boot_size "$TAR")"
DEFSIZE="$(($SIZE_FACTOR * ($TARSIZE - $BOOTSIZE)))" # (exact sizes)
ROOTSIZE="$((${ROOTSIZE:-$DEFSIZE} + $MB - 1))" # for ceil rounding to MB
# image and /boot sizes in megabytes
ROOTSIZEM="$(($ROOTSIZE / $MB))"
BOOTSIZEM="$((($SIZE_FACTOR * $BOOT_SIZE_FACTOR * $BOOTSIZE + $MB - 1) / $MB))"
# tested to work: ext[234], jfs
# NB: xfs doesn't have a spare sector for the bootloader
ROOTFSTYPE="${4:-ext4}"
# single root partition hardwired so far,
# add another image for home/data/swap if needed
ROOTDEV="$BLOCKDEV$ROOTPART"
# last preparations...
MKFS="mkfs.$ROOTFSTYPE ${BOOTFSTYPE:+mkfs.$BOOTFSTYPE}"
for i in losetup sfdisk parted kpartx $MKFS; do
if ! type -t "$i" >&/dev/null; then
fatal "$i required but not found in host system"
fi
done
LOOPDEV="$(losetup --find)" # would be sad about non-binary megabytes too
ROOTFS="$WORKDIR/chroot"
BOOTFS=
if [ -n "$BOOTPART" ]; then
BOOTFS="$ROOTFS/boot"
fi
exit_handler() {
rc=$?
cd /
if [ -n "$ROOTFS" ]; then
umount ${BOOTFS:+"$BOOTFS"} "$ROOTFS"{/dev,/proc,/sys,}
if [ -n "$LOOPDEV" ]; then
kpartx -d -s "$LOOPDEV" || {
sleep 10
kpartx -d -s -v "$LOOPDEV"
}
losetup --detach "$LOOPDEV"
fi
rm -r -- "$ROOTFS"
rmdir -- "$WORKDIR"
fi
exit $rc
}
# handle -e in shebang as well
trap exit_handler EXIT ERR
# prepare disk image and a filesystem inside it
rm -f -- "$IMG"
OFFSET="$(($CUR_BOUNDARY + $BOOTSIZEM + $ROOTSIZEM - 1))"
dd if=/dev/zero of="$IMG" conv=notrunc bs=$MB count=1 seek="$OFFSET"
losetup "$LOOPDEV" "$IMG"
parting mklabel msdos
if [ -n "$BOOTPART" ]; then
BOOTDEV="$BLOCKDEV$BOOTPART"
mkpart "$BOOTSIZEM"
fi
# not ROOTSIZEM but "the rest"; somewhat non-trivial arithmetics lurk in parted
mkpart
kpartx -a -s "$LOOPDEV"
LOOPROOT="/dev/mapper/$(basename "$LOOPDEV")p$ROOTPART"
mkfs."$ROOTFSTYPE" "$LOOPROOT"
if [ -n "$BOOTPART" ]; then
LOOPBOOT="/dev/mapper/$(basename "$LOOPDEV")p$BOOTPART"
mkfs."$BOOTFSTYPE" "$LOOPBOOT"
fi
ROOTUUID="$(blkid -s UUID -o value -c /dev/null "$LOOPROOT")"
if [ -n "$ROOTUUID" ]; then
ROOTDEV="UUID=$ROOTUUID"
else
ROOTDEV="$LOOPROOT"
fi
if [ -n "$BOOTPART" ]; then
BOOTUUID="$(blkid -s UUID -o value -c /dev/null "$LOOPBOOT")"
if [ -n "$ROOTUUID" ]; then
BOOTDEV="UUID=$BOOTUUID"
fi
fi
# mount and populate it
mkdir -pm755 "$ROOTFS"
mount "$LOOPROOT" "$ROOTFS"
if [ -n "$BOOTPART" ]; then
mkdir -pm700 "$BOOTFS"
mount "$LOOPBOOT" "$BOOTFS"
fi
tar -C "$ROOTFS" --numeric-owner -xf "$TAR"
for i in /dev /proc /sys; do mount --bind "$i" "$ROOTFS$i"; done
# loop device so lilo could work...
echo "$ROOTDEV / $ROOTFSTYPE relatime 1 1" >> "$ROOTFS/etc/fstab"
# target device at once
if [ -n "$BOOTPART" ]; then
echo "$BOOTDEV /boot $BOOTFSTYPE defaults 1 2" >> "$ROOTFS/etc/fstab"
fi
echo "MODULES_PRELOAD += $INITRD_MODULES $ROOTFSTYPE" >> "$ROOTFS/etc/initrd.mk"
case "$ARCH" in
*86*)
echo "FEATURES += qemu" >> "$ROOTFS/etc/initrd.mk"
;;
e2k)
echo "FEATURES += usb" >> "$ROOTFS/etc/initrd.mk"
;;
esac
# NB: don't stick BOOTFS here, it has slightly different semantics
pushd $ROOTFS/boot
# 4.9.76-elbrus-def-alt1.11.1 -> def
get_label() { echo "${1# *}" | sed -r 's,.*elbrus-([0-9a-z]+)-.*$,\1,'; }
KVERSIONS=
if [ -s .origver ]; then
while read kver; do
chroot "$ROOTFS" make-initrd -k "$kver"
KVERSIONS="$KVERSIONS $kver"
done < .origver
fi
[ -n "$KVERSIONS" ] || fatal "unable to deduce kernel version"
rm -f .origver
# ...target device too
sed -i "s,$LOOPROOT,$ROOTDEV," "$ROOTFS/etc/fstab"
echo "** KVERSIONS=[$KVERSIONS]" >&2
if [ "`echo $KVERSIONS | wc -w`" = 1 ]; then # 2+ labels
echo -e "default=`get_label $KVERSIONS`\n" >> boot.conf
fi
# FIXME: relies on particular (current) kernel package naming scheme
for v in $KVERSIONS; do
l="`get_label "$v"`"
cat >> boot.conf <<EOF
label=$l
partition=0
image=/image-$v
initrd=/initrd-$v.img
cmdline=console=ttyS0,115200 console=tty0 consoleblank=0 hardreset root=UUID=$ROOTUUID
EOF
done
echo "** start of boot.conf"
cat boot.conf
echo "** end of boot.conf"
popd
if [ -x "$ROOTFS"/sbin/lilo ]; then
# configure and install bootloader
REGEXP='^.*: ([0-9]+) cylinders, ([0-9]+) heads, ([0-9]+) sectors/track*$'
set -- $(sfdisk -g "$LOOPDEV" | grep -E "$REGEXP" | sed -r "s@$REGEXP@\1 \2 \3@")
LILO_COMMON="lba32
delay=1
vga=0
image=/boot/vmlinuz
initrd=/boot/initrd.img
append=\"root=$ROOTDEV rootdelay=3 console=tty1 console=ttyS0,115200n8\"
label=linux"
cat > "$ROOTFS"/etc/lilo-loop.conf <<-EOF
boot=$LOOPDEV
disk=$LOOPDEV
bios=0x80
cylinders=$1
heads=$2
sectors=$3
partition=$LOOPROOT
start=63
$LILO_COMMON
EOF
chroot "$ROOTFS" lilo -C /etc/lilo-loop.conf
cat > "$ROOTFS"/etc/lilo.conf <<-EOF
boot=$BLOCKDEV
$LILO_COMMON
EOF
fi
if [ -n "$SUDO_USER" ]; then
chown "$SUDO_USER:$(id -g "$SUDO_USER")" "$IMG" "$ROOTFS" "$WORKDIR" ||:
fi

134
bin/tar2vm Executable file
View File

@@ -0,0 +1,134 @@
#!/bin/bash -e
# usage:
# tar2vm chroot.tar image.raw [size_in_bytes]
. shell-error
if [ $# -lt 2 ]; then
fatal "error: tar2vm needs at least two arguments"
fi
# this needs env_keep sudo setup to actually work
if [ -n "$GLOBAL_BUILDDIR" ]; then
WORKDIR="$GLOBAL_BUILDDIR/vmroot"
else
WORKDIR="$(mktemp --tmpdir -d vmroot-XXXXX)"
fi
[ -n "$WORKDIR" ] || fatal "couldn't come up with suitable WORKDIR"
[ -n "$GLOBAL_DEBUG" ] || message "WORKDIR: $WORKDIR"
# a tarball containing chroot with a kernel
TAR="$1"
[ -s "$TAR" ] || fatal "source tarball doesn't really exist"
# a path to the image to be generated
IMG="$2"
[ -d "$(dirname "$IMG")" ] || fatal "target directory doesn't exist"
# image size in bytes (256M is a fallback)
TARSIZE="$(stat -Lc %s "$TAR")"
DEFSIZE="$((2 * $TARSIZE))"
DISKSIZE="${3:-${DEFSIZE:-268435456}}"
# ...and in megabytes
DISKSIZEM="$(($DISKSIZE / 1048576))"
# tested to work: ext[234], jfs
# 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"
# last preparations...
for i in losetup sfdisk parted kpartx mkfs."$ROOTFSTYPE"; do
if ! type -t "$i" >&/dev/null; then
fatal "$i required but not found"
fi
done
LOOPDEV="$(losetup --find)"
ROOTFS="$WORKDIR/chroot"
exit_handler()
{
rc=$?
if [ -n "$ROOTFS" ]; then
umount "$ROOTFS"{/dev,/proc,/sys,}
if [ -n "$LOOPDEV" ]; then
kpartx -d "$LOOPDEV"
losetup --detach "$LOOPDEV"
fi
rm -r -- "$ROOTFS"
rmdir -- "$WORKDIR"
fi
exit $rc
}
trap exit_handler EXIT
# prepare disk image and a filesystem inside it
rm -f -- "$IMG"
dd if=/dev/zero of="$IMG" conv=notrunc \
bs=1 count=1 seek="$(($DISKSIZE - 1))"
losetup "$LOOPDEV" "$IMG"
parted --script "$LOOPDEV" mklabel msdos
parted --script "$LOOPDEV" mkpart primary ext2 1 "$DISKSIZEM"
kpartx -a "$LOOPDEV"
LOOPDEV1="/dev/mapper/$(basename "$LOOPDEV")p1"
mkfs."$ROOTFSTYPE" "$LOOPDEV1"
# 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
echo "$LOOPDEV1 / $ROOTFSTYPE defaults 1 1" >> "$ROOTFS/etc/fstab"
echo "MODULES_PRELOAD=sd_mod ata_piix $ROOTFSTYPE" >> "$ROOTFS/etc/initrd.mk"
KERNEL="$(readlink $ROOTFS/boot/vmlinuz | sed 's,vmlinuz-,,')"
chroot "$ROOTFS" make-initrd -k "$KERNEL"
sed -i "s,$LOOPDEV1,$ROOTDEV," "$ROOTFS/etc/fstab"
# configure and install bootloader
REGEXP='^Disk .*: ([0-9]+) cylinders, ([0-9]+) heads, ([0-9]+) sectors/track*$'
set -- $(sfdisk -l "$LOOPDEV" | grep -E "$REGEXP" | sed -r "s@$REGEXP@\1 \2 \3@")
LILO_COMMON="lba32
delay=1
vga=0
image=/boot/vmlinuz
initrd=/boot/initrd.img
append=\"root=$ROOTDEV rootdelay=3\"
label=linux"
cat > "$ROOTFS"/etc/lilo-loop.conf << EOF
boot=$LOOPDEV
disk=$LOOPDEV
bios=0x80
cylinders=$1
heads=$2
sectors=$3
partition=$LOOPDEV1
start=63
$LILO_COMMON
EOF
chroot "$ROOTFS" lilo -C /etc/lilo-loop.conf
cat > "$ROOTFS"/etc/lilo.conf << EOF
boot=${ROOTDEV%[0-9]*}
$LILO_COMMON
EOF
if [ -n "$SUDO_USER" ]; then
chown "$SUDO_USER" "$IMG" "$ROOTFS" "$WORKDIR"
fi

View File

@@ -1,2 +0,0 @@
check:
@../bin/check-recipe *.mk

View File

@@ -12,13 +12,7 @@
Попросту говоря, copy-paste -- тревожный признак.
Вместо него нередко может помочь выделение кусочков конфигурации
в пределах включаемого файла в цели mixin/*, которые не являются
самостоятельными или даже промежуточными, но включают полезные
группы настроек, нужных в различных образах, не наследующих
друг другу -- посмотрите существующие примеры использования.
По переменным (см. тж. doc/pkglists.txt):
По переменным (см. тж. ../doc/pkglists.txt):
* для пользовательского окружения (live, main) предназначены
THE_PACKAGES, THE_LISTS, THE_GROUPS, THE_PACKAGES_REGEXP
@@ -29,7 +23,7 @@
* SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
во все стадии, в том числе в образ чувствительной к объёму install2
(в stage1 -- только в инструментальный чрут); применяйте для того,
что обязано быть и в инсталяторе, и в готовой системе (но не в rescue)
что обязано быть и в инсталяторе, и в готовой системе
* для направленного действия служат:
** STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
@@ -39,7 +33,7 @@
** MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
** LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)
* аналогично по kernel-modules-*:
* аналогично по модулям ядра:
** THE_KMODULES попадут в "пользовательскую" среду (live, main)
** STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
** BASE_KMODULES попадут в установку по умолчанию

View File

@@ -1,93 +0,0 @@
ifeq (armh,$(ARCH))
ifeq (ve,$(IMAGE_CLASS))
# aliases for autobuild
ve/regular-nexus7-e17: ve/nexus7-e17; @:
ve/regular-nexus7-kde4: ve/nexus7-kde4; @:
ve/altlinux-p7-nexus7-e17: ve/nexus7-e17; @:
ve/altlinux-p7-nexus7-kde4: ve/nexus7-kde4; @:
ve/.tegra3-base: ve/.base use/armh use/kernel
@$(call add,BASE_PACKAGES,nvidia-tegra)
ve/.tegra3-tablet: ve/.tegra3-base use/armh-tegra3 +pulse
@$(call add,BASE_LISTS,$(call tags,base tablet))
ve/.nexus7-tablet: ve/.tegra3-tablet use/armh-nexus7 \
use/x11-autologin use/deflogin/altlinuxroot
@$(call set,KFLAVOURS,grouper) # fits tilapia just fine
@$(call set,BRANDING,altlinux-kdesktop) ### the only suitable so far
@$(call add,BASE_PACKAGES,mkinitrd) ### rootsubdir support
@$(call add,BASE_PACKAGES,firmware-nexus7)
@$(call add,BASE_PACKAGES,livecd-ru) ### until l10n is there
ve/nexus7-e17: ve/.nexus7-tablet use/x11/e17 use/x11/lightdm/gtk; @:
ve/nexus7-kde4: ve/.nexus7-tablet use/x11/lightdm/kde +systemd +pulse +nm
@$(call add,BASE_LISTS,$(call tags,base kde4mobile))
ve/nexus7-xfce: ve/.nexus7-tablet use/x11/xfce use/x11/lightdm/gtk +systemd
@$(call add,BASE_PACKAGES,florence at-spi2-atk)
endif
ifeq (vm,$(IMAGE_CLASS))
# NB: early dependency on use/kernel is on intent
vm/.arm-base: profile/bare use/kernel use/net-eth/dhcp use/net-ssh; @:
@$(call add,BASE_PACKAGES,interactivesystem e2fsprogs)
@$(call add,BASE_PACKAGES,apt)
@$(call add,BASE_PACKAGES,mkinitrd uboot-tools)
@$(call set,BRANDING,altlinux-kdesktop)
vm/.cubox-bare: vm/.arm-base use/armh-cubox use/net-ssh use/repo use/tty/S0
@$(call add,BASE_PACKAGES,glibc-locales vim-console rsync)
vm/.cubox-desktop: vm/.cubox-bare use/armh-dovefb +systemd +pulse \
use/armh-cubox use/branding use/xdg-user-dirs/deep \
use/fonts/otf/adobe use/fonts/ttf/redhat use/fonts/ttf/ubuntu
@$(call set,BRANDING,altlinux-kdesktop)
@$(call add,THE_BRANDING,alterator graphics indexhtml menu notes)
@$(call add,BASE_PACKAGES,parole gst-ffmpeg gst-plugins-vmeta)
@$(call add,BASE_PACKAGES,gst-plugins-good gst-plugins-nice)
@$(call add,BASE_PACKAGES,gst-plugins-bad gst-plugins-ugly)
@$(call add,BASE_PACKAGES,LibreOffice4-full LibreOffice4-langpack-ru)
@$(call add,BASE_LISTS,$(call tags,(base || desktop) && regular))
vm/cubox-xfce-ru: vm/.cubox-desktop use/deflogin/altlinuxroot \
use/slinux/arm use/x11/lightdm/gtk use/x11-autologin +nm
@$(call add,BASE_PACKAGES,livecd-ru)
# these images use a kind of OEM setup
vm/.cubox-oem: vm/.cubox-desktop use/oem; @:
vm/.cubox-gtk: vm/.cubox-oem use/x11/lightdm/gtk +nm; @:
vm/cubox-xfce: vm/.cubox-gtk \
use/slinux/arm use/net-usershares use/domain-client; @:
vm/cubox-mate: vm/.cubox-gtk use/x11/mate; @:
@$(call set,BRANDING,altlinux-centaurus)
@$(call add,THE_BRANDING,mate-settings)
vm/cubox-tde: vm/.cubox-oem use/net-eth/dhcp use/x11-autostart +tde
@$(call add,BASE_LISTS,openscada)
vm/cubox-kde4: vm/.cubox-oem use/x11/kde4 use/x11/kdm4 use/fonts/zerg +pulse
@$(call add,BASE_LISTS,$(call tags,desktop && kde4 && !extra))
vm/cubox-server: vm/.cubox-bare use/deflogin/altlinuxroot use/control/sudo-su \
+sysvinit
@$(call set,BRANDING,altlinux-centaurus)
@$(call add,BASE_PACKAGES,agetty fdisk)
@$(call add,BASE_LISTS,$(call tags,base security))
vm/arm-server: vm/.arm-base use/net-eth/dhcp use/cleanup/installer +sysvinit
@$(call set,KFLAVOURS,armadaxp)
@$(call add,BASE_PACKAGES,agetty)
@$(call add,BASE_LISTS,$(call tags,extra (server || network)))
endif
endif

View File

@@ -1,54 +0,0 @@
ifeq (distro,$(IMAGE_CLASS))
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
distro/alt-workstation: workstation_groups_x86 = $(addprefix workstation/,\
3rdparty blender clamav cloud-clients freecad gnome-peer-to-peer \
gtk-dictionary kvm smartcard virtualbox voip-clients)
distro/alt-workstation: distro/.base +power +vmguest +wireless +efi \
mixin/desktop-installer mixin/alt-workstation \
use/memtest use/rescue/base use/bootloader/grub use/luks \
use/efi/refind use/efi/memtest86 use/efi/shell \
use/install2/repo use/install2/suspend use/live/suspend \
use/live/install use/live/x11 use/live/repo use/live/rw \
use/branding/complete use/docs/license \
use/domain-client/full use/x11/amdgpu use/x11/lightdm/gtk
@$(call add,INSTALL2_PACKAGES,open-iscsi)
@$(call add,INSTALL2_PACKAGES,xorg-conf-synaptics)
@$(call add,MAIN_PACKAGES,solaar)
@$(call add,MAIN_GROUPS,$(workstation_groups_x86))
@$(call add,MAIN_LISTS,workstation/extras)
@$(call add,MAIN_LISTS,$(call tags,xorg vaapi))
@$(call add,THE_LISTS,$(call tags,archive extra))
@$(call add,THE_LISTS,$(call tags,mobile mate))
@$(call add,BASE_KMODULES,kvm virtualbox)
@$(call add,CLEANUP_BASE_PACKAGES,acpid-events-power)
@$(call add,RESCUE_BOOTARGS,nomodeset vga=0)
@$(call add,EFI_BOOTARGS,lang=ru_RU)
endif
ifeq (,$(filter-out e2k%,$(ARCH)))
distro/.alt-workstation-base: distro/.e2k-installer mixin/alt-workstation
@$(call add,THE_PACKAGES,setup-mate-terminal)
@$(call add,THE_PACKAGES,setup-mate-nocomposite)
@$(call add,THE_PACKAGES,setup-libgl-dri3-disable)
@$(call add,THE_PACKAGES,setup-pulseaudio-plain-module-detect)
@$(call add,THE_PACKAGES,firmware-linux)
@$(call add,THE_BRANDING,graphics)
@$(call set,META_APP_ID,ALT Workstation/$(ARCH))
distro/.alt-workstation: distro/.alt-workstation-base use/x11/lightdm/gtk; @:
distro/alt-workstation-101: distro/.alt-workstation use/e2k/101
@$(call set,META_VOL_ID,ALT Workstation/101)
distro/alt-workstation-401: distro/.alt-workstation use/e2k/401; @:
@$(call set,META_VOL_ID,ALT Workstation/401)
# avoid lightdm; NB: mate-settings pulls it in (hence the dummy)
distro/alt-workstation-801: distro/.alt-workstation-base use/e2k/install2/801
@$(call set,META_VOL_ID,ALT Workstation/801)
@$(call add,MAIN_GROUPS,workstation/e801-1seat workstation/e801-2seat)
endif
endif

View File

@@ -6,11 +6,19 @@ distro/.desktop-base: distro/.installer use/syslinux/ui/vesamenu use/x11/xorg
distro/.desktop-mini: distro/.desktop-base use/x11/xdm +power; @:
distro/.desktop-network: distro/.desktop-mini mixin/desktop-installer; @:
distro/.desktop-network: distro/.desktop-mini use/stage2/net-eth +vmguest
@$(call add,SYSTEM_PACKAGES,fonts-ttf-google-croscore-arimo)
@$(call add,BASE_PACKAGES,udev-rule-generator-net sysklogd)
@$(call add,BASE_LISTS, \
$(call tags,(base || desktop) && (l10n || network)))
distro/.desktop-extra:
@$(call add,BASE_LISTS,$(call tags,(archive || base) && (extra)))
distro/kde4-lite: distro/.desktop-mini distro/.desktop-network distro/.desktop-extra +kde4-lite
@$(call set,KFLAVOURS,std-def)
distro/tde: distro/.desktop-network +tde; @:
distro/icewm: distro/.desktop-network use/lowmem use/install2/fs +icewm; @:
distro/ltsp-tde: distro/tde +ltsp; @:
distro/ltsp-icewm: distro/icewm +ltsp; @:

View File

@@ -1,99 +0,0 @@
ifeq (vm,$(IMAGE_CLASS))
vm/.e2k-bare: vm/.bare use/e2k
@$(call add,BASE_PACKAGES,apt)
vm/e2k-live: vm/.e2k-bare use/deflogin/live use/net-ssh use/control/sudo-su
@$(call add,THE_LISTS,$(call tags,ve tools))
vm/.e2k-rescue: vm/e2k-live \
mixin/e2k-base use/net/etcnet use/services/lvm2-disable
@$(call add,THE_PACKAGES,agetty gpm fdisk parted smartmontools pv sshfs)
@$(call add,THE_PACKAGES,make-initrd dhcpcd hdparm nfs-clients)
@$(call add,THE_LISTS,$(call tags,server && (network || extra)))
@$(call add,DEFAULT_SERVICES_DISABLE,gpm mdadm smartd)
vm/e2k-rescue: vm/.e2k-rescue +sysvinit
@$(call add,KFLAVOURS,elbrus-1cp elbrus-8c elbrus-4c)
vm/e2k-xfce: vm/.e2k-rescue mixin/e2k-desktop use/x11/xfce
@$(call add,THE_PACKAGES,pnmixer)
vm/e2k-mate: vm/.e2k-rescue use/deflogin/live use/x11/mate use/x11/lightdm/gtk \
mixin/e2k-base mixin/e2k-desktop mixin/e2k-livecd-install
@$(call add,THE_PACKAGES,LibreOffice-integrated LibreOffice-gnome)
@$(call add,THE_PACKAGES,LibreOffice-langpack-ru)
vm/e2k-lxqt: vm/.e2k-rescue mixin/e2k-desktop
@$(call add,THE_LISTS,$(call tags,desktop && lxqt && !extra))
vm/e2k-builder: vm/.e2k-rescue use/dev/builder/base
@$(call add,KFLAVOURS,elbrus-8c elbrus-4c)
vm/e2k-samba-DC: vm/.e2k-rescue
@$(call add,BASE_PACKAGES,task-samba-dc glibc-locales net-tools)
endif
ifeq (ve,$(IMAGE_CLASS))
ve/.e2k-bare: ve/.base use/e2k +sysvinit
@$(call add,BASE_PACKAGES,apt)
ve/e2k-installer: ve/.e2k-bare use/repo/main
@$(call add,MAIN_PACKAGES,hello)
ve/e2k-git: ve/.e2k-bare use/e2k use/net-ssh use/net-dns/yandex
@$(call add,BASE_PACKAGES,git-server nginx)
@$(call add,DEFAULT_SERVICES_ENABLE,xinetd git nginx)
endif
ifeq (distro,$(IMAGE_CLASS))
distro/.e2k-rescue: distro/.base mixin/e2k-base use/rescue/.base +net-eth
@$(call set,META_VOL_ID,ALT Rescue for Elbrus)
distro/e2k-101-rescue: distro/.e2k-rescue
@$(call add,KFLAVOURS,elbrus-1cp)
# NB: this one is NOT suited for a particular processor yet!
# (that's to be done downstream)
distro/.e2k-installer-base: distro/.base mixin/e2k-base \
use/install2 use/install2/packages use/e2k/install2 \
use/volumes/regular use/net-ssh +net-eth
@$(call set,INSTALLER,altlinux-generic)
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_VOL_SET,ALT)
@$(call set,META_VOL_ID,ALT for Elbrus)
@$(call set,META_APP_ID,ALT/$(ARCH))
@$(call add,INSTALL2_PACKAGES,agetty)
@$(call add,INSTALL2_PACKAGES,ifplugd) ### for net-eth link status
@$(call add,INSTALL2_BRANDING,alterator)
@$(call add,THE_PACKAGES,agetty gpm fdisk parted smartmontools pv sshfs)
@$(call add,THE_PACKAGES,make-initrd dhcpcd hdparm nfs-clients vim-console)
@$(call add,THE_LISTS,$(call tags,server && (network || extra)))
@$(call add,DEFAULT_SERVICES_DISABLE,gpm mdadm smartd)
@$(call add,THE_BRANDING,alterator)
@$(call set,BRANDING,alt-workstation) ### conflicts w/alt-sisyphus
distro/.e2k-installer-sysv: distro/.e2k-installer-base +sysvinit; @:
distro/.e2k-installer: distro/.e2k-installer-base +systemd; @:
distro/e2k-801-builder: distro/.e2k-installer-sysv \
use/e2k/install2/801 use/dev/groups/builder; @:
distro/alt-jeos-401: distro/.e2k-installer-sysv use/e2k/install2/401; @:
distro/alt-jeos-801: distro/.e2k-installer-sysv use/e2k/install2/801; @:
distro/alt-jeos-101: distro/.e2k-installer-sysv use/e2k/install2/101; @:
distro/e2k-101-mate: distro/.e2k-installer use/e2k/101 \
mixin/e2k-desktop mixin/e2k-mate
@$(call add,THE_PACKAGES,LibreOffice-integrated LibreOffice-gnome)
@$(call add,THE_PACKAGES,LibreOffice-langpack-ru)
distro/e2k-4xx-installer: distro/.e2k-installer-sysv use/e2k/install2/4xx
@$(call set,INSTALLER,altlinux-server)
@$(call add,BASE_PACKAGES,make-initrd-mdadm make-initrd-lvm)
distro/.e2k-installer-mate: distro/.e2k-installer \
mixin/e2k-desktop mixin/e2k-mate; @:
endif

View File

@@ -1,12 +0,0 @@
# Education Set
ifeq (distro,$(IMAGE_CLASS))
distro/education-junior: distro/.installer use/slinux/full \
use/l10n/default/ru_RU +vmguest
@$(call set,INSTALLER,junior)
@$(call set,BRANDING,school-junior)
@$(call set,META_VOL_SET,Education Junior)
@$(call add,THE_LISTS,education/desktop)
endif

View File

@@ -1,6 +1,6 @@
ifeq (distro,$(IMAGE_CLASS))
distro/homeros-mini: distro/.live-base use/live/textinstall \
use/homeros use/speech/en use/isohybrid; @:
distro/homeros-mini: distro/.live-base use/live/textinstall use/homeros; @:
endif

View File

@@ -1,145 +1,94 @@
# live images
ifeq (distro,$(IMAGE_CLASS))
distro/dos: distro/.boot use/dos use/syslinux/ui/menu
@$(call set,RELNAME,ALT FreeDOS)
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu use/stage2/cifs \
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu \
use/efi/signed use/efi/refind use/efi/shell; @:
distro/rescue-remote: distro/.base use/rescue/base use/stage2/net-eth
@$(call set,SYSLINUX_CFG,rescue_remote)
@$(call set,SYSLINUX_DIRECT,1)
@$(call add,RESCUE_PACKAGES,livecd-net-eth)
distro/syslinux: distro/.boot \
distro/syslinux: distro/.init \
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
distro/.live-x11: distro/.live-base use/live/x11; @:
distro/.live-desktop: distro/.base +live use/live/install use/stage2/net-eth \
use/plymouth/live; @:
use/plymouth/live use/efi; @:
distro/.live-desktop-ru: distro/.live-desktop use/live/ru; @:
distro/.live-kiosk: distro/.base use/live/base use/live/autologin \
use/syslinux/timeout/1 use/cleanup use/stage2/net-eth \
use/fonts/otf/adobe +power
distro/.live-kiosk: distro/.base use/live/base use/live/autologin +power \
use/syslinux/timeout/1 use/cleanup use/stage2/net-eth
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu)
@$(call add,CLEANUP_PACKAGES,'alterator*' 'guile*' 'vim-common')
@$(call set,SYSLINUX_UI,none)
@$(call set,SYSLINUX_CFG,live)
@$(call add,STAGE2_BOOTARGS,quiet)
@$(call add,DEFAULT_SERVICES_DISABLE,rpcbind klogd syslogd)
@$(call add,DEFAULT_SERVICES_DISABLE,consolesaver fbsetfont keytable)
distro/live-builder-mini: distro/.live-base use/dev/builder/base \
use/syslinux/timeout/30 use/isohybrid \
use/stage2/net-eth use/net-eth/dhcp; @:
distro/live-builder-mini: distro/.live-base use/dev/mkimage use/dev \
use/syslinux/timeout/30
@$(call set,KFLAVOURS,$(BIGRAM))
@$(call add,LIVE_LISTS,\
$(call tags,(base || live) && (server || builder)))
@$(call add,LIVE_PACKAGES,livecd-qemu-arch strace)
@$(call add,LIVE_PACKAGES,qemu-user-binfmt_misc)
@$(call add,LIVE_PACKAGES,zsh sudo)
distro/live-builder: distro/live-builder-mini \
use/dev/builder/full use/live/rw +efi; @:
use/live/rw use/live/repo use/dev/repo
@$(call add,MAIN_LISTS,$(call tags,live builder))
@$(call add,MAIN_PACKAGES,syslinux pciids memtest86+ mkisofs)
distro/live-install: distro/.live-base use/live/textinstall; @:
distro/.livecd-install: distro/.live-base use/live/install; @:
distro/live-icewm: distro/.live-desktop use/x11/lightdm/gtk +icewm; @:
distro/live-razorqt: distro/.live-desktop +razorqt; @:
distro/live-tde: distro/.live-desktop-ru use/live/install +tde; @:
distro/live-fvwm: distro/.live-desktop-ru use/x11/lightdm/gtk use/x11/fvwm; @:
distro/live-rescue: distro/live-icewm +efi
distro/live-rescue: distro/live-icewm use/efi
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
@$(call add,LIVE_LISTS,openssh \
$(call tags,(base || extra) && (archive || rescue || network)))
# NB: this one doesn't include the browser, needs to be chosen downstream
distro/.live-webkiosk: distro/.live-kiosk \
use/isohybrid use/live/hooks use/live/ru use/sound \
use/stage2/kms use/x11/xorg
@$(call add,LIVE_LISTS,$(call tags,live desktop))
distro/.live-webkiosk-gtk: distro/.live-webkiosk
distro/.live-webkiosk: distro/.live-kiosk use/live/hooks use/live/ru
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
@$(call add,LIVE_PACKAGES,alsa-utils udev-alsa)
@$(call add,CLEANUP_PACKAGES,'libqt4*' 'qt4*')
# kiosk users rather prefer stability to latest bling
distro/live-webkiosk-mini: distro/.live-webkiosk-gtk \
use/browser/firefox use/browser/firefox/esr use/fonts/otf/mozilla
distro/live-webkiosk-mini: distro/.live-webkiosk
@$(call add,LIVE_PACKAGES,livecd-webkiosk-firefox)
# NB: flash/java plugins are predictable security holes
distro/live-webkiosk-flash: distro/live-webkiosk-mini use/plymouth/live \
use/browser/plugin/flash use/browser/plugin/java +vmguest; @:
distro/live-webkiosk-flash: distro/live-webkiosk-mini use/plymouth/live +vmguest
@$(call add,LIVE_PACKAGES,mozilla-plugin-adobe-flash)
@$(call add,LIVE_PACKAGES,mozilla-plugin-java-1.6.0-sun)
distro/live-webkiosk: distro/live-webkiosk-mini use/live/desktop; @:
distro/live-webkiosk-chromium: distro/.live-webkiosk use/fonts/ttf/google +efi
distro/live-webkiosk-chromium: distro/.live-webkiosk
@$(call add,LIVE_PACKAGES,livecd-webkiosk-chromium)
distro/live-webkiosk-seamonkey: distro/.live-webkiosk use/fonts/ttf/google
@$(call add,LIVE_PACKAGES,livecd-webkiosk-seamonkey)
distro/live-webkiosk-qupzilla: distro/.live-webkiosk use/fonts/otf/mozilla
@$(call add,LIVE_PACKAGES,livecd-webkiosk-qupzilla)
distro/.live-3d: distro/.live-x11 use/x11/3d \
use/x11/lightdm/gtk +icewm +sysvinit
@$(call add,LIVE_PACKAGES,glxgears glxinfo)
distro/live-glxgears: distro/.live-3d; @:
distro/.live-games: distro/.live-kiosk use/x11/3d use/sound \
use/stage2/net-eth use/net-eth/dhcp use/services +efi +sysvinit
@$(call set,KFLAVOURS,un-def)
@$(call add,LIVE_LISTS,$(call tags,xorg misc))
@$(call add,LIVE_PACKAGES,pciutils input-utils glxgears glxinfo)
@$(call add,DEFAULT_SERVICES_DISABLE,rpcbind alteratord messagebus)
@$(call add,SERVICES_DISABLE,livecd-net-eth)
distro/live-flightgear: distro/.live-games
@$(call add,LIVE_PACKAGES,FlightGear)
@$(call add,LIVE_PACKAGES,fgo livecd-fgfs)
distro/live-flightgear: distro/live-icewm use/live/sound use/x11/3d-proprietary
@$(call add,LIVE_PACKAGES,FlightGear fgo input-utils)
@$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html)
distro/live-flightgear-tu154: distro/.live-games
@$(call add,LIVE_PACKAGES,FlightGear-tu154b)
distro/live-gnome: distro/.live-desktop-ru use/systemd use/live/nodm use/x11/3d-proprietary
@$(call add,LIVE_PACKAGES,gnome3-default)
distro/live-0ad: distro/.live-games
@$(call add,STAGE2_BOOTARGS,quiet)
@$(call add,LIVE_PACKAGES,0ad livecd-0ad)
@$(call try,HOMEPAGE,http://play0ad.com/)
distro/live-cinnamon: distro/.live-desktop-ru use/live/autologin \
use/x11/cinnamon use/x11/3d-proprietary; @:
distro/live-gimp: distro/live-icewm use/live/ru
@$(call add,LIVE_LISTS,$(call tags,desktop sane))
distro/live-mate: distro/.live-desktop-ru use/live/nodm use/x11/3d-free
@$(call add,LIVE_LISTS,openssh $(call tags,(desktop || mobile) && mate))
@$(call set,KFLAVOURS,un-def) # the newest one
distro/live-e17: distro/.live-desktop-ru use/live/autologin \
use/x11/e17 use/x11/gdm2.20; @:
distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru
@$(call add,LIVE_PACKAGES,gimp tintii immix fim)
@$(call add,LIVE_PACKAGES,darktable geeqie rawstudio ufraw)
@$(call add,LIVE_PACKAGES,cvltonemap darktable geeqie rawstudio ufraw)
@$(call add,LIVE_PACKAGES,macrofusion python-module-pygtk-libglade)
@$(call add,LIVE_PACKAGES,qtfm openssh-clients rsync usbutils)
@$(call add,LIVE_PACKAGES,qtfm openssh-clients rsync)
@$(call add,LIVE_PACKAGES,design-graphics-sisyphus2)
distro/live-robo: distro/live-icewm +robotics use/live/ru; @:
# NB: use/browser won't do as it provides a *single* browser ATM
distro/live-privacy: distro/.base +power +efi +systemd +vmguest \
use/live/base use/live/privacy use/live/ru \
use/x11/xorg use/x11/lightdm/gtk use/x11/mate use/x11-autologin \
use/browser/firefox/esr use/browser/firefox/i18n use/sound \
use/fonts/otf/adobe use/fonts/otf/mozilla \
use/fonts/ttf/google use/fonts/ttf/redhat
@$(call set,KFLAVOURS,un-def)
@$(call add,LIVE_LISTS,$(call tags,base l10n))
@$(call add,LIVE_LISTS,$(call tags,archive extra))
@$(call add,LIVE_PACKAGES,chromium gedit mc-full pinta xchm livecd-ru)
@$(call add,LIVE_PACKAGES,LibreOffice-langpack-ru java-1.8.0-openjdk)
@$(call add,LIVE_PACKAGES,mate-document-viewer-caja)
@$(call add,LIVE_PACKAGES,mate-document-viewer-djvu)
@$(call add,LIVE_PACKAGES,cups system-config-printer livecd-admin-cups)
@$(call add,LIVE_KMODULES,staging)
@$(call add,DEFAULT_SERVICES_ENABLE,cups)
@$(call add,EFI_BOOTARGS,live_rw)
distro/live-privacy-dev: distro/live-privacy use/live/rw use/live/repo \
use/dev/repo use/dev/mkimage use/dev use/control/sudo-su
@$(call add,LIVE_LISTS,$(call tags,(base || live) && builder))
@$(call add,MAIN_LISTS,$(call tags,live builder))
@$(call add,MAIN_PACKAGES,syslinux mkisofs)
distro/live-sugar: distro/.live-desktop-ru use/x11/sugar; @:
endif

View File

@@ -1,53 +0,0 @@
# shared across all supported arches, can be complemented per arch
mixin/alt-workstation: workstation_groups = $(addprefix workstation/,\
10-office 20-networking 30-multimedia 40-virtualization 50-publishing \
agents emulators ganttproject graphics-editing libreoffice \
mate-usershare pidgin raccess scanning scribus sound-editing \
thunderbird vlc freeipa-client)
mixin/alt-workstation: +installer +systemd +pulse +nm \
use/kernel/net use/l10n/default/ru_RU \
use/x11/xorg use/x11-autostart use/x11/gtk/nm \
use/install2/fs use/install2/fat use/install2/vnc \
use/apt-conf/branch use/volumes/regular \
use/fonts/install2 \
use/fonts/otf/adobe use/fonts/otf/mozilla \
use/fonts/ttf/google use/fonts/ttf/google/extra \
use/fonts/ttf/redhat use/fonts/ttf/ubuntu \
use/branding use/control use/services \
use/sound use/xdg-user-dirs \
use/docs/manual use/docs/indexhtml \
use/browser/firefox use/browser/firefox/esr
@$(call set,BRANDING,alt-workstation)
@$(call add,THE_BRANDING,mate-settings)
@$(call add,STAGE1_MODLISTS,stage2-mmc)
@$(call set,INSTALLER,altlinux-desktop)
@$(call add,INSTALL2_PACKAGES,alterator-notes)
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(call add,COMMON_PACKAGES,vim-console)
@$(call add,MAIN_GROUPS,$(workstation_groups))
@$(call add,BASE_LISTS,workstation/base.pkgs)
@$(call add,BASE_LISTS,$(call tags,desktop cups))
@$(call add,LIVE_LISTS,workstation/live.pkgs)
@$(call add,LIVE_LISTS,$(call tags,desktop sane))
@$(call add,LIVE_LISTS,$(call tags,desktop office))
@$(call add,THE_LISTS,workstation/mate)
@$(call add,THE_LISTS,workstation/the.pkgs)
@$(call add,THE_LISTS,$(call tags,regular desktop))
@$(call add,THE_LISTS,$(call tags,base regular))
@$(call add,THE_LISTS,$(call tags,base l10n))
@$(call add,THE_LISTS,$(call tags,base desktop))
@$(call add,THE_KMODULES,staging)
@$(call add,CLEANUP_PACKAGES,xterm)
@$(call set,GLOBAL_LIVE_NO_CLEANUPDB,true)
@$(call add,CONTROL,xdg-user-dirs:enabled)
@$(call add,SERVICES_ENABLE,sshd)
@$(call add,SERVICES_ENABLE,cups smb nmb httpd2 bluetoothd libvirtd)
@$(call add,DEFAULT_SERVICES_ENABLE,fstrim.timer)
@$(call add,DEFAULT_SERVICES_DISABLE,powertop bridge gpm)
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_VOL_SET,ALT)
@$(call set,META_VOL_ID,ALT Workstation)
@$(call set,META_APP_ID,$(DISTRO_VERSION)/$(ARCH))
@$(call set,DOCS,alt-workstation)

View File

@@ -1,105 +0,0 @@
### various mixins with their origin
### desktop.mk
mixin/desktop-installer: +net-eth +vmguest \
use/bootloader/os-prober use/x11-autostart use/fonts/install2 use/sound
@$(call add,BASE_LISTS, \
$(call tags,(base || desktop) && (l10n || network)))
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
### e2k.mk
mixin/e2k-base: use/tty/S0 use/net-eth/dhcp; @:
mixin/e2k-desktop: use/e2k/x11 use/l10n/default/ru_RU \
use/browser/firefox/esr use/browser/firefox/i18n \
use/fonts/otf/adobe use/fonts/otf/mozilla
@$(call add,THE_PACKAGES,xinit xterm mc)
@$(call add,THE_PACKAGES,fonts-bitmap-terminus)
mixin/e2k-livecd-install: use/e2k/x11
@$(call add,THE_PACKAGES,livecd-install alterator-notes)
@$(call add,THE_PACKAGES,fdisk hdparm rsync openssh vim-console)
@$(call add,THE_PACKAGES,apt-repo)
mixin/e2k-mate: use/e2k/x11 use/x11/xorg use/fonts/install2 \
use/deflogin/live use/deflogin/xgrp \
use/x11/mate use/x11/lightdm/slick \
use/fonts/otf/adobe use/fonts/otf/mozilla \
use/fonts/ttf/google use/fonts/ttf/redhat
@$(call set,INSTALLER,altlinux-desktop)
@$(call add,THE_BRANDING,mate-settings)
@$(call add,THE_BRANDING,alterator)
@$(call add,THE_BRANDING,graphics)
@$(call add,THE_PACKAGES,setup-mate-terminal)
@$(call add,THE_PACKAGES,setup-mate-nocomposite)
@$(call add,THE_PACKAGES,alterator-standalone)
@$(call add,THE_PACKAGES,terminfo-extra)
@$(call add,THE_PACKAGES,ethtool net-tools ifplugd)
@$(call add,THE_PACKAGES,zsh bash-completion)
### regular.mk
# common WM live/installer bits
mixin/regular-desktop: use/x11/xorg +alsa use/xdg-user-dirs
@$(call add,THE_PACKAGES,pam-limits-desktop beesu)
@$(call add,THE_PACKAGES,installer-feature-desktop-other-fs-stage2)
@$(call add,THE_PACKAGES,alterator-notes dvd+rw-tools)
@$(call add,THE_BRANDING,alterator graphics indexhtml notes)
@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
@$(call set,THE_IMAGEWRITER,imagewriter)
mixin/regular-wmaker: use/efi/refind use/syslinux/ui/gfxboot \
use/fonts/ttf/redhat use/x11/wmaker
@$(call add,LIVE_PACKAGES,livecd-install-wmaker)
@$(call add,LIVE_PACKAGES,installer-feature-no-xconsole-stage3)
@$(call add,MAIN_PACKAGES,wmgtemp wmhdaps wmpomme wmxkbru xxkb)
# gdm2.20 can reboot/halt with both sysvinit and systemd, and is slim
mixin/regular-gnustep: use/x11/gnustep use/x11/gdm2.20 use/mediacheck \
use/browser/firefox/classic
@$(call add,THE_BRANDING,graphics)
mixin/regular-xfce: use/x11/xfce use/x11/gtk/nm +nm \
use/fonts/ttf/redhat use/fonts/ttf/google/extra; @:
mixin/regular-xfce-sysv: use/init/sysv/polkit use/deflogin/sysv/nm \
use/x11/lightdm/gtk \
use/browser/palemoon/i18n \
use/fonts/otf/adobe use/fonts/otf/mozilla
@$(call add,THE_PACKAGES,pnmixer pm-utils elinks mpg123)
@$(call add,THE_PACKAGES,alsa-oss ossp whdd wget cdrkit)
@$(call add,THE_PACKAGES,xscreensaver)
mixin/regular-lxde: use/x11/lxde use/x11/gtk/nm use/im +nm
@$(call add,LIVE_LISTS,$(call tags,desktop gvfs))
@$(call add,THE_PACKAGES,qasmixer qpdfview)
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
mixin/regular-tde: +tde \
use/syslinux/ui/gfxboot use/browser/firefox/classic use/fonts/ttf/redhat
@$(call add,THE_PACKAGES_REGEXP,kdeedu-kalzium.* kdeedu-ktouch.*)
@$(call add,DEFAULT_SERVICES_DISABLE,upower bluetoothd)
mixin/regular-lxqt: use/x11/lxqt use/x11/sddm \
use/browser/falkon use/x11/gtk/nm +nm +plymouth
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
# NB: never ever use/syslinux/ui/gfxboot here as gfxboot mangles
# kernel cmdline resulting in method:disk instead of method:cdrom
# which will change propagator's behaviour to probe additional
# filesystems (ro but no loop) thus potentially writing to
# an unrecovered filesystem's journal
mixin/regular-rescue: use/rescue use/isohybrid use/luks use/branding \
use/syslinux/ui/menu use/syslinux/timeout/600 \
use/firmware/qlogic test/rescue/no-x11 +sysvinit; @:
### vm.mk
mixin/cloud-init:
@$(call add,BASE_PACKAGES,cloud-init)
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-config cloud-final)
@$(call add,DEFAULT_SERVICES_ENABLE,cloud-init cloud-init-local)
mixin/opennebula-context:
@$(call add,BASE_PACKAGES,opennebula-context)
@$(call add,DEFAULT_SERVICES_ENABLE,one-context-local one-context)
mixin/icewm: use/x11/lightdm/gtk +icewm; @:

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

@@ -0,0 +1,20 @@
# p7 base kits
ifeq (distro,$(IMAGE_CLASS))
mixin/p7:
@$(call set,BRANDING,altlinux-starterkit)
### 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

View File

@@ -1,60 +0,0 @@
# p8 base kits
mixin/p8: use/browser/firefox/esr
@$(call set,BRANDING,alt-starterkit)
@$(call set,IMAGE_FLAVOUR,$(subst alt-p8-,,$(IMAGE_NAME)))
@$(call set,META_VOL_ID,ALT p8 $$(IMAGE_FLAVOUR)/$(ARCH))
# missing in sisyphus but not in p8
mixin/p8/unikey:
@$(call add,THE_PACKAGES,ibus-unikey)
ifeq (distro,$(IMAGE_CLASS))
distro/alt-p8-cinnamon: distro/regular-cinnamon mixin/p8 mixin/p8/unikey; @:
distro/alt-p8-icewm: distro/regular-icewm mixin/p8; @:
distro/alt-p8-gnome3: distro/regular-gnome3 mixin/p8; @:
distro/alt-p8-gnustep: distro/regular-gnustep mixin/p8; @:
distro/alt-p8-kde4: distro/regular-kde4 mixin/p8; @:
distro/alt-p8-kde5: distro/regular-kde5 mixin/p8; @:
distro/alt-p8-lxde: distro/regular-lxde mixin/p8 mixin/p8/unikey; @:
distro/alt-p8-lxde-sysv: distro/regular-lxde-sysv mixin/p8; @:
distro/alt-p8-lxqt: distro/regular-lxqt mixin/p8; @:
distro/alt-p8-lxqt-sysv: distro/regular-lxqt-sysv mixin/p8; @:
distro/alt-p8-mate: distro/regular-mate mixin/p8; @:
distro/alt-p8-rescue: distro/regular-rescue mixin/p8; @:
distro/alt-p8-tde: distro/regular-tde mixin/p8; @:
distro/alt-p8-tde-sysv: distro/regular-tde-sysv mixin/p8; @:
distro/alt-p8-wmaker: distro/regular-wmaker mixin/p8; @:
distro/alt-p8-xfce: distro/regular-xfce mixin/p8; @:
distro/alt-p8-xfce-sysv: distro/regular-xfce-sysv mixin/p8; @:
distro/alt-p8-enlightenment: distro/regular-enlightenment mixin/p8; @:
distro/alt-p8-sysv-tde: distro/regular-sysv-tde mixin/p8; @:
distro/alt-p8-sysv-xfce: distro/regular-sysv-xfce mixin/p8; @:
distro/alt-p8-jeos: distro/regular-jeos mixin/p8; @:
distro/alt-p8-jeos-ovz: distro/regular-jeos-ovz mixin/p8; @:
distro/alt-p8-server: distro/regular-server mixin/p8; @:
distro/alt-p8-server-ovz: distro/regular-server-ovz mixin/p8; @:
distro/alt-p8-server-hyperv: distro/regular-server-hyperv mixin/p8; @:
distro/alt-p8-server-samba4: distro/regular-server-samba4 mixin/p8; @:
distro/alt-p8-server-openstack: distro/regular-server-openstack mixin/p8; @:
distro/alt-p8-server-pve: distro/regular-server-pve mixin/p8; @:
distro/alt-p8-builder: distro/regular-builder mixin/p8; @:
distro/alt-p8-engineering: distro/regular-engineering mixin/p8; @:
endif
ifeq (ve,$(IMAGE_CLASS))
ve/alt-p8-ovz-generic: ve/generic mixin/p8; @:
ve/docker-p8: ve/docker; @:
@$(call set,BRANDING,alt-starterkit)
endif
ifeq (vm,$(IMAGE_CLASS))
vm/alt-p8-vm-net: vm/net mixin/p8; @:
vm/alt-p8-cloud: vm/cloud-systemd mixin/p8; @:
vm/alt-p8-opennebula: vm/opennebula-systemd mixin/p8; @:
endif

View File

@@ -1,311 +1,82 @@
# regular build/usage images
ifeq (distro,$(IMAGE_CLASS))
# common ground (really lowlevel)
distro/.regular-bare: distro/.base +net-eth use/kernel/net use/docs/license
# common ground
distro/.regular-bare: distro/.base +wireless use/efi/signed \
use/memtest use/stage2/net-eth use/kernel/net
@$(call try,SAVE_PROFILE,yes)
# base target (for most images)
distro/.regular-base: distro/.regular-bare use/vmguest use/memtest +efi
@$(call add,STAGE1_MODLISTS,stage2-mmc)
# graphical target (not enforcing xorg drivers or blobs)
distro/.regular-x11: distro/.regular-base +vmguest +wireless \
use/stage2/cifs use/live/rw use/live/x11 use/live/repo \
use/live/install use/live/suspend use/browser/firefox/live \
use/browser/firefox/i18n use/browser/firefox/h264 \
use/branding use/x11/wacom use/x11/amdgpu \
use/ntp/client use/services/lvm2-disable \
use/luks use/volumes/regular
@$(call add,THE_PACKAGES,disable-usb-autosuspend)
@$(call add,LIVE_PACKAGES,btrfs-progs)
# WM base target
distro/.regular-base: distro/.regular-bare +vmguest +live \
use/live/ru use/live/install use/live/repo use/live/rw \
use/luks use/x11/3d-free use/branding
@$(call add,LIVE_LISTS,$(call tags,(base || desktop) && regular))
@$(call add,LIVE_LISTS,$(call tags,base rescue))
@$(call add,LIVE_PACKAGES,gpm livecd-install-apt-cache)
@$(call add,DEFAULT_SERVICES_DISABLE,gpm powertop)
@$(call add,EFI_BOOTARGS,live_rw)
# WM base target
distro/.regular-wm: distro/.regular-x11 mixin/regular-desktop; @:
@$(call add,LIVE_PACKAGES,installer-feature-desktop-other-fs-stage2)
@$(call add,THE_BRANDING,indexhtml notes alterator)
@$(call add,THE_BRANDING,graphics)
# DE base target
# TODO: use/plymouth/live when luks+plymouth is done, see also #28255
distro/.regular-desktop: distro/.regular-wm \
use/syslinux/ui/gfxboot use/firmware/laptop use/efi/refind +systemd
distro/.regular-desktop: distro/.regular-base \
use/systemd use/syslinux/ui/gfxboot use/firmware/laptop use/efi/refind
@$(call add,LIVE_PACKAGES,fuse-exfat)
@$(call add,LIVE_LISTS,domain-client)
@$(call add,THE_BRANDING,bootloader)
@$(call add,THE_PACKAGES,upower bluez)
@$(call add,THE_PACKAGES,vconsole-setup-kludge) #28805
@$(call add,DEFAULT_SERVICES_DISABLE,gssd idmapd krb5kdc rpcbind)
@$(call add,DEFAULT_SERVICES_ENABLE,bluetoothd)
@$(call set,KFLAVOURS,std-def)
distro/.regular-gtk: distro/.regular-desktop use/x11/lightdm/slick +plymouth; @:
distro/.regular-sysv: distro/.regular-wm +sysvinit \
use/init/sysv/consolekit; @:
distro/.regular-sysv-gtk: distro/.regular-sysv use/syslinux/ui/gfxboot \
use/x11/gdm2.20; @:
distro/.regular-gtk: distro/.regular-desktop use/x11/lightdm/gtk +plymouth; @:
distro/.regular-install: distro/.regular-base +installer +sysvinit +power \
use/branding use/bootloader/grub use/luks \
use/install2/fs use/install2/vnc use/install2/repo
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(call add,INSTALL2_PACKAGES,xorg-conf-synaptics)
@$(call add,THE_LISTS,$(call tags,base regular))
@$(call add,INSTALL2_BRANDING,alterator notes)
@$(call add,THE_BRANDING,alterator)
# common base for the very bare distros
distro/.regular-jeos-base: distro/.regular-bare +sysvinit \
use/isohybrid use/branding use/bootloader/grub \
use/install2/repo use/install2/packages \
use/net/etcnet use/power/acpi/button
@$(call set,BOOTVGA,)
@$(call set,INSTALLER,altlinux-generic)
@$(call add,INSTALL2_BRANDING,alterator notes)
@$(call add,THE_BRANDING,alterator) # just to be cleaned up later on
@$(call add,THE_PACKAGES,apt basesystem dhcpcd vim-console)
@$(call add,THE_LISTS,openssh)
# ...and for somewhat bare distros
distro/.regular-jeos: distro/.regular-jeos-base \
use/bootloader/lilo use/syslinux/lateboot.cfg \
use/install2/cleanup/everything use/install2/cleanup/kernel/everything \
use/cleanup/jeos
@$(call add,BASE_KMODULES,guest scsi vboxguest)
@$(call add,BASE_PACKAGES,make-initrd-mdadm cpio)
# NB:
# - stock cleanup is not enough (or installer-common-stage3 deps soaring)
distro/regular-jeos: distro/.regular-jeos use/cleanup/jeos/full \
use/volumes/jeos use/install2/vmguest use/vmguest/base
@$(call add,BASE_PACKAGES,nfs-utils gdisk)
@$(call add,MAIN_PACKAGES,firmware-linux)
@$(call add,CLEANUP_PACKAGES,libffi 'libltdl*')
@$(call add,CLEANUP_PACKAGES,bridge-utils)
@$(call add,DEFAULT_SERVICES_DISABLE,fbsetfont)
@$(call add,STAGE2_BOOTARGS,quiet)
@$(call set,KFLAVOURS,un-def)
# NB: no +efi as it brings in grub2 (no ELILO support for system boot)
distro/regular-jeos-ovz: distro/.regular-jeos \
use/server/ovz-base use/control/server/ldv use/firmware
@$(call add,THE_PACKAGES,ipmitool lm_sensors3 mailx)
distro/.regular-install-x11: distro/.regular-install \
use/install2/suspend mixin/regular-desktop +vmguest +wireless \
use/ntp/client
@$(call set,INSTALLER,altlinux-desktop)
@$(call add,THE_PACKAGES,disable-usb-autosuspend)
@$(call add,THE_LISTS,$(call tags,regular desktop))
# assumes somewhat more experienced user, mostly for sysv variants
distro/.regular-install-x11-full: distro/.regular-install-x11 \
mixin/desktop-installer mixin/regular-desktop use/install2/fs \
use/fonts/otf/adobe use/fonts/otf/mozilla use/fonts/chinese \
use/branding/complete use/branding/slideshow/once \
use/net-eth/dhcp use/efi/refind use/efi/shell use/rescue/base \
use/init/sysv/consolekit
@$(call add,RESCUE_LISTS,$(call tags,rescue misc))
@$(call add,MAIN_PACKAGES,anacron man-whatis usb-modeswitch)
@$(call add,DEFAULT_SERVICES_ENABLE,alteratord)
distro/regular-icewm: distro/.regular-sysv-gtk +icewm \
use/x11/lightdm/slick use/init/sysv/polkit \
use/browser/chromium use/fonts/ttf/redhat use/efi/refind
distro/regular-icewm: distro/.regular-base use/x11/lightdm/gtk +icewm
@$(call add,LIVE_LISTS,$(call tags,regular icewm))
@$(call add,LIVE_PACKAGES,mnt)
@$(call set,KFLAVOURS,un-def)
# wdm can't do autologin so add standalone one for livecd
distro/regular-wmaker: distro/.regular-sysv \
mixin/regular-wmaker use/live/autologin use/browser/palemoon/i18n
@$(call add,LIVE_PACKAGES,wdm wmxkbru)
distro/regular-wmaker: distro/.regular-desktop use/x11/lightdm/gtk \
use/x11/wmaker
@$(call add,LIVE_PACKAGES,livecd-install-wmaker)
@$(call add,LIVE_PACKAGES,xxkb)
distro/regular-gnustep: distro/.regular-sysv \
mixin/regular-wmaker mixin/regular-gnustep; @:
distro/regular-gnustep-systemd: distro/.regular-wm +systemd \
mixin/regular-wmaker mixin/regular-gnustep; @:
distro/regular-gnustep: distro/regular-wmaker use/x11/gnustep +plymouth
@$(call add,THE_BRANDING,graphics)
distro/regular-xfce: distro/.regular-gtk mixin/regular-xfce \
use/x11/xfce/full use/domain-client
@$(call set,KFLAVOURS,un-def)
distro/regular-xfce: distro/.regular-gtk use/x11/xfce; @:
distro/regular-xfce-sysv: distro/.regular-sysv-gtk \
mixin/regular-xfce mixin/regular-xfce-sysv; @:
distro/regular-lxde: distro/.regular-gtk mixin/regular-lxde
@$(call add,THE_PACKAGES,lxde)
distro/regular-lxde-sysv: distro/.regular-sysv-gtk mixin/regular-lxde
@$(call add,THE_PACKAGES,lxde-sysvinit)
distro/regular-lxde: distro/.regular-gtk use/x11/lxde use/fonts/infinality
@$(call add,LIVE_LISTS,$(call tags,desktop nm))
distro/regular-xmonad: distro/.regular-gtk use/x11/xmonad
@$(call add,LIVE_PACKAGES,livecd-regular-xmonad)
distro/regular-mate: distro/.regular-gtk +nm \
use/x11/mate use/fonts/ttf/google use/domain-client
@$(call add,LIVE_LISTS,$(call tags,mobile mate))
@$(call add,LIVE_LISTS,$(call tags,base smartcard))
distro/regular-mate: distro/.regular-gtk
@$(call add,LIVE_LISTS,$(call tags,(desktop || mobile) && (mate || nm)))
distro/regular-mate-sysv: distro/.regular-sysv-gtk use/x11/mate +nm
@$(call add,LIVE_LISTS,$(call tags,mobile mate))
distro/regular-e17: distro/.regular-gtk use/x11/e17 use/fonts/infinality
@$(call add,LIVE_PACKAGES,xterm)
distro/regular-enlightenment: distro/.regular-gtk use/x11/enlightenment; @:
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-enlightenment-sysv: distro/.regular-sysv-gtk \
use/x11/enlightenment
@$(call set,META_VOL_ID,ALT regular-E-SysV/$(ARCH)) # see also #28271
distro/regular-gnome3: distro/.regular-desktop use/x11/gnome3 +plymouth; @:
distro/regular-cinnamon: distro/.regular-gtk use/x11/cinnamon \
use/fonts/ttf/google use/net/nm/mmgui use/im
@$(call add,THE_PACKAGES,thunderbird-ru) ### l10n
distro/regular-tde: distro/.regular-desktop +tde +plymouth
@$(call add,LIVE_LISTS,$(call tags,desktop nm))
@$(call add,LIVE_PACKAGES,kdegames kdeedu)
# not .regular-gtk due to gdm vs lightdm
distro/regular-gnome3: distro/.regular-desktop +plymouth +nm \
use/x11/gnome3 use/browser/epiphany use/fonts/ttf/redhat
distro/regular-kde4: distro/.regular-desktop use/x11/kde4 use/x11/kdm4 \
use/fonts/zerg +plymouth
@$(call add,LIVE_LISTS,$(call tags,regular kde4))
distro/regular-razorqt: distro/.regular-desktop +razorqt +plymouth; @:
distro/regular-sugar: distro/.regular-gtk use/x11/sugar; @:
distro/regular-rescue: distro/.regular-bare use/rescue/rw \
use/syslinux/ui/menu use/hdt use/efi/refind
@$(call set,KFLAVOURS,un-def)
@$(call add,LIVE_PACKAGES,livecd-gnome3-setup-done)
@$(call add,LIVE_PACKAGES,gnome3-regular xcalib templates)
@$(call add,LIVE_PACKAGES,gnome-flashback screenpen)
@$(call add,DEFAULT_SERVICES_ENABLE,gdm)
distro/regular-tde: distro/.regular-desktop mixin/regular-tde +plymouth \
use/x11/gtk/nm use/net/nm/mmgui
distro/regular-tde-sysv: distro/.regular-sysv mixin/regular-tde \
use/net-eth/dhcp use/efi/refind; @:
distro/regular-kde4: distro/.regular-desktop use/x11/kde4/nm use/x11/kdm4 \
use/browser/falkon use/fonts/zerg use/domain-client \
use/net/nm/mmgui +pulse +plymouth
@$(call add,THE_LISTS,$(call tags,regular kde4))
@$(call add,THE_PACKAGES,fonts-ttf-levien-inconsolata)
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
@$(call add,DEFAULT_SERVICES_ENABLE,prefdm)
distro/regular-lxqt: distro/.regular-desktop mixin/regular-lxqt; @:
distro/regular-lxqt-sysv: distro/.regular-sysv mixin/regular-lxqt \
use/net-eth/dhcp use/efi/refind; @:
distro/regular-kde5: distro/.regular-desktop use/browser/falkon \
use/x11/kde5 use/x11/sddm use/domain-client \
use/fonts/ttf/google use/fonts/ttf/redhat use/fonts/zerg \
+nm +pulse +plymouth
@$(call add,THE_PACKAGES,kde5-telepathy falkon-kde5)
@$(call set,THE_IMAGEWRITER,rosa-imagewriter)
distro/regular-rescue: distro/.regular-base mixin/regular-rescue \
use/rescue/rw use/efi/refind use/efi/shell use/efi/memtest86 \
use/hdt use/syslinux/rescue_fm.cfg use/syslinux/rescue_remote.cfg \
use/mediacheck +wireless
@$(call set,KFLAVOURS,un-def)
@$(call add,RESCUE_PACKAGES,gpm livecd-net-eth)
@$(call add,RESCUE_LISTS,$(call tags,base bench))
@$(call add,RESCUE_LISTS,$(call tags,network security))
distro/regular-rescue-netbootxyz: distro/.regular-bare mixin/regular-rescue
@$(call set,RELNAME,en.altlinux.org/rescue (netboot.xyz edition))
@$(call set,META_VOL_ID,ALT Rescue)
@$(call set,META_APP_ID,$(ARCH))
distro/regular-sysv-tde: distro/.regular-install-x11-full mixin/regular-tde
@$(call add,THE_LISTS,$(call tags,base desktop))
@$(call add,THE_LISTS,$(call tags,regular tde))
@$(call add,THE_PACKAGES,kpowersave)
distro/regular-sysv-xfce: distro/.regular-install-x11-full \
mixin/regular-xfce mixin/regular-xfce-sysv
@$(call add,THE_PACKAGES,nload)
@$(call add,MAIN_PACKAGES,caffeine-ng sysstat leafpad)
distro/.regular-server-base: distro/.regular-install \
use/server/base use/stage2/kms
@$(call add,THE_LISTS,$(call tags,server && (regular || network)))
@$(call set,INSTALLER,altlinux-server)
@$(call add,SYSTEM_PACKAGES,multipath-tools)
@$(call add,INSTALL2_PACKAGES,installer-feature-multipath)
distro/.regular-server-systemd: distro/.regular-server-base +systemd; @:
distro/.regular-server: distro/.regular-server-base \
use/server/mini use/firmware/qlogic use/rescue/base \
use/ntp/client use/cleanup/libs
@$(call add,RESCUE_LISTS,$(call tags,rescue misc))
@$(call add,MAIN_PACKAGES,aptitude)
@$(call add,CLEANUP_PACKAGES,qt4-common)
@$(call add,DEFAULT_SERVICES_DISABLE,bridge)
distro/.regular-server-managed: distro/.regular-server
@$(call add,THE_PACKAGES,alterator-fbi)
@$(call add,THE_LISTS,$(call tags,server alterator))
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
@$(call add,DEFAULT_SERVICES_DISABLE,ahttpd alteratord)
distro/regular-server: distro/.regular-server-managed \
use/server/groups/base use/dev/groups/builder use/install2/vnc/full
@$(call add,MAIN_GROUPS,server/sambaDC)
@$(call add,MAIN_GROUPS,tools/hyperv)
distro/regular-server-ovz: distro/.regular-server \
use/server/ovz use/server/groups/tools use/cleanup/x11-alterator
@$(call add,MAIN_GROUPS,tools/vzstats)
distro/regular-server-hyperv: distro/.regular-server-managed
@$(call set,KFLAVOURS,un-def)
@$(call add,THE_PACKAGES,hyperv-daemons)
@$(call add,DEFAULT_SERVICES_DISABLE,bridge smartd)
@$(call add,DEFAULT_SERVICES_DISABLE,cpufreq-simple powertop)
distro/.regular-server-openstack: distro/.regular-server-base \
use/firmware/qlogic use/server/groups/openstack
@$(call add,MAIN_GROUPS,tools/ipmi tools/monitoring)
distro/regular-server-openstack: distro/.regular-server-openstack +systemd; @:
@$(call add,THE_PACKAGES,dhcpcd)
distro/regular-server-openstack-sysv: distro/.regular-server-openstack +sysvinit
@$(call add,DEFAULT_SERVICES_DISABLE,lvm2-lvmetad)
distro/regular-server-pve: distro/.regular-server-systemd \
use/kernel/server use/firmware/qlogic +efi
@$(call set,BASE_BOOTLOADER,grub)
@$(call set,INSTALLER,altlinux-server)
@$(call add,INSTALL2_PACKAGES,installer-feature-pve)
@$(call add,THE_PACKAGES,pve-manager nfs-clients su)
@$(call add,THE_PACKAGES,bridge-utils dhcpcd faketime tzdata postfix)
@$(call add,DEFAULT_SERVICES_DISABLE,pve-manager pve-cluster \
pve-firewall pve-ha-crm pve-manager pveproxy pvedaemon \
pvefw-logger pve-ha-lrm pvenetcommit pvestatd spiceproxy)
distro/regular-builder: distro/.regular-bare \
use/dev/builder/full +sysvinit +efi +power \
use/live/base use/live/rw use/live/repo/online use/live/textinstall \
use/isohybrid use/syslinux/timeout/30 \
use/stage2/net-eth use/net-eth/dhcp
@$(call add,LIVE_PACKAGES,cifs-utils elinks lftp openssh wget)
@$(call add,LIVE_PACKAGES,bash-completion gpm screen tmux zsh)
@$(call add,LIVE_PACKAGES,ccache rpm-utils wodim)
@$(call add,DEFAULT_SERVICES_ENABLE,gpm)
distro/regular-server-samba4: distro/.regular-server-managed
@$(call add,THE_LISTS,$(call tags,server && (sambaDC || alterator)))
@$(call add,THE_PACKAGES,alterator-dhcp)
@$(call add,DEFAULT_SERVICES_DISABLE,smbd nmbd winbind)
distro/regular-engineering: distro/regular-lxde use/live/ru
@$(call add,THE_LISTS,$(call tags,engineering desktop))
@$(call add,THE_LISTS,$(call tags,desktop sane))
@$(call add,THE_LISTS,$(call tags,cups desktop))
@$(call add,THE_PACKAGES,libreofficekit LibreOffice-gnome LibreOffice-langpack-ru)
@$(call add,THE_PACKAGES,LibreOffice-mimetypes java)
@$(call add,THE_PACKAGES,gnome-disk-utility)
@$(call add,THE_KMODULES,staging)
@$(call add,DEFAULT_SERVICES_ENABLE,cups)
@$(call add,DEFAULT_SERVICES_ENABLE,ModemManager)
distro/regular-server: distro/.regular-bare +installer \
use/bootloader/grub use/firmware use/server/mini
@$(call add,THE_LISTS,$(call tags,(base || server) && regular))
endif
ifeq (ve,$(IMAGE_CLASS))
ve/docker-sisyphus: ve/docker; @:
endif

View File

@@ -5,25 +5,24 @@ distro/.server-base: distro/.installer use/syslinux/ui/menu use/memtest \
use/cleanup/x11-alterator
@$(call add,BASE_LISTS,server-base openssh)
distro/server-nano: distro/.server-base use/bootloader/lilo +power \
use/install2/cleanup/crypto use/install2/cleanup/vnc
distro/server-nano: distro/.server-base use/bootloader/lilo +power
@$(call add,BASE_LISTS,$(call tags,server network))
@$(call add,BASE_PACKAGES,dhcpcd cpio)
distro/server-mini: distro/.server-base +net-eth \
use/server/mini use/kernel/net use/efi use/power/acpi/button
@$(call set,INSTALLER,altlinux-server)
distro/server-mini: distro/.server-base use/server/mini use/kernel/net \
use/efi use/stage2/net-eth
@$(call add,BASE_PACKAGES,make-initrd-mdadm make-initrd-lvm)
distro/server-mini-systemd-networkd: distro/.server-base \
use/net/networkd +systemd \
use/server/mini use/efi use/firmware
@$(call set,INSTALLER,altlinux-server)
distro/server-ovz: distro/server-mini use/server/ovz use/server/groups/base \
use/install2/net use/hdt use/rescue \
use/firmware/server use/firmware/cpu +wireless; @:
distro/server-zabbix: distro/server-mini use/server/zabbix; @:
distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
use/firmware/server use/firmware/cpu use/power/acpi/button +wireless
@$(call set,STAGE1_KFLAVOUR,std-def)
@$(call set,KFLAVOURS,std-def ovz-el)
@$(call add,MAIN_KMODULES,ipset ipt-netflow opendpi pf_ring)
@$(call add,MAIN_KMODULES,xtables-addons) # t6/branch
@$(call add,MAIN_KMODULES,drbd83 kvm)
@$(call add,BASE_LISTS,ovz-server)
@$(call add,MAIN_GROUPS,dns-server http-server ftp-server kvm-server)
@$(call add,MAIN_GROUPS,ipmi mysql-server dhcp-server mail-server)
@$(call add,MAIN_GROUPS,monitoring diag-tools)
endif

View File

@@ -3,7 +3,7 @@
ifeq (distro,$(IMAGE_CLASS))
distro/live-simply: distro/.livecd-install use/slinux/full
@$(call add,THE_LISTS,slinux/live-install slinux/live)
@$(call add,THE_LISTS,slinux/live-install)
distro/simply: distro/.installer use/slinux/full
@$(call set,INSTALLER,simply-linux)

View File

@@ -3,12 +3,14 @@ ifneq (,$(DEBUG))
ifeq (distro,$(IMAGE_CLASS))
distro/syslinux-auto: distro/.boot use/hdt use/syslinux/timeout/1; @:
distro/syslinux-auto: distro/.init use/hdt use/syslinux/timeout/1; @:
distro/syslinux-noescape: distro/syslinux-auto use/syslinux/noescape.cfg; @:
distro/live-systemd: distro/.base use/live/base +systemd; @:
distro/live-systemd: distro/.base use/live/base use/systemd; @:
distro/live-plymouth: distro/.live-base use/plymouth/live; @:
distro/live-mediacheck: distro/.base use/mediacheck +plymouth; @:
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
distro/live-testserver: distro/live-install use/server/mini
@$(call set,KFLAVOURS,std-def el-smp)
@@ -17,22 +19,15 @@ distro/live-gns3: distro/live-icewm
@$(call add,LIVE_LISTS,gns3)
@$(call add,LIVE_KMODULES,kvm virtualbox)
# NB: requires runtime Server/ServerActive setup in zabbix_agentd.conf
distro/live-zabbix: distro/live-icewm use/net-eth
@$(call add,THE_PACKAGES,zabbix-agent)
@$(call add,DEFAULT_SERVICES_ENABLE,zabbix_agentd)
distro/icewm-efi: distro/icewm use/efi/debug use/firmware
@$(call add,INSTALL2_PACKAGES,strace)
distro/mate-kz: distro/regular-mate
distro/razorqt-kz: distro/regular-razorqt
@$(call set,GLOBAL_BOOT_LANG,kk_KZ)
@$(call add,LIVE_PACKAGES,hunspell-kk)
# a minimalistic systemd-based server installer
distro/server-systemd: distro/server-nano \
use/install2/repo use/cleanup/x11-alterator use/net/networkd +systemd
@$(call add,CLEANUP_PACKAGES,glib2 iw libpython libwireless)
distro/server-systemd: distro/server-mini use/systemd
@$(call set,KFLAVOURS,std-def)
distro/server-test: distro/server-mini use/relname
@$(call set,RELNAME,Test-Server)
@@ -41,39 +36,46 @@ distro/server-test: distro/server-mini use/relname
# NB: doesn't carry stage3 thus cannot use/bootloader
distro/netinst: distro/.base use/install2/net; @:
distro/propagator-test: distro/.base use/mediacheck
@$(call add,STAGE2_BOOTARGS,propagator-debug)
# tiny network-only server-ovz installer (stage2 comes over net too)
distro/server-ovz-netinst: distro/.base sub/stage1 use/stage2 \
use/syslinux/ui/menu use/syslinux/localboot.cfg use/memtest
@$(call add,SYSLINUX_CFG,netinstall2)
distro/desktop-luks: distro/icewm use/luks; @:
distro/desktop-systemd: distro/icewm +systemd; @:
distro/desktop-systemd: distro/icewm use/systemd; @:
distro/desktop-plymouth: distro/icewm +plymouth; @:
distro/live-mate-systemd: distro/live-mate use/systemd use/live/install; @:
distro/server-efi: distro/server-mini use/efi/debug; @:
distro/server-zabbix: distro/server-mini use/server/zabbix use/net-eth
# a crop of images running stuff as PID 1
distro/bash: distro/.base use/pid1
@$(call add,STAGE1_PACKAGES,bash)
@$(call set,PID1_BIN,/bin/bash)
distro/vi: distro/.base use/pid1
@$(call add,STAGE1_PACKAGES,vim-minimal)
@$(call set,PID1_BIN,/bin/vi)
distro/emacs: distro/.base use/pid1
@$(call add,STAGE1_PACKAGES,mg)
@$(call set,PID1_BIN,/usr/bin/mg)
distro/elinks: distro/.base use/pid1/net
@$(call add,STAGE1_PACKAGES,elinks)
@$(call set,PID1_BIN,/usr/bin/elinks)
endif # IMAGE_CLASS: distro
ifeq (ve,$(IMAGE_CLASS))
ifeq (centos,$(REPO))
ve/.centos-base: ve/.bare
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
ve/centos: ve/.centos-base
@$(call add,BASE_PACKAGES,openssh-server)
endif # REPO: centos
ifeq (opensuse,$(REPO))
ve/.opensuse-base: ve/.bare
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
@$(call add,BASE_PACKAGES,aaa_base)
endif # REPO: opensuse
endif # IMAGE_CLASS: ve
ifeq (vm,$(IMAGE_CLASS))
vm/net-static: vm/bare use/net-eth use/net-ssh
@$(call add,NET_ETH,eth0:static:10.0.2.16/24:10.0.2.2)
vm/net-static: vm/bare use/vm-net/static use/vm-ssh
@$(call set,VM_NET_IPV4ADDR,10.0.2.16/24)
@$(call set,VM_NET_IPV4GW,10.0.2.2)
endif # IMAGE_CLASS: vm

View File

@@ -1,43 +0,0 @@
ifeq (ve,$(IMAGE_CLASS))
# no "vzctl enter"
ve/bare: ve/.base +sysvinit; @:
# /dev/pty and friends start here
ve/base: ve/bare use/net-dns/level3
@$(call add,BASE_PACKAGES,interactivesystem)
# a particular package list
ve/ldv: ve/bare use/control/server/ldv
@$(call add,BASE_PACKAGES,xz bzip2 glibc hostinfo less)
@$(call add,BASE_PACKAGES,vim-console netlist rsync time)
@$(call add,BASE_PACKAGES,openssh-blacklist openssh-server)
@$(call add,BASE_PACKAGES,shadow-edit shadow-groups)
ve/docker: ve/.base use/repo; @:
# build environment
ve/builder: ve/base use/dev/builder/base use/repo
@$(call add,BASE_LISTS,openssh)
# this should be more or less convenient
ve/generic: ve/base use/repo
@$(call add,BASE_PACKAGES,vim-console etckeeper apt-rsync)
@$(call add,BASE_LISTS,openssh \
$(call tags,base && (server || network || security || pkg)))
# example of service-specific template
ve/openvpn: ve/bare
@$(call add,BASE_LISTS,$(call tags,server openvpn))
ve/pgsql94: ve/generic
@$(call add,BASE_PACKAGES,postgresql9.4-server)
ve/samba-DC: ve/generic
@$(call add,BASE_PACKAGES,task-samba-dc glibc-locales net-tools)
ve/systemd-bare: ve/.base use/net/networkd +systemd \
use/control/sudo-su use/repo use/net-ssh
@$(call add,BASE_PACKAGES,interactivesystem su)
endif

View File

@@ -1,49 +1,9 @@
# virtual machines
ifeq (vm,$(IMAGE_CLASS))
# NB: interactivesystem pulls in network-config-subsystem anyways
vm/bare: vm/.bare +sysvinit
@$(call add,BASE_PACKAGES,apt)
vm/systemd: vm/.bare +systemd
@$(call add,BASE_PACKAGES,apt)
# handle ROOTPW (through deflogin)
vm/net: vm/bare use/net-eth/dhcp use/net-ssh \
use/repo use/control/sudo-su use/deflogin
@$(call add,BASE_PACKAGES,su)
vm/systemd-net: vm/systemd use/net-eth/networkd-dhcp use/net-ssh \
use/repo use/control/sudo-su use/deflogin
@$(call add,BASE_PACKAGES,su)
# vm/net or vm/systemd-net
vm/cloud-systemd: vm/systemd-net mixin/cloud-init use/vmguest/kvm
@$(call add,DEFAULT_SERVICES_DISABLE,consolesaver)
vm/cloud-sysv: vm/net mixin/cloud-init use/vmguest/kvm use/power/acpi/button; @:
# vm with OpenNebula contextualization package (with empty network config)
vm/opennebula-systemd: vm/systemd use/net/networkd use/net-ssh \
use/vmguest/kvm mixin/opennebula-context \
use/repo use/control/sudo-su use/deflogin
@$(call add,BASE_PACKAGES,su)
vm/net: vm/bare use/vm-net/dhcp use/vm-ssh; @:
# NB: use/x11 employs some installer-feature packages
vm/.desktop-bare: vm/net use/x11/xorg use/cleanup/installer use/repo; @:
vm/.desktop-base: vm/.desktop-bare \
use/deflogin/altlinuxroot use/x11-autologin; @:
vm/icewm: vm/.desktop-base mixin/icewm; @:
vm/icewm-setup: vm/.desktop-bare mixin/icewm use/oem use/x11-autostart
@$(call set,BRANDING,simply-linux)
@$(call add,THE_BRANDING,graphics)
@$(call add,THE_LISTS,$(call tags,base l10n))
# some arbitrary gigabyte
vm/vagrant-base: vm/net use/vagrant
@$(call set,VM_SIZE,10737418240)
vm/icewm: vm/net use/cleanup/installer use/repo +icewm; @:
endif

View File

@@ -8,9 +8,6 @@ ifdef DEBUG
VERBOSE = --verbose
endif
# avoid common DEBUG for the time being
-include $(HOME)/.mkimage/profiles.mk
PROJECT = mkimage-profiles
TOPLEVEL_DOC = $(PROJECT).asciidoc
RESOURCE_FILES = /etc/asciidoc
@@ -27,32 +24,13 @@ COMMON_ARGS = -d book -a lang="$L" $(DEST) $(VERBOSE) $(TOPLEVEL_DOC)
HTML_ARGS = -a data-uri --icons -r $(RESOURCE_FILES) -r . \
--xsltproc-opts='$(XSLT_ARGS)' $(COMMON_ARGS)
# most convenient deliverables
DOCS_OUT = mkimage-profiles.7 $(PROJECT).pdf $(PROJECT).html docbook-xsl.css
# intermediate files
DOCS_TMP = $(PROJECT).fo $(PROJECT).xml
.PHONY: all prep chunked xhtml pdf clean
all: man chunked xhtml pdf
# NB: destination defined externally
publish: all
@if [ -n "$(DOCS_PUBLISH)" ]; then \
rsync -qa $(DOCS_OUT) "$(DOCS_PUBLISH)"; \
fi
all: chunked xhtml pdf
prep:
@if [ -n "$(BUILDDIR)" ]; then mkdir -p "$(BUILDDIR)"; fi
man:
@VERSION="$$(sed -rn 's/^Version: ([0-9.]+).*$$/\1/p' \
../.gear/mkimage-profiles.spec)"; \
sed -e "s,@VERSION@,$$VERSION,g" \
< mkimage-profiles.7.in \
> mkimage-profiles.7
chunked xhtml: prep
@echo "** building $@ book"
@$(A2X) -f $@ $(HTML_ARGS)
@@ -68,4 +46,5 @@ pdf: prep
clean:
@echo "** cleaning up"
@if [ -d "$(BUILDDIR)" ]; then cd "$(BUILDDIR)"; fi; \
rm -rf $(DOCS_OUT) $(DOCS_TMP) $(PROJECT).chunked/ .fop.xconf
rm -f $(PROJECT).pdf $(PROJECT).html docbook-xsl.css; \
rm -rf $(PROJECT).chunked/

View File

@@ -1,63 +0,0 @@
== Архитектурно-зависимые фрагменты ==
=== Makefile ===
Достаточно воспользоваться ifeq/ifneq, сравнивая $(ARCH) с нужным:
ifeq (x86_64,$(ARCH))
EFI_LISTS := $(call tags,base efi)
endif
При необходимости сравнить со списком ("любой x86") можно сделать так:
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
use/x11/xorg: use/x11 use/x11/intel use/firmware
else
use/x11/xorg: use/x11
endif
В рецептах (shell-часть Makefile) используйте $(ARCH) или $$ARCH.
=== скрипты ===
В скриптовых хуках ({image-,}scripts.d/*) проверяйте $GLOBAL_ARCH.
=== списки пакетов, профили групп ===
Бывает так, что в списке пакетов есть смысл упоминать какой-либо из них
только для определённой архитектуры (например, wine или steam); в таких
случаях можно воспользоваться механизмом подстановки, который пословно
обрабатывает списки и в случае наличия суффикса @ARCH оставляет только
слова, в которых этот суффикс соответствует заданной архитектуре сборки.
Например, для Simply Linux в mkimage-profiles-desktop есть строчки:
@I586_ONLY@haspd
@X86_64_ONLY@i586-haspd
В случае mkimage-profiles они должны выглядеть так:
haspd@i586
i586-haspd@x86_64
или упрощённо (с версии 1.2.12):
haspd@IA32
Для преобразования можно воспользоваться следующей командой:
sed -r -e 's/@I586_ONLY@([^\t ]+)/\1@i586/g' \
-e 's/@X86_64_ONLY@([^\t ]+)/\1@x86_64/g'
При необходимости добавить пакет только на x86-архитектурах (неважно,
i586 или x86_64) можно воспользоваться макросом X86 (с версии 1.2.12):
xorg-drv-intel@X86
Аналогичная функциональность реализована для профилей установки.
=== загрузчики ===
Как правило, сперва понадобится доработка mkimage -- см. скрипты
tools/mki-pack-*boot -- и лишь затем профиля; см. тж. lib/boot.mk
и фичу pack.

View File

@@ -4,7 +4,7 @@
других частей mkimage-profiles либо содержание переменных.
NB: пути приводятся от верхнего уровня; проект в целом предполагает
наличие ALT 8.0+ и GNU make 3.82+ (на которых и разрабатывается),
ALT Linux 6.0+ и GNU make 3.81+ (на которых и разрабатывается),
но может быть портирован вместе с mkimage. Если что-либо не работает
или не собирается, стоит проверить на Sisyphus (mkimage, make, hasher,
собственно пакетная база), поскольку именно на нём происходит основная
@@ -16,20 +16,18 @@ NB: пути приводятся от верхнего уровня; проек
** ожидает, что каждая подлежащая трассированию цель каждого
makefile при сборке конфигурации образа содержит непустой
recipe -- хотя бы "; @:" -- т.к. зависит от запуска $(SHELL)
** трассировка выполняется при REPORT=1 для формирования графа
зависимостей между промежуточными целями сборки конечного образа
** характерный признак пропуска -- разрыв графа (report-targets.png)
* pkg.in/lists/Makefile
** ожидает, что названия списков пакетов указываются в переменных
** ожидает, что названия пакаджлистов указываются в переменных
вида *_LISTS, и копирует в генерируемый профиль только их
** если задать имя файла списка пакетов непосредственно в Makefile
** если задать имя файла пакаджлиста непосредственно в Makefile
субпрофиля, он не будет скопирован
** характерное сообщение об ошибке:
E: Couldn't find package
* features.in/kernel/stage1/scripts.d/80-make-initrd
* features.in/stage2/stage1/scripts.d/02-kdefault
* features.in/stage2/stage1/scripts.d/03-test-kernel
* sub.in/stage1/Makefile
** ожидают, что в stage1 попадёт строго одно ядро сообразно
@@ -37,7 +35,6 @@ NB: пути приводятся от верхнего уровня; проек
в KFLAVOURS)
** если добавить какой-либо kernel-image в STAGE1_PACKAGES*,
результат может быть неожиданным
** обратите внимание: bin/tar2fs умеет несколько ядер
** вероятная ошибка: незагрузка полученного squashfs
* features.in/install2/install2/stage2cfg.mk

View File

@@ -1,4 +1,4 @@
== Ловля блох ==
== Ловля плюх ==
При отладке сборки конфигурации или самого дистрибутива
могут оказаться полезными следующие средства:
@@ -16,7 +16,6 @@
этого коммита;
** содержит список конфигурационных переменных и их конечных значений,
созданный на основании distcfg.mk (см. тж. build/vars.mk)
* REPORT=1 включает генерацию дополнительного вывода:
** build/reports/targets.png -- граф зависимостей между целями
** build/reports/scripts.log -- порядок запуска скриптовых хуков

View File

@@ -14,8 +14,7 @@
удобно для анализа и обновления (и в отличие от _m-p-d_ -- нет
вынужденной необходимости либо контролировать включение нужных
фич "вручную" в скриптах по косвенным признакам, либо выносить
их в пакеты installer-feature-*); также возможно добиться большей
степени интеграции по данным (например, язык gfxboot и LiveCD).
их в пакеты installer-feature-*).
Создание и упаковку installer-feature-* можно рекомендовать, если:

View File

@@ -1,141 +0,0 @@
.\" Copyright (C) 2010-2016 Michael Shigorin <mike@altlinux.org>
.\"
.\" Documentation for mkimage-profiles project.
.\"
.\" This file is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
.\"
.TH "MKIMAGE-PROFILES" "9" "June 2017" "mkimage-profiles @VERSION@" "ALT"
.SH "NAME"
mkimage-profiles \- ALT distribution family metaprofile
.SH "SYNOPSIS"
.B make
.IR "" [ options ]
.I "" [ <goal> ... ]
.SH "DESCRIPTION"
.BR mkimage-profiles
builds operating environment images based on ALT package repositories.
Run
.BR make\ help
to obtain list of available goals.
.SH "PREREQUISITES"
mkimage-profiles only needs
.BR make(1)
and
.BR rsync(1)
to generate the build profile;
.BR mkimage
is used to actually run the build (which involves
.BR hasher(7)
quite a few times).
.BR git(1)
will be used if available so that the generated profile is an annotated
git repository;
.BR graphviz(1)
can be used to obtain build dependency graphs.
.SH "RATIONALE"
Long time ago when Linux distribution images were worked upon by hand
there was little need for generalization and sharing the common base.
Building several "generic" ALT{, Linux} distros in a team and maintaining
their educational flavours at the same time proved the need to be able
to describe what's common and what's different in a way that doesn't
resemble more or less complete forks.
Enter mkimage-profiles: choose what's closest to your dream image
and add what's missing, or roll on your own using the rich library
of existing parts and bits.
.SH "REQUIREMENTS"
The next-generation image build system for ALT must:
.TP
1.
provide reasonable means to describe common/differing aspects within
image families;
.TP
2.
ensure reproducible build results;
.TP
3.
support distribution family maintenance workflows
observed in the wild (e.g., with
.BR mkimage-profiles-desktop
or earlier);
.TP
4.
help out with diagnosing build problems.
.SH "ARCHITECTURE"
.BR mkimage-profiles
implements four steps to achieve the above goals:
.TP
1.
initialize the off-tree mkimage profile (BUILDDIR);
.TP
2.
build up distribution's configuration there;
.TP
3.
copy over the needed subprofiles/features/lists/groups;
.TP
4.
build the ISO/VE/VM image.
.PP
This results in a compact "as-needed" style per-image profile that can
be actually studied in a short amount of time and might get included
into the generated image as a tarball for better reproducibility.
.SH "EXAMPLES"
.BR make\ syslinux.iso
should result in a minimal bootable ISO image.
Another example is Regular Builds project yielding weekly images:
.BR http://en.altlinux.org/regular
.SH "AUTHOR"
Written by Michael Shigorin <mike@altlinux.org>
.SH "REPORTING BUGS"
Report bugs to http://bugzilla.altlinux.org
.br
(Sisyphus project, mkimage-profiles component).
.SH "COPYRIGHT"
Copyright \(co) 2010-2017 Michael Shigorin <mike@altlinux.org>
.br
This is free software; see the source for copying conditions.
There is NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
.SH "FURTHER READING"
First and foremost:
.BR /usr/share/mkimage-profiles/QUICKSTART
Please refer to
.BR README
files in the tree starting with the toplevel one for more
information; these can be assembled into a handbook using
.BR asciidoc(1)
(available at
.BR http://nightly.altlinux.org/docs/
as weekly HTML/PDF updates).
Specific topics are covered within
.BR doc/
subdirectory; e.g.
.BR make
options are described in
.BR doc/params.txt
file.
.SH "SEE ALSO"
.br
.BR hsh(1),
.BR mkimage,
.br
.BR http://www.vimeo.com/23522095

View File

@@ -10,27 +10,26 @@ mkimage-profiles, или _m-p_ — результат осмысления и о
*Цели*
* поощрение совместной работы
* относительно низкая трудоёмкость использования
* пригодность к применению как очень крутыми хакерами, так и новичками
* относительно низкая трудоёмкость использования
* поощрение совместной работы
*Средства*
Двухуровневость:
* метапрофиль более объёмен и сложен, но выгоден для долгосрочной разработки
* сгенерированный дистрибутивный профиль более легко обозрим и модифицируем как одноразовый форк
* наследственность на уровне индивидуальных особенностей и образов в целом
* прозрачность и диагностируемость формирования конфигурации
* документированность
метапрофиль более объёмен и сложен, но выгоден для долгосрочной разработки
сгенерированный дистрибутивный профиль более легко обозрим и модифицируем как одноразовый форк
наследственность на уровне индивидуальных особенностей и образов в целом
прозрачность и диагностируемость формирования конфигурации
документированность
*Примеры использования*
Выполняем начальные инструкции по документации:
Выполняем начальные инструкции по документации
git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles.git
cd mkimage-profiles
make rescue.iso
make icewm.iso
= Основы =
@@ -80,4 +79,3 @@ include::vm.txt[]
include::qemu.txt[]
include::archdep.txt[]

View File

@@ -6,106 +6,91 @@
* APTCONF
** задаёт путь к требуемому apt.conf
** значение: пусто (по умолчанию системный) либо строка
** см. image.in/Makefile, doc/apt.conf.sample
** см. ../image.in/Makefile, apt.conf.sample
* ARCH
** задаёт целевую архитектуру образов
** значение: пусто (по умолчанию авто), i586, x86_64, arm, ppc, e2k
** см. lib/build.mk
** значение: пусто (по умолчанию авто), i586, x86_64, arm, ppc
** см. ../lib/build.mk
* ARCHES
** задаёт набор целевых архитектур при параметрическом задании APTCONF
** значение: пусто (по умолчанию авто) либо список через пробел
** см. Makefile, doc/profiles.mk.sample
* AUTOCLEAN
** включает уборку (distclean) после успешной сборки образа
** значение: пусто (по умолчанию нет) либо любая строка
** см. lib/build.mk
** см. ../Makefile, profiles.mk.sample
* BELL
** подаёт сигнал после завершения сборки
** значение: пусто (по умолчанию нет) либо любая строка
** см. lib/build.mk
** см. ../lib/build.mk
* BUILDDIR
** задаёт каталог генерируемого профиля и сборки
** значение: пусто (по умолчанию авто) либо строка
** см. lib/profile.mk
** см. ../lib/profile.mk
* BUILDDIR_PREFIX
** задаёт префикс каталога генерируемого профиля и сборки
** значение: строка; по умолчанию выбирается алгоритмически
** см. main.mk
** см. ../main.mk
* BUILDLOG
** задаёт путь к файлу журнала сборки/очистки
** значение: $(BUILDDIR)/build.log (по умолчанию) либо строка
** см. lib/log.mk
** значение: по умолчанию $(BUILDDIR)/build.log либо строка
** см. ../lib/log.mk
* CHECK
** включает режим проверки сборки конфигурации (без сборки образа)
** значение: пусто (по умолчанию) либо любая строка
** см. lib/build.mk, lib/clean.mk
** см. ../lib/build.mk, ../lib/clean.mk
* CLEAN
** экономия RAM+swap при сборке в tmpfs, иначе места на диске
** очистка рабочего каталога после успешной сборки очередной стадии
** может помешать использовать некоторые варианты отладки
** значение: пусто, 0, 1, 2; по умолчанию пусто при DEBUG, иначе 1
** см. lib/clean.mk
** значение: любая строка; по умолчанию пусто при DEBUG, иначе 1
** см. ../lib/clean.mk
* DEBUG
** включает средства отладки, может отключить зачистку после сборки
** значение: пусто (по умолчанию), 1 или 2
** см. lib/log.mk, lib/clean.mk
* DISTRO_VERSION
** задаёт версию дистрибутива, если применимо
** значение: пусто (по умолчанию) либо любая строка
** см. image.in/Makefile
** см. ../lib/log.mk, ../lib/clean.mk
* HOMEPAGE, HOMENAME, HOMEWAIT
** указывают адрес, название и таймаут перехода для домашней страницы
** значение: корректный URL, строка, целое неотрицательное число
** см. features.in/live/generate.mk (тж. по умолчаниям)
** см. ../features.in/live/generate.mk (тж. по умолчаниям)
* ISOHYBRID
** включает создание гибриднго ISO-образа
** значение: пусто (по умолчанию) либо любая строка
** см. features.in/pack/config.mk, features.in/isohybrid/config.mk
** см. ../features.in/pack/config.mk
* NICE
** понижает нагрузку системы сборочной задачей
** значение: пусто (по умолчанию) либо любая строка
** см. lib/build.mk
* QUIET
** отключает поясняющие сообщения при сборке (например, под cron)
** значение: пусто (по умолчанию) либо любая строка
** см. Makefile, lib/build.mk, lib/clean.mk, lib/profile.mk
** см. ../lib/build.mk
* REPORT
** запрашивает создание отчётов о собранном образе
** значение: пусто (по умолчанию) либо любая строка
** NB: в силу специфики обработки передаётся только явно
** см. Makefile, report.mk, lib/report.mk
** см. ../Makefile, ../report.mk, ../lib/report.mk
* ROOTPW
** устанавливает пароль root по умолчанию для образов виртуальных машин
** значение: пусто (по умолчанию root) либо строка
** см. features.in/deflogin/rootfs/image-scripts.d/50-root
** см. ../features.in/build-vm/image-scripts.d/00root
* SAVE_PROFILE
** сохраняет архив сгенерированного профиля в .disk/
** значение: пусто (по умолчанию) либо любая строка
** см. image.in/Makefile
** см. ../image.in/Makefile
* SORTDIR
** дополнительно структурирует каталог собранных образов
** значение: пусто (по умолчанию) либо строка
*** например, '$(IMAGE_NAME)/$(DATE)'
** см. image.in/Makefile
** см. ../image.in/Makefile
* SQUASHFS
** определяет характер сжатия squashfs для stage2
@@ -113,18 +98,18 @@
*** пусто (по умолчанию) либо normal: xz
*** tight: xz с -Xbcj по платформе (лучше, но дольше -- подбор в два прохода)
*** fast: gzip/lzo (быстрее запаковывается и распаковывается, меньше степень)
** см. features.in/stage2/stage1/scripts.d/03-test-kernel
** см. ../features.in/stage2/stage1/scripts.d/03-test-kernel
* STATUS
** добавляет в имя образа указанный префикс
** значение:
*** пусто (по умолчанию) либо строка (например, "alpha", "beta")
** см. image.in/Makefile
** см. ../image.in/Makefile
* VM_SIZE
** задаёт размер несжатого образа виртуальной машины в байтах
** значение: пусто (по умолчанию двойной размер чрута) или целое
** см. features.in/build-vm/lib/90-build-vm.mk, bin/tar2vm
** см. ../features.in/build-vm/lib/90-build-vm.mk, ../bin/tar2vm
[float]
=== пример ===

View File

@@ -1,10 +1,11 @@
== Списки пакетов ==
Состав пакетной базы субпрофилей определяется значениями
следующих переменных профиля (см. тж. conf.d/README):
Состав пакетной базы субпрофилей определяется значенями
следующих переменных профиля (см. тж. ../conf.d/README;
некоторые "*" ниже заэкранированы ради парсера asciidoc):
* main: пакетная база для установки
** sub.in/main/Makefile, features.in/*/main/lib/
** 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,
@@ -13,23 +14,23 @@
** THE_KMODULES, BASE_KMODULES, MAIN_KMODULES, BASE_KMODULES_REGEXP
*** KFLAVOURS
* stage2: общая часть install2, live, rescue
** sub.in/stage2/Makefile, features.in/*/stage2/lib/
* stage2: общая часть installer, live, rescue
** sub.in/stage2/Makefile, features.in/\*/stage2/lib/*.mk
** SYSTEM_PACKAGES, STAGE2_PACKAGES
** STAGE1_KMODULES, STAGE1_KMODULES_REGEXP,
STAGE2_KMODULES, STAGE2_KMODULES_REGEXP
*** STAGE1_KFLAVOUR или последний из KFLAVOURS
* install2: компактная "живая" система, содержащая только инсталятор
* installer: компактная "живая" система, содержащая только инсталятор
** см. stage2
*** features.in/install2/install2/stage2cfg.mk,
features.in/*/install2/lib/
features.in/\*/install2/lib/*.mk
*** INSTALL2_PACKAGES
* live: пользовательский LiveCD (может содержать также инсталятор)
** см. stage2
** features.in/live/live/stage2cfg.mk,
features.in/*/live/lib/
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/
** sub.in/stage1/Makefile, features.in/\*/stage1/lib/*.mk
** STAGE1_PACKAGES, SYSTEM_PACKAGES
** STAGE1_PACKAGES_REGEXP
** STAGE1_KMODULES_REGEXP

View File

@@ -2,12 +2,10 @@
Для сборки на "неродной" архитектуре с применением трансляции
посредством QEMU установите пакет livecd-qemu-arch и выполните
команду register-qemu-armh от имени root (также предоставляется
команду register-qemu-arm от имени root (также предоставляется
register-qemu-ppc, но как минимум при сборке под ppc32 на x86_64
известны проблемы эмуляции).
Пример запуска:
make ARCH=armh APTCONF=/etc/apt/apt.conf.sisyphus.arm ve/bare.tar
Обратите также внимание на http://bugzilla.altlinux.org/34638
make ARCH=arm APTCONF=/etc/apt/apt.conf.sisyphus.arm ve/bare.tar

View File

@@ -9,11 +9,7 @@
порой могут выясниться непредвиденные последствия;
* документируйте на русском (README) или английском (README.en) языке
то, что написали или изменили, если бы сами хотели прочесть описание
сделанного на месте другого человека; в любом случае старайтесь
внятно описывать коммиты, при необходимости также спрашивайте
совета: документация кода порой не менее важна, чем сам код,
и призвана не повторять его, но пояснять намерения и неочевидности.
то, что написали или изменили.
[float]
=== рекомендации ===
@@ -33,11 +29,7 @@
* предпочтительно применение $() вместо `` (особенно при вложенности);
* постарайтесь не вылезать за 80 колонок;
* избегайте merge-коммитов в коде, который предлагаете для включения
в основную ветку: поддерживается линейная история для удобства
работы с промежуточными состояниями.
* постарайтесь не вылазить за 80 колонок.
[float]

View File

@@ -2,21 +2,19 @@
*ВНИМАНИЕ:* заключительная операция создания образа жёсткого диска
из архива с содержимым корневой файловой системы требует доступа
к sudo и разрешения на выполнение скрипта bin/tar2fs в корневом
к sudo и разрешения на выполнение скрипта bin/tar2vm в корневом
каталоге метапрофиля при установке mkimage-profiles из пакета
(это в планах исправить, но подход к libguestfs пока успехом
не увенчался).
Соответствующий фрагмент конфигурации sudo(8) может выглядеть как:
mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2fs
mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2vm
При работе с локальной копией mkimage-profiles.git следует иметь
в виду, что предоставлять недоверенному пользователю право выполнять
от имени root доступный ему по записи скрипт равнозначно предоставлению
полных привилегий root (поэтому фича build-vm сперва проверяет наличие
системно установленного пакета и по возможности старается запустить
под sudo скрипт из него, доступный по записи только root).
полных привилегий root.
Для работы с более специфичными форматами, чем raw ("буквальный"
образ диска), потребуется утилита qemu-img из одноименного пакета;
@@ -27,10 +25,3 @@
Пример сборки и запуска VM:
$ make ROOTPW=reallysecret1 vm/bare.img && kvm -hda ~/out/bare.img
Если при сборке образа файловой системы произойдёт сбой, может оказаться
нужным вручную освободить используемые loop-устройства, например, так:
# losetup -a
# kpartx -d /dev/loop0
# losetup -d /dev/loop0

View File

@@ -21,12 +21,12 @@
цели в UI конфигурирования образа.
Остальное содержимое является дополнительным и используется
в таком порядке (см. features.in/Makefile):
в таком порядке (см. ../Makefile):
* сперва в $(BUILDDIR)/image/ копируются все подкаталоги,
соответствующие итоговым именам субпрофилей, запрошенных
для профиля образа; при этом они сливаются с деревом,
которое уже сформировано субпрофилями (sub.in/*) и уже
которое уже сформировано субпрофилями (../sub.in/*) и уже
скопированными фичами; если какие-либо файлы перекрылись
по именам, rsync должен оставить резервные копии (*~),
которые должны просигнализировать о беспорядке;

View File

@@ -8,6 +8,6 @@
#
# for somewhat more involved example, see syslinux feature
use/00example: use/repo/main use/anotherfeature
use/00example: sub/main use/anotherfeature
@$(call add_feature)
@$(call add,MAIN_PACKAGES,hello)

View File

@@ -25,9 +25,6 @@ define grepper_body
done
endef
check:
@../bin/check-recipe */config.mk
%:
$(error BUILDDIR not defined)
@@ -39,8 +36,8 @@ include $(BUILDDIR)/distcfg.mk
# first rsync what's static, and make backups (*~) --
# these might signal of file clashes (or plain dirt);
# second, care for toplevel dirs;
# then handle feature generator scripts
# second, care for toplevel and tagged script dirs;
# then handle two more ways of implementing a feature
#
# NB: some subprofiles will be specified as "src/dst"
# -- then both src/ and dst/ can hold the addons;
@@ -61,15 +58,8 @@ prep:
fi
# feat
# NB: this is somewhat complicated since it has to handle "$sub" like:
# - "/": copy feature's toplevel parts to the BUILDDIR toplevel
# - "stage1": copy feature's stage1 parts into stage1 subprofile
# - "stage2@live": copy feature's stage2 parts into live subprofile
# - "rootfs@/": copy feature's rootfs parts into BUILDDIR toplevel
$(FEATURES):
@feat=$@; \
args="-qab --exclude README --exclude config.mk"; \
args="$$args --exclude generate.mk --exclude generate.sh"; \
if [ -n "$(GLOBAL_DEBUG)" ]; then \
echo "** adding $$feat feature"; \
fi; \
@@ -81,13 +71,6 @@ $(FEATURES):
else \
src="$${sub%@*}"; \
dst="$${sub#*@}"; \
if [ "$$src" = / ]; then \
echo "** src=/: you don't want this" >&2; \
exit 1; \
fi; \
if [ "$$dst" = / -o "$$dst" = "" ]; then \
dst="."; \
fi; \
srcdirs=; \
if [ -d "$$src" ]; then \
srcdirs="$$src"; \
@@ -95,9 +78,9 @@ $(FEATURES):
if [ -d "$$dst" -a "$$dst" != "$$src" ]; then \
srcdirs="$${srcdirs:+$$srcdirs }$$dst"; \
fi; \
: "why this overduplication was done? (still needed)"; \
for srcdir in $$srcdirs; do \
rsync $$args "$$srcdir/" "$(BUILDDIR)/$$dst/"; \
rsync -qab --exclude tagged \
"$$srcdir/" "$(BUILDDIR)/$$dst/"; \
done; \
fi; \
if [ -n "$(GLOBAL_DEBUG)" ]; then \
@@ -110,12 +93,12 @@ $(FEATURES):
destdir="$(BUILDDIR)/$$dst/$$part"; \
[ -d "$$destdir" ] || continue; \
if [ "$$sub" = / -a -d "$$part" ]; then \
rsync $$args "$$part/" "$$destdir/"; \
rsync -qab "$$part/" "$$destdir/"; \
fi; \
done; \
popd >&/dev/null; \
done; \
if [ -n "$$dst" -a "$$dst" != "." ]; then \
if [ -n "$$dst" ]; then \
the="$$sub subprofile"; \
else \
the="toplevel"; \

View File

@@ -8,14 +8,14 @@
других фич либо субпрофилей.
Каждая фича должна содержать файл config.mk, включаемый
в main.mk при построении конфигурации будущего профиля;
в ../main.mk при построении конфигурации будущего профиля;
он может описывать одну или более целей вида use/*,
дополняющих конфигурацию, и обязан добавить имя фичи
в $(FEATURES), для чего создана функция add_feature.
На этапе генерации сборочного профиля фичи рассматриваются
после инициализации профиля (см. image.in/) и копирования
субпрофилей (см. sub.in/). Для каждой фичи, указанной
после инициализации профиля (см. ../image.in/) и копирования
субпрофилей (см. ../sub.in/). Для каждой фичи, указанной
в $(FEATURES), копируются подкаталоги сообразно включенным
субпрофилям, а также lib/ и {image-,}scripts.d/; затем
выполняются generate.sh и generate.mk при их наличии.

View File

@@ -1 +0,0 @@
Данная фича определяет то, какая конфигурация apt попадёт в образ.

View File

@@ -1,8 +0,0 @@
use/apt-conf:
@$(call add_feature)
@$(call add,THE_PACKAGES,apt-conf-$$(THE_APT_CONF))
@$(call add,IMAGE_INIT_LIST,apt-conf-$$(THE_APT_CONF))
@$(call try,THE_APT_CONF,sisyphus)
use/apt-conf/branch: use/apt-conf
@$(call set,THE_APT_CONF,branch)

View File

@@ -1 +0,0 @@
Поддержка SolidRun Cubox в расчёте на подключенный по HDMI дисплей FullHD.

View File

@@ -1,3 +0,0 @@
use/armh-cubox: use/armh
@$(call add_feature)
@$(call set,KFLAVOURS,cubox)

View File

@@ -1,19 +0,0 @@
#!/bin/sh
mkdir -p /boot
# 1920x1080 version of the boot script
cat > /boot/boot << EOF
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 ro video=dovefb:lcd0:1920x1080-32@60-edid clcd.lcd0_enable=1 clcd.lcd1_enable=0 vmalloc=128M panic=3'
ext2load mmc 0:1 2000000 uimage
ext2load mmc 0:1 2800000 uinitrd
bootm 2000000 2800000
EOF
# 1280x720 version of the boot script (not used at the moment)
cat > /boot/boot.720 << EOF
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 ro video=dovefb:lcd0:1280x720-24@60-edid clcd.lcd0_enable=1 clcd.lcd1_enable=0 vmalloc=128M panic=3'
ext2load mmc 0:1 2000000 uimage
ext2load mmc 0:1 2800000 uinitrd
bootm 2000000 2800000
EOF

View File

@@ -1 +0,0 @@
ehci_marvell

View File

@@ -1 +0,0 @@
Эта фича обеспечивает начальное конфигурирование Marvell Dove GPU.

View File

@@ -1,3 +0,0 @@
use/armh-dovefb: use/armh
@$(call add_feature)
@$(call add,THE_PACKAGES,xorg-drv-dovefb)

View File

@@ -1,106 +0,0 @@
#!/bin/sh
mkdir -p /etc/udev/rules.d
cd /etc/udev/rules.d
cat > 99-bmm.rules << EOF
KERNEL=="bmm|bmm[0-9]", GROUP="xgrp", MODE="0660"
EOF
cat > 99-fb.rules << EOF
KERNEL=="fb|fb[0-9]", GROUP="xgrp", MODE="0660"
EOF
cat > 99-galcore.rules << EOF
KERNEL=="galcore|galcore[0-9]", GROUP="xgrp", MODE="0660"
EOF
cat > 99-uio.rules << EOF
KERNEL=="uio|uio[0-9]", GROUP="xgrp", MODE="0660"
EOF
mkdir -p /etc/X11
cd /etc/X11
cat > xorg.conf.720 << EOF
Section "Device"
Identifier "Videocard0"
Driver "dovefb"
# Option "ExaAccel" "on"
Option "Solid" "on"
Option "Copy" "on"
Option "Composite" "on"
Option "Commit" "on"
Option "XvAccel" "on"
Option "UseGPU" "on"
EndSection
Section "Monitor"
Identifier "LCD0"
Option "PreferredMode" "1280x720"
EndSection
Section "Screen"
Identifier "Screen 0"
Device "Videocard0"
Monitor "LCD0"
DefaultDepth 24
DefaultFbBpp 24
SubSection "Display"
Depth 24
Modes "1280x720"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Main Layout"
Screen 0 "Screen 0"
EndSection
EOF
cat > xorg.conf.1080 << EOF
Section "Device"
Identifier "Videocard0"
Driver "dovefb"
# Option "ExaAccel" "on"
Option "Solid" "on"
Option "Copy" "on"
Option "Composite" "on"
Option "Commit" "on"
Option "XvAccel" "on"
Option "UseGPU" "on"
#Option "Debug" "on"
EndSection
Section "Monitor"
Identifier "LCD0"
Option "PreferredMode" "1920x1080"
EndSection
Section "Screen"
Identifier "Screen 0"
Device "Videocard0"
Monitor "LCD0"
DefaultDepth 16
DefaultFbBpp 16
SubSection "Display"
Depth 16
Modes "1920x1080@60"
EndSubSection
SubSection "Display"
Depth 24
Modes "1920x1080@60"
EndSubSection
SubSection "Display"
Depth 32
Modes "800x600@60"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Main Layout"
Screen 0 "Screen 0"
EndSection
EOF
ln -s xorg.conf.1080 xorg.conf

View File

@@ -1 +0,0 @@
Эта фича конфигурирует специфические для Google/ASUS Nexus7 аспекты.

View File

@@ -1,2 +0,0 @@
use/armh-nexus7:
@$(call add_feature)

View File

@@ -1,172 +0,0 @@
#!/bin/sh
# FIXME: the exact partition may vary
cat >> /etc/fstab << EOF
# YMMV, this might be /dev/mmcblk0p10 either
/dev/mmcblk0p9 / ext4 defaults 1 1
EOF
cd /etc/udev/rules.d || exit 1
cat > 90-tegra-rt5640.rules << EOF
SUBSYSTEM!="sound", GOTO="tegra_rt5640_end"
ACTION!="change", GOTO="tegra_rt5640_end"
KERNEL!="card*", GOTO="tegra_rt5640_end"
ATTRS{id}=="tegrart5640", ENV{PULSE_PROFILE_SET}="tegra-nexus7.conf"
LABEL="tegra_rt5640_end"
EOF
cd /usr/share/pulseaudio/alsa-mixer/profile-sets || exit 1
cat > tegra-nexus7.conf << EOF
[General]
auto-profiles = yes
[Mapping analog-stereo]
device-strings = front:%f hw:%f plughw:%f
channel-map = left,right
paths-output = tegra-nexus7-speaker tegra-nexus7-headphone
paths-input = tegra-nexus7-intmic
priority = 10
EOF
cd /etc/X11 || exit 1
cat > xorg.conf << EOF
Section "Device"
Identifier "nexus"
Driver "tegra"
EndSection
EOF
cd /etc/X11/xorg.conf.d || exit 1
cat > 99-nexus-calibration.conf << EOF
Section "InputClass"
Identifier "Nexus 7 Touchscreen"
MatchIsTouchscreen "on"
MatchProduct "elan-touchscreen"
MatchDevicePath "/dev/input/event*"
MatchDriver "evdev"
# Option "Calibration" "29 2125 106 1356"
# Option "SwapAxes" "0"
# Option "Calibration" "566 1201 1025 2075"
# Option "SwapAxes" "1"
Option "Calibration" "6 2132 29 1294"
Option "SwapAxes" "0"
EndSection
EOF
cat > 99-nexus-rotation.conf << EOF
Section "Monitor"
Identifier "Monitor"
Option "Rotate" "right"
EndSection
Section "Screen"
Identifier "Screen"
Monitor "Monitor"
EndSection
EOF
cd /usr/share/pulseaudio/alsa-mixer/paths || exit 1
cat > tegra-nexus7-headphone.conf << EOF
[General]
priority = 90
name = analog-output-headphones
[Jack HP-detect]
state.plugged = yes
[Element Master]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element HP]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Headphone Jack]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Int Spk]
switch = off
; Due to a kernel bug (?) the "Int Mic" is a playback control.
; Therefore we enable it here instead of in the proper place
[Element Int Mic]
switch = on
EOF
cat > tegra-nexus7-intmic.conf << EOF
[General]
priority = 90
name = analog-input-microphone-internal
[Element ADC]
; For some reason the ADC volume seems not to be affecting input gain
switch = mute
volume = zero
override-map.1 = all
override-map.2 = all-left,all-right
[Element ADC Boost Gain]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Int Mic]
switch = mute
[Element DMIC]
enumeration = select
[Option DMIC:DMIC1]
priority = 89
name = analog-input-internal-microphone
EOF
cat > tegra-nexus7-speaker.conf << EOF
[General]
priority = 100
name = analog-output-speaker
[Jack HP-detect]
state.plugged = no
state.unplugged = unknown
[Element Master]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Speaker]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Int Spk]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Headphone Jack]
switch = off
; Due to a kernel bug (?) the "Int Mic" is a playback control.
; Therefore we enable it here instead of in the proper place
[Element Int Mic]
switch = on
EOF

View File

@@ -1 +0,0 @@
Эта фича предназначена для базовой поддержки систем на чипсете NVIDIA Tegra3.

View File

@@ -1,2 +0,0 @@
use/armh-tegra3:
@$(call add_feature)

View File

@@ -1,28 +0,0 @@
#!/bin/sh
cd /etc/udev/rules.d || exit 1
cat > 69-tegra-gpu.rules << EOF
# Set the right permissions to the devices provided by the
# tegra driver
ENV{ACL_MANAGE}=="0", GOTO="tegra_gpu_end"
ACTION!="add|change", GOTO="tegra_gpu_end"
# root only devices
KERNEL=="knvrm" OWNER="root" GROUP="root" MODE="0660"
KERNEL=="knvmap" OWNER="root" GROUP="root" MODE="0660"
# graphics devices
ACTION=="add|change", KERNEL=="nvhost*", GROUP="xgrp", MODE="0660"
ACTION=="add|change", KERNEL=="nvmap*", GROUP="xgrp", MODE="0660"
ACTION=="add|change", KERNEL=="tegra*", GROUP="xgrp", MODE="0660"
ACTION=="add|change", KERNEL=="nvram", GROUP="xgrp", MODE="0660"
ACTION=="add|change", KERNEL=="nvhdcp*", GROUP="xgrp", MODE="0660"
LABEL="tegra_gpu_end"
EOF
# FIXME: xgrp is a kludge
cat > 69-tegra-touchscreen.rules << EOF
SUBSYSTEM=="input",ACTION=="add|change",KERNEL=="event*",ATTRS{name}=="elan-touchscreen", SYMLINK+="twofingtouch", MODE="0660", GROUP="xgrp"
EOF

View File

@@ -1,2 +0,0 @@
Эта фича занимается тем подмножеством необходимой для ARM-образов
функциональности, которую получается как-то обобщить.

View File

@@ -1,2 +0,0 @@
use/armh: use/control/sudo-su use/net-dns/google
@$(call add_feature)

View File

@@ -1,2 +0,0 @@
#!/bin/sh
echo 'HWCLOCK_SET_TIME_AT_START=false' >> /etc/sysconfig/clock

View File

@@ -1,48 +0,0 @@
#!/bin/sh
kver="$(rpm -qa 'kernel-image*' \
--qf '%{installtime} %{version}-%{name}-%{release}\n' \
| sort -n \
| tail -n 1 \
| cut -f 2 -d ' ' \
| sed 's/kernel-image-//')"
[ -h /boot/vmlinuz ] || ln -s vmlinuz-$kver /boot/vmlinuz
[ -h /boot/initrd.img ] || ln -s initrd-$kver.img /boot/initrd.img
# NB: mkinitrd-3.0.16+ has rootsubdir support which is critical
# for TWRP based ARM "VE" chroots (e.g. for nexus7);
# should be implemented in make-initrd either
### rootfs type should become configurable
if rpm -q mkinitrd; then
mkinitrd --with ext4 -f /boot/initrd-$kver.img "$kver"
fi
# NB: if the adresses ever become different this "API" _will_ change
# NB: initrd compression (-C) might change, armadaxp handles gzip
umk() {
[ $# = 4 ] || exit 1
cd /boot
umkimage \
-A arm \
-O linux \
-T "$1" \
-C none \
-a "$2" \
-e "$2" \
-n "`readlink "$3"`" \
-d "$3" \
"$4"
}
### the addresses will become variables some day probably
if rpm -q uboot-tools; then
umk kernel 0x00008000 vmlinuz uimage
umk ramdisk 0x00800000 initrd.img uinitrd
if [ -s boot ]; then
umk script 0 boot boot.scr
fi
fi
:

View File

@@ -1,7 +0,0 @@
#!/bin/sh
# Sisyphus/armh is not being signed as of June, 2013
repo_source='/etc/apt/sources.list.d/alt.list'
[ -s "$repo_source" ] || exit 0
sed -i 's, \[alt\],,' "$repo_source" ||:

View File

@@ -4,21 +4,9 @@
# the last different one wins
# - remember .base if adding yet another *_PACKAGES
# NB: "mysterious" conflicts if BASE_BOOTLOADER is empty
use/bootloader: use/pkgpriorities
use/bootloader: use/install2 sub/main
@$(call add_feature)
@$(call add,BASE_PACKAGES,alterator-$$(BASE_BOOTLOADER))
@$(call add,PINNED_PACKAGES,alterator-$$(BASE_BOOTLOADER))
@$(call add,PINNED_PACKAGES,installer-bootloader-$$(BASE_BOOTLOADER)-stage2)
use/bootloader/grub use/bootloader/lilo: use/bootloader/%: use/bootloader
@$(call set,BASE_BOOTLOADER,$*)
use/bootloader/live: use/bootloader
@$(call add,LIVE_PACKAGES,alterator-$$(BASE_BOOTLOADER))
use/bootloader/os-prober: use/bootloader
ifeq (,$(filter-out i586 x86_64 aarch64,$(ARCH)))
@$(call add,BASE_PACKAGES,os-prober)
endif

View File

@@ -1,6 +0,0 @@
#!/bin/sh
if [ -z "$GLOBAL_BASE_BOOTLOADER" ]; then
echo "** error: BASE_BOOTLOADER empty while bootloader feature requested" >&2
exit 1
fi

View File

@@ -2,20 +2,10 @@
use/branding:
@$(call add_feature)
# license notes, if any
use/branding/notes: use/branding
@$(call add,THE_BRANDING,notes)
# NB: not every distro might have all the branding of its own
# FIXME: syslinux is x86-specific
use/branding/full: use/branding/notes use/syslinux/ui/gfxboot
@$(call add,THE_BRANDING,alterator bootloader bootsplash graphics)
@$(call add,THE_BRANDING,indexhtml slideshow)
use/branding/full: use/branding use/syslinux/ui/gfxboot
@$(call add,THE_BRANDING,alterator bootsplash graphics)
@$(call add,THE_BRANDING,indexhtml notes slideshow)
use/branding/complete: use/branding/full use/plymouth/full
@$(call add,INSTALL2_BRANDING,notes slideshow)
# http://altlinux.org/branding/slideshow
use/branding/slideshow/once: use/branding
@$(call add,INSTALL2_BRANDING_SLIDESHOW,once:true)
@$(call xport,INSTALL2_BRANDING_SLIDESHOW)

View File

@@ -1,7 +0,0 @@
#!/bin/bash
[ -n "$GLOBAL_INSTALL2_BRANDING_SLIDESHOW" ] || exit 0
for arg in $GLOBAL_INSTALL2_BRANDING_SLIDESHOW; do
echo "${arg/:/=}" >> /etc/alterator/slideshow.conf
done

View File

@@ -1,2 +1 @@
IMAGE_PACKAGES_REGEXP += $(call branding, \
$(STAGE2_BRANDING) $(INSTALL2_BRANDING))
IMAGE_PACKAGES_REGEXP += $(call branding,$(INSTALL2_BRANDING))

View File

@@ -1,6 +1,4 @@
# step 4: build the distribution image
# NB: this comes just before build-distro.mk
DOT_BASE += $(call branding,$(THE_BRANDING))
CHROOT_PACKAGES_REGEXP += $(call branding,bootloader)
CHROOT_PACKAGES += ImageMagick-tools

View File

@@ -1,2 +1 @@
IMAGE_PACKAGES_REGEXP += $(call branding, \
$(THE_BRANDING) $(STAGE2_BRANDING))
IMAGE_PACKAGES_REGEXP += $(call branding,$(THE_BRANDING))

View File

@@ -0,0 +1 @@
IMAGE_PACKAGES_REGEXP += $(call branding,$(STAGE2_BRANDING))

View File

@@ -1,6 +0,0 @@
Эта фича обеспечивает наличие и конкретизацию выбора браузера.
Разумеется, дополнительные варианты могут быть установлены
явным или косвенным затребованием.
Следует понимать, что каждая из целей может быть использована
лишь один раз, повторное упоминание будет проигнорировано make.

View File

@@ -1,55 +0,0 @@
use/browser:
@$(call add_feature)
@$(call add,THE_PACKAGES,$$(THE_BROWSER))
@$(call try,THE_BROWSER,elinks) # X11-less fallback
# support both firefox and firefox-esr
use/browser/firefox: use/browser
@$(call set,THE_BROWSER,firefox$$(FX_FLAVOUR))
use/browser/seamonkey use/browser/palemoon \
use/browser/chromium use/browser/epiphany \
use/browser/qupzilla use/browser/falkon \
use/browser/elinks use/browser/links2: \
use/browser/%: use/browser
@$(call set,THE_BROWSER,$*)
use/browser/konqueror: use/browser
@$(call set,THE_BROWSER,kdebase-konqueror)
use/browser/konqueror4: use/browser
@$(call set,THE_BROWSER,kde4base-konqueror)
# the complete lack of dependencies is intentional
use/browser/firefox/esr: use/browser
@$(call set,FX_FLAVOUR,-esr)
use/browser/firefox/h264: use/browser/firefox
@$(call add,THE_BROWSER,gst-libav)
@$(call add,THE_BROWSER,gst-plugins-base1.0 gst-plugins-good1.0)
use/browser/firefox/live: use/browser/firefox
@$(call add,THE_BROWSER,livecd-firefox)
# scarey, and will have to be done otherwise when l10n feature is there
use/browser/firefox/i18n: use/browser/firefox
@$(call add,THE_BROWSER,firefox$$(FX_FLAVOUR)-kk)
@$(call add,THE_BROWSER,firefox$$(FX_FLAVOUR)-ru)
@$(call add,THE_BROWSER,firefox$$(FX_FLAVOUR)-uk)
# fx29+
use/browser/firefox/classic: use/browser/firefox
@$(call add,THE_BROWSER,firefox-classic_theme_restorer)
use/browser/seamonkey/i18n: use/browser/seamonkey
@$(call add,THE_BROWSER,seamonkey-ru)
use/browser/palemoon/i18n: use/browser/palemoon
@$(call add,THE_BROWSER,palemoon-ru)
# inherently insecure, NPAPI only
use/browser/plugin/flash: use/browser
@$(call add,THE_PACKAGES,mozilla-plugin-adobe-flash)
use/browser/plugin/java: use/browser
@$(call add,THE_PACKAGES,mozilla-plugin-java-1.8.0-openjdk)

View File

@@ -3,9 +3,3 @@
Дополняет финальную стадию сборки (lib/, scripts.d/)
и тесно с ней связана.
При желании более полно воспользоваться доступными средствами
фиксации метаданных обратите внимание на следующие переменные:
META_SYSTEM_ID, META_PUBLISHER, META_PREPARER, META_APP_ID,
META_VOL_ID, META_VOL_SET, META_BIBLIO, META_ABSTRACT;
см. тж. genisoimagerc(5) из пакета genisoimage.

View File

@@ -1,3 +1,3 @@
# hooked from lib/sugar.mk
# hooked from ../../lib/sugar.mk
use/build-distro:
@$(call add_feature)

View File

@@ -1,5 +1,8 @@
# step 4: build the distribution image
# take the latter part for complex-specified subprofiles like stage2@live
SUBDIRS = $(SUBPROFILE_DIRS)
# proxy over the ISO metadata collected; see also genisoimagerc(5)
BOOT_SYSI := $(META_SYSTEM_ID)
BOOT_PUBL := $(META_PUBLISHER)
@@ -9,40 +12,18 @@ BOOT_VOLI := $(shell echo $(META_VOL_ID) | cut -c1-32)
BOOT_VOLS := $(META_VOL_SET)
BOOT_BIBL := $(META_BIBLIO)
BOOT_ABST := $(META_ABSTRACT)
BOOT_COPY := $(META_LICENSE_FILE)
ISODATA_SYSI = $(BOOT_SYSI)
ISODATA_PUBL = $(BOOT_PUBL)
ISODATA_PREP = $(BOOT_PREP)
ISODATA_APPI = $(BOOT_APPI)
ISODATA_VOLI = $(BOOT_VOLI)
ISODATA_VOLS = $(BOOT_VOLS)
ISODATA_BIBL = $(BOOT_BIBL)
ISODATA_ABST = $(BOOT_ABST)
ISODATA_COPY = $(BOOT_COPY)
DATE_F := $(shell date +%F)
ifeq (isodata,$(IMAGE_PACKTYPE))
BOOT_TYPE :=
else
ifeq (,$(filter-out e2k%,$(ARCH)))
BOOT_TYPE := e2kboot
endif
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
BOOT_TYPE := isolinux
endif
endif
all: | $(GLOBAL_DEBUG) prep copy-subdirs copy-tree run-scripts pack-image \
all: $(GLOBAL_DEBUG) prep copy-subdirs copy-tree run-scripts pack-image \
postprocess $(GLOBAL_CLEAN_WORKDIR)
prep: | $(GLOBAL_DEBUG) dot-disk $(WHATEVER)
prep: $(GLOBAL_DEBUG) dot-disk $(WHATEVER)
# can't use mp-showref which belongs to the metaprofile
dot-disk:
@mkdir -p files/.disk
@echo "$(META_VOL_ID) $(DATE_F)" >files/.disk/info
@echo "ALT Linux based" >files/.disk/info
@echo "$(ARCH)" >files/.disk/arch
@echo "$(DATE)" >files/.disk/date
@if type -t git >&/dev/null; then \

View File

@@ -1,5 +1,4 @@
Эта фича конфигурирует создание образа виртуального окружения (VE),
что используется для сборки шаблонов OpenVZ и ARM-чрутов для TWRP.
Эта фича конфигурирует создание образа виртуального окружения (VE).
Дополняет финальную стадию сборки (lib/, image-scripts.d/)
и тесно с ней связана.

View File

@@ -1,3 +1,3 @@
# hooked from lib/sugar.mk
use/build-ve: sub/rootfs@/
# hooked from ../../lib/sugar.mk
use/build-ve:
@$(call add_feature)

View File

@@ -0,0 +1,9 @@
#!/bin/sh
# by default hasher copy resolv.conf and /etc/hosts from host system
# we need to change it to useful defaults
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
echo 'nameserver 8.8.4.4' > /etc/resolv.conf
#echo 'nameserver 2001:4860:4860::8888' > /etc/resolv.conf
#echo 'nameserver 2001:4860:4860::8844' > /etc/resolv.conf
echo '127.0.0.1 localhost.localdomain localhost' > /etc/hosts

View File

@@ -1,3 +1,3 @@
#!/bin/sh
# Run scripts from /etc/firsttime.d at first start
[ -f "/etc/firsttime.flag" ] || touch "/etc/firsttime.flag"
[ -f "/var/lock/TMP_1ST" ] || touch "/var/lock/TMP_1ST"

View File

@@ -8,18 +8,10 @@ ifeq (cpio,$(IMAGE_PACKTYPE))
MKI_CPIO_COMPRESS = $(IMAGE_COMPRESS)
endif
# some VEs _can_ contain kernels (think ARM multiboot
# but this can also help VE/VM hybrid images)
IMAGE_PACKAGES = $(DOT_BASE) \
IMAGE_PACKAGES = $(call list,$(BASE_LISTS)) \
$(SYSTEM_PACKAGES) \
$(COMMON_PACKAGES) \
$(BASE_PACKAGES) \
$(THE_PACKAGES) \
$(call list,$(BASE_LISTS) $(THE_LISTS))
$(BASE_PACKAGES)
IMAGE_PACKAGES_REGEXP = $(THE_PACKAGES_REGEXP) \
$(BASE_PACKAGES_REGEXP)
all: $(GLOBAL_DEBUG) \
build-image copy-subdirs copy-tree run-image-scripts pack-image \
all: $(GLOBAL_DEBUG) build-image copy-tree run-image-scripts pack-image \
postprocess $(GLOBAL_CLEAN_WORKDIR)

View File

@@ -1,3 +1,3 @@
Эта фича конфигурирует создание образа виртуальной машины (VM).
Дополняет финальную стадию сборки (lib/, image-scripts.d/).
Требует для работы sudo(8) -- см. тж. doc/vm.txt
Требует для работы sudo(8) -- см. тж. ../../doc/vm.txt .

View File

@@ -1,3 +1,4 @@
# hooked from lib/sugar.mk
use/build-vm: sub/rootfs@/ use/kernel
# hooked from ../../lib/sugar.mk
use/build-vm:
@$(call add_feature)
@$(call xport,ROOTPW)

View File

@@ -1,4 +1,4 @@
# copy tar2fs helper into generated profile to enable standalone builds
# copy tar2vm helper into generated profile to enable standalone builds
all:
@install -pD $(MKIMAGE_PROFILES)/bin/tar2fs $(BUILDDIR)/bin/tar2fs
@install -pD $(MKIMAGE_PROFILES)/bin/tar2vm $(BUILDDIR)/bin/tar2vm

View File

@@ -0,0 +1,11 @@
#!/bin/sh
if [ -n "$GLOBAL_ROOTPW" ]; then
if type -t chpasswd >&/dev/null; then
echo "root:$GLOBAL_ROOTPW" | chpasswd
else
echo "** warning: chpasswd binary missing" >&2
fi
else
echo "** warning: no root password provided, you're on your own" >&2
fi

View File

@@ -1,6 +1,4 @@
#!/bin/sh -e
# we don't need no extra gettys in VMs
[ -s /etc/inittab ] || exit 0
# ...except when it's a real disk image, not a VM for sure
[ `arch` = e2k ] && exit 0
sed -i 's,^[3-9]\+:[0-9]\+:respawn:/sbin/mingetty.*,#&,' /etc/inittab

View File

@@ -1,19 +1,13 @@
#!/bin/sh
# predictable file locations make bootloader configuration simple;
# this script relates to features.in/stage2/stage1/scripts.d/81-make-initfs
# this script relates to .../features.in/stage2/stage1/scripts.d/80-make-initfs
kver="$(rpm -qa 'kernel-image*' \
--qf '%{installtime} %{version}-%{name}-%{release}\n' \
| sort -n \
| tail -n 1 \
| cut -f 2 -d ' ' \
| sed 's/kernel-image-//')"
[ -n "$kver" ] || { echo "** unable to deduce kernel version" >&2; exit 1; }
cd /boot
echo "$kver" > .origver # for tar2fs
# NB: e2k kernel builds "image" instead of "vmlinuz"
[ -f vmlinuz-$kver ] && ln -s vmlinuz-$kver vmlinuz ||:
ln -s initrd-$kver.img initrd.img # missing at this stage
:
ln -s vmlinuz-$kver /boot/vmlinuz
ln -s initrd-$kver.img /boot/initrd.img

View File

@@ -0,0 +1,3 @@
#!/bin/sh
# Run scripts from /etc/firsttime.d at first start
[ -f "/var/lock/TMP_1ST" ] || touch "/var/lock/TMP_1ST"

View File

@@ -1,20 +1,19 @@
# step 4: build the virtual machine image
IMAGE_PACKAGES = $(DOT_BASE) \
$(SYSTEM_PACKAGES) \
IMAGE_PACKAGES = $(SYSTEM_PACKAGES) \
$(COMMON_PACKAGES) \
$(BASE_PACKAGES) \
$(THE_PACKAGES) \
$(call list,$(BASE_LISTS) $(THE_LISTS))
IMAGE_PACKAGES_REGEXP = $(THE_PACKAGES_REGEXP) \
$(BASE_PACKAGES_REGEXP)
$(call list,$(BASE_LISTS) $(THE_LISTS)) \
$(call kpackages,$(THE_KMODULES) $(BASE_KMODULES),$(KFLAVOURS))
# intermediate chroot archive
VM_TARBALL := $(IMAGE_OUTDIR)/$(IMAGE_NAME).tar
VM_RAWDISK := $(IMAGE_OUTDIR)/$(IMAGE_NAME).raw
VM_FSTYPE ?= ext4
VM_SIZE ?= 0
ifeq (,$(ROOTPW))
$(error please provide root password via ROOTPW)
endif
check-sudo:
@if ! type -t sudo >&/dev/null; then \
@@ -23,38 +22,31 @@ check-sudo:
fi
prepare-image: check-sudo
@if [ -x $(MKIMAGE_PREFIX)/bin/tar2fs ]; then \
TOPDIR=$(MKIMAGE_PREFIX); \
fi; \
if ! sudo $(TOPDIR)/bin/tar2fs \
"$(VM_TARBALL)" "$(VM_RAWDISK)" $(VM_SIZE) $(VM_FSTYPE); then \
echo "** error: sudo tar2fs failed, see build log" >&2; \
@if ! sudo $(TOPDIR)/bin/tar2vm \
"$(VM_TARBALL)" "$(VM_RAWDISK)" $$VM_SIZE; then \
echo "** error: sudo tar2vm failed, see also doc/vm.txt" >&2; \
exit 1; \
fi
convert-image: prepare-image
@VM_COMPRESS=; \
case "$(IMAGE_TYPE)" in \
@case "$(IMAGE_TYPE)" in \
"img") mv "$(VM_RAWDISK)" "$(IMAGE_OUTPATH)"; exit 0;; \
"vhd") VM_FORMAT="vpc";; \
"qcow2c") VM_FORMAT="qcow2"; VM_COMPRESS="-c";; \
*) VM_FORMAT="$(IMAGE_TYPE)"; \
esac; \
if ! type -t qemu-img >&/dev/null; then \
echo "** error: qemu-img not available" >&2; \
exit 1; \
echo "** warning: qemu-img not available" >&2; \
else \
qemu-img convert $$VM_COMPRESS -O "$$VM_FORMAT" \
qemu-img convert -O "$$VM_FORMAT" \
"$(VM_RAWDISK)" "$(IMAGE_OUTPATH)"; \
rm "$(VM_RAWDISK)"; \
if [ "0$(DEBUG)" -le 1 ]; then rm "$(VM_TARBALL)"; fi; \
fi
run-image-scripts: GLOBAL_CLEANUP_PACKAGES := $(CLEANUP_PACKAGES)
run-image-scripts: GLOBAL_ROOTPW := $(ROOTPW)
# override
pack-image: MKI_PACK_RESULTS := tar:$(VM_TARBALL)
all: $(GLOBAL_DEBUG) \
build-image copy-subdirs copy-tree run-image-scripts pack-image \
all: $(GLOBAL_DEBUG) build-image copy-tree run-image-scripts pack-image \
convert-image postprocess $(GLOBAL_CLEAN_WORKDIR)

View File

@@ -4,10 +4,3 @@
По возможности стоит работать над дизайном инфраструктуры
и пакетной базой так, чтобы ставить-удалять приходилось как
можно меньше. В идеале такой антифичи не должно быть вовсе :)
Для пакетов, которые следует удалять из установленной классическим
инсталятором системы, но не из livecd, применяйте переменную
CLEANUP_BASE_PACKAGES.
ВНИМАНИЕ: также удаляет rpm, apt и базу по пакетам из livecd,
если в него не был добавлен инсталятор!

View File

@@ -1,44 +1,20 @@
use/cleanup:
@$(call add_feature)
@$(call xport,GLOBAL_LIVE_NO_CLEANUPDB)
@$(call xport,CLEANUP_PACKAGES)
@$(call xport,CLEANUP_BASE_PACKAGES)
use/cleanup/libs:
@$(call add,BASE_PACKAGES,apt-scripts)
@$(call add,INSTALL2_PACKAGES,installer-feature-cleanup-libs-stage3)
use/cleanup/installer: use/cleanup
@$(call add,CLEANUP_BASE_PACKAGES,'installer-*')
@$(call add,CLEANUP_PACKAGES,'installer-*')
use/cleanup/x11: use/cleanup use/cleanup/libs
@$(call add,CLEANUP_PACKAGES,libICE libSM libxcb 'libX*')
use/cleanup/x11: use/cleanup
@$(call add,CLEANUP_PACKAGES,libSM libXext libXmu libXi)
# as some alterator modules are installed into stage3 (the destination
# root filesystem) to perform actions like bootloader setup, we might
# have to remove them (contrary to the usual build-up)...
use/cleanup/alterator: use/cleanup
@$(call add,CLEANUP_PACKAGES,'alterator*' rpm-macros-alterator)
@$(call add,CLEANUP_PACKAGES,'guile*' libvhttpd autologin-sh-functions)
@$(call add,CLEANUP_PACKAGES,'guile*' libvhttpd)
# for lightweight server distros
use/cleanup/x11-alterator: use/cleanup/x11 use/cleanup/alterator
@$(call add,CLEANUP_PACKAGES,libmng qt4-common)
# "basically everything else"; this *will* change with branches and distros
use/cleanup/jeos: use/cleanup/x11-alterator
@$(call add,CLEANUP_PACKAGES,liblcms libjpeg 'libpng*' 'libtiff*')
@$(call add,CLEANUP_PACKAGES,avahi-autoipd iw wpa_supplicant)
@$(call add,CLEANUP_PACKAGES,openssl libpcsclite)
@# a *lot* of stray things get pulled in by alterator modules
@$(call add,CLEANUP_PACKAGES,libfreetype fontconfig)
@$(call add,CLEANUP_PACKAGES,liblcms libjpeg 'libpng*' 'libtiff*')
@$(call add,CLEANUP_PACKAGES,openssl libpcsclite)
# mostly non-interactive system
use/cleanup/jeos/full: use/cleanup/jeos
@$(call add,CLEANUP_PACKAGES,interactivesystem 'groff*' man stmpclean)
@$(call add,CLEANUP_PACKAGES,gettext)
@$(call add,CLEANUP_PACKAGES,console-scripts console-vt-tools 'kbd*')
@$(call add,CLEANUP_PACKAGES,libsystemd-journal libsystemd-login)
@$(call add,CLEANUP_PACKAGES,dbus libdbus)

View File

@@ -3,14 +3,9 @@
if [ -n "$GLOBAL_VERBOSE" ]; then
echo "** GLOBAL_CLEANUP_PACKAGES: $GLOBAL_CLEANUP_PACKAGES"
echo "** GLOBAL_CLEANUP_BASE_PACKAGES: $GLOBAL_CLEANUP_BASE_PACKAGES"
fi >&2
export GLOBAL_CLEANUP_PACKAGES="$GLOBAL_CLEANUP_PACKAGES \
$GLOBAL_CLEANUP_BASE_PACKAGES"
SCRIPT="/usr/share/install2/postinstall.d/01-remove-pkgs"
cat > "$SCRIPT" << EOF
#!/bin/sh -efu

View File

@@ -1,8 +1,5 @@
#!/bin/sh
# remove all docs
# don't cripple the image to be copied over
[ -x /usr/sbin/live-install -o -x /usr/sbin/livecd-install ] && exit 0
rpmquery -ad |grep ^/ |xargs -r rm -f --
rm -rf /usr/share/{doc,man,info,license,gfxboot}

View File

@@ -1,7 +1,6 @@
#!/bin/sh -efu
# remove extra packages from a bare livecd
[ -n "$GLOBAL_CLEANUP_PACKAGES" ] || exit 0
list="$(rpmquery -a --qf='%{NAME}\n' $GLOBAL_CLEANUP_PACKAGES)"
[ -z "$list" ] || apt-get remove -f -y -- $list
:

Some files were not shown because too many files have changed in this diff Show More