Re: git: 0d316feccaf8 - main - sysutils/cpdup-FreeBSD: Add FreeBSD fork of cpdup

From: Cy Schubert <Cy.Schubert_at_cschubert.com>
Date: Wed, 26 Feb 2025 04:06:03 UTC
In message <202502252200.51PM0JNl002582@gitrepo.freebsd.org>, Guido Falsi 
write
s:
> The branch main has been updated by madpilot:
>
> URL: https://cgit.FreeBSD.org/ports/commit/?id=0d316feccaf89c1bd804d600127442
> 6a7135c93a
>
> commit 0d316feccaf89c1bd804d6001274426a7135c93a
> Author:     Guido Falsi <madpilot@FreeBSD.org>
> AuthorDate: 2025-02-25 21:58:58 +0000
> Commit:     Guido Falsi <madpilot@FreeBSD.org>
> CommitDate: 2025-02-25 21:58:58 +0000
>
>     sysutils/cpdup-FreeBSD: Add FreeBSD fork of cpdup
>     
>     Add a fork of cpdup, including patches to support copy_file_range(2)
>     and allowing to choose checksum algorithm.
>     
>     Thanks to mm for providing the required patches to the fork.
>     
>     Assign port to cpdup maintainer
>     
>     Approved by:    Gianmarco Giovannelli <gmarco@giovannelli.it> (maintainer
> )
> ---
>  sysutils/Makefile                               |  1 +
>  sysutils/cpdup-FreeBSD/Makefile                 | 22 ++++++++++++++++++++++
>  sysutils/cpdup-FreeBSD/distinfo                 |  3 +++
>  sysutils/cpdup-FreeBSD/files/patch-Makefile.bsd | 11 +++++++++++
>  sysutils/cpdup-FreeBSD/pkg-descr                |  9 +++++++++
>  sysutils/cpdup/Makefile                         |  2 ++
>  6 files changed, 48 insertions(+)
>
> diff --git a/sysutils/Makefile b/sysutils/Makefile
> index e9cf3cf53bb3..ea8c5a687551 100644
> --- a/sysutils/Makefile
> +++ b/sysutils/Makefile
> @@ -236,6 +236,7 @@
>      SUBDIR += coreos-ct
>      SUBDIR += coreutils
>      SUBDIR += cpdup
> +    SUBDIR += cpdup-FreeBSD
>      SUBDIR += cpu-microcode
>      SUBDIR += cpu-microcode-amd
>      SUBDIR += cpu-microcode-intel
> diff --git a/sysutils/cpdup-FreeBSD/Makefile b/sysutils/cpdup-FreeBSD/Makefil
> e
> new file mode 100644
> index 000000000000..e98c449cd03a
> --- /dev/null
> +++ b/sysutils/cpdup-FreeBSD/Makefile
> @@ -0,0 +1,22 @@
> +PORTNAME=	cpdup
> +DISTVERSION=	1.0.0
> +CATEGORIES=	sysutils
> +PKGNAMESUFFIX=	-FreeBSD
> +
> +MAINTAINER=	gmarco@giovannelli.it
> +COMMENT=	Comprehensive filesystem mirroring and backup program
> +WWW=		https://github.com/freebsd/cpdup
> +
> +LICENSE=	BSD3CLAUSE
> +
> +USES=		ssl tar:xz
> +USE_GITHUB=	yes
> +GH_ACCOUNT=	freebsd
> +MAKEFILE=	Makefile.bsd
> +
> +CONFLICTS_INSTALL=	cpdup
> +
> +PLIST_FILES=	bin/cpdup \
> +		share/man/man1/cpdup.1.gz
> +
> +.include <bsd.port.mk>
> diff --git a/sysutils/cpdup-FreeBSD/distinfo b/sysutils/cpdup-FreeBSD/distinf
> o
> new file mode 100644
> index 000000000000..427084c3b7ec
> --- /dev/null
> +++ b/sysutils/cpdup-FreeBSD/distinfo
> @@ -0,0 +1,3 @@
> +TIMESTAMP = 1739815106
> +SHA256 (freebsd-cpdup-1.0.0_GH0.tar.gz) = 216d7416f23df392a4218120ee8b4d66dd
> ab04f7c3677b8bfd7c6fea8383aa26
> +SIZE (freebsd-cpdup-1.0.0_GH0.tar.gz) = 45939
> diff --git a/sysutils/cpdup-FreeBSD/files/patch-Makefile.bsd b/sysutils/cpdup
> -FreeBSD/files/patch-Makefile.bsd
> new file mode 100644
> index 000000000000..89789d24a958
> --- /dev/null
> +++ b/sysutils/cpdup-FreeBSD/files/patch-Makefile.bsd
> @@ -0,0 +1,11 @@
> +--- Makefile.bsd.orig	2023-11-30 11:20:48 UTC
> ++++ Makefile.bsd
> +@@ -11,7 +11,7 @@ BINDIR?=	${PREFIX}/bin
> + CFLAGS+=	-D_ST_FLAGS_PRESENT_
> + PREFIX?=	/usr/local
> + BINDIR?=	${PREFIX}/bin
> +-MANDIR?=	${PREFIX}/man/man
> ++MANDIR?=	${PREFIX}/share/man/man
> + 
> + .include <bsd.prog.mk>
> + 
> diff --git a/sysutils/cpdup-FreeBSD/pkg-descr b/sysutils/cpdup-FreeBSD/pkg-de
> scr
> new file mode 100644
> index 000000000000..f432acb29e51
> --- /dev/null
> +++ b/sysutils/cpdup-FreeBSD/pkg-descr
> @@ -0,0 +1,9 @@
> +cpdup-FreeBSD is a FreeBSD fork of cpdup, a powerful filesystem mirroring
> +and backup utility which also has file integrity testing features, supports
> +incremental backups, and remote mirroring via ssh.
> +
> +This fork supports copy_file_range(2) and allows choosing checksum
> +algorithm.
> +
> +Note: This port does not copy (or mirror) any FreeBSD supported ACL
> +types and Extended Attributes nor MAC labels.
> diff --git a/sysutils/cpdup/Makefile b/sysutils/cpdup/Makefile
> index e25e3c69aef2..51e2ad7e8a15 100644
> --- a/sysutils/cpdup/Makefile
> +++ b/sysutils/cpdup/Makefile
> @@ -15,6 +15,8 @@ GH_TUPLE=	DragonFlyBSD:${PORTNAME}:v${PORTVERSION}
>  MAKEFILE=	GNUmakefile
>  MAKE_ARGS+=	LIBS="-L${OPENSSLLIB} -lcrypto"
>  
> +CONFLICTS_INSTALL=	cpdup-FreeBSD
> +
>  PLIST_FILES=	bin/cpdup share/man/man1/cpdup.1.gz
>  
>  post-patch:
>

This fails to build under poudriere.

===>  Staging for cpdup-FreeBSD-1.0.0
===>   Generating temporary packing list
install  -s -o root -g wheel -m 555   cpdup /wrkdirs/usr/ports/sysutils/cpdu
p-FreeBSD/work/stage/usr/local/bin/cpdup
install: /wrkdirs/usr/ports/sysutils/cpdup-FreeBSD/work/stage/usr/local/bin/
cpdup: chown/chgrp: Operation not permitted
*** Error code 71

Stop.
make: stopped making "install" in /wrkdirs/usr/ports/sysutils/cpdup-FreeBSD/
work/cpdup-1.0.0
*** Error code 1

Stop.
make: stopped making "stage" in /usr/ports/sysutils/cpdup-FreeBSD
=>> Cleaning up wrkdir
===>  Cleaning for cpdup-FreeBSD-1.0.0

You need to add USES=uidfix to your Makefile.


-- 
Cheers,
Cy Schubert <Cy.Schubert@cschubert.com>
FreeBSD UNIX:  <cy@FreeBSD.org>   Web:  https://FreeBSD.org
NTP:           <cy@nwtime.org>    Web:  https://nwtime.org

			e^(i*pi)+1=0