mkvtoolnix/packaging/debian/control.erb
Moritz Bunkus 9979f76803
Debian packaging: create rules & control with distro/release-specific values
For Ubuntu 22.04 and later the GUI will be built with Qt 6 instead of
Qt 5 due to severe issues with 22.04, Qt 5 and high DPI displays. See
issue #3358 for more information.

Unfortunately Debian's package tooling isn't powerful enough to
express complex dependencies, and it cannot express things based on
the distribution & version the package is built for. The packaging for
Qt 6 requires different libraries than the packaging for Qt 5,
obviously.

The only thing one could do in a single `control` file is using ORed
dependencies such as `libqt6svg6 | libqt5svg5`, but that can lead to
situations where the user has `libqt5svg5` installed, doesn't have
`libqt6svg6` installed, and then MKVToolNix built with Qt 6 will
install just fine but all the icons will be missing as it cannot load
the SVG plugin dynamically.

Therefore the `control` & `rules` files are now built from templates,
and a Ruby script called `packaging/debian/create_files.rb` is used to
create the files from their templates. The user can specify the
distribution & version to create for with command line arguments. If
not specified, the script will attempt to guess the distribution &
version it's running on.

Only Debian ≥ 10 & Ubuntu ≥ 20.04 are supported, same as before.
2022-05-29 17:07:13 +02:00

89 lines
3.6 KiB
Plaintext

<% use_qt6 = (distro == 'ubuntu') && (version >= Gem::Version.new('22.04')) %>
Source: mkvtoolnix
Section: video
Priority: optional
Maintainer: Moritz Bunkus <moritz@bunkus.org>
Homepage: https://mkvtoolnix.download/
Standards-Version: 3.9.5
Build-Depends:
debhelper (>= 9),
rake (>= 10),
zlib1g-dev, libflac-dev, libogg-dev, libvorbis-dev, libgmp-dev, libcmark-dev,
libboost-dev (>= 1.66), libgtest-dev, libfmt-dev (>= 4), libdvdread-dev,
nlohmann-json3-dev, pkg-config, po4a, docbook-xsl, xsltproc,
<% if use_qt6 %>
qt6-base-dev, qt6-base-dev-tools, qt6-multimedia-dev, libqt6svg6-dev
<% else %>
<% if ((distro == 'ubuntu') && (version < Gem::Version.new('20.04'))) || ((distro == 'debian') && (version < Gem::Version.new('11'))) %>
qt5-default,
<% end %>
qtbase5-dev, qtbase5-dev-tools, qtmultimedia5-dev, libqt5svg5-dev
<% end %>
Package: mkvtoolnix
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: mkvtoolnix-gui
Description: Set of command-line tools to work with Matroska files
Matroska is a new multimedia container format, based on EBML (Extensible
Binary Meta Language), which is a kind of binary XML.
These tools allow one to manipulate Matroska files.
* mkvmerge is a tool to create Matroska files from other formats
* mkvinfo allows one to get information about the tracks in a Matroska file
* mkvextract can extract tracks from Matroska files to other formats
* mkvpropedit can edit header and chapter information without remuxing
.
This package only provides command-line tools. For graphical tools, you
should install the mkvtoolnix-gui package.
Package: mkvtoolnix-gui
Architecture: any
Depends: mkvtoolnix (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends},
<% if use_qt6 %>
libqt6svg6, qt6-qpa-plugins | qt6-wayland
<% else %>
libqt5svg5
<% end %>
Suggests: mediainfo-gui
Replaces: mkvtoolnix (<= 4.6.0-1)
Description: Set of tools to work with Matroska files - GUI frontend
Matroska is a new multimedia container format, based on EBML (Extensible
Binary Meta Language), which is a kind of binary XML.
.
The mkvtoolnix-gui tool is a graphical user interface for the mkvmerge
program, which allows one to create Matroska files from other formats.
Package: mkvtoolnix-dbg
Section: debug
Priority: extra
Architecture: any
Depends: mkvtoolnix (= ${binary:Version}), ${misc:Depends}
Description: debugging symbols for mkvtoolnix
Matroska is a new multimedia container format, based on EBML (Extensible
Binary Meta Language), which is a kind of binary XML.
These tools allow one to manipulate Matroska files.
* mkvmerge is a tool to create Matroska files from other formats
* mkvinfo allows one to get information about the tracks in a Matroska file
* mkvextract can extract tracks from Matroska files to other formats
* mkvpropedit can edit header and chapter information without remuxing
.
This package contains the debugging symbols for the command-line tools
of mkvtoolnix.
Package: mkvtoolnix-gui-dbg
Section: debug
Priority: extra
Architecture: any
Depends: mkvtoolnix-gui (= ${binary:Version}), ${misc:Depends}
Description: debugging symbols for mkvtoolnix-gui
Matroska is a new multimedia container format, based on EBML (Extensible
Binary Meta Language), which is a kind of binary XML.
These tools allow one to manipulate Matroska files.
* mkvmerge is a tool to create Matroska files from other formats
* mkvinfo allows one to get information about the tracks in a Matroska file
* mkvextract can extract tracks from Matroska files to other formats
* mkvpropedit can edit header and chapter information without remuxing
.
This package contains the debugging symbols for the GUI of
mkvtoolnix-gui.