Skip to content

Commit

Permalink
deps src: Automatic update
Browse files Browse the repository at this point in the history
  • Loading branch information
marvim committed Jun 29, 2024
1 parent 07c51fc commit f0fcbd4
Show file tree
Hide file tree
Showing 53 changed files with 24,552 additions and 0 deletions.
165 changes: 165 additions & 0 deletions src/utf8proc-stamp/download-utf8proc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

cmake_minimum_required(VERSION 3.5)

function(check_file_hash has_hash hash_is_good)
if("${has_hash}" STREQUAL "")
message(FATAL_ERROR "has_hash Can't be empty")
endif()

if("${hash_is_good}" STREQUAL "")
message(FATAL_ERROR "hash_is_good Can't be empty")
endif()

if("SHA256" STREQUAL "")
# No check
set("${has_hash}" FALSE PARENT_SCOPE)
set("${hash_is_good}" FALSE PARENT_SCOPE)
return()
endif()

set("${has_hash}" TRUE PARENT_SCOPE)

message(STATUS "verifying file...
file='/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz'")

file("SHA256" "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz" actual_value)

if(NOT "${actual_value}" STREQUAL "18c1626e9fc5a2e192311e36b3010bfc698078f692888940f1fa150547abb0c1")
set("${hash_is_good}" FALSE PARENT_SCOPE)
message(STATUS "SHA256 hash of
/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz
does not match expected value
expected: '18c1626e9fc5a2e192311e36b3010bfc698078f692888940f1fa150547abb0c1'
actual: '${actual_value}'")
else()
set("${hash_is_good}" TRUE PARENT_SCOPE)
endif()
endfunction()

function(sleep_before_download attempt)
if(attempt EQUAL 0)
return()
endif()

if(attempt EQUAL 1)
message(STATUS "Retrying...")
return()
endif()

set(sleep_seconds 0)

if(attempt EQUAL 2)
set(sleep_seconds 5)
elseif(attempt EQUAL 3)
set(sleep_seconds 5)
elseif(attempt EQUAL 4)
set(sleep_seconds 15)
elseif(attempt EQUAL 5)
set(sleep_seconds 60)
elseif(attempt EQUAL 6)
set(sleep_seconds 90)
elseif(attempt EQUAL 7)
set(sleep_seconds 300)
else()
set(sleep_seconds 1200)
endif()

message(STATUS "Retry after ${sleep_seconds} seconds (attempt #${attempt}) ...")

execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep "${sleep_seconds}")
endfunction()

if(EXISTS "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz")
check_file_hash(has_hash hash_is_good)
if(has_hash)
if(hash_is_good)
message(STATUS "File already exists and hash match (skip download):
file='/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz'
SHA256='18c1626e9fc5a2e192311e36b3010bfc698078f692888940f1fa150547abb0c1'"
)
return()
else()
message(STATUS "File already exists but hash mismatch. Removing...")
file(REMOVE "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz")
endif()
else()
message(STATUS "File already exists but no hash specified (use URL_HASH):
file='/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz'
Old file will be removed and new file downloaded from URL."
)
file(REMOVE "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz")
endif()
endif()

set(retry_number 5)

message(STATUS "Downloading...
dst='/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz'
timeout='none'
inactivity timeout='none'"
)
set(download_retry_codes 7 6 8 15 28)
set(skip_url_list)
set(status_code)
foreach(i RANGE ${retry_number})
if(status_code IN_LIST download_retry_codes)
sleep_before_download(${i})
endif()
foreach(url IN ITEMS [====[https://github.com/JuliaStrings/utf8proc/archive/v2.9.0.tar.gz]====])
if(NOT url IN_LIST skip_url_list)
message(STATUS "Using src='${url}'")






file(
DOWNLOAD
"${url}" "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz"

# no TIMEOUT
# no INACTIVITY_TIMEOUT
STATUS status
LOG log


)

list(GET status 0 status_code)
list(GET status 1 status_string)

if(status_code EQUAL 0)
check_file_hash(has_hash hash_is_good)
if(has_hash AND NOT hash_is_good)
message(STATUS "Hash mismatch, removing...")
file(REMOVE "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz")
else()
message(STATUS "Downloading... done")
return()
endif()
else()
string(APPEND logFailedURLs "error: downloading '${url}' failed
status_code: ${status_code}
status_string: ${status_string}
log:
--- LOG BEGIN ---
${log}
--- LOG END ---
"
)
if(NOT status_code IN_LIST download_retry_codes)
list(APPEND skip_url_list "${url}")
break()
endif()
endif()
endif()
endforeach()
endforeach()

message(FATAL_ERROR "Each download failed!
${logFailedURLs}
"
)
65 changes: 65 additions & 0 deletions src/utf8proc-stamp/extract-utf8proc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

cmake_minimum_required(VERSION 3.5)

# Make file names absolute:
#
get_filename_component(filename "/home/runner/work/deps/deps/neovim/deps/build/downloads/utf8proc/v2.9.0.tar.gz" ABSOLUTE)
get_filename_component(directory "/home/runner/work/deps/deps/neovim/deps/build/src/utf8proc" ABSOLUTE)

message(STATUS "extracting...
src='${filename}'
dst='${directory}'"
)

if(NOT EXISTS "${filename}")
message(FATAL_ERROR "File to extract does not exist: '${filename}'")
endif()

# Prepare a space for extracting:
#
set(i 1234)
while(EXISTS "${directory}/../ex-utf8proc${i}")
math(EXPR i "${i} + 1")
endwhile()
set(ut_dir "${directory}/../ex-utf8proc${i}")
file(MAKE_DIRECTORY "${ut_dir}")

# Extract it:
#
message(STATUS "extracting... [tar xfz]")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${filename} --touch
WORKING_DIRECTORY ${ut_dir}
RESULT_VARIABLE rv
)

if(NOT rv EQUAL 0)
message(STATUS "extracting... [error clean up]")
file(REMOVE_RECURSE "${ut_dir}")
message(FATAL_ERROR "Extract of '${filename}' failed")
endif()

# Analyze what came out of the tar file:
#
message(STATUS "extracting... [analysis]")
file(GLOB contents "${ut_dir}/*")
list(REMOVE_ITEM contents "${ut_dir}/.DS_Store")
list(LENGTH contents n)
if(NOT n EQUAL 1 OR NOT IS_DIRECTORY "${contents}")
set(contents "${ut_dir}")
endif()

# Move "the one" directory to the final directory:
#
message(STATUS "extracting... [rename]")
file(REMOVE_RECURSE ${directory})
get_filename_component(contents ${contents} ABSOLUTE)
file(RENAME ${contents} ${directory})

# Clean up:
#
message(STATUS "extracting... [clean up]")
file(REMOVE_RECURSE "${ut_dir}")

message(STATUS "extracting... done")
Empty file.
Empty file.
Empty file.
6 changes: 6 additions & 0 deletions src/utf8proc-stamp/utf8proc-patch-info.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# This is a generated file and its contents are an internal implementation detail.
# The update step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.

command=
work_dir=
Empty file.
7 changes: 7 additions & 0 deletions src/utf8proc-stamp/utf8proc-update-info.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This is a generated file and its contents are an internal implementation detail.
# The patch step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.

command (connected)=
command (disconnected)=
work_dir=
12 changes: 12 additions & 0 deletions src/utf8proc-stamp/utf8proc-urlinfo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This is a generated file and its contents are an internal implementation detail.
# The download step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.

method=url
command=/usr/local/bin/cmake;-P;/home/runner/work/deps/deps/neovim/deps/build/src/utf8proc-stamp/download-utf8proc.cmake;COMMAND;/usr/local/bin/cmake;-P;/home/runner/work/deps/deps/neovim/deps/build/src/utf8proc-stamp/verify-utf8proc.cmake;COMMAND;/usr/local/bin/cmake;-P;/home/runner/work/deps/deps/neovim/deps/build/src/utf8proc-stamp/extract-utf8proc.cmake
source_dir=/home/runner/work/deps/deps/neovim/deps/build/src/utf8proc
work_dir=/home/runner/work/deps/deps/neovim/deps/build/src
url(s)=https://github.com/JuliaStrings/utf8proc/archive/v2.9.0.tar.gz
hash=SHA256=18c1626e9fc5a2e192311e36b3010bfc698078f692888940f1fa150547abb0c1
no_extract=

Empty file.
23 changes: 23 additions & 0 deletions src/utf8proc/.github/workflows/ci-fuzz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: CIFuzz
on: [pull_request]
jobs:
Fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'utf8proc'
dry-run: false
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'utf8proc'
fuzz-seconds: 600
dry-run: false
- name: Upload Crash
uses: actions/upload-artifact@v1
if: failure()
with:
name: artifacts
path: ./out/artifacts
64 changes: 64 additions & 0 deletions src/utf8proc/.github/workflows/cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CMake

on:
push:
branches:
- master
- 'release-*'
pull_request:
# run on all pr

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
shared: ["ON", "OFF"]
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }} - shared=${{ matrix.shared }}
steps:
- uses: actions/checkout@v2
- name: Build
run: |
mkdir build
cmake -S . -B build -DBUILD_SHARED_LIBS=${{ matrix.shared }} -DUTF8PROC_ENABLE_TESTING=ON
cmake --build build
- name: Run Test
run: ctest --test-dir build -V
- name: Upload shared lib
if: matrix.shared == 'ON'
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os }}
path: |
build/libutf8proc.*
build/Debug/utf8proc.*
mingw:
strategy:
matrix:
os: [windows-latest]
shared: ["ON", "OFF"]
runs-on: ${{ matrix.os }}
name: mingw64 - shared=${{ matrix.shared }}
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
install: gcc make mingw-w64-x86_64-cmake
- name: Build
run: |
mkdir build
cmake -S . -B build -DBUILD_SHARED_LIBS=${{ matrix.shared }} -DUTF8PROC_ENABLE_TESTING=ON -G'MSYS Makefiles'
cmake --build build
- name: Run Test
run: ctest --test-dir build -V
- name: Upload shared lib
if: matrix.shared == 'ON'
uses: actions/upload-artifact@v2
with:
name: windows-mingw64
path: build/libutf8proc.*
41 changes: 41 additions & 0 deletions src/utf8proc/.github/workflows/make.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Make

on:
push:
branches:
- master
- 'release-*'
pull_request:
# run on all pr

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest]
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
# TODO: update makefile to check MANIFEST
# - name: Install dependencies (MacOS)
# if: matrix.config.os == 'macos-latest'
# run: brew install ruby findutils

- name: Check MANIFEST
if: matrix.config.os == 'ubuntu-latest'
run: make manifest && diff MANIFEST.new MANIFEST
- name: Run Test
run: make check
- name: Check utf8proc_data.c
run: make data && diff data/utf8proc_data.c.new utf8proc_data.c
- name: Clean
run: make clean && git status --ignored --porcelain && test -z "$(git status --ignored --porcelain)"

- name: Make lib
run: make
- name: Upload shared lib
uses: actions/upload-artifact@v2
with:
name: make-${{ matrix.os }}
path: libutf8proc.*
Loading

0 comments on commit f0fcbd4

Please sign in to comment.