Compare commits
43 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a8e70fd4e6 | ||
|
cff036c212 | ||
|
482e7bc9f3 | ||
|
e1ef65b410 | ||
|
a62cdfa69e | ||
|
045ae269b2 | ||
|
345319805d | ||
|
9c6824ea57 | ||
|
62ab13cc77 | ||
|
4355f401db | ||
|
3dd020338b | ||
|
402b6e080b | ||
|
ca67a20952 | ||
|
5c5c4a6a6b | ||
|
0ad3c6b8bd | ||
|
f044bdbc33 | ||
|
202f473499 | ||
|
97e1be6a31 | ||
|
c39c100cdc | ||
|
bc091ab919 | ||
|
8b39c4af27 | ||
|
6cd6a0ff0d | ||
|
7a3ab55db4 | ||
|
0c97aaf80b | ||
|
01a03d037b | ||
|
33fe8cbd1f | ||
|
178a700e6e | ||
|
3fcbed3378 | ||
|
d9a0d305ee | ||
|
8473fda02d | ||
|
9304c12c58 | ||
|
b95caa9b73 | ||
|
804cedbca5 | ||
|
efa73b97f0 | ||
|
5a7b6b5739 | ||
|
df0861ad02 | ||
|
37f050d227 | ||
|
5a1065c33e | ||
|
87bfa3f65d | ||
|
0ec7d7cd01 | ||
|
426c985da3 | ||
|
8fbf3585b0 | ||
|
a7ac4f236c |
@@ -1,5 +1,5 @@
|
||||
Name: mkimage-profiles
|
||||
Version: 0.5.3
|
||||
Version: 0.5.6
|
||||
Release: alt1
|
||||
|
||||
Summary: ALT Linux based distribution metaprofile
|
||||
@@ -59,6 +59,16 @@ cp -a * %buildroot%mpdir
|
||||
%doc README QUICKSTART
|
||||
|
||||
%changelog
|
||||
* Mon Feb 20 2012 Michael Shigorin <mike@altlinux.org> 0.5.6-alt1
|
||||
- minor fixups
|
||||
|
||||
* Mon Feb 06 2012 Michael Shigorin <mike@altlinux.org> 0.5.5-alt1
|
||||
- live-related tweaks (including live.hooks support)
|
||||
- terminal server and webkiosk images
|
||||
|
||||
* Mon Jan 16 2012 Michael Shigorin <mike@altlinux.org> 0.5.4-alt1
|
||||
- better diags for initial deployment
|
||||
|
||||
* Mon Jan 02 2012 Michael Shigorin <mike@altlinux.org> 0.5.3-alt1
|
||||
- multi-target, multi-arch, single-job builds
|
||||
|
||||
|
@@ -1,6 +0,0 @@
|
||||
object e97c111f333ef69f4f9ee7009ad0352ca3ed9327
|
||||
type commit
|
||||
tag v0.5.2
|
||||
tagger Michael Shigorin <mike@altlinux.org> 1324327747 +0200
|
||||
|
||||
THE
|
6
.gear/tags/e5d47eac6dd50887d577d7d00f8c52bc39d6cc26
Normal file
6
.gear/tags/e5d47eac6dd50887d577d7d00f8c52bc39d6cc26
Normal file
@@ -0,0 +1,6 @@
|
||||
object 0ad3c6b8bdce770de398b33b75d4bf50ddcdd0ef
|
||||
type commit
|
||||
tag v0.5.5
|
||||
tagger Michael Shigorin <mike@altlinux.org> 1328541031 +0200
|
||||
|
||||
live.hooks
|
@@ -1 +1 @@
|
||||
00550cc66a5c3a24317b3b0a5050136ce0987adb v0.5.2
|
||||
e5d47eac6dd50887d577d7d00f8c52bc39d6cc26 v0.5.5
|
||||
|
3
Makefile
3
Makefile
@@ -20,6 +20,7 @@ clean distclean help:
|
||||
|
||||
export NUM_TARGETS := $(words $(MAKECMDGOALS))
|
||||
|
||||
# real targets need real work
|
||||
%:
|
||||
@n=1; \
|
||||
if [ "$(NUM_TARGETS)" -gt 1 ]; then \
|
||||
@@ -30,6 +31,8 @@ export NUM_TARGETS := $(words $(MAKECMDGOALS))
|
||||
echo "** goal: $@ [$$n/$(NUM_TARGETS)]"; \
|
||||
fi; \
|
||||
for ARCH in $(ARCHES); do \
|
||||
if [ "$$ARCH" != "$(firstword $(ARCHES))" ]; then echo; fi; \
|
||||
echo "** ARCH: $$ARCH"; \
|
||||
$(MAKE) -f main.mk ARCH=$$ARCH $@; \
|
||||
done; \
|
||||
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then echo; fi
|
||||
|
@@ -15,7 +15,7 @@
|
||||
команды
|
||||
~~~~~~~
|
||||
- от имени root:
|
||||
# apt-get install hasher git-core
|
||||
# apt-get install mkimage hasher git-core
|
||||
# hasher-useradd USER
|
||||
|
||||
- от имени пользователя (после повторного входа):
|
||||
|
54
bin/mktmpdir
54
bin/mktmpdir
@@ -1,20 +1,53 @@
|
||||
#!/bin/sh
|
||||
# analyze free space, preferring tmpfs over really many gigaz
|
||||
# and taking into account configured hasher workdir prefices
|
||||
|
||||
# hope there aren't spaces in RM's $HOME are they?
|
||||
DIRS="$TMP $TMPDIR $HOME/hasher /tmp /var/tmp .."
|
||||
MINSIZE=262144 # face control criterion
|
||||
|
||||
# poor man's SourceIfExists()
|
||||
try_source() { [ -f "$1" ] && . "$1"; }
|
||||
|
||||
# hasher accepted ones
|
||||
get_prefices()
|
||||
{
|
||||
try_source /etc/hasher-priv/system
|
||||
try_source `/usr/libexec/hasher-priv/getconf.sh`
|
||||
echo "$prefix" | tr ':' '\n' | while read i; do realpath "$i"; done
|
||||
}
|
||||
|
||||
# drop candidates that hasher won't handle anyways
|
||||
# NB: doesn't take --number into account,
|
||||
# prefix lists are defined by the primary configuration
|
||||
contemplate_dirs()
|
||||
{
|
||||
for d in "$@"; do
|
||||
D="`realpath "$d"`";
|
||||
for p in `get_prefices`; do
|
||||
[ "${D#$p}" = "$D" ] || echo "$D";
|
||||
done;
|
||||
done \
|
||||
| uniq # _not_ sort -u
|
||||
}
|
||||
|
||||
# hasher emits no meaningful errors regarding those, sigh
|
||||
check_options()
|
||||
{
|
||||
! egrep -q "^$1 $2 .*no(dev|exec)" /proc/mounts
|
||||
}
|
||||
|
||||
# pick existing, writeable, >256M free space dirs
|
||||
# rank them wrt type: tmpfs > realfs > rootfs
|
||||
choose_tmpdir() {
|
||||
for i in $DIRS; do
|
||||
for i in "$@"; do
|
||||
[ -d "$i" -a -w "$i" ] || continue
|
||||
echo -n "$i "
|
||||
df -Tl "$i" | tail -1
|
||||
done \
|
||||
| sort -unk6 \
|
||||
| while read dir dev fstype size used free percent mnt; do
|
||||
check_options "$dev" "$mnt" || continue
|
||||
[ "$free" -gt "$MINSIZE" ] || continue
|
||||
[ "$fstype" = "tmpfs" ] && { echo "2 $dir $free"; continue; }
|
||||
[ "$mnt" = "/" ] && { echo "0 $dir $free"; continue; }
|
||||
@@ -25,7 +58,24 @@ choose_tmpdir() {
|
||||
| cut -f2 -d' '
|
||||
}
|
||||
|
||||
DIR="`choose_tmpdir`/`dirname "$1"`"
|
||||
# bringing it all together
|
||||
TMPDIRS="`contemplate_dirs $DIRS`"
|
||||
if [ -z "$TMPDIRS" ]; then
|
||||
echo "error: no suitable directories found;" >&2
|
||||
echo "please check docs, filesystem and hasher setup" >&2
|
||||
echo "(mount enough tmpfs into /tmp or fix hasher-priv prefix?)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEMP="`choose_tmpdir $TMPDIRS`"
|
||||
if [ -z "$TEMP" ]; then
|
||||
echo "error: no suitable directories found;" >&2
|
||||
echo "please check hasher docs and filesystem setup" >&2
|
||||
echo "(nodev and/or noexec on an otherwise suitable filesystem?)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIR="$TEMP/`dirname "$1"`"
|
||||
NAME="`basename "${1:-tmpdir}"`"
|
||||
mkdir -p "$DIR" # in case $1 contains slash(es)
|
||||
mktemp -d "$NAME.XXXXXXX" --tmpdir="${DIR%/.}"
|
||||
|
@@ -1,16 +1,23 @@
|
||||
# desktop distributions
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/desktop-base: distro/installer use/repo/main \
|
||||
use/syslinux/ui-vesamenu use/x11/xorg use/bootloader/grub
|
||||
distro/desktop-base: distro/.installer \
|
||||
use/syslinux/ui-vesamenu use/x11/xorg
|
||||
@$(call set,INSTALLER,desktop)
|
||||
|
||||
distro/desktop-mini: distro/desktop-base \
|
||||
use/lowmem use/x11/xdm use/bootloader/lilo \
|
||||
use/power/acpi/button use/cleanup/alterator
|
||||
use/lowmem use/x11/xdm use/power/acpi/button \
|
||||
use/cleanup/alterator
|
||||
|
||||
distro/icewm: distro/desktop-mini
|
||||
@$(call add,BASE_LISTS,$(call tags,icewm desktop))
|
||||
|
||||
distro/ltsp-icewm: distro/icewm use/ltsp use/firmware
|
||||
@$(call add,BASE_LISTS,$(call tags,base network))
|
||||
@$(call add,BASE_LISTS,ltsp)
|
||||
@$(call add,BASE_PACKAGES,apt-repo)
|
||||
@$(call add,BASE_PACKAGES,firefox)
|
||||
|
||||
distro/desktop-systemd: distro/icewm use/systemd
|
||||
|
||||
endif
|
||||
|
@@ -1,11 +1,17 @@
|
||||
# live images
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/syslinux: distro/.init \
|
||||
use/syslinux/localboot.cfg use/syslinux/ui-vesamenu \
|
||||
use/hdt use/memtest
|
||||
|
||||
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-x11: distro/live use/live/autologin use/power/acpi/button
|
||||
|
||||
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
|
||||
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
|
||||
|
||||
@@ -24,11 +30,11 @@ distro/live-builder: distro/.base use/repo/main \
|
||||
distro/live-install: distro/.base use/live/base use/syslinux/localboot.cfg
|
||||
@$(call add,LIVE_PACKAGES,live-install)
|
||||
|
||||
distro/live-icewm: distro/live use/live/autologin
|
||||
distro/live-icewm: distro/.live-x11
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || desktop) && (live || network || icewm)))
|
||||
|
||||
distro/live-razorqt: distro/live use/live/autologin
|
||||
distro/live-razorqt: distro/.live-x11 use/x11/lightdm use/syslinux/ui-vesamenu
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || desktop) && (live || network || razorqt)))
|
||||
|
||||
@@ -37,4 +43,8 @@ distro/live-rescue: distro/live-icewm
|
||||
@$(call add,LIVE_LISTS, \
|
||||
$(call tags,(base || extra) && (archive || rescue || network)))
|
||||
|
||||
distro/live-webkiosk: distro/.live-x11 use/live/hooks
|
||||
@$(call add,LIVE_PACKAGES,livecd-webkiosk)
|
||||
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
|
||||
|
||||
endif
|
||||
|
@@ -1,8 +1,7 @@
|
||||
# server distributions
|
||||
ifeq (distro,$(IMAGE_CLASS))
|
||||
|
||||
distro/server-base: distro/installer use/repo/main \
|
||||
use/syslinux/ui-menu use/memtest use/bootloader/grub
|
||||
distro/server-base: distro/.installer use/syslinux/ui-menu use/memtest
|
||||
@$(call add,BASE_LISTS,server-base)
|
||||
|
||||
distro/server-mini: distro/server-base use/cleanup/x11-alterator
|
||||
@@ -11,9 +10,9 @@ distro/server-mini: distro/server-base use/cleanup/x11-alterator
|
||||
@$(call add,STAGE1_KMODULES,e1000e igb)
|
||||
@$(call add,BASE_LISTS,\
|
||||
$(call tags,base && (server || network || security || pkg)))
|
||||
@$(call add,BASE_LISTS,$(call tags,extra network))
|
||||
@$(call add,BASE_LISTS,$(call tags,extra (server || network)))
|
||||
|
||||
distro/server-systemd: distro/server-mini use/systemd
|
||||
distro/server-systemd: distro/server-mini use/systemd use/bootloader/lilo
|
||||
|
||||
distro/server-ovz: distro/server-mini \
|
||||
use/hdt use/rescue use/firmware/server use/power/acpi/button
|
||||
|
@@ -1,7 +1,7 @@
|
||||
предположения фрагментов кода об окружении
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
NB: пути приводятся от верхнего уровня
|
||||
NB: пути приводятся от верхнего уровня; проект в целом предполагает
|
||||
GNU make 3.81 (с использованием которого и разрабатывается).
|
||||
|
||||
- pkg.in/lists/Makefile
|
||||
+ ожидает, что названия пакаджлистов указываются в переменных
|
||||
|
@@ -65,6 +65,11 @@
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
+ см. ../lib/build.mk
|
||||
|
||||
- SAVE_PROFILE
|
||||
+ сохраняет архив сгенерированного профиля в .disk/
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
+ см. ../image.in/Makefile
|
||||
|
||||
пример
|
||||
~~~~~~
|
||||
make DEBUG=1 CLEAN=1 distro/syslinux.iso
|
||||
|
@@ -5,6 +5,10 @@
|
||||
систему (он НЕ должен требоваться пакету installer-distro-*)
|
||||
и требует пакет выбранного загрузчика.
|
||||
|
||||
Реализация экспериментальная (нужно модуляризовать installer-steps),
|
||||
пока завязана на installer-distro-altlinux-generic (TODO). Возможно,
|
||||
с использованием alterator-lilo связаны проблемы времени установки.
|
||||
Обратите внимание: в процессе конфигурирования дистрибутива
|
||||
"переключение" загрузчика может происходить только в одну сторону
|
||||
-- если выставлен grub, произведено переключение на lilo и затем
|
||||
произведена ещё одна попытка переключения на grub, то в конфигурации
|
||||
останется lilo как последняя "новая" цель с точки зрения make.
|
||||
|
||||
Реализация экспериментальная (нужно модуляризовать installer-steps).
|
||||
|
@@ -1,5 +1,7 @@
|
||||
# TODO: invent something prettier (think "lilo+grub" -- or error out?)
|
||||
# - add,BASE_PACKAGES,alterator-$* is overly additive
|
||||
# NB: due to make target becoming having been made,
|
||||
# the last different one wins
|
||||
# - remember .base if adding yet another *_PACKAGES
|
||||
|
||||
use/bootloader: use/install2 sub/main
|
||||
|
@@ -13,6 +13,9 @@ 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)
|
||||
|
||||
|
14
features.in/build-distro/scripts.d/01-isosort
Executable file
14
features.in/build-distro/scripts.d/01-isosort
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# provide mkisofs with image contents sort order hints
|
||||
|
||||
### split over features or leave in a single piece?
|
||||
|
||||
# NB: only a single space/tab in between, no trailing whitespace
|
||||
cat > /tmp/isosort <<__EOF__
|
||||
ALTLinux 0
|
||||
Metadata 100
|
||||
altinst 700
|
||||
rescue 800
|
||||
live 900
|
||||
syslinux 1000
|
||||
__EOF__
|
@@ -6,6 +6,8 @@
|
||||
# candidates:
|
||||
# off: keytable
|
||||
|
||||
[ -x /sbin/chkconfig ] || exit 0
|
||||
|
||||
for i in network random syslogd random; do chkconfig $i on; done
|
||||
for i in fbsetfont netfs rawdevices; do chkconfig $i off; done
|
||||
:
|
||||
|
@@ -1,3 +1,4 @@
|
||||
#!/bin/sh -e
|
||||
# we don't need no gettys in OpenVZ VEs (might need one in LXC though)
|
||||
[ -s /etc/inittab ] || exit 0
|
||||
sed -i 's,^[0-9]\+:[0-9]\+:respawn:/sbin/mingetty.*,#&,' /etc/inittab
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# FIXME: test run for installer-distro-altlinux-generic 6.0-alt2
|
||||
# NB: grub is currently the default in ALT Linux
|
||||
|
||||
sed -i "s/^grub$/$GLOBAL_BASE_BOOTLOADER/" /usr/share/install2/installer-steps
|
||||
sed -ri "s/^(grub|lilo)$/$GLOBAL_BASE_BOOTLOADER/" \
|
||||
/usr/share/install2/installer-steps
|
||||
|
0
features.in/install2/tagged/image-scripts.d/.gitignore
vendored
Normal file
0
features.in/install2/tagged/image-scripts.d/.gitignore
vendored
Normal file
@@ -11,3 +11,6 @@ use/live/x11: use/live/base use/x11/xorg use/x11/wacom use/virtualbox/guest
|
||||
# *but* it only configures some of the *existing* means; let's add one
|
||||
use/live/autologin: use/live/x11
|
||||
@$(call add,LIVE_PACKAGES,autologin xinit)
|
||||
|
||||
use/live/hooks: use/live
|
||||
@$(call add,LIVE_PACKAGES,livecd-run-hooks)
|
||||
|
5
features.in/live/live/image-scripts.d/10-live-hooks
Executable file
5
features.in/live/live/image-scripts.d/10-live-hooks
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
# if we're configured for running live hooks,
|
||||
# there should be a place for them either
|
||||
|
||||
chkconfig livecd-run-hooks on >&/dev/null && mkdir /live.hooks ||:
|
@@ -1,4 +1,10 @@
|
||||
#!/bin/sh -ef
|
||||
|
||||
if [ ! -x /usr/bin/X ]; then
|
||||
echo "warning: autologin feature requested but X not installed" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
USER=altlinux
|
||||
|
||||
# setup runlevel
|
||||
|
@@ -1,6 +1,13 @@
|
||||
#!/bin/sh -efu
|
||||
# attempt to autoconfigure ethernet
|
||||
|
||||
[ -x /sbin/dhcpcd -o -x /sbin/dhclient ] || {
|
||||
echo "NOT configuring DHCP for eth0" >&2
|
||||
exit 0
|
||||
}
|
||||
|
||||
echo "configuring DHCP for eth0" >&2
|
||||
|
||||
mkdir -p /etc/net/ifaces/eth0 && {
|
||||
echo TYPE=eth
|
||||
echo BOOTPROTO=dhcp
|
6
features.in/live/live/image-scripts.d/90-cleanup-boot
Executable file
6
features.in/live/live/image-scripts.d/90-cleanup-boot
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
# we don't really need the kernel in live root,
|
||||
# it's been booted already
|
||||
|
||||
rm -f /boot/*
|
||||
:
|
10
features.in/live/stage1/files/index.html
Normal file
10
features.in/live/stage1/files/index.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="3;url=http://www.altlinux.org/">
|
||||
<title>Welcome to ALT Linux!</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to ALT Linux!</h1>
|
||||
<p>You will be redirected to <a href="http://www.altlinux.org/">the home page</a> shortly.</p>
|
||||
</body>
|
||||
<html>
|
5
features.in/ltsp/README
Normal file
5
features.in/ltsp/README
Normal file
@@ -0,0 +1,5 @@
|
||||
Эта фича обеспечивает добавление функций терминального сервера:
|
||||
- загрузку бездисковых тонких клиентов по сети;
|
||||
- предоставление им доступа к серверу приложений.
|
||||
|
||||
На данный момент является совсем экспериментальной.
|
3
features.in/ltsp/config.mk
Normal file
3
features.in/ltsp/config.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
use/ltsp:
|
||||
@$(call add,INSTALL2_PACKAGES,installer-feature-ltsp-stage2)
|
||||
@$(call add,MAIN_LISTS,ltsp-client ltsp-client.$(ARCH))
|
@@ -1,6 +1,9 @@
|
||||
#!/bin/sh
|
||||
# check relevant kernel features availability
|
||||
|
||||
GZ_OPTS="-comp gzip"
|
||||
XZ_OPTS="-comp xz -b 524288 -noI"
|
||||
|
||||
# test for installer-required filesystems support
|
||||
for opt in CONFIG_SQUASHFS CONFIG_AUFS_FS; do
|
||||
if grep -q "^$opt=[my]$" /boot/config-*; then
|
||||
@@ -16,7 +19,14 @@ done
|
||||
# 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
|
||||
echo "PACK_SQUASHFS_OPTS=-comp xz -Xbcj x86" > /.image/squashcfg.mk
|
||||
# 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=-comp gzip" >> /.image/squashcfg.mk
|
||||
echo "PACK_SQUASHFS_OPTS=$GZ_OPTS" > /.image/squashcfg.mk
|
||||
fi
|
||||
|
@@ -51,8 +51,7 @@ all: prep debug
|
||||
@### proper text branding should be implemented
|
||||
@sed -i 's,@mkimage-profiles@,$(IMAGE_NAME),' $(DSTDIR)/*.cfg
|
||||
@echo $(SYSLINUX_MODULES) > $(DSTDIR)/modules.list
|
||||
@echo $(SYSLINUX_FILES) > $(DSTDIR)/files.list
|
||||
@echo $(BOOTLOADER) > $(DSTDIR)/bootloader
|
||||
@echo $(SYSLINUX_FILES) > $(DSTDIR)/syslinux.list
|
||||
|
||||
prep:
|
||||
@mkdir -p $(DSTDIR)
|
||||
|
@@ -7,15 +7,15 @@ MODDIR="/usr/lib/syslinux"
|
||||
mkdir -p "$WORKDIR/syslinux"
|
||||
cd "$WORKDIR/syslinux"
|
||||
|
||||
# validate just in case (written by ../../generate.mk)
|
||||
BOOTLOADER="$(cat .in/bootloader)"
|
||||
case "$BOOTLOADER" in
|
||||
# validate just in case (see also stage1 Makefile)
|
||||
case "$GLOBAL_BOOTLOADER" in
|
||||
isolinux|syslinux) ;;
|
||||
*) echo "$0: error: weird BOOTLOADER: $BOOTLOADER" >&2; exit 1;;
|
||||
*) echo "error: weird GLOBAL_BOOTLOADER: \`$GLOBAL_BOOTLOADER'" >&2;
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
# copy extra files, if any
|
||||
SYSLINUX_FILES="$(cat .in/files.list)"
|
||||
SYSLINUX_FILES="$(cat .in/syslinux.list)"
|
||||
if [ -n "${SYSLINUX_FILES% }" ]; then
|
||||
cp -a $SYSLINUX_FILES .
|
||||
fi
|
||||
@@ -30,7 +30,7 @@ if [ -n "$SYSLINUX_MODULES" ]; then
|
||||
fi
|
||||
|
||||
# number ordering sponsored by shell's pathname expansion
|
||||
grep -hv '^#' .in/[0-9][0-9]*.cfg > "$BOOTLOADER.cfg"
|
||||
grep -hv '^#' .in/[0-9][0-9]*.cfg > "$GLOBAL_BOOTLOADER.cfg"
|
||||
|
||||
# snippets are not going into the actual image
|
||||
if [ "$DEBUG" != 2 ]; then rm -r .in/; fi
|
||||
|
@@ -12,3 +12,7 @@ use/x11/runlevel5: use/x11/xorg
|
||||
### xdm: see also #23108
|
||||
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: use/x11/runlevel5
|
||||
@$(call add,THE_PACKAGES,lightdm)
|
||||
|
@@ -10,6 +10,11 @@ MKI_VER_OPTIMAL = 0.2.0
|
||||
|
||||
include distcfg.mk
|
||||
include functions.mk
|
||||
|
||||
ifeq (,$(realpath $(MKIMAGE_PREFIX)/config.mk))
|
||||
$(error please apt-get install mkimage and have a look at QUICKSTART as well)
|
||||
endif
|
||||
|
||||
include $(MKIMAGE_PREFIX)/config.mk
|
||||
|
||||
ifeq (-,$(shell rpmvercmp $(MKI_VERSION) $(MKI_VER_MINIMAL) | tr -d [0-9]))
|
||||
@@ -42,6 +47,13 @@ include $(MKIMAGE_PREFIX)/targets.mk
|
||||
pack-image: OUTDIR = $(IMAGEDIR)
|
||||
pack-image: imagedir
|
||||
|
||||
copy-tree: $(SAVE_PROFILE:%=save-profile)
|
||||
|
||||
save-profile:
|
||||
@mkdir -p files/.disk; \
|
||||
git archive --prefix=mkimage-profile/ HEAD \
|
||||
| gzip -9 > files/.disk/profile.tgz
|
||||
|
||||
.PHONY: imagedir postprocess debug
|
||||
|
||||
imagedir:
|
||||
|
@@ -45,8 +45,8 @@ build-image: profile/populate
|
||||
if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
||||
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
||||
tail -200 "$(BUILDLOG)" $(SHORTEN) \
|
||||
| GREP_COLOR="$(ANSI_OK)" \
|
||||
grep --color=auto '^\*\* image: .*' ||:; \
|
||||
| GREP_COLOR="$(ANSI_OK)" GREP_OPTIONS="--color=auto" \
|
||||
grep '^\*\* image: .*' ||:; \
|
||||
else \
|
||||
echo -n "$(TIME) failed, see log"; \
|
||||
if [ -z "$(DEBUG)" ]; then \
|
||||
@@ -56,8 +56,8 @@ build-image: profile/populate
|
||||
echo " above"; \
|
||||
fi; \
|
||||
tail -200 "$(BUILDLOG)" \
|
||||
| GREP_COLOR="$(ANSI_FAIL)" \
|
||||
egrep --color=auto "^(E:|[Ee]rror|[Ww]arning).*"; \
|
||||
| GREP_COLOR="$(ANSI_FAIL)" GREP_OPTIONS="--color=auto" \
|
||||
egrep "^((E:|[Ee]rror|[Ww]arning).*)|(.* Stop\.)$$"; \
|
||||
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
||||
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
||||
fi; \
|
||||
|
@@ -23,15 +23,12 @@ distro/.init: profile/bare
|
||||
distro/.base: distro/.init
|
||||
@$(call set,KFLAVOURS,std-def)
|
||||
|
||||
# bootloader test target
|
||||
distro/syslinux: distro/.init \
|
||||
use/syslinux/localboot.cfg use/syslinux/ui-vesamenu \
|
||||
use/hdt use/memtest
|
||||
|
||||
# something marginally useful (as a network-only installer)
|
||||
# NB: doesn't carry stage3 thus cannot use/bootloader
|
||||
distro/installer: distro/.base use/install2 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
|
||||
|
||||
endif
|
||||
|
@@ -19,6 +19,10 @@ else \
|
||||
fi; )
|
||||
endif
|
||||
|
||||
ifeq (,$(BUILDDIR))
|
||||
$(error suitable BUILDDIR unavailable)
|
||||
endif
|
||||
|
||||
# even smart caching only hurts when every build goes from scratch
|
||||
NO_CACHE ?= 1
|
||||
|
||||
|
@@ -9,6 +9,9 @@ ifeq (ve,$(IMAGE_CLASS))
|
||||
ve/.bare: profile/bare
|
||||
@$(call add,BASE_PACKAGES,basesystem)
|
||||
|
||||
ve/bare: ve/.bare
|
||||
@$(call add,BASE_PACKAGES,apt)
|
||||
|
||||
ve/generic: ve/.bare
|
||||
@$(call add,BASE_LISTS,\
|
||||
$(call tags,base && (server || network || security || pkg)))
|
||||
|
7
main.mk
7
main.mk
@@ -61,11 +61,8 @@ everything:
|
||||
@n=1; sum=$(words $(DISTROS)); \
|
||||
for distro in $(DISTROS); do \
|
||||
echo "** building $$distro [$$n/$$sum]:"; \
|
||||
$(MAKE) --no-print-directory \
|
||||
COUNT=$$n/$$sum \
|
||||
BUILDDIR=$(BUILDDIR) \
|
||||
$$distro; \
|
||||
echo; \
|
||||
$(MAKE) -f main.mk --no-print-directory $$distro; \
|
||||
[ "$$n" -lt "$$sum" ] && echo; \
|
||||
n=$$(($$n+1)); \
|
||||
done
|
||||
|
||||
|
@@ -16,7 +16,16 @@ ifneq (,$(findstring install2,$(FEATURES)))
|
||||
DOTBASE := dot-base
|
||||
endif
|
||||
|
||||
all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE)
|
||||
all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups
|
||||
@if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
git add . && \
|
||||
git commit -qam "requested $(SUFFIX) copied over"; \
|
||||
fi; \
|
||||
cd - >&/dev/null; \
|
||||
fi
|
||||
|
||||
copy-lists:
|
||||
@# env | sort -u | grep _LISTS | xargs cp
|
||||
@$(foreach V, \
|
||||
$(filter %_LISTS,$(sort $(.VARIABLES))), \
|
||||
@@ -24,6 +33,11 @@ all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE)
|
||||
$(shell cp --parents -at $(TARGET) \
|
||||
-- $(value $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;
|
||||
@@ -39,16 +53,6 @@ dot-base:
|
||||
$(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
|
||||
@if [ -n "$(THE_GROUPS)$(MAIN_GROUPS)" ]; then \
|
||||
cp -at $(TARGET) -- $(THE_GROUPS) $(MAIN_GROUPS); \
|
||||
fi
|
||||
@if type -t git >&/dev/null && cd $(TARGET); then \
|
||||
if [ -n "`git status -s`" ]; then \
|
||||
git add . && \
|
||||
git commit -qam "requested $(SUFFIX) copied over"; \
|
||||
fi; \
|
||||
cd - >&/dev/null; \
|
||||
fi
|
||||
|
||||
# do beforehand as foreach gets expanded before recipe execution
|
||||
$(TARGET):
|
||||
|
27
pkg.in/lists/ltsp
Normal file
27
pkg.in/lists/ltsp
Normal file
@@ -0,0 +1,27 @@
|
||||
ltsp-server
|
||||
ltsp-server-basic
|
||||
|
||||
#alterator-ltsconf
|
||||
#alterator-standalone
|
||||
|
||||
alsa-plugins
|
||||
alsa-plugins-pulse
|
||||
aplay
|
||||
|
||||
syslinux
|
||||
mkisofs
|
||||
|
||||
#kde-settings-kded-no_media_popup
|
||||
|
||||
#docs-install_ltsp
|
||||
#docs-issue-desktop_personal
|
||||
|
||||
installer-feature-ltsp-stage3
|
||||
|
||||
# Set available online repository and some useful utilites from /sbin
|
||||
installer-feature-symlinks-from-sbin
|
||||
installer-feature-online-repo
|
||||
|
||||
####
|
||||
vim-console
|
||||
cpio
|
5
pkg.in/lists/ltsp-client
Normal file
5
pkg.in/lists/ltsp-client
Normal file
@@ -0,0 +1,5 @@
|
||||
ltsp-client
|
||||
ltsp-client-full
|
||||
ltsp-client-nxsession
|
||||
# ouch!
|
||||
mc
|
3
pkg.in/lists/ltsp-client.i586
Normal file
3
pkg.in/lists/ltsp-client.i586
Normal file
@@ -0,0 +1,3 @@
|
||||
kernel-image-ltsp-client
|
||||
kernel-modules-drm-ltsp-client
|
||||
kernel-modules-alsa-ltsp-client
|
3
pkg.in/lists/ltsp-client.x86_64
Normal file
3
pkg.in/lists/ltsp-client.x86_64
Normal file
@@ -0,0 +1,3 @@
|
||||
kernel-image-std-def
|
||||
kernel-modules-drm-std-def
|
||||
kernel-modules-alsa-std-def
|
@@ -1,4 +1,4 @@
|
||||
razorqt
|
||||
razor-qt
|
||||
arora
|
||||
qtfm
|
||||
qterminal
|
||||
|
@@ -16,3 +16,6 @@ qt4-settings
|
||||
qtparted
|
||||
tubularix
|
||||
smplayer
|
||||
|
||||
# upstream recommended
|
||||
ptbatterysystemtray
|
||||
|
@@ -103,3 +103,6 @@ mc
|
||||
# Development/Debuggers
|
||||
strace
|
||||
sysstat
|
||||
|
||||
# win32
|
||||
chntpw
|
||||
|
@@ -21,12 +21,13 @@ xorg-drv-wacom
|
||||
xorg-drv-wizardpen
|
||||
xorg-drv-qxl
|
||||
|
||||
# #25044?
|
||||
xorg-dri-intel
|
||||
|
||||
# for those who need these
|
||||
xorg-drv-keyboard
|
||||
xorg-drv-mouse
|
||||
|
||||
#xorg-dri-*
|
||||
|
||||
xauth
|
||||
xorg-utils
|
||||
#xorg-extensions*
|
||||
|
@@ -11,6 +11,7 @@ include $(MKIMAGE_PREFIX)/config.mk
|
||||
ifndef BOOTLOADER
|
||||
$(error BOOTLOADER not defined)
|
||||
endif
|
||||
GLOBAL_BOOTLOADER := $(BOOTLOADER)
|
||||
|
||||
MKI_PACK_RESULTS = data
|
||||
PROPAGATOR_VERSION = ALT Linux
|
||||
@@ -38,7 +39,7 @@ CHROOT_PACKAGES_REGEXP += $(STAGE1_PACKAGES_REGEXP)
|
||||
CHROOT_PACKAGES = $(STAGE1_PACKAGES) $(SYSTEM_PACKAGES)
|
||||
|
||||
# scripts prepare bootloader configuration, too
|
||||
# NB: we pass tested squashfs options for ../install2/Makefile
|
||||
# NB: we pass tested squashfs options for ../stage2/Makefile to include
|
||||
all: | debug prepare-workdir copy-tree run-scripts $(BUILD_PROPAGATOR) \
|
||||
copy-$(BOOTLOADER) $(COPY_SQUASHCFG) pack-image $(GLOBAL_CLEAN_WORKDIR)
|
||||
@if [ -s $(OUTDIR)/squashcfg.mk ]; then \
|
||||
|
Reference in New Issue
Block a user