Re: [Openvpn-devel] [PATCH release/2.5] msvc: add branch name and commit hash to version output

2022-09-22 Thread Lev Stipakov
Hi,

I've sent v2 with copyright year and "not-a-git" -> "unknown" fix.

(I forgot to name master patch to PATCH v2)

Yes, when doing releases we do git checkout. I have tested MSI
installers produced by openvpn-build GitHub automation, which uses the
same script (build-and-package.ps1) which release build process is
using.

-Lev


___
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel


Re: [Openvpn-devel] [PATCH release/2.5] msvc: add branch name and commit hash to version output

2022-09-22 Thread Selva Nair
Hi,

On Thu, Sep 22, 2022 at 8:59 AM Lev Stipakov  wrote:

> From: Lev Stipakov 
>
> Add a simple python script which generates header with
> branch name and commit hash #defines.
>
> While on it, fix filename in msvc-generate.vcxproj
> and add proper copyright header to Makefile.mak.
>
> Signed-off-by: Lev Stipakov 
> ---
>  build/msvc/msvc-generate/Makefile.mak | 33 +-
>  build/msvc/msvc-generate/git-version.py   | 45 +++
>  .../msvc/msvc-generate/msvc-generate.vcxproj  |  2 +-
>  config-msvc.h |  2 +
>  4 files changed, 79 insertions(+), 3 deletions(-)
>  create mode 100644 build/msvc/msvc-generate/git-version.py
>
> diff --git a/build/msvc/msvc-generate/Makefile.mak
> b/build/msvc/msvc-generate/Makefile.mak
> index 1cb43102..ae8b0842 100644
> --- a/build/msvc/msvc-generate/Makefile.mak
> +++ b/build/msvc/msvc-generate/Makefile.mak
> @@ -1,4 +1,27 @@
> -# Copyright (C) 2008-2012 Alon Bar-Lev 
> +#
> +#  OpenVPN -- An application to securely tunnel IP networks
> +# over a single UDP port, with support for SSL/TLS-based
> +# session authentication and key exchange,
> +# packet encryption, packet authentication, and
> +# packet compression.
> +#
> +#  Copyright (C) 2002-2022 OpenVPN Inc 
> +#  Copyright (C) 2008-2012 Alon Bar-Lev 
> +#  Copyright (C) 2022-2022 Lev Stipakov 
> +#
> +#  This program is free software; you can redistribute it and/or modify
> +#  it under the terms of the GNU General Public License version 2
> +#  as published by the Free Software Foundation.
> +#
> +#  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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +#
>
>  CONFIG=$(SOLUTIONDIR)/version.m4
>
> @@ -14,7 +37,9 @@ OUTPUT_PLUGIN_CONFIG=version.m4
>  INPUT_MAN=$(SOLUTIONDIR)/doc/openvpn.8.rst
>  OUTPUT_MAN=$(SOLUTIONDIR)/doc/openvpn.8.html
>
> -all:   $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) $(OUTPUT_MAN)
> +OUTPUT_MSVC_GIT_CONFIG=$(SOLUTIONDIR)/config-version.h
> +
> +all:   $(OUTPUT_MSVC_VER) $(OUTPUT_PLUGIN) $(OUTPUT_MAN)
> $(OUTPUT_MSVC_GIT_CONFIG)
>
>  $(OUTPUT_MSVC_VER): $(INPUT_MSVC_VER) $(CONFIG)
> cscript //nologo msvc-generate.js --config="$(CONFIG)"
> --input="$(INPUT_MSVC_VER)" --output="$(OUTPUT_MSVC_VER)"
> @@ -28,8 +53,12 @@ $(OUTPUT_PLUGIN): $(INPUT_PLUGIN)
> $(OUTPUT_PLUGIN_CONFIG)
>  $(OUTPUT_MAN): $(INPUT_MAN)
>  -FOR /F %i IN ('where rst2html.py') DO python %i "$(INPUT_MAN)"
> "$(OUTPUT_MAN)"
>
> +$(OUTPUT_MSVC_GIT_CONFIG):
> +python git-version.py $(SOLUTIONDIR)
> +
>  clean:
> -del "$(OUTPUT_MSVC_VER)"
> -del "$(OUTPUT_PLUGIN)"
> -del "$(OUTPUT_PLUGIN_CONFIG)"
> -del "$(OUTPUT_MAN)"
> +   -del "$(OUTPUT_MSVC_GIT_CONFIG)"
> diff --git a/build/msvc/msvc-generate/git-version.py
> b/build/msvc/msvc-generate/git-version.py
> new file mode 100644
> index ..e1bf5bdb
> --- /dev/null
> +++ b/build/msvc/msvc-generate/git-version.py
> @@ -0,0 +1,45 @@
> +#
> +#  OpenVPN -- An application to securely tunnel IP networks
> +# over a single UDP port, with support for SSL/TLS-based
> +# session authentication and key exchange,
> +# packet encryption, packet authentication, and
> +# packet compression.
> +#
> +#  Copyright (C) 2002-2022 OpenVPN Inc 
>

Is this right in a file that didn't exist in 2002?


> +#  Copyright (C) 2022-2022 Lev Stipakov 
> +#
> +#  This program is free software; you can redistribute it and/or modify
> +#  it under the terms of the GNU General Public License version 2
> +#  as published by the Free Software Foundation.
> +#
> +#  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 Street, Fifth Floor, Boston, MA 02110-1301 USA.
> +#
> +
> +import os
> +import sys
> +
> +def get_branch_commit_id():
> +commit_id = os.popen("git rev-parse --short=16 HEAD").read()[:-1]
> +branch = os.popen("git rev-parse --symbolic-full-name
> HEAD").read().split("/")[2][:-1]

+return branch, commit_id
> +
> +def main():
> +try:
> +branch, commit_id = get_branch_commit_id()
> +except:
> +branch, commit_id = "", ""
> +
>

While "not-a-git-repo" may be a descriptive o/p