Minor issues in mpfr and mpc
- From: "Patrick 'P. J.' McDermott" <pjm АТ nac DОТ net>
- To: Warren McDonald <wmickeyd АТ gmail DОТ com>
- Cc: proteanos-dev АТ lists DОТ proteanos DОТ com
- Date: Tue, 15 Oct 2013 21:25:12 -0400
- Message-id: <525DEAF8 DОТ 9040206 АТ nac DОТ net>
Hi Warren,
Following are a few minor issues I've found in the mpfr and mpc source
packages.
Let me know (and send me a public SSH key) if you want Git repositories
for these packages. Otherwise, feel free to send me (off-list) updated
source .opk files (generated with `opkbuild -S`) for me to upload to the
temporary packages area of the files site [1][2].
[1]: http://files.proteanos.com/pub/pkg/
[2]: ftp://files.proteanos.com/pub/pkg/
Build dependencies
------------------
The mpfr source package needs to build-depend on libgmp-dev (the
upstream build system and source code try to find and include the header
file that libgmp-dev provides).
Similarly, mpc needs to build-depend on libmpfr-dev and libgmp-dev.
Run-time dependencies
---------------------
The libmpfr.4 binary package needs to depend on libgmp.10, as noted in
the library's DT_NEEDED entries:
$ readelf -d tmp/dest/usr/lib/core-linux-eglibc/libmpfr.so.4.1.1 | grep -F NEEDED
0x0000000000000001 (NEEDED) Shared library: [libgmp.so.10]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]
Similarly, libmpc.3 should needs to on libmpfr.4 and libgmp.10:
$ readelf -d tmp/libmpc.3.data/usr/lib/core-linux-eglibc/libmpc.so.3.0.0 | grep -F NEEDED
0x0000000000000001 (NEEDED) Shared library: [libmpfr.so.4]
0x0000000000000001 (NEEDED) Shared library: [libgmp.so.10]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
Installed files
---------------
libmpfr-dev.pkg/files refers to /usr/lib/*/pkgconfig, but this doesn't
match any files and isn't needed. Similarly, libmpc-doc.pkg/files
mentions /usr/share/man/man1, but this doesn't match any files.
(Including these patterns doesn't cause any problems; they just has no
effect.)
Likewise for libmpc-dev.pkg/files and libmpc-doc.pkg/files.
oh-installfiles warns that the file /usr/share/info/mpfr.info isn't
installed into any package. It should be provided by libmpfr-doc (which
currently provides no files):
$ opkbuild -b -c -T install
[...]
oh-installfiles
oh-installfiles: Installing files for package "libmpfr-dev"...
oh-installfiles: Installing files for package "libmpfr-doc"...
oh-installfiles: Installing files for package "libmpfr.4"...
oh-installfiles: Warning: Some files have not been installed into packages
$ find tmp/dest -type f -a -exec ls -Fd '{}' ';' | sed 's|^tmp/[^/]*||'
/usr/share/info/mpfr.info
/usr/share/info/dir
$ find tmp/libmpfr-doc.data -type f -a -exec ls -Fd '{}' ';' | sed 's|^tmp/[^/]*||'
[no output]
Likewise for /usr/share/info/mpc.info and libmpc-doc.
In both cases, /usr/share/info/dir should be removed. See other
packages for examples [3][4].
[3]: http://git.proteanos.com/pkg/libunistring.git/tree/build
[4]: http://git.proteanos.com/pkg/m4.git/tree/build
Control fields
--------------
mpfr has a substvars that consists only of two newline characters,
defining no substitution variables. ob-gencontrol and ob-genchanges
warn about this:
$ opkbuild -b -c
[...]
ob-gencontrol: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
ob-gencontrol: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
ob-gencontrol: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
ob-genchanges: Generating "mpfr_3.1.1-1_core-linux-eglibc_dev.changes"...
ob-genchanges: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
ob-genchanges: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
ob-genchanges: Warning: /home/pj/distro/pkg/warren/mpfr_3.1.1-1/substvars(l1): empty line
Also, the extended descriptions of mpfr's binary packages are empty (the
Description fields in *.pkg/control have only the one-line summary).
There should be at least a short paragraph or so here to describe the
packages.
I suppose you meant to define a substitution variable like
Common-Description and use it in *.pkg/control (as you did in mpc).
New upstream versions
---------------------
There is a new upstream version (3.1.2) of MPFR available [5]; you may
want to update the ProteanOS package. In particular, this release fixes
a possible security vulnerability in the tar archive [6][7].
[5]: http://www.mpfr.org/mpfr-current/
[6]: http://www.mpfr.org/mpfr-current/#changes
[7]: https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html
Thanks,
--
Patrick "P. J." McDermott
http://www.pehjota.net/
http://www.pehjota.net/contact.html