1
0
Fork 0
Commit graph

4310 commits

Author SHA1 Message Date
Patryk Obara
6214b39f9e Revert "Break compilation to test GitHub badges"
This reverts commit 6ae50d77af.
2019-12-01 18:35:25 +01:00
Patryk Obara
b0df1ab1fa Fix badge URLs 2019-12-01 18:30:14 +01:00
Patryk Obara
69963cb6e4 Revert "Test badges sans links"
This reverts commit cfbe33f1fc.
2019-12-01 18:28:26 +01:00
Patryk Obara
cfbe33f1fc Test badges sans links 2019-12-01 18:26:01 +01:00
Patryk Obara
937127b961 Test shields.io badges
It seems like GitHub badges have some caching issues and they do not
work correctly (I have them showing two contradictory statuses,
depending on tab, no matter if I reload page or not).
2019-12-01 18:20:36 +01:00
Patryk Obara
6ae50d77af Break compilation to test GitHub badges 2019-12-01 18:09:00 +01:00
Patryk Obara
563ab75ff2 Remove Coverity badge
This badge is useful link straight to the Coverity report, but Coverity
decides to present the scan results in quite misleading way - mixing
runs from master with runs from other branches.

It's better to show no info at all than to show misleading info.

Link to Coverity scan is accessible in README.md, as a reference [3] in
the comparison table.
2019-12-01 11:19:11 +01:00
Patryk Obara
b05985fab4 Update allowed warnings limits 2019-11-29 06:27:14 +01:00
Patryk Obara
f5b52cb966 Use matrix to simplify Linux workflow
After many iterations, we now have really streamlined workflow file without
duplicated jobs.  It also looks very similar to macOS file.
2019-11-29 06:27:14 +01:00
Patryk Obara
f3b8bff3f5 Remove unused private field in device_EMM 2019-11-29 06:27:14 +01:00
Patryk Obara
e95b6e7063 Remove unused private field in fatFile 2019-11-29 06:27:14 +01:00
Patryk Obara
7afc052550 Silence "unused-const-variable" warning
This register dump looks useful, but it was never used for anything…
2019-11-29 06:27:14 +01:00
Patryk Obara
6325c995d6 Fix "unused-variable" warning 2019-11-29 06:27:14 +01:00
Patryk Obara
5ff1fcd604 Fix "misleading-indentation" warnings
GCC helpfully indicates, that:

warning: this ‘if’ clause does not guard (…) this statement, but
the latter is misleadingly indented as if it were guarded by the ‘if’.

Also, improve readability while we're touching these lines.
2019-11-29 06:27:14 +01:00
Patryk Obara
59edc4d9b5 Change the length of version field in infobox
Otherwise, infobox looks broken when version string has more
than 8 characters.
2019-11-29 06:27:14 +01:00
Patryk Obara
e5234c7802 Use full-width asterisk glyph for README.md notes
Previous glyph (Five Spoked Asterisk) looks great on Linux, but as it
turns out seems to be broken everywhere else.  Use this opportunity to
point out, that SDL 1.2 in general is not being developed any more.

Also, make a correction:
"DOSBox does indicate support" -> "does not"
2019-11-29 06:27:14 +01:00
Patryk Obara
e831d0b090 Remove pointless switch causing warnings 2019-11-29 06:27:14 +01:00
Patryk Obara
19b8902db3 Fix a resource leak
This bug was detected via Coverity static analysis:
Variable tempfile going out of scope leaks the storage it points to.

The leak happens when invalid keyboard layout file is being loaded:

  $ touch xx.kl
  $ dosbox .
  C:\>keyb xx
2019-11-28 21:06:20 +01:00
Patryk Obara
bd6a50e79e Document the project in README.md
Information in comparison table is based on developer testing on Linux
and user reports on Windows.

Remove VS-related info from INSTALL file instead of duplicating it in
README.md.
2019-11-28 13:38:12 +01:00
krcroft
17c4754c34 Contribute a static-opus builder 2019-11-28 09:41:43 +01:00
krcroft
cbdd1f3382 Perform a daily Coverity Scan of the master branch
Details at: https://scan.coverity.com/dashboard

The Coverity software (Roughly 1.5GB worth unpacked from a tarball)
can only be downloaded from an authentication web sessions, so I've
uploaded it to my Google drive and use 'gdown' to pull it inside
the workflow. This sounds ugly, but it's not too bad: Coverity last
updated their software nine months ago, so this will be a once-a-year
change, maybe twice.

