Menu

#5063 nco-4.7.0-1

Added_to_Fink
closed-accepted
5
2017-12-14
2017-11-09
No

This is an update to the latest stable verion of NCO upstream.
As per usual it creates version-dependent -dev and -shlibs packages next to NCO package for the executables. Strangely enough, patches outlined in DescPort still apply.

Minor changes since the previous version:
New version number
Obvious updates of checksums
Conflicts/replaces updated
Compiled and tested successfully on 10.13.1 with "fink -m build".

1 Attachments

Discussion

  • Hanspeter Niederstrasser

    • Group: Undergoing_Validation --> Awaiting_Update_from_Submitter
     
  • Hanspeter Niederstrasser

    Is there anything we can do to stop the propagation of ncoXXX-shlibs and ncoXXX-dev packages? For example, Ubuntu puts the dylib (versioned and unversioned) into the base package. They do kill the headers, which we don't.
    https://packages.ubuntu.com/artful/amd64/nco/filelist

     
  • Remko Scharroo

    Remko Scharroo - 2017-11-11

    Hi Hanspeter,
    I am also not happy with the proliferation of the ncoXXX-shlibs and ncoXXX-dev packages.
    I just continued what Alexander used to do before me. I think he was concerned about removing a dylib that people would have linked to outside of the nco package.
    Nco is not particularly clear about their backward compatibility of the dylib to older versions. That's probably why Alexander was cautious.
    In Ubuntu, I assume that the unversioned dylib is just a symbolic link (as we do). So if I upgrade nco, I kill the connection to the versioned dylib, and users may be faced with an incompatible version.
    However, as long WE (i.e. Fink) does not link to ncoXXX-shlibs in the first place (I don't think any package does), then why would be have these versioned shlibs?

    And since we are concerned that linking to the dylib may not even be appropriate outside of nco itself, because there is little information that suggests that the dylib is compatible within minor revisions, then it makes sense to go the way Ubuntu does, and have no nco-shlibs at all.
    In that case we should also not provide the headers either, as Ubuntu is also not doing.

    In conclusion, if you agree that there is no Fink dependency on any ncoXXX-shlibs, I suggest we stop creating ncoXXX-shlibs and ncoXXX-dev, not even create nco-shlibs nor nco-dev. We would only create nco, with the dylib embedded, and remove the headers altogether.

    If you agree, let me know, and I'll progress that way.

    Thanks!

     
  • Hanspeter Niederstrasser

    Since nothing seems to be using ncoXX-dev/shlibs, it's fine to take them out. Kill the headers, and move the versioned dylib to the main package (will need to Replaces the -shlibs packages though). If it has the ability to build a static lib, might want to build that instead, have the nco binary link against that, and then remove the .a library. This way there are no file collisions. Would still probably need to Conflicts/Replaces all the old -shlibs packages to keep them from being orphaned.

     
    • Alexander Hansen

      It definitely can build a static lib. Upstream assumes that Darwin can't build shared libraries, and so the current packaging actually patches against that in the PatchScript. The prior monolithic packaging for nco used to have the static library, but also headers.

       
  • Remko Scharroo

    Remko Scharroo - 2017-12-02

    Finally got to work on this again. I followed up what Hanspeter suggested, minus the building of a static library. The reason for this is that nco contains a number of executables, all linked against this library and that would result in a much larger package.
    So I kept the creation of /sw/lib/libnco-4.7.0-dylib, but removed libnco.dylib, libnco_c++....dylib and the whole include directory. There is thus no way a user can accidentally link against this library.
    I also kept the Conflict/Replaces to the older -dev and -shlibs packages.
    Hence, we now got rid of all the ncoXXX-dev and ncoXXX-shlibs packages.

    $ dpkg -L nco
    /.
    /sw
    /sw/bin
    /sw/bin/ncrename
    /sw/bin/ncwa
    /sw/bin/ncremap
    /sw/bin/ncatted
    /sw/bin/ncks
    /sw/bin/ncbo
    /sw/bin/ncpdq
    /sw/bin/ncra
    /sw/bin/ncflint
    /sw/bin/ncclimo
    /sw/bin/ncap2
    /sw/bin/ncecat
    /sw/bin/ncap
    /sw/lib
    /sw/lib/libnco-4.7.0.dylib
    /sw/share
    /sw/share/man
    /sw/share/man/man1
    /sw/share/man/man1/ncclimo.1
    /sw/share/man/man1/ncpdq.1
    /sw/share/man/man1/ncap2.1
    /sw/share/man/man1/ncbo.1
    /sw/share/man/man1/ncrename.1
    /sw/share/man/man1/ncecat.1
    /sw/share/man/man1/nco.1
    /sw/share/man/man1/ncremap.1
    /sw/share/man/man1/nces.1
    /sw/share/man/man1/ncatted.1
    /sw/share/man/man1/ncrcat.1
    /sw/share/man/man1/ncflint.1
    /sw/share/man/man1/ncks.1
    /sw/share/man/man1/ncap.1
    /sw/share/man/man1/ncra.1
    /sw/share/man/man1/ncwa.1
    /sw/share/info
    /sw/share/info/nco.info
    /sw/share/info/nco.info-2
    /sw/share/info/nco.info-3
    /sw/share/info/nco.info-4
    /sw/share/info/nco.info-1
    /sw/share/doc
    /sw/share/doc/nco
    /sw/share/doc/nco/nco.png
    /sw/share/doc/nco/README_Fedora.txt
    /sw/share/doc/nco/nco.info
    /sw/share/doc/nco/nces.txt
    /sw/share/doc/nco/doe.jpg
    /sw/share/doc/nco/ANNOUNCE
    /sw/share/doc/nco/surfit.txt
    /sw/share/doc/nco/LICENSE
    /sw/share/doc/nco/alg_cf2_oog.pptx
    /sw/share/doc/nco/endorsements.txt
    /sw/share/doc/nco/ChangeLog
    /sw/share/doc/nco/AUTHORS
    /sw/share/doc/nco/nco.css
    /sw/share/doc/nco/index.shtml
    /sw/share/doc/nco/Makefile
    /sw/share/doc/nco/logo_cog.png
    /sw/share/doc/nco/nco.info-2
    /sw/share/doc/nco/nco.texi
    /sw/share/doc/nco/MANIFEST
    /sw/share/doc/nco/tags_doc.sh
    /sw/share/doc/nco/nco.info-3
    /sw/share/doc/nco/logo_nco_stk.png
    /sw/share/doc/nco/nco.info-4
    /sw/share/doc/nco/surfit_2014.txt
    /sw/share/doc/nco/valgrind.txt
    /sw/share/doc/nco/netcdf4.sh
    /sw/share/doc/nco/nco_ltr_spp.txt
    /sw/share/doc/nco/build_hints.shtml
    /sw/share/doc/nco/nsf.png
    /sw/share/doc/nco/logo_srl.xcf
    /sw/share/doc/nco/opendap.sh
    /sw/share/doc/nco/acme.png
    /sw/share/doc/nco/surfit_2013.txt
    /sw/share/doc/nco/xmp
    /sw/share/doc/nco/xmp/fgr1.eps
    /sw/share/doc/nco/xmp/fgr2.eps
    /sw/share/doc/nco/xmp/cmb_fl.sh
    /sw/share/doc/nco/xmp/glb_avg.sh
    /sw/share/doc/nco/xmp/ann_avg.sh
    /sw/share/doc/nco/xmp/add_crd.sh
    /sw/share/doc/nco/xmp/fgr3.eps
    /sw/share/doc/nco/xmp/cmb_fl_grp.sh
    /sw/share/doc/nco/xmp/mcc_grp.sh
    /sw/share/doc/nco/xmp/crd.nco
    /sw/share/doc/nco/xmp/gsl_rgr.nco
    /sw/share/doc/nco/xmp/bi_interp.nco
    /sw/share/doc/nco/xmp/grp.sh
    /sw/share/doc/nco/xmp/mcc.sh
    /sw/share/doc/nco/xmp/fgr1.txt
    /sw/share/doc/nco/xmp/fgr3.txt
    /sw/share/doc/nco/xmp/pmt_crd.sh
    /sw/share/doc/nco/xmp/fgr2.txt
    /sw/share/doc/nco/xmp/rgr.sh
    /sw/share/doc/nco/xmp/fgr1.png
    /sw/share/doc/nco/xmp/fgr2.png
    /sw/share/doc/nco/xmp/fgr3.png
    /sw/share/doc/nco/xmp/ann_avg_grp.sh
    /sw/share/doc/nco/logo_pch.png
    /sw/share/doc/nco/mpi.txt
    /sw/share/doc/nco/README
    /sw/share/doc/nco/TODO
    /sw/share/doc/nco/ncap.txt
    /sw/share/doc/nco/Makefile.am
    /sw/share/doc/nco/logo_pch.xcf
    /sw/share/doc/nco/beta.txt
    /sw/share/doc/nco/nco_gsl.ods
    /sw/share/doc/nco/man_srt.txt
    /sw/share/doc/nco/nco_src_frg.txt
    /sw/share/doc/nco/problems_old.shtml
    /sw/share/doc/nco/nasa.png
    /sw/share/doc/nco/alg_cf2_oog.png
    /sw/share/doc/nco/soc_2006.txt
    /sw/share/doc/nco/NEWS
    /sw/share/doc/nco/VERSION
    /sw/share/doc/nco/logo_srl.png
    /sw/share/doc/nco/xmp_cesm.html
    /sw/share/doc/nco/rtfm.txt
    /sw/share/doc/nco/nco_authors.txt
    /sw/share/doc/nco/logo_cog.odp
    /sw/share/doc/nco/abs_igrid_2005.txt
    /sw/share/doc/nco/dir
    /sw/share/doc/nco/man_end.txt
    /sw/share/doc/nco/cdtime.c
    /sw/share/doc/nco/conda.txt
    /sw/share/doc/nco/my-bib-macros.texi
    /sw/share/doc/nco/milestones_old.shtml
    /sw/share/doc/nco/highlights_old.shtml
    /sw/share/doc/nco/nco.info-1
    /sw/share/doc/nco/nco_news.shtml
    /sw/share/doc/nco/logo_cog_nmr.png
    /sw/share/doc/nco/help.txt
    /sw/share/doc/nco/logo_cog_nmr.pdf
    /sw/share/doc/nco/dods.sh
    /sw/share/doc/nco/insure.txt
    /sw/share/doc/nco/i18n.txt
    /sw/share/doc/nco/logo_srl.svg
    /sw/share/doc/nco/Makefile.in
    /sw/share/doc/nco/TAG
    /sw/share/doc/nco/debian.txt
    /sw/share/doc/nco/nco.xcf
    /sw/share/doc/nco/prs_pbl_old.shtml
    /sw/share/doc/nco/netcdf.h.3.6.3
    /sw/bin/nces
    /sw/bin/ncea
    /sw/bin/ncrcat
    /sw/bin/ncdiff

     
  • Remko Scharroo

    Remko Scharroo - 2017-12-02
    • Group: Awaiting_Update_from_Submitter --> Undergoing_Validation
     
  • Hanspeter Niederstrasser

    If you have 'nco469-shlibs' installed, installing this nco fails like this:

    dpkg: yes, will remove nco469-dev in favour of nco.
    dpkg: considering removing nco469-shlibs in favour of nco ...
    dpkg: no, cannot remove nco469-shlibs (--auto-deconfigure will help):
     nco depends on nco469-shlibs (= 4.6.9-1)
      nco469-shlibs is to be removed.
    dpkg: regarding .../nco_4.7.0-1_darwin-x86_64.deb containing nco:
     nco conflicts with nco469-shlibs
      nco469-shlibs (version 4.6.9-1) is installed.
    /sw/bin/dpkg: error processing /sw/fink/dists/local/distributions/10.9-libcxx/stable/main/binary-darwin-x86_64/sci/nco_4.7.0-1_darwin-x86_64.deb (--install):
     conflicting packages - not installing nco
    Errors were encountered while processing:
     /sw/fink/dists/local/distributions/10.9-libcxx/stable/main/binary-darwin-x86_64/sci/nco_4.7.0-1_darwin-x86_64.deb
    

    But I'm not sure if there's any graceful way of handling this with the Fink dependency engine.

    Also, the Shlibs: field only needs to be like this:

    Shlibs: !%p/lib/libnco-%type_raw[v].dylib
    

    to mark the dylib as a private dylib. I can make this change locally before committing if no one has any suggestions on how to get a clean swap of the old nco469-shlibs package uninstalled.

     
  • Daniel Macks

    Daniel Macks - 2017-12-10

    What is in nco469-dev and nco469-shlibs that requires (new version) nco Conflicts/Replaces them? It sounds like we're scrapping headers and non-versioned .dylib links, and not building .a, and those are the usual -dev things. And by history, new nco*-shlibs have not C/R old ones.

     

    Last edit: Daniel Macks 2017-12-10
  • Hanspeter Niederstrasser

    • headers and non-versioned .dylib (in -dev) are being scrapped
    • versioned dylib got moved to parent package as private Shlibs: to minimize size of executables (code sharing).

    The new parent (now only) package, has C/R on the old -dev and -shlibs. These are the goals of the current C/R:
    1) C/R on -dev to remove any installed obsolete nco???-dev packages
    2) C/R on -shlibs because versioned dylib has now changed the package that owns it.

    But I just realized that the versioned dylib in (new) nco-4.7.0 has a different name than the versioned dylib in (old) nco-4.6.9. So the -shlibs package doesn't really need to be either Conflicted: or Replaced: due to a conflict. But it will be orphaned and need to be manually uninstalled later.

     
  • Remko Scharroo

    Remko Scharroo - 2017-12-13

    For the lack of any better solution I've removed the C/R on nco*-shlibs.

    But I did change and better hightlight a little PostInstallScript that will display something like this:


    • Checking for older library versions...
      *
    • You can remove the following older versions of the developer tools and shared library
    • if you haven't built anything against them yourself:
    • nco469-dev
    • nco469-shlibs

     
  • Hanspeter Niederstrasser

    • status: open --> closed-accepted
    • Group: Undergoing_Validation --> Added_to_Fink
     

Log in to post a comment.