You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
== 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.
The text was updated successfully, but these errors were encountered:
https://waf.googlecode.com/svn/wiki/FAQ.wiki
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.The text was updated successfully, but these errors were encountered: