2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content="This status entry is to hold a log of the issues and resolutions for getting the Bluecat build process from the ancient RH 6.1 to the a little less ancient RH 8.0. Fun with eval, echo and new shell Bug...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>Bluecat RH 8.0 port - Status</title>
8 <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9 <link rel="canonical" href="http://defaria.com/blogs/Status/2005/04/bluecat-rh-80-p.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
13 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14 <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2005/04/hybrid-os-1.html" title="Hybrid OS">
20 <link rel="next" href="http://defaria.com/blogs/Status/2005/04/los178-300.html" title="LOS178 3.0.0">
21 <!-- Open Graph Protocol -->
22 <meta property="og:type" content="article">
23 <meta property="og:locale" content="en-us">
24 <meta property="og:title" content="Bluecat RH 8.0 port">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2005/04/bluecat-rh-80-p.html">
26 <meta property="og:description" content="This status entry is to hold a log of the issues and resolutions for getting the Bluecat build process from the ancient RH 6.1 to the a little less ancient RH 8.0. Fun with eval, echo and new shell Bug...">
27 <meta property="og:site_name" content="Status">
28 <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
30 <meta itemprop="description" content="This status entry is to hold a log of the issues and resolutions for getting the Bluecat build process from the ancient RH 6.1 to the a little less ancient RH 8.0. Fun with eval, echo and new shell Bug...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2005/04/bluecat-rh-80-p.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
62 <div id="content-inner">
63 <ul class="breadcrumb breadcrumb-list">
64 <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65 <li class="breadcrumb-list-item">Bluecat RH 8.0 port</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1604" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">Bluecat RH 8.0 port</h2>
71 <footer class="asset-meta">
72 <ul class="asset-meta-list">
73 <li class="asset-meta-list-item">Posted on <time datetime="2005-04-07T10:39:43-08:00" itemprop="datePublished">April 7, 2005</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
84 <p>This status entry is to hold a log of the issues and resolutions for getting the Bluecat build process from the ancient RH 6.1 to the <i>a little less ancient</i> RH 8.0.</p>
87 <li>Fun with eval, echo and new shell</li>
89 <li>Bug in rpm configure</li>
91 <li>Static vs. Shared</li>
93 <h3>Fun with eval, echo and new shell</h3>
95 <p>One of the things that the Bluecat do_it script does is to define the series of "steps" that need to be performed in terms of command lines in variables. Later on the $BUILD_STEP is evaluated to determine which set of commands need to be done as follows:</p>
97 <div class="code"><pre>
98 echo "---- Step $BUILD_STEP started at `date` ----"
99 su $BUILD_CMD_OWNER -c "mkdir -p $LOGS_PREFIX/step${BUILD_STEP}"
100 cmd=`eval echo $"STEP${BUILD_STEP}_CMD"`
101 su $BUILD_CMD_OWNER -c "$cmd $*"
104 <p>Effectively the name of the environment variable holding the proper command(s) for the step is composed with the echo portion. The eval statement is used to "evaluate" that environment variable thus storing the string of commands into the environment variable cmd. This works well in past versions of the OS but it fails in RH 8.0. First here's the behavior on RH 6.1:</p>
106 <div class="code"><pre>
107 <font color="blue"><b>RH6.1:</b></font><u>export STEP1_CMD="ls /tmp"</u>
108 <font color="blue"><b>RH6.1:</b></font><u>export BUILD_STEP=1</u>
109 <font color="blue"><b>RH6.1:</b></font><u>echo $"STEP${BUILD_STEP}_CMD"</u>
113 <p>However hears the same commands on RH8.0:</p>
115 <div class="code"><pre>
116 <font color="red"><b>RH8.0:</b></font><u>export STEP1_CMD="ls /tmp"</u>
117 <font color="red"><b>RH8.0:</b></font><u>export BUILD_STEP=1</u>
118 <font color="red"><b>RH8.0:</b></font><u>echo $"STEP${BUILD_STEP}_CMD"</u>
122 <p>As you can see the result is missing a $. Prepending a leading \ before the $ fixes this. Adding in the eval portion also works:</p>
124 <div class="code"><pre>
125 <font color="red"><b>RH8.0:</b></font><u>eval echo \$"STEP${BUILD_STEP}_CMD"</u>
129 <p>However when this is assigned to another environment variable (i.e. cmd) the result is not correct:</p>
131 <div class="code"><pre>
132 <font color="red"><b>RH8.0:</b></font><u>cmd=`eval echo \$"STEP${BUILD_STEP}_CMD"`</u>
133 <font color="red"><b>RH8.0:</b></font><u>echo $cmd</u>
137 <p>Subsituting the syntax of $(<command>) for `<command` however does work:</p>
139 <div class="code"><pre>
140 <font color="red"><b>RH8.0:</b></font><u>cmd=$(eval echo \$"STEP${BUILD_STEP}_CMD")</u>
141 <font color="red"><b>RH8.0:</b></font><u>echo $cmd</u>
145 <p>Note that the shell (bash) has been majorly updated for RH8.0:</p>
147 <div class="code"><pre>
148 <font color="blue"><b>RH6.1:</b></font><u>bash -version</u>
149 GNU bash, version 1.14.7(1)
154 <div class="code"><pre>
155 <font color="red"><b>RH8.0:</b></font><u>bash -version</u>
156 GNU bash, version 2.05b.0(1)-release (i686-pc-linux-gnu)
157 Copyright (C) 2002 Free Software Foundation, Inc.
160 <p>Please note that this new syntax also works flawlessly on the older RH 6.1.</p>
162 <h3>Bug in rpm configure</h3>
164 <p>When trying to build Bluecat on RH 8.0 and running mktools (to build the local gnutools) I get the following:</p>
166 <div class="code"><pre>
167 [int@europa make]$ autoreconf -f -i
168 autoreconf: `aclocal.m4' is updated
169 Makefile.am: installing `./depcomp'
170 WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
171 WARNING: and `config.h.top', to define templates for `config.h.in'
172 WARNING: is deprecated and discouraged.
174 WARNING: Using the third argument of `AC_DEFINE' and
175 WARNING: `AC_DEFINE_UNQUOTED' allows to define a template without
176 WARNING: `acconfig.h':
178 WARNING: AC_DEFINE([NEED_MAIN], 1,
179 WARNING: [Define if a function `main' is needed.])
181 WARNING: More sophisticated templates can also be produced, see the
182 WARNING: documentation.
183 autoheader-2.53: `config.h.in' is updated
186 <p>Further, after running configure I get the following odd file in /usr/local/bluecat/eng/bluecat/make/.deps: remote-$(REMOTE).Po which causes the make to fail:</p>
188 <div class="code"><pre>
189 [int@europa make]$ make
190 Makefile:329: .deps/remote-stub.Po: No such file or directory
191 make: *** No rule to make target `.deps/remote-stub.Po'. Stop.
194 <p>Renaming .deps/remote-$(REMOTE).Po -> .deps/remote-stub.Po allows the make to proceed.</p>
196 <h3>Static vs. Shared - Cannot find -lnss_dns</h3>
198 <p>During the first real build step, step 2, the build fails when trying to build rpm. ld is unable to find the library nss_dns. Initial investigation shows that there is a nss_dns libs under /usr/lib as .so files but there is no .a file on RH 8.0. There is a .a file on RH 6.1 in /usr/lib. Apparently RH 8.0 no longer offers archive libraries for this. The solution to this problem is to pass -shared to gcc.</p>
200 <p>The specific gcc command line is:</p>
202 <div class="code"><pre>
203 <font color="blue"><b>int@europa tools:</b></font><u>pwd</u>
204 /var/tmp/rpm-4.2/tools
205 <font color="blue"><b>int@europa tools:</b></font><u>gcc -Wl,--verbose -O2 -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts -o rpmgraph <font color="red"><b>-static</b></font> rpmgraph.o ../lib/.libs/librpm.a /var/tmp/rpm-4.2/rpmdb/.libs/librpmdb.a -L/var/tmp/rpm-4.2/zlib -L/usr/local/lib /var/tmp/rpm-4.2/rpmio/.libs/librpmio.a /var/tmp/rpm-4.2/popt/.libs/libpopt.a ../beecrypt/.libs/libbeecrypt.a -lrt -lpthread -lc -lnss_dns -lnss_files -lresolv</u>
207 (/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libc.a)truncate64.o
208 (/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libc.a)truncate.o
209 attempt to open /var/tmp/rpm-4.2/zlib/libnss_dns.a failed
210 attempt to open /usr/local/lib/libnss_dns.a failed
211 attempt to open /usr/lib/gcc-lib/i386-redhat-linux/3.2/libnss_dns.a failed
212 attempt to open /usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libnss_dns.a failed
213 attempt to open /usr/i386-redhat-linux/lib/libnss_dns.a failed
214 attempt to open /usr/lib/libnss_dns.a failed
215 attempt to open /usr/local/lib/libnss_dns.a failed
216 attempt to open /lib/libnss_dns.a failed
217 collect2: ld returned 1 exit status
220 <p>This is probably due to the -static above. Removing -static fixes this. The question is: Is it OK to remove -static? Second question is how?</p>
222 <nav class="page-navigation entry-navigation pagination content-nav">
223 <ul class="page-navigation-list">
225 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2005/04/hybrid-os-1.html" title="Hybrid OS">Previous entry</a></li>
228 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2005/04/los178-300.html" title="LOS178 3.0.0">Next entry</a></li>
233 <aside id="zenback" class="zenback feedback">
234 Please paste Zenback script code here.
241 <aside class="widgets related" role="complementary">
242 <nav class="widget-search widget">
243 <div class="widget-content">
244 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
246 <input type="text" name="search" value="" placeholder="Search...">
248 <input type="hidden" name="IncludeBlogs" value="8">
250 <input type="hidden" name="limit" value="20">
251 <button type="submit" name="button">
252 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
258 <nav class="widget-archive-category widget">
259 <h3 class="widget-header">Categories</h3>
260 <div class="widget-content">
263 <ul class="widget-list">
266 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
274 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
282 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
290 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
298 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
306 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
314 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
322 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
330 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
338 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
346 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
354 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
366 <nav class="widget-archive-dropdown widget">
367 <h3 class="widget-header">Archives</h3>
368 <div class="widget-content">
370 <option>Select a Month...</option>
372 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
376 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
380 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
384 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
388 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
392 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
396 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
400 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
404 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
408 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
412 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
416 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
420 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
424 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
428 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
432 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
436 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
440 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
444 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
448 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
452 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
456 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
460 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
464 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
468 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
472 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
476 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
480 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
484 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
488 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
492 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
496 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
500 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
504 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
508 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
512 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
516 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
520 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
524 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
528 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
532 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
536 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
540 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
544 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
548 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
552 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
556 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
560 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
564 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
568 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
572 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
576 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
580 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
584 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
588 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
592 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
596 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
600 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
604 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
608 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
612 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
616 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
620 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
624 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
628 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
632 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
636 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
640 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
644 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
648 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
652 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
656 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
664 <div class="widget-syndication widget section">
665 <div class="widget-content">
666 <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
674 <footer id="footer" role="contentinfo">
675 <div id="footer-inner">
676 <div id="footer-content">
677 <nav role="navigation">
679 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
685 <p class="license">© Copyright 2016.</p>
686 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
692 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
693 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>