[pacman-dev] [PATCH 0/2] Building a unified dist tarball for
We currently support both autotools and meson, and each one has a mechanism for generating a distribution tarball which we can upload and sign. But using one won't let you build with the other build system (at least currently). autotools simply doesn't distribute meson bits, and meson will distribute anything checked into git, but not the autogen'ed content that users may well rely on. Here is a patch for each build system, which teaches it how to distribute the other's files. Eli Schwartz (2): autotools: distribute meson files meson: generate the autotools distribution files Makefile.am | 9 ++++++++- autogen.sh | 6 +++++- doc/Makefile.am | 1 + lib/libalpm/Makefile.am | 2 ++ meson.build | 2 ++ scripts/Makefile.am | 2 ++ src/common/Makefile.am | 3 ++- src/pacman/Makefile.am | 2 ++ src/util/Makefile.am | 2 ++ test/pacman/Makefile.am | 1 + test/scripts/Makefile.am | 1 + test/util/Makefile.am | 1 + 12 files changed, 29 insertions(+), 3 deletions(-) -- 2.22.1
If we use make dist to create the official, signed release tarballs,
those will not have meson build files by default since autotools doesn't
know what they are.
Also distribute all src/common/ files. We never strictly needed any of
them to be distributed with autotools, because the dist tarball
dereferences the symlinks (???), but only some of them were being
distributed, and meson needs them to be in the right location as we only
build libcommon from the primary files.
Signed-off-by: Eli Schwartz
For cross-compatibility with autotools, a dist tarball created from
either meson or autotools should have everything needed to build with
either build system. This ensures that all the files which "make dist"
would make available, are available.
In order for this to work, autogen.sh needs to know how to enter the
dist working directory, and fail if it cannot successfully cd or run
autoreconf. (It's fine if patch fails because the patch was already
applied.)
Signed-off-by: Eli Schwartz
On 16/8/19 9:55 am, Eli Schwartz wrote:
For cross-compatibility with autotools, a dist tarball created from either meson or autotools should have everything needed to build with either build system. This ensures that all the files which "make dist" would make available, are available.
In order for this to work, autogen.sh needs to know how to enter the dist working directory, and fail if it cannot successfully cd or run autoreconf. (It's fine if patch fails because the patch was already applied.)
I don't think this is necessary. The transition is from autotools to meson. We need to distribute meson files with autotools until a point comes where we swap to meson. Meson tarballs do not need to distribute autotools files. Allan
On 10/3/19 9:20 PM, Allan McRae wrote:
On 16/8/19 9:55 am, Eli Schwartz wrote:
For cross-compatibility with autotools, a dist tarball created from either meson or autotools should have everything needed to build with either build system. This ensures that all the files which "make dist" would make available, are available.
In order for this to work, autogen.sh needs to know how to enter the dist working directory, and fail if it cannot successfully cd or run autoreconf. (It's fine if patch fails because the patch was already applied.)
I don't think this is necessary. The transition is from autotools to meson. We need to distribute meson files with autotools until a point comes where we swap to meson. Meson tarballs do not need to distribute autotools files.
Fair enough. As long as while both build systems are supported, the dist tarballs which are only ever created by you, are built with the one that distributes both. :D So, "first patch only" it is, I guess. (I still wanted to submit both patches for the sake of completion, but I sort of expected the second to be rejected for this reason.) -- Eli Schwartz Bug Wrangler and Trusted User
participants (2)
-
Allan McRae
-
Eli Schwartz