From 30bb8137939abfd690697bc64f7f3dd9bd9955ac Mon Sep 17 00:00:00 2001 From: Michael Shigorin <mike@altlinux.org> Date: Thu, 16 Sep 2010 13:01:32 +0300 Subject: [PATCH] initial groups support/selection ...along with obituary fixes. --- distro.mk | 3 +++ image.in/Makefile | 6 ++--- image.in/functions.mk | 2 ++ pkg.in/Makefile | 4 +++- pkg.in/groups/Makefile | 11 ++++++++++ pkg.in/groups/dhcp-server.directory | 9 ++++++++ pkg.in/groups/diag-tools.directory | 9 ++++++++ pkg.in/groups/dns-server.directory | 9 ++++++++ pkg.in/groups/ftp-server.directory | 9 ++++++++ pkg.in/groups/http-server.directory | 9 ++++++++ pkg.in/groups/ipmi.directory | 9 ++++++++ pkg.in/groups/kvm-server.directory | 9 ++++++++ pkg.in/groups/mail-server.directory | 9 ++++++++ pkg.in/groups/monitoring.directory | 9 ++++++++ pkg.in/groups/mysql-server.directory | 9 ++++++++ pkg.in/lists/Makefile | 4 +++- pkg.in/lists/dhcp-server | 1 + pkg.in/lists/diag-tools | 11 ++++++++++ pkg.in/lists/dns-server | 3 +++ pkg.in/lists/ftp-server | 2 ++ pkg.in/lists/http-server | 33 ++++++++++++++++++++++++++++ pkg.in/lists/ipmi | 4 ++++ pkg.in/lists/kvm-server | 4 ++++ pkg.in/lists/mail-server | 2 ++ pkg.in/lists/monitoring | 18 +++++++++++++++ pkg.in/lists/mysql-server | 6 +++++ sub.in/main/Makefile | 5 +++-- 27 files changed, 202 insertions(+), 7 deletions(-) create mode 100644 pkg.in/groups/Makefile create mode 100644 pkg.in/groups/dhcp-server.directory create mode 100644 pkg.in/groups/diag-tools.directory create mode 100644 pkg.in/groups/dns-server.directory create mode 100644 pkg.in/groups/ftp-server.directory create mode 100644 pkg.in/groups/http-server.directory create mode 100644 pkg.in/groups/ipmi.directory create mode 100644 pkg.in/groups/kvm-server.directory create mode 100644 pkg.in/groups/mail-server.directory create mode 100644 pkg.in/groups/monitoring.directory create mode 100644 pkg.in/groups/mysql-server.directory create mode 100644 pkg.in/lists/dhcp-server create mode 100644 pkg.in/lists/diag-tools create mode 100644 pkg.in/lists/dns-server create mode 100644 pkg.in/lists/ftp-server create mode 100644 pkg.in/lists/http-server create mode 100644 pkg.in/lists/ipmi create mode 100644 pkg.in/lists/kvm-server create mode 100644 pkg.in/lists/mail-server create mode 100644 pkg.in/lists/monitoring create mode 100644 pkg.in/lists/mysql-server diff --git a/distro.mk b/distro.mk index 896b70d8..d8edc6d6 100644 --- a/distro.mk +++ b/distro.mk @@ -47,6 +47,9 @@ distro/server-light: distro/server-base use/hdt $(call set,BRANDING,sisyphus-server-light) $(call add,DISK_LISTS,kernel-wifi) $(call add,BASE_LISTS,$(call tags,base server)) + $(call add,GROUPS,dns-server http-server ftp-server kvm-server) + $(call add,GROUPS,ipmi mysql-server dhcp-server mail-server) + $(call add,GROUPS,monitoring diag-tools) # FIXME: this belongs to bootsplash feature #use/bootsplash: diff --git a/image.in/Makefile b/image.in/Makefile index 6ee62bac..f04fdbb7 100644 --- a/image.in/Makefile +++ b/image.in/Makefile @@ -27,11 +27,11 @@ disk-info: @[ -s files/.disk/commit ] || rm files/.disk/commit # see also alterator-pkg (backend3/pkg-install) -# FIXME: groups unmerged, and only .base hardwired in +# FIXME: if we copy --as-needed, maybe just tar . ? metadata: @mkdir -p files/Metadata @rm -f files/Metadata/pkg-groups.tar - @tar -cvf files/Metadata/pkg-groups.tar \ + tar -cvf files/Metadata/pkg-groups.tar \ -C $(PKGDIR) \ - $(shell echo $(call list,.base) | sed 's,$(PKGDIR)/*,,g') + $$(echo $(call list,.base) $(call list,$(GROUPS)) $(call group,$(GROUPS)) | sed 's,$(PKGDIR)/*,,g') diff --git a/image.in/functions.mk b/image.in/functions.mk index 4567b282..b02da3ff 100644 --- a/image.in/functions.mk +++ b/image.in/functions.mk @@ -3,3 +3,5 @@ PKGDIR=$(GLOBAL_BUILDDIR)/pkg # prefix pkglist name with its directory to form a path list = $(1:%=$(PKGDIR)/lists/%) +# prefix/suffix group name to form a path +group = $(1:%=$(PKGDIR)/groups/%.directory) diff --git a/pkg.in/Makefile b/pkg.in/Makefile index efeb63b1..d21ff8d3 100644 --- a/pkg.in/Makefile +++ b/pkg.in/Makefile @@ -1,2 +1,4 @@ all: - $(MAKE) -C lists BUILDDIR=$(BUILDDIR) + for dir in lists groups; do \ + $(MAKE) -C $$dir BUILDDIR=$(BUILDDIR); \ + done diff --git a/pkg.in/groups/Makefile b/pkg.in/groups/Makefile new file mode 100644 index 00000000..fc25ff63 --- /dev/null +++ b/pkg.in/groups/Makefile @@ -0,0 +1,11 @@ +# copy package lists referenced in distro configuration +# over to build dir + +include $(BUILDDIR)/.config.mk + +all: debug + @mkdir -p $(BUILDDIR)/pkg/groups \ + && cp -at $(BUILDDIR)/pkg/groups/ -- $(addsuffix .directory,$(GROUPS)) + +debug: + @echo "** GROUPS: $(GROUPS)" diff --git a/pkg.in/groups/dhcp-server.directory b/pkg.in/groups/dhcp-server.directory new file mode 100644 index 00000000..073b8f8a --- /dev/null +++ b/pkg.in/groups/dhcp-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=DHCP Server +X-Alterator-PackageList=dhcp-server +X-Alterator-Required=no +Name[ru_RU]=Сервер DHCP +Categories=Server;Networking + diff --git a/pkg.in/groups/diag-tools.directory b/pkg.in/groups/diag-tools.directory new file mode 100644 index 00000000..051b4690 --- /dev/null +++ b/pkg.in/groups/diag-tools.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=Diagnostic tools +X-Alterator-PackageList=diag-tools +X-Alterator-Required=no +Name[ru_RU]=Утилиты для диагностики +Categories=Server;Diagnostics +# NB: as the list may expand, skip adding Networking diff --git a/pkg.in/groups/dns-server.directory b/pkg.in/groups/dns-server.directory new file mode 100644 index 00000000..bd5c8a09 --- /dev/null +++ b/pkg.in/groups/dns-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=DNS Server +X-Alterator-PackageList=dns-server +X-Alterator-Required=no +Name[ru_RU]=Сервер DNS +Categories=Server;Networking + diff --git a/pkg.in/groups/ftp-server.directory b/pkg.in/groups/ftp-server.directory new file mode 100644 index 00000000..3d603387 --- /dev/null +++ b/pkg.in/groups/ftp-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=FTP Server +X-Alterator-PackageList=ftp-server +X-Alterator-Required=no +Name[ru_RU]=Сервер ftp +Categories=Server;Networking + diff --git a/pkg.in/groups/http-server.directory b/pkg.in/groups/http-server.directory new file mode 100644 index 00000000..0497df4e --- /dev/null +++ b/pkg.in/groups/http-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=HTTP Server (Apache2,PHP) +X-Alterator-PackageList=http-server +X-Alterator-Required=no +Name[ru_RU]=Сервер HTTP (Apache2,PHP) +Categories=Server;Networking + diff --git a/pkg.in/groups/ipmi.directory b/pkg.in/groups/ipmi.directory new file mode 100644 index 00000000..752ff8ac --- /dev/null +++ b/pkg.in/groups/ipmi.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=IPMI tools +X-Alterator-PackageList=ipmi +X-Alterator-Required=no +Name[ru_RU]=Утилиты для поддержки IPMI +Categories=Server;IPMI + diff --git a/pkg.in/groups/kvm-server.directory b/pkg.in/groups/kvm-server.directory new file mode 100644 index 00000000..a3ed095c --- /dev/null +++ b/pkg.in/groups/kvm-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=Virtualization over kvm +X-Alterator-PackageList=kvm-server +X-Alterator-Required=no +Name[ru_RU]=Сервер виртуализации kvm +Categories=Server;Virtualization + diff --git a/pkg.in/groups/mail-server.directory b/pkg.in/groups/mail-server.directory new file mode 100644 index 00000000..94e25f02 --- /dev/null +++ b/pkg.in/groups/mail-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=Mail Server (SMTP, IMAP, POP3) +X-Alterator-PackageList=mail-server +X-Alterator-Required=no +Name[ru_RU]=Почтовый сервер (SMTP, IMAP, POP3) +Categories=Server;Networking + diff --git a/pkg.in/groups/monitoring.directory b/pkg.in/groups/monitoring.directory new file mode 100644 index 00000000..d9211ecb --- /dev/null +++ b/pkg.in/groups/monitoring.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=Monitoring +X-Alterator-PackageList=monitoring +X-Alterator-Required=no +Name[ru_RU]=Средства мониторинга системы +Categories=Server;Monitoring + diff --git a/pkg.in/groups/mysql-server.directory b/pkg.in/groups/mysql-server.directory new file mode 100644 index 00000000..0cda3f51 --- /dev/null +++ b/pkg.in/groups/mysql-server.directory @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Directory +Name=MySQL Server +X-Alterator-PackageList=mysql-server +X-Alterator-Required=no +Name[ru_RU]=Сервер MySQL +Categories=Server;Networking + diff --git a/pkg.in/lists/Makefile b/pkg.in/lists/Makefile index 16a0daf4..a7502650 100644 --- a/pkg.in/lists/Makefile +++ b/pkg.in/lists/Makefile @@ -10,7 +10,7 @@ all: prep debug $(if $(filter environment% file,$(origin $V)),\ $(shell cp --parents -at $(BUILDDIR)/pkg/lists/ \ -- $(value $V)))) - @cp -a .base $(BUILDDIR)/pkg/lists/ + @cp -a .base $(GROUPS) $(BUILDDIR)/pkg/lists/ # moving this into 'all' spoils execution order (clobbers results) prep: @@ -24,3 +24,5 @@ debug: $(filter %_LISTS,$(sort $(.VARIABLES))), \ $(if $(filter environment% file,$(origin $V)),\ $(warning $V=$(value $V)))) + @echo "** LISTS: -- see above" + @echo "** GROUPS: $(GROUPS)" diff --git a/pkg.in/lists/dhcp-server b/pkg.in/lists/dhcp-server new file mode 100644 index 00000000..00e2bede --- /dev/null +++ b/pkg.in/lists/dhcp-server @@ -0,0 +1 @@ +dhcp-server diff --git a/pkg.in/lists/diag-tools b/pkg.in/lists/diag-tools new file mode 100644 index 00000000..cdad706a --- /dev/null +++ b/pkg.in/lists/diag-tools @@ -0,0 +1,11 @@ +# diagnostic tools (see also disk-server-light.in) +dsniff +iftop +lft +mtr +nmap +scanssh +tcptraceroute +telnet +whois + diff --git a/pkg.in/lists/dns-server b/pkg.in/lists/dns-server new file mode 100644 index 00000000..c0b6b7b2 --- /dev/null +++ b/pkg.in/lists/dns-server @@ -0,0 +1,3 @@ +bind +bind-control +bind-utils diff --git a/pkg.in/lists/ftp-server b/pkg.in/lists/ftp-server new file mode 100644 index 00000000..6d98aa51 --- /dev/null +++ b/pkg.in/lists/ftp-server @@ -0,0 +1,2 @@ +vsftpd +xinetd diff --git a/pkg.in/lists/http-server b/pkg.in/lists/http-server new file mode 100644 index 00000000..c44848ea --- /dev/null +++ b/pkg.in/lists/http-server @@ -0,0 +1,33 @@ +apache2 +apache2-mod_php5 +php5 +php5-cgi +php5-curl +php5-dba +php5-dbase +php5-dom +php5-eaccelerator +php5-exif +php5-facedetect +php5-fileinfo +php5-gd2 +php5-imagick2 +php5-imap +php5-ldap +php5-mbstring +php5-mcrypt +php5-memcache +php5-mhash +php5-mime_magic +php5-mysql +php5-pgsql +php5-rrdtool +php5-suhosin +php5-xmlrpc +php5-xsl +php5-zip +MySQL-bench +MySQL-client +MySQL-htmlhelp +MySQL-server-perl + diff --git a/pkg.in/lists/ipmi b/pkg.in/lists/ipmi new file mode 100644 index 00000000..ca791906 --- /dev/null +++ b/pkg.in/lists/ipmi @@ -0,0 +1,4 @@ +freeipmi-bmc-watchdog +ipmitool +freeipmi-doc +freeipmi diff --git a/pkg.in/lists/kvm-server b/pkg.in/lists/kvm-server new file mode 100644 index 00000000..dea0895a --- /dev/null +++ b/pkg.in/lists/kvm-server @@ -0,0 +1,4 @@ +kvm +qemu +libvirt +mkve diff --git a/pkg.in/lists/mail-server b/pkg.in/lists/mail-server new file mode 100644 index 00000000..4aa65f37 --- /dev/null +++ b/pkg.in/lists/mail-server @@ -0,0 +1,2 @@ +dovecot +postfix-dovecot diff --git a/pkg.in/lists/monitoring b/pkg.in/lists/monitoring new file mode 100644 index 00000000..16d849a1 --- /dev/null +++ b/pkg.in/lists/monitoring @@ -0,0 +1,18 @@ +monit + +# pull in subpackages which shouldn't toss +# lots of extra dependencies into an image +collectd +collectd-apache +collectd-bind +collectd-cgi +collectd-curl +collectd-dbi +collectd-ipmi +collectd-libvirt +collectd-mysql +collectd-nginx +collectd-openvz +collectd-ping +collectd-rrdtool +collectd-sensors diff --git a/pkg.in/lists/mysql-server b/pkg.in/lists/mysql-server new file mode 100644 index 00000000..1c6d69e9 --- /dev/null +++ b/pkg.in/lists/mysql-server @@ -0,0 +1,6 @@ +MySQL-bench +MySQL-client +MySQL-server +MySQL-htmlhelp +MySQL-server-perl + diff --git a/sub.in/main/Makefile b/sub.in/main/Makefile index e5938ba3..ef62842d 100644 --- a/sub.in/main/Makefile +++ b/sub.in/main/Makefile @@ -10,18 +10,19 @@ include $(GLOBAL_BUILDDIR)/.config.mk CHROOT_PACKAGES = apt-utils rsync PACKAGES_EXPAND_METHOD=regexp +# TODO: map() list() onto these IMAGE_PACKAGES = $(call list,.base) \ $(COMMON_PACKAGES) \ $(MAIN_PACKAGES) \ $(call list,$(BASE_LISTS)) \ - $(call list,$(DISK_LISTS)) + $(call list,$(DISK_LISTS)) \ + $(call list,$(GROUPS)) MKI_DESTDIR = ALTLinux/RPMS.main MKI_PACK_RESULTS = data include $(MKIMAGE_PREFIX)/targets.mk -# TODO: pkg groups all: debug copy-packages pack-image debug: -- 2.24.1