From 314e499ef077874220a0a0574a879239d4b78194 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 2 Oct 2019 21:25:19 +0000 Subject: [PATCH] bump submodule, add lines to enable bootstrapping the submodule and configure* --- Makefile | 9 ++++ README | 10 ++++ build-scripts | 2 +- configure | 126 +------------------------------------------------- configure.py | 81 +------------------------------- 5 files changed, 22 insertions(+), 206 deletions(-) mode change 100755 => 120000 configure mode change 100644 => 120000 configure.py diff --git a/Makefile b/Makefile index b448f3a21..0003a647b 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,9 @@ tslint = node_modules/tslint/bin/tslint -include config.mk +self-strap: submodules/init submodules/update + cd build-scripts && make + .PHONY: tsc tsc: tsconfig.json yarn-install $(tsc) @@ -39,6 +42,12 @@ typedoc: clean: rm -rf dist/ config.mk +submodules/init: + git submodule update --init --recursive + +submodules/update: + git submodule update --recursive --remote + .PHONY: check check: tsc yarn-install find dist/node -name '*-test.js' | xargs $(ava) diff --git a/README b/README index b7091b70d..d5dc71a2e 100644 --- a/README +++ b/README @@ -22,6 +22,16 @@ in the libtaler-emscripten repository: https://git.taler.net/libtalerutil-emscripten.git/ +pre-configure step +================== + +make submodules/init +make submodules/update + +or, at your choice: + +make self-strap + Building from source (Web Extension) ====================================== diff --git a/build-scripts b/build-scripts index d9be86a29..952fca0fe 160000 --- a/build-scripts +++ b/build-scripts @@ -1 +1 @@ -Subproject commit d9be86a291fcaa170d359b363cea29e156e86f07 +Subproject commit 952fca0fef5c2944a4beb244188e7a093df9b89c diff --git a/configure b/configure deleted file mode 100755 index 8f456dd8c..000000000 --- a/configure +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/sh - -# This file is part of TALER -# (C) 2019 GNUnet e.V. -# -# This is very simple POSIX sh script which -# identifies the first matching -# python3 identifier in $PATH and produces -# configure.py from configure.py.in, and then -# calls the new executable configure.py. -# -# It should be portable on Unices. Report bugs on -# the bugtracker if you discover that it isn't -# working as intended. -# -# Authors: -# Author: ng0 -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE -# LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -# THIS SOFTWARE. -# -# SPDX-License-Identifier: 0BSD - -# there is a function used in curl to replicate which(1), but -# it uses too many other tools. this one uses command and in -# gnunet so far has no reports about failures. -existence() -{ - command -v "$1" >/dev/null 2>&1 -} - -# We have to check every possible variant of the -# executable name because there is a PEP which -# defines the executable to be like this. -if existence python3; then - python="python3" -elif existence python3.1; then - python="python3.1" -elif existence python3.2; then - python="python3.2" -elif existence python3.3; then - python="python3.3" -elif existence python3.4; then - python="python3.4" -elif existence python3.5; then - python="python3.5" -elif existence python3.6; then - python="python3.6" -elif existence python3.7; then - python="python3.7" -elif existence python3.8; then - python="python3.8" -else - echo "*** No known python3 executable found in path ***" - echo "*** falling back to env(1) python ***" - # Unreliable, but if env finds no python, we still can - # not assume python in a fixed location. - # TODO: Check this in a clean chroot! - python="env python" -fi - -# we could check the return value here via || echo "blafoo" -# or fail anyway once configure.py is invoked because we -# don't have python if we reach the point to fail. -PYTHON=$($python -c 'import sys; print(sys.executable)') -#echo $PYTHON - -if ! existence node; then - echo 'Error: node executable not found.' - echo 'If you are using Linux, Ubuntu or Debian, try installing the' - echo 'node-legacy package or symlink node to nodejs.' -else - node_version=$(node --version) - #echo "Using node ${node_version}" - if ! node -p 'process.exit(!(/v([0-9]+)/.exec(process.version)[1] >= 4))'; then - echo 'Your node version is too old, use Node 4.x or newer' - exit 1 - fi -fi - -if existence yarn; then - if yarn help 2>&1 | grep "No such file or directory"; then - echo "ERROR: wrong yarn binary installed, please remove the" - echo "ERROR: conflicting binary before continuing." - if existence cmdtest; then - echo "WARNING: cmdtest is installed, this can lead" - echo "WARNING: to know issues with yarn." - fi - exit 1 - fi - myyarn="yarn" -elif existence yarnpkg; then - myyarn="yarnpkg" -else - echo 'ERROR: yarn missing. See https://yarnpkg.com/en/docs/install' - exit 1 -fi - -# for the weird systems and sandboxes, only as a anotice. -# make will fail anyway. -if ! existence find; then - echo "INFO: find(1) is missing" -fi -if ! existence xargs; then - echo "INFO: xargs(1) is missing" -fi -if ! existence msgmerge; then - echo "INFO: msgmerge(1) is missing" -fi - -# Call configure.py, assuming all went well. -# $1 is read by configure.py as the prefix. -# If $1 is empty, the python script checks the -# environment for PREFIX. We might need more -# variables and switches, such as DESTDIR. -$PYTHON ./configure.py --yarn=$myyarn $@ diff --git a/configure b/configure new file mode 120000 index 000000000..5ea41c58a --- /dev/null +++ b/configure @@ -0,0 +1 @@ +build-scripts/configure \ No newline at end of file diff --git a/configure.py b/configure.py deleted file mode 100644 index 3abef380b..000000000 --- a/configure.py +++ /dev/null @@ -1,80 +0,0 @@ -# This file is part of TALER -# (C) 2019 GNUnet e.V. -# -# Authors: -# Author: ng0 -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE -# LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -# THIS SOFTWARE. -# -# SPDX-License-Identifier: 0BSD - -import argparse -import os -import sys -import logging - -# This script so far generates config.mk. -# The only value it produces is prefix, -# which is either taken as the first argument -# to this script, or as --prefix=, or read -# from the environment variable PREFIX. -# -# TODO: Also respect DESTDIR ($PREFIX/$DESTDIR/rest). - - -def _read_prefix(): - logging.basicConfig(level=logging.DEBUG) - logger = logging.getLogger(__name__) - - if 'PREFIX' in os.environ: - logger.debug('PREFIX from environment') - myprefix = os.environ.get('PREFIX') - if myprefix is not None and os.path.isdir(myprefix) is True: - logger.debug('PREFIX from environment: %s', myprefix) - return myprefix - - else: - # logger.debug('PREFIX from argv') - parser = argparse.ArgumentParser() - parser.add_argument("-p", - "--prefix", - type=str, - required=True, - help='Directory prefix for installation') - parser.add_argument("-y", - "--yarn", - type=str, - required=True, - help='name of yarn executable') - # logger.debug('parser.parse_args step') - args = parser.parse_args() - # logger.debug('%s', args) - myprefix = args.prefix - yarnexe = args.yarn - # if args.prefix is not None and os.path.isdir(myprefix) is True: - if args.prefix and os.path.isdir(myprefix) is True: - return [myprefix, yarnexe]; - -def main(): - # mylist = str(_read_prefix()) - mylist = _read_prefix() - myprefix = mylist[0] - yarnexe = mylist[1] - f = open('config.mk', 'w+') - f.write('# this file is autogenerated by ./configure\n') - f.write('prefix=' + myprefix + '\n') - f.write('yarnexe=' + yarnexe + '\n') - f.close() - - -main() diff --git a/configure.py b/configure.py new file mode 120000 index 000000000..51dc3d24b --- /dev/null +++ b/configure.py @@ -0,0 +1 @@ +build-scripts/configure.py \ No newline at end of file