<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:05:31 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-281] autoconf improvements and rpm generation fixes</title>
                <link>https://jira.whamcloud.com/browse/LU-281</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;For many types of systems software packages can be store in non standard locations. For example on crays the lustre packages are stored in /opt/cray based on the lustre versions. This allows one to use specific lustre version without rebuilding images for the servers. Normally you do just a ./configure --prefix=&quot;special path&quot; and it works. While doing this I discovered several problems. Several parts of the lustre package are hard coded to where they are installed. Also the rpms generated ingnore the prefix you provide. My hope is this ticket will resolve these issues.&lt;/p&gt;</description>
                <environment>Lustre servers and cray and non cray lustre clients</environment>
        <key id="10747">LU-281</key>
            <summary>autoconf improvements and rpm generation fixes</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="3">Duplicate</resolution>
                                        <assignee username="brian">Brian Murrell</assignee>
                                    <reporter username="simmonsja">James A Simmons</reporter>
                        <labels>
                    </labels>
                <created>Thu, 5 May 2011 08:58:37 +0000</created>
                <updated>Wed, 11 Apr 2012 10:51:07 +0000</updated>
                            <resolved>Wed, 11 Apr 2012 10:51:07 +0000</resolved>
                                    <version>Lustre 2.1.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="13736" author="simmonsja" created="Thu, 5 May 2011 09:03:54 +0000"  >&lt;p&gt;When it comes to rpm generation I discovered that the configure options actually get lost in the lustre.spec.in file. The offending section is&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;we need to eval &quot;configure&quot; because $CONFIGURE_ARGS could have a quoted&lt;/li&gt;
	&lt;li&gt;string in it which we don&apos;t want word splitted by the shell&lt;br/&gt;
