Blob Blame History Raw
%{!?scl_name_base:%global scl_name_base rh-maven}
%{!?scl_name_version:%global scl_name_version 33}
%{!?scl:%global scl %{scl_name_base}%{scl_name_version}}
%scl_package %scl

%global debug_package %{nil}

Name:       %scl_name
Version:    1
Release:    18%{?dist}
Summary:    Package that installs %scl

License:    GPLv2+
#URL:
Source1:    macros.%{scl_name}
Source2:    javapackages-config.json
Source3:    xmvn-configuration.xml
Source4:    README
Source5:    LICENSE

BuildRequires:  help2man
BuildRequires:  scl-utils-build

Requires:         %{name}-runtime = %{version}-%{release}
Requires:         %{scl_name}-maven

%description
This is the main package for the %scl Software Collection.

%package runtime
Summary:    Package that handles %scl Software Collection.
Requires:   scl-utils
Requires:   java-devel-openjdk >= 1:1.7

%description runtime
Package shipping essential scripts to work with the %scl Software Collection.

%package build
Summary:    Build support tools for the %scl Software Collection.
Requires:   scl-utils-build
Requires:   %{name}-scldevel = %{version}-%{release}

%description build
Package shipping essential configuration marcros/files in order to be able
to build %scl Software Collection.

%package scldevel
Summary:    Package shipping development files for %scl
Requires:   %{name}-maven-local = %{version}-%{release}
Requires:   %{name}-runtime = %{version}-%{release}
Requires:   %{?scl_prefix_java_common}scldevel-common

%description scldevel
Package shipping development files, especially useful for development of
packages depending on %scl Software Collection.

# javapackages-tools counterparts for rh-maven33 collection
%package maven-local
Summary:        Support for Maven packaging
Requires:       %{?scl_prefix_java_common}javapackages-tools
Requires:       %{name}-javapackages-local = %{version}-%{release}
Requires:       %{?scl_prefix}maven
Requires:       %{?scl_prefix}xmvn >= 2
Requires:       %{?scl_prefix}xmvn-mojo >= 2
Requires:       %{?scl_prefix}xmvn-connector-aether >= 2
# POM files needed by maven itself
Requires:       %{?scl_prefix}apache-commons-parent
Requires:       %{?scl_prefix}apache-parent
Requires:       %{?scl_prefix}geronimo-parent-poms
Requires:       %{?scl_prefix}httpcomponents-project
Requires:       %{?scl_prefix}jboss-parent
Requires:       %{?scl_prefix}jvnet-parent
Requires:       %{?scl_prefix}maven-parent
Requires:       %{?scl_prefix}maven-plugins-pom
Requires:       %{?scl_prefix}mojo-parent
Requires:       %{?scl_prefix}plexus-components-pom
Requires:       %{?scl_prefix}plexus-pom
Requires:       %{?scl_prefix}plexus-tools-pom
Requires:       %{?scl_prefix}sonatype-oss-parent
Requires:       %{?scl_prefix}weld-parent
# Common Maven plugins required by almost every build. It wouldn't make
# sense to explicitly require them in every package built with Maven.
Requires:       %{?scl_prefix}maven-assembly-plugin
Requires:       %{?scl_prefix}maven-compiler-plugin
Requires:       %{?scl_prefix}maven-enforcer-plugin
Requires:       %{?scl_prefix}maven-jar-plugin
Requires:       %{?scl_prefix}maven-javadoc-plugin
Requires:       %{?scl_prefix}maven-resources-plugin
Requires:       %{?scl_prefix}maven-surefire-plugin
# Tests based on JUnit are very common and JUnit itself is small.
# Include JUnit provider for Surefire just for convenience.
Requires:       %{?scl_prefix}maven-surefire-provider-junit
# testng is quite common as well
Requires:       %{?scl_prefix}maven-surefire-provider-testng
Requires:       %{?scl_prefix_java_common}maven-local-support

%description maven-local
This package provides tools to support packaging Maven artifacts.

%package ivy-local
Summary:        Support for Apache Ivy packaging
Requires:       %{?scl_prefix_java_common}javapackages-tools
Requires:       %{name}-javapackages-local = %{version}-%{release}
Requires:       %{?scl_prefix}apache-ivy
Requires:       %{?scl_prefix}xmvn-connector-ivy >= 2
Requires:       %{?scl_prefix_java_common}ivy-local-support

%description ivy-local
This package provides tools to support Apache Ivy packaging.

