Natty: Defect in checkinstall-1.6.2 : checkinstall can fail to create a new diirectory

Bug #599163 reported by Doug McMahon on 2010-06-27
30
This bug affects 6 people
Affects Status Importance Assigned to Milestone
checkinstall (Ubuntu)
Low
Unassigned
Maverick
Low
Unassigned

Bug Description

Binary package hint: checkinstall

checkinstall-1.6.2 can fail package creation because of inability to create a new directory and or dir/subdir.

It doesn't appear to be that it can't at all, but in most cases it will fail.
Am attaching a simple case - building static x264 where checkinstalled failed as such

"install: cannot change permissions of `/usr/local/lib/pkgconfig': No such file or directory"

After manually creating /usr/local/lib/pkgconfig the .deb creation was successful

Have another Ex. on other pc where it failed to create 5 out of 9 or 10 dir/subdir, though it did create some of them..

Filesystem translation is enabled by default in Maverick, disabling filesystem translation fixes this issue.

ProblemType: Bug
DistroRelease: Ubuntu 10.10
Package: checkinstall 1.6.2-1
ProcVersionSignature: Ubuntu 2.6.35-5.6-generic 2.6.35-rc3
Uname: Linux 2.6.35-5-generic i686
Architecture: i386
Date: Sun Jun 27 22:30:15 2010
LiveMediaBuild: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100624)
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: checkinstall

== Regression details ==
Discovered in version: checkinstall 1.6.2-1
Last known good version: checkinstall | 1.6.1-10

Doug McMahon (mc3man) wrote :
llogan (loul) wrote :

Similar to LP #78455 (see comment #10 by andrew.46). Adding --fstrans=no to the checkinstall command may avoid the "install: cannot change permission..." error.

/etc/checkinstallrc for Lucid:
# Are we going to use filesystem translation?
TRANSLATE=1

/etc/checkinstallrc for Meerkat:
# Are we going to use filesystem translation?
TRANSLATE=0

Changed in checkinstall (Ubuntu):
status: New → Confirmed
Changed in checkinstall (Ubuntu):
importance: Undecided → Low
Andreas Noteng (andreas-noteng) wrote :

Doug: Can you confirm that LouL's workaround works?
TRANSLATE is still set to 1 in Maverick.

llogan (loul) wrote :

I mislabeled the Ubuntu versions in my last comment. Lucid TRANSLATE is 0 by default, and Maverick is 1 by default.

tags: added: regression-potential
Doug McMahon (mc3man) wrote :

Can confirm that changing the line in checkinstallrc to this ( from 1) resolves all .deb creation issues
TRANSLATE=0

Changed in checkinstall (Ubuntu):
status: Confirmed → Triaged
Andreas Noteng (andreas-noteng) wrote :

Subscribed Felipe Sateler, the maintainer of the checkinstall package.

description: updated

On Tue, Jun 29, 2010 at 12:17, Andreas Noteng <email address hidden> wrote:
> Subscribed Felipe Sateler, the maintainer of the checkinstall package.
>
> ** Description changed:
>
>  Binary package hint: checkinstall
>
>  checkinstall-1.6.2 can fail package creation because of inability to
>  create a new directory and or dir/subdir.
>
>  It doesn't appear to be that it can't at all, but  in most cases it will fail.
>  Am attaching a simple case - building static  x264 where checkinstalled failed as such
>
>  "install: cannot change permissions of `/usr/local/lib/pkgconfig': No
>  such file or directory"
>
>  After manually creating /usr/local/lib/pkgconfig the .deb creation was
>  successful
>
>  Have another Ex. on other pc where it failed to create 5 out of 9 or 10
>  dir/subdir, though it did create some of them..
>
> + Filesystem translation is enabled by default in Maverick, disabling
> + filesystem translation fixes this issue.
> +
>  ProblemType: Bug
>  DistroRelease: Ubuntu 10.10
>  Package: checkinstall 1.6.2-1
>  ProcVersionSignature: Ubuntu 2.6.35-5.6-generic 2.6.35-rc3
>  Uname: Linux 2.6.35-5-generic i686
>  Architecture: i386
>  Date: Sun Jun 27 22:30:15 2010
>  LiveMediaBuild: Ubuntu 10.10 "Maverick Meerkat" - Alpha i386 (20100624)
>  ProcEnviron:
> -  LANG=en_US.UTF-8
> -  SHELL=/bin/bash
> +  LANG=en_US.UTF-8
> +  SHELL=/bin/bash
>  SourcePackage: checkinstall
>
> --
> Defect in checkinstall-1.6.2 : checkinstall can fail to create a new diirectory
> https://bugs.launchpad.net/bugs/599163
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Could you run the checkinstall command in debug mode?

