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

WAF not intended to be packaged by original authors #2

Open
azet opened this issue Mar 4, 2016 · 0 comments
Open

WAF not intended to be packaged by original authors #2

azet opened this issue Mar 4, 2016 · 0 comments

Comments

@azet
Copy link

azet commented Mar 4, 2016

https://waf.googlecode.com/svn/wiki/FAQ.wiki

== Why is packaging of waf in distributions discouraged? ==

With most build systems developers need to spend a lot of time and
effort ensuring that their projects will build correctly with many versions
of the build tool they use. This is needed because the developers have
very little control over the age of the distribution that their
package is being built on, and requiring that all people who want to
build their project update to a specific version of the build system
can be a significant burden.

You might think that this problem can be solved by careful design of
the build systems APIs, but history has shown that even with careful
design it is difficult to create a build system that avoids these
problems. For example, the venerable 'autotools' package that is so
widely used by free software packages has never managed to stabilise
its API enough to solve this problem. Many projects use a autogen.sh
script to cope with autotools variants and many others are shipping massive
'configure' scripts (sometimes several MB in size) with their projects
to avoid relying on the version of autotools installed on a users
system being able to work with their project.

The waf script is designed to be small enough to include with your
project, which completely avoids these issues and allows you to take
advantage of the latest additions to waf without ever being concerned
that your users may hit a problem that only happens with an earlier
version of waf.

If waf is packaged with distributions then end users may inadvertently
end up using the distribution version rather than the version that you
have carefully tested with your project.

You do still need a copy of python installed of course, but we have
put a lot of effort into waf to ensure it works well with a wide range
of python versions.

Some distributions (i.e. Debian and forks) won't even accept packages that contain WAF files because they ship binary distributions of software (doesn't matter if built or not - against policy). This is an issue for Open-source projects in general. Which makes me think about why you are using WAF in the first place, as far as I can tell, there's no real reason to use it with such a small project. If you want alternatives to Makefiles you may try https://ninja-build.org/ (fast and easy make(1) replacement) or http://bazel.io/ (made for building large projects comprised of different programming languages). Buy why not use a simple Python script that builds your project, probably a lot less lines of code and work, some projects have been doing this recently with good results. What do you think?

Nice project of course! Wanted to do basically a very similar thing in 2013 but back then I though upstreaming proper patches to XALT might be the better way to go. Though this project convinced me. XALT is beyond repair.

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

No branches or pull requests

1 participant