Compare commits

..

15 Commits

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

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

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

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

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

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

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

The macro scheme used was overgeneralized; stuffing
quoting differentiation into it was doable but ugly
(unless one is able to pass an unquoted quote sign
as a function's parameter in some elegant manner),
let's just make it straightforward.
2013-11-25 09:33:54 +04:00
1142 changed files with 2471 additions and 15998 deletions

View File

@@ -1,32 +1,33 @@
Name: mkimage-profiles
Version: 1.4.2
Release: alt1
Version: 1.0.3
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: Anton Midyukov <antohami@altlinux.org>
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,602 +53,40 @@ 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
* Tue Sep 01 2020 Anton Midyukov <antohami@altlinux.org> 1.4.2-alt1
- x11: Added missing xorg-dri-armsoc for armh
- oem: Added rootfs-installer-features
- server-v: Added more commits by andy@, shaba@
- Set default timeout 60 seconds for syslinux and grub
- Set default item to install2 for syslinux and grub
- main.mk: Added vm/, ve/ targets into everything target
- Extended e2k support in distributions (thanks mike@)
- education: fix build and install
* Mon Mar 03 2014 Michael Shigorin <mike@altlinux.org> 1.0.3-alt0.M70T.1
- vm fixes/backports
* Mon Aug 17 2020 Anton Midyukov <antohami@altlinux.org> 1.4.1-alt1
- Revert commit for support multiple kernel in iso image.
* 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 Aug 17 2020 Anton Midyukov <antohami@altlinux.org> 1.4.0-alt1
- New official maintainer antohami@ (blessed by mike@)
- Added grub config file generator for iso images
(thanks shaba@)
- Expanded support for USB controllers and SD card readers
- Added support for booting on single-board Raspberry Pi 3 and 4
in EFI mode (u-boot or edk2)
- Added grub-efi bootloader support for rootfs images
- Merged with branches for Workstation, Education,
Simply Linux, Server, Server-V distributions
- Added a starterkit build profile with a real-time kernel (live)
- Added riscv64 platform support (thanks arei@)
- rootfs: support headless boot via alterator-setup-vnc (thanks arei@)
* Mon Nov 18 2019 Michael Shigorin <mike@altlinux.org> 1.3.15-alt1
- autoinstall fix (sin@)
- Baikal-M support, @ARM, elogind removal, other tweaks (antohami@)
- factored out archdep-filter, pulled in check-pkg-list (me)
* Mon Oct 21 2019 Michael Shigorin <mike@altlinux.org> 1.3.14-alt1
- make bails out on single image build error, see also make -k (iv@)
- mipsel support (iv@, antohami@)
- regular-vm.mk, refactoring, cleanups (antohami@)
* Mon Sep 16 2019 Michael Shigorin <mike@altlinux.org> 1.3.13-alt1
- recovery.tar support (iv@)
- mixin/mixin deps, aarch64 EFI, mcom02 & jetson nano support,
multikernel & portability fixes, refactoring & cleanups (antohami@)
- document STAGE1_MODLISTS (me)
* Mon Aug 19 2019 Michael Shigorin <mike@altlinux.org> 1.3.12-alt1
- ppc64le support (glebfm@)
- build-vm hacked to build tarballs too (iv@ et al)
- p8.mk: dropped; along with other cleanups/fixups (antohami@)
* Tue Jul 09 2019 Michael Shigorin <mike@altlinux.org> 1.3.11.1-alt1
- x11: reverted vulkan changes (need more testing)
* Mon Jul 08 2019 Michael Shigorin <mike@altlinux.org> 1.3.11-alt1
- pkg.in/profiles subdirs support (shaba@)
- repo fixup regarding target arch (obirvalger@)
- switch back to yandex mirror by default,
portability fixes, refactoring, cleanups (antohami@)
- x11 amdgpu/radeon and dm fixups, vmguest refactoring (me)
* Mon Jun 17 2019 Michael Shigorin <mike@altlinux.org> 1.3.10-alt1
- add server-v profile, drop groups/openstack (shaba@)
* Mon Jun 10 2019 Michael Shigorin <mike@altlinux.org> 1.3.9-alt1
- uboot feature, bootloader refactoring, etc (antohami@)
- cleanlog factored out from reports.mk (me)
* Mon Jun 03 2019 Michael Shigorin <mike@altlinux.org> 1.3.8-alt1
- p9.mk, office feature and other enhancements/fixes (antohami@)
- education (cas@)
- simply (sem@)
- minor tidbits and major merge-up (me)
* Mon May 06 2019 Michael Shigorin <mike@altlinux.org> 1.3.7-alt1
- docker, vm, browser fixups (obirvalger@)
- elogind support, refactoring, cleanups (antohami@)
- a couple more improvements (me)
* Mon Apr 01 2019 Michael Shigorin <mike@altlinux.org> 1.3.6-alt1
- no joke!
* Mon Mar 04 2019 Michael Shigorin <mike@altlinux.org> 1.3.5-alt1
- Spring 2019 patch queue cleanup
+ antohami@, jqt4@, iv@, obirvalger@, zerg@, me
+ tar2fs fixes for mipsel, qemu etc
+ lots of pkglist updates
* Mon Jan 14 2019 Michael Shigorin <mike@altlinux.org> 1.3.4-alt1
- new 2019 year release ;-)
- tar2fs related security fix (iv@) iff sudo's been configured
- use/x11/dm rework (antohami@)
- archfixes (antohami@, iv@)
- pre-p8 bits cleanup (me)
* Mon Dec 24 2018 Michael Shigorin <mike@altlinux.org> 1.3.3-alt1
- aarch64/armh portability fixups (antohami@)
- grub-based vm images (shaba@)
- even smaller images (glebfm@)
- lxc/lxd lists/feature/image (dans@)
- updated robotics lists/image (dd@)
- e2k: 801/101/jeos tweaks (me)
* Mon Dec 10 2018 Michael Shigorin <mike@altlinux.org> 1.3.2-alt1
- sisyphus drops
* 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

@@ -0,0 +1,6 @@
object d9f11e6fee5b83d05dc0c2c3c95c12197d6d0b37
type commit
tag v1.0.2
tagger Michael Shigorin <mike@altlinux.org> 1387851343 +0200
efi updates

View File

@@ -1,6 +0,0 @@
object fdd2593977fd8895020972f318dea00d1a135c64
type commit
tag v1.4.2
tagger Anton Midyukov <antohami@altlinux.org> 1598925387 +0700
v1.4.2

View File

@@ -1,6 +0,0 @@
object 184850dbf74f8446868d48ab7c58a7b09c222153
type commit
tag v1.4.1
tagger Anton Midyukov <antohami@altlinux.org> 1597683435 +0700
v1.4.1

View File

@@ -1,2 +1 @@
6ad7cb74bf1f73f9b7add9b6d154937799fe261a v1.4.1
4aafcb681460f8deda07a60d983ae8e2d244d4d4 v1.4.2
43961c4ff4b6ca9ed5f20a63e97525e6590522c4 v1.0.2

1
.gitignore vendored
View File

@@ -1,4 +1,3 @@
*~
.*.swp
build
image.in/files/*

View File

@@ -6,16 +6,15 @@
-include $(HOME)/.mkimage/profiles.mk
# for immediate assignment
ifndef ARCH
ARCH := $(shell arch \
| sed 's/i686/i586/; s/armv7.*/armh/; s/armv.*/arm/')
endif
ifndef ARCHES
ifdef ARCH
ARCHES := $(ARCH)
else
ARCHES := $(shell arch \
| sed 's/i686/i586/; s/armv7.*/armh/; s/armv.*/arm/; s/ppc.*/ppc/')
endif
export ARCHES ARCH
endif
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,24 +53,15 @@ 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; \
fi; \
else \
exit 1; \
fi; \
done; \
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi
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,49 +0,0 @@
#!/bin/sh
# filter stdin or file for words related to
# the specified target architecture
#
# args: -a arch [-i file]
if [ "$1" = "-a" -a -n "$2" ]; then
a="$2"
shift 2
else
cat
exit
fi
if [ "$1" = "-i" -a -w "$2" ]; then
f="$2"
t="`mktemp`"
fi
# map meta-arches for prefiltering
# NB: biarch gets special expansion later
case "$a" in
i586)
A="(IA32|X86)";;
x86_64)
A="X86";;
e2k*)
A="E2K";;
aarch64|arm*)
A="ARM";;
*)
A=;;
esac
# NB: pipe runs in parallel => faster than -e -e
cat ${f:+"$f"} |
sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$A\>/\1\2/pg" |
sed -rn "s/\<([^@ ]*)\>|\<[^@ ]*@\!$A\> */\1/pg" |
sed -r "s/\<([^@ ]*)@IA32\>/\1@i586 i586-\1@x86_64/g" |
sed -rn "s/\<([^@ ]*)\>|\<([^@ ]*)@$a\>/\1\2/pg" |
sed -rn "s/\<([^@ ]*)\>|\<[^@ ]*@\!$a\> */\1/pg" |
sed -r "s/\<([^@ ]*)@\![^@ ]+\>/\1/g" |
sed -r "s/\<([^@ ]*)@[^@ ]+\> *//g" |
sed -r "s/^ +//;s/ +$//" |
if [ -n "$f" ]; then
cat > "$t" && mv "$t" "$f"
else
cat
fi

View File

@@ -1,101 +0,0 @@
#!/bin/sh
# script based on initial implementation
# by Vitaly Gusach (http://gusach.org.ua)
#
# purpose: warn on those entries in given packagelists(s)
# which are definitely absent; the build might still bail out
# but at least 80% of failures can be predicted early now
#
# usage: check-pkg-list [-n pkgnames] pkglist ...
# (pkgnames file should contain `apt-cache pkgnames`)
# NB: -n pkgnames MUST go first, if given
error() { echo `basename $0`: $* >&2; exit 1; }
debug() { [ -n "$GLOBAL_VERBOSE" ] && echo `basename $0`: $* >&2; }
exit_handler() {
local rc=$?
trap - EXIT
rm -f -- "$ftemp" "$fpkgnames" "$fpkgwildcards" "$favaillist"
exit $rc
}
# find the most recent apt.conf in workdirs
apt_conf() {
debug "looking for workdirs with aptboxes..."
find -maxdepth 3 -name .work \
| while read dir; do
file="$dir/aptbox/etc/apt/apt.conf"
[ -f "$file" ] && echo "$file"
done \
| xargs -r ls -t -- \
| head -1
}
# figure out apt.conf from recent aptbox or fallback to system one
# TODO: would be nice to cache the dump inside aptbox
dump_pkgnames() {
conf="`apt_conf`"
debug "autodetected apt.conf: ${conf:-<system>}, dumping pkgnames"
apt-cache ${conf:+-c $conf} pkgnames | sort > "$favaillist"
}
check_pkglist() {
fprofilelist="$1"
[ -f "$fprofilelist" ] || error "invalid packagelist filename: $fprofilelist"
[ -n "$MULTI" ] && echo "-- $fprofilelist"
debug "checking $fprofilelist against $favaillist"
# cleaning pkg list from comments, empty lines,
# splitting several pkgnames on the same line
sed -e '/^#/d' -e '/^[ ]*$/d' -e 's/ \+$//' -e 's/[ ]\+/\n/g' \
< "$fprofilelist" \
| sed 's/-$//' \
| sort -u \
> "$ftemp" # got list of pkgnames we need
# split pkgnames without wildcards and with wildcards
fgrep -v '*' "$ftemp" > "$fpkgnames"
fgrep '*' "$ftemp" > "$fpkgwildcards"
# return unavailable packages
debug "unavailable packagenames, if any:"
comm -23 "$fpkgnames" "$ftemp"
# return unavailable wildcards
debug "unavailable wildcards, if any:"
while read i; do
# replacing * with regexp's \.+
pattern="^`echo ${i#^} | sed -e 's/\*/.\\\\+/'`$"
grep -q "$pattern" "$favaillist" || echo "$i"
done < "$fpkgwildcards"
}
[ "$#" -gt 0 ] || error "need at least one argument, a packagelist to check"
# reusable temporary files with self-cleanup at exit
TEMP="${TMP:-/tmp}"
trap exit_handler HUP INT QUIT TERM EXIT
favaillist="`mktemp $TEMP/pkgchecker.avail.XXXXX`"
fpkgnames="`mktemp $TEMP/pkgchecker.names.XXXXX`"
fpkgwildcards="`mktemp $TEMP/pkgchecker.wildcards.XXXXX`"
ftemp="`mktemp $TEMP/pkgchecker.XXXXX`"
# make sure pkgnames dump is handy
case "$1" in
"-n"|"--pkgnames")
[ -f "$2" ] && {
sort "$2" > "$favaillist"
shift; shift
} || error "-n needs valid pkgnames filename"
;;
esac
[ -s "$favaillist" ] || dump_pkgnames
# now on to the real job; Q: skip *.in or not?
[ "$#" -eq 1 ] && MULTI= || MULTI=1
for list in "$@"; do
check_pkglist "$list"
done

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

