1
0
Fork 0
Commit graph

101 commits

Author SHA1 Message Date
Patryk Obara
b98cd0f612 Build opusfile libs for macOS snapshots
This is a temporary measure until our buildsystem will be capable of
correctly picking static libraries directly from the OS.
2020-03-08 03:28:37 +01:00
Patryk Obara
69fea29f1e Add macOS release CI job
The builds have all optional features turned off to avoid dealing with
static linking of additional libraries.
2020-03-08 03:28:37 +01:00
Joshua Fern
f2029d71d8 Update copyright dates to 2020 2020-03-07 00:18:01 +01:00
Patryk Obara
f7745adf92 Update allowed warnings limits 2020-03-01 21:23:04 +01:00
Patryk Obara
b639bd7fca Update allowed PVS issues limit 2020-02-25 11:16:13 +01:00
Patryk Obara
73076c341d Update allowed PVS issues limit 2020-02-23 01:40:58 +01:00
Patryk Obara
70680279d1 Update allowed warnings limits 2020-02-19 19:39:46 +01:00
Patryk Obara
6e69228cfb Update allowed PVS issues limit 2020-02-15 21:37:03 +01:00
Patryk Obara
1d5e01f73c Update allowed issues limit 2020-02-15 17:54:46 +01:00
Patryk Obara
89e9e7336f Update issues limit for new clang static analyser
Updated Clang 9.0 just landed in Ubuntu repositories and is now
available via GitHub CI. Static analyser detects many more issues now.
2020-02-14 09:08:11 +01:00
Patryk Obara
e74e52404b Update allowed warnings limits 2020-02-10 03:44:37 +01:00
Patryk Obara
bb794fc2f2 Update allowed warnings limits 2020-02-08 15:15:13 +01:00
krcroft
95dc9db727
Update allowed warnings limits 2020-02-07 00:23:35 -08:00
Patryk Obara
d354727ac5 Update allowed warnings limits 2020-02-06 09:23:18 +01:00
Patryk Obara
c2691b1d4f Update allowed warnings limits 2020-02-03 06:09:39 +01:00
Patryk Obara
08e8bfeec6 Update allowed warnings limits 2020-02-02 15:16:29 +01:00
krcroft
1666275515 Fixup all effc++ warnings 2020-02-02 00:43:24 +01:00
Patryk Obara
2363ef9178 Update allowed issues limit 2020-01-31 15:22:00 +01:00
Patryk Obara
1f86116581 Rename snapshot build artifacts
When uploading builds somewhere (e.g. to Vogons forum), the packages
need to be renamed to include the OS.
2020-01-29 23:51:54 +01:00
krcroft
65d8187595 Test more criteria during PVS analysis
This commit:

- Adds a separate analysis run against the MIRSA (Motor Industry
  Software Reliability Association) criteria, which is extremely
  thorough. This tally is not summarized or considered fatal to the
  workflow. It runs virtually instantly, and the results are very
  interesting; however are too numerous to include in our general
  analysis (ie: over 13,000 issues).

- Changes the PVS summary script output to a tally-per-file instead
  of trying to summarize the nature of the issue, which was mostly
  unhelpful without the full text.

- Adds the full list of possible supressible issue to the report
  directory, so if further suppressions are needed then these will be
  easy to find and use.

- Adds one dr_flac suppression per the resolution here:
  mackron/dr_libs#117
2020-01-29 14:59:50 +01:00
krcroft
5cc2b0047d Stamp the PVS analysis directory with time-and-commit details 2020-01-27 11:30:54 +01:00
krcroft
f6060a5148 Allow Opus CDDA support to be optionally disabled
Adds a `--disable-opus-cdda` flag that explicitly disables support
for Ogg Opus CDDA tracks and in turn avoid the need for the Opus package
dependencies such as the opusfile, opus, and ogg libraries.

This feature does not alter the default operation of ./configure, which
is to enable Opus CDDA support and quit if the Opus dependency package,
opusfile, is not found.  The user can then choose to either a) install
the package or b) explicitly disable Opus support.

This commit also includes:

- fixes for a double-free in the MP3 close routine that
  was discovered during testing

