diff -up yum-3.4.3/docs/comps.rng.orig yum-3.4.3/docs/comps.rng
--- yum-3.4.3/docs/comps.rng.orig	2011-06-28 22:27:22.000000000 +0200
+++ yum-3.4.3/docs/comps.rng	2016-06-30 14:30:03.980476903 +0200
@@ -21,14 +21,22 @@
         <ref name="group"/>
       </oneOrMore>
       <zeroOrMore>
+        <ref name="environment"/>
+      </zeroOrMore>
+      <zeroOrMore>
         <ref name="category"/>
       </zeroOrMore>
-      <optional>
-        <interleave><!-- We don't care what order these are in -->
+      <interleave><!-- We don't care what order these are in -->
+        <optional>
           <ref name="whiteout"/>
+        </optional>
+        <optional>
           <ref name="blacklist"/>
-        </interleave>
-      </optional>
+        </optional>
+        <optional>
+          <ref name="langpacks"/>
+        </optional>
+      </interleave>
     </element>
   </define>
   <define name="group">
@@ -37,14 +45,18 @@
       <a:documentation>This defines a package group.</a:documentation>
       <interleave>
        <ref name="id"/>
-       <element name="default" a:defaultValue="true">
-         <a:documentation>Should the group be enabled by default?</a:documentation>
-         <ref name="boolean"/>
-       </element>
-       <element name="uservisible" a:defaultValue="true">
-         <a:documentation>Should the group be visible to users?</a:documentation>
-         <ref name="boolean"/>
-       </element>
+       <optional>
+         <element name="default" a:defaultValue="true">
+           <a:documentation>Should the group be enabled by default?</a:documentation>
+           <ref name="boolean"/>
+         </element>
+       </optional>
+       <optional>
+         <element name="uservisible" a:defaultValue="true">
+           <a:documentation>Should the group be visible to users?</a:documentation>
+           <ref name="boolean"/>
+         </element>
+       </optional>
        <optional>
          <element name="display_order">
            <ref name="positiveInteger"/>
@@ -72,6 +84,9 @@
       <oneOrMore>
         <ref name="groupreq"/>
       </oneOrMore>
+      <zeroOrMore>
+        <ref name="metapkg"/>
+      </zeroOrMore>
     </element>
   </define>
   <define name="groupreq">
@@ -79,23 +94,39 @@
       <ref name="groupname"/>
     </element>
   </define>
+  <define name="metapkg">
+    <element name="metapkg">
+      <ref name="packagename"/>
+      <optional>
+        <attribute name="type">
+          <choice>
+            <value>mandatory</value>
+            <value>default</value>
+            <value>optional</value>
+          </choice>
+        </attribute>
+      </optional>
+    </element>
+  </define>
   <define name="packagelist">
     <element name="packagelist">
-      <oneOrMore>
+      <zeroOrMore>
         <ref name="packagereq"/>
-      </oneOrMore>
+      </zeroOrMore>
     </element>
   </define>
   <define name="packagereq">
     <element name="packagereq">
       <choice>
-        <attribute name="type" a:defaultValue="optional">
-          <choice>
-            <value>mandatory</value>
-            <value>default</value>
-            <value>optional</value>
-          </choice>
-        </attribute>
+        <optional>
+          <attribute name="type" a:defaultValue="optional">
+            <choice>
+              <value>mandatory</value>
+              <value>default</value>
+              <value>optional</value>
+            </choice>
+          </attribute>
+        </optional>
         <group>
           <attribute name="type" a:defaultValue="conditional">
             <choice>
@@ -112,9 +143,30 @@
           <ref name="boolean"/>
         </attribute>
       </optional>
+      <optional>
+        <attribute name="arch">
+          <ref name="string"/>
+        </attribute>
+      </optional>
       <ref name="packagename"/>
     </element>
   </define>
+  <define name="environment">
+    <element name="environment">
+      <interleave>
+        <ref name="id"/>
+        <optional>
+          <element name="display_order">
+            <ref name="positiveInteger"/>
+          </element>
+        </optional>
+        <ref name="grouplist"/>
+        <optional>
+          <ref name="optionlist"/>
+        </optional>
+      </interleave>
+    </element>
+  </define>
   <define name="category">
     <element name="category">
       <interleave>
@@ -135,9 +187,21 @@
       </oneOrMore>
     </element>
   </define>
+  <define name="optionlist">
+    <element name="optionlist">
+      <oneOrMore>
+        <ref name="groupid"/>
+      </oneOrMore>
+    </element>
+  </define>
   <define name="groupid">
     <element name="groupid">
       <ref name="string"/>
+      <optional>
+        <attribute name="default" a:defaultValue="false">
+          <ref name="boolean"/>
+        </attribute>
+      </optional>
     </element>
   </define>
   <define name="id">
@@ -182,6 +246,29 @@
       </group>
     </choice>
   </define>
+  <define name="langpacks">
+    <a:documentation>
+    The "langpacks" item is a list of package-to-langpack mappings used
+    by the yum-langpacks plugin.
+
+    An example is:
+     &lt;match name="foo" install="foo-lang-%s"&gt;
+    When the 'foo' package is installed, the 'foo-lang-(language code)' package
+    will be installed for any configured languages.
+    </a:documentation>
+    <element name="langpacks">
+      <zeroOrMore>
+        <element name="match">
+          <attribute name="name">
+            <ref name="string"/>
+          </attribute>
+          <attribute name="install">
+            <ref name="string"/>
+          </attribute>
+        </element>
+      </zeroOrMore>
+    </element>
+  </define>
   <define name="blacklist">
     <a:documentation>
     The "blacklist" is a list of packages that will be *removed* if found
@@ -257,7 +344,7 @@
     <data type="string"/>
   </define>
   <define name="ID">
-    <data type="ID"/>
+    <data type="string"/>
   </define>
 <!-- Should be a regexp -->
   <define name="locale">
diff -up yum-3.4.3/yum.spec.orig yum-3.4.3/yum.spec
--- yum-3.4.3/yum.spec.orig	2016-06-30 14:30:03.980476903 +0200
+++ yum-3.4.3/yum.spec	2016-06-30 14:30:35.545325463 +0200
@@ -347,7 +347,7 @@ exit 0
 
 %files -f %{name}.lang
 %defattr(-, root, root, -)
-%doc README AUTHORS COPYING TODO INSTALL ChangeLog PLUGINS
+%doc README AUTHORS COPYING TODO INSTALL ChangeLog PLUGINS docs/comps.rng
 %if %{move_yum_conf_back}
 %config(noreplace) %{_sysconfdir}/yum.conf
 %dir %{_sysconfdir}/yum.repos.d