@@ -1,24 +0,0 @@
#!/bin/sh
# try making build logs more diffable
# see also reports.mk
[ -n "$BUILDDIR" ] || exit 1
sed -r \
-e "s,$BUILDDIR,,g" \
-e '/\/var\/lib\/apt\/lists/d' \
-e 's/... .. ..:..:..//g' \
-e 's/\[[0-9]+\]//g' \
-e '/^(Reading Package Lists|Building Dependency Tree)/d' \
-e '/^(Fetched|Need to get|After unpacking) /d' \
-e '/^(Preparing packages for installation|Done\.)/d' \
-e '/^hsh(|-(initroot|install|fakedev|(mk|rm)chroot|run)): /d' \
-e '/^(hasher-priv|mkaptbox|(mk|rm)dir): /d' \
-e '/^mki-((invalidate-|)cache|check-obsolete|prepare): /d' \
-e '/^(mode of|changed (group|ownership)|removed) /d' \
-e '/^chroot\/.in\//d' \
-e '/ has started executing\.$/d' \
-e '/\/var\/log\/apt\.log$/d' \
-e '/\/usr\/share\/apt\/scripts\/log\.lua/d' \
-e '/\.rpm$/d' \
-e "/' -> '/d"

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,451 +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
BOOTLOADERPARTSIZEM=0 # PReP partition size (ppc*)
CUR_BOUNDARY=0 # align first partition at 1MB for performance (+1)
BOOTFSTYPE=
BOOTPART=
EFIPARTFSTYPE=
EFIPART=
BOOTLOADER="$5"
if [ -n "$6" ]; then
ARCH="$6"
else
ARCH="$(arch)"
fi
case "$ARCH" in
e2k)
BOOTFSTYPE="ext2" # firmware knows it
BLOCKDEV="/dev/sda" # ...hopefully...
BOOTPART="1"
ROOTPART="2"
;;
ppc*)
BOOTFSTYPE="ext4"
BLOCKDEV="/dev/sda"
BOOTLOADERPART="1"
BOOTLOADERPARTSIZEM="8"
ROOTPART="2"
;;
arm*|aarch64)
BLOCKDEV="/dev/sda"
EFIPART="1"
EFIPARTSIZEM="256"
EFIPARTFSTYPE="fat"
ROOTPART="2"
;;
*)
if [ "$BOOTLOADER" == grub-efi ]; then
EFIPART="1"
EFIPARTSIZEM="256"
EFIPARTFSTYPE="fat"
ROOTPART="2"
else
ROOTPART="1"
fi
BLOCKDEV="/dev/sda"
;;
esac
PARTTABLE="$7"
if [ -z "$PARTTABLE" ]; then
if [ "$BOOTLOADER" == grub-efi ]; then
PARTTABLE=gpt
else
PARTTABLE=msdos
fi
fi
# 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="$OFFSET"MiB
fi
if [ -n "$2" ]; then
CUR_FS="$2"
else
CUR_FS=ext2
fi
parting mkpart primary "$CUR_FS" "$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} \
${EFIPARTFSTYPE:+mkfs.$EFIPARTFSTYPE}"
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=
EFIPARTFS=
if [ -n "$BOOTPART" ]; then
BOOTFS="$ROOTFS/boot"
fi
if [ -n "$EFIPART" ]; then
EFIPARTFS="$ROOTFS/boot/efi"
fi
exit_handler() {
rc=$?
cd /
if [ -n "$ROOTFS" ]; then
umount ${EFIPARTFS:+"$EFIPARTFS"} ${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 + $EFIPARTSIZEM + $BOOTLOADERPARTSIZEM + $BOOTSIZEM + $ROOTSIZEM - 1))"
dd if=/dev/zero of="$IMG" conv=notrunc bs=$MB count=1 seek="$OFFSET"
losetup "$LOOPDEV" "$IMG"
parting mklabel "$PARTTABLE"
if [ -n "$BOOTLOADERPART" ] && [ -n "$BOOTLOADERPARTSIZEM" ]; then
case "$ARCH" in
ppc*)
parting mkpart primary ext2 2048s $((BOOTLOADERPARTSIZEM + 1))MiB
CUR_BOUNDARY="$BOOTLOADERPARTSIZEM"
parting set 1 prep on
parting set 1 boot on
;;
esac
fi
if [ -n "$EFIPART" ]; then
EFIDEV="$EFIDEV$EFIPART"
if [ "$PARTTABLE" == gpt ]; then
parting mkpart fat32 2048s $(($EFIPARTSIZEM + 1))MiB
else
parting mkpart primary fat32 2048s $(($EFIPARTSIZEM + 1))MiB
fi
CUR_BOUNDARY="$EFIPARTSIZEM"
parting set 1 boot on
if [ "$PARTTABLE" == gpt ]; then
parting set 1 esp on
fi
fi
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
if [ -n "$BOOTLOADERPART" ] && [ -n "$BOOTLOADERPARTSIZEM" ]; then
LOOPBOOTLOADER="/dev/mapper/$(basename "$LOOPDEV")p$BOOTLOADERPART"
fi
if [ -n "$EFIPART" ]; then
LOOPEFI="/dev/mapper/$(basename "$LOOPDEV")p$EFIPART"
mkfs.fat -F32 "$LOOPEFI"
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 "$BOOTUUID" ]; then
BOOTDEV="UUID=$BOOTUUID"
fi
fi
if [ -n "$EFIPART" ]; then
EFIUUID="$(blkid -s UUID -o value -c /dev/null "$LOOPEFI")"
if [ -n "$EFIUUID" ]; then
EFIDEV="UUID=$EFIUUID"
fi
fi
# mount and populate it
mkdir -pm755 "$ROOTFS"
mount "$LOOPROOT" "$ROOTFS"
if [ -n "$BOOTPART" ]; then
mkdir -pm700 "$BOOTFS"
mount "$LOOPBOOT" "$BOOTFS"
fi
if [ -n "$EFIPART" ]; then
mkdir -pm751 "$EFIPARTFS"
mount "$LOOPEFI" "$EFIPARTFS"
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...
if grep -qe "[[:space:]]/[[:space:]]" "$ROOTFS/etc/fstab"; then \
sed -i "s/LABEL=ROOT/$ROOTDEV/" "$ROOTFS/etc/fstab"
else
echo "$ROOTDEV / $ROOTFSTYPE relatime 1 1" >> "$ROOTFS/etc/fstab"
fi
# target device at once
if [ -n "$BOOTPART" ]; then
echo "$BOOTDEV /boot $BOOTFSTYPE defaults 1 2" >> "$ROOTFS/etc/fstab"
fi
if [ -n "$EFIPART" ]; then
echo "$EFIDEV /boot/efi vfat umask=0,quiet,showexec,iocharset=utf8,codepage=866 1 2" >> "$ROOTFS/etc/fstab"
fi
# Query ARCH in chroot and redefine arch-dependent variable
ARCH="$(chroot "$ROOTFS" rpm --eval '%_host_cpu')"
# 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=
KVERSIONS="$(chroot "$ROOTFS" rpm -qa 'kernel-image*' \
--qf '%{installtime} %{version}-%{name}-%{release}\n' \
| sort -n \
| cut -f 2 -d ' ' \
| sed 's/kernel-image-//')"
[ -n "$KVERSIONS" ] || fatal "unable to deduce kernel version"
rm -f .origver
# clean fstab
sed -i "/LABEL=ROOT/d" "$ROOTFS/etc/fstab"
# ...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
# Update cmdline.txt for Raspberry Pi
[ -f "$ROOTFS/boot/efi/cmdline.txt" ] &&
sed -i "s/LABEL=ROOT/$ROOTDEV/" "$ROOTFS/boot/efi/cmdline.txt"
# Setup bootloader
case "$BOOTLOADER" in
uboot)
EXTLINUX_CONF="$ROOTFS/boot/extlinux/extlinux.conf"
sed -i "s/LABEL=ROOT/$ROOTDEV/g" "$EXTLINUX_CONF"
parting set "$ROOTPART" boot on
;;
lilo)
# 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
;;
grub-efi)
chroot "$ROOTFS" grub-mkconfig -o /boot/grub/grub.cfg
case "$ARCH" in
*86)
chroot "$ROOTFS" grub-install --target=i386-efi --recheck \
--removable --no-uefi-secure-boot
sed -i 's/initrd16/initrdefi/g' "$ROOTFS/boot/grub/grub.cfg"
sed -i 's/linux16/linuxefi/g' "$ROOTFS/boot/grub/grub.cfg"
;;
x86_64)
chroot "$ROOTFS" grub-install --target=i386-efi --recheck \
--removable --no-uefi-secure-boot
chroot "$ROOTFS" grub-install --target=x86_64-efi --recheck \
--removable --no-uefi-secure-boot
sed -i 's/initrd16/initrdefi/g' "$ROOTFS/boot/grub/grub.cfg"
sed -i 's/linux16/linuxefi/g' "$ROOTFS/boot/grub/grub.cfg"
;;
aarch64)
chroot "$ROOTFS" grub-install --target=arm64-efi --recheck \
--removable --no-uefi-secure-boot
;;
armh)
chroot "$ROOTFS" grub-install --target=arm-efi --recheck \
--removable --no-uefi-secure-boot
;;
esac
;;
grub)
chroot "$ROOTFS" grub-mkconfig -o /boot/grub/grub.cfg
case "$ARCH" in
*86*)
chroot "$ROOTFS" grub-install --target=i386-pc "$LOOPDEV"
sed -i 's/initrdefi/initrd16/g' "$ROOTFS/boot/grub/grub.cfg"
sed -i 's/linuxefi/linux16/g' "$ROOTFS/boot/grub/grub.cfg"
;;
ppc*)
[ -z "$LOOPBOOTLOADER" ] ||
chroot "$ROOTFS" grub-install --target=powerpc-ieee1275 \
--no-nvram "$LOOPBOOTLOADER"
;;
esac
;;
esac
if [ -n "$SUDO_USER" ]; then
chown "$SUDO_USER:$(id -g "$SUDO_USER")" "$IMG" ||:
fi
# maybe qemu interpreter was copied to chroot;
# this is no longer necessary, remove
rm -rf "$ROOTFS"/.host ||:

144
bin/tar2vm Executable file
View File

@@ -0,0 +1,144 @@
#!/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}"
# SCSI case hardwired so far;
# use virtio_scsi setup if performance is critical
# *and* updating the image is going to occur
BOOTDEV="/dev/sda"
# last preparations...
for i in losetup sfdisk parted kpartx mkfs."$ROOTFSTYPE"; do
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 -s "$LOOPDEV"
LOOPDEV1="/dev/mapper/$(basename "$LOOPDEV")p1"
mkfs."$ROOTFSTYPE" "$LOOPDEV1"
ROOTUUID="$(blkid -s UUID -o value -c /dev/null "$LOOPDEV1")"
if [ -n "$ROOTUUID" ]; then
ROOTDEV="UUID=$ROOTUUID"
else
ROOTDEV="${BOOTDEV}1"
fi
# mount and populate it
mkdir -pm755 "$ROOTFS"
mount "$LOOPDEV1" "$ROOTFS"
tar -C "$ROOTFS" --numeric-owner -xf "$TAR"
for i in /dev /proc /sys; do mount --bind "$i" "$ROOTFS$i"; done
# NB: different storage modules might be needed for different VMs
VIRTIO_MODULES="virtio_pci virtio_blk virtio_scsi"
echo "$LOOPDEV1 / $ROOTFSTYPE defaults 1 1" >> "$ROOTFS/etc/fstab"
echo "MODULES_PRELOAD += sd_mod ata_piix $VIRTIO_MODULES $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=$BOOTDEV
$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,66 +0,0 @@
ifeq (distro,$(IMAGE_CLASS))
ifeq (,$(filter-out i586 x86_64 ppc64le aarch64,$(ARCH)))
distro/alt-server: server_groups_primary = $(addprefix centaurus/,\
ipmi netinst sogo)
ifeq (,$(filter-out x86_64 ppc64le aarch64,$(ARCH)))
distro/alt-server: server_groups_virtipa = $(addprefix centaurus/,\
v12n-server freeipa-server)
endif
endif
ifeq (,$(filter-out i586 x86_64 ppc64le aarch64 e2k%,$(ARCH)))
distro/alt-server: server_groups_desktop = $(addprefix centaurus/,\
80-desktop emulators freenx-server mate office pidgin vlc xorg)
endif
distro/alt-server: monitoring = $(addprefix server-v/,\
90-monitoring zabbix-agent telegraf prometheus-node_exporter \
monit collectd nagios-nrpe)
# FIXME: generalize vm-profile
distro/alt-server:: distro/.base mixin/alt-server use/vmguest/base \
use/bootloader/grub use/rescue/base use/stage2/kms\
use/stage2/fs use/stage2/hid use/stage2/md \
use/stage2/mmc use/stage2/net use/stage2/net-nfs \
use/stage2/rtc use/stage2/sbc use/stage2/scsi use/stage2/usb \
use/docs/license
@$(call add,MAIN_GROUPS,$(server_groups_primary))
@$(call add,MAIN_GROUPS,$(server_groups_virtipa))
@$(call add,MAIN_GROUPS,$(server_groups_desktop))
@$(call add,MAIN_LISTS,centaurus/disk-dvd)
@$(call add,MAIN_LISTS,centaurus/disk-server-light)
ifneq (,$(filter-out e2k%,$(ARCH)))
@$(call add,INSTALL2_PACKAGES,installer-feature-desktop-suspend-stage2)
endif
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
@$(call add,INSTALL2_PACKAGES,installer-feature-setup-plymouth)
endif
@$(call add,INSTALL2_PACKAGES,strace)
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(call add,INSTALL2_BRANDING,notes)
@$(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)
ifeq (,$(filter-out e2k,$(ARCH)))
@$(call set,META_APP_ID,ALT Server for Elbrus-4.4)
endif
ifeq (,$(filter-out e2kv4,$(ARCH)))
@$(call set,META_APP_ID,ALT Server for Elbrus-80x)
endif
ifeq (,$(filter-out x86_64 i586,$(ARCH)))
distro/alt-server:: use/memtest; @:
endif
ifeq (,$(filter-out x86_64 aarch64,$(ARCH)))
distro/alt-server:: use/efi/refind +efi; @:
endif
ifeq (,$(filter-out ppc64le aarch64 e2k%,$(ARCH)))
distro/alt-server:: use/install2/vnc/listen; @:
endif
endif

