Procházet zdrojové kódy

20171025 Linux (separate substitutions.conf.OS für FreeBSD und Linux; funktioniert jetzt out-of-the-box auf Ubuntu 14.04 (mit smlnj und ml-lpt packges)

Altlast před 7 roky
rodič
revize
0e2c2040a0

+ 3 - 3
README.md

@@ -18,7 +18,7 @@ Nach erfolgreichem `make` (s.u.) findet sich der tarball in `dist/nodes2grafana.
 
 ## Benötigte Software
 
-Benötigt wird außer den üblichen verdächtigen Un*x-utilities nur [SML/NJ](http://www.smlnj.org/), da der Konverter in SML'97 programmiert ist.
+Benötigt wird außer FreeBSD oder Linux sowie den dort üblichen verdächtigen Un*x-utilities nur [SML/NJ](http://www.smlnj.org/), da der Konverter in SML'97 programmiert ist.
 
 - Das smlnj package sollte vollständig sein, d.h. muss auch `ml-build` enthalten.
 - Wenn `heap2exec` vorhanden ist (wie beim FreeBSD port lang/smlnj), dann wird es zur Erstellung von executables genutzt. Ansonsten wird ein script installiert, dass einen heap mit Hilfe der SML/NJ runtime ausführt.
@@ -94,11 +94,11 @@ Startparameter zB:
 
     grafana-server -config=/usr/local/etc/grafana.conf -homepath=/usr/local/share/grafana/
 
-Nun sollte Grafana über <http://localhost:3000/> erreichbar sein, und man kann darüber den lokalen Prometheus als (default-)Datenquelle konfigurieren. Anschließend sollten die von nodes2grafana installierten Dashboards funktionieren, d.h. "bunte Bilder" produzieren:-)
+Nun ist Grafana über <http://localhost:3000/> erreichbar, und man kann darüber den lokalen Prometheus als (default-)Datenquelle konfigurieren. Dadurch sollten die von nodes2grafana installierten Dashboards funktionieren, d.h. "bunte Bilder" produzieren:-)
 
 # TODO
 
-- Auch für GNU/Linux gängig machen (gmake, wget, sed etc., pax, install, ...). Das sollte einfach sein, da die Makefiles zwecks leichter Portierbarkeit sehr minimalistisch formuliert sind.
+- Auch für GNU/Linux gängig machen: heap2exec. (Problem: 32bit runtime und ld auf 64bit Maschine)
 - `graph.json` -> grafana
 - Bei Bedarf: Aus einer textuellen Spezifikation der Struktur der `nodes.json` den passenden Konverter generieren. (Sportlich, aber wenn man eh' schon mit [SML](http://www.smlnj.org/sml.html) unterwegs ist ... :)
 - Doku:-)

+ 6 - 3
conf/Makefile

@@ -5,10 +5,10 @@ substitutions.sed: substitutions.conf
 	sed -n -E \
 		-e 's@^[[:space:]]*#.*@@' \
 		-e 's@!@\\!@g' \
-		-e 's@^([[:alnum:]_]+)[[:space:]]+(.+)@s!%%\1%%!\2!g@p' \
+		-e 's@^([[:alnum:]_]+)	+(.+)@s!%%\1%%!\2!g@p' \
 		substitutions.conf > $@
 
-substitutions.conf: substitutions.conf.local substitutions.conf.default
+substitutions.conf: substitutions.conf.default substitutions.conf.local
 	cp -p substitutions.conf.local $@
 	awk '{ print $$1 }' substitutions.conf.local | fgrep -v -f - substitutions.conf.default >> $@
 
@@ -17,6 +17,9 @@ substitutions.conf.local:
 	{ ETC_CONF=`sed -n -E -e 's/^ETC_DIR[[:space:]]+(.*)$$/\1/p' substitutions.conf.default | head -n 1`/nodes2grafana.conf ; \
 	  if [ -e $$ETC_CONF ] ; then ln -s $$ETC_CONF $@ ; else touch $@ ; fi ; }
 
+substitutions.conf.default:
+	cp -p substitutions.conf.`uname` substitutions.conf.default
+
 clean:
-	rm -f substitutions.sed substitutions.conf
+	rm -f substitutions.sed substitutions.conf substitutions.conf.default
 	[ -L substitutions.conf.local ] && rm -f substitutions.conf.local || [ -s substitutions.conf.local ] || rm -f substitutions.conf.local

+ 25 - 0
conf/substitutions.conf.FreeBSD

@@ -0,0 +1,25 @@
+NODES_URL		https://map.ffdo.de/data/nodes.json
+FETCH_CMD		fetch -q -T 30 --no-verify-peer -o
+PROM_SEPERATOR		_
+#PROM_SEPERATOR		:
+PROM_PREFIX		ffdo_nodes
+PROM_SUMMARY_PREFIX	ffdo_nodes_summary
+PROM_INFO_PREFIX	ffdo_nodes_info
+PROM_STATS_PREFIX	ffdo_nodes_detail
+EXPORT_DIR		/var/tmp/node_exporter
+RUN_SML			/usr/local/smlnj/bin/.run-sml
+HEAP_SUFFIX		x86-bsd
+HEAP_FILES		 
+HEAP_TAR_EXCLUDE	--exclude=src/*.x86-bsd
+BIN_DIR			/usr/local/bin
+ETC_DIR			/etc
+DASHBOARD_DIR		/var/db/grafana/dashboards
+INSTALL_BIN_CMD		install -o 0 -g 0 -p -S -v
+INSTALL_DATA_CMD	install -o 0 -g 0 -p -S -v -m 644
+DASHBOARD_PREFIX	FF-DO-
+COMMUNITY_BRIEF		FF-DO
+COMMUNITY_FULL		Freifunk Dortmund
+COMMUNITY_URL		http://www.freifunk-dortmund.de/
+MAP_NODE_URL		https://map.ffdo.de/meshviewer/#!v:m;n:
+N2G_SRC_URL		https://git.ffdo.de/altlast/nodes2grafana
+N2G_COMMUNITY_URL	http://url.free.de/ffdo/Technik/Netzinfrastruktur/Status

+ 27 - 0
conf/substitutions.conf.Linux

@@ -0,0 +1,27 @@
+NODES_URL		https://map.ffdo.de/data/nodes.json
+FETCH_CMD		wget -q -O
+PROM_SEPERATOR		_
+#PROM_SEPERATOR		:
+PROM_PREFIX		ffdo_nodes
+PROM_SUMMARY_PREFIX	ffdo_nodes_summary
+PROM_INFO_PREFIX	ffdo_nodes_info
+PROM_STATS_PREFIX	ffdo_nodes_detail
+EXPORT_DIR		/var/tmp/node_exporter
+RUN_SML			/usr/lib/smlnj/bin/.run-sml
+HEAP_SUFFIX		x86-linux
+HEAP_FILES		src/nodes2prom.x86-linux src/json-pp.x86-linux
+HEAP_TAR_EXCLUDE	 
+BIN_DIR			/usr/local/bin
+ETC_DIR			/etc
+DASHBOARD_DIR		/var/db/grafana/dashboards
+INSTALL_BIN_CMD	install -o 0 -g 0 -p -v
+#INSTALL_BIN_CMD	cp -a
+INSTALL_DATA_CMD	install -o 0 -g 0 -p -v -m 644
+#INSTALL_DATA_CMD	cp -a
+DASHBOARD_PREFIX	FF-DO-
+COMMUNITY_BRIEF		FF-DO
+COMMUNITY_FULL		Freifunk Dortmund
+COMMUNITY_URL		http://www.freifunk-dortmund.de/
+MAP_NODE_URL		https://map.ffdo.de/meshviewer/#!v:m;n:
+N2G_SRC_URL		https://git.ffdo.de/altlast/nodes2grafana
+N2G_COMMUNITY_URL	http://url.free.de/ffdo/Technik/Netzinfrastruktur/Status

+ 0 - 25
conf/substitutions.conf.default

@@ -1,25 +0,0 @@
-NODES_URL	https://map.ffdo.de/data/nodes.json
-FETCH_CMD	fetch -q -T 30 --no-verify-peer -o
-#FETCH_CMD	wget -O
-PROM_SEPERATOR	_
-#PROM_SEPERATOR	:
-PROM_PREFIX	ffdo_nodes
-PROM_SUMMARY_PREFIX	ffdo_nodes_summary
-PROM_INFO_PREFIX	ffdo_nodes_info
-PROM_STATS_PREFIX	ffdo_nodes_detail
-EXPORT_DIR	/var/tmp/node_exporter
-HEAP_SUFFIX	x86-bsd
-BIN_DIR		/usr/local/bin
-ETC_DIR		/etc
-DASHBOARD_DIR	/var/db/grafana/dashboards
-INSTALL_BIN_CMD	install -o 0 -g 0 -p -S -v
-#INSTALL_BIN_CMD	cp -a
-INSTALL_DATA_CMD	install -o 0 -g 0 -p -S -v -m 644
-#INSTALL_DATA_CMD	cp -a
-DASHBOARD_PREFIX	FF-DO-
-COMMUNITY_BRIEF	FF-DO
-COMMUNITY_FULL	Freifunk Dortmund
-COMMUNITY_URL	http://www.freifunk-dortmund.de/
-MAP_NODE_URL	https://map.ffdo.de/meshviewer/#!v:m;n:
-N2G_SRC_URL	https://git.ffdo.de/altlast/nodes2grafana
-N2G_COMMUNITY_URL	http://url.free.de/ffdo/Technik/Netzinfrastruktur/Status

+ 5 - 6
dist/Makefile.in

@@ -1,5 +1,5 @@
 DISTFILES=	Makefile.in README.md \
-		conf/Makefile conf/substitute.sh conf/substitutions.conf.default \
+		conf/Makefile conf/substitute.sh conf/substitutions.conf.FreeBSD conf/substitutions.conf.Linux \
 		etc/*.in src test/Makefile.in dashboard/*.in dist/Makefile.in
 DISTTARGET=	nodes2grafana
 DISTDIR=	tmp/${DISTTARGET}
@@ -7,10 +7,9 @@ DISTEXCLUDE=	--exclude=${DISTTARGET}/src/Makefile \
 		--exclude=${DISTTARGET}/src/promconfig.sml \
 		--exclude=${DISTTARGET}/src/.cm \
 		--exclude=${DISTTARGET}/src/nodes2prom \
-		--exclude=${DISTTARGET}/src/nodes2prom.%%HEAP_SUFFIX%% \
 		--exclude=${DISTTARGET}/src/json-pp \
-		--exclude=${DISTTARGET}/src/json-pp.%%HEAP_SUFFIX%% \
-		--exclude=${DISTTARGET}/src/JSON/.cm
+		--exclude=${DISTTARGET}/src/JSON/.cm \
+		--exclude=${DISTTARGET}/src/*.%%HEAP_SUFFIX%%
 
 DISTTARFILE=	${DISTTARGET}.txz
 
@@ -21,8 +20,8 @@ ${DISTTARFILE}: ${DISTDIR} Makefile
 
 ${DISTDIR}: tmp
 	rm -rf $@
-	mkdir -p $@
-	cd .. && pax -rw -pe ${DISTFILES} dist/${DISTDIR}
+	mkdir $@
+	cd .. && { tar cf - ${DISTFILES} | tar xpf - -C dist/${DISTDIR} ; }
 
 tmp:
 	mkdir $@