Date: Friday, January 7, 2022 @ 16:22:32 Author: hashworks Revision: 1095925
upgpkg: opensearch 1.2.3-3: cleanup, fix -cli conflict, fixed jre version, plugins Modified: opensearch/trunk/PKGBUILD opensearch/trunk/opensearch-tmpfile.conf -------------------------+ PKGBUILD | 288 ++++++++++++++++++++++++++++++++++++++++------ opensearch-tmpfile.conf | 18 +- 2 files changed, 260 insertions(+), 46 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-01-07 16:21:55 UTC (rev 1095924) +++ PKGBUILD 2022-01-07 16:22:32 UTC (rev 1095925) @@ -3,31 +3,40 @@ # Contributor: Marcello "mererghost" Rocha <https://github.com/mereghost> # Contributor: Blaž "Speed" Hrastnik <https://github.com/archSeer> -pkgname=opensearch +pkgbase=opensearch +pkgname=( + opensearch + opensearch-analysis-icu-plugin + opensearch-analysis-kuromoji-plugin + opensearch-analysis-nori-plugin + opensearch-analysis-phonetic-plugin + opensearch-analysis-smartcn-plugin + opensearch-analysis-stempel-plugin + opensearch-analysis-ukrainian-plugin + opensearch-discovery-azure-classic-plugin + opensearch-discovery-ec2-plugin + opensearch-discovery-gce-plugin + opensearch-ingest-attachment-plugin + opensearch-mapper-annotated-text-plugin + opensearch-mapper-murmur3-plugin + opensearch-mapper-size-plugin + opensearch-repository-azure-plugin + opensearch-repository-gcs-plugin + opensearch-repository-hdfs-plugin + opensearch-repository-s3-plugin + opensearch-store-smb-plugin + opensearch-transport-nio-plugin +) pkgver=1.2.3 -pkgrel=2 -pkgdesc="Open source distributed and RESTful search engine" +pkgrel=3 +# See https://github.com/opensearch-project/OpenSearch/blob/main/.ci/java-versions.properties +# https://github.com/opensearch-project/OpenSearch/issues/1689 +_jrever=11 +_jdkver=11 arch=('x86_64') url="https://opensearch.org/docs/opensearch/index/" license=('Apache') -depends=('java-runtime-headless<=16' 'systemd' 'libxml2') -optdepends=( - 'opensearch-dashboards' - 'opensearch-alerting-plugin' - 'opensearch-anomaly-detection-plugin' - 'opensearch-asynchronous-search-plugin' - 'opensearch-cross-cluster-replication-plugin' - 'opensearch-index-management-plugin' - 'opensearch-job-scheduler-plugin' - 'opensearch-knn-plugin' - 'opensearch-observability-plugin' - 'opensearch-performance-analyzer-plugin' - 'opensearch-reports-scheduler-plugin' - 'opensearch-security-plugin' - 'opensearch-sql-plugin' -) -# See https://github.com/opensearch-project/OpenSearch/blob/main/.ci/java-versions.properties -makedepends=('java-environment=11') +makedepends=("jdk${_jdkver}-openjdk" 'unzip') source=( "OpenSearch-${pkgver}.tar.gz::https://github.com/opensearch-project/OpenSearch/archive/${pkgver}.tar.gz" opensearch.service @@ -47,15 +56,10 @@ 'a133b8944d57d81224caf03f8d0e5b127f2570123b2a1e2d2f6eb199446448ae' 'b3feb1e9c7e7ce6b33cea6c727728ed700332aae942ca475c3bcc1d56b9f113c' '79cb5856b7105da7f25c6da2a25be88ccba2b849fd92cc32c3204e2fad530efc' - 'c9045725cf2d262257ae2d7074bb4f6d82bdfc1059725ee856440b695c23361a' + '12c4feb01c5c42e98e53f9d6fd457727ec0bf0b19bf9c4bc2ee216f31afe7afc' '66401172f710e80e1f715c89bc6ed5a6d0ad567c58ad03101e59556c52245158' '0d158e9fc2ac6375ae9c140eb79e0308794c1a0220d3634a2b98e94b37b6f8dc') -backup=('etc/opensearch/opensearch.yml' - 'etc/opensearch/log4j2.properties' - 'etc/opensearch/jvm.options' - 'etc/default/opensearch') - prepare() { cd "OpenSearch-${pkgver}" patch -Np1 -i "${srcdir}/remove-systemd-distribution-check.patch" @@ -63,28 +67,103 @@ build() { cd "OpenSearch-${pkgver}" - export PATH=/usr/lib/jvm/default/bin:$PATH + export JAVA_HOME="/usr/lib/jvm/java-${_jdkver}-openjdk" + export PATH="/usr/lib/jvm/java-${_jdkver}-openjdk/bin:$PATH" export GRADLE_OPTS="-Dbuild.snapshot=false" + + # OpenSearch ./gradlew :distribution:buildSystemdModule - ./gradlew :distribution:archives:linux-tar:build + ./gradlew :distribution:archives:no-jdk-linux-tar:build + + # Plugins + for p in \ + analysis-icu \ + analysis-kuromoji \ + analysis-nori \ + analysis-phonetic \ + analysis-smartcn \ + analysis-stempel \ + analysis-ukrainian \ + discovery-azure-classic \ + discovery-ec2 \ + discovery-gce \ + ingest-attachment \ + mapper-annotated-text \ + mapper-murmur3 \ + mapper-size \ + repository-azure \ + repository-gcs \ + repository-hdfs \ + repository-s3 \ + store-smb \ + transport-nio; do + ./gradlew :plugin:${p}:build + done } -package() { +package_opensearch() { + pkgdesc="Open source distributed and RESTful search engine" + depends=("jre${_jrever}-openjdk-headless" 'systemd' 'libxml2') + optdepends=( + 'opensearch-analysis-icu-plugin' + 'opensearch-analysis-kuromoji-plugin' + 'opensearch-analysis-nori-plugin' + 'opensearch-analysis-phonetic-plugin' + 'opensearch-analysis-smartcn-plugin' + 'opensearch-analysis-stempel-plugin' + 'opensearch-analysis-ukrainian-plugin' + 'opensearch-discovery-azure-classic-plugin' + 'opensearch-discovery-ec2-plugin' + 'opensearch-discovery-gce-plugin' + 'opensearch-ingest-attachment-plugin' + 'opensearch-mapper-annotated-text-plugin' + 'opensearch-mapper-murmur3-plugin' + 'opensearch-mapper-size-plugin' + 'opensearch-repository-azure-plugin' + 'opensearch-repository-gcs-plugin' + 'opensearch-repository-hdfs-plugin' + 'opensearch-repository-s3-plugin' + 'opensearch-store-smb-plugin' + 'opensearch-transport-nio-plugin' + 'opensearch-alerting-plugin' + 'opensearch-anomaly-detection-plugin' + 'opensearch-asynchronous-search-plugin' + 'opensearch-cross-cluster-replication-plugin' + 'opensearch-index-management-plugin' + 'opensearch-job-scheduler-plugin' + 'opensearch-knn-plugin' + 'opensearch-observability-plugin' + 'opensearch-performance-analyzer-plugin' + 'opensearch-reports-scheduler-plugin' + 'opensearch-security-plugin' + 'opensearch-sql-plugin' + ) + backup=( + 'etc/opensearch/opensearch.yml' + 'etc/opensearch/log4j2.properties' + 'etc/opensearch/jvm.options' + 'etc/default/opensearch' + ) + cd "OpenSearch-${pkgver}" install -dm755 "${pkgdir}"/{usr/share,var/lib,var/log}/opensearch install -dm755 "${pkgdir}/usr/bin" - tar xf distribution/archives/linux-tar/build/distributions/opensearch-min-$pkgver-linux-x64.tar.gz \ + tar xf distribution/archives/no-jdk-linux-tar/build/distributions/opensearch-min-$pkgver-no-jdk-linux-x64.tar.gz \ --strip 1 -C "${pkgdir}/usr/share/opensearch" - rm -r "${pkgdir}"/usr/share/opensearch/{jdk,logs} + rm -r "${pkgdir}"/usr/share/opensearch/logs install -dm755 "${pkgdir}/etc" mv "${pkgdir}/usr/share/opensearch/config" "${pkgdir}/etc/opensearch" - chmod 2750 "${pkgdir}/etc/opensearch" + chmod 2755 "${pkgdir}/etc/opensearch/"{,jvm.options.d} + chmod -R 644 "${pkgdir}/etc/opensearch/"{jvm.options,log4j2.properties} + chmod 640 "${pkgdir}/etc/opensearch/opensearch.yml" # Might contain sensitive information - for bin in "${pkgdir}/usr/share/opensearch/bin/"*; do - ln -sT "/usr/share/opensearch/bin/$(basename ${bin})" "${pkgdir}/usr/bin/$(basename ${bin})" + ln -sT "/usr/share/opensearch/bin/opensearch" "${pkgdir}/usr/bin/opensearch" + for b in opensearch-keystore opensearch-node opensearch-plugin opensearch-shard opensearch-upgrade; do + ln -sT "/usr/share/opensearch/bin/${b}" "${pkgdir}/usr/bin/${b}" + sed 's|"`dirname "$0"`"|/usr/share/opensearch/bin|' -i "${pkgdir}/usr/share/opensearch/bin/${b}" done ln -s /etc/opensearch "${pkgdir}/usr/share/opensearch/config" @@ -102,8 +181,143 @@ cp -r distribution/build/outputs/systemd/modules/systemd "${pkgdir}/usr/share/opensearch/modules/" - sed -i '2iJAVA_HOME=/usr/lib/jvm/default-runtime' "${pkgdir}/usr/share/opensearch/bin/opensearch-env" - sed -i 's/OPENSEARCH_BUNDLED_JDK=true/OPENSEARCH_BUNDLED_JDK=false/g' "${pkgdir}/usr/share/opensearch/bin/opensearch-env" + sed -i "2iJAVA_HOME=/usr/lib/jvm/java-${_jrever}-openjdk" "${pkgdir}/usr/share/opensearch/bin/opensearch-env" + # Since this warning only affects official OpenSearch releases we can remove it on our end + sed -i 's/echo "warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release" >&2/:/g' "${pkgdir}/usr/share/opensearch/bin/opensearch-env" + install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" } + +_package_plugin() { + plugin="$1" + + install -dm755 "${pkgdir}/usr/share/opensearch/plugins/${plugin}" + install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}" + + cd "${pkgdir}/usr/share/opensearch/plugins/${plugin}" + unzip "${srcdir}/OpenSearch-${pkgver}/plugins/${plugin}/build/distributions/${plugin}-${pkgver}.zip" + + mv LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" + mv NOTICE.txt "${pkgdir}/usr/share/licenses/${pkgname}/NOTICE.txt" +} + +package_opensearch-analysis-icu-plugin() { + pkgdesc="The ICU Analysis plugin integrates the Lucene ICU module into OpenSearch, adding ICU-related analysis components." + depends=("opensearch=${pkgver}") + _package_plugin analysis-icu +} + +package_opensearch-analysis-kuromoji-plugin() { + pkgdesc="The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-kuromoji +} + +package_opensearch-analysis-nori-plugin() { + pkgdesc="The Korean (nori) Analysis plugin integrates Lucene nori analysis module into opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-nori +} + +package_opensearch-analysis-phonetic-plugin() { + pkgdesc="The Phonetic Analysis plugin integrates phonetic token filter analysis with opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-phonetic +} + +package_opensearch-analysis-smartcn-plugin() { + pkgdesc="Smart Chinese Analysis plugin integrates Lucene Smart Chinese analysis module into opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-smartcn +} + +package_opensearch-analysis-stempel-plugin() { + pkgdesc="The Stempel (Polish) Analysis plugin integrates Lucene stempel (polish) analysis module into opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-stempel +} + +package_opensearch-analysis-ukrainian-plugin() { + pkgdesc="The Ukrainian Analysis plugin integrates the Lucene UkrainianMorfologikAnalyzer into opensearch." + depends=("opensearch=${pkgver}") + _package_plugin analysis-ukrainian +} + +package_opensearch-discovery-azure-classic-plugin() { + pkgdesc="The Azure Classic Discovery plugin allows to use Azure Classic API for the unicast discovery mechanism" + depends=("opensearch=${pkgver}") + _package_plugin discovery-azure-classic +} + +package_opensearch-discovery-ec2-plugin() { + pkgdesc="The EC2 discovery plugin allows to use AWS API for the unicast discovery mechanism." + depends=("opensearch=${pkgver}") + _package_plugin discovery-ec2 +} + +package_opensearch-discovery-gce-plugin() { + pkgdesc="The Google Compute Engine (GCE) Discovery plugin allows to use GCE API for the unicast discovery mechanism." + depends=("opensearch=${pkgver}") + _package_plugin discovery-gce +} + +package_opensearch-ingest-attachment-plugin() { + pkgdesc="Ingest processor that uses Apache Tika to extract contents" + depends=("opensearch=${pkgver}") + _package_plugin ingest-attachment +} + +package_opensearch-mapper-annotated-text-plugin() { + pkgdesc="The Mapper Annotated_text plugin adds support for text fields with markup used to inject annotation tokens into the index." + depends=("opensearch=${pkgver}") + _package_plugin mapper-annotated-text +} + +package_opensearch-mapper-murmur3-plugin() { + pkgdesc="The Mapper Murmur3 plugin allows to compute hashes of a field\'s values at index-time and to store them in the index." + depends=("opensearch=${pkgver}") + _package_plugin mapper-murmur3 +} + +package_opensearch-mapper-size-plugin() { + pkgdesc="The Mapper Size plugin allows document to record their uncompressed size at index time." + depends=("opensearch=${pkgver}") + _package_plugin mapper-size +} + +package_opensearch-repository-azure-plugin() { + pkgdesc="The Azure Repository plugin adds support for Azure storage repositories." + depends=("opensearch=${pkgver}") + _package_plugin repository-azure +} + +package_opensearch-repository-gcs-plugin() { + pkgdesc="The GCS repository plugin adds Google Cloud Storage support for repositories." + depends=("opensearch=${pkgver}") + _package_plugin repository-gcs +} + +package_opensearch-repository-hdfs-plugin() { + pkgdesc="The HDFS repository plugin adds support for Hadoop Distributed File-System (HDFS) repositories." + depends=("opensearch=${pkgver}") + _package_plugin repository-hdfs +} + +package_opensearch-repository-s3-plugin() { + pkgdesc="The S3 repository plugin adds S3 repositories" + depends=("opensearch=${pkgver}") + _package_plugin repository-s3 +} + +package_opensearch-store-smb-plugin() { + pkgdesc="The Store SMB plugin adds support for SMB stores." + depends=("opensearch=${pkgver}") + _package_plugin store-smb +} + +package_opensearch-transport-nio-plugin() { + pkgdesc="The nio transport." + depends=("opensearch=${pkgver}") + _package_plugin transport-nio +} Modified: opensearch-tmpfile.conf =================================================================== --- opensearch-tmpfile.conf 2022-01-07 16:21:55 UTC (rev 1095924) +++ opensearch-tmpfile.conf 2022-01-07 16:22:32 UTC (rev 1095925) @@ -2,13 +2,13 @@ d /var/lib/opensearch 0755 opensearch opensearch - d /usr/share/opensearch/plugins 0755 opensearch opensearch - -d /etc/opensearch 2750 - opensearch - -d /etc/opensearch/scripts 0750 - opensearch - -d /etc/opensearch/jvm.options.d 0750 - opensearch - -z /etc/opensearch/jvm.options 0640 root opensearch +d /etc/opensearch 2755 - opensearch - +d /etc/opensearch/scripts 0755 - opensearch - +d /etc/opensearch/jvm.options.d 0755 - opensearch - +z /etc/opensearch/jvm.options 0644 root opensearch z /etc/opensearch/opensearch.yml 0640 root opensearch -z /etc/opensearch/log4j2.properties 0640 root opensearch -z /etc/opensearch/role_mapping.yml 0640 root opensearch -z /etc/opensearch/roles.yml 0640 root opensearch -z /etc/opensearch/users 0640 root opensearch -z /etc/opensearch/users_roles 0640 root opensearch +z /etc/opensearch/log4j2.properties 0644 root opensearch +z /etc/opensearch/role_mapping.yml 0644 root opensearch +z /etc/opensearch/roles.yml 0644 root opensearch +z /etc/opensearch/users 0644 root opensearch +z /etc/opensearch/users_roles 0644 root opensearch