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 @@
 
![NekoVM](https://cloud.githubusercontent.com/assets/576184/14234981/10528a0e-f9f1-11e5-8922-894569b2feea.png)
 
-[![TravisCI Build 
Status](https://travis-ci.org/HaxeFoundation/neko.svg?branch=master)](https://travis-ci.org/HaxeFoundation/neko)
-[![AppVeyor Build 
Status](https://ci.appveyor.com/api/projects/status/github/HaxeFoundation/neko?branch=master&svg=true)](https://ci.appveyor.com/project/HaxeFoundation/neko)
+[![Build 
Status](https://dev.azure.com/HaxeFoundation/GitHubPublic/_apis/build/status/HaxeFoundation.neko?branchName=master)](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();


Reply via email to