[software-collections-guide: 16/17] Merge branch 'master' into comm
by Petr Kovář
commit 9d170c3b195f4c876857b57041cdab69f294f405
Merge: cd1dcf4 2338926
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Fri Jul 11 17:33:22 2014 +0200
Merge branch 'master' into comm
Conflicts:
en-US/Getting_More_Information.xml
en-US/Packaging_Software_Collections.xml
en-US/Revision_History.xml
en-US/Software_Collections_Guide.xml
en-US/Advanced_Topics.xml | 8 +-
en-US/Extending_Red_Hat_Software_Collections.xml | 617 +++++++++++++++++++++-
en-US/Introducing_Software_Collections.xml | 6 +-
en-US/Packaging_Software_Collections.xml | 55 ++-
en-US/Preface.xml | 2 +-
en-US/Software_Collections_Guide.xml | 6 +-
en-US/Troubleshooting_Software_Collections.xml | 28 +
7 files changed, 691 insertions(+), 31 deletions(-)
---
diff --cc en-US/Packaging_Software_Collections.xml
index bcc36ba,abcaf37..47c0dbb
--- a/en-US/Packaging_Software_Collections.xml
+++ b/en-US/Packaging_Software_Collections.xml
@@@ -279,9 -309,12 +309,12 @@@ install -p -m 644 %{scl_name}.7 %{build
%files build
%{_root_sysconfdir}/rpm/macros.%{scl}-config
+ %files scldevel
+ %{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel
+
%changelog
* Fri Aug 30 2013 John Doe <jdoe(a)example.com> 1-1
--- Initial package</programlisting>
++- Initial package]]></programlisting>
</section>
<!--<section id="sect-Packages_in_the_Software_Collection_Namespace">
<title>Packages in the &DSCL; Namespace</title>
9 years, 10 months
[software-collections-guide: 15/17] Update revhistory
by Petr Kovář
commit 2338926e26ece7b9bcad8eca96709c8471d92bf4
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Fri May 30 18:15:08 2014 +0200
Update revhistory
en-US/Revision_History.xml | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/en-US/Revision_History.xml b/en-US/Revision_History.xml
index f5bce68..38ba143 100644
--- a/en-US/Revision_History.xml
+++ b/en-US/Revision_History.xml
@@ -6,8 +6,8 @@
<simpara>
<revhistory>
<revision>
- <revnumber>2.1-26</revnumber>
- <date>Tue May 27 2014</date>
+ <revnumber>2.1-29</revnumber>
+ <date>Wed Jun 04 2014</date>
<author>
<firstname>Petr</firstname>
<surname>Kovář</surname>
9 years, 10 months
[software-collections-guide: 14/17] Minor fixes
by Petr Kovář
commit 318d56a1b2c16fa05c28d602670c80e1ced75d2b
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Mon May 26 19:03:50 2014 +0200
Minor fixes
en-US/Extending_Red_Hat_Software_Collections.xml | 4 ++--
en-US/Troubleshooting_Software_Collections.xml | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/en-US/Extending_Red_Hat_Software_Collections.xml b/en-US/Extending_Red_Hat_Software_Collections.xml
index 911d219..932b74e 100644
--- a/en-US/Extending_Red_Hat_Software_Collections.xml
+++ b/en-US/Extending_Red_Hat_Software_Collections.xml
@@ -17,7 +17,7 @@ Provides: scldevel(%{scl_name_base})
%description scldevel
Package shipping development files, especially useful for development of
packages depending on %scl Software Collection.</programlisting>
- <para>You are advised to use the <code>scldevel(%{scl_name_base})</code> virtual provide during the build of packages of dependent &DSCL;s. This will ensure availability of a version of the <code>%{scl_name_base}</code> &DSCL; and its macros, as specified in the following step.</para>
+ <para>You are advised to use the virtual <code>Provides: scldevel(%{scl_name_base})</code> during the build of packages of dependent &DSCL;s. This will ensure availability of a version of the <code>%{scl_name_base}</code> &DSCL; and its macros, as specified in the following step.</para>
</step>
<step>
<para>In the <code>%install</code> section of your &DSCL;'s metapackage, create the <filename>macros.%{scl_name_base}-scldevel</filename> file that is part of the <package>scldevel</package> subpackage and contains:</para>
@@ -38,7 +38,7 @@ EOF]]></programlisting>
<programlisting language="RPM Spec">%{!?scl_ruby:%global scl_ruby ruby200}
%{!?scl_prefix_ruby:%global scl_prefix_ruby %{scl_ruby}-}</programlisting>
<para>These two lines are optional. They are only meant as a visual hint that the dependent &DSCL; has been designed to depend on the ruby200 &DSCL;. If there is no other <package>scldevel</package> subpackage available in the build root, then the <package>ruby200-scldevel</package> subpackage is used as a build requirement.</para>
- <para>You can substitute these lines by the following line:</para>
+ <para>You can substitute these lines with the following line:</para>
<programlisting language="RPM Spec">%{?scl_prefix_ruby}</programlisting>
</step>
<step>
diff --git a/en-US/Troubleshooting_Software_Collections.xml b/en-US/Troubleshooting_Software_Collections.xml
index f5154af..57dc301 100644
--- a/en-US/Troubleshooting_Software_Collections.xml
+++ b/en-US/Troubleshooting_Software_Collections.xml
@@ -17,8 +17,8 @@
</section>
<section id="sect-Unable_to_open_etc_scl_prefixes_software_collection_name">
<title>Unable to open /etc/scl/prefixes/<replaceable>software_collection_name</replaceable></title>
- <para>This error message can be caused by using incorrect arguments with the <command>scl</command> command you are calling. Check the <command>scl</command> command is correct and that you have not mistyped any of the used arguments.</para>
- <para>The same error message can be also caused by a missing &DSCL;. Ensure that the <replaceable>software_collection_name</replaceable> &DSCL; is properly installed on the system. For more information, see <xref linkend="sect-Listing_Installed_Software_Collections" />.</para>
+ <para>This error message can be caused by using incorrect arguments with the <command>scl</command> command you are calling. Check the <command>scl</command> command is correct and that you have not mistyped any of the arguments.</para>
+ <para>The same error message can also be caused by a missing &DSCL;. Ensure that the <replaceable>software_collection_name</replaceable> &DSCL; is properly installed on the system. For more information, see <xref linkend="sect-Listing_Installed_Software_Collections" />.</para>
</section>
<section id="sect-scl_source_command_not_found">
<title>scl_source: command not found</title>
9 years, 10 months
[software-collections-guide: 13/17] Edit scldevel & metapackage example
by Petr Kovář
commit 75d0b67aeace38663e8a3b3b049bc989860c649d
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Fri May 23 19:39:45 2014 +0200
Edit scldevel & metapackage example
en-US/Packaging_Software_Collections.xml | 42 +++++++++++++++++++++++++----
en-US/Revision_History.xml | 4 +-
2 files changed, 38 insertions(+), 8 deletions(-)
---
diff --git a/en-US/Packaging_Software_Collections.xml b/en-US/Packaging_Software_Collections.xml
index 71817c3..abcaf37 100644
--- a/en-US/Packaging_Software_Collections.xml
+++ b/en-US/Packaging_Software_Collections.xml
@@ -189,6 +189,15 @@
<programlisting>myorganization_ruby193-build</programlisting>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>The scldevel subpackage: <replaceable>name</replaceable>-scldevel</term>
+ <listitem>
+ <para>The scldevel subpackage in the %scl &DSCL; contains development files, which are useful when developing packages of another &DSCL; that depends on the %scl &DSCL;. The scldevel subpackage is optional and can be excluded from the %scl &DSCL;.</para>
+ <para>For example, if the name of the &DSCL; is <literal>myorganization_ruby193</literal>, then the scldevel subpackage macro is expanded to:</para>
+ <programlisting>myorganization_ruby193-scldevel</programlisting>
+ <para>For more information about the scldevel subpackage, see <xref linkend="sect-Providing_an_scldevel_Subpackage" />.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
</section>
<section id="sect-Creating_a_Meta_Package">
@@ -234,7 +243,7 @@
</itemizedlist>
<bridgehead id="bh-Example_of_the_Meta_Package">Example of the Metapackage</bridgehead>
<para>To get an idea of what a typical &DSCL; metapackage looks like, see the following example:</para>
- <programlisting language="RPM Spec">%global scl software_collection
+ <programlisting language="RPM Spec"><![CDATA[%global scl software_collection
%scl_package %scl
%global _scl_prefix /opt/myorganization
@@ -263,25 +272,46 @@ Requires: scl-utils-build
%description build
Package shipping essential configuration macros to build %scl Software Collection.
+%package scldevel
+Summary: Package shipping development files for %scl
+
+%description scldevel
+Package shipping development files, especially useful for development of
+packages depending on %scl Software Collection.
+
%prep
%setup -c -T
%install
-rm -rf %{buildroot}
-mkdir -p %{buildroot}%{_scl_scripts}/root
-cat >> %{buildroot}%{_scl_scripts}/enable << EOF
+%scl_install
+
+cat >> %{buildroot}%{_scl_scripts}/enable << EOF
export PATH=%{_bindir}\${PATH:+:\${PATH}}
+export LD_LIBRARY_PATH=%{_libdir}\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}
+export MANPATH=%{_mandir}:\$MANPATH
+export PKG_CONFIG_PATH=%{_libdir}/pkgconfig\${PKG_CONFIG_PATH:+:\${PKG_CONFIG_PATH}}
EOF
-%scl_install
+
+cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel << EOF
+%%scl_%{scl_name_base} %{scl}
+%%scl_prefix_%{scl_name_base} %{scl_prefix}
+EOF
+
+# Install the generated man page
+mkdir -p %{buildroot}%{_mandir}/man7/
+install -p -m 644 %{scl_name}.7 %{buildroot}%{_mandir}/man7/
%files
-%files runtime<!--FIXME:BZ#1072319 -f filesystem-->
+%files runtime]]><!--FIXME:BZ#1072319 -f filesystem-->
%scl_files
%files build
%{_root_sysconfdir}/rpm/macros.%{scl}-config
+%files scldevel
+%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel
+
%changelog
* Fri Aug 30 2013 John Doe <jdoe(a)example.com> 1-1
- Initial package</programlisting>
diff --git a/en-US/Revision_History.xml b/en-US/Revision_History.xml
index 35ed598..f5bce68 100644
--- a/en-US/Revision_History.xml
+++ b/en-US/Revision_History.xml
@@ -6,8 +6,8 @@
<simpara>
<revhistory>
<revision>
- <revnumber>2.1-23</revnumber>
- <date>Wed May 07 2014</date>
+ <revnumber>2.1-26</revnumber>
+ <date>Tue May 27 2014</date>
<author>
<firstname>Petr</firstname>
<surname>Kovář</surname>
9 years, 10 months
[software-collections-guide: 12/17] Add Troubleshooting_Software_Collections
by Petr Kovář
commit 891097ee770a207e54c83afb94444df775390768
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Mon May 19 18:14:30 2014 +0200
Add Troubleshooting_Software_Collections
en-US/Extending_Red_Hat_Software_Collections.xml | 1 +
en-US/Software_Collections_Guide.xml | 2 +
en-US/Troubleshooting_Software_Collections.xml | 28 ++++++++++++++++++++++
3 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/en-US/Extending_Red_Hat_Software_Collections.xml b/en-US/Extending_Red_Hat_Software_Collections.xml
index db6bb65..911d219 100644
--- a/en-US/Extending_Red_Hat_Software_Collections.xml
+++ b/en-US/Extending_Red_Hat_Software_Collections.xml
@@ -2,6 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="chap-Extending_Red_Hat_Software_Collections">
<title>Extending Red Hat Software Collections 1.1</title>
+ <para>This chapter describes extending &DSCL;s that are part of the Red Hat Software Collections 1.1 offering.</para>
<section id="sect-Providing_an_scldevel_Subpackage">
<title>Providing an scldevel Subpackage</title>
<para>Providing an <package>scldevel</package> subpackage in your &DSCL;'s metapackage can make it easier for users to create a dependent &DSCL;. This section describes creating an <package>scldevel</package> subpackage for Ruby-based &DSCL;s, ruby193 and ruby200.</para>
diff --git a/en-US/Software_Collections_Guide.xml b/en-US/Software_Collections_Guide.xml
index 26e7b5f..b46af21 100644
--- a/en-US/Software_Collections_Guide.xml
+++ b/en-US/Software_Collections_Guide.xml
@@ -14,6 +14,8 @@
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Extending_Red_Hat_Software_Collections.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Troubleshooting_Software_Collections.xml"
+ xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Getting_More_Information.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Revision_History.xml"
diff --git a/en-US/Troubleshooting_Software_Collections.xml b/en-US/Troubleshooting_Software_Collections.xml
new file mode 100644
index 0000000..f5154af
--- /dev/null
+++ b/en-US/Troubleshooting_Software_Collections.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="chap-Troubleshooting_Software_Collections">
+ <title>Troubleshooting &DSCL;s</title>
+ <para>This chapter helps you troubleshoot some of the common issues you can encounter when building your &DSCL;s.</para>
+ <section id="sect-Error_line_XX_Unknown_tag">
+ <title>Error: line <replaceable>XX</replaceable>: Unknown tag: %scl_package <replaceable>software_collection_name</replaceable></title>
+ <para>You can encounter this error message when building a &DSCL; package. It is usually caused by a missing package <package>scl-utils-build</package>. To install the <package>scl-utils-build</package> package, run the following command:</para>
+ <screen><computeroutput># </computeroutput><userinput>yum install scl-utils-build</userinput></screen>
+ <para>For more information, see <xref linkend="sect-Enabling_Support_for_Software_Collections" />.</para>
+ </section>
+ <section id="sect-scl_command_does_not_exist">
+ <title>scl command does not exist</title>
+ <para>This error message is usually caused by a missing package <package>scl-utils</package>. To install the <package>scl-utils</package> package, run the following command:</para>
+ <screen><computeroutput># </computeroutput><userinput>yum install scl-utils</userinput></screen>
+ <para>For more information, see <xref linkend="sect-Enabling_Support_for_Software_Collections" />.</para>
+ </section>
+ <section id="sect-Unable_to_open_etc_scl_prefixes_software_collection_name">
+ <title>Unable to open /etc/scl/prefixes/<replaceable>software_collection_name</replaceable></title>
+ <para>This error message can be caused by using incorrect arguments with the <command>scl</command> command you are calling. Check the <command>scl</command> command is correct and that you have not mistyped any of the used arguments.</para>
+ <para>The same error message can be also caused by a missing &DSCL;. Ensure that the <replaceable>software_collection_name</replaceable> &DSCL; is properly installed on the system. For more information, see <xref linkend="sect-Listing_Installed_Software_Collections" />.</para>
+ </section>
+ <section id="sect-scl_source_command_not_found">
+ <title>scl_source: command not found</title>
+ <para>This error message is usually caused by having an old version of the <package>scl-utils</package> package installed. To update the <package>scl-utils</package> package, run the following command:</para>
+ <screen><computeroutput># </computeroutput><userinput>yum update scl-utils</userinput></screen>
+ </section>
+</chapter>
9 years, 10 months
[software-collections-guide: 11/17] Update per vondruch's review
by Petr Kovář
commit e03a6ccd6e56ac18bf6ea8716ebe580ee2581582
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Mon May 19 15:44:00 2014 +0200
Update per vondruch's review
en-US/Extending_Red_Hat_Software_Collections.xml | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/en-US/Extending_Red_Hat_Software_Collections.xml b/en-US/Extending_Red_Hat_Software_Collections.xml
index 7adbe19..db6bb65 100644
--- a/en-US/Extending_Red_Hat_Software_Collections.xml
+++ b/en-US/Extending_Red_Hat_Software_Collections.xml
@@ -16,7 +16,7 @@ Provides: scldevel(%{scl_name_base})
%description scldevel
Package shipping development files, especially useful for development of
packages depending on %scl Software Collection.</programlisting>
- <para>You may need to specify the <code>Provides: scldevel(%{scl_name_base})</code> virtual provide as a build requirement for packages with soft dependencies. For example, the <package>rubygem-uglifier</package> package depends at build time on the <package>rubygem-therubyracer</package> package, which in turn depends on the v8 &DSCL;.</para>
+ <para>You are advised to use the <code>scldevel(%{scl_name_base})</code> virtual provide during the build of packages of dependent &DSCL;s. This will ensure availability of a version of the <code>%{scl_name_base}</code> &DSCL; and its macros, as specified in the following step.</para>
</step>
<step>
<para>In the <code>%install</code> section of your &DSCL;'s metapackage, create the <filename>macros.%{scl_name_base}-scldevel</filename> file that is part of the <package>scldevel</package> subpackage and contains:</para>
@@ -24,7 +24,7 @@ packages depending on %scl Software Collection.</programlisting>
%%scl_%{scl_name_base} %{scl}
%%scl_prefix_%{scl_name_base} %{scl_prefix}
EOF]]></programlisting>
- <para>Note that between all &DSCL;s that share the same <code>%{scl_name_base}</code> name, the provided <code>macros.%{scl_name_base}-scldevel</code> files must conflict. This is to disallow installing multiple versions of the %{scl_name_base} &DSCL;s. For example, in Red Hat Software Collections, the <package>ruby193-scldevel</package> subpackage cannot be installed when there is the <package>ruby200-scldevel</package> subpackage installed.</para>
+ <para>Note that between all &DSCL;s that share the same <code>%{scl_name_base}</code> name, the provided <code>macros.%{scl_name_base}-scldevel</code> files must conflict. This is to disallow installing multiple versions of the <code>%{scl_name_base}</code> &DSCL;s. For example, in Red Hat Software Collections, the <package>ruby193-scldevel</package> subpackage cannot be installed when there is the <package>ruby200-scldevel</package> subpackage installed.</para>
</step>
</procedure>
<section id="sect-Using_an_scldevel_Subpackage_in_a_Dependent_Software_Collection">
9 years, 10 months
[software-collections-guide: 10/17] Edit scldevel docs
by Petr Kovář
commit d2ff1a896620ab94608391356ab57e963ba991f2
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Fri May 16 18:51:06 2014 +0200
Edit scldevel docs
en-US/Extending_Red_Hat_Software_Collections.xml | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/en-US/Extending_Red_Hat_Software_Collections.xml b/en-US/Extending_Red_Hat_Software_Collections.xml
index 780ff7d..7adbe19 100644
--- a/en-US/Extending_Red_Hat_Software_Collections.xml
+++ b/en-US/Extending_Red_Hat_Software_Collections.xml
@@ -4,11 +4,11 @@
<title>Extending Red Hat Software Collections 1.1</title>
<section id="sect-Providing_an_scldevel_Subpackage">
<title>Providing an scldevel Subpackage</title>
- <para>Providing an <package>scldevel</package> subpackage in your &DSCL;'s metapackage can make it easier for users to create dependent &DSCL;. This section describes creating an <package>scldevel</package> subpackage, for examples of extending &DSCL; shipped with the Red Hat Software Collections offering, see <xref linkend="chap-Extending_Red_Hat_Software_Collections" />.</para>
+ <para>Providing an <package>scldevel</package> subpackage in your &DSCL;'s metapackage can make it easier for users to create a dependent &DSCL;. This section describes creating an <package>scldevel</package> subpackage for Ruby-based &DSCL;s, ruby193 and ruby200.</para>
<procedure>
<title>Providing your own scldevel subpackage</title>
<step>
- <para>Add the <package>scldevel</package> subpackage by defining its name, summary, and description:</para>
+ <para>In your &DSCL;'s metapackage, add the <package>scldevel</package> subpackage by defining its name, summary, and description:</para>
<programlisting language="RPM Spec">%package scldevel
Summary: Package shipping development files for %scl
Provides: scldevel(%{scl_name_base})
@@ -16,10 +16,10 @@ Provides: scldevel(%{scl_name_base})
%description scldevel
Package shipping development files, especially useful for development of
packages depending on %scl Software Collection.</programlisting>
- <para>You may need to specify the <code>Provides: scldevel(%{scl_name_base})</code> virtual provide as a build requirement for packages with soft dependencies. For example, the <package>rubygem-uglifier</package> package makes use of the <package>rubygem-therubyracer</package> package, which in turn depends on the v8 &DSCL;.</para>
+ <para>You may need to specify the <code>Provides: scldevel(%{scl_name_base})</code> virtual provide as a build requirement for packages with soft dependencies. For example, the <package>rubygem-uglifier</package> package depends at build time on the <package>rubygem-therubyracer</package> package, which in turn depends on the v8 &DSCL;.</para>
</step>
<step>
- <para>In the <code>%install</code> section of your &DSCL;'s metapackage, create the macros.%{scl_name_base}-scldevel file that is part of the <package>scldevel</package> subpackage and contains:</para>
+ <para>In the <code>%install</code> section of your &DSCL;'s metapackage, create the <filename>macros.%{scl_name_base}-scldevel</filename> file that is part of the <package>scldevel</package> subpackage and contains:</para>
<programlisting language="RPM Spec"><![CDATA[cat >> %{buildroot}%{_root_sysconfdir}/rpm/macros.%{scl_name_base}-scldevel << EOF
%%scl_%{scl_name_base} %{scl}
%%scl_prefix_%{scl_name_base} %{scl_prefix}
@@ -46,14 +46,14 @@ EOF]]></programlisting>
<para>By specifying this build requirement, you ensure that the <package>scldevel</package> subpackage is in the build root and that the default values are not in use. Omitting this package could result in broken requires at the subsequent packages' build time.</para>
</step>
<step>
- <para>Ensure that the <code>%package runtime</code> part of the metapackage's spec files includes the following lines:</para>
+ <para>Ensure that the <code>%package runtime</code> part of the metapackage's spec file includes the following lines:</para>
<programlisting language="RPM Spec">%package runtime
Summary: Package that handles %scl Software Collection.
Requires: scl-utils
Requires: %{scl_prefix_ruby}runtime</programlisting>
</step>
<step>
- <para>Ensure that the <code>%package build</code> part of the metapackage's spec files includes the following lines:</para>
+ <para>Ensure that the <code>%package build</code> part of the metapackage's spec file includes the following lines:</para>
<programlisting language="RPM Spec">%package build
Summary: Package shipping basic build configuration
Requires: %{scl_prefix_ruby}scldevel</programlisting>
9 years, 10 months
[software-collections-guide: 9/17] Update scldevel docs
by Petr Kovář
commit 40e466439d3491f303635cd3d309c26ead22d3fd
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Thu May 15 21:46:07 2014 +0200
Update scldevel docs
en-US/Extending_Red_Hat_Software_Collections.xml | 99 ++++++++++++----------
en-US/Preface.xml | 2 +-
2 files changed, 54 insertions(+), 47 deletions(-)
---
diff --git a/en-US/Extending_Red_Hat_Software_Collections.xml b/en-US/Extending_Red_Hat_Software_Collections.xml
index ec086c1..780ff7d 100644
--- a/en-US/Extending_Red_Hat_Software_Collections.xml
+++ b/en-US/Extending_Red_Hat_Software_Collections.xml
@@ -2,30 +2,21 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<chapter id="chap-Extending_Red_Hat_Software_Collections">
<title>Extending Red Hat Software Collections 1.1</title>
- <section id="sect-Extending_the_python27_and_python33_Software_Collections">
- <title>Extending the python27 and python33 &DSCL;s</title>
- <para>
- In Red Hat Software Collections 1.1, the <application>scl</application> tool has been extended to support a macro <systemitem>%scl_package_override()</systemitem>, which allows for easier packaging of your own dependent &DSCL;.
- </para>
- <para>
- Note that even though the approach described below generally applies to every &DSCL; shipped with Red Hat Software Collections 1.1, there are specifics that depend on the &DSCL; you are extending.
- </para>
- <!--section id="sect-Providing_an_scldevel_Subpackage">
+ <section id="sect-Providing_an_scldevel_Subpackage">
<title>Providing an scldevel Subpackage</title>
<para>Providing an <package>scldevel</package> subpackage in your &DSCL;'s metapackage can make it easier for users to create dependent &DSCL;. This section describes creating an <package>scldevel</package> subpackage, for examples of extending &DSCL; shipped with the Red Hat Software Collections offering, see <xref linkend="chap-Extending_Red_Hat_Software_Collections" />.</para>
<procedure>
+ <title>Providing your own scldevel subpackage</title>
<step>
<para>Add the <package>scldevel</package> subpackage by defining its name, summary, and description:</para>
<programlisting language="RPM Spec">%package scldevel
Summary: Package shipping development files for %scl
-# You might need to BR this virtual provide in package, which has soft dependency,
-# e.g. rubygem-uglifier uses rubygem-therubyracer, which in turn depends on v8 collection.
-# This provide might be versioned, not sure about the usecases or proc/cons though.
Provides: scldevel(%{scl_name_base})
%description scldevel
Package shipping development files, especially useful for development of
packages depending on %scl Software Collection.</programlisting>
+ <para>You may need to specify the <code>Provides: scldevel(%{scl_name_base})</code> virtual provide as a build requirement for packages with soft dependencies. For example, the <package>rubygem-uglifier</package> package makes use of the <package>rubygem-therubyracer</package> package, which in turn depends on the v8 &DSCL;.</para>
</step>
<step>
<para>In the <code>%install</code> section of your &DSCL;'s metapackage, create the macros.%{scl_name_base}-scldevel file that is part of the <package>scldevel</package> subpackage and contains:</para>
@@ -33,37 +24,53 @@ packages depending on %scl Software Collection.</programlisting>
%%scl_%{scl_name_base} %{scl}
%%scl_prefix_%{scl_name_base} %{scl_prefix}
EOF]]></programlisting>
+ <para>Note that between all &DSCL;s that share the same <code>%{scl_name_base}</code> name, the provided <code>macros.%{scl_name_base}-scldevel</code> files must conflict. This is to disallow installing multiple versions of the %{scl_name_base} &DSCL;s. For example, in Red Hat Software Collections, the <package>ruby193-scldevel</package> subpackage cannot be installed when there is the <package>ruby200-scldevel</package> subpackage installed.</para>
</step>
</procedure>
- <para>Note that between all &DSCL;s that share the same <code>%{scl_name_base}</code> name, the provided <code>macros.%{scl_name_base}-scldevel</code> files must conflict. This is to disallow installing multiple versions of the %{scl_name_base} &DSCL;s. For example, in Red Hat Software Collections, the <package>ruby193-scldevel</package> package cannot be installed when there is the <package>ruby200-scldevel</package> package installed.</para>
-
-- Using the scldevel Subpackage in Dependent &DSCL;
-
-Everything bellow belongs into metapackage of dependent collection
-
-# This is optional. Can be replaced by %{?scl_prefix_ruby}. It is just hint, that the collection
-# was designed with ruby200 in mind. If buildroot has no special settings (i.e. there is
-# explicitely not available different -scldevel package), the BuildRequires pulls in
-# ruby200-scldevel.
-%{!?scl_ruby:%global scl_ruby ruby200}
-%{!?scl_prefix_ruby:%global scl_prefix_ruby %{scl_ruby}-}
-
-# Always BR -scldevel package. That way you ensure that -scldevel package is in buildroot and
-# the default values are actually not in use. When this package would be omitted, it might
-# result in broken requires, which could be discoverred just by build of subsequent packages.
-BuildRequires: %{scl_prefix_ruby}scldevel
-
-%package runtime
+ <section id="sect-Using_an_scldevel_Subpackage_in_a_Dependent_Software_Collection">
+ <title>Using an scldevel Subpackage in a Dependent &DSCL;</title>
+ <para>To use your <package>scldevel</package> subpackage in a &DSCL; that depends on a &DSCL; ruby200, update the metapackage of the dependent &DSCL; as described below.</para>
+ <procedure>
+ <title>Using your own scldevel subpackage in a dependent &DSCL;</title>
+ <step>
+ <para>Consider adding the following at the beginning of the metapackage's spec file:</para>
+ <programlisting language="RPM Spec">%{!?scl_ruby:%global scl_ruby ruby200}
+%{!?scl_prefix_ruby:%global scl_prefix_ruby %{scl_ruby}-}</programlisting>
+ <para>These two lines are optional. They are only meant as a visual hint that the dependent &DSCL; has been designed to depend on the ruby200 &DSCL;. If there is no other <package>scldevel</package> subpackage available in the build root, then the <package>ruby200-scldevel</package> subpackage is used as a build requirement.</para>
+ <para>You can substitute these lines by the following line:</para>
+ <programlisting language="RPM Spec">%{?scl_prefix_ruby}</programlisting>
+ </step>
+ <step>
+ <para>Add the following build requirement to the metapackage:</para>
+ <programlisting language="RPM Spec">BuildRequires: %{scl_prefix_ruby}scldevel</programlisting>
+ <para>By specifying this build requirement, you ensure that the <package>scldevel</package> subpackage is in the build root and that the default values are not in use. Omitting this package could result in broken requires at the subsequent packages' build time.</para>
+ </step>
+ <step>
+ <para>Ensure that the <code>%package runtime</code> part of the metapackage's spec files includes the following lines:</para>
+ <programlisting language="RPM Spec">%package runtime
Summary: Package that handles %scl Software Collection.
Requires: scl-utils
-Requires: %{scl_prefix_ruby}runtime
-
-%package build
+Requires: %{scl_prefix_ruby}runtime</programlisting>
+ </step>
+ <step>
+ <para>Ensure that the <code>%package build</code> part of the metapackage's spec files includes the following lines:</para>
+ <programlisting language="RPM Spec">%package build
Summary: Package shipping basic build configuration
-# This ensures availability of macros in every package of collection.
-Requires: %{scl_prefix_ruby}scldevel
-
- </section>-->
+Requires: %{scl_prefix_ruby}scldevel</programlisting>
+ <para>Specifying <code>Requires: %{scl_prefix_ruby}scldevel</code> ensures that macros are available in all packages of the &DSCL;.</para>
+ </step>
+ </procedure>
+ </section>
+ </section>
+ <section id="sect-Extending_the_python27_and_python33_Software_Collections">
+ <title>Extending the python27 and python33 &DSCL;s</title>
+ <para>This section describes extending the python27 and python33 &DSCL;s by creating a dependent &DSCL;.</para>
+ <para>
+ In Red Hat Software Collections 1.1, the <application>scl</application> tool has been extended to support a macro <systemitem>%scl_package_override()</systemitem>, which allows for easier packaging of your own dependent &DSCL;.
+ </para>
+ <!--para>
+ Note that even though the approach described below generally applies to every &DSCL; shipped with Red Hat Software Collections 1.1, there are specifics that depend on the &DSCL; you are extending.
+ </para-->
<section id="The_vt191_Software_Collection">
<title>The vt191 &DSCL;</title>
<para>
@@ -82,7 +89,7 @@ Requires: %{scl_prefix_ruby}scldevel
This expands to, for example, <package>python27-scldevel</package>.
</para>
<para>
- The <package>python27-scldevel</package> package ships two important macros, <code>%scl_python</code> and <code>%scl_prefix_python</code>. Note that these macros are defined at the top of the spec file. Although the definitions are not required, they provide a visual hint that the vt191 &DSCL; has been designed to be built on top of the python27 &DSCL;. They also serve as a fallback value.
+ The <package>python27-scldevel</package> subpackage ships two important macros, <code>%scl_python</code> and <code>%scl_prefix_python</code>. Note that these macros are defined at the top of the spec file. Although the definitions are not required, they provide a visual hint that the vt191 &DSCL; has been designed to be built on top of the python27 &DSCL;. They also serve as a fallback value.
</para>
</listitem>
<listitem>
@@ -126,7 +133,7 @@ Requires: %{scl_prefix_ruby}scldevel
# Defaults for the values for the python27/python33 Software Collection. These
# will be used when python27-scldevel (or python33-scldevel) is not in the
-# buildroot
+# build root
%{!?scl_python:%global scl_python python27}
%{!?scl_prefix_python:%global scl_prefix_python %{scl_python}-}
@@ -147,7 +154,7 @@ Release: 1%{?dist}
License: GPLv2+
BuildRequires: scl-utils-build
# Always make sure that there is the python27-sclbuild (or python33-sclbuild)
-# package in the buildroot
+# package in the build root
BuildRequires: %{scl_prefix_python}scldevel
# Require python27-python-devel, you will need macros from that package
BuildRequires: %{scl_prefix_python}python-devel
@@ -293,7 +300,7 @@ Smart replacement for plain tuple used in __version__
<procedure>
<step>
<para>
- Install the <package>python27-scldevel</package> and <package>python27-python-devel</package> packages that are part of Red Hat Software Collections.
+ Install the <package>python27-scldevel</package> and <package>python27-python-devel</package> subpackages that are part of Red Hat Software Collections.
</para>
</step>
<step>
@@ -354,7 +361,7 @@ Smart replacement for plain tuple used in __version__
<programlisting language="RPM Spec">BuildRequires: %{scl_prefix_ruby}scldevel
BuildRequires: %{scl_prefix_ruby}rubygems-devel</programlisting>
<para>This expands to, for example, <package>ruby200-scldevel</package> and <package>ruby200-rubygems-devel</package>.</para>
- <para>The <package>ruby200-scldevel</package> package contains two important macros, <code>%scl_ruby</code> and <code>%scl_prefix_ruby</code>. The <package>ruby200-scldevel</package> package should be available in the build root. It specifies which of the available Ruby &DSCL;s you want to use. You can also replace it with the <package>ruby193-scldevel</package> package.</para>
+ <para>The <package>ruby200-scldevel</package> subpackage contains two important macros, <code>%scl_ruby</code> and <code>%scl_prefix_ruby</code>. The <package>ruby200-scldevel</package> subpackage should be available in the build root. It specifies which of the available Ruby &DSCL;s you want to use. You can also replace it with the <package>ruby193-scldevel</package> subpackage.</para>
<para>Note that the <code>%scl_ruby</code> and <code>%scl_prefix_ruby</code> macros are also defined at the top of the spec file. Although the definitions are not required, they provide a visual hint that the ror40 &DSCL; has been designed to be built on top of the ruby200 &DSCL;. They also serve as a fallback value.</para>
</listitem>
<listitem>
@@ -375,7 +382,7 @@ Requires: %{scl_prefix_ruby}scldevel</programlisting>
<para>Note the dot at the beginning of the line. This line makes the Ruby &DSCL; start implicitly when the ror40 &DSCL; is started so that the user can only type <command>scl enable ror40 <replaceable>command</replaceable></command> instead of <command>scl enable ruby200 ror40 <replaceable>command</replaceable></command> to run <replaceable>command</replaceable> in the &DSCL; environment.</para>
</listitem>
<listitem>
- <para>The <package>ror40-scldevel</package> package is provided so that it is available in case you need it to build a &DSCL; which extends the ror40 &DSCL;. The package provides the <code>%{scl_ror}</code> and <code>%{scl_prefix_ror}</code> macros, which can be used to extend the ror40 &DSCL;.</para>
+ <para>The <package>ror40-scldevel</package> subpackage is provided so that it is available in case you need it to build a &DSCL; which extends the ror40 &DSCL;. The package provides the <code>%{scl_ror}</code> and <code>%{scl_prefix_ror}</code> macros, which can be used to extend the ror40 &DSCL;.</para>
</listitem>
<listitem>
<para>Because the ror40 &DSCL;'s gems are installed in a separate root directory structure, you need to ensure that the correct ownership for the rubygems directories is set. This is done by using a snippet to generate a file list <package>rubygems_filesystem.list</package>.
@@ -581,7 +588,7 @@ popd
<para>To build the ror40 &DSCL;:</para>
<procedure>
<step>
- <para>Install the <package>ruby200-scldevel</package> package which is a part of Red Hat Software Collections.</para>
+ <para>Install the <package>ruby200-scldevel</package> subpackage which is a part of Red Hat Software Collections.</para>
</step>
<step>
<para>Build <filename>ror40.spec</filename> and install the <package>ror40-runtime</package> and <package>ror40-build</package> packages.</para>
@@ -632,7 +639,7 @@ popd
<para>The h2m144 &DSCL; spec file has the following build dependency set:</para>
<programlisting language="RPM Spec">BuildRequires: %{scl_prefix_perl}scldevel</programlisting>
<para>This expands to <code>perl516-scldevel</code>.</para>
- <para>The <package>perl516-scldevel</package> package contains two important macros, <code>%scl_perl</code> and <code>%scl_prefix_perl</code>, and also provides Perl dependency generators. Note that the macros are defined at the top of the spec file. Although the definitions are not required, they provide a visual hint that the h2m144 &DSCL; has been designed to be built on top of the perl516 &DSCL;. They also serve as a fallback value.</para>
+ <para>The <package>perl516-scldevel</package> subpackage contains two important macros, <code>%scl_perl</code> and <code>%scl_prefix_perl</code>, and also provides Perl dependency generators. Note that the macros are defined at the top of the spec file. Although the definitions are not required, they provide a visual hint that the h2m144 &DSCL; has been designed to be built on top of the perl516 &DSCL;. They also serve as a fallback value.</para>
</listitem>
<listitem>
<para>The <package>h2m144-build</package> subpackage has the following dependency set:</para>
diff --git a/en-US/Preface.xml b/en-US/Preface.xml
index 20c17ac..2ff659c 100644
--- a/en-US/Preface.xml
+++ b/en-US/Preface.xml
@@ -9,7 +9,7 @@
</xi:include>
<section id="pref-Acknowledgments">
<title>Acknowledgments</title>
- <para>The author of this book would like to thank the following people for their valuable contributions: Jindřich Nový, Marcela Mašláňová, Bohuslav Kabrda, Honza Horák, Jan Zelený, Martin Čermák, Langdon White, Florian Nadge, Stephen Wadeley, Douglas Silas, Tomáš Čapek, and Vít Ondruch, among many others.</para>
+ <para>The author of this book would like to thank the following people for their valuable contributions: Jindřich Nový, Marcela Mašláňová, Bohuslav Kabrda, Honza Horák, Jan Zelený, Martin Čermák, Jitka Plesníková, Langdon White, Florian Nadge, Stephen Wadeley, Douglas Silas, Tomáš Čapek, and Vít Ondruch, among many others.</para>
</section>
</preface>
9 years, 10 months
[software-collections-guide: 8/17] Fix 1075625
by Petr Kovář
commit 63b3dfb9a33e638792cb2b8dc2786c1a36d22bdc
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Mon May 5 15:40:58 2014 +0200
Fix 1075625
en-US/Packaging_Software_Collections.xml | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/en-US/Packaging_Software_Collections.xml b/en-US/Packaging_Software_Collections.xml
index 0e60641..71817c3 100644
--- a/en-US/Packaging_Software_Collections.xml
+++ b/en-US/Packaging_Software_Collections.xml
@@ -167,6 +167,8 @@
<term>The main package: %scl</term>
<listitem>
<para>The main package in the &DSCL; contains dependencies of the base packages, which are included in the &DSCL;. The main package does not contain any files.</para>
+ <para>When specifying dependencies for your &DSCL;'s packages, ensure that no other package in your &DSCL; depends on the main package. The purpose of the main package is to install only those packages that are essential for the user to perform most common tasks with the &DSCL;.</para>
+ <para>Normally, the main package does not specify any build time dependencies (for instance, packages that are only build time dependencies of another &DSCL;'s packages).</para>
<para>For example, if the name of the &DSCL; is <literal>myorganization_ruby193</literal>, then the main package macro is expanded to:</para>
<programlisting>myorganization_ruby193</programlisting>
</listitem>
9 years, 10 months
[software-collections-guide: 7/17] Fix 1075632
by Petr Kovář
commit a33d4f111769f93fafd2d741631fad05628def83
Author: Petr Kovar <pkovar(a)redhat.com>
Date: Mon May 5 15:01:14 2014 +0200
Fix 1075632
en-US/Introducing_Software_Collections.xml | 6 ++++--
en-US/Packaging_Software_Collections.xml | 4 ++--
2 files changed, 6 insertions(+), 4 deletions(-)
---
diff --git a/en-US/Introducing_Software_Collections.xml b/en-US/Introducing_Software_Collections.xml
index a6d6900..2b363ec 100644
--- a/en-US/Introducing_Software_Collections.xml
+++ b/en-US/Introducing_Software_Collections.xml
@@ -114,13 +114,15 @@
</section>
<section id="sect-Installing_a_Software_Collection">
<title>Installing a &DSCL;</title>
- <para>To ensure that a &DSCL; is on your system, install the so-called metapackage of the &DSCL;. You can use conventional tools like <application>Yum</application> or <application>PackageKit</application> for this task because &DSCL;s are fully compatible with the RPM Package Manager.
+ <para>To ensure that a &DSCL; is on your system, install the so-called metapackage of the &DSCL;. Thanks to &DSCL;s being fully compatible with the RPM Package Manager, you can use conventional tools like <application>Yum</application> or <application>PackageKit</application> for this task.
</para>
<para>For example, to install a &DSCL; with the metapackage named <code>software_collection_1</code>, run the following command:</para>
<synopsis>
<command>yum install software_collection_1</command>
</synopsis>
- <para>This command will automatically install all the packages that are part of the &DSCL;. Also, if you install an application that depends on a &DSCL;, the &DSCL; will be installed along with the rest of the application's dependencies.</para>
+ <para>This command will automatically install all the packages in the &DSCL; that are essential for the user to perform most common tasks with the &DSCL;.</para>
+ <para>&DSCL;s allow you to only install a subset of packages you intend to use. For example, to use the Ruby interpreter from the ruby193 &DSCL;, you only need to install a package <package>ruby193-ruby</package> from that &DSCL;.</para>
+ <para>If you install an application that depends on a &DSCL;, that &DSCL; will be installed along with the rest of the application's dependencies.</para>
<para>
For detailed information on &DSCL; metapackages, see <xref linkend="sect-Meta_Package" />.
</para>
diff --git a/en-US/Packaging_Software_Collections.xml b/en-US/Packaging_Software_Collections.xml
index a06d5d3..0e60641 100644
--- a/en-US/Packaging_Software_Collections.xml
+++ b/en-US/Packaging_Software_Collections.xml
@@ -25,7 +25,7 @@
<term>Create a &DSCL; metapackage</term>
<listitem>
<para>
- Each &DSCL; includes a metapackage, which installs a minimal subset of essential packages. See <xref linkend="sect-Meta_Package" /> for more information on creating metapackages.
+ Each &DSCL; includes a metapackage, which installs a subset of the &DSCL;'s packages that are essential for the user to perform most common tasks with the &DSCL;. See <xref linkend="sect-Meta_Package" /> for more information on creating metapackages.
</para>
</listitem>
</varlistentry>
@@ -159,7 +159,7 @@
<para>Each &DSCL;'s layout consists of the metapackage, which installs a subset of other packages, and a number of the &DSCL;'s packages, which are installed within the &DSCL; namespace.</para>
<section id="sect-Meta_Package">
<title>Metapackage</title>
- <para>Each &DSCL; includes a metapackage, which installs a minimal subset of essential packages. For example, the essential packages can provide the Perl language interpreter, but no Perl extension modules. The metapackage contains a basic file system hierarchy and delivers a number of the &DSCL;'s scriptlets.</para>
+ <para>Each &DSCL; includes a metapackage, which installs a subset of the &DSCL;'s packages that are essential for the user to perform most common tasks with the &DSCL;. For example, the essential packages can provide the Perl language interpreter, but no Perl extension modules. The metapackage contains a basic file system hierarchy and delivers a number of the &DSCL;'s scriptlets.</para>
<para>The purpose of the metapackage is to make sure that all essential packages in the &DSCL; are properly installed and that it is possible to enable the &DSCL;.</para>
<para>The metapackage produces the following packages that are also part of the &DSCL;:</para>
<variablelist>
9 years, 10 months