Compare commits

..

18 Commits

Author SHA1 Message Date
Michael Shigorin
57f7b70900 0.6.5-alt1
- branding feature
2012-05-07 23:11:59 +03:00
Michael Shigorin
c7f056412f branding: actually support installation
The initial work covered live images but missed an installer bit
(thus notes and slideshow were missing in install2) while forgetting
to put branding packages into base list (thus kindly making these
available for *manual* installation sometime after, ouch).
2012-05-07 22:06:16 +03:00
Michael Shigorin
a958b7450d simply: dvd refactoring 2012-05-06 21:58:25 +03:00
Gleb F-Malinovskiy
0d4181bee1 simply: trying to build simply-dvd 2012-05-06 19:27:53 +03:00
Gleb F-Malinovskiy
3e30ebdb4a simply: simplify 50services script 2012-05-06 19:27:50 +03:00
Gleb F-Malinovskiy
4e28b094e7 simply: support for lvm2 and raid in live 2012-05-06 19:27:45 +03:00
Michael Shigorin
71aac4587c initial live-enlightenment
E17 has a lil' bit too thorough setup sequence
for a LiveCD but hey it's worth it anyways :)
2012-05-06 19:17:10 +03:00
Michael Shigorin
efbecbe765 initial live-gimp
It's actually convenient to test new software (moreso stacks)
in a known clean isolated environment ;-)

Thanks "asd" at opennet for the motivation to do it all:
http://www.opennet.ru/openforum/vsluhforumID3/84402.html#109
2012-05-06 19:17:10 +03:00
Michael Shigorin
21325bb436 simply += localboot
It's a bit simpler to choose "boot from hdd"
than to eject a disk/ISO.

No need for the specific apt-conf either.
2012-05-06 19:17:10 +03:00
Michael Shigorin
d66d82943c server-ovz -= kernel-wifi
It doesn't really need WiFi support so far,
and when it does the feature should be done
properly (along with setup tools at least).
2012-05-06 19:17:10 +03:00
Michael Shigorin
ed9b394951 live: add variable debug target too
It was done in other stage2 mods already.
2012-05-06 19:17:10 +03:00
Michael Shigorin
454e7162f3 no build means *no* build (and less reports), really
It's hard to tell a successful build from a failed one
if downstream hides the exit code; it's useless to continue
a `for' loop if a pipe shoves that to a subshell; well it seems
that a bashism is worth a thousand quirks with extra fds here.
Minor regexp enhancements are also due.

reports.mk made a bit more resilient/prudent either.
2012-05-06 19:17:10 +03:00
Michael Shigorin
0439df3159 reports.mk: fixups and hardening
No need for .reports/ in toplevel directory even after build failure,
and a few more hasty hacking fixups are also due, shame on me.
2012-05-06 19:17:10 +03:00
Michael Shigorin
7d09fed79b simply: use/branding
NB: for the feature to work properly the chosen branding
package set should have proper Provides: and Conflicts:,
specifically it must explicitly conflict with the most
lexicographically cool package set around (these days
it's sisyphus-server-light).
2012-05-06 19:17:10 +03:00
Michael Shigorin
51f5b88062 initial branding feature
As duly noted by glebfm@, branding issues need more attention
by now since only stage1/install2 got some of it so far in this
regard.  Hence the dedicated feature comes to the rescue
(well no, it doesn't actually mess with rescue!).
2012-05-04 15:57:06 +03:00
Michael Shigorin
c20e820ac7 features.in: generalize lib/ handling
From now on, subprofiles can include the lib/*.mk
brought in by features just like image.in/ long did.
2012-04-25 14:31:26 +03:00
Michael Shigorin
57d31b9c94 initial `make check'
Thanks glebfm@ yet again :)
2012-04-24 11:11:04 +03:00
Michael Shigorin
1fc86f6e82 gear-store-tags 2012-04-23 23:53:10 +03:00
29 changed files with 146 additions and 85 deletions

View File

@@ -1,5 +1,5 @@
Name: mkimage-profiles
Version: 0.6.4
Version: 0.6.5
Release: alt1
Summary: ALT Linux based distribution metaprofile
@@ -61,6 +61,9 @@ cp -a * %buildroot%mpdir
%doc README QUICKSTART
%changelog
* 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)

View File

@@ -0,0 +1,6 @@
object e10d55d0adfb991d4152794d01e6273fe21240b0
type commit
tag v0.6.4
tagger Michael Shigorin <mike@altlinux.org> 1335214381 +0300
simply better

View File

@@ -1,6 +0,0 @@
object d190759717b97a39e5d0de0ffb555424d6b1c335
type commit
tag v0.6.3
tagger Michael Shigorin <mike@altlinux.org> 1334001608 +0300
squash!

View File