%package javapackages-local
Summary:        Non-essential tools for Java packaging
Requires:       %{?scl_prefix_java_common}javapackages-tools
Requires:       %{?scl_prefix}xmvn-install >= 2
Requires:       %{?scl_prefix}xmvn-subst >= 2
Requires:       %{?scl_prefix}xmvn-resolve >= 2
Requires:       %{?scl_prefix_java_common}javapackages-local-support

%description javapackages-local
This package provides non-essential tools for Java packaging.

%prep
%setup -c -T
#===================#
# SCL enable script #
#===================#
cat <<EOF >enable
. /opt/rh/%{scl_java_common}/enable

# Generic variables
export PATH="%{_bindir}:\${PATH:-/bin:/usr/bin}"
export MANPATH="%{_mandir}\${MANPATH:+:}\${MANPATH:-}"
export PYTHONPATH="%{_scl_root}%{python_sitelib}\${PYTHONPATH:+:}\${PYTHONPATH:-}"

export JAVACONFDIRS="%{_sysconfdir}/java\${JAVACONFDIRS:+:}\${JAVACONFDIRS:-}"
export XDG_CONFIG_DIRS="%{_sysconfdir}/xdg:\${XDG_CONFIG_DIRS:-/etc/xdg}"
export XDG_DATA_DIRS="%{_datadir}:\${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
EOF

# Generate Eclipse configuration file
cat <<EOF >eclipse.conf
eclipse.bundles=%{_javadir},%{_jnidir}
scl.namespace=%{?scl}
scl.root=%{?_scl_root}
EOF

# Generate java.conf
cat <<EOF >java.conf
JAVA_LIBDIR=/opt/rh/%{scl_name}/root/usr/share/java
JNI_LIBDIR=/opt/rh/%{scl_name}/root/usr/lib/java
JVM_ROOT=/opt/rh/%{scl_name}/root/usr/lib/jvm
EOF

# This section generates README file from a template and creates man page
# from that file, expanding RPM macros in the template file.
cat >README <<'EOF'
%{expand:%(cat %{SOURCE4})}
EOF

# copy the license file so %%files section sees it
cp %{SOURCE5} .

cp %{SOURCE1} macros.%{scl_name}
cat >> macros.%{scl_name} << EOF
%%_sysconfdir_maven %_sysconfdir
%%_prefix_maven %_prefix
%%_exec_prefix_maven %_exec_prefix
%%_bindir_maven %_bindir
%%_libdir_maven %_libdir
%%_libexecdir_maven %_libexecdir
%%_sbindir_maven %_sbindir
%%_sharedstatedir_maven %_sharedstatedir
%%_datarootdir_maven %_datarootdir
%%_datadir_maven %_datadir
%%_includedir_maven %_includedir
%%_infodir_maven %_infodir
%%_mandir_maven %_mandir
%%_localstatedir_maven %_localstatedir
%%_initddir_maven %_initddir
%%_javadir_maven %_javadir
%%_jnidir_maven %_jnidir
%%_javadocdir_maven %_javadocdir
%%_mavenpomdir_maven %_mavenpomdir
%%_jvmdir_maven %_jvmdir
%%_jvmsysconfdir_maven %_jvmsysconfdir
%%_jvmcommonsysconfdir_maven %_jvmcommonsysconfdir
%%_jvmjardir_maven %_jvmjardir
%%_jvmprivdir_maven %_jvmprivdir
%%_jvmlibdir_maven %_jvmlibdir
%%_jvmdatadir_maven %_jvmdatadir
%%_jvmcommonlibdir_maven %_jvmcommonlibdir
%%_jvmcommondatadir_maven %_jvmcommondatadir
%%_javaconfdir_maven %_javaconfdir
EOF

%build
# generate a helper script that will be used by help2man
cat >h2m_helper <<'EOF'
#!/bin/bash
[ "$1" == "--version" ] && echo "%{scl_name} %{version} Software Collection" || cat README
EOF
chmod a+x h2m_helper

# generate the man page
help2man -N --section 7 ./h2m_helper -o %{scl_name}.7
# Fix single quotes in man page.
sed -i "s/'/\\\\(aq/g" %{scl_name}.7

%install
# Parentheses are needed here as workaround for rhbz#1017085
(%scl_install)

install -d -m 755 %{buildroot}%{_scl_scripts}
install -p -m 755 enable %{buildroot}%{_scl_scripts}/

# install rpm magic
install -Dpm0644 macros.%{scl_name} %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel

# install dirs used by some deps
install -dm0755 %{buildroot}%{_prefix}/lib/rpm
install -dm0755 %{buildroot}%{_scl_root}%{python_sitelib}

