Blame SPECS/thermostat.spec

3aaed5
# Thermostat version
3aaed5
%global major        1
aa165c
%global minor        2
aa165c
%global patchlevel   0
3aaed5
# Real OSGi Bundle-Version is 3.6.6.Final
3aaed5
%global netty_bundle_version       3.6.3
3aaed5
%global jcommon_bundle_version     1.0.18
3aaed5
%global jfreechart_bundle_version  1.0.14
3aaed5
# apache-commons-beanutils
3aaed5
%global beanutils_bundle_version   1.8.3
3aaed5
# apache-commons-codec
3aaed5
%global codec_bundle_version       1.8.0
3aaed5
# apache-commons-collections
3aaed5
%global collections_bundle_version 3.2.1
3aaed5
# apache-commons-logging
3aaed5
%global logging_bundle_version     1.1.2
3aaed5
# Real OSGi Bundle-Version is 2.11.3.RELEASE
3aaed5
%global mongo_bundle_version       2.11.3
aa165c
%global hc_core_bundle_version     4.3.3
aa165c
%global hc_client_bundle_version   4.3.6
aa165c
%global gson_bundle_version        2.2.2
3aaed5
3aaed5
# Base path to the JDK which will be used in boot scripts
3aaed5
%global jdk_base /usr/lib/jvm/java-1.7.0-openjdk
3aaed5
3aaed5
# Flag set to 1 if it's an SCL build. 0 otherwise.
3aaed5
%global is_scl_build %( test -n "$(rpm --eval '%{?scl}')" && echo 1 || echo 0)
3aaed5
3aaed5
%{?scl:%scl_package thermostat}
3aaed5
%{!?scl:%global pkg_name %{name}}
3aaed5
aa165c
# Use java common's requires/provides generator
aa165c
%{?java_common_find_provides_and_requires}
aa165c
3aaed5
# Global directory definitions
3aaed5
%global system_datadir %{_root_localstatedir}/lib/%{pkg_name}
3aaed5
%global system_cachedir %{_root_localstatedir}/cache/%{pkg_name}
3aaed5
%global system_logdir %{_root_localstatedir}/log/%{pkg_name}
3aaed5
%global system_statedir %{_root_localstatedir}/run/%{pkg_name}
3aaed5
%global system_sbindir %{_root_sbindir}
3aaed5
%global system_tmpfilesdir %{_root_exec_prefix}/lib/tmpfiles.d
3aaed5
# _root_<foo> don't seem to be defined in non-SCL context.
3aaed5
# Define some vars we use instead in order for the build to work
3aaed5
# for SCL/non-SCL contexts.
3aaed5
%if %{is_scl_build}
3aaed5
  %global system_confdir %{_root_sysconfdir}
3aaed5
  %global system_root_datadir %{_root_datadir}
3aaed5
%else
3aaed5
  %global system_confdir %{_sysconfdir}
3aaed5
  %global system_root_datadir %{_datadir}
3aaed5
%endif
3aaed5
# system java dir definition (non-scl)
3aaed5
%global system_javadir %{system_root_datadir}/java
3aaed5
%global scl_javadir %{_javadir}
3aaed5
3aaed5
# THERMOSTAT_HOME and USER_THERMOSTAT_HOME variables. Note that
3aaed5
# we use USER_THERMOSTAT_HOME only for systemd related setup.
3aaed5
%global thermostat_home %{_datarootdir}/%{pkg_name}
3aaed5
%if %{is_scl_build}
3aaed5
  %global user_thermostat_home %{_scl_root}
3aaed5
%else
3aaed5
  # Prefix is "/" for non-scl
3aaed5
  %global user_thermostat_home /
3aaed5
%endif
3aaed5
3aaed5
# thermostat-webapp specific variables
3aaed5
%if %{is_scl_build}
3aaed5
  %global thermostat_catalina_base %{_datarootdir}/tomcat
3aaed5
%else
3aaed5
  %global thermostat_catalina_base %{_localstatedir}/lib/tomcats/%{pkg_name}
