Most people don't use fuzzshark, so don't waste compute resources
building it. OSS-Fuzz has been updated to always build fuzzshark in
https://github.com/google/oss-fuzz/pull/7373
GitLab Runner 14.8 added a native Arm binary for macOS. It's been
installed on our build machine, so the `arch` calls in the "macOS Arm
Package" job are no longer needed.
We keep our various packaging assets in the "packaging" directory. Move
the Debian assets there. dpkg-buildpackage doesn't seem appear to have a
"debian directory path" option, but symlinking worked in my test
container.
commit^N means the Nth parent of a commit object (after a merge,
for example.) It is not the same as the Nth generation ancestor
(following only the first parents), which is commit~N, or
alternatively commit^^^^^ (N times), or even commit^1^1^1....
(See 'man gitrevisions' for details.)
When the number of commits is N, we want the Nth generation ancestor.
Fixes error messages like:
fatal: ambiguous argument 'HEAD^3': unknown revision or path not
in the working tree.
The Ubuntu APT Package job takes a long time to run. Do so after merging
and add a package test job, similar to the other Linux package builds.
The Latest Clang job has been detecting errors that also affect macOS.
Run it for merge requests. Fix Ubuntu build caching.
Having some options use DISABLE_ and others ENABLE_ is inconsistent
and difficult to remember. Use ENABLE_ instead consistently.
Frame-larger-than remains an exception.
The 32-bit Windows Installer / WiX / .msi packages make up a tiny
percentage of our downloads, and they take a non-trivial amount of time
to create. Stop building them. Ping #17779.
CMake's FindPerl module and our FindNSIS and FindWiX modules can find
perl, makensis, and the various WiX utilities in their default locations
so we don't need to prepopulate our PATH.
Update FindWiX to look for version 3.11.
After switching to Visual Studio's CMake the Windows MR builds started
failing with
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for 'C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_de.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_en.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_es.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_fr.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_it.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_ja_JP.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_pl.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_ru.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_sv.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_tr_TR.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_uk.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_zh_CN.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\9829b32238fa3bcc807b02099e4c1642\qtui_autogen.rule' exited with code -1073741819. [C:\builds\wireshark\wireshark\build\ui\qt\qtui_autogen.vcxproj]
This appears to be caused by
https://gitlab.kitware.com/cmake/cmake/-/issues/22014 which should be
fixed in recent versions of the official CMake distribution.
Qt's documentation recommends using CMAKE_PREFIX_PATH to designate your
Qt installation prefix: https://doc.qt.io/qt-5/cmake-get-started.html.
Do so in GitLab's CI and update the Developer's Guide.
Move the Lintian check from the Ubuntu .dpkg job to the Debian package
job. This should reduce the time it takes to build merge request
pipelines a little bit.
Asciidoctor is now required for packaging. Try to make sure it's
installed on CentOS 8 and openSUSE 15.2. Note that CentOS 8 doesn't have
an Asciidoctor package, which complicates our SPEC.
The openSUSE 15.2 RPM Test step occasionally fails when trying to
retrieve repository metadata. Add "--no-remote" to the zypper install
command in the openSUSE 15.2 RPM Test to match the offline behavior of
our other RPM tests.
display on CI build, the text output (and not xml)
store all cppcheck output files on cppcheck folder
(you need to launch cppcheck twice for generate txt and xml)
Use an apostrophe instead of RIGHT SINGLE QUOTATION MARK in our PDF and
EPUB filenames. Some programs (notably Okular) can't open filenames with
extended characters, at least on Windows.
Rename the .build job to .build-linux and require the "docker" tag. Add
a corresponding .test-linux job and have the Linux test stages extend
it. Update various steps accordingly.
In the Windows merge request build job, don't pass
/consoleloggerparameters:PerformanceSummary;NoSummary to msbuild. It
makes the output more verbose and in turn makes errors more difficult to
find.
We have to use dedicated runners for Windows builds, so create a
separate "if-merged" rule for them which includes only the
wireshark/wireshark repository.
Build WiresharkPortable32 or WiresharkPortable64 as appropriate for our
target platform. Add WiresharkPortable64 steps to the Win64 builder.
Update the Developer's Guide. Fixes#17260.
GitLab CI annoyingly shows "⚙ blocked" in the pipeline UI if you have
any jobs that can be run manually instead of a green checkmark even if
all of the other jobs in the pipeline have passed. It's not clear that
"blocked" means "you can run this manually if needed," so adjust the
Documentation rule so that this doesn't happen.
Move common fuzzing configuration items to .fuzz-ubuntu. Build using
Clang, which is what the Buildbot fuzzers did. Add jobs for fuzzing
using Valgrind and randpkt.
This reverts commit b258f90ce5, which was
an attempt to fix a CI build issue by changing our Qt version. That
didn't fix the issue. Switching from CMake 3.20 to 3.19.8 *did*, which
suggests that we've run into
https://gitlab.kitware.com/cmake/cmake/-/issues/21145
Add a -t option to tools/fuzz-test.sh which lets you specify a maximum
fuzz time.
Add an initial "fuzz-test" job which fuzzes test/captures/* for 5
minutes. To do: Fuzz longer using our capture menagerie and report
failures.
Rename the "docbook" job to "documentation". Make sure we can do syntax
highlighting and produce PDFs. Distribute the docs that we build. Allow
the job to be manually run if we don't update any documentation sources.
Build the wsar_html_zip instead of wsar_html and (re-)publish it at
https://www.wireshark.org/download/docs/. Move the doxygen_all job to
the daily schedule section.
The files we need to submit to Coverity might be too large to upload
over HTTP, so use their URL submission method. We won't have a usable
artifact URL until after each cov-build job runs, so we need to submit
our URLs in separate jobs.
There are three ways to reuse configuration blobs in .gitlab-ci.yml: The
"extends" keyword, YAML anchors, and "!reference" tags. As noted in
https://gitlab.com/gitlab-org/gitlab/-/issues/322992, only the last
method works for job rules. Clean up our common rules and apply them
using "!reference".
It looks like "extends" and YAML anchors don't work for scheduling
rules, at least for the way we're using them. Use explicit rules for
scheduled jobs.
Move commonly-used rules to their own hidden jobs. Use ".if-merged" to
ensure that our production build and test jobs are run automatically in
wireshark/wireshark and can be run manually in forks.
Note the new manual behavior in the Developer's Guide.
Trying to upload cov-build output on Windows is currently failing
because the file is too large. Expose the build file as an artifact and
submit its URL instead.
Switch the recent analysis builds from only/when to rules.
Switch the API reference and VS Code Analysis builds to daily.
Remove a no-longer-useful URL.