Skip to content

Info

OSGeo-Live 10.0 Jupyter

by Brian M Hamlin, OSGeo California Chapter
 

After being alerted -LINK-, I used pip to upgrade ipywidgets on the OSGeo-Live 10.0 base system.

The following is a modified patch file showing the changes in Python 2.7:

## Major components, version changed
-ipykernel==4.2.2
+ipykernel==4.5.2
...
-ipython==4.0.2
+ipython==5.1.0
-ipywidgets==5.1.5
+ipywidgets==5.2.2
-jupyter-client==4.1.1
+jupyter-client==4.4.0
 jupyter-console==4.1.0
-jupyter-core==4.0.6
+jupyter-core==4.2.1
-notebook==4.2.1
+notebook==4.3.0
-nbconvert==4.1.0
-nbformat==4.0.1
+nbconvert==5.0.0
+nbformat==4.2.0
+html5lib==0.9999999
-ptyprocess==0.5
+ptyprocess==0.5.1
-pexpect==4.0.1
-pickleshare==0.5
+pexpect==4.2.1
+pickleshare==0.7.4

-decorator==4.0.6
+decorator==4.0.10

##-- misc other additions --
+backports-abc==0.5
+backports.shutil-get-terminal-size==1.0.0
+bleach==1.5.0
+certifi==2016.9.26
+configparser==3.5.0
-enum34==1.1.2
+entrypoints==0.2.2
+enum34==1.1.6
-mistune==0.7.1
+mistune==0.7.3
+pandocfilters==1.4.1
+pathlib2==2.1.0
+prompt-toolkit==1.0.9
-Pygments==2.1
+Pygments==2.1.3
-pyzmq==15.2.0
+pyzmq==16.0.2
+testpath==0.3
-tornado==4.2.1
-traitlets==4.1.0
+tornado==4.4.2
+traitlets==4.3.1
+wcwidth==0.1.7
-widgetsnbextension==1.2.3
+widgetsnbextension==1.2.6

##-- misc other python libs (unchanged)
 anyjson==0.3.3
 Biggus==0.13.0
 Cartopy==0.14.2
 celery==3.1.20
 cf-units==1.0.0
 colorama==0.3.7
 cycler==0.9.0
 defer==1.0.6
 descartes==1.0.1
 filemagic==1.6
 Fiona==1.6.3
 Iris==1.9.2
 imposm==2.6.0
 imposm.parser==1.0.7
 ipyleaflet==0.2.0
 jsonschema==2.5.1
 meld==3.14.2
 ModestMaps==1.4.6
 netCDF4==1.2.4
 Nik4==1.6.0
 numpy==1.11.0
 osmapi==0.6.2
 OWSLib==0.10.3
 pandas==0.17.1
 psutil==3.4.2
 psycopg2==2.6.1
 pykml==0.1.1
 pywps==3.2.5
 rasterio==0.31.0
 TileStache==1.49.8

OSGeo-Live 9.5 Construction, Python, netCDF and hdf5

by Brian M Hamlin, OSGeo California Chapter
 

Two major layers define software installation on OSGeo-Live. The first are build scripts in the form install_xxx — where xxx is a project name — that are called in order from the VM build main.sh. The second and increasingly important layer of software installation, are the Debian Packages, which declare a dependency tree in the Debian way. This document looks at the install process for netCDF, hdf5 and their python interfaces, at both layers of install on the OSGeo-Live, for the purpose of documentation and coming architectural decisions as the installs evolve.
live-install-work0F
 
netcdf1_sm
from Wikipedia:

NetCDF (Network Common Data Form) is a set of software libraries and self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. The project homepage is hosted by the Unidata program at the University Corporation for Atmospheric Research (UCAR). They are also the chief source of netCDF software, standards development, updates, etc. The format is an open standard. NetCDF Classic and 64-bit Offset Format are an international standard of the Open Geospatial Consortium.[ netCDF ]

