From 4481a7e2c5d21848e48d4d32666350121b9c06d0 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Sun, 5 Oct 2025 15:09:07 +0100 Subject: [PATCH] gnu: Deprecate python-waf. * gnu/packages/build-tools.scm (waf): New variable, based on python-waf. [synopsis]: Improve it, remove mentioning of Python to reduce confusion level that it's just to build Python projects. [description]: Improve it, remove mentioning of Python, add a list features from the project's README. (python-waf): Deprecate variable in favor of waf * gnu/packages/audio.scm (lvtk-1,ttl2c)[native-inputs]: Remove python-waf; add waf. * gnu/packages/fltk.scm (ntk): Likewise. * gnu/packages/music.scm (non-sequencer, non-sequencer-manager, non-mixer, non-timeline): Likewise. * gnu/packages/ntp.scm (ntpsec): Likewise. * gnu/packages/wxwidgets.scm (python-wxpython): Likewise. Change-Id: I88686c20e1de8f60a4a6c9bd70fdafe8fe4f0b93 --- gnu/packages/audio.scm | 8 ++++---- gnu/packages/build-tools.scm | 35 ++++++++++++++++++++++++++++++----- gnu/packages/fltk.scm | 2 +- gnu/packages/music.scm | 10 +++++----- gnu/packages/ntp.scm | 2 +- gnu/packages/wxwidgets.scm | 2 +- 6 files changed, 42 insertions(+), 17 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 1da6e77194..30fe32f23d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -3922,10 +3922,10 @@ software.") `(modify-phases %standard-phases (add-before 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) - (let ((waf (assoc-ref inputs "python-waf"))) + (let ((waf (assoc-ref inputs "waf"))) (copy-file (string-append waf "/bin/waf") "waf"))))))) (inputs (list boost)) - (native-inputs (list python-waf)) + (native-inputs (list waf)) (home-page "https://github.com/lvtk/ttl2c") (synopsis "Turtle to C header conversion utility for LV2 plugins") (description @@ -4033,10 +4033,10 @@ lv2-c++-tools.") `(modify-phases %standard-phases (add-before 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) - (let ((waf (assoc-ref inputs "python-waf"))) + (let ((waf (assoc-ref inputs "waf"))) (copy-file (string-append waf "/bin/waf") "waf"))))))) (inputs (list boost gtkmm-2 lv2)) - (native-inputs (list pkg-config python-waf)) + (native-inputs (list pkg-config waf)) (home-page "https://github.com/lvtk/lvtk") (synopsis "C++ libraries for LV2 plugins") (description diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 0b22b8a7ba..a545450534 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -1239,9 +1239,9 @@ the POSIX make utility and allows writing a build script in Guile Scheme.") (license license:expat)))) -(define-public python-waf +(define-public waf (package - (name "python-waf") + (name "waf") (version "2.0.19") ;TODO: newer version brakes API (source (origin @@ -1270,8 +1270,33 @@ Scheme.") ;; waf breaks when it is wrapped. (delete 'wrap)))) (home-page "https://waf.io/") - (synopsis "Python-based build system") + (synopsis "Multi-level general purpose build system") (description - "Waf is a Python-based framework for configuring, compiling and -installing applications.") + "Waf is a build system framework for configuring, compiling and +installing applications. + +Features: +@itemize +@item Automatic build order: the build order is computed from input and output +files, among others +@item Automatic dependencies: tasks to execute are detected by hashing files +and commands +@item Performance: tasks are executed in parallel automatically, the startup +time is meant to be fast (separation between configuration and build) +@item Flexibility: new commands and tasks can be added very easily through +subclassing, bottlenecks for specific builds can be eliminated through dynamic +method replacement +@item Extensibility: though many programming languages and compilers are +already supported by default, many others are available as extensions +@item IDE support: Eclipse, Visual Studio and Xcode project generators +(waflib/extras/) +@item Documentation: the application is based on a robust model documented in +The Waf Book and in the API docs +@item Python compatibility: cPython 2.7 to 3.x, Jython 2.7 and PyPy +@end itemize") (license license:bsd-3))) + +;; waf is the final program no need to prefix it with "python-", the same way +;; as meson or ninja which are written in Python as well. +(define-public python-waf + (deprecated-package "python-waf" waf)) diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index bc3ad56864..b442b937da 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -148,7 +148,7 @@ UI builder called FLUID that can be used to create applications in minutes.") (inputs `(("libjpeg" ,libjpeg-turbo) ("glu" ,glu) - ("waf" ,python-waf))) + ("waf" ,waf))) ;; ntk.pc lists "x11" and "xft" in Requires.private, and "cairo" in ;; Requires. (propagated-inputs diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 50a66bc3a5..92932ee527 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1855,12 +1855,12 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.") (modify-phases %standard-phases (add-before 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) - (let ((waf (assoc-ref inputs "python-waf"))) + (let ((waf (assoc-ref inputs "waf"))) (copy-file (string-append waf "/bin/waf") "waf"))))))) (inputs (list jack-1 libsigc++-2 liblo ntk)) (native-inputs - (list python-waf pkg-config)) + (list waf pkg-config)) (home-page "https://non.tuxfamily.org/wiki/Non%20Sequencer") (synopsis "Pattern-based MIDI sequencer") (description @@ -1907,7 +1907,7 @@ session can be interrupted and easily resumed at a later time.") (inputs (list jack-1 liblo ntk)) (native-inputs - (list python-waf pkg-config)) + (list waf pkg-config)) (home-page "https://non.tuxfamily.org/nsm/") (synopsis "Audio session management") (description @@ -1928,7 +1928,7 @@ communicate with the session management daemon.") (inputs (list jack-1 liblo ladspa lrdf ntk lv2 lilv)) (native-inputs - (list python-waf pkg-config)) + (list waf pkg-config)) (home-page "https://non.tuxfamily.org/wiki/Non%20Mixer") (synopsis "Modular digital audio mixer") (description @@ -1950,7 +1950,7 @@ studio.") (inputs (list jack-1 liblo libsndfile ntk)) (native-inputs - (list python-waf pkg-config)) + (list waf pkg-config)) (home-page "https://non.tuxfamily.org/wiki/Non%20Timeline") (synopsis "Modular digital audio timeline arranger") (description diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 88bb2585de..fed16fc199 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -250,7 +250,7 @@ computers over a network.") m4 pkg-config pps-tools - python-waf + waf ruby-asciidoctor/minimal)) (inputs (cons* gpsd openssl ;; Build with POSIX capabilities and syscall filtering diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index eb34ba74bc..37c99b31a2 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -358,7 +358,7 @@ except ImportError: (inputs (list gtk+ wxwidgets)) (native-inputs - (list pkg-config python-setuptools python-waf)) + (list pkg-config python-setuptools waf)) (propagated-inputs (list python-numpy python-pillow python-six)) (home-page "https://wxpython.org/")