Subject: Re: [bug#71539] [PATCH] gnu: astyle: Update to 3.5.
From: Maxim Cournoyer <[email-masked]>
To: "Artyom V. Poptsov" <[email-masked]>
Cc: [email-masked]
Date: Sun, 23 Jun 2024 22:18:51 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Artyom,

"Artyom V. Poptsov" <[email-masked]> writes:

> * gnu/packages/code.scm (astyle): Update to 3.5.
>   [source]: Change source archive file name to match the upstream.
>   [arguments]: Remove "modules".  Add "patch-makefile" phase to set
>   the C++ compiler to version c++17 as it is required for the build.
>   Simplify "install-more" file.

Nitpick, there is no hanging indent is for GNU ChangeLogs.

> Change-Id: I8777710d723d22320c288c331645f8d61d5e640e
> ---
>  gnu/packages/code.scm | 28 ++++++++++------------------
>  1 file changed, 10 insertions(+), 18 deletions(-)
>
> diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
> index d6ac8178f3..44edf43db5 100644
> --- a/gnu/packages/code.scm
> +++ b/gnu/packages/code.scm
> @@ -20,6 +20,7 @@
>  ;;; Copyright © 2023 Fries <[email-masked]>
>  ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
>  ;;; Copyright © 2024 Sharlatan Hellseher <[email-masked]>
> +;;; Copyright © 2024 Artyom V. Poptsov <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -823,14 +824,14 @@ (define-public uncrustify
>  (define-public astyle
>    (package
>      (name "astyle")
> -    (version "3.4.8")
> +    (version "3.5")
>      (source
>       (origin
>         (method url-fetch)
>         (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20"
> -                           version "/astyle_"  version "_linux.tar.gz"))
> +                           version "/astyle-"  version ".tar.bz2"))
>         (sha256
> -        (base32 "1ms54wcs7hg1bsywqwf2lhdfizgbk7qxc9ghasxk8i99jvwlrk6b"))))
> +        (base32 "0g4jyp47iz97ld9ac4wb5k59j4cs8dbw4dp8f32bwqx8pyvirz6y"))))
>      (build-system gnu-build-system)
>      (arguments
>       (list
> @@ -839,11 +840,13 @@ (define-public astyle
>        #~(list (string-append "prefix=" #$output)
>                "INSTALL=install"
>                "release" "shared")
> -      #:modules '((guix build gnu-build-system) ;FIXME use %default-modules
> -                  (guix build utils)
> -                  (ice-9 regex))
>        #:phases
>        #~(modify-phases %standard-phases
> +          (add-after 'unpack 'patch-makefile
> +            (lambda _
> +              (substitute* "build/gcc/Makefile"
> +                (("CBASEFLAGS = -Wall -Wextra -fno-rtti -fno-exceptions -std=c\\+\\+11")
> +                 "CBASEFLAGS = -Wall -Wextra -fno-rtti -fno-exceptions -std=c++17"))))

That's breaking our max columns width of 80.  I've broken the long
strings locally.

>            (replace 'configure
>              (lambda _
>                (chdir "build/gcc")))
> @@ -852,12 +855,6 @@ (define-public astyle
>                ;; Libraries and headers aren't installed by default.
>                (let ((include (string-append #$output "/include"))
>                      (lib     (string-append #$output "/lib")))
> -                (define (link.so file strip-pattern)
> -                  (symlink
> -                   (basename file)
> -                   (regexp-substitute #f
> -                                      (string-match strip-pattern file)
> -                                      'pre)))
>                  (mkdir-p include)
>                  (copy-file "../../src/astyle.h"
>                             (string-append include "/astyle.h"))
> @@ -865,12 +862,7 @@ (define-public astyle
>                  (for-each (lambda (l)
>                              (copy-file
>                               l (string-append lib "/" (basename l))))
> -                          (find-files "bin" "^lib.*\\.so"))
> -                (for-each
> -                 (lambda (file)
> -                   (link.so file "(\\.[0-9]+){3}$")  ;.so
> -                   (link.so file "(\\.[0-9]+){2}$")) ;.so.3
> -                 (find-files lib "lib.*\\.so\\..*"))))))))
> +                          (find-files "bin" "^lib.*\\.so"))))))))
>      (home-page "https://astyle.sourceforge.net/")
>      (synopsis "Source code indenter, formatter, and beautifier")
>      (description

The rest LGTM, assuming their build system now takes care of what we
used to be doing manually.

Applied locally, will push shortly.

-- 
Thanks,
Maxim