1 |
%define name freedup |
2 |
%define version 1.6.3 |
3 |
%define release 6 |
4 |
%define real_version 1.6-3 |
5 |
Name: %{name} |
6 |
Summary: Links substantially identical, duplicate files to save file system space. |
7 |
Version: %{version} |
8 |
Release: %{release}%{?dist} |
9 |
License: GPL |
10 |
Packager: AN <AN@freedup.org> |
11 |
Group: Applications/File |
12 |
Source: http://%{name}.org/%{name}-%{real_version}-src.tar.bz2 |
13 |
# Buildarch: i586 |
14 |
Vendor: AN <AN@freedup.org> |
15 |
URL: http://%{name}.org/ |
16 |
#BuildRoot: /tmp/%{name}-broot |
17 |
#BuildRoot: /var/tmp/%{name}-%{real_version}-%{release} |
18 |
BuildRoot: /var/tmp/%{name}-%{real_version}-buildroot |
19 |
|
20 |
%description |
21 |
Freedup eliminates duplicate files by linking them, and thus reduces the amount |
22 |
of used disk space within one or more file systems. By default, hardlinks are |
23 |
used on a single device, symbolic links when the devices differ. A set of |
24 |
options allows you to modify the methods of file comparison, the hash functions, |
25 |
the linking behavior, and the reporting style. You may use batch or interactive |
26 |
mode. Freedup usually only considers identical files, but when comparing audio |
27 |
or graphics files, you may elect to ignore the tags. Multimedia files often are |
28 |
a good target for deduplication. |
29 |
|
30 |
|
31 |
%prep |
32 |
rm -rf ${RPM_BUILD_ROOT} |
33 |
|
34 |
%setup -n %{name}-1.6 |
35 |
|
36 |
|
37 |
%install |
38 |
rm -rf $RPM_BUILD_ROOT |
39 |
INSTALLDIR=/usr/bin |
40 |
MANPAGEDIR=%{_mandir} |
41 |
install -d $RPM_BUILD_ROOT/$INSTALLDIR |
42 |
install -s -p -m 755 freedup $RPM_BUILD_ROOT/$INSTALLDIR/freedup |
43 |
install -s -p -m 755 symharden $RPM_BUILD_ROOT/$INSTALLDIR/symharden |
44 |
install -d $RPM_BUILD_ROOT/$MANPAGEDIR/man1 |
45 |
gzip -c freedup.1>freedup.1.gz |
46 |
install -p -m 644 freedup.1.gz $RPM_BUILD_ROOT/$MANPAGEDIR/man1/freedup.1.gz |
47 |
|
48 |
|
49 |
%clean |
50 |
cd .. |
51 |
rm -rf %{name}-%{version} |
52 |
|
53 |
#rm -rf $RPM_BUILD_ROOT |
54 |
#mkdir -p $RPM_BUILD_ROOT/usr/bin |
55 |
#mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 |
56 |
|
57 |
%pre |
58 |
[ -f /etc/services ] && $(grep -q freedup /etc/services) || echo -e "freedup\t\t31166/tcp" >>//etc/services |
59 |
[ -d /etc/xinetd.d -a ! -f /etc/xinetd.d/freedup ] && echo "service freedup\n{\n\tport\t= 31166\n\tsocket_type\t= stream\n\tprotocol\t= tcp\n\twait\t= no\n\tuser\t= root\n\tdisable\t= yes\n\tserver\t= /home/aneuper/src/freedup/freedup\n\tserver_args\t= -W\n}" >>/etc/xinetd.d/freedup && chmod 644 /etc/xinetd.d/freedup |
60 |
[ -f /etc/inetd.conf ] && $(grep -q freedup /etc/inetd.conf) || echo "#freedup stream tcp nowait root /usr/bin/freedup freedup -W" >>/etc/inetd.conf |
61 |
|
62 |
|
63 |
%preun |
64 |
rm /etc/xinetd.d/freedup |
65 |
# leave entry in /etc/services |
66 |
# leave entry in /etc/inetd.conf |
67 |
|
68 |
%files |
69 |
%defattr(-,root,root) |
70 |
%attr(755,root,root) /usr/bin/symharden |
71 |
%attr(755,root,root) /usr/bin/freedup |
72 |
%doc {TODO,README,README.SHA,COPYING,COPYING.SHA,verify,ChangeLog,demo,html} |
73 |
%{_mandir}/man1/freedup.1.gz |
74 |
|
75 |
|
76 |
%changelog |
77 |
* Tue Sep 28 2021 John Crisp <jcrisp@safeandsoundit.co.uk> 1.6-6.sme |
78 |
- Fix some build path issues [SME: 11698] |
79 |
|
80 |
* Tue Sep 28 2021 John Crisp <jcrisp@safeandsoundit.co.uk> 1.6-5.sme |
81 |
- Fix some build path issues [SME: 11698] |
82 |
|
83 |
* Tue Sep 28 2021 John Crisp <jcrisp@safeandsoundit.co.uk> 1.6-4.sme |
84 |
- First Import to v10 contribs [SME: 11698] |
85 |
|
86 |
* Wed Sep 01 2021 John Crisp <jcrisp@safeandsoundit.co.uk> 1.6-3.sme |
87 |
- Test build |
88 |
- Added Stephanes note |
89 |
|
90 |
* Wed Jan 21 2015 stephane de labrusse <stephdl@de-labrusse.fr> 1.5-3.sme |
91 |
- First release to sme9 |
92 |
+ gui defaults to off, activate and deactivate using "make webon/weboff/state" |
93 |
|
94 |
* Fri Feb 04 2011 devel (AN) <AN@freedup.org> |
95 |
- Bugfixes in version 1.6-2 |
96 |
+ replaced softlink to symharden.c |
97 |
|
98 |
* Tue Jan 11 2011 devel (AN) <AN@freedup.org> |
99 |
- Changes to version 1.6-1 |
100 |
+ signal handler catches CTRL-C to free duplicates discovered so far |
101 |
+ added if-defines to avoid double parsing of *.h files |
102 |
+ removed inline directive [due to compile errors by request of Andres Meyer] |
103 |
- Enhancement in version 1.6-1 |
104 |
+ added listener interface |
105 |
+ added new platform makefile for Apple Mac Version 10.6.0 i386 [tested] |
106 |
+ catch filesystem errors (e.g. /sys) and print warnings instead of assertions |
107 |
+ added (sp)lint rule for linux |
108 |
+ added symharden tool to convert softlinks into hardlinks whereever possible |
109 |
- Bugfixes in version 1.6-1 |
110 |
+ added missing #ifdef HASHSUM statements [notified by Linc Davis] |
111 |
+ using include of <sys/stat.h> instead of <linux/stat.h> [by Linc Davis] |
112 |
+ added fclose() to mp4.c and checking all fclose()/fseek() result codes |
113 |
+ linted mp3.c, mp4.c mpc.c, auto.c, ogg.c, jpg.c and my.c |
114 |
+ partially linted freedup.c (e.g. splint does not fail anymore) |
115 |
+ moved filesize variables in "extra" functions from size_t=int to ulong |
116 |
+ incorporated patch to avoid segfaults [by Charles Duppy] |
117 |
- Known Bug in 1.6-1 |
118 |
+ Apple Mac version does not link different ownerships (yet reason unclear) |
119 |
|
120 |
* Thu Mar 06 2008 devel (AN) <AN@freedup.org> |
121 |
- Changes to unpublished version 1.5-4 |
122 |
+ Corrected Copyright statements to comply with OSF (GPL) requirements |
123 |
- Enhancement in unpublished version 1.5-4 |
124 |
+ minor corrections to man page |
125 |
|
126 |
* Thu Mar 06 2008 devel (AN) <AN@freedup.org> |
127 |
- Changes to version 1.5-3 |
128 |
+ gui defaults to off, activate and deactivate using "make webon/weboff/state" |
129 |
|
130 |
* Thu Mar 06 2008 devel (AN) <AN@freedup.org> |
131 |
- Changes to version 1.5-3 |
132 |
+ the features provided with option -W are for testing purpose only |
133 |
+ basic web interface offered (reply not accepted yet) |
134 |
+ changed invisible default option for sorting criteria to '.' |
135 |
- Enhancement in version 1.5-3 |
136 |
+ automated installation routine for xinetd and inetd |
137 |
+ deinstall script for xinetd only |
138 |
+ added html pages to rpm package as well |
139 |
- Bugfixes in version 1.5-3 |
140 |
+ removed a leftover debug command |
141 |
|
142 |
* Sun Mar 02 2008 devel (AN) <AN@freedup.org> |
143 |
- Enhancement in version 1.5-2 |
144 |
+ enable freedup to restore directory time stamp after linking (option -T) |
145 |
+ added usage help, man page and syntax web page for option -T |
146 |
+ extended test3 in Makefile.tests to check new option -T |
147 |
+ streamlined Makefile.tests using for-loops and 'test -ef'(25% reduced size) |
148 |
+ Makefile.tests now needs gnu 'test' facility '[' to work correctly |
149 |
- Bugfixes in version 1.5-2 |
150 |
+ corrected date in copyright notice for -V |
151 |
+ added '+' and '-' to -k option in online syntax help |
152 |
|
153 |
* Sat Feb 02 2008 devel (AN) <AN@freedup.org> |
154 |
- Enhancement in version 1.5-1 |
155 |
+ file trees are now scanned by an internal routine, find is called on demand |
156 |
+ output during tree scanning changes every 1000 files (i.e. find activity) |
157 |
+ updated man page to show how to use find instead of the internal routine |
158 |
+ testing did not proof performance gain when using internal routine |
159 |
- Changes in version 1.5-1 |
160 |
+ first helper routines for web-based GUI |
161 |
+ corrected and completed copyright information |
162 |
- Bugfixes in version 1.5-1 |
163 |
+ minor corrections to freedup man page |
164 |
|
165 |
* Mon Dec 31 2007 devel (AN) <AN@freedup.org> |
166 |
- Enhancement in version 1.4-4 |
167 |
+ report deleted files and the space saved (avail in interactive mode only) |
168 |
+ link directions '+'/'-' allow to select source by size (extra style only) |
169 |
- Bugfixes in version 1.4-4 |
170 |
+ Makefile copies so that rpm cygwin executable is executable under cygwin |
171 |
+ initialize all *source variables in dupinfo_entry() to avoid segfaults |
172 |
+ do not offer linking when files already linked in interactive mode (w/o -H) |
173 |
+ report linked files and bytes in interactive mode for extra styles |
174 |
|
175 |
* Fri Dec 28 2007 devel (AN) <AN@freedup.org> |
176 |
- Enhancement in version 1.4-3 |
177 |
+ one common routine to open config file (simplifies later extensions) |
178 |
+ added routine to print existing environments in help (for a test period) |
179 |
- Bugfixes in version 1.4-3 |
180 |
+ use character instead of ascii code for '-k' in config file |
181 |
+ finally fixed missing initialisation to avoid failing (n+m) assertion |
182 |
+ if mp4 module is applied on mp3 files no more infinite loops should occur |
183 |
|
184 |
* Mon Dec 24 2007 devel (AN) <AN@freedup.org> |
185 |
- Enhancement in version 1.4-2 |
186 |
+ there are no more restrictions on the number of identical files |
187 |
+ added '-H' for the same use as in fdupes: show hardlinked files too |
188 |
+ added man page description for '-k' and '-H' |
189 |
- Bugfixes in version 1.4-2 |
190 |
+ improved test routine for MP3 and JPG Mix |
191 |
+ added new line before printing statistics |
192 |
+ stop printing interactive selection list, when there are no more letters |
193 |
|
194 |
* Fri Dec 21 2007 devel (AN) <AN@freedup.org> |
195 |
- Enhancement in version 1.4-1 |
196 |
+ '-k' option changed and recognized key pattern (same key as interactive) |
197 |
+ '-ni' now reports reliable predictions on linked files and bytes |
198 |
+ '-n' is reported (and indicated) to report to much for multiple links. |
199 |
+ options '-qin' (add '-q') now print file clusters like "fdupes -r" |
200 |
+ erased code that was not active anymore |
201 |
+ reduction of qsort calls gave more performance which ate up more lstat()s |
202 |
- Bugfixes in version 1.4-1 |
203 |
+ '--timediff' is only set to 0 if '--sametime' is disabled |
204 |
+ fixed algorithm stability problem, i.e. one qsort run is now sufficient. |
205 |
- New in version 1.3-2 |
206 |
+ ability set a mask for file permissions if 'same' permission is desired. |
207 |
+ group commands in interactive mode |
208 |
- '@' suggests to link all files to entry with maximum link count |
209 |
- '#' suggests to link all files to first entry given on command line |
210 |
- '<' suggests to link all files to the oldest identical entry |
211 |
- '>' suggests to link all files to the newest identical entry |
212 |
+ '-k' forces link source by sequence of file naming (compare with '@' above) |
213 |
- Enhancement in version 1.3-2 |
214 |
+ changed default to NOT to use hash functions |
215 |
+ writing also given directories to config file (w/o probing for existance) |
216 |
+ first preparations for a netbsd translation |
217 |
- Bugfixes in version 1.3-2 |
218 |
+ findoptions need not to be defined for reading directories from config file |
219 |
+ assertion in compare_..._hash moved into parenthesis where it belongs to. |
220 |
|
221 |
* Sat Dec 15 2007 devel (AN) <AN@freedup.org> |
222 |
- New in version 1.3-1 |
223 |
+ '-#' now requires an integer option (watch out for difficulties!) |
224 |
+ advanced hash sum calculation is now usable (nearly no penalty, but gain) |
225 |
+ freedup.org is the new website (the old address remains valid) |
226 |
- Enhancement in version 1.3-1 |
227 |
+ new algorithm calculates internal hash sum during file comparison |
228 |
+ defaults to new hash algorithm (use --hash 1 to switch to old behaviour) |
229 |
+ more detailed man page sections on -e, -# and -o. |
230 |
- Bugfixes in version 1.3-1 |
231 |
+ hash sum counter counted double for internal hash algorithm |
232 |
|
233 |
* Mon Dec 10 2007 devel (AN) <AN@freedup.org> |
234 |
- New in version 1.2-1 |
235 |
+ Easy storeing & loading of options using environments (not: -Vhaq? ) |
236 |
Options given before are overwritten if present in that environment |
237 |
+ option -b to set basedir (may be useful with environments) |
238 |
+ option -D allows to set a maximum time difference |
239 |
- Enhancement in version 1.2-1 |
240 |
+ long options are offered |
241 |
+ help screen adopted |
242 |
+ added inactive, buggy code for delayed hash calculation ("hi performance") |
243 |
+ a test for -D was introduced |
244 |
- Bugfixes in version 1.2-1 |
245 |
+ ignore failed calls of gethash() (e.g. due to file removal) [rare] |
246 |
+ expect that ferror() may be set in case of feof() [not reported yet] |
247 |
+ qsort() now gets the difference in contents for files of the same size.[nry] |
248 |
|
249 |
* Thu Dec 06 2007 devel (AN) <AN@freedup.org> |
250 |
- Enhancement in version 1.1-3 |
251 |
+ extended test6 to check for symlinking of full and partial filename |
252 |
+ description in spec file renewed |
253 |
- Bugfixes in version 1.1-3 |
254 |
+ corrected symlinking files with partial filename to those with full |
255 |
+ added rules to have html files for rpm with cygwin where they are expected |
256 |
|
257 |
* Sun Dec 02 2007 devel (AN) <AN@freedup.org> |
258 |
- Enhancement in version 1.1-2 |
259 |
+ allow one more start token 'moov' for mp4 style (mov-Suffix) |
260 |
+ added -x and -e switch with explanation to man page |
261 |
- Bugfixes in version 1.1-2 |
262 |
+ corrected MANPAGE definition in spec file for rpm with cygwin |
263 |
+ replaced dependencies in Makefile.tests to ensure correct linking |
264 |
|
265 |
* Wed Nov 28 2007 devel (AN) <AN@freedup.org> |
266 |
- New in version 1.1-1 |
267 |
+ header/tail skipping and tag skipping introduced for extra modules |
268 |
+ extra modules for mp3, mp4, mpc, ogg and jpeg tags (still beta testing) |
269 |
+ the extra module "auto" selects extra modules by their magic automatically |
270 |
+ enabled extra modules inhibit external hashing functions |
271 |
+ test11 was added to check the extra style modules mp3, mp4 and jpg |
272 |
+ extra modules allow to be compiled as individual testing utilities |
273 |
- Enhancement in version 1.1-1 |
274 |
+ print only available hashmodes and extramodules with help |
275 |
+ now using defines for internal hash method (simplifies replacement) |
276 |
+ a message is printed if root privileges were missing during tests |
277 |
+ using a size that may differ from the file size |
278 |
- Bugfixes in version 1.1-1 |
279 |
+ test10 now recognizes non-default sort order |
280 |
+ correction to help/usage message |
281 |
+ added missing stop conditions to byte-by-byte-comparison |
282 |
|
283 |
* Sat Nov 10 2007 devel (AN) <AN@freedup.org> |
284 |
- Enhancement in version 1.0-5 |
285 |
+ now compiles unchanged with Cygwin and Linux |
286 |
+ Makefiles were modified to simplify testing and compilation |
287 |
+ removed conversion untility "encap" |
288 |
+ ignore missing "html2text" |
289 |
+ generate a readable plain text README from README.html |
290 |
+ more file groups in the header section of Makefile |
291 |
+ sha1.c is now taken from and referenced to original source. |
292 |
+ added COLLATERAL section to man page |
293 |
+ added verification program to distribution |
294 |
|
295 |
* Wed Nov 07 2007 devel (AN) <AN@freedup.org> |
296 |
- Enhancement in version 1.0-4 |
297 |
+ report version and copyright on '-V' |
298 |
+ included Allan Saddis SHA1 implementation as found in duff |
299 |
+ added more hash functions to default list |
300 |
+ use '-t' to select certain hash methods manually |
301 |
+ internal hash function is default, external ones require options |
302 |
+ introduced colour into Makefile testing routines |
303 |
+ Makefile relies on GNU make to auto-include OS specific settings |
304 |
+ added rules and other parts to generate debian packages |
305 |
- Bugfixes in version 1.0-4 |
306 |
+ errors on hash function testing are easier to understand now. |
307 |
+ errors on hash function selection are reported only with '-v' |
308 |
+ full special character support if internal hash methods chosen |
309 |
+ more recent list of files for tarball, clean and distclean |
310 |
|
311 |
* Sat Nov 03 2007 devel (AN) <AN@freedup.org> |
312 |
- Enhancement in version 1.0-3 |
313 |
+ Hash Algorithms now are included and work for cygwin as well |
314 |
+ improved interactive dialogues |
315 |
+ build symbolic link path in shortest distance to given target path |
316 |
- Bugfixes in version 1.0-3 |
317 |
+ Successful testing with AIX 5.3 |
318 |
+ do not stop interactive mode if setting the terminal discipline fails |
319 |
+ More intense Testing of comparison function (Makefile) |
320 |
+ More reliable testing of interactive mode and relative Path (Makefile) |
321 |
+ removed DANGER message due to program improvements |
322 |
+ special character support if external hash methods are disabled (-#) |
323 |
|
324 |
* Wed Oct 31 2007 devel (AN) <AN@freedup.org> |
325 |
- Enhancement in version 1.0-2 |
326 |
+ runtime check for one out of three usable external hash methods (SHA1, MD5, SUM) |
327 |
- Bugfixes in version 1.0-2 |
328 |
+ corrected comparison length when comparing by memcmp() / failed with cygwin |
329 |
+ renamed finfo structure to frdinfo to avoid collisions with AIX |
330 |
+ added ALLPERMS define for non-Linux systems |
331 |
+ added Makefile define for FREEDUPEXE, since cygwin fails on ./freedup |
332 |
+ added Makefile define for echo with backslash translation |
333 |
+ added Makefile check for valid HASH executables in freedup.h |
334 |
+ print "ln -f <file1> <file2>" , so you may execute it without changes |
335 |
|
336 |
* Sat Oct 27 2007 devel (AN) <AN@freedup.org> |
337 |
- Enhancements in version 1.0 |
338 |
+ new interactive mode with full choice list |
339 |
+ separated linking task into explicit function |
340 |
+ option -i asks for manual replacement selections |
341 |
+ options -in print file clusters like "fdupes -r" |
342 |
+ partial code clean up |
343 |
- Bugfixes |
344 |
+ avoid name collisions by generating temporary filenames |
345 |
+ always check files for existance to avoid early termination |
346 |
+ previously checked that permissions differ (instead of being identical) |
347 |
+ previously checked that groups differ (instead of being identical) |
348 |
+ previously checked that users differ (instead of being identical) |
349 |
+ previously checked that times differ (instead of being identical) |
350 |
|
351 |
* Tue Oct 09 2007 devel (AN) <AN@freedup.org> |
352 |
- Enhancements in version 0.9 freedup.c |
353 |
+ added interactive mode (option -i) [this option is still beta] |
354 |
+ added delete selections in interactive mode |
355 |
+ added html documentation to archive |
356 |
+ added tolerance to unavailable files on fopen() [Rel.2] |
357 |
- Enhancements in version 0.9 Makefile |
358 |
+ added definitions: INSTALLDIR, MANPAGEDIR, etc |
359 |
+ added targets: tarball, install, clean, distclean |
360 |
+ version and release are now defined in freedup.spec only |
361 |
+ added test that tries all numeric options during interaction [Rel.2] |
362 |
- Enhancements in version 0.9 freedup.spec |
363 |
+ use install instead of cp |
364 |
|
365 |
* Thu Oct 04 2007 devel (AN) <AN@freedup.org> |
366 |
- Enhancements in version 0.8 |
367 |
+ avoid linking empty files (new option -0) |
368 |
+ avoid printing any information (new option -q) |
369 |
+ updated man page to reflect all options |
370 |
+ added test7 to check for correct handling of empty files |
371 |
- Bugfixes |
372 |
+ use mode instead of size to determine file type |
373 |
+ starting with release 1 (not with 0) |
374 |
+ added aditional file to distribution |
375 |
|
376 |
* Tue Oct 02 2007 devel (AN) <AN@freedup.org> |
377 |
- Enhancements in version 0.7 |
378 |
+ compiles under cygwin (no hash support with cygwin) |
379 |
+ works for NTFS file systems (at least test cases worked) |
380 |
|
381 |
* Fri Sep 21 2007 devel (AN) <AN@freedup.org> |
382 |
- Enhancements in version 0.6 |
383 |
+ MD5 hash scanning may be disabled by options now |
384 |
|
385 |
* Wed Sep 12 2007 devel (AN) <AN@freedup.org> |
386 |
- Enhancements in version 0.5 |
387 |
+ exclude non-regular files from investigation using lstat |
388 |
+ error handling for OS functions now with messages instead of asserts |
389 |
+ corrected and completed some text messages |
390 |
+ Tested 400000 multimedia files in upto 20 trees |
391 |
|
392 |
* Wed Aug 29 2007 devel (AN) <AN@freedup.org> |
393 |
- Enhancements in version 0.4 |
394 |
+ now a single run should be sufficient in most cases |
395 |
+ added -w to force symlinks instead of hardlinks |
396 |
+ added -l to allow only hardlinks and no symlinks |
397 |
+ first test comparing results for different trees |
398 |
+ more structured web page |
399 |
- Bugfixes |
400 |
+ no more overwriting of previously scanned trees |
401 |
+ comparision return values are not zero if additional tests fail |
402 |
+ completed bug fixes from version 0.2 |
403 |
|
404 |
* Fri Aug 24 2007 devel (AN) <AN@freedup.org> |
405 |
- Enhancements in version 0.3 |
406 |
+ splitted user and group comparison into separate tests |
407 |
- Bugfixes |
408 |
+ argument position is now less important than existing link count |
409 |
This was needed to avoid alternating link replacements |
410 |
+ stop when number of changes gets constant :-(healing symptoms) |
411 |
+ do not reset file counter when deciding to realloc() |
412 |
|
413 |
* Tue Aug 21 2007 devel (AN) <AN@freedup.org> |
414 |
- Enhancements in version 0.2 |
415 |
+ call "find" only once |
416 |
+ allow input from stdin |
417 |
+ some code cleaning |
418 |
+ added man page |
419 |
+ added more tests |
420 |
+ improved Makefile |
421 |
- Bugfixes |
422 |
+ added -a to getopt string |
423 |
+ report correct version |
424 |
+ corrected basename macro |
425 |
|
426 |
* Thu Aug 16 2007 devel (AN) <AN@freedup.org> |
427 |
- Initial Release |