-
Notifications
You must be signed in to change notification settings - Fork 922
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rec: allow use of meson to create dist file #15076
Conversation
Pull Request Test Coverage Report for Build 13134799115Details
💛 - Coveralls |
Dir compare shows that the meson tarball has some extra files. The question is if we want to have these files in the meson tarball as well. They would require ragel and python as abuild dep. I'd say include in tarball for ragel and nope for python generated files.
|
07127ce
to
b1d114d
Compare
gitignore files can be excluded pretty easily: #15078 |
bd23dda
to
6cb9deb
Compare
Current state is that this shows there are a few files missing form the autotools tarball (files not essential for building, but still...). For the rest extra files in meson tarball are 1) files needed for meson to work 2) files that wil be skipped by #15078
|
Co-authored-by: Peter van Dijk <peter.van.dijk@powerdns.com>
6cb9deb
to
6f2c896
Compare
And after a rebase to pick up #15078:
All mentioned |
It looks quite good, nice work! |
recursor-lsan.supp export-ignore | ||
recursor-tsan.supp export-ignore |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth keeping these in and setting it up so that meson sanitizer builds automatically use them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At some point yes, but for now my goal is to produce a valid distfile. Extra features can be done later.
gen-version now being a copy instead of a symlink is intended? |
yes, as mentioned in the PR header: "To bootstrap, a few symlinks are replaced in git by actual files, as the project clause needs them before the dist script is run." The root cause is the partial checkout, any symlink into the parent is dangling. The dist script fixes that, but for the |
Alright. I wonder if we should add a CI check that makes sure the multiple copies of the script are still identical. Other than that, I'll approve :) |
I could do that in meson when building. That way any violator will get a notice asap and doesn't need to wait for CI. |
We already have several version in-tree: in
|
oh no anyway |
Check added. But we need to review the |
# Get the dereffed symbolic links (the actual files being pointed to) from the source dir | ||
# Extract them over the existing symbolic links | ||
tar -C "$MESON_SOURCE_ROOT" -hcf - $symlinks | tar -xf - -C "$MESON_PROJECT_DIST_ROOT" | ||
tar -C "$MESON_SOURCE_ROOT" -Hcf - $symlinks | tar -xf - -C "$MESON_PROJECT_DIST_ROOT" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the uppercase H intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope, stray edit, thanks
464ae07
to
4b02618
Compare
Short description
Draft as I need to double check the differences between the the autotool generated tarball and meson generated tarball.
meson dist -C yourbuilddir --formats bztar
gets you the tarball.Meson dist uses a partial checkout of the tree for subprojects (as rec is), so symlinks into the parent are dangling. There is a dist script to fix those.
To bootstrap, a few symlinks are replaced in git by actual files, as the
project
clause needs them before the dist script is run.Next, after the dist dir is created, we replace the remaining symlinks into the rest of the tree by the actual files using some tar magic in the dist script.
I checked the produced tarball can be used to build both using meson and autotools.
version.sh
script from meson docs: https://mesonbuild.com/Creating-releases.html#cement-a-version-obtained-from-vcsChecklist
I have: