Hello, a new cfitsio (3.330) is going to land tomorrow Monday in rawhide. All the packages depending on cfitsio should be rebuilt.
Repoquery says that the affected packages are:
CCfits-0:2.4-6.fc19.src HippoDraw-0:1.21.3-6.fc19.src cpl-0:6.2-1.fc19.src esorex-0:3.9.0-4.fc19.src gdal-0:1.9.1-18.fc19.src healpix-0:2.13a-8.fc19.src hpic-0:0.53.1-2.fc19.src indi-apogee-0:1.0-10.fc19.src kst-0:2.0.6-2.fc19.src libindi-0:0.9.6-2.fc19.src nightview-0:0.3.3-7.fc18.src perl-Astro-FITS-CFITSIO-0:1.08-4.fc19.src root-0:5.34.05-1.fc19.src siril-0:0.8-13.fc19.src skyviewer-0:1.0.0-8.fc17.src ufraw-0:0.19-1.fc19.src wcslib-0:4.13.4-3.fc19.src
Regards, Sergio
On Sun, 10 Mar 2013 23:15:44 +0100, Sergio Pascual wrote:
Hello, a new cfitsio (3.330) is going to land tomorrow Monday in rawhide. All the packages depending on cfitsio should be rebuilt.
Why is that? And is it a "should" or a "must"?
$ rpmsodiff cfitsio-3.300-2.fc18.x86_64.rpm cfitsio-3.310-3.fc19.x86_64.rpm common sonames: libcfitsio.so.0 /usr/lib64/libcfitsio.so.0 /usr/lib64/libcfitsio.so.0
--- cfitsio-3.300-2.fc18/libcfitsio.so.0 2013-03-10 23:19:02.447829152 +0100 +++ cfitsio-3.310-3.fc19/libcfitsio.so.0 2013-03-10 23:19:09.504433421 +0100 @@ -44,2 +44,3 @@ GZBUFSIZE D +_edata D _fini T @@ -519,2 +520,3 @@ ffifile T +ffifile2 T ffiimg T
2 symbols added D _edata T ffifile2
# template for libcfitsio.so.0 version script CFITSIO_3.310 { global: _edata; ffifile2; };
vim:ft=diff
Hello, a new cfitsio (3.330) is going to land tomorrow Monday in rawhide. All the packages depending on cfitsio should be rebuilt.
Why is that? And is it a "should" or a "must"?
The shared lib 3.330 also only adds two more symbols compared with 3.310.
Which repoquery has been used to list dependencies? This one finds a few more:
# repoquery --whatrequires cfitsio -s|uniq|grep -v cfitsio CCfits-2.4-6.fc19.src.rpm HippoDraw-1.21.3-6.fc19.src.rpm healpix-2.13a-8.fc19.src.rpm cpl-6.2-1.fc19.src.rpm dmapd-0.0.50-5.fc19.src.rpm esorex-3.9.0-4.fc19.src.rpm gdal-1.9.1-18.fc19.src.rpm healpix-2.13a-8.fc19.src.rpm hpic-0.53.1-2.fc19.src.rpm indi-apogee-1.0-10.fc19.src.rpm kst-2.0.6-2.fc19.src.rpm kstars-4.10.1-1.fc19.src.rpm libindi-0.9.6-2.fc19.src.rpm nightview-0.3.3-7.fc18.src.rpm nip2-7.32.0-1.fc19.src.rpm perl-Astro-FITS-CFITSIO-1.08-4.fc19.src.rpm root-5.34.05-1.fc19.src.rpm siril-0.8-13.fc19.src.rpm skyviewer-1.0.0-8.fc17.src.rpm ufraw-0.19-1.fc19.src.rpm vips-7.32.0-1.fc19.src.rpm wcslib-4.13.4-3.fc19.src.rpm
Hi, I did
repoquery --repofrompath=this, http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPM... --archlist=src --whatrequires cfitsio-devel
2013/3/10 Michael Schwendt mschwendt@gmail.com
Hello, a new cfitsio (3.330) is going to land tomorrow Monday in
rawhide.
All the packages depending on cfitsio should be rebuilt.
Why is that? And is it a "should" or a "must"?
The shared lib 3.330 also only adds two more symbols compared with 3.310.
Which repoquery has been used to list dependencies? This one finds a few more:
# repoquery --whatrequires cfitsio -s|uniq|grep -v cfitsio CCfits-2.4-6.fc19.src.rpm HippoDraw-1.21.3-6.fc19.src.rpm healpix-2.13a-8.fc19.src.rpm cpl-6.2-1.fc19.src.rpm dmapd-0.0.50-5.fc19.src.rpm esorex-3.9.0-4.fc19.src.rpm gdal-1.9.1-18.fc19.src.rpm healpix-2.13a-8.fc19.src.rpm hpic-0.53.1-2.fc19.src.rpm indi-apogee-1.0-10.fc19.src.rpm kst-2.0.6-2.fc19.src.rpm kstars-4.10.1-1.fc19.src.rpm libindi-0.9.6-2.fc19.src.rpm nightview-0.3.3-7.fc18.src.rpm nip2-7.32.0-1.fc19.src.rpm perl-Astro-FITS-CFITSIO-1.08-4.fc19.src.rpm root-5.34.05-1.fc19.src.rpm siril-0.8-13.fc19.src.rpm skyviewer-1.0.0-8.fc17.src.rpm ufraw-0.19-1.fc19.src.rpm vips-7.32.0-1.fc19.src.rpm wcslib-4.13.4-3.fc19.src.rpm -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel
On Mon, 11 Mar 2013 00:07:36 +0100, Sergio Pascual wrote:
Hi, I did
repoquery --repofrompath=this, http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPM... --archlist=src --whatrequires cfitsio-devel
Huh? You treat it like a static library. More in my reply to Kevin's reply elsewhere in this thread.
Hi,
cfitsio function fits_open_file checks at runtime if the version of cfistio used during compile is the same version used at runtime. If not, the program aborts. So every program linked with cfitsio must be recompiled.
And you are comparing 3.300 with 3.310. There are more changes between 3.300 and 3.330. More details here
https://bugzilla.redhat.com/show_bug.cgi?id=841363#c2
Best, Sergio
2013/3/10 Michael Schwendt mschwendt@gmail.com
On Sun, 10 Mar 2013 23:15:44 +0100, Sergio Pascual wrote:
Hello, a new cfitsio (3.330) is going to land tomorrow Monday in rawhide. All the packages depending on cfitsio should be rebuilt.
Why is that? And is it a "should" or a "must"?
$ rpmsodiff cfitsio-3.300-2.fc18.x86_64.rpm cfitsio-3.310-3.fc19.x86_64.rpm common sonames: libcfitsio.so.0 /usr/lib64/libcfitsio.so.0 /usr/lib64/libcfitsio.so.0
--- cfitsio-3.300-2.fc18/libcfitsio.so.0 2013-03-10 23:19:02.447829152 +0100 +++ cfitsio-3.310-3.fc19/libcfitsio.so.0 2013-03-10 23:19:09.504433421 +0100 @@ -44,2 +44,3 @@ GZBUFSIZE D +_edata D _fini T @@ -519,2 +520,3 @@ ffifile T +ffifile2 T ffiimg T
2 symbols added
D _edata T ffifile2
# template for libcfitsio.so.0 version script CFITSIO_3.310 { global: _edata; ffifile2; };
vim:ft=diff
devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel
Sergio Pascual wrote:
cfitsio function fits_open_file checks at runtime if the version of cfistio used during compile is the same version used at runtime. If not, the program aborts. So every program linked with cfitsio must be recompiled.
That's a totally broken versioning system, the soname needs to be bumped instead.
Kevin Kofler
On Mon, 11 Mar 2013 04:55:06 +0100, Kevin Kofler wrote:
Sergio Pascual wrote:
cfitsio function fits_open_file checks at runtime if the version of cfistio used during compile is the same version used at runtime. If not, the program aborts. So every program linked with cfitsio must be recompiled.
That's a totally broken versioning system, the soname needs to be bumped instead.
That soname is added by a patch in the Fedora package. :-/ Bad idea to begin with, if the library performs such a run-time check. A soname such as libcfitsio-%{version}.so.0 would have been a better idea. It would enforce rebuilds whenever the version changes, and due to lack of symbol versioning, it would also make the automatic soname dependency in (re)builds against updates of cfitsio more strict (since they might depend on added symbols).
The versioned soname seems a good idea. I will change the soname to libcfitsio-%{version}.so.0
2013/3/11 Michael Schwendt mschwendt@gmail.com
On Mon, 11 Mar 2013 04:55:06 +0100, Kevin Kofler wrote:
Sergio Pascual wrote:
cfitsio function fits_open_file checks at runtime if the version of cfistio used during compile is the same version used at runtime. If
not,
the program aborts. So every program linked with cfitsio must be recompiled.
That's a totally broken versioning system, the soname needs to be bumped instead.
That soname is added by a patch in the Fedora package. :-/ Bad idea to begin with, if the library performs such a run-time check. A soname such as libcfitsio-%{version}.so.0 would have been a better idea. It would enforce rebuilds whenever the version changes, and due to lack of symbol versioning, it would also make the automatic soname dependency in (re)builds against updates of cfitsio more strict (since they might depend on added symbols). -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel
On Mon, 11 Mar 2013 18:00:54 +0100, Kevin Kofler wrote:
Michael Schwendt wrote:
A soname such as libcfitsio-%{version}.so.0 would have been a better idea.
Why not libcfitsio.so.%{version}?
That would look more like ordinary (official) library versioning, such as
libcfitsio.so.3 -> libcfitsio.so.3.330
but without the .so.3 symlink. No strong feelings though.
On Mon, Mar 11, 2013 at 2:53 PM, Michael Schwendt mschwendt@gmail.com wrote:
On Mon, 11 Mar 2013 18:00:54 +0100, Kevin Kofler wrote:
Michael Schwendt wrote:
A soname such as libcfitsio-%{version}.so.0 would have been a better idea.
Why not libcfitsio.so.%{version}?
That would look more like ordinary (official) library versioning, such as
libcfitsio.so.3 -> libcfitsio.so.3.330
but without the .so.3 symlink. No strong feelings though.
Another option which I employ with the opencollada library is to use arbitrary soversioning. Upstream not only doesn't use library versions but doesn't use ANY versioning.
I started at 0.1 or something like that and when I build a new package I check compatibility with abi-compliance-checker. If it's not found to be compatible, I bump the soversion macro in the spec file before doing an official build.
Richard
On Mon, 11 Mar 2013 15:01:12 -0500, Richard Shaw wrote:
Another option which I employ with the opencollada library is to use arbitrary soversioning. Upstream not only doesn't use library versions but doesn't use ANY versioning.
I started at 0.1 or something like that and when I build a new package I check compatibility with abi-compliance-checker. If it's not found to be compatible, I bump the soversion macro in the spec file before doing an official build.
Sure, that's something that can help avoiding unnecessary rebuilds.
However, elsewhere in this thread, Sergio has mentioned that cfitsio contains a run-time check to enforce that an application was built with exactly the same headers as the library itself. Indeed it does that when opening files.
$ grep CFITSIO_VERSION * -R cfileio.c: if (version != CFITSIO_VERSION) cfileio.c: printf(" Version used to build the CFITSIO library = %f\n",CFITSIO_VERSION); fitsio.h:#define CFITSIO_VERSION 3.33 longnam.h:#define fits_open_file(A, B, C, D) ffopentest( CFITSIO_VERSION, A, B, C, D)