summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 8d8e18c323c09c70cc0c406ffd99f857156cc442 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Maintainer: Jens Schwander <thomas747a@gmail.com>

pkgname=ltfs-hpe
pkgver=3.5.0
pkgrel=1
pkgdesc="HPE StoreOpen and Linear Tape File System (LTFS) Software for hp drives uses LTFS Specification 2.40"

arch=('x86_64' 'aarch64')
url="https://www.hpe.com/storage/storeopen"
license=('LGPL2.1')
depends=('fuse2>=2.8.5' 'libxml2>=2.7.6' 'icu>=50.1.2' 'e2fsprogs>=1.41')
makedepends=('autoconf' 'automake' 'libtool' 'pkg-config')
conflicts=('ltfs-quantum')
provides=('ltfs')
replaces=('ltfs')
source=("https://downloads.hpe.com/pub/softlib2/software1/pubsw-generic/p854080462/v238180/HPE_StoreOpen_Software_${pkgver}_Source_macOS_RHEL.tar.gz"
        "ltfs-warnings.patch")
sha256sums=('c4aa518f4f8966930d92619f25a84f4825218d74368a89d225ce90d13ae1df1f'
            '1f4e079d9ee8b590c2894abf3992635045c2e7881d9f8b3edd3d7a37103b0465')

prepare() {
  cd "$srcdir"
  tar -xzvf HPE_StoreOpen_Software_${pkgver}_Source_macOS_RHEL.tar.gz
  cd ltfs
  
  patch -p1 -i "$srcdir/ltfs-warnings.patch"
  
  sed -i 's|/usr/local|/usr|g; s|/lib64|/lib|g' configure.ac
  sed -i '/AC_PROG_LIBTOOL/i AM_PROG_AR' configure.ac
  sed -i 's/AC_PROG_CC_C99/AC_PROG_CC/; s/AC_PROG_LIBTOOL/LT_INIT/' configure.ac
  sed -i '/AM_INIT_AUTOMAKE/c\AM_INIT_AUTOMAKE([foreign subdir-objects])' configure.ac
  
  find . -name "*.c" -o -name "*.h" | xargs sed -i '1i#ifndef TRUE\n#define TRUE 1\n#endif\n#ifndef FALSE\n#define FALSE 0\n#endif'
  sed -i '/sys\/sysctl\.h/d' src/libltfs/arch/arch_info.c
  find . -name Makefile.am | xargs sed -i '1iAMFLAGS = -Wno-portability'
  sed -i '/^install-data-local:/,/^$/d' src/libltfs/Makefile.am conf/Makefile.am init.d/Makefile.am
  
  autoreconf -fiv
}

build() {
  cd "$srcdir/ltfs"
  
  # Remove any existing optimization flags
  CFLAGS=$(echo ${CFLAGS} | sed -e 's/-O[0-9]//g')
  CXXFLAGS=$(echo ${CXXFLAGS} | sed -e 's/-O[0-9]//g')
  
  # Set optimization level and add security flags
  CFLAGS+=" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIC"
  CXXFLAGS+=" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIC"
  LDFLAGS+=" -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
  
  ./configure --prefix=/usr \
              --sysconfdir=/etc \
              --libdir=/usr/lib \
              --with-default-driver=ltotape \
  
  make  CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS"
}

package() {
  cd "$srcdir/ltfs"

  make DESTDIR="$pkgdir/" install
  
  install -dm755 "$pkgdir/usr/share/snmp"
  install -Dm644 src/libltfs/LtfsSnmpTrapDef.txt "$pkgdir/usr/share/snmp/LtfsSnmpTrapDef.txt"
  install -Dm644 src/libltfs/LTFS-MIB.txt "$pkgdir/usr/share/snmp/LTFS-MIB.txt"
  install -Dm644 conf/ltfs.conf.linux "$pkgdir/etc/ltfs.conf"
  install -Dm644 conf/ltfs.conf.local "$pkgdir/etc/ltfs.conf.local"
  install -Dm755 init.d/ltfs "$pkgdir/usr/share/ltfs/ltfs"
  install -Dm644 doc/README "$pkgdir/usr/share/doc/$pkgname/README"
  install -Dm644 doc/COPYING.LIB "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  find "$pkgdir" -name '*.la' -delete
  install -dm755 "$pkgdir/usr/lib/ltfs"
  
  for lib in libdriver libiosched libkmi; do
    find "$pkgdir/usr/lib" -name "${lib}-*.so*" -exec mv {} "$pkgdir/usr/lib/ltfs/" \;
  done
  
  find "$pkgdir" -type f -exec sed -i 's|__CONFDIR__|/etc|g; s|__DEFAULT_DRIVER__|ltotape|g; s|__DEFAULT_IOSCHED__|unified|g; s|__DEFAULT_KMI__|none|g; s|__LIBDIR__|/usr/lib|g; s|\*\*LIBDIR\*\*|/usr/lib|g' {} +
  sed -i 's|/usr/lib/lib|/usr/lib/ltfs/lib|g' "$pkgdir/etc/ltfs.conf"
}