Since the release of netCDF4 by Unidata, internal data format hdf5 is natively supported. Therefore, an hdf5 library is a build-dependancy for a debian package install of netCDF4. There are several similar-sounding packages and versions of netCDF software. The historical netCDF situation on OSGeo-Live is discussed -here-.
 
Examining the Install Process and Results in OSGeo-Live 9.5

In the OSGeo-Live 9.5 build system, two scripts among others, trigger apt python package install actions: install_jupyter.sh and install_iris.sh. These two scripts both install python packages which in turn install the netCDF core libraries (in practice install_jupyter is first to execute and brings in the bulk of the dependancies).

  Jupyter and IRIS trigger netCDF installs.

The defacto install sequence is shown using an OSGeo-Live build log parse chroot-build.log. A python tool parses the build log and extracts apt output, emitting comma-separated rows to stdout, and optionally building a postgres table directly at the same time.

During the OSGeo-Live 9.5 build, an install script called install_jupyter ran which caused apt to install debian packages listed.

dbb=# select * from parseout95_rc1 where script_name = 'install_jupyter' order by pkg_name,action;

   script_name   | action |        pkg_name         
-----------------+--------+-------------------------
 install_jupyter | NEW    | fiona
...
 install_jupyter | NEW    | libgfortran3
 install_jupyter | NEW    | libhdf4-0-alt
 install_jupyter | NEW    | libhdf5-7
...
 install_jupyter | NEW    | python-netcdf
 install_jupyter | NEW    | python-netcdf4
 install_jupyter | NEW    | python-notebook
 install_jupyter | NEW    | python-numpy
...
 install_jupyter | NEW    | rasterio
(245 rows)

parseout95_rc1 table: script_name the name of the install script running when an apt action occurred; action the name of the apt action; pkg_name the apt package name affected. A SQL query result above (abbreviated) to show hdf5 and netCDF related packages, triggered to install via script install_jupyter at OSGeo-Live build time.

Summary of all install actions: selected install scripts and the corresponding number of debian packages they install:

setup, 145
install_language, 30
install_services, 2
install_java, 14
install_tomcat, 9
...
install_postgis, 33
install_jupyter, 137
install_iris, 17
install_osm, 62
install_gmt, 10
install_liblas, 3
install_mapnik, 6
install_mysql, 11
install_R, 71
install_pycsw, 5
...

note: the number of debian packages installed by each script is highly dependent on the execution order of the build, since common dependencies will be brought in by the first script to invoke them.

 

Reading a Debian Pool Directory

An experimental toolset PPA-Pool-Parse reads a Debian/Ubuntu PPA pool directory, finds source package control files dot-dsc, copies them and parses their contents, one key-value pair at a time. The result is a cross-referenced attribute table for every package described, for all architectures and all OS versions, in the PPA. Here three PPAs have been analyzed: stable, unstable and testing.

http://ppa.launchpad.net/ubuntugis/ppa/ubuntu/pool
http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu/pool
http://ppa.launchpad.net/ubuntugis/ubuntugis-testing/ubuntu/pool

Each extracted source control file (.dsc) has a set of key-value pairs :

dbb=# select dsc_name,dsc_key,dsc_val from dsc_all where ppa_name = 'stable_dsc' and dsc_name ~ 'cdf'
        order by dsc_name,dsc_key;
