about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/openxpki/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/openxpki/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/openxpki/default.nix81
1 files changed, 81 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/openxpki/default.nix b/nixpkgs/pkgs/servers/openxpki/default.nix
new file mode 100644
index 000000000000..2b1000d0d851
--- /dev/null
+++ b/nixpkgs/pkgs/servers/openxpki/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchgit, perl, openssl, perlPackages, gettext, python3Packages
+# TODO: Remove extra dependencies once it is clear that they are NOT needed somewhere.
+, extraDependencies1 ? false, extraDependencies2 ? false, extraDependencies3 ? false }:
+
+perlPackages.buildPerlPackage {
+  name = "openxpki-git20150807";
+
+  src = fetchgit {
+    url = "https://github.com/openxpki/openxpki";
+    rev = "5cb76c553b6b1a81ede380857700628a7521f6e3";
+    sha256 = "05bmhani2c7ays488xv3hx5xbxb612bnwq5rdjwmsj51xpaz454p";
+  };
+
+  buildInputs = [ perl openssl gettext python3Packages.sphinx ];
+  propagatedBuildInputs = with perlPackages;
+    [ # dependencies from Makefile.PL
+      libintl_perl ConfigVersioned LWP ClassAccessorChained IOSocketSSL ClassStd
+      CGISession ConfigStd ConfigMerge Connector CryptCBC CryptOpenSSLAES CryptPKCS10
+      DBDMock DataPassword DataSerializer DateTimeFormatDateParse IOPrompt
+      IPCShareLite JSON LogLog4perl LWPProtocolConnect LWPProtocolHttps MailRFC822Address
+      Moose NetAddrIP NetDNS NetIP perlldap NetHTTP NetServer NetSSLeay ParamsValidate PathClass
+      ProcProcessTable ProcSafeExec RegexpCommon SOAPLite Switch SysSigAction TemplateToolkit
+      TestPod TestPodCoverage TextCSV_XS TimeHiRes Workflow XMLFilterXInclude XMLParser
+      XMLSAX XMLSAXWriter XMLSimple XMLValidatorSchema ]
+    ++ stdenv.lib.optionals extraDependencies1
+    [ # dependencies from parsing through core/server
+      ClassAccessor Carp PathTools DataDumper DateTime DateTimeFormatStrptime DBI DigestMD5
+      Encode ExceptionClass Exporter FilePath FileTemp Filter GetoptLong HTMLParser
+      ScalarListUtils MathBigInt Memoize libnet PodUsage RTClientREST Socket
+      Storable XSLoader ]
+    ++ stdenv.lib.optionals extraDependencies2
+    [ # dependencies taken from Debian
+      MooseXTypesPathClass DataStreamBulk MooseXStrictConstructor NamespaceAutoclean GitPurePerl
+      ConfigGitLike DevelStackTrace TreeDAGNode ClassObservable ClassFactory TimeDate ConfigAny
+      CGIFast ClassISA YAML YAMLLibYAML AuthenSASL TextCSV FileFindRulePerl IODigest ]
+    ++ stdenv.lib.optionals extraDependencies3
+    [ # dependencies taken from https://metacpan.org/pod/release/ALECH/Bundle-OpenXPKI-0.06/lib/Bundle/OpenXPKI.pm
+      AttributeHandlers AttributeParamsValidate AutoLoader BC CGI CPAN CacheCache ClassClassgenclassgen
+      ClassContainer ClassDataInheritable ClassSingleton ConvertASN1 DBDSQLite DBIxHTMLViewLATEST
+      DBFile DataPage DataSpreadPagination DateTimeLocale DateTimeTimeZone DevelPPPort DevelSelfStubber
+      DevelSymdump DigestSHA1 Env Error ExtUtilsCommand ExtUtilsConstant ExtUtilsInstall
+      ExtUtilsMakeMaker FileCheckTree FilterSimple GoferTransporthttp HTMLMason HTMLTagset
+      HTTPServerSimpleMason I18NCollate IO IPCSysV LocaleCodes LocaleMaketext LogDispatch MathBigRat
+      MathComplex MathRound ModuleBuild ModuleBuildDeprecated NetPing PerlIOviaQuotedPrint PodChecker
+      PodCoverage PodEscapes PodLaTeX PodParser PodPerldoc PodPlainer PodSimple Safe SearchDict SelfLoader
+      SubUplevel SysSyslog TemplatePluginAutoformat TermANSIColor TermCap TermReadKey Test TestException
+      TestHTTPServerSimple TestHarness TestHarnessStraps TextAbbrev TextBalanced TextIconv TextSoundex
+      TextTabsWrap ThreadQueue ThreadSemaphore TieFile TieRefHash TimeLocal URI UnicodeCollate
+      UnicodeNormalize WWWMechanize Want XMLFilterBufferText XMLNamespaceSupport autodie base bignum if_
+      lib libapreq2 libnet podlators threads threadsshared version ];
+
+  preConfigure = ''
+    substituteInPlace core/server/Makefile.PL \
+      --replace "my \$openssl_inc_dir = ''';" "my \$openssl_inc_dir = '${openssl.dev}/include';" \
+      --replace "my \$openssl_lib_dir = ''';" "my \$openssl_lib_dir = '${openssl.out}/lib';" \
+      --replace "my \$openssl_binary  = ''';" "my \$openssl_binary  = '${openssl.bin}/bin/openssl';"
+    substituteInPlace tools/vergen --replace "#!/usr/bin/perl" "#!${perl}/bin/perl"
+    cp ${./vergen_revision_state} .vergen_revision_state
+    cd core/server
+    '';
+
+  postInstall = ''
+    mkdir -p $out/share/openxpki
+    cp -r ../htdocs_source $out/share/openxpki/.
+    cp -r ../../config $out/share/openxpki/.
+    cp -r ../../qatest $out/share/openxpki/.
+    (cd ../i18n; make scan; make; make install PREFIX=$out)
+    (cd ../../clients/perl/OpenXPKI-Client-Enrollment; perl Makefile.PL PREFIX=$out; make; make install PREFIX=$out)
+    (cd ../../doc; make html man; cp _build/man/* $out/share/man/man1/.; mkdir -p $out/share/openxpki/doc; cp -r _build/{html,doctrees} $out/share/openxpki/doc/.)
+    '';
+
+  doCheck = false;
+
+  meta = {
+    homepage = http://www.openxpki.org;
+    description = "Enterprise-grade PKI/Trustcenter software";
+    license = stdenv.lib.licenses.asl20;
+    maintainers = with stdenv.lib.maintainers; [ tstrobel ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}