* checkinstall: build properly on x86_64.
* checkinstall: get rid of the RUNPATH in the LD_PRELOAD library so that it works with native Glibc (e.g. in VM builds). * debBuild: use our own checkinstall. In particular this allows us to build Debs on x86_64. svn path=/nixpkgs/trunk/; revision=13608
This commit is contained in:
parent
0cf7b1c811
commit
d25aa3c8a5
4 changed files with 60 additions and 9 deletions
|
@ -34,13 +34,6 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
|
|||
fi
|
||||
''; # */
|
||||
|
||||
extraDebs = [
|
||||
(fetchurl {
|
||||
url = http://checkinstall.izto.org/files/deb/checkinstall_1.6.1-1_i386.deb;
|
||||
sha256 = "0c9wwk1m0w677gr37zd4lhvkskkcrwa0bk7csh7b3qy94pnab618";
|
||||
})
|
||||
];
|
||||
|
||||
installExtraDebsPhase = ''
|
||||
for i in $extraDebs; do
|
||||
dpkg --install $i
|
||||
|
@ -56,7 +49,9 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
|
|||
'';
|
||||
|
||||
installCommand = ''
|
||||
/usr/local/sbin/checkinstall -y -D make install
|
||||
export LOGNAME=root
|
||||
|
||||
${checkinstall}/sbin/checkinstall -y -D make install
|
||||
|
||||
ensureDir $out/debs
|
||||
find . -name "*.deb" -exec cp {} $out/debs \;
|
||||
|
|
|
@ -21,7 +21,7 @@ rec {
|
|||
rpmBuild = args: import ./rpm-build.nix vmTools args;
|
||||
|
||||
debBuild = args: import ./debian-build.nix {inherit vmTools fetchurl;} (
|
||||
{ inherit stdenv;
|
||||
{ inherit stdenv checkinstall;
|
||||
} // args);
|
||||
|
||||
}
|
||||
|
|
|
@ -17,6 +17,22 @@ stdenv.mkDerivation {
|
|||
substituteInPlace checkinstallrc-dist --replace /usr/local $out
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
if stdenv.isLinux then
|
||||
# Clear the RPATH, otherwise installwatch.so won't work properly
|
||||
# as an LD_PRELOADed library on applications that load against a
|
||||
# different Glibc.
|
||||
''
|
||||
patchelf --set-rpath "" $out/lib/installwatch.so
|
||||
''
|
||||
else "";
|
||||
|
||||
patches = [
|
||||
# Necessary for building on x86_64, see
|
||||
# http://checkinstall.izto.org/cklist/msg00256.html
|
||||
./readlink.patch
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = http://checkinstall.izto.org/;
|
||||
description = "A tool for automatically generating Slackware, RPM or Debian packages when doing `make install'";
|
||||
|
|
40
pkgs/tools/package-management/checkinstall/readlink.patch
Normal file
40
pkgs/tools/package-management/checkinstall/readlink.patch
Normal file
|
@ -0,0 +1,40 @@
|
|||
--- a/installwatch-0.7.0beta5/installwatch.c 2007-04-07 14:27:23.000000000 -0400
|
||||
+++ b/installwatch-0.7.0beta5/installwatch.c 2007-04-07 14:25:06.000000000 -0400
|
||||
@@ -84,7 +84,7 @@
|
||||
static int (*true_open)(const char *, int, ...);
|
||||
static DIR *(*true_opendir)(const char *);
|
||||
static struct dirent *(*true_readdir)(DIR *dir);
|
||||
-static int (*true_readlink)(const char*,char *,size_t);
|
||||
+static ssize_t (*true_readlink)(const char*,char *,size_t);
|
||||
static char *(*true_realpath)(const char *,char *);
|
||||
static int (*true_rename)(const char *, const char *);
|
||||
static int (*true_rmdir)(const char *);
|
||||
@@ -546,7 +546,7 @@
|
||||
struct utimbuf timbuf;
|
||||
size_t truesz;
|
||||
char linkpath[PATH_MAX+1];
|
||||
- size_t linksz;
|
||||
+ ssize_t linksz;
|
||||
|
||||
#if DEBUG
|
||||
debug(2,"copy_path(%s,%s)\n",truepath,translroot);
|
||||
@@ -1582,7 +1582,7 @@
|
||||
struct stat reslvinfo;
|
||||
instw_t iw;
|
||||
char wpath[PATH_MAX+1];
|
||||
- size_t wsz=0;
|
||||
+ ssize_t wsz=0;
|
||||
char linkpath[PATH_MAX+1];
|
||||
|
||||
|
||||
@@ -2698,8 +2698,8 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
-int readlink(const char *path,char *buf,size_t bufsiz) {
|
||||
- int result;
|
||||
+ssize_t readlink(const char *path,char *buf,size_t bufsiz) {
|
||||
+ ssize_t result;
|
||||
instw_t instw;
|
||||
int status;
|
||||
|
Loading…
Reference in a new issue