generator

Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge the swig-py3 branch to trunk.
  1. … 51 more files in changeset.
* build/generator/gen_base.py

(TargetExe.add_dependencies): Add 'svnmover' as another special case,

so 'make davautocheck' will work correctly without 'make svnmover'

or 'make tools' having been run before it.

Found by: danielsh

Fix link flags and include directory in pkg-config template

* build/generator/gen_make.py

(write_pkg_config_dot_in_files): Add version variable for template.

Include version in link flag for svn lib.

* build/generator/templates/pkg-config.in.ezt:

(): Add /subversion-1 to include path

Fix format of Requires(.private) fields in pkg-config files

Per pkg-config(1), the field "is a comma-separated list of packages that are

required by your package", not a space-separated field.

* build/generator/templates/pkg-config.in.ezt

(): Generate comma-separated lists for Requires(.private)

* configure.ac:

(old_gnome_keyring): Use a comma separated list for SVN_GNOME_KEYRING_PCLIBS

  1. … 1 more file in changeset.
* build/generator/gen_vcnet_vcproj.py

(quote_value): Fix yet another stupid bug introduced by remote testing :(.

* build/generator/gen_win.py

(quote_define): Fix another stupid typo.

Following up on r1860175, fix typo in python code.

* build/generator/gen_vcnet_vcproj.py

(quote_define): Add missing ':'.

Fix compiling Subversion with Visual Studio 2005 and 2008 by properly escaping

the e-mail address we use for the Win32 crash handler.

* build/generator/gen_vcnet_vcproj.py

(quote_define): New function

* build/generator/gen_win.py

(get_win_defines): Quote e-mail address in defines.

(quote_define): Add function (stub).

Add support for generating Microsoft Visual Studio 2019 project files.

* build/generator/gen_win_dependencies.py

(parse_options): Add magic numbers for Visual Studio 2019.

Rename the C++HL library to SVN++, renaming files, namespaces and directories.

* Makefile.in

(SVNXX_INCLUDES): Renamed and changed from CXXHL_INCLUDES.

(COMPILE_SVNXX_CXX): Renamed and changed from COMPILE_CXXHL_CXX.

* build.conf

(options.private-includes): Update C++ bindings' header paths.

(libsvnxx): Rename and update target from libsvncxxhl.

* build/generator/gen_make.py

(Generator.write): Use 'svnxx-' instead of 'cxxhl-' for extra-install check.

* build/generator/gen_win.py

(WinGeneratorBase.get_win_includes): Check for 'svnxx', not 'cxxhl'.

* subversion/bindings/cxx/: Renamed from .../bindings/cxxhl/.

* subversion/bindings/cxx/include/svnxx/: Renamed from .../include/svncxxhl/.

* subversion/bindings/cxx/include/svnxx.hpp: Renamed from .../include/svncxxhl.hpp.

* subversion/bindings/cxx/**: Rename namespaces, include paths and guards.

  1. … 19 more files in changeset.
Silence warnings about macOS-specific dependencies in the Windows build.

* build/generator/gen_win_dependencies.py

(GenDependenciesBase._optional_libraries): Added 'macos-plist' and 'macos-keychain'.

Move the Windows crash reporter mail out of the source code and into

the build generator, where it belongs.

* build/generator/gen_win.py (WinGeneratorBase.get_win_defines):

Define the SVN_WIN32_CRASHREPORT_EMAIL symbol at the same time as

SVN_USE_WIN32_CRASHHANDLER.

* subversion/libsvn_subr/win32_crashrpt.c

(CRASHREPORT_EMAIL): Removed.

(svn__unhandled_exception_filter): Use SVN_WIN32_CRASHREPORT_EMAIL here.

  1. … 1 more file in changeset.
* build/generator/extractor.py: Transfer some knowledge from a log message.
* build/generator/gen_win_dependencies.py

(_find_jdk): Fix indentation of comments (tabs -> spaces).

Fix detection of JDK 10 on Windows when --with-jdk is used.

* build/generator/gen_win_dependencies.py

(_find_jdk): Use javac.exe instead of javah.exe for validating the

--with-jdk option. Drop the quotes from the vermatch regex, because

with javac the version number is not quoted.

Merge the 'java10-compat' branch to trunk
  1. … 3 more files in changeset.
* build/generator/gen_base.py

(TargetJavaClasses.add_dependencies): Reverse check for valid filename to

fail early and avoid an extra level of indentation. No functional change.

Bump minimum JDK version required for JavaHL to 1.8, in preparation for the

changes needed to support Java 10

* subversion/bindings/javahl/README

(): Update JDK version requirements.

* configure.ac

(JAVA_OLDEST_WORKING_VER): Set to 1.8

* build/ac-macros/java.m4

(SVN_FIND_JDK): Set Java source version to 1.8.

* build/generator/gen_win.py

(get_proj_sources): Set Java source and target version to 1.8.

  1. … 3 more files in changeset.
* build/generator/gen_make.py

(Generator.write_standalone): Use the same Python executable as

used to run the script, which might not be called "python".

Allow Visual Studio to calculate filenames of debug databases by itself to

enable optimizations in newer Visual Studio versions.

We had to explicitly name the library in the past, when we still used the

same directories for intermediate and output files, but we changed that

a long time ago.

* build/generator/templates/vcnet_vcxproj.ezt

Remove explicit debug database name, to allow using intermediate debug

databases to speed up generation.

Follow-up to r1819556:

* build/generator/swig/__init__.py

(Generator.__init__):

Restore a part of build.generator.swig.executable.output()'s implementation

to fix the build on some systems (three buildbots failed).

Improve external command invocation in the swig parts of the build system.

Both gen-make.py and 'make swig-py' are affected.

Developer-visible change: failure modes of the build system should be better.

* build/generator/util/executable.py: Remove.

(exists, find): Unused.

(output): Callers updated to use check_output(), which raises on non-zero

exit code. Note that no caller passed a string argument and doing so

would not have worked, since shell=True wasn't being passed to Popen().

(run): Callers updated to use subprocess.check_call() directly, which is

equivalent (with shell=True) or better (with shell=False, which is the

default).

* build/generator/swig/__init__.py

(subprocess): Import.

(_exec): Remove import.

(): All callers updated.

* build/generator/swig/checkout_swig_header.py

(subprocess): Import.

(run): Remove import.

(): All callers updated.

* build/generator/swig/external_runtime.py

(subprocess): Import.

(_exec, generator.util.executable): Remove import.

(): All callers updated.

autogen.sh: Correct the symbolic error name generation logic under Python 3.

When Python 2's filter() returns an empty list, Python 3's returns an object,

which in boolean context counts as true, and generated:

WARNING: errno intersects APR error codes; runtime computation of symbolic

error names for the following numeric codes might be wrong: <filter object

at 0x7f77c5045c50>

So we need to force the generator.

Windows wasn't affected because gen_win.py:WinGeneratorBase overrides the

method and returns a set() object.

* build/generator/gen_base.py

(GeneratorBase.errno_filter): Force the generator.

fsfs: Use the `WITHOUT ROWID` optimization for rep-cache.db in format 8.

This optimization, introduced in SQLite 3.8.2, works well for tables that

have non-integer primary keys, such as

hash TEXT NOT NULL PRIMARY KEY

in the rep-cache.db. (See the https://sqlite.org/withoutrowid.html article

for additional details.)

A quick experiment showed a reduction of the on-disk size of the database

by ~1.75x. The lookups should also be faster, both due to the reduced

database size and due to the lesser amount of internal bsearches. This

should improve the times of new commits and `svnadmin load`, especially

for large repositories that also have large rep-cache.db files.

In order to maintain compatibility, since SQLite versions prior to 3.8.2

do not support this statement, we only start using it for fsfs format 8

repositories and simultaneously bump the minimal required SQLite version

from 3.7.12 (May 2012) to 3.8.2 (December 2013). The last step ensures that

all binaries compiled to support format 8 can work with the tables with

this optimization. Also, as the various scripts have both the minimal

and recommended (3.7.15.1) SQLite versions, we bump the recommended

version to the last 3.8.x patch version, which is 3.8.11.1.

* subversion/libsvn_fs_fs/rep-cache-db.sql

(STMT_CREATE_SCHEMA): Rename this ...

(STMT_CREATE_SCHEMA_V1): ...to this.

(STMT_CREATE_SCHEMA_V2): New, enables `WITHOUT ROWID` optimization.

(STMT_GET_REP, STMT_SET_REP, STMT_GET_REPS_FOR_RANGE,

STMT_GET_MAX_REV, STMT_DEL_REPS_YOUNGER_THAN_REV,

STMT_LOCK_REP, STMT_UNLOCK_REP):

Note that these statements work for both V1 and V2 schemas.

* subversion/libsvn_fs_fs/fs.h

(SVN_FS_FS__MIN_REP_CACHE_SCHEMA_V2_FORMAT): New.

* subversion/libsvn_fs_fs/rep-cache.c

(REP_CACHE_SCHEMA_FORMAT): Remove.

(open_rep_cache): Select between creating a V1 or V2 schemas based

on the format of the filesystem.

* subversion/libsvn_subr/sqlite.c

(): Bump minimum required SQLite version to 3.8.2.

* subversion/tests/cmdline/svnadmin_tests.py

(check_hotcopy_fsfs_fsx): Check if the Python's built-in SQLite version

is enough to interpret the schema of rep-cache.db, and skip the check

if it's not.

* build/generator/gen_win_dependencies.py

(_find_sqlite): Bump minimum required SQLite version to 3.8.2.

* configure.ac

(SQLITE_MINIMUM_VER): Bump to 3.8.2.

(SQLITE_RECOMMENDED_VER): Bump to 3.8.11.1.

(SQLITE_RECOMMENDED_VER_REL_YEAR): New, required to construct the

download URL which includes the release year for the newer SQLite

amalgamation versions.

(SQLITE_URL): Update the download URL.

* get-deps.sh

(SQLITE_VERSION): Bump to 3.8.11.1.

(SQLITE_VERSION_REL_YEAR): New.

(get_sqlite): Update the download URL that includes the release year

for the newer SQLite amalgamation versions.

* INSTALL

(C.12.SQLite): Bump minimum required SQLite version to 3.8.2.

(E.1.Prerequisites): Bump the minimum and recommended SQLite versions.

  1. … 8 more files in changeset.
Following up on r1814724, r1814725, also fix the DLL name for OpenSSL

1.1.0 to allow the test code to automatically copy the required libraries.

* build/generator/gen_win_dependencies.py

(_find_openssl): Generate dll name for 1.1.0+.

* build/generator/gen_win_dependencies.py

Fix typo at start of file introduced in r1814724.

Allow building against OpenSSL 1.1.0 on Windows by properly detect the

library name, that starting with 1.1.0 now matches that on other platforms.

* build/generator/gen_win_dependencies.py

(*): Accidentally added an 'f' at start of file. Fixed in r1814725.

(_find_openssl): Use new library names when possible.

* build.conf

Use standard dependency notation on Windows to support dynamic names.

  1. … 1 more file in changeset.
Fix Windows build with MS Visual Studio 2017.

"It fails to compile because the toolset is v141. It looks for toolset v150

but cannot find them."

* build/generator/gen_win_dependencies.py

(GenDependenciesBase): s/15.0/14.1/

Patch by: atkawa7 <atkawa7{_AT_}yahoo.com>

This closes #6

Followup to r1804618, provide a dummy error to avoid a zero-sized array.

* build/generator/gen_base.py

(GeneratorBase.write_errno_table): Provide a dummy error.

Omit the list of system error code names from release builds, this

removes one cause of tarballs not being reproducible.

* build/generator/gen_base.py

(GeneratorBase.write_errno_table): Omit system error code names

in release mode.