Hello community, here is the log from the commit of package neko for openSUSE:Factory checked in at 2019-10-27 13:41:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/neko (Old) and /work/SRC/openSUSE:Factory/.neko.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neko" Sun Oct 27 13:41:18 2019 rev:7 rq:743001 version:2.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/neko/neko.changes 2017-12-22 12:20:19.571444742 +0100 +++ /work/SRC/openSUSE:Factory/.neko.new.2990/neko.changes 2019-10-27 13:41:20.617290833 +0100 @@ -1,0 +2,13 @@ +Fri Oct 25 18:08:22 UTC 2019 - Andy Li <[email protected]> + +- Update to neko 2.3.0. + * Added socket_set_broadcast function. + * Fixed sha1_update. + * Fixed 0x7F detection in utf8 functions. + * Changed date_get_tz to take an argument (a timestamp), + and to return minutes instead of seconds. + * Added date_utc_format, date_get_utc_day, and + date_get_utc_hours - all variants of existing functions, but + using gmtime_r instead of localtime_r. + +------------------------------------------------------------------- Old: ---- neko-2.2.0.tar.gz New: ---- neko-2.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ neko.spec ++++++ --- /var/tmp/diff_new_pack.0cTKYV/_old 2019-10-27 13:41:21.965292459 +0100 +++ /var/tmp/diff_new_pack.0cTKYV/_new 2019-10-27 13:41:22.001292502 +0100 @@ -16,13 +16,13 @@ # Name: neko -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: A cross-platform lightweight virtual machine and language License: MIT Group: Development/Languages/Other Url: https://nekovm.org -Source0: https://github.com/HaxeFoundation/neko/archive/v2-2-0/neko-%{version}.tar.gz +Source0: https://github.com/HaxeFoundation/neko/archive/v2-3-0/neko-%{version}.tar.gz BuildRequires: cmake BuildRequires: ninja BuildRequires: pkgconfig @@ -76,7 +76,7 @@ MySQL library for the Neko virtual machine. %prep -%setup -q -n neko-2-2-0 +%setup -q -n neko-2-3-0 %build %define __builder ninja ++++++ neko-2.2.0.tar.gz -> neko-2.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/CHANGES new/neko-2-3-0/CHANGES --- old/neko-2-2-0/CHANGES 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/CHANGES 2019-10-24 19:51:25.000000000 +0200 @@ -1,3 +1,11 @@ +2019-10-19 : 2.3.0 + std : added socket_set_broadcast function (#190) + std : fixed sha1_update call (#194) + std : fixed 0x7F detection in utf8 functions + std : changed date_get_tz to take an argument (a timestamp), and to return minutes instead of seconds (#195) + std : added date_utc_format, date_get_utc_day, and date_get_utc_hours - all variants of existing functions, + but using gmtime_r instead of localtime_r (#195) + 2017-12-19 : 2.2.0 nekotools : added `nekotools boot -c *.n`, which generates a C file that contains the input Neko bytecode (#130) nekotools : fixed `nekotools boot` not able to find neko when a value in PATH does not have a trailing slash (#148) @@ -13,7 +21,7 @@ mysql : use eof terminated string when appropriated (#159) jit : disable jit for win64, which never worked all : introduced NEKO_BIG_ENDIAN and NEKO_LITTLE_ENDIAN to replace IS_BIG_ENDIAN, IS_LITTLE_ENDIAN, LITTLE_ENDIAN, BIG_ENDIAN, and BYTE_ORDER - all : renamed TAG_BITS to NEKO_TAG_BITS + all : renamed TAG_BITS to NEKO_TAG_B1ITS all : add NEKO_JIT_DISABLE and NEKO_JIT_DEBUG CMake options all : VS2015 and 2017 compatiblity (#133 #172) sqlite : fixed reading 32-bit int from sqlite (#167) @@ -27,7 +35,7 @@ nekoc : allow break/continue in try/catch std : bugfix in utf8_compare vm : added $sget16/$sget32/$sgetf/$sgetd, $sset16/$sset32/$ssetf/$ssetd, and $itof/$itod/$ftoi/$dtoi - vm : bugfix with arrays/strings having length >128MB + vm : bugfix with arrays/strings having length >128MB jit : bugfix on some GCC versions causing invalid array access std : fixed escaping of arguments in process_run all : nekotools boot executable can now be safely striped on Linux (#86) @@ -40,7 +48,7 @@ mod_neko/tora : distribute ndlls compiled against Apache 2.4 (can still manually compile against Apache 2.2) mysql : use MariaDB's LGPL connector/c instead of MySQL's GPL connector/c (can still use MySQL for compilation) all : copyright to Haxe Foundation instead of Nicolas and other license clean up (#102) - + 2013-02-23 : 2.0.0 all : changed license to MIT mod_neko+mod_tora : fixed issue with get_client_ip in 64 bits mode /gcc @@ -61,7 +69,7 @@ std : date_new("YYYY-MM-DD") now uses localtime instead of UTC (same as Y-M-D H:M:S) neko : fixed missing stack for array write in interp mode with invalid index neko : added "-version" to print version and exit - + 2011-09-10 : 1.8.2 vm : use 15 digits (instead of 10) for float display std : allow up to 512MB array/string size in serialize (instead of 1MB) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/CMakeLists.txt new/neko-2-3-0/CMakeLists.txt --- old/neko-2-2-0/CMakeLists.txt 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/CMakeLists.txt 2019-10-24 19:51:25.000000000 +0200 @@ -36,7 +36,7 @@ endif() set(NEKO_VERSION_MAJOR 2) -set(NEKO_VERSION_MINOR 2) +set(NEKO_VERSION_MINOR 3) set(NEKO_VERSION_PATCH 0) set(NEKO_VERSION ${NEKO_VERSION_MAJOR}.${NEKO_VERSION_MINOR}.${NEKO_VERSION_PATCH}) @@ -64,11 +64,11 @@ message( FATAL_ERROR "CMAKE_OSX_ARCHITECTURES should be i386 or x86_64." ) endif() else() - if(CMAKE_SIZEOF_VOID_P EQUAL 8) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(arch_64 "64") - else() + else() set(arch_64 "") - endif() + endif() endif() if(WIN32) @@ -317,7 +317,7 @@ else() set(GC_CFLAGS "-w") endif() - + set(GC_INCLUDE_DIR ${CMAKE_BINARY_DIR}/libs/src/BoehmGC-build/include) set(GC_LIBRARIES ${CMAKE_BINARY_DIR}/libs/src/BoehmGC-build/lib/libgc.a @@ -605,6 +605,7 @@ EXPORT NekoTargets RUNTIME DESTINATION ${DEST_BIN} LIBRARY DESTINATION ${DEST_LIB} + ARCHIVE DESTINATION ${DEST_LIB} PUBLIC_HEADER DESTINATION ${DEST_INCLUDE} ) @@ -615,6 +616,7 @@ EXPORT NekoTargets RUNTIME DESTINATION ${DEST_BIN} LIBRARY DESTINATION ${DEST_LIB} + ARCHIVE DESTINATION ${DEST_LIB} PUBLIC_HEADER DESTINATION ${DEST_INCLUDE} ) install ( @@ -795,7 +797,7 @@ COMMAND nekoml WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ) - + set_tests_properties(nekoml PROPERTIES ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/README.md new/neko-2-3-0/README.md --- old/neko-2-2-0/README.md 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/README.md 2019-10-24 19:51:25.000000000 +0200 @@ -1,7 +1,6 @@  -[](https://travis-ci.org/HaxeFoundation/neko) -[](https://ci.appveyor.com/project/HaxeFoundation/neko) +[](https://dev.azure.com/HaxeFoundation/GitHubPublic/_build/latest?definitionId=2&branchName=master) # Neko Virtual Machine @@ -9,17 +8,9 @@ ## Snapshot Builds -### Windows +Compiled binaries can be found in the "artifacts" link in the summary section of each [Azure Pipelines build](https://dev.azure.com/HaxeFoundation/GitHubPublic/_build?definitionId=2&_a=summary&repositoryFilter=2&branchFilter=14&statusFilter=succeeded). -Compiled binaries can be found in the "artifacts" tab of each [AppVeyor build](https://ci.appveyor.com/project/HaxeFoundation/neko/history). - -### Mac - -Neko snapshot of the latest master branch can be built using [homebrew](http://brew.sh/) in a single command: `brew install neko --HEAD`. It will install required dependencies, build, and install Neko to the system. The binaries can be found at `brew --prefix neko`. - -Use `brew reinstall neko --HEAD` to upgrade in the future. - -### Linux +For macOS, Neko snapshot of the latest master branch can be built using [homebrew](http://brew.sh/) in a single command: `brew install neko --HEAD`. It will install required dependencies, build, and install Neko to the system. The binaries can be found at `brew --prefix neko`. Use `brew reinstall neko --HEAD` to upgrade in the future. Ubuntu users can use the [Haxe Foundation snapshots PPA](https://launchpad.net/~haxe/+archive/ubuntu/snapshots) to install a Neko package built from the latest master branch. To do so, run the commands as follows: ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/azure-pipelines.yml new/neko-2-3-0/azure-pipelines.yml --- old/neko-2-2-0/azure-pipelines.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/azure-pipelines.yml 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,156 @@ +variables: + - group: variables-haxe + - name: AZURE_PIPELINES_REPO_URL + value: $(Build.Repository.Uri) + - name: AZURE_PIPELINES_BRANCH + value: $(Build.SourceBranchName) + +stages: + - stage: StageTest + jobs: + - template: extra/azure-pipelines/build-linux.yml + parameters: + name: LinuxStatic + staticDeps: 'true' + - template: extra/azure-pipelines/build-linux.yml + parameters: + name: Linux + staticDeps: 'false' + + - template: extra/azure-pipelines/build-mac.yml + parameters: + name: MacStatic + staticDeps: 'true' + - template: extra/azure-pipelines/build-mac.yml + parameters: + name: Mac + staticDeps: 'false' + + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: WinVS2015 + vmImage: vs2015-win2012r2 + cmakeGenerator: Visual Studio 14 2015 + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: WinVS2015x64 + vmImage: vs2015-win2012r2 + cmakeGenerator: Visual Studio 14 2015 Win64 + + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: WinVS2017 + vmImage: vs2017-win2016 + cmakeGenerator: Visual Studio 15 2017 + - template: extra/azure-pipelines/build-windows.yml + parameters: + name: WinVS2017x64 + vmImage: vs2017-win2016 + cmakeGenerator: Visual Studio 15 2017 Win64 + + - stage: StageDeploy + condition: and(succeeded(), not(variables['System.PullRequest.PullRequestId'])) + jobs: + - job: S3 + condition: and(succeeded(), variables['HXBUILDS_AWS_ACCESS_KEY_ID'], variables['HXBUILDS_S3ADDR']) + pool: + vmImage: 'ubuntu-16.04' + steps: + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: LinuxStaticBinaries + targetPath: LinuxStaticBinaries + displayName: Download LinuxStaticBinaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: MacStaticBinaries + targetPath: MacStaticBinaries + displayName: Download MacStaticBinaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: WinVS2015Binaries + targetPath: WinVS2015Binaries + displayName: Download WinVS2015Binaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: WinVS2015x64Binaries + targetPath: WinVS2015x64Binaries + displayName: Download WinVS2015x64Binaries + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: WinVS2015Choco + targetPath: WinVS2015Choco + displayName: Download WinVS2015Choco + - task: DownloadPipelineArtifact@0 + inputs: + artifactName: WinVS2015x64Choco + targetPath: WinVS2015x64Choco + displayName: Download WinVS2015x64Choco + - script: | + set -ex + sudo apt-get update -qqy + sudo apt-get install -qqy awscli + displayName: "Install awscli" + - script: | + set -ex + COMMIT_HASH=`git rev-parse HEAD` + COMMIT_HASH_SHORT=${COMMIT_HASH:0:7} + COMMIT_DATE=`TZ=UTC git show --quiet --date='format-local:%Y-%m-%d' --format="%cd"` + FILE_NAME=neko_${COMMIT_DATE}_$(Build.SourceBranchName)_${COMMIT_HASH_SHORT} + aws s3 cp LinuxStaticBinaries/neko-*.tar.gz $(HXBUILDS_S3ADDR)/neko/linux64/${FILE_NAME}.tar.gz + aws s3 cp MacStaticBinaries/neko-*.tar.gz $(HXBUILDS_S3ADDR)/neko/mac/${FILE_NAME}.tar.gz + aws s3 cp WinVS2015Binaries/neko-*.zip $(HXBUILDS_S3ADDR)/neko/windows/${FILE_NAME}.zip + aws s3 cp WinVS2015Choco/*.nupkg $(HXBUILDS_S3ADDR)/neko/windows-choco/ + aws s3 cp WinVS2015x64Choco/*.nupkg $(HXBUILDS_S3ADDR)/neko/windows64-choco/ + env: + AWS_ACCESS_KEY_ID: $(HXBUILDS_AWS_ACCESS_KEY_ID) + AWS_SECRET_ACCESS_KEY: $(HXBUILDS_AWS_SECRET_ACCESS_KEY) + displayName: Upload binaries + - script: | + set -ex + aws s3 cp LinuxStaticBinaries/neko-*.tar.gz $(HXBUILDS_S3ADDR)/neko/linux64/neko_latest.tar.gz + aws s3 cp MacStaticBinaries/neko-*.tar.gz $(HXBUILDS_S3ADDR)/neko/mac/neko_latest.tar.gz + aws s3 cp WinVS2015Binaries/neko-*.zip $(HXBUILDS_S3ADDR)/neko/windows/neko_latest.zip + aws s3 cp WinVS2015x64Binaries/neko-*.zip $(HXBUILDS_S3ADDR)/neko/windows64/neko_latest.zip + + # Chocolatey packages have to be named with version number, + # so let's use web redirection to keep the original file name. + [[ "$HXBUILDS_S3ADDR" =~ s3://([^/]+)(.*) ]] && HXBUILDS_S3BUCKET="${BASH_REMATCH[1]}" && HXBUILDS_S3PATH="${BASH_REMATCH[2]}" + [[ `echo WinVS2015Choco/*.nupkg` =~ WinVS2015Choco/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}" + aws s3 cp $(HXBUILDS_S3ADDR)/neko/windows-choco/${FILE_NAME} $(HXBUILDS_S3ADDR)/neko/windows-choco/neko_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/neko/windows-choco/${FILE_NAME}" + [[ `echo WinVS2015x64Choco/*.nupkg` =~ WinVS2015x64Choco/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}" + aws s3 cp $(HXBUILDS_S3ADDR)/neko/windows64-choco/${FILE_NAME} $(HXBUILDS_S3ADDR)/neko/windows64-choco/neko_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/neko/windows64-choco/${FILE_NAME}" + env: + AWS_ACCESS_KEY_ID: $(HXBUILDS_AWS_ACCESS_KEY_ID) + AWS_SECRET_ACCESS_KEY: $(HXBUILDS_AWS_SECRET_ACCESS_KEY) + condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master')) + displayName: Update "latest" + - job: PPA + condition: and(succeeded(), variables['PPA'], variables['DEBFULLNAME'], variables['DEBEMAIL']) + steps: + - task: DownloadSecureFile@1 + inputs: + secureFile: haxeci_sec.gpg + displayName: Download haxeci_sec.gpg + - task: DownloadSecureFile@1 + inputs: + secureFile: haxeci_ssh + displayName: Download haxeci_ssh + - script: | + set -ex + chmod 600 $(Agent.TempDirectory)/haxeci_ssh + eval `ssh-agent -s` + ssh-add $(Agent.TempDirectory)/haxeci_ssh + gpg --allow-secret-key-import --import $(Agent.TempDirectory)/haxeci_sec.gpg + git config --global user.name "${DEBFULLNAME}" + git config --global user.email "${DEBEMAIL}" + displayName: Setup credentials + - script: | + set -ex + sudo apt-get update -qqy + sudo apt-get install -qqy ninja-build pkg-config libgtk2.0-dev devscripts git-buildpackage ubuntu-dev-tools dh-make dh-apache2 + displayName: Install devscripts + - script: cmake . -DSTATIC_DEPS=all + displayName: CMake + - script: make upload_to_ppa + displayName: Upload to PPA diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/cmake/FindMariaDBConnector.cmake new/neko-2-3-0/cmake/FindMariaDBConnector.cmake --- old/neko-2-2-0/cmake/FindMariaDBConnector.cmake 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/cmake/FindMariaDBConnector.cmake 2019-10-24 19:51:25.000000000 +0200 @@ -8,7 +8,7 @@ # MARIADB_CONNECTOR_STATIC_LIBRARIES - The static connector libraries # MARIADB_CONNECTOR_INCLUDE_DIR - The connector headers -find_library(MARIADB_CONNECTOR_LIBRARIES NAMES mysqlclient PATH_SUFFIXES mariadb mysql) +find_library(MARIADB_CONNECTOR_LIBRARIES NAMES mariadbclient mariadb mysqlclient PATH_SUFFIXES mariadb mysql) if(${MARIADB_CONNECTOR_LIBRARIES} MATCHES "NOTFOUND") set(MARIADB_CONNECTOR_FOUND FALSE CACHE INTERNAL "") message(STATUS "Dynamic MySQL client library not found.") @@ -20,7 +20,7 @@ set(OLD_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") -find_library(MARIADB_CONNECTOR_STATIC_LIBRARIES NAMES mysqlclient PATH_SUFFIXES mariadb mysql) +find_library(MARIADB_CONNECTOR_STATIC_LIBRARIES NAMES mariadbclient mariadb mysqlclient PATH_SUFFIXES mariadb mysql) set(CMAKE_FIND_LIBRARY_SUFFIXES ${OLD_SUFFIXES}) if(${MARIADB_CONNECTOR_STATIC_LIBRARIES} MATCHES "NOTFOUND") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_ALL new/neko-2-3-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_ALL --- old/neko-2-2-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_ALL 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_ALL 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,3 @@ +brew "cmake" +brew "ninja" +brew "pkg-config" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_NONE new/neko-2-3-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_NONE --- old/neko-2-2-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_NONE 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/extra/azure-pipelines/Brewfile-STATIC_DEPS_NONE 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,7 @@ +brew "cmake" +brew "ninja" +brew "pkg-config" +brew "bdw-gc" +brew "mariadb-connector-c" +brew "mbedtls" +brew "pcre" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/extra/azure-pipelines/build-linux.yml new/neko-2-3-0/extra/azure-pipelines/build-linux.yml --- old/neko-2-2-0/extra/azure-pipelines/build-linux.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/extra/azure-pipelines/build-linux.yml 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,60 @@ +parameters: + name: 'BuildLinux' + vmImage: 'ubuntu-16.04' + staticDeps: 'true' + config: 'RelWithDebInfo' + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + ${{ if eq(parameters.staticDeps, 'true') }}: + APT_PACKAGES: cmake ninja-build pkg-config libgtk2.0-dev + STATIC_DEPS: all + ${{ if eq(parameters.staticDeps, 'false') }}: + APT_PACKAGES: cmake ninja-build pkg-config libgtk2.0-dev libgc-dev libpcre3-dev zlib1g-dev apache2-dev libmysqlclient-dev libsqlite3-dev + STATIC_DEPS: none + steps: + - script: | + set -ex + sudo apt-get update -qqy + sudo apt-get install -qqy $(APT_PACKAGES) + displayName: Install dependencies + - ${{ if eq(parameters.staticDeps, 'false') }}: + - script: | + set -ex + mkdir ~/mbedtls + pushd ~/mbedtls + wget https://tls.mbed.org/download/mbedtls-2.2.1-apache.tgz + tar xzf mbedtls-2.2.1-apache.tgz + cd mbedtls-2.2.1 && sed -i "s/\/\/#define MBEDTLS_THREADING_PTHREAD/#define MBEDTLS_THREADING_PTHREAD/; s/\/\/#define MBEDTLS_THREADING_C/#define MBEDTLS_THREADING_C/; s/#define MBEDTLS_SSL_PROTO_SSL3/\/\/#define MBEDTLS_SSL_PROTO_SSL3/" include/mbedtls/config.h + SHARED=1 make lib + sudo make install + popd + displayName: Install mbedTLS + - script: cmake . -DSTATIC_DEPS=$(STATIC_DEPS) -G Ninja -DCMAKE_BUILD_TYPE=${{ parameters.config }} + displayName: CMake + - ${{ if eq(parameters.staticDeps, 'true') }}: + - script: ninja download_static_deps || ninja download_static_deps || ninja download_static_deps + displayName: Download static deps + - script: | + set -ex + unset MACHINE RELEASE SYSTEM VERSION # https://marc.info/?l=gentoo-commits&m=155026142713994 + ninja + displayName: Build + - script: | + set -ex + ldd -v ./bin/neko + ldd -v ./bin/nekoc + ldd -v ./bin/nekoml + ldd -v ./bin/nekotools + displayName: Check runtime dependencies + - script: ctest --verbose + displayName: Test + - script: ninja package + displayName: Package + - task: PublishPipelineArtifact@0 + inputs: + artifactName: ${{ parameters.name }}Binaries + targetPath: bin/neko-2.3.0-linux64.tar.gz \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/extra/azure-pipelines/build-mac.yml new/neko-2-3-0/extra/azure-pipelines/build-mac.yml --- old/neko-2-2-0/extra/azure-pipelines/build-mac.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/extra/azure-pipelines/build-mac.yml 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,45 @@ +parameters: + name: 'BuildMac' + vmImage: 'macOS-10.13' + staticDeps: 'true' + config: 'RelWithDebInfo' + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + variables: + ${{ if eq(parameters.staticDeps, 'true') }}: + BREWFILE: extra/azure-pipelines/Brewfile-STATIC_DEPS_ALL + STATIC_DEPS: all + ${{ if eq(parameters.staticDeps, 'false') }}: + BREWFILE: extra/azure-pipelines/Brewfile-STATIC_DEPS_NONE + STATIC_DEPS: none + steps: + - script: | + set -ex + brew update + brew bundle --file="$(BREWFILE)" + displayName: Install dependencies + - script: cmake . -DSTATIC_DEPS=$(STATIC_DEPS) -G Ninja -DCMAKE_BUILD_TYPE=${{ parameters.config }} + displayName: CMake + - ${{ if eq(parameters.staticDeps, 'true') }}: + - script: ninja download_static_deps || ninja download_static_deps || ninja download_static_deps + displayName: Download static deps + - script: ninja + displayName: Build + - script: | + set -ex + otool -L ./bin/neko + otool -L ./bin/nekoc + otool -L ./bin/nekoml + otool -L ./bin/nekotools + displayName: Check runtime dependencies + - script: ctest --verbose + displayName: Test + - script: ninja package + displayName: Package + - task: PublishPipelineArtifact@0 + inputs: + artifactName: ${{ parameters.name }}Binaries + targetPath: bin/neko-2.3.0-osx64.tar.gz \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/extra/azure-pipelines/build-windows.yml new/neko-2-3-0/extra/azure-pipelines/build-windows.yml --- old/neko-2-2-0/extra/azure-pipelines/build-windows.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/neko-2-3-0/extra/azure-pipelines/build-windows.yml 2019-10-24 19:51:25.000000000 +0200 @@ -0,0 +1,50 @@ +parameters: + name: 'BuildWindows' + vmImage: '' + cmakeGenerator: '' + config: 'RelWithDebInfo' + +jobs: + - job: ${{ parameters.name }} + pool: + vmImage: ${{ parameters.vmImage }} + steps: + - ${{ if eq(parameters.vmImage, 'vs2015-win2012r2') }}: + - powershell: | + Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) + Write-Host "##vso[task.prependpath]C:\ProgramData\chocolatey\bin" + displayName: Install Chocolatey + - powershell: | + choco install activeperl -y + Write-Host "##vso[task.prependpath]C:\Perl64\bin" + displayName: Install Perl + - script: cmake . -G "${{ parameters.cmakeGenerator }}" + displayName: CMake + - script: | + cmake --build . --config ${{ parameters.config }} --target download_static_deps || \ + cmake --build . --config ${{ parameters.config }} --target download_static_deps || \ + cmake --build . --config ${{ parameters.config }} --target download_static_deps + displayName: Download static deps + - script: cmake --build . --config ${{ parameters.config }} + displayName: Build + - script: ctest --verbose --build-config ${{ parameters.config }} + displayName: Test + - script: cmake --build . --config ${{ parameters.config }} --target PACKAGE + displayName: Package binaries + - task: PublishPipelineArtifact@0 + inputs: + artifactName: ${{ parameters.name }}Binaries + ${{ if not(contains(parameters.cmakeGenerator, 'Win64')) }}: + targetPath: bin/neko-2.3.0-win.zip + ${{ if contains(parameters.cmakeGenerator, 'Win64') }}: + targetPath: bin/neko-2.3.0-win64.zip + - bash: | + set -ex + cmake --build . --config ${{ parameters.config }} --target package_choco + mkdir -p bin/choco + mv bin/*.nupkg bin/choco/ + displayName: Package Chocolatey + - task: PublishPipelineArtifact@0 + inputs: + artifactName: ${{ parameters.name }}Choco + targetPath: bin/choco \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/mysql/CMakeLists.txt new/neko-2-3-0/libs/mysql/CMakeLists.txt --- old/neko-2-2-0/libs/mysql/CMakeLists.txt 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/mysql/CMakeLists.txt 2019-10-24 19:51:25.000000000 +0200 @@ -42,8 +42,8 @@ endif() ExternalProject_Add(OpenSSL ${EP_CONFIGS} - URL https://www.openssl.org/source/openssl-1.1.0g.tar.gz - URL_MD5 ba5f1b8b835b88cadbce9b35ed9531a6 + URL https://www.openssl.org/source/openssl-1.1.1.tar.gz + URL_MD5 7079eb017429e0ffb9efb42bf80ccb21 ${OPENSSL_CONFS} PATCH_COMMAND ${CMAKE_COMMAND} -Dopenssl_source=${CMAKE_BINARY_DIR}/libs/src/openssl -P ${CMAKE_SOURCE_DIR}/cmake/patch_openssl.cmake SOURCE_DIR ${CMAKE_BINARY_DIR}/libs/src/openssl @@ -88,8 +88,8 @@ ExternalProject_Add(MariaDBConnector ${EP_CONFIGS} DEPENDS ${OPENSSL_DEP} - URL https://downloads.mariadb.org/f/connector-c-3.0.2/mariadb-connector-c-3.0.2-src.tar.gz - URL_MD5 2eb5ba004ac105eebb538ead352c0c78 + URL https://downloads.mariadb.org/f/connector-c-3.0.9/mariadb-connector-c-3.0.9-src.tar.gz + URL_MD5 e7fdb17e26e779f4bd15b6a32e1c8472 CMAKE_ARGS -Wno-dev -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/regexp/CMakeLists.txt new/neko-2-3-0/libs/regexp/CMakeLists.txt --- old/neko-2-2-0/libs/regexp/CMakeLists.txt 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/regexp/CMakeLists.txt 2019-10-24 19:51:25.000000000 +0200 @@ -5,16 +5,16 @@ add_library(regexp.ndll MODULE regexp.c) if (STATIC_PCRE) if (WIN32) - set(PCRE_URL "https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz") + set(PCRE_URL "https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz") if (NOT ${CMAKE_VERSION} VERSION_LESS 3.7) list(APPEND PCRE_URL - "http://downloads.sourceforge.net/project/pcre/pcre/8.41/pcre-8.41.tar.gz" + "http://downloads.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz" ) endif() ExternalProject_Add(PCRE ${EP_CONFIGS} URL ${PCRE_URL} - URL_MD5 2e7896647ee25799cb454fe287ffcd08 + URL_MD5 fc18afa0f14a25475cf097ee102a3e4f CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/libs/src/install-prefix diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/sqlite/CMakeLists.txt new/neko-2-3-0/libs/sqlite/CMakeLists.txt --- old/neko-2-2-0/libs/sqlite/CMakeLists.txt 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/sqlite/CMakeLists.txt 2019-10-24 19:51:25.000000000 +0200 @@ -5,8 +5,8 @@ if (STATIC_SQLITE3) ExternalProject_Add(Sqlite3 ${EP_CONFIGS} - URL https://www.sqlite.org/2017/sqlite-autoconf-3210000.tar.gz - URL_MD5 7913de4c3126ba3c24689cb7a199ea31 + URL https://www.sqlite.org/2018/sqlite-autoconf-3250300.tar.gz + URL_MD5 06db8206bc8febf07141b78ad58595ea CONFIGURE_COMMAND echo skip config BUILD_COMMAND echo skip build INSTALL_COMMAND echo skip install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/ssl/CMakeLists.txt new/neko-2-3-0/libs/ssl/CMakeLists.txt --- old/neko-2-2-0/libs/ssl/CMakeLists.txt 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/ssl/CMakeLists.txt 2019-10-24 19:51:25.000000000 +0200 @@ -35,8 +35,8 @@ endif() ExternalProject_Add(MbedTLS ${EP_CONFIGS} - URL https://tls.mbed.org/download/mbedtls-2.6.0-apache.tgz - URL_MD5 01ede06f7d00dd8a6626494d95a63f6b + URL https://tls.mbed.org/download/mbedtls-2.13.0-apache.tgz + URL_MD5 659d96bb03012ca6db414a9137fcdbd6 CMAKE_ARGS ${MBEDTLS_CMAKE_ARGS} PATCH_COMMAND ${CMAKE_COMMAND} -Dsource=${CMAKE_SOURCE_DIR} -DMbedTLS_source=${CMAKE_BINARY_DIR}/libs/src/MbedTLS -P ${CMAKE_SOURCE_DIR}/cmake/patch_mbedtls.cmake INSTALL_COMMAND echo skip install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/std/date.c new/neko-2-3-0/libs/std/date.c --- old/neko-2-2-0/libs/std/date.c 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/std/date.c 2019-10-24 19:51:25.000000000 +0200 @@ -140,6 +140,26 @@ } /** + date_utc_format : #int32 -> fmt:string? -> string + <doc>Format a date in UTC using [strftime]. If [fmt] is [null] then default format is used</doc> +**/ +static value date_utc_format( value o, value fmt ) { + char buf[128]; + struct tm t; + time_t d; + val_check(o,any_int); + if( val_is_null(fmt) ) + fmt = alloc_string("%Y-%m-%d %H:%M:%S"); + val_check(fmt,string); + d = val_any_int(o); + if( gmtime_r(&d,&t) == NULL ) + neko_error(); + if( strftime(buf,127,val_string(fmt),&t) == 0 ) + neko_error(); + return alloc_string(buf); +} + +/** date_set_hour : #int32 -> h:int -> m:int -> s:int -> 'int32 <doc>Change the time of a date. Return the modified date</doc> **/ @@ -205,6 +225,25 @@ } /** + date_get_utc_day : #int32 -> { y => int, m => int, d => int } + <doc>Return the year month and day of a date in UTC</doc> +**/ +static value date_get_utc_day( value o ) { + value r; + struct tm t; + time_t d; + val_check(o,any_int); + d = val_any_int(o); + if( gmtime_r(&d,&t) == NULL ) + neko_error(); + r = alloc_object(NULL); + alloc_field(r,id_y,alloc_int(t.tm_year + 1900)); + alloc_field(r,id_m,alloc_int(t.tm_mon + 1)); + alloc_field(r,id_d,alloc_int(t.tm_mday)); + return r; +} + +/** date_get_hour : #int32 -> { h => int, m => int, s => int } <doc>Return the hour minutes and seconds of a date</doc> **/ @@ -224,32 +263,56 @@ } /** - date_get_tz : void -> int - <doc>Return the local Timezone (in seconds)</doc> + date_get_utc_hour : #int32 -> { h => int, m => int, s => int } + <doc>Return the hour minutes and seconds of a date in UTC</doc> +**/ +static value date_get_utc_hour( value o ) { + value r; + struct tm t; + time_t d; + val_check(o,any_int); + d = val_any_int(o); + if( gmtime_r(&d,&t) == NULL ) + neko_error(); + r = alloc_object(NULL); + alloc_field(r,id_h,alloc_int(t.tm_hour)); + alloc_field(r,id_m,alloc_int(t.tm_min)); + alloc_field(r,id_s,alloc_int(t.tm_sec)); + return r; +} + +/** + date_get_tz : #int32 -> int + <doc>Return the timezone offset from UTC (in minutes) for the given date</doc> **/ -static value date_get_tz() { +static value date_get_tz( value o ) { struct tm local; struct tm gmt; int diff; - time_t raw = time(NULL); + time_t raw; + val_check(o,any_int); + raw = val_any_int(o); if( localtime_r(&raw, &local) == NULL || gmtime_r(&raw, &gmt) == NULL ) neko_error(); - diff = (local.tm_hour - gmt.tm_hour) * 3600 + (local.tm_min - gmt.tm_min) * 60; + diff = (local.tm_hour - gmt.tm_hour) * 60 + (local.tm_min - gmt.tm_min); // adjust for different days/years if( gmt.tm_year > local.tm_year || gmt.tm_yday > local.tm_yday ) - diff -= 24 * 3600; + diff -= 24 * 60; else if( gmt.tm_year < local.tm_year || gmt.tm_yday < local.tm_yday ) - diff += 24 * 3600; + diff += 24 * 60; return alloc_int(diff); } DEFINE_PRIM(date_now,0); DEFINE_PRIM(date_new,1); DEFINE_PRIM(date_format,2); +DEFINE_PRIM(date_utc_format,2); DEFINE_PRIM(date_set_hour,4); DEFINE_PRIM(date_set_day,4); DEFINE_PRIM(date_get_hour,1); +DEFINE_PRIM(date_get_utc_hour,1); DEFINE_PRIM(date_get_day,1); -DEFINE_PRIM(date_get_tz,0); +DEFINE_PRIM(date_get_utc_day,1); +DEFINE_PRIM(date_get_tz,1); /* ************************************************************************ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/std/md5.c new/neko-2-3-0/libs/std/md5.c --- old/neko-2-2-0/libs/std/md5.c 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/std/md5.c 2019-10-24 19:51:25.000000000 +0200 @@ -383,7 +383,7 @@ if( pp < 0 || ll < 0 || pp + ll < 0 || pp + ll > val_strlen(s) ) neko_error(); sha1_init(&ctx); - sha1_update(&ctx,(unsigned char*)val_string(l)+pp,ll); + sha1_update(&ctx,(unsigned char*)val_string(s)+pp,ll); sha1_final(&ctx,result); return copy_string( (char*)result, sizeof(SHA1_DIGEST) ); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/std/socket.c new/neko-2-3-0/libs/std/socket.c --- old/neko-2-2-0/libs/std/socket.c 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/std/socket.c 2019-10-24 19:51:25.000000000 +0200 @@ -882,6 +882,22 @@ } /** + socket_set_broadcast : 'socket -> bool -> void + <doc> + Disable or enable broadcast option flag "SO_BROADCAST" for the socket + </doc> +**/ +static value socket_set_broadcast( value s, value f ) { + int broadcast; + val_check_kind(s,k_socket); + val_check(f,bool); + broadcast = val_bool(f); + if( setsockopt(val_sock(s),SOL_SOCKET,SO_BROADCAST,(char*)&broadcast,sizeof(broadcast)) ) + neko_error(); + return val_null; +} + +/** socket_send_to : 'socket -> buf:string -> pos:int -> length:int -> addr:{host:'int32,port:int} -> int <doc> Send data from an unconnected UDP socket to the given address. @@ -1207,6 +1223,7 @@ DEFINE_PRIM(socket_shutdown,3); DEFINE_PRIM(socket_set_blocking,2); DEFINE_PRIM(socket_set_fast_send,2); +DEFINE_PRIM(socket_set_broadcast,2); DEFINE_PRIM(socket_send_to,5); DEFINE_PRIM(socket_recv_from,5); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/neko-2-2-0/libs/std/utf8.c new/neko-2-3-0/libs/std/utf8.c --- old/neko-2-2-0/libs/std/utf8.c 2017-12-19 07:38:08.000000000 +0100 +++ new/neko-2-3-0/libs/std/utf8.c 2019-10-24 19:51:25.000000000 +0200 @@ -168,7 +168,7 @@ s = (unsigned char*)val_string(str); while( l-- ) { unsigned char c = *s++; - if( c < 0x7F ) + if( c < 0x80 ) continue; else if( c < 0xC0 ) return val_false; @@ -209,7 +209,7 @@ while( l > 0 ) { unsigned char c = *s; count++; - if( c < 0x7F ) { + if( c < 0x80 ) { l--; s++; } else if( c < 0xC0 ) @@ -248,7 +248,7 @@ s = (unsigned char*)val_string(str); while( count-- && l > 0 ) { unsigned char c = *s; - if( c < 0x7F ) { + if( c < 0x80 ) { l--; s++; } else if( c < 0xC0 ) @@ -272,7 +272,7 @@ neko_error(); while( count-- && l > 0 ) { unsigned char c = *s; - if( c < 0x7F ) { + if( c < 0x80 ) { l--; s++; } else if( c < 0xC0 ) @@ -314,7 +314,7 @@ s = (unsigned char*)val_string(str); while( l-- ) { unsigned char c = *s++; - if( c < 0x7F ) { + if( c < 0x80 ) { if( p-- == 0 ) return alloc_int(c); } else if( c < 0xC0 ) @@ -359,7 +359,7 @@ s = (unsigned char*)val_string(str); while( l-- ) { unsigned char c = *s++; - if( c < 0x7F ) + if( c < 0x80 ) val_call1(f,alloc_int(c)); else if( c < 0xC0 ) neko_error();