The Google drive ID, SHA256 checksum, and other specifics are all
variables at the top YAML, so they're easy to adjust when Coverity
makes their next update. The download, extraction, and sha256
verification are all done in parallel via pipes, and extracting to
/dev/shm. It should be pretty quick. Edit: it is; 4 seconds.

To keep the tarball small, I remove unecessary bits (but this is
optional), before tar & zstd compressing it:
``` bash
rm -rf closure-compiler jars jdk11 jre node support-angularjs
cd bin
rm *java* *js* *php* *python* *ruby*
```
2019-11-28 08:52:13 +01:00
Patryk Obara
301d7c3423 Merge branch 'svn/trunk' r4296 2019-11-26 18:37:09 +01:00
Peter Veenstra
1521b7ad7d Fix bug #519
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4296
2019-11-26 16:52:04 +00:00
krcroft
61a437c27f Override architecture and host for 32-bit windows builds
Noted by vogons.org user jmarsh; thank you.
2019-11-26 16:42:42 +01:00
Peter Veenstra
f1608a2509 Fix bug #520
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4295
2019-11-26 15:30:53 +00:00
Patryk Obara
719536341d Use make's output-sync to prevent log corruption
This works out of the box on Linux and MSYS2, but does not work on
macOS - Xcode supplied make does not support this option, so GNU make is
used instead.

Unfortunately, adding new package on macOS did not invalidate the cache,
this package removes the brew cache from macOS job to avoid this problem
in the future.

Fixes: #53
2019-11-26 04:48:16 +01:00
krcroft
eaeb001b17 Play into subsequent track(s) if playback length exceeds the the current track
Issue reported by Dagar and Pr3tty F1y, and confirmed as a bug by ripsaw8080.
Thank you!

This fixes the GoG release of Betrayal at Krondor which (either due to CD mastering
issues or a faulty rip), requests playback of a given track at the tail end
of the prior track.

In debugging and performing this fix, many debug messages were improved as well
as making some small small code adjustments, such as using iterators to point to
individual tracks (track->attribute) instead of using the tracks array
(tracks[track -1].attribute).
2019-11-24 17:34:54 +01:00
Patryk Obara
90e5e0e82a Update allowed warnings limits
Also, remove leftover limits from builds, that are not enabled on CI
right now.
2019-11-24 17:14:32 +01:00
Patryk Obara
6c42f3adf8 Fix several unused-private-field warnings 2019-11-24 17:14:32 +01:00
Patryk Obara
ef40533d22 Silence 2 switch warnings 2019-11-24 17:14:32 +01:00
Patryk Obara
618ab5ea08 Remove several unused variables in zmbv 2019-11-24 17:14:32 +01:00
Patryk Obara
bdee95848e Silence a number of switch warnings in zmbv 2019-11-24 17:14:32 +01:00
Patryk Obara
723dfdbe46 Silence static analysis false-positive garbage value
Clang static analyzer returned a false-positive issue in line 671:

The right operand of '<' is a garbage value

Variables needed to be moved up, because otherwise initialization
crosses to the next case.
2019-11-24 17:14:32 +01:00
Patryk Obara
f105697165 Silence a number of switch warnings in vga_xga
In total, 28 warnings are removed by adding these few default cases.
2019-11-24 17:14:32 +01:00
Patryk Obara
64671a888c Avoid passing null to strcat
Static analysis indicated an issue, when line was being passed as 2nd
argument to strcat:

Null pointer passed as an argument to a 'nonnull' parameter

Replace repeated strcat with creating a formatted string and use
the opportunity to do a small format cleanup.
2019-11-24 17:14:32 +01:00
Patryk Obara
b344344821 Properly fix warnings about unused variable
A workaround with no-op assignment fools the compiler and static
analyzer, but the proper fix cleans up this code as well.
2019-11-24 17:14:32 +01:00
krcroft
3dd2be0a91 Apply new warnings counts from master 2019-11-24 15:16:44 +01:00
krcroft
30b5246f9f Refactor and expand the CI workflows
- For each OS, builds of the default compiler plus the
  latest-supported compilers are run. When multiple operating systems
  are supported (such as Ubuntu 16.04 and latest), a build on
  the oldest OS using its default compiler is also performed.

