From 45eb0052b1878a0dbdb97db953976958183af8d2 Mon Sep 17 00:00:00 2001 From: radare Date: Fri, 17 Jan 2020 12:18:05 +0100 Subject: [PATCH] Upgrade to acr-1.8.1 to get semver support ##core (#15816) Move all version defines into r_version.h and handle it from meson too - R2_VERSION_MAJOR - R2_VERSION_MINOR - R2_VERSION_PATCH - R2_VERSION_NUMBER --- Makefile | 6 +++++- config-user.mk.acr | 5 +++++ configure | 23 ++++++++++++++--------- libr/include/r_version.h.in | 4 ++++ meson.build | 17 +++++++++++++++-- sys/version.py | 22 +++++++++++++++++++++- 6 files changed, 64 insertions(+), 13 deletions(-) mode change 100644 => 100755 sys/version.py diff --git a/Makefile b/Makefile index 2a60ebc06e75b..10541cfc9d008 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,11 @@ libr/include/r_version.h: @echo $(Q)#ifndef R_VERSION_H$(Q) > $@.tmp @echo $(Q)#define R_VERSION_H 1$(Q) >> $@.tmp @echo $(Q)#define R2_VERSION_COMMIT $(R2VC)$(Q) >> $@.tmp - @echo $(Q)#define R2_VERSION $(ESC)"$(R2_VER)$(ESC)"$(Q) >> $@.tmp + @echo $(Q)#define R2_VERSION $(ESC)"$(R2_VERSION)$(ESC)"$(Q) >> $@.tmp + @echo $(Q)#define R2_VERSION_MAJOR $(R2_VERSION_MAJOR)$(Q) >> $@.tmp + @echo $(Q)#define R2_VERSION_MINOR $(R2_VERSION_MINOR)$(Q) >> $@.tmp + @echo $(Q)#define R2_VERSION_PATCH $(R2_VERSION_PATCH)$(Q) >> $@.tmp + @echo $(Q)#define R2_VERSION_NUMBER $(R2_VERSION_NUMBER)$(Q) >> $@.tmp @echo $(Q)#define R2_GITTAP $(ESC)"$(GIT_TAP)$(ESC)"$(Q) >> $@.tmp @echo $(Q)#define R2_GITTIP $(ESC)"$(GIT_TIP)$(ESC)"$(Q) >> $@.tmp @echo $(Q)#define R2_BIRTH $(ESC)"$(GIT_NOW)$(BUILDSEC)$(ESC)"$(Q) >> $@.tmp diff --git a/config-user.mk.acr b/config-user.mk.acr index a51835cdb134b..a3a8f4b5fbd1a 100644 --- a/config-user.mk.acr +++ b/config-user.mk.acr @@ -34,6 +34,11 @@ INSTALL_MAN=@INSTALL_MAN@ INSTALL_LIB=@INSTALL_LIB@ VERSION=@VERSION@ +R2_VERSION=@VERSION@ +R2_VERSION_MAJOR=@VERSION_MAJOR@ +R2_VERSION_MINOR=@VERSION_MINOR@ +R2_VERSION_PATCH=@VERSION_PATCH@ +R2_VERSION_NUMBER=@VERSION_NUMBER@ LIBVERSION=@LIBVERSION@ # ./configure --with-ostype=[linux,osx,solaris,windows] # TODO: rename to w32, w64? diff --git a/configure b/configure index 760afaea0b09a..d9241edc3fec6 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #!/bin/sh -# This script was automatically generated by ACR v1.7.2 +# This script was automatically generated by ACR v1.8.1 # @author: pancake # @url: http://www.nopcode.org # @repo: git clone https://github.com/radare/acr @@ -123,7 +123,7 @@ done : ${INSTALL_PROGRAM_STRIP:=${INSTALL} -m 755 -s} : ${INSTALL_MAN:=${INSTALL} -m 444} : ${INSTALL_LIB:=${INSTALL} -m 755 -c} - PKGNAME='radare2' ; VERSION='4.2.0-git' ; CONTACT_MAIL="pancake@nopcode.org" ; CONTACT_NAME="pancake" ; CONTACT="pancake " ; + PKGNAME='radare2' ; VERSION='4.2.0-git' ; VERSION_MAJOR=4; VERSION_MINOR=2; VERSION_PATCH=0; VERSION_NUMBER=40200; CONTACT_MAIL="pancake@nopcode.org" ; CONTACT_NAME="pancake" ; CONTACT="pancake " ; } show_usage() { @@ -168,7 +168,8 @@ System types: --target=TARGET configure for building compilers for TARGET [HOST] EOF2 -printf "\nOptional Features: +printf " +Optional Features: --disable-debugger disable native debugger features --with-sysmagic force to use system's magic --with-capstone5 build next branch of the capstone repository @@ -188,8 +189,10 @@ printf "\nOptional Features: --with-ostype Choose OS type ( gnulinux windows darwin haiku ) (USEROSTYPE=auto) --with-libversion specify different libversion (LIBVERSION=xxx) --without-jemalloc build without jemalloc - --with-checks-level value between 0 and 3 to enable different level of assert (see R_CHECKS_LEVEL) (R_CHECKS_LEVEL=2)\n" -printf "\nSome influential environment variables: + --with-checks-level value between 0 and 3 to enable different level of assert (see R_CHECKS_LEVEL) (R_CHECKS_LEVEL=2) +" +printf " +Some influential environment variables: CC C compiler command CFLAGS C compiler flags CPPFLAGS C preprocessor flags @@ -197,8 +200,10 @@ printf "\nSome influential environment variables: nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory - CPP C preprocessor\n" -printf "\nReport bugs to: pancake " + CPP C preprocessor +" +printf " +Report bugs to: pancake " echo "" exit 0 } @@ -211,7 +216,7 @@ take_environ() { } show_version() { -echo "radare2-4.2.0-git configuration script done with acr v1.7.2. +echo "radare2-4.2.0-git configuration script done with acr v1.8.1. The 'Free Software Foundation' message is only for autodetection. Originally written by pancake ." exit 0 @@ -323,7 +328,7 @@ parse_options "$1" shift done -ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR DOCDIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C DEBUGGER HAVE_LIB_DL DL_LIBS HAVE_PATCH PATCH HAVE_GIT GIT HAVE_LIB_MAGIC USE_MAGIC USE_LIB_MAGIC LIBMAGIC CSNEXT LOADLIBS USE_TREESITTER HAVE_FORK WANT_PTRACE_WRAP WITH_LIBR WITH_CAPSTONE CAPSTONE_CFLAGS CAPSTONE_LDFLAGS HAVE_PKGCFG_CAPSTONE USE_CAPSTONE HAVE_LIB_Z HAVE_LIB_ZIP USE_ZIP USE_LIB_ZIP LIBZIP HAVE_LIB_XXHASH USE_XXHASH USE_LIB_XXHASH LIBXXHASH WITH_GPL HAVE_DECL_ADDR_NO_RANDOMIZE HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO HAVE_EXPLICIT_MEMSET HAVE_CLOCK_NANOSLEEP HAVE_SIGACTION HAVE_LIB_GMP HAVE_LIB_SSL SSL_CFLAGS SSL_LDFLAGS HAVE_PKGCFG_OPENSSL HAVE_OPENSSL WANT_OPENSSL HAVE_LIBUV_VERSION_1_0_0 LIBUV_CFLAGS LIBUV_LDFLAGS HAVE_PKGCFG_LIBUV HAVE_LIBUV WANT_LIBUV USE_RPATH USERCC USEROSTYPE LIBVERSION HAVE_JEMALLOC HAVE_PTRACE USE_PTRACE_WRAP R_CHECKS_LEVEL" +ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR DOCDIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU VERSION VERSION_MAJOR VERSION_MINOR VERSION_PATCH VERSION_NUMBER PKGNAME VPATH CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C DEBUGGER HAVE_LIB_DL DL_LIBS HAVE_PATCH PATCH HAVE_GIT GIT HAVE_LIB_MAGIC USE_MAGIC USE_LIB_MAGIC LIBMAGIC CSNEXT LOADLIBS USE_TREESITTER HAVE_FORK WANT_PTRACE_WRAP WITH_LIBR WITH_CAPSTONE CAPSTONE_CFLAGS CAPSTONE_LDFLAGS HAVE_PKGCFG_CAPSTONE USE_CAPSTONE HAVE_LIB_Z HAVE_LIB_ZIP USE_ZIP USE_LIB_ZIP LIBZIP HAVE_LIB_XXHASH USE_XXHASH USE_LIB_XXHASH LIBXXHASH WITH_GPL HAVE_DECL_ADDR_NO_RANDOMIZE HAVE_ARC4RANDOM_UNIFORM HAVE_EXPLICIT_BZERO HAVE_EXPLICIT_MEMSET HAVE_CLOCK_NANOSLEEP HAVE_SIGACTION HAVE_LIB_GMP HAVE_LIB_SSL SSL_CFLAGS SSL_LDFLAGS HAVE_PKGCFG_OPENSSL HAVE_OPENSSL WANT_OPENSSL HAVE_LIBUV_VERSION_1_0_0 LIBUV_CFLAGS LIBUV_LDFLAGS HAVE_PKGCFG_LIBUV HAVE_LIBUV WANT_LIBUV USE_RPATH USERCC USEROSTYPE LIBVERSION HAVE_JEMALLOC HAVE_PTRACE USE_PTRACE_WRAP R_CHECKS_LEVEL" create_environ diff --git a/libr/include/r_version.h.in b/libr/include/r_version.h.in index a9230ac1ff5e3..7508880117e2f 100644 --- a/libr/include/r_version.h.in +++ b/libr/include/r_version.h.in @@ -1,6 +1,10 @@ #ifndef R_VERSION_H #define R_VERSION_H 1 #define R_MESON_VERSION "@MESON_VERSION@" +#define R2_VERSION_MAJOR @R2_VERSION_MAJOR@ +#define R2_VERSION_MINOR @R2_VERSION_MINOR@ +#define R2_VERSION_PATCH @R2_VERSION_PATCH@ +#define R2_VERSION_NUMBER @R2_VERSION_NUMBER@ #define R2_VERSION_COMMIT @VERSIONCOMMIT@ #define R2_VERSION "@R2_VERSION@" #define R2_GITTAP "@R2_GITTAP@" diff --git a/meson.build b/meson.build index ba4c5e9ed7e24..227e684db5069 100644 --- a/meson.build +++ b/meson.build @@ -6,9 +6,18 @@ pkgconfig_mod = import('pkgconfig') # Get r2 version r2_version = 'unknown-error' -r = run_command(py3_exe, 'sys/version.py') +r2_version_major = 0 +r2_version_minor = 0 +r2_version_patch = 0 +r2_version_number = 0 +r = run_command(py3_exe, 'sys/version.py', '--full-version') if r.returncode() == 0 - r2_version = r.stdout().strip() + vers = r.stdout().strip().split('\n') + r2_version = vers[0] + r2_version_major = vers[1] + r2_version_minor = vers[2] + r2_version_patch = vers[3] + r2_version_number = vers[4] if host_machine.system() == 'darwin' r2_version = r2_version.split('-')[0] endif @@ -360,6 +369,10 @@ r_userconf_h = configure_file( versionconf = configuration_data() versionconf.set('MESON_VERSION', meson.version()) versionconf.set('VERSIONCOMMIT', version_commit) +versionconf.set('R2_VERSION_MAJOR', r2_version_major) +versionconf.set('R2_VERSION_MINOR', r2_version_minor) +versionconf.set('R2_VERSION_PATCH', r2_version_patch) +versionconf.set('R2_VERSION_NUMBER', r2_version_number) versionconf.set('R2_VERSION', r2_version) versionconf.set('R2_GITTAP', gittap) versionconf.set('R2_GITTIP', gittip) diff --git a/sys/version.py b/sys/version.py old mode 100644 new mode 100755 index 899a5091bc44f..023a912e42ec2 --- a/sys/version.py +++ b/sys/version.py @@ -4,6 +4,26 @@ import sys +full_version = False + +for arg in sys.argv[1:]: + if arg == '--full-version': + full_version = True + else: + print('Option %s not supported' % (arg,)) + sys.exit(1) + with open('configure.acr', 'r') as f: f.readline() - sys.stdout.write(f.readline().split()[1]) + version = f.readline().split()[1] + sys.stdout.write(version + '\n') + if full_version: + versions = version.split('.') + version_major = versions[0] if len(versions) > 0 else 0 + version_minor = versions[1] if len(versions) > 1 else 0 + version_patch = versions[2].replace('-git', '') if len(versions) > 2 else 0 + version_number = "%d%02d%02d"%(int(version_major), int(version_minor), int(version_patch)) + sys.stdout.write(version_major + '\n') + sys.stdout.write(version_minor + '\n') + sys.stdout.write(version_patch + '\n') + sys.stdout.write(version_number + '\n')