1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 23:59:41 +02:00
Dmitry Vedenko 9c8185545d Adds an environment to check, how well Linux builds with system packages
A special mode `audacity_obey_system_dependencies` is added, so the build will fail if we could not build against a system package for some reason. 

The following packages are marked for the local build now:

* **wxWidgets**: Ubuntu lacks support for 3.1.3. We can't build against 3.0 branch.
* **portaudio**: there are issues, that prevent using a system version of portaudio.
* **sqlite3**: Ubuntu package is very dated; we care about the performance and stability.
* **nyquist**: Ubuntu has no package available.
* **vamp**: Ubuntu has no development package available.
* **portmixer**: Ubuntu has no package available.
* **sbsms**: Ubuntu package is very dated; we care about the performance and stability.

We use docker to create a clean build environment. Currently, `pkg-config` is used to locate the system libraries. There are few issues with `pkg-config` on Ubuntu:

* It does not work with `lame` and `portmidi`.
* The packaged files for `id3tag` and `mad` have wrong version.
We fix such cases by copying the 
into `/usr/local/lib`.
2021-05-24 06:53:53 -07:00

66 lines
1.3 KiB
Docker

FROM ubuntu:focal
LABEL maintainer="d.vedenko@audacityteam.org"
LABEL description="A build environment to check the builds for the package maintainers"
LABEL version="3.0"
ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update
RUN apt-get install -y \
build-essential \
python3-minimal \
python3-pip \
g++-9 \
libstdc++-9-dev \
cmake \
git
RUN pip3 install conan
RUN apt-get install -y \
zlib1g-dev \
libgtk2.0-dev \
libasound2-dev \
libavformat-dev \
libjack-jackd2-dev \
libexpat1-dev \
libmp3lame-dev \
libsndfile-dev \
libsoxr-dev \
portaudio19-dev \
libsqlite3-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libid3tag0-dev \
libmad0-dev \
libvamp-hostsdk3v5 \
libogg-dev \
libvorbis-dev \
libflac-dev \
libflac++-dev \
lv2-dev \
liblilv-dev \
libserd-dev \
libsord-dev \
libsratom-dev \
libsuil-dev \
libportmidi-dev \
libportsmf-dev \
libsbsms-dev \
libsoundtouch-dev \
libtwolame-dev \
libssl-dev \
libcurl4-openssl-dev
WORKDIR /audacity
COPY ["build_audacity.sh", "/audacity/"]
# pkg-config is so broken
COPY ["pkgconfig/*", "/usr/local/lib/pkgconfig/"]
CMD ["./build_audacity.sh"]