uringmachine 0.24.0 → 0.26.0

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 (279) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +0 -3
  4. data/CHANGELOG.md +13 -0
  5. data/Gemfile +11 -0
  6. data/README.md +266 -112
  7. data/Rakefile +8 -0
  8. data/TODO.md +14 -21
  9. data/benchmark/common.rb +2 -0
  10. data/benchmark/openssl.rb +77 -0
  11. data/benchmark/openssl_socketpair.rb +112 -0
  12. data/benchmark/sqlite.rb +1 -1
  13. data/docs/design/buffer_pool.md +1 -1
  14. data/docs/wroclove.rb.md +52 -0
  15. data/ext/um/extconf.rb +15 -0
  16. data/ext/um/um.c +392 -358
  17. data/ext/um/um.h +48 -23
  18. data/ext/um/um_async_op.c +9 -8
  19. data/ext/um/um_async_op_class.c +34 -3
  20. data/ext/um/um_class.c +705 -19
  21. data/ext/um/um_const.c +31 -0
  22. data/ext/um/um_mutex_class.c +12 -0
  23. data/ext/um/um_op.c +15 -1
  24. data/ext/um/um_queue_class.c +16 -0
  25. data/ext/um/um_ssl.c +109 -0
  26. data/ext/um/um_stream.c +9 -8
  27. data/ext/um/um_sync.c +18 -11
  28. data/ext/um/um_utils.c +17 -8
  29. data/grant-2025/interim-report.md +1 -1
  30. data/grant-2025/journal.md +4 -4
  31. data/grant-2025/tasks.md +6 -4
  32. data/lib/uringmachine/dns_resolver.rb +38 -0
  33. data/lib/uringmachine/fiber_scheduler.rb +7 -5
  34. data/lib/uringmachine/version.rb +1 -1
  35. data/lib/uringmachine.rb +106 -6
  36. data/test/helper.rb +15 -0
  37. data/test/test_async_op.rb +3 -2
  38. data/test/test_fiber_scheduler.rb +41 -1
  39. data/test/test_ssl.rb +85 -0
  40. data/test/test_stream.rb +11 -0
  41. data/test/test_um.rb +445 -11
  42. data/uringmachine.gemspec +1 -7
  43. data/vendor/liburing/examples/send-zerocopy.c +43 -31
  44. data/vendor/liburing/examples/zcrx.c +260 -69
  45. data/vendor/liburing/liburing.spec +1 -1
  46. data/vendor/liburing/src/include/liburing/io_uring.h +12 -0
  47. data/vendor/liburing/src/include/liburing.h +3 -2
  48. data/vendor/liburing/src/liburing-ffi.map +4 -0
  49. data/vendor/liburing/src/liburing.map +4 -0
  50. data/vendor/liburing/src/queue.c +12 -0
  51. data/vendor/liburing/src/register.c +1 -0
  52. data/vendor/liburing/src/setup.c +15 -7
  53. data/vendor/liburing/test/Makefile +8 -4
  54. data/vendor/liburing/test/conn-unreach.c +1 -1
  55. data/vendor/liburing/test/epwait.c +32 -6
  56. data/vendor/liburing/test/io-wq-exit.c +131 -0
  57. data/vendor/liburing/test/iowait.c +1 -1
  58. data/vendor/liburing/test/min-timeout.c +3 -1
  59. data/vendor/liburing/test/open-close.c +39 -0
  60. data/vendor/liburing/test/poll-update-trigger.c +85 -0
  61. data/vendor/liburing/test/recvsend_bundle.c +14 -11
  62. data/vendor/liburing/test/sendzc-bug.c +146 -0
  63. data/vendor/liburing/test/sqe-mixed-nop.c +151 -7
  64. data/vendor/liburing/test/test.h +2 -0
  65. data/vendor/liburing/test/timestamp-bug.c +135 -0
  66. data/vendor/liburing/test/timestamp.c +5 -0
  67. data/vendor/liburing/test/vec-regbuf.c +136 -1
  68. metadata +38 -283
  69. data/vendor/libressl/.github/scripts/changelog.sh +0 -74
  70. data/vendor/libressl/.github/workflows/android.yml +0 -35
  71. data/vendor/libressl/.github/workflows/cifuzz.yml +0 -33
  72. data/vendor/libressl/.github/workflows/cmake-config.yml +0 -98
  73. data/vendor/libressl/.github/workflows/coverity.yml +0 -69
  74. data/vendor/libressl/.github/workflows/emscripten.yml +0 -71
  75. data/vendor/libressl/.github/workflows/fedora-rawhide.yml +0 -39
  76. data/vendor/libressl/.github/workflows/freebsd.yml +0 -71
  77. data/vendor/libressl/.github/workflows/linux.yml +0 -71
  78. data/vendor/libressl/.github/workflows/macos.yml +0 -37
  79. data/vendor/libressl/.github/workflows/release.yml +0 -81
  80. data/vendor/libressl/.github/workflows/rust-openssl.yml +0 -47
  81. data/vendor/libressl/.github/workflows/solaris.yml +0 -37
  82. data/vendor/libressl/.github/workflows/windows.yml +0 -70
  83. data/vendor/libressl/.gitignore +0 -333
  84. data/vendor/libressl/CMakeLists.txt +0 -581
  85. data/vendor/libressl/COPYING +0 -133
  86. data/vendor/libressl/ChangeLog +0 -3280
  87. data/vendor/libressl/FindLibreSSL.cmake +0 -232
  88. data/vendor/libressl/LibreSSLConfig.cmake.in +0 -36
  89. data/vendor/libressl/Makefile.am +0 -60
  90. data/vendor/libressl/Makefile.am.common +0 -20
  91. data/vendor/libressl/OPENBSD_BRANCH +0 -1
  92. data/vendor/libressl/README.md +0 -238
  93. data/vendor/libressl/README.mingw.md +0 -43
  94. data/vendor/libressl/apps/CMakeLists.txt +0 -18
  95. data/vendor/libressl/apps/Makefile.am +0 -5
  96. data/vendor/libressl/apps/nc/CMakeLists.txt +0 -67
  97. data/vendor/libressl/apps/nc/Makefile.am +0 -64
  98. data/vendor/libressl/apps/nc/compat/accept4.c +0 -17
  99. data/vendor/libressl/apps/nc/compat/readpassphrase.c +0 -205
  100. data/vendor/libressl/apps/nc/compat/socket.c +0 -29
  101. data/vendor/libressl/apps/nc/compat/sys/socket.h +0 -30
  102. data/vendor/libressl/apps/ocspcheck/CMakeLists.txt +0 -44
  103. data/vendor/libressl/apps/ocspcheck/Makefile.am +0 -45
  104. data/vendor/libressl/apps/ocspcheck/compat/.gitignore +0 -0
  105. data/vendor/libressl/apps/openssl/CMakeLists.txt +0 -97
  106. data/vendor/libressl/apps/openssl/Makefile.am +0 -108
  107. data/vendor/libressl/apps/openssl/apps_win.c +0 -138
  108. data/vendor/libressl/apps/openssl/certhash_win.c +0 -13
  109. data/vendor/libressl/apps/openssl/compat/clock_gettime_osx.c +0 -26
  110. data/vendor/libressl/apps/openssl/compat/poll_win.c +0 -329
  111. data/vendor/libressl/appveyor.yml +0 -53
  112. data/vendor/libressl/autogen.sh +0 -15
  113. data/vendor/libressl/check-release.sh +0 -86
  114. data/vendor/libressl/cmake_export_symbol.cmake +0 -71
  115. data/vendor/libressl/cmake_uninstall.cmake.in +0 -36
  116. data/vendor/libressl/config +0 -17
  117. data/vendor/libressl/configure.ac +0 -165
  118. data/vendor/libressl/crypto/CMakeLists.txt +0 -863
  119. data/vendor/libressl/crypto/Makefile.am +0 -962
  120. data/vendor/libressl/crypto/Makefile.am.arc4random +0 -46
  121. data/vendor/libressl/crypto/Makefile.am.elf-mips +0 -14
  122. data/vendor/libressl/crypto/Makefile.am.elf-mips64 +0 -14
  123. data/vendor/libressl/crypto/Makefile.am.elf-x86_64 +0 -35
  124. data/vendor/libressl/crypto/Makefile.am.macosx-x86_64 +0 -35
  125. data/vendor/libressl/crypto/Makefile.am.masm-x86_64 +0 -22
  126. data/vendor/libressl/crypto/Makefile.am.mingw64-x86_64 +0 -23
  127. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_darwin.c +0 -60
  128. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_linux.c +0 -62
  129. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_none.c +0 -26
  130. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_windows.c +0 -36
  131. data/vendor/libressl/crypto/arch/loongarch64/crypto_arch.h +0 -21
  132. data/vendor/libressl/crypto/arch/mips/crypto_arch.h +0 -21
  133. data/vendor/libressl/crypto/bn/arch/loongarch64/bn_arch.h +0 -23
  134. data/vendor/libressl/crypto/bn/arch/mips/bn_arch.h +0 -24
  135. data/vendor/libressl/crypto/compat/.gitignore +0 -31
  136. data/vendor/libressl/crypto/compat/arc4random.h +0 -41
  137. data/vendor/libressl/crypto/compat/b_win.c +0 -55
  138. data/vendor/libressl/crypto/compat/bsd-asprintf.c +0 -96
  139. data/vendor/libressl/crypto/compat/crypto_lock_win.c +0 -56
  140. data/vendor/libressl/crypto/compat/explicit_bzero_win.c +0 -13
  141. data/vendor/libressl/crypto/compat/freezero.c +0 -32
  142. data/vendor/libressl/crypto/compat/getdelim.c +0 -78
  143. data/vendor/libressl/crypto/compat/getline.c +0 -40
  144. data/vendor/libressl/crypto/compat/getopt_long.c +0 -528
  145. data/vendor/libressl/crypto/compat/getpagesize.c +0 -18
  146. data/vendor/libressl/crypto/compat/getprogname_linux.c +0 -23
  147. data/vendor/libressl/crypto/compat/getprogname_unimpl.c +0 -7
  148. data/vendor/libressl/crypto/compat/getprogname_windows.c +0 -13
  149. data/vendor/libressl/crypto/compat/posix_win.c +0 -296
  150. data/vendor/libressl/crypto/compat/syslog_r.c +0 -19
  151. data/vendor/libressl/crypto/compat/ui_openssl_win.c +0 -334
  152. data/vendor/libressl/dist.sh +0 -22
  153. data/vendor/libressl/gen-coverage-report.sh +0 -58
  154. data/vendor/libressl/gen-openbsd-tags.sh +0 -20
  155. data/vendor/libressl/include/CMakeLists.txt +0 -61
  156. data/vendor/libressl/include/Makefile.am +0 -79
  157. data/vendor/libressl/include/arch/loongarch64/opensslconf.h +0 -150
  158. data/vendor/libressl/include/arch/mips/opensslconf.h +0 -150
  159. data/vendor/libressl/include/compat/arpa/inet.h +0 -15
  160. data/vendor/libressl/include/compat/arpa/nameser.h +0 -25
  161. data/vendor/libressl/include/compat/cet.h +0 -19
  162. data/vendor/libressl/include/compat/dirent.h +0 -17
  163. data/vendor/libressl/include/compat/dirent_msvc.h +0 -611
  164. data/vendor/libressl/include/compat/endian.h +0 -161
  165. data/vendor/libressl/include/compat/err.h +0 -95
  166. data/vendor/libressl/include/compat/fcntl.h +0 -32
  167. data/vendor/libressl/include/compat/getopt.h +0 -50
  168. data/vendor/libressl/include/compat/limits.h +0 -25
  169. data/vendor/libressl/include/compat/netdb.h +0 -10
  170. data/vendor/libressl/include/compat/netinet/in.h +0 -19
  171. data/vendor/libressl/include/compat/netinet/ip.h +0 -49
  172. data/vendor/libressl/include/compat/netinet/tcp.h +0 -10
  173. data/vendor/libressl/include/compat/poll.h +0 -63
  174. data/vendor/libressl/include/compat/pthread.h +0 -122
  175. data/vendor/libressl/include/compat/readpassphrase.h +0 -44
  176. data/vendor/libressl/include/compat/resolv.h +0 -24
  177. data/vendor/libressl/include/compat/stdint.h +0 -31
  178. data/vendor/libressl/include/compat/stdio.h +0 -65
  179. data/vendor/libressl/include/compat/stdlib.h +0 -57
  180. data/vendor/libressl/include/compat/string.h +0 -98
  181. data/vendor/libressl/include/compat/sys/_null.h +0 -18
  182. data/vendor/libressl/include/compat/sys/ioctl.h +0 -11
  183. data/vendor/libressl/include/compat/sys/mman.h +0 -19
  184. data/vendor/libressl/include/compat/sys/param.h +0 -15
  185. data/vendor/libressl/include/compat/sys/queue.h +0 -536
  186. data/vendor/libressl/include/compat/sys/select.h +0 -10
  187. data/vendor/libressl/include/compat/sys/socket.h +0 -18
  188. data/vendor/libressl/include/compat/sys/stat.h +0 -129
  189. data/vendor/libressl/include/compat/sys/time.h +0 -37
  190. data/vendor/libressl/include/compat/sys/tree.h +0 -1006
  191. data/vendor/libressl/include/compat/sys/types.h +0 -69
  192. data/vendor/libressl/include/compat/sys/uio.h +0 -17
  193. data/vendor/libressl/include/compat/syslog.h +0 -38
  194. data/vendor/libressl/include/compat/time.h +0 -59
  195. data/vendor/libressl/include/compat/unistd.h +0 -83
  196. data/vendor/libressl/include/compat/win32netcompat.h +0 -57
  197. data/vendor/libressl/include/openssl/Makefile.am.tpl +0 -45
  198. data/vendor/libressl/libcrypto.pc.in +0 -28
  199. data/vendor/libressl/libressl.pub +0 -2
  200. data/vendor/libressl/libssl.pc.in +0 -28
  201. data/vendor/libressl/libtls.pc.in +0 -28
  202. data/vendor/libressl/m4/ax_add_fortify_source.m4 +0 -80
  203. data/vendor/libressl/m4/ax_check_compile_flag.m4 +0 -53
  204. data/vendor/libressl/m4/check-hardening-options.m4 +0 -110
  205. data/vendor/libressl/m4/check-libc.m4 +0 -189
  206. data/vendor/libressl/m4/check-os-options.m4 +0 -181
  207. data/vendor/libressl/m4/disable-compiler-warnings.m4 +0 -44
  208. data/vendor/libressl/man/CMakeLists.txt +0 -26
  209. data/vendor/libressl/man/links +0 -2780
  210. data/vendor/libressl/man/update_links.sh +0 -25
  211. data/vendor/libressl/openssl.pc.in +0 -11
  212. data/vendor/libressl/patches/bn_shift.patch +0 -34
  213. data/vendor/libressl/patches/crypto_arch.h.patch +0 -34
  214. data/vendor/libressl/patches/crypto_namespace.h.patch +0 -22
  215. data/vendor/libressl/patches/netcat.c.patch +0 -178
  216. data/vendor/libressl/patches/openssl.c.patch +0 -12
  217. data/vendor/libressl/patches/opensslfeatures.h.patch +0 -49
  218. data/vendor/libressl/patches/patch-amd64-crypto-cpu-caps.c.patch +0 -20
  219. data/vendor/libressl/patches/patch-i386-crypto-cpu-caps.c.patch +0 -20
  220. data/vendor/libressl/patches/speed.c.patch +0 -114
  221. data/vendor/libressl/patches/ssl_namespace.h.patch +0 -21
  222. data/vendor/libressl/patches/tls.h.patch +0 -16
  223. data/vendor/libressl/patches/tls_config.c.patch +0 -15
  224. data/vendor/libressl/patches/win32_amd64_bn_arch.h.patch +0 -28
  225. data/vendor/libressl/patches/windows_headers.patch +0 -80
  226. data/vendor/libressl/scripts/config.guess +0 -1774
  227. data/vendor/libressl/scripts/config.sub +0 -1907
  228. data/vendor/libressl/scripts/i686-w64-mingw32.cmake +0 -9
  229. data/vendor/libressl/scripts/test +0 -210
  230. data/vendor/libressl/scripts/wrap-compiler-for-flag-check +0 -31
  231. data/vendor/libressl/scripts/x86_64-w64-mingw32.cmake +0 -9
  232. data/vendor/libressl/ssl/CMakeLists.txt +0 -183
  233. data/vendor/libressl/ssl/Makefile.am +0 -187
  234. data/vendor/libressl/tests/CMakeLists.txt +0 -970
  235. data/vendor/libressl/tests/Makefile.am +0 -944
  236. data/vendor/libressl/tests/aeadtest.sh +0 -30
  237. data/vendor/libressl/tests/arc4randomforktest.sh +0 -21
  238. data/vendor/libressl/tests/asn1time_small.test +0 -10
  239. data/vendor/libressl/tests/cmake/CMakeLists.txt +0 -52
  240. data/vendor/libressl/tests/cmake/crypto.c +0 -7
  241. data/vendor/libressl/tests/cmake/ssl.c +0 -6
  242. data/vendor/libressl/tests/cmake/tls.c +0 -6
  243. data/vendor/libressl/tests/compat/pipe2.c +0 -186
  244. data/vendor/libressl/tests/dtlstest.sh +0 -28
  245. data/vendor/libressl/tests/evptest.sh +0 -22
  246. data/vendor/libressl/tests/keypairtest.sh +0 -27
  247. data/vendor/libressl/tests/mlkem_tests.sh +0 -39
  248. data/vendor/libressl/tests/ocsptest.bat +0 -25
  249. data/vendor/libressl/tests/ocsptest.sh +0 -23
  250. data/vendor/libressl/tests/openssl.cnf +0 -29
  251. data/vendor/libressl/tests/optionstest.c +0 -381
  252. data/vendor/libressl/tests/pidwraptest.c +0 -85
  253. data/vendor/libressl/tests/pidwraptest.sh +0 -26
  254. data/vendor/libressl/tests/quictest.bat +0 -27
  255. data/vendor/libressl/tests/quictest.sh +0 -30
  256. data/vendor/libressl/tests/renegotiation_test.bat +0 -27
  257. data/vendor/libressl/tests/renegotiation_test.sh +0 -30
  258. data/vendor/libressl/tests/rfc5280time_small.test +0 -10
  259. data/vendor/libressl/tests/servertest.bat +0 -27
  260. data/vendor/libressl/tests/servertest.sh +0 -30
  261. data/vendor/libressl/tests/shutdowntest.bat +0 -27
  262. data/vendor/libressl/tests/shutdowntest.sh +0 -30
  263. data/vendor/libressl/tests/ssltest.bat +0 -32
  264. data/vendor/libressl/tests/ssltest.sh +0 -48
  265. data/vendor/libressl/tests/testdsa.bat +0 -47
  266. data/vendor/libressl/tests/testdsa.sh +0 -57
  267. data/vendor/libressl/tests/testenc.bat +0 -85
  268. data/vendor/libressl/tests/testenc.sh +0 -93
  269. data/vendor/libressl/tests/testrsa.bat +0 -47
  270. data/vendor/libressl/tests/testrsa.sh +0 -57
  271. data/vendor/libressl/tests/testssl.bat +0 -171
  272. data/vendor/libressl/tests/tlstest.bat +0 -27
  273. data/vendor/libressl/tests/tlstest.sh +0 -28
  274. data/vendor/libressl/tls/CMakeLists.txt +0 -125
  275. data/vendor/libressl/tls/Makefile.am +0 -76
  276. data/vendor/libressl/tls/compat/ftruncate.c +0 -17
  277. data/vendor/libressl/tls/compat/pread.c +0 -29
  278. data/vendor/libressl/tls/compat/pwrite.c +0 -29
  279. data/vendor/libressl/update.sh +0 -460
@@ -1,69 +0,0 @@
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
@@ -1,71 +0,0 @@
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
@@ -1,39 +0,0 @@
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
@@ -1,71 +0,0 @@
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
@@ -1,71 +0,0 @@
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
@@ -1,37 +0,0 @@
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 }}"
@@ -1,81 +0,0 @@
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
@@ -1,47 +0,0 @@
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
@@ -1,37 +0,0 @@
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)
@@ -1,70 +0,0 @@
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"