[7533] in Release_7.7_team

home help back first fref pref prev next nref lref last post

Re: Ubuntu TSM debs now available

daemon@ATHENA.MIT.EDU (Geoffrey Thomas)
Sun Jul 10 19:54:02 2011

Date: Sun, 10 Jul 2011 19:53:55 -0400 (EDT)
From: Geoffrey Thomas <geofft@MIT.EDU>
To: Alex T Prengel <alexp@mit.edu>
cc: Anders Kaseorg <andersk@mit.edu>, release-team@mit.edu
In-Reply-To: <alpine.DEB.2.02.1106081802270.23145@dr-wily.mit.edu>
Message-ID: <alpine.DEB.2.00.1107101844290.10156@tyger.mit.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-1156401407-305137374-1310342035=:10156"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---1156401407-305137374-1310342035=:10156
Content-Type: TEXT/PLAIN; charset=UTF-8; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Wed, 8 Jun 2011, Anders Kaseorg wrote:

> If you run =E2=80=98lintian=E2=80=99 on your packages, you=E2=80=99ll fin=
d several screenfuls of
> errors and warnings.  Some of them might be unavoidable, but most are
> worth paying attention to.  (Especially the files owned by uid 20353
> instead of root.)

I finally got a chance to look at the Lintian errors.

High priority:

E: tsm-backup: file-in-etc-not-marked-as-conffile /etc/init/dsm-sched.conf

A "conffile" is a file installed by a package that allows the local=20
maintainer to modify it. A regular binary will be overwritten with the=20
version in the package; a conffile will be left alone if the version in=20
the package is not modified, or give a prompt as to what to do if it is.=20
Since this is something that should be configurable by the local=20
administrator (e.g., disable the service, change runlevels, etc.), it's=20
important that the package not clobber it on upgrades the way that the=20
package would (and should) clobber modified binaries.

If you're using debhelper, which is the recommended way to create Debian=20
packages, files in /etc are automatically marked as conffiles. If you're=20
creating it by hand, list the file in DEBIAN/conffiles.

While we're on the subject, you almost certainly also want to explicitly=20
mark other user-configurable files like=20
/opt/tivoli/tsm/client/ba/bin/dsm.{sys,opt} as conffiles, for the same=20
reason.

W: tsm-backup: non-standard-dir-perm opt/ 2755 !=3D 0755

Please don't make /opt setgid. (You probably don't want /opt/tivoli and=20
children setgid either, but that won't cause problems for other packages=20
on the system.)

Also, this is not listed by Lintian, but it would be nice to depend on any=
=20
shell providing a /usr/bin/ksh and not on "ksh" itself, provided that TSM=
=20
works with any ksh-compatible shell. zsh comes to mind, and is installed=20
on Linerva and likely private workstations.


Medium priority:

W: tsm-backup: executable-not-elf-or-script ./usr/local/ibm/gsk8/lib/C/icc/=
ReadMe.txt
W: tsm-backup: executable-not-elf-or-script ./opt/tivoli/tsm/client/ba/bin/=
configFile
W: tsm-backup: executable-not-elf-or-script ./usr/local/ibm/gsk8/copyright
W: tsm-backup: executable-not-elf-or-script ./usr/local/ibm/gsk8/lib/N/icc/=
ReadMe.txt
W: tsm-backup: executable-not-elf-or-script ./usr/local/ibm/gsk8/ReadMe.txt

Presumably these shouldn't be marked executable.

E: tsm-backup: wrong-file-owner-uid-or-gid opt/tivoli/tsm/client/api/bin/li=
bstdc++.so.5 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid opt/tivoli/tsm/client/ba/bin/EN_=
US 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmadmc 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmagent 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmc 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmcad 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmj 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmswitch 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmtca 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/bin/dsmtrace 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libApiDS.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libdmapi.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgpfs.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8acmeidup.so 20353=
/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8cms.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8dbfl.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8drld.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8iccs.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8kicc.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8km.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8ldap.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8p11.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8ssl.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8sys.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libgsk8valn.so 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libtsm622xerces-c1_6_0.s=
o 20353/50
E: tsm-backup: wrong-file-owner-uid-or-gid usr/lib/libxmlutil-6.2.2.0.so 20=
353/50

Please make these files owned by root instead of alexp.

E: tsm-backup: missing-dependency-on-libc needed by ./opt/tivoli/tsm/client=
/api/bin/dsmtca and 33 others

This is probably a sign of not running dpkg-shlibdeps (which is=20
automatically run by Debhelper's dh_shlibdeps) to find all shared library=
=20
dependencies of the package. It should help robustness to different types=
=20
of machines, e.g., those with only small parts (or no parts) of Debathena=
=20
installed, future and past releases, to declare explicit library=20
dependencies on everything you need.

W: tsm-backup: postinst-has-useless-call-to-ldconfig

The extended description of this tag is "The postrm script calls ldconfig=
=20
even though no shared libraries are installed in a directory controlled by=
=20
the dynamic library loader." This confuses me a bit since you do install a=
=20
bunch of libraries to /usr/lib; possibly fixing shlib-with-executable-bit=
=20
(below) will address this check?


Definitely not important:

dir-in-usr-local, dir-or-file-in-opt, binary-without-manpage (it sucks a=20
little, but that's upstream's problem), embedded-zlib (same),=20
file-in-unusual-dir, non-standard-executable-perm and=20
non-standard-file-perm (it's traditional on Debian for binaries to be=20
root-writable, i.e., 755 instead of 555, but not really necessary to=20
change if that's how upstream does it), no-copyright-file,=20
no-priority-field, no-section-field (these three would be nice to fix but=
=20
aren't mandatory, especially since you're not putting them in any=20
archive), shlib-with-executable-bit (RPM-based distros disagree),=20
shlib-with-executable-stack, shlib-without-PT_GNU_STACK-section,=20
unstripped-binary-or-object (the last few I think are the fault of how=20
upstream compiles this, that we have no control over), and=20
symlink-should-be-absolute/relative (Debian policy, but it doesn't=20
actually affect how this package works), wrong-path-for-interpreter (ksh=20
exists in both /usr/bin and /bin).

That said, using debhelper may well fix a few of these, thanks to=20
dh_strip, dh_fixperms, and the like.


I'll reiterate that Marco d'Itri's packaging can save you a lot of cleanup=
=20
work here, since his explicit goal was to make a package that follows as=20
much of Debian Policy as possible (modulo the application being=20
proprietary and things that implies).

--=20
Geoffrey Thomas
geofft@mit.edu
---1156401407-305137374-1310342035=:10156--

home help back first fref pref prev next nref lref last post