Commit Graph

84 Commits

Author SHA1 Message Date
Peter Hutterer
1bced6b2ef Remove media-session from this tree
It is now available as a separate project in
https://gitlab.freedesktop.org/pipewire/media-session

The code required by pw-reservice has moved to src/tools/reserve.{c|h}
2021-10-18 20:44:07 +10:00
Peter Hutterer
6f74dc1375 ci: add a build job for the various session managers we build
We allow those jobs to fail so a theoretical issue in the session
managers doesn't prevent our pipeline from completing.
The failure could however be due to our integration of the session
managers, so failures should still be inspected nonetheless.
2021-10-18 09:19:21 +10:00
Peter Hutterer
bff243d7f3 ci: clarify a debug message
Where MESON_OPTIONS is empty, the single line "Building with" is not
particularly self-explanatory.
2021-10-18 09:19:21 +10:00
Peter Hutterer
6843d1bffb ci: rebuild the ubuntu container to pick up newer ca-certificates
Otherwise git clone fails for the subprojects.
2021-10-18 08:14:56 +10:00
Peter Hutterer
52e6f2883d ci: build the default no-options and the release build jobs with clang too
Just to make sure that works, all other jobs are built with gcc only.
2021-10-12 10:05:19 +10:00
George Kiagiadakis
7e8446e984 coverity: fix multiple source code parse errors
Coverity scans the source code for static analysis, but its parser
has a couple of flaws...
The most common one is the failure to parse deprecation macros in
enum definitions, like:

```
  G_PARAM_PRIVATE GLIB_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME,
                  ^
  SD_JOURNAL_SYSTEM_ONLY _sd_deprecated_ = SD_JOURNAL_SYSTEM /* old name */
                         ^
```

but also recent gcc built-in macros, like:

```
  #if __has_builtin(__builtin_is_constant_evaluated)
      ^
  #if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
      ^
```

The solution is to replace the code with regular expressions at an earlier
stage. This can be configured directly in coverity with cov-configure
2021-09-22 15:17:20 +03:00
Peter Hutterer
c2b11b09f1 ci: bump the Fedora distribution to F34 2021-09-09 09:49:12 +00:00
Peter Hutterer
959d289bca ci: add a check for modules being linked correctly in the doc
A new module requires a \subpage entry in the respective parent page.
Check for that.
2021-09-07 07:52:45 +00:00
Niklāvs Koļesņikovs
e41187d643 man: move from xmltoman to rst2man
xmltoman looks dead and uses XML as well as pulls in a long list of
Perl dependencies. This replaces it with rst2man that has almost no
dependencies beyond Python, which is already required for the Meson
build system.

Naturally rst2man uses reStructuredText and the pages were rewritten
via regex and manual editing to be as close to original XML format
as possible. A few fixes and updates were done too. Most notably a
note was added to indicate that production deployments should not be
starting the session manager via pipewire.conf file.

There's three slight formatting issues/differences:
1. rst2man produces simpler footer.
2. "-f | --foo=value" confuses the parser and it fails to correctly
   add argument specific syntax highlighting to assignment value.
3. XML version had inconsistent use of <arg> and <opt> which has
   been partially addressed. But different manual pages still have
   their differences to what and how is highlighted.
2021-09-03 11:41:45 +00:00
Nils Tonnätt
2488e87fde [CI] Update Meson 2021-08-06 07:56:16 +00:00
Peter Hutterer
5c78cbd356 ci: add a build test for buildtype=release 2021-07-27 10:24:44 +10:00
Peter Hutterer
257fd83f65 Replace Pipewire with PipeWire for consistency
And set up a CI job to check for that.
2021-07-14 16:56:54 +10:00
Peter Hutterer
de394866e3 ci: hook up a valgrind run 2021-07-07 11:03:23 +00:00
George Kiagiadakis
9e0ce7cbd6 ci: install a more recent meson in the ubuntu 20.04 image 2021-06-18 18:06:28 +03:00
Peter Hutterer
3f325819da gitlab CI: add a build job for Ubuntu 20.04
To avoid adding dependencies that may be considered a bit too recent, let's
build on the current Ubuntu LTS.

