aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hurst <tom@hur.st>2026-10-02 22:38:13 +0000
committerYusuf Yaman <nxjoseph@FreeBSD.org>2026-10-02 22:44:25 +0000
commitb3baea203f6a1ca982ae8a9d8f29d638255425a3 (patch)
tree603103f13f24c9d9fdcc0485a257cbb91b6276c2
parent817a6b02fc5ca51b95881853c07fd304d71542ab (diff)
sysutils/jdupes: Update 1.27.3 => 1.31.2
This update is strongly advised for users of the experimental hashdb feature. Also, Upstream is switched to Codeberg. Changelog: https://codeberg.org/jbruchon/jdupes/src/tag/v1.31.2/CHANGES.txt PR: 299058 Approved by: osa, vvd (Mentors, implicit) MFH: 2026Q4 (cherry picked from commit 4e1bf62dc104bf74a7ffbc3d7bb1b9dfa950d50f)
-rw-r--r--sysutils/jdupes/Makefile11
-rw-r--r--sysutils/jdupes/distinfo6
-rw-r--r--sysutils/jdupes/files/patch-hashdb.c114
3 files changed, 8 insertions, 123 deletions
diff --git a/sysutils/jdupes/Makefile b/sysutils/jdupes/Makefile
index 0d86d11d553f..0fe37a76e3b5 100644
--- a/sysutils/jdupes/Makefile
+++ b/sysutils/jdupes/Makefile
@@ -1,12 +1,12 @@
PORTNAME= jdupes
DISTVERSIONPREFIX= v
-DISTVERSION= 1.27.3
-PORTREVISION= 2
+DISTVERSION= 1.31.2
CATEGORIES= sysutils
+MASTER_SITES= https://codeberg.org/jbruchon/jdupes/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/
MAINTAINER= tom@hur.st
COMMENT= Powerful duplicate file finder and an enhanced fork of 'fdupes'
-WWW= https://github.com/jbruchon/jdupes
+WWW= https://codeberg.org/jbruchon/jdupes
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
@@ -16,12 +16,11 @@ LIB_DEPENDS= libjodycode.so:devel/libjodycode \
USES= gmake localbase:ldflags
-USE_GITHUB= yes
-GH_ACCOUNT= jbruchon
-
MAKE_FLAGS= EXTERNAL_HASH_LIB=1
LDFLAGS+= -ljodycode -lxxhash
+WRKSRC= ${WRKDIR}/${PORTNAME}
+
PLIST_FILES= bin/jdupes \
share/man/man1/jdupes.1.gz
diff --git a/sysutils/jdupes/distinfo b/sysutils/jdupes/distinfo
index d9d8129555b1..1e4ddc05d6db 100644
--- a/sysutils/jdupes/distinfo
+++ b/sysutils/jdupes/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1693232321
-SHA256 (jbruchon-jdupes-v1.27.3_GH0.tar.gz) = 6e8352f61b3920a2b5626c7122c3b80b4fdcc5cdd3f1c0c3424530425a77d846
-SIZE (jbruchon-jdupes-v1.27.3_GH0.tar.gz) = 174831
+TIMESTAMP = 1790940940
+SHA256 (jdupes-v1.31.2.tar.gz) = a003ba9c57f2fbfc30f5af5a886b12423e0a0eba008429a48506d0c31a807c17
+SIZE (jdupes-v1.31.2.tar.gz) = 181835
diff --git a/sysutils/jdupes/files/patch-hashdb.c b/sysutils/jdupes/files/patch-hashdb.c
deleted file mode 100644
index bc631af357c2..000000000000
--- a/sysutils/jdupes/files/patch-hashdb.c
+++ /dev/null
@@ -1,114 +0,0 @@
---- hashdb.c.orig 2023-08-27 01:12:34 UTC
-+++ hashdb.c
-@@ -31,6 +31,7 @@ static hashdb_t *hashdb[HT_SIZE];
- static int hashdb_init = 0;
- static int hashdb_algo = 0;
- static int hashdb_dirty = 0;
-+static int new_hashdb = 0;
-
- /* Pivot direction for rebalance */
- enum pivot { PIVOT_LEFT, PIVOT_RIGHT };
-@@ -68,20 +69,35 @@ int save_hash_database(const char * const restrict dbn
- {
- FILE *db = NULL;
- uint64_t cnt = 0;
-+ char *dbtemp;
-
- if (dbname == NULL) goto error_hashdb_null;
- LOUD(fprintf(stderr, "save_hash_database('%s')\n", dbname);)
- /* Don't save the hash database if it wasn't changed */
- if (hashdb_dirty == 0 && destroy == 0) return 0;
- if (hashdb_dirty == 1) {
-+
- errno = 0;
-- db = fopen(dbname, "w+b");
-+ dbtemp = malloc(strlen(dbname) + 5);
-+ if (dbtemp == NULL) goto error_hashdb_alloc;
-+ strcpy(dbtemp, dbname);
-+ strcat(dbtemp, ".tmp");
-+ /* Try to remove any existing temporary database, ignoring errors */
-+ remove(dbtemp);
-+ db = fopen(dbtemp, "rb");
- if (db == NULL) goto error_hashdb_open;
- }
-
-- if (write_hashdb_entry(db, NULL, &cnt, destroy) != 0) goto error_hashdb_write;
- if (hashdb_dirty == 1) {
-+ if (write_hashdb_entry(db, NULL, &cnt, destroy) != 0) goto error_hashdb_write;
- fclose(db);
-+ if (new_hashdb == 0) {
-+ errno = 0;
-+ if (remove(dbname) != 0) {
-+ if (errno != ENOENT) goto error_hashdb_remove;
-+ }
-+ }
-+ if (rename(dbtemp, dbname) != 0) goto error_hashdb_rename;
- LOUD(if (hashdb_dirty == 1) fprintf(stderr, "Wrote %" PRIu64 " items to hash databse '%s'\n", cnt, dbname);)
- hashdb_dirty = 0;
- }
-@@ -92,12 +108,22 @@ error_hashdb_null:
- fprintf(stderr, "error: internal failure: NULL pointer for hashdb\n");
- return -1;
- error_hashdb_open:
-- fprintf(stderr, "error: cannot open hashdb '%s' for writing: %s\n", dbname, strerror(errno));
-+ fprintf(stderr, "error: cannot open temp hashdb '%s' for writing: %s\n", dbtemp, strerror(errno));
- return -2;
- error_hashdb_write:
-- fprintf(stderr, "error: writing failed to hashdb '%s': %s\n", dbname, strerror(errno));
-+ fprintf(stderr, "error: write failed to temp hashdb '%s': %s\n", dbtemp, strerror(errno));
- fclose(db);
- return -3;
-+error_hashdb_alloc:
-+ fprintf(stderr, "error: cannot allocate memory for temporary hashdb name\n");
-+ return -4;
-+error_hashdb_remove:
-+ fprintf(stderr, "error: cannot delete old hashdb '%s': %s\n", dbname, strerror(errno));
-+ remove(dbtemp);
-+ return -5;
-+error_hashdb_rename:
-+ fprintf(stderr, "error: cannot rename temporary hashdb '%s' to '%s'; leaving it alone: %s\n", dbtemp, dbname, strerror(errno));
-+ return -6;
- }
-
-
-@@ -435,31 +461,40 @@ int64_t load_hash_database(char *dbname)
- entry->hashcount = hashcount;
- }
-
-+ fclose(db);
- return linenum - 1;
-
- warn_hashdb_open:
- fprintf(stderr, "Creating a new hash database '%s'\n", dbname);
-+ fclose(db);
-+ new_hashdb = 1;
- return 0;
- error_hashdb_read:
- fprintf(stderr, "error reading hash database '%s': %s\n", dbname, strerror(errno));
-+ fclose(db);
- return -1;
- error_hashdb_header:
- fprintf(stderr, "error in header of hash database '%s'\n", dbname);
-+ fclose(db);
- return -2;
- error_hashdb_version:
- fprintf(stderr, "error: bad db version %u in hash database '%s'\n", db_ver, dbname);
-+ fclose(db);
- return -3;
- error_hashdb_line:
- fprintf(stderr, "\nerror: bad line %" PRId64 " in hash database '%s':\n\n%s\n\n", linenum, dbname, line);
-+ fclose(db);
- return -4;
- error_hashdb_add:
- fprintf(stderr, "error: internal failure allocating a hashdb entry\n");
-+ fclose(db);
- return -5;
- error_hashdb_null:
- fprintf(stderr, "error: internal failure: NULL pointer for hashdb\n");
- return -6;
- warn_hashdb_algo:
- fprintf(stderr, "warning: hashdb uses a different hash algorithm than selected; not loading\n");
-+ fclose(db);
- return -7;
- }
-