- a message if a CD audio track cannot be added during CDROM
  mounting (such as attempting to use Opus tracks when the binary
  does not support them).

- the --disable-opus-cdda flag in our config heavy workflow
2020-01-27 10:46:21 +01:00
Patryk Obara
d86addb792 Update allowed issues limit 2020-01-22 10:06:03 +01:00
krcroft
508d338c27 Adjust workflow warning and bug counts 2020-01-22 09:40:00 +01:00
krcroft
5777fb97fe Ignore PVS-Studio false-positives 2020-01-22 01:04:53 +01:00
Patryk Obara
f1f78df57c Disable screenshots in Linux snapshot builds again
Problem with libpng12/libpng16 strikes again - Steam Runtime is missing
libpng16, so users who want to test dosbox-staging via Steam are not
able to start it.

This is the only library, that needs to be disabled - all other
dependencies are included in Steam Runtime and work fine.
2020-01-17 06:03:06 +01:00
krcroft
9df802fd56 Count the bugs reported by PVS-Studio 2020-01-15 18:30:45 +01:00
krcroft
5f6d072a69 Set BASH shell in Config Heavy's commit-check
The commit-check step run a bash script however its `shell:`
directive was unset, meaning that under Windows the script
would be executed by PowerShell. This commit fixes this by
explicitly setting `shell: bash`.
2020-01-14 23:04:44 +01:00
krcroft
6e97004b62 Unify Windows installations
The commit switches from installing gcc or clang under Windows to
simply always installing clang (which also installs gcc as a dependency).
This ensures that cache's produced from a gcc-specific builds will
be compatible with clang builds.
2020-01-14 04:59:32 +01:00
Patryk Obara
fb14b7ae5f
Re-create MSYS2 cache for Windows workflow 2020-01-13 03:46:04 +01:00
krcroft
d56afec70b Only run config heavy if our repo has commits 2020-01-13 00:26:11 +01:00
Patryk Obara
d859decccb Update allowed warnings limits 2020-01-11 20:52:55 +01:00
krcroft
35bebab0e6 Cache the PVS-Studio package 2020-01-11 20:10:43 +01:00
krcroft
5885ba0851 Add PVS-Studio to our static-analysis workflow
PVS-Studio is a tool for detecting bugs and security weaknesses in the
source code of programs, written in C, C++, C# and Java. It works under
64-bit systems in Windows, Linux and macOS environments, and can analyze
source code intended for 32-bit, 64-bit and embedded ARM platforms.

https://www.viva64.com/en/pvs-studio/

It's very easy to setup and run headless on Linux; although on Windows I
couldn't find instruction describing how to automate the install.

It quickly generates a relatively unique set of issues versus those
reported by Clang's and Coverity's checkers, so it's valuable in that
regard.

Output can be customized in various formats (stdout, gcc-error format,
or HTML), and it produces a nice summary of results that (for a later PR)
we can capture and compare against a maximum warning count similar
to our other checkers.

