diff options
Diffstat (limited to 'tests/deckard/contrib/libfaketime/packaging')
14 files changed, 422 insertions, 0 deletions
diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Arch/PKGBUILD-32bit.txt b/tests/deckard/contrib/libfaketime/packaging/Linux/Arch/PKGBUILD-32bit.txt new file mode 100644 index 0000000..a87dc35 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Arch/PKGBUILD-32bit.txt @@ -0,0 +1,25 @@ +# Maintainer: Robert Orzanna <orschiro@gmail.com> + +_pkgbasename=libfaketime +pkgname=lib32-$_pkgbasename +pkgver=0.9.5 +pkgrel=1 +pkgdesc='Report fake dates and times to programs without having to change the system-wide time.' +arch=('x86_64') +url='http://www.code-wizards.com/projects/libfaketime/' +license=('GPL2') +source=("http://www.code-wizards.com/projects/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz" + 'lib32.patch') +md5sums=('89b5c71e6c6a93b1c6feba374ac37719' + '0a01f842df4c8acbd2b081be046e8d67') + +build() { + cd "${_pkgbasename}-${pkgver}" + patch -p1 -i ../lib32.patch + make +} + +package() { + cd "${_pkgbasename}-${pkgver}" + make PREFIX=/usr DESTDIR="${pkgdir}" install +}
\ No newline at end of file diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/avoid-spurious-lrt.patch b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/avoid-spurious-lrt.patch new file mode 100644 index 0000000..c2f3f3f --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/avoid-spurious-lrt.patch @@ -0,0 +1,30 @@ +Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net> + +On i386 systems, for some reason if i do not clean up this extra -lrt, i get the following error: + + [...] +make[1]: Entering directory `/home/dkg/src/faketime/faketime/src' +cc -o libfaketime.o -c -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -std=gnu99 -Wall -Wextra -Werror -DFAKE_STAT -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'/usr/local'"' -DLIBDIRNAME='"'/lib/faketime'"' -DMULTI_ARCH libfaketime.c +cc -o libfaketime.so.1 -Wl,-soname,libfaketime.so.1 -Wl,-z,relro -Wl,--version-script=libfaketime.map -lrt -shared libfaketime.o -ldl -lm -lpthread -lrt +libfaketime.o: In function `ft_cleanup': +/home/dkg/src/faketime/faketime/src/libfaketime.c:1277: multiple definition of `timer_gettime' +/home/dkg/src/faketime/faketime/src/libfaketime.c:1277: multiple definition of `timer_settime' +collect2: error: ld returned 1 exit status +make[1]: *** [libfaketime.so.1] Error 1 + [...] + +I confess i don't really understand why removing this would fix +things, but i also don't see the need to have multiple attempts to +link to librt. + +--- a/src/Makefile ++++ b/src/Makefile +@@ -69,7 +69,7 @@ + + CFLAGS += -std=gnu99 -Wall -Wextra -Werror -DFAKE_STAT -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' + LIB_LDFLAGS += -shared +-LDFLAGS += -Wl,--version-script=libfaketime.map -lrt ++LDFLAGS += -Wl,--version-script=libfaketime.map + LDADD += -ldl -lm -lpthread -lrt + + SRC = libfaketime.c diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/control b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/control new file mode 100644 index 0000000..e8291a8 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/control @@ -0,0 +1,40 @@ +Source: faketime +Section: utils +Priority: extra +Maintainer: Daniel Kahn Gillmor <dkg@fifthhorseman.net> +Build-Depends: + debhelper (>= 9), + dh-exec (>= 0.3) +Standards-Version: 3.9.4 +Homepage: http://www.code-wizards.com/projects/libfaketime/ +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/faketime.git +Vcs-Git: git://anonscm.debian.org/collab-maint/faketime.git + +Package: faketime +Architecture: any +Pre-Depends: multiarch-support +Depends: ${shlibs:Depends}, ${misc:Depends}, libfaketime (= ${binary:Version}) +Multi-Arch: foreign +Description: report faked system time to programs + The Fake Time Preload Library (FTPL, a.k.a. libfaketime) intercepts + various system calls which programs use to retrieve the current date + and time. It can then report faked dates and times (as specified by + you, the user) to these programs. This means you can modify the + system time a program sees without having to change the time + system-wide. FTPL allows you to specify both absolute dates (e.g., + 2004-01-01) and relative dates (e.g., 10 days ago). + +Package: libfaketime +Architecture: any +Pre-Depends: multiarch-support +Multi-Arch: same +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: report faked system time to programs + The Fake Time Preload Library (FTPL, a.k.a. libfaketime) intercepts + various system calls which programs use to retrieve the current date + and time. It can then report faked dates and times (as specified by + you, the user) to these programs. This means you can modify the + system time a program sees without having to change the time + system-wide. FTPL allows you to specify both absolute dates (e.g., + 2004-01-01) and relative dates (e.g., 10 days ago). + diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/fix-infinite-recursion-on-real_clock_gettime.patch b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/fix-infinite-recursion-on-real_clock_gettime.patch new file mode 100644 index 0000000..2fd64f5 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/fix-infinite-recursion-on-real_clock_gettime.patch @@ -0,0 +1,29 @@ +From: Gerardo Malazdrewicz <gerardo@malazdrewicz.com.ar> +To: 699559@bugs.debian.org +Subject: Avoiding loop (very dirty patch) +Date: Tue, 26 Mar 2013 01:18:05 +0100 + +[Message part 1 (text/plain, inline)] + +Attached patch works for me, but it is very very dirty. + +Possibly side effects. + +Alternative seems to be to protect the call to real_clock_gettime so it is +executed just once (to validate the parameters). Subsequent calls are not +needed (parameters have been validated). + +Thanks, + Gerardo + +--- a/src/libfaketime.c ++++ b/src/libfaketime.c +@@ -1380,7 +1380,7 @@ void __attribute__ ((constructor)) ftpl_init(void) + real_clock_get_time = dlsym(RTLD_NEXT, "clock_get_time"); + real_clock_gettime = apple_clock_gettime; + #else +- real_clock_gettime = dlsym(RTLD_NEXT, "clock_gettime"); ++ real_clock_gettime = dlsym(RTLD_NEXT, "__clock_gettime"); + #ifdef FAKE_TIMERS + real_timer_settime_22 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.2"); + real_timer_settime_233 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.3.3"); diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/libfaketime.install b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/libfaketime.install new file mode 100755 index 0000000..0c2fb6b --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/libfaketime.install @@ -0,0 +1,3 @@ +#!/usr/bin/dh-exec +src/libfaketime.so.1 usr/lib/${DEB_HOST_MULTIARCH}/faketime/ +src/libfaketimeMT.so.1 usr/lib/${DEB_HOST_MULTIARCH}/faketime/ diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/rules b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/rules new file mode 100755 index 0000000..cf3813a --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Debian/rules @@ -0,0 +1,17 @@ +#!/usr/bin/make -f + +# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net> +# Date: Tue, 26 Aug 2008 14:24:50 -0400 + +export DEB_CFLAGS_MAINT_APPEND=-DMULTI_ARCH + +# make sure dh_makeshlibs does not modify post{inst,rm} scripts: +# (avoids lintian's postinst-has-useless-call-to-ldconfig) +override_dh_makeshlibs: + dh_makeshlibs --noscripts + +override_dh_installchangelogs: + dh_installchangelogs NEWS + +%: + PREFIX=/usr dh $@ diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime-fix-infinite-recursion-on-real_clock_gettime.patch b/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime-fix-infinite-recursion-on-real_clock_gettime.patch new file mode 100644 index 0000000..9d81e5e --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime-fix-infinite-recursion-on-real_clock_gettime.patch @@ -0,0 +1,13 @@ +diff --git a/src/libfaketime.c b/src/libfaketime.c +index 3ec372b..f70283b 100644 +--- a/src/libfaketime.c ++++ b/src/libfaketime.c +@@ -1380,7 +1380,7 @@ void __attribute__ ((constructor)) ftpl_init(void) + real_clock_get_time = dlsym(RTLD_NEXT, "clock_get_time"); + real_clock_gettime = apple_clock_gettime; + #else +- real_clock_gettime = dlsym(RTLD_NEXT, "clock_gettime"); ++ real_clock_gettime = dlsym(RTLD_NEXT, "__clock_gettime"); + #ifdef FAKE_TIMERS + real_timer_settime_22 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.2"); + real_timer_settime_233 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.3.3"); diff --git a/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime.spec.txt b/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime.spec.txt new file mode 100644 index 0000000..48f3305 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/Linux/Redhat/libfaketime.spec.txt @@ -0,0 +1,55 @@ +Summary: Manipulate system time per process for testing purposes +Name: libfaketime +Version: 0.9.5 +Release: 4%{?dist} +License: GPLv2+ +Url: http://www.code-wizards.com/projects/%{name}/ +Source: http://www.code-wizards.com/projects/%{name}/%{name}-%{version}.tar.gz +Group: System Environment/Libraries +Patch1: libfaketime-0.9.5-fix-infinite-recursion-on-real_clock_gettime.patch + +%description +libfaketime intercepts various system calls which programs use to +retrieve the current date and time. It can then report faked dates and +times (as specified by you, the user) to these programs. This means you +can modify the system time a program sees without having to change the +time system- wide. + +%prep +%setup -q +%patch1 -p1 +# work around from upstream for autodetecting glibc version bug on i686 +sed -i -e 's/__asm__(".symver timer_gettime_22/\/\/__asm__(".symver timer_gettime_22/' src/libfaketime.c +sed -i -e 's/__asm__(".symver timer_settime_22/\/\/__asm__(".symver timer_settime_22/' src/libfaketime.c + + +%build +cd src ; CFLAGS="$RPM_OPT_FLAGS -Wno-strict-aliasing" make %{?_smp_mflags} \ + PREFIX="%{_prefix}" LIBDIRNAME="/%{_lib}/faketime" all + +%check +make %{?_smp_mflags} -C test all + +%install +make PREFIX="%{_prefix}" DESTDIR=%{buildroot} LIBDIRNAME="/%{_lib}/faketime" install +rm -r %{buildroot}/%{_docdir}/faketime + +%files +%{_bindir}/faketime +%{_libdir}/faketime/libfaketime*so.* +%doc README COPYING NEWS README README.developers +%{_mandir}/man1/* + +%changelog +* Tue Oct 15 2013 Paul Wouters <pwouters@redhat.com> - 0.9.5-4 +- Infinite recursion patch is still needed, make test causes + segfaults otherwise. + +* Mon Oct 14 2013 Paul Wouters <pwouters@redhat.com> - 0.9.5-3 +- Work around from upstream for autodetecting glibc version bug on i686 + +* Mon Oct 14 2013 Paul Wouters <pwouters@redhat.com> - 0.9.5-2 +- Remove use of ifarch for _lib macro for multilib + +* Sun Oct 13 2013 Paul Wouters <pwouters@redhat.com> - 0.9.5-1 +- Initial package diff --git a/tests/deckard/contrib/libfaketime/packaging/OSX/Fink/libfaketime.info b/tests/deckard/contrib/libfaketime/packaging/OSX/Fink/libfaketime.info new file mode 100644 index 0000000..9f1b3ba --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/OSX/Fink/libfaketime.info @@ -0,0 +1,53 @@ +Package: libfaketime +Version: 0.9.7 +Revision: 1 + +Source: http://www.code-wizards.com/projects/%n/%n-%v.tar.gz +Source-MD5: 8617e2c6caf0977b3ce9a271f867302c + +Maintainer: Wolfgang Hommel <wolf@fink.code-wizards.com> +HomePage: https://github.com/wolfcw/libfaketime +License: GPL + +Description: Modify system time for single applications + +DescDetail: << +libfaketime is a library that is dynamically linked to applications +or system commands at run-time by using the DYLD_INSERT_LIBRARIES +mechanism. It then intercepts various system calls, which programs +use to retrieve the current date and time. libfaketime can then +report faked dates and times to these programs. This means you can +modify the system time a program uses without having to change the +date and time system-wide. +<< + +DescUsage: << +libfaketime includes a simple wrapper called faketime. Run the +command faketime without any parameters for usage information. +For information on how to use libfaketime without the wrapper +and access its full raw functionality, please see +%p/share/doc/libfaketime/README* +<< + +BuildDepends: fink (>= 0.28) +Distribution: 10.7, 10.8, 10.9, 10.10, 10.11, 10.12 + +CompileScript: << +#! /bin/sh -ev +make -f Makefile.OSX -C src PREFIX=%{p} +<< + +InfoTest: << + TestScript: make -f Makefile.OSX test || exit 2 +<< + +InstallScript: << +#! /bin/sh -ev +make -f Makefile.OSX -C src install PREFIX=%{i} +<< + +DocFiles: COPYING README README.OSX + +Shlibs: << + !%p/lib/faketime/%N.1.dylib +<< diff --git a/tests/deckard/contrib/libfaketime/packaging/OSX/Homebrew/libfaketime.rb b/tests/deckard/contrib/libfaketime/packaging/OSX/Homebrew/libfaketime.rb new file mode 100644 index 0000000..8d92b76 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/OSX/Homebrew/libfaketime.rb @@ -0,0 +1,21 @@ +require 'formula' + +class Libfaketime < Formula + homepage 'https://github.com/wolfcw/libfaketime' + url 'https://github.com/wolfcw/libfaketime/archive/v0.9.7.tar.gz' + sha1 'eb1cbacf548aefa36214bea1345f35b8763027a1' + + depends_on :macos => :sierra + + fails_with :llvm do + build 2336 + cause 'No thread local storage support' + end + + def install + system "make", "-C", "src", "-f", "Makefile.OSX", "PREFIX=#{prefix}" + bin.install 'src/faketime' + (lib/'faketime').install 'src/libfaketime.1.dylib' + man1.install 'man/faketime.1' + end +end diff --git a/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/Portfile b/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/Portfile new file mode 100644 index 0000000..d4104ad --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/Portfile @@ -0,0 +1,45 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 +# $Id: Portfile 112093 2013-10-11 19:57:13Z ryandesign@macports.org $ + +PortSystem 1.0 +PortGroup github 1.0 + +github.setup wolfcw libfaketime 0.9.7 v + +checksums rmd160 8874d43bb212976d929c3007db0cf978311b3596 \ + sha256 4d65f368b2d53ee2f93a25d5e9541ce27357f2b95e5e5afff210e0805042811e + +categories sysutils +platforms darwin +maintainers code-wizards.com:wolf openmaintainer +license GPL-2 + +description libfaketime modifies the system time for a single application + +long_description libfaketime intercepts various system calls that applications use to \ + retrieve the current date and time. It can then report user-specified \ + faked dates and times to these applications. This allows us to modify \ + the system time an application sees without having to change the time \ + system-wide. The faketime wrapper can be used from command line. \ + Check the documentation on how to integrate into installed applications. + +patchfiles patch-test-Makefile.OSX.diff + +use_configure no + +variant universal {} + +compiler.blacklist *cc* *dragonegg* + +build.args -f Makefile.OSX +build.env CC="${configure.cc}" \ + CFLAGS="[get_canonical_archflags cc]" \ + LDFLAGS="[get_canonical_archflags ld]" \ + PREFIX=${prefix} + +test.run yes +test.args ${build.args} +eval test.env ${build.env} + +destroot.args ${build.args} +eval destroot.env ${build.env} diff --git a/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/patch-test-Makefile.OSX.diff b/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/patch-test-Makefile.OSX.diff new file mode 100644 index 0000000..f60968a --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/OSX/MacPorts/patch-test-Makefile.OSX.diff @@ -0,0 +1,12 @@ +--- test/Makefile.OSX.orig 2013-10-11 09:42:38.000000000 -0500 ++++ test/Makefile.OSX 2013-10-11 14:46:11.000000000 -0500 +@@ -1,7 +1,6 @@ +-CC = gcc ++CC ?= clang + +-CFLAGS = -std=gnu99 -Wall -DFAKE_STAT +-LDFLAGS = ++CFLAGS += -std=gnu99 -Wall -DFAKE_STAT + + SRC = timetest.c + OBJ = ${SRC:.c=.o} diff --git a/tests/deckard/contrib/libfaketime/packaging/OSX/README b/tests/deckard/contrib/libfaketime/packaging/OSX/README new file mode 100644 index 0000000..03b43fa --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/OSX/README @@ -0,0 +1,65 @@ +# Packaging for OS X + +Several software tools assist with the installation of open source software +on OS X. The authors of libfaketime maintain the libfaketime build spec files +for MacPorts, Homebrew, and Fink. + + +## MacPorts + +Installing libfaketime via MacPorts is based on the provided Portfile, which +has been included in the official MacPorts distribution since October, 2013. +Users therefore can use "sudo port install libfaketime" as installation +command. + +Some libfaketime Portfile caveats: + +- Github-based source file distribution +- Non-clang-compilers need to be blacklisted +- MacPorts folks have requested to avoid a platform-specific Makefile.OSX in + the future + +Portfile submission is documented in https://www.macports.org/guide/#project.contributing +and handled via a ticketing system: + +- https://trac.macports.org/ticket/40662 +- https://trac.macports.org/ticket/40748 + + +## Homebrew + +The libfaketime 'formula' for Homebrew is available since November, 2013. +Homebrew users can use 'brew install libfaketime' as installation command. + +Some libfaketime formula caveats: + +- "depends_on :macos => :lion" must be set for libfaketime >=0.9.5 +- :llvm builds <= 2336 must be blacklisted because libfaketime =0.9.5 + requires a compiler with thread local storage support. + +Formula submission is handled via pull request on Github following the +"one formula per commit, one commit per formula" rule, which necessitates +squashing commits and forced pushes when applying fixes. Style issues +complementary to the documentation have been discussed in + + https://github.com/mxcl/homebrew/pull/23245 + + +## Fink + +A libfaketime.info file is included in the Fink 10.7 tree since October, +2013, and installed using + + fink install libfaketime + +Some libfaketime fink info file caveats: + +- The dynamic library must be declared as private Shlib; this also necessitates + BuildDepends: fink (>= 0.28) +- "Distribution: 10.7, 10.8, 10.9" is required because libfaketime >=0.9.5 does + not work on OS X 10.6 or before anymore. +- When compiling, PREFIX=%{p} needs to be used because this path is hardcoded + into the wrapper. However, "make install" needs to deploy into PREFIX=%{i} to + make packaging work. + +Submission is via https://sourceforge.net/p/fink/package-submissions/ diff --git a/tests/deckard/contrib/libfaketime/packaging/README b/tests/deckard/contrib/libfaketime/packaging/README new file mode 100644 index 0000000..7dc6152 --- /dev/null +++ b/tests/deckard/contrib/libfaketime/packaging/README @@ -0,0 +1,14 @@ +# libfaketime packaging + +Not everyone feels comfortable with installing tools and libraries manually +by downloading and building them from source. Luckily enough, voluntary +maintainers prepare new libfaketime releases for various platforms and make +them available as binary packages or otherwise automatically installable +software. + +In this directory, we collect build specification files for the platforms +that we are aware of being actively supported. They help us to analyze +build issues, create awareness for platform-specific patches that had to +be applied and might be merged with our code, and provide the contact +information for future "early release warnings". + |