Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.

Commit fdb60f6

Browse files
committed
Merge commit 'd66ea0b3b100664916cbab965e79a870e31ac7fe'
# Conflicts: # src/auth1.c # src/threads/CMakeLists.txt
2 parents 687da7e + d66ea0b commit fdb60f6

245 files changed

Lines changed: 26076 additions & 10023 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.arcconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"phabricator.uri" : "https://bugs.libssh.org/",
3+
"history.immutable": true
4+
}

.clang_complete

Lines changed: 0 additions & 13 deletions
This file was deleted.

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@ cscope.*
77
tags
88
/build
99
/obj*
10-
!.github

.gitlab-ci.yml

Lines changed: 302 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,302 @@
1+
variables:
2+
BUILD_IMAGES_PROJECT: libssh/build-images
3+
FEDORA_BUILD: buildenv-fedora
4+
CENTOS7_BUILD: buildenv-centos7
5+
TUMBLEWEED_BUILD: buildenv-tumbleweed
6+
MINGW_BUILD: buildenv-mingw
7+
DEBIAN_CROSS_BUILD: buildenv-debian-cross
8+
9+
# torture_auth fails on centos7 docker images, so we don't use -DCLIENT_TESTING=ON
10+
centos7/openssl_1.0.x/x86-64:
11+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
12+
script:
13+
- mkdir -p obj && cd obj && cmake3 -DUNIT_TESTING=ON -DCMAKE_BUILD_TYPE=Debug
14+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON
15+
-DWITH_PCAP=ON .. && make -j$(nproc) && ctest --output-on-failure
16+
tags:
17+
- shared
18+
except:
19+
- tags
20+
artifacts:
21+
expire_in: 1 week
22+
when: on_failure
23+
paths:
24+
- obj/
25+
26+
fedora/openssl_1.1.x/x86-64:
27+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
28+
script:
29+
- mkdir -p obj && cd obj && cmake -DCMAKE_BUILD_TYPE=Debug
30+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
31+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON .. &&
32+
make -j$(nproc) && ctest --output-on-failure
33+
tags:
34+
- shared
35+
except:
36+
- tags
37+
artifacts:
38+
expire_in: 1 week
39+
when: on_failure
40+
paths:
41+
- obj/
42+
43+
# Address sanitizer doesn't mix well with LD_PRELOAD used in the testsuite
44+
.fedora/address-sanitizer:
45+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
46+
script:
47+
- mkdir -p obj && cd obj && cmake
48+
-DCMAKE_C_FLAGS="-O2 -g -fsanitize=address"
49+
-DCMAKE_LINK_FLAGS="-fsanitize=address -static-libasan"
50+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
51+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON .. &&
52+
make -j$(nproc) && ctest --output-on-failure
53+
tags:
54+
- shared
55+
except:
56+
- tags
57+
artifacts:
58+
expire_in: 1 week
59+
when: on_failure
60+
paths:
61+
- obj/
62+
63+
fedora/undefined-sanitizer:
64+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
65+
script:
66+
- mkdir -p obj && cd obj && cmake
67+
-DCMAKE_C_FLAGS="-fsanitize=undefined -fsanitize=null -fsanitize=alignment -fno-sanitize-recover"
68+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
69+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON ..
70+
&& make -j$(nproc) && ctest --output-on-failure
71+
tags:
72+
- shared
73+
except:
74+
- tags
75+
artifacts:
76+
expire_in: 1 week
77+
when: on_failure
78+
paths:
79+
- obj/
80+
81+
fedora/static-analysis:
82+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
83+
script:
84+
- export CCC_CC=clang
85+
- export CCC_CXX=clang++
86+
- mkdir -p obj && cd obj && scan-build cmake -DCMAKE_BUILD_TYPE=Debug
87+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
88+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
89+
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang .. &&
90+
scan-build --status-bugs -o scan make -j$(nproc)
91+
tags:
92+
- shared
93+
except:
94+
- tags
95+
artifacts:
96+
expire_in: 1 week
97+
when: on_failure
98+
paths:
99+
- obj/scan
100+
101+
# That is a specific runner that we cannot enable universally.
102+
# We restrict it to builds under the $BUILD_IMAGES_PROJECT project.
103+
freebsd/x86-64:
104+
image:
105+
script:
106+
- mkdir -p obj && cd obj && cmake -DCMAKE_BUILD_TYPE=Debug
107+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
108+
-DUNIT_TESTING=ON .. &&
109+
make && ctest --output-on-failure
110+
tags:
111+
- freebsd
112+
except:
113+
- tags
114+
only:
115+
- branches@libssh/libssh-mirror
116+
- branches@cryptomilk/libssh-mirror
117+
artifacts:
118+
expire_in: 1 week
119+
when: on_failure
120+
paths:
121+
- obj/
122+
123+
fedora/libgcrypt/x86-64:
124+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
125+
script:
126+
- mkdir -p obj && cd obj && cmake -DCMAKE_BUILD_TYPE=Debug
127+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
128+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
129+
-DWITH_GCRYPT=ON .. &&
130+
make -j$(nproc) && ctest --output-on-failure
131+
tags:
132+
- shared
133+
except:
134+
- tags
135+
artifacts:
136+
expire_in: 1 week
137+
when: on_failure
138+
paths:
139+
- obj/
140+
141+
fedora/mbedtls/x86-64:
142+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
143+
script:
144+
- mkdir -p obj && cd obj && cmake -DCMAKE_BUILD_TYPE=Debug
145+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
146+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
147+
-DWITH_MBEDTLS=ON .. &&
148+
make -j$(nproc) && ctest --output-on-failure
149+
tags:
150+
- shared
151+
except:
152+
- tags
153+
artifacts:
154+
expire_in: 1 week
155+
when: on_failure
156+
paths:
157+
- obj/
158+
159+
tumbleweed/openssl_1.1.x/x86-64:
160+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
161+
script:
162+
- mkdir -p obj && cd obj && cmake -DCMAKE_BUILD_TYPE=Debug
163+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
164+
-DKRB5_CONFIG=/usr/lib/mit/bin/krb5-config
165+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON .. &&
166+
make -j$(nproc) && ctest --output-on-failure
167+
tags:
168+
- shared
169+
except:
170+
- tags
171+
artifacts:
172+
expire_in: 1 week
173+
when: on_failure
174+
paths:
175+
- obj/
176+
177+
tumbleweed/openssl_1.1.x/x86:
178+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
179+
script:
180+
- mkdir -p obj && cd obj && cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-m32.cmake
181+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
182+
-DUNIT_TESTING=ON .. &&
183+
make -j$(nproc) && ctest --output-on-failure
184+
tags:
185+
- shared
186+
except:
187+
- tags
188+
artifacts:
189+
expire_in: 1 week
190+
when: on_failure
191+
paths:
192+
- obj/
193+
194+
tumbleweed/undefined-sanitizer:
195+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
196+
script:
197+
- mkdir -p obj && cd obj && cmake
198+
-DCMAKE_C_FLAGS="-fsanitize=undefined -fsanitize=null -fsanitize=alignment -fno-sanitize-recover"
199+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
200+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON ..
201+
&& make -j$(nproc) && ctest --output-on-failure
202+
tags:
203+
- shared
204+
except:
205+
- tags
206+
artifacts:
207+
expire_in: 1 week
208+
when: on_failure
209+
paths:
210+
- obj/
211+
212+
tumbleweed/static-analysis:
213+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
214+
script:
215+
- export CCC_CC=clang
216+
- export CCC_CXX=clang++
217+
- mkdir -p obj && cd obj && scan-build cmake -DCMAKE_BUILD_TYPE=Debug
218+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
219+
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
220+
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang .. &&
221+
scan-build --status-bugs -o scan make -j$(nproc)
222+
tags:
223+
- shared
224+
except:
225+
- tags
226+
artifacts:
227+
expire_in: 1 week
228+
when: on_failure
229+
paths:
230+
- obj/scan
231+
232+
# Unit testing only, no client and pkd testing, because cwrap is not available
233+
# for MinGW
234+
mingw64:
235+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
236+
script:
237+
- Xvfb :1 -screen 0 1024x768x16 -ac +extension GLX +render -noreset -nolisten tcp &
238+
- export DISPLAY=:1
239+
- mkdir -p obj && cd obj && mingw64-cmake -DCMAKE_BUILD_TYPE=Debug
240+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
241+
-DUNIT_TESTING=ON .. &&
242+
make -j$(nproc)
243+
- export WINEPATH=/usr/x86_64-w64-mingw32/sys-root/mingw/bin
244+
- ctest --output-on-failure
245+
tags:
246+
- shared
247+
except:
248+
- tags
249+
artifacts:
250+
expire_in: 1 week
251+
when: on_failure
252+
paths:
253+
- obj/
254+
255+
# Unit testing only, no client and pkd testing, because cwrap is not available
256+
# for MinGW
257+
mingw32:
258+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$MINGW_BUILD
259+
script:
260+
- Xvfb :1 -screen 0 1024x768x16 -ac +extension GLX +render -noreset -nolisten tcp &
261+
- export DISPLAY=:1
262+
- mkdir -p obj && cd obj && mingw32-cmake -DCMAKE_BUILD_TYPE=Debug
263+
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON --DWITH_PCAP=ON
264+
-DUNIT_TESTING=ON .. &&
265+
make -j$(nproc)
266+
- export WINEPATH=/usr/i686-w64-mingw32/sys-root/mingw/bin
267+
- ctest --output-on-failure
268+
tags:
269+
- shared
270+
except:
271+
- tags
272+
artifacts:
273+
expire_in: 1 week
274+
when: on_failure
275+
paths:
276+
- obj/
277+
278+
.Debian.cross.template: &Debian_cross_template
279+
stage: test
280+
image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_CROSS_BUILD
281+
script:
282+
- build=$(dpkg-architecture -qDEB_HOST_GNU_TYPE)
283+
- host="${CI_JOB_NAME#*.cross.}"
284+
- mkdir -p obj && cd obj && cmake
285+
-DCMAKE_C_COMPILER="$(which $host-gcc)"
286+
-DCMAKE_CXX_COMPILER="$(which $host-g++)"
287+
-DCMAKE_BUILD_TYPE=Debug
288+
-DUNIT_TESTING=ON -DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON
289+
-DWITH_PCAP=ON .. && make -j$(nproc)
290+
- ctest --output-on-failure -j$(nproc)
291+
tags:
292+
- shared
293+
except:
294+
- tags
295+
artifacts:
296+
expire_in: 1 week
297+
when: on_failure
298+
paths:
299+
- obj/
300+
301+
Debian.cross.mips-linux-gnu:
302+
<<: *Debian_cross_template

0 commit comments

Comments
 (0)