--------------------------------+-------------------+--------------------------------------
 python-netcdf4_1.1.0-0~trusty1 | Architecture      | any
 python-netcdf4_1.1.0-0~trusty1 | Binary            | python-netcdf4
 python-netcdf4_1.1.0-0~trusty1 | Build-Depends     | debhelper (>= 9), dpkg-dev (>= 1.16.1~), python-all-dev, libnetcdf-dev (>= 4.1.1~), python-numpy (>= 1:1.6.1~), zlib1g-dev, libhdf5-serial-dev (>= 1.8.4~) | libhdf5-dev (>= 1.8.4~), netcdf-bin
 python-netcdf4_1.1.0-0~trusty1 | Checksums-Sha1    | 
 python-netcdf4_1.1.0-0~trusty1 | Checksums-Sha256  | 
 python-netcdf4_1.1.0-0~trusty1 | Files             | 
 python-netcdf4_1.1.0-0~trusty1 | Format            | 3.0 (quilt)
 python-netcdf4_1.1.0-0~trusty1 | Hash              | SHA1
 python-netcdf4_1.1.0-0~trusty1 | Homepage          | http://code.google.com/p/netcdf4-python/
 python-netcdf4_1.1.0-0~trusty1 | Maintainer        | The Mer  -rememberthemer @gmail.com-
 python-netcdf4_1.1.0-0~trusty1 | Package-List      | 
 python-netcdf4_1.1.0-0~trusty1 | Source            | python-netcdf4
 python-netcdf4_1.1.0-0~trusty1 | Standards-Version | 3.9.3
 python-netcdf4_1.1.0-0~trusty1 | Version           | 1.1.0-0~trusty1
 python-netcdf4_1.1.0-0~trusty1 | Version           | GnuPG v1
(15 rows)

 
A second pass reads the key-value pair Build-Depends, parses the named dependancies and builds a table of those. example: querying all source control descriptions in PPA ‘stable’, list dependancies whose names match hdf or netcdf:

dbb=# select * from dsc_bdepends where ppa_name = 'stable_dsc' and (bdepends ~ 'hdf5' or bdepends ~ 'netcdf') order by dsc_name, bdepends;
  ppa_name  |              dsc_name               |                   bdepends                   |  bd_constr   
------------+-------------------------------------+----------------------------------------------+--------------
 stable_dsc | cartopy_0.11.0-0~trusty1            | libhdf5-serial-dev                           | ()
 stable_dsc | cartopy_0.11.0-0~trusty1            | libnetcdf-dev                                | ()
 stable_dsc | cartopy_0.11.0-0~trusty1            | netcdf-bin                                   | ()
 stable_dsc | gdal_1.10.0-1~precise1              | libhdf5-serial-dev                           | (>= 1.6.6)
 stable_dsc | gdal_1.10.0-1~precise1              | libnetcdf-dev                                | (>= 1:4.0.0)
 stable_dsc | gdal_1.10.0-1~precise1              | netcdf-bin                                   | ()
 stable_dsc | gdal_1.11.2+dfsg-1~exp2~trusty      | libhdf5-dev                                  | (>= 1.8.8)
 stable_dsc | gdal_1.11.2+dfsg-1~exp2~trusty      | libnetcdf-dev                                | (>= 1:4.0.0)
 stable_dsc | gdal_1.11.2+dfsg-1~exp2~trusty      | netcdf-bin                                   | ()
 stable_dsc | gdal_1.9.2-2~precise4               | libhdf5-serial-dev                           | (>= 1.6.6)
 stable_dsc | gdal_1.9.2-2~precise4               | libnetcdf-dev                                | (>= 1:4.0.0)
 stable_dsc | gmt_5.1.2+dfsg1-1~exp8~trusty       | libnetcdf-dev                                | ()
 stable_dsc | grass_7.0.1-1~exp1~trusty           | libnetcdf-dev                                | ()
 stable_dsc | grass_7.0.1-1~exp1~trusty           | netcdf-bin                                   | ()
 stable_dsc | insighttoolkit4_4.7.1-1otb1~trusty1 | libhdf5-serial-dev                           | ()
 stable_dsc | iris_1.6.1-0~trusty2                | libhdf5-serial-dev                           | ()
 stable_dsc | iris_1.6.1-0~trusty2                | libnetcdf-dev                                | ()
 stable_dsc | iris_1.6.1-0~trusty2                | netcdf-bin                                   | ()
 stable_dsc | iris_1.6.1-0~trusty2                | python-netcdf4                               | ()
 stable_dsc | mbsystem_5.5.2252-0~trusty          | libnetcdf-dev                                | ()
 stable_dsc | python-netcdf4_1.1.0-0~trusty1      | libhdf5-serial-dev (>= 1.8.4~) | libhdf5-dev | (>= 1.8.4~)
 stable_dsc | python-netcdf4_1.1.0-0~trusty1      | libnetcdf-dev                                | (>= 4.1.1~)
 stable_dsc | python-netcdf4_1.1.0-0~trusty1      | netcdf-bin                                   | ()