3aaed5
%endif
3aaed5
%global thermostat_tomcat_service_name %{?scl_prefix}%{pkg_name}-tomcat-service
3aaed5
3aaed5
# Don't generate native library provides for JNI libs. Those aren't
3aaed5
# SCL-ized and might conflict with base RHEL. See RHBZ#1045552
3aaed5
%global __provides_exclude_from ^%{_libdir}/thermostat/.*|%{thermostat_home}/libs/native/.*$
3aaed5
# Exclude generation of osgi() style provides, since they are not
3aaed5
# SCL-namespaced and may conflict with base RHEL packages.
3aaed5
# See RHBZ#1042888
3aaed5
%global __provides_exclude ^osgi(.*)$
3aaed5
3aaed5
# Uncomment to build from snapshot out of hg.  See also Release and Source0
3aaed5
#%global hgrev cf184d4064b2
3aaed5
3aaed5
Name:       %{?scl_prefix}thermostat
3aaed5
Version:    %{major}.%{minor}.%{patchlevel}
9ae980
# Release should be higher than el6 builds. Use convention
9ae980
# 60.X where X is an increasing int. 60 for rhel-6. We use
9ae980
# 70.X for rhel-7. For some reason we cannot rely on the
9ae980
# dist tag.
aa165c
Release:    70.12%{?dist}
3aaed5
Summary:    A monitoring and serviceability tool for OpenJDK
3aaed5
License:    GPLv2+ with exceptions and OFL
3aaed5
URL:        http://icedtea.classpath.org/thermostat/
3aaed5
# This is the source URL to be used for released versions
3aaed5
Source0:    http://icedtea.classpath.org/download/%{pkg_name}/%{pkg_name}-%{version}.tar.gz
3aaed5
# This is the source to be used for hg snapshot versions
3aaed5
#wget -O thermostat-%{hgrev}.tar.bz2 http://icedtea.classpath.org/hg/%{pkg_name}/archive/%{hgrev}.tar.bz2
3aaed5
# This is the source to be used for hg snapshot versions from a release branch
3aaed5
#wget -O thermostat-%{major}.%{minor}-%{hgrev}.tar.bz2 http://icedtea.classpath.org/hg/release/%{pkg_name}-%{major}.${minor}/archive/%{hgrev}.tar.bz2
3aaed5
#Source0:    thermostat-%{major}.%{minor}-%{hgrev}.tar.bz2
3aaed5
# This is _NOT_ suitable for upstream at this point.
3aaed5
# It's very Fedora specific.
3aaed5
Source1:    thermostat-sysconfig
3aaed5
Source2:    thermostat_icon_64px.svg
3aaed5
# SCL only sources
3aaed5
Source3:    scl-thermostat-tomcat-service-sysconfig
3aaed5
Source4:    scl-thermostat-tomcat-sysconfig
3aaed5
Source5:    scl-tomcat-systemd.service
3aaed5
# This is _NOT_ suitable for upstream at this point.
3aaed5
# jfreechart isn't a bundle upstream. Also some httpclient* related bundles
3aaed5
# include transitive deps upstream, which isn't the case in Fedora (i.e. is
3aaed5
# properly done in Fedora)
3aaed5
Patch0:     fix_bundle_loading.patch
3aaed5
# Patch proposed upstream, but was denied.
3aaed5
# See http://icedtea.classpath.org/pipermail/thermostat/2013-October/008602.html
3aaed5
# For now _NOT_ suitable for upstream until felix ships an API only package which
3aaed5
# is 4.3 OSGi spec.
3aaed5
Patch1:     osgi_spec_fixes.patch
3aaed5
# This is _NOT_ suitable for upstream at this point.
3aaed5
# It makes thermostat itself ignore bundle versions put into thermostat's files
3aaed5
# at build-time. Over time versions of bundles may change. For packaged
3aaed5
# thermostat we rely on RPM enforcing a working set of bundle<=>version pairs that
3aaed5
# work. See: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1591
aa165c
Patch2:     ignore_bundle_versions.patch
aa165c
# Not suitable for upstream.  Different OSGi version means some API compat issues.
aa165c
Patch3:     osgi_api_fixes.patch
aa165c
# FIXME remove when upstream supports mongodb 2.6 ootb.
aa165c
Patch4:     mongodb26_setup_changes.patch
aa165c
# Ditto (command does not work with 2.6)
aa165c
Patch5:     remove_adduser_command.patch
aa165c
# FIXME: remove once rebased to >= 1.2.4 Upstream commit:
aa165c
# http://icedtea.classpath.org/hg/release/thermostat-1.2/rev/0f250b6c47e8
aa165c
Patch6:     fix_lucene_symbolic_name.patch
aa165c
# FIXME: remove once rebased to >= 1.2.4, RHBZ#1199581, Upstream commit:
aa165c
# http://icedtea.classpath.org/hg/release/thermostat-1.2/rev/1cfebde69814
aa165c
Patch7:     thermostat_setup_ctrl_c.patch
aa165c
# Set USER_THERMOSTAT_HOME default to ~/.thermostat-1.2 since this allows
aa165c
# for better data migration from 1.0 Thermostat.
aa165c
Patch8:     user_thermostat_home_new_default.patch
aa165c
# jetty provides the javax.servlet API
aa165c
Patch9:     servlet_api_jar.patch
aa165c
# Allow 'thermostat web-storage-service' to read configs from
aa165c
# ~/.thermostat, by using a custom jaas config.
aa165c
Patch10:    webstorage_service_custom_jaas.patch
aa165c
# Remove when this lands in a release:
aa165c
# http://icedtea.classpath.org/hg/thermostat/rev/296194a48778
aa165c
Patch11:    non_existent_bundle.patch
aa165c
# Upstream puts passwords in a world-readable location
aa165c
Patch12:    rhbz1221989.patch
aa165c
3aaed5
BuildRequires: libgnome-keyring-devel
3aaed5
# laf-utils JNI need pkconfig files for gtk2+
3aaed5
BuildRequires: gtk2-devel
3aaed5
# Use tomcat only for web storage
3aaed5
BuildRequires: tomcat-servlet-3.0-api
3aaed5
3aaed5
# Bootstrap bundles (started via file name)
aa165c
BuildRequires: rh-java-common-apache-commons-cli
aa165c
BuildRequires: rh-java-common-jansi
aa165c
BuildRequires: %{?scl_prefix}jline2 >= 2.10-3
3aaed5
3aaed5
# SCL-carried OSGi bundles
3aaed5
BuildRequires: %{?scl_prefix}jfreechart >= 1.0.14-7
3aaed5
BuildRequires: %{?scl_prefix}jcommon >= 1.0.17-4
3aaed5
BuildRequires: %{?scl_prefix}netty
3aaed5
BuildRequires: %{?scl_prefix}apache-commons-fileupload
3aaed5
aa165c
# rh-java-common collection dependencies
aa165c
BuildRequires: rh-java-common-apache-commons-beanutils
aa165c
BuildRequires: rh-java-common-apache-commons-codec
aa165c
BuildRequires: rh-java-common-apache-commons-logging
aa165c
BuildRequires: rh-java-common-felix-framework
aa165c
BuildRequires: rh-java-common-google-gson
aa165c
BuildRequires: rh-java-common-httpcomponents-client
aa165c
BuildRequires: rh-java-common-httpcomponents-core
aa165c
BuildRequires: rh-java-common-lucene >= 4.8.0
aa165c
BuildRequires: rh-java-common-lucene-analysis >= 4.8.0
aa165c
BuildRequires: rh-java-common-maven-local
aa165c
# thermostat web-storage-service BRs
aa165c
BuildRequires: rh-java-common-jetty-server
aa165c
BuildRequires: rh-java-common-jetty-jaas
aa165c
BuildRequires: rh-java-common-jetty-webapp
aa165c
# TODO schemas are needed for offline validation of some xml files
aa165c
# BuildRequires: rh-java-common-jetty-schemas
aa165c
aa165c
# maven30 collection dependencies
aa165c
BuildRequires: maven30-xmvn
aa165c
BuildRequires: maven30-maven-dependency-plugin
aa165c
BuildRequires: maven30-maven-surefire-plugin
aa165c
BuildRequires: maven30-maven-surefire-provider-junit
aa165c
BuildRequires: maven30-maven-war-plugin
aa165c
BuildRequires: maven30-maven-clean-plugin
aa165c
BuildRequires: maven30-maven-assembly-plugin
aa165c
BuildRequires: maven30-maven-plugin-bundle
aa165c
BuildRequires: maven30-maven-javadoc-plugin
aa165c
BuildRequires: maven30-fusesource-pom
3aaed5
3aaed5
# Mongodb Java driver comes from the mongodb collection
aa165c
BuildRequires: rh-mongodb26
aa165c
BuildRequires: rh-mongodb26-mongo-java-driver
3aaed5
3aaed5
# The following BR is SCL only
3aaed5
%{?scl:BuildRequires: tomcat}
3aaed5
9ae980
# Required for main thermostat script, tools.jar etc.
9ae980
Requires: java-1.7.0-openjdk-devel
3aaed5
Requires: libgnome-keyring
3aaed5
aa165c
# Things coming from the mongodb26 collection
aa165c
Requires: rh-mongodb26
aa165c
Requires: rh-mongodb26-mongodb
aa165c
Requires: rh-mongodb26-mongodb-server
1644b0
3aaed5
Requires(post): systemd
3aaed5
Requires(preun): systemd
3aaed5
Requires(postun): systemd
3aaed5
3aaed5
%{?scl:Requires: %scl_runtime}
3aaed5
3aaed5
%description
3aaed5
Thermostat is a monitoring and instrumentation tool for the Hotspot JVM,
3aaed5
with support for monitoring multiple JVM instances. The system is made
3aaed5
up of two processes: an Agent, which collects data, and a Client which
3aaed5
allows users to visualize this data. These components communicate via
3aaed5
a MongoDB-based storage layer. A pluggable agent and gui framework
3aaed5
allows for collection and visualization of performance data beyond that
3aaed5
which is included out of the box.
3aaed5
3aaed5
%package javadoc
3aaed5
Summary:    Javadocs for %{name}
3aaed5
Group:      Documentation
9ae980
%{?scl:Requires: %scl_runtime}
3aaed5
3aaed5
BuildArch:  noarch
3aaed5
3aaed5
%description javadoc
3aaed5
This package contains the API documentation for %{name}
3aaed5
3aaed5
%package webapp
3aaed5
Summary:    Web storage for Thermostat
3aaed5
BuildArch:  noarch
3aaed5
Requires:   tomcat
3aaed5
Requires:   %{?scl_prefix}apache-commons-fileupload
3aaed5
Requires:   %{name} = %{version}-%{release}
3aaed5
3aaed5
%description webapp
3aaed5
This package contains the storage endpoint web application
3aaed5
for Thermostat's Web layer.
3aaed5
3aaed5
%prep
3aaed5
aa165c
%{?scl:scl enable %{scl} maven30 rh-java-common rh-mongodb26 - << "EOF"}
3aaed5
3aaed5
# When Source0 is released version. 
3aaed5
%setup -q -n %{pkg_name}-%{version}
3aaed5
# When Source0 is a snapshot from HEAD.
3aaed5
#%setup -q -n %{pkg_name}-%{hgrev}
3aaed5
# When Source 0 is a snapshot from a release branch.
3aaed5
#%setup -q -n %{pkg_name}-%{major}-%{minor}-%{hgrev}
3aaed5
%patch0 -p1
3aaed5
%patch1 -p1
3aaed5
%patch2 -p1
3aaed5
%patch3 -p1
1644b0
%patch4 -p1
aa165c
%patch5 -p1
aa165c
%patch6 -p1
aa165c
%patch7 -p1
aa165c
%patch8 -p1
aa165c
%patch9 -p1
aa165c
%patch10 -p1
aa165c
%patch11 -p1
aa165c
%patch12 -p1
3aaed5
3aaed5
# Fix up artifact names which have different name upstream
3aaed5
#  lucene
aa165c
%pom_remove_dep "org.apache.servicemix.bundles:org.apache.servicemix.bundles.lucene" vm-heap-analysis/common
aa165c
%pom_remove_dep "org.apache.servicemix.bundles:org.apache.servicemix.bundles.lucene" vm-heap-analysis/distribution
aa165c
%pom_remove_dep "org.apache.servicemix.bundles:org.apache.servicemix.bundles.lucene-analyzers-common" vm-heap-analysis/common
aa165c
%pom_remove_dep "org.apache.servicemix.bundles:org.apache.servicemix.bundles.lucene-analyzers-common" vm-heap-analysis/distribution
aa165c
%pom_add_dep "org.apache.lucene:lucene-analyzers-common:4.8.0" vm-heap-analysis/common
aa165c
%pom_add_dep "org.apache.lucene:lucene-analyzers:4.8.0" vm-heap-analysis/distribution
aa165c
%pom_add_dep "org.apache.lucene:lucene-core:4.8.0" vm-heap-analysis/common
aa165c
%pom_add_dep "org.apache.lucene:lucene-core:4.8.0" vm-heap-analysis/distribution
3aaed5
#  httpclient
3aaed5
%pom_remove_dep org.apache.httpcomponents:httpclient-osgi web/client
3aaed5
%pom_add_dep org.apache.httpcomponents:httpclient:4.1.2 web/client
3aaed5
%pom_remove_dep org.apache.httpcomponents:httpclient-osgi client/command
3aaed5
%pom_add_dep org.apache.httpcomponents:httpclient:4.1.2 client/command
3aaed5
#  add httpmime dep. this is included in upstreams' strange jar
3aaed5
%pom_add_dep org.apache.httpcomponents:httpmime:4.1.2 web/client
3aaed5
#  httpcore
3aaed5
%pom_remove_dep org.apache.httpcomponents:httpcore-osgi web/client
3aaed5
%pom_add_dep org.apache.httpcomponents:httpcore:4.1.2 web/client
3aaed5
# need jline 2.10 (otherwise this resolves to jline 1)
3aaed5
%pom_xpath_remove "pom:properties/pom:jline.version"
3aaed5
%pom_xpath_inject "pom:properties" "<jline.version>2.10</jline.version>"
3aaed5
3aaed5
# Don't use maven-exec-plugin. We do things manually in order to avoid this
3aaed5
# additional dep. It's used in agent/core/pom.xml and in keyring/pom.xml
3aaed5
%pom_remove_plugin org.codehaus.mojo:exec-maven-plugin agent/core
3aaed5
%pom_remove_plugin org.codehaus.mojo:exec-maven-plugin keyring
3aaed5
%pom_remove_plugin org.codehaus.mojo:exec-maven-plugin laf-utils
3aaed5
3aaed5
# Remove jacoco-coverage plugin (in main pom.xml and web/war/pom.xml)
3aaed5
%pom_remove_plugin org.jacoco:jacoco-maven-plugin
3aaed5
%pom_remove_plugin org.jacoco:jacoco-maven-plugin web/war
3aaed5
3aaed5
# Remove pmd plugin
3aaed5
%pom_remove_plugin org.apache.maven.plugins:maven-pmd-plugin
3aaed5
3aaed5
# Remove m2e's lifecyle plugin
3aaed5
%pom_remove_plugin org.eclipse.m2e:lifecycle-mapping
3aaed5
aa165c
# Remove license-maven-plugin
aa165c
%pom_remove_plugin com.mycila:license-maven-plugin
aa165c
aa165c
# Disable dev and testing-only modules
3aaed5
%pom_disable_module dev
aa165c
%pom_disable_module test common
3aaed5
%pom_disable_module integration-tests
aa165c
%pom_disable_module testutils storage
aa165c
%pom_remove_dep com.redhat.thermostat:thermostat-storage-testutils vm-cpu/common
aa165c
%pom_remove_dep com.redhat.thermostat:thermostat-storage-testutils vm-profiler/common
aa165c
%pom_remove_dep com.redhat.thermostat:thermostat-storage-testutils thread/collector
3aaed5
aa165c
# Remove depencency on the web archive for web-storage-service we'll make deps
aa165c
# available manually
aa165c
%pom_remove_dep "com.redhat.thermostat:thermostat-web-war" web/endpoint-plugin/web-service
aa165c
aa165c
# jetty-schemas is not available
aa165c
%pom_remove_dep org.eclipse.jetty.toolchain:jetty-schemas web/endpoint-plugin/distribution
3aaed5
3aaed5
# Remove system scope and systemPath for com.sun:tools dependencies.
3aaed5
# xmvn complains about those at install time.
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" agent/core
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" common/core
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" thread/collector
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" vm-heap-analysis/command
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" vm-heap-analysis/client-swing
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" vm-heap-analysis/client-core
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" agent/core
aa165c
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" agent/proxy/common
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:scope" agent/proxy/server
aa165c
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" agent/proxy/common
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" agent/proxy/server
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" common/core
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" thread/collector
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" vm-heap-analysis/command
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" vm-heap-analysis/client-swing
3aaed5
%pom_xpath_remove "pom:dependencies/pom:dependency[pom:groupId='com.sun']/pom:systemPath" vm-heap-analysis/client-core
3aaed5
aa165c
# Don't install the zip files created during the build
aa165c
%mvn_package com.redhat.thermostat::zip: __noinstall
3aaed5
# Skip automatic installation of the war module.
3aaed5
# We install it manually. Without this "config" %mvn_build -f
3aaed5
# fails. See RHBZ#963838
3aaed5
%mvn_package com.redhat.thermostat:thermostat-web-war __noinstall
3aaed5
# Don't install :thermostat-common-test, it's a test only dep which
3aaed5
# aren't run during the build.
3aaed5
%mvn_package com.redhat.thermostat:thermostat-common-test __noinstall
3aaed5
3aaed5
# These are just upstream build helpers. Don't install them.
3aaed5
%mvn_package com.redhat.thermostat:thermostat-distribution __noinstall
3aaed5
%mvn_package com.redhat.thermostat:thermostat-assembly __noinstall
3aaed5
aa165c
# The automatic requires generator gets confused by build-deps. We have
aa165c
# to __noinstall it in order for mvn() requires generation to work.
aa165c
%mvn_package com.redhat.thermostat:thermostat-build-deps __noinstall
aa165c
aa165c
# thermostat-web-server and thermostat-web-endpoint should be part of the
aa165c
# webapp sub-package webapp
3aaed5
%mvn_package com.redhat.thermostat:thermostat-web-server webapp
aa165c
%mvn_package "com.redhat.thermostat:thermostat-web-endpoint-plugin" webapp
aa165c
%mvn_package "com.redhat.thermostat:thermostat-web-endpoint:pom:" webapp
aa165c
%mvn_package "com.redhat.thermostat:thermostat-web-endpoint-distribution:pom:" webapp
aa165c
3aaed5
%{?scl:EOF}
3aaed5
3aaed5
%build
aa165c
%{?scl:scl enable %{scl} maven30 rh-java-common rh-mongodb26 - << "EOF"}
3aaed5
export CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS"
3aaed5
# Set JAVA_HOME. make uses this
3aaed5
. /usr/share/java-utils/java-functions
3aaed5
set_jvm
3aaed5
export JAVA_HOME
3aaed5
3aaed5
################## Build JNI bits ########################
3aaed5
pushd annotations
3aaed5
  mkdir -p target/classes
