diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /dist |
Publish
Diffstat (limited to 'dist')
-rw-r--r-- | dist/.gitignore | 1 | ||||
-rw-r--r-- | dist/OWNERS | 2 | ||||
-rwxr-xr-x | dist/getversion.pl | 127 | ||||
-rw-r--r-- | dist/vespa.spec | 196 |
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 |