summaryrefslogtreecommitdiffstats
path: root/dist
diff options
context:
space:
mode:
Diffstat (limited to 'dist')
-rw-r--r--dist/.gitignore1
-rw-r--r--dist/OWNERS2
-rwxr-xr-xdist/getversion.pl127
-rw-r--r--dist/vespa.spec196
4 files changed, 326 insertions, 0 deletions
diff --git a/dist/.gitignore b/dist/.gitignore
new file mode 100644
index 00000000000..9217bcea789
--- /dev/null
+++ b/dist/.gitignore
@@ -0,0 +1 @@
+vtag.map
diff --git a/dist/OWNERS b/dist/OWNERS
new file mode 100644
index 00000000000..03f78dce72d
--- /dev/null
+++ b/dist/OWNERS
@@ -0,0 +1,2 @@
+ean
+aressem
diff --git a/dist/getversion.pl b/dist/getversion.pl
new file mode 100755
index 00000000000..116e5baf192
--- /dev/null
+++ b/dist/getversion.pl
@@ -0,0 +1,127 @@
+#!/usr/bin/perl
+
+use POSIX qw(strftime);
+
+$srcdir = ".";
+
+my $generatejava = 0;
+my $printdefines = 0;
+my $printmap = 0;
+my $simple = 0;
+my $target = "";
+my $pkgname = "";
+my $tagtype = "";
+
+while ($opt = shift) {
+ if ($opt =~ m/^-/) {
+ if ($opt eq "-M") {
+ $printmap = 1;
+ } elsif ($opt eq "-T") {
+ $tagtype = shift;
+ } else {
+ print STDERR "ERROR: unknown option '$opt' for getversion\n";
+ print "error\n";
+ exit 1;
+ }
+ } else {
+ $srcdir = $opt;
+ }
+}
+
+if (!defined($srcdir)) {
+ die "srcdir must be set";
+}
+
+# Read current major-minor release
+sub read_head_version() {
+ my $file = "$srcdir/VERSION";
+ if (! -f $file) {
+ die "Unable to locate version file";
+ }
+ open(my $fd, "< $file") ||
+ die "Unable to open VERSION: $!";
+ my $version = <$fd>;
+ chomp($version);
+ close($fd);
+
+ return $version;
+}
+
+if ( ! -d $srcdir ) {
+ print STDERR "ERROR: bad directory '$srcdir' for getversion\n";
+ print "error\n";
+ exit 1;
+}
+
+# assume HEAD if all else fails
+my $mainver = read_head_version();
+
+# date adding logic
+# goal is to end with '$dateadd' set to a value
+# starting with dot, date, new dot, wall-clock time
+# vbuild/mbuild also has some logic for this:
+
+$dateadd = $ENV{"VBUILD_VERSION_DATE"};
+$buildtime = $ENV{"CVSBUILDTIME"};
+
+if ($buildtime && $buildtime =~ m/^(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$/ ) {
+ $dateadd = ".$1$2$3.$4$5$6";
+} elsif ($dateadd) {
+ 1;
+} else {
+ $dateadd = (strftime ".%Y%m%d.%H%M%S", gmtime);
+}
+
+$tag = "HEAD";
+
+if (defined $ENV{FACTORY_VESPA_VERSION}) {
+ $version = $ENV{FACTORY_VESPA_VERSION};
+} elsif ($tagtype eq 'tag') {
+ # only for exact tag, do not add date:
+ $version = $mainver;
+} else {
+ $version = $mainver . $dateadd;
+}
+
+if ($printdefines || $generatejava || $printmap) {
+ # other useful information
+
+ chomp($ostype = `uname -s`);
+
+ chomp($osver = `uname -r`);
+ chomp($osarch = `uname -m`);
+
+ $vtag_system_rev = $ostype . "-" . $osver;
+ chomp ($who = `(whoami || logname) 2>/dev/null`);
+ chomp ($where = `uname -n`);
+ $where =~ s/\.yahoo\.com$//;
+
+ $vtag_date = $dateadd;
+ $vtag_date =~ s/^\.//;
+
+ $mv = $version;
+ foreach $m ( "major", "minor", "micro" ) {
+ $mv =~ s/^\D+//;
+ $cversion{$m} = "0";
+ if ( $mv =~ s/^(\d+)// ) {
+ $cversion .= "." . $1;
+ $cversion{$m} = $1;
+ }
+ }
+ $cversion =~ s/^\.//;
+}
+
+if ($printmap) {
+ print "V_TAG ${tag}\n";
+ print "V_TAG_DATE ${vtag_date}\n";
+ print "V_TAG_PKG ${version}\n";
+ print "V_TAG_ARCH ${osarch}\n";
+ print "V_TAG_SYSTEM ${ostype}\n";
+ print "V_TAG_SYSTEM_REV ${vtag_system_rev}\n";
+ print "V_TAG_BUILDER ${who}\@${where}\n";
+ print "V_TAG_COMPONENT ${cversion}\n";
+ exit;
+}
+
+print "$version\n";
+exit;
diff --git a/dist/vespa.spec b/dist/vespa.spec
new file mode 100644
index 00000000000..32a756b7e2b
--- /dev/null
+++ b/dist/vespa.spec
@@ -0,0 +1,196 @@
+
+# Hack to speed up jar packing for now
+%define __jar_repack %{nil}
+
+# Force special prefix for Vespa
+%define _prefix /opt/vespa
+
+Name: vespa
+Version: VESPA_VERSION
+Release: 1%{?dist}
+Summary: Vespa
+
+Group: Applications/Databases
+License: Commercial
+URL: http://vespa.corp.yahoo.com
+Source0: vespa-%{version}.tar.gz
+
+
+#BuildRequires: vespa-boost-devel >= 1.59
+#BuildRequires: vespa-cppunit-devel >= 1.12.1
+#BuildRequires: vespa-libtorrent-devel >= 1.0.9
+#BuildRequires: vespa-zookeeper-c-client-devel >= 3.4.8
+#BuildRequires: cmake3 >= 3.5
+#BuildRequires: epel-release
+#BuildRequires: centos-release-scl
+#BuildRequires: devtoolset-4 >= 4.0
+#BuildRequires: devtoolset-4-libatomic-devel
+#BuildRequires: Judy-devel >= 1.0.5
+#BuildRequires: lz4-devel >= r131
+#BuildRequires: maven >= 3.0
+#BuildRequires: libicu-devel >= 50.1.2
+#BuildRequires: llvm-devel >= 3.4.2
+#BuildRequires: llvm-static >= 3.4.2
+#Requires: vespa-boost
+#Requires: vespa-cppunit
+#Requires: vespa-libtorrent
+#Requires: vespa-zookeeper-c-client
+#Requires: numactl
+Requires(pre): shadow-utils
+
+# Ugly workaround because vespamalloc/src/vespamalloc/malloc/mmap.cpp uses the private
+# _dl_sym function.
+Provides: libc.so.6(GLIBC_PRIVATE)(64bit)
+
+%description
+
+This is the Vespa!
+
+%prep
+%setup -q
+
+%build
+
+source /opt/rh/devtoolset-4/enable || true
+sh bootstrap.sh
+cmake3 \
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DJAVA_HOME=/usr/lib/jvm/java-openjdk \
+ -DEXTRA_LINK_DIRECTORY=%{_prefix}/lib64 \
+ -DCMAKE_C_COMPILER=gcc \
+ -DCMAKE_CXX_COMPILER=g++ \
+ -DCMAKE_INSTALL_RPATH=%{_prefix}/lib64 \
+ -DCMAKE_BUILD_RPATH=%{_prefix}/lib64 \
+ .
+
+make %{_smp_mflags}
+mvn install -DskipTests -Dmaven.javadoc.skip=true
+
+%install
+
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=%{buildroot}
+
+# Rewrite config def file names
+
+for path in %{buildroot}/%{_prefix}var/db/vespa/config_server/serverdb/classes/*.def; do
+ dir=$(dirname $path)
+ filename=$(basename $path)
+ namespace=$(grep '^ *namespace *=' $path | sed 's/ *namespace *= *//')
+ if [ "$namespace" ]; then
+ case $filename in
+ $namespace.*)
+ ;;
+ *)
+ mv $path $dir/$namespace.$filename ;;
+ esac
+ fi
+done
+
+mkdir -p %{buildroot}/%{_prefix}/conf/configserver/
+mkdir -p %{buildroot}/%{_prefix}/conf/configserver-app/
+mkdir -p %{buildroot}/%{_prefix}/conf/configserver-app/config-models/
+mkdir -p %{buildroot}/%{_prefix}/conf/configserver-app/components/
+mkdir -p %{buildroot}/%{_prefix}/conf/filedistributor/
+mkdir -p %{buildroot}/%{_prefix}/conf/node-admin-app/
+mkdir -p %{buildroot}/%{_prefix}/conf/node-admin-app/components/
+mkdir -p %{buildroot}/%{_prefix}/conf/zookeeper/
+mkdir -p %{buildroot}/%{_prefix}/libexec/jdisc_core/
+mkdir -p %{buildroot}/%{_prefix}/libexec/vespa/modelplugins/
+mkdir -p %{buildroot}/%{_prefix}/libexec/vespa/plugins/qrs/
+mkdir -p %{buildroot}/%{_prefix}/libexec/yjava_daemon/bin/
+mkdir -p %{buildroot}/%{_prefix}/logs/jdisc_core/
+mkdir -p %{buildroot}/%{_prefix}/logs/vespa/
+mkdir -p %{buildroot}/%{_prefix}/logs/vespa/
+mkdir -p %{buildroot}/%{_prefix}/logs/vespa/configserver/
+mkdir -p %{buildroot}/%{_prefix}/logs/vespa/search/
+mkdir -p %{buildroot}/%{_prefix}/logs/vespa/qrs/
+mkdir -p %{buildroot}/%{_prefix}/share/vespa/
+mkdir -p %{buildroot}/%{_prefix}/share/vespa/schema/version/6.x/schema/
+mkdir -p %{buildroot}/%{_prefix}/tmp/vespa/
+mkdir -p %{buildroot}/%{_prefix}/var/db/jdisc/logcontrol/
+mkdir -p %{buildroot}/%{_prefix}/var/db/vespa/
+mkdir -p %{buildroot}/%{_prefix}/var/db/vespa/config_server/serverdb/configs/
+mkdir -p %{buildroot}/%{_prefix}/var/db/vespa/config_server/serverdb/configs/application/
+mkdir -p %{buildroot}/%{_prefix}/var/db/vespa/config_server/serverdb/applications/
+mkdir -p %{buildroot}/%{_prefix}/var/db/vespa/logcontrol/
+mkdir -p %{buildroot}/%{_prefix}/var/jdisc_container/
+mkdir -p %{buildroot}/%{_prefix}/var/jdisc_core/
+mkdir -p %{buildroot}/%{_prefix}/var/spool/vespa/
+mkdir -p %{buildroot}/%{_prefix}/var/spool/master/inbox/
+mkdir -p %{buildroot}/%{_prefix}/var/vespa/bundlecache/
+mkdir -p %{buildroot}/%{_prefix}/var/vespa/cache/config/
+mkdir -p %{buildroot}/%{_prefix}/var/vespa/cmdlines/
+mkdir -p %{buildroot}/%{_prefix}/var/zookeeper/
+
+%clean
+
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+getent group vespa >/dev/null || groupadd -r vespa
+getent passwd vespa >/dev/null || \
+ useradd -r -g vespa -d /opt/vespa -s /sbin/nologin \
+ -c "Create owner of all Vespa data files" vespa
+exit 0
+
+
+%files
+%defattr(-,root,root,-)
+%doc
+
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/configserver/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/configserver-app/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/configserver-app/config-models/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/configserver-app/components/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/filedistributor/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/node-admin-app/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/node-admin-app/components/
+%dir %attr( 755, vespa, vespa) %{_prefix}/conf/zookeeper/
+%dir %attr( 777, -, -) %{_prefix}/libexec/jdisc_core/
+%dir %attr( 775, vespa, vespa) %{_prefix}/libexec/vespa/modelplugins/
+%dir %attr( 755, vespa, vespa) %{_prefix}/libexec/vespa/plugins/qrs/
+%dir %attr( 755, vespa, vespa) %{_prefix}/libexec/yjava_daemon/bin/
+%dir %attr( 777, vespa, vespa) %{_prefix}/logs/jdisc_core/
+%dir %attr(1777, vespa, vespa) %{_prefix}/logs/vespa/
+%dir %attr(1777, vespa, vespa) %{_prefix}/logs/vespa/
+%dir %attr( 755, vespa, vespa) %{_prefix}/logs/vespa/configserver/
+%dir %attr( 755, vespa, vespa) %{_prefix}/logs/vespa/search/
+%dir %attr( 755, vespa, vespa) %{_prefix}/logs/vespa/qrs/
+%dir %attr( 755, vespa, vespa) %{_prefix}/share/vespa/
+%dir %attr( 755, vespa, vespa) %{_prefix}/share/vespa/schema/version/6.x/schema/
+%dir %attr(1777, vespa, vespa) %{_prefix}/tmp/vespa/
+%dir %attr( 777, vespa, vespa) %{_prefix}/var/db/jdisc/logcontrol/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/db/vespa/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/db/vespa/config_server/serverdb/configs/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/db/vespa/config_server/serverdb/configs/application/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/db/vespa/config_server/serverdb/applications/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/db/vespa/logcontrol/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/jdisc_container/
+%dir %attr( 777, -, -) %{_prefix}/var/jdisc_core/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/spool/vespa/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/spool/master/inbox/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/vespa/bundlecache/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/vespa/cache/config/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/vespa/cmdlines/
+%dir %attr( 755, vespa, vespa) %{_prefix}/var/zookeeper/
+
+%{_prefix}/libexec/vespa/vespa-config.pl
+%{_prefix}/libexec/vespa/common-env.sh
+%{_prefix}/libexec/vespa/start-vespa-base.sh
+%{_prefix}/libexec/vespa/stop-vespa-base.sh
+%{_prefix}/libexec/start-file
+%{_prefix}/libexec/ping-configserver
+%{_prefix}/libexec/start-configserver
+%{_prefix}/libexec/start-logd
+%{_prefix}/libexec/stop-configserver
+%{_prefix}/var/db/vespa/config_server/serverdb/classes/*.def
+%{_prefix}/lib/vespa/jars/*.jar
+%{_prefix}/lib64/*.so
+%{_prefix}/bin/*
+%{_prefix}/sbin/*
+%{_prefix}/man/*
+%{_prefix}/include/*
+%{_prefix}/etc/*
+
+%changelog