uringmachine 0.15 → 0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.gitmodules +4 -0
  4. data/CHANGELOG.md +12 -0
  5. data/TODO.md +12 -3
  6. data/examples/bm_send.rb +86 -0
  7. data/ext/um/um.c +28 -1
  8. data/ext/um/um.h +3 -0
  9. data/ext/um/um_class.c +17 -0
  10. data/ext/um/um_stream_class.c +0 -1
  11. data/ext/um/um_utils.c +38 -15
  12. data/lib/uringmachine/version.rb +1 -1
  13. data/lib/uringmachine.rb +4 -3
  14. data/test/test_um.rb +76 -0
  15. data/vendor/libressl/.github/scripts/changelog.sh +74 -0
  16. data/vendor/libressl/.github/workflows/android.yml +35 -0
  17. data/vendor/libressl/.github/workflows/cifuzz.yml +33 -0
  18. data/vendor/libressl/.github/workflows/cmake-config.yml +98 -0
  19. data/vendor/libressl/.github/workflows/coverity.yml +69 -0
  20. data/vendor/libressl/.github/workflows/emscripten.yml +71 -0
  21. data/vendor/libressl/.github/workflows/fedora-rawhide.yml +39 -0
  22. data/vendor/libressl/.github/workflows/freebsd.yml +71 -0
  23. data/vendor/libressl/.github/workflows/linux.yml +71 -0
  24. data/vendor/libressl/.github/workflows/macos.yml +37 -0
  25. data/vendor/libressl/.github/workflows/release.yml +81 -0
  26. data/vendor/libressl/.github/workflows/rust-openssl.yml +47 -0
  27. data/vendor/libressl/.github/workflows/solaris.yml +37 -0
  28. data/vendor/libressl/.github/workflows/windows.yml +70 -0
  29. data/vendor/libressl/.gitignore +333 -0
  30. data/vendor/libressl/CMakeLists.txt +581 -0
  31. data/vendor/libressl/COPYING +133 -0
  32. data/vendor/libressl/ChangeLog +3280 -0
  33. data/vendor/libressl/FindLibreSSL.cmake +232 -0
  34. data/vendor/libressl/LibreSSLConfig.cmake.in +36 -0
  35. data/vendor/libressl/Makefile.am +60 -0
  36. data/vendor/libressl/Makefile.am.common +20 -0
  37. data/vendor/libressl/OPENBSD_BRANCH +1 -0
  38. data/vendor/libressl/README.md +238 -0
  39. data/vendor/libressl/README.mingw.md +43 -0
  40. data/vendor/libressl/apps/CMakeLists.txt +18 -0
  41. data/vendor/libressl/apps/Makefile.am +5 -0
  42. data/vendor/libressl/apps/nc/CMakeLists.txt +67 -0
  43. data/vendor/libressl/apps/nc/Makefile.am +64 -0
  44. data/vendor/libressl/apps/nc/compat/accept4.c +17 -0
  45. data/vendor/libressl/apps/nc/compat/readpassphrase.c +205 -0
  46. data/vendor/libressl/apps/nc/compat/socket.c +29 -0
  47. data/vendor/libressl/apps/nc/compat/sys/socket.h +30 -0
  48. data/vendor/libressl/apps/ocspcheck/CMakeLists.txt +44 -0
  49. data/vendor/libressl/apps/ocspcheck/Makefile.am +45 -0
  50. data/vendor/libressl/apps/ocspcheck/compat/.gitignore +0 -0
  51. data/vendor/libressl/apps/openssl/CMakeLists.txt +97 -0
  52. data/vendor/libressl/apps/openssl/Makefile.am +108 -0
  53. data/vendor/libressl/apps/openssl/apps_win.c +138 -0
  54. data/vendor/libressl/apps/openssl/certhash_win.c +13 -0
  55. data/vendor/libressl/apps/openssl/compat/clock_gettime_osx.c +26 -0
  56. data/vendor/libressl/apps/openssl/compat/poll_win.c +329 -0
  57. data/vendor/libressl/appveyor.yml +53 -0
  58. data/vendor/libressl/autogen.sh +15 -0
  59. data/vendor/libressl/check-release.sh +86 -0
  60. data/vendor/libressl/cmake_export_symbol.cmake +71 -0
  61. data/vendor/libressl/cmake_uninstall.cmake.in +36 -0
  62. data/vendor/libressl/config +17 -0
  63. data/vendor/libressl/configure.ac +165 -0
  64. data/vendor/libressl/crypto/CMakeLists.txt +863 -0
  65. data/vendor/libressl/crypto/Makefile.am +962 -0
  66. data/vendor/libressl/crypto/Makefile.am.arc4random +46 -0
  67. data/vendor/libressl/crypto/Makefile.am.elf-mips +14 -0
  68. data/vendor/libressl/crypto/Makefile.am.elf-mips64 +14 -0
  69. data/vendor/libressl/crypto/Makefile.am.elf-x86_64 +35 -0
  70. data/vendor/libressl/crypto/Makefile.am.macosx-x86_64 +35 -0
  71. data/vendor/libressl/crypto/Makefile.am.masm-x86_64 +22 -0
  72. data/vendor/libressl/crypto/Makefile.am.mingw64-x86_64 +23 -0
  73. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_darwin.c +60 -0
  74. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_linux.c +62 -0
  75. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_none.c +26 -0
  76. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_windows.c +36 -0
  77. data/vendor/libressl/crypto/arch/loongarch64/crypto_arch.h +21 -0
  78. data/vendor/libressl/crypto/arch/mips/crypto_arch.h +21 -0
  79. data/vendor/libressl/crypto/bn/arch/loongarch64/bn_arch.h +23 -0
  80. data/vendor/libressl/crypto/bn/arch/mips/bn_arch.h +24 -0
  81. data/vendor/libressl/crypto/compat/.gitignore +31 -0
  82. data/vendor/libressl/crypto/compat/arc4random.h +41 -0
  83. data/vendor/libressl/crypto/compat/b_win.c +55 -0
  84. data/vendor/libressl/crypto/compat/bsd-asprintf.c +96 -0
  85. data/vendor/libressl/crypto/compat/crypto_lock_win.c +56 -0
  86. data/vendor/libressl/crypto/compat/explicit_bzero_win.c +13 -0
  87. data/vendor/libressl/crypto/compat/freezero.c +32 -0
  88. data/vendor/libressl/crypto/compat/getdelim.c +78 -0
  89. data/vendor/libressl/crypto/compat/getline.c +40 -0
  90. data/vendor/libressl/crypto/compat/getopt_long.c +528 -0
  91. data/vendor/libressl/crypto/compat/getpagesize.c +18 -0
  92. data/vendor/libressl/crypto/compat/getprogname_linux.c +23 -0
  93. data/vendor/libressl/crypto/compat/getprogname_unimpl.c +7 -0
  94. data/vendor/libressl/crypto/compat/getprogname_windows.c +13 -0
  95. data/vendor/libressl/crypto/compat/posix_win.c +296 -0
  96. data/vendor/libressl/crypto/compat/syslog_r.c +19 -0
  97. data/vendor/libressl/crypto/compat/ui_openssl_win.c +334 -0
  98. data/vendor/libressl/dist.sh +22 -0
  99. data/vendor/libressl/gen-coverage-report.sh +58 -0
  100. data/vendor/libressl/gen-openbsd-tags.sh +20 -0
  101. data/vendor/libressl/include/CMakeLists.txt +61 -0
  102. data/vendor/libressl/include/Makefile.am +79 -0
  103. data/vendor/libressl/include/arch/loongarch64/opensslconf.h +150 -0
  104. data/vendor/libressl/include/arch/mips/opensslconf.h +150 -0
  105. data/vendor/libressl/include/compat/arpa/inet.h +15 -0
  106. data/vendor/libressl/include/compat/arpa/nameser.h +25 -0
  107. data/vendor/libressl/include/compat/cet.h +19 -0
  108. data/vendor/libressl/include/compat/dirent.h +17 -0
  109. data/vendor/libressl/include/compat/dirent_msvc.h +611 -0
  110. data/vendor/libressl/include/compat/endian.h +161 -0
  111. data/vendor/libressl/include/compat/err.h +95 -0
  112. data/vendor/libressl/include/compat/fcntl.h +32 -0
  113. data/vendor/libressl/include/compat/getopt.h +50 -0
  114. data/vendor/libressl/include/compat/limits.h +25 -0
  115. data/vendor/libressl/include/compat/netdb.h +10 -0
  116. data/vendor/libressl/include/compat/netinet/in.h +19 -0
  117. data/vendor/libressl/include/compat/netinet/ip.h +49 -0
  118. data/vendor/libressl/include/compat/netinet/tcp.h +10 -0
  119. data/vendor/libressl/include/compat/poll.h +63 -0
  120. data/vendor/libressl/include/compat/pthread.h +122 -0
  121. data/vendor/libressl/include/compat/readpassphrase.h +44 -0
  122. data/vendor/libressl/include/compat/resolv.h +24 -0
  123. data/vendor/libressl/include/compat/stdint.h +31 -0
  124. data/vendor/libressl/include/compat/stdio.h +65 -0
  125. data/vendor/libressl/include/compat/stdlib.h +57 -0
  126. data/vendor/libressl/include/compat/string.h +98 -0
  127. data/vendor/libressl/include/compat/sys/_null.h +18 -0
  128. data/vendor/libressl/include/compat/sys/ioctl.h +11 -0
  129. data/vendor/libressl/include/compat/sys/mman.h +19 -0
  130. data/vendor/libressl/include/compat/sys/param.h +15 -0
  131. data/vendor/libressl/include/compat/sys/queue.h +536 -0
  132. data/vendor/libressl/include/compat/sys/select.h +10 -0
  133. data/vendor/libressl/include/compat/sys/socket.h +18 -0
  134. data/vendor/libressl/include/compat/sys/stat.h +129 -0
  135. data/vendor/libressl/include/compat/sys/time.h +37 -0
  136. data/vendor/libressl/include/compat/sys/tree.h +1006 -0
  137. data/vendor/libressl/include/compat/sys/types.h +69 -0
  138. data/vendor/libressl/include/compat/sys/uio.h +17 -0
  139. data/vendor/libressl/include/compat/syslog.h +38 -0
  140. data/vendor/libressl/include/compat/time.h +59 -0
  141. data/vendor/libressl/include/compat/unistd.h +83 -0
  142. data/vendor/libressl/include/compat/win32netcompat.h +57 -0
  143. data/vendor/libressl/include/openssl/Makefile.am.tpl +45 -0
  144. data/vendor/libressl/libcrypto.pc.in +28 -0
  145. data/vendor/libressl/libressl.pub +2 -0
  146. data/vendor/libressl/libssl.pc.in +28 -0
  147. data/vendor/libressl/libtls.pc.in +28 -0
  148. data/vendor/libressl/m4/ax_add_fortify_source.m4 +80 -0
  149. data/vendor/libressl/m4/ax_check_compile_flag.m4 +53 -0
  150. data/vendor/libressl/m4/check-hardening-options.m4 +110 -0
  151. data/vendor/libressl/m4/check-libc.m4 +189 -0
  152. data/vendor/libressl/m4/check-os-options.m4 +181 -0
  153. data/vendor/libressl/m4/disable-compiler-warnings.m4 +44 -0
  154. data/vendor/libressl/man/CMakeLists.txt +26 -0
  155. data/vendor/libressl/man/links +2780 -0
  156. data/vendor/libressl/man/update_links.sh +25 -0
  157. data/vendor/libressl/openssl.pc.in +11 -0
  158. data/vendor/libressl/patches/bn_shift.patch +34 -0
  159. data/vendor/libressl/patches/crypto_arch.h.patch +34 -0
  160. data/vendor/libressl/patches/crypto_namespace.h.patch +22 -0
  161. data/vendor/libressl/patches/netcat.c.patch +178 -0
  162. data/vendor/libressl/patches/openssl.c.patch +12 -0
  163. data/vendor/libressl/patches/opensslfeatures.h.patch +49 -0
  164. data/vendor/libressl/patches/patch-amd64-crypto-cpu-caps.c.patch +20 -0
  165. data/vendor/libressl/patches/patch-i386-crypto-cpu-caps.c.patch +20 -0
  166. data/vendor/libressl/patches/speed.c.patch +114 -0
  167. data/vendor/libressl/patches/ssl_namespace.h.patch +21 -0
  168. data/vendor/libressl/patches/tls.h.patch +16 -0
  169. data/vendor/libressl/patches/tls_config.c.patch +15 -0
  170. data/vendor/libressl/patches/win32_amd64_bn_arch.h.patch +28 -0
  171. data/vendor/libressl/patches/windows_headers.patch +80 -0
  172. data/vendor/libressl/scripts/config.guess +1774 -0
  173. data/vendor/libressl/scripts/config.sub +1907 -0
  174. data/vendor/libressl/scripts/i686-w64-mingw32.cmake +9 -0
  175. data/vendor/libressl/scripts/test +210 -0
  176. data/vendor/libressl/scripts/wrap-compiler-for-flag-check +31 -0
  177. data/vendor/libressl/scripts/x86_64-w64-mingw32.cmake +9 -0
  178. data/vendor/libressl/ssl/CMakeLists.txt +183 -0
  179. data/vendor/libressl/ssl/Makefile.am +187 -0
  180. data/vendor/libressl/tests/CMakeLists.txt +970 -0
  181. data/vendor/libressl/tests/Makefile.am +944 -0
  182. data/vendor/libressl/tests/aeadtest.sh +30 -0
  183. data/vendor/libressl/tests/arc4randomforktest.sh +21 -0
  184. data/vendor/libressl/tests/asn1time_small.test +10 -0
  185. data/vendor/libressl/tests/cmake/CMakeLists.txt +52 -0
  186. data/vendor/libressl/tests/cmake/crypto.c +7 -0
  187. data/vendor/libressl/tests/cmake/ssl.c +6 -0
  188. data/vendor/libressl/tests/cmake/tls.c +6 -0
  189. data/vendor/libressl/tests/compat/pipe2.c +186 -0
  190. data/vendor/libressl/tests/dtlstest.sh +28 -0
  191. data/vendor/libressl/tests/evptest.sh +22 -0
  192. data/vendor/libressl/tests/keypairtest.sh +27 -0
  193. data/vendor/libressl/tests/mlkem_tests.sh +39 -0
  194. data/vendor/libressl/tests/ocsptest.bat +25 -0
  195. data/vendor/libressl/tests/ocsptest.sh +23 -0
  196. data/vendor/libressl/tests/openssl.cnf +29 -0
  197. data/vendor/libressl/tests/optionstest.c +381 -0
  198. data/vendor/libressl/tests/pidwraptest.c +85 -0
  199. data/vendor/libressl/tests/pidwraptest.sh +26 -0
  200. data/vendor/libressl/tests/quictest.bat +27 -0
  201. data/vendor/libressl/tests/quictest.sh +30 -0
  202. data/vendor/libressl/tests/renegotiation_test.bat +27 -0
  203. data/vendor/libressl/tests/renegotiation_test.sh +30 -0
  204. data/vendor/libressl/tests/rfc5280time_small.test +10 -0
  205. data/vendor/libressl/tests/servertest.bat +27 -0
  206. data/vendor/libressl/tests/servertest.sh +30 -0
  207. data/vendor/libressl/tests/shutdowntest.bat +27 -0
  208. data/vendor/libressl/tests/shutdowntest.sh +30 -0
  209. data/vendor/libressl/tests/ssltest.bat +32 -0
  210. data/vendor/libressl/tests/ssltest.sh +48 -0
  211. data/vendor/libressl/tests/testdsa.bat +47 -0
  212. data/vendor/libressl/tests/testdsa.sh +57 -0
  213. data/vendor/libressl/tests/testenc.bat +85 -0
  214. data/vendor/libressl/tests/testenc.sh +93 -0
  215. data/vendor/libressl/tests/testrsa.bat +47 -0
  216. data/vendor/libressl/tests/testrsa.sh +57 -0
  217. data/vendor/libressl/tests/testssl.bat +171 -0
  218. data/vendor/libressl/tests/tlstest.bat +27 -0
  219. data/vendor/libressl/tests/tlstest.sh +28 -0
  220. data/vendor/libressl/tls/CMakeLists.txt +125 -0
  221. data/vendor/libressl/tls/Makefile.am +76 -0
  222. data/vendor/libressl/tls/compat/ftruncate.c +17 -0
  223. data/vendor/libressl/tls/compat/pread.c +29 -0
  224. data/vendor/libressl/tls/compat/pwrite.c +29 -0
  225. data/vendor/libressl/update.sh +460 -0
  226. data/vendor/liburing/.github/workflows/ci.yml +8 -0
  227. data/vendor/liburing/configure +23 -2
  228. data/vendor/liburing/examples/helpers.c +1 -1
  229. data/vendor/liburing/examples/helpers.h +1 -1
  230. data/vendor/liburing/examples/reg-wait.c +3 -3
  231. data/vendor/liburing/examples/zcrx.c +5 -5
  232. data/vendor/liburing/liburing.spec +1 -1
  233. data/vendor/liburing/src/include/liburing/io_uring.h +16 -0
  234. data/vendor/liburing/src/include/liburing.h +20 -4
  235. data/vendor/liburing/src/lib.h +2 -4
  236. data/vendor/liburing/src/liburing-ffi.map +7 -0
  237. data/vendor/liburing/src/liburing.map +7 -0
  238. data/vendor/liburing/src/register.c +5 -0
  239. data/vendor/liburing/src/sanitize.c +5 -4
  240. data/vendor/liburing/src/setup.c +43 -28
  241. data/vendor/liburing/test/Makefile +7 -0
  242. data/vendor/liburing/test/cmd-discard.c +2 -2
  243. data/vendor/liburing/test/evfd-short-read.c +84 -0
  244. data/vendor/liburing/test/fdinfo-sqpoll.c +117 -0
  245. data/vendor/liburing/test/fdinfo.c +1 -1
  246. data/vendor/liburing/test/fixed-buf-merge.c +2 -2
  247. data/vendor/liburing/test/futex-kill.c +135 -0
  248. data/vendor/liburing/test/helpers.c +1 -1
  249. data/vendor/liburing/test/helpers.h +1 -1
  250. data/vendor/liburing/test/init-mem.c +50 -12
  251. data/vendor/liburing/test/io_uring_passthrough.c +25 -6
  252. data/vendor/liburing/test/msg-ring.c +123 -9
  253. data/vendor/liburing/test/recv-bundle-short-ooo.c +16 -1
  254. data/vendor/liburing/test/recv-inc-ooo.c +411 -0
  255. data/vendor/liburing/test/recv-mshot-fair.c +513 -0
  256. data/vendor/liburing/test/reg-wait.c +14 -14
  257. data/vendor/liburing/test/send-zerocopy.c +4 -4
  258. data/vendor/liburing/test/timerfd-short-read.c +81 -0
  259. data/vendor/liburing/test/timestamp.c +382 -0
  260. data/vendor/liburing/test/zcrx.c +22 -22
  261. metadata +222 -2
