OpenWrt packages
Sign in or create your account | Project List | Help
OpenWrt packages Git Source Tree
Root/
| 1 | #!/bin/bash |
| 2 | |
| 3 | # This script file is using in build host, Xiangfu <xiangfu@openmobilefree.net> |
| 4 | # $1: full_system minimal xbboot |
| 5 | |
| 6 | OPENWRT_DIR_NAME="openwrt-xburst."$1 |
| 7 | OPENWRT_DIR="/home/xiangfu/${OPENWRT_DIR_NAME}/" |
| 8 | CONFIG_FILE_TYPE="config."$1 |
| 9 | |
| 10 | MAKE_VARS=" V=99 IGNORE_ERRORS=m " |
| 11 | |
| 12 | ######################################################################## |
| 13 | DATE=$(date "+%Y-%m-%d") |
| 14 | DATE_TIME=`date +"%Y%m%d-%H%M"` |
| 15 | |
| 16 | GET_FEEDS_VERSION_SH="/home/xiangfu/bin/get-feeds-revision.sh" |
| 17 | PATCH_OPENWRT_SH="/home/xiangfu/bin/patch-openwrt.sh" |
| 18 | |
| 19 | IMAGES_URL="http://fidelio.qi-hardware.com/~xiangfu/build-nanonote" |
| 20 | IMAGES_DIR_BASE="/home/xiangfu/building/Nanonote/Ben" |
| 21 | IMAGES_DIR="${IMAGES_DIR_BASE}/${OPENWRT_DIR_NAME}-${DATE_TIME}/" |
| 22 | DEST_DIR="/home/xiangfu/build-nanonote" |
| 23 | mkdir -p ${IMAGES_DIR} |
| 24 | mkdir -p ${DEST_DIR} |
| 25 | |
| 26 | BUILD_LOG="${IMAGES_DIR}/BUILD_LOG" |
| 27 | VERSIONS_FILE="${IMAGES_DIR}/VERSIONS" |
| 28 | |
| 29 | ######################################################################## |
| 30 | cd ${OPENWRT_DIR} |
| 31 | |
| 32 | echo "make distclean..." |
| 33 | make distclean |
| 34 | |
| 35 | |
| 36 | echo "updating git repo..." |
| 37 | git fetch -a |
| 38 | git reset --hard origin/master |
| 39 | if [ "$?" != "0" ]; then |
| 40 | echo "ERROR: updating openwrt-xburst failed" |
| 41 | exit 1 |
| 42 | fi |
| 43 | |
| 44 | |
| 45 | echo "update and install feeds..." |
| 46 | ./scripts/feeds update -a && ./scripts/feeds install -a |
| 47 | if [ "$?" != "0" ]; then |
| 48 | echo "ERROR: update and install feeds failed" |
| 49 | exit 1 |
| 50 | fi |
| 51 | cp feeds/qipackages/nanonote-files/data/qi_lb60/conf/${CONFIG_FILE_TYPE} \ |
| 52 | .config |
| 53 | sed -i '/CONFIG_ALL/s/.*/CONFIG_ALL=y/' .config |
| 54 | yes "" | make oldconfig > /dev/null |
| 55 | |
| 56 | |
| 57 | echo "getting version numbers of used repositories..." |
| 58 | HEAD_NEW=`${GET_FEEDS_VERSION_SH} ${OPENWRT_DIR}` |
| 59 | HEAD_OLD=`cat ${IMAGES_DIR}/../${OPENWRT_DIR_NAME}.VERSIONS` |
| 60 | if [ "${HEAD_NEW}" == "${HEAD_OLD}" ]; then |
| 61 | echo "No new commit, ignore build" |
| 62 | rm -f ${BUILD_LOG} ${VERSIONS_FILE} |
| 63 | rmdir ${IMAGES_DIR} |
| 64 | exit 0 |
| 65 | fi |
| 66 | ${GET_FEEDS_VERSION_SH} ${OPENWRT_DIR} > ${VERSIONS_FILE} |
| 67 | cp ${VERSIONS_FILE} ${IMAGES_DIR}/../${OPENWRT_DIR_NAME}.VERSIONS |
| 68 | |
| 69 | echo "copy files, create VERSION, link dl folder, last prepare..." |
| 70 | rm -f files && ln -s feeds/qipackages/nanonote-files/files/ |
| 71 | rm -f dl && ln -s ~/dl |
| 72 | mkdir -p files/etc && echo ${DATE} > files/etc/VERSION |
| 73 | mkdir -p files/etc/uci-defaults && \ |
| 74 | echo -e "\0043\0041/bin/sh \ndate --set `date +"%Y%m%d%H%M"`\n \ |
| 75 | hwclock --systohc" > files/etc/uci-defaults/99-set-time |
| 76 | |
| 77 | |
| 78 | echo "patch openwrt..." |
| 79 | ${PATCH_OPENWRT_SH} ${OPENWRT_DIR} |
| 80 | |
| 81 | |
| 82 | echo "starting compiling - this may take several hours..." |
| 83 | time make ${MAKE_VARS} > ${IMAGES_DIR}/BUILD_LOG 2>&1 |
| 84 | MAKE_RET="$?" |
| 85 | |
| 86 | |
| 87 | echo "copy all files to IMAGES_DIR..." |
| 88 | cp .config ${IMAGES_DIR}/config |
| 89 | cp build_dir/linux-xburst_qi_lb60/linux-*/.config ${IMAGES_DIR}/kernel.config |
| 90 | cp feeds.conf ${IMAGES_DIR}/ |
| 91 | cp -a bin/xburst/* ${IMAGES_DIR} 2>/dev/null |
| 92 | mkdir -p ${IMAGES_DIR}/files |
| 93 | cp -a files/* ${IMAGES_DIR}/files/ |
| 94 | |
| 95 | (cd ${IMAGES_DIR} && \ |
| 96 | grep -E "ERROR:\ package.*failed to build" BUILD_LOG | \ |
| 97 | grep -v "package/kernel" > failed_packages.txt; \ |
| 98 | |
| 99 | ) |
| 100 | |
| 101 | if [ "$1" == "minimal" ]; then |
| 102 | cp ${IMAGES_DIR}/failed_packages.txt /home/xiangfu/building/Nanonote/Ben/ |
| 103 | fi |
| 104 | |
| 105 | if [ "${MAKE_RET}" == "0" ]; then |
| 106 | (cd ${IMAGES_DIR} && \ |
| 107 | bzip2 -z openwrt-xburst-qi_lb60-root.ubi; \ |
| 108 | bzip2 -z BUILD_LOG; \ |
| 109 | ) |
| 110 | mv ${IMAGES_DIR} ${DEST_DIR} |
| 111 | |
| 112 | MSG="The build was successful: ${IMAGES_URL}/${OPENWRT_DIR_NAME}-${DATE_TIME}" |
| 113 | echo -e "say #qi-hardware ${MSG} \nclose" \ |
| 114 | | nc turandot.qi-hardware.com 3858 |
| 115 | else |
| 116 | (cd ${IMAGES_DIR} && \ |
| 117 | tail -n 100 BUILD_LOG > BUILD_LOG.last100; \ |
| 118 | bzip2 -z BUILD_LOG; \ |
| 119 | ) |
| 120 | |
| 121 | echo "ERROR: Build failed! please refer to the BUILD_LOG file" |
| 122 | fi |
| 123 | |
| 124 | |
| 125 | echo "Done" |
| 126 |