(23 rows)

Debian Packages

A Debian source .dsc file describes a source package. Here is a .dsc file for a python iris package. Notice the key-value pair Build-Depends and the netCDF-related dependencies.

iris_1.9.0-0~trusty2.dsc

Build-Depends: libnetcdf-dev, netcdf-bin, python-netcdf4, …

see apt-cache depends packagename and apt-rdepends

some netCDF data from U.W.
ftp://ftp.hydro.washington.edu/pub/blivneh/CONUS/

Debian git endpoint: git://anonscm.debian.org/pkg-grass/netcdf.git

Debian system package tracker for netCDF

Debian VCS-Watch page -here-

Popularity Contest page for netcdf source group : -here-

Most of the base Debian packages in the OSGeo-Live ecosystem are maintained by Debian Developer (DD) Sebastic

The latest versions available in Debian and upstream are
included in the Debian GIS DDPO

Sebastic DD says in an email, look at Ben http://ben.debian.net/
Clicking twice showed a temporary “transition” document : href="https://release.debian.org/transitions/html/auto-netcdf.html

Ultimate Debian Database: udd.debian.org

psql --host=public-udd-mirror.xvm.mit.edu --user=public-udd-mirror udd --password

udd=> select * from debtags where package ~* 'netcdf' order by tag,package;
      package       |           tag           
--------------------+-------------------------
 libpdl-netcdf-perl | devel::lang:perl
 python-netcdf      | devel::lang:python
 libnetcdf-dev      | devel::library
 libpdl-netcdf-perl | devel::library
 python-netcdf      | devel::library
 libpdl-netcdf-perl | implemented-in::c
 libnetcdf6         | implemented-in::fortran
 netcdf-bin         | implemented-in::fortran
 python-netcdf      | implemented-in::python
 netcdf-bin         | interface::commandline
 netcdf-doc         | made-of::html
 netcdf-doc         | made-of::info
 netcdf-doc         | made-of::postscript
 python-netcdf      | role::app-data
 netcdf-dbg         | role::debug-symbols
 libnetcdf-dev      | role::devel-lib
 netcdf-doc         | role::documentation
 netcdf-bin         | role::program
 libnetcdf6         | role::shared-lib
 libnetcdfc++4      | role::shared-lib
 libnetcdfc7        | role::shared-lib
 libnetcdff5        | role::shared-lib
 netcdf-bin         | scope::utility
(23 rows)

udd=> select * from all_sources where source = 'netcdf' and release = 'xenial';
source                | netcdf
version               | 1:4.4.0-2
maintainer            | Debian GIS Project 
...
build_depends         | 
debhelper (>= 9), cmake (>= 2.8.12), chrpath, m4, doxygen, graphviz,
libjs-jquery, libhdf5-dev (>= 1.8.6-1~), 
libcurl4-gnutls-dev | libcurl-ssl-dev


udd=> select source,version from all_sources where source ~* 'netcdf' and release = 'xenial';
       source       |     version     
--------------------+-----------------
 libpdl-netcdf-perl | 4.20-1.1build2
 netcdf             | 1:4.4.0-2
 netcdf-cxx         | 4.2.1-3
 netcdf-cxx-legacy  | 4.2-4
 netcdf-fortran     | 4.4.3-1
 netcdf4-python     | 1.2.2-2
 pnetcdf            | 1.7.0~pre1-1
 r-cran-rnetcdf     | 1.6.3-1-1build2
 ruby-netcdf        | 0.7.1.1-6build3
(9 rows)


udd=> select source,version from all_sources where source ~* 'hdf5' and release ~ 'xenial';
       source        |       version        