- Debug builds are used because they often are more thorough at
  detecting coding issues (debug warning counts are higher).

- Runtime dynamic sanitizers are added and serialized per-compiler.
  Their build and runtime log-files are xz-compressed, and then
  GitHub's asset upload Zips the log directory.

- Each workflow now holds the maximum allowed compiler warnings
  per-build, so we can have tighter control of when new warnings
  are introduced (that would otherwise pass if still below the
  maximum)

- Use of github's new 'cache' feature has been leveraged to restore
  the brew, macports, and msys2 environments to eliminate the
  lenghthy setup times for those environments.  If a new cache
  is needed, then we simply increment the cache `key:` value and
  the next CI run will archive new caches. (Note that GitHub has a
  400MB limit on cache size however they have already said they
  are raising it - so we might be able to cache out longest running
  job which is MSYS+Clang)

- Where it makes sense, multi-line workflow statements have been
  broken out into .github/scripts as files to make the workflow YAML
  leaner and more readable, while giving us a richer environment in
  the scripts.
2019-11-24 15:16:44 +01:00
krcroft
0f11ab8ecb Refactor the build and list-packages scripts
Until now the build and package scripts have supported
several architectures, compilers, build types, package-managers,
and bit-depth targets.

The code might be maintainable if left as-such, however we have plans
to continue expanding the number of architectures (ARM, PPC, ... ),
operating systems (Android, BSDs, ...), and build variations
amung those.

The scripts (regardless of language) would only grow in complexity
as more variations are added. Thus, we needed a solution that can
scale without adding complexity.

To achieve this, the scripts were refactored as follows:
 - all "data" was moved out of code into configuration files
 - A back-end "Automator" engine was written to parse the
   data based on generic variables fed to it by a front-end
   script
 - build.sh and list-packages.sh were re-authored as thin front-end
   scripts that drive the automator
 - Their CLI's were retained so there has been very little change
   needed to the CI invocation lines.  The only changes have been to
   clarify the existing arguments improved based on feedback, ie:
   --build-type release, --build-type debug instead of fast, small
2019-11-24 15:16:44 +01:00
krcroft
fd74aa0720 Allow maximum-issues to be set via command-line
This change allows the maximum issues to be passed in as an argument.
If nothing is passed, then the existing build-in maximum is
used.

Retaining the existing built-in value makes sense for home
users to keep track of their local build (otherwise they would have
to remember the prior number of warnings and pass that value
in for subsequent builds).

Motivation: until now the built-in maximum covers the build permutation
that happens to generate the most warnings versus other builds.
In some cases new warnings may not be cause if they elicit a warning
from the lesser-warning build(s) or compilers, but not in the
maximum-warning build.

This change lets us tighten-down the warning uniquely for each build,
so we can be sure all new warnings are flagged to the developer.
2019-11-24 15:16:44 +01:00
Patryk Obara
e5d43e1b8f Update allowed warnings limit 2019-11-23 18:46:05 +01:00
Patryk Obara
ef144e4bca Merge branch 'svn/trunk' r4294 2019-11-23 18:41:05 +01:00
Peter Veenstra
f923a8e644 a=a can trigger warnings as well. This should be hopefully do the trick.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4294
2019-11-22 07:28:27 +00:00
Patryk Obara
cdc193170c Merge branch 'svn/trunk' r4293 2019-11-21 20:53:21 +01:00
Peter Veenstra
db51b63554 Remove some old code and do an a=a to trick a compiler in non-debug mode
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4293
2019-11-20 07:17:12 +00:00
Peter Veenstra
8cb2e08f31 Refinements of commit 4291, so that precission can be specified as well and less fixed defines are used
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4292
2019-11-19 16:16:06 +00:00
Peter Veenstra
01fe58047e Try to solve the Bitu formatting warning on all supported platforms (both 32 and 64 bit). Did a few places. Still a lot to go. Changed default display of Bitu to be unsigned instead of signed.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@4291
2019-11-18 21:08:57 +00:00
Patryk Obara
c5c0164471 Remove SpeexDSP mention from the documentation 2019-11-16 12:16:35 +01:00
Patryk Obara
8e5f7dd55d Merge branch 'svn/trunk' r4290 2019-11-16 12:14:23 +01:00
Patryk Obara
63c946a79c Update allowed warnings limit 2019-11-16 04:31:19 +01:00