Compare commits

..

8 Commits

Author SHA1 Message Date
Michael Shigorin
0950c70adc 0.6.2.2-alt0.M60T.1
- backported pkg/lists fix (and the commit before it)
2015-02-02 23:51:33 +03:00
Michael Shigorin
a0d39e2ed1 pkg/lists: uncrustify Makefile
The problem with the changed piece of code is that it would
- both call cp(1) multiple times if multiple *_LIST variables
  were non-empty (which is usually the case), and
- try to evaluate stdout of the called commands as a shell
  script (which would be empty unless someone passed e.g. -v
  to that cp(1) but it's crazy to rely on things like this).

So the functions should prepare arguments for a single copy
command that is predictable and could be made verbose.

Ouch.
2015-02-02 23:50:41 +03:00
Michael Shigorin
33d35de8fb pkg/lists: tweak Makefile to expand variables
The issue at hand is the hack to be employed in the init feature:

	@$(call add,THE_LISTS,$$(INIT_TYPE))

where INIT_TYPE is set separately; $(value $V) would leave that kind
of substitution unmolested while we would actually need it done.
2015-02-02 23:50:26 +03:00
Michael Shigorin
51e0fb762e gear-store-tags 2014-03-25 00:00:25 +04:00
Michael Shigorin
71c4404c4e 0.6.2.1-alt0.M60T.1
- altlinux-t6-server-ovz
2014-03-24 16:35:23 +04:00
Michael Shigorin
ed2d904ef0 install2: added branding-*-notes
Fix "License file not found" at the second step.
2014-03-24 15:58:25 +04:00
Michael Shigorin
b356d98baa t6.mk: barebones name proxy
Just like p7.mk in 1.1.x/1.0.x, this file is a kludge
serving to "rename" a particular image.
2014-03-24 15:41:22 +04:00
Michael Shigorin
33e6100d02 server.mk: more complete installer to server-ovz
It's not about "desktop vs server" but about installer-steps
included; hiddenman@ badly needs network and users setup,
those have been dropped from installer-distro-altlinux-generic
to trim testing cycles and -desktop has those.
2014-03-24 15:41:22 +04:00
108 changed files with 221 additions and 1107 deletions

View File

@@ -1,6 +1,6 @@
Name: mkimage-profiles
Version: 0.6.7
Release: alt1
Version: 0.6.2.2
Release: alt0.M60T.1
Summary: ALT Linux based distribution metaprofile
License: GPLv2+
@@ -61,21 +61,11 @@ cp -a * %buildroot%mpdir
%doc README QUICKSTART
%changelog
* Mon May 21 2012 Michael Shigorin <mike@altlinux.org> 0.6.7-alt1
- docs updates
* Mon Feb 02 2015 Michael Shigorin <mike@altlinux.org> 0.6.2.2-alt0.M60T.1
- backported pkg/lists fix (and the commit before it)
* Mon May 14 2012 Michael Shigorin <mike@altlinux.org> 0.6.6-alt1
- build helpers refactored
- initial frontend support
* Mon May 07 2012 Michael Shigorin <mike@altlinux.org> 0.6.5-alt1
- branding feature
* Mon Apr 23 2012 Michael Shigorin <mike@altlinux.org> 0.6.4-alt1
- simply better (tm)
* Mon Apr 09 2012 Michael Shigorin <mike@altlinux.org> 0.6.3-alt1
- massive squashfs tuning
* Mon Mar 24 2014 Michael Shigorin <mike@altlinux.org> 0.6.2.1-alt0.M60T.1
- altlinux-t6-server-ovz
* Mon Apr 02 2012 Michael Shigorin <mike@altlinux.org> 0.6.2-alt1
- better live-webkiosk and initial live-flightgear

View File

@@ -1,6 +0,0 @@
object a4836609d986c3609ba52860ae60061d0cf0e514
type commit
tag v0.6.6
tagger Michael Shigorin <mike@altlinux.org> 1337020642 +0300
frontstart

View File

@@ -0,0 +1,6 @@
object 71c4404c4e405b547040f81931c1b8a7ea82134b
type commit
tag v0.6.2.1
tagger Michael Shigorin <mike@altlinux.org> 1395691214 +0400
altlinux-t6-server-ovz

View File

@@ -1 +1 @@
02fe7a7e583b570944eb332ca93eba03a6f0f11e v0.6.6
500eea7e501647e4e9fb90f59064539392ebc25c v0.6.2.1

View File

@@ -2,9 +2,6 @@
# iterate over multiple goals/arches,
# collect proceedings
# preferences
-include $(HOME)/.mkimage/profiles.mk
# for immediate assignment
ifndef ARCHES
ifdef ARCH
@@ -15,31 +12,24 @@ endif
endif
export ARCHES
export PATH := $(CURDIR)/bin:$(PATH)
# supervise target tracing; leave stderr alone
ifdef REPORT
export REPORT_PATH := $(shell mktemp --tmpdir mkimage-profiles.report.XXXXXXX)
POSTPROC := | report-filter > $(REPORT_PATH)
POSTPROC := | bin/report-filter > $(REPORT_PATH)
endif
# recursive make considered useful for m-p
MAKE += -r --no-print-directory
DIRECT_TARGETS := clean distclean check help help/distro help/ve
.PHONY: $(DIRECT_TARGETS)
$(DIRECT_TARGETS):
.PHONY: clean distclean help
clean distclean help:
@$(MAKE) -f main.mk $@
export NUM_TARGETS := $(words $(MAKECMDGOALS))
# for pipefail
SHELL = /bin/bash
# real targets need real work
%:
@n=1; \
set -o pipefail; \
say() { echo "$$@" >&2; }; \
if [ "$(NUM_TARGETS)" -gt 1 ]; then \
n="`echo $(MAKECMDGOALS) \
@@ -51,10 +41,7 @@ SHELL = /bin/bash
for ARCH in $(ARCHES); do \
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then say; fi; \
say "** ARCH: $$ARCH" >&2; \
if $(MAKE) -f main.mk ARCH=$$ARCH $@ $(POSTPROC); then \
if [ -n "$$REPORT" ]; then \
$(MAKE) -f reports.mk ARCH=$$ARCH; \
fi; \
fi; \
$(MAKE) -f main.mk ARCH=$$ARCH $@ $(POSTPROC); \
$(MAKE) -f reports.mk ARCH=$$ARCH; \
done; \
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi

2
README
View File

@@ -43,7 +43,7 @@ Most docs are in Russian, welcome to learn it or ask for English.
+ базовые комплекты помещены в подкаталогах под sub.in/;
их наборы скриптов могут расширяться фичами
- фичи:
+ накопительный список собирается в $(FEATURES)
+ список собирается в $(FEATURES)
+ законченные блоки функциональности (или наборы таковых)
+ описываются в индивидуальных features.in/*/config.mk
+ могут требовать другие фичи, а также субпрофили

View File

@@ -17,34 +17,18 @@
что обязано быть и в инсталяторе, и в готовой системе
- для "обычного общего" (live, main, rescue) есть COMMON_PACKAGES
(NB: попадают в базовую систему)
- для "пользовательского" окружения (live, main) предназначены
THE_PACKAGES, THE_LISTS, THE_GROUPS, THE_PACKAGES_REGEXP
- для строго направленного действия служат:
+ STAGE1_PACKAGES, STAGE1_PACKAGES_REGEXP (первая стадия загрузки)
+ INSTALL2_PACKAGES (инсталятор)
+ BASE_PACKAGES, BASE_LISTS, BASE_PACKAGES_REGEXP (базовая система)
+ MAIN_PACKAGES, MAIN_LISTS, MAIN_PACKAGES_REGEXP (дополнительные пакеты)
+ LIVE_PACKAGES, LIVE_LISTS, LIVE_PACKAGES_REGEXP ("живая" система)
- для "пользовательского" (live, main) есть THE_GROUPS, THE_LISTS
и THE_PACKAGES
- аналогично по модулям ядра:
+ THE_KMODULES попадут в "пользовательскую" среду (live, main)
+ STAGE1_KMODULES доступны в производных от stage2 (install2, live, rescue)
+ BASE_KMODULES попадут в установку по умолчанию
+ MAIN_KMODULES будут доступны для установки с носителя
+ LIVE_KMODULES предназначены для LiveCD/LiveFlash
+ THE_KMODULES попадут в "пользовательские" окружения
(live и установленную систему)
По подстановкам:
- $(VAR) подставляются перед их записью в $(CONFIG), который distcfg.mk
- $$(VAR) раскрываются позже, при включении $(CONFIG) и востребовании
значений; в этом случае их значения могут изменяться до окончания
конфигурации, а также зависеть от значений других переменных
По спискам пакетов:
- на этапе экспериментирования можно забивать прямо в описание образа
- при фиксации состояния стоит воспользоваться существующими списками,
а дополнительные оформить как можно более чётко обособленными по тем
задачам, для решения которых они и подобраны
- повторяющиеся логически связанные группы списков может иметь смысл
выделить в фичу (см., например, power или x11)
- если явной фичи не наблюдается, но у группы дистрибутивов намечается
заметная общая часть -- её можно выделить в промежуточную цель вида
distro/.name, не являющуюся самостоятельно собираемой

View File

@@ -6,7 +6,7 @@ distro/.desktop-base: distro/.installer use/syslinux/ui/vesamenu use/x11/xorg
distro/.desktop-mini: distro/.desktop-base use/x11/xdm +power; @:
distro/.desktop-network: distro/.desktop-mini +vmguest
distro/.desktop-network: distro/.desktop-mini use/virtualbox/guest
@$(call add,BASE_LISTS,$(call tags,(base || desktop) && network))
distro/icewm: distro/.desktop-network use/lowmem +icewm; @:

View File

@@ -21,18 +21,17 @@ distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
@$(call set,KFLAVOURS,$(BIGRAM))
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
@$(call add,LIVE_PACKAGES,zsh sudo)
@$(call add,LIVE_PACKAGES,$(pkgs))
@$(call add,MAIN_PACKAGES,$(pkgs))
@$(call add,MAIN_PACKAGES,syslinux pciids memtest86+ mkisofs)
distro/live-install: distro/.live-base use/live/textinst; @:
distro/.livecd-install: distro/.live-base use/live/install; @:
distro/live-install: distro/.live-base use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,live-install)
distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @:
distro/live-razorqt: distro/.live-desktop use/live/autologin +razorqt; @:
distro/live-razorqt: distro/.live-desktop +razorqt; @:
distro/live-tde: distro/.live-desktop use/live/ru +tde; @:
distro/live-rescue: distro/live-icewm
@@ -48,21 +47,7 @@ distro/live-webkiosk-mini: distro/.live-kiosk use/live/hooks use/live/ru
distro/live-webkiosk: distro/live-webkiosk-mini use/live/desktop; @:
distro/live-flightgear: distro/live-icewm use/live/sound use/x11/3d-proprietary
@$(call add,LIVE_PACKAGES,FlightGear fgo input-utils)
@$(call add,LIVE_PACKAGES,FlightGear fgo)
@$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html)
distro/live-cinnamon: distro/.live-desktop use/live/autologin use/live/ru \
use/x11/cinnamon use/x11/3d-proprietary
distro/live-enlightenment: distro/.live-desktop use/live/autologin \
use/live/ru use/x11/3d-free
@$(call add,LIVE_PACKAGES,enlightenment)
distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru
@$(call add,LIVE_PACKAGES,gimp tintii immix fim)
@$(call add,LIVE_PACKAGES,cvltonemap darktable geeqie rawstudio ufraw)
@$(call add,LIVE_PACKAGES,macrofusion python-module-pygtk-libglade)
@$(call add,LIVE_PACKAGES,qtfm openssh-clients rsync)
@$(call add,LIVE_PACKAGES,design-graphics-sisyphus2)
endif

View File

@@ -19,14 +19,17 @@ distro/server-mini: distro/.server-base use/cleanup/x11-alterator
distro/server-systemd: distro/server-mini use/systemd use/bootloader/lilo; @:
distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
use/firmware/server use/firmware/wireless use/power/acpi/button
distro/server-ovz: distro/server-mini use/install2/net \
use/hdt use/rescue use/firmware/server use/power/acpi/button
@$(call set,INSTALLER,desktop)
@$(call set,STAGE1_KFLAVOUR,std-def)
@$(call set,KFLAVOURS,std-def ovz-el)
@$(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,BASE_LISTS,ovz-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)

View File

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

7
conf.d/t6.mk Normal file
View File

@@ -0,0 +1,7 @@
# t6 base kits
ifeq (distro,$(IMAGE_CLASS))
distro/altlinux-t6-server-ovz: distro/server-ovz; @:
endif

View File

@@ -1,9 +1,8 @@
фичи
~~~~
Особенности дистрибутива, не учитываемые в пакетной базе
или зависящие от переменных времени сборки/установки образа;
по необходимости влияют на конфигурацию, приносят с собой
или запрашивают скрипты, которые могут быть оформлены как:
или зависящие от переменных времени сборки/установки образа,
могут быть оформлены как:
* scripts.d/ или image-scripts.d/ различных стадий;
* пакеты installer-feature-*
@@ -28,12 +27,3 @@
Стоит избегать изменения пакетных умолчаний в случае, когда их
представляется осмысленным и возможным скорректировать в пакете:
таким образом они станут более дистрибутивными.
Обратите внимание, что фичи включаются в комплект инкрементально:
что добавили, то уже не убрать; поэтому при необходимости следует
выделять промежуточные цели сборки, собирающие необходимые фичи
и оставляющие те, по которым есть расхождения, на включение ближе
к конечной дистрибутивной цели.
Соглашение по именованию таково, что цели use/ФИЧА и use/ФИЧА/...
определяются в файле features.in/ФИЧА/config.mk и только в нём.

View File

@@ -14,9 +14,9 @@
+ см. ../lib/build.mk
- ARCHES
+ задаёт набор целевых архитектур при параметрическом задании APTCONF
+ задаёт набор целевых архитектур образов
+ значение: пусто (по умолчанию авто) либо список через пробел
+ см. ../Makefile, profiles.mk.sample
+ см. ../Makefile
- BELL
+ подаёт сигнал после завершения сборки
@@ -39,7 +39,7 @@
+ см. ../lib/log.mk
- CHECK
+ включает режим проверки сборки конфигурации (без сборки образа)
+ включает режим проверки сборки конфигурации
+ значение: пусто (по умолчанию) либо любая строка
+ см. ../lib/build.mk
@@ -71,7 +71,7 @@
+ см. ../lib/build.mk
- REPORT
+ запрашивает создание отчётов о собранном образе
+ запрашивает создание отчёта о собранном образе
+ значение: пусто (по умолчанию) либо любая строка
+ NB: в силу специфики обработки передаётся только явно
+ см. ../Makefile, ../report.mk, ../lib/report.mk
@@ -81,20 +81,6 @@
+ значение: пусто (по умолчанию) либо любая строка
+ см. ../image.in/Makefile
- SQUASHFS
+ определяет характер сжатия squashfs для stage2
+ значение:
- пусто (по умолчанию) либо normal: xz
- tight: xz с -Xbcj по платформе (лучше, но дольше -- подбор в два прохода)
- fast: gzip/lzo (быстрее запаковывается и распаковывается, меньше степень)
+ см. ../features.in/stage2/stage1/scripts.d/03-test-kernel
- SORTDIR
+ дополнительно структурирует каталог собранных образов
+ значение: пусто (по умолчанию) либо строка
- например, '$(IMAGE_NAME)/$(DATE)'
+ см. ../image.in/Makefile
пример
~~~~~~
make DEBUG=1 CLEAN=1 distro/syslinux.iso

View File

@@ -25,9 +25,6 @@ define grepper_body
done
endef
%:
$(error BUILDDIR not defined)
else
include $(BUILDDIR)/distcfg.mk
@@ -65,9 +62,11 @@ $(FEATURES):
for sub in / $(SUBPROFILES); do \
dirtags=; \
if [ "$$sub" = / ]; then \
parts=lib; \
srcdirs="."; \
dst="."; \
else \
parts=; \
src="$${sub%/*}"; \
dst="$${sub#*/}"; \
srcdirs=; \
@@ -90,7 +89,7 @@ $(FEATURES):
for srcdir in $$srcdirs; do \
[ -d "$$srcdir" ] || continue; \
pushd "$$srcdir" >&/dev/null; \
for part in lib {image-,}scripts.d; do \
for part in $$parts {image-,}scripts.d; do \
destdir="$(BUILDDIR)/$$dst/$$part"; \
[ -d "$$destdir" ] || continue; \
if [ "$$sub" = / -a -d "$$part" ]; then \

