[Pkg-scicomp-devel] MPICH2 in Debian

Muammar El Khatib muammarelkhatib at gmail.com
Tue Jun 16 17:38:43 UTC 2009


Hi,

On Wed, Jun 17, 2009 at 9:16 AM, Pavan Balaji<balaji at mcs.anl.gov> wrote:
>
> These emails seem to have been broken across two email chains; merging them
> here.
>
> Lucas: thanks for offering to help. I don't have a preference with who
> packages MPICH2. Either you or Muammar, or if needed I can package it
> (though I might need some help if I'm doing it). Also, if either one of you
> wants to do it, I can help with source code issues and even absorb patches
> upstream for the upcoming 1.1.1 release, so the build goes through cleanly.
>
> Muammar: since you have the priority on this, can you let us know how you
> want to proceed?
>

I have been working on it for some time. I started packaging it from
the work who other did (requesting his permission of using it
previously).

The package compiles, but it has a _bunch_ of lintian warnings. Look at them:

muammar at obey:~/src/main/libs/mpich2$ lintian -i mpich2_1.0.7-1_amd64.changes
W: mpich2 source: debian-watch-file-missing-version
N:
N:    The debian/watch file in this package doesn't start a version= line. The
N:    first non-comment line of debian/watch should be a version= declaration.
N:    This may mean that this is an old version one watch file that should be
N:    updated to the current version.
N:
N:    Refer to the uscan(1) manual page for details.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2 source: debhelper-but-no-misc-depends mpich2
N:
N:    The source package uses debhelper but it does not use ${misc:Depends} in
N:    the given binary package's debian/control entry. This is required so the
N:    dependencies are set correctly in case the result of a call to any of
N:    the dh_ commands cause the package to depend on another package.
N:
N:    Refer to the debhelper(7) manual page for details.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2 source: debhelper-but-no-misc-depends libmpich2-1.0-dev
W: mpich2 source: debhelper-but-no-misc-depends libmpich2-1.0
W: mpich2 source: debhelper-but-no-misc-depends mpich2-mpd
W: mpich2 source: debhelper-but-no-misc-depends mpich2-doc
W: mpich2 source: debhelper-but-no-misc-depends mpich2-mpe
E: mpich2 source: build-depends-on-obsolete-package build-depends: x-dev
N:
N:    The package build-depends on a package that has been superseded. If the
N:    superseded package is part of an ORed group, it should not be the first
N:    package in the group.
N:
N:    Severity: important, Certainty: possible
N:
E: mpich2 source: ancient-autotools-helper-file
src/mpi/romio/confdb/config.sub 2003-07-17
N:
N:    The referenced file has a time stamp older than year 2004 and the
N:    package does not build-depend on autotools-dev or automake and therefore
N:    apparently does not update it. This usually means that the source
N:    package will not build correctly on all currently released
N:    architectures.
N:
N:    Read /usr/share/doc/autotools-dev/README.Debian.gz (from the
N:    autotools-dev package) for information on how to fix this problem. cdbs
N:    will automatically update these files if autotools-dev is installed
N:    during build, but the build dependency on autotools-dev is still
N:    necessary.
N:
N:    Severity: important, Certainty: possible
N:
E: mpich2 source: ancient-autotools-helper-file
src/mpi/romio/confdb/config.guess 2003-07-02
W: mpich2 source: outdated-autotools-helper-file confdb/config.sub 2005-02-10
N:
N:    The referenced file has a time stamp older than June of 2006 and the
N:    package does not build-depend on autotools-dev or automake and therefore
N:    apparently does not update it. This usually means that the source
N:    package will not build correctly on AVR32, for which a Debian port is
N:    currently in progress, and may not support other newer architectures.
N:
N:    Read /usr/share/doc/autotools-dev/README.Debian.gz (from the
N:    autotools-dev package) for information on how to fix this problem. cdbs
N:    will automatically update these files if autotools-dev is installed
N:    during build, but the build dependency on autotools-dev is still
N:    necessary.
N:
N:    Severity: normal, Certainty: possible
N:
W: mpich2 source: outdated-autotools-helper-file confdb/config.guess 2005-03-24
W: libmpich2-1.0: non-dev-pkg-with-shlib-symlink
usr/lib/libfmpich.so.1.1 usr/lib/libfmpich.so
N:
N:    Although this package is not a "-dev" package, it installs a
N:    "libsomething.so" symbolic link referencing the corresponding shared
N:    library. When the link doesn't include the version number, it is used by
N:    the linker when other programs are built against this shared library.
N:
N:    Shared libraries are supposed to place such symbolic links in their
N:    respective "-dev" packages, so it is a bug to include it with the main
N:    library package.
N:
N:    However, if this is a small package which includes the runtime and the
N:    development libraries, this is not a bug. In the latter case, please
N:    override this warning.
N:
N:    Refer to Debian Policy Manual section 8.4 (Development files) for
N:    details.
N:
N:    Severity: normal, Certainty: possible
N:
W: libmpich2-1.0: non-dev-pkg-with-shlib-symlink
usr/lib/libmpich.so.1.1 usr/lib/libmpich.so
W: libmpich2-1.0: copyright-without-copyright-notice
N:
N:    The copyright file for this package does not appear to contain a
N:    copyright notice. You should copy the copyright notice from the upstream
N:    source (or add one of your own for a native package). A copyright notice
N:    must consist of Copyright, Copr., or the Unicode symbol of C in a circle
N:    followed by the years and the copyright holder. A copyright notice is
N:    not required for a work to be copyrighted, but Debian requires the
N:    copyright file include the authors and years of copyright, and including
N:    a valid copyright notice is the best way to do that.
N:
N:    If the package is in the public domain rather than copyrighted, be sure
N:    to mention "public domain" in the copyright file. Please be aware that
N:    this is very rare and not the same as a DFSG-free license. True public
N:    domain software is generally limited to such special cases as a work
N:    product of a United States government agency.
N:
N:    Refer to http://ftp-master.debian.org/REJECT-FAQ.html for details.
N:
N:    Severity: normal, Certainty: certain
N:
W: libmpich2-1.0: package-name-doesnt-match-sonames libfmpich1.1 libmpich1.1
N:
N:    The package name of a library package should usually reflect the soname
N:    of the included library. The package name can determined from the
N:    library file name with the following code snippet:
N:
N:     $ objdump -p /path/to/libfoo-bar.so.1.2.3 | sed -n
-e's/^[[:space:]]*SONAME[[:space:]]*//p' | sed
-e's/\([0-9]\)\.so\./\1-/; s/\.so\.//'
N:
N:    Refer to Debian Library Packaging Guide chapter 5 (shared library
N:    packages) for details.
N:
N:    Severity: normal, Certainty: possible
N:
E: mpich2: non-standard-toplevel-dir examples/
N:
N:    The Filesystem Hierarchy Standard forbids the installation of new files
N:    or directories in the root directory.
N:
N:    Refer to Filesystem Hierarchy Standard (The Root Filesystem) for
N:    details.
N:
N:    Severity: important, Certainty: certain
N:
W: mpich2: file-in-unusual-dir examples/cpi
N:
N:    This file or symbolic link is in a directory where files are not
N:    normally installed by Debian packages.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2: script-not-executable ./etc/mpich2/mpicc.conf
N:
N:    This file starts with the #! sequence that marks interpreted scripts,
N:    but it is not executable.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2: script-not-executable ./etc/mpich2/mpicxx.conf
W: mpich2: script-not-executable ./etc/mpich2/mpif77.conf
W: mpich2: copyright-without-copyright-notice
W: mpich2: binary-or-shlib-defines-rpath ./examples/cpi
/home/muammar/src/main/libs/mpich2/mpich2-1.0.7/lib
N:
N:    The binary or shared library sets RPATH. This overrides the normal
N:    library search path, possibly interfering with local policy and causing
N:    problems for multilib, among other issues.
N:
N:    The only time a binary or shared library in a Debian package should set
N:    RPATH is if it is linked to private shared libraries in the same
N:    package. In that case, place those private shared libraries in
N:    /usr/lib/<package>. Libraries used by binaries in other packages should
N:    be placed in /lib or /usr/lib as appropriate, with a proper SONAME, in
N:    which case RPATH is unnecessary.
N:
N:    To fix this problem, look for link lines like:
N:        gcc test.o -o test -Wl,--rpath,/usr/local/lib
N:    or
N:        gcc test.o -o test -R/usr/local/lib
N:    and remove the -Wl,--rpath or -R argument. You can also use the chrpath
N:    utility to remove the RPATH.
N:
N:    Refer to http://wiki.debian.org/RpathIssue for details.
N:
N:    Severity: normal, Certainty: certain
N:
E: mpich2-mpe: non-standard-toplevel-dir src/
W: mpich2-mpe: file-in-unusual-dir src/mpe2/bin/clog2_print
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe_graphics.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe_graphicsf.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe_log.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe_logf.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/include/mpe_misc.h
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libampe.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/liblmpe.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe_collchk.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe_f2cmpi.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe_nompi.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe_nompi_null.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libmpe_null.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/libtmpe.a
W: mpich2-mpe: file-in-unusual-dir src/mpe2/lib/mpe_prof.o
W: mpich2-mpe: script-not-executable ./etc/mpich2/mpich2/mpicc.conf
W: mpich2-mpe: script-not-executable ./etc/mpich2/mpich2/mpicxx.conf
W: mpich2-mpe: script-not-executable ./etc/mpich2/mpich2/mpif77.conf
W: mpich2-mpe: script-not-executable ./etc/mpich2/mpich2/mpif90.conf
W: mpich2-mpe: copyright-without-copyright-notice
W: libmpich2-1.0-dev: copyright-without-copyright-notice
W: libmpich2-1.0-dev: wrong-section-according-to-package-name
libmpich2-1.0-dev => libdevel
N:
N:    This package has a name suggesting that it belongs to a section other
N:    than the one it is currently categorized in.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2-doc: copyright-without-copyright-notice
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpd.py.1
N:
N:    Manual pages have to be installed compressed (using "gzip -9").
N:
N:    Refer to Debian Policy Manual section 12.1 (Manual pages) for details.
N:
N:    Severity: important, Certainty: certain
N:
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdallexit.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdboot.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdcheck.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdchkpyver.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdcleanup.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdexit.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdgdbdrv.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdhelp.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdkilljob.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdlib.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdlistjobs.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdman.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdringtest.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdsigjob.py.1
E: mpich2-mpd: manpage-not-compressed usr/share/man/man1/mpdtrace.py.1
W: mpich2-mpd: binary-without-manpage usr/bin/mpd
N:
N:    Each binary in /usr/bin, /usr/sbin, /bin, /sbin or /usr/games should
N:    have a manual page
N:
N:    Note that though the man program has the capability to check for several
N:    program names in the NAMES section, each of these programs should have
N:    its own manual page (a symbolic link to the appropriate manual page is
N:    sufficient) because other manual page viewers such as xman or tkman
N:    don't support this.
N:
N:    If the name of the man page differs from the binary by case, man may be
N:    able to find it anyway; however, it is still best practice to make the
N:    case of the man page match the case of the binary.
N:
N:    If the man pages are provided by another package on which this package
N:    depends, lintian may not be able to determine that man pages are
N:    available. In this case, after confirming that all binaries do have man
N:    pages after this package and its dependencies are installed, please add
N:    a lintian override.
N:
N:    Refer to Debian Policy Manual section 12.1 (Manual pages) for details.
N:
N:    Severity: normal, Certainty: possible
N:
W: mpich2-mpd: binary-without-manpage usr/bin/mpdallexit
W: mpich2-mpd: binary-without-manpage usr/bin/mpdboot
W: mpich2-mpd: binary-without-manpage usr/bin/mpdcheck
W: mpich2-mpd: binary-without-manpage usr/bin/mpdcleanup
W: mpich2-mpd: binary-without-manpage usr/bin/mpdexit
W: mpich2-mpd: binary-without-manpage usr/bin/mpdhelp
W: mpich2-mpd: binary-without-manpage usr/bin/mpdkilljob
W: mpich2-mpd: binary-without-manpage usr/bin/mpdlistjobs
W: mpich2-mpd: binary-without-manpage usr/bin/mpdringtest
W: mpich2-mpd: binary-without-manpage usr/bin/mpdroot
W: mpich2-mpd: binary-without-manpage usr/bin/mpdsigjob
W: mpich2-mpd: binary-without-manpage usr/bin/mpdtrace
W: mpich2-mpd: script-with-language-extension usr/bin/mpd.py
N:
N:    When scripts are installed into a directory in the system PATH, the
N:    script name should not include an extension such as .sh or .pl that
N:    denotes the scripting language currently used to implement it. The
N:    implementation language may change; if it does, leaving the name the
N:    same would be confusing and changing it would be disruptive.
N:
N:    Refer to Debian Policy Manual section 10.4 (Scripts) for details.
N:
N:    Severity: normal, Certainty: certain
N:
W: mpich2-mpd: script-with-language-extension usr/bin/mpdallexit.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdboot.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdcheck.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdchkpyver.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdcleanup.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdexit.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdgdbdrv.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdhelp.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdkilljob.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdlib.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdlistjobs.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdman.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdringtest.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdsigjob.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpdtrace.py
W: mpich2-mpd: script-with-language-extension usr/bin/mpiexec.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpd.py
N:
N:    Packages with Python scripts must depend on the package python. Those
N:    that have scripts executed with a versioned python package need a
N:    dependency on the equivalent version of python.
N:
N:    For example, if a script in the package uses #!/usr/bin/python, the
N:    package needs a dependency on "python". If a script uses
N:    #!/usr/bin/python2.5, the package need a dependency on "python2.5".
N:
N:    In some cases a weaker relationship, such as Suggests or Recommends,
N:    will be more appropriate.
N:
N:    Severity: important, Certainty: certain
N:
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdallexit.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdboot.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdcheck.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdchkpyver.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdcleanup.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdexit.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdgdbdrv.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdhelp.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdkilljob.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdlib.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdlistjobs.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdman.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdringtest.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdsigjob.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpdtrace.py
E: mpich2-mpd: python-script-but-no-python-dep ./usr/bin/mpiexec.py
W: mpich2-mpd: copyright-without-copyright-notice

OTOH, I think the debian/copyright file should be rechecked again. I
don't have any problem in giving the work I've done, let others
maintain MPICH2,  or co-maintain the package with debian-science. The
important thing is that there is people who is interested in maintain
it :). I'll upload what I have done in mentors.d.n so that you can
check it when you desire.

Regards,
-- 
Muammar El Khatib.
Linux user: 403107.
GPG Key = 127029F1
http://muammar.me | http://proyectociencia.org
  ,''`.
 : :' :
 `. `'
   `-



More information about the Pkg-scicomp-devel mailing list