Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make nxagent aware of its NX'ish version string (and number). #3

Merged
merged 2 commits into from
Feb 17, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's better to use a "real" shell script here which fetches the version number part and, if it is unset, defaults to "0", to always have the parts well-defined?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The script can be as easy as:

#!/bin/sh
COMPONENT="$1"
VERSION_FILE="VERSION"

# More than one line is not supported.
VER="$(head -n "1" "${VERSION_FILE}" | cut -d"." -f"${COMPONENT}")"

[ "x${VER}" = "x" ] && VER="0"

printf "${VER}"

SHELL:=/bin/bash

%:
Expand All @@ -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:
Expand Down
3 changes: 2 additions & 1 deletion nx-X11/config/cf/Imakefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ xorgsite.def \
$(VERSIONDEFFILES) \
$(HOSTDEFFILES) \
site.def \
xorgversion.def
xorgversion.def \
nxversion.def

RULEFILES = \
Imake.rules \
Expand Down
4 changes: 4 additions & 0 deletions nx-X11/config/cf/nxversion.def.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#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###
26 changes: 25 additions & 1 deletion nx-X11/config/cf/xorg.cf
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -1686,4 +1711,3 @@ XFREE86JAPANESEDOCDIR = $(DOCDIR)/Japanese
#include <cross.def>
#endif
#include <xf86.rules>

7 changes: 6 additions & 1 deletion nx-X11/programs/Xserver/hw/nxagent/Imakefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
5 changes: 3 additions & 2 deletions nx-X11/programs/Xserver/hw/nxagent/Init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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");

Expand Down
1 change: 0 additions & 1 deletion nx-X11/programs/Xserver/hw/nxagent/VERSION

This file was deleted.

34 changes: 34 additions & 0 deletions version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/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}"