View File

@@ -5,7 +5,6 @@
# - remember .base if adding yet another *_PACKAGES
use/bootloader: use/install2 sub/main
@$(call add_feature)
@$(call add,BASE_PACKAGES,alterator-$$(BASE_BOOTLOADER))
use/bootloader/grub use/bootloader/lilo: use/bootloader/%: use/bootloader

View File

@@ -1,3 +0,0 @@
Эта фича врезается в makefile субпрофилей и обеспечивает
добавление задающих внешний вид и сообщения дистрибутива
пакетов; см. тж. http://www.altlinux.org/Branding

View File

@@ -1,12 +0,0 @@
use/branding:
@$(call add_feature)
@### see install2
@#$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
# NB: not every distro might have all the branding of its own
use/branding/full: use/branding use/syslinux/ui/gfxboot
@$(call add,THE_BRANDING,alterator bootsplash graphics)
@$(call add,THE_BRANDING,indexhtml notes slideshow)
use/branding/complete: use/branding/full
@$(call add,INSTALL2_BRANDING,notes slideshow)

View File

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

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
CHROOT_PACKAGES_REGEXP += $(call branding,$(STAGE1_BRANDING))

View File

@@ -16,14 +16,33 @@ BOOT_ABST := $(META_ABSTRACT)
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
# see also ../scripts.d/01-isosort; needs mkimage-0.2.2+
MKI_SORTFILE := /tmp/isosort
all: $(GLOBAL_DEBUG) prep copy-subdirs copy-tree run-scripts pack-image \
postprocess $(GLOBAL_CLEAN_WORKDIR)
prep: $(GLOBAL_DEBUG) dot-disk $(WHATEVER) imagedir
#prep: $(GLOBAL_DEBUG) dot-disk metadata imagedir
prep: $(GLOBAL_DEBUG) dot-disk $(METADATA) imagedir
metadata: dot-base
@mkdir -p files/Metadata
@rm -f files/Metadata/pkg-groups.tar
# see also alterator-pkg (backend3/pkg-install); we only tar up what's up to it
@tar -cvf files/Metadata/pkg-groups.tar -C $(PKGDIR) \
$$(echo $(call list,$(MAIN_GROUPS) .base) \
$(call group,$(MAIN_GROUPS)) \
| sed 's,$(PKGDIR)/*,,g')
dot-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

