mainsysutils/freefilesync: unbreak build on 10.x

error: invalid value 'c++14' in '-std=c++14'

../../zen/file_access.cpp:893:15: error: no member named 'futimens' in the global namespace
        if (::futimens(fdFile, newTimes) != 0)
            ~~^
../../zen/file_access.cpp:898:15: error: no member named 'utimensat' in the global namespace
        if (::utimensat(AT_FDCWD, filePath.c_str(), newTimes, AT_SYMLINK_NOFOLLOW) != 0)
            ~~^
2 errors generated.

PR:		207879
Reported by:	pkg-fallout
Approved by:	kevlo (maintainer, previous version)
This commit is contained in:
Jan Beich 2016-03-11 07:41:18 +00:00
parent f76037b0c4
commit b858bdd8f2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=410810
2 changed files with 29 additions and 1 deletions

View file

@ -18,10 +18,15 @@ LIB_DEPENDS= libboost_system.so:${PORTSDIR}/devel/boost-libs \
WRKSRC= ${WRKDIR}/FreeFileSync/Source
USES= compiler:c++11-lang dos2unix gmake pkgconfig zip
USES= compiler:c++14-lang dos2unix gmake pkgconfig zip
USE_LDCONFIG= yes
USE_WX= 3.0+
pre-patch:
# XXX Pretend USES=dos2unix supports DOS2UNIX_WRKSRC=${WRKDIR}
@${SED} 's/^+++ //; /^\.\./!d; s,^,${PATCH_WRKSRC}/,' \
${PATCHDIR}/patch-* | ${XARGS} ${REINPLACE_CMD} 's/ $$//'
post-patch:
@${REINPLACE_CMD} -e 's/wx-config/$${WX_CONFIG:T}/' \
-e 's,g++,$${CXX},' ${WRKSRC}/Makefile

View file

@ -0,0 +1,23 @@
--- ../../zen/file_access.cpp.orig 2016-01-11 12:13:10 UTC
+++ ../../zen/file_access.cpp
@@ -877,6 +877,11 @@ void setFileTimeRaw(const Zstring& fileP
//https://sourceforge.net/p/freefilesync/discussion/open-discussion/thread/218564cf/
newTimes[1] = modTime; //modification time
+#if defined(__FreeBSD__)
+#include <osreldate.h>
+#if __FreeBSD_version < 1002506 || (__FreeBSD_version >= 1100000 && __FreeBSD_version < 1100056)
+ throw ErrorLinuxFallbackToUtimes(L"");
+#else
//=> using open()/futimens() for regular files and utimensat(AT_SYMLINK_NOFOLLOW) for symlinks is consistent with "cp" and "touch"!
if (procSl == ProcSymlink::FOLLOW)
{
@@ -898,6 +903,8 @@ void setFileTimeRaw(const Zstring& fileP
if (::utimensat(AT_FDCWD, filePath.c_str(), newTimes, AT_SYMLINK_NOFOLLOW) != 0)
THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtPath(filePath)), L"utimensat");
}
+#endif
+#endif
}