forked from altcloud/mkimage-profiles
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e97c111f33 | ||
|
41a0b63051 | ||
|
f0414f8208 | ||
|
c5e559b7b9 | ||
|
d6972a39bf | ||
|
dbed41bf81 | ||
|
1d07b8f11b | ||
|
16a06f51d0 | ||
|
1b3b38b7c5 | ||
|
6fadf7e0e9 | ||
|
1d66879681 | ||
|
e89a0f1c62 | ||
|
c400ba59df | ||
|
ed0842b745 | ||
|
390f4f6bc8 | ||
|
a1d0b4a7c0 | ||
|
ae85287f97 | ||
|
8790a90cee | ||
|
5bc3dc24dd | ||
|
3a5740d840 | ||
|
e9fea01685 | ||
|
cd998fef41 | ||
|
3d982dabba | ||
|
a543c9d5fb | ||
|
f9a8aaa4e0 | ||
|
7e78670e4b | ||
|
041d57542a | ||
|
7e219c14f1 | ||
|
bc8251f3f8 | ||
|
3d78fd75e4 | ||
|
4f6e1af23b | ||
|
9626b284ef | ||
|
48272c7119 | ||
|
10b9e293b0 | ||
|
b52ff4ef91 | ||
|
ad68750855 | ||
|
9cedefdba9 | ||
|
781c98bb3d | ||
|
c4a5515b64 | ||
|
ae7139f8b6 | ||
|
7964bccb92 | ||
|
7110ba77de | ||
|
52f6897318 | ||
|
f257b8e9df | ||
|
94d2ca36aa | ||
|
b85d82c219 | ||
|
e2eef6eb71 | ||
|
6782808223 | ||
|
7a8ac9e7e0 |
@@ -1,18 +1,19 @@
|
||||
Name: mkimage-profiles
|
||||
Version: 0.4.3.1
|
||||
Version: 0.5.2
|
||||
Release: alt1
|
||||
|
||||
Summary: ALT Linux based distribution metaprofile
|
||||
License: GPLv2+
|
||||
Group: Development/Other
|
||||
|
||||
Url: http://www.altlinux.org/Mkimage/Profiles/next
|
||||
Url: http://www.altlinux.org/Mkimage/Profiles/m-p
|
||||
Source: %name-%version.tar
|
||||
Packager: Michael Shigorin <mike@altlinux.org>
|
||||
|
||||
BuildArch: noarch
|
||||
Requires: rsync git-core
|
||||
Requires: time schedutils
|
||||
Requires: mkimage >= 0.2.0
|
||||
|
||||
%define mpdir %_datadir/%name
|
||||
%add_findreq_skiplist %mpdir/*.in/*
|
||||
@@ -58,6 +59,22 @@ cp -a * %buildroot%mpdir
|
||||
%doc README QUICKSTART
|
||||
|
||||
%changelog
|
||||
* Mon Dec 19 2011 Michael Shigorin <mike@altlinux.org> 0.5.2-alt1
|
||||
- THE_{KMODULES,PACKAGES,LISTS,GROUPS}
|
||||
- incremental development, refactoring and bugfixing
|
||||
|
||||
* Fri Dec 02 2011 Michael Shigorin <mike@altlinux.org> 0.5.1-alt1
|
||||
- generic VE archive type (added cpio and xz either)
|
||||
- minor additions/fixes
|
||||
|
||||
* Mon Nov 21 2011 Michael Shigorin <mike@altlinux.org> 0.5.0-alt1
|
||||
- add_feature for autoregistration (simple but invasive)
|
||||
- added features: isomd5sum, repo, systemd
|
||||
- changed features: powerbutton -> power
|
||||
|
||||
* Tue Nov 08 2011 Michael Shigorin <mike@altlinux.org> 0.4.3.2-alt1
|
||||
- mkimage version required/checked
|
||||
|
||||
* Mon Nov 07 2011 Michael Shigorin <mike@altlinux.org> 0.4.3.1-alt1
|
||||
- CLEAN by default unless DEBUG
|
||||
|
||||
|
6
.gear/tags/461cfaf9fc1fffe08daf223d04fd3f52edd21c16
Normal file
6
.gear/tags/461cfaf9fc1fffe08daf223d04fd3f52edd21c16
Normal file
@@ -0,0 +1,6 @@
|
||||
object ae85287f97ae2879647491b4e3b0467ea250d931
|
||||
type commit
|
||||
tag v0.5.1
|
||||
tagger Michael Shigorin <mike@altlinux.org> 1322849338 +0200
|
||||
|
||||
cpio.xz
|
@@ -1,6 +0,0 @@
|
||||
object a91acf3de735965e0b32ab3edfc633c543f7dd3e
|
||||
type commit
|
||||
tag v0.4.3
|
||||
tagger Michael Shigorin <mike@altlinux.org> 1320617277 +0200
|
||||
|
||||
graduate tweaks
|
@@ -1 +1 @@
|
||||
cfd4133492d16bfd2fc31a83d5df43f78fb15da1 v0.4.3
|
||||
461cfaf9fc1fffe08daf223d04fd3f52edd21c16 v0.5.1
|
||||
|
38
Makefile
38
Makefile
@@ -6,17 +6,25 @@
|
||||
# --- in BUILDDIR
|
||||
# 4. build subprofiles and subsequently an image
|
||||
|
||||
help:
|
||||
@echo '** available distribution targets:'
|
||||
@echo $(DISTROS) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
||||
@echo
|
||||
@echo '** available virtual environment targets:'
|
||||
@echo $(VES) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
||||
|
||||
MKIMAGE_PROFILES = $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
|
||||
# only process the first target (inter-target cleanup is tricky)
|
||||
IMAGE_TARGET := $(firstword $(MAKECMDGOALS))# distro/server-base.iso
|
||||
IMAGE_CONF := $(basename $(MAKECMDGOALS))# distro/server-base
|
||||
IMAGE_CLASS := $(dir $(IMAGE_TARGET))# distro/ (let's fix it)
|
||||
IMAGE_CLASS := $(IMAGE_CLASS:%/=%)# distro
|
||||
IMAGE_FILE := $(notdir $(IMAGE_TARGET))# server-base.iso
|
||||
IMAGE_NAME := $(basename $(IMAGE_FILE))# server-base
|
||||
IMAGE_TYPE := $(suffix $(IMAGE_FILE))# .iso (fix this too)
|
||||
IMAGE_TYPE := $(IMAGE_TYPE:.%=%)# iso
|
||||
IMAGE_TARGET := $(firstword $(MAKECMDGOALS))# ve/generic.tar.gz
|
||||
ifeq (./,$(dir $(IMAGE_TARGET)))# convenience fallback
|
||||
IMAGE_TARGET := distro/$(IMAGE_TARGET)# for omitted "distro/"
|
||||
endif
|
||||
IMAGE_CONF := $(firstword $(subst ., ,$(IMAGE_TARGET)))# ve/generic
|
||||
IMAGE_CLASS := $(firstword $(subst /, ,$(IMAGE_TARGET)))# ve
|
||||
IMAGE_FILE := $(lastword $(subst /, ,$(IMAGE_TARGET)))# generic.tar.gz
|
||||
IMAGE_NAME := $(firstword $(subst ., ,$(IMAGE_FILE)))# generic
|
||||
IMAGE_TYPE := $(subst $(IMAGE_NAME).,,$(IMAGE_FILE))# tar.gz
|
||||
|
||||
# preferences
|
||||
-include $(HOME)/.mkimage/profiles.mk
|
||||
@@ -27,22 +35,15 @@ include conf.d/*.mk
|
||||
include features.in/*/config.mk
|
||||
|
||||
DISTRO_TARGETS := $(shell sed -n 's,^\(distro/[^:.]\+\):.*$$,\1,p' \
|
||||
lib/distro.mk $(wildcard conf.d/*.mk) | sort)
|
||||
lib/distro.mk $(wildcard conf.d/*.mk) | sort -u)
|
||||
VE_TARGETS := $(shell sed -n 's,^\(ve/[^:.]\+\):.*$$,\1,p' \
|
||||
lib/ve.mk $(wildcard conf.d/*.mk) | sort)
|
||||
lib/ve.mk $(wildcard conf.d/*.mk) | sort -u)
|
||||
DISTROS := $(call addsuffices,$(DISTRO_EXTS),$(DISTRO_TARGETS))
|
||||
VES := $(call addsuffices,$(VE_EXTS),$(VE_TARGETS))
|
||||
IMAGES := $(DISTROS) $(VES)
|
||||
|
||||
.PHONY: $(IMAGES) $(DISTRO_TARGETS) $(VE_TARGETS)
|
||||
|
||||
help:
|
||||
@echo '** available distribution targets:'
|
||||
@echo $(DISTROS) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
||||
@echo
|
||||
@echo '** available virtual environment targets:'
|
||||
@echo $(VES) | fmt -sw"$$((COLUMNS>>1))" | column -t
|
||||
|
||||
### suboptimal but at least clear, reliable and convenient
|
||||
all:
|
||||
@n=1; sum=$(words $(DISTROS)); \
|
||||
@@ -63,6 +64,9 @@ $(IMAGES): debug \
|
||||
config/pack/$(IMAGE_TYPE) \
|
||||
build; @:
|
||||
|
||||
# convenience shortcut
|
||||
$(DISTROS:distro/%=%): %: distro/%
|
||||
|
||||
debug:
|
||||
ifeq (2,$(DEBUG))
|
||||
@$(foreach v,\
|
||||
|
3
README
3
README
@@ -47,8 +47,7 @@ Most docs are in Russian, welcome to learn it or ask for English.
|
||||
+ законченные блоки функциональности (или наборы таковых)
|
||||
+ описываются в индивидуальных features.in/*/config.mk
|
||||
+ могут требовать другие фичи, а также субпрофили
|
||||
+ при сборке $(BUILDDIR) содержимое указанных в $(FEATURES) фич
|
||||
добавляется в профиль с постобработкой (generate.*)
|
||||
+ при сборке $(BUILDDIR) содержимое фич добавляется в профиль
|
||||
- списки пакетов (*_LISTS):
|
||||
+ просьба по возможности избегать дублирования
|
||||
- индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README
|
||||
|
20
bin/pkgdups.sh
Executable file
20
bin/pkgdups.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
# a script to help weed out duplicate packages
|
||||
# contained in package lists given as arguments
|
||||
#
|
||||
# Requires: libshell
|
||||
|
||||
. /bin/shell-quote
|
||||
|
||||
sort "$@" \
|
||||
| grep -v '^ *#' \
|
||||
| sed -s 's,[ ]\+, ,g' \
|
||||
| grep -v '^ *$' \
|
||||
| uniq -cd \
|
||||
| while read num str; do
|
||||
echo -n "$str: $num ";
|
||||
pattern="`quote_sed_regexp "$str"`"
|
||||
grep -l "^$pattern$" "$@" | tr '\n' ' '
|
||||
echo
|
||||
done \
|
||||
| sort -rn -t: -k2
|
@@ -11,14 +11,24 @@
|
||||
Попросту говоря, copy-paste -- тревожный признак.
|
||||
|
||||
По переменным:
|
||||
* SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
|
||||
- SYSTEM_PACKAGES стоит применять крайне осторожно -- эти пакеты попадут
|
||||
во все стадии, в том числе в образ чувствительной к объёму install2
|
||||
(в stage1 -- только в инструментальный чрут); применяйте для того,
|
||||
что обязано быть и в инсталяторе, и в готовой системе;
|
||||
* для "обычного общего" (main, live, rescue) есть COMMON_PACKAGES.
|
||||
что обязано быть и в инсталяторе, и в готовой системе
|
||||
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
|
||||
(NB: попадают в базовую систему)
|
||||
- для "пользовательского" (live, main) есть THE_GROUPS, THE_LISTS
|
||||
и THE_PACKAGES
|
||||
- аналогично по модулям ядра:
|
||||
+ STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
|
||||
+ BASE_KMODULES попадут в установку по умолчанию
|
||||
+ MAIN_KMODULES будут доступны для установки с носителя
|
||||
+ LIVE_KMODULES предназначены для LiveCD/LiveFlash
|
||||
+ THE_KMODULES попадут в "пользовательские" окружения
|
||||
(live и установленную систему)
|
||||
|
||||
По подстановкам:
|
||||
* $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk;
|
||||
* $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
||||
значений -- таким образом их значения могут изменяться до окончания
|
||||
конфигурации, а также зависеть от значений других переменных;
|
||||
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
|
||||
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
|
||||
значений; в этом случае их значения могут изменяться до окончания
|
||||
конфигурации, а также зависеть от значений других переменных
|
||||
|
@@ -1,13 +1,16 @@
|
||||
# desktop distributions
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/desktop-base: distro/installer sub/main \
|
||||
distro/desktop-base: distro/installer use/repo/main \
|
||||
use/syslinux/ui-vesamenu use/x11/xorg use/bootloader/grub
|
||||
|
||||
distro/icewm: distro/desktop-base \
|
||||
use/lowmem use/x11/xdm use/x11/runlevel5 \
|
||||
use/bootloader/lilo use/powerbutton/acpi \
|
||||
use/cleanup/alterator
|
||||
distro/desktop-mini: distro/desktop-base \
|
||||
use/lowmem use/x11/xdm use/bootloader/lilo \
|
||||
use/power/acpi/button use/cleanup/alterator
|
||||
|
||||
distro/icewm: distro/desktop-mini
|
||||
@$(call add,BASE_LISTS,$(call tags,icewm desktop))
|
||||
|
||||
distro/desktop-systemd: distro/icewm use/systemd
|
||||
|
||||
endif
|
||||
|
@@ -1,21 +1,40 @@
|
||||
# live images
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/live: distro/.base use/live/base
|
||||
distro/rescue: distro/.base use/rescue 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/live: distro/.base use/live/base use/power/acpi/cpufreq
|
||||
distro/live-systemd: distro/.base use/live/base use/systemd
|
||||
|
||||
distro/live-builder: distro/.base sub/main \
|
||||
use/live/base use/dev/mkimage
|
||||
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
|
||||
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
|
||||
|
||||
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
|
||||
distro/live-builder: distro/.base use/repo/main \
|
||||
use/live/base use/dev/mkimage use/power/acpi/button
|
||||
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
|
||||
@$(call add,LIVE_PACKAGES,livecd-tmpfs livecd-online-repo)
|
||||
@$(call add,LIVE_PACKAGES,mkimage-profiles)
|
||||
@$(call add,LIVE_PACKAGES,$(pkgs))
|
||||
@$(call add,LIVE_PACKAGES,zsh sudo apt-repo)
|
||||
@$(call add,MAIN_PACKAGES,rpm-build basesystem)
|
||||
@$(call add,MAIN_PACKAGES,fakeroot sisyphus_check)
|
||||
@$(call add,MAIN_PACKAGES,syslinux pciids memtest86+ mkisofs)
|
||||
@$(call add,MAIN_PACKAGES,file make-initrd make-initrd-propagator)
|
||||
@$(call add,MAIN_PACKAGES,livecd-tmpfs livecd-online-repo)
|
||||
@$(call add,MAIN_PACKAGES,mkimage-profiles)
|
||||
@$(call add,MAIN_PACKAGES,$(pkgs))
|
||||
|
||||
distro/live-install: distro/.base use/live/base use/syslinux/localboot.cfg
|
||||
@$(call add,LIVE_PACKAGES,live-install)
|
||||
|
||||
distro/live-icewm: distro/live use/live/autologin
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || desktop) && (live || network || icewm)))
|
||||
|
||||
distro/live-razorqt: distro/live use/live/autologin
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || desktop) && (live || network || razorqt)))
|
||||
|
||||
distro/live-rescue: distro/live-icewm
|
||||
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || extra) && (archive || rescue || network)))
|
||||
|
||||
endif
|
||||
|
@@ -1,30 +1,38 @@
|
||||
# server distributions
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/server-base: distro/installer sub/main \
|
||||
distro/server-base: distro/installer use/repo/main \
|
||||
use/syslinux/ui-menu use/memtest use/bootloader/grub
|
||||
@$(call add,BASE_LISTS,server-base)
|
||||
|
||||
distro/server-mini: distro/server-base use/cleanup/x11-alterator
|
||||
@$(call set,KFLAVOURS,el-smp)
|
||||
@$(call add,KMODULES,e1000e igb)
|
||||
@$(call add,THE_KMODULES,e1000e igb)
|
||||
@$(call add,STAGE1_KMODULES,e1000e igb)
|
||||
@$(call add,BASE_LISTS,\
|
||||
$(call tags,base && (server || network || security || pkg)))
|
||||
@$(call add,BASE_LISTS,$(call tags,extra network))
|
||||
|
||||
distro/server-ovz: distro/server-base \
|
||||
use/hdt use/rescue use/firmware/server use/powerbutton/acpi \
|
||||
use/cleanup/x11-alterator
|
||||
distro/server-systemd: distro/server-mini use/systemd
|
||||
|
||||
distro/server-ovz: distro/server-mini \
|
||||
use/hdt use/rescue use/firmware/server use/power/acpi/button
|
||||
@$(call set,STAGE1_KFLAVOUR,std-def)
|
||||
@$(call set,KFLAVOURS,std-def ovz-el)
|
||||
@$(call add,KMODULES,bcmwl e1000e igb ndiswrapper rtl8168 rtl8192)
|
||||
@$(call add,KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
||||
@$(call add,KMODULES,drbd83 kvm)
|
||||
@$(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,drbd83 kvm)
|
||||
@$(call add,INSTALL2_PACKAGES,curl) ### should become curl-mini
|
||||
@$(call add,BASE_LISTS,ovz-server)
|
||||
@$(call add,BASE_LISTS,$(call tags,base server))
|
||||
@$(call add,MAIN_LISTS,kernel-wifi)
|
||||
@$(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)
|
||||
|
||||
# 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)
|
||||
|
||||
endif
|
||||
|
@@ -22,6 +22,11 @@
|
||||
+ значение: пусто (по умолчанию авто) либо строка
|
||||
+ см. ../lib/profile.mk
|
||||
|
||||
- CHECK
|
||||
+ включает режим проверки сборки конфигурации
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
+ см. ../lib/build.mk
|
||||
|
||||
- CLEAN
|
||||
+ экономия RAM+swap при сборке в tmpfs, иначе места на диске
|
||||
+ очистка рабочего каталога после успешной сборки очередной стадии
|
||||
@@ -34,6 +39,11 @@
|
||||
+ значение: пусто (по умолчанию), 1 или 2
|
||||
+ см. ../lib/log.mk
|
||||
|
||||
- ISOHYBRID
|
||||
+ включает постобработку ISO-образа isohybrid
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
+ см. ../features.in/pack/config.mk
|
||||
|
||||
- NICE
|
||||
+ понижает нагрузку системы сборочной задачей
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
|
@@ -9,5 +9,5 @@
|
||||
# for somewhat more involved example, see syslinux feature
|
||||
|
||||
use/00example: sub/main use/anotherfeature
|
||||
@$(call add,FEATURES,00example)
|
||||
@$(call add_feature)
|
||||
@$(call add,MAIN_PACKAGES,hello)
|
||||
|
@@ -24,75 +24,100 @@ include $(BUILDDIR)/distcfg.mk
|
||||
# -- then both src/ and dst/ can hold the addons;
|
||||
# still both pieces go into a single destination
|
||||
|
||||
### {image-,}scripts.d/ get rsynced twice :-/
|
||||
### still we don't want the trimmed-down case
|
||||
|
||||
### sorry for somewhat complicated and overly long lines
|
||||
all:
|
||||
|
||||
TARGETS := prep $(FEATURES) finalize
|
||||
|
||||
.PHONY: $(TARGETS)
|
||||
all: | $(TARGETS)
|
||||
|
||||
prep:
|
||||
@echo "** starting feature configuration"
|
||||
@if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
||||
echo "** target subprofiles: $(SUBPROFILES)"; \
|
||||
echo "** requested features: $(FEATURES)"; \
|
||||
fi
|
||||
@for feat in $(FEATURES); do \
|
||||
if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
||||
echo "** adding $$feat feature"; \
|
||||
fi; \
|
||||
pushd "$$feat" >/dev/null && \
|
||||
for sub in / $(SUBPROFILES); do \
|
||||
|
||||
# feat
|
||||
$(FEATURES):
|
||||
@feat=$@; \
|
||||
if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
||||
echo "** adding $$feat feature"; \
|
||||
fi; \
|
||||
pushd "$$feat" >/dev/null && \
|
||||
for sub in / $(SUBPROFILES); do \
|
||||
dirtags=; \
|
||||
if [ "$$sub" = / ]; then \
|
||||
parts=lib; \
|
||||
srcdirs="."; \
|
||||
dst="."; \
|
||||
else \
|
||||
parts=; \
|
||||
src="$${sub%/*}"; \
|
||||
dst="$${sub#*/}"; \
|
||||
srcdirs=; \
|
||||
if [ -d "$$src" ]; then \
|
||||
rsync -qab "$$src/" "$(BUILDDIR)/$$dst/"; \
|
||||
srcdirs="$$src"; \
|
||||
dirtags="&& $$src"; \
|
||||
fi; \
|
||||
if [ -d "$$dst" ]; then \
|
||||
rsync -qab "$$dst/" "$(BUILDDIR)/$$dst/"; \
|
||||
if [ "$$dst" != "$$src" ]; then \
|
||||
dirtags="&& ($$src || $$dst)"; \
|
||||
fi; \
|
||||
if [ -d "$$dst" -a "$$dst" != "$$src" ]; then \
|
||||
srcdirs="$$srcdirs $$dst"; \
|
||||
dirtags="&& ($$src || $$dst)"; \
|
||||
fi; \
|
||||
for dir in lib {image-,}scripts.d; do \
|
||||
destdir="$(BUILDDIR)/$$dst/$$dir/"; \
|
||||
if [ -d "$$destdir" ]; then \
|
||||
if [ -d "$$dir" ]; then \
|
||||
rsync -qab "$$dir/" "$$destdir/"; \
|
||||
fi; \
|
||||
if [ -d "tagged/$$dir" ]; then \
|
||||
if pushd "tagged/$$dir" >/dev/null; then \
|
||||
echo "$$feat $$dirtags" \
|
||||
| tags2lists . \
|
||||
| xargs -r cp -vpLt "$$destdir" --; \
|
||||
popd >/dev/null; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
for srcdir in $$srcdirs; do \
|
||||
rsync -qab --exclude tagged \
|
||||
"$$srcdir/" "$(BUILDDIR)/$$dst/"; \
|
||||
done; \
|
||||
if type -t git >&/dev/null && \
|
||||
pushd "$(BUILDDIR)/$$dst/" >/dev/null; then \
|
||||
test -n "`git status -s`" && \
|
||||
git add . && \
|
||||
if [ -n "$$dst" ]; then \
|
||||
the="$$sub subprofile"; \
|
||||
else \
|
||||
the="toplevel"; \
|
||||
fi && \
|
||||
git commit -qam "$$feat feature: $$the part added"; \
|
||||
fi; \
|
||||
if [ -n "$(GLOBAL_DEBUG)" ]; then \
|
||||
echo "** src=[$$src] dst=[$$dst] srcdirs=[$$srcdirs]"; \
|
||||
fi; \
|
||||
for srcdir in $$srcdirs; do \
|
||||
[ -d "$$srcdir" ] || continue; \
|
||||
pushd "$$srcdir" >&/dev/null; \
|
||||
for part in $$parts {image-,}scripts.d; do \
|
||||
destdir="$(BUILDDIR)/$$dst/$$part"; \
|
||||
[ -d "$$destdir" ] || continue; \
|
||||
if [ "$$sub" = / -a -d "$$part" ]; then \
|
||||
rsync -qab "$$part/" "$$destdir/"; \
|
||||
fi; \
|
||||
[ -d "tagged/$$part" ] || continue; \
|
||||
[ "$$srcdir" != "." ] || continue; \
|
||||
pushd "tagged/$$part" >/dev/null; \
|
||||
echo "$$feat $$dirtags" \
|
||||
| tags2lists . \
|
||||
| xargs -r cp -vpLt "$$destdir" --; \
|
||||
popd >/dev/null; \
|
||||
fi; \
|
||||
done; \
|
||||
popd >&/dev/null; \
|
||||
done; \
|
||||
if [ -x "generate.sh" ]; then sh generate.sh; fi; \
|
||||
if [ -s "generate.mk" ]; then $(MAKE) -f generate.mk; fi; \
|
||||
if type -t git >&/dev/null && \
|
||||
pushd "$(BUILDDIR)/" >/dev/null; then \
|
||||
if test -n "`git status -s`"; then \
|
||||
git add . && \
|
||||
git commit -qam "$$feat feature generation complete"; \
|
||||
fi; \
|
||||
pushd "$(BUILDDIR)/$$dst/" >/dev/null; then \
|
||||
test -n "`git status -s`" && \
|
||||
git add . && \
|
||||
if [ -n "$$dst" ]; then \
|
||||
the="$$sub subprofile"; \
|
||||
else \
|
||||
the="toplevel"; \
|
||||
fi && \
|
||||
git commit -qam "$$feat feature: $$the part added"; \
|
||||
popd >/dev/null; \
|
||||
fi; \
|
||||
done; \
|
||||
if [ -x "generate.sh" ]; then sh generate.sh; fi; \
|
||||
if [ -s "generate.mk" ]; then $(MAKE) -f generate.mk; fi; \
|
||||
if type -t git >&/dev/null && \
|
||||
pushd "$(BUILDDIR)/" >/dev/null; then \
|
||||
if test -n "`git status -s`"; then \
|
||||
git add . && \
|
||||
git commit -qam "$$feat feature generation complete"; \
|
||||
fi; \
|
||||
popd >/dev/null; \
|
||||
done
|
||||
fi; \
|
||||
popd >/dev/null
|
||||
|
||||
finalize:
|
||||
@find "$(BUILDDIR)/" -name '*~' \
|
||||
| sed "s,$(BUILDDIR)/,** warning: file clash: ," >&2
|
||||
|
||||
endif
|
||||
|
@@ -7,15 +7,16 @@
|
||||
в ../Makefile; он может описывать одну или более целей
|
||||
вида use/*, дополняющих конфигурацию, и при наличии
|
||||
дополнительных хуков для копирования или generate.*
|
||||
должен добавить имя фичи в $(FEATURES).
|
||||
обязан добавить имя фичи в $(FEATURES), для чего
|
||||
создана функция add_feature без аргументов.
|
||||
|
||||
На этапе генерации сборочного профиля фичи рассматриваются
|
||||
после инициализации профиля (см. ../image.in/) и копирования
|
||||
субпрофилей (см. ../sub.in/). Для каждой фичи, указанной
|
||||
в $(FEATURES), копируются подкаталоги сообразно субпрофилям,
|
||||
а также производится обработка {tagged/,}{image-},scripts.d/
|
||||
(см. cleanup/ в качестве примера); затем выполняется скрипт
|
||||
generate.sh и задействуется generate.mk (при их наличии).
|
||||
а также производится обработка {tagged/,}{image-,}scripts.d/;
|
||||
затем выполняется скрипт generate.sh и задействуется generate.mk
|
||||
(при их наличии).
|
||||
|
||||
NB: тегированные скрипты являются экспериментальными,
|
||||
возможны недоработки и существенные изменения!
|
||||
@@ -29,9 +30,3 @@ generate.sh и задействуется generate.mk (при их наличи
|
||||
|
||||
Несложный пример содержится в 00example/, более близкий к жизни
|
||||
и нынешним пределам возможностей метапрофиля -- в syslinux/.
|
||||
|
||||
Основные фичи для построения дистрибутивных образов:
|
||||
- stage1: propagator, ядро инсталятора и initrd в т.ч. с firmware
|
||||
- stage2: базовый live-образ (и модули ядра, соответствующие stage1);
|
||||
используется фичами install2, live, rescue
|
||||
- main: пакетная база
|
||||
|
@@ -1,2 +1,3 @@
|
||||
use/build-distro: boot/isolinux
|
||||
@$(call add,FEATURES,build-distro)
|
||||
# hooked from ../../lib/sugar.mk
|
||||
use/build-distro:
|
||||
@$(call add_feature)
|
||||
|
@@ -4,12 +4,11 @@
|
||||
# take the latter part
|
||||
SUBDIRS = $(notdir $(SUBPROFILES))
|
||||
|
||||
# "main" subprofile needs genbasedir
|
||||
CHROOT_PACKAGES = apt-utils
|
||||
BOOT_TYPE = isolinux
|
||||
|
||||
# Metadata/ needed only for installers (and not for e.g. syslinux.iso)
|
||||
# FIXME: installable live needs it too, don't move to install2 feature
|
||||
### see also .../pkg.in/lists/Makefile
|
||||
ifneq (,$(findstring install2,$(FEATURES)))
|
||||
METADATA = metadata
|
||||
endif
|
||||
@@ -17,7 +16,7 @@ endif
|
||||
all: $(GLOBAL_DEBUG) prep copy-subdirs copy-tree run-scripts pack-image \
|
||||
postprocess $(GLOBAL_CLEAN_WORKDIR)
|
||||
|
||||
prep: $(GLOBAL_DEBUG) dot-disk $(METADATA) $(IMAGEDIR)
|
||||
prep: $(GLOBAL_DEBUG) dot-disk $(METADATA) imagedir
|
||||
|
||||
metadata: dot-base
|
||||
@mkdir -p files/Metadata
|
||||
@@ -29,10 +28,8 @@ metadata: dot-base
|
||||
| sed 's,$(PKGDIR)/*,,g')
|
||||
|
||||
dot-base:
|
||||
@{ \
|
||||
echo -e "\n## added by image.in/Makefile"; \
|
||||
echo "$(call kpackages,$(KMODULES),$(KFLAVOURS))"; \
|
||||
} >> $(call list,.base)
|
||||
@p="$(call kpackages,$(THE_KMODULES) $(BASE_KMODULES),$(KFLAVOURS))"; \
|
||||
echo -e "\n## added by build-distro.mk\n$$p" >> $(call list,.base)
|
||||
|
||||
dot-disk:
|
||||
@mkdir -p files/.disk
|
||||
|
@@ -1,40 +0,0 @@
|
||||
#!/bin/sh
|
||||
# FIXME: bring to common style
|
||||
|
||||
verbose()
|
||||
{
|
||||
[ -z "$GLOBAL_VERBOSE" ] ||
|
||||
echo >&2 "HOOK: 01-genbasedir: $*"
|
||||
}
|
||||
|
||||
verbose started
|
||||
|
||||
[ -d "$WORKDIR/ALTLinux" ] || exit 0
|
||||
cd "$WORKDIR/ALTLinux"
|
||||
|
||||
comps="$(find -mindepth 1 -maxdepth 1 -type d -name 'RPMS.*' -printf '%f\n' |
|
||||
sed 's/^RPMS\.//')"
|
||||
|
||||
verbose "comps=$comps"
|
||||
|
||||
[ -n "$comps" ] || exit 1
|
||||
|
||||
genbasedir \
|
||||
--topdir="$WORKDIR" \
|
||||
--architecture="$INFO_ARCH" \
|
||||
--no-oldhashfile \
|
||||
--partial \
|
||||
--xz \
|
||||
--bz2 \
|
||||
--create \
|
||||
--notautomatic=false \
|
||||
${INFO_NAME:+--archive="$INFO_NAME"} \
|
||||
${INFO_VERSION:+--version="$INFO_VERSION"} \
|
||||
${INFO_ORIGIN:+--origin="$INFO_ORIGIN"} \
|
||||
${INFO_LABEL:+--label="$INFO_LABEL"} \
|
||||
ALTLinux $comps
|
||||
|
||||
### drop this when genbasedir is fixed (--no-uncompressed)
|
||||
for comp in $comps; do rm -f base/{pkg,src}list.$comp; done
|
||||
|
||||
verbose finished
|
@@ -1,2 +1,3 @@
|
||||
# hooked from ../../lib/sugar.mk
|
||||
use/build-ve:
|
||||
@$(call add,FEATURES,build-ve)
|
||||
@$(call add_feature)
|
||||
|
@@ -1,6 +1,12 @@
|
||||
# step 4: build the virtual environment image
|
||||
|
||||
ifeq (tar,$(IMAGE_PACKTYPE))
|
||||
MKI_TAR_COMPRESS = $(IMAGE_COMPRESS)
|
||||
endif
|
||||
|
||||
ifeq (cpio,$(IMAGE_PACKTYPE))
|
||||
MKI_CPIO_COMPRESS = $(IMAGE_COMPRESS)
|
||||
endif
|
||||
|
||||
IMAGE_PACKAGES = $(call list,$(BASE_LISTS)) \
|
||||
$(SYSTEM_PACKAGES) \
|
||||
@@ -9,3 +15,5 @@ IMAGE_PACKAGES = $(call list,$(BASE_LISTS)) \
|
||||
|
||||
all: $(GLOBAL_DEBUG) build-image copy-tree run-image-scripts pack-image \
|
||||
postprocess $(GLOBAL_CLEAN_WORKDIR)
|
||||
|
||||
prep: imagedir
|
||||
|
@@ -1,5 +1,5 @@
|
||||
use/cleanup:
|
||||
@$(call add,FEATURES,cleanup)
|
||||
@$(call add_feature)
|
||||
|
||||
use/cleanup/installer: use/cleanup
|
||||
@$(call add,CLEANUP_PACKAGES,'installer-*')
|
||||
|
@@ -1,11 +1,11 @@
|
||||
#!/bin/sh -efu
|
||||
# create a postinstall script to drop temporarily needed packages
|
||||
### create a postinstall script to drop temporarily needed packages
|
||||
|
||||
if [ -n "$GLOBAL_VERBOSE" ]; then
|
||||
echo "** GLOBAL_CLEANUP_PACKAGES: $GLOBAL_CLEANUP_PACKAGES"
|
||||
fi >&2
|
||||
|
||||
SCRIPT="/usr/share/install2/postinstall.d/01+install2+cleanup"
|
||||
SCRIPT="/usr/share/install2/postinstall.d/01-remove-pkgs"
|
||||
cat > "$SCRIPT" << EOF
|
||||
#!/bin/sh -efu
|
||||
|
@@ -1,5 +1,5 @@
|
||||
use/dev:
|
||||
@$(call add,FEATURES,dev)
|
||||
@$(call add_feature)
|
||||
@$(call add,COMMON_PACKAGES,git-core hasher gear)
|
||||
|
||||
use/dev/mkimage: use/dev
|
||||
|
@@ -1,9 +0,0 @@
|
||||
#!/bin/sh -efu
|
||||
# configure local image repository provided by sub/main
|
||||
|
||||
# TODO: some integration with sub/main to ensure that it is there
|
||||
|
||||
{
|
||||
echo "# for real stuff you'll need full repo, see apt-repo"
|
||||
echo "rpm file:/image ALTLinux main"
|
||||
} > /etc/apt/sources.list.d/cdrom.list
|
@@ -1,5 +1,5 @@
|
||||
use/dos: use/syslinux
|
||||
@$(call add,FEATURES,dos)
|
||||
@$(call add_feature)
|
||||
@$(call add,SYSLINUX_CFG,dos)
|
||||
@$(call add,SYSLINUX_FILES,/usr/lib/syslinux/memdisk)
|
||||
@$(call add,STAGE1_PACKAGES,make-freedos-floppy glibc-gconv-modules)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
use/hdt: use/syslinux use/memtest
|
||||
@$(call add,FEATURES,hdt)
|
||||
@$(call add_feature)
|
||||
@$(call add,STAGE1_PACKAGES,pciids)
|
||||
@$(call add,SYSLINUX_MODULES,hdt)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
use/install2: use/stage2 sub/stage2/install2 use/cleanup/installer
|
||||
@$(call add,FEATURES,install2)
|
||||
@$(call add_feature)
|
||||
@$(call set,INSTALL2_PACKAGES,installer-distro-$$(INSTALLER)-stage2)
|
||||
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
|
||||
@$(call add,MAIN_PACKAGES,branding-$$(BRANDING)-release)
|
||||
@$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
|
||||
@$(call add,BASE_LISTS,$(call tags,basesystem))
|
||||
|
9
features.in/isohybrid/README
Normal file
9
features.in/isohybrid/README
Normal file
@@ -0,0 +1,9 @@
|
||||
Эта фича производит постобработку ISO-образа утилитой isohybrid
|
||||
с целью обеспечения возможности его загрузки как с CD/DVD,
|
||||
так и с USB-флэшки.
|
||||
|
||||
Можно указать в цепочке зависимостей дистрибутива явно с тем,
|
||||
чтобы гарантировать гибридный вид образа; в экспериментальном
|
||||
порядке сделана возможность запросить включение этой фичи при
|
||||
сборке конфигурации произвольного дистрибутива
|
||||
(ISOHYBRID=1, см. ../pack/config.mk).
|
3
features.in/isohybrid/config.mk
Normal file
3
features.in/isohybrid/config.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
use/isohybrid:
|
||||
@$(call add_feature)
|
||||
@$(call add,POSTPROCESS_TARGETS,80isohybrid)
|
4
features.in/isohybrid/lib/build-isohybrid.mk
Normal file
4
features.in/isohybrid/lib/build-isohybrid.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
CHROOT_PACKAGES += syslinux
|
||||
|
||||
postprocess-80isohybrid:
|
||||
@isohybrid "$(IMAGEDIR)/$(IMAGE_OUTFILE)"
|
3
features.in/isomd5sum/README
Normal file
3
features.in/isomd5sum/README
Normal file
@@ -0,0 +1,3 @@
|
||||
Эта фича конфигурирует внедрение контрольной суммы в образ
|
||||
инсталятора после его сборки с целью проверки целостности
|
||||
на ранней стадии установки.
|
3
features.in/isomd5sum/config.mk
Normal file
3
features.in/isomd5sum/config.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
use/isomd5sum:
|
||||
@$(call add_feature)
|
||||
@$(call add,POSTPROCESS_TARGETS,90isomd5sum)
|
4
features.in/isomd5sum/lib/build-isomd5sum.mk
Normal file
4
features.in/isomd5sum/lib/build-isomd5sum.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
CHROOT_PACKAGES += isomd5sum
|
||||
|
||||
postprocess-90isomd5sum:
|
||||
@implantisomd5 "$(IMAGEDIR)/$(IMAGE_OUTFILE)"
|
@@ -1,9 +1,13 @@
|
||||
# copy stage2 as live
|
||||
use/live: use/stage2 sub/stage2/live
|
||||
@$(call add,FEATURES,live)
|
||||
@$(call add_feature)
|
||||
|
||||
use/live/base: use/live use/syslinux/ui-menu
|
||||
@$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
|
||||
|
||||
use/live/icewm: use/live/base
|
||||
@$(call add,LIVE_LISTS,\
|
||||
$(call tags,(base || desktop) && (live || network || icewm)))
|
||||
use/live/x11: use/live/base use/x11/xorg use/x11/wacom use/virtualbox/guest
|
||||
|
||||
# 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
|
||||
use/live/autologin: use/live/x11
|
||||
@$(call add,LIVE_PACKAGES,autologin xinit)
|
||||
|
34
features.in/live/live/image-scripts.d/40-autologin
Executable file
34
features.in/live/live/image-scripts.d/40-autologin
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/sh -ef
|
||||
USER=altlinux
|
||||
|
||||
# setup runlevel
|
||||
INITTAB=/etc/inittab
|
||||
if [ -f "$INITTAB" ]; then
|
||||
[ -z "$runlevel" ] && runlevel=5
|
||||
subst "s,^\(id:\)\(.*\)\(:initdefault.*\),\\1$runlevel\\3," "$INITTAB"
|
||||
fi
|
||||
|
||||
# autologin^2
|
||||
if [ -x /usr/sbin/autologin ]; then
|
||||
cat << E_O_F >> /etc/sysconfig/autologin
|
||||
USER=$USER
|
||||
AUTOLOGIN=yes
|
||||
E_O_F
|
||||
fi
|
||||
|
||||
# gdm2 autologin
|
||||
GDM_CONF=/etc/X11/gdm/custom.conf
|
||||
if [ -f "$GDM_CONF" ]; then
|
||||
sed -i -e '/\[daemon\]/aAutomaticLoginEnable=true\nAutomaticLogin='$USER \
|
||||
"$GDM_CONF"
|
||||
fi
|
||||
|
||||
# kdm3 autologin
|
||||
# TODO: iterate over kdm{,4} if feasible
|
||||
KDMRC=/etc/X11/kdm/kdmrc
|
||||
if [ -f "$KDMRC" ]; then
|
||||
sed -i \
|
||||
-e '/AutoLoginEnable/ s,^.*$,AutoLoginEnable=true,' \
|
||||
-e '/AutoLoginUser/ s,^.*$,AutoLoginUser='$USER',' \
|
||||
"$KDMRC"
|
||||
fi
|
@@ -1,8 +1,11 @@
|
||||
# stage2 mod: livecd
|
||||
|
||||
IMAGE_PACKAGES = $(COMMON_PACKAGES) \
|
||||
$(LIVE_PACKAGES) \
|
||||
$(call map,list,$(LIVE_LISTS) $(LIVE_MAIN_GROUPS)) \
|
||||
STAGE2_KMODULES = $(THE_KMODULES) $(LIVE_KMODULES)
|
||||
|
||||
IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
|
||||
$(call map,list, \
|
||||
$(THE_LISTS) $(THE_GROUPS) \
|
||||
$(LIVE_LISTS) $(LIVE_GROUPS)) \
|
||||
interactivesystem
|
||||
|
||||
MKI_PACK_RESULTS = squash:live
|
||||
|
@@ -1,4 +1,4 @@
|
||||
use/lowmem: use/install2
|
||||
@$(call add,FEATURES,lowmem)
|
||||
@$(call add_feature)
|
||||
# TODO: http://www.altlinux.org/Branding/slideshow => disable?
|
||||
# also installer-feature-rm-slideshow
|
||||
|
@@ -1,4 +1,4 @@
|
||||
use/memtest: use/syslinux
|
||||
@$(call add,FEATURES,memtest)
|
||||
@$(call add_feature)
|
||||
@$(call add,SYSTEM_PACKAGES,memtest86+)
|
||||
@$(call add,SYSLINUX_CFG,memtest)
|
||||
|
@@ -1,3 +1,4 @@
|
||||
Эта фича определяет формат упаковки создаваемого образа.
|
||||
На данный момент поддерживаются iso (загрузочный ISO9660
|
||||
для дистрибутивов) и tar/tgz (виртуальные окружения).
|
||||
для дистрибутивов) и tar/cpio с возможностью сжатия gz/xz
|
||||
(виртуальные окружения).
|
||||
|
@@ -1,18 +1,36 @@
|
||||
DISTRO_EXTS := .iso
|
||||
VE_EXTS := .tar .tgz
|
||||
|
||||
use/pack:
|
||||
@$(call add,FEATURES,pack)
|
||||
@$(call add_feature)
|
||||
|
||||
use/pack/iso: use/pack boot/isolinux
|
||||
# conventional ISO9660 image hybridization
|
||||
# for direct bootable usbflash imaging
|
||||
use/pack/iso: use/pack boot/isolinux $(ISOHYBRID:%=use/isohybrid)
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
@$(call set,IMAGE_PACKTYPE,isoboot)
|
||||
else
|
||||
@$(call set,IMAGE_PACKTYPE,isodata)
|
||||
endif
|
||||
|
||||
use/pack/tar: use/pack
|
||||
@$(call set,IMAGE_PACKTYPE,tar)
|
||||
VE_ARCHIVES := tar cpio
|
||||
VE_COMPRESSORS := gz xz# there's no sense in bzip2 by now
|
||||
VE_ZIPS := $(call addsuffices, \
|
||||
$(addprefix .,$(VE_COMPRESSORS)), \
|
||||
$(VE_ARCHIVES))# tar.gz cpio.xz ...
|
||||
VE_EXTS := $(sort $(addprefix .,$(VE_ARCHIVES) $(VE_ZIPS)))# .tar .tar.gz ...
|
||||
|
||||
use/pack/tgz: use/pack/tar
|
||||
@$(call set,IMAGE_COMPRESS,gzip)
|
||||
# generate rules for archive/compressor combinations
|
||||
define PACK_containers
|
||||
use/pack/$(1): use/pack
|
||||
@$$(call set,IMAGE_PACKTYPE,$(1))
|
||||
endef
|
||||
|
||||
define PACK_compressors
|
||||
use/pack/$(1).$(2): use/pack/$(1)
|
||||
@$$(call set,IMAGE_COMPRESS,$(2))
|
||||
endef
|
||||
|
||||
$(foreach c,$(VE_ARCHIVES), \
|
||||
$(eval $(call PACK_containers,$(c))) \
|
||||
$(foreach z,$(VE_COMPRESSORS), \
|
||||
$(eval $(call PACK_compressors,$(c),$(z)))))
|
||||
|
6
features.in/power/README
Normal file
6
features.in/power/README
Normal file
@@ -0,0 +1,6 @@
|
||||
Эта фича конфигурирует поддержку управления питанием
|
||||
-- выключение и регулировку частоты CPU для ACPI,
|
||||
засыпание для APM (не проверялось).
|
||||
|
||||
TODO: учесть изложенное в https://bugzilla.altlinux.org/25018
|
||||
(для gnome & co)
|
21
features.in/power/config.mk
Normal file
21
features.in/power/config.mk
Normal file
@@ -0,0 +1,21 @@
|
||||
# common
|
||||
# TODO: invent multi-target scripts and integrate that 08-powerbutton
|
||||
use/power:
|
||||
@$(call add,COMMON_PACKAGES,installer-feature-powerbutton-stage3)
|
||||
|
||||
# modern power management
|
||||
use/power/acpi: use/power
|
||||
@$(call add,COMMON_PACKAGES,acpid)
|
||||
|
||||
use/power/acpi/button: use/power/acpi
|
||||
@$(call add,COMMON_PACKAGES,acpid-events-power)
|
||||
|
||||
use/power/acpi/cpufreq: use/power/acpi
|
||||
@$(call add,COMMON_PACKAGES,installer-feature-cpufreq-stage3)
|
||||
|
||||
use/power/acpi/powersave: use/power/acpi
|
||||
@$(call add,COMMON_PACKAGES,powersave)
|
||||
|
||||
# legacy power management
|
||||
use/power/apm: use/power
|
||||
@$(call add,COMMON_PACKAGES,apmd)
|
@@ -1,4 +0,0 @@
|
||||
Эта фича конфигурирует поддержку управления кнопкой питания
|
||||
-- выключение для ACPI, засыпание для APM (не проверялось).
|
||||
|
||||
TODO: учесть изложенное в https://bugzilla.altlinux.org/25018
|
@@ -1,14 +0,0 @@
|
||||
# common
|
||||
use/powerbutton:
|
||||
@$(call add,COMMON_PACKAGES,installer-feature-powerbutton-stage3)
|
||||
|
||||
# modern power management
|
||||
use/powerbutton/acpi: use/powerbutton
|
||||
@$(call add,COMMON_PACKAGES,acpid acpid-events-power)
|
||||
|
||||
use/powerbutton/powersave: use/powerbutton/acpi
|
||||
@$(call add,COMMON_PACKAGES,powersave)
|
||||
|
||||
# legacy power management
|
||||
use/powerbutton/apm: use/powerbutton
|
||||
@$(call add,COMMON_PACKAGES,apmd)
|
8
features.in/repo/README
Normal file
8
features.in/repo/README
Normal file
@@ -0,0 +1,8 @@
|
||||
Эта фича предназначена для конфигурирования репозиториев
|
||||
в образе, включая генерацию хэшей и подключение к LiveCD.
|
||||
|
||||
На данный момент единственным таким репозиторием является
|
||||
RPMS.main (создаваемый sub/main), но возможно добавление
|
||||
addons, updates или иных по мере необходимости.
|
||||
|
||||
Результат -- каталог ALTLinux/base/ для копирования в образ.
|
5
features.in/repo/config.mk
Normal file
5
features.in/repo/config.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
use/repo:
|
||||
@$(call add_feature)
|
||||
@$(call add,STAGE1_PACKAGES,gnupg)
|
||||
|
||||
use/repo/main: sub/main use/repo
|
2
features.in/repo/lib/build-genbasedir.mk
Normal file
2
features.in/repo/lib/build-genbasedir.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
# ../scripts.d/01-genbasedir needs that
|
||||
CHROOT_PACKAGES += apt-utils
|
10
features.in/repo/live/image-scripts.d/80-repo-main
Executable file
10
features.in/repo/live/image-scripts.d/80-repo-main
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh -efu
|
||||
# configure package repository of the image (provided by sub/main);
|
||||
# this script will be run iff both live and repo features are used
|
||||
|
||||
DIR=/etc/apt/sources.list.d
|
||||
|
||||
mkdir -p $DIR && {
|
||||
echo "# for real stuff you'll need full repo, see apt-repo"
|
||||
echo "rpm file:/image ALTLinux main"
|
||||
} > $DIR/main.list
|
28
features.in/repo/scripts.d/01-genbasedir
Executable file
28
features.in/repo/scripts.d/01-genbasedir
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh -efu
|
||||
|
||||
PREFIX=ALTLinux
|
||||
cd "$WORKDIR/$PREFIX"
|
||||
|
||||
COMPS="$(find -mindepth 1 -maxdepth 1 -type d -name 'RPMS.*' -printf '%f\n' |
|
||||
sed 's/^RPMS\.//')"
|
||||
|
||||
[ -z "$GLOBAL_VERBOSE" ] || echo "** COMPS=$COMPS" >&2
|
||||
[ -n "$COMPS" ] || exit 1
|
||||
|
||||
genbasedir \
|
||||
--topdir="$WORKDIR" \
|
||||
--no-oldhashfile \
|
||||
--partial \
|
||||
--xz \
|
||||
--bz2 \
|
||||
--create \
|
||||
--notautomatic=false \
|
||||
${INFO_ARCH:+--architecture="$INFO_ARCH"} \
|
||||
${INFO_NAME:+--archive="$INFO_NAME"} \
|
||||
${INFO_VERSION:+--version="$INFO_VERSION"} \
|
||||
${INFO_ORIGIN:+--origin="$INFO_ORIGIN"} \
|
||||
${INFO_LABEL:+--label="$INFO_LABEL"} \
|
||||
$PREFIX $COMPS
|
||||
|
||||
### drop this when genbasedir is fixed (--no-uncompressed)
|
||||
for c in $COMPS; do rm -f base/{pkg,src}list.$c; done
|
4
features.in/repo/scripts.d/02-pubring
Executable file
4
features.in/repo/scripts.d/02-pubring
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# generate current plaintext rpm pubring representation
|
||||
|
||||
gpg --export --armor --homedir=/usr/lib/alt-gpgkeys >$WORKDIR/RPM-GPG-KEY
|
@@ -1,4 +1,4 @@
|
||||
use/rescue: use/stage2 sub/stage2/rescue
|
||||
@$(call add,FEATURES,rescue)
|
||||
@$(call add,RESCUE_LISTS,$(call tags,base && (rescue || network)))
|
||||
@$(call add,RESCUE_LISTS,$(call tags,extra network))
|
||||
@$(call add_feature)
|
||||
@$(call add,RESCUE_LISTS, \
|
||||
$(call tags,(base || extra) && (rescue || network)))
|
||||
|
@@ -4,8 +4,10 @@
|
||||
mv -f -- /etc/inittab.rescue /etc/inittab
|
||||
|
||||
# enable NFS mounts
|
||||
chkconfig rpcbind on
|
||||
sed -i 's,#\(RPCBIND_ARGS="-l".*\),\1,' /etc/sysconfig/rpcbind
|
||||
if [ -x /etc/rc.d/init.d/rpcbind ]; then
|
||||
chkconfig rpcbind on
|
||||
sed -i 's,#\(RPCBIND_ARGS="-l".*\),\1,' /etc/sysconfig/rpcbind
|
||||
fi
|
||||
|
||||
# remove unwanted startup scripts
|
||||
find /etc/rc.d/rc{2,3,4,5}.d/ -type l -name 'S*' \
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# "1" is not a typo
|
||||
use/stage2: sub/stage1
|
||||
@$(call add,FEATURES,stage2)
|
||||
@$(call add_feature)
|
||||
@$(call add,STAGE1_PACKAGES,file make-initrd make-initrd-propagator)
|
||||
|
||||
# NB: sub/stage2 isn't used standalone but rather
|
||||
|
@@ -1 +1,2 @@
|
||||
timeout 200
|
||||
|
||||
|
5
features.in/syslinux/cfg.in/05live.cfg
Normal file
5
features.in/syslinux/cfg.in/05live.cfg
Normal file
@@ -0,0 +1,5 @@
|
||||
label live
|
||||
menu label ^LiveCD (no hard disk needed)
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz fastboot live lowmem showopts automatic=method:cdrom ramdisk_size=@live_size@ stagename=live
|
||||
|
@@ -1,3 +1,4 @@
|
||||
label harddisk
|
||||
menu label ^Boot from hard drive as usual
|
||||
localboot 0x80
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
label removable
|
||||
menu label Boot from ^removable drive
|
||||
menu label Boot from removable ^drive
|
||||
localboot 0x00
|
||||
|
||||
|
@@ -1,4 +0,0 @@
|
||||
label live
|
||||
menu label ^LiveCD (no hard disk needed)
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz live ramdisk_size=@live_size@ fastboot stagename=live showopts automatic=method:cdrom
|
@@ -1,8 +1,10 @@
|
||||
label linux
|
||||
menu label ^Install ALT Linux
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz ramdisk_size=@altinst_size@ changedisk vga=0x314 quiet=1 showopts automatic=method:cdrom
|
||||
append initrd=alt0/full.cz changedisk fastboot showopts automatic=method:cdrom quiet=1 ramdisk_size=@altinst_size@ vga=0x314
|
||||
|
||||
label noapic
|
||||
menu label ^Failsafe install
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz ramdisk_size=@altinst_size@ changedisk showopts nolapic noapic
|
||||
append initrd=alt0/full.cz changedisk lowmem noapic nolapic showopts ramdisk_size=@altinst_size@
|
||||
|
||||
|
6
features.in/syslinux/cfg.in/20netinstall2.cfg
Normal file
6
features.in/syslinux/cfg.in/20netinstall2.cfg
Normal file
@@ -0,0 +1,6 @@
|
||||
label netinst
|
||||
menu label Install server-ovz via inter^net
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz fastboot showopts automatic=method:http,network:dhcp,server:ftp.linux.kiev.ua,directory:/pub/Linux/ALT/people/mike/iso/mkimage-profiles/netinst/server-ovz/x86_64 quiet=1 ramdisk_size=131072 vga=0x314
|
||||
### hardwired parameters and strings should become dynamic someday
|
||||
|
@@ -1,4 +1,5 @@
|
||||
label rescue
|
||||
menu label ^Rescue LiveCD
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz live ramdisk_size=@rescue_size@ fastboot stagename=rescue showopts automatic=method:cdrom
|
||||
append initrd=alt0/full.cz fastboot live showopts automatic=method:cdrom ramdisk_size=@rescue_size@ stagename=rescue
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
label freedos
|
||||
menu label Live ^FreeDOS
|
||||
menu label Live Free^DOS
|
||||
kernel memdisk
|
||||
append initrd=freedos.img
|
||||
|
||||
|
@@ -6,3 +6,4 @@ label hdt
|
||||
com32 hdt.c32
|
||||
append quiet
|
||||
# no reed for "append pciids=pci.ids memtest=memtest", defaults are fine
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
label memtest
|
||||
menu label ^Memory Test
|
||||
linux memtest.bin
|
||||
|
||||
|
3
features.in/syslinux/cfg.in/Makefile
Normal file
3
features.in/syslinux/cfg.in/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
# check for shortcut overlaps
|
||||
check:
|
||||
@sed -n 's/^.*\^\(.\).*$$/\1/p' *.cfg | sort | uniq -c
|
16
features.in/syslinux/cfg.in/README
Normal file
16
features.in/syslinux/cfg.in/README
Normal file
@@ -0,0 +1,16 @@
|
||||
Здесь хранятся кусочки конфигурации для syslinux,
|
||||
нужные из которых копируются с подстановкой значений
|
||||
из метапрофиля в профиль и уже там в зависимости от
|
||||
доступных модулей собираются в конфигурационный файл.
|
||||
|
||||
При изменении или добавлении просьба по оформлению
|
||||
с тем, чтобы легче было отсматривать и сводить:
|
||||
|
||||
- параметры append перечисляются в следующем порядке:
|
||||
+ initrd=...
|
||||
+ по алфавиту те, что без аргументов
|
||||
+ по алфавиту те, что имеют аргументы
|
||||
- в конце файла пустая строка
|
||||
|
||||
Для проверки уникальности клавиатурных сокращений
|
||||
служит команда "make check".
|
@@ -1,6 +1,6 @@
|
||||
# default is plain text prompt
|
||||
use/syslinux: sub/stage1
|
||||
@$(call add,FEATURES,syslinux)
|
||||
@$(call add_feature)
|
||||
@$(call add,STAGE1_PACKAGES,syslinux)
|
||||
|
||||
# UI is overwritten
|
||||
|
3
features.in/systemd/README
Normal file
3
features.in/systemd/README
Normal file
@@ -0,0 +1,3 @@
|
||||
Эта фича заменяет в базовой системе sysvinit на systemd;
|
||||
в настоящее время является экспериментальной, читайте
|
||||
http://www.altlinux.org/systemd
|
4
features.in/systemd/config.mk
Normal file
4
features.in/systemd/config.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
use/systemd:
|
||||
@$(call add_feature)
|
||||
@$(call add,COMMON_PACKAGES,systemd systemd-units systemd-sysvinit)
|
||||
@$(call add,COMMON_PACKAGES,installer-feature-systemd-stage3)
|
4
features.in/systemd/stage2/image-scripts.d/50-fstab
Executable file
4
features.in/systemd/stage2/image-scripts.d/50-fstab
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh -efu
|
||||
# aufs2 root is rw in reality
|
||||
|
||||
echo "/dev/root / auto defaults 0 0" >>/etc/fstab
|
4
features.in/virtualbox/config.mk
Normal file
4
features.in/virtualbox/config.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
use/virtualbox/guest:
|
||||
@$(call add_feature)
|
||||
@$(call add,THE_KMODULES,virtualbox-addition)
|
||||
@$(call add,THE_PACKAGES,virtualbox-guest-additions)
|
@@ -1,10 +1,14 @@
|
||||
use/x11/xorg:
|
||||
@$(call add,BASE_LISTS,xorg)
|
||||
@$(call add,THE_LISTS,xorg)
|
||||
@$(call add,THE_KMODULES,drm)
|
||||
|
||||
use/x11/wacom: use/x11/xorg
|
||||
@$(call add,THE_PACKAGES,xorg-drv-wacom)
|
||||
|
||||
### strictly speaking, runlevel5 should require a *dm, not vice versa
|
||||
use/x11/runlevel5: use/x11/xorg
|
||||
@$(call add,BASE_PACKAGES,installer-feature-runlevel5-stage3)
|
||||
@$(call add,THE_PACKAGES,installer-feature-runlevel5-stage3)
|
||||
|
||||
### xdm: see also #23108
|
||||
use/x11/xdm: use/x11/runlevel5
|
||||
@$(call add,BASE_PACKAGES,xdm installer-feature-no-xconsole)
|
||||
@$(call add,THE_PACKAGES,xdm installer-feature-no-xconsole)
|
||||
|
@@ -4,10 +4,23 @@ GLOBAL_BUILDDIR ?= $(shell pwd)
|
||||
CURRENT_LINK := mkimage-profiles
|
||||
OUT_LINK := out
|
||||
|
||||
# there were mkimage fixes induced by mkimage-profile development
|
||||
MKI_VER_MINIMAL = 0.1.7
|
||||
MKI_VER_OPTIMAL = 0.2.0
|
||||
|
||||
include distcfg.mk
|
||||
include functions.mk
|
||||
include $(MKIMAGE_PREFIX)/config.mk
|
||||
|
||||
ifeq (-,$(shell rpmvercmp $(MKI_VERSION) $(MKI_VER_MINIMAL) | tr -d [0-9]))
|
||||
$(info error: mkimage-$(MKI_VERSION) is too old, please upgrade)
|
||||
$(error mkimage is too old, $(MKI_VER_MINIMAL) is minimal supported version)
|
||||
endif
|
||||
ifeq (-,$(shell rpmvercmp $(MKI_VERSION) $(MKI_VER_OPTIMAL) | tr -d [0-9]))
|
||||
$(info warning: mkimage-$(MKI_VERSION) is suboptimal, consider upgrading)
|
||||
$(warning consider upgrading mkimage to $(MKI_VER_OPTIMAL) or better)
|
||||
endif
|
||||
|
||||
# reconstruct instead of passing yet another variable
|
||||
IMAGE_LINK := $(IMAGE_NAME).$(IMAGE_TYPE)
|
||||
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE)
|
||||
@@ -27,12 +40,14 @@ include $(MKIMAGE_PREFIX)/targets.mk
|
||||
|
||||
# specified only for the final image (target-specific)
|
||||
pack-image: OUTDIR = $(IMAGEDIR)
|
||||
pack-image: $(IMAGEDIR)
|
||||
pack-image: imagedir
|
||||
|
||||
$(IMAGEDIR):
|
||||
.PHONY: imagedir postprocess debug
|
||||
|
||||
imagedir:
|
||||
@mkdir -p "$(IMAGEDIR)"
|
||||
|
||||
postprocess:
|
||||
postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS)))
|
||||
@OUTPATH="$(IMAGEDIR)/$(IMAGE_OUTFILE)"; \
|
||||
echo "** image: $$OUTPATH" >&2 && \
|
||||
ln -sf "$(IMAGE_OUTFILE)" "$(IMAGEDIR)/$(IMAGE_LINK)" && \
|
||||
|
@@ -7,11 +7,12 @@
|
||||
Соответственно для сборки требуется или features.in/build-distro,
|
||||
или use/build-ve.
|
||||
|
||||
Пакетная база рабочего чрута минимальна; apt-utils включены
|
||||
ради genbasedir, который после завершения первоначального
|
||||
наполнения субпрофилей может переехать в ../sub.in/main/ (TODO).
|
||||
Пакетная база рабочего чрута минимальна (может чуть расширяться
|
||||
фичами -- см. ../features.in/repo/lib/build-genbasedir.mk
|
||||
в качестве примера).
|
||||
|
||||
Если требуется какая-либо иная обработка чрута, следует
|
||||
предпочитать scripts.d/.
|
||||
предпочитать scripts.d/ -- для универсальной обработки
|
||||
скрипт можно добавить здесь, для специфичной -- в фичу.
|
||||
|
||||
Результат -- готовый образ в $(IMAGEDIR)/.
|
||||
|
28
lib/build.mk
28
lib/build.mk
@@ -1,4 +1,6 @@
|
||||
# step 4 is kicked off here but actually done by image.in/Makefile
|
||||
ANSI_OK ?= 1;32
|
||||
ANSI_FAIL ?= 1;31
|
||||
|
||||
ifndef MKIMAGE_PROFILES
|
||||
$(error this makefile is designed to be included in toplevel one)
|
||||
@@ -25,9 +27,14 @@ IMAGEDIR ?= $(shell [ -d "$$HOME/out" -a -w "$$HOME/out" ] \
|
||||
&& echo "$$HOME/out" \
|
||||
|| echo "$(BUILDDIR)/out" )
|
||||
|
||||
# poehali
|
||||
build: profile/populate
|
||||
@echo -n "$(TIME) starting image build"
|
||||
@if [ -n "$(DEBUG)" ]; then \
|
||||
@if [ -n "$(CHECK)" ]; then \
|
||||
echo "$(TIME) skipping actual image build (CHECK is set)"; \
|
||||
exit; \
|
||||
fi; \
|
||||
echo -n "$(TIME) starting image build"; \
|
||||
if [ -n "$(DEBUG)" ]; then \
|
||||
echo ": tail -f $(BUILDLOG)" $(SHORTEN); \
|
||||
else \
|
||||
if [ -n "$(ALL)" ]; then \
|
||||
@@ -35,18 +42,21 @@ build: profile/populate
|
||||
else \
|
||||
echo " (coffee time)"; \
|
||||
fi; \
|
||||
fi
|
||||
@if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
||||
fi; \
|
||||
if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
||||
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
||||
tail -200 "$(BUILDLOG)" \
|
||||
| grep --color=always '^\*\* image: .*' $(SHORTEN) ||:; \
|
||||
tail -200 "$(BUILDLOG)" $(SHORTEN) \
|
||||
| GREP_COLOR="$(ANSI_OK)" \
|
||||
grep --color=auto '^\*\* image: .*' ||:; \
|
||||
else \
|
||||
echo "$(TIME) failed, see log: $(BUILDLOG)" $(SHORTEN); \
|
||||
if [ -z "$(DEBUG)" ]; then \
|
||||
echo "$(TIME) (you might want to re-run with DEBUG=1)"; \
|
||||
fi; \
|
||||
tail -200 "$(BUILDLOG)" | egrep "^(E:|[Ee]rror|[Ww]arning).*"; \
|
||||
tail -200 "$(BUILDLOG)" \
|
||||
| GREP_COLOR="$(ANSI_FAIL)" \
|
||||
egrep --color=auto "^(E:|[Ee]rror|[Ww]arning).*"; \
|
||||
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
||||
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
||||
fi
|
||||
@if [ -n "$(BELL)" ]; then echo -ne '\a' >&2; fi
|
||||
fi; \
|
||||
if [ -n "$(BELL)" ]; then echo -ne '\a' >&2; fi
|
||||
|
@@ -11,7 +11,7 @@ sub/%:
|
||||
@$(call add,SUBPROFILES,$(@:sub/%=%))
|
||||
|
||||
# install media bootloader
|
||||
boot/%: profile/bare use/syslinux
|
||||
boot/%: use/syslinux
|
||||
@$(call set,BOOTLOADER,$*)
|
||||
|
||||
# fundamental targets
|
||||
@@ -20,17 +20,17 @@ distro/.init: profile/bare
|
||||
|
||||
# NB: the last flavour in KFLAVOURS gets to be the default one;
|
||||
# the kernel packages regexp evaluation has to take place at build stage
|
||||
distro/.base: distro/.init use/syslinux/localboot.cfg
|
||||
distro/.base: distro/.init
|
||||
@$(call set,KFLAVOURS,std-def)
|
||||
|
||||
# bootloader test target
|
||||
distro/syslinux: distro/.init \
|
||||
use/syslinux use/syslinux/localboot.cfg \
|
||||
use/syslinux/ui-vesamenu use/hdt use/memtest
|
||||
use/syslinux/localboot.cfg use/syslinux/ui-vesamenu \
|
||||
use/hdt use/memtest
|
||||
|
||||
# something marginally useful (as a network-only installer)
|
||||
# NB: doesn't carry stage3 thus cannot use/bootloader
|
||||
distro/installer: distro/.base use/install2
|
||||
distro/installer: distro/.base use/install2 use/syslinux/localboot.cfg
|
||||
@$(call set,INSTALLER,altlinux-generic)
|
||||
@$(call set,STAGE1_KMODULES_REGEXP,drm.*) # for KMS
|
||||
|
||||
|
@@ -42,6 +42,9 @@ define log_body
|
||||
grep -q '^# $@$$' "$(CONFIG)" || printf '# %s\n' '$@' >> "$(CONFIG)"; }
|
||||
endef
|
||||
|
||||
# in a use/feature/particularly target, we need a "feature" bit
|
||||
add_feature = $(call add,FEATURES,$(word 2,$(subst /, ,$@)))
|
||||
|
||||
# convert tag list into a list of relative package list paths
|
||||
# NB: tags can do boolean expressions: (tag1 && !(tag2 || tag3))
|
||||
tags = $(and $(strip $(1)),$(addprefix tagged/,$(shell echo "$(1)" | bin/tags2lists pkg.in/lists/tagged)))
|
||||
|
@@ -10,9 +10,10 @@ SUFFIX := pkg/groups
|
||||
TARGET := $(BUILDDIR)/$(SUFFIX)
|
||||
|
||||
all: $(GLOBAL_DEBUG)
|
||||
@if [ -n "$(MAIN_GROUPS)" ]; then \
|
||||
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
|
||||
mkdir -p $(TARGET) && \
|
||||
cp -at $(TARGET) -- $(addsuffix .directory,$(MAIN_GROUPS)); \
|
||||
cp -at $(TARGET) -- \
|
||||
$(addsuffix .directory,$(THE_GROUPS) $(MAIN_GROUPS)); \
|
||||
if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
git add . && \
|
||||
@@ -23,4 +24,5 @@ all: $(GLOBAL_DEBUG)
|
||||
fi
|
||||
|
||||
debug:
|
||||
@echo "** THE_GROUPS: $(THE_GROUPS)"
|
||||
@echo "** MAIN_GROUPS: $(MAIN_GROUPS)"
|
||||
|
@@ -9,13 +9,23 @@ include $(BUILDDIR)/distcfg.mk
|
||||
SUFFIX := pkg/lists
|
||||
TARGET := $(BUILDDIR)/$(SUFFIX)
|
||||
|
||||
all: $(TARGET) $(GLOBAL_DEBUG)
|
||||
# Metadata/ needed only for installers (and not for e.g. syslinux.iso)
|
||||
# FIXME: installable live needs it too, don't move to install2 feature
|
||||
### see also .../features.in/build-distro/lib/build-distro.mk
|
||||
ifneq (,$(findstring install2,$(FEATURES)))
|
||||
DOTBASE := dot-base
|
||||
endif
|
||||
|
||||
all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE)
|
||||
@# env | sort -u | grep _LISTS | xargs cp
|
||||
@$(foreach V, \
|
||||
$(filter %_LISTS,$(sort $(.VARIABLES))), \
|
||||
$(if $(filter environment% file,$(origin $V)),\
|
||||
$(shell cp --parents -at $(TARGET) \
|
||||
-- $(value $V))))
|
||||
|
||||
### FIXME: move to iterator/static pattern rule
|
||||
dot-base:
|
||||
@# construct .base packagelist for alterator-pkg
|
||||
@{ \
|
||||
echo "## generated by pkg.in/lists/Makefile"; \
|
||||
@@ -28,15 +38,21 @@ all: $(TARGET) $(GLOBAL_DEBUG)
|
||||
if [ -n "$(COMMON_PACKAGES)" ]; then \
|
||||
echo -e "\n## COMMON_PACKAGES\n$(COMMON_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(THE_PACKAGES)" ]; then \
|
||||
echo -e "\n## THE_PACKAGES\n$(THE_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(BASE_PACKAGES)" ]; then \
|
||||
echo -e "\n## BASE_PACKAGES\n$(BASE_PACKAGES)"; \
|
||||
fi; \
|
||||
if [ -n "$(THE_LISTS)" ]; then \
|
||||
echo -e "\n## THE_LISTS"; cat $(THE_LISTS); \
|
||||
fi; \
|
||||
if [ -n "$(BASE_LISTS)" ]; then \
|
||||
echo -e "\n## BASE_LISTS"; cat $(BASE_LISTS); \
|
||||
fi; \
|
||||
} | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' >$(TARGET)/.base
|
||||
@if [ -n "$(MAIN_GROUPS)" ]; then \
|
||||
cp -at $(TARGET) -- $(MAIN_GROUPS); \
|
||||
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
|
||||
cp -at $(TARGET) -- $(THE_GROUPS) $(MAIN_GROUPS); \
|
||||
fi
|
||||
@if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
|
@@ -5,5 +5,6 @@ sfdisk
|
||||
mdadm
|
||||
|
||||
openssh-server
|
||||
openssh-clients
|
||||
openssh-blacklist
|
||||
acpid
|
||||
|
@@ -2,7 +2,7 @@
|
||||
реализация (tags2lists) требует, чтобы каждый из тегов был
|
||||
отдельным словом, состоящим из символов из набора a-zA-Z0-9_
|
||||
(внимание: не используйте в слове "-"); рекомендуется
|
||||
разделять слова "+" или "," (стандарт ещё не устоялся).
|
||||
разделять слова "+".
|
||||
|
||||
Предположительное применение: дополнение функциональности,
|
||||
заданной статически (наследственно или явно), факультативным
|
||||
|
6
pkg.in/lists/tagged/archive+base
Normal file
6
pkg.in/lists/tagged/archive+base
Normal file
@@ -0,0 +1,6 @@
|
||||
bzip2
|
||||
cpio
|
||||
gzip
|
||||
tar
|
||||
xz
|
||||
zip
|
30
pkg.in/lists/tagged/archive+extra
Normal file
30
pkg.in/lists/tagged/archive+extra
Normal file
@@ -0,0 +1,30 @@
|
||||
#gzrt
|
||||
lzip
|
||||
lzop
|
||||
p7zip
|
||||
pax
|
||||
rzip
|
||||
star
|
||||
unrar
|
||||
unzip
|
||||
xar
|
||||
|
||||
# parallel (de)compression
|
||||
lbzip2
|
||||
pbzip2
|
||||
pigz
|
||||
plzip
|
||||
pxz
|
||||
|
||||
# legacy
|
||||
arj
|
||||
cabextract
|
||||
ha
|
||||
lha
|
||||
mscompress
|
||||
nomarch
|
||||
ncompress
|
||||
unace
|
||||
unarj
|
||||
unzoo
|
||||
uudeview
|
5
pkg.in/lists/tagged/base+comm
Normal file
5
pkg.in/lists/tagged/base+comm
Normal file
@@ -0,0 +1,5 @@
|
||||
ckermit
|
||||
lrzsz
|
||||
minicom
|
||||
picocom
|
||||
sredird
|
@@ -1,6 +0,0 @@
|
||||
# compression
|
||||
cpio
|
||||
p7zip
|
||||
tar
|
||||
unzip
|
||||
zip
|
@@ -18,109 +18,3 @@ man-pages
|
||||
sysfsutils
|
||||
sysklogd
|
||||
util-linux
|
||||
|
||||
# CPU utils
|
||||
cpuburn
|
||||
x86info
|
||||
|
||||
# Disk utils
|
||||
bonnie++
|
||||
cfdisk
|
||||
ddrescue
|
||||
disktype
|
||||
evms
|
||||
evms-ncurses
|
||||
gpart
|
||||
hdparm
|
||||
lvm2
|
||||
mdadm
|
||||
ms-sys
|
||||
parted
|
||||
sdparm
|
||||
sfdisk
|
||||
smartmontools
|
||||
testdisk
|
||||
mtools
|
||||
partimage
|
||||
|
||||
# Applications
|
||||
binutils
|
||||
dmidecode
|
||||
hexedit
|
||||
pciutils
|
||||
procps
|
||||
quota
|
||||
shadow-suite
|
||||
sharutils
|
||||
time
|
||||
openssl
|
||||
|
||||
# Applications/Archiving
|
||||
arj
|
||||
bzip2
|
||||
gzip
|
||||
unrar
|
||||
unzip
|
||||
zip
|
||||
|
||||
# Applications/Editors
|
||||
vim-console
|
||||
|
||||
# Applications/File
|
||||
findutils
|
||||
file
|
||||
less
|
||||
mtools
|
||||
|
||||
# Filesystem utils
|
||||
dosfstools
|
||||
e2fsprogs
|
||||
jfsprogs
|
||||
ntfs-3g
|
||||
recover
|
||||
recoverdm
|
||||
reiserfsprogs
|
||||
xfsprogs
|
||||
btrfs-progs
|
||||
ext3grep
|
||||
|
||||
# Applications/Networking
|
||||
arpwatch
|
||||
elinks
|
||||
hostinfo
|
||||
iftop
|
||||
iproute2
|
||||
iptables
|
||||
iputils
|
||||
lftp
|
||||
mailx
|
||||
netcat
|
||||
netlist
|
||||
nfs-utils
|
||||
ngrep
|
||||
nmap
|
||||
openssh-clients
|
||||
openssh-server
|
||||
p0f
|
||||
postfix
|
||||
rsync
|
||||
scanssh
|
||||
#stunnel
|
||||
tcpdump
|
||||
tcptraceroute
|
||||
telnet
|
||||
traceroute
|
||||
wget
|
||||
whois
|
||||
|
||||
# Applications/Shells
|
||||
zsh
|
||||
ash
|
||||
bash
|
||||
bc
|
||||
gpm
|
||||
mc
|
||||
|
||||
# Development/Debuggers
|
||||
strace
|
||||
sysstat
|
||||
|
@@ -1 +1,2 @@
|
||||
icewm
|
||||
xinit
|
10
pkg.in/lists/tagged/desktop+razorqt
Normal file
10
pkg.in/lists/tagged/desktop+razorqt
Normal file
@@ -0,0 +1,10 @@
|
||||
razorqt
|
||||
arora
|
||||
qtfm
|
||||
qterminal
|
||||
juffed
|
||||
juffed-plugins
|
||||
screengrab
|
||||
xscreensaver
|
||||
icon-theme-oxygen
|
||||
x-cursor-theme-jimmac
|
18
pkg.in/lists/tagged/desktop+razorqt+extra
Normal file
18
pkg.in/lists/tagged/desktop+razorqt+extra
Normal file
@@ -0,0 +1,18 @@
|
||||
# carefully chosen
|
||||
x-cursor-theme-BlueGlass3D
|
||||
x-cursor-theme-CP38
|
||||
x-cursor-theme-Obsidian
|
||||
x-cursor-theme-oxy-white
|
||||
|
||||
# a bit lacking
|
||||
icon-theme-simple
|
||||
|
||||
# nice and useful qt4 apps
|
||||
bsc
|
||||
clementine
|
||||
fatrat
|
||||
focuswriter
|
||||
qt4-settings
|
||||
qtparted
|
||||
tubularix
|
||||
smplayer
|
3
pkg.in/lists/tagged/dev+security
Normal file
3
pkg.in/lists/tagged/dev+security
Normal file
@@ -0,0 +1,3 @@
|
||||
flawfinder
|
||||
rats
|
||||
valgrind
|
2
pkg.in/lists/tagged/network+bench
Normal file
2
pkg.in/lists/tagged/network+bench
Normal file
@@ -0,0 +1,2 @@
|
||||
httperf
|
||||
nepim
|
4
pkg.in/lists/tagged/network+security
Normal file
4
pkg.in/lists/tagged/network+security
Normal file
@@ -0,0 +1,4 @@
|
||||
aircrack-ng
|
||||
#kismet*
|
||||
macchanger
|
||||
tcptrace
|
101
pkg.in/lists/tagged/rescue+extra
Normal file
101
pkg.in/lists/tagged/rescue+extra
Normal file
@@ -0,0 +1,101 @@
|
||||
|
||||
# CPU utils
|
||||
cpuburn
|
||||
x86info
|
||||
|
||||
# Disk utils
|
||||
bonnie++
|
||||
cfdisk
|
||||
ddrescue
|
||||
disktype
|
||||
evms
|
||||
evms-ncurses
|
||||
fdisk
|
||||
gpart
|
||||
iotop
|
||||
iperf
|
||||
hdparm
|
||||
lvm2
|
||||
mdadm
|
||||
ms-sys
|
||||
parted
|
||||
sdparm
|
||||
sfdisk
|
||||
smartmontools
|
||||
testdisk
|
||||
mtools
|
||||
partimage
|
||||
|
||||
# Applications
|
||||
binutils
|
||||
dmidecode
|
||||
gnupg
|
||||
hexedit
|
||||
pciutils
|
||||
procps
|
||||
quota
|
||||
shadow-suite
|
||||
sharutils
|
||||
time
|
||||
openssl
|
||||
|
||||
# Applications/Editors
|
||||
vim-console
|
||||
|
||||
# Applications/File
|
||||
findutils
|
||||
file
|
||||
less
|
||||
|
||||
# Filesystem utils
|
||||
dosfstools
|
||||
e2fsprogs
|
||||
jfsprogs
|
||||
ntfs-3g
|
||||
recover
|
||||
recoverdm
|
||||
reiserfsprogs
|
||||
xfsprogs
|
||||
btrfs-progs
|
||||
ext3grep
|
||||
|
||||
# Applications/Networking
|
||||
arpwatch
|
||||
elinks
|
||||
hostinfo
|
||||
iftop
|
||||
iproute2
|
||||
iptables
|
||||
iputils
|
||||
lftp
|
||||
mailx
|
||||
netcat
|
||||
netlist
|
||||
nfs-utils
|
||||
ngrep
|
||||
nmap
|
||||
openssh-clients
|
||||
openssh-server
|
||||
p0f
|
||||
postfix
|
||||
rsync
|
||||
scanssh
|
||||
#stunnel
|
||||
tcpdump
|
||||
tcptraceroute
|
||||
telnet
|
||||
traceroute
|
||||
wget
|
||||
whois
|
||||
|
||||
# Applications/Shells
|
||||
zsh
|
||||
ash
|
||||
bash
|
||||
bc
|
||||
gpm
|
||||
mc
|
||||
|
||||
# Development/Debuggers
|
||||
strace
|
||||
sysstat
|
7
pkg.in/lists/tagged/rescue+fs
Normal file
7
pkg.in/lists/tagged/rescue+fs
Normal file
@@ -0,0 +1,7 @@
|
||||
cpipe
|
||||
dar
|
||||
ddrescue
|
||||
foremost
|
||||
sleuthkit
|
||||
xfsdump
|
||||
#zfs-fuse
|
@@ -1,5 +1,3 @@
|
||||
fdisk
|
||||
parted
|
||||
mdadm
|
||||
rsync
|
||||
etcnet-full
|
||||
|
3
pkg.in/lists/tagged/rescue+x11
Normal file
3
pkg.in/lists/tagged/rescue+x11
Normal file
@@ -0,0 +1,3 @@
|
||||
fsarchiver
|
||||
qt4-fsarchiver
|
||||
gparted
|
9
pkg.in/lists/tagged/security+extra
Normal file
9
pkg.in/lists/tagged/security+extra
Normal file
@@ -0,0 +1,9 @@
|
||||
apg
|
||||
#chkrootkit
|
||||
dcfldd
|
||||
john
|
||||
#logcheck
|
||||
md5deep
|
||||
osec
|
||||
osec-cronjob
|
||||
osec-mailreport
|
11
pkg.in/lists/tagged/server+openvpn
Normal file
11
pkg.in/lists/tagged/server+openvpn
Normal file
@@ -0,0 +1,11 @@
|
||||
apt
|
||||
basesystem
|
||||
sysklogd
|
||||
etcnet
|
||||
glibc-nss
|
||||
openvpn
|
||||
netlist
|
||||
#alterator-fbi
|
||||
openssh-server
|
||||
passwd
|
||||
less
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user