fff: create proper package variants instead of copying file #96
11
buildscript
11
buildscript
|
@ -25,6 +25,8 @@ OPENWRT_PKGS="gpioctl-sysfs libugpio fastd haserl micrond mtr bmon"
|
|||
ROUTING_PKGS="kmod-batman-adv batctl alfred babeld"
|
||||
GLUON_PKGS="simple-tc uradvd"
|
||||
|
||||
FFF_VARIANTS="node layer3"
|
||||
|
||||
OPENWRTURL="https://git.openwrt.org/openwrt/openwrt.git"
|
||||
|
||||
## Feed definition [0]: name aka directory, [1]: url, [2]: revision
|
||||
|
@ -149,7 +151,7 @@ prepare() {
|
|||
|
||||
apply_variant() {
|
||||
# set the variant for this build
|
||||
cp "./src/packages/fff/fff/variant-$(cat selected_variant).mk" "$builddir"/variant.mk
|
||||
export FFF_VARIANT=$(cat selected_variant)
|
||||
# force the reevaluation of this Makefile to make note of the new variant
|
||||
touch ./src/packages/fff/fff/Makefile
|
||||
}
|
||||
|
@ -441,14 +443,13 @@ case "$1" in
|
|||
;;
|
||||
"selectvariant")
|
||||
if [ "$2" = "help" ] || [ "$2" = "" ]; then
|
||||
echo "Select a build varaint:"
|
||||
echo "Select a build variant:"
|
||||
echo
|
||||
echo "Usage: $0 $1 <name of variant>"
|
||||
echo "available variants: "
|
||||
/bin/ls src/packages/fff/fff/variant-*.mk | sed 's#.*/variant-\(.*\)\.mk#\1#g'
|
||||
echo "available variants: $FFF_VARIANTS"
|
||||
echo
|
||||
else
|
||||
if [ ! -f "src/packages/fff/fff/variant-$2.mk" ]; then
|
||||
if ! echo "$FFF_VARIANTS" | grep -q "\b$2\b"; then
|
||||
|
||||
echo "Could not find variant $2"
|
||||
else
|
||||
setVariant $2
|
||||
|
|
|
@ -1,34 +1,56 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff
|
||||
PKG_RELEASE:=8
|
||||
PKG_RELEASE:=9
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/fff-base
|
||||
define Package/fff-variant/default
|
||||
SECTION:=base
|
||||
CATEGORY:=Freifunk
|
||||
TITLE:=Freifunk-Franken Base
|
||||
URL:=http://www.freifunk-franken.de
|
||||
DEPENDS:=+iptables \
|
||||
URL:=https://www.freifunk-franken.de
|
||||
DEFAULT:=$(if $(findstring fff-variant-$(FFF_VARIANT),$(1)),y,n)
|
||||
adschm
commented
Hier muss 'findstring' durch 'filter' ersetzt werden. Hier muss 'findstring' durch 'filter' ersetzt werden.
rohammer
commented
Hi, was steht denn hier in $1 ? Hi, was steht denn hier in $1 ?
adschm
commented
$1 ist der Package-Name wie im Define, also fff-variant-node oder fff-variant-layer3. Ich wollte erst direkt $(FFF_VARIANT) gegen VARIANT prüfen, aber aus irgendeinem Grund ist VARIANT zu dem Zeitpunkt, wo der Vergleich durchgeführt wird, noch nicht verfügbar (tatsächlich muss man hier statt VARIANT dann BUILD_VARIANT verwenden und ggf. auch "=" statt ":=", aber es hat in keinem Fall funktioniert, weshalb ich auf diese Methode ausgewichen bin, die sich als robust erwiesen hat). $1 ist der Package-Name wie im Define, also fff-variant-node oder fff-variant-layer3.
Ich wollte erst direkt $(FFF_VARIANT) gegen VARIANT prüfen, aber aus irgendeinem Grund ist VARIANT zu dem Zeitpunkt, wo der Vergleich durchgeführt wird, noch nicht verfügbar (tatsächlich muss man hier statt VARIANT dann BUILD_VARIANT verwenden und ggf. auch "=" statt ":=", aber es hat in keinem Fall funktioniert, weshalb ich auf diese Methode ausgewichen bin, die sich als robust erwiesen hat).
rohammer
commented
danke dir,
danke dir,
ich glaub ich hab's jetzt tatsaechlich verstanden. Ich bin sehr dafuer.
Mit der function filter:
```
Tested-by: Robert Langhammer <rlanghammer@web.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
```
|
||||
DEPENDS:= \
|
||||
+iptables \
|
||||
+ip6tables \
|
||||
+odhcp6c \
|
||||
+micrond \
|
||||
+odhcp6c \
|
||||
+fff-config \
|
||||
+fff-nodewatcher \
|
||||
+fff-web-ui \
|
||||
+fff-support \
|
||||
+fff-network \
|
||||
+fff-nodewatcher \
|
||||
+fff-simple-tc \
|
||||
+fff-support \
|
||||
+fff-sysupgrade \
|
||||
+fff-wireless \
|
||||
+fff-timeserver \
|
||||
+fff-simple-tc
|
||||
+fff-web-ui \
|
||||
+fff-wireless
|
||||
endef
|
||||
|
||||
define Package/fff-base/description
|
||||
This is the Freifunk Franken Firmware Base package
|
||||
define Package/fff-variant/default/description
|
||||
This package is used to switch one of the variants on by default
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,fff-base))
|
||||
define Package/fff-variant-layer3
|
||||
$(Package/fff-variant/default)
|
||||
TITLE:=Freifunk-Franken Layer3 Variant
|
||||
DEPENDS+=+fff-layer3
|
||||
VARIANT:=layer3
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/variant.mk
|
||||
define Package/fff-variant-layer3/description
|
||||
$(Package/fff-variant/default/description)
|
||||
endef
|
||||
|
||||
define Package/fff-variant-node
|
||||
$(Package/fff-variant/default)
|
||||
TITLE:=Freifunk-Franken Node Variant
|
||||
DEPENDS+=+fff-node
|
||||
VARIANT:=node
|
||||
endef
|
||||
|
||||
define Package/fff-variant-node/description
|
||||
$(Package/fff-variant/default/description)
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,fff-variant-layer3))
|
||||
$(eval $(call BuildPackage,fff-variant-node))
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
define Package/fff-default
|
||||
SECTION:=base
|
||||
CATEGORY:=Freifunk
|
||||
DEFAULT:=y
|
||||
TITLE:=Freifunk-Franken Base default switcher
|
||||
URL:=http://www.freifunk-franken.de
|
||||
DEPENDS:=+fff-base +fff-layer3
|
||||
VARIANT:=layer3
|
||||
endef
|
||||
|
||||
define Package/fff-default/description
|
||||
This package is used to switch on of the Freifunk Franken
|
||||
package on per default
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,fff-default))
|
|
@ -1,16 +0,0 @@
|
|||
define Package/fff-default
|
||||
SECTION:=base
|
||||
CATEGORY:=Freifunk
|
||||
DEFAULT:=y
|
||||
TITLE:=Freifunk-Franken Base default switcher
|
||||
URL:=http://www.freifunk-franken.de
|
||||
DEPENDS:=+fff-base +fff-node
|
||||
VARIANT:=node
|
||||
endef
|
||||
|
||||
define Package/fff-default/description
|
||||
This package is used to switch on of the Freifunk Franken
|
||||
package on per default
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,fff-default))
|
Loading…
Reference in New Issue
Block a user
Nicht so viel greppen, wenn es nicht noetig ist. Die bash ist im shebang ->
Ich bin bash nicht so gewohnt, werd mir das gelegentlich mal ankucken.