@@ -0,0 +1,98 @@
1
+ # GitHub Actions workflow to check CMake config.
2
+ name: "CMake Check"
3
+
4
+ on:
5
+ push: {}
6
+ pull_request: {}
7
+
8
+ concurrency:
9
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ check:
14
+ name: "${{ matrix.os }}"
15
+ runs-on: "${{ matrix.os }}"
16
+ strategy:
17
+ fail-fast: true
18
+ matrix:
19
+ os: [ "windows-2022", "macos-14", "ubuntu-24.04" ]
20
+ defaults:
21
+ run:
22
+ shell: "bash"
23
+ permissions:
24
+ contents: read
25
+ steps:
26
+ - name: "Checkout repository"
27
+ uses: actions/checkout@v4
28
+
29
+ - name: "Setup Windows dependencies"
30
+ if: runner.os == 'Windows'
31
+ uses: msys2/setup-msys2@v2
32
+ with:
33
+ update: true
34
+ install: >-
35
+ autoconf
36
+ automake
37
+ diffutils
38
+ libtool
39
+ gcc
40
+ git
41
+ patch
42
+ perl
43
+
44
+ - name: "Setup macOS dependencies"
45
+ if: runner.os == 'macOS'
46
+ run: brew install automake libtool
47
+
48
+ - name: "Prepare source tree for build (Windows)"
49
+ if: runner.os == 'Windows'
50
+ shell: "msys2 {0}"
51
+ run: ./autogen.sh
52
+
53
+ - name: "Prepare source tree for build (Unix)"
54
+ if: runner.os != 'Windows'
55
+ run: ./autogen.sh
56
+
57
+ - name: "Configure"
58
+ run: |
59
+ cmake -S . \
60
+ -B build \
61
+ -D CMAKE_BUILD_TYPE=Release \
62
+ -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/../local
63
+
64
+ - name: "Build"
65
+ run: cmake --build build --config Release --verbose
66
+
67
+ - name: "Install"
68
+ run: cmake --install build --config Release
69
+
70
+ - name: "Consume from the build directory - Configure"
71
+ run: |
72
+ cmake -S tests/cmake \
73
+ -B consumer-build \
74
+ -D CMAKE_BUILD_TYPE=Release \
75
+ -D LibreSSL_DIR=$GITHUB_WORKSPACE/build
76
+
77
+ - name: "Consume from the build directory - Build"
78
+ run: cmake --build consumer-build --config Release --verbose
79
+
80
+ - name: "Consume from the install directory (CMAKE_PREFIX_PATH) - Configure"
81
+ run: |
82
+ cmake -S tests/cmake \
83
+ -B consumer-install-prefix \
84
+ -D CMAKE_BUILD_TYPE=Release \
85
+ -D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/../local
86
+
87
+ - name: "Consume from the install directory (CMAKE_PREFIX_PATH) - Build"
88
+ run: cmake --build consumer-install-prefix --config Release --verbose
89
+
90
+ - name: "Consume from the install directory (LibreSSL_DIR) - Configure"
91
+ run: |
92
+ cmake -S tests/cmake \
93
+ -B consumer-install-dir \
94
+ -D CMAKE_BUILD_TYPE=Release \
95
+ -D LibreSSL_DIR=$GITHUB_WORKSPACE/../local/lib/cmake/LibreSSL
96
+
97
+ - name: "Consume from the install directory (LibreSSL_DIR) - Build"
98
+ run: cmake --build consumer-install-dir --config Release --verbose
@@ -0,0 +1,69 @@
1
+ # GitHub Actions workflow to run Coverity scans.
2
+ name: "Coverity"
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ schedule:
7
+ - cron: "0 0 * * *" # At 00:00 daily.
8
+
9
+ concurrency:
10
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ scan:
15
+ name: "Scan"
16
+ runs-on: "ubuntu-24.04"
17
+ if: github.repository_owner == 'libressl' # Prevent running on forks
18
+ permissions:
19
+ contents: read
20
+ steps:
21
+ - name: "Checkout repository"
22
+ uses: actions/checkout@v4
23
+
24
+ - name: "Install dependencies"
25
+ run: |
26
+ sudo apt-get update
27
+ sudo apt-get install -y cmake ninja-build
28
+
29
+ - name: "Download Coverity build tool"
30
+ env:
31
+ PROJECT: "libressl-portable%2Fportable"
32
+ COVERITY_SCAN_TOKEN: "${{ secrets.COVERITY_SCAN_TOKEN }}"
33
+ run: |
34
+ wget -c -N https://scan.coverity.com/download/linux64 --post-data "token=$COVERITY_SCAN_TOKEN&project=$PROJECT" -O coverity_tool.tar.gz
35
+ mkdir coverity_tool
36
+ tar xzf coverity_tool.tar.gz --strip 1 -C coverity_tool
37
+
38
+ - name: "Setup"
39
+ run: |
40
+ ./autogen.sh
41
+ ./configure
42
+ make dist
43
+ tar zxf libressl-*.tar.gz
44
+ rm libressl-*.tar.gz
45
+ cd libressl-*
46
+ mkdir build-static
47
+ mkdir build-shared
48
+ cmake -GNinja -DBUILD_SHARED_LIBS=ON ..
49
+
50
+ - name: "Build with Coverity build tool"
51
+ run: |
52
+ export PATH=`pwd`/coverity_tool/bin:$PATH
53
+ cd libressl-*
54
+ cov-build --dir cov-int ninja
55
+
56
+ - name: "Submit build result to Coverity Scan"
57
+ env:
58
+ EMAIL: "libressl-security@openbsd.org"
59
+ PROJECT: "libressl-portable%2Fportable"
60
+ COVERITY_SCAN_TOKEN: "${{ secrets.COVERITY_SCAN_TOKEN }}"
61
+ run: |
62
+ cd libressl-*
63
+ tar czvf cov.tar.gz cov-int
64
+ curl --form token=$COVERITY_SCAN_TOKEN \
65
+ --form email=$EMAIL \
66
+ --form file=@cov.tar.gz \
67
+ --form version="Commit $GITHUB_SHA" \
68
+ --form description="Build submitted via CI" \
69
+ https://scan.coverity.com/builds?project=$PROJECT
@@ -0,0 +1,71 @@
1
+ # GitHub Actions workflow to run for Emscripten.
2
+ name: "Emscripten"
3
+
4
+ on:
5
+ push: {}
6
+ pull_request: {}
7
+ schedule:
8
+ - cron: "0 0 * * *" # At 00:00 daily.
9
+
10
+ concurrency:
11
+ group: "${{ github.workflow }}-${{ github.ref }}"
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ test:
16
+ name: "Emscripten"
17
+ runs-on: "ubuntu-24.04"
18
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
19
+ permissions:
20
+ contents: read
21
+ steps:
22
+ - name: "Checkout repository"
23
+ uses: actions/checkout@v4
24
+
25
+ - name: "Setup emsdk"
26
+ uses: mymindstorm/setup-emsdk@v14
27
+ with:
28
+ version: "3.1.60"
29
+
30
+ - name: "Prepare repository"
31
+ run: ./autogen.sh
32
+
33
+ - name: "Configure CMake"
34
+ run: emcmake cmake -Bbuild
35
+
36
+ - name: "Build"
37
+ run: cmake --build build --config Release
38
+
39
+ - name: "Test"
40
+ run: ctest --test-dir build -C Release --output-on-failure
41
+
42
+ # Test ASAN with and without ASM enabled.
43
+ test-asan:
44
+ name: "ASAN (no-asm)"
45
+ runs-on: "ubuntu-24.04"
46
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
47
+ permissions:
48
+ contents: read
49
+ steps:
50
+ - name: "Checkout repository"
51
+ uses: actions/checkout@v4
52
+
53
+ - name: "Setup emsdk"
54
+ uses: mymindstorm/setup-emsdk@v14
55
+ with:
56
+ version: "3.1.60"
57
+
58
+ - name: "Prepare repository"
59
+ run: ./autogen.sh
60
+
61
+ - name: "Configure CMake"
62
+ run: emcmake cmake -Bbuild
63
+ env:
64
+ CFLAGS: "-gsource-map -fsanitize=address"
65
+ LDFLAGS: "-fsanitize=address"
66
+
67
+ - name: "Build"
68
+ run: cmake --build build --config Release
69
+
70
+ - name: "Test"
71
+ run: ctest --test-dir build -C Release --output-on-failure
@@ -0,0 +1,39 @@
1
+ name: Fedora/Rawhide
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ schedule:
6
+ - cron: "0 0 * * *"
7
+
8
+ concurrency:
9
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
10
+ cancel-in-progress: true
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ build_and_test:
17
+ strategy:
18
+ matrix:
19
+ cc: [ gcc, clang ]
20
+ name: ${{ matrix.cc }}
21
+ runs-on: ubuntu-24.04
22
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
23
+ container:
24
+ image: fedora:rawhide
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - name: Install dependencies
28
+ run: |
29
+ dnf -y install git make clang cmake ninja-build autoconf automake libtool diffutils patch gawk
30
+ - name: Pull upstream source
31
+ run: |
32
+ ./update.sh
33
+ - name: Build
34
+ run: |
35
+ CC=${{ matrix.cc }} cmake -GNinja -DBUILD_SHARED_LIBS=ON .
36
+ ninja
37
+ - name: Test
38
+ run: |
39
+ ninja test
@@ -0,0 +1,71 @@
1
+ # GitHub Actions workflow to run tests on a FreeBSD VM.
2
+ name: "FreeBSD"
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ schedule:
7
+ - cron: "0 0 * * *" # At 00:00 daily.
8
+
9
+ concurrency:
10
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
11
+ cancel-in-progress: true
12
+
13
+ env:
14
+ FREEBSD_VERSION: "14.1"
15
+
16
+ jobs:
17
+ autoconf:
18
+ name: "autoconf"
19
+ runs-on: ubuntu-24.04
20
+ if: github.repository_owner == 'libressl' || github.event_name != 'schedule'
21
+ permissions:
22
+ contents: read
23
+ steps:
24
+ - name: "Checkout repository"
25
+ uses: actions/checkout@v4
26
+
27
+ - name: "Setup"
28
+ run: |
29
+ sudo apt-get update
30
+ sudo apt-get install -y automake autoconf libtool
31
+ ./autogen.sh
32
+
33
+ - name: "Build on VM"
34
+ uses: vmactions/freebsd-vm@v1
35
+ with:
36
+ release: "${{ env.FREEBSD_VERSION }}"
37
+ copyback: false
38
+ prepare: |
39
+ pkg install -y autoconf automake libtool
40
+ run: |
41
+ ./configure
42
+ make -j2 check || (cat tests/test-suite.log && exit 1)
43
+
44
+ cmake:
45
+ name: "cmake"
46
+ runs-on: ubuntu-24.04
47
+ if: github.repository_owner == 'libressl' || github.event_name != 'schedule'
48
+ permissions:
49
+ contents: read
50
+ steps:
51
+ - name: "Checkout repository"
52
+ uses: actions/checkout@v4
53
+
54
+ - name: "Setup"
55
+ run: |
56
+ sudo apt-get update
57
+ sudo apt-get install -y automake autoconf libtool
58
+ ./autogen.sh
59
+
60
+ - name: "Build on VM"
61
+ uses: vmactions/freebsd-vm@v1
62
+ with:
63
+ release: "${{ env.FREEBSD_VERSION }}"
64
+ copyback: false
65
+ prepare: |
66
+ pkg install -y cmake ninja
67
+ run: |
68
+ export CTEST_OUTPUT_ON_FAILURE=1
69
+ cmake -G Ninja -B build
70
+ ninja -C build
71
+ ninja -C build test
@@ -0,0 +1,71 @@
1
+ # GitHub Actions workflow to run tests on Linux.
2
+ name: "Linux"
3
+
4
+ on:
5
+ push: {}
6
+ pull_request: {}
7
+ schedule:
8
+ - cron: "0 0 * * *" # At 00:00 daily.
9
+
10
+ concurrency:
11
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ # Test against all supported architectures.
16
+ test:
17
+ name: "${{ matrix.os }}/${{ matrix.arch }} (${{ matrix.compiler }})"
18
+ runs-on: "${{ matrix.os }}"
19
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
20
+ permissions:
21
+ contents: read
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ os: ["ubuntu-22.04", "ubuntu-24.04"]
26
+ arch: ["native", "arm32", "arm64", "mingw32", "mingw64", "mips32", "mips64"]
27
+ compiler: ["gcc"]
28
+ include:
29
+ - os: "ubuntu-22.04"
30
+ arch: "native"
31
+ compiler: "clang"
32
+ - os: "ubuntu-24.04"
33
+ arch: "native"
34
+ compiler: "clang"
35
+ - os: "ubuntu-24.04" # loong64
36
+ arch: "loong64"
37
+ compiler: "gcc"
38
+ steps:
39
+ - name: "Checkout repository"
40
+ uses: actions/checkout@v4
41
+
42
+ - name: "Run tests"
43
+ run: ./scripts/test || (status=$?; cat tests/test-suite.log; exit $status)
44
+ env:
45
+ ARCH: "${{ matrix.arch }}"
46
+ CC: "${{ matrix.compiler }}"
47
+
48
+ # Test ASAN with and without ASM enabled.
49
+ test-asan:
50
+ name: "ASAN (${{ matrix.asm == 'ON' && 'asm' || 'no-asm' }})"
51
+ runs-on: "ubuntu-24.04"
52
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
53
+ permissions:
54
+ contents: read
55
+ strategy:
56
+ fail-fast: false
57
+ matrix:
58
+ asm: [ON, OFF]
59
+ steps:
60
+ - name: "Checkout repository"
61
+ uses: actions/checkout@v4
62
+
63
+ - name: "Run tests"
64
+ run: ./scripts/test
65
+ env:
66
+ ARCH: "native"
67
+ CC: "clang"
68
+ CFLAGS: "-ggdb -fsanitize=address"
69
+ LDFLAGS: "-fsanitize=address"
70
+ ENABLE_ASM: "${{ matrix.asm }}"
71
+ CTEST_OUTPUT_ON_FAILURE: 1
@@ -0,0 +1,37 @@
1
+ # GitHub Actions workflow to run tests on macOS.
2
+ name: "macOS"
3
+
4
+ on:
5
+ push: {}
6
+ pull_request: {}
7
+ schedule:
8
+ - cron: "0 0 * * 0" # At 00:00 weekly on Sunday.
9
+
10
+ concurrency:
11
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ test:
16
+ name: "${{ matrix.os }}/${{ matrix.arch }}"
17
+ runs-on: "${{ matrix.os }}"
18
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
19
+ permissions:
20
+ contents: read
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ os: ["macos-15", "macos-14", "macos-13"]
25
+ arch: ["arm64", "x86_64"]
26
+ steps:
27
+ - name: "Install required packages"
28
+ run: brew install automake libtool
29
+
30
+ - name: "Checkout repository"
31
+ uses: actions/checkout@v4
32
+
33
+ - name: "Run tests"
34
+ run: ./scripts/test
35
+ env:
36
+ ARCH: "${{ matrix.arch }}"
37
+ OS: "${{ matrix.os }}"
@@ -0,0 +1,81 @@
1
+ # GitHub Actions workflow to create releases from tags.
2
+ name: "Release"
3
+
4
+ on:
5
+ push:
6
+ tags: [ "v*" ]
7
+
8
+ concurrency:
9
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
10
+ cancel-in-progress: true
11
+
12
+ permissions:
13
+ contents: write
14
+
15
+ jobs:
16
+ release:
17
+ name: "Release"
18
+ runs-on: "ubuntu-24.04"
19
+ outputs:
20
+ upload_url: "${{ steps.create_release.outputs.upload_url }}"
21
+ steps:
22
+ - name: "Checkout repository"
23
+ uses: actions/checkout@v4
24
+
25
+ - name: "Generate version changelog"
26
+ run: .github/scripts/changelog.sh "$VERSION" > release-changelog.txt
27
+ env:
28
+ VERSION: "${{ github.ref_name }}"
29
+
30
+ - name: "Create GitHub release"
31
+ id: create_release
32
+ uses: softprops/action-gh-release@v2
33
+ with:
34
+ body_path: "${{ github.workspace }}/release-changelog.txt"
35
+
36
+ build-windows:
37
+ name: "${{ matrix.os }}/${{ matrix.arch }}"
38
+ runs-on: "${{ matrix.os }}"
39
+ needs: ["release"]
40
+ strategy:
41
+ matrix:
42
+ os: [ "windows-2022" ]
43
+ arch: [ "Win32", "x64", "ARM64" ]
44
+ steps:
45
+ - name: "Checkout repository"
46
+ uses: actions/checkout@v4
47
+
48
+ - name: "Setup MSYS2"
49
+ uses: msys2/setup-msys2@v2
50
+ with:
51
+ update: true
52
+ install: >-
53
+ autoconf
54
+ automake
55
+ diffutils
56
+ libtool
57
+ gcc
58
+ git
59
+ patch
60
+ perl
61
+
62
+ - shell: msys2 {0}
63
+ run: ./autogen.sh
64
+
65
+ - shell: cmd
66
+ run: cmake -Bbuild -G "Visual Studio 17 2022" -A ${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=local
67
+
68
+ - shell: cmd
69
+ run: cmake --build build --config Release
70
+
71
+ - shell: cmd
72
+ run: cmake --install build --config Release
73
+
74
+ - shell: pwsh
75
+ run: Compress-Archive -Path local\* "libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip"
76
+
77
+ - name: "Upload release artifact"
78
+ uses: softprops/action-gh-release@v2
79
+ with:
80
+ files: |
81
+ libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip
@@ -0,0 +1,47 @@
1
+ # GitHub Actions workflow to run rust-openssl regress tests.
2
+ name: "rust-openssl"
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ schedule:
7
+ - cron: "0 0 * * *" # At 00:00 daily.
8
+
9
+ concurrency:
10
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ test:
15
+ name: "Test"
16
+ runs-on: "ubuntu-24.04"
17
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
18
+ permissions:
19
+ contents: read
20
+ steps:
21
+ - name: "Checkout repository"
22
+ uses: actions/checkout@v4
23
+
24
+ - name: "Build LibreSSL"
25
+ run: |
26
+ ./autogen.sh
27
+ ./configure --prefix="${HOME}/opt"
28
+ make all install
29
+
30
+ - name: "Clone rust-openssl"
31
+ run: |
32
+ git clone https://github.com/sfackler/rust-openssl.git
33
+
34
+ - name: "Run rust-openssl tests"
35
+ run: |
36
+ cd rust-openssl
37
+ # instead of erroring use the last supported version
38
+ ed -s openssl-sys/build/main.rs <<-EOF
39
+ /_ => version_error/-1
40
+ .t.
41
+ s/(.*=/_ =
42
+ +1d
43
+ w
44
+ q
45
+ EOF
46
+ export OPENSSL_DIR=${HOME}/opt LD_LIBRARY_PATH=${HOME}/opt/lib
47
+ cargo test --verbose
@@ -0,0 +1,37 @@
1
+ # GitHub Actions workflow to run tests on a Solaris VM.
2
+ name: "Solaris"
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ schedule:
7
+ - cron: "0 0 * * *" # At 00:00 daily.
8
+
9
+ concurrency:
10
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ test:
15
+ name: "Solaris"
16
+ runs-on: ubuntu-24.04
17
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
18
+ permissions:
19
+ contents: read
20
+ steps:
21
+ - name: "Checkout repository"
22
+ uses: actions/checkout@v4
23
+
24
+ - name: "Setup"
25
+ run: |
26
+ sudo apt-get update
27
+ sudo apt-get install -y automake autoconf libtool
28
+ ./autogen.sh
29
+
30
+ - name: "Build on VM"
31
+ uses: vmactions/solaris-vm@v1
32
+ with:
33
+ prepare: |
34
+ pkg install gcc make
35
+ run: |
36
+ MAKE=gmake ./configure
37
+ gmake -j2 check || (cat tests/test-suite.log && exit 1)
@@ -0,0 +1,70 @@
1
+ # GitHub Actions workflow to run tests on Windows.
2
+ name: "Windows"
3
+
4
+ on:
5
+ push: {}
6
+ pull_request: {}
7
+ schedule:
8
+ - cron: "0 0 * * 0" # At 00:00 weekly on Sunday.
9
+
10
+ concurrency:
11
+ group: "${{ github.workflow }}-${{ github.event.number || github.ref }}"
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ test:
16
+ name: "${{ matrix.os }}/${{ matrix.arch }} (${{ matrix.generator }}${{ matrix.shared == 'ON' && ', shared' || '' }})"
17
+ runs-on: "${{ matrix.os }}"
18
+ if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }}
19
+ permissions:
20
+ contents: read
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ os: ["windows-2022", "windows-2025"]
25
+ arch: ["ARM64", "x64", "Win32"]
26
+ shared: ["ON", "OFF"]
27
+ include:
28
+ - os: "windows-2022"
29
+ generator: "Visual Studio 17 2022"
30
+ - os: "windows-2025"
31
+ # XXX - use appropriate value
32
+ generator: "Visual Studio 17 2022"
33
+ steps:
34
+ - name: "Checkout repository"
35
+ uses: actions/checkout@v4
36
+
37
+ - name: "Setup MSYS2"
38
+ uses: msys2/setup-msys2@v2
39
+ with:
40
+ update: true
41
+ install: >-
42
+ diffutils
43
+ gcc
44
+ git
45
+ patch
46
+ perl
47
+
48
+ - name: "Update"
49
+ shell: msys2 {0}
50
+ run: ./update.sh
51
+
52
+ - name: "Configure CMake"
53
+ shell: cmd
54
+ run: cmake -Bbuild -G "${{ matrix.generator }}" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local
55
+
56
+ - name: "Build"
57
+ shell: cmd
58
+ run: cmake --build build --config Release
59
+
60
+ - name: "Test"
61
+ if: matrix.arch != 'ARM64'
62
+ shell: cmd
63
+ run: ctest --test-dir build -C Release --output-on-failure
64
+
65
+ - name: "Upload build artifacts"
66
+ if: always()
67
+ uses: actions/upload-artifact@v4
68
+ with:
69
+ name: "${{ matrix.os }}-${{ matrix.arch }}${{ matrix.shared == 'ON' && '-shared' || '' }}-build-results"
70
+ path: "build"