# install generated man page
mkdir -p %{buildroot}%{_mandir}/man7/
install -m 644 %{scl_name}.7 %{buildroot}%{_mandir}/man7/%{scl_name}.7

# eclipse.conf, java.conf, javapackages-config.json and XMvn config
install -m 755 -d %{buildroot}%{_javaconfdir}
install -m 644 -p eclipse.conf %{buildroot}%{_javaconfdir}/
install -m 644 -p %{SOURCE2} %{buildroot}%{_javaconfdir}/
install -m 644 -p java.conf %{buildroot}%{_javaconfdir}/
install -m 755 -d %{buildroot}%{_sysconfdir}/xdg/xmvn
install -m 644 -p %{SOURCE3} %{buildroot}%{_sysconfdir}/xdg/xmvn/configuration.xml

install -m 755 -d %{buildroot}%{_jnidir}
install -m 755 -d %{buildroot}%{_javadir}
install -m 755 -d %{buildroot}%{_javadocdir}
install -m 755 -d %{buildroot}%{_mandir}/man1
install -m 755 -d %{buildroot}%{_mandir}/man7
install -m 755 -d %{buildroot}%{_datadir}/maven-metadata
install -m 755 -d %{buildroot}%{_mavenpomdir}
install -m 755 -d %{buildroot}%{_datadir}/xmvn
install -m 755 -d %{buildroot}%{_datadir}/licenses

# Empty package (no file content).  The sole purpose of this package
# is collecting its dependencies so that the whole SCL can be
# installed by installing %{name}.
%files

%files runtime
%doc README LICENSE
%{scl_files}
%{_prefix}/lib/python2.*
%{_prefix}/lib/rpm
%{_mandir}/man7/%{scl_name}.*
%{_javaconfdir}/
%dir %{_jnidir}
%dir %{_javadir}
%dir %{_javadocdir}
%dir %{_mandir}/man1
%dir %{_mandir}/man7
%dir %{_datadir}/maven-metadata
%dir %{_mavenpomdir}
%dir %{_datadir}/xmvn
%dir %{_datadir}/licenses

%files build
%{_root_sysconfdir}/rpm/macros.%{scl}-config

%files scldevel
%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel

%files maven-local
%files ivy-local
%files javapackages-local

%changelog
* Thu Dec 22 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-18
- Switch to java-devel-openjdk requires
- Resolves: rhbz#1402447

