<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Knowledge Base (Posts about macros)</title><link>https://bgstack15.ddns.net/blog/</link><description></description><atom:link href="https://bgstack15.ddns.net/blog/categories/macros.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2022 &lt;a href="mailto:bgstack15@gmail.com"&gt;bgstack15&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
style="border-width:0; margin-bottom:12px;"
src="https://bgstack15.ddns.net/.images/l_by-sa_4.0_88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Sun, 27 Feb 2022 04:05:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Using date in rpm macro</title><link>https://bgstack15.ddns.net/blog/posts/2020/10/12/using-date-in-rpm-macro/</link><dc:creator>bgstack15</dc:creator><description>&lt;p&gt;When you are building an rpm, and you want to use the date as a variable, or
macro, you might already know about the percent-parenthesis syntax.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;%define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;use_date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"+%F"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;What took me a long time to remember is that you have to use percent percent
when you want a literal percent sign.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;%define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;use_date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"+%%Y%%m%%d"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Also, you cannot use dashes (2020-09-29) in a version of a package. Use the
&lt;strong&gt;%%Y%%m%%d&lt;/strong&gt; for the 20200929 format! Source:
https://rpm.org/user_doc/macros.html&lt;/p&gt;</description><category>macros</category><category>rpmbuild</category><guid>https://bgstack15.ddns.net/blog/posts/2020/10/12/using-date-in-rpm-macro/</guid><pubDate>Mon, 12 Oct 2020 12:44:25 GMT</pubDate></item><item><title>Rpm spec macros and variables</title><link>https://bgstack15.ddns.net/blog/posts/2018/04/27/rpm-spec-macros-and-variables/</link><dc:creator>bgstack15</dc:creator><description>&lt;p&gt;A nice place to read about the macros in rpm specs is
&lt;a href="https://fedoraproject.org/wiki/Packaging:RPMMacros"&gt;https://fedoraproject.org/wiki/Packaging:RPMMacros&lt;/a&gt;. You can also run a
command similar to &lt;strong&gt;rpm -E '%{dist}'&lt;/strong&gt; to see a variable's definition. To use
your own variable in a spec, you can use a %define.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;%define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;myvar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3.1415926&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To get even fancier, you can do shell commands in a definition.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nf"&gt;%define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;version_num&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"%( echo %version | tr -d '\.' )"&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This takes %{version} which could be 4.51 and sets a variable to "451" for
which I had a use.&lt;/p&gt;</description><category>macros</category><category>rpm</category><category>spec</category><guid>https://bgstack15.ddns.net/blog/posts/2018/04/27/rpm-spec-macros-and-variables/</guid><pubDate>Fri, 27 Apr 2018 12:53:36 GMT</pubDate></item></channel></rss>