103 lines
3.1 KiB
Nix
103 lines
3.1 KiB
Nix
{ lib, 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; (requiredPerlModules [
|
|
ApacheSession BusinessHours CGIEmulatePSGI CGIPSGI
|
|
CSSMinifierXS 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 = lib.platforms.unix;
|
|
};
|
|
}
|