View File

@@ -8,6 +8,6 @@
[ -x /sbin/chkconfig ] || exit 0
for i in network random syslogd; do chkconfig $i on; done
for i in network random syslogd random; do chkconfig $i on; done
for i in fbsetfont netfs rawdevices; do chkconfig $i off; done
:

View File

@@ -3,23 +3,17 @@
# for mkmodpack to use
use/firmware:
@$(call add_feature)
@$(call add,SYSTEM_PACKAGES,firmware-linux)
use/firmware/server: use/firmware
@$(call add,SYSTEM_PACKAGES,firmware-aic94xx-seq)
@$(call add,THE_PACKAGES_REGEXP,firmware-ql.*)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-ql.*)
# NB: individual firmwarez would sometimes conflict
# with ones newly merged into firmware-linux
# FIXME: kernel modules rather belong to use/hardware
use/firmware/wireless: use/firmware
@$(call add,THE_KMODULES,bcmwl ndiswrapper)
@$(call add,THE_PACKAGES,firmware-acx100)
@#$(call add,THE_PACKAGES,firmware-i2400m)
@$(call add,THE_PACKAGES_REGEXP,firmware-carl9170.*)
@$(call add,THE_PACKAGES_REGEXP,firmware-prism.*)
@$(call add,THE_PACKAGES_REGEXP,firmware-ipw.*)
@#$(call add,THE_PACKAGES_REGEXP,firmware-iwl.*)
@#$(call add,THE_PACKAGES_REGEXP,firmware-rt.*)
@$(call add,THE_PACKAGES_REGEXP,firmware-zd.*)
@$(call add,MAIN_PACKAGES,firmware-acx100)
@$(call add,MAIN_PACKAGES,firmware-i2400m)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-carl9170.*)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-ipw.*)
@#$(call add,MAIN_PACKAGES_REGEXP,firmware-iwl.*)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-rt.*)
@$(call add,MAIN_PACKAGES_REGEXP,firmware-zd.*)

View File

@@ -1,18 +1,11 @@
# alterator-based installer, second (livecd) stage
use/install2: use/stage2 sub/stage2/install2 use/metadata use/cleanup/installer
use/install2: use/stage2 sub/stage2/install2 use/cleanup/installer
@$(call add_feature)
@$(call set,INSTALL2_PACKAGES,installer-distro-$$(INSTALLER)-stage2)
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-notes)
@$(call add,BASE_PACKAGES,branding-$$(BRANDING)-release)
@$(call add,BASE_LISTS,$(call tags,basesystem))
### FR: curl-mini
use/install2/net: use/install2
@$(call add,INSTALL2_PACKAGES,curl)
# modern free xorg drivers for mainstream hardware requires KMS support
use/install2/kms:
@$(call set,STAGE1_KMODULES_REGEXP,drm.*)
# see also use/vm/kvm/guest; qxl included in xorg pkglist
use/install2/kvm:
@$(call add,INSTALL2_PACKAGES,spice-vdagent xorg-drv-qxl)

View File

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

View File

@@ -1,4 +0,0 @@
###
use/kernel:
@$(call add_feature)
@$(call set,KFLAVOURS,std-def)

View File

@@ -1,4 +0,0 @@
# step 4: build the distribution image
# take care for kernel bits
DOT_BASE += $(call kpackages,$(THE_KMODULES) $(BASE_KMODULES),$(KFLAVOURS))

View File

@@ -10,20 +10,12 @@ use/live/base: use/live use/syslinux/ui/menu
@$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
# optimized out: use/x11/xorg
use/live/desktop: use/live/base use/x11/wacom use/live/sound +vmguest +power
use/live/desktop: use/live/base use/x11/wacom use/virtualbox/guest \
use/live/sound +power
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
@$(call add,LIVE_LISTS,$(call tags,base l10n))
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
@$(call add,SYSLINUX_CFG,localboot)
# alterator-based permanent installation
use/live/install: use/metadata use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,livecd-install)
# text-based installation script
use/live/textinstall: use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,live-install)
# 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
# for the cases when there should be no display manager

View File

@@ -1,42 +0,0 @@
#!/bin/sh
# see also m-p-d::profiles/live/image-scripts.d/init3-services
[ -x /sbin/chkconfig ] || exit 0
ENABLE="
alteratord
livecd-evms
livecd-fstab
livecd-hostname
livecd-save-nfs
livecd-setauth
livecd-setlocale
network
NetworkManager
random
rpcbind
"
# NB: dnsmasq: https://bugzilla.altlinux.org/show_bug.cgi?id=18799
# NB: sshd might be needed for some particular cases
DISABLE="
anacron
bridge
clamd
crond
dhcpd
dnsmasq
mdadm
netfs
openvpn
rawdevices
slapd
smartd
sshd
update_wms
xinetd
"
for i in $ENABLE; do chkconfig $i on 2>/dev/null; done
for i in $DISABLE; do chkconfig $i off 2>/dev/null; done
:

View File

@@ -1,7 +1,7 @@
#!/bin/sh -ef
if [ ! -x /usr/bin/X ]; then
echo "SKIP autologin: X not installed" >&2
echo "warning: autologin feature requested but X not installed" >&2
exit 0
fi

View File

@@ -2,9 +2,6 @@
STAGE2_KMODULES = $(THE_KMODULES) $(LIVE_KMODULES)
IMAGE_PACKAGES_REGEXP = $(THE_PACKAGES_REGEXP) \
$(LIVE_PACKAGES_REGEXP)
IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
$(call map,list, \
$(THE_LISTS) $(THE_GROUPS) \
@@ -12,7 +9,3 @@ IMAGE_PACKAGES = $(COMMON_PACKAGES) $(THE_PACKAGES) $(LIVE_PACKAGES) \
interactivesystem
MKI_PACK_RESULTS = squash:live
debug::
@echo "** live: IMAGE_PACKAGES: $(IMAGE_PACKAGES)"
@echo "** live: IMAGE_PACKAGES_REGEXP: $(IMAGE_PACKAGES_REGEXP)"

View File

@@ -1,7 +1,6 @@
+ltsp: use/ltsp/base; @:
use/ltsp:
@$(call add_feature)
@$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2)
@$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH))
@$(call add,BASE_LISTS,ltsp)