This PR generates a full HTML report with embedded source snippets,
which are uploaded as a zipped asset.
2020-01-11 20:10:43 +01:00
Patryk Obara
eaf6970dbd Update allowed warnings limits 2020-01-09 22:50:47 +01:00
krcroft
a9c2f3680f Create a combined Clang+GCC cache under Windows
GitHub's ongoing issue of limitting the cache size has recently
been fixed (https://github.com/actions/cache/issues/6), so this
PR create a combined Clang+GCC cache for separate 32-bit and 64-bit
architectures under Windows.
2020-01-07 23:41:46 +01:00
krcroft
312a763509 Verify Markdown documents in linting workflow
Also re-order to perform shellcheck first because it
requires the least installation work compared to pylint
and markdownlint.  The reason being if we're going to fail
during shellcheck, then we fail faster (and leave heavier
tasks for further down the line).
2020-01-07 19:28:12 +01:00
krcroft
82622ffda1 Reinstate Coverity scanning 2020-01-03 16:55:22 +01:00
Patryk Obara
cac7ba136c Update allowed warnings limits 2019-12-29 08:12:28 +01:00
Patryk Obara
9d04beaea4 Update allowed warnings limits 2019-12-26 03:23:19 +01:00
Patryk Obara
6a0d712404 Re-enable screenshots feature for snapshot builds
With SDL2 in place, the silent dependency on libpng12 on Ubuntu 16.04 is
now gone. Unfortunately, development packages for libpng16 are named
differently for Ubuntu 16.04 and 18.04, so we can't add new package to
the global list.
2019-12-26 03:23:19 +01:00
Patryk Obara
44c7fb9165 Update CI to target SDL2 2019-12-26 03:23:19 +01:00
krcroft
12ab0da9c8 Adjust time at which "Config heavy" runs
An unfortunately pattern has emerged where Chocolately's repository
servers have been offline or returning error-codes at roughly
5am GMT.

This commit moves the start inside "office hours" for the
majority of Chocolatey's user-base:
 - 9am in California & Vancouver
 - 11am in New York
 - 4pm in London
 - 5pm in Poland and Germany
2019-12-19 20:01:32 +01:00
Patryk Obara
15c694af21 Update allowed warnings limits 2019-12-19 00:09:44 +01:00
krcroft
12ee84cfd4 Fixed --enabled-debug on Windows MSYS2
This fixes the prior logic that relies on the (*)curses library
and header existing in compiler-derived default locations
such as /usr/include, and /usr/lib. However, if the package manager
happens to not install them there, then they will not be found
and the check will fail.

Four scenarios:
1. `./configure` or `./configure --enable-debug=no` produce:
    (no mention of debugger; configure continues)

2. `./configure --enable-debug=wrong` produces:
    configure: error: --enable-debug=wrong was requested but the value "wrong" is invalid
    (terminates with exit code 1)

3. `./configure --enable-debug` produces:

    config.h:
    defines C_DEBUG 1

    With only ncurses library installed:

    configure: debugger was requested, finding curses library ...
    checking for NCURSES... yes
    configure: debugger enabled using the ncurses library

    Makefile:
    CPPFLAGS = ... -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -I/usr/local/ncurses ...
    LIBS = ...  -L/usr/local/ncurses -lncurses -ltinfo ...

    With only ncursesw installed:

    configure: debugger was requested, finding curses library ...
    checking for NCURSES... no
    checking for NCURSESW... yes
    configure: debugger enabled using the ncursesw library

    Makefile:
    CPPFLAGS = ... -I/opt/ncursesw ...
    LIBS = ... -L/opt/ncursesw -lncursesw ...

    With only pdcurses isntalled:

    configure: debugger was requested, finding curses library ...
    checking for NCURSES... no
    checking for NCURSESW... no
    checking for PDCURSES... yes
    configure: debugger enabled using the pdcurses library

    Makefile:
    CPPFLAGS = ... -I/usr/local/pdcurses ...
    LIBS = ...  -L/usr/local/pdcurses -lpdcurses -ltinfo ...

    Without any curses library installed:

    configure: debugger was requested, finding curses library ...
    checking for NCURSES... no
    checking for NCURSESW... no
    checking for PDCURSES... no
    configure: error: Package requirements were not met:
    <pkg-info prints info about missing package>
    (terminates with exit code 1)

4. `./configure --enable-debug=heavy` produces same as above, but:

    config.h:
    defines C_DEBUG 1
    defines C_HEAVY_DEBUG 1

    The configure message mentions heavy, for example:

    configure: debugger was requested, finding curses library ...
    checking for NCURSES... yes
    configure: debugger with heavy debugging enabled using the ncurses library
2019-12-14 17:51:11 +01:00
Patryk Obara
ba88bd97d7 Avoid libpng 1.2 dependency for Ubuntu releases
This is a temporary fix for Ubuntu-based distributions. When SDL1 will
be replaced by SDL2, we'll be able to revert this change.

Fixes: #84
2019-12-12 22:52:19 +01:00
krcroft
3a930b639e Pull the entire repo for release bulds 2019-12-12 21:17:34 +01:00
krcroft
c11ef240b3 Back-out change for the release build (?) 2019-12-12 21:17:34 +01:00
krcroft
d698586779 Only checkout the target branch 2019-12-12 21:17:34 +01:00
krcroft
d22d48b527 Add all OSes to the workflow 2019-12-11 20:30:19 +01:00