commit
36ac042eb3
@ -0,0 +1,3 @@
|
|||||||
|
fdupes-1.50-PR2.tar.gz
|
||||||
|
/fdupes-1.51.tar.gz
|
||||||
|
/fdupes-1.6.1.tar.gz
|
@ -1,21 +0,0 @@
|
|||||||
# Makefile for source rpm: fdupes
|
|
||||||
# $Id$
|
|
||||||
NAME := fdupes
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attept a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
@ -0,0 +1,24 @@
|
|||||||
|
From 88f3d2dd31fbef7e539b2523724221e8e8e5a9f0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Falk <falkartis@gmail.com>
|
||||||
|
Date: Thu, 27 Oct 2016 18:10:48 +0200
|
||||||
|
Subject: [PATCH] allow to type just a instead of all
|
||||||
|
|
||||||
|
Typing all many times can be boring/annoying, So I propose to allow people to type just a for all.
|
||||||
|
(sometimes there can be very large duplicate sets)
|
||||||
|
---
|
||||||
|
fdupes.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/fdupes.c b/fdupes.c
|
||||||
|
index 7eee165..7a8a6ed 100644
|
||||||
|
--- a/fdupes.c
|
||||||
|
+++ b/fdupes.c
|
||||||
|
@@ -886,7 +886,7 @@ void deletefiles(file_t *files, int prompt, FILE *tty)
|
||||||
|
token = strtok(preservestr, " ,\n");
|
||||||
|
|
||||||
|
while (token != NULL) {
|
||||||
|
- if (strcasecmp(token, "all") == 0)
|
||||||
|
+ if (strcasecmp(token, "all") == 0 || strcasecmp(token, "a") == 0)
|
||||||
|
for (x = 0; x <= counter; x++) preserve[x] = 1;
|
||||||
|
|
||||||
|
number = 0;
|
@ -0,0 +1,88 @@
|
|||||||
|
From 315f6702f1cc37036d9f826314245b44a781c387 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adrian Lopez <adrianlopezroche@gmail.com>
|
||||||
|
Date: Sun, 21 Aug 2016 02:04:15 -0400
|
||||||
|
Subject: [PATCH] Delete old TODO file.
|
||||||
|
|
||||||
|
---
|
||||||
|
TODO | 72 --------------------------------------------------------------------
|
||||||
|
1 file changed, 72 deletions(-)
|
||||||
|
delete mode 100644 TODO
|
||||||
|
|
||||||
|
diff --git a/TODO b/TODO
|
||||||
|
deleted file mode 100644
|
||||||
|
index f7f77c4..0000000
|
||||||
|
--- a/TODO
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,72 +0,0 @@
|
||||||
|
-- A bug with -S shows wrong results.
|
||||||
|
-
|
||||||
|
-- A bug causes the following behavior:
|
||||||
|
-
|
||||||
|
- $ fdupes --symlinks testdir
|
||||||
|
- testdir/with spaces b
|
||||||
|
- testdir/with spaces a
|
||||||
|
-
|
||||||
|
- testdir/zero_b
|
||||||
|
- testdir/zero_a
|
||||||
|
-
|
||||||
|
- testdir/symlink_two
|
||||||
|
- testdir/twice_one
|
||||||
|
-
|
||||||
|
- $ cp testdir/two testdir/two_again
|
||||||
|
- $ fdupes --symlinks testdir
|
||||||
|
- testdir/two_again
|
||||||
|
- testdir/two
|
||||||
|
- testdir/twice_one
|
||||||
|
- testdir/symlink_two
|
||||||
|
-
|
||||||
|
- testdir/with spaces b
|
||||||
|
- testdir/with spaces a
|
||||||
|
-
|
||||||
|
- testdir/zero_b
|
||||||
|
- testdir/zero_a
|
||||||
|
-
|
||||||
|
- ** This is not the desired behavior. Likewise:
|
||||||
|
-
|
||||||
|
- $ fdupes testdir
|
||||||
|
- testdir/with spaces b
|
||||||
|
- testdir/with spaces a
|
||||||
|
-
|
||||||
|
- testdir/zero_b
|
||||||
|
- testdir/zero_a
|
||||||
|
-
|
||||||
|
- testdir/twice_one
|
||||||
|
- testdir/two
|
||||||
|
-
|
||||||
|
- $ fdupes --symlinks testdir
|
||||||
|
- testdir/with spaces b
|
||||||
|
- testdir/with spaces a
|
||||||
|
-
|
||||||
|
- testdir/zero_b
|
||||||
|
- testdir/zero_a
|
||||||
|
-
|
||||||
|
- testdir/symlink_two
|
||||||
|
- testdir/twice_one
|
||||||
|
-
|
||||||
|
-- Don't assume that stat always works.
|
||||||
|
-
|
||||||
|
-- Add partial checksumming where instead of MD5ing whole
|
||||||
|
- files we MD5 and compare every so many bytes, caching
|
||||||
|
- these partial results for subsequent comparisons.
|
||||||
|
-
|
||||||
|
-- Option -R should not have to be separated from the rest,
|
||||||
|
- such that "fdupes -dR testdir", "fdupes -d -R testdir",
|
||||||
|
- "fdupes -Rd testdir", etc., all yield the same results.
|
||||||
|
-
|
||||||
|
-- Add option to highlight or identify symlinked files (suggest
|
||||||
|
- using --classify to identify symlinks with @ suffix... when
|
||||||
|
- specified, files containing @ are listed using \@).
|
||||||
|
-
|
||||||
|
-- Consider autodeletion option without user intervention.
|
||||||
|
-
|
||||||
|
-- Consider option to match only to files in specific directory.
|
||||||
|
-
|
||||||
|
-- Do a little commenting, to avoid rolling eyes and/or snickering.
|
||||||
|
-
|
||||||
|
-- Fix problem where MD5 collisions will result in one of the
|
||||||
|
- files not being registered (causing it to be ignored).
|
||||||
|
-
|
@ -0,0 +1,167 @@
|
|||||||
|
From e95ec42dc178eff0410880c3dc4c0dac3df442df Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adrian Lopez <adrianlopezroche@gmail.com>
|
||||||
|
Date: Tue, 23 Aug 2016 18:21:18 -0400
|
||||||
|
Subject: [PATCH] Add an option to sort duplicate files by ctime.
|
||||||
|
|
||||||
|
---
|
||||||
|
README | 5 +++--
|
||||||
|
fdupes.1 | 2 +-
|
||||||
|
fdupes.c | 49 +++++++++++++++++++++++++++++++++++++------------
|
||||||
|
3 files changed, 41 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/README b/README
|
||||||
|
index c748d05..c27f043 100644
|
||||||
|
--- a/README
|
||||||
|
+++ b/README
|
||||||
|
@@ -37,8 +37,9 @@ Usage: fdupes [options] DIRECTORY...
|
||||||
|
grouping into sets; implies --noprompt
|
||||||
|
-p --permissions don't consider files with different owner/group or
|
||||||
|
permission bits as duplicates
|
||||||
|
- -o --order=BY select sort order for output, linking and deleting; by
|
||||||
|
- mtime (BY='time'; default) or filename (BY='name')
|
||||||
|
+ -o --order=BY select sort order for output and deleting; by file
|
||||||
|
+ modification time (BY='time'; default), status
|
||||||
|
+ change time (BY='ctime'), or filename (BY='name')
|
||||||
|
-i --reverse reverse order while sorting
|
||||||
|
-v --version display fdupes version
|
||||||
|
-h --help display this help message
|
||||||
|
diff --git a/fdupes.1 b/fdupes.1
|
||||||
|
index 5ddad87..969a5d8 100644
|
||||||
|
--- a/fdupes.1
|
||||||
|
+++ b/fdupes.1
|
||||||
|
@@ -72,7 +72,7 @@ don't consider files with different owner/group or permission bits as duplicates
|
||||||
|
.TP
|
||||||
|
.B -o --order\fR=\fIWORD\fR
|
||||||
|
order files according to WORD:
|
||||||
|
-time - sort by mtime, name - sort by filename
|
||||||
|
+time - sort by modification time, ctime - sort by status change time, name - sort by filename
|
||||||
|
.TP
|
||||||
|
.B -i --reverse
|
||||||
|
reverse order while sorting
|
||||||
|
diff --git a/fdupes.c b/fdupes.c
|
||||||
|
index ef64c45..7eee165 100644
|
||||||
|
--- a/fdupes.c
|
||||||
|
+++ b/fdupes.c
|
||||||
|
@@ -56,7 +56,8 @@
|
||||||
|
#define F_IMMEDIATE 0x8000
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
- ORDER_TIME = 0,
|
||||||
|
+ ORDER_MTIME = 0,
|
||||||
|
+ ORDER_CTIME,
|
||||||
|
ORDER_NAME
|
||||||
|
} ordertype_t;
|
||||||
|
|
||||||
|
@@ -64,6 +65,8 @@ char *program_name;
|
||||||
|
|
||||||
|
unsigned long flags = 0;
|
||||||
|
|
||||||
|
+ordertype_t ordertype = ORDER_MTIME;
|
||||||
|
+
|
||||||
|
#define CHUNK_SIZE 8192
|
||||||
|
|
||||||
|
#define INPUT_SIZE 256
|
||||||
|
@@ -97,7 +100,7 @@ typedef struct _file {
|
||||||
|
md5_byte_t *crcsignature;
|
||||||
|
dev_t device;
|
||||||
|
ino_t inode;
|
||||||
|
- time_t mtime;
|
||||||
|
+ time_t sorttime;
|
||||||
|
int hasdupes; /* true only if file is first on duplicate chain */
|
||||||
|
struct _file *duplicates;
|
||||||
|
struct _file *next;
|
||||||
|
@@ -183,6 +186,14 @@ time_t getmtime(char *filename) {
|
||||||
|
return s.st_mtime;
|
||||||
|
}
|
||||||
|
|
||||||
|
+time_t getctime(char *filename) {
|
||||||
|
+ struct stat s;
|
||||||
|
+
|
||||||
|
+ if (stat(filename, &s) != 0) return 0;
|
||||||
|
+
|
||||||
|
+ return s.st_ctime;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
char **cloneargs(int argc, char **argv)
|
||||||
|
{
|
||||||
|
int x;
|
||||||
|
@@ -435,7 +446,17 @@ void getfilestats(file_t *file)
|
||||||
|
file->size = filesize(file->d_name);
|
||||||
|
file->inode = getinode(file->d_name);
|
||||||
|
file->device = getdevice(file->d_name);
|
||||||
|
- file->mtime = getmtime(file->d_name);
|
||||||
|
+
|
||||||
|
+ switch (ordertype)
|
||||||
|
+ {
|
||||||
|
+ case ORDER_CTIME:
|
||||||
|
+ file->sorttime = getctime(file->d_name);
|
||||||
|
+ break;
|
||||||
|
+ case ORDER_MTIME:
|
||||||
|
+ default:
|
||||||
|
+ file->sorttime = getmtime(file->d_name);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
int registerfile(filetree_t **branch, file_t *file)
|
||||||
|
@@ -911,11 +932,11 @@ int sort_pairs_by_arrival(file_t *f1, file_t *f2)
|
||||||
|
return !ISFLAG(flags, F_REVERSE) ? -1 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
-int sort_pairs_by_mtime(file_t *f1, file_t *f2)
|
||||||
|
+int sort_pairs_by_time(file_t *f1, file_t *f2)
|
||||||
|
{
|
||||||
|
- if (f1->mtime < f2->mtime)
|
||||||
|
+ if (f1->sorttime < f2->sorttime)
|
||||||
|
return !ISFLAG(flags, F_REVERSE) ? -1 : 1;
|
||||||
|
- else if (f1->mtime > f2->mtime)
|
||||||
|
+ else if (f1->sorttime > f2->sorttime)
|
||||||
|
return !ISFLAG(flags, F_REVERSE) ? 1 : -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -1038,8 +1059,9 @@ void help_text()
|
||||||
|
printf(" \tgrouping into sets; implies --noprompt\n");
|
||||||
|
printf(" -p --permissions \tdon't consider files with different owner/group or\n");
|
||||||
|
printf(" \tpermission bits as duplicates\n");
|
||||||
|
- printf(" -o --order=BY \tselect sort order for output, linking and deleting; by\n");
|
||||||
|
- printf(" \tmtime (BY='time'; default) or filename (BY='name')\n");
|
||||||
|
+ printf(" -o --order=BY \tselect sort order for output and deleting; by file\n");
|
||||||
|
+ printf(" \tmodification time (BY='time'; default), status\n");
|
||||||
|
+ printf(" \tchange time (BY='ctime'), or filename (BY='name')\n");
|
||||||
|
printf(" -i --reverse \treverse order while sorting\n");
|
||||||
|
printf(" -v --version \tdisplay fdupes version\n");
|
||||||
|
printf(" -h --help \tdisplay this help message\n\n");
|
||||||
|
@@ -1061,7 +1083,6 @@ int main(int argc, char **argv) {
|
||||||
|
int progress = 0;
|
||||||
|
char **oldargv;
|
||||||
|
int firstrecurse;
|
||||||
|
- ordertype_t ordertype = ORDER_TIME;
|
||||||
|
|
||||||
|
#ifndef OMIT_GETOPT_LONG
|
||||||
|
static struct option long_options[] =
|
||||||
|
@@ -1161,7 +1182,9 @@ int main(int argc, char **argv) {
|
||||||
|
if (!strcasecmp("name", optarg)) {
|
||||||
|
ordertype = ORDER_NAME;
|
||||||
|
} else if (!strcasecmp("time", optarg)) {
|
||||||
|
- ordertype = ORDER_TIME;
|
||||||
|
+ ordertype = ORDER_MTIME;
|
||||||
|
+ } else if (!strcasecmp("ctime", optarg)) {
|
||||||
|
+ ordertype = ORDER_CTIME;
|
||||||
|
} else {
|
||||||
|
errormsg("invalid value for --order: '%s'\n", optarg);
|
||||||
|
exit(1);
|
||||||
|
@@ -1247,10 +1270,12 @@ int main(int argc, char **argv) {
|
||||||
|
if (confirmmatch(file1, file2)) {
|
||||||
|
if (ISFLAG(flags, F_DELETEFILES) && ISFLAG(flags, F_IMMEDIATE))
|
||||||
|
deletesuccessor(match, curfile,
|
||||||
|
- (ordertype == ORDER_TIME) ? sort_pairs_by_mtime : sort_pairs_by_filename );
|
||||||
|
+ (ordertype == ORDER_MTIME ||
|
||||||
|
+ ordertype == ORDER_CTIME) ? sort_pairs_by_time : sort_pairs_by_filename );
|
||||||
|
else
|
||||||
|
registerpair(match, curfile,
|
||||||
|
- (ordertype == ORDER_TIME) ? sort_pairs_by_mtime : sort_pairs_by_filename );
|
||||||
|
+ (ordertype == ORDER_MTIME ||
|
||||||
|
+ ordertype == ORDER_CTIME) ? sort_pairs_by_time : sort_pairs_by_filename );
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(file1);
|
@ -0,0 +1,201 @@
|
|||||||
|
# Place rpm-macros into proper location.
|
||||||
|
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; /bin/echo $d)
|
||||||
|
|
||||||
|
Name: fdupes
|
||||||
|
Epoch: 1
|
||||||
|
Version: 1.6.1
|
||||||
|
Release: 6%{?dist}
|
||||||
|
Summary: Finds duplicate files in a given set of directories
|
||||||
|
|
||||||
|
License: MIT
|
||||||
|
URL: https://github.com/adrianlopezroche/%{name}
|
||||||
|
Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
|
Source1: macros.%{name}
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
|
||||||
|
# From upstream.
|
||||||
|
Patch0: %{url}/commit/315f6702f1cc37036d9f826314245b44a781c387.patch#/%{name}-1.6.1-delete_old_TODO.patch
|
||||||
|
Patch1: %{url}/commit/e95ec42dc178eff0410880c3dc4c0dac3df442df.patch#/%{name}-1.6.1-option_sort_by_ctime.patch
|
||||||
|
Patch2: %{url}/commit/88f3d2dd31fbef7e539b2523724221e8e8e5a9f0.patch#/%{name}-1.6.1-allow_a_instead_of_all.patch
|
||||||
|
|
||||||
|
%description
|
||||||
|
FDUPES is a program for identifying duplicate files residing within specified
|
||||||
|
directories.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p 1
|
||||||
|
|
||||||
|
# From README.
|
||||||
|
%{__cat} << EOF > LICENSE
|
||||||
|
FDUPES Copyright (c) 1999 Adrian Lopez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation files
|
||||||
|
(the "Software"), to deal in the Software without restriction,
|
||||||
|
including without limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%make_build \
|
||||||
|
COMPILER_OPTIONS="%{?optflags}" \
|
||||||
|
LDFLAGS="%{?__global_ldflags}"
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install \
|
||||||
|
INSTALL="%{__install} -p" \
|
||||||
|
BIN_DIR=%{_bindir} \
|
||||||
|
MAN_BASE_DIR=%{_mandir}
|
||||||
|
|
||||||
|
%{__install} -Dpm 0644 %{SOURCE1} \
|
||||||
|
%{buildroot}%{macrosdir}/macros.%{name}
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
./%{name} testdir
|
||||||
|
./%{name} --omitfirst testdir
|
||||||
|
./%{name} --recurse testdir
|
||||||
|
./%{name} --size testdir
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license CONTRIBUTORS LICENSE
|
||||||
|
%doc CHANGES README
|
||||||
|
%doc %{_mandir}/man1/%{name}.1*
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
%{macrosdir}/macros.fdupes
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.1-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.1-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Apr 09 2017 Björn Esser <besser82@fedoraproject.org> - 1:1.6.1-1
|
||||||
|
- Updated to new upstream-release
|
||||||
|
- Upstream changed versioning-scheme, Epoch is needed
|
||||||
|
- Drop old patches, applied upstream
|
||||||
|
- Update spec-file to recent guidelines
|
||||||
|
- Drop el5-bits
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.51-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.51-11
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 19 2015 Jon Schlueter <jschluet@redhat> - 1.51-10
|
||||||
|
- Rebaseline using github which is new home of fdupes
|
||||||
|
- source tarball has unusual folder naming of fdupes-fdupes-1.51 instead of normal fdupes-1.51
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.51-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.51-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.51-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Apr 18 2014 Björn Esser <bjoern.esser@gmail.com> - 1.51-6
|
||||||
|
- remove duplicated `macros.d`-dir (#1088566)
|
||||||
|
|
||||||
|
* Tue Mar 18 2014 Björn Esser <bjoern.esser@gmail.com> - 1.51-5
|
||||||
|
- Add needed bits for el5
|
||||||
|
- Fix `mixed use of spaces-and tabs`
|
||||||
|
- Minor cleanup and improved readability
|
||||||
|
|
||||||
|
* Tue Mar 18 2014 Björn Esser <bjoern.esser@gmail.com> - 1.51-4
|
||||||
|
- Place rpm-macros into proper location using %%global macrosdir
|
||||||
|
- Apply proper LDFLAGS
|
||||||
|
- Fix offset in Patch1 and renamed it to match current version
|
||||||
|
|
||||||
|
* Sun Jan 19 2014 Ville Skyttä <ville.skytta@iki.fi> - 1.51-3
|
||||||
|
- Move macros to %%{_rpmconfigdir}/macros.d.
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.51-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 16 2013 Richard Shaw <hobbes1069@gmail.com> - 1.51-1
|
||||||
|
- Update to latest upstream release.
|
||||||
|
- Fixes security bugs BZ#865591 & 865592.
|
||||||
|
|
||||||
|
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.50-0.7.PR2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.50-0.6.PR2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 15 2012 Richard Shaw <hobbes1069@gmail.com> - 1.50-0.5.PR2
|
||||||
|
- Add RPM macro.
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.50-0.4.PR2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.50-0.3.PR2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.50-0.2.PR2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Feb 01 2009 Debarshi Ray <rishi@fedoraproject.org> - 1.50-0.1.PR2
|
||||||
|
- Version bump to 1.50 PR2.
|
||||||
|
* Added --noprompt, --recurse and --summarize options
|
||||||
|
* Now sorts duplicates (old to new) for consistent order when listing or
|
||||||
|
deleting duplicate files.
|
||||||
|
* Now tests for early matching of files, which should help speed up the
|
||||||
|
matching process when large files are involved.
|
||||||
|
* Added warning whenever a file cannot be deleted.
|
||||||
|
* Fixed bug where some files would not be closed after failure.
|
||||||
|
* Fixed bug where confirmmatch() function wouldn't always deal properly with
|
||||||
|
zero-length files.
|
||||||
|
* Fixed bug where progress indicator would not be cleared when no files were
|
||||||
|
found.
|
||||||
|
- Inclusion of string.h now added by upstream.
|
||||||
|
- Added patch to fix file comparisons from Debian. (Debian BTS #213385)
|
||||||
|
- Added patch to enable large file support on 32-bit systems from Debian.
|
||||||
|
(Debian BTS #447601)
|
||||||
|
- Added patch to fix typo in the online manual page from Debian. (Debian BTS
|
||||||
|
#353789)
|
||||||
|
|
||||||
|
* Tue Feb 19 2008 Release Engineering <rel-eng@fedoraproject.org> - 1.40-12
|
||||||
|
- Autorebuild for gcc-4.3.
|
||||||
|
|
||||||
|
* Thu Dec 27 2007 Debarshi Ray <rishi@fedoraproject.org> - 1.40-11
|
||||||
|
- Fixed Makefile to preserve timestamps using 'cp -p'.
|
||||||
|
|
||||||
|
* Thu Nov 29 2007 Debarshi Ray <rishi@fedoraproject.org> - 1.40-10
|
||||||
|
- Release bumped to overcome spurious build.
|
||||||
|
|
||||||
|
* Sun Nov 25 2007 Debarshi Ray <rishi@fedoraproject.org> - 1.40-9
|
||||||
|
- Initial build. Imported SPEC from Rawhide.
|
||||||
|
- Fixed Makefile to use DESTDIR correctly.
|
||||||
|
- Fixed sources to include string.h.
|
@ -0,0 +1,21 @@
|
|||||||
|
%fdupes(s) \
|
||||||
|
_target=""; \
|
||||||
|
_symlinks=0; \
|
||||||
|
%{-s:_symlinks=1;} \
|
||||||
|
fdupes -q -n -r -p %1 | \
|
||||||
|
while read _file; do \
|
||||||
|
if test -z "$_target" ; then \
|
||||||
|
_target="$_file"; \
|
||||||
|
else \
|
||||||
|
if test -z "$_file" ; then \
|
||||||
|
_target=""; \
|
||||||
|
continue ; \
|
||||||
|
fi ; \
|
||||||
|
if test "$_symlinks" = 1; then \
|
||||||
|
ln -sf "${_target#%{buildroot}}" "$_file"; \
|
||||||
|
else \
|
||||||
|
ln -f "$_target" "$_file"; \
|
||||||
|
fi ;\
|
||||||
|
fi ; \
|
||||||
|
done \
|
||||||
|
%{nil}
|
Loading…
Reference in new issue