Skip to content
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

Work to be done to move to Meson build by default #15048

Open
8 of 26 tasks
omoerbeek opened this issue Jan 17, 2025 · 5 comments
Open
8 of 26 tasks

Work to be done to move to Meson build by default #15048

omoerbeek opened this issue Jan 17, 2025 · 5 comments

Comments

@omoerbeek
Copy link
Member

omoerbeek commented Jan 17, 2025

Timeline: the goal is to ave this done end of Q2 2025.

We (that is I) will start with distr tarball for recursor, and we'll use the experience with that case for the other products.
We should not be too hesitant to add (new) build dependencies, especially for tools that are very common, like python (already used by Meson itself), flex or bison.

In the meantime the other task (mostly in CI itself) can also be tackled.

When we have all subtasks below done, and all three products have branched, we wil be free to start to deprecate autotools and at one point maybe even remove them.

  • Basic build for a developer
    • auth
    • dnsdist (there is a not yet merged PR)
    • rec
  • Unit test build and run from Meson
    • auth
    • dnsdist
    • rec
  • Docs build
    • auth
    • dnsdist
    • rec
  • CI build and test all
    • auth
    • dnsdist
    • rec
  • CI Use results of Meson "build and test all" for unit tests
    • auth
    • dnsdist
    • rec
  • CI Use results of Meson "build and test all" for regression tests
    • auth
    • dnsdist
    • rec
  • Dist tarball (there are differences between Meson approach and autotools approach, see discussion below)
    • auth
    • dnsdist
    • rec
  • CI package building
    • auth
    • dnsdist
    • rec
  • CI Docs Build and publishing
  • Inventory of potential third party issues?
@eli-schwartz
Copy link
Contributor

  • Dist tarball (there are conflicts between Meson approach and autotools approach, Meson wants all files in git, no "pre-generate" step)

This is not precisely accurate. You can create files in the dist tarball using meson.add_dist_script().

Unifying this between from-git builds and from-dist-tarball builds could perhaps use a bit of polish from the meson side. You can run ninja targets for e.g. built sources you want to be functional even without generator tools installed (manpages, doxygen, flex/bison...) from the dist script and copy the built results into the dist staging root, and then use an if/else to see if the file exists in the source tree and directly use it -- I've wanted to provide methods for automatically handling this for a while but never gotten around to it.

@omoerbeek
Copy link
Member Author

This is not precisely accurate. You can create files in the dist tarball using meson.add_dist_script().

Thanks, I understood earlier that there was no such facility. One of the goals is to have some files pregenerated in the dist tarball, to make life easier (because of less build dependencies) for package builders.

@eli-schwartz
Copy link
Contributor

Excellent, you should be good to go then with a bit of work. Feel free to ping me for review.

@jsoref
Copy link
Contributor

jsoref commented Jan 21, 2025

I wonder if https://mesonbuild.com/Creating-releases.html should include a note about meson.add_dist_script().

@omoerbeek
Copy link
Member Author

omoerbeek commented Jan 21, 2025

I wonder if https://mesonbuild.com/Creating-releases.html should include a note about meson.add_dist_script().

I'd say so, as it suggests there's no way to do extra work before creating the tarball and https://mesonbuild.com/Creating-releases.html#autotools-dist-vs-meson-dist also gives no clue you could.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants