aboutsummaryrefslogtreecommitdiffstats
path: root/dist/vespa.spec
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-05-04 11:46:06 +0200
committerGitHub <noreply@github.com>2021-05-04 11:46:06 +0200
commit8f45c3b9f5c444db222175fd21e7bea77717aae9 (patch)
treee5f2ed68b78bb7fba807f6c8c33847090f50702f /dist/vespa.spec
parentb4b7eb04fda65f6b365848ee8709f4795aa9bf00 (diff)
Revert "Revert "Build vespa rpms on Amazon Linux 2.""
Diffstat (limited to 'dist/vespa.spec')
-rw-r--r--dist/vespa.spec80
1 files changed, 76 insertions, 4 deletions
diff --git a/dist/vespa.spec b/dist/vespa.spec
index 0d3545bd16c..ff9f56e0b07 100644
--- a/dist/vespa.spec
+++ b/dist/vespa.spec
@@ -28,11 +28,19 @@ Source0: vespa-%{version}.tar.gz
%if 0%{?centos}
BuildRequires: epel-release
-%if 0%{?el7}
+%if 0%{?el7} && ! 0%{?amzn:1}
BuildRequires: centos-release-scl
%endif
%endif
%if 0%{?el7}
+%if 0%{?amzn}
+BuildRequires: gcc10-c++
+BuildRequires: libatomic10-devel
+BuildRequires: gcc10-binutils
+BuildRequires: maven
+%define _use_mvn_wrapper 1
+%define _java_home /usr/lib/jvm/java-11-amazon-corretto.%{?_arch}
+%else
BuildRequires: devtoolset-9-gcc-c++
BuildRequires: devtoolset-9-libatomic-devel
BuildRequires: devtoolset-9-binutils
@@ -40,6 +48,7 @@ BuildRequires: rh-maven35
%define _devtoolset_enable /opt/rh/devtoolset-9/enable
%define _rhmaven35_enable /opt/rh/rh-maven35/enable
%endif
+%endif
%if 0%{?el8}
%if 0%{?centos}
%global _centos_stream %(grep -qs '^NAME="CentOS Stream"' /etc/os-release && echo 1 || echo 0)
@@ -70,7 +79,11 @@ BuildRequires: vespa-lz4-devel >= 1.9.2-2
BuildRequires: vespa-onnxruntime-devel = 1.7.1
BuildRequires: vespa-openssl-devel >= 1.1.1k-1
%if 0%{?centos}
+%if 0%{?amzn}
+BuildRequires: vespa-protobuf-devel = 3.7.0-5.amzn2
+%else
BuildRequires: vespa-protobuf-devel = 3.7.0-4.el7
+%endif
%else
BuildRequires: vespa-protobuf-devel = 3.7.0-5.el7
%endif
@@ -127,14 +140,23 @@ BuildRequires: gtest-devel
BuildRequires: gmock-devel
%endif
%endif
+%if 0%{?el7} && 0%{?amzn:1}
+BuildRequires: vespa-xxhash-devel = 0.8.0
+BuildRequires: vespa-openblas-devel = 0.3.12
+%else
BuildRequires: xxhash-devel >= 0.8.0
BuildRequires: openblas-devel
+%endif
BuildRequires: zlib-devel
BuildRequires: re2-devel
%if ! 0%{?el7}
BuildRequires: libicu-devel
%endif
+%if 0%{?el7} && 0%{?amzn:1}
+BuildRequires: java-11-amazon-corretto
+%else
BuildRequires: java-11-openjdk-devel
+%endif
BuildRequires: rpm-build
BuildRequires: make
BuildRequires: git
@@ -166,13 +188,21 @@ Requires: perl-URI
%if ! 0%{?el7}
Requires: valgrind
%endif
+%if 0%{?el7} && 0%{?amzn:1}
+Requires: vespa-xxhash = 0.8.0
+%else
Requires: xxhash
Requires: xxhash-libs >= 0.8.0
+%endif
%if 0%{?el8}
Requires: openblas
%else
+%if 0%{?el7} && 0%{?amzn:1}
+Requires: vespa-openblas
+%else
Requires: openblas-serial
%endif
+%endif
Requires: zlib
Requires: re2
%if ! 0%{?el7}
@@ -192,17 +222,27 @@ Requires: vespa-lz4 >= 1.9.2-2
Requires: vespa-onnxruntime = 1.7.1
Requires: vespa-openssl >= 1.1.1k-1
%if 0%{?centos}
+%if 0%{?amzn}
+Requires: vespa-protobuf = 3.7.0-5.amzn2
+%else
Requires: vespa-protobuf = 3.7.0-4.el7
+%endif
%else
Requires: vespa-protobuf = 3.7.0-5.el7
%endif
+%if ! 0%{?amzn}
Requires: vespa-telegraf >= 1.1.1-1
Requires: vespa-valgrind >= 3.16.0-1
+%endif
Requires: vespa-zstd >= 1.4.5-2
%define _vespa_llvm_version 7
%define _extra_link_directory /usr/lib64/llvm7.0/lib;%{_vespa_deps_prefix}/lib64
+%if 0%{?amzn}
+%define _extra_include_directory /usr/include/llvm7.0;%{_vespa_deps_prefix}/include
+%else
%define _extra_include_directory /usr/include/llvm7.0;%{_vespa_deps_prefix}/include;/usr/include/openblas
%endif
+%endif
%if 0%{?el8}
%if 0%{?_centos_stream}
Requires: llvm-libs >= 11.0.0
@@ -247,17 +287,26 @@ Requires: llvm-libs >= 12.0.0
%define _extra_link_directory %{_vespa_deps_prefix}/lib64
%define _extra_include_directory %{_vespa_deps_prefix}/include;/usr/include/openblas
%endif
+%ifnarch x86_64
+%define _skip_vespamalloc 1
+%endif
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-base-libs = %{version}-%{release}
Requires: %{name}-clients = %{version}-%{release}
Requires: %{name}-config-model-fat = %{version}-%{release}
Requires: %{name}-jars = %{version}-%{release}
+%if ! 0%{?_skip_vespamalloc:1}
Requires: %{name}-malloc = %{version}-%{release}
+%endif
Requires: %{name}-tools = %{version}-%{release}
# Ugly workaround because vespamalloc/src/vespamalloc/malloc/mmap.cpp uses the private
# _dl_sym function. Exclude automated reqires for libraries in /opt/vespa-deps/lib64.
+%if 0%{?amzn2:1}
+%global __requires_exclude ^lib(c\\.so\\.6\\(GLIBC_PRIVATE\\)|pthread\\.so\\.0\\(GLIBC_PRIVATE\\)|(crypto|icui18n|icuuc|lz4|protobuf|ssl|zstd|onnxruntime|openblas|re2|xxhash)\\.so\\.[0-9.]*\\([A-Z._0-9]*\\))\\(64bit\\)$
+%else
%global __requires_exclude ^lib(c\\.so\\.6\\(GLIBC_PRIVATE\\)|pthread\\.so\\.0\\(GLIBC_PRIVATE\\)|(crypto|icui18n|icuuc|lz4|protobuf|ssl|zstd|onnxruntime)\\.so\\.[0-9.]*\\([A-Z._0-9]*\\))\\(64bit\\)$
+%endif
%description
@@ -268,7 +317,11 @@ Vespa - The open big data serving engine
Summary: Vespa - The open big data serving engine - base
+%if 0%{?el7} && 0%{?amzn:1}
+Requires: java-11-amazon-corretto
+%else
Requires: java-11-openjdk-devel
+%endif
Requires: perl
Requires: perl-Getopt-Long
Requires(pre): shadow-utils
@@ -281,7 +334,11 @@ Vespa - The open big data serving engine - base
Summary: Vespa - The open big data serving engine - base C++ libs
+%if 0%{?el7} && 0%{?amzn:1}
+Requires: vespa-xxhash = 0.8.0
+%else
Requires: xxhash-libs >= 0.8.0
+%endif
%if 0%{?el7}
Requires: vespa-openssl >= 1.1.1k-1
%else
@@ -329,6 +386,7 @@ Summary: Vespa - The open big data serving engine - shared java jar files
Vespa - The open big data serving engine - shared java jar files
+%if ! 0%{?_skip_vespamalloc:1}
%package malloc
Summary: Vespa - The open big data serving engine - malloc library
@@ -336,6 +394,7 @@ Summary: Vespa - The open big data serving engine - malloc library
%description malloc
Vespa - The open big data serving engine - malloc library
+%endif
%package tools
@@ -364,14 +423,21 @@ source %{_devtoolset_enable} || true
source %{_rhmaven35_enable} || true
%endif
+%if 0%{?_java_home:1}
+export JAVA_HOME=%{?_java_home}
+%else
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+%endif
export PATH="$JAVA_HOME/bin:$PATH"
export FACTORY_VESPA_VERSION=%{version}
-sh bootstrap.sh java
-mvn --batch-mode -nsu -T 1C install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
+%if 0%{?_use_mvn_wrapper}
+mvn --batch-mode -e -N io.takari:maven:wrapper -Dmaven=3.6.3
+%endif
+%{?_use_mvn_wrapper:env VESPA_MAVEN_COMMAND=$(pwd)/mvnw }sh bootstrap.sh java
+%{?_use_mvn_wrapper:./mvnw}%{!?_use_mvn_wrapper:mvn} --batch-mode -nsu -T 1C install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
cmake3 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
- -DJAVA_HOME=/usr/lib/jvm/java-11-openjdk \
+ -DJAVA_HOME=$JAVA_HOME \
-DCMAKE_PREFIX_PATH=%{_vespa_deps_prefix} \
-DEXTRA_LINK_DIRECTORY="%{_extra_link_directory}" \
-DEXTRA_INCLUDE_DIRECTORY="%{_extra_include_directory}" \
@@ -489,7 +555,9 @@ fi
%dir %{_prefix}/etc
%{_prefix}/etc/systemd
%{_prefix}/etc/vespa
+%if ! 0%{?_skip_vespamalloc:1}
%exclude %{_prefix}/etc/vespamalloc.conf
+%endif
%{_prefix}/include
%dir %{_prefix}/lib
%dir %{_prefix}/lib/jars
@@ -530,7 +598,9 @@ fi
%exclude %{_prefix}/lib64/libvespadefaults.so
%exclude %{_prefix}/lib64/libvespalib.so
%exclude %{_prefix}/lib64/libvespalog.so
+%if ! 0%{?_skip_vespamalloc:1}
%exclude %{_prefix}/lib64/vespa
+%endif
%{_prefix}/libexec
%exclude %{_prefix}/libexec/vespa/common-env.sh
%exclude %{_prefix}/libexec/vespa/node-admin.sh
@@ -681,6 +751,7 @@ fi
%dir %{_prefix}/libexec/vespa
%{_prefix}/libexec/vespa/standalone-container.sh
+%if ! 0%{?_skip_vespamalloc:1}
%files malloc
%if %{_defattr_is_vespa_vespa}
%defattr(-,%{_vespa_user},%{_vespa_group},-)
@@ -690,6 +761,7 @@ fi
%config(noreplace) %{_prefix}/etc/vespamalloc.conf
%dir %{_prefix}/lib64
%{_prefix}/lib64/vespa
+%endif
%files tools
%if %{_defattr_is_vespa_vespa}