Bug#667606: Checkinstall 1.6.2-3 cumulative patch

2012-04-05 Thread Kostas Tamateas

Package: checkinstall
Version: 1.6.2-3

Hello, I have written a cumulative patch for checkinstall 1.6.2-3.
It does some fixes and adds some new functionality to checkinstall.
Below I will describe each case.

Fix 1: checkinstall misses files from stripping.
Checkinstall does wrongly check if a file is a binary.  It uses 'find 
-perm' for that. However, many projects(eg. kerberos) after the 'make' 
procedure DO NOT set the execute bit on the binaries. So that files are 
skipped and do not get stripped. With my patch I look for the 'ELF.*not 
stripped' pattern inside every file. This way I get all libraries  
programs stripped.


Feature 1: Make use of regular expressions in the ---exclude flag.
This is very useful. Instead of writing by hand whatever you want to 
exclude from the package one by one, you just write a sort regexp.
An example:  --exclude=/lib/liba.la,/lib/libb.la,/lib/libc.la VS 
--exclude=/lib/.*\.la


Feature 2: Use information from files to set the flags.
It is used for automated creation of packages in non-interactive mode.
The regular case is --requires=libc6 (=  2.14.1-1).
My case is --requires=`cat ../DEPENDENCIES`.
So I never have to write by hand in the command line. I just write on 
the DEPENDENCIES file.


Support 1: Fix bad installation prefixes.
Everything is installed under odd paths. Just use the common and regular 
ones.

/etc/checkinstall
/usr/share/local
/usr/bin
/usr/sbin

Support 2: Add GLIBC versions 8 to 15 in installwatch.c

That's all :)

Kostas Tamateas.
diff -ru checkinstall-1.6.2-3.orig/Makefile checkinstall-1.6.2-3/Makefile
--- checkinstall-1.6.2-3.orig/Makefile  2008-11-12 02:43:53.0 +
+++ checkinstall-1.6.2-3/Makefile   2012-04-05 08:15:40.0 +
@@ -1,10 +1,10 @@
 # $Id: Makefile,v 1.6.2.1 2008/11/09 07:48:18 izto Exp $
 
 # Where to install.
-PREFIX=/usr/local
+PREFIX=/usr
 BINDIR=$(PREFIX)/sbin
-LCDIR=$(PREFIX)/lib/checkinstall/locale
-CONFDIR=$(PREFIX)/lib/checkinstall
+LCDIR=$(PREFIX)/share/locale
+CONFDIR=/etc/checkinstall
 
 all:
for file in locale/checkinstall-*.po ; do \
diff -ru checkinstall-1.6.2-3.orig/checkinstall 
checkinstall-1.6.2-3/checkinstall
--- checkinstall-1.6.2-3.orig/checkinstall  2012-04-05 07:42:00.0 
+
+++ checkinstall-1.6.2-3/checkinstall   2012-04-05 08:51:38.0 +
@@ -530,80 +530,80 @@
  ;;
   -A|--arch|--pkgarch)
  shift
- ARCHITECTURE=`eval echo $1`
+ ARCHITECTURE=`eval echo '$1'`
  ;;
   --umask)
  shift
- CKUMASK=`eval echo $1`
+ CKUMASK=`eval echo '$1'`
  ;;
   --pkgname)
  shift
- NAME=`eval echo $1`
+ NAME=`eval echo '$1'`
  ;;
   --pkgversion)
  shift
- VERSION=`eval echo $1`
+ VERSION=`eval echo '$1'`
  ;;
   --pkgrelease)
  shift
- RELEASE=`eval echo $1`
+ RELEASE=`eval echo '$1'`
  ;;
   --pkglicense)
  shift
- LICENSE=`eval echo $1`
+ LICENSE=`eval echo '$1'`
  ;;
   --pkggroup)
  shift
 # note: we use PKG_GROUP instead of GROUP since (t)csh sets GROUP.
- PKG_GROUP=`eval echo $1`
+ PKG_GROUP=`eval echo '$1'`
  ;;
   --pkgsource)
  shift
- SOURCE=`eval echo $1`
+ SOURCE=`eval echo '$1'`
  ;;
   --pkgaltsource)
  shift
- ALTSOURCE=`eval echo $1`
+ ALTSOURCE=`eval echo '$1'`
  ;;
   --pakdir)
  shift
- PAK_DIR=`eval echo $1`
+ PAK_DIR=`eval echo '$1'`
  ;;
   --with-tar)
  shift
- TAR=`eval echo $1`
+ TAR=`eval echo '$1'`
  ;;
   --docdir)
  shift
- DOC_DIR=`eval echo $1`
+ DOC_DIR=`eval echo '$1'`
  ;;
   --provides)
  shift
- PROVIDES=`eval echo $1`
+ PROVIDES=`eval echo '$1'`
  ;;
   --conflicts)
  shift
- CONFLICTS=`eval echo $1`
+ CONFLICTS=`eval echo '$1'`
  ;;
   --replaces)
  shift
- REPLACES=`eval echo $1`
+ REPLACES=`eval echo '$1'`
  ;;
   --requires)
  shift
- REQUIRES=`eval echo $1`
+ REQUIRES=`eval echo '$1'`
  ;;
   --maintainer)
  shift
- MAINTAINER=`eval echo $1`
+ MAINTAINER=`eval echo '$1'`
  ;;
   --dpkgflags)
  shift
- DPKG_FLAGS=`eval echo $1`
+ DPKG_FLAGS=`eval echo '$1'`
  ;;
   --rpmflags)
  shift
- RPM_FLAGS=`eval echo $1`
+ RPM_FLAGS=`eval echo '$1'`
  ;;
   -t|--type)
  shift
@@ -846,7 +846,7 @@
   ;;
   --exclude)
  shift
- EXCLUDE=`eval echo $1`
+ EXCLUDE=$1
  ;;
   --include)
  shift
@@ -869,7 +869,7 @@
 
 
 # User

Bug#655453: Checkinstall incorrectly includes directory entries in conffile

2012-01-11 Thread Kostas Tamateas

Package: checkinstall
Version: 1.6.2 and possibly many other

Checkinstall uses a bad command to generate conffiles.
The result is to have a listing that might contain directories too.
This will cause dpkg to fail and abort installation of a package.

This bug has been reported on 2009, January 14
on this 
website:http://muzso.hu/2009/01/14/bug-in-checkinstall-regarding-conffiles
The guy also provides a patch which I tried and fixed the problem.

Here is a transcript:

server:~# dpkg --admindir=/mnt/mysystem/var/lib/dpkg/ --instdir=/mnt/mysystem 
-i udev_175-1_i386.deb
(Reading database ... 6310 files and directories currently installed.)
Unpacking udev (from udev_175-1_i386.deb) ...
dpkg: warning: udev: conffile 'etc/udev' is not a plain file or symlink (= 
'/mnt/mysystem/etc/udev')
dpkg: error processing 
/mnt/devbu/sources/core/udev/packages/udev_175-1_i386.deb (--install):
 error creating directory `./etc/udev': No such file or directory
Errors were encountered while processing:
 udev_175-1_i386.deb
server:~#

I am using kernel 2.6.25.14, Glibc 2.14.1 and dpkg 1.16.1.2





--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org