diff --git a/CHANGELOG.md b/CHANGELOG.md index c220155..8770a31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # Freifunk München Firmware Changelog +## v2015.4-altdorf + - Added additional Autoupdate Server + - Added additional Autoupdate Signatures + - Made changes necessary for Altdorf in i18n folder + +## v2015.4 + - Updated to Gluon 2015.1 + - More supported architectures and router models are available, including x86 + - Setup Mode + - A new wifi configuration page is available to disable client and mesh + networks on 2.4 & 5GHz indiviually + - Mesh on WAN can now be configured and is enabled by default + - Internationalization for German and English is available and will + be autodetected depending on the browser setting + +## v2015.3 + - Add 4 new gateways as placeholders (not all are and will be active immediately) + - Integrated no_rebroadcast fix on mesh-vpn from Gluon Upstream + - Added another key for stable version signing + +## v2015.2 + - Updated to new upstream gluon: 52698e62bac2ec0f8764b12cf437040528e77efb + - Switched to batman-adv compat version 15 + - Changed channel to 6 with HT20 on 2.4GHz + - Added FFMuc custom gluon packages with ebtables rules: + - mcast-drop-non-site to prohibit arp traffic except 10.8.0.0/16 + - mcast-drop-arp to drop arp traffic from/to 0.0.0.0 + - mcast-allow-cjdns to allow cjdns multicast traffic + - Use new gateways with DNS names + - Changed default download/upload traffic shaping to 12.000/1.200 kbit/s + - Removed keyformular note on end of luci configuration, as we're now + blacklisting keys instead of whitelisting + - Added information about liquid feedback on end of luci configuration + - Use improved version naming scheme for autoupdater compatibility with + intermediate versions + - Use internal NTP server 0.ntp.ffmuc.net + - Connections from nodes to gateways only over IPv4 for now (MTU issues) + ## v2015.1-altdorf - Changed SSID to altdorf.freifunk.net - Changed Autoupdater URLs for altdorf firmware diff --git a/Makefile b/Makefile index 4e23a29..f3ab844 100644 --- a/Makefile +++ b/Makefile @@ -1,30 +1,42 @@ GLUON_BUILD_DIR := gluon-build -GLUON_GIT_URL := git://github.com/freifunk-gluon/gluon.git -GLUON_GIT_REF := v2014.4 +GLUON_GIT_URL := https://github.com/freifunk-gluon/gluon.git +GLUON_GIT_REF := v2015.1 SECRET_KEY_FILE ?= ${HOME}/.gluon-secret-key -_GIT_DESCRIBE = $(shell git describe --tags 2>/dev/null) -ifneq (,${_GIT_DESCRIBE}) - GLUON_RELEASE := ${_GIT_DESCRIBE} +GLUON_TARGETS ?= \ + ar71xx-generic \ + ar71xx-nand \ + x86-kvm_guest + +GLUON_RELEASE := $(shell git describe --tags 2>/dev/null) +ifneq (,$(shell git describe --exact-match --tags 2>/dev/null)) GLUON_BRANCH := stable else - GLUON_RELEASE ?= snapshot~$(shell date '+%Y%m%d')~$(shell git describe --always) GLUON_BRANCH := experimental 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} + GLUON_RELEASE=${GLUON_RELEASE} \ + GLUON_BRANCH=${GLUON_BRANCH} -all: gluon-clean +all: info ${MAKE} manifest - ${MAKE} gluon-clean + +info: + @echo + @echo '#########################' + @echo '# FFMUC Firmare build' + @echo '# Building release ${GLUON_RELEASE} for branch ${GLUON_BRANCH}' + @echo build: gluon-prepare - ${GLUON_MAKE} + for target in ${GLUON_TARGETS}; do \ + echo ""Building target $$target""; \ + ${GLUON_MAKE} GLUON_TARGET="$$target"; \ + done manifest: build ${GLUON_MAKE} manifest diff --git a/i18n/de.po b/i18n/de.po new file mode 100644 index 0000000..95726e0 --- /dev/null +++ b/i18n/de.po @@ -0,0 +1,41 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2015-05-16 19:31+0200\n" +"Last-Translator: Franz Pletz \n" +"Language-Team: German\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "gluon-config-mode:welcome" +msgstr "" +"Willkommen zum Einrichtungsassistenten für deinen neuen Münchner " +"Freifunk-Knoten. Fülle das folgende Formular deinen Vorstellungen " +"entsprechend aus und sende es ab." + +msgid "gluon-config-mode:pubkey" +msgstr "" + +msgid "gluon-config-mode:reboot" +msgstr "" +"

