Re: git: 1f1b52823126 - main - math/pcalc: New port: Command line util for doing hex/dec/oct/bin math quickly

From: Jason E. Hale <jhale_at_freebsd.org>
Date: Fri, 21 Feb 2025 10:29:15 UTC
On Fri, Feb 21, 2025 at 2:04 AM Yuri Victorovich <yuri@freebsd.org> wrote:
>
> The branch main has been updated by yuri:
>
> URL: https://cgit.FreeBSD.org/ports/commit/?id=1f1b52823126722ceb9cd8c0275dbf563cef9f5a
>
> commit 1f1b52823126722ceb9cd8c0275dbf563cef9f5a
> Author:     Paco Pascal <me@pacopascal.com>
> AuthorDate: 2025-02-21 06:24:54 +0000
> Commit:     Yuri Victorovich <yuri@FreeBSD.org>
> CommitDate: 2025-02-21 07:04:34 +0000
>
>     math/pcalc: New port: Command line util for doing hex/dec/oct/bin math quickly
>
>     PR:             284557
> ---
>  math/Makefile                   |  1 +
>  math/pcalc/Makefile             | 31 +++++++++++++++++++++++++++++++
>  math/pcalc/distinfo             |  3 +++
>  math/pcalc/files/patch-Makefile | 24 ++++++++++++++++++++++++
>  math/pcalc/pkg-descr            | 10 ++++++++++
>  5 files changed, 69 insertions(+)
>
> diff --git a/math/Makefile b/math/Makefile
> index eb554da4be4e..d12761d67496 100644
> --- a/math/Makefile
> +++ b/math/Makefile
> @@ -873,6 +873,7 @@
>      SUBDIR += paritwine
>      SUBDIR += parmetis
>      SUBDIR += parmgridgen
> +    SUBDIR += pcalc
>      SUBDIR += pdal
>      SUBDIR += pear-Math_BigInteger
>      SUBDIR += pear-Math_Combinatorics
> diff --git a/math/pcalc/Makefile b/math/pcalc/Makefile
> new file mode 100644
> index 000000000000..9951dd1e6d45
> --- /dev/null
> +++ b/math/pcalc/Makefile
> @@ -0,0 +1,31 @@
> +PORTNAME=      pcalc
> +DISTVERSIONPREFIX=     v
> +DISTVERSION=   5
> +CATEGORIES=    math
> +
> +MAINTAINER=    me@pacopascal.com
> +COMMENT=       Command line util for doing hex/dec/oct/bin math quickly
> +WWW=           https://vapier.github.io/pcalc/
> +
> +LICENSE=       GPLv2
> +LICENSE_FILE=  ${WRKSRC}/COPYING
> +
> +USES=          bison gmake
> +USE_GITHUB=    yes
> +GH_ACCOUNT=    vapier
> +
> +PORTDOCS=      EXAMPLE README.md SYNTAX.md
> +OPTIONS_DEFINE=        DOCS
> +
> +PLIST_FILES=   bin/pcalc
> +
> +TEST_TARGET=   check
> +
> +post-install:
> +       @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/pcalc
> +

post-install target should come after do-install* targets.

> +do-install-DOCS-on:
> +       @${MKDIR} ${STAGEDIR}${DOCSDIR}
> +       cd ${WRKSRC} && ${INSTALL_MAN} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}

${INSTALL_DATA} would be more appropriate here rather than ${INSTALL_MAN}.

> +
> +.include <bsd.port.mk>
> diff --git a/math/pcalc/distinfo b/math/pcalc/distinfo
> new file mode 100644
> index 000000000000..a5aedb753cd1
> --- /dev/null
> +++ b/math/pcalc/distinfo
> @@ -0,0 +1,3 @@
> +TIMESTAMP = 1738694896
> +SHA256 (vapier-pcalc-v5_GH0.tar.gz) = 6a557bdb315ae4552e58efd80b94b372e4e10199e80148fe796dc325750302c8
> +SIZE (vapier-pcalc-v5_GH0.tar.gz) = 26563
> diff --git a/math/pcalc/files/patch-Makefile b/math/pcalc/files/patch-Makefile
> new file mode 100644
> index 000000000000..1cf450c6cc57
> --- /dev/null
> +++ b/math/pcalc/files/patch-Makefile
> @@ -0,0 +1,24 @@
> +--- Makefile.orig      2022-02-23 04:42:33 UTC
> ++++ Makefile
> +@@ -23,6 +23,8 @@ pcalc: LDFLAGS += $(CFLAGS)
> + pcalc: $(OBJS)
> + pcalc: LDFLAGS += $(CFLAGS)
> +
> ++$(OBJS): pcalc.c
> ++
> + pcalc.c: pcalc.y
> +       $(YACC) -o $@ $<
> +
> +@@ -39,10 +41,10 @@ INSTALL = install
> +       $(MAKE) -C ptest check
> +
> + INSTALL = install
> +-BINDIR  = /usr/bin
> ++BINDIR  = /usr/local/bin

${LOCABASE}/bin instead of hardcoded /usr/local/bin.

> + DESTDIR =
> + install:
> +-      $(INSTALL) -m 755 -D pcalc $(DESTDIR)$(BINDIR)/pcalc
> ++      $(INSTALL) -m 755 -D $(DESTDIR)$(BINDIR) pcalc $(DESTDIR)$(BINDIR)/pcalc

Removing the -D flag is sufficient. $(INSTALL) -m 555 pcalc
$(DESTDIR)$(BINDIR)/pcalc
or better yet:
$(BSD_INSTALL_PROGRAM) pcalc $(DESTDIR)$(BINDIR)/pcalc

> +
> + dist pack: distclean
> +       rm -rf pcalc-$(VERSION)
> diff --git a/math/pcalc/pkg-descr b/math/pcalc/pkg-descr
> new file mode 100644
> index 000000000000..305818142288
> --- /dev/null
> +++ b/math/pcalc/pkg-descr
> @@ -0,0 +1,10 @@
> +A programmer's command line calculator for doing hex/dec/oct/bin math
> +quickly.
> +
> +Features:
> +  - Full math parser, parentheses, add, sub, mult, div, exponential
> +  - Automatic conversion between HEX DEC OCT BIN numbers
> +  - Mixing different bases in one expression
> +  - Definable variables
> +  - Math constants (E PI ...)
> +  - Built in math functions (sin/cos/sqrt ...)