Blame SPECS/rh-thermostat16.spec

9e4dcc
%{!?scl_name_base:%global scl_name_base rh-thermostat}
9e4dcc
%{!?scl_name_version:%global scl_name_version 16}
9e4dcc
9e4dcc
%{!?scl:%global scl %{scl_name_base}%{scl_name_version}}
9e4dcc
%scl_package %scl
9e4dcc
9e4dcc
%if 0%{?rhel}
9e4dcc
9e4dcc
%if 0%{?rhel} <= 6
9e4dcc
  # EL 6
9e4dcc
  %global custom_release 60
9e4dcc
%else
9e4dcc
  # EL 7
9e4dcc
  %global custom_release 70
9e4dcc
%endif
9e4dcc
9e4dcc
%else
9e4dcc
9e4dcc
%global custom_release 1
9e4dcc
9e4dcc
%endif
9e4dcc
9e4dcc
# do not produce empty debuginfo package
9e4dcc
%global debug_package %{nil}
9e4dcc
9e4dcc
Name:       %{scl_name}
9e4dcc
Version:    2.3
9e4dcc
# Release should be higher than el6 builds. Use convention
9e4dcc
# 60.X where X is an increasing int. 60 for EL-6. We use
9e4dcc
# 70.X for EL-7. For some reason we cannot rely on the
9e4dcc
# dist tag.
9e4dcc
Release:    %{custom_release}.6%{?dist}
9e4dcc
Summary:    Package that installs %{scl}
9e4dcc
9e4dcc
License:    GPLv2+
9e4dcc
Source0:    README
9e4dcc
Source1:    LICENSE
9e4dcc
9e4dcc
# Required for java macro expansion
9e4dcc
BuildRequires:    rh-java-common-javapackages-tools
9e4dcc
BuildRequires:    rh-mongodb32-scldevel
9e4dcc
BuildRequires:    rh-java-common-scldevel-common
9e4dcc
BuildRequires:    rh-maven33-scldevel
9e4dcc
BuildRequires:    help2man
9e4dcc
9e4dcc
# This needs to require all packages shipped with the
9e4dcc
# collection. The leaf package is thermostat-webapp
9e4dcc
# which should pull in thermostat plus all deps, such
9e4dcc
# as mongo-java-driver and mongodb from the mongodb collection.
9e4dcc
Requires:         %{name}-thermostat-webapp
9e4dcc
Requires:         %{name}-runtime >= %{version}-%{release}
9e4dcc
9e4dcc
%description
9e4dcc
This is the main package for the %{scl} Software Collection.
9e4dcc
9e4dcc
%package runtime
9e4dcc
Summary:    Package that handles %{scl} Software Collection.
9e4dcc
# Thermostat depends on the mongodb collection
9e4dcc
%{?scl_mongodb:
9e4dcc
Requires:   %{scl_mongodb}}
9e4dcc
%{!?scl_mongodb:
9e4dcc
Requires:   mongodb
9e4dcc
Requires:   mongodb-server}
9e4dcc
%{?scl_java_common:
9e4dcc
Requires:   %{?scl_prefix_java_common}runtime}
9e4dcc
9e4dcc
%description runtime
9e4dcc
Package shipping essential scripts to work with the %{scl} Software Collection.
9e4dcc
9e4dcc
%package build
9e4dcc
Requires:   %{name}-scldevel = %{version}-%{release}
9e4dcc
Summary:    Build support tools for the %{scl} Software Collection.
9e4dcc
9e4dcc
%description build
9e4dcc
Package shipping essential configuration marcros/files in order to be able
9e4dcc
to build %{scl} Software Collection.
9e4dcc
9e4dcc
%package scldevel
9e4dcc
Summary:    Package shipping development files for %{scl}.
9e4dcc
Group:      Applications/File
9e4dcc
Requires:   %{?scl_prefix_java_common}javapackages-tools
9e4dcc
Requires:   %{name}-runtime = %{version}-%{release}
9e4dcc
Requires:   %{?scl_prefix_java_common}scldevel-common
9e4dcc
Requires:   %{?scl_prefix_mongodb}scldevel
9e4dcc
Requires:   %{?scl_prefix_maven}scldevel
9e4dcc
9e4dcc
%description scldevel
9e4dcc
Development files for %{scl} (useful e.g. for hierarchical collection
9e4dcc
building with transitive dependencies).
9e4dcc
9e4dcc
%prep
9e4dcc
%setup -c -T
9e4dcc
#===================#
9e4dcc
# SCL enable script #
9e4dcc
#===================#
9e4dcc
cat <<EOF >enable
9e4dcc
# The thermostat1 collection depends on the mongodb collection
9e4dcc
# for the mongo-java-driver and on the rh-java-commmon collection
9e4dcc
# for shared dependencies. We need to source the enable script
9e4dcc
# in order for xmvn builds to work.
9e4dcc
. scl_source enable %{?scl_mongodb} %{?scl_java_common}
9e4dcc
9e4dcc
# Generic variables
9e4dcc
export PATH="%{_bindir}:\${PATH:-/bin:/usr/bin}"
9e4dcc
export MANPATH="%{_mandir}:\${MANPATH}"
9e4dcc
9e4dcc
# Needed by Java Packages Tools to locate java.conf
9e4dcc
export JAVACONFDIRS="%{_sysconfdir}/java:\${JAVACONFDIRS:-/etc/java}"
9e4dcc
9e4dcc
# Required by XMvn to locate its configuration file(s)
9e4dcc
export XDG_CONFIG_DIRS="%{_sysconfdir}/xdg:\${XDG_CONFIG_DIRS:-/etc/xdg}"
9e4dcc
9e4dcc
# Not really needed by anything for now, but kept for consistency with
9e4dcc
# XDG_CONFIG_DIRS.
9e4dcc
export XDG_DATA_DIRS="%{_datadir}:\${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
9e4dcc
EOF
9e4dcc
9e4dcc
#===========#
9e4dcc
# java.conf #
9e4dcc
#===========#
9e4dcc
cat <<EOF >java.conf
9e4dcc
# Java configuration file for %{scl} software collection.
9e4dcc
JAVA_LIBDIR=%{_javadir}
9e4dcc
JNI_LIBDIR=%{_jnidir}
9e4dcc
JVM_ROOT=%{_jvmdir}
9e4dcc
EOF
9e4dcc
9e4dcc
#=============#
9e4dcc
# XMvn config #
9e4dcc
#=============#
9e4dcc
cat <<EOF >configuration.xml
9e4dcc
9e4dcc
<configuration>
9e4dcc
  <resolverSettings>
