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

From: Kei Kebreau <[email-masked]>
Date: Sun, 02 Apr 2017 21:48:20 -0400

Marius Bakke <[email-masked]> writes:

> 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? :)
>

It works! \o/

>>      (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!

FFmpeg is not detected if autoreconf doesn't run for some reason. With
this phase, everything is detected like normal.

Also, the audacityteam.org URL leads to another webpage with a seemingly
impermanent link to the tarball*. I get the following:

https://download.fosshub.com/Protected/expiretime=1491206292;badurl=aHR0cDovL3d3dy5mb3NzaHViLmNvbS9BdWRhY2l0eS5odG1s/c9aee3215609f12a03856bbf4732fa9ddcaf0424361dc96c6919a3b6543265bb/Audacity/audacity-minsrc-2.1.3.tar.xz

* Take a look at the following thread to see what happened last time
  with this topic. I'm not getting the 403 errors that I was getting
  before though:
  https://lists.gnu.org/archive/html/guix-devel/2017-01/msg01093.html