mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
postfix: clean-up install phase
Passing install_root=$out isn't a good idea because the install script is going to pre-pend that prefix to all other paths even though these have the $out prefix already. The resulting installation is a mess. Instead, we use the "fake" install prefix "out" and then move all files and directories into the right place afterward.
This commit is contained in:
parent
40fe2d03b5
commit
85350ca2d4
@ -12,23 +12,14 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1rfsfhna5hy5lc6hkg1zc2862pdc5c1y9z6aiy8rinlmzrfplhlb";
|
sha256 = "1rfsfhna5hy5lc6hkg1zc2862pdc5c1y9z6aiy8rinlmzrfplhlb";
|
||||||
};
|
};
|
||||||
|
|
||||||
installTargets = ["non-interactive-package"];
|
buildInputs = [db4 openssl cyrus_sasl bison perl];
|
||||||
|
|
||||||
installFlags = [" install_root=$out "];
|
patches = [ ./postfix-2.2.9-db.patch ./postfix-2.2.9-lib.patch ./db-linux3.patch ];
|
||||||
|
|
||||||
preInstall = ''
|
postPatch = ''
|
||||||
sed -e '/^PATH=/d' -i postfix-install
|
sed -i -e s,/usr/bin,/var/run/current-system/sw/bin, \
|
||||||
'';
|
-e s,/usr/sbin,/var/run/current-system/sw/sbin, \
|
||||||
|
-e s,:/sbin,, src/util/sys_defs.h
|
||||||
postInstall = ''
|
|
||||||
mkdir -p $out
|
|
||||||
mv ut/$out/* $out/
|
|
||||||
|
|
||||||
mkdir $out/share/postfix/conf
|
|
||||||
cp conf/* $out/share/postfix/conf
|
|
||||||
sed -e 's@PATH=.*@PATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin@' -i $out/share/postfix/conf/post-install $out/libexec/postfix/post-install
|
|
||||||
sed -e '2aPATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin' -i $out/share/postfix/conf/postfix-script $out/libexec/postfix/postfix-script
|
|
||||||
chmod a+x $out/share/postfix/conf/{postfix-script,post-install}
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
@ -46,14 +37,23 @@ stdenv.mkDerivation rec {
|
|||||||
make makefiles CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${cyrus_sasl}/include/sasl' AUXLIBS='-lssl -lcrypto -lsasl2 -ldb -lnsl'
|
make makefiles CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${cyrus_sasl}/include/sasl' AUXLIBS='-lssl -lcrypto -lsasl2 -ldb -lnsl'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildInputs = [db4 openssl cyrus_sasl bison perl];
|
installPhase = ''
|
||||||
|
sed -e '/^PATH=/d' -i postfix-install
|
||||||
|
$SHELL postfix-install install_root=out -non-interactive -package
|
||||||
|
|
||||||
patches = [ ./postfix-2.2.9-db.patch ./postfix-2.2.9-lib.patch ./db-linux3.patch ];
|
mkdir -p $out
|
||||||
|
mv -v "out$out/"* $out/
|
||||||
|
|
||||||
postPatch = ''
|
mkdir -p $out/share/postfix
|
||||||
sed -i -e s,/usr/bin,/var/run/current-system/sw/bin, \
|
mv conf $out/share/postfix/
|
||||||
-e s,/usr/sbin,/var/run/current-system/sw/sbin, \
|
mv LICENSE TLS_LICENSE $out/share/postfix/
|
||||||
-e s,:/sbin,, src/util/sys_defs.h
|
|
||||||
|
sed -e 's@^PATH=.*@PATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin@' -i $out/share/postfix/conf/post-install $out/libexec/postfix/post-install
|
||||||
|
sed -e '2aPATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin' -i $out/share/postfix/conf/postfix-script $out/libexec/postfix/postfix-script
|
||||||
|
chmod a+x $out/share/postfix/conf/{postfix-script,post-install}
|
||||||
|
'';
|
||||||
|
|
||||||
|
inherit glibc;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.postfix.org/";
|
homepage = "http://www.postfix.org/";
|
||||||
@ -62,7 +62,4 @@ stdenv.mkDerivation rec {
|
|||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||||
};
|
};
|
||||||
'';
|
|
||||||
|
|
||||||
inherit glibc;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user