@@ -1 +1 @@
5090c03579f3fc620063211417b18e9a57a0eb8d v0.6.3
028d4ddb3f38f92ac39f3d0a7df072847d34336c v0.6.4

View File

@@ -23,15 +23,20 @@ endif
# recursive make considered useful for m-p
MAKE += -r --no-print-directory
.PHONY: clean distclean help
clean distclean help:
DIRECT_TARGETS := clean distclean check help
.PHONY: $(DIRECT_TARGETS)
$(DIRECT_TARGETS):
@$(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) \

View File

@@ -31,7 +31,7 @@ distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo
distro/live-install: distro/.live-base use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,live-install)
distro/.livecd-install: distro/.live-base
distro/.livecd-install: distro/.live-base use/syslinux/localboot.cfg
@$(call add,LIVE_PACKAGES,livecd-install)
distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @:
@@ -57,4 +57,14 @@ distro/live-flightgear: distro/live-icewm use/live/sound use/x11/3d-proprietary
distro/live-cinnamon: distro/.live-desktop use/live/autologin use/live/ru \
use/x11/cinnamon use/x11/3d-free
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

@@ -27,7 +27,6 @@ distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
@$(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

@@ -2,8 +2,10 @@
ifeq (distro,$(IMAGE_CLASS))
distro/live-simply: distro/.livecd-install use/isohybrid use/slinux-live use/systemd \
use/firmware/wireless use/x11/drm use/x11/3d-proprietary use/syslinux/ui/gfxboot
@$(call set,BRANDING,simply-linux)
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

View File

@@ -65,11 +65,9 @@ $(FEATURES):
for sub in / $(SUBPROFILES); do \
dirtags=; \
if [ "$$sub" = / ]; then \
parts=lib; \
srcdirs="."; \
dst="."; \
else \
parts=; \
src="$${sub%/*}"; \
dst="$${sub#*/}"; \
srcdirs=; \
@@ -92,7 +90,7 @@ $(FEATURES):
for srcdir in $$srcdirs; do \
[ -d "$$srcdir" ] || continue; \
pushd "$$srcdir" >&/dev/null; \
for part in $$parts {image-,}scripts.d; do \
for part in lib {image-,}scripts.d; do \
destdir="$(BUILDDIR)/$$dst/$$part"; \
[ -d "$$destdir" ] || continue; \
if [ "$$sub" = / -a -d "$$part" ]; then \

View File

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

View File

@@ -0,0 +1,12 @@
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

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -42,7 +42,10 @@ metadata: dot-base
dot-base:
@p="$(call kpackages,$(THE_KMODULES) $(BASE_KMODULES),$(KFLAVOURS))"; \
echo -e "\n## added by build-distro.mk\n$$p" >> $(call list,.base)
echo -e "\n## added by build-distro.mk\n$$p" >> $(call list,.base); \
if [ -n "$$DOT_BASE" ]; then \
echo -e "\n## DOT_BASE\n$$DOT_BASE" >> $(call list,.base); \
fi
dot-disk:
@mkdir -p files/.disk

View File

@@ -12,3 +12,7 @@ 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,5 +1,7 @@
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)
@@ -11,7 +13,8 @@ use/slinux: use/x11/xfce use/x11/gdm2.20
@$(call add,THE_LISTS,slinux/network)
@$(call add,THE_LISTS,slinux/xfce)
@$(call add,THE_LISTS,$(call tags,base l10n))
@$(call add,THE_PACKAGES,apt-conf-sisyphus)
use/slinux-live: use/slinux
@$(call add,THE_LISTS,slinux/live-install)
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,38 +1,29 @@
#!/bin/sh -x
#!/bin/sh
# see also m-p-d::profiles/live/image-scripts.d/init3-services
SYSTEMCTL=/bin/systemctl
CHKCONFIG=/sbin/chkconfig
#[ -x /bin/systemctl ] || exit 0
#[ -x /bin/systemctl ] || exit 0
turn_on() {
if [ -x $SYSTEMCTL ]; then
$SYSTEMCTL enable ${*}.service
else if [ -x $CHKCONFIG ]; then
$CHKCONFIG $* on
else
exit 0
fi
fi
}
ENABLE="
network
NetworkManager
lvm2-monitor
mdadm
"
turn_off() {
if [ -x $SYSTEMCTL ]; then
$SYSTEMCTL disable ${*}.service
else if [ -x $CHKCONFIG ]; then
$CHKCONFIG $* off
else
exit 0
fi
fi
}
# NB: dnsmasq: https://bugzilla.altlinux.org/show_bug.cgi?id=18799
# NB: sshd might be needed for some particular cases
DISABLE="
sshd
"
SERVICES_TO_ENABLE="NetworkManager"
SERVICES_TO_DISABLE=
for i in $SERVICES_TO_ENABLE; do
turn_on $i;
for i in $ENABLE; do
[ -x /bin/systemctl ] && /bin/systemctl enable ${i}.service
[ -x /sbin/chkconfig ] && /sbin/chkconfig $i on
done
for i in $SERVICES_TO_DISABLE; do
turn_off $i;
for i in $DISABLE; do
[ -x /bin/systemctl ] && /bin/systemctl disable ${i}.service
[ -x /sbin/chkconfig ] && /sbin/chkconfig $i off
done
:

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_PACKAGES,branding-$$(BRANDING)-bootloader); \
$(call add,STAGE1_BRANDING,bootloader); \
fi
# modules and config snippets just add up

