1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

add netmasker

This commit is contained in:
suyuan 2022-09-24 00:00:42 +08:00
parent d155e9a8ad
commit ea3e086b1d
5 changed files with 431 additions and 0 deletions

View file

@ -0,0 +1,177 @@
#!/bin/bash
# setting working directory
WORK_DIR="/home/user"
# setting branch
if [ "${OPENWRT_BRANCH}" = "" ]
then
DEFAULT_OPENWRT_BRANCH="openwrt-21.02"
else
DEFAULT_OPENWRT_BRANCH="${OPENWRT_BRANCH}"
fi
download_openwrt() {
cd ${WORK_DIR}
# pull code
if [ ! -d "openwrt" ]; then
git clone https://git.openwrt.org/openwrt/openwrt.git
fi
}
change_openwrt_branch() {
cd ${WORK_DIR}/openwrt
if [ "${1}" = "" ]
then
echo "Building ${DEFAULT_OPENWRT_BRANCH}"
git checkout -B ${DEFAULT_OPENWRT_BRANCH} origin/${DEFAULT_OPENWRT_BRANCH}
else
echo "Building ${1}"
git checkout -B ${1} origin/${1}
fi
}
init_openwrt_branch() {
cd ${WORK_DIR}/openwrt
git stash
git pull --all
git pull --tags
}
init_openwrt_link() {
cd ${WORK_DIR}/openwrt
sudo chown 1000:1000 /src -R
mkdir -p /src/dl
mkdir -p /src/staging_dir
mkdir -p /src/build_dir
mkdir -p /src/tmp
mkdir -p /src/bin
ln -s /src/dl ${WORK_DIR}/openwrt/dl
ln -s /src/staging_dir ${WORK_DIR}/openwrt/staging_dir
ln -s /src/build_dir ${WORK_DIR}/openwrt/build_dir
ln -s /src/tmp ${WORK_DIR}/openwrt/tmp
}
update_install_openwrt_feeds() {
cd ${WORK_DIR}/openwrt
./scripts/feeds update -a
./scripts/feeds install -a
}
openwrt_init_config() {
cd ${WORK_DIR}/openwrt
echo "CONFIG_TARGET_x86=y" > ${WORK_DIR}/openwrt/.config
echo "CONFIG_TARGET_x86_64=y" >> ${WORK_DIR}/openwrt/.config
}
openwrt_make_build_env() {
cd ${WORK_DIR}/openwrt
make defconfig
make -j4 download
make -j4 tools/install
make -j4 toolchain/install
}
openwrt_make() {
cd ${WORK_DIR}/openwrt
make -j4
}
openwrt_install_netmaker_feeds() {
cd ${WORK_DIR}/openwrt
echo "src-git netmaker http://github.com/sbilly/netmaker-openwrt.git" >> feeds.conf.default
./scripts/feeds update netmaker
./scripts/feeds install netmaker
}
openwrt_install_package_netmaker_config() {
cd ${WORK_DIR}/openwrt
echo "CONFIG_FEED_netmaker=y" >> ${WORK_DIR}/openwrt/.config
echo "CONFIG_PACKAGE_netmaker=m" >> ${WORK_DIR}/openwrt/.config
echo "CONFIG_PACKAGE_netmaker-dev=m" >> ${WORK_DIR}/openwrt/.config
}
openwrt_patch_golang_host() {
cd ${WORK_DIR}/openwrt
echo "patching ${1}"
if [ "${1}" = "openwrt-19.07" ]
then
sed -i 's/5fb43171046cf8784325e67913d55f88a683435071eef8e9da1aa8a1588fcf5d/2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang/Makefile
sed -i 's/1.13/1.17/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang-version.mk
sed -i 's/15/2/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang-version.mk
fi
if [ "${1}" = "openwrt-18.06" ]
then
sed -i 's/6faf74046b5e24c2c0b46e78571cca4d65e1b89819da1089e53ea57539c63491/2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang/Makefile
sed -i 's/1.10/1.17/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang-version.mk
sed -i 's/8/2/g' ${WORK_DIR}/openwrt/feeds/packages/lang/golang/golang-version.mk
fi
}
openwrt_make_netmaker_package() {
cd ${WORK_DIR}/openwrt
make defconfig
make toolchain/gcc/final/compile
make package/netmaker/clean
find ./ -type d | xargs -n1 sudo chmod 755 -R
make package/netmaker/compile V=s
}
openwrt_copy_pacage() {
echo ${1}
echo > /tmp/copy.sh
cd ${WORK_DIR}/openwrt/bin/packages/x86_64/netmaker/
for ipk in ./*.ipk
do
if [ -f "$ipk" ]
then
echo ${ipk} | gawk -F".ipk" -v BRANCH=${1} '{ print "cp -rfv "$0" /src/bin/"$1"-"BRANCH".ipk" }' >> /tmp/copy.sh
fi
done
/bin/bash /tmp/copy.sh
}
download_openwrt
change_openwrt_branch ${DEFAULT_OPENWRT_BRANCH}
init_openwrt_branch
init_openwrt_link
openwrt_install_netmaker_feeds
update_install_openwrt_feeds
openwrt_init_config
openwrt_install_package_netmaker_config
openwrt_patch_golang_host ${DEFAULT_OPENWRT_BRANCH}
openwrt_make_netmaker_package
openwrt_copy_pacage ${DEFAULT_OPENWRT_BRANCH}
ls -alF ${WORK_DIR}/openwrt/bin/ /src/bin