Dein Knoten startet gerade neu und wird anschließend versuchen, sich " +"mit anderen Freifunk-Knoten in seiner Nähe zu verbinden. Weitere " +"Informationen zur Münchner Freifunk-Community findest du auf " +"unserer Webseite. Wenn " +"alles geklappt hat, wirst du in ein paar Minuten unter " +"map.freifunk-muenchen.de " +"deinen Knoten finden.

" +"

Um zu dieser Konfigurationsseite zurückzugelangen, drücke im normalen " +"Betrieb für drei Sekunden den Reset-Button. Das Gerät wird dann im Config " +"Mode neustarten.

" +"

Wenn Du mehr über Freifunk in München erfahren möchtest, dann besuche " +"uns doch auf unserem monatlichen Treffen (siehe Webseite). Um mehr " +"auf die Entwicklung zu nehmen, hast Du als Knotenbetreiber " +"zusätzlich die Möglichkeit in unserem " +"Abstimmungs- und Dokumentationssystem " +"mitzumachen. Voraussetzung ist eine persönliche Anmeldung auf einem " +"der Treffen.

" +"

Viel Spaß mit deinem Knoten und der Erkundung von Freifunk!

" diff --git a/i18n/en.po b/i18n/en.po new file mode 100644 index 0000000..a8c1913 --- /dev/null +++ b/i18n/en.po @@ -0,0 +1,30 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2015-05-16 19:31+0200\n" +"Last-Translator: Franz Pletz \n" +"Language-Team: English\n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "gluon-config-mode:welcome" +msgstr "" +"Welcome the the setup wizard of your new Freifunk Munich node. " +"Please fill out the following form and transmit it." + +msgid "gluon-config-mode:pubkey" +msgstr "" + +msgid "gluon-config-mode:reboot" +msgstr "" +"

Your node is currently rebooting and will try to connect to other " +"nearby Freifunk nodes. It should appear on our map at " +"map.freifunk-muenchen.de " +"in a few minutes.

" +"

To get back to this configuration interface, press the reset button for " +"3 seconds during normal operation. The device will then reboot into config " +"mode.

" +"

Have fun with your node and exploring the Freifunk network!

