home: hub: mkinitfs

Download patch

ref: 47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9
parent: 5906619ff0d1cca4466cb4e93595c6cc5f005111
author: 7heo <7heo@mail.com>
date: Sat Sep 17 10:24:46 CDT 2016

nlplug-findfs: enable automated testing

--- /dev/null
+++ b/.travis.yml
@@ -1,0 +1,10 @@
+sudo: required
+install:
+  - sudo .travis/install-alpine
+  - sudo .travis/setup-alpine
+  - sudo .travis/install-deps
+script: |
+  source .travis/common.sh
+  alpine_run $ALPINE_USER './test.sh -x -y'
+notifications:
+  email: false
--- /dev/null
+++ b/.travis/common.sh
@@ -1,0 +1,45 @@
+# vim: set ts=4:
+
+readonly ALPINE_ROOT='/mnt/alpine'
+readonly ALPINE_USER='alpine'
+readonly CLONE_DIR="${CLONE_DIR:-$(pwd)}"
+
+# Runs commands inside the Alpine chroot.
+alpine_run() {
+	local user="${1:-root}"
+	local cmd="${2:-sh}"
+
+	local _sudo=
+	[ "$(id -u)" -eq 0 ] || _sudo='sudo'
+
+	$_sudo chroot "$ALPINE_ROOT" /usr/bin/env -i su -l $user \
+		sh -c "cd $CLONE_DIR; $cmd"
+}
+
+die() {
+	print -s1 -c1 "$@\n" 1>&2
+	exit 1
+}
+
+# Prints formatted and colored text.
+print() {
+	local style=0
+	local fcolor=9
+
+	local opt; while getopts 's:c:' opt; do
+		case "$opt" in
+			s) style="$OPTARG";;
+			c) fcolor="$OPTARG";;
+		esac
+	done
+
+	shift $(( OPTIND - 1 ))
+	local text="$@"
+
+	printf "\033[${style};3${fcolor}m$text\033[0m"
+}
+
+title() {
+	printf '\n'
+	print -s1 -c6 "==> $@\n"
+}
--- /dev/null
+++ b/.travis/install-alpine
@@ -1,0 +1,34 @@
+#!/bin/sh
+# vim: set ts=4:
+set -eu
+
+. "$(dirname "$0")"/common.sh
+
+APK_TOOLS_URI='http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/apk-tools-static-2.6.7-r0.apk'
+APK_TOOLS_SHA256='342458308b8ebdb6a91d347b6b2cced7349c0cd0560a7fd7cdd71c5e1aa2b9f3'
+
+
+title 'Downloading apk-tools-static'
+
+cd /tmp
+wget "$APK_TOOLS_URI"
+echo "$APK_TOOLS_SHA256  $(basename "$APK_TOOLS_URI")" | sha256sum -c
+tar -xzf $(basename "$APK_TOOLS_URI")
+
+
+title 'Installing Alpine Linux'
+
+mkdir -p "$ALPINE_ROOT"/etc/apk
+cd "$ALPINE_ROOT"
+
+cp -R "$CLONE_DIR"/.travis/keys etc/apk/keys
+cp "$CLONE_DIR"/.travis/repositories etc/apk/repositories
+cp /etc/resolv.conf etc/resolv.conf
+
+/tmp/sbin/apk.static \
+	--root . --update-cache --initdb --no-progress \
+	add alpine-base
+
+mount -t proc none proc
+mount --rbind /sys sys
+mount --rbind /dev dev
--- /dev/null
+++ b/.travis/install-deps
@@ -1,0 +1,17 @@
+#!/bin/sh
+# vim: set ts=4:
+set -eu
+
+. "$(dirname "$0")"/common.sh
+
+title 'Installing dependencies'
+
+# Build dependencies
+alpine_run <<-EOF
+	apk add linux-headers util-linux-dev kmod-dev cryptsetup-dev
+EOF
+
+# Runtime dependencies
+alpine_run <<-EOF
+	apk add cryptsetup e2fsprogs
+EOF
--- /dev/null
+++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
@@ -1,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yHJxQgsHQREclQu4Ohe
+qxTxd1tHcNnvnQTu/UrTky8wWvgXT+jpveroeWWnzmsYlDI93eLI2ORakxb3gA2O
+Q0Ry4ws8vhaxLQGC74uQR5+/yYrLuTKydFzuPaS1dK19qJPXB8GMdmFOijnXX4SA
+jixuHLe1WW7kZVtjL7nufvpXkWBGjsfrvskdNA/5MfxAeBbqPgaq0QMEfxMAn6/R
+L5kNepi/Vr4S39Xvf2DzWkTLEK8pcnjNkt9/aafhWqFVW7m3HCAII6h/qlQNQKSo
+GuH34Q8GsFG30izUENV9avY7hSLq7nggsvknlNBZtFUcmGoQrtx3FmyYsIC8/R+B
+ywIDAQAB
+-----END PUBLIC KEY-----
--- /dev/null
+++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub
@@ -1,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqy4H+5jKkBM+3pELVDBF
+VclECAxk9dy23mNhbfxH6GfBUtVaJVpYOF943JR2LNfD88DJR5EXnKPxQYZN1PWZ
+MDoJbUil7GPOMHAm5AHtXYJhYeOF+rSyv4y6H1lgYQVDzA9z+4GATMBhqJ8oRrCy
+lAJ/vksY9PFkuK8oyygTxpc7ICpUMMLwIMwLMdVR4API2kaLfg9TlMpVGmQhOCRZ
+VygfN4H89n9ekPpSA0DHLSkKkRLzBlhtfw+Ho2fcw9BCU0Uj10pK6q0V+m2+r8aE
+07LZKH9NnddMaEJ+I58FwmxJRzt4+gKpiPhV4OHXLoJsXMLYhjV8kM/qbgASfW71
+jQIDAQAB
+-----END PUBLIC KEY-----
--- /dev/null
+++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
@@ -1,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvNijDxJ8kloskKQpJdx+
+mTMVFFUGDoDCbulnhZMJoKNkSuZOzBoFC94omYPtxnIcBdWBGnrm6ncbKRlR+6oy
+DO0W7c44uHKCFGFqBhDasdI4RCYP+fcIX/lyMh6MLbOxqS22TwSLhCVjTyJeeH7K
+aA7vqk+QSsF4TGbYzQDDpg7+6aAcNzg6InNePaywA6hbT0JXbxnDWsB+2/LLSF2G
+mnhJlJrWB1WGjkz23ONIWk85W4S0XB/ewDefd4Ly/zyIciastA7Zqnh7p3Ody6Q0
+sS2MJzo7p3os1smGjUF158s6m/JbVh4DN6YIsxwl2OjDOz9R0OycfJSDaBVIGZzg
+cQIDAQAB
+-----END PUBLIC KEY-----
--- /dev/null
+++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
@@ -1,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj
+lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG
+e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p
+iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0
+64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+
+xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL
+VQIDAQAB
+-----END PUBLIC KEY-----
--- /dev/null
+++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
@@ -1,0 +1,9 @@
+-----BEGIN PUBLIC KEY-----
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlzMkl7b5PBdfMzGdCT0
+cGloRr5xGgVmsdq5EtJvFkFAiN8Ac9MCFy/vAFmS8/7ZaGOXoCDWbYVLTLOO2qtX
+yHRl+7fJVh2N6qrDDFPmdgCi8NaE+3rITWXGrrQ1spJ0B6HIzTDNEjRKnD4xyg4j
+g01FMcJTU6E+V2JBY45CKN9dWr1JDM/nei/Pf0byBJlMp/mSSfjodykmz4Oe13xB
+Ca1WTwgFykKYthoLGYrmo+LKIGpMoeEbY1kuUe04UiDe47l6Oggwnl+8XD1MeRWY
+sWgj8sF4dTcSfCMavK4zHRFFQbGp/YFJ/Ww6U9lA3Vq0wyEI6MCMQnoSMFwrbgZw
+wwIDAQAB
+-----END PUBLIC KEY-----
--- /dev/null
+++ b/.travis/repositories
@@ -1,0 +1,1 @@
+http://dl-cdn.alpinelinux.org/alpine/edge/main
--- /dev/null
+++ b/.travis/setup-alpine
@@ -1,0 +1,20 @@
+#!/bin/sh
+# vim: set ts=4:
+set -eu
+
+. "$(dirname "$0")"/common.sh
+
+title 'Setting up Alpine Linux'
+
+mkdir -p "${ALPINE_ROOT}${CLONE_DIR}"
+mount --bind "$CLONE_DIR" "${ALPINE_ROOT}${CLONE_DIR}"
+
+alpine_run <<-EOF
+	apk add alpine-sdk
+
+	adduser -G users -s /bin/sh -D $ALPINE_USER
+	addgroup $ALPINE_USER abuild
+	addgroup $ALPINE_USER wheel
+
+	echo '%wheel ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/wheel
+EOF