diff mbox series

[bug#70407] gnu: Add fnc

Message ID 57b18e1298ae636df0fa11968978adcf227a0cab.1713212712.git.ashish.is@lostca.se
State New
Headers show
Series [bug#70407] gnu: Add fnc | expand

Commit Message

vasilii.smirnov--- via Guix-patches" via April 15, 2024, 8:25 p.m. UTC
From: Ashish SHUKLA <ashish.is@lostca.se>

* gnu/packages/version-control.scm (fnc): New variable.

Change-Id: Idf1cb254c3ae18bacb86bf020511a5d34e2d3684
Signed-off-by: Ashish SHUKLA <ashish.is@lostca.se>
---
 gnu/packages/version-control.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)


base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293

Comments

Daniel Ziltener April 15, 2024, 10:11 p.m. UTC | #1
user guix
usertag 70407 + reviewed-looks-good
thanks

Guix QA review form submission:


Items marked as checked: New package licenses, New package synopsis and 
descriptions
Christopher Baines April 16, 2024, 10:21 p.m. UTC | #2
"ashish.is--- via Guix-patches" via <guix-patches@gnu.org> writes:

> From: Ashish SHUKLA <ashish.is@lostca.se>
>
> * gnu/packages/version-control.scm (fnc): New variable.
>
> Change-Id: Idf1cb254c3ae18bacb86bf020511a5d34e2d3684
> Signed-off-by: Ashish SHUKLA <ashish.is@lostca.se>
> ---
>  gnu/packages/version-control.scm | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
> index 96ca1df552..33607940ec 100644
> --- a/gnu/packages/version-control.scm
> +++ b/gnu/packages/version-control.scm
> @@ -4145,3 +4145,28 @@ (define-public git-sizer
>      (description "Compute various size metrics for a Git repository, flagging
>  those that might cause problems or inconvenience.")
>      (license license:expat)))
> +
> +(define-public fnc
> +  (package
> +    (name "fnc")
> +    (version "0.16")
> +    (source (origin
> +              (method url-fetch)
> +              (uri
> +               (string-append "https://fnc.bsdbox.org/uv/dl/fnc-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     '(#:phases (modify-phases %standard-phases
> +                  (delete 'configure))
> +       #:tests? #f
> +       #:make-flags (list "CC=gcc"
> +			  (string-append "PREFIX=" (assoc-ref %outputs "out")))))

The arguments needed a bit of touching up. Using gexp's is the new
style. It's unclear why the tests are disabled, I guess it's because
there are no tests so I've added a comment to this effect. Hardcoding
CC=gcc also causes problems for cross building, so use (cc-for-target)
instead.

> +    (inputs (list ncurses zlib sqlite-next))
> +    (home-page "https://fnc.bsdbox.org")
> +    (synopsis "Interactive text-based user interface for Fossil")
> +    (description "fnc uses ncurses and libfossil to create a fossil ui experience in
> +the terminal, and parse local changes at the hunk level to prepare atomic commits.")
> +    (license license:isc)))
>
> base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293

I did have a quick check over the source, including a concatenated
sqlite seems unusual and not ideal, but I'm not quite sure how it's
used.

One final change I made was moving the package definition up off the
bottom of the file (as if everyone adds new packages there, it causes
merge conflicts).

I've pushed this to master with the changes I describe as
a45b2c7c63c6af9c42698e12b6809c41c0926de3 so please take a look.

Thanks,

Chris
Ashish April 17, 2024, 9:25 a.m. UTC | #3
On Tue, Apr 16, 2024 at 11:21:26PM +0100, Christopher Baines wrote:
> "ashish.is--- via Guix-patches" via <guix-patches@gnu.org> writes:
> 
> > From: Ashish SHUKLA <ashish.is@lostca.se>
> >
> > * gnu/packages/version-control.scm (fnc): New variable.
> >
> > Change-Id: Idf1cb254c3ae18bacb86bf020511a5d34e2d3684
> > Signed-off-by: Ashish SHUKLA <ashish.is@lostca.se>
> > ---
> >  gnu/packages/version-control.scm | 25 +++++++++++++++++++++++++
> >  1 file changed, 25 insertions(+)
> >
> > diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
> > index 96ca1df552..33607940ec 100644
> > --- a/gnu/packages/version-control.scm
> > +++ b/gnu/packages/version-control.scm
> > @@ -4145,3 +4145,28 @@ (define-public git-sizer
> >      (description "Compute various size metrics for a Git repository, flagging
> >  those that might cause problems or inconvenience.")
> >      (license license:expat)))
> > +
> > +(define-public fnc
> > +  (package
> > +    (name "fnc")
> > +    (version "0.16")
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri
> > +               (string-append "https://fnc.bsdbox.org/uv/dl/fnc-" version ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy"))))
> > +    (build-system gnu-build-system)
> > +    (arguments
> > +     '(#:phases (modify-phases %standard-phases
> > +                  (delete 'configure))
> > +       #:tests? #f
> > +       #:make-flags (list "CC=gcc"
> > +			  (string-append "PREFIX=" (assoc-ref %outputs "out")))))
> 
> The arguments needed a bit of touching up. Using gexp's is the new
> style. It's unclear why the tests are disabled, I guess it's because
> there are no tests so I've added a comment to this effect. Hardcoding
> CC=gcc also causes problems for cross building, so use (cc-for-target)
> instead.

Thanks for catching this, it indeed crossed my mind, but I was not sure what to replace it with should someone chose to build with `clang' (or other C language compiler), and `cc' is not present.

> > +    (inputs (list ncurses zlib sqlite-next))
> > +    (home-page "https://fnc.bsdbox.org")
> > +    (synopsis "Interactive text-based user interface for Fossil")
> > +    (description "fnc uses ncurses and libfossil to create a fossil ui experience in
> > +the terminal, and parse local changes at the hunk level to prepare atomic commits.")
> > +    (license license:isc)))
> >
> > base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293
> 
> I did have a quick check over the source, including a concatenated
> sqlite seems unusual and not ideal, but I'm not quite sure how it's
> used.

libfossil is a library implementation of fossil ships with bundled sqlite3, and the author decide to bundle libfossil, and so sqlite3 comes with it.

> 
> One final change I made was moving the package definition up off the
> bottom of the file (as if everyone adds new packages there, it causes
> merge conflicts).
> 
> I've pushed this to master with the changes I describe as
> a45b2c7c63c6af9c42698e12b6809c41c0926de3 so please take a look.
> 
> Thanks,
> 
> Chris

Thanks!
Christopher Baines April 17, 2024, 10:51 a.m. UTC | #4
Ashish <ashish.is@lostca.se> writes:

> On Tue, Apr 16, 2024 at 11:21:26PM +0100, Christopher Baines wrote:
>> "ashish.is--- via Guix-patches" via <guix-patches@gnu.org> writes:
>>
>> > +    (inputs (list ncurses zlib sqlite-next))
>> > +    (home-page "https://fnc.bsdbox.org")
>> > +    (synopsis "Interactive text-based user interface for Fossil")
>> > +    (description "fnc uses ncurses and libfossil to create a fossil ui experience in
>> > +the terminal, and parse local changes at the hunk level to prepare atomic commits.")
>> > +    (license license:isc)))
>> >
>> > base-commit: a8353e9d6b34fd8d42d2e8f14ce844849fe9c293
>>
>> I did have a quick check over the source, including a concatenated
>> sqlite seems unusual and not ideal, but I'm not quite sure how it's
>> used.
>
> libfossil is a library implementation of fossil ships with bundled
> sqlite3, and the author decide to bundle libfossil, and so sqlite3
> comes with it.

Right, it would be good to package libfossil and unbundle sqlite3 there,
then use that libfossil package here. If libfossil can't use the built
sqlite3 from Guix, then maybe the Guix package source can be used.
diff mbox series

Patch

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 96ca1df552..33607940ec 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -4145,3 +4145,28 @@  (define-public git-sizer
     (description "Compute various size metrics for a Git repository, flagging
 those that might cause problems or inconvenience.")
     (license license:expat)))
+
+(define-public fnc
+  (package
+    (name "fnc")
+    (version "0.16")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "https://fnc.bsdbox.org/uv/dl/fnc-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (delete 'configure))
+       #:tests? #f
+       #:make-flags (list "CC=gcc"
+			  (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+    (inputs (list ncurses zlib sqlite-next))
+    (home-page "https://fnc.bsdbox.org")
+    (synopsis "Interactive text-based user interface for Fossil")
+    (description "fnc uses ncurses and libfossil to create a fossil ui experience in
+the terminal, and parse local changes at the hunk level to prepare atomic commits.")
+    (license license:isc)))