checkinstall <flags-you-were-using> -d2

--

Saludos,
Felipe Sateler

> " Could you run the checkinstall command in debug mode?"

Sure - removed the install, /usr/local/include also removed

Attached terminal output and dbgfile

Also see same with other checkinstall builds if dir.(s) don't previously exist

Doug McMahon (mc3man) wrote :

Hmm, I can't reproduce the problem. Lets try a few things so that we
can pinpoint the problem.

Create a dummy Makefile with the following contents:
----8<----
install:
 install -d /usr/local/include
--->8-----

Note that there is a tab before the install command, no spaces.

And now try to reproduce the problem.

Also, execute the following command (as root, otherwise you will have problems)

strace -o install.strace install -d /usr/local/include

And post the install.strace file.

--

Saludos,
Felipe Sateler

Kinda surprised you can't reproduce - isn't just me who has noticed and probably not confined to maverick - can test 1.6.2 on 9.10 or 10.04 if need be.
checkinstall failed on the dummy, the strace succeeded in creating /usr/local/include

Doug McMahon (mc3man) wrote :

On Tue, Jun 29, 2010 at 21:56, Doug McMahon <email address hidden> wrote:
> Kinda surprised you can't reproduce - isn't just me who has noticed and probably not confined to maverick - can test 1.6.2 on 9.10 or 10.04 if need be.
> checkinstall failed on the dummy, the strace succeeded in creating /usr/local/include

I am not running Ubuntu, but Debian. And I'm pretty sure this has to
do with some glibc interactions.

I think I can guess where this is failing... Could you try again with
this makefile:
----8<----
install:
       strace install -d /usr/local/include
--->8-----

The strace output will hopefully show which system call is failing.

--

Saludos,
Felipe Sateler

Assuming you wanted last thru checkinstall..?

Yes, you are correct, through checkinstall. I forgot that. And I
forgot to say please don't use the -d2 flag. In this case, it may
cause unwanted noise.

--

Saludos,
Felipe Sateler

Am heading out for the day - hope this helps

Doug McMahon (mc3man) wrote :

I'm gathering there is no way to 'fix' filesystem transfer and honestly don't see it being that useful in common senarios.

If there is occasion for a rebuild before release it would make sense to revert the default to no.
No big deal either way though people have gotten used to no inc. --fstrans=no in their command

note that users are also free to adjust that or any other default setting in /etc/checkinstallrc

Changed in checkinstall (Ubuntu Maverick):
status: New → Triaged
importance: Undecided → Low
description: updated
tags: added: regression-release
removed: regression-potential
Doug McMahon (mc3man) on 2011-02-02
tags: added: natty
removed: i386 maverick
summary: - Defect in checkinstall-1.6.2 : checkinstall can fail to create a new
- diirectory
+ Natty: Defect in checkinstall-1.6.2 : checkinstall can fail to create a
+ new diirectory
Doug McMahon (mc3man) on 2011-07-14
tags: added: oneiric
removed: natty
Juan Simón (simonbcn) wrote :

Same problem on Natty 64 bits:
....
test -z "/usr/local/lib/lftp/4.3.1" || /bin/mkdir -p "/usr/local/lib/lftp/4.3.1"
/bin/mkdir: can not create directory «/usr/local/lib/lftp»: No such file or directory
make[2]: *** [install-pkgverlibLTLIBRARIES] Error 1
....
**** The installation failed. Aborting package creation.
------------------------------------------------------------------------------

I have to create folders manually and after execute checkinstall to work.

Doug McMahon (mc3man) wrote :

The best solution for ubuntu would be simply to default to TRANSLATE=0 in checkinstallrc and finally be done with this

Users are free to change the rc or if desired on individual builds add a fstrans=yes if there is any reason to.
There was no indication from Felipe Sateler that he found a solution to this and in any event this is just a simple default config change that is better for most in most situations

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers