Το εργαλείο lintian

Εικόνα: markos
Submitted by markos on Δευ, 10/01/2005 - 00:51

Το Lintian μπορείτε να το τρέξετε είτε μέσω του debuild (όπου και καλείται αυτόματα στο τέλος της κατασκευής του πακέτου) ή χειροκίνητα καλώντας το με παράμετρο το παραγόμενο αρχείο .changes. Συνιστούμε, επίσης, τη χρήση της επιλογής -i/--info, για επιπλέον πληροφορίες σχετικά με κάθε προειδοποίηση/σφάλμα που βρίσκει το lintian.


$ lintian -i kalbum_0.8.0-1_i386.changes
W: kalbum: binary-without-manpage kalbum
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
N: several program names in the NAMES section, each of these programs
N: should have its own manual page (a symbolic link to the appropriate
N: manual page is sufficient) because other manual page viewers such as
N: xman or tkman don't support this.
N:
N: Refer to Policy Manual, section 12.1 for details.
N:
W: kalbum: desktop-file-in-wrong-dir usr/share/mimelnk/application/x-kalbum.desktop
N:
N: package contains a .desktop file in a non-standard directory.
N: According to the menu-spec draft on freedesktop.org, those .desktop
N: files that are intended to create a menu should be placed in
N: /usr/share/applications/.
N:
W: kalbum: desktop-file-in-wrong-dir usr/share/applnk/Applications/kalbum.desktop
W: kalbum: menu-item-needs-tag-has-unknown-value x11|wm /usr/lib/menu/kalbum:2
N:
N: The menu item has a line that has a needs= field with a strange value.
N: This may be intentional, but it's probably a typo that will make menu
N: ignore the line.
N:
W: kalbum: binary-or-shlib-defines-rpath ./usr/bin/kalbum /usr/lib:/usr/X11R6/lib
N:
N: The binary or shared library defines the `RPATH'. Usually this is a
N: bad thing. Most likely you will find a Makefile with a line like:
N: gcc test.o -o test -Wl,--rpath
N: or
N: gcc test.o -o test -R/usr/local/lib
N: Please contact debian-devel@lists.debian.org if you have questions
N: about this.
N:

Όσον αφορά την πρώτη προειδοποίηση (προειδοποίηση επειδή έχει το πρόθεμα W:, διαφορετικά θα είχε το πρόθεμα E:), το πακέτο δε συνοδεύεται από σελίδα οδηγιών (man page) το οποίο είναι παραβίαση της πολιτικής του Debian. Οκ, κανονικά πρέπει να φτιάξουμε μια τέτοια σελίδα, αλλά αυτή τη στιγμή βαριέμαι να το κάνω!!!

Η προειδοποίηση

W: kalbum: menu-item-needs-tag-has-unknown-value x11|wm /usr/lib/menu/kalbum:2

απλώς μας αναφέρει ότι ξεχάσαμε στο πεδίο needs="x11|wm" να επιλέξουμε ένα από τα δύο. Τις περισσότερες φορές για εφαρμογή που τρέχει κάτω από X11 αρκεί να αφήσουμε αυτό το πεδίο.

Τέλος, η προειδοποίηση:

W: kalbum: binary-or-shlib-defines-rpath ./usr/bin/kalbum /usr/lib:/usr/X11R6/lib

αν και φαίνεται πιο σοβαρή, στην πραγματικότητα φτιάχνεται πολύ εύκολα. Απλώς, το lintian αναγνώρισε ότι σε κάποιο binary ορίζεται ρητά η διαδρομή κάποιας βιβλιοθήκης (αυτό είναι λάθος στο Makefile). Ευτυχώς, μπορεί να λυθεί πολύ εύκολα, προσθέτοντας την επιλογή --disable-rpath στο σενάριο ./configure στο αρχείο rules.

Όσον αφορά τις άλλες δύο προειδοποιήσεις

W: kalbum: desktop-file-in-wrong-dir

Η πρώτη (για το αρχείο usr/share/mimelnk/application/x-kalbum.desktop) στην πραγματικότητα είναι false alarm και δε χρειάζεται να διορθωθεί. Η δεύτερη (για το αρχείο /usr/share/applnk/Applications/kalbum.desktop) είναι όντως σωστή και μπορεί να διορθωθεί με δύο βήματα:

  • Ορισμό της μεταβλητής $kde_appsdir στο αρχείο rules πριν την εκτέλεση του ./configure ώστε τελικά να έχουμε:

    kde_appsdir=\$${prefix}/share/applications CFLAGS="$(CFLAGS)" \
    ./configure --host=$(DEB_HOST_GNU_TYPE) \
    --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
    --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info \
    --with-qt-includes=/usr/include/qt3 --disable-rpath
  • Τροποποίηση του αρχείου kalbum/Makefile.am και διόρθωση της διαδρομής στην οποία εγκαθίσταται το αρχείο kalbum.desktop:

    $(mkinstalldirs) $(kde_appsdir)
    $(INSTALL_DATA) $(srcdir)/kalbum.desktop \
    $(kde_appsdir)/kalbum.desktop

Με αυτές τις αλλαγές θα έχουμε ένα σχεδόν καθαρό πακέτο ("lintian clean" όπως λέγεται), έτοιμο προς δοκιμή!

0
Your rating: None