" diff --git a/modules b/modules new file mode 100644 index 0000000..a505384 --- /dev/null +++ b/modules @@ -0,0 +1,4 @@ +GLUON_SITE_FEEDS='ffmuc_packages' + +PACKAGES_FFMUC_PACKAGES_REPO=https://github.com/freifunkMUC/gluon-packages.git +PACKAGES_FFMUC_PACKAGES_COMMIT=82e721ad5d7c9eca8728954cfa1ab1d5b9168487 diff --git a/site.conf b/site.conf index 8b20a1e..0666e7b 100644 --- a/site.conf +++ b/site.conf @@ -1,261 +1,168 @@ ---[[ - gluon site.conf example - - This file contains the Munich freifunk site.conf which was adopted from the original freifunk suite used in Luebeck. - There are comments added to most switches to explain the usage of gluon. - - This is lua code now, not perl anymore. - - Happy compiling! -]] - { - --[[ Community settings - hostname_prefix: Nodename prefix - freifunk-abcdef123456 (hex-part is generated from node's MAC address) - site_name: Name of your community - site_code: Shortcode of your community - ]] + hostname_prefix = '', + site_name = 'Freifunk München', + site_code = 'ffmuc', + opkg_repo = 'http://openwrt.draic.info/barrier_breaker/14.07/%S/packages', - hostname_prefix = 'freifunk', - site_name = 'Freifunk München', - site_code = 'ffmuc', - opkg_repo = 'http://openwrt.draic.info/barrier_breaker/14.07/%S/packages', + prefix4 = '10.80.0.0/16', + prefix6 = 'fdef:ffc0:4fff::/64', + timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', + ntp_servers = { '0.ntp.ffmuc.net', '1.ntp.ffmuc.net' }, - --[[ General network settings - prefix4: IPv4 range of your community - prefix6: IPv6 range of your community - is also required for radvd ]] + mesh_on_wan = true, - prefix4 = '10.80.0.0/16', - prefix6 = 'fdef:ffc0:4fff::/64', + regdom = 'DE', + wifi24 = { + ssid = 'altdorf.freifunk.net', + channel = 6, + htmode = 'HT20', + mesh_ssid = 'mesh.ffmuc', + mesh_bssid = '02:0E:8E:1E:61:17', + mesh_mcast_rate = 12000, + }, - --[[ NTP settings - Synchronize the time of the nodes - timezone: Timezone of your community - http://wiki.openwrt.org/doc/uci/system#time.zones - ntp_servers: List of NTP-Servers to query. You can use any public and/or your private NTP-Servers of your community. - http://www.pool.ntp.org/zone/de ]] + wifi5 = { + ssid = 'altdorf.freifunk.net', + channel = 44, + htmode = 'HT40+', + mesh_ssid = 'mesh.ffmuc', + mesh_bssid = '02:0E:8E:1E:61:17', + mesh_mcast_rate = 12000, + }, - timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', - ntp_servers = {'1.ntp.services.ffm','3.ntp.services.ffm'}, + next_node = { + ip4 = '10.80.0.1', + ip6 = 'fdef:ffc0:4fff::1', + mac = '16:41:95:40:f7:dc', + }, - --[[ Wireless settings - regdom: IEEE 802.11 Regulatory Domain - http://en.wikipedia.org/wiki/IEEE_802.11#Regulatory_domains_and_legal_compliance - wifi24: Wifi settings for 2.4 GHz frequency devices - wifi5: Wifi settings for 5 GHz frequency devices - sub - ssid: Wifi name shown to the user (We recommend %site_code%.freifunk.net) - channel: Wifi channel to use - htmode: Specifies the channel width in 802.11n and 802.11ac mode, possible values are: - HT20 (single 20MHz channel), - HT40- (2x 20MHz channels, primary/control channel is upper, secondary channel is below) - HT40+ (2x 20MHz channels, primary/control channel is lower, secondary channel is above). - VHT20 / VHT40 / VHT80 / VHT160 (channel width in 802.11ac, extra channels are picked according to the specification) - http://wiki.openwrt.org/doc/uci/wireless#common.options (-> htmode) - mesh_ssid: SSID of the mesh-interface, an ugly SSID prevent clients from connecting (We recommend not to change this) - mesh_bssid: BSSID of the mesh-interface - mesh_mcast_rate: multicast rate of the mesh-interface ]] - - regdom = 'DE', - - wifi24 = { - ssid = 'altdorf.freifunk.net', - channel = 1, - htmode = 'HT40+', - mesh_ssid = 'mesh.ffmuc', - mesh_bssid = '02:0E:8E:1E:61:17', --[[ from https://muenchen.freifunk.net/wiki/Knoten#B.A.T.M.A.N._Advanced ]] - mesh_mcast_rate = 12000, - }, - - wifi5 = { - ssid = 'altdorf.freifunk.net', - channel = 44, - htmode = 'HT40+', - mesh_ssid = 'mesh.ffmuc', - mesh_bssid = '02:0E:8E:1E:61:17', - mesh_mcast_rate = 12000, - }, - - - --[[ Next-Node - next_node: Howto reach the node you are currently connected to - The node will always be reachable at that address, and it's the same on all nodes. Because next_node packets are redirected within the node itself, there will be no conflicts. - sub - ip4: IPv4 Address to use - ip6: IPv6 Address to use - mac: MAC Address to use - (TODO: What is the purpose of this MAC-Address here?) ]] - - next_node = { - ip4 = '10.80.0.1', - ip6 = 'fdef:ffc0:4fff::1', - mac = '16:41:95:40:f7:dc', - }, - - - --[[ Gateway settings - fastd_mesh_vpn: fastd vpn settings - https://projects.universe-factory.net/projects/fastd/wiki/User_manual - sub - methods: encryption algorithms to use - https://projects.universe-factory.net/projects/fastd/wiki/Methods - When multiple method statements are given, the first one has the highest preference. - mtu: package size - backbone: fastd vpn gateways of your community - sub - limit: Number of gateways each node connects to - On startup, each node tries to connect to every gateway, and then chooses the number of 'limit' fastest gateways it could reach - peers: Gateways - sub sub - key: public fastd key of your gateway - https://github.com/tcatm/ecdsautils - remotes: List of fastd configuration strings to connect to your gateway server ]] - - - fastd_mesh_vpn = { - methods = {'salsa2012+umac', 'salsa2012+gmac'}, - mtu = 1426, - backbone = { - limit = 2, - peers = { - vpn_gw01 = { --[[ VPN Server von Ole (netcap) ]] - key = '0ac59c349980993c99e74e1c5242c39cdd7282fbab0b9575b35762993df510f3', - remotes = {'ipv4 "37.120.168.150" port 10000'}, - }, - vpn_gw04 = { --[[ VPN Server von mephisto ]] - key = '40ebfaf04da006d9150d3d8adeaab0dfa62ca645b416403537cb009bbf2125b5', - remotes = {'ipv4 "213.166.225.3" port 10000'}, - }, - }, - }, - }, - - --[[ gluon autoupdater section - a how-to can be found here: http://gluon.readthedocs.org/en/latest/features/autoupdater.html - enable: 0, 1 - branch: stable, beta, experimental - name: name of the branch - mirrors: comma separated ipv6 based mirror-servers to access the firmware image - good_signatures: number of at leased good signatures signed by the authors of the firmware - pubkeys: public keys of the authors of the firmware image ]] - -autoupdater = { - enabled = 1, - branch = 'stable', - branches = { - stable = { - name = 'stable', - mirrors = { - 'http://[fdef:ffc0:4fff::11]/firmware/altdorf/stable/sysupgrade/', - 'http://[fdef:ffc0:4fff::130]/firmware/altdorf/stable/sysupgrade/', + fastd_mesh_vpn = { + methods = {'salsa2012+umac'}, + mtu = 1426, + groups = { + backbone = { + limit = 2, + peers = { + gw02 = { --[[ mephisto ]] + key = '7f7970e0fe5622aa4e308e003812bf2f60f5f1956c58ea20969a1106e6c793c0', + remotes = { + 'ipv4 "gw02.ffmuc.net" port 10000', + 'ipv4 "gw02.freifunk-muenchen.de" port 10000', + }, + }, + gw03 = { --[[ fpletz ]] + key = '4b856fca91077d08ea79f13e139c33b1d1a62e1566e0d447bbfd9cf640c74c41', + remotes = { + 'ipv4 "gw03.ffmuc.net" port 10000', + 'ipv4 "gw03.freifunk-muenchen.de" port 10000', + }, + }, + gw04 = { + key = 'adee58f70829e6a03e568ca8273070b38c1b4cfe0beb69c53eea429646908126', + remotes = { + 'ipv4 "gw04.ffmuc.net" port 10000', + 'ipv4 "gw04.freifunk-muenchen.de" port 10000', + }, + }, + gw05 = { + key = '2242fe7fff1def15233a364487545e57c3c69e1b624d97bd5d72359b9851cb6e', + remotes = { + 'ipv4 "gw05.ffmuc.net" port 10000', + 'ipv4 "gw05.freifunk-muenchen.de" port 10000', + }, + }, + gw06 = { + key = 'd6834aa47a14358d804139630812276b3297e767d159c9cfd13fa6fb638000e0', + remotes = { + 'ipv4 "gw06.ffmuc.net" port 10000', + 'ipv4 "gw06.freifunk-muenchen.de" port 10000', + }, + }, + gw07 = { + key = '77b5f5189c360b245e1c934941468cc9cf57f0646465be5765593a95e54449d6', + remotes = { + 'ipv4 "gw07.ffmuc.net" port 10000', + 'ipv4 "gw07.freifunk-muenchen.de" port 10000', + }, + }, + gw08 = { + key = 'e476fb3a72365b550a23b587c0962eed362ed0c237175552b3261d22daaa2055', + remotes = { + 'ipv4 "gw08.ffmuc.net" port 10000', + 'ipv4 "gw08.freifunk-muenchen.de" port 10000', + }, + }, + gw09 = { + key = 'b86f436c9bb13b308dc92c3889fd468c46679d9df0bf4892244372ab415694d0', + remotes = { + 'ipv4 "gw09.ffmuc.net" port 10000', + 'ipv4 "gw09.freifunk-muenchen.de" port 10000', + }, + }, + gw10 = { + key = 'c04358d4818ec108fa4715e4517300cb2d0fa848dfa872770c4b8487d525e8bf', + remotes = { + 'ipv4 "gw10.ffmuc.net" port 10000', + 'ipv4 "gw10.freifunk-muenchen.de" port 10000', + }, + }, }, - probability = 0.08, - good_signatures = 2, - pubkeys = { - '2a74ed02120a7d48bb2dc9be988b3480ed99844054b3d7f3e5d3df27d19d814b', -- Ole + }, + }, + }, + + autoupdater = { + enabled = 1, + branch = 'stable', + branches = { + stable = { + name = 'stable', + mirrors = { + 'http://freifunk-altdorf.de/firmware/altdorf/stable/sysupgrade/', + 'http://firmware.ffmuc.net/altdorf/stable/sysupgrade/', + 'http://[fdef:ffc0:4fff::130]/altdorf/stable/sysupgrade/', + }, + probability = 0.1, + good_signatures = 2, + pubkeys = { + + 'a9ba1d78b5d48d1539c5c6824ca62d8c7ce7a79913d2f3fcf28e4f7fe4e777a8', -- walter hartl + 'ed09d23552225f71da8a3763b17a09eb8e126ad3c4938275bd51d6d564e0ac0b', -- walter henz + '2a74ed02120a7d48bb2dc9be988b3480ed99844054b3d7f3e5d3df27d19d814b', -- ole '7e3bd782e40189b903b3fb1e488d64b23aa04bc353b1a521b4cd50e70b299113', -- fpletz + '56c4201f6ce2994678b0142e19099dd28d6ed17775d35ca9a7f12d9235890ffc', -- chris '2f92051ac4452d6026061e6c3719ffbd4f34ba7fbc474439fc6f857b76159bae', -- build.freifunk-muenchen.de (fpletz) - }, - }, - experimental = { + }, + }, + experimental = { name = 'experimental', - mirrors = { - 'http://[fdef:ffc0:4fff::130]/firmware/experimental/sysupgrade/', + mirrors = { + 'http://freifunk-altdorf.de/firmware/altdorf/experimental/sysupgrade/', + 'http://firmware.ffmuc.net/altdorf/experimental/sysupgrade/', + 'http://[fdef:ffc0:4fff::130]/altdorf/experimental/sysupgrade/', }, - probability = 0.1, - good_signatures = 1, - pubkeys = { - '2a74ed02120a7d48bb2dc9be988b3480ed99844054b3d7f3e5d3df27d19d814b', -- Ole - '7e3bd782e40189b903b3fb1e488d64b23aa04bc353b1a521b4cd50e70b299113', -- fpletz - '2f92051ac4452d6026061e6c3719ffbd4f34ba7fbc474439fc6f857b76159bae', -- build.freifunk-muenchen.de (fpletz) - }, - }, - }, - }, + probability = 0.5, + good_signatures = 1, + pubkeys = { + 'a9ba1d78b5d48d1539c5c6824ca62d8c7ce7a79913d2f3fcf28e4f7fe4e777a8', -- walter hartl + 'ed09d23552225f71da8a3763b17a09eb8e126ad3c4938275bd51d6d564e0ac0b', -- walter henz + '2f92051ac4452d6026061e6c3719ffbd4f34ba7fbc474439fc6f857b76159bae', -- build.freifunk-muenchen.de (fpletz) + }, + }, + }, + }, - - --[[ Simple TC settings to limit the bandwidth of the vpn-uplink - mesh_vpn: - sub - ifname: name of the interface/bridge - enabled: default-value - limit_egress: default-value - limit_ingress: default-value ]] - - simple_tc = { - mesh_vpn = { - ifname = 'mesh-vpn', - enabled = false, - limit_egress = 200, - limit_ingress = 3000, - }, - }, - - - --[[ Config Mode settings - Text shown on local website on node while in config mode (after initial flashing or after a long press and hold on the primary button and reboot). You can use html here. - msg_welcome: Welcome message shown at startup - msg_pubkey: Instructions for the user how your community handles the key exchange - only shown if VPN setting is selected - msg_reboot: Message shown when configuration is finished while the node is rebooting. - - Variables - Within the text given here you can use variables which are - replaced when the respective website is delivered to the user. - Variables must be used in the format <%=NAME%>. See msg_pubkey for an example. - hostname: hostname of the node - pubkey: fastd public key of the node - sysconfig.primary_mac the primary mac of the node, also found printed beneath the device - ... other sysconfig.* variables: config_ifname, lan_ifname, wan_ifname ]] - - - config_mode = { - msg_welcome = [[ -Willkommen zum Einrichtungsassistenten für deinen neuen Münchner -Freifunk-Knoten. Fülle das folgende Formular deinen Vorstellungen -entsprechend aus und sende es ab. -]], - msg_pubkey = [[ -

