The great systemd commit.

This change converts the appliances from openrc to systemd.  In addition,
systemd needs to at least be be installed on the build machine as we now
use systemd-nspawn instead of chroot/bind mounts do to the fact that
systemd-nspawn is much more robust and lese prone to errors.  In addition:

* All stage4 tarballs and images are now stored in the images/ directory by
  default.

* A package dir is now required and is set up in the packages/ directory by
  default.

* The portage directory is not unpacked in the chroot every time anymore
  and is instead bind-mounted from a directory by systemd-nspawn.  This is
  the portage/ directory by default.

* In addition there is a distfiles/ directory (by default) which is
  bind-mounted in the chroot.  It does what you'd probably expect.

* The Makefile learned new target, eclean, which will run eclean-dist and
  eclean-pkg to clean out obsolete distfiles and binary packages.

* The REMOVE_PORTAGE_TREE option is removed as portage is no longer
  installed.

* The unused/untested PRUNE_CRITICAL functionality has been removed.  I
  have no idea if it worked and if it didn't I didn't want to fix it.

* As appliances are always using systemd, UDEV is no longer optional.

* Timezones and hostnames are now handled by systemd (systemd-firstboot).

* Stage4 tarballs are now directly importable as systemd containers (and
  probably docker too though I haven't tested that yet).

* A number of packages (for example dhcpd, acpid) have been removed from the
  appliances when systemd provides equivalent functionality.

* We no longer override etc-update.conf.  There's no reason.

* A number of Makefile targets, checkpoints, temp files, etc have been
  removed as they are no longer needed.
This commit is contained in:
Albert Hopkins 2015-02-22 15:32:16 +00:00
parent 50a4a28567
commit c9a81d2806
51 changed files with 156 additions and 770 deletions

View File

@ -1,11 +1,11 @@
vabuild\/.* build\/.*
loop\/.* loop\/.*
^stage4 packages\/.*
.*\.swp$ portage\/.*
distfiles\/.*
^images\/.*
.*\.cfg .*\.cfg
latest-stage3\.txt latest-stage3\.txt
portage-snapshot\.tar\.bz2 portage-snapshot\.tar\.bz2
stage3-.*-latest\.tar\.bz2 stage3-.*-latest\.tar\.bz2
\.lst$ \.lst$
.*\.qcow
.*\.vmdk.bz2

225
Makefile
View File

@ -1,12 +1,16 @@
CHROOT = $(CURDIR)/vabuild
APPLIANCE ?= base APPLIANCE ?= base
CHROOT = $(CURDIR)/build
PKGDIR = $(CURDIR)/packages
DISTDIR = $(CURDIR)/distfiles
PORTAGE_DIR = $(CURDIR)/portage
HOSTNAME = $(APPLIANCE) HOSTNAME = $(APPLIANCE)
RAW_IMAGE = $(APPLIANCE).img IMAGES = $(CURDIR)/images
QCOW_IMAGE = $(APPLIANCE).qcow RAW_IMAGE = $(IMAGES)/$(APPLIANCE).img
VMDK_IMAGE = $(APPLIANCE).vmdk QCOW_IMAGE = $(IMAGES)/$(APPLIANCE).qcow
XVA_IMAGE = $(APPLIANCE).xva VMDK_IMAGE = $(IMAGES)/$(APPLIANCE).vmdk
LST_FILE = $(APPLIANCE)-packages.lst XVA_IMAGE = $(IMAGES)/$(APPLIANCE).xva
STAGE4_TARBALL = stage4/$(APPLIANCE).tar.xz LST_FILE = $(IMAGES)/$(APPLIANCE)-packages.lst
STAGE4_TARBALL = $(CURDIR)/images/$(APPLIANCE).tar.xz
VIRTIO = NO VIRTIO = NO
TIMEZONE = UTC TIMEZONE = UTC
DISK_SIZE = 6.0G DISK_SIZE = 6.0G
@ -14,14 +18,11 @@ SWAP_SIZE = 30
SWAP_FILE = $(CHROOT)/.swap SWAP_FILE = $(CHROOT)/.swap
ARCH = amd64 ARCH = amd64
KERNEL_CONFIG = configs/kernel.config.$(ARCH) KERNEL_CONFIG = configs/kernel.config.$(ARCH)
MAKEOPTS = -j10 -l10 MAKEOPTS = -j5 -l5.64
PRUNE_CRITICAL = NO
REMOVE_PORTAGE_TREE = YES
ENABLE_SSHD = NO ENABLE_SSHD = NO
CHANGE_PASSWORD = YES CHANGE_PASSWORD = YES
HEADLESS = NO HEADLESS = NO
EXTERNAL_KERNEL = NO EXTERNAL_KERNEL = NO
UDEV = YES
SOFTWARE = 1 SOFTWARE = 1
PKGLIST = 0 PKGLIST = 0
ACCEPT_KEYWORDS = amd64 ACCEPT_KEYWORDS = amd64
@ -38,7 +39,6 @@ KERNEL = gentoo-sources
PACKAGE_FILES = $(wildcard appliances/$(APPLIANCE)/package.*) PACKAGE_FILES = $(wildcard appliances/$(APPLIANCE)/package.*)
WORLD = appliances/$(APPLIANCE)/world WORLD = appliances/$(APPLIANCE)/world
EXTRA_WORLD = EXTRA_WORLD =
CRITICAL = appliances/$(APPLIANCE)/critical
# Allow appliance to override variables # Allow appliance to override variables
-include appliance/$(APPLIANCE)/$(APPLIANCE).cfg -include appliance/$(APPLIANCE)/$(APPLIANCE).cfg
@ -46,7 +46,13 @@ CRITICAL = appliances/$(APPLIANCE)/critical
# Allow user to override variables # Allow user to override variables
-include $(profile).cfg -include $(profile).cfg
inroot := chroot $(CHROOT) inroot := systemd-nspawn --quiet \
--directory=$(CHROOT) \
--machine=$(APPLIANCE)-build \
--bind=$(PORTAGE_DIR):/usr/portage \
--bind=$(PKGDIR):/usr/portage/packages \
--bind=$(DISTDIR):/usr/portage/distfiles
ifeq ($(ARCH),x86) ifeq ($(ARCH),x86)
inroot := linux32 $(inroot) inroot := linux32 $(inroot)
endif endif
@ -59,16 +65,7 @@ ifneq ($(SOFTWARE),0)
endif endif
ifeq ($(PRUNE_CRITICAL),YES) COPY_ARGS = --exclude-from=configs/rsync-excludes
COPY_ARGS = --exclude-from=configs/rsync-excludes \
--exclude-from=configs/rsync-excludes-critical
else
COPY_ARGS = --exclude-from=configs/rsync-excludes
endif
ifeq ($(REMOVE_PORTAGE_TREE),YES)
COPY_ARGS += --exclude=usr/portage
endif
ifeq ($(CHANGE_PASSWORD),YES) ifeq ($(CHANGE_PASSWORD),YES)
ifdef ROOT_PASSWORD ifdef ROOT_PASSWORD
@ -81,7 +78,7 @@ endif
gcc_config = $(inroot) gcc-config 1 gcc_config = $(inroot) gcc-config 1
export APPLIANCE ACCEPT_KEYWORDS CHROOT EMERGE HEADLESS M4 M4C inroot export APPLIANCE ACCEPT_KEYWORDS CHROOT EMERGE HEADLESS M4 M4C inroot
export HOSTNAME MAKEOPTS PRUNE_CRITICAL TIMEZONE USEPKG WORLD OVERLAY export HOSTNAME MAKEOPTS TIMEZONE USEPKG WORLD
export USEPKG RSYNC_MIRROR export USEPKG RSYNC_MIRROR
unexport PKGDIR ARCH unexport PKGDIR ARCH
@ -89,7 +86,8 @@ unexport PKGDIR ARCH
all: image all: image
$(RAW_IMAGE): $(RAW_IMAGE):
qemu-img create -f raw $(RAW_IMAGE) $(DISK_SIZE) qemu-img create -f raw $(RAW_IMAGE).tmp $(DISK_SIZE)
mv $(RAW_IMAGE).tmp $(RAW_IMAGE)
partitions: $(RAW_IMAGE) partitions: $(RAW_IMAGE)
@scripts/echo Creating partition layout @scripts/echo Creating partition layout
@ -102,16 +100,6 @@ partitions: $(RAW_IMAGE)
sync sync
mkfs.ext4 -O sparse_super,^has_journal -L "$(APPLIANCE)"_root -m 0 `cat partitions`p1 mkfs.ext4 -O sparse_super,^has_journal -L "$(APPLIANCE)"_root -m 0 `cat partitions`p1
mounts: stage3
@scripts/echo Creating chroot in $(CHROOT)
mkdir -p $(CHROOT)
if [ ! -e mounts ] ; then \
mount -t proc none $(CHROOT)/proc; \
mount -o rbind /dev $(CHROOT)/dev; \
mount -o bind /var/tmp $(CHROOT)/var/tmp; \
fi
touch mounts
portage-snapshot.tar.bz2: portage-snapshot.tar.bz2:
@scripts/echo You do not have a portage snapshot. Consider \"make sync_portage\" @scripts/echo You do not have a portage snapshot. Consider \"make sync_portage\"
@exit 1 @exit 1
@ -122,30 +110,24 @@ sync_portage:
rsync --no-motd -L $(RSYNC_MIRROR)/snapshots/portage-latest.tar.bz2 portage-snapshot.tar.bz2 rsync --no-motd -L $(RSYNC_MIRROR)/snapshots/portage-latest.tar.bz2 portage-snapshot.tar.bz2
portage: portage-snapshot.tar.bz2 stage3 $(PORTAGE_DIR): portage-snapshot.tar.bz2
@scripts/echo Unpacking portage snapshot @scripts/echo Unpacking portage snapshot
rm -rf $(CHROOT)/usr/portage rm -rf $(PORTAGE_DIR)
tar xf portage-snapshot.tar.bz2 -C $(CHROOT)/usr mkdir $(PORTAGE_DIR)
tar xf portage-snapshot.tar.bz2 -C $(PORTAGE_DIR)/..
ifeq ($(EMERGE_RSYNC),YES) ifeq ($(EMERGE_RSYNC),YES)
@scripts/echo Syncing portage tree @scripts/echo Syncing portage tree
$(inroot) emerge --sync --quiet $(inroot) emerge --sync --quiet
endif endif
ifdef PKGDIR
mkdir -p $(CHROOT)/var/portage/packages
mount -o bind "$(PKGDIR)" $(CHROOT)/var/portage/packages
endif
touch portage
preproot: stage3 mounts portage configs/fstab preproot: stage3 $(PORTAGE_DIR) configs/fstab
cp -L /etc/resolv.conf $(CHROOT)/etc/ mkdir -p $(PKGDIR) $(DISTDIR)
$(inroot) sed -i 's/root:.*/root::9797:0:::::/' /etc/shadow #$(inroot) sed -i 's/root:.*/root::9797:0:::::/' /etc/shadow
cp configs/fstab $(CHROOT)/etc/fstab cp configs/fstab $(CHROOT)/etc/fstab
echo hostname=\"$(HOSTNAME)\" > $(CHROOT)/etc/conf.d/hostname
echo $(HOSTNAME) > $(CHROOT)/etc/hostname
touch preproot touch preproot
stage3-$(ARCH)-latest.tar.bz2: stage3-$(ARCH)-latest.tar.bz2:
@scripts/echo You do not have a portage stage3 tarball. Consider \"make sync_stage3\" @scripts/echo You do not have a stage3 tarball. Consider \"make sync_stage3\"
@exit 1 @exit 1
sync_stage3: sync_stage3:
@ -161,13 +143,11 @@ else
@scripts/echo Using stage3 tarball @scripts/echo Using stage3 tarball
tar xpf stage3-$(ARCH)-latest.tar.bz2 -C $(CHROOT) tar xpf stage3-$(ARCH)-latest.tar.bz2 -C $(CHROOT)
endif endif
rm -f $(CHROOT)/etc/localtime
touch stage3 touch stage3
compile_options: portage configs/make.conf.$(ARCH) configs/locale.gen $(PACKAGE_FILES) compile_options: stage3 $(PORTAGE_DIR) configs/make.conf.$(ARCH) configs/locale.gen $(PACKAGE_FILES)
cp configs/make.conf.$(ARCH) $(CHROOT)/etc/portage/make.conf cp configs/make.conf.$(ARCH) $(CHROOT)/etc/portage/make.conf
ifdef PKGDIR
echo PKGDIR="/var/portage/packages" >> $(CHROOT)/etc/portage/make.conf
endif
echo ACCEPT_KEYWORDS=$(ACCEPT_KEYWORDS) >> $(CHROOT)/etc/portage/make.conf echo ACCEPT_KEYWORDS=$(ACCEPT_KEYWORDS) >> $(CHROOT)/etc/portage/make.conf
-[ -f "appliances/$(APPLIANCE)/make.conf" ] && cat "appliances/$(APPLIANCE)/make.conf" >> $(CHROOT)/etc/portage/make.conf -[ -f "appliances/$(APPLIANCE)/make.conf" ] && cat "appliances/$(APPLIANCE)/make.conf" >> $(CHROOT)/etc/portage/make.conf
$(inroot) eselect profile set 1 $(inroot) eselect profile set 1
@ -179,19 +159,17 @@ ifdef PACKAGE_FILES
endif endif
touch compile_options touch compile_options
base_system: mounts compile_options kernel: compile_options $(KERNEL_CONFIG) scripts/kernel.sh
touch base_system
kernel: base_system $(KERNEL_CONFIG) scripts/kernel.sh
$(inroot) cp /usr/share/zoneinfo/$(TIMEZONE) /etc/localtime
echo $(TIMEZONE) > "$(CHROOT)"/etc/timezone
ifneq ($(EXTERNAL_KERNEL),YES) ifneq ($(EXTERNAL_KERNEL),YES)
@scripts/echo Configuring kernel @scripts/echo Configuring kernel
cp $(KERNEL_CONFIG) $(CHROOT)/root/kernel.config cp $(KERNEL_CONFIG) $(CHROOT)/root/kernel.config
cp scripts/kernel.sh $(CHROOT)/tmp/kernel.sh cp scripts/kernel.sh $(CHROOT)/root/kernel.sh
KERNEL=$(KERNEL) EMERGE="$(EMERGE)" USEPKG="$(USEPKG)" MAKEOPTS="$(MAKEOPTS)" \ $(inroot) --setenv=KERNEL=$(KERNEL) \
$(inroot) /bin/sh /tmp/kernel.sh --setenv=EMERGE="$(EMERGE)" \
rm -f $(CHROOT)/tmp/kernel.sh --setenv=USEPKG="$(USEPKG)" \
--setenv=MAKEOPTS="$(MAKEOPTS)" \
/bin/sh /root/kernel.sh
rm -f $(CHROOT)/root/kernel.sh
endif endif
touch kernel touch kernel
@ -204,31 +182,21 @@ else
sed -i '/swap/d' $(CHROOT)/etc/fstab sed -i '/swap/d' $(CHROOT)/etc/fstab
endif endif
sysconfig: preproot scripts/acpi.start $(SWAP_FILE) sysconfig: preproot $(SWAP_FILE)
@echo $(VIRTIO) @echo $(VIRTIO)
ifeq ($(VIRTIO),YES) ifeq ($(VIRTIO),YES)
sed -i 's/sda/vda/' $(CHROOT)/etc/fstab sed -i 's/sda/vda/' $(CHROOT)/etc/fstab
sed -i 's:clock_hctosys="YES":clock_hctosys="NO":g' "$(CHROOT)/etc/conf.d/hwclock"
endif endif
ifeq ($(HEADLESS),YES)
sed -i 's/^#s0:/s0:/' $(CHROOT)/etc/inittab
sed -ri 's/^(c[0-9]:)/\#\1/' $(CHROOT)/etc/inittab
rm -f $(CHROOT)/etc/runlevels/boot/termencoding
rm -f $(CHROOT)/etc/runlevels/boot/keymaps
endif
echo 'modules="dhclient"' > $(CHROOT)/etc/conf.d/net
echo 'config_eth0="udhcpc"' >> $(CHROOT)/etc/conf.d/net
echo 'dhcp_eth0="release"' >> $(CHROOT)/etc/conf.d/net
$(inroot) ln -nsf net.lo /etc/init.d/net.eth0
$(inroot) ln -nsf /etc/init.d/net.eth0 /etc/runlevels/default/net.eth0
$(inroot) rm -f /etc/runlevels/boot/consolefont
cp -a scripts/acpi.start $(CHROOT)/etc/local.d
touch sysconfig touch sysconfig
systools: sysconfig compile_options systools: sysconfig compile_options
@scripts/echo Installing standard system tools @scripts/echo Installing standard system tools
$(inroot) $(EMERGE) -n $(USEPKG) app-admin/metalog -$(inroot) $(EMERGE) --unmerge sys-fs/udev
$(inroot) /sbin/rc-update add metalog default $(inroot) $(EMERGE) $(USEPKG) -n1 sys-apps/systemd
$(inroot) systemd-firstboot \
--timezone=$(TIMEZONE) \
--hostname=$(HOSTNAME) \
--root-password=
ifeq ($(DASH),YES) ifeq ($(DASH),YES)
if ! test -e "$(STAGE4_TARBALL)"; \ if ! test -e "$(STAGE4_TARBALL)"; \
then $(inroot) $(EMERGE) -n $(USEPKG) app-shells/dash; \ then $(inroot) $(EMERGE) -n $(USEPKG) app-shells/dash; \
@ -251,46 +219,40 @@ ifeq ($(HEADLESS),YES)
sed -i -f scripts/grub-headless.sed $(CHROOT)/boot/grub/grub.conf sed -i -f scripts/grub-headless.sed $(CHROOT)/boot/grub/grub.conf
endif endif
endif endif
$(inroot) ln -nsf /run/systemd/resolve/resolv.conf /etc/resolv.conf
touch grub touch grub
build-software: systools configs/issue configs/etc-update.conf $(CRITICAL) $(WORLD) build-software: systools configs/eth.network configs/issue $(WORLD)
@scripts/echo Building $(APPLIANCE)-specific software @scripts/echo Building $(APPLIANCE)-specific software
$(MAKE) -C appliances/$(APPLIANCE) preinstall $(MAKE) -C appliances/$(APPLIANCE) preinstall
cp configs/etc-update.conf $(CHROOT)/etc/
if test `stat -c "%s" $(WORLD)` -ne 0 ; then \ if test `stat -c "%s" $(WORLD)` -ne 0 ; then \
$(inroot) $(EMERGE) $(USEPKG) --update --newuse --deep `cat $(WORLD)` $(EXTRA_WORLD); \ $(inroot) $(EMERGE) $(USEPKG) --update --newuse --deep `cat $(WORLD)` $(EXTRA_WORLD); \
else \ else \
true; \ true; \
fi fi
$(gcc_config) -$(gcc_config)
@scripts/echo Running revdep-rebuild @scripts/echo Running @preserved-rebuild
$(inroot) emerge @preserved-rebuild $(inroot) $(EMERGE) --usepkg=n @preserved-rebuild
cp configs/issue $(CHROOT)/etc/issue cp configs/issue $(CHROOT)/etc/issue
$(gcc_config) -$(gcc_config)
$(inroot) $(EMERGE) $(USEPKG) --update --newuse --deep world $(inroot) $(EMERGE) $(USEPKG) --update --newuse --deep world
$(inroot) $(EMERGE) --depclean --with-bdeps=n $(inroot) $(EMERGE) --depclean --with-bdeps=n
$(gcc_config) -$(gcc_config)
EDITOR=/usr/bin/nano $(inroot) etc-update EDITOR=/usr/bin/nano $(inroot) etc-update
$(MAKE) -C appliances/$(APPLIANCE) postinstall $(MAKE) -C appliances/$(APPLIANCE) postinstall
ifeq ($(UDEV),NO) cp configs/eth.network $(CHROOT)/etc/systemd/network/eth.network
rm -f $(CHROOT)/etc/runlevels/sysinit/udev $(inroot) systemctl enable systemd-networkd.service
$(inroot) $(EMERGE) -c sys-fs/udev $(inroot) systemctl enable systemd-resolved.service
else
ln -sf /etc/init.d/udev $(CHROOT)/etc/runlevels/sysinit/udev
endif
ifeq ($(ENABLE_SSHD),YES) ifeq ($(ENABLE_SSHD),YES)
$(inroot) /sbin/rc-update add sshd default $(inroot) systemctl enable sshd.service
endif endif
$(change_password) $(change_password)
ifeq ($(PRUNE_CRITICAL),YES)
$(inroot) $(EMERGE) -C `cat $(CRITICAL)`
ifeq ($(DASH),YES) ifeq ($(DASH),YES)
$(inroot) $(EMERGE) -c app-shells/bash $(inroot) $(EMERGE) -c app-shells/bash
endif endif
endif
software: $(software-deps) software: $(software-deps)
ifneq ($(PKGLIST),0) ifneq ($(PKGLIST),0)
@ -307,81 +269,71 @@ device-map: $(RAW_IMAGE)
image: $(STAGE4_TARBALL) partitions device-map scripts/grub.shell scripts/motd.sh image: $(STAGE4_TARBALL) partitions device-map scripts/grub.shell scripts/motd.sh
@scripts/echo Installing files to $(RAW_IMAGE) @scripts/echo Installing files to $(RAW_IMAGE)
mkdir -p loop mkdir $(CHROOT)
mount -o noatime `cat partitions`p1 loop mount -o noatime `cat partitions`p1 $(CHROOT)
tar -Sxf $(STAGE4_TARBALL) --numeric-owner $(COPY_ARGS) -C loop tar -xf $(STAGE4_TARBALL) --numeric-owner $(COPY_ARGS) -C $(CHROOT)
scripts/motd.sh $(EXTERNAL_KERNEL) $(VIRTIO) $(DISK_SIZE) $(SWAP_SIZE) $(UDEV) $(DASH) $(ARCH) > loop/etc/motd scripts/motd.sh $(EXTERNAL_KERNEL) $(VIRTIO) $(DISK_SIZE) $(SWAP_SIZE) $(DASH) $(ARCH) > $(CHROOT)/etc/motd
ifneq ($(EXTERNAL_KERNEL),YES) ifneq ($(EXTERNAL_KERNEL),YES)
loop/sbin/grub --device-map=device-map --no-floppy --batch < scripts/grub.shell $(CHROOT)/sbin/grub --device-map=device-map --no-floppy --batch < scripts/grub.shell
endif endif
umount -l loop umount -l $(CHROOT)
rmdir loop rmdir $(CHROOT)
sync sync
losetup --detach `cat partitions` losetup --detach `cat partitions`
rm -f partitions device-map rm -f partitions device-map
$(QCOW_IMAGE): image $(QCOW_IMAGE): image
@scripts/echo Creating $(QCOW_IMAGE) @scripts/echo Creating $(QCOW_IMAGE)
qemu-img convert -f raw -O qcow2 -c $(RAW_IMAGE) $(QCOW_IMAGE) qemu-img convert -f raw -O qcow2 -c $(RAW_IMAGE) $(QCOW_IMAGE).tmp
mv $(QCOW_IMAGE).tmp $(QCOW_IMAGE)
qcow: $(QCOW_IMAGE) qcow: $(QCOW_IMAGE)
$(XVA_IMAGE): image $(XVA_IMAGE): image
@scripts/echo Creating $(XVA_IMAGE) @scripts/echo Creating $(XVA_IMAGE)
xva.py --disk=$(RAW_IMAGE) --is-hvm --memory=256 --vcpus=1 --name=$(APPLIANCE) \ xva.py --disk=$(RAW_IMAGE) --is-hvm --memory=256 --vcpus=1 --name=$(APPLIANCE) \
--filename=$(XVA_IMAGE) --filename=$(XVA_IMAGE).tmp
mv $(XVA_IMAGE).tmp $(XVA_IMAGE)
xva: $(XVA_IMAGE) xva: $(XVA_IMAGE)
$(VMDK_IMAGE): image $(VMDK_IMAGE): image
@scripts/echo Creating $(VMDK_IMAGE) @scripts/echo Creating $(VMDK_IMAGE)
qemu-img convert -f raw -O vmdk $(RAW_IMAGE) $(VMDK_IMAGE) qemu-img convert -f raw -O vmdk $(RAW_IMAGE) $(VMDK_IMAGE).tmp
mv $(VMDK_IMAGE).tmp $(VMDK_IMAGE)
vmdk: $(VMDK_IMAGE) vmdk: $(VMDK_IMAGE)
build_stage4: software kernel configs/rsync-excludes configs/rsync-excludes-critical grub build_stage4: software kernel configs/rsync-excludes grub
@scripts/echo Creating stage4 tarball: $(STAGE4_TARBALL) @scripts/echo Creating stage4 tarball: $(STAGE4_TARBALL)
mkdir -p stage4 mkdir -p $(IMAGES)
mkdir -p gentoo tar -acf "$(STAGE4_TARBALL).tmp.xz" --numeric-owner $(COPY_ARGS) -C $(CHROOT) --one-file-system .
mount -o bind $(CHROOT) gentoo
tar -aScf "$(STAGE4_TARBALL).tmp.xz" --numeric-owner $(COPY_ARGS) -C gentoo --one-file-system .
umount gentoo
rmdir gentoo
mv "$(STAGE4_TARBALL).tmp.xz" "$(STAGE4_TARBALL)" mv "$(STAGE4_TARBALL).tmp.xz" "$(STAGE4_TARBALL)"
stage4: build_stage4 clean stage4: build_stage4 clean
$(STAGE4_TARBALL): $(STAGE4_TARBALL): stage4
stage4
umount: eclean: compile_options
@scripts/echo Attempting to unmount chroot mounts $(inroot) $(EMERGE) $(USEPKG) -1 --noreplace app-portage/gentoolkit
ifdef PKGDIR $(inroot) eclean-pkg
umount -l $(CHROOT)/var/portage/packages $(inroot) eclean-dist
endif $(inroot) $(EMERGE) --depclean app-portage/gentoolkit
umount -l $(CHROOT)/var/tmp $(MAKE) clean
umount -l $(CHROOT)/dev
umount -l $(CHROOT)/proc
touch umount
remove_checkpoints:
rm -f mounts compile_options base_system portage sync_portage
rm -f parted kernel grub stage3 software preproot sysconfig systools
clean: umount remove_checkpoints clean:
rm -f umount rm -f compile_options kernel grub stage3 software preproot sysconfig systools
rm -rf --one-file-system loop rm -rf --one-file-system -- $(CHROOT)
rm -rf --one-file-system gentoo
rm -rf --one-file-system $(CHROOT)
realclean: clean realclean: clean
${RM} $(RAW_IMAGE) $(QCOW_IMAGE) $(VMDK_IMAGE) ${RM} $(RAW_IMAGE) $(QCOW_IMAGE) $(VMDK_IMAGE)
distclean: distclean:
rm -f *.qcow *.img *.vmdk rm -f -- *.qcow *.img *.vmdk
rm -f latest-stage3.txt stage3-*-latest.tar.bz2 rm -f latest-stage3.txt stage3-*-latest.tar.bz2
rm -f portage-snapshot.tar.bz2 rm -f portage-snapshot.tar.bz2
@ -397,6 +349,7 @@ help:
@echo 'stage4 - Build a stage4 tarball' @echo 'stage4 - Build a stage4 tarball'
@echo 'software - Build software into a chroot' @echo 'software - Build software into a chroot'
@echo 'clean - Unmount chroot and clean directory' @echo 'clean - Unmount chroot and clean directory'
@echo 'eclean - Clean outdated packages and distfiles
@echo 'realclean - Clean and remove image files' @echo 'realclean - Clean and remove image files'
@scripts/echo 'Images' @scripts/echo 'Images'
@echo 'image - Build a raw VM image from stage4' @echo 'image - Build a raw VM image from stage4'
@ -416,11 +369,9 @@ help:
@echo 'VIRTIO=YES - Configure the stage2/image to use virtio' @echo 'VIRTIO=YES - Configure the stage2/image to use virtio'
@echo 'EXTERNAL_KERNEL=YES - Do not build a kernel in the image' @echo 'EXTERNAL_KERNEL=YES - Do not build a kernel in the image'
@echo 'HEADLESS=YES - Build a headless (serial console) image.' @echo 'HEADLESS=YES - Build a headless (serial console) image.'
@echo 'REMOVE_PORTAGE_TREE=NO - Do not exclude the portage tree from the image'
@echo 'PKGDIR= - Directory to use/store binary packages'
@echo 'ENABLE_SSHD=YES - Enable sshd to start automatically in the image' @echo 'ENABLE_SSHD=YES - Enable sshd to start automatically in the image'
@echo @echo
@scripts/echo 'Example' @scripts/echo 'Example'
@echo 'make APPLIANCE=mongodb HEADLESS=YES VIRTIO=YES stage4 qcow clean' @echo 'make APPLIANCE=mongodb HEADLESS=YES VIRTIO=YES stage4 qcow clean'
.PHONY: qcow vmdk clean realclean distclean remove_checkpoints stage4 build-software image stage4 help appliance-list .PHONY: qcow vmdk clean realclean distclean stage4 build-software image stage4 help appliance-list eclean sync_portage

View File

@ -12,8 +12,8 @@ postinstall: airport.service settings.py local.start local.stop issue nginx.conf
sed -i 's/^PG_INITDB_OPTS.*/PG_INITDB_OPTS="--locale=en_US.UTF-8"/' $(CHROOT)/etc/conf.d/postgresql-$(PGVER) sed -i 's/^PG_INITDB_OPTS.*/PG_INITDB_OPTS="--locale=en_US.UTF-8"/' $(CHROOT)/etc/conf.d/postgresql-$(PGVER)
$(inroot) eselect postgresql set $(PGVER) $(inroot) eselect postgresql set $(PGVER)
rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER) rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER)
yes | $(inroot) $(EMERGE) --config postgresql:$(PGVER) $(inroot) bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
$(inroot) rc-update add postgresql-$(PGVER) default $(inroot) systemctl enable postgresql-$(PGVER)
$(inroot) chsh -s /bin/sh postgres $(inroot) chsh -s /bin/sh postgres
$(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv $(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
rm -rf $(CHROOT)/$(APP_ROOT) rm -rf $(CHROOT)/$(APP_ROOT)
@ -40,12 +40,12 @@ endif
cp issue $(CHROOT)/etc/issue cp issue $(CHROOT)/etc/issue
$(M4) -D HOSTNAME=$(HOSTNAME) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf $(M4) -D HOSTNAME=$(HOSTNAME) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
$(inroot) gpasswd -a nginx airport $(inroot) gpasswd -a nginx airport
$(inroot) ln -sf /etc/init.d/nginx $(rcdefault)/nginx $(inroot) systemctl enable nginx
ifeq ($(AVAHI),YES) ifeq ($(AVAHI),YES)
$(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi $(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi
$(inroot) rm -f /etc/avahi/services/* $(inroot) rm -f /etc/avahi/services/*
cp airport.service $(CHROOT)/etc/avahi/services cp airport.service $(CHROOT)/etc/avahi/services
$(inroot) ln -sf /etc/init.d/avahi-daemon $(rcdefault)/avahi-daemon $(inroot) systemctl enable avahi-daemon
endif endif
$(inroot) $(EMERGE) --depclean --with-bdeps=n $(inroot) $(EMERGE) --depclean --with-bdeps=n

View File

@ -1,37 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -2,14 +2,10 @@ app-editors/nano ncurses
dev-lang/python ssl threads xml dev-lang/python ssl threads xml
dev-libs/libpcre cxx dev-libs/libpcre cxx
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal

View File

@ -1,37 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -2,12 +2,9 @@ app-editors/nano ncurses
dev-lang/python ssl threads xml dev-lang/python ssl threads xml
dev-libs/libpcre cxx dev-libs/libpcre cxx
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc sys-apps/portage ipc
sys-apps/portage python3 ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal

View File

@ -1 +0,0 @@
net-misc/dhcp

View File

@ -10,12 +10,12 @@ preinstall:
postinstall: bash_profile nginx.conf dpaste.init settings.py firstboot.start postinstall: bash_profile nginx.conf dpaste.init settings.py firstboot.start
$(inroot) $(EMERGE) $(USEPKG) -1n dev-vcs/git $(inroot) $(EMERGE) $(USEPKG) -1n dev-vcs/git
$(inroot) $(EMERGE) -n $(USEPKG) dev-db/postgresql-server:$(PGVER) $(inroot) $(EMERGE) -n $(USEPKG) dev-db/postgresql:$(PGVER)
$(inroot) passwd -d postgres $(inroot) passwd -d postgres
$(inroot) eselect postgresql set $(PGVER) $(inroot) eselect postgresql set $(PGVER)
$(inroot) rm -rf /var/lib/postgresql/$(PGVER)/data $(inroot) rm -rf /var/lib/postgresql/$(PGVER)/data
yes | $(inroot) $(EMERGE) --config postgresql-server:$(PGVER) $(inroot) bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
$(inroot) ln -sf /etc/init.d/postgresql-$(PGVER) $(rcdefault)/postgresql-$(PGVER) $(inroot) systemctl enable postgresql-$(PGVER)
$(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv $(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
$(inroot) getent passwd $(DPASTE_USER) || \ $(inroot) getent passwd $(DPASTE_USER) || \
$(inroot) useradd -c "Dpaste Server" -G postgres -U -d $(DPASTE_HOME) $(DPASTE_USER) $(inroot) useradd -c "Dpaste Server" -G postgres -U -d $(DPASTE_HOME) $(DPASTE_USER)
@ -38,7 +38,7 @@ postinstall: bash_profile nginx.conf dpaste.init settings.py firstboot.start
cp dpaste.init $(CHROOT)/etc/init.d/dpaste cp dpaste.init $(CHROOT)/etc/init.d/dpaste
cp firstboot.start $(CHROOT)/etc/local.d/firstboot.start cp firstboot.start $(CHROOT)/etc/local.d/firstboot.start
touch $(CHROOT)/firstboot touch $(CHROOT)/firstboot
ln -sf /etc/init.d/nginx $(CHROOT)/$(rcdefault)/nginx $(inroot) systemctl enable nginx
$(inroot) ln -sf ../manage.py $(DPASTE_HOME)/bin/manage $(inroot) ln -sf ../manage.py $(DPASTE_HOME)/bin/manage
$(inroot) $(EMERGE) --depclean --with-bdeps=n $(inroot) $(EMERGE) --depclean --with-bdeps=n

View File

@ -1,37 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -1,5 +1,5 @@
#!/sbin/runscript #!/sbin/runscript
# Copyright 2013-2014 Marduk Enterprises (marduk@python.net) # Copyright 2013-2015 Marduk Enterprises (marduk@python.net)
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
description="GUnicorn server for the dpaste app" description="GUnicorn server for the dpaste app"

View File

@ -4,12 +4,11 @@ dev-libs/libpcre cxx
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
dev-vcs/git curl dev-vcs/git curl
net-misc/curl ssl curl_ssl_openssl net-misc/curl ssl curl_ssl_openssl
net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal
dev-db/postgresql server

View File

@ -1,3 +1,2 @@
net-misc/dhcp
dev-lang/python:2.7 dev-lang/python:2.7
www-servers/nginx www-servers/nginx

View File

@ -1,7 +1,5 @@
preinstall: custom.conf dhclient.conf preinstall: custom.conf
mkdir -p "$(CHROOT)"/etc/dhcp
cp dhclient.conf "$(CHROOT)"/etc/dhcp/dhclient.conf
mkdir -p "$(CHROOT)"/etc/gdm mkdir -p "$(CHROOT)"/etc/gdm
cp custom.conf "$(CHROOT)"/etc/gdm/custom.conf cp custom.conf "$(CHROOT)"/etc/gdm/custom.conf
@ -10,7 +8,6 @@ postinstall:
$(inroot) systemctl enable NetworkManager.service $(inroot) systemctl enable NetworkManager.service
$(inroot) systemctl enable gdm.service $(inroot) systemctl enable gdm.service
$(inroot) systemctl enable avahi-daemon.service $(inroot) systemctl enable avahi-daemon.service
$(inroot) ln -nsf /usr/lib/systemd/systemd /sbin/init
clean: clean:

View File

@ -1,35 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage

View File

@ -1,34 +0,0 @@
send host-name = pick-first-value(gethostname(), "ISC-dhclient");
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-search "fugue.com", "home.vix.com";
#prepend domain-name-servers 127.0.0.1;
#request subnet-mask, broadcast-address, time-offset, routers,
# domain-name, domain-name-servers, host-name;
#require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;
#reboot 10;
#select-timeout 5;
#initial-interval 2;
#media "-link0 -link1 -link2", "link0 link1";
#reject 192.33.137.209;
#alias {
# interface "ep0";
# fixed-address 192.5.5.213;
# option subnet-mask 255.255.255.255;
#}
#lease {
# interface "ep0";
# fixed-address 192.33.137.200;
# medium "link0 link1";
# option subnet-mask 255.255.255.0;
# option broadcast-address 192.33.137.255;
# option routers 192.33.137.250;
# option domain-name-servers 127.0.0.1;
# renew 2 2000/1/12 00:00:01;
# rebind 2 2000/1/12 00:00:01;
# expire 2 2000/1/12 00:00:01;
#}

View File

@ -2,12 +2,10 @@ app-editors/nano ncurses
dev-lang/python ssl sqlite threads xml dev-lang/python ssl sqlite threads xml
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-apps/systemd gudev kmod sys-apps/systemd gudev kmod
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal
virtual/udev gudev kmod virtual/udev gudev kmod
@ -25,6 +23,7 @@ dev-libs/folks eds telepathy
dev-libs/gjs cairo dev-libs/gjs cairo
dev-libs/libpeas gtk dev-libs/libpeas gtk
dev-libs/libxml2 python dev-libs/libxml2 python
dev-libs/nettle gmp
dev-python/pygobject threads dev-python/pygobject threads
gnome-base/gconf gtk policykit gnome-base/gconf gtk policykit
gnome-base/gnome extras gnome-base/gnome extras
@ -37,6 +36,7 @@ gnome-extra/evolution-data-server gnome-online-accounts ssl vala weather
mail-client/evolution ssl mail-client/evolution ssl
media-libs/clutter gtk media-libs/clutter gtk
media-libs/cogl glib opengl pango media-libs/cogl glib opengl pango
media-libs/grilo network playlist
media-libs/gst-plugins-base X pango media-libs/gst-plugins-base X pango
media-libs/gst-plugins-base ogg theora vorbis media-libs/gst-plugins-base ogg theora vorbis
media-libs/harfbuzz glib icu truetype media-libs/harfbuzz glib icu truetype
@ -47,14 +47,15 @@ media-libs/swfdec gtk
media-sound/pulseaudio glib udev media-sound/pulseaudio glib udev
net-dialup/ppp ipv6 net-dialup/ppp ipv6
net-dns/avahi dbus net-dns/avahi dbus
net-misc/dhcp client
net-libs/glib-networking ssl net-libs/glib-networking ssl
net-libs/gtk-vnc gtk3 net-libs/gtk-vnc gtk3
net-libs/liboauth nss
net-libs/libsoup gnome ssl net-libs/libsoup gnome ssl
net-libs/telepathy-glib vala net-libs/telepathy-glib vala
net-libs/webkit-gtk gstreamer jit opengl webgl net-libs/webkit-gtk X gstreamer jit opengl webgl
net-misc/curl ssl net-misc/curl ssl
net-misc/dhcp client net-misc/networkmanager dhclient modemmanager nss ppp
net-misc/networkmanager dhclient gnutls modemmanager ppp
net-misc/vino avahi zlib net-misc/vino avahi zlib
net-print/cups dbus gnutls net-print/cups dbus gnutls
sys-apps/dbus X sys-apps/dbus X

View File

@ -1,37 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -1,4 +1,4 @@
<dev-lang/python-3.0 dev-lang/python:2.7
dev-python/virtualenv dev-python/virtualenv
dev-vcs/git dev-vcs/git
dev-vcs/mercurial dev-vcs/mercurial

View File

@ -1,36 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage

View File

@ -37,7 +37,7 @@ dev-qt/qtsql qt3support mysql
dev-qt/qtsvg accessibility dev-qt/qtsvg accessibility
x11-libs/qt-webkit kde x11-libs/qt-webkit kde
kde-base/kwin opengl kde-base/kwin opengl
kde-base/kdelibs opengl semantic-desktop kde-base/kdelibs crypt opengl semantic-desktop
media-libs/gd png media-libs/gd png
app-text/poppler qt4 app-text/poppler qt4
net-print/cups dbus net-print/cups dbus
@ -47,4 +47,4 @@ virtual/udev hwdb gudev
app-crypt/pinentry qt4 app-crypt/pinentry qt4
dev-libs/boost threads dev-libs/boost threads
sys-libs/zlib minizip sys-libs/zlib minizip
app-office/akonadi-server sqlite app-office/akonadi-server soprano sqlite

View File

@ -1,10 +1,9 @@
preinstall: preinstall:
# v8 needs python2.[67] to build but portage doesn't pull it in
$(inroot) $(EMERGE) -1n $(USEPKG) dev-lang/python:2.7
postinstall: postinstall:
sed -i 's/127\.0\.0\.1/0.0.0.0/g' "$(CHROOT)"/etc/mongodb.conf sed -i 's/127\.0\.0\.1/0.0.0.0/g' "$(CHROOT)"/etc/mongodb.conf
$(inroot) rc-update add mongodb default $(inroot) systemctl enable mongodb.service
clean: clean:

View File

@ -1,36 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -8,10 +8,8 @@ dev-util/scons python_targets_python2_7
net-misc/curl ssl net-misc/curl ssl
net-misc/dhcp client net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal

View File

@ -2,7 +2,7 @@ preinstall:
postinstall: postinstall:
sed -i 's/^APACHE2_OPTS=.*/APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D PHP5 -D SSL -D SSL_DEFAULT_VHOST"/' $(CHROOT)/etc/conf.d/apache2 sed -i 's/^APACHE2_OPTS=.*/APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D PHP5 -D SSL -D SSL_DEFAULT_VHOST"/' $(CHROOT)/etc/conf.d/apache2
$(inroot) rc-update add apache2 default $(inroot) systemctl enable apache2.service
sed -i 's|"/var/www/localhost/htdocs"|"/var/www/localhost/htdocs/owncloud"|g' $(CHROOT)/etc/apache2/vhosts.d/default_vhost.include sed -i 's|"/var/www/localhost/htdocs"|"/var/www/localhost/htdocs/owncloud"|g' $(CHROOT)/etc/apache2/vhosts.d/default_vhost.include

View File

@ -1,37 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage
dev-lang/python

View File

@ -2,4 +2,4 @@
# Settings for owncloud # Settings for owncloud
APACHE2_MODULES="mime alias auth_basic authz_host dir env include info" APACHE2_MODULES="mime alias auth_basic authz_host dir env include info"
PYTHON_TARGETS="$PYTHON_TARGETS python3_3" PYTHON_TARGETS="$PYTHON_TARGETS python3_4"

View File

@ -1,13 +1,10 @@
app-editors/nano ncurses app-editors/nano ncurses
dev-lang/python ssl threads xml dev-lang/python ssl threads xml
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal

View File

@ -10,7 +10,6 @@ AVAHI := NO
M4_DEFS += -D TP_USER=$(TP_USER) -D TP_HOME=$(TP_HOME) -D TP_DB=$(TP_DB) -D HOSTNAME=$(HOSTNAME) M4_DEFS += -D TP_USER=$(TP_USER) -D TP_HOME=$(TP_HOME) -D TP_DB=$(TP_DB) -D HOSTNAME=$(HOSTNAME)
M4C = $(M4) $(M4_DEFS) M4C = $(M4) $(M4_DEFS)
inroot := chroot $(CHROOT)
rcdefault := /etc/runlevels/default rcdefault := /etc/runlevels/default
post_files = bash_profile settings_local.py start-teamplayer stop-teamplayer post_files = bash_profile settings_local.py start-teamplayer stop-teamplayer
@ -24,13 +23,13 @@ postinstall: $(post_files) $(SCROBBLER_AUTH) urls.py
echo 'PG_INITDB_OPTS="--locale=en_US.UTF-8"' >> $(CHROOT)/etc/conf.d/postgresql-$(PGVER) echo 'PG_INITDB_OPTS="--locale=en_US.UTF-8"' >> $(CHROOT)/etc/conf.d/postgresql-$(PGVER)
$(inroot) eselect postgresql set $(PGVER) $(inroot) eselect postgresql set $(PGVER)
$(inroot) rm -rf /var/lib/postgresql/$(PGVER)/data $(inroot) rm -rf /var/lib/postgresql/$(PGVER)/data
yes | $(inroot) $(EMERGE) --config postgresql:$(PGVER) $(inroot) bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
$(inroot) ln -sf /etc/init.d/postgresql-$(PGVER) $(rcdefault)/postgresql-$(PGVER) $(inroot) systemctl enable postgresql-$(PGVER).service
ifeq ($(AVAHI),YES) ifeq ($(AVAHI),YES)
$(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi $(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi
$(inroot) rm -f /etc/avahi/services/* $(inroot) rm -f /etc/avahi/services/*
cp teamplayer.service $(CHROOT)/etc/avahi/services cp teamplayer.service $(CHROOT)/etc/avahi/services
$(inroot) ln -sf /etc/init.d/avahi-daemon $(rcdefault)/avahi-daemon $(inroot) systemctl enable avahi-daemon.service
endif endif
$(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv $(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
$(inroot) getent passwd $(TP_USER) || \ $(inroot) getent passwd $(TP_USER) || \
@ -69,8 +68,8 @@ endif
$(M4C) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf $(M4C) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
$(inroot) gpasswd -a nginx teamplayer $(inroot) gpasswd -a nginx teamplayer
$(inroot) ln -sf /etc/init.d/nginx $(rcdefault)/nginx $(inroot) systemctl enable nginx.service
$(inroot) ln -sf /etc/init.d/ntpd $(rcdefault)/ntpd #$(inroot) ln -sf /etc/init.d/ntpd $(rcdefault)/ntpd
$(inroot) $(EMERGE) --depclean --with-bdeps=n $(inroot) $(EMERGE) --depclean --with-bdeps=n
clean: clean:

View File

@ -1,36 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage

View File

@ -7,15 +7,10 @@ media-libs/flac ogg
media-sound/mpd faad audiofile ffmpeg flac inotify id3tag lame network ogg vorbis mad soup sqlite unicode media-sound/mpd faad audiofile ffmpeg flac inotify id3tag lame network ogg vorbis mad soup sqlite unicode
media-video/ffmpeg avx cpudetection mmx mmxext mp3 network ssse3 x264 media-video/ffmpeg avx cpudetection mmx mmxext mp3 network ssse3 x264
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage ipc sys-apps/portage ipc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal
virtual/ffmpeg x264 mp3 virtual/ffmpeg x264 mp3
www-servers/nginx http www-servers/nginx http
# needed by ntp (bug #533548)
dev-libs/libevent threads

View File

@ -1,3 +1,2 @@
media-sound/mpd media-sound/mpd
net-misc/ntp
www-servers/nginx www-servers/nginx

View File

@ -2,9 +2,9 @@ xdm_files = $(wildcard xdm/*)
preinstall: preinstall:
postinstall: $(xdm_files) xdm.start postinstall: $(xdm_files)
cp xdm/* "$(CHROOT)"/etc/X11/xdm cp xdm/* "$(CHROOT)"/etc/X11/xdm
cp xdm.start "$(CHROOT)"/etc/local.d $(inroot) systemctl enable xdm
clean: clean:

View File

@ -1,36 +0,0 @@
app-editors/nano
net-misc/openssh
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/gcc
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
sys-apps/which
dev-lang/perl
sys-devel/libperl
sys-apps/portage

View File

@ -1,4 +1,4 @@
PYTHON_TARGETS="python3_2" PYTHON_TARGETS="python3_4"
PYTHON_SINGLE_TARGET="python3_2" PYTHON_SINGLE_TARGET="python3_4"
VIDEO_CARDS="" VIDEO_CARDS=""
INPUT_DEVICES="" INPUT_DEVICES=""

View File

@ -2,9 +2,7 @@ dev-lang/python ssl xml
dev-libs/libxml2 python dev-libs/libxml2 python
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev openrc
sys-libs/ncurses minimal sys-libs/ncurses minimal
x11-base/xorg-server minimal xorg nptl x11-base/xorg-server minimal xorg nptl

View File

@ -1,4 +0,0 @@
#!/bin/sh
xdm

View File

@ -2,11 +2,11 @@ xdm_files = $(wildcard xdm/*)
preinstall: preinstall:
postinstall: xdm.start $(xdm_files) postinstall: $(xdm_files)
cp $(xdm_files) "$(CHROOT)"/etc/X11/xdm cp $(xdm_files) "$(CHROOT)"/etc/X11/xdm
echo "XSESSION=Xfce4" > "$(CHROOT)"/etc/env.d/99local echo "XSESSION=Xfce4" > "$(CHROOT)"/etc/env.d/99local
chroot "$(CHROOT)" env-update $(inroot) env-update
cp xdm.start "$(CHROOT)/etc/local.d/xdm.start" $(inroot) systemctl enable xdm.service
clean: clean:

View File

@ -1,33 +0,0 @@
app-editors/nano
net-misc/rsync
net-misc/wget
sys-kernel/gentoo-sources
sys-kernel/linux-headers
sys-devel/automake
sys-devel/bison
sys-devel/make
sys-devel/flex
sys-devel/automake-wrapper
sys-devel/autoconf-wrapper
sys-devel/autoconf
sys-devel/m4
sys-devel/gcc-config
sys-devel/libtool
sys-devel/binutils
sys-devel/binutils-config
sys-devel/patch
sys-devel/gnuconfig
app-admin/python-updater
app-admin/perl-cleaner
sys-apps/man-pages
sys-apps/man
sys-apps/file
sys-apps/less
sys-apps/texinfo
sys-apps/busybox
sys-apps/debianutils
sys-apps/man-pages-posix
sys-apps/sandbox
dev-lang/perl
sys-devel/libperl
sys-apps/portage

View File

@ -1,4 +1,4 @@
USE="$USE gtk3" USE="$USE gtk3"
PYTHON_TARGETS="python3_2 python2_7" PYTHON_TARGETS="python3_4 python2_7"
USE_PYTHON="3.2" USE_PYTHON="3.4"
PYTHON_SINGLE_TARGET="python2_7" PYTHON_SINGLE_TARGET="python2_7"

View File

@ -3,16 +3,16 @@ dev-db/sqlite extensions
dev-lang/python ssl sqlite threads xml dev-lang/python ssl sqlite threads xml
dev-libs/libxml2 python dev-libs/libxml2 python
dev-util/pkgconfig internal-glib dev-util/pkgconfig internal-glib
gnome-base/gvfs udev udisks
media-libs/harfbuzz glib truetype media-libs/harfbuzz glib truetype
media-libs/libpng apng media-libs/libpng apng
media-libs/libvpx threads media-libs/libvpx threads
net-misc/dhcp client
sys-apps/hwids udev sys-apps/hwids udev
sys-apps/kmod openrc tools sys-apps/kmod tools
sys-apps/openrc netifrc
sys-apps/portage python3 ipc sys-apps/portage python3 ipc
sys-apps/systemd gudev
sys-devel/gcc cxx nptl sys-devel/gcc cxx nptl
sys-fs/udev gudev openrc sys-fs/udev gudev
sys-kernel/gentoo-sources symlink sys-kernel/gentoo-sources symlink
sys-libs/ncurses minimal sys-libs/ncurses minimal
www-client/firefox bindist www-client/firefox bindist

View File

@ -1,3 +0,0 @@
#!/bin/sh
/usr/bin/xdm > /dev/null

View File

@ -1,82 +0,0 @@
# /etc/etc-update.conf: config file for `etc-update` utility
# edit the lines below to your liking
# mode - 0 for text, 1 for menu (support incomplete)
# note that you need dev-util/dialog installed
mode="0"
# Whether to clear the term prior to each display
#clear_term="yes"
clear_term="no"
# Whether trivial/comment changes should be automerged
eu_automerge="yes"
# arguments used whenever rm is called
rm_opts=""
# arguments used whenever mv is called
mv_opts=""
# arguments used whenever cp is called
cp_opts=""
# set the pager for use with diff commands (this will
# cause the PAGER environment variable to be ignored)
#pager="less"
# For emacs-users (see NOTE_2)
# diff_command="eval emacs -nw --eval=\'\(ediff\ \"%file1\"\ \"%file2\"\)\'"
#using_editor=1
# vim-users: you CAN use vimdiff for diff_command. (see NOTE_1 and NOTE_2)
#diff_command="vim -d %file1 %file2"
#using_editor=1
# If using colordiff instead of diff, the less -R option may be required
# for correct display (see 'pager' setting above).
diff_command="diff -uN %file1 %file2"
using_editor=0
# vim-users: don't use vimdiff for merging (see NOTE_1)
merge_command="sdiff -s -o %merged %orig %new"
# EXPLANATION
#
# pager:
#
# Examples of pager usage:
# pager="cat" # don't use a pager
# pager="less -E" # less
# pager="more" # more
#
#
# diff_command:
#
# Arguments:
# %file1 [REQUIRED]
# %file2 [REQUIRED]
#
# Examples of diff_command:
# diff_command="diff -uN %file1 %file2" # diff
# diff_command="vim -d %file1 %file2" # vimdiff
#
#
# merge_command:
#
# Arguments:
# %orig [REQUIRED]
# %new [REQUIRED]
# %merged [REQUIRED]
#
# Examples of merge_command:
# merge_command="sdiff -s -o %merged %old %new" # sdiff
#
# NOTE_1: Editors such as vim/vimdiff are not usable for the merge_command
# because it is not known what filenames the produced files have (the user can
# choose while using those programs)
# NOTE_2: Make sure using_editor is set to "1" when using an editor as
# diff_command!

4
configs/eth.network Normal file
View File

@ -0,0 +1,4 @@
[Match]
[Network]
DHCP=both

View File

@ -3,5 +3,5 @@ timeout 5
title Gentoo Linux title Gentoo Linux
root (hd0,0) root (hd0,0)
kernel /boot/vmlinuz root=/dev/sda1 rootfstype=ext4 net.ifnames=0 quiet kernel /boot/vmlinuz root=/dev/sda1 rootfstype=ext4 net.ifnames=0 init=/usr/lib/systemd/systemd quiet

View File

@ -2,7 +2,7 @@ CFLAGS="-Os -Qn -s"
CXXFLAGS="-Os -Qn -s" CXXFLAGS="-Os -Qn -s"
CHOST="x86_64-pc-linux-gnu" CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j2" MAKEOPTS="-j2"
USE="-* nptl pam unicode bindist" USE="-* bindist nptl pam systemd unicode"
ALSA_PCM_PLUGINS="*" ALSA_PCM_PLUGINS="*"
CLEAN_DELAY="0" CLEAN_DELAY="0"
EMERGE_WARNING_DELAY="0" EMERGE_WARNING_DELAY="0"
@ -11,4 +11,4 @@ EPAUSE_IGNORE="1"
EMERGE_DEFAULT_OPTS="--jobs=2 --autounmask=n" EMERGE_DEFAULT_OPTS="--jobs=2 --autounmask=n"
FEATURES="noinfo -test nodoc noman nostrip unmerge-orphans buildpkg notitles parallel-fetch" FEATURES="noinfo -test nodoc noman nostrip unmerge-orphans buildpkg notitles parallel-fetch"
CURL_SSL="openssl" CURL_SSL="openssl"
PYTHON_TARGETS="python3_3" PYTHON_TARGETS="python3_4"

View File

@ -2,7 +2,7 @@ CFLAGS="-Os -Qn -s"
CXXFLAGS="-Os -Qn -s" CXXFLAGS="-Os -Qn -s"
CHOST="i686-pc-linux-gnu" CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j2" MAKEOPTS="-j2"
USE="-* nptl pam unicode bindist" USE="-* bindist nptl pam systemd unicode"
ALSA_PCM_PLUGINS="*" ALSA_PCM_PLUGINS="*"
CLEAN_DELAY="0" CLEAN_DELAY="0"
EMERGE_WARNING_DELAY="0" EMERGE_WARNING_DELAY="0"
@ -11,5 +11,4 @@ EPAUSE_IGNORE="1"
EMERGE_DEFAULT_OPTS="--jobs=2 --autounmask=n" EMERGE_DEFAULT_OPTS="--jobs=2 --autounmask=n"
FEATURES="noinfo -test nodoc noman nostrip unmerge-orphans buildpkg notitles parallel-fetch" FEATURES="noinfo -test nodoc noman nostrip unmerge-orphans buildpkg notitles parallel-fetch"
CURL_SSL="openssl" CURL_SSL="openssl"
PYTHON_TARGETS="python3_3"
ABI_X86="32" ABI_X86="32"

View File

@ -1,10 +0,0 @@
usr/include/*
usr/lib/python*/test
usr/lib64/python*/test
usr/share/gtk-doc
var/db/pkg
usr/lib/perl*
usr/lib64/perl*
usr/share/doc/*
*.pyc
*.pyo

View File

@ -1,10 +0,0 @@
#!/bin/sh
script="/etc/acpi/PWRF/00000080"
if [ ! -f $script ] ; then
mkdir -p `dirname $script`
echo '#!/bin/sh\n/sbin/halt\n' > $script
chmod +x $script
fi
busybox acpid

View File

@ -5,9 +5,8 @@ EXTERNAL_KERNEL=$1
VIRTIO=$2 VIRTIO=$2
DISK_SIZE=$3 DISK_SIZE=$3
SWAP_SIZE=$4 SWAP_SIZE=$4
UDEV=$5 DASH=$5
DASH=$6 ARCH=$6
ARCH=$7
TZ=$TIMEZONE ; export TZ TZ=$TIMEZONE ; export TZ
@ -32,7 +31,6 @@ cat << EOF | column -c80
VIRTIO: ${VIRTIO} VIRTIO: ${VIRTIO}
DISK_SIZE: ${DISK_SIZE} DISK_SIZE: ${DISK_SIZE}
SWAP_SIZE: ${SWAP_SIZE}M SWAP_SIZE: ${SWAP_SIZE}M
UDEV: ${UDEV}
DASH: ${DASH} DASH: ${DASH}
EOF EOF

View File

@ -17,3 +17,4 @@ file=$(egrep -v 'nomultilib|hardened|uclibc|^#' latest-stage3.txt \
file=/releases/${g_arch}/autobuilds/${file} file=/releases/${g_arch}/autobuilds/${file}
echo ${file} echo ${file}
${rsync} ${RSYNC_MIRROR}${file} stage3-${arch}-latest.tar.bz2 ${rsync} ${RSYNC_MIRROR}${file} stage3-${arch}-latest.tar.bz2
rm -f latest-stage3.txt