Subject: bug#26343: [PATCH] gnu: audacity: Update to 2.1.3.

From: Marius Bakke <[email-masked]>
Date: Mon, 03 Apr 2017 00:03:26 +0200

Kei Kebreau <[email-masked]> writes:

> * gnu/packages/audacity.scm (audacity): Update to 2.1.3.
> [source]: Fetch gzipped tar archive instead of a zip archive; add
> snippet to remove time-dependent code; remove unnecessary patch.
> [native-inputs]: Add autoconf, automake and libtool.
> [arguments]: Add autoreconf phase to detect system libraries.
> * gnu/packages/patches/audacity-fix-ffmpeg-binding.patch: Delete patch.
> * gnu/local.mk: Remove reference to removed patch.
> ---
>  gnu/local.mk                                       |  1 -
>  gnu/packages/audacity.scm                          | 25 +++++++++++++----
>  .../patches/audacity-fix-ffmpeg-binding.patch      | 32 ----------------------
>  3 files changed, 20 insertions(+), 38 deletions(-)
>  delete mode 100644 gnu/packages/patches/audacity-fix-ffmpeg-binding.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 68f561e95..f03f50855 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -494,7 +494,6 @@ dist_patch_DATA =						\
>    %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
>    %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
>    %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
> -  %D%/packages/patches/audacity-fix-ffmpeg-binding.patch	\
>    %D%/packages/patches/automake-skip-amhello-tests.patch	\
>    %D%/packages/patches/automake-regexp-syntax.patch		\
>    %D%/packages/patches/automake-test-gzip-warning.patch		\
> diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm
> index a70d0e3a6..a4ac2a6ff 100644
> --- a/gnu/packages/audacity.scm
> +++ b/gnu/packages/audacity.scm
> @@ -23,6 +23,7 @@
>    #:use-module (guix build-system gnu)
>    #:use-module (gnu packages)
>    #:use-module (gnu packages audio)
> +  #:use-module (gnu packages autotools)
>    #:use-module (gnu packages base)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages gtk)
> @@ -39,15 +40,20 @@
>  (define-public audacity
>    (package
>      (name "audacity")
> -    (version "2.1.2")
> +    (version "2.1.3")
>      (source
>       (origin
>         (method url-fetch)
>         (uri (string-append "https://github.com/audacity/audacity/archive"
> -                           "/Audacity-" version ".zip"))
> +                           "/Audacity-" version ".tar.gz"))
>         (sha256
> -        (base32 "1642i9d5cdmqzj6r0qdl2ldnqsvpb08znnczncysi72x6zpvb5qq"))
> -       (patches (search-patches "audacity-fix-ffmpeg-binding.patch"))))
> +        (base32 "11mx7gb4dbqrgfp7hm0154x3m76ddnmhf2675q5zkxn7jc5qfc6b"))
> +       ;; Replace time-dependent strings.
> +       (modules '((guix build utils)))
> +       (snippet
> +        '(substitute* "src/AboutDialog.cpp"
> +           (("__DATE__") "\"2017\"")
> +           (("__TIME__") "\"00:00\"")))))

Now that we're merging core-updates where GCC have been patched to
respect SOURCE_DATE_EPOCH in these macros, this substitution should no
longer be necessary. Can you verify? :)

>      (build-system gnu-build-system)
>      (inputs
>       ;; TODO: Add portSMF and libwidgetextra once they're packaged.  In-tree
> @@ -73,7 +79,10 @@
>         ("lilv" ,lilv)
>         ("portaudio" ,portaudio)))
>      (native-inputs
> -     `(("gettext" ,gettext-minimal)     ;for msgfmt
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)
> +       ("gettext" ,gettext-minimal)     ;for msgfmt
> +       ("libtool" ,libtool)
>         ("pkg-config" ,pkg-config)
>         ("python" ,python-2)
>         ("which" ,which)))
> @@ -90,6 +99,12 @@
>            (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")
>            (string-append "LIBMAD_CFLAGS=-I" libmad "/include")
>            (string-append "LIBMAD_LIBS=-L" libmad "/lib -lmad")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         ;; Ensure the usage of system libraries.
> +         (add-before 'configure 'autoreconf
> +           (lambda _
> +             (zero? (system* "autoreconf" "-vfi")))))

Can you clarify how autoreconf ensures usage of system libraries?
Usually it just re-generates configure scripts and Makefiles from
templates, but should not make any functional difference.

Thanks!