---------------------+----------------------
 hdf5                | 1.8.16+docs-4ubuntu1
 libpdl-io-hdf5-perl | 0.6501-2build2
 libsis-jhdf5-java   | 14.12.1-2
 python-hdf5storage  | 0.1.13-1
 r-cran-hdf5         | 1.6.10-3build2
 yorick-hdf5         | 0.8.0-5build2
(6 rows)

udd=> select * from debtags where package ~* 'hdf5' order by tag,package;
        package        |           tag            
-----------------------+--------------------------
 libhdf5-doc           | devel::doc
 libpdl-io-hdf5-perl   | devel::lang:perl
 libhdf5-dev           | devel::library
 libhdf5-doc           | devel::library
 libhdf5-lam-dev       | devel::library
 libhdf5-mpich2-dev    | devel::library
 libhdf5-mpich-dev     | devel::library
 libhdf5-mpi-dev       | devel::library
 libhdf5-openmpi-dev   | devel::library
 libhdf5-serial-dev    | devel::library
 libpdl-io-hdf5-perl   | devel::library
 r-cran-hdf5           | field::mathematics
 libhdf5-doc           | field::physics
 libhdf5-lam-dev       | field::physics
 libhdf5-mpich-dev     | field::physics
 libhdf5-serial-dev    | field::physics
 libpdl-io-hdf5-perl   | implemented-in::c
 r-cran-hdf5           | implemented-in::r
 hdf5-tools            | interface::commandline
 libhdf5-doc           | made-of::html
 libhdf5-dev           | role::devel-lib
 libhdf5-lam-dev       | role::devel-lib
 libhdf5-mpich2-dev    | role::devel-lib
 libhdf5-mpi-dev       | role::devel-lib
 libhdf5-openmpi-dev   | role::devel-lib
 libhdf5-serial-dev    | role::devel-lib
 hdf5-tools            | role::documentation
 libhdf5-doc           | role::documentation
 libhdf5-lam-dev       | role::documentation
 libhdf5-serial-dev    | role::documentation
 hdf5-tools            | role::program
 libhdf5-7             | role::shared-lib
 libhdf5-cpp-7         | role::shared-lib
 libhdf5-lam-1.8.4     | role::shared-lib
 libhdf5-mpich-1.8.4   | role::shared-lib
 libhdf5-mpich2-7      | role::shared-lib
 libhdf5-mpich-7       | role::shared-lib
 libhdf5-openmpi-1.8.4 | role::shared-lib
 libhdf5-openmpi-7     | role::shared-lib
 libhdf5-serial-1.8.4  | role::shared-lib
 libjhdf5-jni          | role::shared-lib
 hdf5-tools            | scope::utility
 r-cran-hdf5           | suite::gnu
 hdf5-tools            | use::converting
 libhdf5-doc           | use::storing
 libhdf5-lam-dev       | use::storing
 libhdf5-mpich-dev     | use::storing
 libhdf5-serial-dev    | use::storing
(67 rows)

more on netCDF from Sebastic:

If you’re looking for the interdependencies I would parse the Packages files from the PPA and analyse the Depends fields of the packages in question. ed. the method above achieves the same results

Because I have coordinated the recent netcdf transitions, I have a
pretty good idea of the dependency chain.

netcdf-c (netcdf source package) is at the bottom, everything else
depends on that. netcdf-cxx-legacy, netcdf-cxx, netcdf-fortran &
netcdf4-python all require the netcdf package to build. netcdf in turn
requires hdf5 to build.

To help prepare transitions, I run a transition tracker [2] using the
ben package [3] also used for Debian [4] & Ubuntu [5]. ben visualizes
the reverse dependencies for packages and marks them as good or bad
based on the regular expressions applied to the fields in the Packages
files (usually just Depends).

[2] http://linuxminded.nl/tmp/pkg-grass-transitions/html/netcdf-c.html
[3] https://tracker.debian.org/pkg/ben
[4] https://release.debian.org/transitions/
[5] https://people.canonical.com/~ubuntu-archive/transitions/