* Thu Apr 14 2016 Michal Srb <msrb@redhat.com> - 1-17
- Fix directory ownership (Resolves: rhbz#1325866)

* Thu Feb 11 2016 Michal Srb <msrb@redhat.com> - 1-16
- Remove temporary requires

* Mon Feb 08 2016 Michal Srb <msrb@redhat.com> - 1-15
- Fix macros.rh-maven33
- Revert temporary changes in xmvn config

* Mon Feb 08 2016 Michal Srb <msrb@redhat.com> - 1-14
- Resolve from local repository first

* Fri Feb 05 2016 Michal Srb <msrb@redhat.com> - 1-13
- Temporarily resolve from rh-java-common first

* Fri Jan 29 2016 Michal Srb <msrb@redhat.com> - 1-12
- Correctly handle XDG env. variables in enable script (Resolves: rhbz#1300623)

* Fri Jan 29 2016 Michal Srb <msrb@redhat.com> - 1-11
- Rebuild

* Wed Jan 27 2016 Michal Srb <msrb@redhat.com> - 1-10
- Get rid of transitive maven30 dependency

* Tue Jan 26 2016 Michal Srb <msrb@redhat.com> - 1-9
- Fix R on javapackages-tools

* Tue Jan 19 2016 Michal Srb <msrb@redhat.com> - 1-8
- Introduce maven33-specific "local" subpackages
- Drop temp requires

* Mon Jan 18 2016 Michal Srb <msrb@redhat.com> - 1-7
- Remove fake sonatype provides
- Partially remove maven-wagon requires

* Mon Jan 18 2016 Michal Srb <msrb@redhat.com> - 1-6
- Fix R on rh-java-common packages

* Mon Jan 18 2016 Michal Srb <msrb@redhat.com> - 1-5
- Remove maven30 from PATH

* Thu Jan 14 2016 Michal Srb <msrb@redhat.com> - 1-4
- Reduce number of fake provides

* Tue Jan 12 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-3
- Temporarly add maven30 to PATH

* Sat Jan 09 2016 Michal Srb <msrb@redhat.com> - 1-2
- Temporarily require all maven33 packages

* Fri Jan 08 2016 Michal Srb <msrb@redhat.com> 1-1
- Alter for rh-maven33

* Tue Jul 21 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-27
- Fix syntax errors in manpage

* Wed Jun 10 2015 Michal Srb <msrb@redhat.com> - 1.1-26
- Convert back to arch

* Tue Jun  9 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-25
- Convert to noarch

* Mon Feb  2 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-24
- Be more careful when setting env variables in enable script

* Fri Jan 16 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-23
- Obsolete xml-commons-apis

* Thu Jan 15 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-22
- Remove temp provides

* Thu Jan 15 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-21
- Add temp provides to fix Thermostat bulid

* Thu Jan 15 2015 Michal Srb <msrb@redhat.com> - 1.1-20
- Own %%{_javaconfdir}

* Wed Jan 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-19
- Revert adding directory ownership

* Wed Jan 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-18
- Add explicit directory attributes

* Wed Jan 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-17
- Own directories created by other packages

* Wed Jan 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-16
- Obsolete packages removed in RHSCL 2.0

* Tue Jan 13 2015 Michael Simacek <msimacek@redhat.com> - 1.1-15
- Mass rebuild 2015-01-13

* Tue Jan 13 2015 Michael Simacek <msimacek@redhat.com>
- Generates macros for directories

* Wed Jan  7 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-13
- Fix XMvn config location

* Wed Jan  7 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-12
- Install XMvn configuration

* Wed Jan  7 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-11
- Don't use scl_source to enable %{scl_java_common}

* Tue Jan 06 2015 Michal Srb <msrb@redhat.com> - 1.1-10
- Add java.conf for maven30

* Tue Jan 06 2015 Michael Simacek <msimacek@redhat.com> - 1.1-9
- Mass rebuild 2015-01-06

* Wed Dec 24 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-8
- Avoid generating requires on java-headless

* Thu Dec 18 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-7
- Add eclipse.conf file
- Add javapackages-config.json

* Wed Dec 17 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-6
- Switch to dependency generator from rh-java-common

* Wed Dec 17 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-5
- Add dependency on rh-java-common

* Thu Jul 31 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-4
- Add %%scl_maven and %%scl_prefix_maven macros to scldevel package
- Resolves: rhbz#1125274

* Mon Jun  2 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-3
- Update README file

* Mon Jun  2 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-2
- Disable debuginfo

* Thu May 29 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1-1
- Set metapackage version to 1.1

* Tue May 27 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.0.5-5
- Use python_sitelib marco

* Tue May 27 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.0.5-4
- Re-enable Python auto-requires

* Mon May 26 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.0.5-3
- Temporarly disable Python auto-requires

* Mon May 26 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.0.5-2
- Mass rebuild 2014-05-26

* Wed Feb 19 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0.5-1
- Remove common subpackage
- Fix up requires in subpackages on various parts of SCL and deps
- Own a few unowned directories

* Wed Feb 19 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-22
- Ultimately remove provides for java and java-devel

* Wed Feb 19 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-21
- Restore provides for java and java-devel

* Tue Feb 18 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-20
- Remove bogus provides

* Mon Feb 17 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-19
- Don't install java.conf for base RHEL

* Thu Feb 13 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-18
- Add requires on maven30-maven-local to maven30-runtime

* Thu Feb 13 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-17
- Install java.conf for base RHEL

* Thu Feb 13 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-16
- Add jpackage-utils provides

* Wed Feb 12 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-15
- Provide java-devel in addition to java

* Wed Feb 12 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-14
- Temporally add base RHEL to javapackages search path

* Wed Feb 12 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-13
- Set PYTHONPATH in requires/provides wrapper scripts

* Wed Feb 12 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-12
- Fix requires/provides wrapper scripts

* Wed Feb 12 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-11
- Temporarly add XMvn config variables to enable script

* Tue Feb 11 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-10
- Provide and obsolete javapackages-tools

* Tue Feb 11 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-9
- Don't install XMvn configuration files

* Tue Feb 11 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 1-8
- Avoid trailing colon in PYTHONPATH

* Tue Feb 11 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-7
- Prefix PYTHONPATH with _scl_root

* Tue Feb 11 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-6
- Fix PYTHONPATH to root of python_sitelib instead of subdir

* Fri Feb 07 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-5
- Extend PYTHONPATH in enable scriptlet

* Fri Feb 07 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-4
- Add epoch to provides to match original

* Fri Feb 07 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-3
- Build-provide java 1.7.0

* Wed Feb 05 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-2
- Make scl-utils requires unversioned

* Wed Feb 05 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1-1
- Initial maven30 scl metapackage