About making noarch package arch specific, when contents differ.

Paulo César Pereira de Andrade paulo.cesar.pereira.de.andrade at gmail.com
Sun Jul 26 15:50:46 UTC 2015


2015-07-26 12:20 GMT-03:00 Sérgio Basto <sergio at serjux.com>:
>
>
> On Dom, 2015-07-26 at 11:05 -0300, Paulo César Pereira de Andrade wrote:
>> I had this build failure:
>>
>> Package:    sagemath-6.5-7.fc22
>> Status:     failed
>> Built by:   pcpa
>> ID:         672175
>> Started:    Sat, 25 Jul 2015 22:52:10 UTC
>> Finished:   Sun, 26 Jul 2015 07:57:28 UTC
>>
>> Closed tasks:
>> -------------
>> Task 10480570 on arm04-builder10.arm.fedoraproject.org
>> Task Type: build (noarch)
>> Link: https://koji.fedoraproject.org/koji/taskinfo?taskID=10480570
>>
>> mismatch when analyzing sagemath-doc-en-6.5-7.fc22.noarch.rpm, rpmdiff
>> output was:
>> error: cannot open Packages index using db5 - Permission denied (13)
>> error: cannot open Packages database in /var/lib/rpm
>> error: cannot open Packages database in /var/lib/rpm
>> added       /usr/share/doc/sagemath/output/html/en/reference/hecke
>> [...]
>>
>> The interesting part, is that the above build generated
>> packages, but ended up with failed state.
>> After that, I checked contents of the armv7hl and x86_64
>> trees, and noticed that they are, indeed not identical.
>> The way documentation is generated with sphinx, should
>> be part of the cause (when it pickle/unpicke python states, etc),
>> and sometimes it even adds the location of a file to the docs,
>> e.g. telling where source is located, causes diffs, from
>> /usr/lib/python2.7/... vs /usr/lib64/python2.7/...
>
> I suspect package is using %{_libdir} and libdir can't be used in noarch
> packages. %{_libdir} expands to /usr/lib on arm and /usr/lib64/ on
> x86_64. This is a general problem when we try translate Debian packages
> to Fedora, I don't have time now to explain better but we had some
> topics about related subjects in Packaging mailing list ...
>
> Python also have different scriptlets for arch and noarch packages. On
> x86_64 systems, we can find some noarch packages in /usr/lib/python2.7/
> and python arched in /usr/lib64/python2.7/ .

  A good share of the diffs is documentation is printing addresses of
objects, at the time the documentation was generated, for example:

---8<---
diff -rNu armv7hl/usr/share/doc/sagemath/output/html/en/reference/calculus/sage/gsl/dft.html
x86_64/usr/share/doc/sagemath/output/html/en/reference/calculus/sage/gsl/dft.html
--- armv7hl/usr/share/doc/sagemath/output/html/en/reference/calculus/sage/gsl/dft.html
   2015-07-26 12:25:01.039419016 -0300
+++ x86_64/usr/share/doc/sagemath/output/html/en/reference/calculus/sage/gsl/dft.html
   2015-07-26 12:25:06.410419222 -0300
@@ -226,7 +226,7 @@

 <dl class="method">
 <dt id="sage.gsl.dft.IndexedSequence.dft">
-<tt class="descname">dft</tt><big>(</big><em>chi=&lt;function
&lt;lambda&gt; at 0xac336d70&gt;</em><big>)</big><a class="headerlink"
href="#sage.gsl.dft.IndexedSequence.dft" title="Permalink to this
definition">¶</a></dt>
+<tt class="descname">dft</tt><big>(</big><em>chi=&lt;function
&lt;lambda&gt; at 0x7f27a03f4140&gt;</em><big>)</big><a
class="headerlink" href="#sage.gsl.dft.IndexedSequence.dft"
title="Permalink to this definition">¶</a></dt>
 <dd><p>A discrete Fourier transform &#8220;over <img class="math"
src="../../_images/math/7bab5d1f8fefbcece570be83647d253afa56e0df.png"
alt="\QQ"/>&#8221; using exact
 <img class="math"
src="../../_images/math/9373b89a1028693ea48d96bef05ec06f42c4ba41.png"
alt="N"/>-th roots of unity.</p>
 <p>EXAMPLES:</p>
---8<---
Example of the above, "live":
http://doc.sagemath.org/html/en/reference/calculus/sage/gsl/dft.html#sage.gsl.dft.IndexedSequence.dft

About %{_libdir}, there are some in this pattern:
---8<---
diff -rNu armv7hl/usr/share/doc/sagemath/output/html/en/reference/todolist.html
x86_64/usr/share/doc/sagemath/output/html/en/reference/todolist.html
--- armv7hl/usr/share/doc/sagemath/output/html/en/reference/todolist.html
   2015-07-26 12:25:03.271419101 -0300
+++ x86_64/usr/share/doc/sagemath/output/html/en/reference/todolist.html
   2015-07-26 12:25:08.671419308 -0300
@@ -83,36 +83,36 @@
 <p class="last">Deprecate this in favor of a method called <img
class="math" src="_images/math/107b545f3b4d727d47ab3a406ddd5b3a92cd2fda.png"
alt="center()"/> once
 subalgebras are properly implemented in Sage.</p>
 </div>
-<p class="todo-source">(The <a class="reference internal"
href="algebras/sage/algebras/clifford_algebra.html#index-0"><em>original
entry</em></a> is located in
/usr/lib/python2.7/site-packages/sage/algebras/clifford_algebra.py:docstring
of sage.algebras.clifford_algebra.CliffordAlgebra.center_basis, line
12.)</p>
+<p class="todo-source">(The <a class="reference internal"
href="algebras/sage/algebras/clifford_algebra.html#index-0"><em>original
entry</em></a> is located in
/usr/lib64/python2.7/site-packages/sage/algebras/clifford_algebra.py:docstring
of sage.algebras.clifford_algebra.CliffordAlgebra.center_basis, line
12.)</p>
---8<---

  Others are in some generated js, after searching the first
difference, it looks like this,
diff at char 255:
armv7hl:
Search.setIndex({envversion:42,terms:{represent:[1,2],all:[5,1,3,6,8,12,13],x3y:13,partial:0,sch:3,joyner:14,illustr:[0,2,4,6,7,8,15],skip:9,lfsr_sequenc:9,hamburg:14,roe:7,month:3,'_k1':0,plot_list:15,short_weierstrass_model:10,'_k2':0,ellipt:13,legal:3,edu:3,follow:
x86_64:
Search.setIndex({envversion:42,terms:{represent:[1,2],all:[5,1,3,6,8,12,13],x3y:13,partial:0,sch:3,joyner:14,illustr:[0,2,4,6,7,8,15],skip:9,lfsr_sequenc:9,hamburg:14,roe:7,month:3,'_k1':0,plot_list:15,short_weierstrass_model:10,'_k2':0,ellipt:13,legal:3,classic:12,edu:3,follow

>> Should I make the doc packages arch specific?
>>
>> Thanks,
>> Paulo
>
> --
> Sérgio M. B.

Thanks,
Paulo


More information about the devel mailing list