|
|
|
@ -7,65 +7,129 @@ OPENWRTURL=svn://svn.openwrt.org/openwrt/branches/barrier_breaker
|
|
|
|
|
PACKAGEREV=${OPENWRTREV}
|
|
|
|
|
PACKAGEURL=svn://svn.openwrt.org/openwrt/packages
|
|
|
|
|
|
|
|
|
|
## Feed definition [0]: name aka directory [1]: type git vs svn [2]: url [3]: revision evtl [4]: Patches
|
|
|
|
|
|
|
|
|
|
#official openwrt packages
|
|
|
|
|
OPENWRT=(openwrt
|
|
|
|
|
svn
|
|
|
|
|
svn://svn.openwrt.org/openwrt/packages
|
|
|
|
|
$OPENWRTREV)
|
|
|
|
|
OPENWRT_PKGS="bridge ethtool gpioctl-sysfs horst libugpio mii-tool wavemon kmod-gpiotoggling"
|
|
|
|
|
|
|
|
|
|
#official openwrt routing packages
|
|
|
|
|
ROUTING=(routing
|
|
|
|
|
git
|
|
|
|
|
https://github.com/openwrt-routing/packages.git
|
|
|
|
|
44318d05898069300ce2ad6eb05eb40f232e7123
|
|
|
|
|
../../../build_patches/0001-batman-adv-no-rebroadcast-option.patch)
|
|
|
|
|
ROUTING_PKGS="alfred kmod-batman-adv kmod-batgat"
|
|
|
|
|
|
|
|
|
|
FASTD=(fastd
|
|
|
|
|
git
|
|
|
|
|
git://git.metameute.de/lff/pkg_fastd
|
|
|
|
|
v14-1)
|
|
|
|
|
FASTD_PKGS="fastd libuecc"
|
|
|
|
|
|
|
|
|
|
LIBREMAP=(libremap
|
|
|
|
|
git
|
|
|
|
|
https://github.com/libremap/libremap-agent-openwrt.git
|
|
|
|
|
7194289d4b8a009df10613a3a88dc841fa26f423)
|
|
|
|
|
LIBREMAP_PKGS="libremap-agent"
|
|
|
|
|
|
|
|
|
|
FFOL=(ffol
|
|
|
|
|
'local'
|
|
|
|
|
${PWD}/src/packages/ffol/)
|
|
|
|
|
FFOL_PKGS="nodewatcher"
|
|
|
|
|
|
|
|
|
|
FEEDS=(OPENWRT ROUTING FASTD LIBREMAP FFOL)
|
|
|
|
|
|
|
|
|
|
checkout_svn(){
|
|
|
|
|
local DIRECTORY=$1
|
|
|
|
|
local REPO_URL=$2
|
|
|
|
|
local REVISION=$3
|
|
|
|
|
|
|
|
|
|
echo checking out $REPO_URL to $DIRECTORY in version $REVISION
|
|
|
|
|
if [ -d $DIRECTORY ]; then
|
|
|
|
|
local url=$(svn info ${DIRECTORY} | awk '/^URL/ { print $2 }')
|
|
|
|
|
if [ "$url" = "$REPO_URL" ]; then
|
|
|
|
|
if [ -z "$REVISION" ]; then
|
|
|
|
|
svn update $DIRECTORY
|
|
|
|
|
else
|
|
|
|
|
local rev=$(svn info $DIRECTORY | awk '/^Revision:/ { print $2 }')
|
|
|
|
|
if [ "$rev" -ne "$REVISION" ]; then
|
|
|
|
|
svn update -r $REVISION $DIRECTORY
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo wrong svn url -\> deleting whole directory
|
|
|
|
|
/bin/rm -rf $DIRECTORY
|
|
|
|
|
svn checkout -r $REVISION $REPO_URL $DIRECTORY
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
svn checkout -r $REVISION $REPO_URL $DIRECTORY
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkout_git(){
|
|
|
|
|
local DIRECTORY=$1
|
|
|
|
|
local REPO_URL=$2
|
|
|
|
|
local COMMITID=$3
|
|
|
|
|
|
|
|
|
|
local MYGIT="git -C $DIRECTORY"
|
|
|
|
|
echo checking out $REPO_URL to $DIRECTORY in version $REVISION
|
|
|
|
|
if [ -d $DIRECTORY ]; then
|
|
|
|
|
if $MYGIT remote -v | grep $REPO_URL ; then
|
|
|
|
|
echo Right remote detected
|
|
|
|
|
if ! $MYGIT checkout $COMMITID ; then
|
|
|
|
|
echo commitid not found trying to fetch new commits
|
|
|
|
|
$MYGIT pull && $MYGIT checkout $COMMITID
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo wrong remote or not an git repo at all -\> deleting whole directory
|
|
|
|
|
/bin/rm -rf $DIRECTORY
|
|
|
|
|
$MYGIT clone $REPO_URL $DIRECTORY
|
|
|
|
|
$MYGIT checkout $COMMITID
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo We need to do a fresh checkout
|
|
|
|
|
#needs to be without -C!!!
|
|
|
|
|
git clone $REPO_URL $DIRECTORY
|
|
|
|
|
$MYGIT checkout $COMMITID
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
get_source() {
|
|
|
|
|
cd src
|
|
|
|
|
|
|
|
|
|
#Get the OpenWrt Core Source for Firmware
|
|
|
|
|
if [ -d openwrt ]; then
|
|
|
|
|
url=$(svn info openwrt | awk '/^URL/ { print $2 }')
|
|
|
|
|
if [ "$url" = "$OPENWRTURL" ]; then
|
|
|
|
|
rev=$(svn info openwrt | awk '/^Revision:/ { print $2 }')
|
|
|
|
|
if [ "$rev" -ne "$OPENWRTREV" ]; then
|
|
|
|
|
svn update -r $OPENWRTREV openwrt
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
/bin/rm -rf openwrt
|
|
|
|
|
svn checkout -r $OPENWRTREV $OPENWRTURL openwrt
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
svn checkout -r $OPENWRTREV $OPENWRTURL openwrt
|
|
|
|
|
fi
|
|
|
|
|
checkout_svn openwrt $OPENWRTURL $OPENWRTREV
|
|
|
|
|
|
|
|
|
|
test -d packages || mkdir packages
|
|
|
|
|
cd packages
|
|
|
|
|
|
|
|
|
|
if [ -d openwrt ]; then
|
|
|
|
|
url=$(svn info openwrt | awk '/^URL/ { print $2 }')
|
|
|
|
|
if [ "$url" = "$PACKAGEURL" ]; then
|
|
|
|
|
rev=$(svn info openwrt | awk '/^Revision:/ { print $2 }')
|
|
|
|
|
if [ "$rev" -ne "$PACKAGEREV" ]; then
|
|
|
|
|
svn update -r $PACKAGEREV openwrt
|
|
|
|
|
#checkout needed package feeds
|
|
|
|
|
for FEEDVAR in ${FEEDS[@]} ; do
|
|
|
|
|
FEED=$FEEDVAR[@] FEED=( ${!FEED} )
|
|
|
|
|
|
|
|
|
|
local NAME=${FEED[0]}
|
|
|
|
|
local TYPE=${FEED[1]}
|
|
|
|
|
local URL=${FEED[2]}
|
|
|
|
|
local REV=${FEED[3]}
|
|
|
|
|
local PATCH=${FEED[4]}
|
|
|
|
|
|
|
|
|
|
echo Adding Feed $NAME
|
|
|
|
|
if [[ $TYPE == "svn" ]] ; then
|
|
|
|
|
checkout_svn $NAME $URL $REV
|
|
|
|
|
elif [[ $TYPE == "git" ]] ; then
|
|
|
|
|
checkout_git $NAME $URL $REV
|
|
|
|
|
# Patches for feeds could be stored in known directories like build_patches/$NAME/
|
|
|
|
|
# That way multiple patches for one feed could be supported
|
|
|
|
|
if [ ! -z "$PATCH" ] ; then
|
|
|
|
|
echo Patching $PATCH
|
|
|
|
|
git -C $NAME am --whitespace=nowarn $PATCH
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
/bin/rm -rf openwrt
|
|
|
|
|
svn checkout -r $PACKAGEREV $PACKAGEURL openwrt
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
svn checkout -r $PACKAGEREV $PACKAGEURL openwrt
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
test -d routing || git clone https://github.com/openwrt-routing/packages.git routing
|
|
|
|
|
cd routing
|
|
|
|
|
git checkout 44318d05898069300ce2ad6eb05eb40f232e7123
|
|
|
|
|
git am --whitespace=nowarn ../../../build_patches/0001-batman-adv-no-rebroadcast-option.patch
|
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
|
|
test -d fastd || git clone git://git.metameute.de/lff/pkg_fastd fastd
|
|
|
|
|
git --git-dir=fastd/.git --work-tree=fastd/ checkout v14-1
|
|
|
|
|
|
|
|
|
|
if [ ! -d tunneldigger ]; then
|
|
|
|
|
git init tunneldigger
|
|
|
|
|
cd tunneldigger/
|
|
|
|
|
git remote add -f origin https://github.com/wlanslovenija/firmware-packages-opkg.git
|
|
|
|
|
git config core.sparsecheckout true
|
|
|
|
|
echo net/tunneldigger/ >> .git/info/sparse-checkout
|
|
|
|
|
git pull origin
|
|
|
|
|
cd ..
|
|
|
|
|
fi
|
|
|
|
|
git --git-dir=tunneldigger/.git --work-tree=tunneldigger checkout 8c750d28506c08abbcce9edc5761332074b43116
|
|
|
|
|
|
|
|
|
|
test -d libremap || git clone https://github.com/libremap/libremap-agent-openwrt.git libremap
|
|
|
|
|
git --git-dir=libremap/.git --work-tree=libremap checkout 7194289d4b8a009df10613a3a88dc841fa26f423
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
cd .. # packages
|
|
|
|
|
cd .. # src
|
|
|
|
@ -79,19 +143,32 @@ prepare() {
|
|
|
|
|
/bin/rm -rf $target
|
|
|
|
|
svn export src/openwrt $target
|
|
|
|
|
|
|
|
|
|
#apply own feeds.conf
|
|
|
|
|
sed -e"s|PATH|$(pwd)/src/packages|g" ./build_patches/feeds.conf > $target/feeds.conf
|
|
|
|
|
## generate own feeds.conf
|
|
|
|
|
#this local variable should be globally configure variable used in get_source and here
|
|
|
|
|
local PACKAGEBASE=${PWD}/src/packages
|
|
|
|
|
rm -f $target/feeds.conf
|
|
|
|
|
for FEEDVAR in ${FEEDS[@]} ; do
|
|
|
|
|
FEED=$FEEDVAR[@] FEED=( ${!FEED} )
|
|
|
|
|
local NAME=${FEED[0]}
|
|
|
|
|
echo adding $NAME to package feeds
|
|
|
|
|
echo src-link $NAME $PACKAGEBASE/$NAME >> $target/feeds.conf
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo cleaning feeds
|
|
|
|
|
test -d $target/feeds && /bin/rm -rf $target/feeds
|
|
|
|
|
|
|
|
|
|
$target/scripts/feeds update
|
|
|
|
|
|
|
|
|
|
$target/scripts/feeds install -p packagesol nodewatcher
|
|
|
|
|
$target/scripts/feeds install -p fastd fastd libuecc
|
|
|
|
|
$target/scripts/feeds install -p tunneldigger tunneldigger
|
|
|
|
|
$target/scripts/feeds install -p libremap libremap-agent
|
|
|
|
|
$target/scripts/feeds install -p routing alfred kmod-batman-adv kmod-batgat
|
|
|
|
|
$target/scripts/feeds install -p openwrt bridge ethtool gpioctl-sysfs horst libugpio mii-tool wavemon kmod-gpiotoggling
|
|
|
|
|
|
|
|
|
|
for FEEDVAR in ${FEEDS[@]} ; do
|
|
|
|
|
FEED=$FEEDVAR[@] FEED=( ${!FEED} )
|
|
|
|
|
local NAME=${FEED[0]}
|
|
|
|
|
local PACKAGESVAR=${FEEDVAR}_PKGS
|
|
|
|
|
|
|
|
|
|
if [[ -n "${!PACKAGESVAR}" ]] ; then
|
|
|
|
|
echo adding ${!PACKAGESVAR} from feed $NAME to available packages
|
|
|
|
|
$target/scripts/feeds install -p $NAME ${!PACKAGESVAR}
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# todo evaluate this with the new openwrt
|
|
|
|
|
# This changes the default behavior of sysupgrade to not save the config
|
|
|
|
|