<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:29:08 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-9775] find kernel-devel even if the current kernel is not installed in the build root</title>
                <link>https://jira.whamcloud.com/browse/LU-9775</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;If one is building in a build &lt;span class=&quot;error&quot;&gt;&amp;#91;ch&amp;#93;&lt;/span&gt;root such as &lt;em&gt;mock&lt;/em&gt; provides, one may not have the kernel installed which corresponds to &lt;tt&gt;$(uname -r)&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;In such a case, also try to look for the &lt;em&gt;kernel-devel&lt;/em&gt; in &lt;tt&gt;/usr/src/kernels/&lt;/tt&gt;&#160;and just build for the latest one. &#160;Ideally there is only one installed in any case.&lt;/p&gt;</description>
                <environment></environment>
        <key id="47239">LU-9775</key>
            <summary>find kernel-devel even if the current kernel is not installed in the build root</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="brian">Brian Murrell</assignee>
                                    <reporter username="brian">Brian Murrell</reporter>
                        <labels>
                    </labels>
                <created>Fri, 14 Jul 2017 12:40:34 +0000</created>
                <updated>Fri, 18 Aug 2017 21:21:07 +0000</updated>
                            <resolved>Mon, 24 Jul 2017 17:46:19 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                                    <fixVersion>Lustre 2.10.1</fixVersion>
                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="202143" author="gerrit" created="Fri, 14 Jul 2017 12:52:09 +0000"  >&lt;p&gt;Brian J. Murrell (brian.murrell@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/28046&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28046&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9775&quot; title=&quot;find kernel-devel even if the current kernel is not installed in the build root&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9775&quot;&gt;&lt;del&gt;LU-9775&lt;/del&gt;&lt;/a&gt; Look for kernel-devel in /usr/src/kernels&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 59dd5a89fcde9f5ec48656591a4401e9219028ec&lt;/p&gt;</comment>
                            <comment id="202150" author="simmonsja" created="Fri, 14 Jul 2017 14:56:11 +0000"  >&lt;p&gt;/usr/src/kernel is very RHEL specific. Would this break non-RHEL systems? On a system we could also end up with variants like PAE or XEN so it can be even more complex.&lt;/p&gt;</comment>
                            <comment id="202152" author="brian" created="Fri, 14 Jul 2017 15:19:09 +0000"  >&lt;blockquote&gt;
&lt;p&gt;/usr/src/kernel is very RHEL specific.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Agreed, which is why I put it at the end of the search list.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Would this break non-RHEL systems?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;None that I am aware of. I don&apos;t know of any other systems using &lt;tt&gt;/usr/src/kernels/&lt;/tt&gt;. If there were, and they were doing it in an incompatible way, of course we could make this search dependent on the distro &lt;tt&gt;configure&lt;/tt&gt; is being run on. That just doesn&apos;t seem necessary at this point so the complexity seems unnecessary at this point also.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On a system we could also end up with variants like PAE or XEN so it can be even more complex.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&apos;m not sure this is very likely. &lt;tt&gt;/usr/src/kernels/&lt;/tt&gt; is at the end of the search list and so only applies to a system that doesn&apos;t actually have a kernel matching &lt;tt&gt;$(uname -r)&lt;/tt&gt; installed and as such the &lt;tt&gt;/lib/modules/$(uname -r)/{source,build&lt;/tt&gt;} links are missing. &#8211; hence the need to keep looking for some kernel source. &#160;I can&apos;t imagine a system that this would be true on other than a &lt;em&gt;mock&lt;/em&gt;-style (i.e. &lt;em&gt;chroot&lt;/em&gt;) build environment and in such an environment, you would only populate it with the &lt;em&gt;kernel-devel&lt;/em&gt; of the kernel you are wishing to build for.&lt;/p&gt;

&lt;p&gt;Maybe there are cases I am not thinking of?&lt;/p&gt;</comment>
                            <comment id="202159" author="dmiter" created="Fri, 14 Jul 2017 15:43:45 +0000"  >&lt;p&gt;If appropriate kernel-devel is installed into &lt;tt&gt;/usr/src/kernels/&amp;lt;kver&amp;gt;/&lt;/tt&gt; directory it will always have a correct symbolic link from &lt;tt&gt;/lib/modules/&amp;lt;kver&amp;gt;/build&lt;/tt&gt;. So, probably it will be better to just create those links for&#160;kernel-devel&apos;s without appropriate kernel&apos;s. Many scripts use those links instead of direct location.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="202161" author="brian" created="Fri, 14 Jul 2017 15:59:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=dmiter&quot; class=&quot;user-hover&quot; rel=&quot;dmiter&quot;&gt;dmiter&lt;/a&gt;: Not all build environments provide the ability to &quot;fiddle&quot; with the build &lt;span class=&quot;error&quot;&gt;&amp;#91;ch&amp;#93;&lt;/span&gt;root that the build is being done in. &#160;Probably for good reason. &#160;You &quot;taint&quot; the &quot;clean room&quot; by allowing it to be fiddled with before the build.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pagure.io/copr/copr&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Copr&lt;/a&gt;&#160;is one such type build environment.&lt;/p&gt;</comment>
                            <comment id="202368" author="gerrit" created="Mon, 17 Jul 2017 17:21:35 +0000"  >&lt;p&gt;Brian J. Murrell (brian.murrell@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/28064&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28064&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9775&quot; title=&quot;find kernel-devel even if the current kernel is not installed in the build root&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9775&quot;&gt;&lt;del&gt;LU-9775&lt;/del&gt;&lt;/a&gt; Look for kernel-devel in /usr/src/kernels&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 48edcc4bb7a7985d9fdb90e45aa01e2fc3c405bf&lt;/p&gt;</comment>
                            <comment id="203105" author="bogl" created="Fri, 21 Jul 2017 17:48:45 +0000"  >&lt;p&gt;Don&apos;t think this particular patch is good or useful.   In the common case where links in /lib/modules are missing and it would go to picking one from /usr/src/kernels, the one it picks is fairly arbitrary.   It isn&apos;t the case that there is only one most of the time.&lt;/p&gt;

&lt;p&gt;If you must pick from there it would be better to first look for a match on &apos;uname -r&apos;, first an exact match and then a close match if no exact match.&lt;/p&gt;

&lt;p&gt;In general I think putting in appropriate symlinks in /lib/modules as Dmitry suggests even if the correct kernel-devel isn&apos;t installed would be better.&lt;br/&gt;
btw, kernel-devel of pristine, unpatched upstream linux is insufficient for building ldiskfs.  In RHEL distros it doesn&apos;t include ext4 sources, needed for building ldiskfs.  kernel source or debuginfo is needed&lt;/p&gt;</comment>
                            <comment id="203109" author="bogl" created="Fri, 21 Jul 2017 18:03:24 +0000"  >&lt;p&gt;On a test with symlinks deleted from /lib/modules to see what would happen this patch doesn&apos;t even work.  I get the following failure:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;./configure --disable-server
  .
  .
  .
checking whether to build Lustre client support... yes
checking whether mpitests can be built... yes
checking whether to build Linux kernel modules... yes (linux-gnu)
checking for Linux sources... /usr/src/linux
checking for /usr/src/linux... no
configure: error: Kernel source /usr/src/linux could not be found.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It appears the current logic looks in /usr/src/linux first and if there is no such dir it doesn&apos;t even get as far as looking in /usr/src/kernels.&lt;/p&gt;

&lt;p&gt;There isn&apos;t any /usr/src/linux in RHEL/Centos installs&lt;/p&gt;</comment>
                            <comment id="203111" author="bogl" created="Fri, 21 Jul 2017 18:07:50 +0000"  >&lt;p&gt;I believe the logic to look at /usr/src/linux is there to cater to SLES installs.  In SLES /usr/src/linux is a symlink to the linux tree corresponding to the boot kernel.&lt;/p&gt;</comment>
                            <comment id="203116" author="brian" created="Fri, 21 Jul 2017 19:13:08 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Don&apos;t think this particular patch is good or useful.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Have you ever built Lustre in a &quot;clean-room&quot; (i.e.&#160;with&#160;&lt;tt&gt;mock&lt;/tt&gt;)? That&apos;s one case where it&apos;s useful.&lt;/p&gt;

&lt;p&gt;To be contrarian, does adding another element to the list of places searched for kernel source cause any harm?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the common case where links in /lib/modules are missing and it would go to picking one from /usr/src/kernels, the one it picks is fairly arbitrary.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It&apos;s not actually. Even in the case of there being multiple entries in &lt;tt&gt;/usr/src/kernels/&lt;/tt&gt; &#8211; which I don&apos;t think is actually all that common at all for the use-cases that this patch is targeting &#8211; but in any case, it will pick the highest versioned kernel, which seems like the least surprising choice to me. If that is not what the user wants, then he can still use &lt;tt&gt;--with-linux&lt;/tt&gt; to point at the one he wants, but using the most recent seems like a reasonable default when all other selection mechanisms have been exhausted.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It isn&apos;t the case that there is only one most of the time.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Even in environments where all of the other search locations have not found kernel source? I am doubtful that your assertion is true. I suspect environments that this patch is targeting are few and are particular, typically about clean-room isolated build environments.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you must pick from there it would be better to first look for a match on &apos;uname -r&apos;,&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;As has been discussed previously in this ticket, if there was a match for &lt;tt&gt;$(uname -r)&lt;/tt&gt; then the targeted kernel is what would be installed and booted already and the &lt;em&gt;/lib/modules/$(uname -r)/{build,source}&lt;/em&gt; symlinks would be present. This patch is specifically targeting build environments where the booted kernel (the one that responds to &lt;tt&gt;$(uname -r)&lt;/tt&gt;) is not the kernel you want to build for in your build chroot.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In general I think putting in appropriate symlinks in /lib/modules as Dmitry suggests even if the correct kernel-devel isn&apos;t installed would be better.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In a &quot;clean-room&quot; build system (or BaaS &#8211; Builder as a Service) you are usually not allowed to mess with the &quot;clean&quot; room.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;btw, kernel-devel of pristine, unpatched upstream linux is insufficient for building ldiskfs. In RHEL distros it doesn&apos;t include ext4 sources, needed for building ldiskfs. kernel source or debuginfo is needed&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is not for building patched servers. It&apos;s for building the patchless client.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On a test with symlinks deleted from /lib/modules to see what would happen this patch doesn&apos;t even work. I get the following failure:&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Bah. &#160;Good catch. &#160;That was due to an unfortunate nastiness with &lt;em&gt;m4&lt;/em&gt; macros. &#160;I&apos;ve updated the patch. &#160;Now&#160;I get this:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;$ ./configure --disable-server
...
checking whether to build Lustre client support... yes
checking whether mpitests can be built... no
checking whether to build Linux kernel modules... yes (linux-gnu)
checking for Linux sources... /usr/src/kernels/3.10.0-514.26.2.el7.x86_64
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64... yes
checking for Linux objects... /usr/src/kernels/3.10.0-514.26.2.el7.x86_64
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/.config... yes
checking for /boot/kernel.h... no
checking for /var/adm/running-kernel.h... no
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/include/generated/autoconf.h... yes
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/include/linux/version.h... no
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/include/generated/uapi/linux/version.h... yes
checking for /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/include/linux/kconfig.h... yes

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;It appears the current logic looks in /usr/src/linux first and if there is no such dir it doesn&apos;t even get as far as looking in /usr/src/kernels.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That&apos;s not how the code reads:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; DEFAULT_LINUX in /lib/modules/$(uname -r)/{source,build} /usr/src/linux $(find /usr/src/kernels/ -maxdepth 1 -name [0-9]\* | xargs -r ls -d | tail -n 1); &lt;span class=&quot;code-keyword&quot;&gt;do&lt;/span&gt;
	AS_IF([readlink -q -e $DEFAULT_LINUX &amp;gt;/dev/&lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;], [&lt;span class=&quot;code-keyword&quot;&gt;break&lt;/span&gt;])
done



&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;That says to iterate through the list of &lt;tt&gt;/lib/modules/$(uname -r)/{source,build} /usr/src/linux $(find /usr/src/kernels/ -maxdepth 1 -name &lt;span class=&quot;error&quot;&gt;&amp;#91;0-9&amp;#93;&lt;/span&gt;* | xargs -r ls -d | tail -n 1)&lt;/tt&gt; and stop (&lt;tt&gt;break&lt;/tt&gt;) when a list item is valid. If &lt;tt&gt;/usr/src/linux&lt;/tt&gt; is not valid, whatever &lt;tt&gt;$(find /usr/src/kernels/ -maxdepth 1 -name &lt;span class=&quot;error&quot;&gt;&amp;#91;0-9&amp;#93;&lt;/span&gt;* | xargs -r ls -d | tail -n 1)&lt;/tt&gt; evaluates to will be tried next.&lt;/p&gt;</comment>
                            <comment id="203127" author="bogl" created="Fri, 21 Jul 2017 19:52:27 +0000"  >&lt;p&gt;you said&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is not for building patched servers. It&apos;s for building the patchless client.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;As I understand it future plans call for building unpatched servers too.  Building any server, patched or unpatched, calls for building ldiskfs.  Any build of ldiskfs requires ext4 source.&lt;/p&gt;</comment>
                            <comment id="203331" author="brian" created="Mon, 24 Jul 2017 11:38:26 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=bogl&quot; class=&quot;user-hover&quot; rel=&quot;bogl&quot;&gt;bogl&lt;/a&gt; Fair enough. &#160;But that&apos;s a future concern with a number of possible&#160;solutions, none of which have probably been decided on&#160;at this point. &#160;So it seems unreasonable to prevent solving today&apos;s problems just because of not yet knowing how we will solve tomorrow&apos;s problem.&lt;/p&gt;

&lt;p&gt;Once&#160;tomorrow comes, and the solution for tomorrow&apos;s&#160;problem has been decided on, yes, today&apos;s&#160;solution might need altering. &#160;But so might so many others. &#160;That is part of developing solutions in lively project.&lt;/p&gt;

&lt;p&gt;IMHO, when we do go to a patchless server and still need &lt;em&gt;ldiskfs&lt;/em&gt; (i.e. because we cannot get ext* upstream to accept the patches that make &lt;em&gt;ext4&lt;/em&gt; linto diskfs), it&apos;s probably time for &lt;em&gt;ldiskfs&lt;/em&gt; to be maintained as a standalone module built as a kmod and/or with DKMS. &#160;In the kmod case, hopefully we could get the module kABI compliant so that it doesn&apos;t need to keep being rebuilt for successive RHEL minor releases.&lt;/p&gt;</comment>
                            <comment id="203361" author="gerrit" created="Mon, 24 Jul 2017 15:47:36 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/28064/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28064/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9775&quot; title=&quot;find kernel-devel even if the current kernel is not installed in the build root&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9775&quot;&gt;&lt;del&gt;LU-9775&lt;/del&gt;&lt;/a&gt; Look for kernel-devel in /usr/src/kernels&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 1a8c125e39f1a96c1afcbd5fac88c34e92d63eff&lt;/p&gt;</comment>
                            <comment id="203365" author="gerrit" created="Mon, 24 Jul 2017 15:49:28 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/28046/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28046/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9775&quot; title=&quot;find kernel-devel even if the current kernel is not installed in the build root&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9775&quot;&gt;&lt;del&gt;LU-9775&lt;/del&gt;&lt;/a&gt; Look for kernel-devel in /usr/src/kernels&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_10&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: ad7e776c076108dfa2b64120cd80c8adb5dafda2&lt;/p&gt;</comment>
                            <comment id="205677" author="gerrit" created="Thu, 17 Aug 2017 21:40:01 +0000"  >&lt;p&gt;removed unrelated gerrit upload message&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzzgof:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>