View File

@@ -1,76 +0,0 @@
ifeq (armh,$(ARCH))
ifeq (ve,$(IMAGE_CLASS))
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-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-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,66 +0,0 @@
ifeq (distro,$(IMAGE_CLASS))
distro/alt-workstation: workstation_groups_x86 = $(addprefix workstation/,\
3rdparty blender clamav cloud-clients freecad \
gtk-dictionary kvm smartcard voip-clients)
distro/alt-workstation: distro/.base +vmguest +wireless +efi \
mixin/desktop-installer mixin/alt-workstation \
mixin/alt-workstation-install \
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/vmguest/kvm/x11 use/stage2/kms \
use/branding/complete use/docs/license \
use/domain-client/full use/x11/amdgpu use/x11/lightdm/gtk \
use/e2k/multiseat/801/full use/e2k/x11/101 use/e2k/sound/401
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
@$(call add,MAIN_GROUPS,$(workstation_groups_x86))
endif
ifeq (,$(filter-out x86_64,$(ARCH)))
@$(call add,MAIN_GROUPS,workstation/virtualbox)
@$(call add,BASE_KMODULES,kvm virtualbox)
endif
ifeq (,$(filter-out e2k%,$(ARCH)))
@$(call add,THE_PACKAGES,python-module-serial)
@$(call add,THE_PACKAGES,setup-mate-nocomposite)
@$(call add,THE_PACKAGES,xorg-drv-smi) # use/x11/smi
@$(call add,MAIN_GROUPS,workstation/alterator-web)
@$(call add,SERVICES_ENABLE,ahttpd) # in case it gets installed
ifeq (,$(filter-out e2k,$(ARCH)))
@$(call set,META_VOL_ID,ALT Workstation for Elbrus 401-PC)
endif # e2k
ifeq (,$(filter-out e2kv4,$(ARCH)))
@$(call set,META_VOL_ID,ALT Workstation for Elbrus 801/101-PC)
endif # e2kv4
endif # e2k%
@$(call add,RESCUE_BOOTARGS,nomodeset vga=0)
@$(call add,EFI_BOOTARGS,lang=ru_RU)
endif # distro
ifeq (vm,$(IMAGE_CLASS))
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
vm/alt-workstation: vm/systemd use/x11/armsoc use/x11/lightdm/gtk \
use/oem use/repo use/bootloader/uboot mixin/alt-workstation
@$(call add,THE_PACKAGES,rootfs-installer-features)
@$(call add,THE_PACKAGES,installer-feature-lightdm-stage3)
@$(call add,THE_PACKAGES,installer-feature-quota-stage2)
vm/alt-workstation-rpi: vm/alt-workstation use/arm-rpi4/full; @:
endif
ifeq (,$(filter-out aarch64,$(ARCH)))
vm/alt-workstation-tegra: vm/alt-workstation use/aarch64-tegra; @:
endif
ifeq (,$(filter-out armh,$(ARCH)))
vm/alt-workstation-mcom02: vm/alt-workstation use/armh-mcom02/x11; @:
endif
vm/alt-workstation-cloud: vm/alt-p9-cloud use/x11/lightdm/gtk \
mixin/alt-workstation
@$(call add,THE_PACKAGES,cloud-init-config-netplan)
@$(call add,SYSTEMD_SERVICES_DISABLE,network.service)
endif

View File

@@ -4,11 +4,23 @@ ifeq (distro,$(IMAGE_CLASS))
distro/.desktop-base: distro/.installer use/syslinux/ui/vesamenu use/x11/xorg
@$(call set,INSTALLER,desktop)
distro/.desktop-mini: distro/.desktop-base use/x11/xdm; @:
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; @:
endif

View File

@@ -1,74 +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/alt-rescue: vm/.e2k-rescue +sysvinit
@$(call add,KFLAVOURS,elbrus-def)
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-installer-base: distro/.base mixin/e2k-base \
use/install2 use/install2/packages use/e2k \
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_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_PACKAGES,python-module-serial)
@$(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; @:
endif

View File

@@ -1,141 +0,0 @@
# ALT Education
mixin/education: use/kernel use/firmware \
+systemd \
use/services \
use/ntp/chrony \
use/volumes/education \
use/x11/xorg use/x11/amdgpu use/x11/lightdm/gtk +pulse \
+nm use/x11/gtk/nm use/net-eth/dhcp \
use/xdg-user-dirs/deep \
use/office/LibreOffice/still \
use/office/LibreOffice/gtk3 \
use/office/LibreOffice/extensions \
use/office/LibreOffice/integrated
@$(call set,BRANDING,alt-education)
@$(call add,THE_BRANDING,indexhtml)
@$(call add,THE_BRANDING,menu xfce-settings system-settings)
@$(call add,THE_LISTS,slinux/xfce-base)
@$(call add,THE_LISTS,slinux/misc-base)
@$(call add,THE_LISTS,gnome-p2p)
@$(call add,THE_LISTS,$(call tags,base l10n))
@$(call add,BASE_LISTS,education/base)
@$(call add,BASE_LISTS,workstation/3rdparty)
@$(call add,THE_LISTS,education/misc)
@$(call add,THE_PACKAGES,usbutils pv lftp links2 openssh-server)
@$(call add,THE_PACKAGES,xinput xorg-drv-libinput)
@$(call add,THE_PACKAGES,net-tools fdisk gdisk parted partclone)
@$(call add,THE_PACKAGES,disable-usb-autosuspend)
@$(call add,THE_LISTS,$(call tags,base regular))
ifeq (distro,$(IMAGE_CLASS))
mixin/education-live: \
use/live/install use/live/suspend \
use/live/repo use/live/x11 use/live/rw
@$(call set,GLOBAL_LIVE_NO_CLEANUPDB,true)
@$(call add,LIVE_PACKAGES,livecd-timezone)
@$(call add,LIVE_LISTS,slinux/net-base)
@$(call add,LIVE_LISTS,$(call tags,base rescue))
mixin/education-installer: \
use/memtest \
use/branding/complete \
use/install2/vnc use/install2/full \
use/l10n/default/ru_RU +vmguest \
+efi use/efi/refind use/efi/shell \
use/isohybrid use/luks \
use/install2/fonts \
+plymouth +wireless \
use/stage2/fs use/stage2/hid use/stage2/md \
use/stage2/mmc use/stage2/net use/stage2/net-nfs \
use/stage2/rtc use/stage2/sbc use/stage2/scsi use/stage2/usb
@$(call set,INSTALLER,education)
@$(call set,META_VOL_ID,ALT Education 9.1 $(ARCH))
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_APP_ID,$(DISTRO_VERSION) $(ARCH))
@$(call set,META_VOL_SET,ALT)
@$(call add,INSTALL2_PACKAGES,disable-usb-autosuspend)
@$(call add,INSTALL2_PACKAGES,installer-feature-samba-usershares-stage2)
@$(call add,MAIN_LISTS,slinux/not-install-full)
@$(call add,MAIN_GROUPS,education/01_preschool)
@$(call add,MAIN_GROUPS,education/02_gradeschool)
@$(call add,MAIN_GROUPS,education/03_highschool)
@$(call add,MAIN_GROUPS,education/04_secondary_vocational)
@$(call add,MAIN_GROUPS,education/05_university)
@$(call add,MAIN_GROUPS,education/07_teacher)
@$(call add,MAIN_GROUPS,education/08_server-apps-edu)
@$(call add,THE_PACKAGES,bluez pulseaudio-bluez)
@$(call add,THE_PACKAGES,alterator-fbi)
@$(call add,THE_PACKAGES,alt-rootfs-installer)
@$(call add,BASE_PACKAGES,os-prober)
@$(call add,BASE_PACKAGES,guest-account)
@$(call add,MAIN_PACKAGES,iperf3)
@$(call add,MAIN_PACKAGES,stellarium)
@$(call add,MAIN_PACKAGES,libreoffice-block-macros)
@$(call add,MAIN_PACKAGES,lmms)
@$(call add,STAGE2_PACKAGES,xorg-conf-libinput-touchpad)
@$(call add,STAGE2_PACKAGES,chrony)
@$(call add,STAGE1_MODLISTS,stage2-mmc)
#FIXME# mixin/education-live \
#
distro/education: distro/alt-education; @:
distro/alt-education: distro/.installer \
mixin/education \
mixin/education-live \
mixin/education-installer \
use/e2k/multiseat/801/full +power
@$(call set,INSTALLER,education)
ifeq (,$(filter-out e2k%,$(ARCH)))
@$(call add,MAIN_GROUPS,education/06_kdesc)
@$(call add,MAIN_PACKAGES,xorg-conf-noblank)
@$(call add,THE_PACKAGES,firefox-esr-ru flashrom)
@$(call add,THE_PACKAGES,xscreensaver-hacks-rss_glx)
@$(call add,DEFAULT_SERVICES_ENABLE,acpid dnsmasq)
@$(call add,DEFAULT_SERVICES_DISABLE,upower clamd clamsmtpd)
@$(call add,CLEANUP_PACKAGES,plymouth plymouth-scripts)
@$(call add,CONTROL,pam_mktemp:disabled) ### private /tmp dirs
@$(call add,INSTALL2_PACKAGES,ImageMagick-tools) ### DROPME: for import on /pkg ###
else
@$(call add,MAIN_GROUPS,education/06_kde5)
@$(call add,MAIN_GROUPS,education/09_video-conferencing)
endif # e2k%
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
@$(call set,KFLAVOURS,un-def std-def)
@$(call add,MAIN_PACKAGES,kernel-headers-un-def)
@$(call add,MAIN_PACKAGES,kernel-headers-modules-un-def)
@$(call add,MAIN_PACKAGES,kernel-headers-std-def)
@$(call add,MAIN_PACKAGES,kernel-headers-modules-std-def)
@$(call add,THE_KMODULES,virtualbox)
@$(call add,THE_KMODULES,nvidia)
@$(call add,THE_KMODULES,lsadrv bbswitch)
@$(call add,THE_KMODULES,staging)
@$(call add,MAIN_KMODULES,bbswitch)
@$(call add,BASE_PACKAGES,nextcloud-client)
@$(call add,THE_PACKAGES,xorg-drv-vmware xorg-drv-vmmouse)
@$(call add,THE_PACKAGES,syslinux)
@$(call add,MAIN_PACKAGES,owamp-server)
endif
endif # distro
ifeq (vm,$(IMAGE_CLASS))
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
vm/education: vm/alt-education; @:
vm/alt-education: vm/systemd use/repo use/x11/armsoc \
use/oem use/bootloader/uboot mixin/education
@$(call add,DEFAULT_SERVICES_DISABLE,multipathd)
@$(call add,THE_PACKAGES,installer-feature-lightdm-stage3)
@$(call add,THE_PACKAGES,installer-feature-quota-stage2)
vm/alt-education-rpi: vm/alt-education use/arm-rpi4/full; @:
endif
ifeq (,$(filter-out aarch64,$(ARCH)))
vm/alt-education-tegra: vm/alt-education use/aarch64-tegra; @:
endif
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,142 +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; @:
distro/.live-x11: distro/.live-base use/live/x11; @:
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
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
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)
# NB: use/browser won't do as it provides a *single* browser ATM
distro/live-privacy: distro/.base +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,56 +0,0 @@
mixin/alt-server: server_groups = $(addprefix centaurus/,\
10-alterator 20-server-apps 50-freeipa 70-dev 90-docs sambaDC buildsystem dhcp-server-a diag-tools dns-server-a ftp-server-a mail-server-a mediawiki owncloud domain-server freeipa-client)
mixin/alt-server: +installer +systemd \
use/branding/notes use/syslinux/ui/gfxboot \
use/plymouth/stage2 use/control use/services \
use/l10n/default/ru_RU use/install2/stage3 \
use/install2/vnc use/install2/xfs use/install2/fat \
use/volumes/cliff-server \
use/apt-conf/branch \
use/fonts/install2 \
use/install2/stage3 \
use/firmware/server \
use/net/etcnet
@$(call set,INSTALLER,centaurus)
@$(call set,BRANDING,alt-server)
@$(call add,THE_BRANDING,alterator)
ifeq (,$(filter-out i586 x86_64 aarch64,$(ARCH)))
@$(call add,THE_BRANDING,bootloader bootsplash)
@$(call set,KFLAVOURS,std-def)
endif
@$(call add,BASE_LISTS,centaurus/base)
@$(call add,BASE_LISTS,centaurus/base-server)
@$(call add,LIVE_LISTS,centaurus/live)
@$(call add,LIVE_LISTS,centaurus/remmina)
@$(call add,LIVE_LISTS,centaurus/cups)
@$(call add,LIVE_LISTS,centaurus/nm)
@$(call add,LIVE_LISTS,centaurus/domain-client)
@$(call add,MAIN_GROUPS,$(server_groups))
@$(call add,MAIN_LISTS,centaurus/cppcheck)
@$(call add,MAIN_LISTS,centaurus/disk)
@$(call add,THE_PROFILES,centaurus-10-server)
@$(call add,THE_PROFILES,centaurus-20-serverDC)
ifeq (,$(filter-out i586 x86_64 aarch64 e2k%,$(ARCH)))
@$(call add,THE_PROFILES,centaurus-30-desktop)
endif
@$(call add,THE_PROFILES,minimal)
@$(call add,STAGE1_MODLISTS,stage2-mmc)
@$(call add,INSTALL2_PACKAGES,installer-feature-multipath)
@$(call add,INSTALL2_PACKAGES,installer-feature-desktop-other-fs-stage2)
@$(call add,INSTALL2_PACKAGES,installer-feature-alphabet-profiles)
@$(call add,INSTALL2_PACKAGES,installer-feature-load-tun)
@$(call add,INSTALL2_PACKAGES,installer-feature-network-shares-stage3)
@$(call add,INSTALL2_PACKAGES,installer-feature-auto-domain)
ifneq (,$(filter-out e2k%,$(ARCH)))
@$(call add,INSTALL2_PACKAGES,installer-feature-quota-stage2)
@$(call add,MAIN_GROUPS,centaurus/jitsi-meet)
endif
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(call add,INSTALL2_PACKAGES,xorg-conf-synaptics)
@$(call add,COMMON_PACKAGES,vim-console)
@$(call add,DEFAULT_SERVICES_ENABLE,rpcbind sshd bind)
@$(call set,META_VOL_ID,ALT Server 9.1 $(ARCH))
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_VOL_SET,ALT)
@$(call set,META_APP_ID,ALT Server 9.1.0 $(ARCH) $(shell date +%F))

