nixpkgs/pkgs/servers/rt/default.nix
volth 46420bbaa3 treewide: name -> pname (easy cases) (#66585)
treewide replacement of

stdenv.mkDerivation rec {
  name = "*-${version}";
  version = "*";

to pname
2019-08-15 13:41:18 +01:00

103 lines
3.1 KiB
Nix

{ stdenv, buildEnv, fetchurl, perl, perlPackages, makeWrapper }:
# This package isn't extremely useful as it is, but is getting close.
# After running:
#
# nix-build . -A rt
#
# I created a config file named myconfig.pm with:
#
# use utf8;
# Set($rtname, '127.0.0.1');
# # These dirs need to be pre-created:
# Set($MasonSessionDir, '/home/grahamc/foo/sessiondir/');
# Set($MasonDataDir, '/home/grahamc/foo/localstate/');
# Set($WebPort, 8080);
#
# Set($DatabaseType, "SQLite");
# Set( $DatabaseName, '/home/grahamc/projects/foo/my.db' );
#
# 1;
#
# and ran
#
# RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-setup-database --action init
#
# Then:
#
# RT_SITE_CONFIG=$(pwd)/myconfig.pm ./result/bin/rt-server
#
# Make sure to check out result/etc/RT_Config.pm
#
# Good luck.
stdenv.mkDerivation rec {
pname = "rt";
version = "4.4.4";
src = fetchurl {
url = "https://download.bestpractical.com/pub/rt/release/${pname}-${version}.tar.gz";
sha256 = "1108jhz1gvalcfnbzgpbk7fkxzxkkc7m74a3bnwyjzldlyj1dhrl";
};
patches = [ ./override-generated.patch ];
buildInputs = [
makeWrapper
perl
(buildEnv {
name = "rt-perl-deps";
paths = (with perlPackages; [
ApacheSession BusinessHours CGIEmulatePSGI CGIPSGI
CSSMinifierXP CSSSquish ConvertColor CryptEksblowfish
CryptSSLeay DBDSQLite DBDmysql DBIxSearchBuilder DataGUID
DataICal DataPagePageset DateExtract DateManip
DateTimeFormatNatural DevelGlobalDestruction EmailAddress
EmailAddressList FCGI FCGIProcManager FileShareDir FileWhich
GD GDGraph GnuPGInterface GraphViz HTMLFormatTextWithLinks
HTMLFormatTextWithLinksAndTables HTMLMason
HTMLMasonPSGIHandler HTMLQuoted HTMLRewriteAttributes
HTMLScrubber IPCRun IPCRun3 JSON JavaScriptMinifierXS LWP
LWPProtocolHttps LocaleMaketextFuzzy LocaleMaketextLexicon
LogDispatch MIMETools MIMETypes MailTools ModuleRefresh
ModuleVersionsReport MozillaCA NetCIDR NetIP PerlIOeol Plack
RegexpCommon RegexpCommonnetCIDR RegexpIPv6 RoleBasic
ScopeUpper Starlet SymbolGlobalName TermReadKey
TextPasswordPronounceable TextQuoted TextTemplate
TextWikiFormat TextWrapper TimeParseDate TreeSimple
UNIVERSALrequire XMLRSS
]);
})
];
preConfigure = ''
configureFlags="$configureFlags --with-web-user=$UID"
configureFlags="$configureFlags --with-web-group=$(id -g)"
configureFlags="$configureFlags --with-rt-group=$(id -g)"
configureFlags="$configureFlags --with-bin-owner=$UID"
configureFlags="$configureFlags --with-libs-owner=$UID"
configureFlags="$configureFlags --with-libs-group=$(id -g)"
'';
configureFlags = [
"--enable-graphviz"
"--enable-gd"
"--enable-gpg"
"--with-db-type=SQLite"
];
buildPhase = ''
make testdeps | grep -i missing | sort
'';
preFixup = ''
for i in $(find $out/bin -type f; find $out/sbin -type f); do
wrapProgram $i \
--prefix PERL5LIB ':' $PERL5LIB
done
'';
meta = {
platforms = stdenv.lib.platforms.unix;
};
}