3aaed5
  javac -d target/classes \
3aaed5
           src/main/java/com/redhat/thermostat/annotations/Service.java
3aaed5
popd
3aaed5
pushd config
3aaed5
  mkdir -p target/classes
3aaed5
  javac -d target/classes \
3aaed5
        -cp ../annotations/target/classes \
3aaed5
           src/main/java/com/redhat/thermostat/shared/config/NativeLibraryResolver.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/config/CommonPaths.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/config/internal/CommonPathsImpl.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/config/InvalidConfigurationException.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/locale/Translate.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/locale/LocalizedString.java \
3aaed5
           src/main/java/com/redhat/thermostat/shared/locale/internal/LocaleResources.java
3aaed5
popd
3aaed5
pushd keyring
3aaed5
  mkdir -p target/classes
3aaed5
  javac -cp ../config/target/classes:../annotations/target/classes \
3aaed5
        -d target/classes \
3aaed5
           src/main/java/com/redhat/thermostat/utils/keyring/Keyring.java \
3aaed5
           src/main/java/com/redhat/thermostat/utils/keyring/KeyringException.java \
3aaed5
           src/main/java/com/redhat/thermostat/utils/keyring/impl/KeyringImpl.java
3aaed5
  make all
3aaed5
popd
3aaed5
pushd agent/core
3aaed5
  mkdir -p target/classes
3aaed5
  javac -cp ../../config/target/classes:../../annotations/target/classes \
3aaed5
        -d target/classes \
3aaed5
         src/main/java/com/redhat/thermostat/agent/utils/hostname/HostName.java \
3aaed5
         src/main/java/com/redhat/thermostat/agent/utils/username/UserNameUtil.java \
3aaed5
         src/main/java/com/redhat/thermostat/agent/utils/username/UserNameLookupException.java \
3aaed5
         src/main/java/com/redhat/thermostat/utils/username/internal/UserNameUtilImpl.java
3aaed5
  make all
3aaed5
popd
3aaed5
pushd laf-utils
3aaed5
  mkdir -p target/classes
3aaed5
  javac -cp ../config/target/classes \
3aaed5
        -d target/classes src/main/java/com/redhat/thermostat/internal/utils/laf/gtk/GTKThemeUtils.java
3aaed5
  make all
3aaed5
popd
3aaed5
################## Build JNI bits (end) ##################
3aaed5
3aaed5
# Make sure install location does not exist
3aaed5
rm -rf %{buildroot}/%{_datarootdir}/java/%{?scl_prefix}%{pkg_name}
3aaed5
# Do the maven compile, skipping tests
3aaed5
%mvn_build -f -- -Dthermostat.home=%{thermostat_home} \
3aaed5
                 -Dthermostat.web.deploy.dir=$(pwd)/webstorage-webapp \
3aaed5
                 -Dthermostat.system.user=thermostat \
3aaed5
                 -Dthermostat.system.group=thermostat \
3aaed5
                 -Dnetty.version=%{netty_bundle_version}.Final \
3aaed5
                 -Dcommons-logging.version=%{logging_bundle_version} \
3aaed5
                 -Dcommons-collections.version=%{collections_bundle_version} \
3aaed5
                 -Dcommons-codec.osgi-version=%{codec_bundle_version} \
3aaed5
                 -Dcommons-beanutils.version=%{beanutils_bundle_version} \
3aaed5
                 -Dgson.version=%{gson_bundle_version} \
3aaed5
                 -Dmongo-driver.osgi-version=%{mongo_bundle_version}.RELEASE \
3aaed5
                 -Dhttpcomponents.core.version=%{hc_core_bundle_version} \
3aaed5
                 -Dhttpcomponents.client.version=%{hc_client_bundle_version} \
3aaed5
                 -Dhttpcomponents.mime.version=%{hc_client_bundle_version} \
3aaed5
                 -Djcommon.osgi.version=%{jcommon_bundle_version} \
aa165c
                 -Djfreechart.osgi.version=%{jfreechart_bundle_version} \
aa165c
                 -Dlucene-core.bundle.symbolic-name=org.apache.lucene.core \
aa165c
                 -Dlucene-analysis.bundle.symbolic-name=org.apache.lucene.analysis \
aa165c
                 -Dosgi.compendium.bundle.symbolic-name=org.osgi.compendium \
aa165c
                 -Dosgi.compendium.osgi-version=4.1.0
