Re: git: de841b40d24d - main - sysutils/xxd: New port

From: Guido Falsi <madpilot_at_FreeBSD.org>
Date: Fri, 31 Mar 2023 15:17:57 UTC
On 31/03/23 17:14, Adam Weinberger wrote:
> 
> 
> On Fri, Mar 31, 2023 at 11:07 AM Guido Falsi <madpilot@freebsd.org 
> <mailto:madpilot@freebsd.org>> wrote:
> 
>     On 31/03/23 16:32, Guido Falsi wrote:
>      > On 31/03/23 16:30, Adam Weinberger wrote:
>      >>
>      >>
>      >>> On Mar 31, 2023, at 10:28, Guido Falsi <madpilot@freebsd.org
>     <mailto:madpilot@freebsd.org>> wrote:
>      >>>
>      >>> On 31/03/23 15:49, Adam Weinberger wrote:
>      >>>> On Thu, Mar 30, 2023 at 4:45 PM Guido Falsi
>     <madpilot@freebsd.org <mailto:madpilot@freebsd.org>
>      >>>> <mailto:madpilot@freebsd.org <mailto:madpilot@freebsd.org>>>
>     wrote:
>      >>>>     The branch main has been updated by madpilot:
>      >>>>     URL:
>      >>>>
>      >>>>
>     https://cgit.FreeBSD.org/ports/commit/?id=de841b40d24d22ab51ad05ed632e025903fbb41f <https://cgit.FreeBSD.org/ports/commit/?id=de841b40d24d22ab51ad05ed632e025903fbb41f> <https://cgit.FreeBSD.org/ports/commit/?id=de841b40d24d22ab51ad05ed632e025903fbb41f <https://cgit.FreeBSD.org/ports/commit/?id=de841b40d24d22ab51ad05ed632e025903fbb41f>>
>      >>>>     commit de841b40d24d22ab51ad05ed632e025903fbb41f
>      >>>>     Author:     Guido Falsi <madpilot@FreeBSD.org>
>      >>>>     AuthorDate: 2023-03-30 20:42:54 +0000
>      >>>>     Commit:     Guido Falsi <madpilot@FreeBSD.org>
>      >>>>     CommitDate: 2023-03-30 20:42:54 +0000
>      >>>>          sysutils/xxd: New port
>      >>>>          This is the standalone version of the xxd tool
>     provided by
>      >>>> vim.
>      >>>>          Submitted by:   Gianmarco Giovannelli
>     <gmarco@giovannelli.it <mailto:gmarco@giovannelli.it>
>      >>>>     <mailto:gmarco@giovannelli.it <mailto:gmarco@giovannelli.it>>>
>      >>>>     diff --git a/sysutils/xxd/Makefile b/sysutils/xxd/Makefile
>      >>>>     new file mode 100644
>      >>>>     index 000000000000..378f364cf4bf
>      >>>>     --- /dev/null
>      >>>>     +++ b/sysutils/xxd/Makefile
>      >>>>     @@ -0,0 +1,26 @@
>      >>>>     +PORTNAME=      xxd
>      >>>>     +DISTVERSIONPREFIX=     v
>      >>>>     +DISTVERSION=   9.0.1366
>      >>>>     +CATEGORIES=    sysutils
>      >>>>     +
>      >>>>     +MAINTAINER= gmarco@giovannelli.it
>     <mailto:gmarco@giovannelli.it> <mailto:gmarco@giovannelli.it
>     <mailto:gmarco@giovannelli.it>>
>      >>>>     +COMMENT=       Hexdump and reverse hexdump utility
>      >>>>     +WWW= https://github.com/mew-cx/xxd
>     <https://github.com/mew-cx/xxd> <https://github.com/mew-cx/xxd
>     <https://github.com/mew-cx/xxd>>
>      >>>>     +
>      >>>>     +CONFLICTS_INSTALL=     vim-[0-9]* vim-gtk2 vim-gtk3
>     vim-motif
>      >>>> vim-x11
>      >>>>     +
>      >>>>     +ALL_TARGET=    ${PORTNAME}
>      >>>>     +PORTSCOUT=     ignore:1
>      >>>>     +EXTRACT_AFTER_ARGS=    --include='*/src/xxd*'
>      >>>>     +WRKSRC_SUBDIR= src/xxd
>      >>>>     +
>      >>>>     +PLIST_FILES=   bin/xxd
>      >>>>     +
>      >>>>     +USE_GITHUB=    yes
>      >>>>     +GH_ACCOUNT=    vim
>      >>>>     +GH_PROJECT=    vim
>      >>>>     +
>      >>>>     +do-install:
>      >>>>     +       ${INSTALL_PROGRAM} ${WRKSRC}/xxd
>     ${STAGEDIR}${PREFIX}/bin
>      >>>>     +
>      >>>>     +.include <bsd.port.mk <http://bsd.port.mk>
>     <http://bsd.port.mk <http://bsd.port.mk>>>
>      >>>> The WWW is odd here. The source files are coming from
>      >>>> github.com/vim/vim <http://github.com/vim/vim>
>     <http://github.com/vim/vim <http://github.com/vim/vim>>, but the WWW
>     is for a
>      >>>> related but unused project.
>      >>>
>      >>> Oops, you're right. Submitter proposed to use a fork, but later I
>      >>> decided grabbing the original vim distribution was better, I must
>      >>> have forgotten updating the WWW line.
>      >>>
>      >>> Will fix it!
>      >>>
>      >>>> I update vim at the beginning of every month plus whenever new
>      >>>> minors are released, and whenever there are patches that it's
>      >>>> important for us to downstream. Rather than pinning xxd to a
>     version
>      >>>> that will be old literally tomorrow, why not pull the DISTVERSION
>      >>>> and distinfo from editors/vim/Makefile?
>      >>>
>      >>> That would be a good idea, but while using vim distinfo is
>     trivial,
>      >>> I'm not sure how to import DISTVERSION from another port.
>     Including
>      >>> the Makefile would override a bunch of other variables.
>      >>
>      >> ${MAKE_CMD} -V DISTVERSION
>      >>
>      >> :-)
>      >
>      > Uhm I guess I need to pass it the vim makefile too so it would be:
>      >
>      > ${MAKE_CMD} -f ../editors/vim/Makefile -V DISTVERSION
>      >
>      > I guess. Does not look pretty, but could work.
>      >
> 
>     Writing this here, for the record:
> 
>     This required some more work. I found inspiration in the
>     devel/git-merge-changelog port.
> 
>     The BSDMAKE variable is defined only after bsd.port.pre.mk
>     <http://bsd.port.pre.mk>, so one needs
>     to split the include of bsd.port.mk <http://bsd.port.mk> and extract
>     values after the first
>     one, into temporary variables that are referenced at the start of the
>     Makefile.
> 
>     Committing fixes shortly.
> 
>     Thanks for the suggestions!
> 
> 
> One other option is to make a vim-xxd flavor, which honestly may be the 
> best option. It would mean that xxd is built with the same configuration 
> that the mainline vim ports are built with, and vim and xxd already 
> conflict with each other (I'm not too concerned about vim-tiny and 
> vim-xxd conflicting as a byproduct).
> 

That could be the simpler solution, although it should be done using 
"subpakcages", which we don't have at present. But having a separate 
port is not really any better. If you're willing to approve it I can 
create a patch to vim to create such flavor. I could also make -tiny and 
-xxd not conflict with each other, maybe.

-- 
Guido Falsi <madpilot@FreeBSD.org>