9e4dcc
    <metadataRepositories>
9e4dcc
      <repository>/opt/rh/%{scl}/root/usr/share/maven-metadata</repository>
9e4dcc
    </metadataRepositories>
9e4dcc
    <prefixes>
9e4dcc
      <prefix>/opt/rh/%{scl}/root</prefix>
9e4dcc
    </prefixes>
9e4dcc
  </resolverSettings>
9e4dcc
  <installerSettings>
9e4dcc
    <metadataDir>opt/rh/%{scl}/root/usr/share/maven-metadata</metadataDir>
9e4dcc
  </installerSettings>
9e4dcc
  <repositories>
9e4dcc
    <repository>
9e4dcc
      <id>resolve-%{scl}</id>
9e4dcc
      <type>compound</type>
9e4dcc
      <properties>
9e4dcc
        <prefix>opt/rh/%{scl}/root</prefix>
9e4dcc
        <namespace>%{scl}</namespace>
9e4dcc
      </properties>
9e4dcc
      <configuration>
9e4dcc
        <repositories>
9e4dcc
          <repository>base-resolve</repository>
9e4dcc
        </repositories>
9e4dcc
      </configuration>
9e4dcc
    </repository>
9e4dcc
    <repository>
9e4dcc
      <id>resolve</id>
9e4dcc
      <type>compound</type>
9e4dcc
      <configuration>
9e4dcc
        <repositories>
9e4dcc
        
9e4dcc
                    1. local repository
9e4dcc
                    2. %{scl}
9e4dcc
                    3. java-common
9e4dcc
                    4. mongodb
9e4dcc
                    5. maven
9e4dcc
               collections. -->
9e4dcc
          <repository>resolve-local</repository>
9e4dcc
          <repository>resolve-%{scl}</repository>
9e4dcc
          <repository>resolve-java-common</repository>