View File

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

View File

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

View File

@@ -1,37 +0,0 @@
# step 4: build the distribution image
# package lists are needed for installer and live-install images
METADIR := files/Metadata
# preparation targets of ../../build-distro/lib/build-distro.mk
WHATEVER += metadata
# args: name, suffix, command
define dump-THEM
if [ -n "$($(1)_$(2))" ]; then echo -e "\n## $(1)_$(2)"; $(3) $($(1)_$(2)); fi;
endef
dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo)
dump-LISTS = $(call dump-THEM,$(1),LISTS,cat)
# BASE_PACKAGES, BASE_LISTS and whatever else goes into base install;
# thus construct requisite .base packagelist for alterator-pkg
metadata-.base:
@cd $(call list,/); \
{ \
echo "## generated by features.in/metadata/lib/metadata.mk"; \
$(foreach p,SYSTEM COMMON THE BASE,$(call dump-PACKAGES,$(p))) \
$(foreach l,THE BASE,$(call dump-LISTS,$(l))) \
if [ -n "$(DOT_BASE)" ]; then \
echo -e "\n## DOT_BASE\n$(DOT_BASE)"; \
fi; \
} | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' > .base
# see also alterator-pkg (backend3/pkg-install);
# we only tar up what's up to it
metadata: metadata-.base
@mkdir -p $(METADIR); \
tar -C $(PKGDIR) -cvf - \
$(call rlist,$(MAIN_GROUPS) .base) \
$(call rgroup,$(MAIN_GROUPS)) \
> $(METADIR)/pkg-groups.tar

View File

@@ -3,7 +3,6 @@
# common
# TODO: invent multi-target scripts and integrate that 08-powerbutton
use/power:
@$(call add_feature)
@$(call add,COMMON_PACKAGES,installer-feature-powerbutton-stage3)
# modern power management
@@ -21,4 +20,4 @@ use/power/acpi/powersave: use/power/acpi
# legacy power management
use/power/apm: use/power
@$(call add,COMMON_PACKAGES,apmd lphdisk)
@$(call add,COMMON_PACKAGES,apmd)

View File

@@ -1 +0,0 @@
Наборы пакетов для семейства дистрибутивов Simply Linux.

View File

@@ -1,20 +0,0 @@
use/slinux: use/x11/xfce use/x11/gdm2.20
@$(call add_feature)
@$(call set,BRANDING,simply-linux)
@$(call add,THE_BRANDING,menu xfce-settings)
@$(call add,THE_LISTS,gnome-p2p)
@$(call add,THE_LISTS,slinux/$(ARCH))
@$(call add,THE_LISTS,slinux/games)
@$(call add,THE_LISTS,slinux/graphics)
@$(call add,THE_LISTS,slinux/live)
@$(call add,THE_LISTS,slinux/misc)
@$(call add,THE_LISTS,slinux/misc-dvd)
@$(call add,THE_LISTS,slinux/multimedia)
@$(call add,THE_LISTS,slinux/network)
@$(call add,THE_LISTS,slinux/xfce)
@$(call add,THE_LISTS,$(call tags,base l10n))
use/slinux/full: use/isohybrid use/slinux use/systemd \
use/firmware/wireless use/branding/complete \
use/x11/drm use/x11/3d-proprietary
@$(call add,THE_PACKAGES,apt-conf-sisyphus)

View File

@@ -1,29 +0,0 @@
#!/bin/sh
# see also m-p-d::profiles/live/image-scripts.d/init3-services
#[ -x /bin/systemctl ] || exit 0
#[ -x /bin/systemctl ] || exit 0
ENABLE="
network
NetworkManager
lvm2-monitor
mdadm
"
# NB: dnsmasq: https://bugzilla.altlinux.org/show_bug.cgi?id=18799
# NB: sshd might be needed for some particular cases
DISABLE="
sshd
"
for i in $ENABLE; do
[ -x /bin/systemctl ] && /bin/systemctl enable ${i}.service
[ -x /sbin/chkconfig ] && /sbin/chkconfig $i on
done
for i in $DISABLE; do
[ -x /bin/systemctl ] && /bin/systemctl disable ${i}.service
[ -x /sbin/chkconfig ] && /sbin/chkconfig $i off
done
:

View File

@@ -1,55 +1,32 @@
#!/bin/sh
# NB: -f prohibited in this shebang
# check relevant kernel features availability
CONFIGS=/boot/config-*
GZ_OPTS="-comp gzip -noI"
XZ_OPTS="-comp xz"
LZO_OPTS="-comp lzo -noI"
verbose() { [ -n "$GLOBAL_VERBOSE" ] && echo "** $@" >&2; }
fatal() { echo "** error: $@" >&2; exit 1; }
configured()
{
local option="CONFIG_$1"
if grep -q "^$option" $CONFIGS; then
verbose "${option%=*} available"
return 0
else
return 1
fi
}
ls $CONFIGS >&/dev/null || fatal "no stage1 kernel config found in /boot"
GZ_OPTS="-comp gzip"
XZ_OPTS="-comp xz -b 524288 -noI"
# test for installer-required filesystems support
for opt in SQUASHFS AUFS_FS; do
configured "$opt=[my]" || fatal "stage1 kernel must have $opt support"
done
verbose "GLOBAL_SQUASHFS: $GLOBAL_SQUASHFS"
options()
{
# squashfs options: not really neccessary but better than none
# NB: this config file should be carried over into install2
if [ "$GLOBAL_SQUASHFS" != "fast" ] && configured "SQUASHFS_XZ=y"; then
# NB: the decompression filter overhead might hurt
# NB: there are arm, powerpc and some other filters too
if [ "$GLOBAL_SQUASHFS" = "tight" ] && configured "X86"; then
XZ_OPTS="$XZ_OPTS -b 524288 -Xbcj x86"
else
XZ_OPTS="$XZ_OPTS -b 262144 -noI"
fi
echo "$XZ_OPTS"
else # go fast, or even faster if possible
if configured "SQUASHFS_LZO=y"; then
echo "$LZO_OPTS"
else # safe default
echo "$GZ_OPTS"
for opt in CONFIG_SQUASHFS CONFIG_AUFS_FS; do
if grep -q "^$opt=[my]$" /boot/config-*; then
[ -n "$GLOBAL_VERBOSE" ] && echo "** $opt available"
else
if [ "$?" = 1 ]; then # a file exists but lacks the pattern
echo "** error: stage1 kernel must have $opt support" >&2
exit 1
fi
fi
}
done
echo "PACK_SQUASHFS_OPTS=-no-recovery `options`" > /.image/squashcfg.mk
# squashfs options: not really neccessary but better than none
# NB: this config file should be carried over into install2
if grep -q '^CONFIG_SQUASHFS_XZ=y$' /boot/config-*; then
# TODO: figure out if it's generally worth it even on x86:
# if binaries account for less than ~70% of blocks,
# the decompression filter overhead might hurt
# NB: there are arm, powerpc and some other filters too
if grep -q "^CONFIG_X86" /boot/config-*; then
XZ_OPTS="$XZ_OPTS -Xbcj x86"
fi
echo "PACK_SQUASHFS_OPTS=$XZ_OPTS" > /.image/squashcfg.mk
else
echo "PACK_SQUASHFS_OPTS=$GZ_OPTS" > /.image/squashcfg.mk
fi

View File

@@ -9,7 +9,7 @@ use/syslinux/ui/%: use/syslinux
@$(call set,SYSLINUX_UI,$*)
@if [ "$*" == gfxboot ]; then \
$(call add,STAGE1_PACKAGES,gfxboot); \
$(call add,STAGE1_BRANDING,bootloader); \
$(call add,STAGE1_PACKAGES,branding-$$(BRANDING)-bootloader); \
fi
# modules and config snippets just add up

View File

@@ -0,0 +1,4 @@
use/virtualbox/guest:
@$(call add_feature)
@$(call add,THE_KMODULES,virtualbox-addition)
@$(call add,THE_PACKAGES,virtualbox-guest-additions)

View File

@@ -1,2 +0,0 @@
Эта фича предназначена для конфигурирования поддержки
виртуальных машин; в данный момент со стороны гостевой ОС.

View File

