|
|
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
|