View File

@@ -1,75 +0,0 @@
# shared across all supported arches, can be complemented per arch
mixin/alt-workstation-install: workstation_groups = $(addprefix workstation/,\
10-office 20-networking 30-multimedia 40-virtualization 50-publishing \
agents emulators ganttproject gnome-peer-to-peer graphics-editing \
libreoffice mate-usershare pidgin raccess scanning scribus \
sound-editing thunderbird vlc freeipa-client)
mixin/alt-workstation: +systemd +systemd-optimal +pulse +nm +power \
use/kernel/net use/l10n/default/ru_RU \
use/x11/xorg use/x11-autostart use/x11/gtk/nm \
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,COMMON_PACKAGES,vim-console)
@$(call add,THE_LISTS,$(call tags,archive extra))
@$(call add,THE_LISTS,$(call tags,mobile mate))
@$(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 set,GLOBAL_LIVE_NO_CLEANUPDB,true)
@$(call add,CONTROL,xdg-user-dirs:enabled)
@$(call add,SERVICES_DISABLE,sshd)
@$(call add,SERVICES_DISABLE,auditd)
@$(call add,SERVICES_ENABLE,cups smb nmb httpd2 bluetoothd libvirtd)
@$(call add,SERVICES_ENABLE,chronyd)
@$(call add,SERVICES_ENABLE,crond)
@$(call add,SERVICES_ENABLE,fstrim.timer)
@$(call add,SERVICES_DISABLE,powertop bridge gpm)
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_VOL_SET,ALT)
@$(call set,META_VOL_ID,ALT Workstation $(DISTRO_VERSION) $(ARCH))
@$(call set,META_APP_ID,ALT Workstation $(DISTRO_VERSION) $(ARCH) $(shell date +%F))
@$(call set,DOCS,alt-workstation)
mixin/alt-workstation-install: +installer \
use/install2/fat use/install2/vnc \
use/stage2/fs use/stage2/hid use/stage2/md \
use/stage2/mmc use/stage2/net use/stage2/net-nfs \
use/stage2/rtc use/stage2/sbc use/stage2/scsi use/stage2/usb
@$(call set,INSTALLER,alt-workstation)
@$(call add,INSTALL2_PACKAGES,installer-feature-slideshow)
@$(call add,INSTALL2_PACKAGES,alterator-notes)
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(call add,INSTALL2_PACKAGES,btrfs-progs)
@$(call add,INSTALL2_PACKAGES,open-iscsi)
@$(call add,INSTALL2_PACKAGES,xorg-conf-libinput-touchpad)
ifneq (,$(filter-out e2k%,$(ARCH)))
@$(call add,INSTALL2_PACKAGES,installer-feature-quota-stage2)
@$(call add,LIVE_PACKAGES,installer-feature-quota-stage2)
@$(call add,MAIN_LISTS,workstation/extras)
endif
@$(call add,LIVE_PACKAGES,livecd-installer-features)
@$(call add,LIVE_PACKAGES,installer-feature-lightdm-stage3)
@$(call add,MAIN_LISTS,$(call tags,xorg vaapi))
@$(call add,MAIN_PACKAGES,solaar)
@$(call add,STAGE2_PACKAGES,chrony)
@$(call add,MAIN_GROUPS,$(workstation_groups))

View File

@@ -1,160 +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
mixin/regular-x11: use/luks use/volumes/regular \
use/browser/firefox/i18n use/browser/firefox/h264 \
use/branding use/ntp/chrony use/services/lvm2-disable
@$(call add,THE_LISTS,$(call tags,(base || desktop) && regular))
@$(call add,THE_PACKAGES,disable-usb-autosuspend)
@$(call add,THE_PACKAGES,btrfs-progs)
@$(call add,THE_PACKAGES,gpm)
@$(call add,DEFAULT_SERVICES_DISABLE,gpm powertop)
# common WM live/installer bits
mixin/regular-desktop: +alsa +power use/x11/xorg use/xdg-user-dirs use/l10n \
use/fonts/otf/adobe use/fonts/otf/mozilla use/net-eth use/branding/notes
@$(call add,THE_PACKAGES,pam-limits-desktop beesu polkit)
@$(call add,THE_PACKAGES,alterator-notes dvd+rw-tools)
@$(call add,THE_BRANDING,alterator graphics indexhtml)
@$(call add,THE_PACKAGES,$$(THE_IMAGEWRITER))
@$(call set,THE_IMAGEWRITER,altmediawriter)
@$(call add,THE_PACKAGES,upower bluez udev-rules-rfkill-uaccess)
@$(call add,DEFAULT_SERVICES_DISABLE,gssd idmapd krb5kdc rpcbind)
@$(call add,DEFAULT_SERVICES_ENABLE,bluetoothd)
@$(call add,DEFAULT_SERVICES_ENABLE,cups)
@$(call add,DEFAULT_SERVICES_ENABLE,alteratord)
mixin/desktop-extra:
@$(call add,BASE_LISTS,$(call tags,(archive || base) && extra))
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)
mixin/regular-icewm: use/fonts/ttf/redhat +icewm +nm-gtk
@$(call add,THE_LISTS,$(call tags,regular icewm))
@$(call add,THE_LISTS,$(call tags,desktop nm))
@$(call add,THE_PACKAGES,icewm-startup-networkmanager)
@$(call add,THE_PACKAGES,mnt)
# 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/seamonkey/i18n
@$(call add,THE_BRANDING,graphics)
mixin/regular-cinnamon: use/x11/cinnamon use/x11/lightdm/slick +nm-gtk \
use/fonts/ttf/google use/net/nm/mmgui use/im; @:
mixin/regular-gnome3: use/x11/gnome3 use/fonts/ttf/redhat +nm-gtk
@$(call add,THE_PACKAGES,gnome3-regular xcalib templates)
@$(call add,THE_PACKAGES,chrome-gnome-shell)
@$(call add,THE_PACKAGES,firefox-gnome_shell_integration)
@$(call add,THE_PACKAGES,gnome-software-disable-updates)
mixin/regular-kde5: use/x11/kde5 use/browser/falkon \
use/fonts/ttf/google use/fonts/ttf/redhat use/fonts/zerg \
+nm +pulse
@$(call add,THE_PACKAGES,kde5-telepathy falkon-kde5)
mixin/xfce-base: use/x11/xfce +nm-gtk \
use/fonts/ttf/redhat use/fonts/ttf/google/extra
@$(call add,THE_BRANDING,xfce-settings)
@$(call add,THE_PACKAGES,xreader)
@$(call add,THE_PACKAGES,xdg-user-dirs-gtk)
mixin/regular-xfce: mixin/xfce-base use/x11/xfce/full \
use/domain-client; @:
mixin/regular-xfce-sysv: mixin/xfce-base \
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,qasmixer)
@$(call add,THE_PACKAGES,xfce4-screensaver)
@$(call add,THE_PACKAGES,sysstat leafpad)
@$(call add,THE_PACKAGES,nload)
@$(call add,THE_PACKAGES,NetworkManager-tui)
@$(call add,THE_PACKAGES,apt-conf-ignore-systemd)
@$(call add,THE_PACKAGES,pandoc)
mixin/regular-lxde: use/x11/lxde use/im +nm-gtk
@$(call add,THE_PACKAGES,qasmixer qpdfview)
mixin/regular-lxqt: use/x11/lxqt +nm-gtk; @:
mixin/mate-base: use/x11/mate use/fonts/ttf/google +nm-gtk
@$(call add,THE_LISTS,$(call tags,mobile mate))
mixin/regular-mate: mixin/mate-base use/domain-client
@$(call add,THE_LISTS,$(call tags,base smartcard))
mixin/office: use/fonts/ttf/google use/fonts/ttf/xo
@$(call add,THE_LISTS,$(call tags,desktop && (cups || office)))
@$(call add,THE_PACKAGES,apt-indicator)
# 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; @:
mixin/regular-builder: use/dev/builder/base use/net-eth/dhcp use/ntp/chrony
@$(call add,THE_PACKAGES,bash-completion elinks gpm lftp openssh)
@$(call add,THE_PACKAGES,rpm-utils screen tmux wget zsh)
@$(call add,THE_PACKAGES,apt-repo eepm)
@$(call add,DEFAULT_SERVICES_ENABLE,gpm)
### 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)
@$(call set,GLOBAL_NET_ETH,)
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; @:

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

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

View File