-Dies ist der öffentliche Schlüssel deines Freifunk-Knotens. Erst nachdem -er auf den Servern des Münchener Freifunk-Projektes eingetragen wurde, -kann sich dein Knoten mit dem Münchner Mesh-VPN verbinden. -

- -

-Um deinen Knoten einzutragen, öffne in einem Browser deiner Wahl bitte Keyformular, fülle das Formular aus und schicke es ab. - -

- -

Informationen für das Formular: -

-

- -

-Sollte das Formular nicht verfügbar sein, sende bitte eine Mail an Ole oder frnk. -

-]], - msg_reboot = [[ -

-Dein Knoten startet gerade neu und wird anschließend versuchen, -sich mit anderen Freifunk-Knoten in seiner Nähe zu -verbinden. Weitere Informationen zur -Münchner Freifunk-Community findest du auf -unserer Webseite. -

-

-Viel Spaß mit deinem Knoten und der Erkundung von Freifunk! -

-]], - }, + simple_tc = { + mesh_vpn = { + ifname = 'mesh-vpn', + enabled = false, + limit_egress = 1200, + limit_ingress = 12000, + }, + }, } -- vim: set ft=lua:ts=2:sw=2:et + diff --git a/site.mk b/site.mk index 717a1b2..e3e819b 100644 --- a/site.mk +++ b/site.mk @@ -1,8 +1,9 @@ GLUON_SITE_PACKAGES := \ - gluon-mesh-batman-adv-14 \ + gluon-mesh-batman-adv-15 \ gluon-alfred \ gluon-announced \ gluon-autoupdater \ + gluon-config-mode-core \ gluon-config-mode-autoupdater \ gluon-config-mode-hostname \ gluon-config-mode-mesh-vpn \ @@ -13,14 +14,18 @@ GLUON_SITE_PACKAGES := \ gluon-luci-admin \ gluon-luci-autoupdater \ gluon-luci-portconfig \ + gluon-luci-wifi-config \ gluon-luci-private-wifi \ gluon-next-node \ gluon-mesh-vpn-fastd \ gluon-radvd \ + gluon-setup-mode \ gluon-status-page \ iwinfo \ iptables \ - haveged + haveged \ + gluon-ebtables-filter-arp-ffmuc \ + gluon-ebtables-filter-multicast-ffmuc DEFAULT_GLUON_RELEASE := snapshot~$(shell date '+%Y%m%d') @@ -29,3 +34,6 @@ DEFAULT_GLUON_RELEASE := snapshot~$(shell date '+%Y%m%d') GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE) GLUON_PRIORITY ?= 0 + +# Languages to include +GLUON_LANGS ?= en de