3aaed5
3aaed5
# the build puts all depdency jars into distribution/target/image/lib as well
3aaed5
mv distribution/target/image/libs/thermostat-*jar .
3aaed5
rm -f distribution/target/image/libs/*jar
3aaed5
mv thermostat-*jar distribution/target/image/libs/
3aaed5
3aaed5
# Need Java 7 in in scripts
3aaed5
sed -i 's|^JAVA=.*|JAVA="%{jdk_base}/bin/java"|' distribution/target/image/bin/thermostat
3aaed5
sed -i 's|^JAVA=.*|JAVA="%{jdk_base}/bin/java"|' distribution/target/image/bin/thermostat-agent-proxy
3aaed5
# Fix path to tools.jar
3aaed5
sed -i 's|^TOOLS_JAR=.*|TOOLS_JAR="%{jdk_base}/lib/tools.jar"|' distribution/target/image/bin/thermostat
3aaed5
sed -i 's|^TOOLS_JAR=.*|TOOLS_JAR="%{jdk_base}/lib/tools.jar"|' distribution/target/image/bin/thermostat-agent-proxy
3aaed5
3aaed5
# Collect a list of filenames which we later use in order to symlink from /usr/share/java
3aaed5
pushd distribution/target/image/libs
3aaed5
for i in *.jar; do
3aaed5
  newFileName=$(echo $i | sed 's/-\([0-9]\+\.\)\+[0-9]\+\(-[a-zA-Z0-9]\+\)\?//')
3aaed5
  # collect original filenames in a file so that we can symlink to them
3aaed5
  # from %{_datadir}/java/%{pkg_name}
3aaed5
  echo "libs/${i}#${newFileName}" >> ../../../symlink-map-filenames
3aaed5
done
3aaed5
popd
3aaed5
pushd distribution/target/image/plugins
aa165c
for i in $(find -name 'thermostat-*.jar' | sed 's#^./##g'); do
3aaed5
  fname=$(basename $i)
3aaed5
  newFileName=$(echo $fname | sed 's/-\([0-9]\+\.\)\+[0-9]\+\(-[a-zA-Z0-9]\+\)\?//')
3aaed5
  echo "plugins/${i}#${newFileName}" >> ../../../symlink-map-filenames
3aaed5
done
3aaed5
popd
3aaed5
grep -v "thermostat-web-server" distribution/symlink-map-filenames > distribution/symlink-map-filenames-filtered
3aaed5
mv distribution/symlink-map-filenames-filtered distribution/symlink-map-filenames
3aaed5
3aaed5
# clean-up webapp. these are all symlinks to libs in $THERMOSTAT_HOME
3aaed5
# except for thermostat-web-server
3aaed5
pushd webstorage-webapp
3aaed5
rm -rf WEB-INF/lib/*
3aaed5
popd
aa165c
mv distribution/target/image/webapp/WEB-INF/lib/thermostat-web-server*.jar webstorage-webapp/WEB-INF/lib
3aaed5
%{?scl:EOF}
3aaed5
3aaed5
%install
aa165c
%{?scl:scl enable maven30 %{scl} - << "EOF"}
3aaed5
#######################################################
3aaed5
# Thermostat core
3aaed5
#######################################################
3aaed5
mkdir -p %{buildroot}%{_bindir}
3aaed5
mkdir -p %{buildroot}%{_sysconfdir}/%{pkg_name}
3aaed5
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
3aaed5
mkdir -p %{buildroot}%{system_confdir}/sysconfig
3aaed5
mkdir -p %{buildroot}%{_datarootdir}/java/%{?scl_prefix}%{pkg_name}
3aaed5
# JNI things live there
3aaed5
mkdir -p %{buildroot}%{_libdir}/%{pkg_name}
3aaed5
mkdir -p %{buildroot}%{_jnidir}
3aaed5
# Systemd files live there
3aaed5
mkdir -p %{buildroot}%{_unitdir}
3aaed5
# Thermostat icon lives there
3aaed5
mkdir -p %{buildroot}%{_datarootdir}/icons/hicolor/scalable/apps
3aaed5
# Thermostat desktop lives there
3aaed5
mkdir -p %{buildroot}%{_datarootdir}/applications
3aaed5
3aaed5
# Dance the xmvn install limbo. This only makes sense if %mvn_build does NOT
3aaed5
# have the '-i' switch.
3aaed5
%mvn_install
3aaed5
3aaed5
# now make xmvn happy, it expects version-less thermostat jars in
aa165c
rm -rf %{buildroot}%{_datarootdir}/java/%{pkg_name}
9ae980
mkdir -p %{buildroot}%{_datarootdir}/java/%{pkg_name}
3aaed5
for i in $(cat distribution/symlink-map-filenames); do
3aaed5
  s=$(echo $i | cut -d'#' -f1)
3aaed5
  t=$(echo $i | cut -d'#' -f2)
9ae980
  ln -s %{_datarootdir}/%{pkg_name}/$s %{buildroot}%{_datarootdir}/java/%{pkg_name}/$t
3aaed5
done
3aaed5
3aaed5
pushd distribution/target/image/libs
3aaed5
# JNI jars need to be in %{_jnidir}, we symlink to
3aaed5
# %{_libdir}/%{pkg_name} files. Files are moved to
3aaed5
# %{_libdir}/%{pkg_name} next.
3aaed5
for i in thermostat-keyring-*.jar \
3aaed5
    thermostat-agent-core-*.jar \
3aaed5
    thermostat-laf-utils-*.jar; do
3aaed5
  ln -s %{_libdir}/%{pkg_name}/$i %{buildroot}%{_jnidir}/$i
3aaed5
done
3aaed5
# JNI files are in %{_libdir}
3aaed5
mv thermostat-keyring-*.jar \
3aaed5
   thermostat-agent-core-*.jar \
3aaed5
   thermostat-laf-utils-*.jar \
3aaed5
   %{buildroot}%{_libdir}/%{pkg_name}
3aaed5
# Make native libs executable so that debuginfos get properly
3aaed5
# generated
3aaed5
chmod +x native/*.so
3aaed5
mv native/* %{buildroot}%{_libdir}/%{pkg_name}
3aaed5
popd
3aaed5
3aaed5
# Install systemd unit files
3aaed5
pushd distribution/target
3aaed5
  sed -i 's/User=thermostat/User=root/g' thermostat-agent.service
3aaed5
  sed -i 's/Group=thermostat/Group=root/g' thermostat-agent.service
3aaed5
  rm thermostat-agent.service
3aaed5
  # FIXME: install or not-to-install agent service running as root?
3aaed5
  #        Currently: Don't install.
3aaed5
  sed -i 's#ExecStart=.*#ExecStart=/usr/bin/scl enable $THERMOSTAT1_SCLS_ENABLED -- %{thermostat_home}/bin/thermostat storage --start#g' thermostat-storage.service
3aaed5
  sed -i 's#ExecStop=.*#ExecStop=/usr/bin/scl enable $THERMOSTAT1_SCLS_ENABLED -- %{thermostat_home}/bin/thermostat storage --stop#g' thermostat-storage.service
3aaed5
  sed -i 's#EnvironmentFile=.*#EnvironmentFile=%{_sysconfdir}/sysconfig/%{pkg_name}#g' thermostat-storage.service
3aaed5
  cp -a thermostat-storage.service %{buildroot}%{_unitdir}/%{?scl_prefix}%{pkg_name}-storage.service
3aaed5
popd
3aaed5
# Runtime files live on tempfs. Systemd recreates them on boot if
3aaed5
# config exists. Install this config for files we need.
3aaed5
mkdir -p %{buildroot}%{system_tmpfilesdir}
3aaed5
install -m 0644 distribution/target/tmpfiles.d/%{pkg_name}.conf %{buildroot}%{system_tmpfilesdir}/%{pkg_name}.conf
3aaed5
3aaed5
# Move the thermostat desktop file to /usr/share/applications
3aaed5
# This makes "thermostat gui" show up in gnome shell.
3aaed5
cp distribution/target/%{pkg_name}.desktop %{buildroot}%{_datarootdir}/applications/%{pkg_name}.desktop
3aaed5
# Install the SVG icon
3aaed5
cp %{SOURCE2} %{buildroot}%{_datarootdir}/icons/hicolor/scalable/apps/%{pkg_name}.svg
3aaed5
aa165c
aa165c
# Install tmpfiles.d config file for /var/run/%{pkg_name}
aa165c
mkdir -p %{buildroot}%{system_tmpfilesdir}
aa165c
install -m 0644 distribution/target/tmpfiles.d/%{pkg_name}.conf %{buildroot}%{system_tmpfilesdir}/%{pkg_name}.conf
aa165c
aa165c
# Don't want dev setup things
aa165c
rm distribution/target/image/bin/thermostat-devsetup
aa165c
rm distribution/target/image/etc/devsetup.input
aa165c
3aaed5
# move everything else into $THERMOSTAT_HOME
3aaed5
rm -rf distribution/target/image/bin/thermostat.orig
aa165c
# Don't install webapp twice
aa165c
rm -rf distribution/target/image/webapp
3aaed5
cp -a distribution/target/image %{buildroot}%{thermostat_home}
3aaed5
3aaed5
# symlink dependencies into the right directory
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/felix/org.apache.felix.framework.jar %{buildroot}%{thermostat_home}/libs/org.apache.felix.framework.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/lib/java/hawtjni-runtime.jar %{buildroot}%{thermostat_home}/libs/hawtjni-runtime.jar
3aaed5
# All bundles with symbolic_name=version listed in
3aaed5
# $THERMOSTAT_HOME/etc/commands/<command>.properties or any thermostat-plugin.xml file
3aaed5
# need to be symlinked from $THERMOSTAT_HOME/{libs,plugins/<plugin-name>/}
3aaed5
# The following list is that set and will get started by the OSGi framework as
3aaed5
# bundles in an OSGi sense.
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-beanutils.jar %{buildroot}%{thermostat_home}/libs/commons-beanutils.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-cli.jar %{buildroot}%{thermostat_home}/libs/commons-cli.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-collections.jar %{buildroot}%{thermostat_home}/libs/commons-collections.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-logging.jar %{buildroot}%{thermostat_home}/libs/commons-logging.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/google-gson.jar %{buildroot}%{thermostat_home}/libs/gson.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/httpcomponents/httpcore.jar %{buildroot}%{thermostat_home}/libs/httpcomponents-core.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/httpcomponents/httpclient.jar %{buildroot}%{thermostat_home}/libs/httpcomponents-client.jar
aa165c
# This comes from the mongodb26 collection.
aa165c
ln -s /opt/rh/rh-mongodb26/root/usr/share/java/mongo-java-driver/mongo.jar %{buildroot}%{thermostat_home}/libs/mongo.jar
3aaed5
# The following deps are packaged as part of the thermostat-scl
3aaed5
ln -s %{scl_javadir}/netty.jar %{buildroot}%{thermostat_home}/libs/netty.jar
aa165c
ln -s %{scl_javadir}/jfreechart.jar %{buildroot}%{thermostat_home}/libs/jfreechart.jar
3aaed5
ln -s %{scl_javadir}/jcommon.jar %{buildroot}%{thermostat_home}/libs/jcommon.jar
9ae980
ln -s %{scl_javadir}/jline2/jline.jar %{buildroot}%{thermostat_home}/libs/jline2.jar
3aaed5
# The following are additional downstream specific symlinks for transitive deps
3aaed5
#   see fix_bundle_loading.patch
3aaed5
# some of them have their deps embedded upstream (or whatever is available in the maven repos)
3aaed5
#
3aaed5
# jline2 => jansi
3aaed5
# httpclient => httpmime
3aaed5
# httpclient => commons-codec
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jansi.jar %{buildroot}%{thermostat_home}/libs/jansi.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/httpcomponents/httpmime.jar %{buildroot}%{thermostat_home}/libs/httpcomponents-mime.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-codec.jar %{buildroot}%{thermostat_home}/libs/commons-codec.jar
aa165c
aa165c
# set up symlinks for vm-heap-analysis
aa165c
rm %{buildroot}%{thermostat_home}/plugins/vm-heap-analysis/lucene*jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/lucene/lucene-core.jar %{buildroot}%{thermostat_home}/libs/lucene-core.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/lucene/lucene-analyzers-common.jar %{buildroot}%{thermostat_home}/libs/lucene-analyzers.jar
aa165c
aa165c
# set up symlinks for vm-profiler plugin
aa165c
rm %{buildroot}%{thermostat_home}/plugins/vm-profiler/asm*jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/objectweb-asm5/asm-all-5.jar %{buildroot}%{thermostat_home}/libs/asm-all.jar
aa165c
aa165c
# set up symlinks for embedded-web-endpoint plugin
aa165c
rm %{buildroot}%{thermostat_home}/plugins/embedded-web-endpoint/jetty*jar
aa165c
rm %{buildroot}%{thermostat_home}/plugins/embedded-web-endpoint/javax.servlet*jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/tomcat-servlet-3.0-api.jar %{buildroot}%{thermostat_home}/libs/javax.servlet-3.0-api.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-http.jar %{buildroot}%{thermostat_home}/libs/jetty-http.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-io.jar %{buildroot}%{thermostat_home}/libs/jetty-io.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-jaas.jar %{buildroot}%{thermostat_home}/libs/jetty-jaas.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-security.jar %{buildroot}%{thermostat_home}/libs/jetty-security.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-server.jar %{buildroot}%{thermostat_home}/libs/jetty-server.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-servlet.jar %{buildroot}%{thermostat_home}/libs/jetty-servlet.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-util.jar %{buildroot}%{thermostat_home}/libs/jetty-util.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-webapp.jar %{buildroot}%{thermostat_home}/libs/jetty-webapp.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/jetty/jetty-xml.jar %{buildroot}%{thermostat_home}/libs/jetty-xml.jar
3aaed5
3aaed5
pushd %{buildroot}%{_libdir}/%{pkg_name}
3aaed5
# symlink JNI jars
3aaed5
for i in *.jar; do
3aaed5
  ln -s %{_libdir}/%{pkg_name}/$i \
3aaed5
        %{buildroot}%{thermostat_home}/libs/$i
3aaed5
done
3aaed5
# symlink shared libs
3aaed5
for i in *.so; do
3aaed5
  ln -s %{_libdir}/%{pkg_name}/$i \
3aaed5
        %{buildroot}%{thermostat_home}/libs/native/$i
3aaed5
done
3aaed5
popd
3aaed5
3aaed5
ln -s /usr/lib/jvm/java-1.7.0-openjdk/lib/tools.jar \
3aaed5
    %{buildroot}%{thermostat_home}/libs/
3aaed5
3aaed5
# Symlink the thermostat script in /bin
3aaed5
ln -s %{thermostat_home}/bin/thermostat \
3aaed5
    %{buildroot}%{_bindir}/thermostat
aa165c
ln -s %{_datarootdir}/%{pkg_name}/bin/thermostat-setup \
aa165c
    %{buildroot}%{_bindir}/thermostat-setup
3aaed5
aa165c
# create required config directory
aa165c
mkdir -p %{buildroot}%{thermostat_home}/etc/plugins.d/
3aaed5
# move config files to /etc and symlink stuff under $THERMOSTAT_HOME/etc to it
3aaed5
mv %{buildroot}%{thermostat_home}/etc/* \
3aaed5
   %{buildroot}%{_sysconfdir}/%{pkg_name}
3aaed5
rmdir %{buildroot}%{thermostat_home}/etc
3aaed5
ln -s %{_sysconfdir}/%{pkg_name}/ \
3aaed5
          %{buildroot}%{thermostat_home}/etc
3aaed5
3aaed5
# Install sysconfig file. This is so as to set THERMOSTAT_HOME to
3aaed5
# /usr/share/thermostat rather than ~/.thermostat which the script
3aaed5
# would do.
3aaed5
sed 's#__thermostat_home__#%{thermostat_home}/#g' %{SOURCE1} > thermostat_sysconfig.env
3aaed5
sed -i 's#__user_thermostat_home__#%{thermostat_home}/#g' thermostat_sysconfig.env
3aaed5
cp thermostat_sysconfig.env %{buildroot}%{_sysconfdir}/sysconfig/%{pkg_name}
3aaed5
3aaed5
# Set up directory structure for running thermostat storage/
3aaed5
# thermostat agend via systemd
3aaed5
%{__install} -d -m 0775 %{buildroot}%{system_datadir}
aa165c
# Create a setup-complete.stamp file so as to prevent the launcher hook from
aa165c
# successfully running the thermostat1-thermostat-storage service.
aa165c
echo "setup-complete.stamp for thermostat1-thermostat-storage service" > %{buildroot}%{system_datadir}/setup-complete.stamp
3aaed5
%{__install} -d -m 0775 %{buildroot}%{system_cachedir}
3aaed5
%{__install} -d -m 0775 %{buildroot}%{system_logdir}
3aaed5
%{__install} -d -m 0775 %{buildroot}%{system_statedir}
3aaed5
# Symlink storage/agent directories so that they can be run
3aaed5
# as systemd services. The target directories will have
3aaed5
# appropriate permissions for the thermostat user to allow
3aaed5
# writing.
3aaed5
ln -s %{system_datadir} %{buildroot}%{thermostat_home}/data
3aaed5
ln -s %{system_statedir} %{buildroot}%{thermostat_home}/run
3aaed5
ln -s %{system_logdir} %{buildroot}%{thermostat_home}/logs
3aaed5
ln -s %{system_cachedir} %{buildroot}%{thermostat_home}/cache
3aaed5
3aaed5
#######################################################
3aaed5
# Thermostat web storage webapp
3aaed5
#######################################################
3aaed5
mkdir -p %{buildroot}%{thermostat_catalina_base}/webapps
3aaed5
pushd webstorage-webapp
3aaed5
# Fixup THERMOSTAT_HOME in web.xml
3aaed5
  sed -i '/<param-name>THERMOSTAT_HOME<[/]param-name>/,/<param-value>.*<[/]param-value>/{ s$<param-value>.*</param-value>$<param-value>%{thermostat_home}</param-value>$ }' \
3aaed5
  WEB-INF/web.xml
3aaed5
popd
aa165c
# create a symlink to webapp from THERMOSTAT_HOME
aa165c
ln -s %{thermostat_catalina_base}/webapps/%{pkg_name} %{buildroot}%{thermostat_home}/webapp
3aaed5
cp -r webstorage-webapp %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}
3aaed5
# 
3aaed5
# Make xmvn happy. Give it a symlink in %{_datadir}/java/%{pkg_name}
3aaed5
pushd %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib
3aaed5
for i in thermostat-*.jar; do
3aaed5
  newFileName=$(echo $i | sed 's/-\([0-9]\+\.\)\+[0-9]\+\(-[a-zA-Z0-9]\+\)\?//')
9ae980
  ln -s %{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib/$i %{buildroot}%{_datarootdir}/java/%{pkg_name}/$newFileName
3aaed5
done
3aaed5
popd
3aaed5
3aaed5
# Symlink core libs we need. Basically all jars + transitive deps which
3aaed5
# define model classes.
3aaed5
pushd %{buildroot}%{thermostat_home}/libs
3aaed5
for i in thermostat-storage-core*.jar \
3aaed5
         thermostat-common-core*.jar \
3aaed5
         thermostat-storage-mongodb*.jar \
3aaed5
         thermostat-shared-config*.jar \
3aaed5
         thermostat-keyring*.jar \
3aaed5
         thermostat-annotations*.jar \
3aaed5
         thermostat-web-common*.jar; do
3aaed5
  ln -s %{thermostat_home}/libs/$i \
3aaed5
        %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib
3aaed5
done
3aaed5
popd
3aaed5
# Symlink plugin libs shipped with core (we need them for the model
3aaed5
# classes)
3aaed5
pushd %{buildroot}%{thermostat_home}/plugins
3aaed5
for i in $(find -name 'thermostat-*common*.jar' -o \
3aaed5
                -name 'thermostat-thread-collector*.jar'); do
3aaed5
  ln -s %{thermostat_home}/plugins/$i \
3aaed5
         %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib
3aaed5
done
3aaed5
popd
3aaed5
# Don't need thermostat-thead-client-common*.jar in webapp
3aaed5
pushd %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib
3aaed5
  rm thermostat-thread-client-common*.jar
3aaed5
popd
3aaed5
# Symlink other dependencies
3aaed5
pushd %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-beanutils.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-codec.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-collections.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-io.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/apache-commons-logging.jar
aa165c
ln -s /opt/rh/rh-java-common/root/usr/share/java/google-gson.jar
aa165c
# This comes from the mongodb26 collection.
aa165c
ln -s /opt/rh/rh-mongodb26/root/usr/share/java/mongo-java-driver/mongo.jar
3aaed5
# The following are SCL-ized in our collection
9ae980
ln -s %{scl_javadir}/apache-commons-fileupload/commons-fileupload.jar apache-commons-fileupload.jar
3aaed5
popd
3aaed5
aa165c
# Symlink webapp configuration
aa165c
mv %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/web.auth \
aa165c
   %{buildroot}%{_sysconfdir}/%{pkg_name}/
aa165c
ln -s %{_sysconfdir}/%{pkg_name}/web.auth %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/
aa165c
3aaed5
# We use a custom CATALINA_BASE with core tomcat directories
3aaed5
# symlinked. This allows us to deploy the thermostat webapp
3aaed5
# nicely configured without any configuration required prior
3aaed5
# starting tomcat via systemd.
3aaed5
SERVICE_FILENAME="%{?scl_prefix}%{pkg_name}-tomcat"
3aaed5
sed 's#__service_name__#%{thermostat_tomcat_service_name}#g' %{SOURCE4} > systemd_tomcat_env_thermostat.txt
3aaed5
cp systemd_tomcat_env_thermostat.txt %{buildroot}%{system_confdir}/sysconfig/${SERVICE_FILENAME}
3aaed5
3aaed5
sed 's#__catalina_base__#%{thermostat_catalina_base}#g' %{SOURCE3} > tomcat_service_thermostat.txt
3aaed5
sed -i 's#__jaas_config__#%{_sysconfdir}/%{pkg_name}/%{pkg_name}_jaas.conf#g' tomcat_service_thermostat.txt
aa165c
# Install file twice, since RHEL 7.0 and RHEL 7.1 have different tomcat versions. The first file is used
aa165c
# by thermostat1-thermostat-tomcat's service. The second one is used by "tomcat@thermostat".
3aaed5
cp tomcat_service_thermostat.txt %{buildroot}%{system_confdir}/sysconfig/%{?scl_prefix}%{pkg_name}-tomcat-service
aa165c
cp tomcat_service_thermostat.txt %{buildroot}%{system_confdir}/sysconfig/tomcat@%{pkg_name}
3aaed5
3aaed5
sed "s#__service_file_name__#${SERVICE_FILENAME}#g" %{SOURCE5} > systemd_tomcat_thermostat.service
3aaed5
sed -i "s#__service_file_path__#%{system_confdir}/sysconfig#g" systemd_tomcat_thermostat.service
3aaed5
cp systemd_tomcat_thermostat.service %{buildroot}%{_unitdir}/%{?scl_prefix}%{pkg_name}-tomcat.service
3aaed5
# Create a symlinked CATALINA_BASE in order to make tomcat deploy
3aaed5
# the scl-ized tomcat web-app.
3aaed5
pushd %{buildroot}/%{thermostat_catalina_base}
3aaed5
  for i in conf lib logs work temp; do
3aaed5
    ln -s %{system_root_datadir}/tomcat/$i $i
3aaed5
  done
3aaed5
popd
3aaed5
# Make tomcat with custom catalina base happy (not complain about this dir missing)
3aaed5
mkdir -p %{buildroot}/%{_root_localstatedir}/log/%{thermostat_tomcat_service_name}
3aaed5
%{?scl:EOF}
3aaed5
3aaed5
%check
3aaed5
# Perform some sanity checks on paths to JAVA/TOOLS_JAR
3aaed5
# in important boot scripts. See RHBZ#1052992 and
3aaed5
# RHBZ#1053123
3aaed5
TOOLS_JAR="$(grep 'TOOLS_JAR=' %{buildroot}/%{thermostat_home}/bin/thermostat | cut -d= -f2 | cut -d\" -f2)"
3aaed5
test "${TOOLS_JAR}" = "%{jdk_base}/lib/tools.jar"
3aaed5
TOOLS_JAR="$(grep 'TOOLS_JAR=' %{buildroot}/%{thermostat_home}/bin/thermostat-agent-proxy | cut -d= -f2 | cut -d\" -f2)"
3aaed5
test "${TOOLS_JAR}" = "%{jdk_base}/lib/tools.jar"
3aaed5
JAVA="$(grep 'JAVA=' %{buildroot}/%{thermostat_home}/bin/thermostat | cut -d= -f2 | cut -d\" -f2)"
3aaed5
test "${JAVA}" = "%{jdk_base}/bin/java"
3aaed5
JAVA="$(grep 'JAVA=' %{buildroot}/%{thermostat_home}/bin/thermostat-agent-proxy | cut -d= -f2 | cut -d\" -f2)"
3aaed5
test "${JAVA}" = "%{jdk_base}/bin/java"
9ae980
# Be sure that symlinks to dependencies are not dangling. This might
9ae980
# prevent thermostat from booting. For example see RHBZ#1119757
9ae980
# The 'grep -v %{version}.jar' is so as to not check for thermostat
9ae980
# jar symlinks which aren't installed at build time.
9ae980
#
9ae980
# Verify symlinks in the thermostat package.
9ae980
for i in $(ls -l %{buildroot}%{thermostat_home}/libs | grep ^l | grep -v '%{version}.jar' | cut -d'>' -f2); do
9ae980
  ls $i
9ae980
done
9ae980
# Verify symlinks in the thermostat-webapp package
9ae980
for i in $(ls -l %{buildroot}%{thermostat_catalina_base}/webapps/%{pkg_name}/WEB-INF/lib | grep ^l | grep -v '%{version}.jar' | cut -d'>' -f2); do
9ae980
  ls $i
9ae980
done
3aaed5
3aaed5
%pre
3aaed5
# add the thermostat user and group
3aaed5
%{system_sbindir}/groupadd -r thermostat 2>/dev/null || :
3aaed5
%{system_sbindir}/useradd -c "Thermostat" -g thermostat \
3aaed5
    -s /sbin/nologin -r -d %{thermostat_home} thermostat 2>/dev/null || :
3aaed5
3aaed5
%post
3aaed5
# Install but don't activate
3aaed5
# FIXME: install or not-to-install agent service running as root?
3aaed5
#        Currently: Don't install.
3aaed5
#%systemd_post %{?scl_prefix}%{pkg_name}-agent.service
3aaed5
%systemd_post %{?scl_prefix}%{pkg_name}-storage.service
3aaed5
# Required for icon cache (i.e. Thermostat icon)
3aaed5
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
3aaed5
3aaed5
%preun
3aaed5
############################################################
3aaed5
#%systemd_preun %{?scl_prefix}%{pkg_name}-agent.service
3aaed5
%systemd_preun %{?scl_prefix}%{pkg_name}-storage.service
3aaed5
3aaed5
%postun
3aaed5
# Required for icon cache (i.e. Thermostat icon)
3aaed5
if [ $1 -eq 0 ] ; then
3aaed5
    /bin/touch --no-create %{_datadir}/icons/hicolor &> /dev/null
3aaed5
    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
3aaed5
fi
3aaed5
# FIXME: install or not-to-install agent service running as root?
3aaed5
#        Currently: Don't install.
3aaed5
#%systemd_postun %{?scl_prefix}%{pkg_name}-agent.service
3aaed5
%systemd_postun %{?scl_prefix}%{pkg_name}-storage.service
3aaed5
3aaed5
%posttrans
3aaed5
# Required for icon cache (i.e. Thermostat icon)
3aaed5
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
3aaed5
3aaed5
%files -f .mfiles
3aaed5
%doc COPYING
3aaed5
%doc LICENSE
3aaed5
%doc README
3aaed5
# Own appropriate files in /etc/ part of them belong to the
3aaed5
# webapp sub-package
3aaed5
%config(noreplace) %dir %{_sysconfdir}/%{pkg_name}
3aaed5
# This file is only used by the systemd service running agent.
3aaed5
# Only root should be able to read/write to it.
3aaed5
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/%{pkg_name}/agent.auth
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/agent.properties
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/commands
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/db.properties
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/logging.properties
aa165c
%config(noreplace) %{_sysconfdir}/%{pkg_name}/plugins.d
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/osgi-export.properties
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/ssl.properties
3aaed5
# Required for systemd services
3aaed5
%config(noreplace) %{_sysconfdir}/sysconfig/%{pkg_name}
3aaed5
# thermostat.desktop lives in /usr/share/applications
3aaed5
%{_datadir}/applications/%{pkg_name}.desktop
3aaed5
# thermostat icon
3aaed5
%{_datadir}/icons/hicolor/scalable/apps/%{pkg_name}.svg
aa165c
%{_datadir}/%{pkg_name}/etc
aa165c
%{_datadir}/%{pkg_name}/bin
aa165c
%{_datadir}/%{pkg_name}/libs
aa165c
%{_datadir}/%{pkg_name}/plugins/host-cpu
aa165c
%{_datadir}/%{pkg_name}/plugins/host-memory
aa165c
%{_datadir}/%{pkg_name}/plugins/host-overview
aa165c
%{_datadir}/%{pkg_name}/plugins/killvm
aa165c
%{_datadir}/%{pkg_name}/plugins/notes
aa165c
%{_datadir}/%{pkg_name}/plugins/numa
aa165c
%{_datadir}/%{pkg_name}/plugins/storage-profile
aa165c
%{_datadir}/%{pkg_name}/plugins/thread
aa165c
%{_datadir}/%{pkg_name}/plugins/validate
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-classstat
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-cpu
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-gc
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-heap-analysis
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-jmx
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-memory
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-overview
aa165c
%{_datadir}/%{pkg_name}/plugins/vm-profiler
aa165c
%{_datadir}/%{pkg_name}/cache
aa165c
%{_datadir}/%{pkg_name}/data
aa165c
%{_datadir}/%{pkg_name}/logs
aa165c
%{_datadir}/%{pkg_name}/run
3aaed5
%{_jnidir}/thermostat-*.jar
3aaed5
%{_bindir}/thermostat
aa165c
%{_bindir}/thermostat-setup
3aaed5
%{_unitdir}/%{?scl_prefix}%{pkg_name}-storage.service
aa165c
%{_libdir}/%{pkg_name}/libGTKThemeUtils.so
aa165c
%{_libdir}/%{pkg_name}/libGnomeKeyringWrapper.so
aa165c
%{_libdir}/%{pkg_name}/libHostNameWrapper.so
aa165c
%{_libdir}/%{pkg_name}/libUserNameUtilWrapper.so
aa165c
%{_libdir}/%{pkg_name}/thermostat-agent-core-1.2.0.jar
aa165c
%{_libdir}/%{pkg_name}/thermostat-keyring-1.2.0.jar
aa165c
%{_libdir}/%{pkg_name}/thermostat-laf-utils-1.2.0.jar
3aaed5
# FIXME: install or not-to-install agent service running as root?
3aaed5
#        Currently: Don't install.
3aaed5
#%{_unitdir}/%{pkg_name}-agent.service
3aaed5
%{system_tmpfilesdir}/%{pkg_name}.conf
3aaed5
# To these directories get written to when thermostat storage/agent
3aaed5
# run as systemd services
3aaed5
%attr(0770,thermostat,thermostat) %dir %{system_datadir}
aa165c
%attr(0770,thermostat,thermostat) %{system_datadir}/setup-complete.stamp
3aaed5
%attr(0770,thermostat,thermostat) %dir %{system_cachedir}
3aaed5
%attr(0770,thermostat,thermostat) %dir %{system_logdir}
3aaed5
%attr(0770,thermostat,thermostat) %dir %{system_statedir}
3aaed5
# Own directories we ship libs in. See RHBZ#1057169
aa165c
%{_javadir}/%{pkg_name}
3aaed5
3aaed5
%files javadoc
3aaed5
%doc LICENSE
3aaed5
%doc COPYING
aa165c
%{_datarootdir}/javadoc/%{pkg_name}
3aaed5
3aaed5
%files webapp -f .mfiles-webapp
3aaed5
%{thermostat_catalina_base}
aa165c
%{_datadir}/%{pkg_name}/webapp
aa165c
%{_datadir}/%{pkg_name}/plugins/embedded-web-endpoint
3aaed5
%config(noreplace) %{_sysconfdir}/%{pkg_name}/%{pkg_name}_jaas.conf
aa165c
%config(noreplace) %{_sysconfdir}/%{pkg_name}/web-storage-service.properties
3aaed5
# Those files should be readable by root and tomcat only
3aaed5
%attr(0640,root,tomcat) %config(noreplace) %{_sysconfdir}/%{pkg_name}/%{pkg_name}-users.properties
3aaed5
%attr(0640,root,tomcat) %config(noreplace) %{_sysconfdir}/%{pkg_name}/%{pkg_name}-roles.properties
aa165c
%attr(0640,root,tomcat) %config(noreplace) %{_sysconfdir}/%{pkg_name}/web.auth
aa165c
3aaed5
%config(noreplace) %{system_confdir}/sysconfig/%{?scl_prefix}%{pkg_name}-tomcat
3aaed5
%config(noreplace) %{system_confdir}/sysconfig/%{thermostat_tomcat_service_name}
3aaed5
%{_unitdir}/%{?scl_prefix}%{pkg_name}-tomcat.service
3aaed5
%attr(0770,tomcat,tomcat) %dir %{_root_localstatedir}/log/%{thermostat_tomcat_service_name}
aa165c
%config(noreplace) %{_sysconfdir}/%{pkg_name}/thermostat_webstorageservice_jaas.conf
aa165c
# File used by RHEL-7.1's tomcat@thermostat service.
aa165c
%config(noreplace) %{system_confdir}/sysconfig/tomcat@%{pkg_name}
3aaed5
3aaed5
%changelog
aa165c
* Mon May 18 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1.2.0-70.12
aa165c
- Read mongodb credentials from separate file.
aa165c
- Resolves: RHBZ#1222621 (CVE-2015-3201)
aa165c
aa165c
* Tue Apr 28 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1.2.0-70.11
aa165c
- Make deployment mechanism for the web endpoint using system
aa165c
  tomcat work on RHEL-7.0 and RHEL-7.1. For RHEL-7.0 tomcat needs
aa165c
  to get started via "service thermostat1-thermostat-tomcat start".
aa165c
  On RHEL-7.1 it's "service tomcat@thermostat start".
aa165c
- Resolves: RHBZ#1215804
aa165c
aa165c
* Fri Apr 24 2015 Omair Majid <omajid@redhat.com> - 1.2.0-70.10
aa165c
- Fix warnings printed on startup
aa165c
- Resolves: RHBZ#1214921
aa165c
aa165c
* Thu Apr 23 2015 Omair Majid <omajid@redhat.com> - 1.2.0-70.9
aa165c
- Fix dangling symlinks for plugins
aa165c
- Resolves: RHBZ#1194599
aa165c
aa165c
* Wed Apr 22 2015 Omair Majid <omajid@redhat.com> - 1.2.0-70.8
aa165c
- Enable web-storage-service
aa165c
- Resolves: RHBZ#1194599
aa165c
aa165c
* Thu Apr 2 2015 Jon VanAlten <jvanaltj@redhat.com> - 1.2.0-70.7
aa165c
- Remove redundant symlinks to lucene jars
aa165c
- Resolves: RHBZ#1193828
aa165c
- Replace mongodb's deprecated userAdd with userCreate in thermostat-setup
aa165c
- Resolves: RHBZ#1193837
aa165c
aa165c
* Mon Mar 16 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1.2.0-70.6
aa165c
- Use ~/.thermostat-1.2 as USER_THERMOSTAT_HOME per default.
aa165c
- Resolves: RHBZ#1201257.
aa165c
aa165c
* Mon Mar 16 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1.2.0-70.5
aa165c
- Install setup complete stamp file for
aa165c
  thermostat1-thermostat-storage.service
aa165c
- Resolves: RHBZ#1202300.
aa165c
aa165c
* Mon Mar 16 2015 Severin Gehwolf <sgehwolf@redhat.com> - 1.2.0-70.4
aa165c
- Don't own webapp files in main package.
aa165c
- Resolves: RHBZ#1198787.
aa165c
aa165c
* Thu Feb 12 2015 Omair Majid <omajid@redhat.com> - 1.2.0-70.3
aa165c
- Handle Ctrl-C in thermostat-setup gracefully
aa165c
- Resolves: RHBZ#1199581
aa165c
aa165c
* Sun Feb 1 2015 Jon VanAlten <jvanalte@redhat.com> - 1.2.0-70.2
aa165c
- Restore changelog entries mysteriously removed.
aa165c
aa165c
* Fri Jan 30 2015 Jon VanAlten <jvanalte@redhat.com> - 1.2.0-70.1
aa165c
- Update to 1.2.0 version
aa165c
- Use rh-java-common, maven30, rh-mongodb26 collections for deps as needed.
aa165c
1644b0
* Mon Dec 08 2014 Elliott Baron <ebaron@redhat.com> - 1.0.4-70.6
1644b0
- Add Obsoletes for agent-proxy-common module.
1644b0
- Resolves: RHBZ#1170141
1644b0
1644b0
* Fri Dec 05 2014 Elliott Baron <ebaron@redhat.com> - 1.0.4-70.5
1644b0
- Clean up remnants of agent-proxy-common module.
1644b0
- Resolves: RHBZ#1170141
1644b0
1644b0
* Tue Dec 02 2014 Elliott Baron <ebaron@redhat.com> - 1.0.4-70.4
1644b0
- Remove RMI from agent.
1644b0
- Resolves: RHBZ#1170141
1644b0
9ae980
* Tue Jul 15 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.4-70.3
9ae980
- Fix dangling symlinks for jline2, google-gson and apache-commons-fileupload
9ae980
  dependencies.
9ae980
- Resolves: RHBZ#1119757
9ae980
9ae980
* Tue Jul 15 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.4-70.2
9ae980
- Add requires for java-1.7.0-openjdk-devel and libgnome-keyring.
9ae980
- Resolves: RHBZ#1119669
9ae980
9ae980
* Tue Jun 24 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.4-70.1
9ae980
- Update to latest upstream bugfix release (v1.0.4).
9ae980
- Depend on mvn()-style auto-requires over manual requires.
9ae980
3aaed5
* Fri Feb 14 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.2-1
3aaed5
- Update to latest upstream release.
3aaed5
- Also fixes RHBZ#1045016 (Keyring issue).
3aaed5
- Require exact version of thermostat core in webapp subpackage.
3aaed5
- Resolves: RHBZ#1064987
3aaed5
3aaed5
* Thu Feb 13 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-12
3aaed5
- Apply patch for ping fix.
3aaed5
- Mention OFL in license field.
3aaed5
- Resolves: RHBZ#1061842
3aaed5
3aaed5
* Mon Feb 10 2014 Omair Majid <omajid@redhat.com> - 1.0.0-11
3aaed5
- Update package description
3aaed5
- Resolves: RHBZ#1062746
3aaed5
3aaed5
* Mon Jan 27 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-10
3aaed5
- Own directories in which we ship files in.
3aaed5
- Resolves: RHBZ#1057169
3aaed5
3aaed5
* Wed Jan 15 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-9
3aaed5
- Fix path to java and tools.jar in boot scripts.
3aaed5
- Add sanity check for correct paths in boot scripts
3aaed5
  in check section.
3aaed5
- Resolves: RHBZ#1053123 RHBZ#1052992
3aaed5
3aaed5
* Wed Jan 08 2014 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-8
3aaed5
- Fix web storage endpoint.
3aaed5
- Resolves: RHBZ#1048273 
3aaed5
3aaed5
* Mon Dec 23 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-7
3aaed5
- Don't log WARNING if LSB fallback is used for determining
3aaed5
  distro info.
3aaed5
- Resolves: RHBZ#1045003
3aaed5
3aaed5
* Mon Dec 23 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-6
3aaed5
- Don't generate osgi()-style provides.
3aaed5
- Resolves: RHBZ#1042888
3aaed5
3aaed5
* Mon Dec 23 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-5
3aaed5
- Don't generate provides for JNI natives.
3aaed5
- Resolves: RHBZ#1045552
3aaed5
3aaed5
* Mon Dec 23 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-4
3aaed5
- Fix FTBFS since osgi()-style provides have been removed from
3aaed5
  SCL-ized deps.
3aaed5
- Resolves: RHBZ#1045550
3aaed5
3aaed5
* Wed Nov 27 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-3
3aaed5
- Don't install left over *.orig file.
3aaed5
3aaed5
* Wed Nov 27 2013 Honza Horak <hhorak@redhat.com> - 1.0.0-2
3aaed5
- Fix requirements and enabling collection
3aaed5
3aaed5
* Tue Nov 26 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-1
3aaed5
- Update to upstream 1.0.0 release.
3aaed5
- Add ignore_bundle_versions.patch. See IcedTea BZ#1591.
3aaed5
- Fix thermostat1-thermostat-storage service. Works now in
3aaed5
  permissive mode.
3aaed5
3aaed5
* Mon Nov 25 2013 Severin Gehwolf <sgehwolf@redhat.com> - 1.0.0-0.1.20131122hgcf184d4064b2
3aaed5
- Update to 1.0.0 pre-release.
3aaed5
- Install tmpfiles.d config file.
3aaed5
- Update fix_bundle_loading.patch.
3aaed5
- Make webapp subpackage noarch.
3aaed5
3aaed5
* Thu Nov 21 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.15.0-2
3aaed5
- Remove unneeded symlink from core.
3aaed5
- Fix groupadd/useradd calls.
3aaed5
3aaed5
* Fri Nov 15 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.15.0-1
3aaed5
- Update to latest upstream release.
3aaed5
3aaed5
* Fri Nov 15 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-13
3aaed5
- Fix symlinks in webapp sub-package. 
3aaed5
3aaed5
* Mon Nov 11 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-12
3aaed5
- thermostat1 enable scriptlet does the mongodb24 enablement, so
3aaed5
  don't do it explicitly any longer.
3aaed5
3aaed5
* Thu Nov 07 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-11
3aaed5
- Remove BR on mongodb24-runtime. Should go into the thermostat1
3aaed5
  metapackage instead.
3aaed5
3aaed5
* Wed Nov 06 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-9
3aaed5
- Build against and use SCL-ized deps including mongodb24's
3aaed5
  mongo-java-driver. This means we depend on the mongodb24-1-2
3aaed5
  metapackage.
3aaed5
3aaed5
* Tue Aug 27 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-8
3aaed5
- Provide tomcat systemd service file + $CATALINA_BASE
3aaed5
  stub with thermostat-webapp.
3aaed5
3aaed5
* Tue Aug 27 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-7
3aaed5
- Install pom files again.
3aaed5
3aaed5
* Tue Aug 27 2013 Severin Gehwolf <sgehwolf@redhat.com> - 0.9.2-6
3aaed5
- Reenable webapp subpackage.
3aaed5
- Fix symlinks to system (non-scl) jars.
3aaed5
3aaed5
* Mon Aug 19 2013 Omair Majid <omajid@redhat.com> - 0.9.2-5
3aaed5
- Add initial SCL support to package.
3aaed5
- Disable webapp temporarily
3aaed5
3aaed5
* Wed Jun 05 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.9.2-4
3aaed5
- Don't install thermostat-agent.service due to IcedTea BZ#1460.
3aaed5
3aaed5
* Fri May 31 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.9.2-3
3aaed5
- Add thermostat SVG icon.
3aaed5
- Add systemd requires.
3aaed5
3aaed5
* Wed May 29 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.9.2-2
3aaed5
- Fix warning on uninstall.
3aaed5
3aaed5
* Fri May 24 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.9.2-1
3aaed5
- Update to upstream 0.9.2 release.
3aaed5
- With this update, storage/agent systemd services work in
3aaed5
  permissive mode.
3aaed5
3aaed5
* Wed May 22 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.9.0-1
3aaed5
- Update to upstream 0.9.0 release.
3aaed5
- Remove thermostat-client script.
3aaed5
- Fixes RHBZ#966892.
3aaed5
3aaed5
* Tue May 21 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.8.0-0.1.20130521hg97e66ed2e4ae
3aaed5
- Update to 0.8.0 pre-release.
3aaed5
- Install systemd unit files.
3aaed5
3aaed5
* Tue May 21 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-18
3aaed5
- Move require of servlet API to webapp sub-package.
3aaed5
3aaed5
* Mon May 20 2013 Omair Majid <omajid@redhat.com> 0.6.0-17
3aaed5
- COPYING and LICENSE should be included in all packages
3aaed5
- javadoc subpackage should be noarch
3aaed5
3aaed5
* Fri May 17 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-17
3aaed5
- Finish move to new-style mvn packaging.
3aaed5
3aaed5
* Fri May 17 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-16
3aaed5
- More xmvn + proper pom installation packaging progress.
3aaed5
3aaed5
* Fri May 17 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-15
3aaed5
- Require xmvn >= 0.4.2-1.1 in order to be able to skip installation
3aaed5
  of the web archive module.
3aaed5
- More work towards new-style packaging.
3aaed5
3aaed5
* Thu May 16 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-14
3aaed5
- More fixes using pom macros.
3aaed5
- Experiment with new-style packaging. Hit a road-block. Need a
3aaed5
  web archive installer which xmvn doesn't support :(
3aaed5
3aaed5
* Thu May 16 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-13
3aaed5
- Remove one more patch which can be replaced by pom macros.
3aaed5
3aaed5
* Fri Mar 15 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-12
3aaed5
- Remove plugins we don't need via pom macros.
3aaed5
- Add missing BR maven-javadoc-plugin.
3aaed5
3aaed5
* Fri Mar 15 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-11
3aaed5
- Fix webapp so as to allow symlinking deps.
3aaed5
- Add default users for webstorage.
3aaed5
3aaed5
* Fri Mar 15 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-10
3aaed5
- Fixup web.xml in thermostat-webapp.
3aaed5
3aaed5
* Thu Mar 14 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-9
3aaed5
- Fix thermostat-webapp so as to include web-server.jar
3aaed5
3aaed5
* Thu Mar 14 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-8
3aaed5
- Make disable_webservice_cmd.patch smaller (use pom macros instead).
3aaed5
- Remove unwanted files in /usr/share/thermostat which are generated by
3aaed5
  maven.
3aaed5
- Put all config files in /etc and symlink from appropriate places.
3aaed5
3aaed5
* Thu Mar 14 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-7
3aaed5
- Use pom macros instead of patches.
3aaed5
3aaed5
* Wed Mar 13 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-6
3aaed5
- Add webapp subpackage.
3aaed5
3aaed5
* Wed Mar 13 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-5
3aaed5
- Fix NPE on help.
3aaed5
- Fix bundle resolution errors for heap analysis commands.
3aaed5
3aaed5
* Tue Mar 12 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-4
3aaed5
- Fix bundle-loading patch so that all commands depending on
3aaed5
  httpcomponents-*.jars also start httpmime.
3aaed5
3aaed5
* Tue Mar 12 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-3
3aaed5
- Update init-layout-patch (was missing plugins symlink).
3aaed5
- Fix OSGi filter syntax (prevented thermostat gui from booting).
3aaed5
3aaed5
* Mon Mar 11 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.6.0-2
3aaed5
- Disable webservice command.
3aaed5
- Do a tomcat-only build.
3aaed5
- Work around jline2 jar not being there (see RHBZ#919640).
3aaed5
3aaed5
* Fri Mar 8 2013 Jon VanAlten <jon.vanalten@redhat.com> - 0.6.0-1
3aaed5
- Update to upstream 0.6.0 release.
3aaed5
- Also fix RHBZ 914544 (ftbfs)
3aaed5
3aaed5
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5.0-0.28.20121123hgd6145521e208
3aaed5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
3aaed5
3aaed5
* Wed Feb 06 2013 Java SIG <java-devel@lists.fedoraproject.org> - 0.5.0-0.27.20121123hgd6145521e208
3aaed5
- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild
3aaed5
- Replace maven BuildRequires with maven-local
3aaed5
3aaed5
* Mon Jan 7 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.26.20121123hgd6145521e208
3aaed5
- Remove felix-osgi-compendium BR/R since we don't use it (yet).
3aaed5
3aaed5
* Mon Jan 7 2013 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.25.20121123hgd6145521e208
3aaed5
- Fix for RHBZ 891840 (NoSuchMethodError on boot).
3aaed5
3aaed5
* Thu Dec 20 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.24.20121123hgd6145521e208
3aaed5
- Fix broken symlinks in %{_jnidir}. See RHBZ#889187.
3aaed5
3aaed5
* Wed Dec 19 2012 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0.5.0-0.23.20121123hgd6145521e208
3aaed5
- revbump after jnidir change
3aaed5
3aaed5
* Fri Nov 23 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.22.20121123hgd6145521e208
3aaed5
- Update to more recent snapshot.
3aaed5
- New BR maven-war-plugin.
3aaed5
3aaed5
* Fri Nov 23 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.21.20121121hg09c2918d8656
3aaed5
- Require better lucene which has the javax.management
3aaed5
  ImportPackage header.
3aaed5
3aaed5
* Thu Nov 22 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.5.0-0.20.20121121hg09c2918d8656
3aaed5
- Build a first pre-release version of thermostat.
3aaed5
- Includes web layer.
3aaed5
3aaed5
* Thu Nov 15 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-7
3aaed5
- Export JAVA_HOME before calling make.
3aaed5
3aaed5
* Thu Nov 15 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-6
3aaed5
- Set JAVA_HOME via set_jvm.
3aaed5
3aaed5
* Wed Nov 14 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-5
3aaed5
- Don't use maven-exec-plugin for compiling native bits.
3aaed5
3aaed5
* Mon Oct 22 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-4
3aaed5
- Require >= jline2-2.5-7 since it has the import-package fix
3aaed5
  (see RHBZ#868291).
3aaed5
3aaed5
* Mon Oct 22 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-3
3aaed5
- Fix RHBZ#868486
3aaed5
- Debug-infos were not properly generated.
3aaed5
- Do not override CFLAGS/LDFLAGS.
3aaed5
3aaed5
* Fri Oct 19 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-2
3aaed5
- Fix jfreechart.jar symlink name.
3aaed5
3aaed5
* Tue Oct 16 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.4.0-1
3aaed5
- Update to upstream 0.4 release.
3aaed5
- Starts dependencies as bundles.
3aaed5
3aaed5
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-3
3aaed5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
3aaed5
3aaed5
* Thu Jul 19 2012 Severin Gehwolf <sgehwolf@redhat.com> 0.3-2
3aaed5
- Removed now obsolete patch (with jfreechart updated to 1.0.14)
3aaed5
- Added BR
3aaed5
3aaed5
* Thu Jul 12 2012 Omair Majid <omajid@redhat.com> - 0.3-1
3aaed5
- Update to upstream 0.3 release
3aaed5
3aaed5
* Sun May 06 2012 Omair Majid <omajid@redhat.com> - 0.2-0.20120506hg2140a7c81a4b
3aaed5
- Resolve RH813539
3aaed5
- Remove uneeded require on fusesource-pom
3aaed5
- Fix jar to use jline2 instead of jline
3aaed5
3aaed5
* Fri May 04 2012 Omair Majid <omajid@redhat.com> - 0.2-0.20120503hg2140a7c81a4b
3aaed5
- Update to pre-release upstream snapshot
3aaed5
3aaed5
* Mon Feb 13 2012 Omair Majid <omajid@redhat.com> - 0.1-1
3aaed5
- Updated description
3aaed5
3aaed5
* Tue Feb 07 2012 Omair Majid <omajid@redhat.com> - 0.1-1
3aaed5
- Intial package