@@ -1,13 +0,0 @@
+vmguest: use/vm/virtualbox/guest use/vm/kvm/guest; @:
use/vm/virtualbox/guest:
@$(call add_feature)
@$(call add,THE_KMODULES,virtualbox-addition drm)
@$(call add,THE_PACKAGES,virtualbox-guest-additions)
# NB: only reasonable for X11-bearing images
use/vm/kvm/guest:
@$(call add_feature)
@$(call add,THE_PACKAGES,spice-vdagent)
# see also use/install2/kvm

View File

@@ -1,9 +1,8 @@
+icewm: use/x11/icewm; @:
+razorqt: use/x11/razorqt use/x11/lightdm/qt; @:
+razorqt: use/x11/razorqt use/x11/lightdm; @:
+tde: use/x11/tde use/x11/kdm; @:
use/x11/xorg:
@$(call add_feature)
@$(call add,THE_LISTS,xorg)
use/x11/wacom: use/x11/xorg
@@ -30,15 +29,12 @@ use/x11/xdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,xdm installer-feature-no-xconsole)
### : some set()-like thing might be better?
use/x11/lightdm/qt use/x11/lightdm/gtk: use/x11/lightdm/%: use/x11/runlevel5
@$(call add,THE_PACKAGES,lightdm-$*-greeter)
use/x11/lightdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,lightdm)
use/x11/kdm: use/x11/runlevel5
@$(call add,THE_PACKAGES,kdebase-kdm)
use/x11/gdm2.20: use/x11/runlevel5
@$(call add,THE_PACKAGES,gdm2.20)
use/x11/icewm: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,icewm desktop))
@@ -47,9 +43,3 @@ use/x11/razorqt: use/x11/xorg
use/x11/tde: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,tde desktop))
use/x11/xfce: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,xfce desktop))
use/x11/cinnamon: use/x11/xorg use/x11/drm
@$(call add,THE_LISTS,$(call tags,cinnamon desktop))

View File

