diff options
author | Göktürk Yüksek <gokturk@gentoo.org> | 2018-04-04 07:01:32 -0400 |
---|---|---|
committer | Göktürk Yüksek <gokturk@gentoo.org> | 2018-04-04 07:22:40 -0400 |
commit | 3bf2cef453d6ee0d6aece0e8e91a049d556e2687 (patch) | |
tree | c94dffa8fde70b484968d0b9e936caa844456a7c /app-forensics | |
parent | net-analyzer/wireshark: Version 2.4.6. (diff) | |
download | gentoo-3bf2cef453d6ee0d6aece0e8e91a049d556e2687.tar.gz gentoo-3bf2cef453d6ee0d6aece0e8e91a049d556e2687.tar.bz2 gentoo-3bf2cef453d6ee0d6aece0e8e91a049d556e2687.zip |
app-forensics/sleuthkit: bump to 4.6.0
This bump starts to bundle libewf since app-forensics/libewf is about
to get treecleaned (see #547418). The upstream only supports libewf
version 20130128[0], which is not available in the tree. Because they
haven't clarified the supported libewf versions until recently, we
have been depending on any version and it's been causing build
failures (see #607968). Although there are compatibility patches to
support later versions of libewf in tsk, they are not supported by
upstream. There's little to no expactation of tsk updating its code to
use the latest libewf since they've forked the version 20130128[1].
In terms of stability, 20130128 was marked stable in Gentoo at some
point[2]. There are no known security vulnerabilities. If in the
future the upstream fork diverges, we can add it to the tree as a new
package and establish a proper dependency relationship.
Note though that the ewf USE flag is masked by treecleanears[3], so
this change currently has no visible impact on users.
[0] https://github.com/sleuthkit/sleuthkit/blob/sleuthkit-4.6.0/INSTALL.txt#L44
[1] https://github.com/sleuthkit/libewf_64bit
[2] https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-forensics/libewf/libewf-20130128.ebuild?revision=1.6&view=markup
[3] https://gitweb.gentoo.org/repo/gentoo.git/tree/profiles/base/package.use.mask?id=f103062521b15cddc67a822a7a25640d3fbab76a#n65
Bug: https://bugs.gentoo.org/547418
Bug: https://bugs.gentoo.org/607968
Package-Manager: Portage-2.3.27, Repoman-2.3.9
Diffstat (limited to 'app-forensics')
-rw-r--r-- | app-forensics/sleuthkit/Manifest | 2 | ||||
-rw-r--r-- | app-forensics/sleuthkit/sleuthkit-4.6.0.ebuild | 229 |
2 files changed, 231 insertions, 0 deletions
diff --git a/app-forensics/sleuthkit/Manifest b/app-forensics/sleuthkit/Manifest index 3d2a1cad3256..c87d47621d4f 100644 --- a/app-forensics/sleuthkit/Manifest +++ b/app-forensics/sleuthkit/Manifest @@ -1,6 +1,8 @@ +DIST libewf-20130128.tar.gz 1978794 BLAKE2B e5d2bd8f4a8b878e13536b89b032d8cee6982272065b2bf325f8a811dff258264118a79496912377337ceb9ad630138b6bedb89e3c3be89a5f6a6fea85ab586b SHA512 94cdd0c3f0d8f535f3462c5adba266302f9b129abacda077ed429fa38af6862fca5a90ba2e606b78607b509769305cc6134c483c7033c20e226596cca2d42b90 DIST sleuthkit-4.0.2.tar.gz 7577570 BLAKE2B 7199adce8b85d75a031e7f133ba175ff3ef1f87cae9ba9a3ce02a321b11f0a5bcb9023730df1b35956dc61c15025f9a4a141255f62698800938c90376feed8c9 SHA512 acf1d6006db3e75675eb769034ea78fd78133ac0f83c9caa74ec720c0dd25f95fb1a5df2c652027eeeac53e1fca6a3096b5248db95e3a01ce95e72e779e44f37 DIST sleuthkit-4.1.0.tar.gz 7974564 BLAKE2B c736b26713abf7df45b873099fe7886825be3c0fc5cb288e9a207fb9b404df890420ac1664ab45cc3866cb6a69ad31fe9c8e4cb6caa662e5dfc8ee36acdb4670 SHA512 1cfa96bd3746c59c92c3e3f07f5f3f0f6896239bcaec012c43958654bb63794ecf9d7bd28bb9b4ab939558f4b27f03cd87f645ea91a8f9cfbb9037df93ef5223 DIST sleuthkit-4.1.2.tar.gz 7990136 BLAKE2B 02aa1545261f6b8a9c03c3f78563aea9e2cf521622fba2b91140de1162c10b5d1f3f7110bef598d45be5612d44e2bf6d4096fd731c486498e2524566a75a8300 SHA512 1f64acf42e86adf275bcd86c63c097210a498ac34ce69e64b3c120d86dffae65b5d57ed9618692dd510f637e940a48a60912dd57c8de840bf3a2b4428baabab8 DIST sleuthkit-4.1.3.tar.gz 7952733 BLAKE2B ffdf19904275a6a9f96a822e33097db60ae0c8e9a034813c6a6f917845811ee9e2b7c52db85aacdd3d4d9bf7c2ae8974840849f6922248af5104298952d6ad3a SHA512 66f6ac32da5a21b3505390557ed6cf7bbcfcca69f231e20a7086fd48c5de45a3f064a716837d25eb582d0a89bae3b6ba7e89dcf3159e1cacdb4b5d452d0ce9a2 DIST sleuthkit-4.5.0.tar.gz 8611141 BLAKE2B a1ae66bfcb74ce1fec24f80dfe60cd68f1de53119331c38848f7f82de8052eda49d78fdea49e42ada5843094939ef212dece42a5ceb85931a79e02adccda30e6 SHA512 911890cacca739f121681514197104cb2dc3bd219f3e068c4ce61264498c56989359976fc75172e1f456c94e4e25c6206413b0234c36e55736a577b8e664e4b3 +DIST sleuthkit-4.6.0.tar.gz 8634432 BLAKE2B b45721cdee798d84f0caa0bfe38645346539bb497f5a492c72016a6b3b0246b362ecea676a7a0e788d66cc0dc32335e719912434bd61aa205b7d51b8d4bd7c14 SHA512 dbf880e8503dccb0a686f1d9658d56e9cb40f452127f9b713cf2a4941f4083fa1cf80a886994d58421307a679242cd4ee005b3e874cf429cfb140a597a0dc739 DIST sqlite-jdbc-3.8.11.jar 5131732 BLAKE2B 1a04fa9e9cb97fdddc19af2de9efa7b54c0b527642e6e325e31054e4e294e3bc6af00ea291087ed9dd26668d48dae356035fc85212c0eb81656550d552103ed0 SHA512 5f4705101992e8916e29742c560aef0d01eba9dc0d2d984b75a77e56be3c9fd20b284390fe8f9bb54bf9d1f8528c3413922684c446212ca8961ac731543fb179 diff --git a/app-forensics/sleuthkit/sleuthkit-4.6.0.ebuild b/app-forensics/sleuthkit/sleuthkit-4.6.0.ebuild new file mode 100644 index 000000000000..ece90fe8ab4b --- /dev/null +++ b/app-forensics/sleuthkit/sleuthkit-4.6.0.ebuild @@ -0,0 +1,229 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +JAVA_PKG_BSFIX_NAME="build.xml build-unix.xml" +inherit autotools java-pkg-opt-2 java-ant-2 + +DESCRIPTION="A collection of file system and media management forensic analysis tools" +HOMEPAGE="https://www.sleuthkit.org/sleuthkit/" +# TODO: sqlite-jdbc does not exist in the tree, we bundle it for now +# TODO: Upstream uses a very specific version of libewf which is not in +# the tree anymore. So we statically compile and link to sleuthkit. +# Hopefully upstream will figure something out in the future. +SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.gz + java? ( http://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.8.11/sqlite-jdbc-3.8.11.jar ) + ewf? ( https://dev.gentoo.org/~gokturk/distfiles/app-forensics/libewf/libewf-20130128.tar.gz )" + +LICENSE="BSD CPL-1.0 GPL-2+ IBM java? ( Apache-2.0 )" +SLOT="0/13" # subslot = major soname version +KEYWORDS="~amd64 ~hppa ~ppc ~x86" +IUSE="aff doc ewf java static-libs test +threads zlib" + +DEPEND=" + dev-db/sqlite:3 + dev-lang/perl:* + aff? ( app-forensics/afflib ) + ewf? ( sys-libs/zlib ) + java? ( + >=virtual/jdk-1.8:* + >=dev-java/c3p0-0.9.5:0 + >=dev-java/jdbc-postgresql-9.4:0 + ) + zlib? ( sys-libs/zlib ) +" +RDEPEND="${DEPEND} + java? ( >=virtual/jre-1.8:= ) +" +DEPEND="${DEPEND} + doc? ( app-doc/doxygen ) + test? ( >=dev-util/cppunit-1.2.1 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.1.0-tools-shared-libs.patch +) + +src_unpack() { + local f + + unpack ${P}.tar.gz + + # Ick, the upstream is stuck at libewf-20130128 which is + # not even in the tree anymore. So we have to bundle it. + if use ewf; then + pushd "${T}" &>/dev/null || die + unpack libewf-20130128.tar.gz + export TSK_LIBEWF_SRCDIR="${T}"/libewf-20130128 + popd &>/dev/null || die + fi + + # Copy the jar files that don't exist in the tree yet + if use java; then + TSK_JAR_DIR="${S}/bindings/java/lib" + mkdir "${TSK_JAR_DIR}" || die + for f in ${A}; do + if [[ ${f} =~ .jar$ ]]; then + cp "${DISTDIR}"/"${f}" "${TSK_JAR_DIR}" || die + fi + done + export TSK_JAR_DIR + fi +} + +src_prepare() { + if use ewf; then + # Yeah, libewf-20130128 obviously doesn't just nicely compile + sed -e 's/LIBUNA_INLINE inline/LIBUNA_INLINE/' \ + -i "${TSK_LIBEWF_SRCDIR}"/libuna/libuna_inline.h || die + fi + + if use java; then + pushd "${S}"/bindings/java &>/dev/null || die + + # Prevent "make install" from installing + # jar files under /usr/share/java + # We'll use the java eclasses for this + sed -e '/^jar_DATA/ d;' -i Makefile.am || die + + # Disable dependency retrieval using ivy + # We will handle it ourselves + sed -e '/name="compile"/ s/, retrieve-deps//' \ + -e '/name="dist-/ s/, init-ivy//g' \ + -i build.xml || die + + java-pkg-opt-2_src_prepare + + popd &>/dev/null || die + fi + + # Override the doxygen output directories + if use doc; then + sed -e "/^OUTPUT_DIRECTORY/ s|=.*$|= ${T}/doc|" \ + -i tsk/docs/Doxyfile \ + -i bindings/java/doxygen/Doxyfile || die + fi + + # It's safe to call this even after java-pkg-opt-2_src_prepare + # because future calls to eapply_user do nothing and return 0 + default + + eautoreconf +} + +tsk_compile_libewf() { + local myeconfargs=( + --prefix=/ + --libdir=/lib + --enable-static + --disable-shared + --disable-winapi + --without-libbfio + --with-zlib + --without-bzip2 + --without-libhmac + --without-openssl + --without-libuuid + --without-libfuse + ) + # We want to contain our build flags + local CFLAGS="${CFLAGS}" + local LDFLAGS="${LDFLAGS}" + + pushd "${TSK_LIBEWF_SRCDIR}" &>/dev/null || die + + # Produce relocatable code + CFLAGS+=" -fPIC" + LDFLAGS+=" -fPIC" + econf "${myeconfargs[@]}" + + # Do not waste CPU cycles on building ewftools + sed -e '/ewftools/ d' -i Makefile || die + emake + + # Only install the headers and the library + emake -C libewf DESTDIR="${T}"/image install + emake -C include DESTDIR="${T}"/image install + + popd &>/dev/null || die +} + +src_configure() { + local myeconfargs=( + $(use_enable java) + $(use_enable static-libs static) + $(use_enable threads multithreading) + $(use_with aff afflib) + $(use_with ewf libewf) + $(use_with zlib) + ) + + if use ewf; then + tsk_compile_libewf + myeconfargs+=( $(use_with ewf libewf "${T}"/image) ) + fi + + if use java; then + pushd "${S}"/bindings/java &>/dev/null || die + java-ant-2_src_configure + popd &>/dev/null || die + fi + + econf "${myeconfargs[@]}" +} + +src_compile() { + # Create symlinks of jars for the required dependencies + if use java; then + pushd "${S}"/bindings/java &>/dev/null || die + + java-pkg_jar-from --into "${TSK_JAR_DIR}" c3p0 + java-pkg_jar-from --into "${TSK_JAR_DIR}" jdbc-postgresql + + popd &>/dev/null || die + fi + + # Create the doc output dirs if requested + if use doc; then + mkdir -p "${T}"/doc/{api-docs,jni-docs} || die + fi + + emake all $(usex doc api-docs "") +} + +src_install() { + local f + + if use java; then + pushd "${S}"/bindings/java &>/dev/null || die + + java-pkg_dojar dist/${P}.jar + + # Install the bundled jar files + pushd "${TSK_JAR_DIR}" &>/dev/null || die + for f in *; do + # Skip the symlinks java-pkg_jar-from created + [[ -f ${f} ]] || continue + + # Strip the version numbers as per eclass recommendation + [[ ${f} =~ -([0-9].)+.jar$ ]] || continue + + java-pkg_newjar "${f}" "${f/${BASH_REMATCH[0]}/.jar}" + done + popd &>/dev/null || die + + popd &>/dev/null || die + fi + + default + + # It unconditionally builds both api and jni docs + # We install conditionally based on the provided use flags + if use doc; then + dodoc -r "${T}"/doc/api-docs + use java && dodoc -r "${T}"/doc/jni-docs + fi + + find "${D}" -name '*.la' -delete || die +} |