Initial commit
This commit is contained in:
commit
fe5646804c
|
@ -0,0 +1,180 @@
|
||||||
|
|
||||||
|
HOSTNAME=gstable
|
||||||
|
RAW_IMAGE=$(HOSTNAME).img
|
||||||
|
QCOW_IMAGE=$(HOSTNAME).qcow
|
||||||
|
VMDK_IMAGE=$(HOSTNAME).vmdk
|
||||||
|
VIRTIO=NO
|
||||||
|
TIMEZONE=UTC
|
||||||
|
DISK_SIZE=6.0G
|
||||||
|
SWAP_SIZE=30
|
||||||
|
CHROOT=chroot
|
||||||
|
ARCH=amd64
|
||||||
|
MAKEOPTS=-j4
|
||||||
|
PRUNE_CRITICAL=NO
|
||||||
|
|
||||||
|
INSTALL=install
|
||||||
|
M4=m4
|
||||||
|
M4_DEFS=-D HOSTNAME=$(HOSTNAME)
|
||||||
|
M4C=$(M4) $(M4_DEFS)
|
||||||
|
USEPKG=--usepkg --binpkg-respect-use=y
|
||||||
|
PARTED=/usr/sbin/parted
|
||||||
|
PORTAGE=/portage
|
||||||
|
DISTFILES=/var/portage/distfiles
|
||||||
|
STAGE3=ftp://ftp.osuosl.org/pub/gentoo/releases/$(ARCH)/autobuilds/current-stage3/stage3-$(ARCH)-*.tar.bz2
|
||||||
|
KERNEL=gentoo-sources
|
||||||
|
|
||||||
|
|
||||||
|
all: image
|
||||||
|
|
||||||
|
$(RAW_IMAGE):
|
||||||
|
qemu-img create -f raw $(RAW_IMAGE) $(DISK_SIZE)
|
||||||
|
|
||||||
|
partitions: parted $(RAW_IMAGE)
|
||||||
|
$(PARTED) -s -a optimal $(RAW_IMAGE) mklabel msdos
|
||||||
|
$(PARTED) -s -a optimal $(RAW_IMAGE) mkpart primary ext4 0 $(DISK_SIZE)
|
||||||
|
$(PARTED) -s -a optimal $(RAW_IMAGE) set 1 boot on
|
||||||
|
touch partitions
|
||||||
|
|
||||||
|
parted:
|
||||||
|
emerge -n1 $(USEPKG) parted
|
||||||
|
touch parted
|
||||||
|
|
||||||
|
preproot: stage3
|
||||||
|
cp -L /etc/resolv.conf $(CHROOT)/etc/
|
||||||
|
mkdir -p $(CHROOT)/usr/portage
|
||||||
|
mount -t proc none $(CHROOT)/proc
|
||||||
|
mount -o bind /dev/ $(CHROOT)/dev
|
||||||
|
mount -o bind /var/tmp $(CHROOT)/var/tmp
|
||||||
|
mount -o bind $(PORTAGE) $(CHROOT)/usr/portage
|
||||||
|
mkdir -p $(CHROOT)/usr/portage/distfiles
|
||||||
|
mount -o bind $(DISTFILES) $(CHROOT)/usr/portage/distfiles
|
||||||
|
chroot $(CHROOT) locale-gen
|
||||||
|
touch preproot
|
||||||
|
|
||||||
|
stage3: make.conf package.use package.keywords locale.gen
|
||||||
|
mkdir -p $(CHROOT)
|
||||||
|
wget -c -q -nc $(STAGE3)
|
||||||
|
tar xvjpf stage3-*.tar.bz2 -C $(CHROOT)
|
||||||
|
cp make.conf $(CHROOT)/etc/make.conf
|
||||||
|
cp locale.gen $(CHROOT)/etc/locale.gen
|
||||||
|
mkdir -p $(CHROOT)/etc/portage
|
||||||
|
cp package.use $(CHROOT)/etc/portage/package.use
|
||||||
|
cp package.keywords $(CHROOT)/etc/portage/package.keywords
|
||||||
|
touch stage3
|
||||||
|
|
||||||
|
kernel: preproot kernel.config
|
||||||
|
chroot $(CHROOT) cp /usr/share/zoneinfo/GMT /etc/localtime
|
||||||
|
chroot $(CHROOT) emerge -N sys-kernel/$(KERNEL)
|
||||||
|
cp kernel.config $(CHROOT)/usr/src/linux/.config
|
||||||
|
chroot $(CHROOT) gcc-config 1
|
||||||
|
chroot $(CHROOT) make $(MAKEOPTS) -C /usr/src/linux oldconfig
|
||||||
|
chroot $(CHROOT) make $(MAKEOPTS) -C /usr/src/linux
|
||||||
|
chroot $(CHROOT) make $(MAKEOPTS) -C /usr/src/linux modules_install
|
||||||
|
chroot $(CHROOT) make $(MAKEOPTS) -C /usr/src/linux install
|
||||||
|
cd $(CHROOT)/boot ; \
|
||||||
|
k=`/bin/ls -1 --sort=time vmlinuz-*|head -n 1` ; \
|
||||||
|
ln -nsf $$k vmlinuz
|
||||||
|
touch kernel
|
||||||
|
|
||||||
|
sysconfig: preproot fstab
|
||||||
|
cp fstab $(CHROOT)/etc/fstab
|
||||||
|
if [ "$(VIRTIO)" == "YES" ] ; then \
|
||||||
|
sed -i 's/sda/vda/' $(CHROOT)/etc/fstab; \
|
||||||
|
fi
|
||||||
|
dd if=/dev/zero of=$(CHROOT)/.swap bs=1M count=$(SWAP_SIZE)
|
||||||
|
/sbin/mkswap $(CHROOT)/.swap
|
||||||
|
echo HOSTNAME=$(HOSTNAME) > $(CHROOT)/etc/conf.d/hostname
|
||||||
|
sed -i 's/^#TIMEZONE=.*/TIMEZONE="$(TIMEZONE)"/' $(CHROOT)/etc/conf.d/clock
|
||||||
|
echo 'config_eth0=( "dhcp" )' > $(CHROOT)/etc/conf.d/net
|
||||||
|
chroot $(CHROOT) rc-update add net.eth0 default
|
||||||
|
echo "127.0.0.1 $(HOSTNAME) localhost" > $(CHROOT)/etc/hosts
|
||||||
|
touch sysconfig
|
||||||
|
|
||||||
|
systools: sysconfig world etc-update.conf
|
||||||
|
chroot $(CHROOT) emerge -n $(USEPKG) syslog-ng
|
||||||
|
chroot $(CHROOT) rc-update add syslog-ng default
|
||||||
|
chroot $(CHROOT) emerge -DN $(USEPKG) system
|
||||||
|
chroot $(CHROOT) emerge -Nn $(USEPKG) `cat world`
|
||||||
|
#chroot $(CHROOT) emerge -DuN $(USEPKG) world
|
||||||
|
chroot $(CHROOT) emerge --depclean --with-bdeps=n
|
||||||
|
chroot $(CHROOT) emerge -1n app-portage/gentoolkit
|
||||||
|
cp etc-update.conf $(CHROOT)/etc/
|
||||||
|
chroot $(CHROOT) revdep-rebuild -i
|
||||||
|
chroot $(CHROOT) etc-update
|
||||||
|
chroot $(CHROOT) emerge -C gentoolkit
|
||||||
|
touch systools
|
||||||
|
|
||||||
|
grub: preproot grub.conf kernel
|
||||||
|
chroot $(CHROOT) emerge -nN $(USEPKG) sys-boot/grub
|
||||||
|
cp grub.conf $(CHROOT)/boot/grub/grub.conf
|
||||||
|
if [ "$(VIRTIO)" == "YES" ] ; then \
|
||||||
|
sed -i 's/sda/vda/' $(CHROOT)/boot/grub/grub.conf ; \
|
||||||
|
fi
|
||||||
|
touch grub
|
||||||
|
|
||||||
|
software: systools issue critical
|
||||||
|
cp issue $(CHROOT)/etc/issue
|
||||||
|
chroot $(CHROOT) emerge --depclean --with-bdeps=n
|
||||||
|
chroot $(CHROOT) gcc-config 1
|
||||||
|
chroot $(CHROOT) passwd -d root
|
||||||
|
chroot $(CHROOT) passwd -e root
|
||||||
|
if [ "$(PRUNE_CRITICAL)" = "YES" ] ; then \
|
||||||
|
chroot $(CHROOT) emerge -C `cat critical` ; \
|
||||||
|
fi
|
||||||
|
touch software
|
||||||
|
|
||||||
|
|
||||||
|
device-map: $(RAW_IMAGE)
|
||||||
|
echo '(hd0) ' $(RAW_IMAGE) > device-map
|
||||||
|
|
||||||
|
|
||||||
|
image: $(RAW_IMAGE) partitions systools grub software device-map grub.shell
|
||||||
|
mkdir -p loop
|
||||||
|
qemu-nbd -c /dev/nbd1 $(RAW_IMAGE)
|
||||||
|
sleep 3
|
||||||
|
mkfs.ext4 /dev/nbd1p1
|
||||||
|
mount /dev/nbd1p1 loop/
|
||||||
|
mkdir -p gentoo
|
||||||
|
mount -o bind $(CHROOT) gentoo
|
||||||
|
rm -rf gentoo/usr/src/linux-*
|
||||||
|
rm -rf gentoo/tmp/*
|
||||||
|
rm -rf gentoo/var/tmp/*
|
||||||
|
if [ "$(PRUNE_CRITICAL)" = "YES" ] ; then \
|
||||||
|
rm -rf gentoo/usr/lib/python*/test ; \
|
||||||
|
rm -rf gentoo/usr/share/gtk-doc ; \
|
||||||
|
rm -rf gentoo/var/db/pkg ; \
|
||||||
|
rm -rf gentoo/usr/lib/perl* ; \
|
||||||
|
fi
|
||||||
|
rsync -ax gentoo/ loop/
|
||||||
|
loop/sbin/grub --device-map=device-map --no-floppy --batch < grub.shell
|
||||||
|
umount loop
|
||||||
|
umount gentoo
|
||||||
|
sleep 3
|
||||||
|
rmdir loop
|
||||||
|
rm -rf gentoo
|
||||||
|
qemu-nbd -d /dev/nbd1
|
||||||
|
touch image
|
||||||
|
|
||||||
|
$(QCOW_IMAGE): $(RAW_IMAGE) image
|
||||||
|
qemu-img convert -f raw -O qcow2 -c $(RAW_IMAGE) $(QCOW_IMAGE)
|
||||||
|
|
||||||
|
qcow: $(QCOW_IMAGE)
|
||||||
|
|
||||||
|
|
||||||
|
$(VMDK_IMAGE): $(RAW_IMAGE) image
|
||||||
|
qemu-img convert -f raw -O vmdk $(RAW_IMAGE) $(VMDK_IMAGE)
|
||||||
|
|
||||||
|
vmdk: $(VMDK_IMAGE)
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: qcow vmdk clean
|
||||||
|
|
||||||
|
clean:
|
||||||
|
umount $(CHROOT)/usr/portage/distfiles $(CHROOT)/usr/portage $(CHROOT)/var/tmp $(CHROOT)/dev $(CHROOT)/proc || true
|
||||||
|
rm -f parted grub stage3 software preproot sysconfig systools image kernel partitions device-map
|
||||||
|
rm -rf loop
|
||||||
|
rm -rf gentoo
|
||||||
|
rm -rf $(CHROOT)
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
rm -f $(RAW_IMAGE) $(QCOW_IMAGE) $(VMDK_IMAGE)
|
|
@ -0,0 +1,36 @@
|
||||||
|
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
|
|
@ -0,0 +1,75 @@
|
||||||
|
# /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 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=""
|
||||||
|
|
||||||
|
# pager for use with diff commands
|
||||||
|
#pager=""
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
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="" # 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!
|
|
@ -0,0 +1,4 @@
|
||||||
|
# <fs> <mountpoint> <type> <opts> <dump/pass>
|
||||||
|
/dev/vda1 / ext4 noatime 1 1
|
||||||
|
/.swap none swap sw 0 0
|
||||||
|
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
|
|
@ -0,0 +1,7 @@
|
||||||
|
default 0
|
||||||
|
timeout 5
|
||||||
|
|
||||||
|
title Gentoo Linux
|
||||||
|
root (hd0,0)
|
||||||
|
kernel /boot/vmlinuz root=/dev/sda1
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
root (hd0,0)
|
||||||
|
setup (hd0)
|
||||||
|
quit
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
[H[2J
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
Gentoo Virtual Machine
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,31 @@
|
||||||
|
# /etc/locale.gen: list all of the locales you want to have on your system
|
||||||
|
#
|
||||||
|
# The format of each line:
|
||||||
|
# <locale> <charmap>
|
||||||
|
#
|
||||||
|
# Where <locale> is a locale located in /usr/share/i18n/locales/ and
|
||||||
|
# where <charmap> is a charmap located in /usr/share/i18n/charmaps/.
|
||||||
|
#
|
||||||
|
# All blank lines and lines starting with # are ignored.
|
||||||
|
#
|
||||||
|
# For the default list of supported combinations, see the file:
|
||||||
|
# /usr/share/i18n/SUPPORTED
|
||||||
|
#
|
||||||
|
# Whenever glibc is emerged, the locales listed here will be automatically
|
||||||
|
# rebuilt for you. After updating this file, you can simply run `locale-gen`
|
||||||
|
# yourself instead of re-emerging glibc.
|
||||||
|
|
||||||
|
en_US ISO-8859-1
|
||||||
|
en_US.UTF-8 UTF-8
|
||||||
|
#ja_JP.EUC-JP EUC-JP
|
||||||
|
#ja_JP.UTF-8 UTF-8
|
||||||
|
#ja_JP EUC-JP
|
||||||
|
#en_HK ISO-8859-1
|
||||||
|
#en_PH ISO-8859-1
|
||||||
|
#de_DE ISO-8859-1
|
||||||
|
#de_DE@euro ISO-8859-15
|
||||||
|
#es_MX ISO-8859-1
|
||||||
|
#fa_IR UTF-8
|
||||||
|
#fr_FR ISO-8859-1
|
||||||
|
#fr_FR@euro ISO-8859-15
|
||||||
|
#it_IT ISO-8859-1
|
|
@ -0,0 +1,10 @@
|
||||||
|
CFLAGS="-O2 -pipe"
|
||||||
|
CXXFLAGS="-O2 -pipe"
|
||||||
|
CHOST="x86_64-pc-linux-gnu"
|
||||||
|
MAKEOPTS="-j4"
|
||||||
|
USE="-* nptl pam unicode"
|
||||||
|
CLEAN_DELAY="0"
|
||||||
|
AUTO_CLEAN="yes"
|
||||||
|
EPAUSE_IGNORE="1"
|
||||||
|
EMERGE_DEFAULT_OPTS="--jobs=4"
|
||||||
|
FEATURES="noinfo -test nodoc noman unmerge-orphans buildpkg"
|
|
@ -0,0 +1,3 @@
|
||||||
|
app-editors/nano ncurses
|
||||||
|
dev-lang/python ssl threads xml
|
||||||
|
sys-kernel/gentoo-sources symlink
|
Loading…
Reference in New Issue