@@ -1,103 +0,0 @@
# p9 base kits
mixin/p9: use/browser/firefox/esr
@$(call set,BRANDING,alt-starterkit)
@$(call set,IMAGE_FLAVOUR,$(subst alt-p9-,,$(IMAGE_NAME)))
@$(call set,META_VOL_ID,ALT p9 $$(IMAGE_FLAVOUR)/$(ARCH))
ifeq (distro,$(IMAGE_CLASS))
distro/alt-p9-cinnamon distro/alt-p9-enlightenment \
distro/alt-p9-gnome3 distro/alt-p9-gnustep-sysv \
distro/alt-p9-icewm-sysv distro/alt-p9-kde5 \
distro/alt-p9-lxde distro/alt-p9-lxqt \
distro/alt-p9-mate distro/alt-p9-rescue \
distro/alt-p9-wmaker-sysv distro/alt-p9-xfce \
distro/alt-p9-xfce-sysv distro/alt-p9-xfce-sysv-install: \
distro/alt-p9-%: distro/regular-% mixin/p9; @:
distro/alt-p9-jeos-sysv distro/alt-p9-jeos-ovz distro/alt-p9-jeos-systemd \
distro/alt-p9-server-systemd distro/alt-p9-server-sysv \
distro/alt-p9-server-ovz \
distro/alt-p9-server-hyperv distro/alt-p9-server-samba4 \
distro/alt-p9-server-pve distro/alt-p9-server-lxd: \
distro/alt-p9-%: distro/regular-% mixin/p9; @:
distro/alt-p9-builder: distro/regular-builder mixin/p9; @:
distro/alt-p9-engineering: distro/regular-engineering mixin/p9; @:
ifeq (,$(filter-out x86_64,$(ARCH)))
distro/alt-p9-cnc-rt: distro/cnc-rt mixin/p9; @:
endif
endif
ifeq (ve,$(IMAGE_CLASS))
ve/alt-p9-ovz-generic: ve/generic mixin/p9; @:
ve/docker-p9: ve/docker; @:
@$(call set,BRANDING,alt-starterkit)
endif
ifeq (vm,$(IMAGE_CLASS))
vm/alt-p9-vm-net: vm/net mixin/p9; @:
vm/alt-p9-cloud: vm/cloud-systemd mixin/p9; @:
vm/alt-p9-opennebula: vm/opennebula-systemd mixin/p9; @:
# universal builds rootfs and image for all platforms
vm/alt-p9-jeos-systemd vm/alt-p9-jeos-sysv vm/alt-p9-builder \
vm/alt-p9-cinnamon vm/alt-p9-gnome3 vm/alt-p9-kde5 \
vm/alt-p9-icewm-sysv vm/alt-p9-lxde \
vm/alt-p9-lxqt vm/alt-p9-mate \
vm/alt-p9-xfce: \
vm/alt-p9-%: vm/regular-% mixin/p9; @:
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
vm/alt-p9-jeos-systemd-rpi vm/alt-p9-jeos-sysv-rpi \
vm/alt-p9-builder-rpi \
vm/alt-p9-lxde-rpi vm/alt-p9-lxqt-rpi \
vm/alt-p9-mate-rpi vm/alt-p9-xfce-rpi: \
vm/alt-p9-%-rpi: vm/regular-%-rpi mixin/p9; @:
ifeq (,$(filter-out aarch64,$(ARCH)))
vm/alt-p9-cinnamon-tegra vm/alt-p9-kde5-tegra \
vm/alt-p9-lxqt-tegra \
vm/alt-p9-mate-tegra vm/alt-p9-xfce-tegra: \
vm/alt-p9-%-tegra: vm/regular-%-tegra mixin/p9; @:
# DBM BE-M1000
vm/alt-p9-gnome3-dbm vm/alt-p9-xfce-dbm: \
vm/alt-p9-%-dbm: vm/regular-%-dbm mixin/p9; @:
endif
ifeq (,$(filter-out armh,$(ARCH)))
vm/alt-p9-lxde-mcom02 vm/alt-p9-lxqt-mcom02 \
vm/alt-p9-mate-mcom02 vm/alt-p9-xfce-mcom02: \
vm/alt-p9-%-mcom02: vm/regular-%-mcom02 mixin/p9; @:
vm/alt-p9-lxde-mcom02-mali vm/alt-p9-lxqt-mcom02-mali \
vm/alt-p9-mate-mcom02-mali vm/alt-p9-xfce-mcom02-mali: \
vm/alt-p9-%-mcom02-mali: vm/regular-%-mcom02-mali mixin/p9; @:
endif
endif
ifeq (,$(filter-out mipsel,$(ARCH)))
vm/tavolga-alt-p9-jeos-systemd vm/tavolga-alt-p9-jeos-sysv \
vm/tavolga-alt-p9-builder: \
vm/tavolga-alt-p9-%: vm/tavolga-regular-% mixin/p9; @:
vm/tavolga-alt-p9-lxde vm/tavolga-alt-p9-lxqt \
vm/tavolga-alt-p9-mate vm/tavolga-alt-p9-xfce \
vm/tavolga-alt-p9-icewm-sysv: \
vm/tavolga-alt-p9-%: vm/tavolga-regular-% mixin/p9; @:
vm/bfk3-alt-p9-jeos-systemd vm/bfk3-alt-p9-jeos-sysv \
vm/bfk3-alt-p9-builder: \
vm/bfk3-alt-p9-%: vm/bfk3-regular-% mixin/p9; @:
vm/bfk3-alt-p9-lxde vm/bfk3-alt-p9-lxqt vm/bfk3-alt-p9-mate \
vm/bfk3-alt-p9-xfce vm/bfk3-alt-p9-icewm-sysv: \
vm/bfk3-alt-p9-%: vm/bfk3-regular-% mixin/p9; @:
endif
endif

View File

@@ -1,20 +0,0 @@
mixin/cnc-rt: use/cleanup +nm-gtk
@$(call set,KFLAVOURS,rt)
@$(call add,THE_LISTS,realtime/tests)
@$(call add,THE_LISTS,engineering/cnc)
@$(call add,THE_LISTS,engineering/misc)
@$(call add,CLEANUP_PACKAGES,virtualbox-guest-common)
@$(call add,CLEANUP_PACKAGES,open-vm-tools)
@$(call add,CLEANUP_PACKAGES,xorg-drv-vboxvideo xorg-drv-qxl)
@$(call add,CLEANUP_PACKAGES,spice-vdagent qemu-guest-agent)
@$(call add,CLEANUP_PACKAGES,xorg-drv-vmware xorg-drv-vmmouse open-vm-tools-desktop)
ifeq (distro,$(IMAGE_CLASS))
distro/cnc-rt: distro/regular-lxde mixin/cnc-rt
@$(call add,EFI_BOOTARGS,efi=runtime)
endif
ifeq (vm,$(IMAGE_CLASS))
vm/cnc-rt: vm/regular-lxde mixin/vm-archdep mixin/cnc-rt; @:
vm/cnc-rt-efi: vm/cnc-rt +efi; @:
endif

View File

@@ -1,215 +0,0 @@
ifeq (vm,$(IMAGE_CLASS))
ifeq (,$(filter-out armh aarch64,$(ARCH)))
mixin/vm-archdep: use/bootloader/uboot use/no-sleep
else
ifeq (,$(filter-out mipsel,$(ARCH)))
mixin/vm-archdep: use/tty/S0
@$(call set,KFLAVOURS,un-malta)
else
ifeq (,$(filter-out riscv64,$(ARCH)))
mixin/vm-archdep: use/tty/S0
@$(call set,KFLAVOURS,un-def)
else
mixin/vm-archdep: ; @:
endif
endif
endif
@$(call add,KMODULES,staging)
ifeq (,$(filter-out i586 x86_64 armh aarch64,$(ARCH)))
@$(call set,KFLAVOURS,un-def std-def)
endif
mixin/regular-vm-base: use/firmware use/ntp/chrony use/repo \
use/services/lvm2-disable
ifneq (,$(filter-out i586 x86_64,$(ARCH)))
@$(call add,DEFAULT_SERVICES_DISABLE,multipathd)
endif
@$(call add,THE_PACKAGES,bash-completion mc update-kernel)
@$(call add,THE_PACKAGES,vim-console)
mixin/regular-vm-jeos: mixin/regular-vm-base use/deflogin/root
@$(call add,DEFAULT_SERVICES_ENABLE,getty@tty1)
ifeq (,$(filter-out riscv64,$(ARCH)))
mixin/regular-vm-x11: mixin/regular-vm-base mixin/regular-x11 \
mixin/regular-desktop use/oem/vnc +wireless; @:
else
mixin/regular-vm-x11: mixin/regular-vm-base mixin/regular-x11 \
mixin/regular-desktop use/oem +wireless; @:
endif
ifeq (,$(filter-out armh aarch64,$(ARCH)))
@$(call add,THE_PACKAGES,xorg-96dpi)
@$(call add,THE_LISTS,remote-access)
endif
vm/.regular-desktop: vm/systemd mixin/regular-vm-x11 +systemd +systemd-optimal \
+plymouth; @:
vm/.regular-desktop-sysv: vm/bare mixin/regular-vm-x11 use/x11/gdm2.20 \
use/init/sysv/polkit +power; @:
vm/.regular-gtk: vm/.regular-desktop use/x11/lightdm/gtk
@$(call add,THE_PACKAGES,blueberry)
vm/.regular-qt: vm/.regular-desktop use/x11/sddm; @:
vm/regular-jeos-systemd: vm/systemd-net \
mixin/regular-vm-jeos mixin/vm-archdep
@$(call add,THE_PACKAGES,glibc-locales)
vm/regular-jeos-sysv: vm/net mixin/regular-vm-jeos mixin/vm-archdep +power; @:
vm/regular-builder: vm/regular-jeos-sysv mixin/regular-builder
@$(call set,VM_SIZE,10737418240)
vm/regular-icewm-sysv: vm/.regular-desktop-sysv mixin/regular-icewm \
mixin/vm-archdep; @:
vm/regular-cinnamon: vm/.regular-gtk mixin/regular-cinnamon mixin/vm-archdep; @:
vm/regular-gnome3: vm/.regular-gtk mixin/regular-gnome3 mixin/vm-archdep; @:
vm/regular-lxde: vm/.regular-gtk mixin/regular-lxde mixin/vm-archdep; @:
vm/regular-mate: vm/.regular-gtk mixin/mate-base mixin/vm-archdep
@$(call add,THE_PACKAGES,mate-reduced-resource)
vm/regular-xfce: vm/.regular-gtk mixin/regular-xfce mixin/vm-archdep
@$(call add,THE_PACKAGES,xfce-reduced-resource)
ifeq (,$(filter-out armh aarch64,$(ARCH)))
@$(call set,KFLAVOURS,mp lts)
endif
vm/regular-kde5: vm/.regular-gtk mixin/regular-kde5 mixin/vm-archdep; @:
vm/regular-lxqt: vm/.regular-gtk mixin/regular-lxqt mixin/vm-archdep; @:
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
# Raspberry Pi 4
vm/regular-jeos-systemd-rpi: vm/systemd-net mixin/regular-vm-jeos use/tty/AMA0 \
use/arm-rpi4/kernel; @:
vm/regular-jeos-sysv-rpi: vm/net mixin/regular-vm-jeos use/tty/AMA0 \
use/arm-rpi4/kernel +power; @:
vm/regular-builder-rpi: vm/regular-jeos-systemd-rpi mixin/regular-builder; @:
vm/regular-lxde-rpi: vm/.regular-gtk mixin/regular-lxde use/arm-rpi4/full; @:
vm/regular-lxqt-rpi: vm/.regular-gtk mixin/regular-lxqt use/arm-rpi4/full; @:
vm/regular-mate-rpi: vm/.regular-gtk mixin/regular-mate use/arm-rpi4/full; @:
vm/regular-xfce-rpi: vm/.regular-gtk mixin/regular-xfce use/arm-rpi4/full; @:
ifeq (,$(filter-out aarch64,$(ARCH)))
# Nvidia Tegra (Jetson Nano only)
vm/regular-cinnamon-tegra: vm/.regular-gtk mixin/regular-cinnamon \
use/x11/lightdm/slick use/aarch64-tegra; @:
vm/regular-kde5-tegra: vm/.regular-gtk mixin/regular-kde5 use/aarch64-tegra
@$(call add,THE_PACKAGES,kde5-ksplash-disabled)
vm/regular-lxqt-tegra: vm/.regular-gtk mixin/regular-lxqt use/aarch64-tegra; @:
vm/regular-mate-tegra: vm/.regular-gtk mixin/regular-mate use/aarch64-tegra; @:
vm/regular-xfce-tegra: vm/.regular-gtk mixin/regular-xfce use/aarch64-tegra; @:
# DBM BE-M1000
vm/regular-xfce-dbm: vm/.regular-gtk mixin/regular-xfce use/aarch64-dbm; @:
vm/regular-gnome3-dbm: vm/.regular-gtk mixin/regular-gnome3 use/aarch64-dbm; @:
endif
ifeq (,$(filter-out armh,$(ARCH)))
# ELVIS mcom02 (free videodriver)
vm/regular-lxde-mcom02: vm/.regular-gtk mixin/regular-lxde \
use/armh-mcom02/x11; @:
vm/regular-lxqt-mcom02: vm/.regular-gtk mixin/regular-lxqt \
use/armh-mcom02/x11; @:
vm/regular-mate-mcom02: vm/.regular-gtk mixin/regular-mate \
use/armh-mcom02/x11
@$(call add,THE_PACKAGES,mate-reduced-resource)
vm/regular-xfce-mcom02: vm/.regular-gtk mixin/regular-xfce \
use/armh-mcom02/x11
@$(call add,THE_PACKAGES,xfce-reduced-resource)
# ELVIS mcom02 (propietary videodriver)
vm/regular-lxde-mcom02-mali: vm/.regular-gtk mixin/regular-lxde \
use/armh-mcom02/mali; @:
vm/regular-lxqt-mcom02-mali: vm/.regular-gtk mixin/regular-lxqt \
use/armh-mcom02/mali; @:
vm/regular-mate-mcom02-mali: vm/.regular-gtk mixin/mate-base \
use/armh-mcom02/mali
@$(call add,THE_PACKAGES,mate-reduced-resource)
vm/regular-xfce-mcom02-mali: vm/.regular-gtk mixin/regular-xfce \
use/armh-mcom02/mali
@$(call add,THE_PACKAGES,xfce-reduced-resource)
endif
endif
ifeq (,$(filter-out mipsel,$(ARCH)))
# Tavolga
vm/tavolga-regular-jeos-systemd: vm/systemd-net mixin/regular-vm-jeos \
use/mipsel-mitx; @:
vm/tavolga-regular-jeos-sysv: vm/net mixin/regular-vm-jeos \
use/mipsel-mitx +power; @:
vm/tavolga-regular-builder: vm/tavolga-regular-jeos-sysv \
mixin/regular-builder; @:
vm/tavolga-regular-icewm-sysv: vm/.regular-desktop-sysv mixin/regular-icewm \
use/mipsel-mitx/x11; @:
vm/tavolga-regular-lxde: vm/.regular-gtk mixin/regular-lxde \
use/mipsel-mitx/x11; @:
vm/tavolga-regular-lxqt: vm/.regular-gtk mixin/regular-lxqt \
use/mipsel-mitx/x11; @:
vm/tavolga-regular-mate: vm/.regular-gtk mixin/regular-mate \
use/mipsel-mitx/x11
@$(call add,THE_PACKAGES,mate-reduced-resource)
vm/tavolga-regular-xfce: vm/.regular-gtk mixin/regular-xfce \
use/mipsel-mitx/x11
@$(call add,THE_PACKAGES,xfce-reduced-resource)
# bfk3
vm/bfk3-regular-jeos-systemd: vm/systemd-net mixin/regular-vm-jeos \
use/mipsel-bfk3; @:
vm/bfk3-regular-jeos-sysv: vm/net mixin/regular-vm-jeos \
use/mipsel-bfk3 +power; @:
vm/bfk3-regular-builder: vm/bfk3-regular-jeos-sysv \
mixin/regular-builder; @:
vm/bfk3-regular-icewm-sysv: vm/.regular-desktop-sysv mixin/regular-icewm \
use/mipsel-bfk3/x11; @:
vm/bfk3-regular-lxde: vm/.regular-gtk mixin/regular-lxde \
use/mipsel-bfk3/x11; @:
vm/bfk3-regular-lxqt: vm/.regular-gtk mixin/regular-lxqt \
use/mipsel-bfk3/x11; @:
vm/bfk3-regular-mate: vm/.regular-gtk mixin/regular-mate \
use/mipsel-bfk3/x11
@$(call add,THE_PACKAGES,mate-reduced-resource)
vm/bfk3-regular-xfce: vm/.regular-gtk mixin/regular-xfce \
use/mipsel-bfk3/x11
@$(call add,THE_PACKAGES,xfce-reduced-resource)
endif
endif

