summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2012-11-22 12:37:42 +0200
committerFathi Boudra <fathi.boudra@linaro.org>2012-11-22 12:37:42 +0200
commit2bcb5644fd0d4aefd0117d338c6dd4f0b34dff34 (patch)
tree904a471fc06a6cf24af4606daa948ee0cf5c313b
Initial commitHEADmaster
-rwxr-xr-xprecise-armhf-nano/Makefile32
-rw-r--r--precise-armhf-nano/README16
-rwxr-xr-xprecise-armhf-nano/configure42
-rw-r--r--precise-armhf-nano/customization/archives/linaro-overlay-ppa.key.chroot12
-rw-r--r--precise-armhf-nano/customization/archives/linaro-overlay-ppa.list.chroot3
-rwxr-xr-xprecise-armhf-nano/customization/hooks/01-setup_user_linaro.chroot7
-rwxr-xr-xprecise-armhf-nano/customization/hooks/02-add_linaro_to_groups.chroot63
-rwxr-xr-xprecise-armhf-nano/customization/hooks/03-check_sudoers_for_admin.chroot17
-rwxr-xr-xprecise-armhf-nano/customization/hooks/20-extract_initrd_uuid.binary29
-rwxr-xr-xprecise-armhf-nano/customization/hooks/51-remove_usr_share_parts.binary105
-rwxr-xr-xprecise-armhf-nano/customization/hooks/52-remove_etc_parts.binary7
-rwxr-xr-xprecise-armhf-nano/customization/hooks/53-remove_var_lib_parts.binary15
-rw-r--r--precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale1
-rw-r--r--precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hostname1
-rw-r--r--precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hosts7
-rw-r--r--precise-armhf-nano/customization/package-lists/linaro-nano.list.chroot2
16 files changed, 359 insertions, 0 deletions
diff --git a/precise-armhf-nano/Makefile b/precise-armhf-nano/Makefile
new file mode 100755
index 0000000..62f1830
--- /dev/null
+++ b/precise-armhf-nano/Makefile
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# (C) 2012 Fathi Boudra <fathi.boudra@linaro.org>
+
+# Calls all necessary live-build programs in the correct order to complete
+# the bootstrap, chroot, binary, and source stage.
+
+# You need live-build package installed and superuser privileges.
+
+IMAGEPREFIX=linaro-precise-nano-`date +%Y%m%d`-$(BUILD_NUMBER)
+LOGFILE=$(IMAGEPREFIX).build-log.txt
+CONFIGFILE=$(IMAGEPREFIX).config.tar.bz2
+LISTFILE=$(IMAGEPREFIX).list
+PKGSFILE=$(IMAGEPREFIX).packages
+TARGZFILE=$(IMAGEPREFIX).tar.gz
+MD5SUMSFILE=$(IMAGEPREFIX).md5sums.txt
+SHA1SUMSFILE=$(IMAGEPREFIX).sha1sums.txt
+
+all:
+ set -e; sudo lb build 2>&1 | tee $(LOGFILE)
+ if [ -f binary-tar.tar.gz ]; then \
+ tar -jcf $(CONFIGFILE) auto/ config/ configure; \
+ sudo mv binary.list $(LISTFILE); \
+ sudo mv binary.packages $(PKGSFILE); \
+ sudo mv binary-tar.tar.gz $(TARGZFILE); \
+ md5sum $(LOGFILE) $(CONFIGFILE) $(LISTFILE) $(PKGSFILE) $(TARGZFILE) > $(MD5SUMSFILE); \
+ sha1sum $(LOGFILE) $(CONFIGFILE) $(LISTFILE) $(PKGSFILE) $(TARGZFILE) > $(SHA1SUMSFILE); \
+ fi
+
+clean:
+ sudo lb clean --purge
+ rm -f $(IMAGEPREFIX).*
diff --git a/precise-armhf-nano/README b/precise-armhf-nano/README
new file mode 100644
index 0000000..917e1f3
--- /dev/null
+++ b/precise-armhf-nano/README
@@ -0,0 +1,16 @@
+* To build binary image:
+ * install live-build qemu-user-static
+ * run configure
+ * run make
+
+* Scripts:
+ * configure
+ * Makefile
+
+* Configuration Layout
+
+`-- ./config
+
+* Customization Layout
+
+`-- ./customization
diff --git a/precise-armhf-nano/configure b/precise-armhf-nano/configure
new file mode 100755
index 0000000..0a0f1a3
--- /dev/null
+++ b/precise-armhf-nano/configure
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# (C) 2012 Fathi Boudra <fathi.boudra@linaro.org>
+
+# Create configuration for live-build.
+
+# You need live-build package installed.
+
+set -e
+
+echo "I: create configuration"
+export LB_BOOTSTRAP_INCLUDE="apt-transport-https gnupg"
+lb config \
+ --apt-indices none \
+ --apt-secure false \
+ --architectures armhf \
+ --archive-areas 'main universe' \
+ --binary-filesystem ext4 \
+ --binary-images tar \
+ --bootappend-live "hostname=linaro-nano username=linaro" \
+ --bootstrap-flavour minimal \
+ --bootstrap-qemu-arch armhf \
+ --bootstrap-qemu-static /usr/bin/qemu-arm-static \
+ --cache false \
+ --chroot-filesystem none \
+ --distribution precise \
+ --gzip-options '-9 --rsyncable' \
+ --iso-publisher 'Linaro; http://www.linaro.org/; linaro-dev@lists.linaro.org' \
+ --iso-volume 'Linaro precise $(date +%Y%m%d-%H:%M)' \
+ --linux-flavours none \
+ --linux-packages none \
+ --mirror-bootstrap "http://ci.linaro.org/~ubuntu/" \
+ --mode ubuntu \
+ --package-lists minimal \
+ --security false \
+ --system normal \
+ --volatile false
+
+echo "I: copy customization"
+cp -rf customization/* config/
+
+echo "I: done"
diff --git a/precise-armhf-nano/customization/archives/linaro-overlay-ppa.key.chroot b/precise-armhf-nano/customization/archives/linaro-overlay-ppa.key.chroot
new file mode 100644
index 0000000..0966316
--- /dev/null
+++ b/precise-armhf-nano/customization/archives/linaro-overlay-ppa.key.chroot
@@ -0,0 +1,12 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: SKS 1.0.10
+
+mI0ETA9rYAEEAM3qPwNzaXsRRyNARLCAEVl7BCte8isURYwLxMgvMlR7RmLip81ox0o4d61E
+Q5uuT5LWEp2/f2xvw2Pn+7uOKbpL0JLyscD7PntrJnZay8vitDXWMUAyQTMltyjfKQ3N3Zrb
+B424lJYL4r04fjFagN5R4+LFaIzO6P71bwk6rj1dABEBAAG0HExhdW5jaHBhZCBMaW5hcm8g
+T3ZlcmxheSBQUEGItgQTAQIAIAUCTA9rYAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
+EPH8usp74fl7+1gD/j9IaY1wCG8RrgYUTVnh8erd3ooHCzN+hlgjgDo0MLYv5DPes8VSgFOC
+j1TLPGwrqSikdGAKpMu7vhJSPEkYC7Y+DGkS6Vuap8O3olnZfc4BPfSF1XI18KLv0GeBiEOq
+xiQvTnlfgEyu21LjFMtAjh6qfbRvJonqvqEbK/7QrvNI
+=sAtw
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/precise-armhf-nano/customization/archives/linaro-overlay-ppa.list.chroot b/precise-armhf-nano/customization/archives/linaro-overlay-ppa.list.chroot
new file mode 100644
index 0000000..5eedd6a
--- /dev/null
+++ b/precise-armhf-nano/customization/archives/linaro-overlay-ppa.list.chroot
@@ -0,0 +1,3 @@
+# Linaro Overlay PPA
+deb http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu @DISTRIBUTION@ main
+deb-src http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu @DISTRIBUTION@ main
diff --git a/precise-armhf-nano/customization/hooks/01-setup_user_linaro.chroot b/precise-armhf-nano/customization/hooks/01-setup_user_linaro.chroot
new file mode 100755
index 0000000..9c65f97
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/01-setup_user_linaro.chroot
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+echo "I: create linaro user"
+adduser --gecos linaro --disabled-login linaro
+
+echo "I: set linaro user password"
+echo "linaro:linaro" | chpasswd
diff --git a/precise-armhf-nano/customization/hooks/02-add_linaro_to_groups.chroot b/precise-armhf-nano/customization/hooks/02-add_linaro_to_groups.chroot
new file mode 100755
index 0000000..f3b2d4e
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/02-add_linaro_to_groups.chroot
@@ -0,0 +1,63 @@
+#!/bin/sh -x
+
+DEFGROUPS="admin,adm,dialout,cdrom,plugdev,audio,dip,video"
+
+/bin/egrep -i "^admin" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User admin exists in /etc/group"
+else
+ echo "User admin does not exists in /etc/group must create"
+ groupadd admin
+fi
+/bin/egrep -i "^dialout" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User dialout exists in /etc/group"
+else
+ echo "User dialout does not exists in /etc/group must create"
+ groupadd dialout
+fi
+/bin/egrep -i "^cdrom" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User cdrom exists in /etc/group"
+else
+ echo "User cdrom does not exists in /etc/group must create"
+ groupadd cdrom
+fi
+/bin/egrep -i "^plugdev" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User plugdev exists in /etc/group"
+else
+ echo "User plugdev does not exists in /etc/group must create"
+ groupadd plugdev
+fi
+/bin/egrep -i "^audio" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User audio exists in /etc/group"
+else
+ echo "User audio does not exists in /etc/group must create"
+ groupadd audio
+fi
+/bin/egrep -i "^dip" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User dip exists in /etc/group"
+else
+ echo "User dip does not exists in /etc/group must create"
+ groupadd dip
+fi
+/bin/egrep -i "^video" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User video exists in /etc/group"
+else
+ echo "User video does not exists in /etc/group must create"
+ groupadd video
+fi
+/bin/egrep -i "^adm" /etc/group
+if [ $? -eq 0 ]; then
+ echo "User adm exists in /etc/group"
+else
+ echo "User adm does not exists in /etc/group must create"
+ groupadd adm
+fi
+
+echo "I: add linaro to ($DEFGROUPS) groups"
+usermod -a -G ${DEFGROUPS} linaro
diff --git a/precise-armhf-nano/customization/hooks/03-check_sudoers_for_admin.chroot b/precise-armhf-nano/customization/hooks/03-check_sudoers_for_admin.chroot
new file mode 100755
index 0000000..5c82429
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/03-check_sudoers_for_admin.chroot
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# check to make sure sudoers file has ref for admin
+ADMINEXISTS="$(awk '$1 == "%admin" { print $1 }' /etc/sudoers)"
+if [ -z "$ADMINEXISTS" ]; then
+ # append admin entry to sudoers
+ echo "# Members of the admin group may gain root privileges" >> /etc/sudoers
+ echo "%admin ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
+fi
+
+# make sure that NOPASSWD is set for %admin
+# expecially in the case that we didn't add it to /etc/sudoers
+# just blow the %admin line away and force it to be NOPASSWD
+sed -i -e '
+/\%admin/ c \
+%admin ALL = (ALL) NOPASSWD: ALL
+' /etc/sudoers
diff --git a/precise-armhf-nano/customization/hooks/20-extract_initrd_uuid.binary b/precise-armhf-nano/customization/hooks/20-extract_initrd_uuid.binary
new file mode 100755
index 0000000..fee2b1b
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/20-extract_initrd_uuid.binary
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+mkdir -p uuid
+cd uuid
+
+prefix=
+
+if ls ../binary/casper/initrd.img-* 2>&1 > /dev/null; then
+ prefix=../binary/boot/filesystem.dir/casper/
+else
+ prefix=../binary/boot/filesystem.dir/boot/
+fi
+
+UUID=`uuidgen -r`
+
+for initrd in `ls $prefix/initrd.img-*`; do
+ zcat $initrd | cpio --quiet -id
+ echo $UUID > conf/uuid.conf
+ find . | cpio --quiet --dereference -o -H newc | gzip > $initrd
+ rm -rf *
+done
+
+echo "I: setting rootfs UUID $UUID in initrd... copying to '.disk/casper-uuid'."
+if [ ! -d ../binary/boot/filesystem.dir/.disk ]; then
+ mkdir -p ../binary/boot/filesystem.dir/.disk
+fi
+echo $UUID > ../binary/boot/filesystem.dir/.disk/casper-uuid
+cd ..
+rm -rf uuid
diff --git a/precise-armhf-nano/customization/hooks/51-remove_usr_share_parts.binary b/precise-armhf-nano/customization/hooks/51-remove_usr_share_parts.binary
new file mode 100755
index 0000000..658445a
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/51-remove_usr_share_parts.binary
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+cd binary/boot/filesystem.dir
+
+echo "I: rm /usr/share/man"
+rm -rf ./usr/share/man/*
+# xkb
+echo "I: rm /usr/share/X11"
+rm -rf ./usr/share/X11
+
+echo "I: rm /usr/share/xul-ext"
+rm -rf ./usr/share/xul-ext
+
+echo "I: slim /usr/share/i18n"
+rm -rf ./usr/share/i18n/locales/a*
+rm -rf ./usr/share/i18n/locales/b*
+rm -rf ./usr/share/i18n/locales/c*
+rm -rf ./usr/share/i18n/locales/d*
+rm -rf ./usr/share/i18n/locales/es*
+rm -rf ./usr/share/i18n/locales/f*
+rm -rf ./usr/share/i18n/locales/g*
+rm -rf ./usr/share/i18n/locales/h*
+rm -rf ./usr/share/i18n/locales/j*
+rm -rf ./usr/share/i18n/locales/k*
+rm -rf ./usr/share/i18n/locales/l*
+rm -rf ./usr/share/i18n/locales/n*
+rm -rf ./usr/share/i18n/locales/m*
+rm -rf ./usr/share/i18n/locales/o*
+rm -rf ./usr/share/i18n/locales/p*
+rm -rf ./usr/share/i18n/locales/r*
+rm -rf ./usr/share/i18n/locales/s*
+rm -rf ./usr/share/i18n/locales/t*
+rm -rf ./usr/share/i18n/locales/u*
+rm -rf ./usr/share/i18n/locales/v*
+rm -rf ./usr/share/i18n/locales/w*
+rm -rf ./usr/share/i18n/locales/y*
+rm -rf ./usr/share/i18n/locales/z*
+rm -rf ./usr/share/i18n/locales/el*
+rm -rf ./usr/share/i18n/locales/eo*
+rm -rf ./usr/share/i18n/locales/et*
+rm -rf ./usr/share/i18n/locales/it*
+rm -rf ./usr/share/i18n/locales/iu*
+rm -rf ./usr/share/i18n/locales/iw*
+
+
+echo "I: pair down zoneinfo to just UTC"
+rm -rf ./usr/share/zoneinfo/A*
+rm -rf ./usr/share/zoneinfo/B*
+rm -rf ./usr/share/zoneinfo/C*
+rm -rf ./usr/share/zoneinfo/E*
+rm -rf ./usr/share/zoneinfo/F*
+rm -rf ./usr/share/zoneinfo/H*
+rm -rf ./usr/share/zoneinfo/I*
+rm -rf ./usr/share/zoneinfo/J*
+rm -rf ./usr/share/zoneinfo/K*
+rm -rf ./usr/share/zoneinfo/L*
+rm -rf ./usr/share/zoneinfo/M*
+rm -rf ./usr/share/zoneinfo/N*
+rm -rf ./usr/share/zoneinfo/P*
+rm -rf ./usr/share/zoneinfo/r*
+rm -rf ./usr/share/zoneinfo/R*
+rm -rf ./usr/share/zoneinfo/Singapore
+rm -rf ./usr/share/zoneinfo/T*
+rm -rf ./usr/share/zoneinfo/US
+rm -rf ./usr/share/zoneinfo/W*
+rm -rf ./usr/share/zoneinfo/Z*
+
+echo "I: pair down /usr/share/locale"
+rm -rf ./usr/share/locale/a*
+rm -rf ./usr/share/locale/b*
+rm -rf ./usr/share/locale/c*
+rm -rf ./usr/share/locale/d*
+rm -rf ./usr/share/locale/e*
+rm -rf ./usr/share/locale/f*
+rm -rf ./usr/share/locale/g*
+rm -rf ./usr/share/locale/h*
+rm -rf ./usr/share/locale/i*
+rm -rf ./usr/share/locale/j*
+rm -rf ./usr/share/locale/k*
+rm -rf ./usr/share/locale/lt
+rm -rf ./usr/share/locale/m*
+rm -rf ./usr/share/locale/n*
+rm -rf ./usr/share/locale/p*
+rm -rf ./usr/share/locale/r*
+rm -rf ./usr/share/locale/s*
+rm -rf ./usr/share/locale/t*
+rm -rf ./usr/share/locale/u*
+rm -rf ./usr/share/locale/z*
+
+echo "I: remove /usr/share/info"
+rm -rf ./usr/share/info
+
+echo "I: pair down /usr/share/i18n/charmaps"
+rm -rf ./usr/share/i18n/charmaps/W*
+rm -rf ./usr/share/i18n/charmaps/V*
+rm -rf ./usr/share/i18n/charmaps/T*
+rm -rf ./usr/share/i18n/charmaps/S*
+rm -rf ./usr/share/i18n/charmaps/R*
+rm -rf ./usr/share/i18n/charmaps/P*
+rm -rf ./usr/share/i18n/charmaps/L*
+rm -rf ./usr/share/i18n/charmaps/K*
+rm -rf ./usr/share/i18n/charmaps/J*
+rm -rf ./usr/share/i18n/charmaps/E*
+rm -rf ./usr/share/i18n/charmaps/H*
+rm -rf ./usr/share/i18n/charmaps/B*
diff --git a/precise-armhf-nano/customization/hooks/52-remove_etc_parts.binary b/precise-armhf-nano/customization/hooks/52-remove_etc_parts.binary
new file mode 100755
index 0000000..db8a547
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/52-remove_etc_parts.binary
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cd binary/boot/filesystem.dir
+
+echo "I: rm /etc/X11 and /etc/firefox"
+rm -rf ./etc/X11
+rm -rf ./etc/firefox
diff --git a/precise-armhf-nano/customization/hooks/53-remove_var_lib_parts.binary b/precise-armhf-nano/customization/hooks/53-remove_var_lib_parts.binary
new file mode 100755
index 0000000..e4105d1
--- /dev/null
+++ b/precise-armhf-nano/customization/hooks/53-remove_var_lib_parts.binary
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+cd binary/boot/filesystem.dir
+
+echo "I:commented out such that dpkg and apt will work for NOW"
+echo "I: rm /var/lib/dpkg"
+#rm -rf ./var/lib/dpkg
+echo "I: rm /var/lib/apt"
+rm -f ./var/lib/apt/lists/*Packages
+rm -f ./var/lib/apt/lists/*Sources
+rm -f ./var/lib/apt/lists/*Release
+rm -f ./var/lib/apt/lists/*Release.gpg
+echo "I: rm /var/cache/apt"
+rm -f ./var/cache/apt/pkgcache.bin
+rm -f ./var/cache/apt/srcpkgcache.bin
diff --git a/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale
new file mode 100644
index 0000000..f9c983c
--- /dev/null
+++ b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/default/locale
@@ -0,0 +1 @@
+LANG=C.UTF-8
diff --git a/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hostname b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hostname
new file mode 100644
index 0000000..1d1dfdb
--- /dev/null
+++ b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hostname
@@ -0,0 +1 @@
+linaro-nano
diff --git a/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hosts b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hosts
new file mode 100644
index 0000000..5c520b5
--- /dev/null
+++ b/precise-armhf-nano/customization/includes/precise/common/boot/filesystem.dir/etc/hosts
@@ -0,0 +1,7 @@
+127.0.0.1 localhost
+::1 localhost ip6-localhost ip6-loopback
+fe00::0 ip6-localnet
+ff00::0 ip6-mcastprefix
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+127.0.1.1 linaro-nano
diff --git a/precise-armhf-nano/customization/package-lists/linaro-nano.list.chroot b/precise-armhf-nano/customization/package-lists/linaro-nano.list.chroot
new file mode 100644
index 0000000..f39df99
--- /dev/null
+++ b/precise-armhf-nano/customization/package-lists/linaro-nano.list.chroot
@@ -0,0 +1,2 @@
+# Packages needed for Linaro - Nano
+linaro-nano