View File

@@ -19,5 +19,9 @@ 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,7 +2,8 @@
ANSI_OK ?= 1;32
ANSI_FAIL ?= 1;31
GOTCHA := ^(((\*\* )?(E:|[Ee]rror|[Ww]arning).*)|(.* (Stop|failed)\.))$$
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)
@@ -51,7 +52,9 @@ build-image: profile/populate
tail -200 "$(BUILDLOG)" $(SHORTEN) \
| GREP_COLOR="$(ANSI_OK)" GREP_OPTIONS="--color=auto" \
grep '^\*\* image: .*$$' ||:; \
RETVAL=0; \
else \
RETVAL=$$?; \
echo -n "$(TIME) failed, see log"; \
if [ -z "$(DEBUG)" ]; then \
echo ": $(BUILDLOG)" $(SHORTEN); \
@@ -61,9 +64,10 @@ build-image: profile/populate
fi; \
tail -200 "$(BUILDLOG)" \
| GREP_COLOR="$(ANSI_FAIL)" GREP_OPTIONS="--color=auto" \
egrep "$(GOTCHA)"; \
egrep -m "$(MAX_ERRORS)" "$(GOTCHA)"; \
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

11
lib/check.mk Normal file
View File

@@ -0,0 +1,11 @@
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

View File

@@ -20,23 +20,6 @@ gdm2.20-help
ntfsprogs-
driconf-
# Branding things
branding-simply-linux-xfce-settings
branding-simply-linux-menu
branding-simply-linux-alterator
branding-sisyphus-server-light-alterator-
#branding-simply-linux-bootloader
#branding-simply-linux-bootsplash
branding-simply-linux-graphics
branding-simply-linux-indexhtml
branding-simply-linux-notes
#branding-simply-linux-release
branding-simply-linux-slideshow
#added through use/syslinux/gfx... ?
#branding-simply-linux-bootloader
gdm-theme-simply
kde4libs-
@@ -122,3 +105,7 @@ libreoffice-langpack-ru
evince
stardict-gtk
stardict-mueller7
# disks
lvm2
mdadm

View File

@@ -6,7 +6,7 @@ include lib/common.mk
BUILDDIR := $(shell sed -n 's/^.* BUILDDIR = \(.*\)/\1/p' "$(REPORT_PATH)")
BUILDLOG := $(BUILDDIR)/$(BUILD_LOG)
REPORTDIR := $(BUILDDIR)/reports/
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
@@ -16,31 +16,39 @@ SHORTEN := >/dev/null
endif
all: reports/targets reports/scripts
@cp -a $(REPORTDIR) $(IMAGE_OUTPATH).reports
@if [ -n "$(IMAGE_OUTPATH)" ]; then \
cp -a $(REPORTDIR) $(IMAGE_OUTPATH).reports; \
fi
reports/prep:
@mkdir -p "$(REPORTDIR)"
reports/scripts: reports/prep
@grep "^mki.*scripts: Run: " $(BUILDLOG) \
| sed -rn "s,^.*($(BUILDDIR)|$(SYMLINK))/(.*)'$$,\2,p" \
> "$(REPORTDIR)/$*.log" \
&& echo "** scripts report: $(BUILDDIR)/$(@F).log" $(SHORTEN)
@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 \
REPORT_IMAGE="$(BUILDDIR)/$@.png"; \
OUT="$(REPORTDIR)/$(@F).png"; \
report-targets < "$(REPORT_PATH)" \
| dot -Tpng -o "$$REPORT_IMAGE" \
&& echo "** target graph report: $$REPORT_IMAGE"; \
| dot -Tpng -o "$$OUT" \
&& if [ -s "$$OUT" ]; then \
echo "** target graph report: $$OUT"; \
fi; \
else \
REPORT_DOT="$(BUILDDIR)/targets.dot"; \
report-targets < "$(REPORT_PATH)" > "$$REPORT_DOT" \
&& echo "** graphviz missing, " \
"target graph dot file: $$REPORT_DOT"; \
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"

View File

@@ -28,6 +28,8 @@ 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

@@ -41,6 +41,8 @@ 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

@@ -36,6 +36,8 @@ 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))