View File

@@ -1,266 +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 \
use/stage2/fs use/stage2/hid use/stage2/md \
use/stage2/mmc use/stage2/net use/stage2/net-nfs \
use/stage2/rtc use/stage2/sbc use/stage2/scsi use/stage2/usb
# 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; @:
# graphical target (not enforcing xorg drivers or blobs)
distro/.regular-x11: distro/.regular-base \
use/x11/wacom use/x11/amdgpu +vmguest +wireless \
use/stage2/cifs use/live/rw use/live/x11 use/live/repo \
use/live/install use/live/suspend use/browser/firefox/live
@$(call add,LIVE_PACKAGES,livecd-install-apt-cache)
@$(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-x11 \
mixin/regular-desktop use/efi/refind
@$(call add,THE_BRANDING,bootloader)
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,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/branding/full \
use/syslinux/ui/gfxboot use/firmware/laptop +systemd +systemd-optimal
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,installer-feature-desktop-other-fs-stage2)
@$(call set,KFLAVOURS,std-def)
distro/.regular-gtk: distro/.regular-desktop use/x11/lightdm/gtk +plymouth; @:
distro/.regular-desktop-sysv: distro/.regular-wm use/init/sysv/polkit; @:
distro/.regular-gtk-sysv: distro/.regular-desktop-sysv \
use/syslinux/ui/gfxboot use/x11/gdm2.20; @:
distro/.regular-install: distro/.regular-base +installer \
use/branding use/bootloader/grub use/luks use/stage2/kms \
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 \
use/isohybrid use/branding \
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 su agetty)
@$(call add,THE_LISTS,openssh)
# ...and for somewhat bare distros
distro/.regular-jeos: distro/.regular-jeos-base use/stage2/kms \
use/install2/cleanup/everything use/install2/cleanup/kernel/everything \
use/syslinux/lateboot.cfg use/cleanup/jeos
@$(call add,BASE_PACKAGES,make-initrd-mdadm cpio)
distro/.regular-jeos-full: distro/.regular-jeos \
use/volumes/jeos use/ntp/chrony use/bootloader/grub +efi
@$(call add,BASE_PACKAGES,nfs-utils gdisk)
@$(call add,INSTALL2_PACKAGES,fdisk)
@$(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 set,KFLAVOURS,std-def)
@$(call add,BASE_KMODULES,drm)
# NB:
# - stock cleanup is not enough (or installer-common-stage3 deps soaring)
distro/regular-jeos-sysv: distro/.regular-jeos-full use/cleanup/jeos/full \
+sysvinit
@$(call add,BASE_PACKAGES,apt-conf-ignore-systemd)
distro/regular-jeos-systemd: distro/.regular-jeos-full \
+systemd +systemd-optimal
@$(call add,BASE_PACKAGES,glibc-locales)
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
# NB: no +efi as it brings in grub2 (no ELILO support for system boot)
distro/regular-jeos-ovz: distro/.regular-jeos use/cleanup/jeos/full +sysvinit \
use/server/ovz-base use/control/server/ldv use/firmware use/bootloader/lilo
@$(call add,THE_PACKAGES,ipmitool lm_sensors3 mailx)
endif
distro/.regular-install-x11: distro/.regular-install +vmguest +wireless \
use/install2/suspend mixin/regular-desktop mixin/regular-x11 \
use/branding/complete use/branding/slideshow/once use/efi/refind
@$(call set,INSTALLER,altlinux-desktop)
# assumes somewhat more experienced user
distro/.regular-install-x11-full: distro/.regular-install-x11 \
use/fonts/otf/adobe use/fonts/otf/mozilla use/fonts/chinese \
mixin/desktop-installer use/install2/fs use/efi/shell use/rescue/base
@$(call add,RESCUE_LISTS,$(call tags,rescue misc))
@$(call add,MAIN_PACKAGES,anacron man-whatis usb-modeswitch)
distro/regular-icewm-sysv: distro/.regular-gtk-sysv mixin/regular-icewm \
use/browser/chromium
distro/regular-icewm: distro/.regular-base use/x11/lightdm/gtk +icewm
@$(call add,LIVE_LISTS,$(call tags,regular icewm))
@$(call set,KFLAVOURS,un-def)
# wdm can't do autologin so add standalone one for livecd
distro/regular-wmaker-sysv: distro/.regular-desktop-sysv \
mixin/regular-wmaker use/live/autologin
@$(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-sysv: distro/.regular-desktop-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; @:
@$(call set,KFLAVOURS,un-def)
distro/regular-xfce: distro/.regular-gtk use/x11/xfce; @:
distro/regular-xfce-sysv: distro/.regular-gtk-sysv mixin/regular-xfce-sysv; @:
distro/regular-xfce-sysv-install: distro/.regular-install-x11-full \
mixin/regular-xfce-sysv use/init/sysv/polkit use/x11/gdm2.20; @:
distro/regular-lxde: distro/.regular-gtk mixin/regular-lxde; @:
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 mixin/regular-mate; @:
distro/regular-mate: distro/.regular-gtk
@$(call add,LIVE_LISTS,$(call tags,(desktop || mobile) && (mate || nm)))
distro/regular-enlightenment: distro/.regular-gtk use/x11/enlightenment +power; @:
distro/regular-e17: distro/.regular-gtk use/x11/e17 use/fonts/infinality
@$(call add,LIVE_PACKAGES,xterm)
distro/regular-cinnamon: distro/.regular-gtk mixin/regular-cinnamon; @:
distro/regular-cinnamon: distro/.regular-gtk \
use/x11/cinnamon use/fonts/infinality
@$(call set,META_VOL_ID,ALT Linux $(IMAGE_NAME)) # see also #28271
# not .regular-gtk due to gdm vs lightdm
distro/regular-gnome3: distro/.regular-desktop mixin/regular-gnome3 +plymouth
distro/regular-gnome3: distro/.regular-desktop use/x11/gnome3 +plymouth; @:
distro/regular-tde: distro/.regular-desktop +tde +plymouth
@$(call add,LIVE_LISTS,$(call tags,desktop nm))
@$(call add,LIVE_PACKAGES,kdegames kdeedu)
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,gnome-flashback screenpen)
distro/regular-lxqt: distro/.regular-gtk mixin/regular-lxqt +plymouth
@$(call add,THE_LISTS,$(call tags,lxqt desktop))
distro/regular-kde5: distro/.regular-desktop \
mixin/regular-kde5 use/domain-client use/x11/sddm +plymouth; @:
distro/regular-robo: distro/regular-mate +robotics use/live/ru; @:
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/grub/rescue_fm.cfg use/grub/rescue_remote.cfg \
use/mediacheck use/stage2/kms +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-server-base: distro/.regular-install use/server/base
@$(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: distro/.regular-server-base \
use/server/mini use/firmware/qlogic use/rescue/base \
use/ntp/chrony use/cleanup/libs use/bootloader/grub +efi
@$(call add,RESCUE_LISTS,$(call tags,rescue misc))
@$(call add,MAIN_PACKAGES,aptitude)
@$(call add,CLEANUP_PACKAGES,qt4-common qt5-base-common)
@$(call add,DEFAULT_SERVICES_DISABLE,bridge)
@$(call add,DEFAULT_SERVICES_ENABLE,getty@tty1)
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-full: 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)
@$(call add,BASE_KMODULES,staging)
distro/regular-server-systemd: distro/.regular-server-full \
+systemd +systemd-optimal; @:
distro/regular-server-sysv: distro/.regular-server-full +sysvinit; @:
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-ovz: distro/.regular-server-ovz +systemd; @:
distro/regular-server-ovz-sysv: distro/.regular-server-ovz +sysvinit; @:
distro/regular-server-hyperv: distro/.regular-server-managed +systemd
@$(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-pve: distro/.regular-server-base +systemd \
use/kernel/server use/firmware/qlogic
@$(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 mixin/regular-builder \
use/dev/builder/full use/stage2/kms +sysvinit +efi +power \
use/live/base use/live/rw use/live/repo/online use/live/textinstall \
use/isohybrid use/syslinux/timeout/300 use/grub/timeout/30 use/stage2/net-eth
@$(call add,THE_PACKAGES,ccache cifs-utils wodim)
distro/regular-server-samba4: distro/.regular-server-managed +systemd
@$(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-server-lxd: distro/.regular-bare \
use/isohybrid +power \
use/live/base use/live/rw use/live/repo/online use/live/textinstall \
use/lxc/lxd use/tty/S0 \
use/init/systemd/multiuser
@$(call set,KFLAVOURS,un-def)
@$(call add,DEFAULT_SERVICES_ENABLE,sshd)
@$(call add,DEFAULT_SERVICES_ENABLE,lxd-startup lxd-bridge lxcfs cgmanager)
@$(call add,DEFAULT_SERVICES_ENABLE,getty@tty1 getty@ttyS0)
@$(call add,DEFAULT_SERVICES_ENABLE,livecd-net-eth)
distro/regular-engineering: distro/regular-lxde use/live/ru
@$(call add,THE_LISTS,engineering/2d-cad)
@$(call add,THE_LISTS,engineering/3d-cad)
@$(call add,THE_LISTS,engineering/3d-printer)
@$(call add,THE_LISTS,engineering/eda)
@$(call add,THE_LISTS,engineering/cam)
@$(call add,THE_LISTS,engineering/cnc)
@$(call add,THE_LISTS,engineering/apcs)
@$(call add,THE_LISTS,engineering/scada)
@$(call add,THE_LISTS,engineering/misc)
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

@@ -1,151 +0,0 @@
# server distributions
ifeq (distro,$(IMAGE_CLASS))
distro/server-v: cockpit = $(addprefix server-v/cockpit/,\
docker kvm web)
distro/server-v: ceph = $(addprefix server-v/ceph/,\
client mgr mon osd radosgw)
distro/server-v: glusterfs = $(addprefix server-v/glusterfs/,\
client server)
distro/server-v: iscsi = $(addprefix server-v/iscsi/,\
initiator scsitarget targetcli)
distro/server-v: moosefs = $(addprefix server-v/moosefs/,\
cgiserv chunkserver client master metalogger)
distro/server-v: lizardfs = $(addprefix server-v/lizardfs/,\
cgiserv chunkserver client master metalogger)
distro/server-v: linstor = $(addprefix server-v/linstor/,\
client controller satellite opennebula-addon)
distro/server-v: nfs = $(addprefix server-v/,\
nfs nfs-ganesha)
distro/server-v: opennebula = $(addprefix server-v/opennebula/,\
flow gate gui node-kvm node-lxd server)
distro/server-v: openstack = $(addprefix server-v/openstack/,\
block compute controller network)
# storage
distro/server-v: container = $(addprefix server-v/,\
docker kubernetes-master kubernetes-node podman lxd)
distro/server-v: network = $(addprefix server-v/,\
apache2 nginx bird dhcp dns haproxy keepalived openvswitch freeipa-client)
distro/server-v: monitoring = $(addprefix server-v/,\
zabbix-agent telegraf prometheus-node_exporter monit collectd nagios-nrpe)
# zabbix prometheus influxdb grafana
distro/server-v: backup = $(addprefix server-v/,\
bacula urbackup-client)
distro/server-v: logging = $(addprefix server-v/,\
rsyslog-classic systemd-journal-remote)
distro/server-v: profiles = $(addprefix server-v/,\
111-opennebula-node 112-opennebula-server 140-basic 201-docker)
#121-openstack-node 122-openstack-controller
ifeq (,$(filter-out x86_64 aarch64,$(ARCH)))
distro/server-v: profiles_arch = $(addprefix server-v/,\
130-pve)
# 211-openvz
endif
distro/.server-v-base: distro/.base distro/.installer \
use/efi/shell use/efi/grub +efi \
use/memtest use/rescue/base \
+systemd-optimal \
use/services use/control \
use/l10n/default/ru_RU \
use/isohybrid \
use/install2/vnc/full \
use/install2/xfs use/install2/fat use/install2/stage3 \
use/kernel/server use/kernel/drm \
use/firmware use/firmware/cpu \
use/net/etcnet use/net-ssh \
use/stage2/fs use/stage2/hid use/stage2/md \
use/stage2/mmc use/stage2/net use/stage2/net-nfs \
use/stage2/rtc use/stage2/scsi use/stage2/usb \
use/stage2/kms \
use/server/virt use/docs/license
@$(call add,BASE_LISTS,server-base openssh)
@$(call add,EFI_BOOTARGS,lang=ru_RU)
@$(call set,BRANDING,alt-server-v)
@$(call set,INSTALLER,alt-server-v)
@$(call add,INSTALL2_PACKAGES,alterator-notes)
@$(call add,INSTALL2_PACKAGES,installer-feature-multipath)
@$(call add,INSTALL2_PACKAGES,installer-feature-server-raid-fixup-stage2)
@$(call add,INSTALL2_PACKAGES,installer-feature-quota-stage2)
@$(call add,INSTALL2_PACKAGES,fonts-ttf-google-croscore-arimo)
@$(call add,INSTALL2_PACKAGES,ntfs-3g)
@$(call add,INSTALL2_BRANDING,bootloader bootsplash notes slideshow)
@$(call add,THE_BRANDING,alterator graphics)
@$(call add,THE_BRANDING,indexhtml slideshow)
@$(call add,THE_PACKAGES,alterator-fbi alterator-notes)
@$(call add,THE_LISTS,$(call tags,basesystem alterator))
@$(call add,THE_LISTS,$(call tags,server alterator))
@$(call add,THE_LISTS,$(call tags,server network))
@$(call add,COMMON_PACKAGES,vim-console)
@$(call add,SYSTEM_PACKAGES,mdadm-tool lvm2 multipath-tools fdisk xfsprogs btrfs-progs file)
distro/server-v: distro/.server-v-base +installer \
use/ntp/chrony \
use/install2/net use/install2/autoinstall \
use/apt-conf/branch use/install2/repo
@$(call add,RESCUE_BOOTARGS,nomodeset vga=0)
@$(call set,IMAGE_FLAVOUR,$(subst alt-9-,,$(IMAGE_NAME)))
@$(call set,META_VOL_ID,ALT Server-V 9.1.0 $(ARCH))
@$(call set,META_PUBLISHER,BaseALT Ltd)
@$(call set,META_VOL_SET,ALT)
@$(call set,META_APP_ID,ALT Server-V 9.1.0 $(ARCH) $(shell date +%F))
@$(call set,DOCS,alt-server-v)
@$(call add,BASE_LISTS,virt/base.pkgs)
@$(call add,MAIN_LISTS,virt/extra.pkgs)
@$(call add,MAIN_GROUPS,server-v/110-opennebula $(opennebula))
ifeq (,$(filter-out x86_64 aarch64,$(ARCH)))
@$(call add,MAIN_GROUPS,server-v/130-pve server-v/pve server-v/linstor/pve-storage)
endif
@$(call add,MAIN_GROUPS,server-v/140-basic server-v/kvm)
@$(call add,MAIN_GROUPS,server-v/200-container $(container))
@$(call add,MAIN_GROUPS,server-v/300-cluster server-v/corosync_pacemaker)
@$(call add,MAIN_GROUPS,server-v/400-storage)
@$(call add,MAIN_GROUPS,server-v/410-ceph $(ceph))
@$(call add,MAIN_GROUPS,server-v/420-glusterfs $(glusterfs))
@$(call add,MAIN_GROUPS,server-v/450-nfs $(nfs))
@$(call add,MAIN_GROUPS,server-v/460-iscsi $(iscsi))
@$(call add,MAIN_GROUPS,server-v/470-linstor $(linstor))
@$(call add,MAIN_GROUPS,server-v/500-network $(network))
@$(call add,MAIN_GROUPS,server-v/600-monitoring $(monitoring))
@$(call add,MAIN_GROUPS,server-v/700-backup $(backup))
@$(call add,MAIN_GROUPS,server-v/800-logging $(logging))
@$(call add,THE_PROFILES,$(profiles) $(profiles_arch) minimal)
@$(call add,DEFAULT_SERVICES_ENABLE,getty@tty1 getty@ttyS0)
@$(call add,DEFAULT_SERVICES_ENABLE,fstrim.timer)
@$(call add,DEFAULT_SERVICES_ENABLE,libvirtd)
@$(call add,DEFAULT_SERVICES_ENABLE,docker lxd kubelet kube-proxy)
@$(call add,DEFAULT_SERVICES_ENABLE,bind mysqld openvswitch)
@$(call add,DEFAULT_SERVICES_ENABLE,rsyslogd systemd-journal-gatewayd)
@$(call add,DEFAULT_SERVICES_DISABLE,powertop bridge gpm)
@$(call add,DEFAULT_SERVICES_DISABLE,consolesaver)
@$(call add,DEFAULT_SERVICES_DISABLE,ahttpd alteratord)
@$(call add,DEFAULT_SERVICES_DISABLE,systemd-networkd systemd-resolved)
@$(call add,DEFAULT_SERVICES_ENABLE,pve-manager pve-cluster pveproxy pvedaemon pvestatd \
pve-firewall pvefw-logger pve-guests pve-ha-crm pve-ha-lrm spiceproxy \
lxc lxcfs lxc-net lxc-monitord)
# @$(call add,MAIN_GROUPS,server-v/141-cockpit $(cockpit))
# @$(call add,MAIN_GROUPS,server-v/430-moosefs $(moosefs))
# @$(call add,MAIN_GROUPS,server-v/ocfs2)
# @$(call add,MAIN_GROUPS,server-v/120-openstack $(openstack))
#ifeq (,$(filter-out x86_64,$(ARCH)))
# @$(call add,MAIN_GROUPS,server-v/openvz)
#endif
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

12
conf.d/simply.mk Normal file
View File

@@ -0,0 +1,12 @@
# simply images
ifeq (distro,$(IMAGE_CLASS))
distro/live-simply: distro/.livecd-install use/slinux/full
@$(call add,THE_LISTS,slinux/live-install)
distro/simply: distro/.installer use/slinux/full
@$(call set,INSTALLER,simply-linux)
@$(call add,INSTALL2_PACKAGES,sysvinit)
endif

View File

@@ -1,34 +0,0 @@
# Simply Linux images
ifeq (distro,$(IMAGE_CLASS))
distro/slinux-live: distro/.livecd-install use/slinux/base
@$(call add,THE_LISTS,slinux/live-install)
@$(call set,META_VOL_ID,Simply Linux live $(DISTRO_VERSION) $(ARCH))
@$(call set,META_APP_ID,Simply Linux live $(DISTRO_VERSION) $(ARCH) $(shell date +%F))
distro/slinux: distro/.installer use/slinux/full use/rescue/base
@$(call set,INSTALLER,simply-linux)
@$(call add,MAIN_GROUPS,slinux/dropbox slinux/emulators-full slinux/games-base slinux/games slinux/games-full slinux/graphics-base slinux/graphics slinux/graphics-full-inkscape slinux/graphics-full-shotwell slinux/multimedia-full-audacity slinux/multimedia-base slinux/multimedia-full-cheese slinux/multimedia slinux/multimedia-full-shotcut slinux/multimedia-full-sound-juicer slinux/net-base)
@$(call set,META_VOL_ID,Simply Linux $(DISTRO_VERSION) $(ARCH))
@$(call set,META_APP_ID,Simply Linux $(DISTRO_VERSION) $(ARCH) $(shell date +%F))
ifeq (aarch64,$(ARCH))
@$(call set,KFLAVOURS,lts std-def)
endif
endif
ifeq (vm,$(IMAGE_CLASS))
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
vm/slinux: use/slinux/vm-base use/slinux/arm-base; @:
vm/slinux-rpi: vm/slinux use/arm-rpi4/full; @:
ifeq (,$(filter-out aarch64,$(ARCH)))
vm/slinux-tegra: use/slinux/vm-base use/slinux/arm-base \
use/aarch64-tegra; @:
endif
else
vm/slinux: use/slinux/vm-base; @:
endif
endif

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,54 +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/.apt use/repo
@$(call add,BASE_PACKAGES,iproute2)
# 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/sysvinit-etcnet: ve/base use/net/etcnet \
use/control/sudo-su use/repo use/net-ssh
@$(call add,BASE_PACKAGES,glibc-gconv-modules glibc-locales tzdata bash-completion iptables curl)
ve/systemd-bare: ve/.apt +systemd \
use/control/sudo-su use/repo use/net-ssh
@$(call add,BASE_PACKAGES,interactivesystem su)
ve/systemd-networkd: ve/systemd-bare use/net/networkd
@$(call add,BASE_PACKAGES,glibc-gconv-modules glibc-locales tzdata bash-completion iptables curl)
ve/systemd-etcnet: ve/systemd-bare use/net/etcnet
@$(call add,BASE_PACKAGES,glibc-gconv-modules glibc-locales tzdata bash-completion iptables curl)
endif

View File

@@ -1,60 +1,10 @@
# virtual machines
ifeq (vm,$(IMAGE_CLASS))
# NB: interactivesystem pulls in network-config-subsystem anyways
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
vm/bare: vm/.base-lilo +sysvinit
else
vm/bare: vm/.bare +sysvinit
endif
@$(call add,BASE_PACKAGES,apt)
ifeq (,$(filter-out i586 x86_64 ppc64le,$(ARCH)))
vm/systemd: vm/.base-grub +systemd
else
vm/systemd: vm/.bare +systemd
endif
@$(call add,BASE_PACKAGES,glibc-gconv-modules glibc-locales tzdata)
@$(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 use/tty/S0
@$(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 use/repo
@$(call set,VM_SIZE,5368709120) # 5 Gb is enough for everyone
# 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
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
vm/vagrant-base: vm/net use/vagrant
@$(call set,VM_SIZE,10737418240)
endif
vm/icewm: vm/net use/cleanup/installer +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,66 +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
С версии 1.3.15 поддерживается макрос E2K ("любое поколение e2k*"),
а также выборка "для любой архитектуры, кроме" (например, @!E2K).
Для преобразования можно воспользоваться следующей командой:
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
** задаёт целевую архитектуру образов
** значение: пусто (по умолчанию авто) либо строка
** см. 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 @@
Настраивает систему для загрузки на плате DBM с SoC BE-M1000 (aarch64).

View File

@@ -1,11 +0,0 @@
ifeq (,$(filter-out aarch64,$(ARCH)))
use/aarch64-dbm: use/efi/grub use/tty/S0
@$(call add_feature)
@$(call set,KFLAVOURS,bfkm)
@$(call add,BASE_BOOTARGS,video=HDMI-A-1:D fbcon=map:0)
@$(call try,DBM_DTB,bm-bfkm)
@$(call xport,DBM_DTB)
use/aarch64-dbm/mini-itx: use/aarch64-dbm
@$(call set,DBM_DTB,bm-bfkm)
endif

View File

@@ -1,15 +0,0 @@
#!/bin/sh -efu
# To load a Linux kernel onto a DBM board using GRUB2,
# you need specific parameters on the kernel command line
# and an explicit definition the dtb file to load.
# This script creates the required settings in the file
# /etc/sysconfig/grub2
cfgfile="/etc/sysconfig/grub2"
if [ -f "$cfgfile" ]
then
echo "# Configure GRUB2 Special Settings for DBM board" >> "$cfgfile"
echo "GRUB_FDT_LINUX=$GLOBAL_DBM_DTB.dtb" >> "$cfgfile"
fi

View File

@@ -1,20 +0,0 @@
#!/bin/sh
# The tar2fs script writes the contents of the /boot/efi directory
# to a disk image partition for EFI.
# Place the scripts executed by EFI Shell in /boot/efi
mkdir -p /boot/efi
# Script startup.nsh to boot with GRUB2 by default
cat > /boot/efi/startup.nsh << EOF
\EFI\BOOT\BOOTAA64.EFI
EOF
# The efidrvext.nsh script can be run manually from the EFI Shell
# to boot using the ext2, ext3, ext4 driver for EFI
cat > /boot/efi/efidrvext.nsh << EOF
load fs0:\efi\drivers\ext2_aa64.efi
map -r
FS1:\boot\vmlinuz root=/dev/sda2 ro console=ttyS0,115200 video=HDMI-A-1:D fbcon=map:0 initrd=/boot/initrd.img dtb=/boot/dtb/bm-bfkm.dtb
EOF

View File

@@ -1,2 +0,0 @@
Настраивает систему для загрузки на компьютерах с SoC tegra (aarch64).
Пока поддерживается только Jetson Nano.

View File

@@ -1,6 +0,0 @@
ifeq (,$(filter-out aarch64,$(ARCH)))
use/aarch64-tegra: use/bootloader/uboot
@$(call add_feature)
@$(call set,KFLAVOURS,tegra)
endif

View File

@@ -1,17 +0,0 @@
#!/bin/sh
# Rewrite extlinux.conf
mkdir -p /boot/extlinux
cat > /boot/extlinux/extlinux.conf << EOF
menu title ALT Boot Options
default linux
timeout 20
append ${cbootargs} rootfstype=ext4 root=LABEL=ROOT rw rootwait console=tty1
label linux
menu label linux
linux /boot/vmlinuz
initrd /boot/initrd.img
EOF

View File

@@ -1,4 +0,0 @@
#!/bin/sh
echo 'PUT_FILES += /lib/firmware/tegra21x_xusb_firmware' \
>> /etc/initrd.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,2 +0,0 @@
Настраивает систему для Raspberry Pi 4

View File

@@ -1,34 +0,0 @@
ifeq (,$(filter-out aarch64 armh,$(ARCH)))
ifeq (aarch64,$(ARCH))
use/arm-rpi4: use/efi/grub use/uboot
else
use/arm-rpi4: use/bootloader/uboot
endif
@$(call add_feature)
@$(call set,VM_PARTTABLE,msdos)
@$(call add,BASE_KMODULES,staging)
@$(call add,THE_LISTS,uboot)
@$(call add,THE_PACKAGES,u-boot-tools)
@$(call add,THE_PACKAGES,rpi4-boot-switch)
@$(call add,THE_PACKAGES,rpi4-boot-nouboot-filetrigger)
@$(call add,THE_PACKAGES,rpi4-boot-uboot-filetrigger)
@$(call add,THE_PACKAGES,firmware-bcm4345)
@$(call add,THE_PACKAGES,brcm-patchram-plus)
@$(call add,THE_PACKAGES,rpi4-resize-rootpart)
@$(call add,DEFAULT_SERVICES_ENABLE,bluetoothd attach-bluetooth)
@$(call add,DEFAULT_SERVICES_DISABLE,systemd-networkd-wait-online)
use/arm-rpi4/x11: use/arm-rpi4 \
use/browser/firefox/i18n use/browser/firefox/esr
@$(call add,THE_PACKAGES,celluloid celluloid-csd-disabled)
use/arm-rpi4/kernel: use/arm-rpi4
ifeq (aarch64,$(ARCH))
@$(call set,KFLAVOURS,rpi-def rpi-un)
else
@$(call set,KFLAVOURS,rpi-def)
endif
use/arm-rpi4/full: use/arm-rpi4/kernel use/arm-rpi4/x11; @:
endif

View File

@@ -1,10 +0,0 @@
#!/bin/sh -efu
fffile="/usr/share/applications/firefox.desktop"
panfile="/etc/skel/.config/xfce4/panel/launcher-5/15592088901.desktop"
if [ -f "$fffile" -a -f "$panfile" ]
then
sed -i 's/Chromium/Firefox/' "$panfile"
sed -i 's/chromium/firefox/' "$panfile"
fi

View File

@@ -1,15 +0,0 @@
#!/bin/sh -efu
# Change the default application for all file types from mplayer to celluloid
cfile="/usr/share/applications/io.github.celluloid_player.Celluloid.desktop"
mimeappsfile="/usr/share/applications/mimeapps.list"
mimeappslocalfile="/etc/skel/.config/mimeapps.list"
if [ -f "$cfile" -a -f "$mimeappsfile" ]
then
echo "[Default Applications]" > "$mimeappslocalfile"
sed '/[=;]mplayer.desktop/!d ; /[=;]mplayer.desktop/s/=.*/=io.github.celluloid_player.Celluloid.desktop;/' "$mimeappsfile" >> "$mimeappslocalfile"
echo "" >> "$mimeappslocalfile"
echo "[Added Associations]" >> "$mimeappslocalfile"
sed '/[=;]mplayer.desktop/!d ; /[=;]mplayer.desktop/s/=.*/=io.github.celluloid_player.Celluloid.desktop;/' "$mimeappsfile" >> "$mimeappslocalfile"
fi

View File

@@ -1,11 +0,0 @@
#!/bin/sh -efu
# Changed audio scheduling from timer-based to
# interrupt-driven to prevent unwanted crackle.
pafile="/etc/pulse/default.pa"
if [ -f "$pafile" ]
then
sed -i 's/^load-module module-udev-detect$/load-module module-udev-detect tsched=0/' "$pafile"
fi

View File

@@ -1,5 +0,0 @@
#!/bin/sh -efu
# For resize rootfs with systemd-growfs@-.service
# set x-systemd.growfs option in /etc/fstab for rootfs
sed -i '/^LABEL=ROOT/s/defaults/defaults,x-systemd.growfs/' /etc/fstab

View File

@@ -1,12 +0,0 @@
#!/bin/sh -efu
# By default, in cpufreq-simple feature the ondemand governor is configured.
# But only the conservative governor is available at Raspberry Pi 4 kernels.
# This is change the default governor to conservative.
cfgfile="/etc/sysconfig/cpufreq-simple"
if [ -f "$cfgfile" ]
then
echo "GOVERNOR_AC_ON=conservative" >> "$cfgfile"
echo "GOVERNOR_AC_OFF=conservative" >> "$cfgfile"
fi

View File

@@ -1,3 +0,0 @@
#!/bin/sh -efu
sed 's/Raspberry Pi 3 Model B+/Raspberry Pi 4/ ; s/boardflags3=0x48200100/boardflags3=0x44200100/' /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt > /lib/firmware/brcm/brcmfmac43455-sdio.txt

View File

@@ -1,58 +0,0 @@
#!/bin/sh -efu
target_dir='/boot/efi'
mkdir -p "$target_dir"
(
cat << 'EOF'
arch=arm
baudrate=115200
board=rpi
board_name=4 Model B
board_rev=0x11
board_rev_scheme=1
board_revision=0xC03111
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 mmc1 pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_pxe=dhcp; if pxe get; then pxe boot; fi
bootdelay=2
cpu=armv8
dhcpuboot=usb start; dhcp u-boot.uimg; bootm
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
fdt_addr=6000000
fdt_addr_r=0x06000000
fdt_high=ffffffffffffffff
fdtcontroladdr=3af59a70
initrd_high=ffffffffffffffff
kernel_addr_r=0x00080000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x00200000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
pxefile_addr_r=0x02500000
ramdisk_addr_r=0x06100000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x02400000
serial#=100000000a137b9c
soc=bcm283x
stderr=serial,vidconsole
stdin=serial,usbkbd
stdout=serial,vidconsole
vendor=raspberrypi
EOF
) | mkenvimage -s 16384 -o "$target_dir/uboot.env" -

View File

@@ -1,45 +0,0 @@
#!/bin/sh -eu
kflavour=
kflavour="${GLOBAL_KFLAVOURS%% *}"
mkdir -p /boot/efi
uboots="rpi_3 rpi_3_32b rpi_4 rpi_4_32b"
for uboot in $uboots; do
[ -d /usr/share/u-boot/$uboot ] &&
cp -f /usr/share/u-boot/$uboot/* /boot/efi/
[ -f /boot/efi/kernel8.img ] &&
mv /boot/efi/{kernel8.img,uboot-$uboot.bin}
[ -f /boot/efi/kernel7.img ] &&
mv /boot/efi/{kernel7.img,uboot-$uboot.bin}
done
rm -f /boot/efi/config.txt
[ "$GLOBAL_ARCH" = aarch64 ] && \
echo "arm_64bit=1" > /boot/efi/config.txt
cat >> /boot/efi/config.txt <<EOF
enable_uart=1
disable_overscan=1
dtparam=audio=on
[pi3]
kernel=uboot-rpi_3.bin
# dtoverlay=vc4-kms-v3d
[pi4]
kernel=uboot-rpi_4.bin
dtoverlay=vc4-fkms-v3d
[all]
EOF
[ "$GLOBAL_ARCH" = armh ] && \
sed -i 's/.bin/_32b.bin/g' /boot/efi/config.txt
# Enable bootloading without u-boot
sh -x rpi4-boot-nouboot $kflavour
exit 0

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,2 +0,0 @@
Фича предназначена для обеспечения поддержки процессорного модуля
"ЭЛВИС Салют ЭЛ24ПМ2". Подробнее: http://altlinux.org/mcom02

View File

@@ -1,15 +0,0 @@
ifeq (,$(filter-out armh,$(ARCH)))
use/armh-mcom02: use/bootloader/uboot use/tty/S0 use/no-sleep
@$(call add_feature)
@$(call set,KFLAVOURS,mcom02)
@$(call add,THE_PACKAGES,u-boot-mcom02-firmware-tools u-boot-mcom02)
@$(call add,THE_PACKAGES,extlinux-fdtdir-cleanup-filetrigger)
use/armh-mcom02/x11: use/armh-mcom02
@$(call add,THE_PACKAGES,xorg-drv-fbturbo)
use/armh-mcom02/mali: use/armh-mcom02/x11
@$(call add,THE_KMODULES,mali)
@$(call add,THE_PACKAGES,libmali-mcom02)
endif

View File

@@ -1,15 +0,0 @@
#!/bin/sh
# Rewrite extlinux.conf
mkdir -p /boot/extlinux
cat > /boot/extlinux/extlinux.conf << EOF
menu title ALT Boot Options
default linux
timeout 20
label linux
kernel /boot/vmlinuz
initrd /boot/initrd.img
append root=LABEL=ROOT ro console=ttyS0,115200 video=HDMI:1920x1080
EOF

View File

@@ -1,5 +0,0 @@
#!/bin/sh -efu
[ "$GLOBAL_ARCH" = armh ] && sed -i '/snd-seq-midi/d' /etc/firsttime.d/alsa-set-initial-options
exit 0

View File

@@ -1,13 +0,0 @@
#!/bin/sh -x
[ -d /etc/X11/xorg.conf.d ] || exit 0
cat > /etc/X11/xorg.conf.d/10-monitor.conf << EOF
Section "Monitor"
Identifier "Monitor0"
EndSection
Section "Device"
Identifier "Card0"
Driver "fbturbo"
EndSection
EOF

View File

@@ -1,4 +0,0 @@
#!/bin/sh
# Drop fdtdir PATH
sed -i '/fdtdir/d' /boot/extlinux/extlinux.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

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