9e4dcc
          <repository>resolve-%{scl_mongodb}</repository>
9e4dcc
          <repository>resolve-%{scl_maven}</repository>
9e4dcc
        </repositories>
9e4dcc
      </configuration>
9e4dcc
    </repository>
9e4dcc
    <repository>
9e4dcc
      <id>install</id>
9e4dcc
      <type>compound</type>
9e4dcc
      <properties>
9e4dcc
        <prefix>opt/rh/%{scl}/root</prefix>
9e4dcc
        <namespace>%{scl}</namespace>
9e4dcc
      </properties>
9e4dcc
      <configuration>
9e4dcc
        <repositories>
9e4dcc
          <repository>base-install</repository>
9e4dcc
        </repositories>
9e4dcc
      </configuration>
9e4dcc
    </repository>
9e4dcc
  </repositories>
9e4dcc
</configuration>
9e4dcc
EOF
9e4dcc
9e4dcc
#=====================#
9e4dcc
# Javapackages config #
9e4dcc
#=====================#
9e4dcc
cat <<EOF >javapackages-config.json
9e4dcc
{
9e4dcc
    "maven.req": {
9e4dcc
	"always_generate": [
9e4dcc
	    "%{scl}-runtime"
9e4dcc
	],
9e4dcc
	"java_requires": {
9e4dcc
	    "package_name": "java",
9e4dcc
	    "always_generate": true,
9e4dcc
	    "skip": false
9e4dcc
	},
9e4dcc
	"java_devel_requires": {
9e4dcc
	    "package_name": "java-devel",
9e4dcc
	    "always_generate": false,
9e4dcc
	    "skip": false
9e4dcc
	}
9e4dcc
    },
9e4dcc
    "javadoc.req": {
9e4dcc
	"always_generate": [
9e4dcc
	    "%{scl}-runtime"
9e4dcc
	]
9e4dcc
    }
9e4dcc
}
9e4dcc
EOF
9e4dcc
9e4dcc
9e4dcc
#=====================#
9e4dcc
# README and man page #
9e4dcc
#=====================#
9e4dcc
# This section generates README file from a template and creates man page
9e4dcc
# from that file, expanding RPM macros in the template file.
9e4dcc
cat >README <<'EOF'
9e4dcc
%{expand:%(cat %{SOURCE0})}
9e4dcc
EOF
9e4dcc
9e4dcc
# copy the license file so %%files section sees it
9e4dcc
cp %{SOURCE1} .
9e4dcc
9e4dcc
# scldevel macros
9e4dcc
cat << EOF > macros.%{scl_name_base}-scldevel
9e4dcc
%%scl_rh_thermostat %{scl}
9e4dcc
%%scl_prefix_rh_thermostat %{scl_prefix}
9e4dcc
EOF
9e4dcc
9e4dcc
9e4dcc
%build
9e4dcc
# generate a helper script that will be used by help2man
9e4dcc
cat >h2m_helper <<'EOF'
9e4dcc
#!/bin/bash
9e4dcc
[ "$1" == "--version" ] && echo "%{scl_name} %{version} Software Collection" || cat README
9e4dcc
EOF
9e4dcc
chmod a+x h2m_helper
9e4dcc
9e4dcc
# generate the man page
9e4dcc
help2man -N --section 7 ./h2m_helper -o %{scl_name}.7
9e4dcc
9e4dcc
9e4dcc
%install
9e4dcc
(%scl_install)
9e4dcc
9e4dcc
install -d -m 755 %{buildroot}%{_scl_scripts}
9e4dcc
install -p -m 755 enable %{buildroot}%{_scl_scripts}/
9e4dcc
9e4dcc
install -d -m 755 %{buildroot}%{_sysconfdir}/java
9e4dcc
install -p -m 644 java.conf %{buildroot}%{_sysconfdir}/java/
9e4dcc
install -p -m 644 javapackages-config.json %{buildroot}%{_sysconfdir}/java/
9e4dcc
9e4dcc
install -d -m 755 %{buildroot}%{_sysconfdir}/xdg/xmvn
9e4dcc
install -p -m 644 configuration.xml %{buildroot}%{_sysconfdir}/xdg/xmvn/
9e4dcc
9e4dcc
9e4dcc
# Create java/maven/icons directories so that they'll get properly owned.
9e4dcc
mkdir -p %{buildroot}%{_javadir}
9e4dcc
mkdir -p %{buildroot}%{_jnidir}
9e4dcc
mkdir -p %{buildroot}%{_javadocdir}
9e4dcc
mkdir -p %{buildroot}%{_mavenpomdir}
9e4dcc
mkdir -p %{buildroot}%{_datadir}/maven-effective-poms
9e4dcc
mkdir -p %{buildroot}%{_datadir}/maven-metadata
9e4dcc
mkdir -p %{buildroot}%{_mavendepmapfragdir}
9e4dcc
mkdir -p %{buildroot}%{_datadir}/licenses
9e4dcc
mkdir -p %{buildroot}%{_libdir}
9e4dcc
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps
9e4dcc
9e4dcc
# install generated man page
9e4dcc
mkdir -p %{buildroot}%{_mandir}/man7/
9e4dcc
install -m 644 %{scl_name}.7 %{buildroot}%{_mandir}/man7/%{scl_name}.7
9e4dcc
9e4dcc
# scldevel macro
9e4dcc
install -p -m 644 macros.%{scl_name_base}-scldevel %{buildroot}%{_root_sysconfdir}/rpm/
9e4dcc
9e4dcc
# Empty package (no file content).  The sole purpose of this package
9e4dcc
# is collecting its dependencies so that the whole SCL can be
9e4dcc
# installed by installing %{name}.
9e4dcc
%files
9e4dcc
9e4dcc
%files runtime
9e4dcc
%{scl_files}
9e4dcc
%doc README
9e4dcc
%doc LICENSE
9e4dcc
%dir %{_sysconfdir}/java
9e4dcc
%dir %{_javadir}
9e4dcc
%dir %{_jnidir}
9e4dcc
%dir %{_javadocdir}
9e4dcc
%dir %{_mavenpomdir}
9e4dcc
%dir %{_datadir}/maven-effective-poms
9e4dcc
%dir %{_datadir}/maven-metadata
9e4dcc
%dir %{_mavendepmapfragdir}
9e4dcc
%dir %{_datadir}/licenses
9e4dcc
%dir %{_libdir}
9e4dcc
%{_sysconfdir}/java/java.conf
9e4dcc
%{_sysconfdir}/java/javapackages-config.json
9e4dcc
%{_sysconfdir}/xdg/xmvn/configuration.xml
9e4dcc
%dir %{_mandir}/man7
9e4dcc
%{_mandir}/man7/%{scl_name}.*
9e4dcc
9e4dcc
%files build
9e4dcc
%{_root_sysconfdir}/rpm/macros.%{scl}-config
9e4dcc
9e4dcc
%files scldevel
9e4dcc
%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel
9e4dcc
9e4dcc
9e4dcc
%changelog
9e4dcc
* Tue Sep 06 2016 Jie Kang <jkang@redhat.com> - 2.3-6
9e4dcc
- Own in-collection directory. Resolves RHBZ#1371518
9e4dcc
9e4dcc
* Fri Jun 24 2016 Severin Gehwolf <sgehwolf@redhat.com> - 2.3-5
9e4dcc
- Also done runtime require rh-java-common-scldevel, but
9e4dcc
  rather rh-java-common-scldevel-common.
9e4dcc
9e4dcc
* Thu Jun 23 2016 Severin Gehwolf <sgehwolf@redhat.com> - 2.3-4
9e4dcc
- Don't require rh-java-common-scldevel, but
9e4dcc
  rh-java-common-scldevel-common which does not drag in
9e4dcc
  maven30.
9e4dcc
9e4dcc
* Thu Jun 23 2016 Severin Gehwolf <sgehwolf@redhat.com> - 2.3-3
9e4dcc
- Really fix the scldevel macros.
9e4dcc
9e4dcc
* Thu Jun 23 2016 Severin Gehwolf <sgehwolf@redhat.com> - 2.3-2
9e4dcc
- Fix scldevel macro.
9e4dcc
9e4dcc
* Tue Jun 21 2016 Severin Gehwolf <sgehwolf@redhat.com> - 2.3-1
9e4dcc
- Initial package