> Where is a convenient place to file an update ticket :
> “netCDF4 project home page has moved from code.google.com to github.com/Unidata; update source description”

Convenient != Appropriate

You should file bugreports in the tracker for the repository in
question, in this case UbuntuGIS/OSGeo-Live.

If you verify that the issue is also present in the packaging maintained
by the Debian GIS team, you can contact the Debian GIS team via the
mailinglist or file a bugreport for the package in question.

> dsc content:
> stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Homepage | http://code.google.com/p/netcdf4-python/
>
> make sense ? thanks

That looks like the python-netcdf4 source package from OSGeo-Live 9.5,
it is maintained by The Mer -rememberthemer @gmail.com- according to its
control file.

It is not maintained by the Debian GIS team, the netcdf4-python package
is maintained by the Debian GIS team and included in Debian & Ubuntu. It
does not have these issues.

Regarding NetCDF & Python, only the python{,3}-netcdf4 packages built
from the netcdf4-python source package are actively maintained. The
python-netcdf package built from the python-scientific package as used
by bin/install_jupyter.sh is very problematic. It does not support newer
NumPy versions and has been broken in Debian for quite a while and has
recently been removed from Debian because it was keeping the old NetCDF
4.1.3 packages in Debian unstable (due to being unable to build with the
newer versions). [6]

These issues with python-scientific also caused it to be removed from
Ubuntu xenial, so bin/install_jupyter.sh needs to be updated to not
require python-netcdf any more.

[6] https://lists.debian.org/debian-gis/2016/05/msg00009.html

Misc

Other listings using PPA-Pool-Parse:

 
Search all source control files in the testing PPA for source package names:

dbb=# select * from dsc_all 
  where dsc_key = 'Source' and ppa_name = 'testing_dsc' 
    order by dsc_val;

  ppa_name   |                   dsc_name                   | dsc_key |     dsc_val      
