Commit 203d9714 authored by Mike Gabriel's avatar Mike Gabriel

Make nxagent process aware of its current NX'ish version.

This feature copies the way how X.Org version string and number are propagated at build time. First use case: if people start nxagent, it reports its version number on stderr. This is about being human-friendly. Second use case: None, so far. But it will now be easy to use the NXAGENT_VERSION_STRING in later feature add-ons.
parent eb49d408
......@@ -19,6 +19,11 @@ NXLIBDIR ?= $(PREFIX)/lib/nx
X2GOLIBDIR ?= $(PREFIX)/lib/x2go
CONFIGURE ?= ./configure
NX_VERSION_MAJOR=$(shell ./version.sh 1)
NX_VERSION_MINOR=$(shell ./version.sh 2)
NX_VERSION_MICRO=$(shell ./version.sh 3)
NX_VERSION_PATCH=$(shell ./version.sh 4)
SHELL:=/bin/bash
%:
......@@ -44,7 +49,21 @@ build-full:
cd nxcomp && autoconf
cd nxcompext && autoconf
cd nxcompshad && autoconf
# prepare nx-X11/config/cf/nxversion.def
sed \
-e 's/###NX_VERSION_MAJOR###/$(NX_VERSION_MAJOR)/' \
-e 's/###NX_VERSION_MINOR###/$(NX_VERSION_MINOR)/' \
-e 's/###NX_VERSION_MICRO###/$(NX_VERSION_MICRO)/' \
-e 's/###NX_VERSION_PATCH###/$(NX_VERSION_PATCH)/' \
nx-X11/config/cf/nxversion.def.in \
> nx-X11/config/cf/nxversion.def
cd nx-X11 && ${MAKE} World
# clean directly after build
rm -f nx-X11/config/cf/nxversion.def
cd nxproxy && autoconf && (${CONFIGURE}) && ${MAKE}
build:
......
......@@ -27,7 +27,8 @@ xorgsite.def \
$(VERSIONDEFFILES) \
$(HOSTDEFFILES) \
site.def \
xorgversion.def
xorgversion.def \
nxversion.def
RULEFILES = \
Imake.rules \
......
#define NX_VERSION_MAJOR ###NX_VERSION_MAJOR###
#define NX_VERSION_MINOR ###NX_VERSION_MINOR###
#define NX_VERSION_MICRO ###NX_VERSION_MICRO###
#define NX_VERSION_PATCH ###NX_VERSION_PATCH###
......@@ -54,6 +54,31 @@ XCOMM $Xorg: xfree86.cf,v 1.4 2000/08/17 19:41:49 cpqbld Exp $
XORG_VERSION_CURRENT = XorgVersion
RELEASE_VERSION = ReleaseVersion
#if NXAgentServer
#include "nxversion.def"
#if !defined(nxVersionString) && \
defined(NX_VERSION_MAJOR) && defined(NX_VERSION_MINOR) && \
defined(NX_VERSION_MICRO) && defined(NX_VERSION_PATCH)
# define nxVersionString `echo NX_VERSION_MAJOR NX_VERSION_MINOR NX_VERSION_MICRO NX_VERSION_PATCH | sed 's/ /./g'`
#endif
/*
* NX versions are M.m.µ.p, and NXVersion is:
*
* M * 10000000 + m * 100000 + µ * 1000 + p
*
*/
#if !defined(nxVersion) && defined(nxVersionString)
# define nxVersion (((NX_VERSION_MAJOR) * 10000000) + ((NX_VERSION_MINOR) * 100000) + ((NX_VERSION_MICRO) * 1000) + NX_VERSION_PATCH)
NX_VERSION_CURRENT = nxVersion
NX_VERSION_CURRENT_STRING = nxVersionString
#endif
#endif /* NXAgentServer */
#if !defined(XorgManVersionString) && \
defined(XORG_VERSION_MAJOR) && defined(XORG_VERSION_MINOR) && \
defined(XORG_VERSION_PATCH) && defined(XORG_VERSION_SNAP)
......@@ -1686,4 +1711,3 @@ XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
#include <cross.def>
#endif
#include <xf86.rules>
......@@ -189,7 +189,12 @@ UPG_DEFINES=-DNXAGENT_UPGRADE
UPG_DEFINES=
#endif
DEFINES = -g $(OS_DEFINES) $(EXT_DEFINES) $(UPG_DEFINES) \
#if nxVersion
NX_DEFINES=-DNX_VERSION_CURRENT="$(NX_VERSION_CURRENT)" \
-DNX_VERSION_CURRENT_STRING="\"$(NX_VERSION_CURRENT_STRING)\""
#endif
DEFINES = -g $(OS_DEFINES) $(EXT_DEFINES) $(UPG_DEFINES) $(NX_DEFINES) \
-UXF86VIDMODE -UXFreeXDGA -UXF86MISC -UXF86DRI -UXFree86LOADER \
-DNXAGENT_SERVER \
-DNXAGENT_CONSTRAINCURSOR \
......
......@@ -74,7 +74,8 @@ is" without express or implied warranty.
#undef DEBUG
#undef DUMP
#define NXAGENT_VERSION "3.5.0"
#define NXAGENT_VERSION NX_VERSION_CURRENT
#define NXAGENT_VERSION_STRING NX_VERSION_CURRENT_STRING
/*
* ProcVector array defined in tables.c.
......@@ -226,7 +227,7 @@ void InitOutput(ScreenInfo *screenInfo, int argc, char *argv[])
if (serverGeneration <= 1)
{
fprintf(stderr, "\nNXAGENT - Version " NXAGENT_VERSION "\n\n");
fprintf(stderr, "\nNXAGENT - Version " NXAGENT_VERSION_STRING "\n\n");
fprintf(stderr, "Copyright (C) 2001, 2011 NoMachine.\n");
fprintf(stderr, "See http://www.nomachine.com/ for more information.\n\n");
......
#!/bin/sh
# Copyright (C) 2015 Mihai Moldovan <ionic@ionic.de>
# Copyright (C) 2015 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
COMPONENT="$1"
VERSION_FILE="VERSION"
case "${COMPONENT}" in
(1|2|3|4) :;;
(*) echo "usage: $(basename ${0}) <position-in-version-number>" >&2; exit 1;;
esac
# More than one line is not supported.
VER="$(head -n "1" "${VERSION_FILE}" | cut -d"." -f"${COMPONENT}")"
[ "x${VER}" = "x" ] && VER="0"
printf "${VER}"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment