No description
  • C 87%
  • Roff 5.8%
  • Shell 5.3%
  • Makefile 1.9%
Find a file
Martin Matuška 33af48aa6d
Merge pull request #2 from mmatuska/mergeupstream
Merge upstream changes
2026-01-05 22:10:12 +01:00
.github/workflows CI: fix cflags, make install and add GitHub actions build 2023-11-30 12:20:48 +01:00
linux Avoid bzero/bcopy/bcmp/strlcpy() to not depend on libbsd 2025-09-04 10:13:04 +02:00
scripts Import cpdup from upstream DragonFly BSD as of 2018-02-15 2018-02-15 21:04:32 +08:00
src Merge remote-tracking branch 'mmatuska/main' into mergeupstream 2026-01-03 16:42:39 +01:00
.cirrus.yml CI: add Cirrus CI build for FreeBSD 14.1 and 13.4 2025-02-05 22:02:15 +01:00
.gitignore Update .gitingore to ignore *.diff/*.patch/*.rej 2025-09-04 10:13:04 +02:00
autodep.mk Improve makefile to auto-generate dependencies 2025-09-04 10:13:04 +02:00
BACKUPS Fix several typos in BACKUPS doc 2021-02-10 15:39:58 +08:00
cpdup.1 Convert to LibreSSL/OpenSSL EVP hash API 2023-11-30 12:20:27 +01:00
GNUmakefile Avoid bzero/bcopy/bcmp/strlcpy() to not depend on libbsd 2025-09-04 10:13:04 +02:00
LICENSE Clarify the license and update README a bit 2018-05-23 20:20:18 +08:00
Makefile Makefile: Invoke gmake instead of error 2021-02-10 15:40:44 +08:00
Makefile.bsd Makefile.bsd: Add a FreeBSD Makefile 2023-11-30 12:20:34 +01:00
PORTING Convert to LibreSSL/OpenSSL EVP hash API 2023-11-30 12:20:27 +01:00
README.md Merge remote-tracking branch 'mmatuska/main' into mergeupstream 2026-01-03 16:42:39 +01:00

CPDUP-FREEBSD -- Filesystem Mirroring Utility

Introduction

The cpdup utility makes an exact mirror copy of the source in the destination, creating and deleting files and directories as necessary. UTimes, hardlinks, softlinks, devices, permissions, and flags are mirrored. By default, cpdup asks for confirmation if any file or directory needs to be removed from the destination and does not copy files which it believes to have already been synchronized (by observing that the source and destination files' sizes and mtimes match). cpdup does not cross mount points in either the source or the destination. As a safety measure, cpdup refuses to replace a destination directory with a file.

The cpdup utility was originally created to update servers at BEST Internet circa 1997 and was placed under the FreeBSD copyright for inclusion in the Ports Collection in 1999. This utility was written by Matthew Dillon, Dima Ruban, and later significantly improved by Oliver Fromme.

Upstream source: DragonFly BSD's bin/cpdup

Manual page: cpdup(1)

Platforms

  • DragonFly BSD
  • FreeBSD
  • NetBSD
  • Linux

(Welcome to help test on and port to more platforms)

Installation

  1. Install dependencies:

    • make (GNU make)
    • gcc
    • pkg-config
    • libssl-dev (OpenSSL >= 1.0.2 or LibreSSL)

    Arch Linux: pacman -S pkgconf openssl

    CentOS: yum install pkgconfig openssl-devel

    Debian: apt install pkg-config libssl-dev

    DragonFly BSD / FreeBSD: pkg install gmake pkgconf libressl

  2. Build: make

  3. Install: sudo make install [PREFIX=/usr/local]

Packages

Debian Linux:

$ make debpkg
$ sudo dpkg -i cpdup_*.deb

Arch Linux:

$ make archpkg
$ sudo pacman -U cpdup-*.pkg.*

CentOS:

$ make rpm
$ sudo rpm -ivh cpdup-*.rpm

License

The 3-Clause BSD License