diff options
| author | Thomas Hurst <tom@hur.st> | 2026-10-02 22:38:13 +0000 |
|---|---|---|
| committer | Yusuf Yaman <nxjoseph@FreeBSD.org> | 2026-10-02 22:43:39 +0000 |
| commit | 4e1bf62dc104bf74a7ffbc3d7bb1b9dfa950d50f (patch) | |
| tree | 6cd36e5e340fe34261f72f99543a16cb7c0055cf | |
| parent | ea81d47950456eabb2fe5d46799134fdd31f15db (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
| -rw-r--r-- | sysutils/jdupes/Makefile | 11 | ||||
| -rw-r--r-- | sysutils/jdupes/distinfo | 6 | ||||
| -rw-r--r-- | sysutils/jdupes/files/patch-hashdb.c | 114 |
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; - } - |
