diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7d8a562 --- /dev/null +++ b/Makefile @@ -0,0 +1,108 @@ +GLUON_BUILD_DIR := gluon-build +GLUON_GIT_URL := https://github.com/freifunk-gluon/gluon.git +GLUON_GIT_REF := v2021.1 + +PATCH_DIR := ${GLUON_BUILD_DIR}/site/patches +SECRET_KEY_FILE ?= ${HOME}/.gluon-secret-key + +GLUON_TARGETS ?= \ + ar71xx-generic \ + ar71xx-tiny \ + ar71xx-nand \ + brcm2708-bcm2708 \ + brcm2708-bcm2709 \ + mpc85xx-generic \ + mpc85cc-p1020 \ + lantiq-xway \ + lantiq-xrx200 \ + ath79-generic \ + ramips-mt7621 \ + sunxi-cortexa7 \ + x86-generic \ + x86-geode \ + x86-64 \ + x86-legacy \ + ipq40xx-generic \ + ipq806x-generic \ + ramips-mt7620 \ + ramips-mt76x8 \ + ramips-rt305x + +ifneq (,$(shell git describe --exact-match --tags 2>/dev/null)) + GLUON_BRANCH := stable + GLUON_RELEASE := $(shell git describe --tags 2>/dev/null) +else + GLUON_BRANCH := experimental + EXP_FALLBACK = $(shell date '+%Y%m%d%H') + BUILD_NUMBER ?= $(EXP_FALLBACK) + GLUON_RELEASE := $(shell git describe --tags | cut -d- -f1)~exp$(BUILD_NUMBER) +endif + +JOBS ?= $(shell cat /proc/cpuinfo | grep processor | wc -l) + +GLUON_MAKE := ${MAKE} -j ${JOBS} -C ${GLUON_BUILD_DIR} \ + GLUON_RELEASE=${GLUON_RELEASE} \ + GLUON_BRANCH=${GLUON_BRANCH} + +all: info + ${MAKE} manifest + +info: + @echo + @echo '#########################' + @echo '# FFHH Firmware build' + @echo '# Building release ${GLUON_RELEASE} for branch ${GLUON_BRANCH}' + @echo + +build: gluon-prepare + for target in ${GLUON_TARGETS}; do \ + echo ""Building target $$target""; \ + ${GLUON_MAKE} download all GLUON_TARGET="$$target"; \ + done + +manifest: build + ${GLUON_MAKE} manifest + mv ${GLUON_BUILD_DIR}/output . + +sign: manifest + ${GLUON_BUILD_DIR}/contrib/sign.sh ${SECRET_KEY_FILE} output/images/sysupgrade/${GLUON_BRANCH}.manifest + +${GLUON_BUILD_DIR}: + git clone ${GLUON_GIT_URL} ${GLUON_BUILD_DIR} + +gluon-prepare: output-clean ${GLUON_BUILD_DIR} + cd ${GLUON_BUILD_DIR} \ + && git remote set-url origin ${GLUON_GIT_URL} \ + && git fetch origin \ + && rm -rf packages \ + && git checkout -q --force ${GLUON_GIT_REF} \ + && git clean -fd; + ln -sfT .. ${GLUON_BUILD_DIR}/site + make gluon-patch + ${GLUON_MAKE} update + +gluon-patch: + echo "Applying Patches ..." + (cd ${GLUON_BUILD_DIR}) + if [ `git branch --list patched` ]; then \ + (git branch -D patched) \ + fi + (cd ${GLUON_BUILD_DIR}; git checkout -B patching) + if [ -d "gluon-build/site/patches" -a "gluon-build/site/patches/*.patch" ]; then \ + (cd ${GLUON_BUILD_DIR}; git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn --verbose site/patches/*.patch) || ( \ + cd ${GLUON_BUILD_DIR}; \ + git clean -fd; \ + git checkout -B patched; \ + git branch -D patching; \ + exit 1 \ + ) \ + fi + (cd ${GLUON_BUILD_DIR}; git branch -M patched) + +gluon-clean: + rm -rf ${GLUON_BUILD_DIR} + +output-clean: + rm -rf output + +clean: gluon-clean output-clean \ No newline at end of file diff --git a/build.conf b/build.conf deleted file mode 100644 index 3185df3..0000000 --- a/build.conf +++ /dev/null @@ -1,6 +0,0 @@ -GLUON_RELEASE="v2020.2.2.0" -GLUON_BRANCH="stable" -targets="ar71xx-generic ar71xx-nand ar71xx-tiny brcm2708-bcm2708 brcm2708-bcm2709 mpc85xx-generic ramips-mt7620 ramips-mt7621 ramips-mt76x8 ramips-rt305x sunxi-cortexa7 x86-64 x86-generic x86-geode" -broken_images=( - '*dir*615*d*' -) diff --git a/build.sh b/build.sh deleted file mode 100755 index 4bf0eed..0000000 --- a/build.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/usr/bin/env bash -set -e - -function announce () { - echo '############################' "$@" >&2 -} -function usage () { - echo "Usage: $0 -g GLUON_PATH" >&2 - echo " -g GLUON_PATH Path to a checkout of the gluon repository." >&2 - echo " -t TARGETS Comma separated list of gluon targets to build" >&2 - echo " -a Automatically detect and build all targets." >&2 - echo " -o OUT_PATH Path to the firmware output directory. Default: ${gluon_out}" >&2 - echo " -s SIGNATURE Sign firmware with signature" >&2 - echo " -b BROKEN=1" >&2 - echo " -v verbose" >&2 - echo " -j JOBS Run build with -jJOBS. Default: ${proc}" >&2 -} - -proc=$(nproc) -gluon_out="${HOME}/firmware" - -while [ $# -gt 0 ]; do - case "$1" in - -a) - auto_targets=1 - ;; - -g) - gluon_path="$2" - shift - ;; - -t) - build_targets="$2" - shift - ;; - -o) - gluon_out="$2" - shift - ;; - -s) - signature="$2" - shift - ;; - -b) - export BROKEN=1 - ;; - -j) - proc="$2" - shift - ;; - -v) - verbose=V=s - ;; - *) - echo ERROR: Failed to parse: "${1}" >&2 - usage - exit 1 - ;; - esac - shift -done - -if [ -z "$gluon_path" ]; then - usage - exit 1 -fi - -gluon_path=$(realpath "$gluon_path") -gluon_out=$(realpath "$gluon_out") -site_path=$(realpath "$(dirname "${BASH_SOURCE[0]}")") - -announce GLUON: "$gluon_path" >&2 -announce FFHH SITE PATH: "$site_path" >&2 - -pushd "$site_path" -# shellcheck source=/dev/null -. ./build.conf -[ "${GLUON_BRANCH}" = "experimental" ] && GLUON_RELEASE="${GLUON_RELEASE}~exp$(date +%Y%m%d)" -export GLUON_RELEASE -export GLUON_BRANCH -export GLUON_SITEDIR="${site_path}" -export GLUON_OUTPUTDIR="${gluon_out}/${GLUON_RELEASE}/${GLUON_BRANCH}" -popd - -pushd "${gluon_path}" -announce Starting make update... -rm -rf "${GLUON_OUTPUTDIR}" -mkdir -p "${GLUON_OUTPUTDIR}" -make update -# Try to install patches. I wasn't able to figure out how patches in gluon/site/patches work. -for p in "${site_path}"/patches/*.patch; do - if [ -e "$p" ] && [ ! -f "${gluon_path}/${p##*/}" ]; then - announce "Installing patch $p" - patch -p1 < "$p" - touch "${gluon_path}/${p##*/}" - fi -done - -if [ "$auto_targets" = "1" ]; then - # detect available targets - targets="$(make list-targets | sort | xargs)" -else - # if a list of build targets has been supplied, only build those - targets="$(echo "${build_targets:-$targets}" | sed -e 's_,_ _g')" -fi -announce "The following targets will be generated: $targets" >&2 - -for t in $targets; do - announce "Starting build for $t..." >&2 - make "-j$(nproc)" "GLUON_TARGET=$t" $verbose -done -# Remove known-broken images -# shellcheck disable=SC2154 -for broken_image in "${broken_images[@]}"; do - announce "Removing broken image ${broken_image}..." - find "${GLUON_OUTPUTDIR}/images" -iname "${broken_image}" \( -type f -o -type l \) -ls -exec rm -f {} \; -done -# Generate the images.list -# shellcheck disable=SC2094 -( cd "${GLUON_OUTPUTDIR}/images" && ( echo "RELEASE=${GLUON_RELEASE}"; find . -type f ! -iname '*.manifest' ! -iname images.list; find . -type l ! -iname '*.manifest' ) | sed -e 's!^\./\(.*\)$!\1!' -e 's!/! !g' | sort > images.list ) -announce Building manifest... -make manifest -if [ -n "${signature}" ]; then - if [ "$GLUON_BRANCH" == "experimental" ]; then - announce Signing... - "${gluon_path}/contrib/sign.sh" "${signature}" "${GLUON_OUTPUTDIR}/images/sysupgrade/experimental.manifest" - else - echo ERROR: can only sign experimental branch >&2 - exit 1 - fi -fi -popd diff --git a/patches/remove-dlink.patch b/patches/remove-dlink.patch new file mode 100644 index 0000000..554c147 --- /dev/null +++ b/patches/remove-dlink.patch @@ -0,0 +1,18 @@ +diff --git a/targets/ar71xx-tiny b/targets/ar71xx-tiny +index a0a8d510..160ac8a4 100644 +--- a/targets/ar71xx-tiny ++++ b/targets/ar71xx-tiny +@@ -16,13 +16,6 @@ defaults { + } + + +--- D-Link +- +-device('d-link-dir-615-rev-c1', 'dir-615-c1', { +- profile = 'DIR615C1', +-}) +- +- + -- TP-Link + + local tplink_region_suffix = '' \ No newline at end of file diff --git a/site.mk b/site.mk index 5952e73..8059aaa 100644 --- a/site.mk +++ b/site.mk @@ -1,39 +1,334 @@ -GLUON_MULTIDOMAIN := 1 -GLUON_DEPRECATED := upgrade +GLUON_MULTIDOMAIN=1 +GLUON_DEPRECATED=upgrade + +GLUON_FEATURES := \ + respondd \ + autoupdater \ + ebtables-filter-multicast \ + ebtables-filter-ra-dhcp \ + ebtables-source-filter \ + radv-filterd \ + web-advanced \ + web-private-wifi \ + web-wizard \ + mesh-batman-adv-15 \ + mesh-vpn-fastd \ + status-page \ + config-mode-domain-select \ + config-mode-geo-location \ GLUON_SITE_PACKAGES := \ - -gluon-config-mode-geo-location \ - -gluon-config-mode-contact-info \ - gluon-ebtables-source-filter \ - gluon-web-mesh-vpn-fastd \ iptables \ iwinfo -GLUON_FEATURES := \ - autoupdater \ - config-mode-domain-select \ - ebtables-filter-multicast \ - ebtables-filter-ra-dhcp \ - mesh-batman-adv-15 \ - mesh-vpn-fastd \ - web-private-wifi \ - radv-filterd \ - respondd \ - status-page \ - web-advanced \ - web-wizard +DEFAULT_GLUON_RELEASE := v2021.1.0~exp$(shell date '+%Y%m%d%H') -# x86 and x86-64 add extra software -ifeq ($(GLUON_TARGET),$(filter $(GLUON_TARGET),x86-generic x86-64)) - GLUON_SITE_PACKAGES += \ - nano \ - htop \ - ethtool -endif +# Allow overriding the release number from the command line +GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE) -GLUON_PRIORITY ?= 7 +GLUON_PRIORITY ?= 0 -# Region code required for some images; supported values: us eu GLUON_REGION ?= eu +# Languages to include GLUON_LANGS ?= en de + +# Additional package list generated by contrib/genpkglist.py + +INCLUDE_USB := \ + usbutils + +EXCLUDE_USB := \ + -usbutils + +INCLUDE_USB_HID := \ + kmod-usb-hid \ + kmod-hid-generic + +EXCLUDE_USB_HID := \ + -kmod-usb-hid \ + -kmod-hid-generic + +INCLUDE_USB_SERIAL := \ + kmod-usb-serial \ + kmod-usb-serial-ftdi \ + kmod-usb-serial-pl2303 + +EXCLUDE_USB_SERIAL := \ + -kmod-usb-serial \ + -kmod-usb-serial-ftdi \ + -kmod-usb-serial-pl2303 + +INCLUDE_USB_STORAGE := \ + block-mount \ + blkid \ + kmod-fs-ext4 \ + kmod-fs-ntfs \ + kmod-fs-vfat \ + kmod-usb-storage \ + kmod-usb-storage-extras \ + kmod-usb-storage-uas \ + kmod-nls-base \ + kmod-nls-cp1250 \ + kmod-nls-cp437 \ + kmod-nls-cp850 \ + kmod-nls-cp852 \ + kmod-nls-iso8859-1 \ + kmod-nls-iso8859-13 \ + kmod-nls-iso8859-15 \ + kmod-nls-iso8859-2 \ + kmod-nls-utf8 + +EXCLUDE_USB_STORAGE := \ + -block-mount \ + -blkid \ + -kmod-fs-ext4 \ + -kmod-fs-ntfs \ + -kmod-fs-vfat \ + -kmod-usb-storage \ + -kmod-usb-storage-extras \ + -kmod-usb-storage-uas \ + -kmod-nls-base \ + -kmod-nls-cp1250 \ + -kmod-nls-cp437 \ + -kmod-nls-cp850 \ + -kmod-nls-cp852 \ + -kmod-nls-iso8859-1 \ + -kmod-nls-iso8859-13 \ + -kmod-nls-iso8859-15 \ + -kmod-nls-iso8859-2 \ + -kmod-nls-utf8 + +INCLUDE_USB_NET := \ + kmod-mii \ + kmod-usb-net \ + kmod-usb-net-asix \ + kmod-usb-net-asix-ax88179 \ + kmod-usb-net-cdc-eem \ + kmod-usb-net-cdc-ether \ + kmod-usb-net-cdc-subset \ + kmod-usb-net-dm9601-ether \ + kmod-usb-net-hso \ + kmod-usb-net-ipheth \ + kmod-usb-net-mcs7830 \ + kmod-usb-net-pegasus \ + kmod-usb-net-rndis \ + kmod-usb-net-rtl8152 \ + kmod-usb-net-smsc95xx + +EXCLUDE_USB_NET := \ + -kmod-mii \ + -kmod-usb-net \ + -kmod-usb-net-asix \ + -kmod-usb-net-asix-ax88179 \ + -kmod-usb-net-cdc-eem \ + -kmod-usb-net-cdc-ether \ + -kmod-usb-net-cdc-subset \ + -kmod-usb-net-dm9601-ether \ + -kmod-usb-net-hso \ + -kmod-usb-net-ipheth \ + -kmod-usb-net-mcs7830 \ + -kmod-usb-net-pegasus \ + -kmod-usb-net-rndis \ + -kmod-usb-net-rtl8152 \ + -kmod-usb-net-smsc95xx + +INCLUDE_PCI := \ + pciutils + +EXCLUDE_PCI := \ + -pciutils + +INCLUDE_PCI_NET := \ + kmod-bnx2 + +EXCLUDE_PCI_NET := \ + -kmod-bnx2 + +INCLUDE_TLS := \ + ca-bundle \ + libustream-openssl + +EXCLUDE_TLS := \ + -ca-bundle \ + -libustream-openssl + +ifeq ($(GLUON_TARGET),ar71xx-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + + GLUON_allnet-all0315n_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_avm-fritz-wlan-repeater-300e_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_avm-fritz-wlan-repeater-450e_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_d-link-dap-1330-rev-a1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_d-link-dir-825-rev-b1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_meraki-mr12_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_meraki-mr16_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ocedo-koala_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-mr1750_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-mr600_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-mr900_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-om2p_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-om5p_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_openmesh-om5p-ac_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-cpe210-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-cpe210-v2_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-cpe210-v3_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-cpe510-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-wbs210-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-wbs510-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c25-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c58-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c60-v1_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c60-v2_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-re355_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-re450_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-airgateway_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-airgateway-pro_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-bullet-m_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-rocket-m_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-nanostation-m_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-loco-m-xw_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-nanostation-m-xw_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-rocket-m-xw_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-rocket-m-ti_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi-ap-pro_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifiap-outdoor_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifiap-outdoor+_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-ls-sr71_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi-ac-lite_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi-ac-lr_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi-ac-pro_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-unifi-ac-mesh_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_linksys-wrt160nl_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr710n-v1_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr710n-v2.1_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr842n-nd-v1_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr842n-nd-v2_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr1043n-nd-v1_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubiquiti-airrouter_SITE_PACKAGES += $(EXCLUDE_TLS) $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) +endif + +# no pkglists for target ar71xx-mikrotik + + +ifeq ($(GLUON_TARGET),ar71xx-nand) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +# no pkglists for target ar71xx-tiny + + +ifeq ($(GLUON_TARGET),ath79-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + + GLUON_devolo-wifi-pro-1200e_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_devolo-wifi-pro-1200i_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_devolo-wifi-pro-1750c_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_devolo-wifi-pro-1750i_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_devolo-wifi-pro-1750x_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ocedo-raccoon_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c6-v2_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-cpe220-v3_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) +endif + +ifeq ($(GLUON_TARGET),brcm2708-bcm2708) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_HID) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),brcm2708-bcm2709) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_HID) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),brcm2708-bcm2710) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_HID) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),ipq40xx-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),ipq806x-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),lantiq-xrx200) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),lantiq-xway) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),mpc85xx-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),mpc85xx-p1020) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),mvebu-cortexa9) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),ramips-mt7620) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),ramips-mt7621) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + + GLUON_netgear-ex6150_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubnt-erx_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_ubnt-erx-sfp_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) +endif + +ifeq ($(GLUON_TARGET),ramips-mt76x8) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + + GLUON_cudy-wr1000_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_gl.inet-vixmini_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c50-v3_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-archer-c50-v4_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wa801nd-v5_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) + GLUON_tp-link-tl-wr841n-v13_SITE_PACKAGES += $(EXCLUDE_USB) $(EXCLUDE_USB_NET) $(EXCLUDE_USB_SERIAL) $(EXCLUDE_USB_STORAGE) +endif + +# no pkglists for target ramips-rt305x + + +ifeq ($(GLUON_TARGET),sunxi-cortexa7) + GLUON_SITE_PACKAGES += $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),x86-64) + GLUON_SITE_PACKAGES += $(INCLUDE_PCI) $(INCLUDE_PCI_NET) $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),x86-generic) + GLUON_SITE_PACKAGES += $(INCLUDE_PCI) $(INCLUDE_PCI_NET) $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +ifeq ($(GLUON_TARGET),x86-geode) + GLUON_SITE_PACKAGES += $(INCLUDE_PCI) $(INCLUDE_PCI_NET) $(INCLUDE_TLS) $(INCLUDE_USB) $(INCLUDE_USB_NET) $(INCLUDE_USB_SERIAL) $(INCLUDE_USB_STORAGE) + +endif + +# no pkglists for target x86-legacy +