forked from altcloud/mkimage-profiles
Compare commits
33 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
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.1
|
||||
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,18 @@ cp -a * %buildroot%mpdir
|
||||
%doc README QUICKSTART
|
||||
|
||||
%changelog
|
||||
* 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/851085a67914bd2f9470cf81f552b06a9b98d83d
Normal file
6
.gear/tags/851085a67914bd2f9470cf81f552b06a9b98d83d
Normal file
@@ -0,0 +1,6 @@
|
||||
object 48272c7119328f0c68142087edba1494c6442cbc
|
||||
type commit
|
||||
tag v0.5.0
|
||||
tagger Michael Shigorin <mike@altlinux.org> 1321878408 +0200
|
||||
|
||||
add_feature
|
@@ -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
|
||||
851085a67914bd2f9470cf81f552b06a9b98d83d v0.5.0
|
||||
|
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
|
@@ -15,7 +15,8 @@
|
||||
во все стадии, в том числе в образ чувствительной к объёму install2
|
||||
(в stage1 -- только в инструментальный чрут); применяйте для того,
|
||||
что обязано быть и в инсталяторе, и в готовой системе;
|
||||
* для "обычного общего" (main, live, rescue) есть COMMON_PACKAGES.
|
||||
* для "обычного общего" (main, live, rescue) есть COMMON_PACKAGES
|
||||
(NB: попадают в базовую систему).
|
||||
|
||||
По подстановкам:
|
||||
* $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk;
|
||||
|
@@ -1,13 +1,15 @@
|
||||
# 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/bootloader/lilo use/power/acpi/button \
|
||||
use/cleanup/alterator
|
||||
@$(call add,BASE_LISTS,$(call tags,icewm desktop))
|
||||
|
||||
distro/desktop-systemd: distro/icewm use/systemd
|
||||
|
||||
endif
|
||||
|
@@ -1,21 +1,31 @@
|
||||
# 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-install: distro/.base use/live/install use/syslinux/localboot.cfg
|
||||
distro/live-icewm: distro/live use/live/icewm
|
||||
|
||||
distro/live-builder: distro/.base sub/main \
|
||||
use/live/base use/dev/mkimage
|
||||
distro/live-rescue: distro/live-icewm
|
||||
@$(call add,LIVE_LISTS,$(call tags,rescue && (live || x11)))
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || extra) && (archive || rescue || network)))
|
||||
|
||||
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))
|
||||
|
||||
endif
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# 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)
|
||||
|
||||
@@ -12,19 +12,25 @@ distro/server-mini: distro/server-base use/cleanup/x11-alterator
|
||||
$(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,bcmwl ndiswrapper rtl8168 rtl8192)
|
||||
@$(call add,KMODULES,ipset ipt-netflow opendpi pf_ring xtables-addons)
|
||||
@$(call add,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
|
||||
|
@@ -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,9 +24,6 @@ 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:
|
||||
@echo "** starting feature configuration"
|
||||
@@ -40,33 +37,50 @@ all:
|
||||
fi; \
|
||||
pushd "$$feat" >/dev/null && \
|
||||
for sub in / $(SUBPROFILES); do \
|
||||
src="$${sub%/*}"; \
|
||||
dst="$${sub#*/}"; \
|
||||
if [ -d "$$src" ]; then \
|
||||
rsync -qab "$$src/" "$(BUILDDIR)/$$dst/"; \
|
||||
dirtags="&& $$src"; \
|
||||
fi; \
|
||||
if [ -d "$$dst" ]; then \
|
||||
rsync -qab "$$dst/" "$(BUILDDIR)/$$dst/"; \
|
||||
if [ "$$dst" != "$$src" ]; then \
|
||||
dirtags=; \
|
||||
if [ "$$sub" = / ]; then \
|
||||
parts=lib; \
|
||||
srcdirs="."; \
|
||||
dst="."; \
|
||||
else \
|
||||
parts=; \
|
||||
src="$${sub%/*}"; \
|
||||
dst="$${sub#*/}"; \
|
||||
srcdirs=; \
|
||||
if [ -d "$$src" ]; then \
|
||||
srcdirs="$$src"; \
|
||||
dirtags="&& $$src"; \
|
||||
fi; \
|
||||
if [ -d "$$dst" -a "$$dst" != "$$src" ]; then \
|
||||
srcdirs="$$srcdirs $$dst"; \
|
||||
dirtags="&& ($$src || $$dst)"; \
|
||||
fi; \
|
||||
for srcdir in $$srcdirs; do \
|
||||
rsync -qab --exclude tagged \
|
||||
"$$srcdir/" "$(BUILDDIR)/$$dst/"; \
|
||||
done; \
|
||||
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/"; \
|
||||
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; \
|
||||
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; \
|
||||
[ -d "tagged/$$part" ] || continue; \
|
||||
[ "$$srcdir" != "." ] || continue; \
|
||||
pushd "tagged/$$part" >/dev/null; \
|
||||
echo "$$feat $$dirtags" \
|
||||
| tags2lists . \
|
||||
| xargs -r cp -vpLt "$$destdir" --; \
|
||||
popd >/dev/null; \
|
||||
done; \
|
||||
popd >&/dev/null; \
|
||||
done; \
|
||||
if type -t git >&/dev/null && \
|
||||
pushd "$(BUILDDIR)/$$dst/" >/dev/null; then \
|
||||
|
@@ -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,2 @@
|
||||
use/build-distro: boot/isolinux
|
||||
@$(call add,FEATURES,build-distro)
|
||||
@$(call add_feature)
|
||||
|
@@ -4,8 +4,6 @@
|
||||
# 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)
|
||||
@@ -17,7 +15,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
|
||||
|
@@ -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,2 @@
|
||||
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,5 +1,5 @@
|
||||
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)
|
||||
|
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,isomd5sum)
|
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-isomd5sum:
|
||||
@implantisomd5 "$(IMAGEDIR)/$(IMAGE_OUTFILE)"
|
@@ -1,9 +1,18 @@
|
||||
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,\
|
||||
# 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/base
|
||||
@$(call add,LIVE_PACKAGES,autologin xinit)
|
||||
|
||||
use/live/icewm: use/live/autologin
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || desktop) && (live || network || icewm)))
|
||||
|
||||
# this is a manual installation script (text-based)
|
||||
use/live/install: use/live/base
|
||||
@$(call add,LIVE_PACKAGES,live-install)
|
||||
|
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,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,8 +1,7 @@
|
||||
DISTRO_EXTS := .iso
|
||||
VE_EXTS := .tar .tgz
|
||||
|
||||
use/pack:
|
||||
@$(call add,FEATURES,pack)
|
||||
@$(call add_feature)
|
||||
|
||||
use/pack/iso: use/pack boot/isolinux
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
@@ -11,8 +10,25 @@ 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
|
||||
|
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 linux
|
||||
menu label Install server-ovz via internet
|
||||
kernel alt0/vmlinuz
|
||||
append initrd=alt0/full.cz ramdisk_size=131072 vga=0x314 quiet=1 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
|
||||
### ramdisk_size=@altinst_size@
|
||||
### $(IMAGE_NAME)
|
@@ -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,KMODULES,virtualbox-addition)
|
||||
@$(call add,BASE_PACKAGES,virtualbox-guest-additions)
|
@@ -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-,$(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)/.
|
||||
|
10
lib/build.mk
10
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,6 +27,7 @@ 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 \
|
||||
@@ -39,13 +42,16 @@ build: profile/populate
|
||||
@if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
||||
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
||||
tail -200 "$(BUILDLOG)" \
|
||||
| grep --color=always '^\*\* image: .*' $(SHORTEN) ||:; \
|
||||
| GREP_COLOR="$(ANSI_OK)" \
|
||||
grep --color=always '^\*\* image: .*' $(SHORTEN) ||:; \
|
||||
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=always "^(E:|[Ee]rror|[Ww]arning).*"; \
|
||||
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
||||
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
||||
fi
|
||||
|
@@ -20,7 +20,7 @@ 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
|
||||
@@ -30,7 +30,7 @@ distro/syslinux: distro/.init \
|
||||
|
||||
# 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)))
|
||||
|
@@ -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
|
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
|
3
pkg.in/lists/tagged/network+bench
Normal file
3
pkg.in/lists/tagged/network+bench
Normal file
@@ -0,0 +1,3 @@
|
||||
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
|
99
pkg.in/lists/tagged/rescue+extra
Normal file
99
pkg.in/lists/tagged/rescue+extra
Normal file
@@ -0,0 +1,99 @@
|
||||
|
||||
# CPU utils
|
||||
cpuburn
|
||||
x86info
|
||||
|
||||
# Disk utils
|
||||
bonnie++
|
||||
cfdisk
|
||||
ddrescue
|
||||
disktype
|
||||
evms
|
||||
evms-ncurses
|
||||
fdisk
|
||||
gpart
|
||||
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
|
8
pkg.in/lists/tagged/rescue+fs
Normal file
8
pkg.in/lists/tagged/rescue+fs
Normal file
@@ -0,0 +1,8 @@
|
||||
cpipe
|
||||
dar
|
||||
ddrescue
|
||||
foremost
|
||||
ntfsprogs
|
||||
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
|
@@ -1,11 +0,0 @@
|
||||
apt
|
||||
basesystem
|
||||
sysklogd
|
||||
etcnet
|
||||
glibc-nss
|
||||
openvpn
|
||||
netlist
|
||||
#alterator-fbi
|
||||
openssh-server
|
||||
passwd
|
||||
less
|
@@ -18,6 +18,7 @@ xorg-drv-vesa
|
||||
xorg-drv-video
|
||||
xorg-drv-void
|
||||
xorg-drv-wacom
|
||||
xorg-drv-wizardpen
|
||||
xorg-drv-qxl
|
||||
|
||||
# for those who need these
|
||||
|
@@ -1,7 +1,7 @@
|
||||
Этот каталог содержит субпрофиль main, собирающий пакетную базу
|
||||
для локальной инсталяции дистрибутива из полученного образа,
|
||||
включая необязательные пакеты; в live-builder применяется как
|
||||
локальный репозиторий для сборки.
|
||||
включая необязательные пакеты; в distro/live-builder применяется
|
||||
как локальный репозиторий для сборки.
|
||||
|
||||
Подбирает:
|
||||
- SYSTEM_PACKAGES, COMMON_PACKAGES, BASE_PACKAGES, BASE_LISTS:
|
||||
@@ -11,4 +11,7 @@
|
||||
В image-scripts.d/* смысла нет, только scripts.d/* --
|
||||
рабочий чрут не содержит исполняемых файлов.
|
||||
|
||||
Не следует использовать этот субпрофиль напрямую, для добавления
|
||||
пакетного репозитория в образ предназначена фича repo/main.
|
||||
|
||||
Результат -- каталог ALTLinux/RPMS.main для копирования в образ.
|
||||
|
@@ -18,3 +18,7 @@ STAGE1_KMODULES_REGEXP -- будет подмножество модулей
|
||||
(в силу зависимости stage2 от stage1).
|
||||
|
||||
Результат -- каталог syslinux/ для копирования в образ.
|
||||
|
||||
TODO (3.2+): "The network drivers directory (drivers/net)
|
||||
has been massively rearranged with most drivers moved into
|
||||
media-specific or protocol-specific subdirectories."
|
||||
|
@@ -255,3 +255,5 @@ scsi_mod.ko
|
||||
sd_mod.ko
|
||||
serio_raw.ko
|
||||
sr_mod.ko
|
||||
sdhci.ko
|
||||
sdhci_pci.ko
|
||||
|
Reference in New Issue
Block a user