Unlike the current Fedora job, this is just the default build with no special
options. They can be added by anyone motivated enough to track down the
required package names :)
2021-06-10 20:39:28 +10:00
Arun Raghavan
d95870d8d3 module-echo-cancel: Wire up the webrtc echo canceller
Mostly uses the existing infrastructure, but the webrtc canceller has a
fixed blocksize, so we:

  1. Use the canceller blocksize if configured
  2. Accumulate output data in a ringbuffer
  3. Push out the data in the required chunk size
2021-06-02 17:56:40 -04:00
Peter Hutterer
5bed3f1ff3 ci: hook up shellcheck 2021-05-11 07:01:21 +00:00
Peter Hutterer
7594767cf7 ci: re-order dependencies in alphabetical order 2021-05-11 07:01:21 +00:00
Peter Hutterer
2f78829fda ci: split the build_on_fedora job up into a template and a real job
Let's use a template for the generic case of "building on Fedora"
and a named job for the specific job itself.

The real change here is the artifact handling: by default the artifacts
collected for a .build job are only the meson build logs.

The build_on_fedora job collects the installed files as well (to be used in
the pages job later).
2021-04-15 13:48:25 +10:00
Peter Hutterer
2d8ee2b86d ci: fix the pages job
Regression introduced in 7e741ef983, the
change of BUILD_ID in that commit caused the pages job to break.
Fix it by relying on the same path expansion we use for the artifacts in the
parent job instead of a hardcoded path.
2021-04-15 13:48:25 +10:00
Peter Hutterer
7e741ef983 ci: add build jobs for automatic and custom-tailored options
Simple jobs that run a standard meson build process, once with no options
selected, once with a matrix of various options explicitly enabled or
disabled. This should pick up any accidental build errors.

The CI_JOB_NAME now includes brackets which cause issues in file paths, so
we use the CI_JOB_ID instead as build dir.
2021-04-14 11:04:03 +00:00
Peter Hutterer
b758afbc22 ci: abstract the default build options into a variable
This enables us to have build jobs that set custom meson options instead of
always relying on the default set.
2021-04-14 11:04:03 +00:00
George Kiagiadakis
6c4d27da9f ci: fix command separators in coverity image creation script 2021-03-25 11:54:01 +00:00
George Kiagiadakis
1660afbd97 ci: add coverity pipeline
This is meant to run as a scheduled job with the COVERITY variable set
2021-03-25 11:31:48 +00:00
George Kiagiadakis
e5664a24a5 ci: bump ci-templates and fedora image versions 2021-03-25 11:31:48 +00:00
Thibault Saunier
485bae5eb0 meson: Use feature options everywhere it makes sense 2021-03-10 20:18:34 +00:00
George Kiagiadakis
1b370f2cad ci: enable building most optional features, so that they are tested 2021-03-03 18:57:48 +00:00
George Kiagiadakis
d2c51ed2fc ci: publish generated documentation from master on gitlab pages
https://pipewire.pages.freedesktop.org/pipewire/
2020-05-19 10:05:53 +03:00
George Kiagiadakis
df818f1e8e ci: update to use fdo ci-templates, fedora 32 and preserve less artifacts
+ also improve the build script, stop using make and do a native
meson/ninja build
+ make it easy to add CI for more distributions later, if needed
2020-05-19 09:53:34 +03:00
Jan Koester
6c911993fb fixed yaml file 2020-03-09 09:57:12 +01:00
Pantelis Antoniou
588e9562f9 pwcat: simple native playback/record tool
pwcat is analogous to pacat of PulseAudio which implements
both playback and recording capability.

Only wav files are supported for now, and you can use the
handy pwplay and pwrecord aliases for easy use.

Playback a wav file
  $ pwplay foo.wav

Record a wav file
  $ pwrecord -r 44100 -c 1 -f s16 foo.wav

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-01-27 12:23:15 +01:00
George Kiagiadakis
a81f920fad ci: export XDG_RUNTIME_DIR when running the tests
Recent changes make some tests start an internal pipewire server,
which requires XDG_RUNTIME_DIR to create the socket file
2019-12-13 12:24:58 +00:00
Arun Raghavan
8f1b840979 ci: Automate container building in Gitlab
This removes the need to manually build and push out the Docker images
for the build. This step is now in GitLab CI itself.
2019-11-21 17:24:21 +05:30
Arun Raghavan
44bf0baaa7 ci: Migrate from Travis to GitLab CI
This makes more sense now since we're using FDO GitLab for all the other
development infra.
2019-11-03 15:40:50 +00:00