Browse Source

make versions directory definable

and no longer store version files within this repo
Karsten Böddeker 7 years ago
parent
commit
70da002708

+ 1 - 1
.gitignore

@@ -2,4 +2,4 @@
 output
 src
 opkg-keys
-versions/*exp*
+versions/

+ 3 - 2
ReadMe.md

@@ -43,6 +43,7 @@ optional:
 * **SITE_REPO_FETCH_METHOD** wählt die Methode zum Klonen des Site-Repos ('git' oder 'http', default: 'http')
 * **TARGETS** ein Liste durch Leerzeichen separierter Hardware-Zielplattformen (default: alle bekannten Plattformen)
 * **VERBOSE** falls "1", schaltet Debug-Ausgaben mit an - dies ist nur notwendig wenn Fehler beim Build auftreten (default: "0")
+* **VERSIONS_DIR** gibt das Verzeichnis für die Versions-Dateien an (default: ./versions)
 
 
 ### Beispiele
@@ -66,11 +67,11 @@ git clone https://git.c3pb.de/freifunk-pb/firmware.git
 cd firmware
 ```
 
-Im Verzeichnis `versions` liegen alle bekannten Firmware-Versionen. Durch Aufruf von `build-version.sh` und Übergabe des Dateinamens (ohne Pfad) wird diese Version erneut gebaut. Es wird eine Umgebungsvariablen unterstützt:
+Durch Aufruf von `build-version.sh` und Übergabe des Versions-Datei kann eine Firmware erneut gebaut werden. Es werden folgende Umgebungsvariablen optional unterstützt:
 * **BROKEN** falls "1", erzeuge zusätzlich Firmware-Images für ungetestete Plattformen (default: "0")
 
 ### Beispiele
 
 ```bash
-./build_version.sh 0.6.1_stable # baut Version '0.6.1_stable' erneut
+./build_version.sh ./versions/0.7.4 # baut Version '0.7.4' erneut
 ```

+ 8 - 5
build-version.sh

@@ -3,15 +3,18 @@
 #
 # calls build.sh with information found in given version
 
+### includes
+. functions.sh
+
+### static variables
 MY_DIR=$(dirname $0)
 MY_DIR=$(readlink -f "${MY_DIR}")
-pushd ${MY_DIR} > /dev/null
 
-. functions.sh
+pushd ${MY_DIR} > /dev/null
 
-version=$1
-versionfile="${MY_DIR}/versions/${version}"
-[ -r ${versionfile} ] || abort "Failed to find the version '${version}'."
+### set reasonable defaults for unset environment variables
+versionfile=$1
+[ -r ${versionfile} ] || abort "Failed to find versionfile: '${versionfile}'."
 
 [ -n "${BROKEN}" ] || BROKEN=0
 base=`awk 'BEGIN { FS="=" } /^GLUON=([a-f0-9]+)(\s*#.+)?$/ { print $2; }' ${versionfile} | awk 'BEGIN { FS="#" } { print $1; }'`

+ 18 - 9
build.sh

@@ -21,6 +21,7 @@
 # SITE_REPO_FETCH_METHOD = http, everything except "git" will use the HTTP method for fetchting site repo
 # TARGETS     = a space separated list of target platforms (if unset, all platforms will be build)
 # VERBOSE     = 0 (default) or 1, call the make commands with 'V=s' to see actual errors better
+# VERSIONS_DIR = specify directory for version files
 #
 
 
@@ -31,6 +32,7 @@
 MY_DIR=$(dirname $0)
 MY_DIR=$(readlink -f "${MY_DIR}")
 DEFAULT_KEY_DIR="${MY_DIR}/opkg-keys"
+DEFAULT_VERSIONS_DIR="${MY_DIR}/versions"
 CODE_DIR="${MY_DIR}/src"
 GLUON_BUILD_DIR="${CODE_DIR}/build"
 SITE_DIR="${CODE_DIR}/site"
@@ -39,7 +41,6 @@ OUTPUT_DIR="${MY_DIR}/output"
 IMAGE_DIR="${CODE_DIR}/output/images"
 MODULE_DIR="${CODE_DIR}/output/modules"
 MANIFEST_DIR="${CODE_DIR}/output/images/sysupgrade"
-VERSIONS_INFO_DIR="${MY_DIR}/versions"
 SITE_GEN_SCRIPT="${CODE_DIR}/packages/ffho/ffho/ffho-site-generate/scripts/gen-site-conf.lua"
 SRV_URL="firmware.in.ffho.net"
 SRV_USER="firmware"
@@ -51,13 +52,6 @@ LANG=C
 
 pushd ${MY_DIR} > /dev/null
 
-### ERROR handling
-[ -n "${BASE}" ] || abort "Please specify BASE environment variable (Gluon, i.e. 'v2014.3' or commit-id)."
-[ -n "${BRANCH}" ] || abort "Please specify BRANCH environment variable."
-[ "${BRANCH}" == "experimental" -o "${BASE}" != "HEAD" ] || abort "HEAD is not an allowed BASE-identifier for non-experimental builds. Either use a tagged commit or the commit-SHA itself."
-[ -n "${VERSION}" -o "${BRANCH}" == "experimental" ] || abort "Please specify VERSION environment variable (not necessary for experimental branch)."
-[ "${BRANCH}" == "experimental" -o ! -r "${VERSIONS_INFO_DIR}/${VERSION}" ] || abort "There exists a version file for '${VERSION}' ... you are trying to do something really stupid, aren't you?"
-
 ### set reasonable defaults for unset environment variables
 [ -n "${AUTOUPDATER}" ] || AUTOUPDATER=${BRANCH}
 if [ -n "${BROKEN}" ]; then
@@ -85,6 +79,14 @@ fi
 [ -e "${KEY_DIR}" ] || mkdir -p ${KEY_DIR}
 [ "$?" -eq "0" ] || abort "Unable to create key directory: ${KEY_DIR}"
 
+if [ -n "${VERSIONS_DIR}" ]; then
+	VERSIONS_DIR=$(readlink -f "${VERSIONS_DIR}")
+else
+	VERSIONS_DIR="${DEFAULT_VERSIONS_DIR}"
+fi
+[ -e "${VERSIONS_DIR}" ] || mkdir -p ${VERSIONS_DIR}
+[ "$?" -eq "0" ] || abort "Unable to create versions directory: ${VERSIONS_DIR}"
+
 [ -n "${MAKEJOBS}" ] || MAKEJOBS=$(grep -c "^processor" /proc/cpuinfo)
 [ -n "${PRIORITY}" ] || PRIORITY=0
 [ -n "${PUBLISH}" ] || PUBLISH=0
@@ -100,6 +102,13 @@ fi
 MAKE_PARAM=""
 [ "${VERBOSE}" -eq "1" ] && MAKE_PARAM="${MAKE_PARAM} V=s"
 
+### ERROR handling
+[ -n "${BASE}" ] || abort "Please specify BASE environment variable (Gluon, i.e. 'v2014.3' or commit-id)."
+[ -n "${BRANCH}" ] || abort "Please specify BRANCH environment variable."
+[ "${BRANCH}" == "experimental" -o "${BASE}" != "HEAD" ] || abort "HEAD is not an allowed BASE-identifier for non-experimental builds. Either use a tagged commit or the commit-SHA itself."
+[ -n "${VERSION}" -o "${BRANCH}" == "experimental" ] || abort "Please specify VERSION environment variable (not necessary for experimental branch)."
+[ "${BRANCH}" == "experimental" -o ! -r "${VERSIONS_DIR}/${VERSION}" ] || abort "There exists a version file for '${VERSION}' ... you are trying to do something really stupid, aren't you?"
+
 ### INIT /src IF NECESSARY
 if [ ! -d "${CODE_DIR}" ]; then
 	info "Code directory does not exist yet - fetching Gluon ..."
@@ -193,7 +202,7 @@ if [ "${BRANCH}" == "experimental" -a -z "${VERSION}" ] ; then
 fi
 
 # we are now ready to produce the firmware images, so let's "save" our state
-build_info_path="${VERSIONS_INFO_DIR}/${VERSION}"
+build_info_path="${VERSIONS_DIR}/${VERSION}"
 progress "Saving build information to: ${build_info_path}"
 [ -n "${build_info_path}" -a -f "${build_info_path}" ] && rm -f ${build_info_path}
 mkdir -p $(dirname ${build_info_path})

+ 0 - 3
versions/0.5.2

@@ -1,3 +0,0 @@
-gluon=9d1958b7742f363d657a2d65290a9ab7e0588053
-branch=stable
-site=f0b4c123177db235acd0af210dbbf80535d8b691

+ 0 - 5
versions/0.6.0

@@ -1,5 +0,0 @@
-VERSION=0.6.0
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b # v2014.4
-BRANCH=stable
-SITE=5cfcfee6ed1ee35011480fb227a29544e2b49a3a # 0.6.0
-TS=2015-02-21 20:29:12

+ 0 - 5
versions/0.6.0~rc1

@@ -1,5 +0,0 @@
-VERSION=0.6.0~rc1
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b # v2014.4
-BRANCH=testing
-SITE=0875db9af9425462b4ff7ac1d911eeda0cb053d8 # 0.6.0~rc1
-TS=2015-01-28 22:53:12

+ 0 - 5
versions/0.6.0~rc2

@@ -1,5 +0,0 @@
-VERSION=0.6.0~rc2
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b # v2014.4
-BRANCH=testing
-SITE=46ce9179500186e07d3a3ff786acf21517332f41 # 0.6.0~rc2
-TS=2015-02-12 09:24:15

+ 0 - 6
versions/0.6.1_stable

@@ -1,6 +0,0 @@
-VERSION=0.6.1
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b # v2014.4
-BRANCH=stable
-SITE=dcf80ecc5e5e304e8768f3728471d0bc83ecea69 # 0.6.1
-TARGETS=ar71xx-generic mpc85xx-generic
-TS=2015-03-23 07:33:16

+ 0 - 6
versions/0.6.1_testing

@@ -1,6 +0,0 @@
-VERSION=0.6.1
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b # v2014.4
-BRANCH=testing
-SITE=f40ade76695307b8468a040e1267f3bc2e3a29d0 # 0.6.1
-TARGETS=ar71xx-generic mpc85xx-generic
-TS=2015-03-18 07:44:16

+ 0 - 6
versions/0.6.2_stable

@@ -1,6 +0,0 @@
-VERSION=0.6.2
-GLUON=e54e3dc41046d9334d515f87397c436451c964ad # v2015.1.1
-BRANCH=stable
-SITE=cbb997820dc0da16370245d5904f1741a8b1308c # 0.6.2
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic
-TS=2015-07-08 10:20:44

+ 0 - 6
versions/0.6.2~rc1

@@ -1,6 +0,0 @@
-VERSION=0.6.2~rc1
-GLUON=80906c2a0c2f3252ce8defb7b62e8c8dc97863e5 # v2015.1
-BRANCH=testing
-SITE=64f5fd7157397823077aa7c8a4206f18aada9d0c # 0.6.2~rc1
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic
-TS=2015-05-26 07:54:47

+ 0 - 6
versions/0.6.3_stable

@@ -1,6 +0,0 @@
-VERSION=0.6.3
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=stable
-SITE=8c4676230a2598c0a6a147be6abf2eecde01e992 # 0.6.3
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-09-01 09:57:51

+ 0 - 6
versions/0.6.4_stable

@@ -1,6 +0,0 @@
-VERSION=0.6.4
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=stable
-SITE=847cb039a239512d62fae004af1032b5307ecfce # 0.6.4
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-09-23 10:20:10

+ 0 - 7
versions/0.6.5

@@ -1,7 +0,0 @@
-VERSION=0.6.5
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=stable
-SITE_REPO=ffho
-SITE=8f4436733ebf17cfc29aabfb91a0db1b0b9b0d01 # 0.6.5
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-11-22 07:00:00

+ 0 - 7
versions/0.6.5~rc2

@@ -1,7 +0,0 @@
-VERSION=0.6.5~rc2
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=testing
-SITE_REPO=ffho
-SITE=583a501bda41433b5e50f2a870abe4aceff0c19f # 0.6.5~rc2
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-11-07 14:50:37

+ 0 - 7
versions/0.6.5~rc3

@@ -1,7 +0,0 @@
-VERSION=0.6.5~rc3
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=testing
-SITE_REPO=ffho
-SITE=ffd1e35d1aa3965a7ba496aa2216411161be5aa1 # 0.6.5~rc3
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-11-11 13:59:45

+ 0 - 7
versions/0.6.5~rc4

@@ -1,7 +0,0 @@
-VERSION=0.6.5~rc4
-GLUON=30677cdc385f44005220ed105619d3a4fa9290ce # v2015.1.2
-BRANCH=testing
-SITE_REPO=ffho
-SITE=a11a5c04aedfbe265002326757f921a7ac99e27b # 0.6.5~rc4
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest
-TS=2015-11-17 20:55:42

+ 0 - 5
versions/0.6~rc1

@@ -1,5 +0,0 @@
-VERSION=0.6~rc1
-GLUON=1eb0d0e6cb076f2714579634eddea6db0a4c7e6b
-BRANCH=testing
-SITE=f575a5785848ccb7b1312b5f7afce0b4fc81bba8
-TS=2015-01-12 15:01:35

+ 0 - 6
versions/0.7.0

@@ -1,6 +0,0 @@
-VERSION=0.7.0
-GLUON=041730ae9b77dc54904f8429d7833eecbde5e360 # v2016.1.2
-BRANCH=stable
-SITE=7a823ee1adf562d928bf87e5d30d870d35eedf1b # 0.7.0
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-03-12 14:24:42

+ 0 - 6
versions/0.7.0~rc1

@@ -1,6 +0,0 @@
-VERSION=0.7.0~rc1
-GLUON=c52725d611f531d00e10bc0af9c5c9fde7009c31 # v2016.1.1
-BRANCH=testing
-SITE=bf7e9f58674365e2a1b7fbebe090ee9d0c14cf2a # 0.7.0~rc1
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-03-08 12:41:40

+ 0 - 6
versions/0.7.0~rc2

@@ -1,6 +0,0 @@
-VERSION=0.7.0~rc2
-GLUON=041730ae9b77dc54904f8429d7833eecbde5e360 # v2016.1.2
-BRANCH=testing
-SITE=d4acadd6fc85020f177fc27c5a7094c6380953f1 # 0.7.0~rc2
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-03-11 00:31:21

+ 0 - 6
versions/0.7.1

@@ -1,6 +0,0 @@
-VERSION=0.7.1
-GLUON=d610ba31ff004817c119f525e583b703743c1357 # d610ba31ff004817c119f525e583b703743c1357
-BRANCH=stable
-SITE=e0bfce7d88fb06289648cd07ad4b7ec908c36242 # 0.7.1
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-04-06 17:14:14

+ 0 - 6
versions/0.7.2

@@ -1,6 +0,0 @@
-VERSION=0.7.2
-GLUON=6899e50c97b34976fcb7d627062e6effa8078067 # v2016.1.5
-BRANCH=stable
-SITE=397039b8e591d81459b6279bc2193f1c80b4734b # 0.7.2
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-05-28 08:43:27

+ 0 - 6
versions/0.7.2~rc1

@@ -1,6 +0,0 @@
-VERSION=0.7.2~rc1
-GLUON=6899e50c97b34976fcb7d627062e6effa8078067 # v2016.1.5
-BRANCH=testing
-SITE=cdf693eabf753915cf3bf476060dd41c6e574a09 # 0.7.2~rc1
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-05-26 11:30:41

+ 0 - 6
versions/0.7.3

@@ -1,6 +0,0 @@
-VERSION=0.7.3
-GLUON=6899e50c97b34976fcb7d627062e6effa8078067 # v2016.1.5
-BRANCH=stable
-SITE=977eb37cfba448fd4e11d4a855d7439c34e1de07 # 0.7.3
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-07-20 14:16:15

+ 0 - 6
versions/0.7.3~rc1

@@ -1,6 +0,0 @@
-VERSION=0.7.3~rc1
-GLUON=6899e50c97b34976fcb7d627062e6effa8078067 # v2016.1.5
-BRANCH=testing
-SITE=7bb9945db0d1fdfb28a7cdee8516d87e581a2687 # 0.7.3~rc1
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-07-07 12:25:01

+ 0 - 6
versions/0.7.3~rc2

@@ -1,6 +0,0 @@
-VERSION=0.7.3~rc2
-GLUON=6899e50c97b34976fcb7d627062e6effa8078067 # v2016.1.5
-BRANCH=testing
-SITE=be124364646ffeec110688815fea21b64e6d62b0 # 0.7.3~rc2
-TARGETS=ar71xx-generic ar71xx-nand mpc85xx-generic x86-generic x86-kvm_guest x86-64 x86-xen_domu
-TS=2016-07-18 20:19:13