-------------+----------------------------------------------+---------+------------------
 testing_dsc | apache2_2.4.6-4~precise2                     | Source  | apache2
 testing_dsc | fiona_1.6.3-3~xenial0                        | Source  | fiona
 testing_dsc | gdal_2.1.0+dfsg-1~trusty0                    | Source  | gdal
 testing_dsc | gdal_2.1.0+dfsg-1~trusty1                    | Source  | gdal
 testing_dsc | gdal_2.1.0+dfsg-1~xenial0                    | Source  | gdal
 testing_dsc | gdal_2.0.2+dfsg-5~trusty0                    | Source  | gdal
 testing_dsc | gdal_1.10.0-1~precise1                       | Source  | gdal
 testing_dsc | geos_3.5.0-1~trusty1                         | Source  | geos
 testing_dsc | geos_3.3.8-2~precise1                        | Source  | geos
 testing_dsc | gmt_5.2.1+dfsg-3build2~xenial0               | Source  | gmt
 testing_dsc | gmt_5.2.1+dfsg-4ubuntu2~xenial0              | Source  | gmt
 testing_dsc | grass_7.0.4-1~xenial2                        | Source  | grass
 testing_dsc | liblas_1.8.0-7build2~xenial0                 | Source  | liblas
 testing_dsc | mapcache_0~git052512+a8a8fe848c+1-2~precise4 | Source  | mapcache
 testing_dsc | mapcache_1.4.0-5~xenial0                     | Source  | mapcache
 testing_dsc | mapnik_3.0.9+ds-2~xenial0                    | Source  | mapnik
 testing_dsc | mapserver_7.0.1-4~xenial0                    | Source  | mapserver
 testing_dsc | mapserver_6.2.0~beta1-2~precise8             | Source  | mapserver
 testing_dsc | mapserver_6.2.0~rc1-2~precise1               | Source  | mapserver
 testing_dsc | merkaartor_0.18.2-6~xenial0                  | Source  | merkaartor
 testing_dsc | openjpeg2_2.1.0-2.1otb1~trusty1              | Source  | openjpeg2
 testing_dsc | openscenegraph_3.2.3+dfsg1-1~trusty0         | Source  | openscenegraph
 testing_dsc | openscenegraph_3.2.3+dfsg1-1~trusty1         | Source  | openscenegraph
 testing_dsc | openscenegraph_3.2.3+dfsg1-1~trusty2         | Source  | openscenegraph
 testing_dsc | openscenegraph_3.2.3+dfsg1-1~xenial0         | Source  | openscenegraph
 testing_dsc | osgearth_2.7.0+dfsg-2~xenial0                | Source  | osgearth
 testing_dsc | ossim_1.81-1svn22135+precise1                | Source  | ossim
 testing_dsc | ossim_1.8.20.3+ds-4~xenial0                  | Source  | ossim
 testing_dsc | ossimplanet_1.81-1~svn22135~ubuntu9          | Source  | ossimplanet
 testing_dsc | ossimplanetqt_1.81-1~svn22135~ubuntu5        | Source  | ossimplanetqt
 testing_dsc | ossimplanetqt_1.81-1~svn22135~ubuntu6        | Source  | ossimplanetqt
 testing_dsc | ossimpredator_1.81-1svn21539~precise11       | Source  | ossimpredator
 testing_dsc | ossim-wms_1.81-1~1svn22135~ubuntu3           | Source  | ossim-wms
 testing_dsc | pgrouting_2.1.0-2~xenial0                    | Source  | pgrouting
 testing_dsc | postgis_2.2.1+dfsg-2~xenial1                 | Source  | postgis
 testing_dsc | postgis_2.2.1+dfsg-3~xenial0                 | Source  | postgis
 testing_dsc | pycsw_1.10.4+dfsg-2~xenial0                  | Source  | pycsw
 testing_dsc | qgis_2.14.1+dfsg-3~xenial0                   | Source  | qgis
 testing_dsc | rasterio_0.31.0-2build2~xenial0              | Source  | rasterio
 testing_dsc | saga_2.2.7+dfsg-0~ubuntugis~xenial1          | Source  | saga
 testing_dsc | spatialite_4.1.1-5ubuntu2                    | Source  | spatialite
 testing_dsc | spatialite-tools_4.1.1-3~trusty0             | Source  | spatialite-tools
 testing_dsc | tinyows_1.1.1-3~xenial0                      | Source  | tinyows
(43 rows)


 
All maintainers listed in PPA stable, by number of packages maintained:

dbb=# select count(*),dsc_val from dsc_all 
    where ppa_name = 'stable_dsc' and dsc_key = 'Maintainer' 
    group by dsc_val   order by count(*) desc;
-------+----------------------------------------------------------------------
    47 | Debian GIS Project 
    11 | Angelos Tzotsos 
     7 | OTB Team 
     6 | Rashad M 
     4 | Ubuntu Developers 
     2 | QGIS developers 
     2 | Loic Dachary (OuoU) 
     2 | Jerome Villeneuve Larouche 
     1 | Kubuntu Developers 
     1 | Quantum GIS developers 
     1 | wxWidgets Maintainers 
     1 | Ubuntu GIS Project 
     1 | Debian Med Packaging Team 
     1 | Tom Payne 
     1 | David Paleino 
     1 | Alan Boudreault 
     1 | Mapnik Developers 
     1 | Debian Games Team 
     1 | The Mer  
     1 | UbuntuGIS 
     1 | Python Applications Packaging Team 
     1 | Frederik Ramm 
     1 | Debian OpenStreetMap Team 
     1 | Alexandre Viau 
     1 | Rashad M 
     1 | Pirmin Kalberer 
     1 | Stephan Holl 
     1 | Ingo Berg 
     1 | Debian Java Maintainers 
     1 | Bart Martens 
     1 | Debian PhotoTools Maintainers 
     1 | Johan Van de Wauw 


 
