forked from altcloud/mkimage-profiles
Compare commits
67 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e10d55d0ad | ||
|
8c042fe775 | ||
|
5fc270f996 | ||
|
6e6f572b43 | ||
|
c692da6a06 | ||
|
7221c53ccf | ||
|
aed6540702 | ||
|
a83b7a17cb | ||
|
3a4ba20a0f | ||
|
305e97d5a2 | ||
|
6647e8996a | ||
|
6ada32dc91 | ||
|
c66e8ae242 | ||
|
674e1482ae | ||
|
600fc011cb | ||
|
f57759d6dc | ||
|
50bfea9d5c | ||
|
d0a8ea6ba8 | ||
|
dc3002560a | ||
|
4858791145 | ||
|
03de0aabac | ||
|
8576a1655b | ||
|
865f4c7614 | ||
|
86c42e2db6 | ||
|
a6cc9fa8c3 | ||
|
780acc8e6b | ||
|
d190759717 | ||
|
1432bb1607 | ||
|
f4519332e9 | ||
|
acaf12c34e | ||
|
8d16069882 | ||
|
931d23e86c | ||
|
6fee43e9cb | ||
|
fe58c46ead | ||
|
0cc20d107d | ||
|
c2996cc493 | ||
|
94b2052bfb | ||
|
665c70a444 | ||
|
68022a3222 | ||
|
88050c9742 | ||
|
c6ee8861f4 | ||
|
5347d342cc | ||
|
74d1e45a1c | ||
|
dccf9a58b5 | ||
|
9fd0bc143e | ||
|
4afd735adb | ||
|
3d649db656 | ||
|
b5e6906b56 | ||
|
afd84973d9 | ||
|
b129c86ac1 | ||
|
1b885b3d24 | ||
|
ea5ae29ada | ||
|
ece828c0dc | ||
|
50a0c66899 | ||
|
5ff765275b | ||
|
9555f1f69a | ||
|
87502d2a4a | ||
|
d39b0b984a | ||
|
587eac45ec | ||
|
d6e899d129 | ||
|
edfdeca311 | ||
|
b6e640bd8d | ||
|
0c41e39ec0 | ||
|
ed7bf0db9f | ||
|
17bd880e19 | ||
|
80090d1f1a | ||
|
7ffd600076 |
@@ -1,5 +1,5 @@
|
|||||||
Name: mkimage-profiles
|
Name: mkimage-profiles
|
||||||
Version: 0.6.0
|
Version: 0.6.4
|
||||||
Release: alt1
|
Release: alt1
|
||||||
|
|
||||||
Summary: ALT Linux based distribution metaprofile
|
Summary: ALT Linux based distribution metaprofile
|
||||||
@@ -39,7 +39,7 @@ Virtual environment template caches (OpenVZ/LXC) can be made either.
|
|||||||
In short, setup hasher (http://en.altlinux.org/hasher) and here we go:
|
In short, setup hasher (http://en.altlinux.org/hasher) and here we go:
|
||||||
cd %mpdir
|
cd %mpdir
|
||||||
head README
|
head README
|
||||||
make distro/syslinux.iso
|
make syslinux.iso
|
||||||
|
|
||||||
But if you're into regular distro hacking and are not afraid of make
|
But if you're into regular distro hacking and are not afraid of make
|
||||||
and modest metaprogramming (some code generation and introspection),
|
and modest metaprogramming (some code generation and introspection),
|
||||||
@@ -61,6 +61,20 @@ cp -a * %buildroot%mpdir
|
|||||||
%doc README QUICKSTART
|
%doc README QUICKSTART
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Apr 23 2012 Michael Shigorin <mike@altlinux.org> 0.6.4-alt1
|
||||||
|
- simply better (tm)
|
||||||
|
|
||||||
|
* Mon Apr 09 2012 Michael Shigorin <mike@altlinux.org> 0.6.3-alt1
|
||||||
|
- massive squashfs tuning
|
||||||
|
|
||||||
|
* Mon Apr 02 2012 Michael Shigorin <mike@altlinux.org> 0.6.2-alt1
|
||||||
|
- better live-webkiosk and initial live-flightgear
|
||||||
|
- cleanup, syslinux, xorg feature tweaks
|
||||||
|
|
||||||
|
* Mon Mar 26 2012 Michael Shigorin <mike@altlinux.org> 0.6.1-alt1
|
||||||
|
- ISO9660 metadata support
|
||||||
|
- initial alien VE image
|
||||||
|
|
||||||
* Mon Mar 19 2012 Michael Shigorin <mike@altlinux.org> 0.6.0-alt1
|
* Mon Mar 19 2012 Michael Shigorin <mike@altlinux.org> 0.6.0-alt1
|
||||||
- reports (targets graph)
|
- reports (targets graph)
|
||||||
|
|
||||||
|
6
.gear/tags/5090c03579f3fc620063211417b18e9a57a0eb8d
Normal file
6
.gear/tags/5090c03579f3fc620063211417b18e9a57a0eb8d
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
object d190759717b97a39e5d0de0ffb555424d6b1c335
|
||||||
|
type commit
|
||||||
|
tag v0.6.3
|
||||||
|
tagger Michael Shigorin <mike@altlinux.org> 1334001608 +0300
|
||||||
|
|
||||||
|
squash!
|
@@ -1,6 +0,0 @@
|
|||||||
object 3f85ed2b19708819aa28d23762f0d6b71741a483
|
|
||||||
type commit
|
|
||||||
tag v0.5.7
|
|
||||||
tagger Michael Shigorin <mike@altlinux.org> 1331583347 +0200
|
|
||||||
|
|
||||||
distro tweaks
|
|
@@ -1 +1 @@
|
|||||||
8cc85c046ab7ddd162f08001f1b615ee080ab7c4 v0.5.7
|
5090c03579f3fc620063211417b18e9a57a0eb8d v0.6.3
|
||||||
|
11
Makefile
11
Makefile
@@ -12,10 +12,12 @@ endif
|
|||||||
endif
|
endif
|
||||||
export ARCHES
|
export ARCHES
|
||||||
|
|
||||||
|
export PATH := $(CURDIR)/bin:$(PATH)
|
||||||
|
|
||||||
# supervise target tracing; leave stderr alone
|
# supervise target tracing; leave stderr alone
|
||||||
ifdef REPORT
|
ifdef REPORT
|
||||||
export REPORT_PATH := $(shell mktemp --tmpdir mkimage-profiles.report.XXXXXXX)
|
export REPORT_PATH := $(shell mktemp --tmpdir mkimage-profiles.report.XXXXXXX)
|
||||||
POSTPROC := | bin/report-filter > $(REPORT_PATH)
|
POSTPROC := | report-filter > $(REPORT_PATH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# recursive make considered useful for m-p
|
# recursive make considered useful for m-p
|
||||||
@@ -41,7 +43,10 @@ export NUM_TARGETS := $(words $(MAKECMDGOALS))
|
|||||||
for ARCH in $(ARCHES); do \
|
for ARCH in $(ARCHES); do \
|
||||||
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then say; fi; \
|
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then say; fi; \
|
||||||
say "** ARCH: $$ARCH" >&2; \
|
say "** ARCH: $$ARCH" >&2; \
|
||||||
$(MAKE) -f main.mk ARCH=$$ARCH $@ $(POSTPROC); \
|
if $(MAKE) -f main.mk ARCH=$$ARCH $@ $(POSTPROC); then \
|
||||||
$(MAKE) -f reports.mk ARCH=$$ARCH; \
|
if [ -n "$$REPORT" ]; then \
|
||||||
|
$(MAKE) -f reports.mk ARCH=$$ARCH; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi
|
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi
|
||||||
|
9
README
9
README
@@ -1,12 +1,12 @@
|
|||||||
Welcome to mkimage-profiles!
|
Welcome to mkimage-profiles!
|
||||||
|
|
||||||
English quickstart: make distro/server-base.iso;
|
English quickstart: make server-mini.iso;
|
||||||
see http://en.altlinux.org/Hasher (and a large tmpfs).
|
see http://en.altlinux.org/Hasher (and a large tmpfs).
|
||||||
|
|
||||||
Configurables: ~/.mkimage/profiles.mk;
|
Configurables: ~/.mkimage/profiles.mk;
|
||||||
see doc/profiles.mk.sample and libdistro.mk
|
see doc/variables.txt and conf.d/README
|
||||||
|
|
||||||
License: GPLv2+, see COPYING.
|
License: GPLv2+, see COPYING
|
||||||
|
|
||||||
Most docs are in Russian, welcome to learn it or ask for English.
|
Most docs are in Russian, welcome to learn it or ask for English.
|
||||||
См. тж. http://www.altlinux.org/Mkimage/Profiles/m-p
|
См. тж. http://www.altlinux.org/Mkimage/Profiles/m-p
|
||||||
@@ -34,7 +34,7 @@ Most docs are in Russian, welcome to learn it or ask for English.
|
|||||||
Объекты:
|
Объекты:
|
||||||
- дистрибутивы и виртуальные окружения:
|
- дистрибутивы и виртуальные окружения:
|
||||||
+ описываются в conf.d/*.mk или соответственно lib/{distro,ve}.mk
|
+ описываются в conf.d/*.mk или соответственно lib/{distro,ve}.mk
|
||||||
+ могут основываться одно на другом
|
+ могут основываться на предшественниках, расширяя их
|
||||||
+ дистрибутивы также:
|
+ дистрибутивы также:
|
||||||
- включают один или более субпрофилей по надобности
|
- включают один или более субпрофилей по надобности
|
||||||
+ желательно избегать множественного наследования, см. тж. фичи
|
+ желательно избегать множественного наследования, см. тж. фичи
|
||||||
@@ -58,3 +58,4 @@ Most docs are in Russian, welcome to learn it or ask for English.
|
|||||||
+ указанный явно,
|
+ указанный явно,
|
||||||
+ либо ~/out/ (если возможно),
|
+ либо ~/out/ (если возможно),
|
||||||
+ или $(BUILDDIR)/out/ иначе
|
+ или $(BUILDDIR)/out/ иначе
|
||||||
|
- формируются отчёты, если запрошены (REPORTS)
|
||||||
|
36
bin/columnize
Executable file
36
bin/columnize
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# columnize.sh
|
||||||
|
# Take a list of values and output them in a nicely formatted column view.
|
||||||
|
# Author: Loïc Cattani "Arko" <loic cattani at gmail com>
|
||||||
|
# https://github.com/Arko/Columnize
|
||||||
|
|
||||||
|
values=($*)
|
||||||
|
longest_value=0
|
||||||
|
|
||||||
|
# Find the longest value
|
||||||
|
for value in ${values[@]}; do
|
||||||
|
if [[ ${#value} -gt $longest_value ]]; then
|
||||||
|
longest_value=${#value}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Compute column span
|
||||||
|
term_width=${COLUMNS:-$(tput cols)}
|
||||||
|
(( columns = $term_width / ($longest_value + 2) ))
|
||||||
|
|
||||||
|
# Print values with pretty column width
|
||||||
|
curr_col=0
|
||||||
|
for value in ${values[@]}; do
|
||||||
|
value_len=${#value}
|
||||||
|
echo -n $value
|
||||||
|
(( spaces_missing = $longest_value - $value_len + 2 ))
|
||||||
|
printf "%*s" $spaces_missing
|
||||||
|
(( curr_col++ ))
|
||||||
|
if [[ $curr_col == $columns ]]; then
|
||||||
|
echo
|
||||||
|
curr_col=0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Make sure there is a newline at the end
|
||||||
|
if [[ $curr_col != 0 ]]; then echo; fi
|
@@ -17,18 +17,34 @@
|
|||||||
что обязано быть и в инсталяторе, и в готовой системе
|
что обязано быть и в инсталяторе, и в готовой системе
|
||||||
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
|
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
|
||||||
(NB: попадают в базовую систему)
|
(NB: попадают в базовую систему)
|
||||||
- для "пользовательского" (live, main) есть THE_GROUPS, THE_LISTS
|
- для "пользовательского" окружения (live, main) предназначены
|
||||||
и THE_PACKAGES
|
THE_PACKAGES, THE_LISTS, THE_GROUPS, THE_PACKAGES_REGEXP
|
||||||
|
- для строго направленного действия служат:
|
||||||
|
+ STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
|
||||||
|
+ INSTALL2_PACKAGES (инсталятор)
|
||||||
|
+ BASE_PACKAGES, BASE_LISTS, BASE_PACKAGES_REGEXP (базовая система)
|
||||||
|
+ MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
|
||||||
|
+ LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)
|
||||||
- аналогично по модулям ядра:
|
- аналогично по модулям ядра:
|
||||||
|
+ THE_KMODULES попадут в "пользовательскую" среду (live, main)
|
||||||
+ STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
|
+ STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
|
||||||
+ BASE_KMODULES попадут в установку по умолчанию
|
+ BASE_KMODULES попадут в установку по умолчанию
|
||||||
+ MAIN_KMODULES будут доступны для установки с носителя
|
+ MAIN_KMODULES будут доступны для установки с носителя
|
||||||
+ LIVE_KMODULES предназначены для LiveCD/LiveFlash
|
+ LIVE_KMODULES предназначены для LiveCD/LiveFlash
|
||||||
+ THE_KMODULES попадут в "пользовательские" окружения
|
|
||||||
(live и установленную систему)
|
|
||||||
|
|
||||||
По подстановкам:
|
По подстановкам:
|
||||||
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
|
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
|
||||||
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
||||||
значений; в этом случае их значения могут изменяться до окончания
|
значений; в этом случае их значения могут изменяться до окончания
|
||||||
конфигурации, а также зависеть от значений других переменных
|
конфигурации, а также зависеть от значений других переменных
|
||||||
|
|
||||||
|
По спискам пакетов:
|
||||||
|
- на этапе экспериментирования можно забивать прямо в описание образа
|
||||||
|
- при фиксации состояния стоит воспользоваться существующими списками,
|
||||||
|
а дополнительные оформить как можно более чётко обособленными по тем
|
||||||
|
задачам, для решения которых они и подобраны
|
||||||
|
- повторяющиеся логически связанные группы списков может иметь смысл
|
||||||
|
выделить в фичу (см., например, power или x11)
|
||||||
|
- если явной фичи не наблюдается, но у группы дистрибутивов намечается
|
||||||
|
заметная общая часть -- её можно выделить в промежуточную цель вида
|
||||||
|
distro/.name, не являющуюся самостоятельно собираемой
|
||||||
|
6
conf.d/alien.mk
Normal file
6
conf.d/alien.mk
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
ve/.centos-base: ve/.bare
|
||||||
|
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
|
||||||
|
|
||||||
|
ve/centos: ve/.centos-base
|
||||||
|
@$(call add,BASE_PACKAGES,openssh-server)
|
||||||
|
|
@@ -1,21 +1,18 @@
|
|||||||
# desktop distributions
|
# desktop distributions
|
||||||
ifeq (distro,$(IMAGE_CLASS))
|
ifeq (distro,$(IMAGE_CLASS))
|
||||||
|
|
||||||
distro/.desktop-base: distro/.installer \
|
distro/.desktop-base: distro/.installer use/syslinux/ui/vesamenu use/x11/xorg
|
||||||
use/syslinux/ui-vesamenu use/x11/xorg
|
|
||||||
@$(call set,INSTALLER,desktop)
|
@$(call set,INSTALLER,desktop)
|
||||||
|
|
||||||
distro/.desktop-mini: distro/.desktop-base \
|
distro/.desktop-mini: distro/.desktop-base use/x11/xdm +power; @:
|
||||||
use/lowmem use/x11/xdm use/power/acpi/button \
|
|
||||||
use/cleanup/alterator; @:
|
|
||||||
|
|
||||||
distro/tde: distro/.desktop-mini +tde
|
distro/.desktop-network: distro/.desktop-mini +vmguest
|
||||||
@$(call add,BASE_LISTS, \
|
@$(call add,BASE_LISTS,$(call tags,(base || desktop) && network))
|
||||||
$(call tags,(base || desktop) && network))
|
|
||||||
|
|
||||||
distro/icewm: distro/.desktop-mini +icewm; @:
|
distro/icewm: distro/.desktop-network use/lowmem +icewm; @:
|
||||||
distro/ltsp-icewm: distro/icewm +ltsp; @:
|
distro/tde: distro/.desktop-mini +tde; @:
|
||||||
distro/ltsp-tde: distro/tde +ltsp; @:
|
distro/ltsp-tde: distro/tde +ltsp; @:
|
||||||
|
distro/ltsp-icewm: distro/icewm +ltsp; @:
|
||||||
distro/desktop-systemd: distro/icewm use/systemd; @:
|
distro/desktop-systemd: distro/icewm use/systemd; @:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@@ -2,20 +2,26 @@
|
|||||||
ifeq (distro,$(IMAGE_CLASS))
|
ifeq (distro,$(IMAGE_CLASS))
|
||||||
|
|
||||||
distro/syslinux: distro/.init \
|
distro/syslinux: distro/.init \
|
||||||
use/syslinux/localboot.cfg use/syslinux/ui-vesamenu use/hdt; @:
|
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
|
||||||
|
|
||||||
distro/dos: distro/.init use/dos use/syslinux/ui-menu; @:
|
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
|
||||||
distro/rescue: distro/.base use/rescue use/syslinux/ui-menu; @:
|
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu; @:
|
||||||
distro/live-systemd: distro/.base use/live/base use/systemd; @:
|
distro/live-systemd: distro/.base use/live/base use/systemd; @:
|
||||||
|
|
||||||
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
|
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
|
||||||
distro/.live-desktop: distro/.base use/syslinux/ui-vesamenu +live; @:
|
distro/.live-desktop: distro/.base +live use/syslinux/ui/vesamenu; @:
|
||||||
|
|
||||||
|
distro/.live-kiosk: distro/.base use/live/base use/live/autologin \
|
||||||
|
use/syslinux/timeout/1 use/cleanup +power
|
||||||
|
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu)
|
||||||
|
@$(call add,CLEANUP_PACKAGES,'alterator*' 'guile*' 'vim-common')
|
||||||
|
|
||||||
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
|
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
|
||||||
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
|
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
|
||||||
|
|
||||||
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
|
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
|
||||||
distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
|
distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
|
||||||
|
@$(call set,KFLAVOURS,$(BIGRAM))
|
||||||
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
|
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
|
||||||
@$(call add,LIVE_PACKAGES,zsh sudo)
|
@$(call add,LIVE_PACKAGES,zsh sudo)
|
||||||
@$(call add,LIVE_PACKAGES,$(pkgs))
|
@$(call add,LIVE_PACKAGES,$(pkgs))
|
||||||
@@ -25,17 +31,30 @@ distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
|
|||||||
distro/live-install: distro/.live-base use/syslinux/localboot.cfg
|
distro/live-install: distro/.live-base use/syslinux/localboot.cfg
|
||||||
@$(call add,LIVE_PACKAGES,live-install)
|
@$(call add,LIVE_PACKAGES,live-install)
|
||||||
|
|
||||||
|
distro/.livecd-install: distro/.live-base
|
||||||
|
@$(call add,LIVE_PACKAGES,livecd-install)
|
||||||
|
|
||||||
distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @:
|
distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @:
|
||||||
distro/live-razorqt: distro/.live-desktop +razorqt; @:
|
distro/live-razorqt: distro/.live-desktop +razorqt; @:
|
||||||
distro/live-tde: distro/.live-desktop +tde; @:
|
distro/live-tde: distro/.live-desktop use/live/ru +tde; @:
|
||||||
|
|
||||||
distro/live-rescue: distro/live-icewm
|
distro/live-rescue: distro/live-icewm
|
||||||
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
|
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
|
||||||
@$(call add,LIVE_LISTS, \
|
@$(call add,LIVE_LISTS, \
|
||||||
$(call tags,(base || extra) && (archive || rescue || network)))
|
$(call tags,(base || extra) && (archive || rescue || network)))
|
||||||
|
|
||||||
distro/live-webkiosk: distro/.live-desktop use/live/autologin use/live/hooks
|
distro/live-webkiosk-mini: distro/.live-kiosk use/live/hooks use/live/ru
|
||||||
|
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
|
||||||
@$(call add,LIVE_PACKAGES,livecd-webkiosk)
|
@$(call add,LIVE_PACKAGES,livecd-webkiosk)
|
||||||
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
|
@$(call add,CLEANUP_PACKAGES,'libqt4*' 'qt4*')
|
||||||
|
|
||||||
|
distro/live-webkiosk: distro/live-webkiosk-mini use/live/desktop; @:
|
||||||
|
|
||||||
|
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-cinnamon: distro/.live-desktop use/live/autologin use/live/ru \
|
||||||
|
use/x11/cinnamon use/x11/3d-free
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@@ -1,9 +1,14 @@
|
|||||||
# server distributions
|
# server distributions
|
||||||
ifeq (distro,$(IMAGE_CLASS))
|
ifeq (distro,$(IMAGE_CLASS))
|
||||||
|
|
||||||
distro/.server-base: distro/.installer use/syslinux/ui-menu use/memtest
|
distro/.server-base: distro/.installer use/syslinux/ui/menu use/memtest
|
||||||
@$(call add,BASE_LISTS,server-base)
|
@$(call add,BASE_LISTS,server-base)
|
||||||
|
|
||||||
|
distro/server-nano: distro/.server-base \
|
||||||
|
use/cleanup/x11-alterator use/bootloader/lilo
|
||||||
|
@$(call add,BASE_LISTS,$(call tags,server network))
|
||||||
|
@$(call add,BASE_PACKAGES,dhcpcd cpio)
|
||||||
|
|
||||||
distro/server-mini: distro/.server-base use/cleanup/x11-alterator
|
distro/server-mini: distro/.server-base use/cleanup/x11-alterator
|
||||||
@$(call set,KFLAVOURS,el-smp)
|
@$(call set,KFLAVOURS,el-smp)
|
||||||
@$(call add,THE_KMODULES,e1000e igb)
|
@$(call add,THE_KMODULES,e1000e igb)
|
||||||
@@ -14,15 +19,13 @@ distro/server-mini: distro/.server-base use/cleanup/x11-alterator
|
|||||||
|
|
||||||
distro/server-systemd: distro/server-mini use/systemd use/bootloader/lilo; @:
|
distro/server-systemd: distro/server-mini use/systemd use/bootloader/lilo; @:
|
||||||
|
|
||||||
distro/server-ovz: distro/server-mini \
|
distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
|
||||||
use/hdt use/rescue use/firmware/server use/power/acpi/button
|
use/firmware/server use/firmware/wireless use/power/acpi/button
|
||||||
@$(call set,STAGE1_KFLAVOUR,std-def)
|
@$(call set,STAGE1_KFLAVOUR,std-def)
|
||||||
@$(call set,KFLAVOURS,std-def ovz-el)
|
@$(call set,KFLAVOURS,std-def ovz-el)
|
||||||
@$(call add,BASE_KMODULES,rtl8168 rtl8192)
|
@$(call add,BASE_KMODULES,rtl8168 rtl8192)
|
||||||
@$(call add,MAIN_KMODULES,bcmwl ndiswrapper)
|
|
||||||
@$(call add,MAIN_KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
@$(call add,MAIN_KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
||||||
@$(call add,MAIN_KMODULES,drbd83 kvm)
|
@$(call add,MAIN_KMODULES,drbd83 kvm)
|
||||||
@$(call add,INSTALL2_PACKAGES,curl) ### should become curl-mini
|
|
||||||
@$(call add,BASE_LISTS,ovz-server)
|
@$(call add,BASE_LISTS,ovz-server)
|
||||||
@$(call add,MAIN_LISTS,kernel-wifi)
|
@$(call add,MAIN_LISTS,kernel-wifi)
|
||||||
@$(call add,MAIN_GROUPS,dns-server http-server ftp-server kvm-server)
|
@$(call add,MAIN_GROUPS,dns-server http-server ftp-server kvm-server)
|
||||||
@@ -31,7 +34,7 @@ distro/server-ovz: distro/server-mini \
|
|||||||
|
|
||||||
# tiny network-only server-ovz installer (stage2 comes over net too)
|
# tiny network-only server-ovz installer (stage2 comes over net too)
|
||||||
distro/server-ovz-netinst: distro/.base sub/stage1 use/stage2 \
|
distro/server-ovz-netinst: distro/.base sub/stage1 use/stage2 \
|
||||||
use/syslinux/ui-menu use/syslinux/localboot.cfg use/memtest
|
use/syslinux/ui/menu use/syslinux/localboot.cfg use/memtest
|
||||||
@$(call add,SYSLINUX_CFG,netinstall2)
|
@$(call add,SYSLINUX_CFG,netinstall2)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
9
conf.d/simply.mk
Normal file
9
conf.d/simply.mk
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# simply images
|
||||||
|
|
||||||
|
ifeq (distro,$(IMAGE_CLASS))
|
||||||
|
|
||||||
|
distro/live-simply: distro/.livecd-install use/isohybrid use/slinux-live use/systemd \
|
||||||
|
use/firmware/wireless use/x11/drm use/x11/3d-proprietary use/syslinux/ui/gfxboot
|
||||||
|
@$(call set,BRANDING,simply-linux)
|
||||||
|
|
||||||
|
endif
|
@@ -1,7 +1,8 @@
|
|||||||
предположения фрагментов кода об окружении
|
предположения фрагментов кода об окружении
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
NB: пути приводятся от верхнего уровня; проект в целом предполагает
|
NB: пути приводятся от верхнего уровня; проект в целом предполагает
|
||||||
GNU make 3.81 (с использованием которого и разрабатывается).
|
ALT Linux 6.0+ и GNU make 3.81 (на которых и разрабатывается),
|
||||||
|
но может быть портирован вместе с mkimage.
|
||||||
|
|
||||||
- lib/report.mk
|
- lib/report.mk
|
||||||
+ ожидает, что каждая подлежащая трассированию цель каждого
|
+ ожидает, что каждая подлежащая трассированию цель каждого
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
~~~~
|
~~~~
|
||||||
Особенности дистрибутива, не учитываемые в пакетной базе
|
Особенности дистрибутива, не учитываемые в пакетной базе
|
||||||
или зависящие от переменных времени сборки/установки образа,
|
или зависящие от переменных времени сборки/установки образа,
|
||||||
могут быть оформлены несколькими образами:
|
могут быть оформлены как:
|
||||||
|
|
||||||
* scripts.d/ или image-scripts.d/ различных стадий;
|
* scripts.d/ или image-scripts.d/ различных стадий;
|
||||||
* пакеты installer-feature-*
|
* пакеты installer-feature-*
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
В большинстве случаев можно рекомендовать создание feature
|
В большинстве случаев можно рекомендовать создание feature
|
||||||
средствами метапрофиля, поскольку при этом дерево кода более
|
средствами метапрофиля, поскольку при этом дерево кода более
|
||||||
удобно для анализа и обновления (и в отличие от m-p-d, нет
|
удобно для анализа и обновления (и в отличие от m-p-d -- нет
|
||||||
вынужденной необходимости либо контролировать включение нужных
|
вынужденной необходимости либо контролировать включение нужных
|
||||||
фич "вручную" в скриптах по косвенным признакам, либо выносить
|
фич "вручную" в скриптах по косвенным признакам, либо выносить
|
||||||
их в пакеты installer-feature-*).
|
их в пакеты installer-feature-*).
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
# sample ~/.mkimage/profiles.mk
|
# sample ~/.mkimage/profiles.mk
|
||||||
|
# NB: REPORT doesn't work here, it's somewhat special
|
||||||
|
|
||||||
# where to look for apt.conf; system one used by default
|
# where to look for apt.conf; system one used by default
|
||||||
#APTCONF = ~/apt/apt.conf.$(ARCH)
|
#APTCONF = ~/apt/apt.conf.$(ARCH)
|
||||||
|
@@ -14,9 +14,9 @@
|
|||||||
+ см. ../lib/build.mk
|
+ см. ../lib/build.mk
|
||||||
|
|
||||||
- ARCHES
|
- ARCHES
|
||||||
+ задаёт набор целевых архитектур образов
|
+ задаёт набор целевых архитектур при параметрическом задании APTCONF
|
||||||
+ значение: пусто (по умолчанию авто) либо список через пробел
|
+ значение: пусто (по умолчанию авто) либо список через пробел
|
||||||
+ см. ../Makefile
|
+ см. ../Makefile, profiles.mk.sample
|
||||||
|
|
||||||
- BELL
|
- BELL
|
||||||
+ подаёт сигнал после завершения сборки
|
+ подаёт сигнал после завершения сборки
|
||||||
@@ -55,6 +55,11 @@
|
|||||||
+ значение: пусто (по умолчанию), 1 или 2
|
+ значение: пусто (по умолчанию), 1 или 2
|
||||||
+ см. ../lib/log.mk
|
+ см. ../lib/log.mk
|
||||||
|
|
||||||
|
- HOMEPAGE, HOMENAME, HOMEWAIT
|
||||||
|
+ указывают адрес, название и таймаут перехода для домашней страницы
|
||||||
|
+ значение: корректный URL, строка, целое неотрицательное число
|
||||||
|
+ см. ../features.in/live/generate.mk (тж. по умолчаниям)
|
||||||
|
|
||||||
- ISOHYBRID
|
- ISOHYBRID
|
||||||
+ включает постобработку ISO-образа isohybrid
|
+ включает постобработку ISO-образа isohybrid
|
||||||
+ значение: пусто (по умолчанию) либо любая строка
|
+ значение: пусто (по умолчанию) либо любая строка
|
||||||
@@ -66,8 +71,9 @@
|
|||||||
+ см. ../lib/build.mk
|
+ см. ../lib/build.mk
|
||||||
|
|
||||||
- REPORT
|
- REPORT
|
||||||
+ запрашивает создание отчёта о собранном образе
|
+ запрашивает создание отчётов о собранном образе
|
||||||
+ значение: пусто (по умолчанию) либо любая строка
|
+ значение: пусто (по умолчанию) либо любая строка
|
||||||
|
+ NB: в силу специфики обработки передаётся только явно
|
||||||
+ см. ../Makefile, ../report.mk, ../lib/report.mk
|
+ см. ../Makefile, ../report.mk, ../lib/report.mk
|
||||||
|
|
||||||
- SAVE_PROFILE
|
- SAVE_PROFILE
|
||||||
@@ -75,6 +81,20 @@
|
|||||||
+ значение: пусто (по умолчанию) либо любая строка
|
+ значение: пусто (по умолчанию) либо любая строка
|
||||||
+ см. ../image.in/Makefile
|
+ см. ../image.in/Makefile
|
||||||
|
|
||||||
|
- SQUASHFS
|
||||||
|
+ определяет характер сжатия squashfs для stage2
|
||||||
|
+ значение:
|
||||||
|
- пусто (по умолчанию) либо normal: xz
|
||||||
|
- tight: xz с -Xbcj по платформе (лучше, но дольше -- подбор в два прохода)
|
||||||
|
- fast: gzip/lzo (быстрее запаковывается и распаковывается, меньше степень)
|
||||||
|
+ см. ../features.in/stage2/stage1/scripts.d/03-test-kernel
|
||||||
|
|
||||||
|
- SORTDIR
|
||||||
|
+ дополнительно структурирует каталог собранных образов
|
||||||
|
+ значение: пусто (по умолчанию) либо строка
|
||||||
|
- например, '$(IMAGE_NAME)/$(DATE)'
|
||||||
|
+ см. ../image.in/Makefile
|
||||||
|
|
||||||
пример
|
пример
|
||||||
~~~~~~
|
~~~~~~
|
||||||
make DEBUG=1 CLEAN=1 distro/syslinux.iso
|
make DEBUG=1 CLEAN=1 distro/syslinux.iso
|
||||||
|
@@ -15,6 +15,11 @@
|
|||||||
в списке, содержащемся в этой переменной, то она не задействуется
|
в списке, содержащемся в этой переменной, то она не задействуется
|
||||||
при построении профиля, а только при сборке конфигурации.
|
при построении профиля, а только при сборке конфигурации.
|
||||||
|
|
||||||
|
Для наиболее ходовых целей use/*, особенно если их много, можно
|
||||||
|
создавать цели-алиасы +* (например, +power). Просьба относиться
|
||||||
|
вдумчиво, т.к. в дальнейшем предполагается визуализировать такие
|
||||||
|
цели в UI конфигурирования образа.
|
||||||
|
|
||||||
Остальное содержимое является дополнительным и используется
|
Остальное содержимое является дополнительным и используется
|
||||||
в таком порядке (см. ../Makefile):
|
в таком порядке (см. ../Makefile):
|
||||||
|
|
||||||
|
@@ -25,6 +25,9 @@ define grepper_body
|
|||||||
done
|
done
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
%:
|
||||||
|
$(error BUILDDIR not defined)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
include $(BUILDDIR)/distcfg.mk
|
include $(BUILDDIR)/distcfg.mk
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
# - remember .base if adding yet another *_PACKAGES
|
# - remember .base if adding yet another *_PACKAGES
|
||||||
|
|
||||||
use/bootloader: use/install2 sub/main
|
use/bootloader: use/install2 sub/main
|
||||||
|
@$(call add_feature)
|
||||||
@$(call add,BASE_PACKAGES,alterator-$$(BASE_BOOTLOADER))
|
@$(call add,BASE_PACKAGES,alterator-$$(BASE_BOOTLOADER))
|
||||||
|
|
||||||
use/bootloader/grub use/bootloader/lilo: use/bootloader/%: use/bootloader
|
use/bootloader/grub use/bootloader/lilo: use/bootloader/%: use/bootloader
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
Эта фича конфигурирует создание образа дистрибутива, включая работу
|
Эта фича конфигурирует создание образа дистрибутива, включая работу
|
||||||
с субпрофилями -- которая сейчас нужна только дистрибутивным целям.
|
с субпрофилями -- которая сейчас нужна только дистрибутивным целям.
|
||||||
|
|
||||||
Дополняет финальную стадию сборки (lib/, scripts.d/).
|
Дополняет финальную стадию сборки (lib/, scripts.d/)
|
||||||
|
и тесно с ней связана.
|
||||||
|
@@ -4,7 +4,17 @@
|
|||||||
# take the latter part
|
# take the latter part
|
||||||
SUBDIRS = $(notdir $(SUBPROFILES))
|
SUBDIRS = $(notdir $(SUBPROFILES))
|
||||||
|
|
||||||
BOOT_TYPE = isolinux
|
# proxy over the ISO metadata collected; see also genisoimagerc(5)
|
||||||
|
BOOT_SYSI := $(META_SYSTEM_ID)
|
||||||
|
BOOT_PUBL := $(META_PUBLISHER)
|
||||||
|
BOOT_PREP := $(META_PREPARER)
|
||||||
|
BOOT_APPI := $(META_APP_ID)
|
||||||
|
BOOT_VOLI := $(META_VOL_ID)
|
||||||
|
BOOT_VOLS := $(META_VOL_SET)
|
||||||
|
BOOT_BIBL := $(META_BIBLIO)
|
||||||
|
BOOT_ABST := $(META_ABSTRACT)
|
||||||
|
|
||||||
|
BOOT_TYPE := isolinux
|
||||||
|
|
||||||
# Metadata/ needed only for installers (and not for e.g. syslinux.iso)
|
# Metadata/ needed only for installers (and not for e.g. syslinux.iso)
|
||||||
# FIXME: installable live needs it too, don't move to install2 feature
|
# FIXME: installable live needs it too, don't move to install2 feature
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
Эта фича конфигурирует создание образа виртуального окружения (VE).
|
Эта фича конфигурирует создание образа виртуального окружения (VE).
|
||||||
|
|
||||||
Дополняет финальную стадию сборки (lib/, image-scripts.d/).
|
Дополняет финальную стадию сборки (lib/, image-scripts.d/)
|
||||||
|
и тесно с ней связана.
|
||||||
|
@@ -8,6 +8,6 @@
|
|||||||
|
|
||||||
[ -x /sbin/chkconfig ] || exit 0
|
[ -x /sbin/chkconfig ] || exit 0
|
||||||
|
|
||||||
for i in network random syslogd random; do chkconfig $i on; done
|
for i in network random syslogd; do chkconfig $i on; done
|
||||||
for i in fbsetfont netfs rawdevices; do chkconfig $i off; done
|
for i in fbsetfont netfs rawdevices; do chkconfig $i off; done
|
||||||
:
|
:
|
||||||
|
6
features.in/build-ve/image-scripts.d/07fstab
Executable file
6
features.in/build-ve/image-scripts.d/07fstab
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ -s /etc/fstab ] || cat >> /etc/fstab <<-EOF
|
||||||
|
proc /proc proc nosuid,noexec,gid=proc 0 0
|
||||||
|
devpts /dev/pts devpts gid=5,mode=620 0 0
|
||||||
|
EOF
|
12
features.in/cleanup/live/image-scripts.d/80locales
Executable file
12
features.in/cleanup/live/image-scripts.d/80locales
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# FIXME: there should be less brutal i18n tuning
|
||||||
|
|
||||||
|
cd /usr/share/locale
|
||||||
|
rm -r *@*
|
||||||
|
for i in */; do
|
||||||
|
case "$i" in
|
||||||
|
be*|en*|ru*|uk*) continue;;
|
||||||
|
esac
|
||||||
|
rm -r "$i"
|
||||||
|
done
|
||||||
|
:
|
5
features.in/cleanup/live/image-scripts.d/90cleanup-docs
Executable file
5
features.in/cleanup/live/image-scripts.d/90cleanup-docs
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# remove all docs
|
||||||
|
|
||||||
|
rpmquery -ad |grep ^/ |xargs -r rm -f --
|
||||||
|
rm -rf /usr/share/{doc,man,info,license,gfxboot}
|
6
features.in/cleanup/live/image-scripts.d/90cleanup-pkgs
Executable file
6
features.in/cleanup/live/image-scripts.d/90cleanup-pkgs
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh -efu
|
||||||
|
# remove extra packages from a bare livecd
|
||||||
|
|
||||||
|
list="$(rpmquery -a --qf='%{NAME}\n' $GLOBAL_CLEANUP_PACKAGES)"
|
||||||
|
[ -z "$list" ] || apt-get remove -f -y -- $list
|
||||||
|
:
|
15
features.in/cleanup/live/image-scripts.d/99cleanupdb
Executable file
15
features.in/cleanup/live/image-scripts.d/99cleanupdb
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# dump what's here by this point
|
||||||
|
echo "** live packages before rpmdb purge:"
|
||||||
|
rpmquery -a --qf='%{NAME} %{VERSION}-%{RELEASE}\n'
|
||||||
|
|
||||||
|
# remove apt database and cache
|
||||||
|
find /var/lib/apt /var/cache/apt -type f -delete
|
||||||
|
|
||||||
|
# not going to need them without rpmdb, it's not even rescue anymore
|
||||||
|
rpm -e --nodeps apt libapt rpm librpmbuild librpm 2>/dev/null ||:
|
||||||
|
|
||||||
|
# finally, drop rpmdb
|
||||||
|
find /var/lib/rpm -type f -delete
|
||||||
|
|
||||||
|
:
|
@@ -1,5 +1,9 @@
|
|||||||
|
# tries to fill in ISO metadata in case it's the only inhabitant
|
||||||
use/dos: use/syslinux
|
use/dos: use/syslinux
|
||||||
@$(call add_feature)
|
@$(call add_feature)
|
||||||
@$(call add,SYSLINUX_CFG,dos)
|
@$(call add,SYSLINUX_CFG,dos)
|
||||||
@$(call add,SYSLINUX_FILES,/usr/lib/syslinux/memdisk)
|
@$(call add,SYSLINUX_FILES,/usr/lib/syslinux/memdisk)
|
||||||
@$(call add,STAGE1_PACKAGES,make-freedos-floppy glibc-gconv-modules)
|
@$(call add,STAGE1_PACKAGES,make-freedos-floppy glibc-gconv-modules)
|
||||||
|
@$(call try,META_SYSTEM_ID,DOS)
|
||||||
|
@$(call try,META_VOL_ID,FreeDOS 2.88M)
|
||||||
|
@$(call try,META_VOL_SET,FreeDOS)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sh
|
||||||
# create a barebone bootable freedos floppy
|
# create a barebone bootable freedos floppy
|
||||||
# TODO: some sub-framework to populate it as well
|
# TODO: some sub-framework to populate it as well
|
||||||
|
|
||||||
|
@@ -3,17 +3,23 @@
|
|||||||
# for mkmodpack to use
|
# for mkmodpack to use
|
||||||
|
|
||||||
use/firmware:
|
use/firmware:
|
||||||
|
@$(call add_feature)
|
||||||
@$(call add,SYSTEM_PACKAGES,firmware-linux)
|
@$(call add,SYSTEM_PACKAGES,firmware-linux)
|
||||||
|
|
||||||
use/firmware/server: use/firmware
|
use/firmware/server: use/firmware
|
||||||
@$(call add,SYSTEM_PACKAGES,firmware-aic94xx-seq)
|
@$(call add,SYSTEM_PACKAGES,firmware-aic94xx-seq)
|
||||||
@$(call add,MAIN_PACKAGES_REGEXP,firmware-ql.*)
|
@$(call add,THE_PACKAGES_REGEXP,firmware-ql.*)
|
||||||
|
|
||||||
|
# NB: individual firmwarez would sometimes conflict
|
||||||
|
# with ones newly merged into firmware-linux
|
||||||
|
# FIXME: kernel modules rather belong to use/hardware
|
||||||
use/firmware/wireless: use/firmware
|
use/firmware/wireless: use/firmware
|
||||||
@$(call add,MAIN_PACKAGES,firmware-acx100)
|
@$(call add,THE_KMODULES,bcmwl ndiswrapper)
|
||||||
@$(call add,MAIN_PACKAGES,firmware-i2400m)
|
@$(call add,THE_PACKAGES,firmware-acx100)
|
||||||
@$(call add,MAIN_PACKAGES_REGEXP,firmware-carl9170.*)
|
@#$(call add,THE_PACKAGES,firmware-i2400m)
|
||||||
@$(call add,MAIN_PACKAGES_REGEXP,firmware-ipw.*)
|
@$(call add,THE_PACKAGES_REGEXP,firmware-carl9170.*)
|
||||||
@#$(call add,MAIN_PACKAGES_REGEXP,firmware-iwl.*)
|
@$(call add,THE_PACKAGES_REGEXP,firmware-prism.*)
|
||||||
@$(call add,MAIN_PACKAGES_REGEXP,firmware-rt.*)
|
@$(call add,THE_PACKAGES_REGEXP,firmware-ipw.*)
|
||||||
@$(call add,MAIN_PACKAGES_REGEXP,firmware-zd.*)
|
@#$(call add,THE_PACKAGES_REGEXP,firmware-iwl.*)
|
||||||
|
@#$(call add,THE_PACKAGES_REGEXP,firmware-rt.*)
|
||||||
|
@$(call add,THE_PACKAGES_REGEXP,firmware-zd.*)
|
||||||
|
@@ -6,4 +6,5 @@
|
|||||||
чтобы в компактном livecd, которым является инсталятор, оказались
|
чтобы в компактном livecd, которым является инсталятор, оказались
|
||||||
нужные им утилиты (INSTALL2_PACKAGES). Перегружать его не следует,
|
нужные им утилиты (INSTALL2_PACKAGES). Перегружать его не следует,
|
||||||
поскольку это прямо влияет на требования по минимальному размеру
|
поскольку это прямо влияет на требования по минимальному размеру
|
||||||
оперативной памяти для установки.
|
оперативной памяти для установки (если не задействован параметр
|
||||||
|
загрузки ядра lowmem, обрабатываемый propagator).
|
||||||
|
@@ -4,3 +4,10 @@ use/install2: use/stage2 sub/stage2/install2 use/cleanup/installer
|
|||||||
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
|
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
|
||||||
@$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
|
@$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
|
||||||
@$(call add,BASE_LISTS,$(call tags,basesystem))
|
@$(call add,BASE_LISTS,$(call tags,basesystem))
|
||||||
|
|
||||||
|
use/install2/net: use/install2
|
||||||
|
@$(call add,INSTALL2_PACKAGES,curl)
|
||||||
|
|
||||||
|
# see also use/vm/kvm/guest; qxl included in xorg pkglist
|
||||||
|
use/install2/kvm:
|
||||||
|
@$(call add,INSTALL2_PACKAGES,spice-vdagent xorg-drv-qxl)
|
||||||
|
@@ -27,6 +27,4 @@ rpmquery -a cpp\* gcc\* perl-base file ipv6calc \
|
|||||||
rpmquery -a bind-utils libbind \
|
rpmquery -a bind-utils libbind \
|
||||||
| xargs -r rpmi -e --
|
| xargs -r rpmi -e --
|
||||||
|
|
||||||
# outstanding binaries
|
:
|
||||||
rm -f /sbin/{sln,tc}
|
|
||||||
rm -f /usr/bin/openssl
|
|
||||||
|
@@ -107,17 +107,3 @@ rm -rf /lib/modules/*/kernel/net/tipc
|
|||||||
rm -rf /lib/modules/*/kernel/net/{wimax,wireless,mac80211}
|
rm -rf /lib/modules/*/kernel/net/{wimax,wireless,mac80211}
|
||||||
rm -rf /lib/modules/*/kernel/net/x25
|
rm -rf /lib/modules/*/kernel/net/x25
|
||||||
rm -rf /lib/modules/*/kernel/sound
|
rm -rf /lib/modules/*/kernel/sound
|
||||||
|
|
||||||
# blacklisted kernel modules
|
|
||||||
sed -n 's/^blacklist[[:space:]]\+\([^[:space:]]\+\).*/\1/p' /etc/modprobe.d/* |
|
|
||||||
while read i; do
|
|
||||||
find /lib/modules/ -type f -name "$i.ko" -delete
|
|
||||||
done
|
|
||||||
|
|
||||||
# regenerate module dependencies
|
|
||||||
for i in /lib*/modules/*; do
|
|
||||||
/sbin/depmod -a -F /boot/System.map-${i##*/} ${i##*/}
|
|
||||||
done
|
|
||||||
|
|
||||||
# kernel images
|
|
||||||
rm -rf /boot/*
|
|
||||||
|
@@ -12,11 +12,14 @@ rm -f /usr/lib*/gconv/BIG5*
|
|||||||
rm -f /usr/lib*/gconv/EBCDIC*
|
rm -f /usr/lib*/gconv/EBCDIC*
|
||||||
|
|
||||||
# en_* variations
|
# en_* variations
|
||||||
rm -rf /usr/{lib*,share}/locale/en_[^U]*
|
rm -rf /usr/{lib,share}/locale/en_[^U]*
|
||||||
|
|
||||||
|
# mods
|
||||||
|
rm -rf /usr/{lib,share}/locale/*@*
|
||||||
|
|
||||||
# non-utf8 locales
|
# non-utf8 locales
|
||||||
find /usr/lib*/locale -mindepth 1 -maxdepth 1 -type d \! -name '*.utf8' -print0 |
|
find /usr/lib/locale -mindepth 1 -maxdepth 1 -type d \! -name '*.utf8' -print0 |
|
||||||
xargs -r0 rm -rf --
|
xargs -r0 rm -rf --
|
||||||
|
|
||||||
# dangling symlinks
|
# dangling symlinks
|
||||||
find /usr/lib*/locale \! -readable -delete
|
find /usr/lib/locale \! -readable -delete
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
# remove rpm database
|
#!/bin/sh
|
||||||
rm -rf /var/lib/rpm/*
|
# dump what's here by this point
|
||||||
|
echo "** install2 packages before rpmdb purge:"
|
||||||
|
rpmquery -a --qf='%{NAME} %{VERSION}-%{RELEASE}\n'
|
||||||
|
|
||||||
# remove apt data files
|
# not going to need them without rpmdb, it's not even rescue anymore
|
||||||
rm -rf /var/cache/apt /var/lib*/apt
|
apt-get remove -f -y apt libapt
|
||||||
|
|
||||||
|
# remove rpm, apt databases and cache
|
||||||
|
find /var/lib/rpm /var/lib/apt /var/cache/apt -type f -delete
|
||||||
|
|
||||||
|
:
|
||||||
|
@@ -3,7 +3,10 @@
|
|||||||
так и с USB-флэшки.
|
так и с USB-флэшки.
|
||||||
|
|
||||||
Можно указать в цепочке зависимостей дистрибутива явно с тем,
|
Можно указать в цепочке зависимостей дистрибутива явно с тем,
|
||||||
чтобы гарантировать гибридный вид образа; в экспериментальном
|
чтобы гарантировать гибридный вид образа, либо запросить включение
|
||||||
порядке сделана возможность запросить включение этой фичи при
|
этой фичи при сборке конфигурации произвольного дистрибутива
|
||||||
сборке конфигурации произвольного дистрибутива
|
|
||||||
(ISOHYBRID=1, см. ../pack/config.mk).
|
(ISOHYBRID=1, см. ../pack/config.mk).
|
||||||
|
|
||||||
|
Обратите внимание: в propagator до 20101130-alt15 поддержка
|
||||||
|
автоматической загрузки с флэш-носителя и при этом ISO-образа
|
||||||
|
отсутствует, что компенсируется специальной обработкой в gfxboot.
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
Эта фича дополняет базовый "живой" образ второй стадии
|
Эта фича дополняет базовый "живой" образ второй стадии
|
||||||
специфическими для полноценного LiveCD настройками
|
специфическими для полноценного LiveCD настройками
|
||||||
и скриптовыми хуками.
|
и скриптовыми хуками, а также создаёт файл index.html
|
||||||
|
с домашней страницей (редиректором) в корне образа.
|
||||||
|
@@ -1,22 +1,32 @@
|
|||||||
+live: use/live/desktop; @:
|
+live: use/live/desktop; @:
|
||||||
|
|
||||||
# copy stage2 as live
|
# copy stage2 as live
|
||||||
|
# NB: starts to preconfigure but doesn't use/cleanup yet
|
||||||
use/live: use/stage2 sub/stage2/live
|
use/live: use/stage2 sub/stage2/live
|
||||||
@$(call add_feature)
|
@$(call add_feature)
|
||||||
|
@$(call add,CLEANUP_PACKAGES,'installer*')
|
||||||
|
|
||||||
use/live/base: use/live use/syslinux/ui-menu
|
use/live/base: use/live use/syslinux/ui/menu
|
||||||
@$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
|
@$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
|
||||||
|
|
||||||
use/live/desktop: use/live/base use/x11/xorg use/x11/wacom \
|
# optimized out: use/x11/xorg
|
||||||
use/firmware use/virtualbox/guest \
|
use/live/desktop: use/live/base use/x11/wacom use/live/sound +vmguest +power
|
||||||
use/power/acpi/button use/power/acpi/cpufreq
|
|
||||||
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
|
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
|
||||||
|
@$(call add,LIVE_LISTS,$(call tags,base l10n))
|
||||||
|
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
|
||||||
|
@$(call add,SYSLINUX_CFG,localboot)
|
||||||
|
|
||||||
# NB: there's an unconditional live/image-scripts.d/40-autologin script
|
# NB: there's an unconditional live/image-scripts.d/40-autologin script
|
||||||
# *but* it only configures some of the *existing* means; let's add one
|
# *but* it only configures some of the *existing* means; let's add one
|
||||||
# for the cases when there should be no display manager
|
# for the cases when there should be no display manager
|
||||||
use/live/autologin: use/live/desktop
|
use/live/autologin: use/live use/x11/xorg
|
||||||
@$(call add,LIVE_PACKAGES,autologin xinit)
|
@$(call add,LIVE_PACKAGES,autologin xinit)
|
||||||
|
|
||||||
use/live/hooks: use/live
|
use/live/hooks: use/live
|
||||||
@$(call add,LIVE_PACKAGES,livecd-run-hooks)
|
@$(call add,LIVE_PACKAGES,livecd-run-hooks)
|
||||||
|
|
||||||
|
use/live/ru: use/live
|
||||||
|
@$(call add,LIVE_PACKAGES,livecd-ru)
|
||||||
|
|
||||||
|
use/live/sound: use/live
|
||||||
|
@$(call add,LIVE_PACKAGES,amixer alsa-utils aplay udev-alsa)
|
||||||
|
37
features.in/live/generate.mk
Normal file
37
features.in/live/generate.mk
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# set up livecd browser redirection page
|
||||||
|
|
||||||
|
ifdef BUILDDIR
|
||||||
|
|
||||||
|
include $(BUILDDIR)/distcfg.mk
|
||||||
|
|
||||||
|
ifndef HOMEPAGE
|
||||||
|
HOMEPAGE = http://www.altlinux.org/
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef HOMENAME
|
||||||
|
HOMENAME = ALT Linux
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef HOMEWAIT
|
||||||
|
HOMEWAIT = 3
|
||||||
|
endif
|
||||||
|
|
||||||
|
INDEXHTML := $(BUILDDIR)/stage1/files/index.html
|
||||||
|
|
||||||
|
all: debug
|
||||||
|
@if [ -s "$(INDEXHTML)" ]; then \
|
||||||
|
sed -i \
|
||||||
|
-e 's,@homepage@,$(HOMEPAGE),' \
|
||||||
|
-e 's,@homename@,$(HOMENAME),' \
|
||||||
|
-e 's,@homewait@,$(HOMEWAIT),' \
|
||||||
|
$(INDEXHTML); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
debug:
|
||||||
|
@if [ -n "$(DEBUG)" ]; then \
|
||||||
|
echo "** HOMEPAGE: $(HOMEPAGE)"; \
|
||||||
|
echo "** HOMENAME: $(HOMENAME)"; \
|
||||||
|
echo "** HOMEWAIT: $(HOMEWAIT)"; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
endif
|
42
features.in/live/live/image-scripts.d/03services
Executable file
42
features.in/live/live/image-scripts.d/03services
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# see also m-p-d::profiles/live/image-scripts.d/init3-services
|
||||||
|
|
||||||
|
[ -x /sbin/chkconfig ] || exit 0
|
||||||
|
|
||||||
|
ENABLE="
|
||||||
|
alteratord
|
||||||
|
livecd-evms
|
||||||
|
livecd-fstab
|
||||||
|
livecd-hostname
|
||||||
|
livecd-save-nfs
|
||||||
|
livecd-setauth
|
||||||
|
livecd-setlocale
|
||||||
|
network
|
||||||
|
NetworkManager
|
||||||
|
random
|
||||||
|
rpcbind
|
||||||
|
"
|
||||||
|
|
||||||
|
# NB: dnsmasq: https://bugzilla.altlinux.org/show_bug.cgi?id=18799
|
||||||
|
# NB: sshd might be needed for some particular cases
|
||||||
|
DISABLE="
|
||||||
|
anacron
|
||||||
|
bridge
|
||||||
|
clamd
|
||||||
|
crond
|
||||||
|
dhcpd
|
||||||
|
dnsmasq
|
||||||
|
mdadm
|
||||||
|
netfs
|
||||||
|
openvpn
|
||||||
|
rawdevices
|
||||||
|
slapd
|
||||||
|
smartd
|
||||||
|
sshd
|
||||||
|
update_wms
|
||||||
|
xinetd
|
||||||
|
"
|
||||||
|
|
||||||
|
for i in $ENABLE; do chkconfig $i on 2>/dev/null; done
|
||||||
|
for i in $DISABLE; do chkconfig $i off 2>/dev/null; done
|
||||||
|
:
|
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sh
|
||||||
# * reset password for root
|
# * reset password for root
|
||||||
# * add user `altlinux' (without password)
|
# * add user `altlinux' (without password)
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh -ef
|
#!/bin/sh -ef
|
||||||
|
|
||||||
if [ ! -x /usr/bin/X ]; then
|
if [ ! -x /usr/bin/X ]; then
|
||||||
echo "warning: autologin feature requested but X not installed" >&2
|
echo "SKIP autologin: X not installed" >&2
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# we don't really need the kernel in live root,
|
|
||||||
# it's been booted already
|
|
||||||
|
|
||||||
rm -f /boot/*
|
|
||||||
:
|
|
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
STAGE2_KMODULES = $(THE_KMODULES) $(LIVE_KMODULES)
|
STAGE2_KMODULES = $(THE_KMODULES) $(LIVE_KMODULES)
|
||||||
|
|
||||||
|
IMAGE_PACKAGES_REGEXP = $(THE_PACKAGES_REGEXP) \
|
||||||
|
$(LIVE_PACKAGES_REGEXP)
|
||||||
|
|
||||||
IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
|
IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
|
||||||
$(call map,list, \
|
$(call map,list, \
|
||||||
$(THE_LISTS) $(THE_GROUPS) \
|
$(THE_LISTS) $(THE_GROUPS) \
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="refresh" content="3;url=http://www.altlinux.org/">
|
<meta http-equiv="refresh" content="@homewait@;url=@homepage@">
|
||||||
<title>Welcome to ALT Linux!</title>
|
<title>Welcome to @homename@!</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Welcome to ALT Linux!</h1>
|
<h1>Welcome to @homename@!</h1>
|
||||||
<p>You will be redirected to <a href="http://www.altlinux.org/">the home page</a> shortly.</p>
|
<p>You will be redirected to <a href="@homepage@">the home page</a> shortly.</p>
|
||||||
</body>
|
</body>
|
||||||
<html>
|
</html>
|
||||||
|
@@ -2,4 +2,4 @@
|
|||||||
- загрузку бездисковых тонких клиентов по сети;
|
- загрузку бездисковых тонких клиентов по сети;
|
||||||
- предоставление им доступа к серверу приложений.
|
- предоставление им доступа к серверу приложений.
|
||||||
|
|
||||||
На данный момент является совсем экспериментальной.
|
На данный момент является экспериментальной.
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
+ltsp: use/ltsp/base; @:
|
+ltsp: use/ltsp/base; @:
|
||||||
|
|
||||||
use/ltsp:
|
use/ltsp:
|
||||||
|
@$(call add_feature)
|
||||||
@$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2)
|
@$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2)
|
||||||
@$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH))
|
@$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH))
|
||||||
@$(call add,BASE_LISTS,ltsp)
|
@$(call add,BASE_LISTS,ltsp)
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
|
+power: use/power/acpi/button use/power/acpi/cpufreq; @:
|
||||||
|
|
||||||
# common
|
# common
|
||||||
# TODO: invent multi-target scripts and integrate that 08-powerbutton
|
# TODO: invent multi-target scripts and integrate that 08-powerbutton
|
||||||
use/power:
|
use/power:
|
||||||
|
@$(call add_feature)
|
||||||
@$(call add,COMMON_PACKAGES,installer-feature-powerbutton-stage3)
|
@$(call add,COMMON_PACKAGES,installer-feature-powerbutton-stage3)
|
||||||
|
|
||||||
# modern power management
|
# modern power management
|
||||||
@@ -18,4 +21,4 @@ use/power/acpi/powersave: use/power/acpi
|
|||||||
|
|
||||||
# legacy power management
|
# legacy power management
|
||||||
use/power/apm: use/power
|
use/power/apm: use/power
|
||||||
@$(call add,COMMON_PACKAGES,apmd)
|
@$(call add,COMMON_PACKAGES,apmd lphdisk)
|
||||||
|
1
features.in/slinux/README
Normal file
1
features.in/slinux/README
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Наборы пакетов для семейства дистрибутивов Simply Linux.
|
17
features.in/slinux/config.mk
Normal file
17
features.in/slinux/config.mk
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
use/slinux: use/x11/xfce use/x11/gdm2.20
|
||||||
|
@$(call add_feature)
|
||||||
|
@$(call add,THE_LISTS,gnome-p2p)
|
||||||
|
@$(call add,THE_LISTS,slinux/$(ARCH))
|
||||||
|
@$(call add,THE_LISTS,slinux/games)
|
||||||
|
@$(call add,THE_LISTS,slinux/graphics)
|
||||||
|
@$(call add,THE_LISTS,slinux/live)
|
||||||
|
@$(call add,THE_LISTS,slinux/misc)
|
||||||
|
@$(call add,THE_LISTS,slinux/misc-dvd)
|
||||||
|
@$(call add,THE_LISTS,slinux/multimedia)
|
||||||
|
@$(call add,THE_LISTS,slinux/network)
|
||||||
|
@$(call add,THE_LISTS,slinux/xfce)
|
||||||
|
@$(call add,THE_LISTS,$(call tags,base l10n))
|
||||||
|
@$(call add,THE_PACKAGES,apt-conf-sisyphus)
|
||||||
|
|
||||||
|
use/slinux-live: use/slinux
|
||||||
|
@$(call add,THE_LISTS,slinux/live-install)
|
38
features.in/slinux/live/image-scripts.d/50services
Executable file
38
features.in/slinux/live/image-scripts.d/50services
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
SYSTEMCTL=/bin/systemctl
|
||||||
|
CHKCONFIG=/sbin/chkconfig
|
||||||
|
|
||||||
|
turn_on() {
|
||||||
|
if [ -x $SYSTEMCTL ]; then
|
||||||
|
$SYSTEMCTL enable ${*}.service
|
||||||
|
else if [ -x $CHKCONFIG ]; then
|
||||||
|
$CHKCONFIG $* on
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
turn_off() {
|
||||||
|
if [ -x $SYSTEMCTL ]; then
|
||||||
|
$SYSTEMCTL disable ${*}.service
|
||||||
|
else if [ -x $CHKCONFIG ]; then
|
||||||
|
$CHKCONFIG $* off
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
SERVICES_TO_ENABLE="NetworkManager"
|
||||||
|
SERVICES_TO_DISABLE=
|
||||||
|
|
||||||
|
for i in $SERVICES_TO_ENABLE; do
|
||||||
|
turn_on $i;
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in $SERVICES_TO_DISABLE; do
|
||||||
|
turn_off $i;
|
||||||
|
done
|
||||||
|
:
|
@@ -1,32 +1,55 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# NB: -f prohibited in this shebang
|
||||||
# check relevant kernel features availability
|
# check relevant kernel features availability
|
||||||
|
|
||||||
GZ_OPTS="-comp gzip"
|
CONFIGS=/boot/config-*
|
||||||
XZ_OPTS="-comp xz -b 524288 -noI"
|
GZ_OPTS="-comp gzip -noI"
|
||||||
|
XZ_OPTS="-comp xz"
|
||||||
|
LZO_OPTS="-comp lzo -noI"
|
||||||
|
|
||||||
|
verbose() { [ -n "$GLOBAL_VERBOSE" ] && echo "** $@" >&2; }
|
||||||
|
fatal() { echo "** error: $@" >&2; exit 1; }
|
||||||
|
|
||||||
|
configured()
|
||||||
|
{
|
||||||
|
local option="CONFIG_$1"
|
||||||
|
if grep -q "^$option" $CONFIGS; then
|
||||||
|
verbose "${option%=*} available"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ls $CONFIGS >&/dev/null || fatal "no stage1 kernel config found in /boot"
|
||||||
|
|
||||||
# test for installer-required filesystems support
|
# test for installer-required filesystems support
|
||||||
for opt in CONFIG_SQUASHFS CONFIG_AUFS_FS; do
|
for opt in SQUASHFS AUFS_FS; do
|
||||||
if grep -q "^$opt=[my]$" /boot/config-*; then
|
configured "$opt=[my]" || fatal "stage1 kernel must have $opt support"
|
||||||
[ -n "$GLOBAL_VERBOSE" ] && echo "** $opt available"
|
|
||||||
else
|
|
||||||
if [ "$?" = 1 ]; then # a file exists but lacks the pattern
|
|
||||||
echo "** error: stage1 kernel must have $opt support" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# squashfs options: not really neccessary but better than none
|
verbose "GLOBAL_SQUASHFS: $GLOBAL_SQUASHFS"
|
||||||
# NB: this config file should be carried over into install2
|
|
||||||
if grep -q '^CONFIG_SQUASHFS_XZ=y$' /boot/config-*; then
|
options()
|
||||||
# TODO: figure out if it's generally worth it even on x86:
|
{
|
||||||
# if binaries account for less than ~70% of blocks,
|
# squashfs options: not really neccessary but better than none
|
||||||
# the decompression filter overhead might hurt
|
# NB: this config file should be carried over into install2
|
||||||
# NB: there are arm, powerpc and some other filters too
|
if [ "$GLOBAL_SQUASHFS" != "fast" ] && configured "SQUASHFS_XZ=y"; then
|
||||||
if grep -q "^CONFIG_X86" /boot/config-*; then
|
# NB: the decompression filter overhead might hurt
|
||||||
XZ_OPTS="$XZ_OPTS -Xbcj x86"
|
# NB: there are arm, powerpc and some other filters too
|
||||||
|
if [ "$GLOBAL_SQUASHFS" = "tight" ] && configured "X86"; then
|
||||||
|
XZ_OPTS="$XZ_OPTS -b 524288 -Xbcj x86"
|
||||||
|
else
|
||||||
|
XZ_OPTS="$XZ_OPTS -b 262144 -noI"
|
||||||
|
fi
|
||||||
|
echo "$XZ_OPTS"
|
||||||
|
else # go fast, or even faster if possible
|
||||||
|
if configured "SQUASHFS_LZO=y"; then
|
||||||
|
echo "$LZO_OPTS"
|
||||||
|
else # safe default
|
||||||
|
echo "$GZ_OPTS"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
echo "PACK_SQUASHFS_OPTS=$XZ_OPTS" > /.image/squashcfg.mk
|
}
|
||||||
else
|
|
||||||
echo "PACK_SQUASHFS_OPTS=$GZ_OPTS" > /.image/squashcfg.mk
|
echo "PACK_SQUASHFS_OPTS=-no-recovery `options`" > /.image/squashcfg.mk
|
||||||
fi
|
|
||||||
|
@@ -2,8 +2,9 @@
|
|||||||
реализуется в рамках stage1.
|
реализуется в рамках stage1.
|
||||||
|
|
||||||
Цели config.mk:
|
Цели config.mk:
|
||||||
* use/syslinux/ui-% -- конфигурирование интерфейса (см. cfg.in/00*.cfg);
|
* use/syslinux/ui/% -- конфигурирование интерфейса (см. cfg.in/00*.cfg);
|
||||||
при использовании автоматически добавляют syslinux в FEATURES;
|
при использовании автоматически добавляют syslinux в FEATURES;
|
||||||
|
* use/syslinux/timeout/% -- задание таймаута автозагрузки (в десятых секунды);
|
||||||
* use/syslinux/%.com, use/syslinux/%.c32 -- подключение одноименных модулей
|
* use/syslinux/%.com, use/syslinux/%.c32 -- подключение одноименных модулей
|
||||||
(копирование бинарников и включение кусочков конфигурации; экспериментальное);
|
(копирование бинарников и включение кусочков конфигурации; экспериментальное);
|
||||||
* use/syslinux/%.cfg -- подключение кусочков конфигурации.
|
* use/syslinux/%.cfg -- подключение кусочков конфигурации.
|
||||||
|
2
features.in/syslinux/cfg.in/00defaults.cfg
Normal file
2
features.in/syslinux/cfg.in/00defaults.cfg
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
timeout @timeout@
|
||||||
|
totaltimeout 3000
|
@@ -1,2 +0,0 @@
|
|||||||
timeout 200
|
|
||||||
|
|
@@ -2,9 +2,10 @@
|
|||||||
use/syslinux: sub/stage1
|
use/syslinux: sub/stage1
|
||||||
@$(call add_feature)
|
@$(call add_feature)
|
||||||
@$(call add,STAGE1_PACKAGES,syslinux)
|
@$(call add,STAGE1_PACKAGES,syslinux)
|
||||||
|
@$(call try,META_SYSTEM_ID,SYSLINUX)
|
||||||
|
|
||||||
# UI is overwritten
|
# UI is overwritten
|
||||||
use/syslinux/ui-%: use/syslinux
|
use/syslinux/ui/%: use/syslinux
|
||||||
@$(call set,SYSLINUX_UI,$*)
|
@$(call set,SYSLINUX_UI,$*)
|
||||||
@if [ "$*" == gfxboot ]; then \
|
@if [ "$*" == gfxboot ]; then \
|
||||||
$(call add,STAGE1_PACKAGES,gfxboot); \
|
$(call add,STAGE1_PACKAGES,gfxboot); \
|
||||||
@@ -17,3 +18,6 @@ use/syslinux/%.com use/syslinux/%.c32: use/syslinux
|
|||||||
|
|
||||||
use/syslinux/%.cfg: use/syslinux
|
use/syslinux/%.cfg: use/syslinux
|
||||||
@$(call add,SYSLINUX_CFG,$*)
|
@$(call add,SYSLINUX_CFG,$*)
|
||||||
|
|
||||||
|
use/syslinux/timeout/%: use/syslinux
|
||||||
|
@$(call set,SYSLINUX_TIMEOUT,$*)
|
||||||
|
@@ -1,5 +1,8 @@
|
|||||||
ifdef BUILDDIR
|
ifdef BUILDDIR
|
||||||
|
|
||||||
|
# in deciseconds
|
||||||
|
DEFAULT_TIMEOUT = 90
|
||||||
|
|
||||||
# prepare data for syslinux installation;
|
# prepare data for syslinux installation;
|
||||||
# see also stage1/scripts.d/01-syslinux
|
# see also stage1/scripts.d/01-syslinux
|
||||||
|
|
||||||
@@ -44,15 +47,27 @@ cfg = $(wildcard cfg.in/??$(1).cfg)
|
|||||||
# and files involved will appear inside instrumental chroot
|
# and files involved will appear inside instrumental chroot
|
||||||
#
|
#
|
||||||
# arguments get evaluated before recipe body execution thus prep
|
# arguments get evaluated before recipe body execution thus prep
|
||||||
all: prep debug
|
|
||||||
@cp -pLt $(DSTDIR) -- $(sort \
|
all: debug timeout
|
||||||
$(foreach C,$(SYSLINUX_CFG),$(call cfg,$(C))) \
|
|
||||||
$(foreach M,$(SYSLINUX_MODULES),$(call cfg,$(M))))
|
|
||||||
@### proper text branding should be implemented
|
@### proper text branding should be implemented
|
||||||
@sed -i 's,@mkimage-profiles@,$(IMAGE_NAME),' $(DSTDIR)/*.cfg
|
@sed -i 's,@mkimage-profiles@,$(IMAGE_NAME),' $(DSTDIR)/*.cfg
|
||||||
@echo $(SYSLINUX_MODULES) > $(DSTDIR)/modules.list
|
@echo $(SYSLINUX_MODULES) > $(DSTDIR)/modules.list
|
||||||
@echo $(SYSLINUX_FILES) > $(DSTDIR)/syslinux.list
|
@echo $(SYSLINUX_FILES) > $(DSTDIR)/syslinux.list
|
||||||
|
|
||||||
|
# integerity check
|
||||||
|
timeout: copy
|
||||||
|
@if [ "$(SYSLINUX_TIMEOUT)" -ge 0 ] 2>/dev/null; then \
|
||||||
|
TIMEOUT="$(SYSLINUX_TIMEOUT)"; \
|
||||||
|
else \
|
||||||
|
TIMEOUT="$(DEFAULT_TIMEOUT)"; \
|
||||||
|
fi; \
|
||||||
|
sed -i "s,@timeout@,$$TIMEOUT," $(DSTDIR)/*.cfg
|
||||||
|
|
||||||
|
copy: prep
|
||||||
|
@cp -pLt $(DSTDIR) -- $(sort \
|
||||||
|
$(foreach C,$(SYSLINUX_CFG),$(call cfg,$(C))) \
|
||||||
|
$(foreach M,$(SYSLINUX_MODULES),$(call cfg,$(M))))
|
||||||
|
|
||||||
prep:
|
prep:
|
||||||
@mkdir -p $(DSTDIR)
|
@mkdir -p $(DSTDIR)
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sh
|
||||||
# postprocess isolinux configuration
|
# postprocess isolinux configuration
|
||||||
# when the image sizes are finally known
|
# when the image sizes are finally known
|
||||||
|
|
||||||
|
@@ -1,4 +0,0 @@
|
|||||||
use/virtualbox/guest:
|
|
||||||
@$(call add_feature)
|
|
||||||
@$(call add,THE_KMODULES,virtualbox-addition)
|
|
||||||
@$(call add,THE_PACKAGES,virtualbox-guest-additions)
|
|
13
features.in/vm/config.mk
Normal file
13
features.in/vm/config.mk
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
+vmguest: use/vm/virtualbox/guest use/vm/kvm/guest; @:
|
||||||
|
|
||||||
|
use/vm/virtualbox/guest:
|
||||||
|
@$(call add_feature)
|
||||||
|
@$(call add,THE_KMODULES,virtualbox-addition)
|
||||||
|
@$(call add,THE_PACKAGES,virtualbox-guest-additions)
|
||||||
|
|
||||||
|
# NB: only reasonable for X11-bearing images
|
||||||
|
use/vm/kvm/guest:
|
||||||
|
@$(call add_feature)
|
||||||
|
@$(call add,THE_PACKAGES,spice-vdagent)
|
||||||
|
|
||||||
|
# see also use/install2/kvm
|
@@ -1 +1,2 @@
|
|||||||
Эта фича добавляет базовую поддержку графической системы X11.
|
Эта фича добавляет базовую поддержку графической системы X11
|
||||||
|
и комплектует типовые десктопные окружения.
|
||||||
|
@@ -3,11 +3,23 @@
|
|||||||
+tde: use/x11/tde use/x11/kdm; @:
|
+tde: use/x11/tde use/x11/kdm; @:
|
||||||
|
|
||||||
use/x11/xorg:
|
use/x11/xorg:
|
||||||
|
@$(call add_feature)
|
||||||
@$(call add,THE_LISTS,xorg)
|
@$(call add,THE_LISTS,xorg)
|
||||||
@$(call add,THE_KMODULES,drm)
|
|
||||||
|
|
||||||
use/x11/wacom: use/x11/xorg
|
use/x11/wacom: use/x11/xorg
|
||||||
@$(call add,THE_PACKAGES,xorg-drv-wacom)
|
@$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen)
|
||||||
|
|
||||||
|
use/x11/drm: use/x11/xorg
|
||||||
|
@$(call add,THE_KMODULES,drm drm-radeon)
|
||||||
|
|
||||||
|
use/x11/3d-free: use/x11/drm
|
||||||
|
@$(call add,THE_KMODULES,drm-nouveau)
|
||||||
|
|
||||||
|
### fglrx is broken with xorg-1.12 so far
|
||||||
|
use/x11/3d-proprietary: use/x11/xorg
|
||||||
|
@$(call add,THE_KMODULES,fglrx nvidia)
|
||||||
|
@$(call add,THE_PACKAGES,nvidia-settings nvidia-xconfig)
|
||||||
|
@$(call add,THE_PACKAGES,fglrx_glx fglrx-tools)
|
||||||
|
|
||||||
### strictly speaking, runlevel5 should require a *dm, not vice versa
|
### strictly speaking, runlevel5 should require a *dm, not vice versa
|
||||||
use/x11/runlevel5: use/x11/xorg
|
use/x11/runlevel5: use/x11/xorg
|
||||||
@@ -24,6 +36,9 @@ use/x11/lightdm: use/x11/runlevel5
|
|||||||
use/x11/kdm: use/x11/runlevel5
|
use/x11/kdm: use/x11/runlevel5
|
||||||
@$(call add,THE_PACKAGES,kdebase-kdm)
|
@$(call add,THE_PACKAGES,kdebase-kdm)
|
||||||
|
|
||||||
|
use/x11/gdm2.20: use/x11/runlevel5
|
||||||
|
@$(call add,THE_PACKAGES,gdm2.20)
|
||||||
|
|
||||||
use/x11/icewm: use/x11/xorg
|
use/x11/icewm: use/x11/xorg
|
||||||
@$(call add,THE_LISTS,$(call tags,icewm desktop))
|
@$(call add,THE_LISTS,$(call tags,icewm desktop))
|
||||||
|
|
||||||
@@ -32,3 +47,9 @@ use/x11/razorqt: use/x11/xorg
|
|||||||
|
|
||||||
use/x11/tde: use/x11/xorg
|
use/x11/tde: use/x11/xorg
|
||||||
@$(call add,THE_LISTS,$(call tags,tde desktop))
|
@$(call add,THE_LISTS,$(call tags,tde desktop))
|
||||||
|
|
||||||
|
use/x11/xfce: use/x11/xorg
|
||||||
|
@$(call add,THE_LISTS,$(call tags,xfce desktop))
|
||||||
|
|
||||||
|
use/x11/cinnamon: use/x11/xorg use/x11/drm
|
||||||
|
@$(call add,THE_LISTS,$(call tags,cinnamon desktop))
|
||||||
|
@@ -11,6 +11,7 @@ MKI_VER_OPTIMAL = 0.2.0
|
|||||||
include distcfg.mk
|
include distcfg.mk
|
||||||
include functions.mk
|
include functions.mk
|
||||||
|
|
||||||
|
# check the build environment
|
||||||
ifeq (,$(realpath $(MKIMAGE_PREFIX)/config.mk))
|
ifeq (,$(realpath $(MKIMAGE_PREFIX)/config.mk))
|
||||||
$(error please apt-get install mkimage and have a look at QUICKSTART as well)
|
$(error please apt-get install mkimage and have a look at QUICKSTART as well)
|
||||||
endif
|
endif
|
||||||
@@ -26,9 +27,19 @@ $(info warning: mkimage-$(MKI_VERSION) is suboptimal, consider upgrading)
|
|||||||
$(warning consider upgrading mkimage to $(MKI_VER_OPTIMAL) or better)
|
$(warning consider upgrading mkimage to $(MKI_VER_OPTIMAL) or better)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# additional means to reduce havoc in IMAGEDIR
|
||||||
|
IMAGE_SORTDIR := $(SORTDIR)
|
||||||
|
|
||||||
# reconstruct instead of passing yet another variable
|
# reconstruct instead of passing yet another variable
|
||||||
IMAGE_LINK := $(IMAGE_NAME).$(IMAGE_TYPE)
|
IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%)
|
||||||
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE)
|
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE)
|
||||||
|
IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE)
|
||||||
|
IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE)
|
||||||
|
IMAGE_RELDIR := $(IMAGE_OUTDIR:$(GLOBAL_BUILDDIR)/%=%)
|
||||||
|
IMAGE_LINK := $(IMAGE_NAME).$(IMAGE_TYPE)
|
||||||
|
IMAGE_LINKPATH := $(IMAGEDIR)/$(IMAGE_LINK)
|
||||||
|
|
||||||
|
### multi-pack can be useful (think netinst iso/tree)
|
||||||
MKI_PACK_RESULTS = $(IMAGE_PACKTYPE):$(IMAGE_OUTFILE)
|
MKI_PACK_RESULTS = $(IMAGE_PACKTYPE):$(IMAGE_OUTFILE)
|
||||||
|
|
||||||
# these get opied over as is
|
# these get opied over as is
|
||||||
@@ -44,7 +55,7 @@ include lib/*.mk
|
|||||||
include $(MKIMAGE_PREFIX)/targets.mk
|
include $(MKIMAGE_PREFIX)/targets.mk
|
||||||
|
|
||||||
# specified only for the final image (target-specific)
|
# specified only for the final image (target-specific)
|
||||||
pack-image: OUTDIR = $(IMAGEDIR)
|
pack-image: OUTDIR = $(IMAGE_OUTDIR)
|
||||||
pack-image: imagedir
|
pack-image: imagedir
|
||||||
|
|
||||||
copy-tree: $(SAVE_PROFILE:%=save-profile)
|
copy-tree: $(SAVE_PROFILE:%=save-profile)
|
||||||
@@ -57,17 +68,18 @@ save-profile:
|
|||||||
.PHONY: imagedir postprocess debug
|
.PHONY: imagedir postprocess debug
|
||||||
|
|
||||||
imagedir:
|
imagedir:
|
||||||
@mkdir -p "$(IMAGEDIR)"
|
@mkdir -p "$(IMAGE_OUTDIR)"
|
||||||
|
|
||||||
postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS)))
|
postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS)))
|
||||||
@OUTPATH="$(IMAGEDIR)/$(IMAGE_OUTFILE)"; \
|
@OUTSIZE="`ls -lh "$(IMAGE_OUTPATH)" | cut -f5 -d' '`"; \
|
||||||
echo "** image: $$OUTPATH" >&2 && \
|
echo "** image: $(IMAGE_OUTPATH) [$$OUTSIZE]" >&2 && \
|
||||||
ln -sf "$(IMAGE_OUTFILE)" "$(IMAGEDIR)/$(IMAGE_LINK)" && \
|
echo "IMAGE_OUTPATH = $(IMAGE_OUTPATH)" && \
|
||||||
ln -sf "$${IMAGEDIR#`pwd`/}" "$(OUT_LINK)"; \
|
ln -sf "$(IMAGE_RELPATH)" "$(IMAGE_LINKPATH)" && \
|
||||||
ln -sf "$(IMAGE_LINK)" $(OUT_LINK)/"$(CURRENT_LINK).$(IMAGE_TYPE)"; \
|
ln -sf "$(IMAGE_RELDIR)" "$(OUT_LINK)" && \
|
||||||
|
ln -sf "$(IMAGE_LINK)" "$(IMAGEDIR)/$(CURRENT_LINK).$(IMAGE_TYPE)"; \
|
||||||
if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
||||||
cp -a build.log "$$OUTPATH.log"; \
|
cp -a build.log "$(IMAGE_OUTPATH).log"; \
|
||||||
cp -a distcfg.mk "$$OUTPATH.cfg"; \
|
cp -a distcfg.mk "$(IMAGE_OUTPATH).cfg"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
|
@@ -1,11 +1,11 @@
|
|||||||
Этот каталог копируется из метапрофиля в профиль "как есть"
|
Этот каталог копируется из метапрофиля в профиль "как есть"
|
||||||
и формирует "затравку" финальной стадии, собирающей собственно
|
и формирует "заготовку" финальной стадии, собирающей собственно
|
||||||
образ из результатов работы индивидуальных субпрофилей
|
образ из результатов работы индивидуальных субпрофилей
|
||||||
(для distro/*) либо непосредственно "на месте" (для ve/*).
|
(для distro/*) либо непосредственно "на месте" (для ve/*).
|
||||||
Содержимое files/ копируется в корень образа.
|
Содержимое files/ копируется в корень образа.
|
||||||
|
|
||||||
Соответственно для сборки требуется или features.in/build-distro,
|
Соответственно для сборки также потребуется или
|
||||||
или use/build-ve.
|
../features.in/build-distro, или ../features.in/build-ve.
|
||||||
|
|
||||||
Пакетная база рабочего чрута минимальна (может чуть расширяться
|
Пакетная база рабочего чрута минимальна (может чуть расширяться
|
||||||
фичами -- см. ../features.in/repo/lib/build-genbasedir.mk
|
фичами -- см. ../features.in/repo/lib/build-genbasedir.mk
|
||||||
|
@@ -10,7 +10,7 @@ PREFS := $(.VARIABLES)
|
|||||||
DISTCFG := $(.VARIABLES)
|
DISTCFG := $(.VARIABLES)
|
||||||
|
|
||||||
# a separator variable
|
# a separator variable
|
||||||
-- := --
|
-- = --
|
||||||
|
|
||||||
.PHONY: dump-vars
|
.PHONY: dump-vars
|
||||||
|
|
||||||
|
@@ -2,6 +2,8 @@
|
|||||||
ANSI_OK ?= 1;32
|
ANSI_OK ?= 1;32
|
||||||
ANSI_FAIL ?= 1;31
|
ANSI_FAIL ?= 1;31
|
||||||
|
|
||||||
|
GOTCHA := ^(((\*\* )?(E:|[Ee]rror|[Ww]arning).*)|(.* (Stop|failed)\.))$$
|
||||||
|
|
||||||
ifndef MKIMAGE_PROFILES
|
ifndef MKIMAGE_PROFILES
|
||||||
$(error this makefile is designed to be included in toplevel one)
|
$(error this makefile is designed to be included in toplevel one)
|
||||||
endif
|
endif
|
||||||
@@ -48,7 +50,7 @@ build-image: profile/populate
|
|||||||
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
||||||
tail -200 "$(BUILDLOG)" $(SHORTEN) \
|
tail -200 "$(BUILDLOG)" $(SHORTEN) \
|
||||||
| GREP_COLOR="$(ANSI_OK)" GREP_OPTIONS="--color=auto" \
|
| GREP_COLOR="$(ANSI_OK)" GREP_OPTIONS="--color=auto" \
|
||||||
grep '^\*\* image: .*' ||:; \
|
grep '^\*\* image: .*$$' ||:; \
|
||||||
else \
|
else \
|
||||||
echo -n "$(TIME) failed, see log"; \
|
echo -n "$(TIME) failed, see log"; \
|
||||||
if [ -z "$(DEBUG)" ]; then \
|
if [ -z "$(DEBUG)" ]; then \
|
||||||
@@ -59,7 +61,7 @@ build-image: profile/populate
|
|||||||
fi; \
|
fi; \
|
||||||
tail -200 "$(BUILDLOG)" \
|
tail -200 "$(BUILDLOG)" \
|
||||||
| GREP_COLOR="$(ANSI_FAIL)" GREP_OPTIONS="--color=auto" \
|
| GREP_COLOR="$(ANSI_FAIL)" GREP_OPTIONS="--color=auto" \
|
||||||
egrep "^((E:|[Ee]rror|[Ww]arning).*)|(.* Stop\.)$$"; \
|
egrep "$(GOTCHA)"; \
|
||||||
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
||||||
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
||||||
fi; \
|
fi; \
|
||||||
|
16
lib/common.mk
Normal file
16
lib/common.mk
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# common bits for building and reporting parts
|
||||||
|
|
||||||
|
# somewhat reusable
|
||||||
|
BUILD_LOG = build.log
|
||||||
|
|
||||||
|
# link it to BUILDDIR if possible
|
||||||
|
SYMLINK = build
|
||||||
|
|
||||||
|
# brevity postprocessor; not exported, for toplevel use only
|
||||||
|
SHORTEN = $(shell \
|
||||||
|
echo -n "| sed"; \
|
||||||
|
if [ -s "$(SYMLINK)" ]; then \
|
||||||
|
echo -n " -e 's,$(BUILDDIR),$(SYMLINK),'"; \
|
||||||
|
fi; \
|
||||||
|
echo -n " -e 's,$(TMP),\$$TMP,' -e 's,$(HOME),~,'"; \
|
||||||
|
)
|
@@ -16,16 +16,23 @@ boot/%:
|
|||||||
|
|
||||||
# fundamental targets
|
# fundamental targets
|
||||||
|
|
||||||
distro/.init: profile/bare; @:
|
distro/.init: profile/bare
|
||||||
|
@$(call try,META_PREPARER,mkimage-profiles)
|
||||||
|
@$(call try,META_APP_ID,$(IMAGE_NAME))
|
||||||
|
@$(call set,META_PUBLISHER,ALT Linux Team)
|
||||||
|
|
||||||
# NB: the last flavour in KFLAVOURS gets to be the default one;
|
# NB: the last flavour in KFLAVOURS gets to be the default one;
|
||||||
# the kernel packages regexp evaluation has to take place at build stage
|
# the kernel packages regexp evaluation has to take place at build stage
|
||||||
distro/.base: distro/.init
|
distro/.base: distro/.init
|
||||||
@$(call set,KFLAVOURS,std-def)
|
@$(call set,KFLAVOURS,std-def)
|
||||||
|
@$(call set,META_SYSTEM_ID,LINUX)
|
||||||
|
@$(call set,META_VOL_ID,ALT Linux $(ARCH))
|
||||||
|
@$(call set,META_VOL_SET,ALT Linux)
|
||||||
|
|
||||||
# something marginally useful (as a network-only installer)
|
# something marginally useful (as a network-only installer)
|
||||||
# NB: doesn't carry stage3 thus cannot use/bootloader
|
# NB: doesn't carry stage3 thus cannot use/bootloader
|
||||||
distro/installer: distro/.base use/install2 use/syslinux/localboot.cfg
|
distro/installer: distro/.base use/install2 use/install2/kvm \
|
||||||
|
use/syslinux/localboot.cfg
|
||||||
@$(call set,INSTALLER,altlinux-generic)
|
@$(call set,INSTALLER,altlinux-generic)
|
||||||
@$(call set,STAGE1_KMODULES_REGEXP,drm.*) # for KMS
|
@$(call set,STAGE1_KMODULES_REGEXP,drm.*) # for KMS
|
||||||
|
|
||||||
|
@@ -47,7 +47,8 @@ add_feature = $(call add,FEATURES,$(word 2,$(subst /, ,$@)))
|
|||||||
|
|
||||||
# convert tag list into a list of relative package list paths
|
# convert tag list into a list of relative package list paths
|
||||||
# NB: tags can do boolean expressions: (tag1 && !(tag2 || tag3))
|
# NB: tags can do boolean expressions: (tag1 && !(tag2 || tag3))
|
||||||
tags = $(and $(strip $(1)),$(addprefix tagged/,$(shell echo "$(1)" | bin/tags2lists pkg.in/lists/tagged)))
|
tags = $(and $(strip $(1)),$(addprefix tagged/,$(shell echo "$(1)" \
|
||||||
|
| tags2lists pkg.in/lists/tagged)))
|
||||||
|
|
||||||
# toplevel Makefile convenience
|
# toplevel Makefile convenience
|
||||||
addsuffices = $(foreach s,$(1),$(call addsuffix,$s,$(2)))
|
addsuffices = $(foreach s,$(1),$(call addsuffix,$s,$(2)))
|
||||||
|
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
help/distro:
|
help/distro:
|
||||||
@echo '** available distribution targets:'; \
|
@echo '** available distribution targets:'; \
|
||||||
echo $(DISTROS) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
columnize $(sort $(DISTROS:distro/%=%))
|
||||||
|
|
||||||
help/ve:
|
help/ve:
|
||||||
@echo '** available virtual environment targets:'; \
|
@echo '** available virtual environment targets:'; \
|
||||||
echo $(VES) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
columnize $(sort $(VES))
|
||||||
|
|
||||||
help: | help/distro help/space help/ve; @:
|
help: | help/distro help/space help/ve; @:
|
||||||
help/space:; @echo
|
help/space:; @echo
|
||||||
|
10
lib/kernel.mk
Normal file
10
lib/kernel.mk
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
ifndef MKIMAGE_PROFILES
|
||||||
|
$(error this makefile is designed to be included in toplevel one)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# choose std kernel flavour for max RAM size support
|
||||||
|
ifeq (i586,$(ARCH))
|
||||||
|
BIGRAM := std-pae
|
||||||
|
else
|
||||||
|
BUGRAM := std-def
|
||||||
|
endif
|
19
lib/log.mk
19
lib/log.mk
@@ -6,7 +6,15 @@ ifndef MKIMAGE_PROFILES
|
|||||||
$(error this makefile is designed to be included in toplevel one)
|
$(error this makefile is designed to be included in toplevel one)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BUILDLOG ?= $(BUILDDIR)/build.log
|
# 1.3.22 fixes http://bugzilla.altlinux.org/26217
|
||||||
|
HSH_VER_OPTIMAL = 1.3.22
|
||||||
|
HSH_VERSION := $(shell hsh -V | sed -n 's/^.* version \([0-9.]\+\).*$$/\1/p')
|
||||||
|
|
||||||
|
ifeq (-,$(shell rpmvercmp $(HSH_VERSION) $(HSH_VER_OPTIMAL) | tr -d [0-9]))
|
||||||
|
$(info warning: hasher-$(HSH_VERSION) is suboptimal, consider upgrading)
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILDLOG ?= $(BUILDDIR)/$(BUILD_LOG)
|
||||||
|
|
||||||
# LOG holds a redirecting postprocessor
|
# LOG holds a redirecting postprocessor
|
||||||
ifdef DEBUG
|
ifdef DEBUG
|
||||||
@@ -27,12 +35,3 @@ DATE = $(shell date +%Y%m%d)
|
|||||||
TIME = `date +%H:%M:%S`
|
TIME = `date +%H:%M:%S`
|
||||||
|
|
||||||
export BUILDLOG DATE GLOBAL_DEBUG GLOBAL_VERBOSE LOG MAKE SHELL
|
export BUILDLOG DATE GLOBAL_DEBUG GLOBAL_VERBOSE LOG MAKE SHELL
|
||||||
|
|
||||||
# brevity postprocessor; not exported, for toplevel use only
|
|
||||||
SHORTEN = $(shell \
|
|
||||||
echo -n "| sed"; \
|
|
||||||
if [ -s "$(SYMLINK)" ]; then \
|
|
||||||
echo -n " -e 's,$(BUILDDIR),$(SYMLINK),'"; \
|
|
||||||
fi; \
|
|
||||||
echo -n " -e 's,$(TMP),\$$TMP,' -e 's,$(HOME),~,'"; \
|
|
||||||
)
|
|
||||||
|
@@ -2,8 +2,6 @@ ifndef MKIMAGE_PROFILES
|
|||||||
$(error this makefile is designed to be included in toplevel one)
|
$(error this makefile is designed to be included in toplevel one)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SYMLINK = build
|
|
||||||
|
|
||||||
# this could have come from env; or could be symlinked; or is made anew
|
# this could have come from env; or could be symlinked; or is made anew
|
||||||
# (the reuse rationale is avoiding extra tmpdir lookups)
|
# (the reuse rationale is avoiding extra tmpdir lookups)
|
||||||
# NB: immediate assignment matters
|
# NB: immediate assignment matters
|
||||||
@@ -15,7 +13,7 @@ if [ -s "$(SYMLINK)" -a "$(NUM_TARGETS)" = 1 ] && \
|
|||||||
then \
|
then \
|
||||||
echo "$(BUILDLINK)"; \
|
echo "$(BUILDLINK)"; \
|
||||||
else \
|
else \
|
||||||
bin/mktmpdir $(BUILDDIR_PREFIX) || exit 127; \
|
mktmpdir $(BUILDDIR_PREFIX) || exit 200; \
|
||||||
fi; )
|
fi; )
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -26,9 +24,7 @@ endif
|
|||||||
# even smart caching only hurts when every build goes from scratch
|
# even smart caching only hurts when every build goes from scratch
|
||||||
NO_CACHE ?= 1
|
NO_CACHE ?= 1
|
||||||
|
|
||||||
PATH := $(CURDIR)/bin:$(PATH)
|
export BUILDDIR NO_CACHE
|
||||||
|
|
||||||
export BUILDDIR NO_CACHE PATH
|
|
||||||
|
|
||||||
CONFIG := $(BUILDDIR)/distcfg.mk
|
CONFIG := $(BUILDDIR)/distcfg.mk
|
||||||
RC := $(HOME)/.mkimage/profiles.mk
|
RC := $(HOME)/.mkimage/profiles.mk
|
||||||
|
@@ -13,6 +13,7 @@ ve/bare: ve/.bare
|
|||||||
@$(call add,BASE_PACKAGES,apt)
|
@$(call add,BASE_PACKAGES,apt)
|
||||||
|
|
||||||
ve/generic: ve/.bare
|
ve/generic: ve/.bare
|
||||||
|
@$(call add,BASE_PACKAGES,openssh-server openssh-blacklist openssh-clients)
|
||||||
@$(call add,BASE_LISTS,\
|
@$(call add,BASE_LISTS,\
|
||||||
$(call tags,base && (server || network || security || pkg)))
|
$(call tags,base && (server || network || security || pkg)))
|
||||||
|
|
||||||
|
2
main.mk
2
main.mk
@@ -6,7 +6,7 @@
|
|||||||
# --- in BUILDDIR
|
# --- in BUILDDIR
|
||||||
# 4. build subprofiles and subsequently an image
|
# 4. build subprofiles and subsequently an image
|
||||||
|
|
||||||
MKIMAGE_PROFILES = $(dir $(lastword $(MAKEFILE_LIST)))
|
MKIMAGE_PROFILES := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||||
|
|
||||||
# deal with one target at a time
|
# deal with one target at a time
|
||||||
IMAGE_TARGET := $(firstword $(MAKECMDGOALS))# ve/generic.tar.gz
|
IMAGE_TARGET := $(firstword $(MAKECMDGOALS))# ve/generic.tar.gz
|
||||||
|
@@ -2,8 +2,17 @@
|
|||||||
# (and only those!) over to $(BUILDDIR)
|
# (and only those!) over to $(BUILDDIR)
|
||||||
|
|
||||||
ifndef BUILDDIR
|
ifndef BUILDDIR
|
||||||
$(error BUILDDIR not defined)
|
|
||||||
endif
|
pkgdups:
|
||||||
|
@find -type f ! -name README ! -name Makefile \
|
||||||
|
| grep -v '~$$' \
|
||||||
|
| sed 's,^\./,,g' \
|
||||||
|
| xargs ../../bin/pkgdups
|
||||||
|
|
||||||
|
%:
|
||||||
|
$(error BUILDDIR not defined)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
include $(BUILDDIR)/distcfg.mk
|
include $(BUILDDIR)/distcfg.mk
|
||||||
SUFFIX := pkg/lists
|
SUFFIX := pkg/lists
|
||||||
@@ -46,6 +55,7 @@ endef
|
|||||||
dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo)
|
dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo)
|
||||||
dump-LISTS = $(call dump-THEM,$(1),LISTS,cat)
|
dump-LISTS = $(call dump-THEM,$(1),LISTS,cat)
|
||||||
|
|
||||||
|
# BASE_PACKAGES, BASE_LISTS and whatever else goes into base install
|
||||||
dot-base:
|
dot-base:
|
||||||
@# construct .base packagelist for alterator-pkg
|
@# construct .base packagelist for alterator-pkg
|
||||||
@{ \
|
@{ \
|
||||||
@@ -64,3 +74,5 @@ debug:
|
|||||||
$(filter %_LISTS,$(sort $(.VARIABLES))), \
|
$(filter %_LISTS,$(sort $(.VARIABLES))), \
|
||||||
$(if $(filter environment% file,$(origin $V)),\
|
$(if $(filter environment% file,$(origin $V)),\
|
||||||
$(shell echo '\\n"**"' $V: $(value $V)))) '\n'
|
$(shell echo '\\n"**"' $V: $(value $V)))) '\n'
|
||||||
|
|
||||||
|
endif
|
||||||
|
@@ -6,5 +6,10 @@
|
|||||||
см. http://www.altlinux.org/Alterator-pkg); он создаётся из
|
см. http://www.altlinux.org/Alterator-pkg); он создаётся из
|
||||||
содержимого ряда переменных (см. Makefile).
|
содержимого ряда переменных (см. Makefile).
|
||||||
|
|
||||||
Подкаталог tagged/ стоит рассматривать как экспериментальный,
|
Подкаталог tagged/ содержит тегированные списки, имена которых
|
||||||
но находящий всё более широкое практическое использование.
|
удобно получать функцией tags() (см. ../../lib/functions.mk).
|
||||||
|
|
||||||
|
Для выявления дубликатов в составе списков служит `make pkgdups';
|
||||||
|
пытаться избежать дублей на 100% скорее бесполезно, но бродячие
|
||||||
|
устойчивые группы пакетов могут заслуживать выделения отдельным
|
||||||
|
списком.
|
||||||
|
2
pkg.in/lists/gnome-p2p
Normal file
2
pkg.in/lists/gnome-p2p
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
transmission-gtk
|
||||||
|
eiskaltdcpp-gtk
|
@@ -1 +0,0 @@
|
|||||||
firmware-rt73
|
|
2
pkg.in/lists/slinux/dropbox
Normal file
2
pkg.in/lists/slinux/dropbox
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
dropbox
|
||||||
|
thunar-dropbox-plugin
|
17
pkg.in/lists/slinux/games
Normal file
17
pkg.in/lists/slinux/games
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# gnome-games
|
||||||
|
|
||||||
|
#gnome-games-glines
|
||||||
|
#gnome-games-gnect
|
||||||
|
#gnome-games-gnibbles
|
||||||
|
gnome-games-gnobots
|
||||||
|
#gnome-games-quadrapassel
|
||||||
|
gnome-games-gnomine
|
||||||
|
gnome-games-gnotravex
|
||||||
|
gnome-games-gnotski
|
||||||
|
#gnome-games-gtali
|
||||||
|
#gnome-games-iagno
|
||||||
|
gnome-games-mahjongg
|
||||||
|
#gnome-games-swell-foop
|
||||||
|
gnome-games-sol
|
||||||
|
gnome-games-sudoku
|
||||||
|
gnome-games-glchess
|
18
pkg.in/lists/slinux/games-dvd
Normal file
18
pkg.in/lists/slinux/games-dvd
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
freeciv
|
||||||
|
wesnoth
|
||||||
|
ppracer
|
||||||
|
sauerbraten
|
||||||
|
|
||||||
|
instead-launcher
|
||||||
|
instead-cat
|
||||||
|
|
||||||
|
Ri-li
|
||||||
|
openttd
|
||||||
|
openastromenace
|
||||||
|
PokerTH
|
||||||
|
|
||||||
|
celestia-gnome
|
||||||
|
|
||||||
|
gcompris
|
||||||
|
gcompris-voices-en
|
||||||
|
gcompris-voices-ru
|
10
pkg.in/lists/slinux/graphics
Normal file
10
pkg.in/lists/slinux/graphics
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
gimp2
|
||||||
|
gimp-plugin-gutenprint
|
||||||
|
xsane-gimp2
|
||||||
|
# inkscape
|
||||||
|
gphoto2
|
||||||
|
sane
|
||||||
|
xsane
|
||||||
|
|
||||||
|
gthumb
|
||||||
|
yagf
|
3
pkg.in/lists/slinux/graphics-dvd-blender
Normal file
3
pkg.in/lists/slinux/graphics-dvd-blender
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
blender
|
||||||
|
blender-plugins-yafaray
|
||||||
|
blender-plugins-localdocs
|
1
pkg.in/lists/slinux/graphics-dvd-inkscape
Normal file
1
pkg.in/lists/slinux/graphics-dvd-inkscape
Normal file
@@ -0,0 +1 @@
|
|||||||
|
inkscape
|
1
pkg.in/lists/slinux/graphics-dvd-shotwell
Normal file
1
pkg.in/lists/slinux/graphics-dvd-shotwell
Normal file
@@ -0,0 +1 @@
|
|||||||
|
shotwell
|
1
pkg.in/lists/slinux/graphics-dvd-synfigstudio
Normal file
1
pkg.in/lists/slinux/graphics-dvd-synfigstudio
Normal file
@@ -0,0 +1 @@
|
|||||||
|
synfigstudio
|
0
pkg.in/lists/slinux/i586
Normal file
0
pkg.in/lists/slinux/i586
Normal file
18
pkg.in/lists/slinux/live
Normal file
18
pkg.in/lists/slinux/live
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
lftp-
|
||||||
|
|
||||||
|
python-module-PyQt4-
|
||||||
|
libqt4-test-
|
||||||
|
libqt4-uitools-
|
||||||
|
libqt4-xmlpatterns-
|
||||||
|
libqt4-declarative-
|
||||||
|
libqt4-scripttools-
|
||||||
|
libqt4-svg-
|
||||||
|
libqt4-help-
|
||||||
|
libqt4-designer-
|
||||||
|
libqt4-webkit-
|
||||||
|
libqt4-multimedia-
|
||||||
|
libqt4-opengl-
|
||||||
|
libqt4-clucene-
|
||||||
|
libqt4-script-
|
||||||
|
libqt4-qt3support-
|
||||||
|
libqt4-sql-
|
2
pkg.in/lists/slinux/live-install
Normal file
2
pkg.in/lists/slinux/live-install
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
installer-feature-simply-livecd
|
||||||
|
livecd-setlocale
|
124
pkg.in/lists/slinux/misc
Normal file
124
pkg.in/lists/slinux/misc
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
strace
|
||||||
|
pm-utils
|
||||||
|
|
||||||
|
fvwm-
|
||||||
|
fvwm-full-
|
||||||
|
altlinux-freedesktop-menu-shallow-menu
|
||||||
|
altlinux-freedesktop-menu-icon-theme-default
|
||||||
|
#altlinux-freedesktop-menu-common
|
||||||
|
docs-simply-linux
|
||||||
|
docs-linux_intro
|
||||||
|
fonts-ttf-droid
|
||||||
|
fonts-ttf-ubuntu-font-family
|
||||||
|
fonts-ttf-liberation
|
||||||
|
fonts-ttf-dejavu
|
||||||
|
gnome-system-monitor
|
||||||
|
gnome-icon-theme
|
||||||
|
#tango-icon-theme
|
||||||
|
#tango-icon-theme-extras
|
||||||
|
gdm2.20-help
|
||||||
|
ntfsprogs-
|
||||||
|
driconf-
|
||||||
|
|
||||||
|
# Branding things
|
||||||
|
branding-simply-linux-xfce-settings
|
||||||
|
branding-simply-linux-menu
|
||||||
|
branding-simply-linux-alterator
|
||||||
|
branding-sisyphus-server-light-alterator-
|
||||||
|
|
||||||
|
#branding-simply-linux-bootloader
|
||||||
|
#branding-simply-linux-bootsplash
|
||||||
|
branding-simply-linux-graphics
|
||||||
|
branding-simply-linux-indexhtml
|
||||||
|
branding-simply-linux-notes
|
||||||
|
#branding-simply-linux-release
|
||||||
|
branding-simply-linux-slideshow
|
||||||
|
|
||||||
|
|
||||||
|
#added through use/syslinux/gfx... ?
|
||||||
|
#branding-simply-linux-bootloader
|
||||||
|
gdm-theme-simply
|
||||||
|
|
||||||
|
kde4libs-
|
||||||
|
kde-common-
|
||||||
|
kde3-menu-common-
|
||||||
|
kde3-menu-resources-
|
||||||
|
kde4-menu-common-
|
||||||
|
kde4-menu-resources-
|
||||||
|
|
||||||
|
firefox
|
||||||
|
firefox-ru
|
||||||
|
xulrunner-gnome-support
|
||||||
|
file-roller
|
||||||
|
unzip
|
||||||
|
unrar
|
||||||
|
unarj
|
||||||
|
dbus-tools-gui
|
||||||
|
brasero
|
||||||
|
medit
|
||||||
|
gcalctool
|
||||||
|
synaptic
|
||||||
|
synaptic-usermode
|
||||||
|
apt-indicator
|
||||||
|
gksu
|
||||||
|
cups
|
||||||
|
ghostscript-cups
|
||||||
|
cups-pdf
|
||||||
|
avahi-daemon
|
||||||
|
blueman
|
||||||
|
update-kernel
|
||||||
|
printer-drivers-base
|
||||||
|
udev-extras
|
||||||
|
hostname-hook-hosts
|
||||||
|
libnss-mdns
|
||||||
|
pulseaudio-daemon
|
||||||
|
pulseaudio-utils
|
||||||
|
pavucontrol
|
||||||
|
alsa-plugins-pulse
|
||||||
|
fdisk
|
||||||
|
cpufreq-simple
|
||||||
|
attr
|
||||||
|
rfkill
|
||||||
|
|
||||||
|
# Alterator
|
||||||
|
alterator-x11
|
||||||
|
alterator-auth
|
||||||
|
alterator-xkb
|
||||||
|
alterator-pkg
|
||||||
|
alterator-packages
|
||||||
|
alterator-datetime
|
||||||
|
alterator-standalone
|
||||||
|
alterator-sysconfig
|
||||||
|
|
||||||
|
# Additional
|
||||||
|
gnome-search-tool
|
||||||
|
yelp
|
||||||
|
|
||||||
|
# Compiz things
|
||||||
|
compiz
|
||||||
|
python-module-fusion-icon-gtk
|
||||||
|
compiz-gtk
|
||||||
|
|
||||||
|
#aen
|
||||||
|
#elinks-
|
||||||
|
rpminstall
|
||||||
|
system-config-printer
|
||||||
|
system-config-printer-udev
|
||||||
|
#krb5-ticket-watcher-
|
||||||
|
apt-repo
|
||||||
|
#krb5-ticket-watcher-
|
||||||
|
rekonq-
|
||||||
|
xdg-user-dirs
|
||||||
|
x-cursor-theme-jimmac
|
||||||
|
|
||||||
|
plymouth
|
||||||
|
#branding-simply-linux-bootsplash
|
||||||
|
|
||||||
|
# Office
|
||||||
|
java-1.6.0-sun
|
||||||
|
libreoffice
|
||||||
|
libreoffice-gnome
|
||||||
|
libreoffice-langpack-ru
|
||||||
|
evince
|
||||||
|
stardict-gtk
|
||||||
|
stardict-mueller7
|
15
pkg.in/lists/slinux/misc-dvd
Normal file
15
pkg.in/lists/slinux/misc-dvd
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#mintmenu
|
||||||
|
homebank
|
||||||
|
aspell-uk
|
||||||
|
libreoffice-langpack-ru
|
||||||
|
stardict-slovnyk_ru-en
|
||||||
|
stardict-slovnyk_en-uk
|
||||||
|
stardict-slovnyk_uk-en
|
||||||
|
stardict-slovnyk_uk-ru
|
||||||
|
|
||||||
|
vlock
|
||||||
|
|
||||||
|
hplip-PPDs
|
||||||
|
|
||||||
|
tango-icon-theme
|
||||||
|
tango-icon-theme-extras
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user