@@ -11,7 +11,6 @@ MKI_VER_OPTIMAL = 0.2.0
include distcfg.mk
include functions.mk
# check the build environment
ifeq (,$(realpath $(MKIMAGE_PREFIX)/config.mk))
$(error please apt-get install mkimage and have a look at QUICKSTART as well)
endif
@@ -27,19 +26,9 @@ $(info warning: mkimage-$(MKI_VERSION) is suboptimal, consider upgrading)
$(warning consider upgrading mkimage to $(MKI_VER_OPTIMAL) or better)
endif
# additional means to reduce havoc in IMAGEDIR
IMAGE_SORTDIR := $(SORTDIR)
# reconstruct instead of passing yet another variable
IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%)
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE)
IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE)
IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE)
IMAGE_RELDIR := $(IMAGE_OUTDIR:$(GLOBAL_BUILDDIR)/%=%)
IMAGE_LINK := $(IMAGE_NAME).$(IMAGE_TYPE)
IMAGE_LINKPATH := $(IMAGEDIR)/$(IMAGE_LINK)
### multi-pack can be useful (think netinst iso/tree)
IMAGE_LINK := $(IMAGE_NAME).$(IMAGE_TYPE)
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE)
MKI_PACK_RESULTS = $(IMAGE_PACKTYPE):$(IMAGE_OUTFILE)
# these get opied over as is
@@ -55,7 +44,7 @@ include lib/*.mk
include $(MKIMAGE_PREFIX)/targets.mk
# specified only for the final image (target-specific)
pack-image: OUTDIR = $(IMAGE_OUTDIR)
pack-image: OUTDIR = $(IMAGEDIR)
pack-image: imagedir
copy-tree: $(SAVE_PROFILE:%=save-profile)
@@ -68,18 +57,18 @@ save-profile:
.PHONY: imagedir postprocess debug
imagedir:
@mkdir -p "$(IMAGE_OUTDIR)"
@mkdir -p "$(IMAGEDIR)"
postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS)))
@OUTSIZE="`ls -lh "$(IMAGE_OUTPATH)" | cut -f5 -d' '`"; \
echo "** image: $(IMAGE_OUTPATH) [$$OUTSIZE]" >&2 && \
echo "IMAGE_OUTPATH = $(IMAGE_OUTPATH)" && \
ln -sf "$(IMAGE_RELPATH)" "$(IMAGE_LINKPATH)" && \
ln -sf "$(IMAGE_RELDIR)" "$(OUT_LINK)" && \
ln -sf "$(IMAGE_LINK)" "$(IMAGEDIR)/$(CURRENT_LINK).$(IMAGE_TYPE)"; \
@OUTPATH="$(IMAGEDIR)/$(IMAGE_OUTFILE)"; \
OUTSIZE="`ls -lh "$$OUTPATH" | cut -f5 -d' '`"; \
echo "** image: $$OUTPATH [$$OUTSIZE]" >&2 && \
ln -sf "$(IMAGE_OUTFILE)" "$(IMAGEDIR)/$(IMAGE_LINK)" && \
ln -sf "$${IMAGEDIR#`pwd`/}" "$(OUT_LINK)"; \
ln -sf "$(IMAGE_LINK)" $(OUT_LINK)/"$(CURRENT_LINK).$(IMAGE_TYPE)"; \
if [ -n "$(GLOBAL_DEBUG)" ]; then \
cp -a build.log "$(IMAGE_OUTPATH).log"; \
cp -a distcfg.mk "$(IMAGE_OUTPATH).cfg"; \
cp -a build.log "$$OUTPATH.log"; \
cp -a distcfg.mk "$$OUTPATH.cfg"; \
fi
debug:

View File

@@ -5,13 +5,11 @@ PKGDIR := $(GLOBAL_BUILDDIR)/pkg
ARCH ?= $(shell arch | sed 's/i686/i586/')
DATE ?= $(shell date +%Y%m%d)
# prefix pkglist name with its directory to form a path (relative/absolute)
rlist = $(1:%=lists/%)
list = $(addprefix $(PKGDIR)/,$(call rlist,$(1)))
# prefix pkglist name with its directory to form a path
list = $(1:%=$(PKGDIR)/lists/%)
# prefix/suffix group name to form a path (relative/absolute)
rgroup = $(1:%=groups/%.directory)
group = $(addprefix $(PKGDIR)/,$(call rgroup,$(1)))
# prefix/suffix group name to form a path
group = $(1:%=$(PKGDIR)/groups/%.directory)
# map first argument (a function) onto second one (an argument list)
map = $(foreach a,$(2),$(call $(1),$(a)))
@@ -21,9 +19,5 @@ NULL :=
SPACE := $(NULL) # the officially documented way of getting a space
list2re = $(subst $(SPACE),|,$(strip $(1)))
# args: KMODULES, KFLAVOURS
kpackages = ^kernel-(image|modules-($(call list2re,$(1))))-($(call list2re,$(2)))$$
# arg: branding subpackages
branding = ^branding-$(BRANDING)-($(call list2re,$(1)))$$

View File

@@ -2,9 +2,6 @@
ANSI_OK ?= 1;32
ANSI_FAIL ?= 1;31
MAX_ERRORS = 3
GOTCHA := ^(((\*\* )?(E:|[Ee]rror|[Ww]arning).*)|(.* (conflicts|Depends:) .*)|(.* (Stop|failed)\.))$$
ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one)
endif
@@ -51,10 +48,8 @@ build-image: profile/populate
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
tail -200 "$(BUILDLOG)" $(SHORTEN) \
| GREP_COLOR="$(ANSI_OK)" GREP_OPTIONS="--color=auto" \
grep '^\*\* image: .*$$' ||:; \
RETVAL=0; \
grep '^\*\* image: .*' ||:; \
else \
RETVAL=$$?; \
echo -n "$(TIME) failed, see log"; \
if [ -z "$(DEBUG)" ]; then \
echo ": $(BUILDLOG)" $(SHORTEN); \
@@ -64,10 +59,9 @@ build-image: profile/populate
fi; \
tail -200 "$(BUILDLOG)" \
| GREP_COLOR="$(ANSI_FAIL)" GREP_OPTIONS="--color=auto" \
egrep -m "$(MAX_ERRORS)" "$(GOTCHA)"; \
egrep "^((E:|[Ee]rror|[Ww]arning).*)|(.* Stop\.)$$"; \
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
fi; \
if [ -n "$(BELL)" ]; then echo -ne '\a'; fi; \
exit $$RETVAL; \
} >&2

View File

@@ -1,17 +0,0 @@
ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one)
endif
check:
@find sub.in features.in \
-path '*scripts.d/*' \
\! \( -perm 755 -o -name .gitignore \) \
| while read line; do \
echo "chmod 755 $$line"; \
done
@find features.in -maxdepth 1 -type d \
| while read dir; do \
if [ ! -s "$$dir/README" ]; then \
echo "$$dir: missing README"; \
fi; \
done

View File

@@ -53,7 +53,7 @@ distclean: clean
# than BUILDDIR is -- usually it's unneeded afterwards so just zap it
postclean: build-image
@{ \
if [ "$(NUM_TARGETS)" -gt 1 -a -z "$(DEBUG)" -a -z "$(__frontend)" ] ||\
if [ "$(NUM_TARGETS)" -gt 1 -a -z "$(DEBUG)" ] || \
[ ! -L "$(SYMLINK)" -a "0$(DEBUG)" -lt 2 ]; then \
echo "$(TIME) cleaning up after build"; \
$(MAKE) -C "$(BUILDDIR)" distclean \

View File

@@ -1,16 +0,0 @@
# common bits for building and reporting parts
# somewhat reusable
BUILD_LOG = build.log
# link it to BUILDDIR if possible
SYMLINK = build
# brevity postprocessor; not exported, for toplevel use only
SHORTEN = $(shell \
echo -n "| sed"; \
if [ -s "$(SYMLINK)" ]; then \
echo -n " -e 's,$(BUILDDIR),$(SYMLINK),'"; \
fi; \
echo -n " -e 's,$(TMP),\$$TMP,' -e 's,$(HOME),~,'"; \
)

View File

@@ -23,16 +23,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/kernel
distro/.base: distro/.init
@$(call set,KFLAVOURS,std-def)
@$(call set,META_SYSTEM_ID,LINUX)
@$(call set,META_VOL_ID,ALT Linux $(IMAGE_NAME)/$(ARCH))
@$(call set,META_VOL_ID,ALT Linux $(ARCH))
@$(call set,META_VOL_SET,ALT Linux)
# something marginally useful (as a network-only installer)
# NB: doesn't carry stage3 thus cannot use/bootloader
distro/installer: distro/.base use/syslinux/localboot.cfg \
use/install2 use/install2/kms use/install2/kvm
distro/installer: distro/.base use/install2 use/syslinux/localboot.cfg
@$(call set,INSTALLER,altlinux-generic)
@$(call set,STAGE1_KMODULES_REGEXP,drm.*) # for KMS
distro/.installer: distro/installer use/bootloader/grub use/repo/main; @:

View File

@@ -47,8 +47,7 @@ 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)" \
| tags2lists pkg.in/lists/tagged)))
tags = $(and $(strip $(1)),$(addprefix tagged/,$(shell echo "$(1)" | bin/tags2lists pkg.in/lists/tagged)))
# toplevel Makefile convenience
addsuffices = $(foreach s,$(1),$(call addsuffix,$s,$(2)))

View File

@@ -1,24 +1,12 @@
# this makefile holds the most helpful bits for the toplevel one
ifdef __frontend
define help_body
@for i in $(2); do echo $$i; done
endef
else
define help_body
@echo '** available $(1) targets:'; \
columnize $(2)
endef
endif
help = $(and $(2),$(help_body))
help/distro:
$(call help,distribution,$(sort $(DISTROS:distro/%=%)))
@echo '** available distribution targets:'; \
bin/columnize $(sort $(DISTROS:distro/%=%))
help/ve:
@echo '** available virtual environment targets:'; \
columnize $(sort $(VES))
bin/columnize $(sort $(VES))
help: | help/distro help/space help/ve; @:
help/space:; @echo

View File

@@ -1,10 +0,0 @@
ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one)
endif
# choose std kernel flavour for max RAM size support
ifeq (i586,$(ARCH))
BIGRAM := std-pae
else
BUGRAM := std-def
endif

View File

@@ -6,15 +6,7 @@ ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one)
endif
# 1.3.22 fixes http://bugzilla.altlinux.org/26217
HSH_VER_OPTIMAL = 1.3.22
HSH_VERSION := $(shell hsh -V | sed -n 's/^.* version \([0-9.]\+\).*$$/\1/p')
ifeq (-,$(shell rpmvercmp $(HSH_VERSION) $(HSH_VER_OPTIMAL) | tr -d [0-9]))
$(info warning: hasher-$(HSH_VERSION) is suboptimal, consider upgrading)
endif
BUILDLOG ?= $(BUILDDIR)/$(BUILD_LOG)
BUILDLOG ?= $(BUILDDIR)/build.log
# LOG holds a redirecting postprocessor
ifdef DEBUG
@@ -35,3 +27,12 @@ DATE = $(shell date +%Y%m%d)
TIME = `date +%H:%M:%S`
export BUILDLOG DATE GLOBAL_DEBUG GLOBAL_VERBOSE LOG MAKE SHELL
# brevity postprocessor; not exported, for toplevel use only
SHORTEN = $(shell \
echo -n "| sed"; \
if [ -s "$(SYMLINK)" ]; then \
echo -n " -e 's,$(BUILDDIR),$(SYMLINK),'"; \
fi; \
echo -n " -e 's,$(TMP),\$$TMP,' -e 's,$(HOME),~,'"; \
)

View File

@@ -2,6 +2,8 @@ ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one)
endif
SYMLINK = build
# this could have come from env; or could be symlinked; or is made anew
# (the reuse rationale is avoiding extra tmpdir lookups)
# NB: immediate assignment matters
@@ -13,7 +15,7 @@ if [ -s "$(SYMLINK)" -a "$(NUM_TARGETS)" = 1 ] && \
then \
echo "$(BUILDLINK)"; \
else \
mktmpdir $(BUILDDIR_PREFIX) || exit 200; \
bin/mktmpdir $(BUILDDIR_PREFIX) || exit 200; \
fi; )
endif
@@ -24,7 +26,9 @@ endif
# even smart caching only hurts when every build goes from scratch
NO_CACHE ?= 1
export BUILDDIR NO_CACHE
PATH := $(CURDIR)/bin:$(PATH)
export BUILDDIR NO_CACHE PATH
CONFIG := $(BUILDDIR)/distcfg.mk
RC := $(HOME)/.mkimage/profiles.mk

View File

@@ -6,7 +6,7 @@
# --- in BUILDDIR
# 4. build subprofiles and subsequently an image
MKIMAGE_PROFILES := $(dir $(lastword $(MAKEFILE_LIST)))
MKIMAGE_PROFILES = $(dir $(lastword $(MAKEFILE_LIST)))
# deal with one target at a time
IMAGE_TARGET := $(firstword $(MAKECMDGOALS))# ve/generic.tar.gz

View File

@@ -2,22 +2,20 @@
# (and only those!) over to $(BUILDDIR)
ifndef BUILDDIR
pkgdups:
@find -type f ! -name README ! -name Makefile \
| grep -v '~$$' \
| sed 's,^\./,,g' \
| xargs ../../bin/pkgdups
%:
$(error BUILDDIR not defined)
else
$(error BUILDDIR not defined)
endif
include $(BUILDDIR)/distcfg.mk
SUFFIX := pkg/lists
TARGET := $(BUILDDIR)/$(SUFFIX)
# 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) copy-lists copy-groups
@if type -t git >&/dev/null && cd $(TARGET); then \
if [ -n "`git status -s`" ]; then \
@@ -27,19 +25,34 @@ all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups
cd - >&/dev/null; \
fi
# env | sort -u | grep _LISTS | xargs cp
copy-lists:
@# 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))))
@cp --parents -at $(TARGET) -- \
$(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),$($V)))
copy-groups:
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
cp -at $(TARGET) -- $(THE_GROUPS) $(MAIN_GROUPS); \
fi
# args: name, suffix, command
define dump-THEM
if [ -n "$($(1)_$(2))" ]; then echo -e "\n## $(1)_$(2)"; $(3) $($(1)_$(2)); fi;
endef
dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo)
dump-LISTS = $(call dump-THEM,$(1),LISTS,cat)
dot-base:
@# construct .base packagelist for alterator-pkg
@{ \
echo "## generated by pkg.in/lists/Makefile"; \
$(foreach p,SYSTEM COMMON THE BASE,$(call dump-PACKAGES,$(p))) \
$(foreach l,THE BASE,$(call dump-LISTS,$(l))) \
} | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' >$(TARGET)/.base
# do beforehand as foreach gets expanded before recipe execution
$(TARGET):
@mkdir -p $(TARGET)
@@ -49,6 +62,5 @@ debug:
@echo -e $(foreach V, \
$(filter %_LISTS,$(sort $(.VARIABLES))), \
$(if $(filter environment% file,$(origin $V)),\
$(shell echo '\\n"**"' $V: $(value $V)))) '\n'
$(shell echo '\\n"**"' $V: $($V)))) '\n'
endif

View File

@@ -8,8 +8,3 @@
Подкаталог tagged/ содержит тегированные списки, имена которых
удобно получать функцией tags() (см. ../../lib/functions.mk).
Для выявления дубликатов в составе списков служит `make pkgdups';
пытаться избежать дублей на 100% скорее бесполезно, но бродячие
устойчивые группы пакетов могут заслуживать выделения отдельным
списком.

View File

@@ -1,2 +0,0 @@
transmission-gtk
eiskaltdcpp-gtk

1
pkg.in/lists/kernel-wifi Normal file
View File

@@ -0,0 +1 @@
firmware-rt73

View File

@@ -1,2 +0,0 @@
dropbox
thunar-dropbox-plugin

View File

@@ -1,17 +0,0 @@
# gnome-games
#gnome-games-glines
#gnome-games-gnect
#gnome-games-gnibbles
gnome-games-gnobots
#gnome-games-quadrapassel
gnome-games-gnomine
gnome-games-gnotravex
gnome-games-gnotski
#gnome-games-gtali
#gnome-games-iagno
gnome-games-mahjongg
#gnome-games-swell-foop
gnome-games-sol
gnome-games-sudoku
gnome-games-glchess

View File

@@ -1,18 +0,0 @@
freeciv
wesnoth
ppracer
sauerbraten
instead-launcher
instead-cat
Ri-li
openttd
openastromenace
PokerTH
celestia-gnome
gcompris
gcompris-voices-en
gcompris-voices-ru

View File

@@ -1,10 +0,0 @@
gimp2
gimp-plugin-gutenprint
xsane-gimp2
# inkscape
gphoto2
sane
xsane
gthumb
yagf

View File

@@ -1,3 +0,0 @@
blender
blender-plugins-yafaray
blender-plugins-localdocs

View File

@@ -1 +0,0 @@
inkscape

View File

@@ -1 +0,0 @@
shotwell

View File

@@ -1 +0,0 @@
synfigstudio

View File

@@ -1,18 +0,0 @@
lftp-
python-module-PyQt4-
libqt4-test-
libqt4-uitools-
libqt4-xmlpatterns-
libqt4-declarative-
libqt4-scripttools-
libqt4-svg-
libqt4-help-
libqt4-designer-
libqt4-webkit-
libqt4-multimedia-
libqt4-opengl-
libqt4-clucene-
libqt4-script-
libqt4-qt3support-
libqt4-sql-

View File

@@ -1,2 +0,0 @@
installer-feature-simply-livecd
livecd-setlocale

View File

@@ -1,111 +0,0 @@
strace
pm-utils
fvwm-
fvwm-full-
altlinux-freedesktop-menu-shallow-menu
altlinux-freedesktop-menu-icon-theme-default
#altlinux-freedesktop-menu-common
docs-simply-linux
docs-linux_intro
fonts-ttf-droid
fonts-ttf-ubuntu-font-family
fonts-ttf-liberation
fonts-ttf-dejavu
gnome-system-monitor
gnome-icon-theme
#tango-icon-theme
#tango-icon-theme-extras
gdm2.20-help
ntfsprogs-
driconf-
gdm-theme-simply
kde4libs-
kde-common-
kde3-menu-common-
kde3-menu-resources-
kde4-menu-common-
kde4-menu-resources-
firefox
firefox-ru
xulrunner-gnome-support
file-roller
unzip
unrar
unarj
dbus-tools-gui
brasero
medit
gcalctool
synaptic
synaptic-usermode
apt-indicator
gksu
cups
ghostscript-cups
cups-pdf
avahi-daemon
blueman
update-kernel
printer-drivers-base
udev-extras
hostname-hook-hosts
libnss-mdns
pulseaudio-daemon
pulseaudio-utils
pavucontrol
alsa-plugins-pulse
fdisk
cpufreq-simple
attr
rfkill
# Alterator
alterator-x11
alterator-auth
alterator-xkb
alterator-pkg
alterator-packages
alterator-datetime
alterator-standalone
alterator-sysconfig
# Additional
gnome-search-tool
yelp
# Compiz things
compiz
python-module-fusion-icon-gtk
compiz-gtk
#aen
#elinks-
rpminstall
system-config-printer
system-config-printer-udev
#krb5-ticket-watcher-
apt-repo
#krb5-ticket-watcher-
rekonq-
xdg-user-dirs
x-cursor-theme-jimmac
plymouth
#branding-simply-linux-bootsplash
# Office
java-1.6.0-sun
libreoffice
libreoffice-gnome
libreoffice-langpack-ru
evince
stardict-gtk
stardict-mueller7
# disks
lvm2
mdadm

View File

@@ -1,15 +0,0 @@
#mintmenu
homebank
aspell-uk
libreoffice-langpack-ru
stardict-slovnyk_ru-en
stardict-slovnyk_en-uk
stardict-slovnyk_uk-en
stardict-slovnyk_uk-ru
vlock
hplip-PPDs
tango-icon-theme
tango-icon-theme-extras

View File

@@ -1,5 +0,0 @@
easytag
gnome-mplayer
gecko-mediaplayer
audacious
audacious-plugins

View File

@@ -1 +0,0 @@
audacity

View File

@@ -1 +0,0 @@
pitivi

View File

@@ -1 +0,0 @@
sound-juicer

View File

@@ -1,36 +0,0 @@
mozilla-plugin-adobe-flash
firefox-yandexbar
mozilla-plugin-java-1.6.0-sun
thunderbird
thunderbird-ru
pidgin
pidgin-libnotify
chestnut-dialer-gtk2
aspell-ru-lebedev
alterator-net-pptp
alterator-net-eth
alterator-net-pppoe
alterator-net-general
rdesktop
telnet
remmina
remmina-plugins
b43-fwcutter
bcm43xx-fwcutter
NetworkManager
NetworkManager-vpnc
NetworkManager-openvpn
NetworkManager-pptp
#NetworkManager-l2tp
NetworkManager-openvpn-gnome
NetworkManager-pptp-gnome
NetworkManager-vpnc-gnome
#NetworkManager-l2tp-gnome
usb-modeswitch
alsa-utils
dialog

View File

@@ -1,48 +0,0 @@
i586-glibc-core
i586-libalsa
i586-libssl7
i586-libXv
i586-libXScrnSaver
i586-libdbus
i586-libqt4-xml
i586-libqt4-core
i586-libqt4-dbus
i586-libqt4-gui
i586-libqt4-network
i586-libv4l
i586-libpulseaudio
i586-libsndfile
i586-libwrap
i586-libasyncns
i586-libogg
i586-libflac8
i586-libvorbis
i586-libavahi
i586-libgcc1
i586-libstdc++6
i586-libXext
i586-libX11
i586-glib2
i586-libpng12
i586-zlib
i586-libfreetype
i586-libSM
i586-libICE
i586-libXi
i586-libXrender
i586-libXrandr
i586-libXfixes
i586-libXcursor
i586-libXinerama
i586-fontconfig
i586-libssl10
i586-libxcb
i586-libpcre3
i586-libuuid
i586-libexpat
i586-libkrb5
i586-libXau
i586-libXdmcp
i586-libcom_err
i586-libkeyutils
i586-libxcbutil

View File

@@ -1,69 +0,0 @@
#main-xfce
#xfce4-icon-theme
xfce4-xkb-plugin
xfce4-appfinder
xfce4-settings
xfcalendar
xfce4-mixer
xfce4-minimal
xfce4-session
xfce4-panel
xfce4-screenshooter
xfconf-utils
xfce4-power-manager
Thunar
Terminal
libexo
xfce4-default
#xfce4-full
gvfs
gvfs-backends
udisks2
#xfce-additional
#xfprint
thunar-media-tags-plugin
thunar-volman-plugin
#thunar-shares-plugin
thunar-archive-plugin
#screensaver
gnome-screensaver
#gnome-screensaver-utils
#samba
thunar-shares-plugin
xscreensaver-
xscreensaver-hacks-gl-
xscreensaver-modules-gl-
xfce4-wmdock-plugin-
xfce4-radio-plugin-
xfce4-genmon-plugin-
xfwm4-themes
#xfce4-dict
xfcalendar
xfce4-screenshooter
xfce4-clipman-plugin
xfce4-cpufreq-plugin
#xfce4-globalmenu-plugin
xfce4-xkb-plugin
xfce4-timer-plugin
xfce4-datetime-plugin
xfce4-places-plugin
xfce4-quicklauncher-plugin
xfce4-time-out-plugin
xfce4-fsguard-plugin
xfce4-mailwatch-plugin
xfce4-battery-plugin
xfce4-verve-plugin
xfce4-diskperf-plugin
xfce4-eyes-plugin
xfce4-notes-plugin
xfce4-netload-plugin
xfce4-mount-plugin
#xfce4-weather-plugin
xfce4-systemload-plugin
xfce4-cpugraph-plugin
#xfce4-xfapplet-plugin

View File

@@ -1,2 +0,0 @@
cinnamon-default
installer-feature-xdg-user-dirs

View File

@@ -1,3 +0,0 @@
gnome3-default
libreoffice libreoffice-gnome libreoffice-langpack-ru
gimp

View File

@@ -1,5 +1,4 @@
xdm
xinit
xinitrc
livecd-setlocale
installer-feature-runlevel5-stage3

View File

@@ -1,12 +0,0 @@
xfce4-taskmanager
xfce4-appfinder
xfce4-settings
xfcalendar
xfce4-mixer
gst-plugins-base
xfce4-minimal
xfce4-panel
xfce4-icon-theme
xfce4-session
xfconf-utils
Thunar

View File

@@ -1,57 +1,14 @@
# collect what's left
ifneq (,$(REPORT))
all: reports/targets
include lib/common.mk
BUILDDIR := $(shell sed -n 's/^.* BUILDDIR = \(.*\)/\1/p' "$(REPORT_PATH)")
BUILDLOG := $(BUILDDIR)/$(BUILD_LOG)
REPORTDIR := $(BUILDDIR)/reports
IMAGE_OUTPATH := $(shell sed -n 's/^IMAGE_OUTPATH = \(.*\)/\1/p' $(BUILDLOG))
# for a multi-image build there's no sense to refer to buildroot
# contained reports as these are very ephemeral between builds
ifneq (1,$(NUM_TARGETS))
SHORTEN := >/dev/null
endif
all: reports/targets reports/scripts
@if [ -n "$(IMAGE_OUTPATH)" ]; then \
cp -a $(REPORTDIR) $(IMAGE_OUTPATH).reports; \
reports/targets:
@if [ -n "$$REPORT_PATH" -a -s "$$REPORT_PATH" ]; then \
BUILDDIR="`sed -n 's/^.* BUILDDIR = \(.*\)/\1/p' \
"$$REPORT_PATH"`"; \
REPORT_IMAGE="$$BUILDDIR/targets.png"; \
bin/report-targets < "$$REPORT_PATH" \
| dot -Tpng -o "$$REPORT_IMAGE" \
&& echo "** target graph report: $$REPORT_IMAGE" \
&& mv "$$REPORT_PATH" "$$BUILDDIR/targets.log"; \
fi
reports/prep:
@mkdir -p "$(REPORTDIR)"
reports/scripts: reports/prep
@OUT="$(REPORTDIR)/$(@F).log"; \
grep "^mki.*scripts: Run: " $(BUILDLOG) \
| sed -rn "s,^.*($(BUILDDIR)|$(SYMLINK))/(.*)'$$,\2,p" > "$$OUT" \
&& if [ -s "$$OUT" ]; then \
echo "** scripts report: $$OUT" $(SHORTEN); \
fi
reports/targets: reports/prep
@if ! [ -n "$(REPORT_PATH)" -a -s "$(REPORT_PATH)" ]; then \
exit 0; \
fi; \
if type -t dot >&/dev/null; then \
OUT="$(REPORTDIR)/$(@F).png"; \
report-targets < "$(REPORT_PATH)" \
| dot -Tpng -o "$$OUT" \
&& if [ -s "$$OUT" ]; then \
echo "** target graph report: $$OUT"; \
fi; \
else \
OUT="$(BUILDDIR)/targets.dot"; \
report-targets < "$(REPORT_PATH)" > "$$OUT" \
&& if [ -s "$$OUT" ]; then \
echo "** graphviz missing, " \
"target graph dot file: $$OUT"; \
fi; \
fi $(SHORTEN); \
mv "$(REPORT_PATH)" "$(REPORTDIR)/$(@F).log"
else
all:; @:
endif

View File

@@ -12,9 +12,7 @@ include $(MKIMAGE_PREFIX)/config.mk
CHROOT_PACKAGES = apt-utils rsync
IMAGE_PACKAGES_REGEXP = $(THE_PACKAGES_REGEXP) \
$(BASE_PACKAGES_REGEXP) \
$(MAIN_PACKAGES_REGEXP) \
IMAGE_PACKAGES_REGEXP = $(MAIN_PACKAGES_REGEXP) \
$(call kpackages, \
$(THE_KMODULES) \
$(BASE_KMODULES) \
@@ -28,8 +26,6 @@ IMAGE_PACKAGES = $(call map,list, \
$(SYSTEM_PACKAGES) $(COMMON_PACKAGES) \
$(THE_PACKAGES) $(BASE_PACKAGES) $(MAIN_PACKAGES)
-include lib/*.mk
MKI_DESTDIR = ALTLinux/RPMS.main
MKI_PACK_RESULTS = data

View File

View File

@@ -38,11 +38,6 @@ endif
CHROOT_PACKAGES_REGEXP += $(STAGE1_PACKAGES_REGEXP)
CHROOT_PACKAGES = $(STAGE1_PACKAGES) $(SYSTEM_PACKAGES)
# pass for use/stage2
GLOBAL_SQUASHFS := $(SQUASHFS)
-include lib/*.mk
# scripts prepare bootloader configuration, too
# NB: we pass tested squashfs options for ../stage2/Makefile to include
all: | debug prepare-workdir copy-tree run-scripts $(BUILD_PROPAGATOR) \

View File

@@ -3,7 +3,8 @@
на местности, вытягивание второй стадии с CD/FTP/...).
Скрипты запускаются извне формируемого образа (scripts.d/);
следует крайне бережно относиться к объёму этой стадии.
следует крайне бережно относиться к составу STAGE1_PACKAGES
и объёму этой стадии.
Обратите внимание: если не указать явно требуемый вариант
ядра посредством STAGE1_KFLAVOUR, будет взят последний

View File

@@ -31,31 +31,17 @@ $(error STAGE1_KFLAVOUR is utterly empty; cannot guess either)
endif
# need kernel modules only (which require corresponding kernel-image);
# these go into work chroot; NB: no vmlinuz there (unless live-install)
IMAGE_PACKAGES_REGEXP += $(call kpackages, \
$(STAGE1_KMODULES) $(STAGE2_KMODULES), \
$(STAGE1_KFLAVOUR))
-include lib/*.mk
# see also scripts.d/99-elf-stats
ifdef GLOBAL_SQUASHFS_SORT
ifeq (tight,$(SQUASHFS))
CHROOT_PACKAGES += file
pack-image: PACK_SQUASHFS_OPTS += -sort /.our/elf.lst
pack-image: CLEANUP_OUTDIR=
endif
endif
GLOBAL_SQUASHFS := $(SQUASHFS)
# these go into work chroot; NB: no vmlinuz there
IMAGE_PACKAGES_REGEXP = $(call kpackages, \
$(STAGE1_KMODULES) $(STAGE2_KMODULES), \
$(STAGE1_KFLAVOUR))
include $(MKIMAGE_PREFIX)/targets.mk
# NB: it's a collector variable, add()ing to a GLOBAL_ results in lost hair
GLOBAL_CLEANUP_PACKAGES := $(CLEANUP_PACKAGES)
all: | $(GLOBAL_DEBUG) \
build-image run-image-scripts run-scripts pack-image \
all: | $(GLOBAL_DEBUG) build-image run-image-scripts pack-image \
$(GLOBAL_CLEAN_WORKDIR)
# dummy

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