diff --git a/.devtoolset-3.metadata b/.devtoolset-3.metadata index e69de29..428a27f 100644 --- a/.devtoolset-3.metadata +++ b/.devtoolset-3.metadata @@ -0,0 +1 @@ +7483812d597a7faae9ad2b48c0a8840d8502541e SOURCES/rhscl-dockerfiles-062c3b8.tar.gz diff --git a/.gitignore b/.gitignore index e69de29..263c5c2 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/rhscl-dockerfiles-062c3b8.tar.gz diff --git a/SPECS/devtoolset-3.spec b/SPECS/devtoolset-3.spec index f231c45..22cf516 100644 --- a/SPECS/devtoolset-3.spec +++ b/SPECS/devtoolset-3.spec @@ -1,21 +1,28 @@ %global scl devtoolset-3 %scl_package %scl +%global dfcommit 062c3b833c8cc030204fdaf45d359dfafae63002 +%global dfshortcommit %(c=%{dfcommit}; echo ${c:0:7}) +%global dockerfiledir %{_datadir}/%{scl_prefix}dockerfiles Summary: Package that installs %scl Name: %scl_name -Version: 3.0 -Release: 15%{?dist} -BuildArch: noarch +Version: 3.1 +Release: 9%{?dist} License: GPLv2+ Group: Applications/File BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Source0: https://github.com/sclorg/rhscl-dockerfiles/archive/%{dfcommit}/rhscl-dockerfiles-%{dfshortcommit}.tar.gz # The base package must require everything in the collection Requires: %{scl_prefix}toolchain %{scl_prefix}ide %{scl_prefix}perftools +Obsoletes: %{name} < %{version}-%{release} BuildRequires: scl-utils-build >= 20120927-11 BuildRequires: iso-codes +# This is needed for java directory macros +BuildRequires: javapackages-tools + %description This is the main package for %scl Software Collection. @@ -23,6 +30,7 @@ This is the main package for %scl Software Collection. Summary: Package that handles %scl Software Collection. Group: Applications/File Requires: scl-utils >= 20120927-11 +Obsoletes: %{name}-runtime < %{version}-%{release} Requires(post): libselinux policycoreutils-python Requires(postun): libselinux policycoreutils-python Requires(preun): libselinux policycoreutils-python @@ -35,6 +43,13 @@ Summary: Package shipping basic build configuration Group: Applications/File Requires: %{scl_prefix}runtime Requires: scl-utils-build >= 20120927-11 +Obsoletes: %{name}-build < %{version}-%{release} +# Java stuff has build-time requirements on these SCLs, +# which are only available for x86_64 arch +%ifarch x86_64 +Requires: rh-java-common-scldevel >= 1.1-12 +Requires: maven30-scldevel >= 1.1-7 +%endif %description build Package shipping essential configuration macros to build %scl Software Collection. @@ -47,6 +62,7 @@ Requires: %{scl_prefix}gcc %{scl_prefix}gcc-c++ %{scl_prefix}gcc-gfortran Requires: %{scl_prefix}binutils %{scl_prefix}gdb %{scl_prefix}strace Requires: %{scl_prefix}dwz %{scl_prefix}elfutils %{scl_prefix}memstomp Requires: %{scl_prefix}ltrace +Obsoletes: %{name}-toolchain < %{version}-%{release} %description toolchain Package shipping basic toolchain applications (compiler, debugger, ...) @@ -103,6 +119,7 @@ Requires: %{scl_prefix}eclipse-mylyn-tasks-web Requires: %{scl_prefix}eclipse-mylyn-versions Requires: %{scl_prefix}eclipse-mylyn-versions-cvs Requires: %{scl_prefix}eclipse-mylyn-versions-git +Obsoletes: %{name}-ide < %{version}-%{release} %description ide Package shipping Eclipse IDE @@ -113,17 +130,33 @@ Group: Applications/File Requires: %{scl_prefix}runtime Requires: %{scl_prefix}oprofile %{scl_prefix}systemtap %{scl_prefix}valgrind Requires: %{scl_prefix}dyninst +Obsoletes: %{name}-perftools < %{version}-%{release} %description perftools Package shipping performance tools (systemtap, oprofile) +%package dockerfiles +Summary: Package shipping Dockerfiles for Developer Toolset +Group: Applications/File + +%description dockerfiles +This package provides a set of example Dockerfiles that can be used +with Red Hat Developer Toolset. Use these examples to stand up +test environments using the Docker container engine. + %prep -%setup -c -T +%setup -c %build # Enable collection script # ======================== cat <<EOF >enable +# The IDE part of this collection has a runtime dependency on +# the java-common collection, so enable it if present +if test -e /opt/rh/rh-java-common/enable ; then + . scl_source enable rh-java-common +fi + # General environment variables export PATH=%{_bindir}\${PATH:+:\${PATH}} export MANPATH=%{_mandir}:\${MANPATH} @@ -134,7 +167,7 @@ export JAVACONFDIRS="%{_sysconfdir}/java:\${JAVACONFDIRS:-/etc/java}" # Required by XMvn to locate its configuration files export XDG_CONFIG_DIRS="%{_sysconfdir}/xdg:\${XDG_CONFIG_DIRS:-/etc/xdg}" -export XDG_DATA_DIRS="%{_datadir}:\${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" +export XDG_DATA_DIRS="%{_datadir}:\${XDG_DATA_DIRS:+\${XDG_DATADIRS}:}/usr/local/share:/usr/share" export PCP_DIR=%{_scl_root} # Some perl Ext::MakeMaker versions install things under /usr/lib/perl5 @@ -172,6 +205,8 @@ done exec /usr/bin/sudo \$sudo_options LD_LIBRARY_PATH=\$LD_LIBRARY_PATH PATH=\$PATH scl enable %{scl} "\$cmd_options" EOF +# " (Fix vim syntax coloring.) + # Java configuration # ================== cat <<EOF >java.conf @@ -186,7 +221,9 @@ cat <<EOF >ivysettings.xml <!-- Ivy configuration file for %{scl} software collection Artifact resolution order is: 1. %{scl} collection - 2. base operating system + 2. java-common collection + 3. maven30 collection + 4. base operating system --> <ivysettings> <settings defaultResolver="default"/> @@ -195,12 +232,22 @@ cat <<EOF >ivysettings.xml <ivy pattern="\${ivy.conf.dir}/lib/[module]/apache-ivy-[revision].xml" /> <artifact pattern="%{_datadir}/java/\[artifact].[ext]" /> </filesystem> + <filesystem name="java-common-public"> + <ivy pattern="\${ivy.conf.dir}/lib/[module]/apache-ivy-[revision].xml" /> + <artifact pattern="/opt/rh/rh-java-common/root/%{_root_datadir}/java/\[artifact].[ext]" /> + </filesystem> + <filesystem name="maven30-public"> + <ivy pattern="\${ivy.conf.dir}/lib/[module]/apache-ivy-[revision].xml" /> + <artifact pattern="/opt/rh/maven30/root/%{_root_datadir}/java/\[artifact].[ext]" /> + </filesystem> <filesystem name="public"> <ivy pattern="\${ivy.conf.dir}/lib/[module]/apache-ivy-[revision].xml" /> <artifact pattern="%{_root_datadir}/java/\[artifact].[ext]" /> </filesystem> <chain name="main" dual="true"> <resolver ref="%{scl}-public"/> + <resolver ref="java-common-public"/> + <resolver ref="maven30-public"/> <resolver ref="public"/> </chain> </resolvers> @@ -212,26 +259,33 @@ EOF # XMvn configuration # ================= cat <<EOF >configuration.xml +<?xml version="1.0" encoding="US-ASCII"?> <!-- XMvn configuration file for %{scl} software collection Artifact resolution order is: 1. %{scl} collection - 2. base operating system + 2. java-common collection + 3. maven30 collection + 4. base operating system --> -<configuration> +<configuration xmlns="http://fedorahosted.org/xmvn/CONFIG/2.0.0"> <resolverSettings> <prefixes> - <prefix>/opt/rh/%{scl}/root</prefix> + <prefix>%{_scl_root}</prefix> + <prefix>/</prefix> </prefixes> + <metadataRepositories> + <repository>%{_scl_root}/usr/share/maven-metadata</repository> + </metadataRepositories> </resolverSettings> <installerSettings> - <metadataDir>opt/rh/%{scl}/root/usr/share/maven-fragments</metadataDir> + <metadataDir>opt/rh/%{scl}/root/usr/share/maven-metadata</metadataDir> </installerSettings> <repositories> <repository> - <id>%{scl}-resolve</id> + <id>resolve-%{scl}</id> <type>compound</type> <properties> - <prefix>opt/rh/%{scl}/root</prefix> + <prefix>%{_scl_root}</prefix> <namespace>%{scl}</namespace> </properties> <configuration> @@ -241,14 +295,21 @@ cat <<EOF >configuration.xml </configuration> </repository> <repository> - <id>resolve-system</id> + <id>resolve</id> <type>compound</type> <properties> <prefix>/</prefix> </properties> <configuration> <repositories> - <repository>%{scl}-resolve</repository> + <!-- Put resolvers in order you want to use them, from + highest to lowest preference. (resolve-local is + resolver that resolves from local Maven repository in + .xm2 in current directory.) --> + <repository>resolve-local</repository> + <repository>resolve-%{scl}</repository> + <repository>resolve-java-common</repository> + <repository>resolve-maven30</repository> <repository>base-resolve</repository> </repositories> </configuration> @@ -266,36 +327,22 @@ cat <<EOF >configuration.xml </repositories> </configuration> </repository> - <repository> - <id>install-raw-pom</id> - <type>compound</type> - <properties> - <prefix>opt/rh/%{scl}/root</prefix> - <namespace>%{scl}</namespace> - </properties> - <configuration> - <repositories> - <repository>base-raw-pom</repository> - </repositories> - </configuration> - </repository> - <repository> - <id>install-effective-pom</id> - <type>compound</type> - <properties> - <prefix>opt/rh/%{scl}/root</prefix> - <namespace>%{scl}</namespace> - </properties> - <configuration> - <repositories> - <repository>base-effective-pom</repository> - </repositories> - </configuration> - </repository> </repositories> </configuration> EOF +%if 0%{?rhel} < 7 +# OSGi auto-{provides,requires} macros +# ==================================== +cat <<EOF >macros.%{scl}-osgi-config +%%osgi_find_provides_and_requires %%{expand: \\ +%%global _use_internal_dependency_generator 0 +%%global __find_provides %{_rpmconfigdir}/osgi.prov +%%global __find_requires %{_rpmconfigdir}/osgi.req +} +EOF +%endif + %install (%{scl_install}) @@ -316,6 +363,21 @@ install -p -m 644 ivysettings.xml %{buildroot}%{_sysconfdir}/ivy/ install -d -m 755 %{buildroot}%{_sysconfdir}/xdg/xmvn install -p -m 644 configuration.xml %{buildroot}%{_sysconfdir}/xdg/xmvn/ +install -d %{buildroot}%{dockerfiledir} + +collections="devtoolset-3 devtoolset-3-toolchain devtoolset-3-dyninst \ + devtoolset-3-elfutils devtoolset-3-oprofile devtoolset-3-systemtap \ + devtoolset-3-valgrind" +install -d -p -m 755 %{buildroot}%{dockerfiledir}/rhel{6,7} +for d in $collections; do + install -d -p -m 755 %{buildroot}%{dockerfiledir}/rhel{6,7}/$d + install -p -m 644 rhscl-dockerfiles-%{dfcommit}/rhel6.$d/* %{buildroot}%{dockerfiledir}/rhel6/$d + install -p -m 644 rhscl-dockerfiles-%{dfcommit}/rhel7.$d/* %{buildroot}%{dockerfiledir}/rhel7/$d +done + +# BZ#1194557: Don't ship systemtap container for RHEL6. +rm -rf %{buildroot}%{dockerfiledir}/rhel6/devtoolset-3-systemtap + %files %files runtime @@ -323,7 +385,6 @@ install -p -m 644 configuration.xml %{buildroot}%{_sysconfdir}/xdg/xmvn/ %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_sysconfdir}/selinux-equiv.created %{_sysconfdir}/ivy %{_sysconfdir}/java -%{_sysconfdir}/xdg/xmvn %dir %{_scl_root}/etc/alternatives %files build @@ -335,6 +396,11 @@ install -p -m 644 configuration.xml %{buildroot}%{_sysconfdir}/xdg/xmvn/ %files perftools +%if 0%{?rhel} >= 7 +%files dockerfiles +%{dockerfiledir} +%endif + %post runtime if [ ! -f %{_sysconfdir}/selinux-equiv.created ]; then /usr/sbin/semanage fcontext -a -e / %{_scl_root} @@ -352,6 +418,45 @@ if [ $1 = 0 ]; then fi %changelog +* Wed Apr 8 2015 Marek Polacek <polacek@redhat.com> - 3.1-9 +- Add Obsoletes (#1208867) + +* Mon Feb 23 2015 Marek Polacek <polacek@redhat.com> - 3.1-8 +- Don't ship devtoolset-3-dockerfiles subpackage on RHEL6 (#1194558) + +* Fri Feb 20 2015 Marek Polacek <polacek@redhat.com> - 3.1-7 +- Don't ship systemtap container for RHEL6 (#1194557) + +* Wed Feb 11 2015 Marek Polacek <polacek@redhat.com> - 3.1-6 +- Add devtoolset-3-{dyninst,elfutils,valgrind,oprofile,systemtap} + dockerfiles (#1180659) + +* Tue Feb 10 2015 Marek Polacek <polacek@redhat.com> - 3.1-5 +- Add devtoolset-3-dockerfiles (#1180657) + +* Fri Jan 23 2015 Alexander Kurtakov <akurtako@redhat.com> 3.1-4 +- Include root /usr/share and /usr/local/share to prevent gsettings crash. + +* Tue Jan 13 2015 Mat Booth <mat.booth@redhat.com> - 3.1-3 +- Resolves: rhbz#1178915 - Rebuild to get correct disttag +- Add BR to Fix unexpanded java dir macros in java.conf +- Don't enable maven30 SCL, as recommended by maven30 maintainer + +* Wed Jan 07 2015 Mat Booth <mat.booth@redhat.com> - 3.1-2 +- Resolves: rhbz#1178915 +- Add missing xmvn resolver setting for metadata repo. +- Make package archful to make sure lib64 dirs are owned. +- Only require java-common and maven30 SCLs when on x86_64. + +* Thu Dec 18 2014 Mat Booth <mat.booth@redhat.com> - 3.1-1 +- Resolves: rhbz#1178915 - Initial build for DTS 3.1 +- Add build-time deps on java-common and mvn30 SCLs +- Update xmvn and ivy config for latest javapackages/xmvn +- Fix file listed twice warning for xmvn/config.xml + +* Fri Jun 20 2014 Roland Grunberg <rgrunber@redhat.com> - 3.0-16 +- Add macro for enablement of osgi auto-{provides,requires}. + * Wed Jun 04 2014 Marek Polacek <polacek@redhat.com> 3.0-15 - Drop the -vc subpackage (#1104342)