%define eval_configure %(echo &apos;%configure&apos; | sed -e &apos;s#\./configure#eval ./configure#&apos;)&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;%eval_configure \&lt;br/&gt;
        %{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \&lt;br/&gt;
        $CONFIGURE_ARGS&lt;br/&gt;
make -j $RPM_BUILD_NCPUS -s&lt;/p&gt;

&lt;p&gt;I don&apos;t know what conditions where you seen this shell splitting problem so I don&apos;t know how to fix this problem without breaking what the fix was originally trying to accomplish.&lt;/p&gt;
</comment>
                            <comment id="24623" author="pjones" created="Tue, 13 Dec 2011 12:35:36 +0000"  >&lt;p&gt;Brian&lt;/p&gt;

&lt;p&gt;Could you please comment on this?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="24634" author="brian" created="Tue, 13 Dec 2011 15:05:24 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I don&apos;t know what conditions where you seen this shell splitting problem so I don&apos;t know how to fix this problem without breaking what the fix was originally trying to accomplish.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This change was made long enough ago now that I don&apos;t recall the specific case, but there most certainly would have been one for me to go through the rigmarole that that code goes through.&lt;/p&gt;

&lt;p&gt;Just reading the comment though, I could imagine quite easily where $CONFIGURE_ARGS could have a quoted string in it.  Your description even provides a case of a quoted string:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;./configure --prefix=&quot;special path&quot;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;All of that said, passing parameters to the rpm build through subst&apos;d configure arguments is just wrong and should not be further depended on/used.  Optional parameters should be provided through rpm macros --defined on the rpmbuild command line.&lt;/p&gt;</comment>
                            <comment id="26796" author="simmonsja" created="Wed, 18 Jan 2012 09:03:17 +0000"  >&lt;p&gt;Using rpmbuild --defined=&quot;prefix=/special/path&quot; lustre.spec will not work since the lustre spec file hard codes all the paths. In the spec file you have &lt;/p&gt;

&lt;p&gt;%attr(-, root, root) %{_libdir}/liblustreapi.a&lt;/p&gt;

&lt;p&gt;which is proper but you also have &lt;/p&gt;

&lt;p&gt;%attr(-, root, root) /usr/bin/*&lt;/p&gt;

&lt;p&gt;which is hard coded.&lt;/p&gt;
</comment>
                            <comment id="27881" author="simmonsja" created="Fri, 3 Feb 2012 12:12:48 +0000"  >&lt;p&gt;Sorry I have been busy with other bugs. Yes I agree the proper approach is to pass the configure variables via the RPMARGS. Right now I have  RPMARGS=&quot;$$RPMARGS --define &apos;_prefix ${prefix}&apos; --define &apos;_mandir ${mandir}&apos; --define &apos;_datadir ${datadir}&apos; --define &apos;_sysconfdir ${sysconfdir}&apos;&quot;; in the autoMakefile.am.toplevel. In fact I was thing of a creating a for loop that appends a --define for each configure_args. We just have to filter the options using a string out. Just running this idea pass you first.&lt;/p&gt;</comment>
                            <comment id="28210" author="brian" created="Wed, 8 Feb 2012 18:03:47 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Sorry I have been busy with other bugs.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Heh.  I understand completely.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Yes I agree the proper approach is to pass the configure variables via the RPMARGS. Right now I have RPMARGS=&quot;$$RPMARGS --define &apos;_prefix ${prefix}&apos; --define &apos;_mandir ${mandir}&apos; --define &apos;_datadir ${datadir}&apos; --define &apos;_sysconfdir ${sysconfdir}&apos;&quot;; in the autoMakefile.am.toplevel.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;So you want to override the vendor&apos;s defaults for those?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In fact I was thing of a creating a for loop that appends a --define for each configure_args. We just have to filter the options using a string out. Just running this idea pass you first.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, I like the sounds of this idea.  Of course you have to make a corresponding change to the lustre spec file to receive the --defined arguments.  But this is how spec files should work.  We just happen to have a lot of arguments we can give configure.&lt;/p&gt;

&lt;p&gt;Most if not all macros that you can pass in with --define should have reasonable default such that you are not &lt;b&gt;required&lt;/b&gt; to set any with rpmbuild.  Most in fact would probably already have reasonable defaults built into configure so anything empty should just be unspecified to configure and that would be your reasonable default.  No point in duplicating configures built in reasonable defaults to the rpm spec also.&lt;/p&gt;</comment>
                            <comment id="28891" author="simmonsja" created="Thu, 16 Feb 2012 10:03:10 +0000"  >&lt;p&gt;I just pushed a patch that does it the right way. It&apos;s mostly complete except for the /etc, man and doc directory don&apos;t respect the prefix but its a good start.&lt;/p&gt;</comment>
                            <comment id="30743" author="morrone" created="Thu, 8 Mar 2012 22:22:52 +0000"  >&lt;p&gt;I am not a fan of looping over %configure_args in the spec file.  I am already not fond of the level of dependency that the spec file code has on the contents of %configure_args.  The code is really pretty fragile, and makes using lustre src rpms extremely difficult.&lt;/p&gt;

&lt;p&gt;I am starting to gather ideas for how the spec file should work over in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1199&quot; title=&quot;lustre build system overhaul&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1199&quot;&gt;&lt;del&gt;LU-1199&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="30767" author="simmonsja" created="Fri, 9 Mar 2012 12:58:11 +0000"  >&lt;p&gt;Are you suggesting that I close this bug and just use &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1199&quot; title=&quot;lustre build system overhaul&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1199&quot;&gt;&lt;del&gt;LU-1199&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="30769" author="simmonsja" created="Fri, 9 Mar 2012 13:06:26 +0000"  >&lt;p&gt;As a side not I was moving over to passing in all the configure args in the autoMakefile.toplevel.&lt;br/&gt;
So in theory see yes the spec file can be configure agnostic. Just didn&apos;t rock the boat with to many changes in the hopes of it going into main line very soon. Now that the window is closed I think we can move in a more proper direction. BTW that is lot of options to handle :-/&lt;/p&gt;</comment>
                            <comment id="30770" author="morrone" created="Fri, 9 Mar 2012 14:08:44 +0000"  >&lt;p&gt;I am not necessarily suggesting that you close this bug.  I just wanted you to be aware of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1199&quot; title=&quot;lustre build system overhaul&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1199&quot;&gt;&lt;del&gt;LU-1199&lt;/del&gt;&lt;/a&gt; so we could start talking and avoid stepping on each other&apos;s toes.&lt;/p&gt;

&lt;p&gt;I am not suggesting that the spec file learn all of lustre&apos;s configure options.  The spec file only needs to know about the options that require the spec file to change its behavior.  All other configure options can still be specified through %configure_args, and the spec file will simply pass those options through to configure without inspecting or changing them.&lt;/p&gt;</comment>
                            <comment id="30810" author="simmonsja" created="Mon, 12 Mar 2012 10:47:27 +0000"  >&lt;p&gt;The reason I asked about closing this bug is that the approach taken with the spec files you posted links to is a much better than what I&apos;m doing. You specs files are nice and clean &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; The patch for this bug coudl be the start of the work for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1199&quot; title=&quot;lustre build system overhaul&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1199&quot;&gt;&lt;del&gt;LU-1199&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="34528" author="simmonsja" created="Wed, 11 Apr 2012 10:48:21 +0000"  >&lt;p&gt;Peter you can close this bug. I&apos;m going to move this work over to &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1199&quot; title=&quot;lustre build system overhaul&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1199&quot;&gt;&lt;del&gt;LU-1199&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="34529" author="pjones" created="Wed, 11 Apr 2012 10:51:07 +0000"  >&lt;p&gt;ok thanks James&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|hzw01r:</customfieldvalue>

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