From ca2031d350d2904b45325ad883b3ec7bf95fd78a Mon Sep 17 00:00:00 2001 From: Bipin Kumar Date: Sat, 8 Feb 2025 19:37:19 +0530 Subject: [PATCH] canu: restore patches to use dependencies from repo (#261) --- BioArchLinux/canu/PKGBUILD | 44 ++++++++++++------- BioArchLinux/canu/external-mhap.patch | 10 +++++ BioArchLinux/canu/lilac.yaml | 3 -- .../canu/use-arch-mhap-at-runtime.patch | 22 ++++++++++ 4 files changed, 61 insertions(+), 18 deletions(-) create mode 100644 BioArchLinux/canu/external-mhap.patch create mode 100644 BioArchLinux/canu/use-arch-mhap-at-runtime.patch diff --git a/BioArchLinux/canu/PKGBUILD b/BioArchLinux/canu/PKGBUILD index 76fbcb247b..c1516dc3eb 100644 --- a/BioArchLinux/canu/PKGBUILD +++ b/BioArchLinux/canu/PKGBUILD @@ -1,35 +1,49 @@ # Maintainer: Chocobo1 # Previous maintainer: Roberto Rossini ("robymetallo") - +# Contributor: Bipin Kumar pkgname=canu pkgver=2.3 -pkgrel=0 +pkgrel=1 pkgdesc="A single molecule sequence assembler for large and small genomes. https://doi.org/10.1101/gr.215087.116" arch=('i686' 'x86_64') -url="https://canu.readthedocs.io/" -license=('LicenseRef-canu') -depends=('gcc-libs' 'java-runtime' 'perl') +url="https://canu.readthedocs.io/en/latest/" +license=('GPL-2.0-only AND BSD-3-Clause AND LicenseRef-Public Domain') +makedepends=('git') +depends=('gcc-libs' 'glibc' 'perl' 'mhap' 'zlib' 'xz' 'curl' 'bzip2') optdepends=('gnuplot') options=('staticlibs') -source=("$pkgname-$pkgver-src.tar.xz::https://github.com/marbl/canu/releases/download/v$pkgver/canu-$pkgver.tar.xz") -sha256sums=('ecb071943cde722152deb861d4ab897090f00b227fd0b261592e1e3fdd3e3e1a') +source=("${pkgname}.${pkgver}.tar.xz::https://github.com/marbl/canu/releases/download/v${pkgver}/canu-${pkgver}.tar.xz" + 'use-arch-mhap-at-runtime.patch' + 'external-mhap.patch' +) +provides=('meryl') +sha256sums=('ecb071943cde722152deb861d4ab897090f00b227fd0b261592e1e3fdd3e3e1a' + '0c84b28d99a933d04f57726f691d0057b911131b37c008d36670c0c05e1ca2ff' + 'dfcb991b8b57fa138f5ecabbc60bdf119de2a5f2484882424f5835e0928e8421') +prepare() { + cp *.patch ${pkgname}-${pkgver}/ + cd ${pkgname}-${pkgver} + # create separate file for public domain license to match SPDX license and namcap guidelines + sed -n '80,96p' README.licenses > license-PD + # use mhap provided by Bioarchlinux repo + patch -p1 < use-arch-mhap-at-runtime.patch + patch -p1 < external-mhap.patch +} build() { - cd "$pkgname-$pkgver" - + cd ${pkgname}-${pkgver}/src CFLAGS="$CFLAGS -ffat-lto-objects" \ CXXFLAGS="$CXXFLAGS -ffat-lto-objects" \ - make -C "src" + make } package() { cd "$pkgname-$pkgver" - + export perl=$(perl -V:vendorarch | awk -F'/' '{print $4}') install -Dm755 "build/bin"/* -t "$pkgdir/usr/bin" - install -Dm644 "build/lib/site_perl/canu"/*.pm -t "$pkgdir/usr/lib/site_perl/canu" - install -Dm644 "build/share/java/classes"/*.jar -t "$pkgdir/usr/share/java/classes" + install -Dm644 "build/lib/perl5/site_perl/canu"/*.pm -t "$pkgdir"/usr/share/${perl}/vendor_perl/canu install -Dm644 "build/lib"/*.a -t "$pkgdir/usr/lib" - - install -Dm644 "README.licenses" -t "$pkgdir/usr/share/licenses/canu" + install -Dm644 README.licenses "$pkgdir"/usr/share/licenses/$pkgname/license + install -Dm644 license-PD "$pkgdir"/usr/share/licenses/$pkgname/license-PD } diff --git a/BioArchLinux/canu/external-mhap.patch b/BioArchLinux/canu/external-mhap.patch new file mode 100644 index 0000000000..45c8259626 --- /dev/null +++ b/BioArchLinux/canu/external-mhap.patch @@ -0,0 +1,10 @@ +--- canu-2.3.orig/src/main.mk 2024-12-16 21:53:18.000000000 +0530 ++++ canu-2.3/src/main.mk 2025-02-08 15:21:30.531526902 +0530 +@@ -267,7 +267,6 @@ + pipelines/draw-tig.pl -> bin/draw-tig + + FILES += pipelines/canu.defaults -> bin/canu.defaults \ +- mhap/mhap-2.1.3.jar -> share/java/classes/mhap-2.1.3.jar \ + pipelines/canu/Consensus.pm -> lib/perl5/site_perl/canu/Consensus.pm \ + pipelines/canu/CorrectReads.pm -> lib/perl5/site_perl/canu/CorrectReads.pm \ + pipelines/canu/HaplotypeReads.pm -> lib/perl5/site_perl/canu/HaplotypeReads.pm \ diff --git a/BioArchLinux/canu/lilac.yaml b/BioArchLinux/canu/lilac.yaml index 39c8a27ebf..1f1a463c02 100644 --- a/BioArchLinux/canu/lilac.yaml +++ b/BioArchLinux/canu/lilac.yaml @@ -13,6 +13,3 @@ update_on: github: marbl/canu use_latest_release: true prefix: 'v' - - source: manual - manual: 1 - time_limit_hours: 3 diff --git a/BioArchLinux/canu/use-arch-mhap-at-runtime.patch b/BioArchLinux/canu/use-arch-mhap-at-runtime.patch new file mode 100644 index 0000000000..bed142e6a4 --- /dev/null +++ b/BioArchLinux/canu/use-arch-mhap-at-runtime.patch @@ -0,0 +1,22 @@ +Description: Use mhap jar from mhap package provided by Bioarchlinux repo +======================================================================================= +--- canu-2.3.orig/src/pipelines/canu/OverlapMhap.pm 2024-11-25 23:30:00.000000000 +0530 ++++ canu-2.3/src/pipelines/canu/OverlapMhap.pm 2025-02-08 13:35:27.079558823 +0530 +@@ -344,7 +344,7 @@ + print F "cd ./blocks\n"; + print F "\n"; + print F "\$je $javaOpt -XX:ParallelGCThreads=", getGlobal("${tag}mhapThreads"), " -server -Xms", $javaMemory, "m -Xmx", $javaMemory, "m \\\n"; +- print F " -jar $cygA \$bin/../share/java/classes/mhap-" . getGlobal("${tag}MhapVersion") . ".jar $cygB \\\n"; ++ print F " -jar $cygA /usr/share/mhap/mhap.jar $cygB \\\n"; + print F " --repeat-weight 0.9 --repeat-idf-scale 10 -k $merSize \\\n"; + print F " --supress-noise 2 \\\n" if (defined(getGlobal("${tag}MhapFilterUnique")) && getGlobal("${tag}MhapFilterUnique") == 1); + print F " --no-tf \\\n" if (defined(getGlobal("${tag}MhapNoTf")) && getGlobal("${tag}MhapNoTf") == 1); +@@ -467,7 +467,7 @@ + + print F " # Start up the producer.\n"; + print F " \$je $javaOpt -XX:ParallelGCThreads=", getGlobal("${tag}mhapThreads"), " -server -Xms", $javaMemory, "m -Xmx", $javaMemory, "m \\\n"; +- print F " -jar $cygA \$bin/../share/java/classes/mhap-" . getGlobal("${tag}MhapVersion") . ".jar $cygB \\\n"; ++ print F " -jar $cygA /usr/share/mhap/mhap.jar $cygB \\\n"; + print F " --repeat-weight 0.9 --repeat-idf-scale 10 -k $merSize \\\n"; + print F " --supress-noise 2 \\\n" if (defined(getGlobal("${tag}MhapFilterUnique")) && getGlobal("${tag}MhapFilterUnique") == 1); + print F " --no-tf \\\n" if (defined(getGlobal("${tag}MhapNoTf")) && getGlobal("${tag}MhapNoTf") == 1);