pkgsrc/archivers/dar/Makefile

116 lines
3.4 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.51 2014/10/09 14:05:51 wiz Exp $
Updated to latest release, 2.4.13, as requested by doc/TODO. Removed patches which were applied upstream or deprecated. USE_TOOLS+=groff to fix generation of a few .html files on OpenBSD. Depends on libgcrypt instead of openssl now. From ChangeLog: from 2.4.12 to 2.4.13 - adding initialization value for two variables to avoid inappropriate warning when compiling with -Wall option - reducing UNIX_PATH_MAX by the system when not defined from 108 to 104 bytes to accommodate BSD systems - fixing assignment operator of class criterium that was not returning any value as it should - removing useless boolean expression that always succeeds in logical AND expression - adding support for back-slash of quoting characters in DCF files - fixed compilation issues with clang / FreeBSD, Thanks to Neil Darlow's server ;-) - fixed compilation warning due to deprecated symbols in libgcrypt header files - replaced gnu make specific rules by legacy ones to avoid automake warning about them - removed old unused stuff from misc sub-directory - adding warning at compilation time if libgcrypt used is older than 1.6.0 - adding warning at execution time if hash computation is requested with slices greater than 256 Gio and ligbcrypt dynamically or statically linked is older than 1.6.0 - adding alternative methods in list_entry API class to return dates as number of seconds - fixed bug in hour-shift (-H option) when comparing dates from an old extracted catalogue (archive format 7 or older). - fixed documentation bug about the meaning of the compression ratio - fixed a display bug about the "compression flag" wrongly displayed for uncompressed files - fixed unhandled exception when giving non number argument to -1 option from 2.4.11 to 2.4.12 - for correctness fixed delete vs delete[] on vector of char (not incidence reported) - fixed out of range access in routine used to read very old archive format - fixed error in logical expression leading a sanity test to be useless - removed duplicated variable assignment - updated FAQ - fixed typo and spelling errors - fixed bug (reported by Torsten Bronger) in the escape layer leading libdar to wrongly reporting a file as corrupted at reading time - fixed bug in the sparse file detection mechanism that lead the minimum size hole detection to become a multiple of the default value or specified one. This implied a less efficient reduction of sparse files because smaller holes in files were ignored - fixed and updated man page about --go-into option - updated full-from-diff target in /etc/darrc default file - added a debug option in hash_file class (option only used from testing tools) to troubleshoot sha1/md5 hash problem on slices larger than (2**38)+63 bytes, bug reported by Mike Lenzen and understood by Yuriy Kaminskiy at libgcrypt. Note: This bug is still open due to an integer overflow in libgcrypt. - backported from current development code an additional and more simple way to read an archive using the libdar API. This API extension is not used by dar command-line tools for now. - Fixing installation of libdar header files on Darwin, where "DARwin" macros were not filtered out from the generated libdar header files. - Fixing self reported bug 'generic_file.cpp line 309' met while comparing an archive with a filesystem - Update code in order to compile with gcc-4.8.2 in g++11 mode (partial implementation and adaptation of Fabian Stanke's patch) - Fixing bug met while performing a verbose archive listing in sequential read mode - Added Ryan Schmidt's Patch to properly display status at end of ./configure script under BSD systems (in particular Mac OS X) - Updating configure.ac script to fix warning reported by autoconf when generating the ./configure script - Addressed portability problem with BSD systems that do not provide a -d option to the 'cp' command, preventing proper installation of the Doxygen documentation. Fix based on patch provided by Jan Gosmann. from 2.4.10 to 2.4.11 - Modified behavior of 'dar -h' and 'dar -V', both now return 0 as exist status instead of 1 (which means syntax error). - Fixed bug: -Q is now available with -V under the collapsed form -QV or -VQ - fixed typo in documentation - fixed memory leakage met when dar fails a merging operation because the resulting archive is specified in an directory that does not exist. - fixed bug met when isolating a differential backup in sequential read mode - fixed bug about slice file permission not taking care about umask variable when the --hash feature is used. - fixed performance issue when reading an archive over a pair of piles using dar_slave (possibly over ssh) when the archive makes use of escape marks and when no encryption is used - added target "full-from-diff" in /etc/darrc default file - fixed bug avoiding reading an truncated archive in direct access mode with the help of an external catalogue. - new and better implementation of archive extraction in sequential read mode - fixing bug (segfault) met when hitting CTRL-C while reading an archive in sequential mode - fixing libdar.pc for pkg-config for the cflags given to external applications - fixed memory allocation/desallocation mismatches (delete vs delete [] ) concerning four vector of chars. - fixed error in logical expression leading a sanity test to be useless
2014-05-14 06:35:20 +02:00
DISTNAME= dar-2.4.13
CATEGORIES= archivers sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=dar/}
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://dar.linux.free.fr/
COMMENT= Disk archiver
LICENSE= gnu-gpl-v2
2004-05-16 18:37:02 +02:00
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
2005-06-30 20:31:24 +02:00
USE_PKGLOCALEDIR= yes
2014-09-24 12:58:51 +02:00
USE_TOOLS+= gmake groff gsed pkg-config bash:run
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --disable-dar-static
CONFIGURE_ARGS+= --enable-static=no
CONFIGURE_ARGS+= --disable-nodump-flag
2004-05-12 07:31:28 +02:00
CONFIGURE_ARGS+= --disable-upx
CONFIGURE_ARGS+= --enable-examples
CONFIGURE_ARGS+= doxygen=no
PKGCONFIG_OVERRIDE= src/libdar/libdar.pc.tmpl.in
## We use the logic below to find a path for a non-existent ${BASH}.
## Yeah, I suppose it's a hack, but it does work.
#
CHECK_INTERPRETER_SKIP+= share/dar/samples/*
REPLACE_PERL+= doc/samples/dar_backup
REPLACE_BASH+= doc/samples/*.bash doc/samples/*.sh doc/samples/*.duc
## Our threading check here is the same as the one used in devel/perl5.
#
CHECK_BUILTIN.pthread:=yes
. include "../../mk/pthread.builtin.mk"
CHECK_BUILTIN.pthread:=no
## XXX I'm following the USE_FEATURES semantics used in security/openssl.
#
.if !empty(USE_BUILTIN.pthread:tl:Myes)
USE_FEATURES.dar= threads
.else
USE_FEATURES.dar= # empty
.endif
PKG_OPTIONS_VAR= PKG_OPTIONS.dar
PKG_OPTIONS_OPTIONAL_GROUPS= int
PKG_OPTIONS_GROUP.int= dar-int32 dar-int64
PKG_SUGGESTED_OPTIONS= dar-int64 ${USE_FEATURES.dar}
PKG_SUPPORTED_OPTIONS= threads
.include "../../mk/bsd.options.mk"
## Dar is built by default with an arbitrary-size-integer library for
## managing all file length/timestamp details. If 32-bit or 64-bit
## integers (with overflow protection) are sufficient for requirements,
## the following options can significantly reduce the run-time memory
## and CPU overheads of Dar.
#
DARBITS= ${PKG_OPTIONS:C/[^[:digit:]]*//:M[36][24]}
PLIST_SUBST+= DARBITS=${DARBITS}
.if !empty(DARBITS)
CONFIGURE_ARGS+= --enable-mode=${DARBITS:Q}
.endif
EGDIR= ${PREFIX}/share/examples/dar
INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR}
CONF_FILES= ${EGDIR}/darrc ${PKG_SYSCONFDIR}/darrc
## We want the threading library to be specified by pkgsrc, and only
## when desired, viz. in the case below. Using PTHREAD_AUTO_VARS
## with the accompanying BUILDLINK_TRANSFORM directive is easier
## then patching configure.
#
.if !empty(PKG_OPTIONS:Mthreads)
USE_FEATURES.openssl+= threads
PTHREAD_AUTO_VARS= yes
BUILDLINK_TRANSFORM+= rm:-lpthread
Update to dar 2.3.3, and also fix PLIST for dar-int32 and dar-int64 Pkgsrc options. Upgrading to 2.3.3 is strongly recommended if you use Dar to backup across multiple filesystems: http://article.gmane.org/gmane.comp.sysutils.backup.dar.announce/31 Changelog entry from 2.3.2 to 2.3.3: - avoid using getpwuid() and getgrgid() for static linking. - fixed typo in dar's man page - update FAQ - fixed bug: uncaught exception thrown when CTRC-C was hit while dar waits an answer from the user [SF #1612205] - fixed bug: unusable archive generated when CTRC-C was hit and blowfish encryption used [SF #1632273] - added a check to verify that the libdar used is compatible with the current dar suite programs [SF #1587643] - fixed bug: added workaround for the right arithmetic shift operator (the binary produced by gcc-3.4.2 produces computes "v>>s" equal to "v" when when v is a integer field composed of s exactly bits. It should rather compute it to zero...). this problem leads 32 bits generated archive incompatible with 64 bits generated archive only when blowfish is used. - fixed bug met when the inode space is exhausted, thanks to "Jo - Ex-Bart" for this new feedback. [SF #1632738] - replaced &, <, >, ' and " in XML listing by &...; corresponding sequence. [SF #1597403] - dar_manager can receive arguments after stick to -o options (it is an error in regard to documentation, but no warning was issued in that case, leading to confusion for some users) [SF #1598138] - updated Veysel Ozer's automatic_backup script - fixed hard link detection problem [SF #1667400] - verbose output did not displayed hard links information - merged patch on dar_cp by Andrea Palazzi to have it to return EXIT_DATA_ERROR when some data have been reported [SF #1622913]
2007-03-18 05:36:23 +01:00
.else
CONFIGURE_ARGS+= --disable-thread-safe
.endif
UNLIMIT_RESOURCES= datasize
## XXX Needed for getopt() with SunPro (USE_FEATURES?)
#
CPPFLAGS.SunOS+= -D__EXTENSIONS__
.include "../../mk/bsd.fast.prefs.mk"
## Build a static binary with threads is currently broken with glibc.
.if ${OPSYS} == "Linux" && !empty(PKG_OPTIONS:Mthreads)
SUBST_CLASSES+= static
SUBST_STAGE.static= post-patch
SUBST_MESSAGE.static= Changing -all-static to -static
SUBST_FILES.static= src/testing/Makefile.in
SUBST_SED.static= -e 's,-all-static,-static,g'
.endif
.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
Update to 2.4.10 Changelog: from 2.4.9 to to 2.4.10 - fixing libdar about dar_manager database corruption that occurred when deleting the first archive of a base containing a plain file only existing in that first archive. - Added code to cleanup databases instead of aborting and reporting that previously described type of database corruption. - Added feature when comparing archive with filesystem in order to report the offset of the first difference found in a file. This was necessary to help solving the following bug: - fixed bug in sparse file detection mechanism that could lead in some very particular (and rare) situations to the loss of one byte from file being saved. In that case testing the archive reported a CRC error for that file. So if you keep testing achives in your backup process and have not detect any problem, you can then keep relying on your old backups. This bug also expressed when merging archives: dar aborted and reported that a merged file had a different CRC than the one stored in the archive of reference. from 2.4.8 to 2.4.9 - fixed bug: during differential backup dar saved unchanged hard linked inode when a hard link on that inode was out of the -R root directory. This also has the effect to always save files with long names on NTFS filesystems (!) - Adapted patch provided by Kevin Wormington (new messages displayed) - Fixed syntax error in configure script about execinfo detection - Removed unused AM_ICONV macro from configure script - fixed bug met under Cygwin when auxiliary test command failed to link when libgcrypt was not available. - updated mini-howto by Grzegorz Adam Hankiewicz - updating French message translations - restricted security warning for plain files and hard linked plain files - fixed display bug in dar_cp when manipulating files larger than 2 GB - fixed SEGFAULT met when adding to a dar_manager database an archive which base name is an empty string - improved error message, reporting the -B included file in which a syntax error has been met - modified dar_manager database to consider both ctime and mtime as timestamp value for data of saved files. This suppresses the warning about badly ordered archives in database when at some files have been restores from a old backup. from 2.4.7 to 2.4.8 - documentation fixes and updates - improved database listing efficiency - reduced memory usage of the caching layer in libdar - fixed self reported bug caused by memory allocation failure - fixed a SIGSEGV caused by double free in dar_xform when syntax error is met on command-line - dar_xform was not able to properly transform archive generated by dar older than release 2.4.0 - fixed bug that lead dar be unable to remove a directory at restoration time - replaced old remaining "bcopy" occurrence by a call to memcpy - fixed compilation warning under ArchLinux - fixed crash met while creating a backup with on-fly isolation - fixed libdar behavior when reading a strongly corrupted encrypted archive from 2.4.6 to 2.4.7 - fixing memory allocation bug in crc class, that lead glibc aborting dar - reviewed code and replaced some remaining occurences of bzero/bcopy by their recommended replacement version - fixed compilation problem under Solaris - fixed bug that could lead a file to be wrongly reported as different from the one on filesystem, when that file has been changed while it was saved, then saved a second time but has its size modified since the first time it was saved. from 2.4.5 to 2.4.6 - fixed bug met while interrupting compressed archive creation, the resulting archive was only readable in --sequential-read mode - fixed bug met while reading an interrupted archive in sequential reading mode. It lead dar to not release some objects from memory at the end of the operation, which displayed an ugly error message from libdar selfcheck routine. - fixed message reporting unknown system group when converting gid to name (was reporting unknow "user" instead of unknown "group") - removing the $Id:$ macro from file as we moved from CVS to GIT - updating package to distribute Patrick Nagel's scripts and documentation - updated URL pointing to Patrick Nagel's web site - updating documentation describing how to get source code from GIT (no more from CVS) - fixed typo in configure.ac - added info on how to build a brand-new dar tarball from source in GIT - modifies the end of messages shown by -h option to point to man page for more _options_ rather than _details_ - replaced &minus; in the HTML generated documentation by a standard ASCII dash - fixed alignement bug in CRC calculation that lead libdar based application to crash on sparc-based systems. from 2.4.4 to 2.4.5 - updated sample scripts to be compatible with dar's --min-digit option - added missing included file to be able to compile with gcc-4.7.0 - removing an unused variable in filtre.cpp - fixed a display bug when comparing archive with filesystem, leading to a segmentation fault (%S in place of %i in mask) - fixed bug leading dar to not restore some directories from differential backups when they are absent in the filesystem - fixed bug that show a "uncaught exception" message at the end of archive listing for dar shared binaries only, compiled in infinint mode, under ArchLinux - updated the configure script to link with libexecinfo when available - added possibility to disable the use of execinfo in libdar thanks to the new --disable-execinfo option for the ./configure script - added Andreas Wolff patch to fix bug under Cygwin (segfault on program termination). from 2.4.3 to 2.4.4 - fixed man pages in the NAME section: added whatis entry - fixed segfault: in the internal error reporting code (delete[] in place of free()) - fixed bug: dar_manager was not able to read properly the latest generated databases version when having Extended Attributes recorded for some files - avoided reporting unreleased memory block when compilation optimization have been used (dar, dar_manager, dar_cp, dar_slave, dar_xform do all reported unreleased memory when gcc optimization was used in "infinint" mode) from 2.4.2 to 2.4.3 - fixed absurd compilation warning about possibly uninitialized variable - added -ai switch to dar_manager to disable warning about improper file order in database. - fixed bug met while changing order of archives in a dar_manager database - avoiding concurrent use of -p and -Q options, error message shown in that situation. - modified slice overwriting detection code to use a single atomic system call to create a new slice - replaced delete by delete[] for conversion routine of user/group to uid/gid - added the possibility to disable speed optimization for large directories - added memory troubleshooting option --enable-debug-memory - simplified class CRC implementation - fixed failed memory release upon exception thrown in class deci - modified tlv, tlv_list classes and ea_filesystem routines to not require any corresponding temporary objects in libdar (saves a few new/delete calls) - fixed silent bug in tlv class: due to the absence of copy constructor and destructor, some memory was not released and referred after the corresponding object's destruction - modified generic_file class to avoid temporary crc objects - fixed bug in header class that lead unreleased field (this class lacked a destructor), memory impact was however little: 10 bytes per slice - fixing bug in class tlv: unreleased memory - added protection code in class deci to properly release memory against exception thrown from called routines when user interrupts the operation. - replace previous internal stack report code by backtrace()/backtrace_symbols() - complete change of the implementation of the 'special-alloc' feature: the old code eat too much memory not to be adapted to new features added in release 2.4.0. This new implementation also bring some speed improvement from 2.4.1 to 2.4.2 - fixing bug met when reading an archive in sequential-read mode - fixing bug while filtering in sequential-read mode - fixing backward compatibility in dar_manager with old archives (wrong dates for deleted files). - fixing compilation problem on certain systems (missing #include statement) - fixing documentation syntax and spelling
2013-06-28 17:03:55 +02:00
BUILDLINK_TRANSFORM= l:execinfo:execinfo:elf
.endif
.include "../../archivers/bzip2/buildlink3.mk"
2014-04-15 22:36:06 +02:00
.include "../../devel/libexecinfo/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
Updated to latest release, 2.4.13, as requested by doc/TODO. Removed patches which were applied upstream or deprecated. USE_TOOLS+=groff to fix generation of a few .html files on OpenBSD. Depends on libgcrypt instead of openssl now. From ChangeLog: from 2.4.12 to 2.4.13 - adding initialization value for two variables to avoid inappropriate warning when compiling with -Wall option - reducing UNIX_PATH_MAX by the system when not defined from 108 to 104 bytes to accommodate BSD systems - fixing assignment operator of class criterium that was not returning any value as it should - removing useless boolean expression that always succeeds in logical AND expression - adding support for back-slash of quoting characters in DCF files - fixed compilation issues with clang / FreeBSD, Thanks to Neil Darlow's server ;-) - fixed compilation warning due to deprecated symbols in libgcrypt header files - replaced gnu make specific rules by legacy ones to avoid automake warning about them - removed old unused stuff from misc sub-directory - adding warning at compilation time if libgcrypt used is older than 1.6.0 - adding warning at execution time if hash computation is requested with slices greater than 256 Gio and ligbcrypt dynamically or statically linked is older than 1.6.0 - adding alternative methods in list_entry API class to return dates as number of seconds - fixed bug in hour-shift (-H option) when comparing dates from an old extracted catalogue (archive format 7 or older). - fixed documentation bug about the meaning of the compression ratio - fixed a display bug about the "compression flag" wrongly displayed for uncompressed files - fixed unhandled exception when giving non number argument to -1 option from 2.4.11 to 2.4.12 - for correctness fixed delete vs delete[] on vector of char (not incidence reported) - fixed out of range access in routine used to read very old archive format - fixed error in logical expression leading a sanity test to be useless - removed duplicated variable assignment - updated FAQ - fixed typo and spelling errors - fixed bug (reported by Torsten Bronger) in the escape layer leading libdar to wrongly reporting a file as corrupted at reading time - fixed bug in the sparse file detection mechanism that lead the minimum size hole detection to become a multiple of the default value or specified one. This implied a less efficient reduction of sparse files because smaller holes in files were ignored - fixed and updated man page about --go-into option - updated full-from-diff target in /etc/darrc default file - added a debug option in hash_file class (option only used from testing tools) to troubleshoot sha1/md5 hash problem on slices larger than (2**38)+63 bytes, bug reported by Mike Lenzen and understood by Yuriy Kaminskiy at libgcrypt. Note: This bug is still open due to an integer overflow in libgcrypt. - backported from current development code an additional and more simple way to read an archive using the libdar API. This API extension is not used by dar command-line tools for now. - Fixing installation of libdar header files on Darwin, where "DARwin" macros were not filtered out from the generated libdar header files. - Fixing self reported bug 'generic_file.cpp line 309' met while comparing an archive with a filesystem - Update code in order to compile with gcc-4.8.2 in g++11 mode (partial implementation and adaptation of Fabian Stanke's patch) - Fixing bug met while performing a verbose archive listing in sequential read mode - Added Ryan Schmidt's Patch to properly display status at end of ./configure script under BSD systems (in particular Mac OS X) - Updating configure.ac script to fix warning reported by autoconf when generating the ./configure script - Addressed portability problem with BSD systems that do not provide a -d option to the 'cp' command, preventing proper installation of the Doxygen documentation. Fix based on patch provided by Jan Gosmann. from 2.4.10 to 2.4.11 - Modified behavior of 'dar -h' and 'dar -V', both now return 0 as exist status instead of 1 (which means syntax error). - Fixed bug: -Q is now available with -V under the collapsed form -QV or -VQ - fixed typo in documentation - fixed memory leakage met when dar fails a merging operation because the resulting archive is specified in an directory that does not exist. - fixed bug met when isolating a differential backup in sequential read mode - fixed bug about slice file permission not taking care about umask variable when the --hash feature is used. - fixed performance issue when reading an archive over a pair of piles using dar_slave (possibly over ssh) when the archive makes use of escape marks and when no encryption is used - added target "full-from-diff" in /etc/darrc default file - fixed bug avoiding reading an truncated archive in direct access mode with the help of an external catalogue. - new and better implementation of archive extraction in sequential read mode - fixing bug (segfault) met when hitting CTRL-C while reading an archive in sequential mode - fixing libdar.pc for pkg-config for the cflags given to external applications - fixed memory allocation/desallocation mismatches (delete vs delete [] ) concerning four vector of chars. - fixed error in logical expression leading a sanity test to be useless
2014-05-14 06:35:20 +02:00
.include "../../security/libgcrypt/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"