The contents of all .dsc key-value pairs, for all PPAs, where the source control name matches ‘cdf’

dbb=# select * from dsc_all where dsc_name ~ 'cdf' order by ppa_name, dsc_name, dsc_key;
  ppa_name     dsc_name                         dsc_key             dsc_val
+-----------+--------------------------------+-------------------+---------------------------
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Architecture      | any
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Binary            | python-netcdf4
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Build-Depends     | debhelper (>= 9), dpkg-dev (>= 1.16.1~), python-all-dev, libnetcdf-dev (>= 4.1.1~), python-numpy (>= 1:1.6.1~), zlib1g-dev, libhdf5-serial-dev (>= 1.8.4~) | libhdf5-dev (>= 1.8.4~), netcdf-bin
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Checksums-Sha1    | 
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Checksums-Sha256  | 
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Files             | 
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Format            | 3.0 (quilt)
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Hash              | SHA1
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Homepage          | http://code.google.com/p/netcdf4-python/
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Maintainer        | The Mer -rememberthemer @gmail.com-
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Package-List      | 
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Source            | python-netcdf4
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Standards-Version | 3.9.3
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Version           | 1.1.0-0~trusty1
 stable_dsc | python-netcdf4_1.1.0-0~trusty1 | Version           | GnuPG v1


 
A count of how many source packages in PPA stable depend on what component:

dbb=# select bdepends, count(*) from dsc_bdepends where ppa_name = 'stable_dsc' 
        group by bdepends   order by count(*) desc;

                   bdepends                   | count 
----------------------------------------------+-------
 debhelper                                    |   105
 cmake                                        |    36
 libproj-dev                                  |    32
 zlib1g-dev                                   |    29
 libgdal-dev                                  |    28
 python-all-dev                               |    26
 libgeos-dev                                  |    26
 python-all                                   |    24
 autotools-dev                                |    24
 dpkg-dev                                     |    24
 python-setuptools                            |    23
 libexpat1-dev                                |    22
 libjpeg-dev                                  |    19
 libcurl4-gnutls-dev                          |    19
 libsqlite3-dev                               |    18
 libpng-dev                                   |    17
 libpq-dev                                    |    16
 dh-python                                    |    15
 libfcgi-dev                                  |    14
 libxml2-dev                                  |    14
...
 python-numpy                                 |    12
 doxygen                                      |    12
...
 python-scipy                                 |     2
 libqt4-opengl                                |     2
 libqhull-dev                                 |     2
...
 python3-all-dbg                              |     1
 spawn-fcgi                                   |     1
 libossim-wms                                 |     1
(396 rows)

Java-related projects:

base10_java.dot

Apache2, python, postgis and others:

base10t.dot

checkversion.py

import netCDF4, sys, numpy
sys.stdout.write('netcdf4-python version: %s\n'%netCDF4.__version__)
sys.stdout.write('HDF5 lib version:       %s\n'%netCDF4.__hdf5libversion__)
sys.stdout.write('netcdf lib version:     %s\n'%netCDF4.__netcdf4libversion__)
sys.stdout.write('numpy version           %s\n' % numpy.__version__)

https://tracker.debian.org/pkg/netcdf4-python
PKG-INFO

Metadata-Version: 1.0
Name: netCDF4
Version: 0.5
Summary: netCDF version 4 has many features not found in earlier versions of the library, such as hierarchical groups, zlib compression, multiple unlimited dimensions, and new data types.  It is implemented on top of HDF5.  This module implements many of the new features, and can read netCDF files created with older versions of the library.  The API is modelled after Scientific.IO.NetCDF, and should be familiar to users of that module
Home-page: http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/netCDF4.html
Author: Jeff Whitaker
Author-email: jeffrey.s.whitaker@noaa.gov
License: ['OSI Approved']
Download-URL: http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/netCDF4-0.4.4.tar.gz
Description: UNKNOWN
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Archiving :: Compression
Classifier: Operating System :: OS Independent

https://tracker.debian.org/pkg/hdf5