minimap2: harden binaries and add libs to package (#192)

This commit is contained in:
Bipin Kumar 2023-10-21 17:42:58 +05:30 committed by GitHub
parent b5eb96dd0b
commit 01ba79589c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 80 additions and 9 deletions

View file

@ -3,23 +3,44 @@
pkgname=minimap2 pkgname=minimap2
pkgver=2.26 pkgver=2.26
pkgrel=1 pkgrel=2
pkgdesc='A versatile pairwise aligner for genomic and spliced nucleotide sequences. https://doi.org/10.1093/bioinformatics/bty191' pkgdesc='A versatile pairwise aligner for genomic and spliced nucleotide sequences. https://doi.org/10.1093/bioinformatics/bty191'
arch=('x86_64') arch=('x86_64')
url="https://github.com/lh3/${pkgname}" url="https://github.com/lh3/${pkgname}"
license=('MIT') license=('MIT')
depends=(zlib) depends=('zlib' 'glibc')
provides=() provides=('minimap2-lite' 'sdust' 'libminimap2.so')
source=("${pkgver}.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz") source=("${pkgname}-${pkgver}.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
sha256sums=('f4c8c3459c7b87e9de6cbed7de019b48d9337c2e46b87ba81b9f72d889420b3c') "hardening.patch")
sha256sums=('f4c8c3459c7b87e9de6cbed7de019b48d9337c2e46b87ba81b9f72d889420b3c'
'ff10a6b715db2e08add52b371842778f855cb4edc9f7fc373c6e1b670ef1415f')
prepare() {
cd "${pkgname}-${pkgver}"
# Add hardening flags for binaries
patch -p1 < "${srcdir}"/hardening.patch
}
build() { build() {
cd "${pkgname}-${pkgver}" cd "${pkgname}-${pkgver}"
make # Build all binaries
make extra
} }
package() { package() {
cd "${pkgname}-${pkgver}" cd "${pkgname}-${pkgver}"
install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" install -Dm644 LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
install -Dm644 ${pkgname} "${pkgdir}/usr/bin/${pkgname}" install -Dm755 libminimap2.so "${pkgdir}"/usr/lib/libminimap2.so
chmod +x "${pkgdir}/usr/bin/${pkgname}" install -Dm755 ${pkgname} "${pkgdir}"/usr/bin/${pkgname}
install -Dm755 minimap2-lite "${pkgdir}"/usr/bin/minimap2-lite
install -Dm755 sdust "${pkgdir}"/usr/bin/sdust
# install Manpages
install -Dm644 -t "$pkgdir/usr/share/man/man1" minimap2.1
# install test Data
install -d "${pkgdir}"/usr/share/${pkgname}/test
cd test
for file in *; do
install -Dm644 "$file" "${pkgdir}"/usr/share/${pkgname}/test/"${file}"
done
} }

View file

@ -0,0 +1,45 @@
--- minimap2-2.26.orig/Makefile 2023-04-29 21:51:09.000000000 +0530
+++ minimap2-2.26.new/Makefile 2023-10-21 16:56:41.816040016 +0530
@@ -1,5 +1,6 @@
-CFLAGS= -g -Wall -O2 -Wc++-compat #-Wextra
-CPPFLAGS= -DHAVE_KALLOC
+CFLAGS+= -g -Wall -fPIC -pie -O2 -Wc++-compat #-Wextra
+CPPFLAGS+= -DHAVE_KALLOC
+LDFLAGS += -pie
INCLUDES=
OBJS= kthread.o kalloc.o misc.o bseq.o sketch.o sdust.o options.o index.o \
lchain.o align.o hit.o seed.o map.o format.o pe.o esterr.o splitidx.o \
@@ -40,6 +41,8 @@
.PHONY:all extra clean depend
.SUFFIXES:.c .o
+NAME := minimap2
+LIBRARY := lib$(NAME).so
.c.o:
$(CC) -c $(CFLAGS) $(CPPFLAGS) $(INCLUDES) $< -o $@
@@ -48,17 +51,17 @@
extra:all $(PROG_EXTRA)
-minimap2:main.o libminimap2.a
- $(CC) $(CFLAGS) main.o -o $@ -L. -lminimap2 $(LIBS)
+$(LIBRARY): $(OBJS)
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,lib$(NAME).so $^ -lm -lz -o $@
-minimap2-lite:example.o libminimap2.a
- $(CC) $(CFLAGS) $< -o $@ -L. -lminimap2 $(LIBS)
+minimap2:main.o libminimap2.so
+ $(CC) $(LDFLAGS) main.o -o $@ -L. -lminimap2 $(LIBS)
-libminimap2.a:$(OBJS)
- $(AR) -csru $@ $(OBJS)
+minimap2-lite:example.o libminimap2.so
+ $(CC) $(LDFLAGS) $< -o $@ -L. -lminimap2 $(LIBS)
sdust:sdust.c kalloc.o kalloc.h kdq.h kvec.h kseq.h ketopt.h sdust.h
- $(CC) -D_SDUST_MAIN $(CFLAGS) $< kalloc.o -o $@ -lz
+ $(CC) $(LDFLAGS) -D_SDUST_MAIN $(CFLAGS) $< kalloc.o -o $@ -lz
# SSE-specific targets on x86/x86_64

View file

@ -12,3 +12,8 @@ update_on:
github: lh3/minimap2 github: lh3/minimap2
use_max_tag: true use_max_tag: true
prefix: 'v' prefix: 'v'
- source: alpm
alpm: zlib
repo: core
provided: libz.so
strip_release: true