aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2020-06-16 15:23:20 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2020-06-16 16:16:00 +0200
commita97118c489a59d723538292214efaa10dfcb96df (patch)
tree853ec20d2af94dc8d3325fa3b781dd535cd72c86
parentb1b8a5623d22a7ee4301afe4e7b9d368ef7ded8f (diff)
downloadNix-a97118c489a59d723538292214efaa10dfcb96df.tar.gz
Nix-a97118c489a59d723538292214efaa10dfcb96df.tar.zst
Nix-a97118c489a59d723538292214efaa10dfcb96df.zip
Add status engine website
-rw-r--r--modules/private/default.nix2
-rw-r--r--modules/private/environment.nix9
-rw-r--r--modules/private/monitoring/default.nix4
-rw-r--r--modules/private/monitoring/objects_common.nix2
-rwxr-xr-xmodules/private/monitoring/plugins/check_command14
-rwxr-xr-xmodules/private/monitoring/plugins/check_emails6
-rwxr-xr-xmodules/private/monitoring/plugins/check_eriomem16
-rwxr-xr-xmodules/private/monitoring/plugins/check_ftp_database4
-rwxr-xr-xmodules/private/monitoring/plugins/check_git17
-rwxr-xr-xmodules/private/monitoring/plugins/check_imap_connection4
-rwxr-xr-xmodules/private/monitoring/plugins/check_last_file_date6
-rwxr-xr-xmodules/private/monitoring/plugins/check_mysql_replication6
-rwxr-xr-xmodules/private/monitoring/plugins/check_openldap_replication6
-rwxr-xr-xmodules/private/monitoring/plugins/check_ovh_sms4
-rwxr-xr-xmodules/private/monitoring/plugins/check_postgres_replication6
-rwxr-xr-xmodules/private/monitoring/plugins/check_redis_replication6
-rw-r--r--modules/private/monitoring/status_engine.nix109
-rw-r--r--modules/private/websites/default.nix1
-rw-r--r--modules/private/websites/tools/performance/default.nix89
-rw-r--r--pkgs/default.nix6
-rw-r--r--pkgs/gearmand/default.nix16
-rw-r--r--pkgs/naemon/default.nix1
-rw-r--r--pkgs/naemon/naemon.json6
-rw-r--r--pkgs/status_engine/host_perfdata.patch47
-rw-r--r--pkgs/status_engine/interface.nix21
-rw-r--r--pkgs/status_engine/interface_composer.lock1323
-rw-r--r--pkgs/status_engine/interface_php_packages.nix217
-rw-r--r--pkgs/status_engine/module.json15
-rw-r--r--pkgs/status_engine/module.nix10
-rw-r--r--pkgs/status_engine/worker.json15
-rw-r--r--pkgs/status_engine/worker.nix25
-rw-r--r--pkgs/status_engine/worker_composer.lock1457
-rw-r--r--pkgs/status_engine/worker_php_packages.nix217
33 files changed, 3643 insertions, 44 deletions
diff --git a/modules/private/default.nix b/modules/private/default.nix
index 17dedd4..cf9dc85 100644
--- a/modules/private/default.nix
+++ b/modules/private/default.nix
@@ -84,6 +84,7 @@ set = {
84 mastodonTool = ./websites/tools/mastodon; 84 mastodonTool = ./websites/tools/mastodon;
85 mgoblinTool = ./websites/tools/mgoblin; 85 mgoblinTool = ./websites/tools/mgoblin;
86 peertubeTool = ./websites/tools/peertube; 86 peertubeTool = ./websites/tools/peertube;
87 performanceTool = ./websites/tools/performance;
87 toolsTool = ./websites/tools/tools; 88 toolsTool = ./websites/tools/tools;
88 mailTool = ./websites/tools/mail; 89 mailTool = ./websites/tools/mail;
89 90
@@ -105,6 +106,7 @@ set = {
105 ssh = ./ssh; 106 ssh = ./ssh;
106 monitoring = ./monitoring; 107 monitoring = ./monitoring;
107 status = ./monitoring/status.nix; 108 status = ./monitoring/status.nix;
109 status_engine = ./monitoring/status_engine.nix;
108 vpn = ./vpn; 110 vpn = ./vpn;
109 111
110 environment = ./environment.nix; 112 environment = ./environment.nix;
diff --git a/modules/private/environment.nix b/modules/private/environment.nix
index 82e3981..3a805c6 100644
--- a/modules/private/environment.nix
+++ b/modules/private/environment.nix
@@ -1020,6 +1020,15 @@ in
1020 }; 1020 };
1021 }; 1021 };
1022 }; 1022 };
1023 status_engine = mkOption {
1024 description = "Status Engine configuration";
1025 type = submodule {
1026 options = {
1027 mysql = mkMysqlOptions "StatusEngine" {};
1028 ldap = mkLdapOptions "StatusEngine" {};
1029 };
1030 };
1031 };
1023 task = mkOption { 1032 task = mkOption {
1024 description = "Taskwarrior configuration"; 1033 description = "Taskwarrior configuration";
1025 type = submodule { 1034 type = submodule {
diff --git a/modules/private/monitoring/default.nix b/modules/private/monitoring/default.nix
index 349ba8a..8ae0b30 100644
--- a/modules/private/monitoring/default.nix
+++ b/modules/private/monitoring/default.nix
@@ -241,7 +241,6 @@ in
241 services.naemon = { 241 services.naemon = {
242 enable = true; 242 enable = true;
243 extraConfig = '' 243 extraConfig = ''
244 broker_module=${pkgs.naemon-livestatus}/lib/naemon-livestatus/livestatus.so ${config.services.naemon.runDir}/live
245 use_syslog=1 244 use_syslog=1
246 log_initial_states=1 245 log_initial_states=1
247 date_format=iso8601 246 date_format=iso8601
@@ -249,6 +248,9 @@ in
249 '' + lib.optionalString (!cfg.master) '' 248 '' + lib.optionalString (!cfg.master) ''
250 obsess_over_services=1 249 obsess_over_services=1
251 ocsp_command=notify-master 250 ocsp_command=notify-master
251 '' + lib.optionalString (cfg.master) ''
252 broker_module=${pkgs.naemon-livestatus}/lib/naemon-livestatus/livestatus.so ${config.services.naemon.runDir}/live
253 broker_module=${pkgs.status_engine.module}/lib/status-engine/naemon/statusengine-${pkgs.naemon.status_engine_version}.o use_service_perfdata=1 use_process_data=0 use_system_command_data=0 use_external_command_data=0 use_flapping_data=0 use_program_status_data=0 use_notification_data=0 use_contact_status_data=0 use_contact_notification_data=0 use_event_handler_data=0 use_object_data=0
252 ''; 254 '';
253 extraResource = '' 255 extraResource = ''
254 $USER2$=${myplugins} 256 $USER2$=${myplugins}
diff --git a/modules/private/monitoring/objects_common.nix b/modules/private/monitoring/objects_common.nix
index e9b1b51..2585c38 100644
--- a/modules/private/monitoring/objects_common.nix
+++ b/modules/private/monitoring/objects_common.nix
@@ -133,7 +133,7 @@ in
133 notify-service-by-email = "ADMINEMAIL=\"$ADMINEMAIL$\" SERVICENOTIFICATIONID=\"$SERVICENOTIFICATIONID$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_email service \"$NOTIFICATIONTYPE$\" \"$HOSTALIAS$\" \"$LONGDATETIME$\" \"$CONTACTEMAIL$\" $OVE"; 133 notify-service-by-email = "ADMINEMAIL=\"$ADMINEMAIL$\" SERVICENOTIFICATIONID=\"$SERVICENOTIFICATIONID$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_email service \"$NOTIFICATIONTYPE$\" \"$HOSTALIAS$\" \"$LONGDATETIME$\" \"$CONTACTEMAIL$\" $OVE";
134 notify-by-slack = "HOST=\"$HOSTALIAS$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_slack \"$ARG1$\" \"$ARG2$\""; 134 notify-by-slack = "HOST=\"$HOSTALIAS$\" SERVICESTATE=\"$SERVICESTATE$\" SERVICEDESC=\"$SERVICEDESC$\" SERVICEOUTPUT=\"$SERVICEOUTPUT$\" $USER2$/notify_by_slack \"$ARG1$\" \"$ARG2$\"";
135 135
136 notify-master = "$USER2$/send_nrdp.sh -u \"$USER200$\" -t \"$USER201$\" -H \"$HOSTADDRESS$\" -s \"$SERVICEDESC$\" -S \"$SERVICESTATEID$\" -o \"$SERVICEOUTPUT$\""; 136 notify-master = "$USER2$/send_nrdp.sh -u \"$USER200$\" -t \"$USER201$\" -H \"$HOSTADDRESS$\" -s \"$SERVICEDESC$\" -S \"$SERVICESTATEID$\" -o \"$SERVICEOUTPUT$ | $SERVICEPERFDATA$\"";
137 }; 137 };
138 timeperiod = { 138 timeperiod = {
139 "24x7" = { 139 "24x7" = {
diff --git a/modules/private/monitoring/plugins/check_command b/modules/private/monitoring/plugins/check_command
index 55779fd..2b546c1 100755
--- a/modules/private/monitoring/plugins/check_command
+++ b/modules/private/monitoring/plugins/check_command
@@ -57,30 +57,30 @@ if ($other_command ne '') {
57 57
58chomp($cmd_result); 58chomp($cmd_result);
59if ($cmd_result =~ /sudo/i) { 59if ($cmd_result =~ /sudo/i) {
60 print "$command CRITICAL - No sudo right to run the command\n"; 60 print "$command CRITICAL - No sudo right to run the command | result=1;;;;\n";
61 exit($STATE_UNKNOWN); 61 exit($STATE_UNKNOWN);
62} elsif ($expected_status ne '') { 62} elsif ($expected_status ne '') {
63 if ($? != $expected_status) { 63 if ($? != $expected_status) {
64 print "$command CRITICAL - Response status $?\n"; 64 print "$command CRITICAL - Response status $? | result=1;;;;\n";
65 exit($STATE_CRITICAL); 65 exit($STATE_CRITICAL);
66 } else { 66 } else {
67 print "$command OK - Response status $?\n"; 67 print "$command OK - Response status $? | result=0;;;;\n";
68 exit($STATE_OK); 68 exit($STATE_OK);
69 } 69 }
70} elsif ($other_command ne '') { 70} elsif ($other_command ne '') {
71 if ($cmd_result ne $other_cmd_result) { 71 if ($cmd_result ne $other_cmd_result) {
72 print "$command CRITICAL - Expected output not matching other command output\n"; 72 print "$command CRITICAL - Expected output not matching other command output | result=1;;;;\n";
73 exit($STATE_CRITICAL); 73 exit($STATE_CRITICAL);
74 } else { 74 } else {
75 print "$command OK - Expected output matching other command output\n"; 75 print "$command OK - Expected output matching other command output | result=0;;;;\n";
76 exit($STATE_OK); 76 exit($STATE_OK);
77 } 77 }
78} else { 78} else {
79 if ($cmd_result !~ /$expected_output/) { 79 if ($cmd_result !~ /$expected_output/) {
80 print "$command CRITICAL - Expected output not matching\n"; 80 print "$command CRITICAL - Expected output not matching | result=1;;;;\n";
81 exit($STATE_CRITICAL); 81 exit($STATE_CRITICAL);
82 } else { 82 } else {
83 print "$command OK - Expected output matching\n"; 83 print "$command OK - Expected output matching | result=0;;;;\n";
84 exit($STATE_OK); 84 exit($STATE_OK);
85 } 85 }
86} 86}
diff --git a/modules/private/monitoring/plugins/check_emails b/modules/private/monitoring/plugins/check_emails
index 5a8453e..534e5a5 100755
--- a/modules/private/monitoring/plugins/check_emails
+++ b/modules/private/monitoring/plugins/check_emails
@@ -61,6 +61,7 @@ foreach my $line (@lines) {
61} 61}
62 62
63my $output = ""; 63my $output = "";
64my $old = 0;
64foreach my $email_from (@emails_to_expect) { 65foreach my $email_from (@emails_to_expect) {
65 my @email_split = split(/:/, $email_from); 66 my @email_split = split(/:/, $email_from);
66 my $email = $email_split[0]; 67 my $email = $email_split[0];
@@ -73,16 +74,17 @@ foreach my $email_from (@emails_to_expect) {
73 if ($current_date - $email_date > 60*30) { 74 if ($current_date - $email_date > 60*30) {
74 $output = "$output$email ($found_emails{$email} from $from) "; 75 $output = "$output$email ($found_emails{$email} from $from) ";
75 } 76 }
77 $old = ($current_date - $email_date) > $old ? ($current_date - $email_date) : $old;
76 } else { 78 } else {
77 $output = "$output$email (missing) " 79 $output = "$output$email (missing) "
78 } 80 }
79} 81}
80 82
81if ($output ne '') { 83if ($output ne '') {
82 print "Emails $host CRITICAL - expecting emails: $output\n"; 84 print "Emails $host CRITICAL - expecting emails: $output | timestamp=${old}s;;;;\n";
83 exit($STATE_CRITICAL); 85 exit($STATE_CRITICAL);
84} else { 86} else {
85 print "Emails $host OK\n"; 87 print "Emails $host OK | timestamp=${old}s;;;;\n";
86 exit($STATE_OK); 88 exit($STATE_OK);
87} 89}
88 90
diff --git a/modules/private/monitoring/plugins/check_eriomem b/modules/private/monitoring/plugins/check_eriomem
index f91d1e4..880b88a 100755
--- a/modules/private/monitoring/plugins/check_eriomem
+++ b/modules/private/monitoring/plugins/check_eriomem
@@ -47,7 +47,7 @@ def main():
47 for p in ps: 47 for p in ps:
48 os.kill(p.pid, signal.SIGTERM) 48 os.kill(p.pid, signal.SIGTERM)
49 output(STATE_UNKNOWN, 49 output(STATE_UNKNOWN,
50 "eriomem UNKNOWN - Command timeout after 60 seconds!") 50 "Eriomem UNKNOWN - Command timeout after 60 seconds!")
51 51
52 signal.alarm(0) 52 signal.alarm(0)
53 53
@@ -57,20 +57,20 @@ def main():
57 use_percent = 100 * usage / max_size 57 use_percent = 100 * usage / max_size
58 if use_percent > critical_percent: 58 if use_percent > critical_percent:
59 output(STATE_CRITICAL, 59 output(STATE_CRITICAL,
60 "eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" % 60 "Eriomem CRITICAL - bucket usage: %s (%s%%);| size=%s;;;;" %
61 (sizeof_fmt(usage), use_percent, usage)) 61 (sizeof_fmt(usage), use_percent, sizeof_fmt(usage)))
62 elif use_percent > warning_percent: 62 elif use_percent > warning_percent:
63 output(STATE_WARNING, 63 output(STATE_WARNING,
64 "eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" % 64 "Eriomem WARNING - bucket usage: %s (%s%%);| size=%s;;;;" %
65 (sizeof_fmt(usage), use_percent, usage)) 65 (sizeof_fmt(usage), use_percent, sizeof_fmt(usage)))
66 else: 66 else:
67 output(STATE_OK, 67 output(STATE_OK,
68 "eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" % 68 "Eriomem OK - bucket usage: %s (%d%%);| size=%s;;;;" %
69 (sizeof_fmt(usage), use_percent, usage)) 69 (sizeof_fmt(usage), use_percent, sizeof_fmt(usage)))
70 else: 70 else:
71 messages = "\n".join([out[0].decode() + out[1].decode() for out in outs]) 71 messages = "\n".join([out[0].decode() + out[1].decode() for out in outs])
72 output(STATE_UNKNOWN, 72 output(STATE_UNKNOWN,
73 "eriomem Unknown - Error in command\n" + messages) 73 "Eriomem UNKNOWN - Error in command")
74 74
75def sizeof_fmt(num): 75def sizeof_fmt(num):
76 for unit in ['','ko','Mo','Go','To','Po','Eo','Zo']: 76 for unit in ['','ko','Mo','Go','To','Po','Eo','Zo']:
diff --git a/modules/private/monitoring/plugins/check_ftp_database b/modules/private/monitoring/plugins/check_ftp_database
index 9a41424..f9cf579 100755
--- a/modules/private/monitoring/plugins/check_ftp_database
+++ b/modules/private/monitoring/plugins/check_ftp_database
@@ -3,9 +3,9 @@
3OUT=$(echo "ls" | lftp -u test_ftp,test_ftp eldiron.immae.eu | grep it_works | wc -l) 3OUT=$(echo "ls" | lftp -u test_ftp,test_ftp eldiron.immae.eu | grep it_works | wc -l)
4 4
5if [ "$OUT" -eq 1 ]; then 5if [ "$OUT" -eq 1 ]; then
6 echo "ftp connection OK - access to ftp is working" 6 echo "ftp connection OK - access to ftp is working | ftp=1;;;;"
7 exit 0 7 exit 0
8else 8else
9 echo "ftp connection CRITICAL - no access to ftp" 9 echo "ftp connection CRITICAL - no access to ftp | ftp=0;;;;"
10 exit 2 10 exit 2
11fi 11fi
diff --git a/modules/private/monitoring/plugins/check_git b/modules/private/monitoring/plugins/check_git
index 8c09925..e8fbb29 100755
--- a/modules/private/monitoring/plugins/check_git
+++ b/modules/private/monitoring/plugins/check_git
@@ -13,6 +13,7 @@ trap "rm -rf $TMPDIR" EXIT
13 13
14ERRORS="" 14ERRORS=""
15OUTPUT="" 15OUTPUT=""
16PERFS=""
16 17
17cd "$TMPDIR" 18cd "$TMPDIR"
18OUT=$(git clone -q git://git.immae.eu/perso/Immae/Projets/Ruby/Monitor.git 2>&1) 19OUT=$(git clone -q git://git.immae.eu/perso/Immae/Projets/Ruby/Monitor.git 2>&1)
@@ -22,7 +23,10 @@ OUTPUT="$OUTPUT
22$OUT" 23$OUT"
23fi 24fi
24if [ "$ERR" != 0 ]; then 25if [ "$ERR" != 0 ]; then
26 PERFS="$PERFS git=0;;;;"
25 ERRORS="$ERRORS git://" 27 ERRORS="$ERRORS git://"
28else
29 PERFS="$PERFS git=1;;;;"
26fi 30fi
27rm -rf Monitor 31rm -rf Monitor
28 32
@@ -34,6 +38,9 @@ $OUT"
34fi 38fi
35if [ "$ERR" != 0 ]; then 39if [ "$ERR" != 0 ]; then
36 ERRORS="$ERRORS http://" 40 ERRORS="$ERRORS http://"
41 PERFS="$PERFS http=0;;;;"
42else
43 PERFS="$PERFS http=1;;;;"
37fi 44fi
38rm -rf Monitor 45rm -rf Monitor
39 46
@@ -45,6 +52,9 @@ $OUT"
45fi 52fi
46if [ "$ERR" != 0 ]; then 53if [ "$ERR" != 0 ]; then
47 ERRORS="$ERRORS https://" 54 ERRORS="$ERRORS https://"
55 PERFS="$PERFS https=0;;;;"
56else
57 PERFS="$PERFS https=1;;;;"
48fi 58fi
49rm -rf Monitor 59rm -rf Monitor
50 60
@@ -56,13 +66,16 @@ $OUT"
56fi 66fi
57if [ "$ERR" != 0 ]; then 67if [ "$ERR" != 0 ]; then
58 ERRORS="$ERRORS ssh" 68 ERRORS="$ERRORS ssh"
69 PERFS="$PERFS ssh=0;;;;"
70else
71 PERFS="$PERFS ssh=1;;;;"
59fi 72fi
60rm -rf Monitor 73rm -rf Monitor
61 74
62if [ -n "$ERRORS" ]; then 75if [ -n "$ERRORS" ]; then
63 echo "gitolite CRITICAL - impossible to clone via$ERRORS|$OUTPUT" 76 echo "gitolite CRITICAL - impossible to clone via$ERRORS | $PERFS"
64 exit 2 77 exit 2
65else 78else
66 echo "gitolite OK - ssh, git, http and https work|$OUTPUT" 79 echo "gitolite OK - ssh, git, http and https work | $PERFS"
67 exit 0 80 exit 0
68fi 81fi
diff --git a/modules/private/monitoring/plugins/check_imap_connection b/modules/private/monitoring/plugins/check_imap_connection
index 304eae6..c1ab0dd 100755
--- a/modules/private/monitoring/plugins/check_imap_connection
+++ b/modules/private/monitoring/plugins/check_imap_connection
@@ -26,10 +26,10 @@ my $expected_result = "a OK Logged in";
26 26
27chomp($cmd_result); 27chomp($cmd_result);
28if ($cmd_result !~ /$expected_result/) { 28if ($cmd_result !~ /$expected_result/) {
29 print "IMAP CRITICAL - Unable to connect via imaps\n"; 29 print "IMAP CRITICAL - Unable to connect via imaps | imap=0;;;;\n";
30 exit($STATE_CRITICAL); 30 exit($STATE_CRITICAL);
31} else { 31} else {
32 print "IMAP OK - imaps connected successfully\n"; 32 print "IMAP OK - imaps connected successfully | imap=1;;;;\n";
33 exit($STATE_OK); 33 exit($STATE_OK);
34} 34}
35 35
diff --git a/modules/private/monitoring/plugins/check_last_file_date b/modules/private/monitoring/plugins/check_last_file_date
index df45bbc..f51a258 100755
--- a/modules/private/monitoring/plugins/check_last_file_date
+++ b/modules/private/monitoring/plugins/check_last_file_date
@@ -15,12 +15,14 @@ if [ -z "$last_date" ]; then
15 exit $STATE_UNKNOWN 15 exit $STATE_UNKNOWN
16else 16else
17 LC_ALL=C last_date=$(printf "%.*f" 0 $last_date) 17 LC_ALL=C last_date=$(printf "%.*f" 0 $last_date)
18 LC_ALL=C age=$(( $(date "+%s") - $last_date))
19 max_age=$(( $hours * 60 * 60 ))
18 min_date=$(date -d "$hours hours ago" "+%s") 20 min_date=$(date -d "$hours hours ago" "+%s")
19 if [ "$min_date" -lt "$last_date" ]; then 21 if [ "$min_date" -lt "$last_date" ]; then
20 echo "OK: Last file $(date -d @$last_date)" 22 echo "OK: Last file $(date -d @$last_date) | age=${age}s;;$max_age;;"
21 exit $STATE_OK 23 exit $STATE_OK
22 else 24 else
23 echo "CRITICAL: Last file $(date -d @$last_date)" 25 echo "CRITICAL: Last file $(date -d @$last_date) | age=${age}s;;$max_age;;"
24 exit $STATE_CRITICAL 26 exit $STATE_CRITICAL
25 fi 27 fi
26fi 28fi
diff --git a/modules/private/monitoring/plugins/check_mysql_replication b/modules/private/monitoring/plugins/check_mysql_replication
index 8923928..4027f63 100755
--- a/modules/private/monitoring/plugins/check_mysql_replication
+++ b/modules/private/monitoring/plugins/check_mysql_replication
@@ -23,13 +23,13 @@ else
23 LC_ALL=C lag=$(printf "%.*f" 0 $lag) 23 LC_ALL=C lag=$(printf "%.*f" 0 $lag)
24 24
25 if [[ $lag -lt 5 ]]; then 25 if [[ $lag -lt 5 ]]; then
26 echo "OK - $output" 26 echo "OK - $output | time=${lag}s;5;10;;"
27 exit $STATE_OK 27 exit $STATE_OK
28 elif [[ $lag -lt 10 ]]; then 28 elif [[ $lag -lt 10 ]]; then
29 echo "WARNING - $output" 29 echo "WARNING - $output | time=${lag}s;5;10;;"
30 exit $STATE_WARNING 30 exit $STATE_WARNING
31 else 31 else
32 echo "CRITICAL - $output" 32 echo "CRITICAL - $output | time=${lag}s;5;10;;"
33 exit $STATE_CRITICAL 33 exit $STATE_CRITICAL
34 fi 34 fi
35fi 35fi
diff --git a/modules/private/monitoring/plugins/check_openldap_replication b/modules/private/monitoring/plugins/check_openldap_replication
index b511ff2..7136ad5 100755
--- a/modules/private/monitoring/plugins/check_openldap_replication
+++ b/modules/private/monitoring/plugins/check_openldap_replication
@@ -42,13 +42,13 @@ else
42 LC_ALL=C lag=$(printf "%.*f" 0 $lag) 42 LC_ALL=C lag=$(printf "%.*f" 0 $lag)
43 43
44 if [[ $offset -lt 5 ]]; then 44 if [[ $offset -lt 5 ]]; then
45 echo "OK - $output" 45 echo "OK - $output | time=${offset}s;5;10;;"
46 exit $STATE_OK 46 exit $STATE_OK
47 elif [[ $offset -lt 10 ]]; then 47 elif [[ $offset -lt 10 ]]; then
48 echo "WARNING - $output" 48 echo "WARNING - $output | time=${offset}s;5;10;;"
49 exit $STATE_WARNING 49 exit $STATE_WARNING
50 else 50 else
51 echo "CRITICAL - $output" 51 echo "CRITICAL - $output | time=${offset}s;5;10;;"
52 exit $STATE_CRITICAL 52 exit $STATE_CRITICAL
53 fi 53 fi
54fi 54fi
diff --git a/modules/private/monitoring/plugins/check_ovh_sms b/modules/private/monitoring/plugins/check_ovh_sms
index 141f82d..caf279c 100755
--- a/modules/private/monitoring/plugins/check_ovh_sms
+++ b/modules/private/monitoring/plugins/check_ovh_sms
@@ -15,10 +15,10 @@ try:
15 result = client.get('/sms/{}'.format(account))["creditsLeft"] 15 result = client.get('/sms/{}'.format(account))["creditsLeft"]
16 16
17 if result < 20: 17 if result < 20:
18 print("SMS OVH Critical - Not enough sms left ({})|SMS {}".format(result, result)) 18 print("SMS OVH Critical - Not enough sms left ({})|SMS={};;;;".format(result, result))
19 sys.exit(2) 19 sys.exit(2)
20 else: 20 else:
21 print("SMS OVH Ok - Enough sms left ({})|SMS {}".format(result, result)) 21 print("SMS OVH Ok - Enough sms left ({})|SMS={};;;;".format(result, result))
22 sys.exit(0) 22 sys.exit(0)
23except Exception: 23except Exception:
24 print("SMS OVH UNKNOWN - Error during script") 24 print("SMS OVH UNKNOWN - Error during script")
diff --git a/modules/private/monitoring/plugins/check_postgres_replication b/modules/private/monitoring/plugins/check_postgres_replication
index 009b4d5..ff257a3 100755
--- a/modules/private/monitoring/plugins/check_postgres_replication
+++ b/modules/private/monitoring/plugins/check_postgres_replication
@@ -23,13 +23,13 @@ else
23 LC_ALL=C lag=$(printf "%.*f" 0 $lag) 23 LC_ALL=C lag=$(printf "%.*f" 0 $lag)
24 24
25 if [[ $lag -lt 5 ]]; then 25 if [[ $lag -lt 5 ]]; then
26 echo "OK - $output" 26 echo "OK - $output | time=${lag}s;5;10;0;"
27 exit $STATE_OK 27 exit $STATE_OK
28 elif [[ $lag -lt 10 ]]; then 28 elif [[ $lag -lt 10 ]]; then
29 echo "WARNING - $output" 29 echo "WARNING - $output | time=${lag}s;5;10;0;"
30 exit $STATE_WARNING 30 exit $STATE_WARNING
31 else 31 else
32 echo "CRITICAL - $output" 32 echo "CRITICAL - $output | time=${lag}s;5;10;0;"
33 exit $STATE_CRITICAL 33 exit $STATE_CRITICAL
34 fi 34 fi
35fi 35fi
diff --git a/modules/private/monitoring/plugins/check_redis_replication b/modules/private/monitoring/plugins/check_redis_replication
index 7a884e1..6dbe4c4 100755
--- a/modules/private/monitoring/plugins/check_redis_replication
+++ b/modules/private/monitoring/plugins/check_redis_replication
@@ -26,13 +26,13 @@ else
26 LC_ALL=C lag=$(printf "%.*f" 0 $lag) 26 LC_ALL=C lag=$(printf "%.*f" 0 $lag)
27 27
28 if [[ $lag -lt 5 && $offset -lt 5 ]]; then 28 if [[ $lag -lt 5 && $offset -lt 5 ]]; then
29 echo "OK - $output" 29 echo "OK - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
30 exit $STATE_OK 30 exit $STATE_OK
31 elif [[ $lag -lt 10 && $offset -lt 10 ]]; then 31 elif [[ $lag -lt 10 && $offset -lt 10 ]]; then
32 echo "WARNING - $output" 32 echo "WARNING - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
33 exit $STATE_WARNING 33 exit $STATE_WARNING
34 else 34 else
35 echo "CRITICAL - $output" 35 echo "CRITICAL - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
36 exit $STATE_CRITICAL 36 exit $STATE_CRITICAL
37 fi 37 fi
38fi 38fi
diff --git a/modules/private/monitoring/status_engine.nix b/modules/private/monitoring/status_engine.nix
new file mode 100644
index 0000000..c74a44d
--- /dev/null
+++ b/modules/private/monitoring/status_engine.nix
@@ -0,0 +1,109 @@
1{ config, pkgs, lib, name, ... }:
2let
3 package = pkgs.status_engine.worker.override { config_file = config.secrets.fullPaths."status_engine"; };
4 env = config.myEnv.tools.status_engine;
5in
6{
7 config = lib.mkIf config.myServices.status.enable {
8 systemd.services.gearmand = {
9 description = "Gearman daemon";
10 after = [ "network.target" ];
11 wantedBy = [ "multi-user.target" ];
12 serviceConfig = {
13 DynamicUser = true;
14 User = "gearmand";
15 Type = "simple";
16 ExecStart = "${pkgs.gearmand}/bin/gearmand --syslog -L 127.0.0.1 -q libsqlite3 --libsqlite3-db /var/lib/gearmand/gearmand.db --store-queue-on-shutdown -l stderr -P /run/gearmand/gearmand.pid";
17 RuntimeDirectory = "gearmand";
18 StateDirectory = "gearmand";
19 };
20 };
21
22 secrets.keys = [{
23 dest = "status_engine";
24 permissions = "0400";
25 user = "naemon";
26 group = "naemon";
27 text = ''
28 node_name: ${name}
29 use_gearman: 1
30 gearman:
31 address: 127.0.0.1
32 port: 4730
33 timeout: 1000
34 use_rabbitmq: 0
35 use_redis: 1
36 redis:
37 address: 127.0.0.1
38 port: 6379
39 db: 0
40 store_live_data_in_archive_backend: 1
41 use_mysql: 1
42 mysql:
43 host: ${env.mysql.remoteHost}
44 port: ${env.mysql.port}
45 username: ${env.mysql.user}
46 password: ${env.mysql.password}
47 database: ${env.mysql.database}
48 use_crate: 0
49 number_of_bulk_records: 100
50 max_bulk_delay: 5
51 number_servicestatus_worker: 1
52 number_hoststatus_worker: 1
53 number_logentry_worker: 1
54 number_statechange_worker: 1
55 number_hostcheck_worker: 1
56 number_servicecheck_worker: 1
57 number_misc_worker: 1
58
59 process_perfdata: 1
60 number_perfdata_worker: 1
61 perfdata_backend:
62 - mysql
63
64 check_for_commands: 1
65 command_check_interval: 15
66 external_command_file: /run/naemon/naemon.cmd
67 query_handler: /run/naemon/naemon.qh
68 submit_method: qh
69
70 syslog_enabled: 1
71 syslog_tag: statusengine-worker
72
73 # Archive age
74 age_hostchecks: 5
75 age_host_acknowledgements: 60
76 age_host_notifications: 60
77 age_host_statehistory: 365
78 age_host_downtimes: 60
79 age_servicechecks: 5
80 age_service_acknowledgements: 60
81 age_service_notifications: 60
82 age_service_statehistory: 365
83 age_service_downtimes: 60
84 age_logentries: 5
85 age_tasks: 1
86 age_perfdata: 90
87
88 disable_http_proxy: 1
89 '';
90 }];
91
92 services.redis = rec {
93 enable = true;
94 bind = "127.0.0.1";
95 };
96
97 systemd.services.status_engine_worker = {
98 description = "Status engine worker";
99 after = [ "network.target" ];
100 wantedBy = [ "multi-user.target" ];
101 serviceConfig = {
102 Type = "simple";
103 Restart = "on-failure";
104 User = "naemon";
105 ExecStart = "${package}/bin/StatusengineWorker.php";
106 };
107 };
108 };
109}
diff --git a/modules/private/websites/default.nix b/modules/private/websites/default.nix
index 864d5d9..f84567e 100644
--- a/modules/private/websites/default.nix
+++ b/modules/private/websites/default.nix
@@ -295,6 +295,7 @@ in
295 tools.mastodon.enable = true; 295 tools.mastodon.enable = true;
296 tools.mediagoblin.enable = true; 296 tools.mediagoblin.enable = true;
297 tools.peertube.enable = true; 297 tools.peertube.enable = true;
298 tools.performance.enable = true;
298 tools.tools.enable = true; 299 tools.tools.enable = true;
299 tools.email.enable = true; 300 tools.email.enable = true;
300 301
diff --git a/modules/private/websites/tools/performance/default.nix b/modules/private/websites/tools/performance/default.nix
new file mode 100644
index 0000000..df2b58d
--- /dev/null
+++ b/modules/private/websites/tools/performance/default.nix
@@ -0,0 +1,89 @@
1{ pkgs, lib, config, ... }:
2let
3 env = config.myEnv.tools.status_engine;
4 package = pkgs.status_engine.interface.override({ config_file = config.secrets.fullPaths."status_engine_ui"; });
5 apacheRoot = "${package}/public";
6 cfg = config.myServices.websites.tools.performance;
7in
8{
9 options.myServices.websites.tools.performance = {
10 enable = lib.mkEnableOption "Enable performance website";
11 };
12
13 config = lib.mkIf cfg.enable {
14 secrets.keys = [
15 {
16 dest = "status_engine_ui";
17 permissions = "0400";
18 user = "wwwrun";
19 group = "wwwrun";
20 text = ''
21 allow_anonymous: 0
22 anonymous_can_submit_commands: 0
23 urls_without_login:
24 - login
25 - loginstate
26 auth_type: ldap
27 ldap_server: ${env.ldap.host}
28 ldap_use_ssl: 1
29 ldap_port: 636
30 ldap_bind_dn: ${env.ldap.dn}
31 ldap_bind_password: ${env.ldap.password}
32 ldap_base_dn: ${env.ldap.base}
33 ldap_filter: "${env.ldap.filter}"
34 ldap_attribute:
35 - memberOf
36 use_crate: 0
37 use_mysql: 1
38 mysql:
39 host: 127.0.0.1
40 port: ${env.mysql.port}
41 username: ${env.mysql.user}
42 password: ${env.mysql.password}
43 database: ${env.mysql.database}
44 display_perfdata: 1
45 perfdata_backend: mysql
46 '';
47 }
48 ];
49
50 services.websites.env.tools.modules = [ "proxy_fcgi" ];
51
52 services.websites.env.tools.vhostConfs.performance = {
53 certName = "eldiron";
54 addToCerts = true;
55 hosts = [ "performance.immae.eu" ];
56 root = apacheRoot;
57 extraConfig = [
58 ''
59 <Directory ${apacheRoot}>
60 DirectoryIndex index.html
61 AllowOverride None
62 Require all granted
63 <FilesMatch "\.php$">
64 SetHandler "proxy:unix:${config.services.phpfpm.pools.status_engine.socket}|fcgi://localhost"
65 </FilesMatch>
66 </Directory>
67 ''
68 ];
69 };
70
71 services.phpfpm.pools.status_engine = {
72 user = "wwwrun";
73 group = "wwwrun";
74 settings = {
75 "listen.owner" = "wwwrun";
76 "listen.group" = "wwwrun";
77 "pm" = "dynamic";
78 "pm.max_children" = "60";
79 "pm.start_servers" = "2";
80 "pm.min_spare_servers" = "1";
81 "pm.max_spare_servers" = "10";
82
83 "php_admin_value[open_basedir]" = "${package}:/tmp:/var/secrets/status_engine_ui";
84 };
85 phpPackage = pkgs.php74;
86 };
87
88 };
89}
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 03fee4f..702f4cf 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -51,6 +51,12 @@ rec {
51 monitoring-plugins = callPackage ./monitoring-plugins {}; 51 monitoring-plugins = callPackage ./monitoring-plugins {};
52 naemon = callPackage ./naemon { inherit mylibs monitoring-plugins; }; 52 naemon = callPackage ./naemon { inherit mylibs monitoring-plugins; };
53 naemon-livestatus = callPackage ./naemon-livestatus { inherit mylibs naemon; }; 53 naemon-livestatus = callPackage ./naemon-livestatus { inherit mylibs naemon; };
54 gearmand = callPackage ./gearmand {};
55 status_engine = {
56 module = callPackage ./status_engine/module.nix { inherit mylibs; };
57 worker = callPackage ./status_engine/worker.nix { inherit mylibs composerEnv; };
58 interface = callPackage ./status_engine/interface.nix { inherit composerEnv; };
59 };
54 60
55 python3PackagesPlus = callPackage ./python-packages { 61 python3PackagesPlus = callPackage ./python-packages {
56 python = python3; 62 python = python3;
diff --git a/pkgs/gearmand/default.nix b/pkgs/gearmand/default.nix
new file mode 100644
index 0000000..bb3be89
--- /dev/null
+++ b/pkgs/gearmand/default.nix
@@ -0,0 +1,16 @@
1{ stdenv, fetchurl, boost, gperf, libevent, libmysqlclient, libuuid, python3, sqlite, hiredis, postgresql, openssl }:
2stdenv.mkDerivation rec {
3 pname = "gearmand";
4 version = "1.1.19.1";
5 src = fetchurl {
6 url = "https://github.com/gearman/${pname}/releases/download/${version}/${pname}-${version}.tar.gz";
7 sha256 = "1yvb2r3n89p43nchsi3d4nwl0f4xsiy8msnacmm4x4hcdb8y19lf";
8 };
9 buildInputs = [ boost gperf libevent openssl libmysqlclient libuuid sqlite hiredis postgresql ];
10 configureFlags = [
11 "--with-boost=${boost.dev}"
12 "--with-boost-libdir=${boost}/lib"
13 "--with-openssl=${openssl.dev}"
14 "--enable-ssl"
15 ];
16}
diff --git a/pkgs/naemon/default.nix b/pkgs/naemon/default.nix
index 080a226..0341296 100644
--- a/pkgs/naemon/default.nix
+++ b/pkgs/naemon/default.nix
@@ -9,6 +9,7 @@
9 group ? "naemon" 9 group ? "naemon"
10}: 10}:
11stdenv.mkDerivation (mylibs.fetchedGithub ./naemon.json // { 11stdenv.mkDerivation (mylibs.fetchedGithub ./naemon.json // {
12 passthru.status_engine_version = "1-1-0";
12 preConfigure = '' 13 preConfigure = ''
13 ./autogen.sh || true 14 ./autogen.sh || true
14 ''; 15 '';
diff --git a/pkgs/naemon/naemon.json b/pkgs/naemon/naemon.json
index c68647f..2dc9809 100644
--- a/pkgs/naemon/naemon.json
+++ b/pkgs/naemon/naemon.json
@@ -1,5 +1,5 @@
1{ 1{
2 "tag": "ba6fd20-master", 2 "tag": "d7ac1c8-master",
3 "meta": { 3 "meta": {
4 "name": "naemon", 4 "name": "naemon",
5 "url": "https://github.com/naemon/naemon-core", 5 "url": "https://github.com/naemon/naemon-core",
@@ -8,8 +8,8 @@
8 "github": { 8 "github": {
9 "owner": "naemon", 9 "owner": "naemon",
10 "repo": "naemon-core", 10 "repo": "naemon-core",
11 "rev": "ba6fd20221fbdd5c99b4eb5dcf4ee5681c5a9495", 11 "rev": "d7ac1c824e01dbb1c4a6bd0550b324e7cf165d54",
12 "sha256": "15rvqg985nn05rsgkch4ix8y2wg7a6pb70d63ckzy1inwqjp8z46", 12 "sha256": "003grwciplnqfn9jh2km2pm6xxp8fxvmwihg3vmch8f0vfwcmv1m",
13 "fetchSubmodules": true 13 "fetchSubmodules": true
14 } 14 }
15} 15}
diff --git a/pkgs/status_engine/host_perfdata.patch b/pkgs/status_engine/host_perfdata.patch
new file mode 100644
index 0000000..0c8a20b
--- /dev/null
+++ b/pkgs/status_engine/host_perfdata.patch
@@ -0,0 +1,47 @@
1diff --git a/src/statusengine.c b/src/statusengine.c
2index cc0b06e..2a18dec 100644
3--- a/src/statusengine.c
4+++ b/src/statusengine.c
5@@ -304,6 +304,7 @@ int enable_ocsp = 0;
6
7 int use_restart_data=1;
8 int use_service_perfdata=0;
9+int use_host_perfdata=0;
10
11 int statusengine_process_config_var(char *arg);
12 int statusengine_process_module_args(char *args);
13@@ -612,6 +613,9 @@ int statusengine_process_config_var(char *arg) {
14 } else if (!strcmp(var, "use_service_perfdata")) {
15 use_service_perfdata = atoi(val);
16 logswitch(NSLOG_INFO_MESSAGE, "start with enabled use_service_perfdata");
17+ } else if (!strcmp(var, "use_host_perfdata")) {
18+ use_host_perfdata = atoi(val);
19+ logswitch(NSLOG_INFO_MESSAGE, "start with enabled use_host_perfdata");
20 } else {
21 return ERROR;
22 }
23@@ -1067,6 +1071,24 @@ int statusengine_handle_data(int event_type, void *data){
24 json_object_put(my_object);
25 free(raw_command);
26
27+ if(use_host_perfdata){
28+ my_object = json_object_new_object();
29+ json_object_object_add(my_object, "type", json_object_new_int(hostcheck->type));
30+ json_object_object_add(my_object, "flags", json_object_new_int(hostcheck->flags));
31+ json_object_object_add(my_object, "attr", json_object_new_int(hostcheck->attr));
32+ json_object_object_add(my_object, "timestamp", json_object_new_int(hostcheck->timestamp.tv_sec));
33+
34+ json_object *hostcheck_object = json_object_new_object();
35+ HOSTCHECKFIELD_STRING(host_name);
36+ HOSTCHECKFIELD_STRING(perf_data);
37+ json_object_object_add(hostcheck_object, "start_time", json_object_new_int64(nag_hostcheck->start_time.tv_sec));
38+
39+ json_object_object_add(my_object, "hostcheck", hostcheck_object);
40+ const char* json_string = json_object_to_json_string(my_object);
41+ statusengine_send_job("statusngin_host_perfdata", (void *)json_string);
42+
43+ json_object_put(my_object);
44+ }
45 }
46 break;
47
diff --git a/pkgs/status_engine/interface.nix b/pkgs/status_engine/interface.nix
new file mode 100644
index 0000000..7ee4889
--- /dev/null
+++ b/pkgs/status_engine/interface.nix
@@ -0,0 +1,21 @@
1{ stdenv, composerEnv, fetchurl, callPackage, config_file ? "/var/lib/status_engine/interface.yml" }:
2composerEnv.buildPackage (
3 import ./interface_php_packages.nix { inherit composerEnv fetchurl; } // rec {
4 pname = "interface";
5 version = "3.4.0";
6 name = "${pname}-${version}";
7 src = fetchurl {
8 url = "https://github.com/statusengine/${pname}/archive/${version}.tar.gz";
9 sha256 = "1l11cskv740xvqs9a2yj9zkvgvxvymaq5qap36g2r4hkqbfbbjj2";
10 };
11 unpackPhase = null;
12 postUnpack = ''
13 src=$(pwd)/$sourceRoot
14 '';
15 postInstall = ''
16 ln -s ${config_file} $out/etc/config.yml
17 '';
18 preInstall = ''
19 cp ${./interface_composer.lock} $out/composer.lock
20 '';
21 })
diff --git a/pkgs/status_engine/interface_composer.lock b/pkgs/status_engine/interface_composer.lock
new file mode 100644
index 0000000..8911d9f
--- /dev/null
+++ b/pkgs/status_engine/interface_composer.lock
@@ -0,0 +1,1323 @@
1{
2 "_readme": [
3 "This file locks the dependencies of your project to a known state",
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 "This file is @generated automatically"
6 ],
7 "content-hash": "668fd19407022566bb6a70398e2f954e",
8 "packages": [
9 {
10 "name": "crate/crate-dbal",
11 "version": "2.2.0",
12 "source": {
13 "type": "git",
14 "url": "https://github.com/crate/crate-dbal.git",
15 "reference": "f5e3f5cb4f2d32f00d2dde2b91beae17f38ff417"
16 },
17 "dist": {
18 "type": "zip",
19 "url": "https://api.github.com/repos/crate/crate-dbal/zipball/f5e3f5cb4f2d32f00d2dde2b91beae17f38ff417",
20 "reference": "f5e3f5cb4f2d32f00d2dde2b91beae17f38ff417",
21 "shasum": ""
22 },
23 "require": {
24 "crate/crate-pdo": "^1.0.0",
25 "doctrine/dbal": "^2.10.1",
26 "php": "^7.2"
27 },
28 "require-dev": {
29 "phpunit/phpunit": "^8.0",
30 "squizlabs/php_codesniffer": "~1.5.2"
31 },
32 "type": "library",
33 "autoload": {
34 "psr-0": {
35 "Crate\\DBAL": "src"
36 }
37 },
38 "notification-url": "https://packagist.org/downloads/",
39 "license": [
40 "Apache-2.0"
41 ],
42 "authors": [
43 {
44 "name": "Crate.io",
45 "email": "office@crate.io",
46 "homepage": "https://crate.io",
47 "role": "maintainer"
48 }
49 ],
50 "description": "Doctrine Database Abstraction Layer (DBAL) adapter for CrateDB",
51 "homepage": "https://github.com/crate/crate-dbal",
52 "keywords": [
53 "crate",
54 "database",
55 "dbal",
56 "doctrine"
57 ],
58 "time": "2020-01-08T08:31:16+00:00"
59 },
60 {
61 "name": "crate/crate-pdo",
62 "version": "1.0.1",
63 "source": {
64 "type": "git",
65 "url": "https://github.com/crate/crate-pdo.git",
66 "reference": "33332cef1a27844e473265e584223f142c37317f"
67 },
68 "dist": {
69 "type": "zip",
70 "url": "https://api.github.com/repos/crate/crate-pdo/zipball/33332cef1a27844e473265e584223f142c37317f",
71 "reference": "33332cef1a27844e473265e584223f142c37317f",
72 "shasum": ""
73 },
74 "require": {
75 "ext-pdo": "*",
76 "guzzlehttp/guzzle": "~6.0",
77 "php": "^7.2"
78 },
79 "require-dev": {
80 "phpstan/phpstan": "^0.9.2",
81 "phpunit/phpunit": "~7.0",
82 "squizlabs/php_codesniffer": "^2.8.1"
83 },
84 "type": "library",
85 "autoload": {
86 "psr-0": {
87 "Crate\\": "src"
88 }
89 },
90 "notification-url": "https://packagist.org/downloads/",
91 "license": [
92 "Apache-2.0"
93 ],
94 "authors": [
95 {
96 "name": "Crate.io",
97 "email": "office@crate.io",
98 "homepage": "https://crate.io",
99 "role": "maintainer"
100 }
101 ],
102 "description": "PDO adapter for CrateDB",
103 "homepage": "https://github.com/crate/crate-pdo",
104 "keywords": [
105 "crate",
106 "database",
107 "pdo"
108 ],
109 "time": "2019-04-09T07:48:20+00:00"
110 },
111 {
112 "name": "doctrine/cache",
113 "version": "1.10.1",
114 "source": {
115 "type": "git",
116 "url": "https://github.com/doctrine/cache.git",
117 "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3"
118 },
119 "dist": {
120 "type": "zip",
121 "url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
122 "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
123 "shasum": ""
124 },
125 "require": {
126 "php": "~7.1 || ^8.0"
127 },
128 "conflict": {
129 "doctrine/common": ">2.2,<2.4"
130 },
131 "require-dev": {
132 "alcaeus/mongo-php-adapter": "^1.1",
133 "doctrine/coding-standard": "^6.0",
134 "mongodb/mongodb": "^1.1",
135 "phpunit/phpunit": "^7.0",
136 "predis/predis": "~1.0"
137 },
138 "suggest": {
139 "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
140 },
141 "type": "library",
142 "extra": {
143 "branch-alias": {
144 "dev-master": "1.9.x-dev"
145 }
146 },
147 "autoload": {
148 "psr-4": {
149 "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
150 }
151 },
152 "notification-url": "https://packagist.org/downloads/",
153 "license": [
154 "MIT"
155 ],
156 "authors": [
157 {
158 "name": "Guilherme Blanco",
159 "email": "guilhermeblanco@gmail.com"
160 },
161 {
162 "name": "Roman Borschel",
163 "email": "roman@code-factory.org"
164 },
165 {
166 "name": "Benjamin Eberlei",
167 "email": "kontakt@beberlei.de"
168 },
169 {
170 "name": "Jonathan Wage",
171 "email": "jonwage@gmail.com"
172 },
173 {
174 "name": "Johannes Schmitt",
175 "email": "schmittjoh@gmail.com"
176 }
177 ],
178 "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
179 "homepage": "https://www.doctrine-project.org/projects/cache.html",
180 "keywords": [
181 "abstraction",
182 "apcu",
183 "cache",
184 "caching",
185 "couchdb",
186 "memcached",
187 "php",
188 "redis",
189 "xcache"
190 ],
191 "funding": [
192 {
193 "url": "https://www.doctrine-project.org/sponsorship.html",
194 "type": "custom"
195 },
196 {
197 "url": "https://www.patreon.com/phpdoctrine",
198 "type": "patreon"
199 },
200 {
201 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
202 "type": "tidelift"
203 }
204 ],
205 "time": "2020-05-27T16:24:54+00:00"
206 },
207 {
208 "name": "doctrine/dbal",
209 "version": "2.10.2",
210 "source": {
211 "type": "git",
212 "url": "https://github.com/doctrine/dbal.git",
213 "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8"
214 },
215 "dist": {
216 "type": "zip",
217 "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8",
218 "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8",
219 "shasum": ""
220 },
221 "require": {
222 "doctrine/cache": "^1.0",
223 "doctrine/event-manager": "^1.0",
224 "ext-pdo": "*",
225 "php": "^7.2"
226 },
227 "require-dev": {
228 "doctrine/coding-standard": "^6.0",
229 "jetbrains/phpstorm-stubs": "^2019.1",
230 "nikic/php-parser": "^4.4",
231 "phpstan/phpstan": "^0.12",
232 "phpunit/phpunit": "^8.4.1",
233 "symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
234 "vimeo/psalm": "^3.11"
235 },
236 "suggest": {
237 "symfony/console": "For helpful console commands such as SQL execution and import of files."
238 },
239 "bin": [
240 "bin/doctrine-dbal"
241 ],
242 "type": "library",
243 "extra": {
244 "branch-alias": {
245 "dev-master": "2.10.x-dev",
246 "dev-develop": "3.0.x-dev"
247 }
248 },
249 "autoload": {
250 "psr-4": {
251 "Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
252 }
253 },
254 "notification-url": "https://packagist.org/downloads/",
255 "license": [
256 "MIT"
257 ],
258 "authors": [
259 {
260 "name": "Guilherme Blanco",
261 "email": "guilhermeblanco@gmail.com"
262 },
263 {
264 "name": "Roman Borschel",
265 "email": "roman@code-factory.org"
266 },
267 {
268 "name": "Benjamin Eberlei",
269 "email": "kontakt@beberlei.de"
270 },
271 {
272 "name": "Jonathan Wage",
273 "email": "jonwage@gmail.com"
274 }
275 ],
276 "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
277 "homepage": "https://www.doctrine-project.org/projects/dbal.html",
278 "keywords": [
279 "abstraction",
280 "database",
281 "db2",
282 "dbal",
283 "mariadb",
284 "mssql",
285 "mysql",
286 "oci8",
287 "oracle",
288 "pdo",
289 "pgsql",
290 "postgresql",
291 "queryobject",
292 "sasql",
293 "sql",
294 "sqlanywhere",
295 "sqlite",
296 "sqlserver",
297 "sqlsrv"
298 ],
299 "funding": [
300 {
301 "url": "https://www.doctrine-project.org/sponsorship.html",
302 "type": "custom"
303 },
304 {
305 "url": "https://www.patreon.com/phpdoctrine",
306 "type": "patreon"
307 },
308 {
309 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
310 "type": "tidelift"
311 }
312 ],
313 "time": "2020-04-20T17:19:26+00:00"
314 },
315 {
316 "name": "doctrine/event-manager",
317 "version": "1.1.0",
318 "source": {
319 "type": "git",
320 "url": "https://github.com/doctrine/event-manager.git",
321 "reference": "629572819973f13486371cb611386eb17851e85c"
322 },
323 "dist": {
324 "type": "zip",
325 "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
326 "reference": "629572819973f13486371cb611386eb17851e85c",
327 "shasum": ""
328 },
329 "require": {
330 "php": "^7.1"
331 },
332 "conflict": {
333 "doctrine/common": "<2.9@dev"
334 },
335 "require-dev": {
336 "doctrine/coding-standard": "^6.0",
337 "phpunit/phpunit": "^7.0"
338 },
339 "type": "library",
340 "extra": {
341 "branch-alias": {
342 "dev-master": "1.0.x-dev"
343 }
344 },
345 "autoload": {
346 "psr-4": {
347 "Doctrine\\Common\\": "lib/Doctrine/Common"
348 }
349 },
350 "notification-url": "https://packagist.org/downloads/",
351 "license": [
352 "MIT"
353 ],
354 "authors": [
355 {
356 "name": "Guilherme Blanco",
357 "email": "guilhermeblanco@gmail.com"
358 },
359 {
360 "name": "Roman Borschel",
361 "email": "roman@code-factory.org"
362 },
363 {
364 "name": "Benjamin Eberlei",
365 "email": "kontakt@beberlei.de"
366 },
367 {
368 "name": "Jonathan Wage",
369 "email": "jonwage@gmail.com"
370 },
371 {
372 "name": "Johannes Schmitt",
373 "email": "schmittjoh@gmail.com"
374 },
375 {
376 "name": "Marco Pivetta",
377 "email": "ocramius@gmail.com"
378 }
379 ],
380 "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
381 "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
382 "keywords": [
383 "event",
384 "event dispatcher",
385 "event manager",
386 "event system",
387 "events"
388 ],
389 "time": "2019-11-10T09:48:07+00:00"
390 },
391 {
392 "name": "guzzlehttp/guzzle",
393 "version": "6.5.4",
394 "source": {
395 "type": "git",
396 "url": "https://github.com/guzzle/guzzle.git",
397 "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d"
398 },
399 "dist": {
400 "type": "zip",
401 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d",
402 "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d",
403 "shasum": ""
404 },
405 "require": {
406 "ext-json": "*",
407 "guzzlehttp/promises": "^1.0",
408 "guzzlehttp/psr7": "^1.6.1",
409 "php": ">=5.5",
410 "symfony/polyfill-intl-idn": "1.17.0"
411 },
412 "require-dev": {
413 "ext-curl": "*",
414 "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
415 "psr/log": "^1.1"
416 },
417 "suggest": {
418 "psr/log": "Required for using the Log middleware"
419 },
420 "type": "library",
421 "extra": {
422 "branch-alias": {
423 "dev-master": "6.5-dev"
424 }
425 },
426 "autoload": {
427 "psr-4": {
428 "GuzzleHttp\\": "src/"
429 },
430 "files": [
431 "src/functions_include.php"
432 ]
433 },
434 "notification-url": "https://packagist.org/downloads/",
435 "license": [
436 "MIT"
437 ],
438 "authors": [
439 {
440 "name": "Michael Dowling",
441 "email": "mtdowling@gmail.com",
442 "homepage": "https://github.com/mtdowling"
443 }
444 ],
445 "description": "Guzzle is a PHP HTTP client library",
446 "homepage": "http://guzzlephp.org/",
447 "keywords": [
448 "client",
449 "curl",
450 "framework",
451 "http",
452 "http client",
453 "rest",
454 "web service"
455 ],
456 "time": "2020-05-25T19:35:05+00:00"
457 },
458 {
459 "name": "guzzlehttp/promises",
460 "version": "v1.3.1",
461 "source": {
462 "type": "git",
463 "url": "https://github.com/guzzle/promises.git",
464 "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
465 },
466 "dist": {
467 "type": "zip",
468 "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
469 "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
470 "shasum": ""
471 },
472 "require": {
473 "php": ">=5.5.0"
474 },
475 "require-dev": {
476 "phpunit/phpunit": "^4.0"
477 },
478 "type": "library",
479 "extra": {
480 "branch-alias": {
481 "dev-master": "1.4-dev"
482 }
483 },
484 "autoload": {
485 "psr-4": {
486 "GuzzleHttp\\Promise\\": "src/"
487 },
488 "files": [
489 "src/functions_include.php"
490 ]
491 },
492 "notification-url": "https://packagist.org/downloads/",
493 "license": [
494 "MIT"
495 ],
496 "authors": [
497 {
498 "name": "Michael Dowling",
499 "email": "mtdowling@gmail.com",
500 "homepage": "https://github.com/mtdowling"
501 }
502 ],
503 "description": "Guzzle promises library",
504 "keywords": [
505 "promise"
506 ],
507 "time": "2016-12-20T10:07:11+00:00"
508 },
509 {
510 "name": "guzzlehttp/psr7",
511 "version": "1.6.1",
512 "source": {
513 "type": "git",
514 "url": "https://github.com/guzzle/psr7.git",
515 "reference": "239400de7a173fe9901b9ac7c06497751f00727a"
516 },
517 "dist": {
518 "type": "zip",
519 "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
520 "reference": "239400de7a173fe9901b9ac7c06497751f00727a",
521 "shasum": ""
522 },
523 "require": {
524 "php": ">=5.4.0",
525 "psr/http-message": "~1.0",
526 "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
527 },
528 "provide": {
529 "psr/http-message-implementation": "1.0"
530 },
531 "require-dev": {
532 "ext-zlib": "*",
533 "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
534 },
535 "suggest": {
536 "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
537 },
538 "type": "library",
539 "extra": {
540 "branch-alias": {
541 "dev-master": "1.6-dev"
542 }
543 },
544 "autoload": {
545 "psr-4": {
546 "GuzzleHttp\\Psr7\\": "src/"
547 },
548 "files": [
549 "src/functions_include.php"
550 ]
551 },
552 "notification-url": "https://packagist.org/downloads/",
553 "license": [
554 "MIT"
555 ],
556 "authors": [
557 {
558 "name": "Michael Dowling",
559 "email": "mtdowling@gmail.com",
560 "homepage": "https://github.com/mtdowling"
561 },
562 {
563 "name": "Tobias Schultze",
564 "homepage": "https://github.com/Tobion"
565 }
566 ],
567 "description": "PSR-7 message implementation that also provides common utility methods",
568 "keywords": [
569 "http",
570 "message",
571 "psr-7",
572 "request",
573 "response",
574 "stream",
575 "uri",
576 "url"
577 ],
578 "time": "2019-07-01T23:21:34+00:00"
579 },
580 {
581 "name": "nikic/fast-route",
582 "version": "v1.3.0",
583 "source": {
584 "type": "git",
585 "url": "https://github.com/nikic/FastRoute.git",
586 "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
587 },
588 "dist": {
589 "type": "zip",
590 "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
591 "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
592 "shasum": ""
593 },
594 "require": {
595 "php": ">=5.4.0"
596 },
597 "require-dev": {
598 "phpunit/phpunit": "^4.8.35|~5.7"
599 },
600 "type": "library",
601 "autoload": {
602 "psr-4": {
603 "FastRoute\\": "src/"
604 },
605 "files": [
606 "src/functions.php"
607 ]
608 },
609 "notification-url": "https://packagist.org/downloads/",
610 "license": [
611 "BSD-3-Clause"
612 ],
613 "authors": [
614 {
615 "name": "Nikita Popov",
616 "email": "nikic@php.net"
617 }
618 ],
619 "description": "Fast request router for PHP",
620 "keywords": [
621 "router",
622 "routing"
623 ],
624 "time": "2018-02-13T20:26:39+00:00"
625 },
626 {
627 "name": "paragonie/random_compat",
628 "version": "v9.99.99",
629 "source": {
630 "type": "git",
631 "url": "https://github.com/paragonie/random_compat.git",
632 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
633 },
634 "dist": {
635 "type": "zip",
636 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
637 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
638 "shasum": ""
639 },
640 "require": {
641 "php": "^7"
642 },
643 "require-dev": {
644 "phpunit/phpunit": "4.*|5.*",
645 "vimeo/psalm": "^1"
646 },
647 "suggest": {
648 "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
649 },
650 "type": "library",
651 "notification-url": "https://packagist.org/downloads/",
652 "license": [
653 "MIT"
654 ],
655 "authors": [
656 {
657 "name": "Paragon Initiative Enterprises",
658 "email": "security@paragonie.com",
659 "homepage": "https://paragonie.com"
660 }
661 ],
662 "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
663 "keywords": [
664 "csprng",
665 "polyfill",
666 "pseudorandom",
667 "random"
668 ],
669 "time": "2018-07-02T15:55:56+00:00"
670 },
671 {
672 "name": "pimple/pimple",
673 "version": "v3.3.0",
674 "source": {
675 "type": "git",
676 "url": "https://github.com/silexphp/Pimple.git",
677 "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930"
678 },
679 "dist": {
680 "type": "zip",
681 "url": "https://api.github.com/repos/silexphp/Pimple/zipball/e55d12f9d6a0e7f9c85992b73df1267f46279930",
682 "reference": "e55d12f9d6a0e7f9c85992b73df1267f46279930",
683 "shasum": ""
684 },
685 "require": {
686 "php": "^7.2.5",
687 "psr/container": "^1.0"
688 },
689 "require-dev": {
690 "symfony/phpunit-bridge": "^3.4|^4.4|^5.0"
691 },
692 "type": "library",
693 "extra": {
694 "branch-alias": {
695 "dev-master": "3.3.x-dev"
696 }
697 },
698 "autoload": {
699 "psr-0": {
700 "Pimple": "src/"
701 }
702 },
703 "notification-url": "https://packagist.org/downloads/",
704 "license": [
705 "MIT"
706 ],
707 "authors": [
708 {
709 "name": "Fabien Potencier",
710 "email": "fabien@symfony.com"
711 }
712 ],
713 "description": "Pimple, a simple Dependency Injection Container",
714 "homepage": "https://pimple.symfony.com",
715 "keywords": [
716 "container",
717 "dependency injection"
718 ],
719 "time": "2020-03-03T09:12:48+00:00"
720 },
721 {
722 "name": "psr/container",
723 "version": "1.0.0",
724 "source": {
725 "type": "git",
726 "url": "https://github.com/php-fig/container.git",
727 "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
728 },
729 "dist": {
730 "type": "zip",
731 "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
732 "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
733 "shasum": ""
734 },
735 "require": {
736 "php": ">=5.3.0"
737 },
738 "type": "library",
739 "extra": {
740 "branch-alias": {
741 "dev-master": "1.0.x-dev"
742 }
743 },
744 "autoload": {
745 "psr-4": {
746 "Psr\\Container\\": "src/"
747 }
748 },
749 "notification-url": "https://packagist.org/downloads/",
750 "license": [
751 "MIT"
752 ],
753 "authors": [
754 {
755 "name": "PHP-FIG",
756 "homepage": "http://www.php-fig.org/"
757 }
758 ],
759 "description": "Common Container Interface (PHP FIG PSR-11)",
760 "homepage": "https://github.com/php-fig/container",
761 "keywords": [
762 "PSR-11",
763 "container",
764 "container-interface",
765 "container-interop",
766 "psr"
767 ],
768 "time": "2017-02-14T16:28:37+00:00"
769 },
770 {
771 "name": "psr/http-message",
772 "version": "1.0.1",
773 "source": {
774 "type": "git",
775 "url": "https://github.com/php-fig/http-message.git",
776 "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
777 },
778 "dist": {
779 "type": "zip",
780 "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
781 "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
782 "shasum": ""
783 },
784 "require": {
785 "php": ">=5.3.0"
786 },
787 "type": "library",
788 "extra": {
789 "branch-alias": {
790 "dev-master": "1.0.x-dev"
791 }
792 },
793 "autoload": {
794 "psr-4": {
795 "Psr\\Http\\Message\\": "src/"
796 }
797 },
798 "notification-url": "https://packagist.org/downloads/",
799 "license": [
800 "MIT"
801 ],
802 "authors": [
803 {
804 "name": "PHP-FIG",
805 "homepage": "http://www.php-fig.org/"
806 }
807 ],
808 "description": "Common interface for HTTP messages",
809 "homepage": "https://github.com/php-fig/http-message",
810 "keywords": [
811 "http",
812 "http-message",
813 "psr",
814 "psr-7",
815 "request",
816 "response"
817 ],
818 "time": "2016-08-06T14:39:51+00:00"
819 },
820 {
821 "name": "ralouphie/getallheaders",
822 "version": "3.0.3",
823 "source": {
824 "type": "git",
825 "url": "https://github.com/ralouphie/getallheaders.git",
826 "reference": "120b605dfeb996808c31b6477290a714d356e822"
827 },
828 "dist": {
829 "type": "zip",
830 "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
831 "reference": "120b605dfeb996808c31b6477290a714d356e822",
832 "shasum": ""
833 },
834 "require": {
835 "php": ">=5.6"
836 },
837 "require-dev": {
838 "php-coveralls/php-coveralls": "^2.1",
839 "phpunit/phpunit": "^5 || ^6.5"
840 },
841 "type": "library",
842 "autoload": {
843 "files": [
844 "src/getallheaders.php"
845 ]
846 },
847 "notification-url": "https://packagist.org/downloads/",
848 "license": [
849 "MIT"
850 ],
851 "authors": [
852 {
853 "name": "Ralph Khattar",
854 "email": "ralph.khattar@gmail.com"
855 }
856 ],
857 "description": "A polyfill for getallheaders.",
858 "time": "2019-03-08T08:55:37+00:00"
859 },
860 {
861 "name": "slim/csrf",
862 "version": "0.8.3",
863 "source": {
864 "type": "git",
865 "url": "https://github.com/slimphp/Slim-Csrf.git",
866 "reference": "5f2bcf5d89adf86dc0455a32bea84d912ab466a7"
867 },
868 "dist": {
869 "type": "zip",
870 "url": "https://api.github.com/repos/slimphp/Slim-Csrf/zipball/5f2bcf5d89adf86dc0455a32bea84d912ab466a7",
871 "reference": "5f2bcf5d89adf86dc0455a32bea84d912ab466a7",
872 "shasum": ""
873 },
874 "require": {
875 "paragonie/random_compat": "^1.1|^2.0|^9.99",
876 "php": ">=5.5.0",
877 "psr/http-message": "^1.0"
878 },
879 "require-dev": {
880 "phpunit/phpunit": "^4.0",
881 "slim/slim": "~3.0"
882 },
883 "type": "library",
884 "autoload": {
885 "psr-4": {
886 "Slim\\Csrf\\": "src"
887 }
888 },
889 "notification-url": "https://packagist.org/downloads/",
890 "license": [
891 "MIT"
892 ],
893 "authors": [
894 {
895 "name": "Josh Lockhart",
896 "email": "hello@joshlockhart.com",
897 "homepage": "http://joshlockhart.com"
898 }
899 ],
900 "description": "Slim Framework 3 CSRF protection middleware",
901 "homepage": "http://slimframework.com",
902 "keywords": [
903 "csrf",
904 "framework",
905 "middleware",
906 "slim"
907 ],
908 "time": "2018-08-22T16:12:18+00:00"
909 },
910 {
911 "name": "slim/slim",
912 "version": "3.12.3",
913 "source": {
914 "type": "git",
915 "url": "https://github.com/slimphp/Slim.git",
916 "reference": "1c9318a84ffb890900901136d620b4f03a59da38"
917 },
918 "dist": {
919 "type": "zip",
920 "url": "https://api.github.com/repos/slimphp/Slim/zipball/1c9318a84ffb890900901136d620b4f03a59da38",
921 "reference": "1c9318a84ffb890900901136d620b4f03a59da38",
922 "shasum": ""
923 },
924 "require": {
925 "ext-json": "*",
926 "ext-libxml": "*",
927 "ext-simplexml": "*",
928 "nikic/fast-route": "^1.0",
929 "php": ">=5.5.0",
930 "pimple/pimple": "^3.0",
931 "psr/container": "^1.0",
932 "psr/http-message": "^1.0"
933 },
934 "provide": {
935 "psr/http-message-implementation": "1.0"
936 },
937 "require-dev": {
938 "phpunit/phpunit": "^4.0",
939 "squizlabs/php_codesniffer": "^2.5"
940 },
941 "type": "library",
942 "autoload": {
943 "psr-4": {
944 "Slim\\": "Slim"
945 }
946 },
947 "notification-url": "https://packagist.org/downloads/",
948 "license": [
949 "MIT"
950 ],
951 "authors": [
952 {
953 "name": "Josh Lockhart",
954 "email": "hello@joshlockhart.com",
955 "homepage": "https://joshlockhart.com"
956 },
957 {
958 "name": "Andrew Smith",
959 "email": "a.smith@silentworks.co.uk",
960 "homepage": "http://silentworks.co.uk"
961 },
962 {
963 "name": "Rob Allen",
964 "email": "rob@akrabat.com",
965 "homepage": "http://akrabat.com"
966 },
967 {
968 "name": "Gabriel Manricks",
969 "email": "gmanricks@me.com",
970 "homepage": "http://gabrielmanricks.com"
971 }
972 ],
973 "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
974 "homepage": "https://slimframework.com",
975 "keywords": [
976 "api",
977 "framework",
978 "micro",
979 "router"
980 ],
981 "time": "2019-11-28T17:40:33+00:00"
982 },
983 {
984 "name": "symfony/console",
985 "version": "v2.8.0",
986 "source": {
987 "type": "git",
988 "url": "https://github.com/symfony/console.git",
989 "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41"
990 },
991 "dist": {
992 "type": "zip",
993 "url": "https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
994 "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
995 "shasum": ""
996 },
997 "require": {
998 "php": ">=5.3.9",
999 "symfony/polyfill-mbstring": "~1.0"
1000 },
1001 "require-dev": {
1002 "psr/log": "~1.0",
1003 "symfony/event-dispatcher": "~2.1|~3.0.0",
1004 "symfony/process": "~2.1|~3.0.0"
1005 },
1006 "suggest": {
1007 "psr/log": "For using the console logger",
1008 "symfony/event-dispatcher": "",
1009 "symfony/process": ""
1010 },
1011 "type": "library",
1012 "extra": {
1013 "branch-alias": {
1014 "dev-master": "2.8-dev"
1015 }
1016 },
1017 "autoload": {
1018 "psr-4": {
1019 "Symfony\\Component\\Console\\": ""
1020 },
1021 "exclude-from-classmap": [
1022 "/Tests/"
1023 ]
1024 },
1025 "notification-url": "https://packagist.org/downloads/",
1026 "license": [
1027 "MIT"
1028 ],
1029 "authors": [
1030 {
1031 "name": "Fabien Potencier",
1032 "email": "fabien@symfony.com"
1033 },
1034 {
1035 "name": "Symfony Community",
1036 "homepage": "https://symfony.com/contributors"
1037 }
1038 ],
1039 "description": "Symfony Console Component",
1040 "homepage": "https://symfony.com",
1041 "time": "2015-11-30T12:35:10+00:00"
1042 },
1043 {
1044 "name": "symfony/polyfill-intl-idn",
1045 "version": "v1.17.0",
1046 "source": {
1047 "type": "git",
1048 "url": "https://github.com/symfony/polyfill-intl-idn.git",
1049 "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a"
1050 },
1051 "dist": {
1052 "type": "zip",
1053 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a",
1054 "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a",
1055 "shasum": ""
1056 },
1057 "require": {
1058 "php": ">=5.3.3",
1059 "symfony/polyfill-mbstring": "^1.3",
1060 "symfony/polyfill-php72": "^1.10"
1061 },
1062 "suggest": {
1063 "ext-intl": "For best performance"
1064 },
1065 "type": "library",
1066 "extra": {
1067 "branch-alias": {
1068 "dev-master": "1.17-dev"
1069 }
1070 },
1071 "autoload": {
1072 "psr-4": {
1073 "Symfony\\Polyfill\\Intl\\Idn\\": ""
1074 },
1075 "files": [
1076 "bootstrap.php"
1077 ]
1078 },
1079 "notification-url": "https://packagist.org/downloads/",
1080 "license": [
1081 "MIT"
1082 ],
1083 "authors": [
1084 {
1085 "name": "Laurent Bassin",
1086 "email": "laurent@bassin.info"
1087 },
1088 {
1089 "name": "Symfony Community",
1090 "homepage": "https://symfony.com/contributors"
1091 }
1092 ],
1093 "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
1094 "homepage": "https://symfony.com",
1095 "keywords": [
1096 "compatibility",
1097 "idn",
1098 "intl",
1099 "polyfill",
1100 "portable",
1101 "shim"
1102 ],
1103 "funding": [
1104 {
1105 "url": "https://symfony.com/sponsor",
1106 "type": "custom"
1107 },
1108 {
1109 "url": "https://github.com/fabpot",
1110 "type": "github"
1111 },
1112 {
1113 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1114 "type": "tidelift"
1115 }
1116 ],
1117 "time": "2020-05-12T16:47:27+00:00"
1118 },
1119 {
1120 "name": "symfony/polyfill-mbstring",
1121 "version": "v1.17.0",
1122 "source": {
1123 "type": "git",
1124 "url": "https://github.com/symfony/polyfill-mbstring.git",
1125 "reference": "fa79b11539418b02fc5e1897267673ba2c19419c"
1126 },
1127 "dist": {
1128 "type": "zip",
1129 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",
1130 "reference": "fa79b11539418b02fc5e1897267673ba2c19419c",
1131 "shasum": ""
1132 },
1133 "require": {
1134 "php": ">=5.3.3"
1135 },
1136 "suggest": {
1137 "ext-mbstring": "For best performance"
1138 },
1139 "type": "library",
1140 "extra": {
1141 "branch-alias": {
1142 "dev-master": "1.17-dev"
1143 }
1144 },
1145 "autoload": {
1146 "psr-4": {
1147 "Symfony\\Polyfill\\Mbstring\\": ""
1148 },
1149 "files": [
1150 "bootstrap.php"
1151 ]
1152 },
1153 "notification-url": "https://packagist.org/downloads/",
1154 "license": [
1155 "MIT"
1156 ],
1157 "authors": [
1158 {
1159 "name": "Nicolas Grekas",
1160 "email": "p@tchwork.com"
1161 },
1162 {
1163 "name": "Symfony Community",
1164 "homepage": "https://symfony.com/contributors"
1165 }
1166 ],
1167 "description": "Symfony polyfill for the Mbstring extension",
1168 "homepage": "https://symfony.com",
1169 "keywords": [
1170 "compatibility",
1171 "mbstring",
1172 "polyfill",
1173 "portable",
1174 "shim"
1175 ],
1176 "funding": [
1177 {
1178 "url": "https://symfony.com/sponsor",
1179 "type": "custom"
1180 },
1181 {
1182 "url": "https://github.com/fabpot",
1183 "type": "github"
1184 },
1185 {
1186 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1187 "type": "tidelift"
1188 }
1189 ],
1190 "time": "2020-05-12T16:47:27+00:00"
1191 },
1192 {
1193 "name": "symfony/polyfill-php72",
1194 "version": "v1.17.0",
1195 "source": {
1196 "type": "git",
1197 "url": "https://github.com/symfony/polyfill-php72.git",
1198 "reference": "f048e612a3905f34931127360bdd2def19a5e582"
1199 },
1200 "dist": {
1201 "type": "zip",
1202 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582",
1203 "reference": "f048e612a3905f34931127360bdd2def19a5e582",
1204 "shasum": ""
1205 },
1206 "require": {
1207 "php": ">=5.3.3"
1208 },
1209 "type": "library",
1210 "extra": {
1211 "branch-alias": {
1212 "dev-master": "1.17-dev"
1213 }
1214 },
1215 "autoload": {
1216 "psr-4": {
1217 "Symfony\\Polyfill\\Php72\\": ""
1218 },
1219 "files": [
1220 "bootstrap.php"
1221 ]
1222 },
1223 "notification-url": "https://packagist.org/downloads/",
1224 "license": [
1225 "MIT"
1226 ],
1227 "authors": [
1228 {
1229 "name": "Nicolas Grekas",
1230 "email": "p@tchwork.com"
1231 },
1232 {
1233 "name": "Symfony Community",
1234 "homepage": "https://symfony.com/contributors"
1235 }
1236 ],
1237 "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
1238 "homepage": "https://symfony.com",
1239 "keywords": [
1240 "compatibility",
1241 "polyfill",
1242 "portable",
1243 "shim"
1244 ],
1245 "funding": [
1246 {
1247 "url": "https://symfony.com/sponsor",
1248 "type": "custom"
1249 },
1250 {
1251 "url": "https://github.com/fabpot",
1252 "type": "github"
1253 },
1254 {
1255 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1256 "type": "tidelift"
1257 }
1258 ],
1259 "time": "2020-05-12T16:47:27+00:00"
1260 },
1261 {
1262 "name": "symfony/yaml",
1263 "version": "v2.8.0",
1264 "source": {
1265 "type": "git",
1266 "url": "https://github.com/symfony/yaml.git",
1267 "reference": "f79824187de95064a2f5038904c4d7f0227fedb5"
1268 },
1269 "dist": {
1270 "type": "zip",
1271 "url": "https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5",
1272 "reference": "f79824187de95064a2f5038904c4d7f0227fedb5",
1273 "shasum": ""
1274 },
1275 "require": {
1276 "php": ">=5.3.9"
1277 },
1278 "type": "library",
1279 "extra": {
1280 "branch-alias": {
1281 "dev-master": "2.8-dev"
1282 }
1283 },
1284 "autoload": {
1285 "psr-4": {
1286 "Symfony\\Component\\Yaml\\": ""
1287 },
1288 "exclude-from-classmap": [
1289 "/Tests/"
1290 ]
1291 },
1292 "notification-url": "https://packagist.org/downloads/",
1293 "license": [
1294 "MIT"
1295 ],
1296 "authors": [
1297 {
1298 "name": "Fabien Potencier",
1299 "email": "fabien@symfony.com"
1300 },
1301 {
1302 "name": "Symfony Community",
1303 "homepage": "https://symfony.com/contributors"
1304 }
1305 ],
1306 "description": "Symfony Yaml Component",
1307 "homepage": "https://symfony.com",
1308 "time": "2015-11-30T12:35:10+00:00"
1309 }
1310 ],
1311 "packages-dev": [],
1312 "aliases": [],
1313 "minimum-stability": "stable",
1314 "stability-flags": [],
1315 "prefer-stable": false,
1316 "prefer-lowest": false,
1317 "platform": {
1318 "php": ">=5.5.9",
1319 "ext-ldap": "*"
1320 },
1321 "platform-dev": [],
1322 "plugin-api-version": "1.1.0"
1323}
diff --git a/pkgs/status_engine/interface_php_packages.nix b/pkgs/status_engine/interface_php_packages.nix
new file mode 100644
index 0000000..d81e83c
--- /dev/null
+++ b/pkgs/status_engine/interface_php_packages.nix
@@ -0,0 +1,217 @@
1# Generated with composer2nix and adapted to return only the list of
2# packages
3{ composerEnv, fetchurl }:
4{
5 packages = {
6 "crate/crate-dbal" = {
7 targetDir = "";
8 src = composerEnv.buildZipPackage {
9 name = "crate-crate-dbal-f5e3f5cb4f2d32f00d2dde2b91beae17f38ff417";
10 src = fetchurl {
11 url = https://api.github.com/repos/crate/crate-dbal/zipball/f5e3f5cb4f2d32f00d2dde2b91beae17f38ff417;
12 sha256 = "0778m29av1nj6596b7x6xz6frd41nrswn20r327lpdfw7y6b19ni";
13 };
14 };
15 };
16 "crate/crate-pdo" = {
17 targetDir = "";
18 src = composerEnv.buildZipPackage {
19 name = "crate-crate-pdo-33332cef1a27844e473265e584223f142c37317f";
20 src = fetchurl {
21 url = https://api.github.com/repos/crate/crate-pdo/zipball/33332cef1a27844e473265e584223f142c37317f;
22 sha256 = "11w30hyr0lfw800aakl0ii8pwdv7vzpbjklw0z96hzsky788hfa7";
23 };
24 };
25 };
26 "doctrine/cache" = {
27 targetDir = "";
28 src = composerEnv.buildZipPackage {
29 name = "doctrine-cache-35a4a70cd94e09e2259dfae7488afc6b474ecbd3";
30 src = fetchurl {
31 url = https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3;
32 sha256 = "1fk0c8vhjgl7j4b2vd4k7sshdrqysqwcp9mlxbapf8x7nmpa6i9b";
33 };
34 };
35 };
36 "doctrine/dbal" = {
37 targetDir = "";
38 src = composerEnv.buildZipPackage {
39 name = "doctrine-dbal-aab745e7b6b2de3b47019da81e7225e14dcfdac8";
40 src = fetchurl {
41 url = https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8;
42 sha256 = "04c6r4p1b0iknjk95hpc4fsyxg8s2x1skfmnx2g11z64jvldzs62";
43 };
44 };
45 };
46 "doctrine/event-manager" = {
47 targetDir = "";
48 src = composerEnv.buildZipPackage {
49 name = "doctrine-event-manager-629572819973f13486371cb611386eb17851e85c";
50 src = fetchurl {
51 url = https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c;
52 sha256 = "02zglsk2zfnpabs83an7zg18h2k31h00vzk6qpawvmy35r1vmrfn";
53 };
54 };
55 };
56 "guzzlehttp/guzzle" = {
57 targetDir = "";
58 src = composerEnv.buildZipPackage {
59 name = "guzzlehttp-guzzle-a4a1b6930528a8f7ee03518e6442ec7a44155d9d";
60 src = fetchurl {
61 url = https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d;
62 sha256 = "0midln6ji6b990vkc0syn631nf6r94lv5600dcc26lcivz8c4gk3";
63 };
64 };
65 };
66 "guzzlehttp/promises" = {
67 targetDir = "";
68 src = composerEnv.buildZipPackage {
69 name = "guzzlehttp-promises-a59da6cf61d80060647ff4d3eb2c03a2bc694646";
70 src = fetchurl {
71 url = https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646;
72 sha256 = "1kpl91fzalcgkcs16lpakvzcnbkry3id4ynx6xhq477p4fipdciz";
73 };
74 };
75 };
76 "guzzlehttp/psr7" = {
77 targetDir = "";
78 src = composerEnv.buildZipPackage {
79 name = "guzzlehttp-psr7-239400de7a173fe9901b9ac7c06497751f00727a";
80 src = fetchurl {
81 url = https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a;
82 sha256 = "0mfq93x7ayix6l3v5jkk40a9hnmrxaqr9vk1r26q39d1s6292ma7";
83 };
84 };
85 };
86 "nikic/fast-route" = {
87 targetDir = "";
88 src = composerEnv.buildZipPackage {
89 name = "nikic-fast-route-181d480e08d9476e61381e04a71b34dc0432e812";
90 src = fetchurl {
91 url = https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812;
92 sha256 = "0sjqivm0gp6d6nal58n4r5wzyi21r4hdzn4v31ydgjgni7877p4i";
93 };
94 };
95 };
96 "paragonie/random_compat" = {
97 targetDir = "";
98 src = composerEnv.buildZipPackage {
99 name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95";
100 src = fetchurl {
101 url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95;
102 sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09";
103 };
104 };
105 };
106 "pimple/pimple" = {
107 targetDir = "";
108 src = composerEnv.buildZipPackage {
109 name = "pimple-pimple-e55d12f9d6a0e7f9c85992b73df1267f46279930";
110 src = fetchurl {
111 url = https://api.github.com/repos/silexphp/Pimple/zipball/e55d12f9d6a0e7f9c85992b73df1267f46279930;
112 sha256 = "0xmx8jc9shh2a63wg6574g6qc63w3nvr7w4062d97sbgnn62r6hw";
113 };
114 };
115 };
116 "psr/container" = {
117 targetDir = "";
118 src = composerEnv.buildZipPackage {
119 name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
120 src = fetchurl {
121 url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
122 sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
123 };
124 };
125 };
126 "psr/http-message" = {
127 targetDir = "";
128 src = composerEnv.buildZipPackage {
129 name = "psr-http-message-f6561bf28d520154e4b0ec72be95418abe6d9363";
130 src = fetchurl {
131 url = https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363;
132 sha256 = "195dd67hva9bmr52iadr4kyp2gw2f5l51lplfiay2pv6l9y4cf45";
133 };
134 };
135 };
136 "ralouphie/getallheaders" = {
137 targetDir = "";
138 src = composerEnv.buildZipPackage {
139 name = "ralouphie-getallheaders-120b605dfeb996808c31b6477290a714d356e822";
140 src = fetchurl {
141 url = https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822;
142 sha256 = "1bv7ndkkankrqlr2b4kw7qp3fl0dxi6bp26bnim6dnlhavd6a0gg";
143 };
144 };
145 };
146 "slim/csrf" = {
147 targetDir = "";
148 src = composerEnv.buildZipPackage {
149 name = "slim-csrf-5f2bcf5d89adf86dc0455a32bea84d912ab466a7";
150 src = fetchurl {
151 url = https://api.github.com/repos/slimphp/Slim-Csrf/zipball/5f2bcf5d89adf86dc0455a32bea84d912ab466a7;
152 sha256 = "1n8q8cgc2y60z7waqw9xyq9pl9dvww85rbdcnap55d5a55api8j5";
153 };
154 };
155 };
156 "slim/slim" = {
157 targetDir = "";
158 src = composerEnv.buildZipPackage {
159 name = "slim-slim-1c9318a84ffb890900901136d620b4f03a59da38";
160 src = fetchurl {
161 url = https://api.github.com/repos/slimphp/Slim/zipball/1c9318a84ffb890900901136d620b4f03a59da38;
162 sha256 = "08s7y7apz609vg745wr61nn0ji029zvnd0435fn3kmn57f8lgq7x";
163 };
164 };
165 };
166 "symfony/console" = {
167 targetDir = "";
168 src = composerEnv.buildZipPackage {
169 name = "symfony-console-d232bfc100dfd32b18ccbcab4bcc8f28697b7e41";
170 src = fetchurl {
171 url = https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41;
172 sha256 = "16kgs7x60y3vj0bbmljj80hq1x8fb6w1g0fd1j2hc1cbphgj8x67";
173 };
174 };
175 };
176 "symfony/polyfill-intl-idn" = {
177 targetDir = "";
178 src = composerEnv.buildZipPackage {
179 name = "symfony-polyfill-intl-idn-3bff59ea7047e925be6b7f2059d60af31bb46d6a";
180 src = fetchurl {
181 url = https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a;
182 sha256 = "0c26v3xpchyiqckp663n7i3hgswbzy56r0jdwjizrsgqq731h6fp";
183 };
184 };
185 };
186 "symfony/polyfill-mbstring" = {
187 targetDir = "";
188 src = composerEnv.buildZipPackage {
189 name = "symfony-polyfill-mbstring-fa79b11539418b02fc5e1897267673ba2c19419c";
190 src = fetchurl {
191 url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c;
192 sha256 = "17m46mkkcv7fsxf71si0cq8xdf6b1k272mc5bfwgl00h8s9bk0rs";
193 };
194 };
195 };
196 "symfony/polyfill-php72" = {
197 targetDir = "";
198 src = composerEnv.buildZipPackage {
199 name = "symfony-polyfill-php72-f048e612a3905f34931127360bdd2def19a5e582";
200 src = fetchurl {
201 url = https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582;
202 sha256 = "1lkjxh17nfaglh7v2m3zw2fy6b2w8nmxr7jb1gqqpvg74yqqz83f";
203 };
204 };
205 };
206 "symfony/yaml" = {
207 targetDir = "";
208 src = composerEnv.buildZipPackage {
209 name = "symfony-yaml-f79824187de95064a2f5038904c4d7f0227fedb5";
210 src = fetchurl {
211 url = https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5;
212 sha256 = "1pwx4bckfjz0afz62q02vl0i4wmg3c6f963jrhlx247b1z6isram";
213 };
214 };
215 };
216 };
217}
diff --git a/pkgs/status_engine/module.json b/pkgs/status_engine/module.json
new file mode 100644
index 0000000..5ed06d2
--- /dev/null
+++ b/pkgs/status_engine/module.json
@@ -0,0 +1,15 @@
1{
2 "tag": "d461e95-master",
3 "meta": {
4 "name": "statusengine-module",
5 "url": "https://github.com/statusengine/module",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "statusengine",
10 "repo": "module",
11 "rev": "d461e95a11fffaac604d11ac42d237b5e13071bc",
12 "sha256": "1awmq9rck9xy82pambnd2wh66ndif8x8jpk4qbbghs9f2sd48x1n",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/status_engine/module.nix b/pkgs/status_engine/module.nix
new file mode 100644
index 0000000..43d2b09
--- /dev/null
+++ b/pkgs/status_engine/module.nix
@@ -0,0 +1,10 @@
1{ stdenv, mylibs, gearmand, json_c, libuuid, libevent, pkgconfig, glib }:
2stdenv.mkDerivation (mylibs.fetchedGithub ./module.json // {
3 patches = [ ./host_perfdata.patch ];
4 buildInputs = [ gearmand json_c libuuid libevent pkgconfig glib ];
5 makeFlags = "all";
6 installPhase = ''
7 mkdir -p $out/lib/status-engine
8 cp -a src/bin/* $out/lib/status-engine
9 '';
10})
diff --git a/pkgs/status_engine/worker.json b/pkgs/status_engine/worker.json
new file mode 100644
index 0000000..301bab5
--- /dev/null
+++ b/pkgs/status_engine/worker.json
@@ -0,0 +1,15 @@
1{
2 "tag": "02267d4-master",
3 "meta": {
4 "name": "worker",
5 "url": "https://github.com/statusengine/worker",
6 "branch": "master"
7 },
8 "github": {
9 "owner": "statusengine",
10 "repo": "worker",
11 "rev": "02267d495ae69137d6765dc6b0f453f80216f1cf",
12 "sha256": "06ci4mkmifdf1z15yc8rxl44ppi45vjz4s136yaccq9d8vk9iyd4",
13 "fetchSubmodules": true
14 }
15}
diff --git a/pkgs/status_engine/worker.nix b/pkgs/status_engine/worker.nix
new file mode 100644
index 0000000..6c14449
--- /dev/null
+++ b/pkgs/status_engine/worker.nix
@@ -0,0 +1,25 @@
1{ stdenv, mylibs, composerEnv, fetchurl, gearmand, callPackage, php73, php73base, config_file ? "/var/lib/status_engine/ui.yml" }:
2let
3 # FIXME: present in php73.buildPecl in latest nixpkgs-unstable
4 gearman = (callPackage <nixpkgs/pkgs/build-support/build-pecl.nix> { php = php73base; }) rec {
5 version = "2.0.6";
6 pname = "gearman";
7 src = fetchurl {
8 url = "https://github.com/wcgallego/pecl-gearman/archive/${pname}-${version}.tar.gz";
9 sha256 = "0bliga4j41xkvdfh6bqi6k8x6mfxbi5sl9gix97axs7w0ncyfprz";
10 };
11 configureFlags = [ "--with-gearman=${gearmand}" ];
12 nativeBuildInputs = [ gearmand ];
13 };
14in
15(composerEnv.override {
16 php = php73.withExtensions(e: php73.enabledExtensions ++ (with php73.extensions; [gearman redis mbstring bcmath json iconv]));
17}).buildPackage (mylibs.fetchedGithub ./worker.json //
18 import ./worker_php_packages.nix { inherit composerEnv fetchurl; } // rec {
19 postInstall = ''
20 ln -s ${config_file} $out/etc/config.yml
21 '';
22 preInstall = ''
23 cp ${./worker_composer.lock} $out/composer.lock
24 '';
25})
diff --git a/pkgs/status_engine/worker_composer.lock b/pkgs/status_engine/worker_composer.lock
new file mode 100644
index 0000000..63f2646
--- /dev/null
+++ b/pkgs/status_engine/worker_composer.lock
@@ -0,0 +1,1457 @@
1{
2 "_readme": [
3 "This file locks the dependencies of your project to a known state",
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 "This file is @generated automatically"
6 ],
7 "content-hash": "0b9940904a72531dd233d2c1b0ea28a0",
8 "packages": [
9 {
10 "name": "crate/crate-dbal",
11 "version": "0.3.1",
12 "source": {
13 "type": "git",
14 "url": "https://github.com/crate/crate-dbal.git",
15 "reference": "3329f19d39f648bdd7613e5c8dc7e230f45814d9"
16 },
17 "dist": {
18 "type": "zip",
19 "url": "https://api.github.com/repos/crate/crate-dbal/zipball/3329f19d39f648bdd7613e5c8dc7e230f45814d9",
20 "reference": "3329f19d39f648bdd7613e5c8dc7e230f45814d9",
21 "shasum": ""
22 },
23 "require": {
24 "crate/crate-pdo": "~0.6.0",
25 "doctrine/dbal": "~2.5.5",
26 "php": "~5.5|~7.0"
27 },
28 "require-dev": {
29 "phpunit/phpunit": "~4.0",
30 "squizlabs/php_codesniffer": "~1.5.2"
31 },
32 "type": "library",
33 "autoload": {
34 "psr-0": {
35 "Crate\\DBAL": "src"
36 }
37 },
38 "notification-url": "https://packagist.org/downloads/",
39 "license": [
40 "Apache2"
41 ],
42 "description": "A Doctrine Database Abstraction Layer for the Crate.io DBMS",
43 "homepage": "https://github.com/crate/crate-dbal",
44 "keywords": [
45 "crate",
46 "database",
47 "dbal",
48 "doctrine"
49 ],
50 "time": "2017-04-07T13:26:54+00:00"
51 },
52 {
53 "name": "crate/crate-pdo",
54 "version": "0.6.3",
55 "source": {
56 "type": "git",
57 "url": "https://github.com/crate/crate-pdo.git",
58 "reference": "31a88d1004235327a4651a10a5b98a7803b3cde3"
59 },
60 "dist": {
61 "type": "zip",
62 "url": "https://api.github.com/repos/crate/crate-pdo/zipball/31a88d1004235327a4651a10a5b98a7803b3cde3",
63 "reference": "31a88d1004235327a4651a10a5b98a7803b3cde3",
64 "shasum": ""
65 },
66 "require": {
67 "ext-pdo": "*",
68 "guzzlehttp/guzzle": "~6.0",
69 "php": "~5.5|~7.0"
70 },
71 "require-dev": {
72 "phpunit/phpunit": "~4.0",
73 "squizlabs/php_codesniffer": "~1.5.2"
74 },
75 "type": "library",
76 "autoload": {
77 "psr-0": {
78 "Crate\\": "src"
79 }
80 },
81 "notification-url": "https://packagist.org/downloads/",
82 "license": [
83 "Apache2"
84 ],
85 "description": "A PDO adapter for interacting with the Crate.io DBMS",
86 "homepage": "https://github.com/crate/crate-pdo",
87 "keywords": [
88 "crate",
89 "database",
90 "pdo"
91 ],
92 "time": "2017-07-17T12:50:03+00:00"
93 },
94 {
95 "name": "doctrine/annotations",
96 "version": "1.10.3",
97 "source": {
98 "type": "git",
99 "url": "https://github.com/doctrine/annotations.git",
100 "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d"
101 },
102 "dist": {
103 "type": "zip",
104 "url": "https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d",
105 "reference": "5db60a4969eba0e0c197a19c077780aadbc43c5d",
106 "shasum": ""
107 },
108 "require": {
109 "doctrine/lexer": "1.*",
110 "ext-tokenizer": "*",
111 "php": "^7.1 || ^8.0"
112 },
113 "require-dev": {
114 "doctrine/cache": "1.*",
115 "phpunit/phpunit": "^7.5"
116 },
117 "type": "library",
118 "extra": {
119 "branch-alias": {
120 "dev-master": "1.9.x-dev"
121 }
122 },
123 "autoload": {
124 "psr-4": {
125 "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
126 }
127 },
128 "notification-url": "https://packagist.org/downloads/",
129 "license": [
130 "MIT"
131 ],
132 "authors": [
133 {
134 "name": "Guilherme Blanco",
135 "email": "guilhermeblanco@gmail.com"
136 },
137 {
138 "name": "Roman Borschel",
139 "email": "roman@code-factory.org"
140 },
141 {
142 "name": "Benjamin Eberlei",
143 "email": "kontakt@beberlei.de"
144 },
145 {
146 "name": "Jonathan Wage",
147 "email": "jonwage@gmail.com"
148 },
149 {
150 "name": "Johannes Schmitt",
151 "email": "schmittjoh@gmail.com"
152 }
153 ],
154 "description": "Docblock Annotations Parser",
155 "homepage": "http://www.doctrine-project.org",
156 "keywords": [
157 "annotations",
158 "docblock",
159 "parser"
160 ],
161 "time": "2020-05-25T17:24:27+00:00"
162 },
163 {
164 "name": "doctrine/cache",
165 "version": "1.10.1",
166 "source": {
167 "type": "git",
168 "url": "https://github.com/doctrine/cache.git",
169 "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3"
170 },
171 "dist": {
172 "type": "zip",
173 "url": "https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
174 "reference": "35a4a70cd94e09e2259dfae7488afc6b474ecbd3",
175 "shasum": ""
176 },
177 "require": {
178 "php": "~7.1 || ^8.0"
179 },
180 "conflict": {
181 "doctrine/common": ">2.2,<2.4"
182 },
183 "require-dev": {
184 "alcaeus/mongo-php-adapter": "^1.1",
185 "doctrine/coding-standard": "^6.0",
186 "mongodb/mongodb": "^1.1",
187 "phpunit/phpunit": "^7.0",
188 "predis/predis": "~1.0"
189 },
190 "suggest": {
191 "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
192 },
193 "type": "library",
194 "extra": {
195 "branch-alias": {
196 "dev-master": "1.9.x-dev"
197 }
198 },
199 "autoload": {
200 "psr-4": {
201 "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
202 }
203 },
204 "notification-url": "https://packagist.org/downloads/",
205 "license": [
206 "MIT"
207 ],
208 "authors": [
209 {
210 "name": "Guilherme Blanco",
211 "email": "guilhermeblanco@gmail.com"
212 },
213 {
214 "name": "Roman Borschel",
215 "email": "roman@code-factory.org"
216 },
217 {
218 "name": "Benjamin Eberlei",
219 "email": "kontakt@beberlei.de"
220 },
221 {
222 "name": "Jonathan Wage",
223 "email": "jonwage@gmail.com"
224 },
225 {
226 "name": "Johannes Schmitt",
227 "email": "schmittjoh@gmail.com"
228 }
229 ],
230 "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
231 "homepage": "https://www.doctrine-project.org/projects/cache.html",
232 "keywords": [
233 "abstraction",
234 "apcu",
235 "cache",
236 "caching",
237 "couchdb",
238 "memcached",
239 "php",
240 "redis",
241 "xcache"
242 ],
243 "funding": [
244 {
245 "url": "https://www.doctrine-project.org/sponsorship.html",
246 "type": "custom"
247 },
248 {
249 "url": "https://www.patreon.com/phpdoctrine",
250 "type": "patreon"
251 },
252 {
253 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
254 "type": "tidelift"
255 }
256 ],
257 "time": "2020-05-27T16:24:54+00:00"
258 },
259 {
260 "name": "doctrine/collections",
261 "version": "1.6.5",
262 "source": {
263 "type": "git",
264 "url": "https://github.com/doctrine/collections.git",
265 "reference": "fc0206348e17e530d09463fef07ba8968406cd6d"
266 },
267 "dist": {
268 "type": "zip",
269 "url": "https://api.github.com/repos/doctrine/collections/zipball/fc0206348e17e530d09463fef07ba8968406cd6d",
270 "reference": "fc0206348e17e530d09463fef07ba8968406cd6d",
271 "shasum": ""
272 },
273 "require": {
274 "php": "^7.1.3 || ^8.0"
275 },
276 "require-dev": {
277 "doctrine/coding-standard": "^6.0",
278 "phpstan/phpstan-shim": "^0.9.2",
279 "phpunit/phpunit": "^7.0",
280 "vimeo/psalm": "^3.8.1"
281 },
282 "type": "library",
283 "autoload": {
284 "psr-4": {
285 "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
286 }
287 },
288 "notification-url": "https://packagist.org/downloads/",
289 "license": [
290 "MIT"
291 ],
292 "authors": [
293 {
294 "name": "Guilherme Blanco",
295 "email": "guilhermeblanco@gmail.com"
296 },
297 {
298 "name": "Roman Borschel",
299 "email": "roman@code-factory.org"
300 },
301 {
302 "name": "Benjamin Eberlei",
303 "email": "kontakt@beberlei.de"
304 },
305 {
306 "name": "Jonathan Wage",
307 "email": "jonwage@gmail.com"
308 },
309 {
310 "name": "Johannes Schmitt",
311 "email": "schmittjoh@gmail.com"
312 }
313 ],
314 "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
315 "homepage": "https://www.doctrine-project.org/projects/collections.html",
316 "keywords": [
317 "array",
318 "collections",
319 "iterators",
320 "php"
321 ],
322 "funding": [
323 {
324 "url": "https://www.doctrine-project.org/sponsorship.html",
325 "type": "custom"
326 },
327 {
328 "url": "https://www.patreon.com/phpdoctrine",
329 "type": "patreon"
330 },
331 {
332 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections",
333 "type": "tidelift"
334 }
335 ],
336 "time": "2020-05-25T19:24:35+00:00"
337 },
338 {
339 "name": "doctrine/common",
340 "version": "v2.7.3",
341 "source": {
342 "type": "git",
343 "url": "https://github.com/doctrine/common.git",
344 "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
345 },
346 "dist": {
347 "type": "zip",
348 "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
349 "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
350 "shasum": ""
351 },
352 "require": {
353 "doctrine/annotations": "1.*",
354 "doctrine/cache": "1.*",
355 "doctrine/collections": "1.*",
356 "doctrine/inflector": "1.*",
357 "doctrine/lexer": "1.*",
358 "php": "~5.6|~7.0"
359 },
360 "require-dev": {
361 "phpunit/phpunit": "^5.4.6"
362 },
363 "type": "library",
364 "extra": {
365 "branch-alias": {
366 "dev-master": "2.7.x-dev"
367 }
368 },
369 "autoload": {
370 "psr-4": {
371 "Doctrine\\Common\\": "lib/Doctrine/Common"
372 }
373 },
374 "notification-url": "https://packagist.org/downloads/",
375 "license": [
376 "MIT"
377 ],
378 "authors": [
379 {
380 "name": "Roman Borschel",
381 "email": "roman@code-factory.org"
382 },
383 {
384 "name": "Benjamin Eberlei",
385 "email": "kontakt@beberlei.de"
386 },
387 {
388 "name": "Guilherme Blanco",
389 "email": "guilhermeblanco@gmail.com"
390 },
391 {
392 "name": "Jonathan Wage",
393 "email": "jonwage@gmail.com"
394 },
395 {
396 "name": "Johannes Schmitt",
397 "email": "schmittjoh@gmail.com"
398 }
399 ],
400 "description": "Common Library for Doctrine projects",
401 "homepage": "http://www.doctrine-project.org",
402 "keywords": [
403 "annotations",
404 "collections",
405 "eventmanager",
406 "persistence",
407 "spl"
408 ],
409 "time": "2017-07-22T08:35:12+00:00"
410 },
411 {
412 "name": "doctrine/dbal",
413 "version": "v2.5.13",
414 "source": {
415 "type": "git",
416 "url": "https://github.com/doctrine/dbal.git",
417 "reference": "729340d8d1eec8f01bff708e12e449a3415af873"
418 },
419 "dist": {
420 "type": "zip",
421 "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
422 "reference": "729340d8d1eec8f01bff708e12e449a3415af873",
423 "shasum": ""
424 },
425 "require": {
426 "doctrine/common": ">=2.4,<2.8-dev",
427 "php": ">=5.3.2"
428 },
429 "require-dev": {
430 "phpunit/phpunit": "4.*",
431 "symfony/console": "2.*||^3.0"
432 },
433 "suggest": {
434 "symfony/console": "For helpful console commands such as SQL execution and import of files."
435 },
436 "bin": [
437 "bin/doctrine-dbal"
438 ],
439 "type": "library",
440 "extra": {
441 "branch-alias": {
442 "dev-master": "2.5.x-dev"
443 }
444 },
445 "autoload": {
446 "psr-0": {
447 "Doctrine\\DBAL\\": "lib/"
448 }
449 },
450 "notification-url": "https://packagist.org/downloads/",
451 "license": [
452 "MIT"
453 ],
454 "authors": [
455 {
456 "name": "Roman Borschel",
457 "email": "roman@code-factory.org"
458 },
459 {
460 "name": "Benjamin Eberlei",
461 "email": "kontakt@beberlei.de"
462 },
463 {
464 "name": "Guilherme Blanco",
465 "email": "guilhermeblanco@gmail.com"
466 },
467 {
468 "name": "Jonathan Wage",
469 "email": "jonwage@gmail.com"
470 }
471 ],
472 "description": "Database Abstraction Layer",
473 "homepage": "http://www.doctrine-project.org",
474 "keywords": [
475 "database",
476 "dbal",
477 "persistence",
478 "queryobject"
479 ],
480 "time": "2017-07-22T20:44:48+00:00"
481 },
482 {
483 "name": "doctrine/inflector",
484 "version": "1.4.3",
485 "source": {
486 "type": "git",
487 "url": "https://github.com/doctrine/inflector.git",
488 "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c"
489 },
490 "dist": {
491 "type": "zip",
492 "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c",
493 "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c",
494 "shasum": ""
495 },
496 "require": {
497 "php": "^7.2 || ^8.0"
498 },
499 "require-dev": {
500 "doctrine/coding-standard": "^7.0",
501 "phpstan/phpstan": "^0.11",
502 "phpstan/phpstan-phpunit": "^0.11",
503 "phpstan/phpstan-strict-rules": "^0.11",
504 "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
505 },
506 "type": "library",
507 "extra": {
508 "branch-alias": {
509 "dev-master": "2.0.x-dev"
510 }
511 },
512 "autoload": {
513 "psr-4": {
514 "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector",
515 "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
516 }
517 },
518 "notification-url": "https://packagist.org/downloads/",
519 "license": [
520 "MIT"
521 ],
522 "authors": [
523 {
524 "name": "Guilherme Blanco",
525 "email": "guilhermeblanco@gmail.com"
526 },
527 {
528 "name": "Roman Borschel",
529 "email": "roman@code-factory.org"
530 },
531 {
532 "name": "Benjamin Eberlei",
533 "email": "kontakt@beberlei.de"
534 },
535 {
536 "name": "Jonathan Wage",
537 "email": "jonwage@gmail.com"
538 },
539 {
540 "name": "Johannes Schmitt",
541 "email": "schmittjoh@gmail.com"
542 }
543 ],
544 "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
545 "homepage": "https://www.doctrine-project.org/projects/inflector.html",
546 "keywords": [
547 "inflection",
548 "inflector",
549 "lowercase",
550 "manipulation",
551 "php",
552 "plural",
553 "singular",
554 "strings",
555 "uppercase",
556 "words"
557 ],
558 "funding": [
559 {
560 "url": "https://www.doctrine-project.org/sponsorship.html",
561 "type": "custom"
562 },
563 {
564 "url": "https://www.patreon.com/phpdoctrine",
565 "type": "patreon"
566 },
567 {
568 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
569 "type": "tidelift"
570 }
571 ],
572 "time": "2020-05-29T07:19:59+00:00"
573 },
574 {
575 "name": "doctrine/lexer",
576 "version": "1.2.1",
577 "source": {
578 "type": "git",
579 "url": "https://github.com/doctrine/lexer.git",
580 "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
581 },
582 "dist": {
583 "type": "zip",
584 "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
585 "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
586 "shasum": ""
587 },
588 "require": {
589 "php": "^7.2 || ^8.0"
590 },
591 "require-dev": {
592 "doctrine/coding-standard": "^6.0",
593 "phpstan/phpstan": "^0.11.8",
594 "phpunit/phpunit": "^8.2"
595 },
596 "type": "library",
597 "extra": {
598 "branch-alias": {
599 "dev-master": "1.2.x-dev"
600 }
601 },
602 "autoload": {
603 "psr-4": {
604 "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
605 }
606 },
607 "notification-url": "https://packagist.org/downloads/",
608 "license": [
609 "MIT"
610 ],
611 "authors": [
612 {
613 "name": "Guilherme Blanco",
614 "email": "guilhermeblanco@gmail.com"
615 },
616 {
617 "name": "Roman Borschel",
618 "email": "roman@code-factory.org"
619 },
620 {
621 "name": "Johannes Schmitt",
622 "email": "schmittjoh@gmail.com"
623 }
624 ],
625 "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
626 "homepage": "https://www.doctrine-project.org/projects/lexer.html",
627 "keywords": [
628 "annotations",
629 "docblock",
630 "lexer",
631 "parser",
632 "php"
633 ],
634 "funding": [
635 {
636 "url": "https://www.doctrine-project.org/sponsorship.html",
637 "type": "custom"
638 },
639 {
640 "url": "https://www.patreon.com/phpdoctrine",
641 "type": "patreon"
642 },
643 {
644 "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
645 "type": "tidelift"
646 }
647 ],
648 "time": "2020-05-25T17:44:05+00:00"
649 },
650 {
651 "name": "guzzlehttp/guzzle",
652 "version": "6.5.4",
653 "source": {
654 "type": "git",
655 "url": "https://github.com/guzzle/guzzle.git",
656 "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d"
657 },
658 "dist": {
659 "type": "zip",
660 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d",
661 "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d",
662 "shasum": ""
663 },
664 "require": {
665 "ext-json": "*",
666 "guzzlehttp/promises": "^1.0",
667 "guzzlehttp/psr7": "^1.6.1",
668 "php": ">=5.5",
669 "symfony/polyfill-intl-idn": "1.17.0"
670 },
671 "require-dev": {
672 "ext-curl": "*",
673 "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
674 "psr/log": "^1.1"
675 },
676 "suggest": {
677 "psr/log": "Required for using the Log middleware"
678 },
679 "type": "library",
680 "extra": {
681 "branch-alias": {
682 "dev-master": "6.5-dev"
683 }
684 },
685 "autoload": {
686 "psr-4": {
687 "GuzzleHttp\\": "src/"
688 },
689 "files": [
690 "src/functions_include.php"
691 ]
692 },
693 "notification-url": "https://packagist.org/downloads/",
694 "license": [
695 "MIT"
696 ],
697 "authors": [
698 {
699 "name": "Michael Dowling",
700 "email": "mtdowling@gmail.com",
701 "homepage": "https://github.com/mtdowling"
702 }
703 ],
704 "description": "Guzzle is a PHP HTTP client library",
705 "homepage": "http://guzzlephp.org/",
706 "keywords": [
707 "client",
708 "curl",
709 "framework",
710 "http",
711 "http client",
712 "rest",
713 "web service"
714 ],
715 "time": "2020-05-25T19:35:05+00:00"
716 },
717 {
718 "name": "guzzlehttp/promises",
719 "version": "v1.3.1",
720 "source": {
721 "type": "git",
722 "url": "https://github.com/guzzle/promises.git",
723 "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
724 },
725 "dist": {
726 "type": "zip",
727 "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
728 "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
729 "shasum": ""
730 },
731 "require": {
732 "php": ">=5.5.0"
733 },
734 "require-dev": {
735 "phpunit/phpunit": "^4.0"
736 },
737 "type": "library",
738 "extra": {
739 "branch-alias": {
740 "dev-master": "1.4-dev"
741 }
742 },
743 "autoload": {
744 "psr-4": {
745 "GuzzleHttp\\Promise\\": "src/"
746 },
747 "files": [
748 "src/functions_include.php"
749 ]
750 },
751 "notification-url": "https://packagist.org/downloads/",
752 "license": [
753 "MIT"
754 ],
755 "authors": [
756 {
757 "name": "Michael Dowling",
758 "email": "mtdowling@gmail.com",
759 "homepage": "https://github.com/mtdowling"
760 }
761 ],
762 "description": "Guzzle promises library",
763 "keywords": [
764 "promise"
765 ],
766 "time": "2016-12-20T10:07:11+00:00"
767 },
768 {
769 "name": "guzzlehttp/psr7",
770 "version": "1.6.1",
771 "source": {
772 "type": "git",
773 "url": "https://github.com/guzzle/psr7.git",
774 "reference": "239400de7a173fe9901b9ac7c06497751f00727a"
775 },
776 "dist": {
777 "type": "zip",
778 "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
779 "reference": "239400de7a173fe9901b9ac7c06497751f00727a",
780 "shasum": ""
781 },
782 "require": {
783 "php": ">=5.4.0",
784 "psr/http-message": "~1.0",
785 "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
786 },
787 "provide": {
788 "psr/http-message-implementation": "1.0"
789 },
790 "require-dev": {
791 "ext-zlib": "*",
792 "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
793 },
794 "suggest": {
795 "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
796 },
797 "type": "library",
798 "extra": {
799 "branch-alias": {
800 "dev-master": "1.6-dev"
801 }
802 },
803 "autoload": {
804 "psr-4": {
805 "GuzzleHttp\\Psr7\\": "src/"
806 },
807 "files": [
808 "src/functions_include.php"
809 ]
810 },
811 "notification-url": "https://packagist.org/downloads/",
812 "license": [
813 "MIT"
814 ],
815 "authors": [
816 {
817 "name": "Michael Dowling",
818 "email": "mtdowling@gmail.com",
819 "homepage": "https://github.com/mtdowling"
820 },
821 {
822 "name": "Tobias Schultze",
823 "homepage": "https://github.com/Tobion"
824 }
825 ],
826 "description": "PSR-7 message implementation that also provides common utility methods",
827 "keywords": [
828 "http",
829 "message",
830 "psr-7",
831 "request",
832 "response",
833 "stream",
834 "uri",
835 "url"
836 ],
837 "time": "2019-07-01T23:21:34+00:00"
838 },
839 {
840 "name": "php-amqplib/php-amqplib",
841 "version": "v2.11.3",
842 "source": {
843 "type": "git",
844 "url": "https://github.com/php-amqplib/php-amqplib.git",
845 "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742"
846 },
847 "dist": {
848 "type": "zip",
849 "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/6353c5d2d3021a301914bc6566e695c99cfeb742",
850 "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742",
851 "shasum": ""
852 },
853 "require": {
854 "ext-mbstring": "*",
855 "ext-sockets": "*",
856 "php": ">=5.6.3",
857 "phpseclib/phpseclib": "^2.0.0"
858 },
859 "conflict": {
860 "php": "7.4.0 - 7.4.1"
861 },
862 "replace": {
863 "videlalvaro/php-amqplib": "self.version"
864 },
865 "require-dev": {
866 "ext-curl": "*",
867 "nategood/httpful": "^0.2.20",
868 "phpunit/phpunit": "^5.7|^6.5|^7.0",
869 "squizlabs/php_codesniffer": "^2.5"
870 },
871 "type": "library",
872 "extra": {
873 "branch-alias": {
874 "dev-master": "2.11-dev"
875 }
876 },
877 "autoload": {
878 "psr-4": {
879 "PhpAmqpLib\\": "PhpAmqpLib/"
880 }
881 },
882 "notification-url": "https://packagist.org/downloads/",
883 "license": [
884 "LGPL-2.1-or-later"
885 ],
886 "authors": [
887 {
888 "name": "Alvaro Videla",
889 "role": "Original Maintainer"
890 },
891 {
892 "name": "Raúl Araya",
893 "email": "nubeiro@gmail.com",
894 "role": "Maintainer"
895 },
896 {
897 "name": "Luke Bakken",
898 "email": "luke@bakken.io",
899 "role": "Maintainer"
900 },
901 {
902 "name": "Ramūnas Dronga",
903 "email": "github@ramuno.lt",
904 "role": "Maintainer"
905 }
906 ],
907 "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.",
908 "homepage": "https://github.com/php-amqplib/php-amqplib/",
909 "keywords": [
910 "message",
911 "queue",
912 "rabbitmq"
913 ],
914 "time": "2020-05-13T13:56:11+00:00"
915 },
916 {
917 "name": "phpseclib/phpseclib",
918 "version": "2.0.27",
919 "source": {
920 "type": "git",
921 "url": "https://github.com/phpseclib/phpseclib.git",
922 "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc"
923 },
924 "dist": {
925 "type": "zip",
926 "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
927 "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc",
928 "shasum": ""
929 },
930 "require": {
931 "php": ">=5.3.3"
932 },
933 "require-dev": {
934 "phing/phing": "~2.7",
935 "phpunit/phpunit": "^4.8.35|^5.7|^6.0",
936 "sami/sami": "~2.0",
937 "squizlabs/php_codesniffer": "~2.0"
938 },
939 "suggest": {
940 "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
941 "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
942 "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
943 "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
944 },
945 "type": "library",
946 "autoload": {
947 "files": [
948 "phpseclib/bootstrap.php"
949 ],
950 "psr-4": {
951 "phpseclib\\": "phpseclib/"
952 }
953 },
954 "notification-url": "https://packagist.org/downloads/",
955 "license": [
956 "MIT"
957 ],
958 "authors": [
959 {
960 "name": "Jim Wigginton",
961 "email": "terrafrost@php.net",
962 "role": "Lead Developer"
963 },
964 {
965 "name": "Patrick Monnerat",
966 "email": "pm@datasphere.ch",
967 "role": "Developer"
968 },
969 {
970 "name": "Andreas Fischer",
971 "email": "bantu@phpbb.com",
972 "role": "Developer"
973 },
974 {
975 "name": "Hans-Jürgen Petrich",
976 "email": "petrich@tronic-media.com",
977 "role": "Developer"
978 },
979 {
980 "name": "Graham Campbell",
981 "email": "graham@alt-three.com",
982 "role": "Developer"
983 }
984 ],
985 "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
986 "homepage": "http://phpseclib.sourceforge.net",
987 "keywords": [
988 "BigInteger",
989 "aes",
990 "asn.1",
991 "asn1",
992 "blowfish",
993 "crypto",
994 "cryptography",
995 "encryption",
996 "rsa",
997 "security",
998 "sftp",
999 "signature",
1000 "signing",
1001 "ssh",
1002 "twofish",
1003 "x.509",
1004 "x509"
1005 ],
1006 "funding": [
1007 {
1008 "url": "https://github.com/terrafrost",
1009 "type": "github"
1010 },
1011 {
1012 "url": "https://www.patreon.com/phpseclib",
1013 "type": "patreon"
1014 },
1015 {
1016 "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
1017 "type": "tidelift"
1018 }
1019 ],
1020 "time": "2020-04-04T23:17:33+00:00"
1021 },
1022 {
1023 "name": "psr/http-message",
1024 "version": "1.0.1",
1025 "source": {
1026 "type": "git",
1027 "url": "https://github.com/php-fig/http-message.git",
1028 "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
1029 },
1030 "dist": {
1031 "type": "zip",
1032 "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
1033 "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
1034 "shasum": ""
1035 },
1036 "require": {
1037 "php": ">=5.3.0"
1038 },
1039 "type": "library",
1040 "extra": {
1041 "branch-alias": {
1042 "dev-master": "1.0.x-dev"
1043 }
1044 },
1045 "autoload": {
1046 "psr-4": {
1047 "Psr\\Http\\Message\\": "src/"
1048 }
1049 },
1050 "notification-url": "https://packagist.org/downloads/",
1051 "license": [
1052 "MIT"
1053 ],
1054 "authors": [
1055 {
1056 "name": "PHP-FIG",
1057 "homepage": "http://www.php-fig.org/"
1058 }
1059 ],
1060 "description": "Common interface for HTTP messages",
1061 "homepage": "https://github.com/php-fig/http-message",
1062 "keywords": [
1063 "http",
1064 "http-message",
1065 "psr",
1066 "psr-7",
1067 "request",
1068 "response"
1069 ],
1070 "time": "2016-08-06T14:39:51+00:00"
1071 },
1072 {
1073 "name": "ralouphie/getallheaders",
1074 "version": "3.0.3",
1075 "source": {
1076 "type": "git",
1077 "url": "https://github.com/ralouphie/getallheaders.git",
1078 "reference": "120b605dfeb996808c31b6477290a714d356e822"
1079 },
1080 "dist": {
1081 "type": "zip",
1082 "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
1083 "reference": "120b605dfeb996808c31b6477290a714d356e822",
1084 "shasum": ""
1085 },
1086 "require": {
1087 "php": ">=5.6"
1088 },
1089 "require-dev": {
1090 "php-coveralls/php-coveralls": "^2.1",
1091 "phpunit/phpunit": "^5 || ^6.5"
1092 },
1093 "type": "library",
1094 "autoload": {
1095 "files": [
1096 "src/getallheaders.php"
1097 ]
1098 },
1099 "notification-url": "https://packagist.org/downloads/",
1100 "license": [
1101 "MIT"
1102 ],
1103 "authors": [
1104 {
1105 "name": "Ralph Khattar",
1106 "email": "ralph.khattar@gmail.com"
1107 }
1108 ],
1109 "description": "A polyfill for getallheaders.",
1110 "time": "2019-03-08T08:55:37+00:00"
1111 },
1112 {
1113 "name": "symfony/console",
1114 "version": "v2.8.0",
1115 "source": {
1116 "type": "git",
1117 "url": "https://github.com/symfony/console.git",
1118 "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41"
1119 },
1120 "dist": {
1121 "type": "zip",
1122 "url": "https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
1123 "reference": "d232bfc100dfd32b18ccbcab4bcc8f28697b7e41",
1124 "shasum": ""
1125 },
1126 "require": {
1127 "php": ">=5.3.9",
1128 "symfony/polyfill-mbstring": "~1.0"
1129 },
1130 "require-dev": {
1131 "psr/log": "~1.0",
1132 "symfony/event-dispatcher": "~2.1|~3.0.0",
1133 "symfony/process": "~2.1|~3.0.0"
1134 },
1135 "suggest": {
1136 "psr/log": "For using the console logger",
1137 "symfony/event-dispatcher": "",
1138 "symfony/process": ""
1139 },
1140 "type": "library",
1141 "extra": {
1142 "branch-alias": {
1143 "dev-master": "2.8-dev"
1144 }
1145 },
1146 "autoload": {
1147 "psr-4": {
1148 "Symfony\\Component\\Console\\": ""
1149 },
1150 "exclude-from-classmap": [
1151 "/Tests/"
1152 ]
1153 },
1154 "notification-url": "https://packagist.org/downloads/",
1155 "license": [
1156 "MIT"
1157 ],
1158 "authors": [
1159 {
1160 "name": "Fabien Potencier",
1161 "email": "fabien@symfony.com"
1162 },
1163 {
1164 "name": "Symfony Community",
1165 "homepage": "https://symfony.com/contributors"
1166 }
1167 ],
1168 "description": "Symfony Console Component",
1169 "homepage": "https://symfony.com",
1170 "time": "2015-11-30T12:35:10+00:00"
1171 },
1172 {
1173 "name": "symfony/polyfill-intl-idn",
1174 "version": "v1.17.0",
1175 "source": {
1176 "type": "git",
1177 "url": "https://github.com/symfony/polyfill-intl-idn.git",
1178 "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a"
1179 },
1180 "dist": {
1181 "type": "zip",
1182 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a",
1183 "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a",
1184 "shasum": ""
1185 },
1186 "require": {
1187 "php": ">=5.3.3",
1188 "symfony/polyfill-mbstring": "^1.3",
1189 "symfony/polyfill-php72": "^1.10"
1190 },
1191 "suggest": {
1192 "ext-intl": "For best performance"
1193 },
1194 "type": "library",
1195 "extra": {
1196 "branch-alias": {
1197 "dev-master": "1.17-dev"
1198 }
1199 },
1200 "autoload": {
1201 "psr-4": {
1202 "Symfony\\Polyfill\\Intl\\Idn\\": ""
1203 },
1204 "files": [
1205 "bootstrap.php"
1206 ]
1207 },
1208 "notification-url": "https://packagist.org/downloads/",
1209 "license": [
1210 "MIT"
1211 ],
1212 "authors": [
1213 {
1214 "name": "Laurent Bassin",
1215 "email": "laurent@bassin.info"
1216 },
1217 {
1218 "name": "Symfony Community",
1219 "homepage": "https://symfony.com/contributors"
1220 }
1221 ],
1222 "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
1223 "homepage": "https://symfony.com",
1224 "keywords": [
1225 "compatibility",
1226 "idn",
1227 "intl",
1228 "polyfill",
1229 "portable",
1230 "shim"
1231 ],
1232 "funding": [
1233 {
1234 "url": "https://symfony.com/sponsor",
1235 "type": "custom"
1236 },
1237 {
1238 "url": "https://github.com/fabpot",
1239 "type": "github"
1240 },
1241 {
1242 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1243 "type": "tidelift"
1244 }
1245 ],
1246 "time": "2020-05-12T16:47:27+00:00"
1247 },
1248 {
1249 "name": "symfony/polyfill-mbstring",
1250 "version": "v1.17.0",
1251 "source": {
1252 "type": "git",
1253 "url": "https://github.com/symfony/polyfill-mbstring.git",
1254 "reference": "fa79b11539418b02fc5e1897267673ba2c19419c"
1255 },
1256 "dist": {
1257 "type": "zip",
1258 "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",
1259 "reference": "fa79b11539418b02fc5e1897267673ba2c19419c",
1260 "shasum": ""
1261 },
1262 "require": {
1263 "php": ">=5.3.3"
1264 },
1265 "suggest": {
1266 "ext-mbstring": "For best performance"
1267 },
1268 "type": "library",
1269 "extra": {
1270 "branch-alias": {
1271 "dev-master": "1.17-dev"
1272 }
1273 },
1274 "autoload": {
1275 "psr-4": {
1276 "Symfony\\Polyfill\\Mbstring\\": ""
1277 },
1278 "files": [
1279 "bootstrap.php"
1280 ]
1281 },
1282 "notification-url": "https://packagist.org/downloads/",
1283 "license": [
1284 "MIT"
1285 ],
1286 "authors": [
1287 {
1288 "name": "Nicolas Grekas",
1289 "email": "p@tchwork.com"
1290 },
1291 {
1292 "name": "Symfony Community",
1293 "homepage": "https://symfony.com/contributors"
1294 }
1295 ],
1296 "description": "Symfony polyfill for the Mbstring extension",
1297 "homepage": "https://symfony.com",
1298 "keywords": [
1299 "compatibility",
1300 "mbstring",
1301 "polyfill",
1302 "portable",
1303 "shim"
1304 ],
1305 "funding": [
1306 {
1307 "url": "https://symfony.com/sponsor",
1308 "type": "custom"
1309 },
1310 {
1311 "url": "https://github.com/fabpot",
1312 "type": "github"
1313 },
1314 {
1315 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1316 "type": "tidelift"
1317 }
1318 ],
1319 "time": "2020-05-12T16:47:27+00:00"
1320 },
1321 {
1322 "name": "symfony/polyfill-php72",
1323 "version": "v1.17.0",
1324 "source": {
1325 "type": "git",
1326 "url": "https://github.com/symfony/polyfill-php72.git",
1327 "reference": "f048e612a3905f34931127360bdd2def19a5e582"
1328 },
1329 "dist": {
1330 "type": "zip",
1331 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582",
1332 "reference": "f048e612a3905f34931127360bdd2def19a5e582",
1333 "shasum": ""
1334 },
1335 "require": {
1336 "php": ">=5.3.3"
1337 },
1338 "type": "library",
1339 "extra": {
1340 "branch-alias": {
1341 "dev-master": "1.17-dev"
1342 }
1343 },
1344 "autoload": {
1345 "psr-4": {
1346 "Symfony\\Polyfill\\Php72\\": ""
1347 },
1348 "files": [
1349 "bootstrap.php"
1350 ]
1351 },
1352 "notification-url": "https://packagist.org/downloads/",
1353 "license": [
1354 "MIT"
1355 ],
1356 "authors": [
1357 {
1358 "name": "Nicolas Grekas",
1359 "email": "p@tchwork.com"
1360 },
1361 {
1362 "name": "Symfony Community",
1363 "homepage": "https://symfony.com/contributors"
1364 }
1365 ],
1366 "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
1367 "homepage": "https://symfony.com",
1368 "keywords": [
1369 "compatibility",
1370 "polyfill",
1371 "portable",
1372 "shim"
1373 ],
1374 "funding": [
1375 {
1376 "url": "https://symfony.com/sponsor",
1377 "type": "custom"
1378 },
1379 {
1380 "url": "https://github.com/fabpot",
1381 "type": "github"
1382 },
1383 {
1384 "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
1385 "type": "tidelift"
1386 }
1387 ],
1388 "time": "2020-05-12T16:47:27+00:00"
1389 },
1390 {
1391 "name": "symfony/yaml",
1392 "version": "v2.8.0",
1393 "source": {
1394 "type": "git",
1395 "url": "https://github.com/symfony/yaml.git",
1396 "reference": "f79824187de95064a2f5038904c4d7f0227fedb5"
1397 },
1398 "dist": {
1399 "type": "zip",
1400 "url": "https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5",
1401 "reference": "f79824187de95064a2f5038904c4d7f0227fedb5",
1402 "shasum": ""
1403 },
1404 "require": {
1405 "php": ">=5.3.9"
1406 },
1407 "type": "library",
1408 "extra": {
1409 "branch-alias": {
1410 "dev-master": "2.8-dev"
1411 }
1412 },
1413 "autoload": {
1414 "psr-4": {
1415 "Symfony\\Component\\Yaml\\": ""
1416 },
1417 "exclude-from-classmap": [
1418 "/Tests/"
1419 ]
1420 },
1421 "notification-url": "https://packagist.org/downloads/",
1422 "license": [
1423 "MIT"
1424 ],
1425 "authors": [
1426 {
1427 "name": "Fabien Potencier",
1428 "email": "fabien@symfony.com"
1429 },
1430 {
1431 "name": "Symfony Community",
1432 "homepage": "https://symfony.com/contributors"
1433 }
1434 ],
1435 "description": "Symfony Yaml Component",
1436 "homepage": "https://symfony.com",
1437 "time": "2015-11-30T12:35:10+00:00"
1438 }
1439 ],
1440 "packages-dev": [],
1441 "aliases": [],
1442 "minimum-stability": "stable",
1443 "stability-flags": [],
1444 "prefer-stable": false,
1445 "prefer-lowest": false,
1446 "platform": {
1447 "php": ">=5.5.9",
1448 "ext-redis": "*",
1449 "ext-gearman": "*",
1450 "ext-mbstring": "*",
1451 "ext-bcmath": "*",
1452 "ext-json": "*",
1453 "ext-iconv": "*"
1454 },
1455 "platform-dev": [],
1456 "plugin-api-version": "1.1.0"
1457}
diff --git a/pkgs/status_engine/worker_php_packages.nix b/pkgs/status_engine/worker_php_packages.nix
new file mode 100644
index 0000000..1d956ad
--- /dev/null
+++ b/pkgs/status_engine/worker_php_packages.nix
@@ -0,0 +1,217 @@
1# Generated with composer2nix and adapted to return only the list of
2# packages
3{ composerEnv, fetchurl }:
4{
5 packages = {
6 "crate/crate-dbal" = {
7 targetDir = "";
8 src = composerEnv.buildZipPackage {
9 name = "crate-crate-dbal-3329f19d39f648bdd7613e5c8dc7e230f45814d9";
10 src = fetchurl {
11 url = https://api.github.com/repos/crate/crate-dbal/zipball/3329f19d39f648bdd7613e5c8dc7e230f45814d9;
12 sha256 = "013z63zcvrnmxphdm6qqy0if1397lmbb0g3yrpjbka98pg8zm99g";
13 };
14 };
15 };
16 "crate/crate-pdo" = {
17 targetDir = "";
18 src = composerEnv.buildZipPackage {
19 name = "crate-crate-pdo-31a88d1004235327a4651a10a5b98a7803b3cde3";
20 src = fetchurl {
21 url = https://api.github.com/repos/crate/crate-pdo/zipball/31a88d1004235327a4651a10a5b98a7803b3cde3;
22 sha256 = "194f6daj9ghlwyplp86nazh1av6jadqznwqijqgr1g3dfmgb3y16";
23 };
24 };
25 };
26 "doctrine/annotations" = {
27 targetDir = "";
28 src = composerEnv.buildZipPackage {
29 name = "doctrine-annotations-5db60a4969eba0e0c197a19c077780aadbc43c5d";
30 src = fetchurl {
31 url = https://api.github.com/repos/doctrine/annotations/zipball/5db60a4969eba0e0c197a19c077780aadbc43c5d;
32 sha256 = "1a8psmvs90x4nflfvjvp6j9yjmq6z9jgsb3plrp5c7iy7snkq1v2";
33 };
34 };
35 };
36 "doctrine/cache" = {
37 targetDir = "";
38 src = composerEnv.buildZipPackage {
39 name = "doctrine-cache-35a4a70cd94e09e2259dfae7488afc6b474ecbd3";
40 src = fetchurl {
41 url = https://api.github.com/repos/doctrine/cache/zipball/35a4a70cd94e09e2259dfae7488afc6b474ecbd3;
42 sha256 = "1fk0c8vhjgl7j4b2vd4k7sshdrqysqwcp9mlxbapf8x7nmpa6i9b";
43 };
44 };
45 };
46 "doctrine/collections" = {
47 targetDir = "";
48 src = composerEnv.buildZipPackage {
49 name = "doctrine-collections-fc0206348e17e530d09463fef07ba8968406cd6d";
50 src = fetchurl {
51 url = https://api.github.com/repos/doctrine/collections/zipball/fc0206348e17e530d09463fef07ba8968406cd6d;
52 sha256 = "1aqnjna5cc5hyy6wypmayvl5lgz2qbym6innmr3qaq9nff6r9qlf";
53 };
54 };
55 };
56 "doctrine/common" = {
57 targetDir = "";
58 src = composerEnv.buildZipPackage {
59 name = "doctrine-common-4acb8f89626baafede6ee5475bc5844096eba8a9";
60 src = fetchurl {
61 url = https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9;
62 sha256 = "0qjqframvg81z3lwqaj5haanqj9v3dfbj170pxmwlgmrfsbr16zh";
63 };
64 };
65 };
66 "doctrine/dbal" = {
67 targetDir = "";
68 src = composerEnv.buildZipPackage {
69 name = "doctrine-dbal-729340d8d1eec8f01bff708e12e449a3415af873";
70 src = fetchurl {
71 url = https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873;
72 sha256 = "184p8h0n6mcm0y6vfyh0z6qcxmmf8h5z4vdvxd4ycmx0531lnhj3";
73 };
74 };
75 };
76 "doctrine/inflector" = {
77 targetDir = "";
78 src = composerEnv.buildZipPackage {
79 name = "doctrine-inflector-4650c8b30c753a76bf44fb2ed00117d6f367490c";
80 src = fetchurl {
81 url = https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c;
82 sha256 = "13jnzwpzz63i6zipmhb22lv35l5gq6wmji0532c94331wcq5bvv9";
83 };
84 };
85 };
86 "doctrine/lexer" = {
87 targetDir = "";
88 src = composerEnv.buildZipPackage {
89 name = "doctrine-lexer-e864bbf5904cb8f5bb334f99209b48018522f042";
90 src = fetchurl {
91 url = https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042;
92 sha256 = "11lg9fcy0crb8inklajhx3kyffdbx7xzdj8kwl21xsgq9nm9iwvv";
93 };
94 };
95 };
96 "guzzlehttp/guzzle" = {
97 targetDir = "";
98 src = composerEnv.buildZipPackage {
99 name = "guzzlehttp-guzzle-a4a1b6930528a8f7ee03518e6442ec7a44155d9d";
100 src = fetchurl {
101 url = https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d;
102 sha256 = "0midln6ji6b990vkc0syn631nf6r94lv5600dcc26lcivz8c4gk3";
103 };
104 };
105 };
106 "guzzlehttp/promises" = {
107 targetDir = "";
108 src = composerEnv.buildZipPackage {
109 name = "guzzlehttp-promises-a59da6cf61d80060647ff4d3eb2c03a2bc694646";
110 src = fetchurl {
111 url = https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646;
112 sha256 = "1kpl91fzalcgkcs16lpakvzcnbkry3id4ynx6xhq477p4fipdciz";
113 };
114 };
115 };
116 "guzzlehttp/psr7" = {
117 targetDir = "";
118 src = composerEnv.buildZipPackage {
119 name = "guzzlehttp-psr7-239400de7a173fe9901b9ac7c06497751f00727a";
120 src = fetchurl {
121 url = https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a;
122 sha256 = "0mfq93x7ayix6l3v5jkk40a9hnmrxaqr9vk1r26q39d1s6292ma7";
123 };
124 };
125 };
126 "php-amqplib/php-amqplib" = {
127 targetDir = "";
128 src = composerEnv.buildZipPackage {
129 name = "php-amqplib-php-amqplib-6353c5d2d3021a301914bc6566e695c99cfeb742";
130 src = fetchurl {
131 url = https://api.github.com/repos/php-amqplib/php-amqplib/zipball/6353c5d2d3021a301914bc6566e695c99cfeb742;
132 sha256 = "1nadc5afkn1fiws2w1wh0n032pr5b4dzfg1dcqyf2jnh0nsgq0xp";
133 };
134 };
135 };
136 "phpseclib/phpseclib" = {
137 targetDir = "";
138 src = composerEnv.buildZipPackage {
139 name = "phpseclib-phpseclib-34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc";
140 src = fetchurl {
141 url = https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc;
142 sha256 = "1jlc8plx0v0rq3zqhc19a01r7xx7a2p6gl7mkzf2hn0kss50plz5";
143 };
144 };
145 };
146 "psr/http-message" = {
147 targetDir = "";
148 src = composerEnv.buildZipPackage {
149 name = "psr-http-message-f6561bf28d520154e4b0ec72be95418abe6d9363";
150 src = fetchurl {
151 url = https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363;
152 sha256 = "195dd67hva9bmr52iadr4kyp2gw2f5l51lplfiay2pv6l9y4cf45";
153 };
154 };
155 };
156 "ralouphie/getallheaders" = {
157 targetDir = "";
158 src = composerEnv.buildZipPackage {
159 name = "ralouphie-getallheaders-120b605dfeb996808c31b6477290a714d356e822";
160 src = fetchurl {
161 url = https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822;
162 sha256 = "1bv7ndkkankrqlr2b4kw7qp3fl0dxi6bp26bnim6dnlhavd6a0gg";
163 };
164 };
165 };
166 "symfony/console" = {
167 targetDir = "";
168 src = composerEnv.buildZipPackage {
169 name = "symfony-console-d232bfc100dfd32b18ccbcab4bcc8f28697b7e41";
170 src = fetchurl {
171 url = https://api.github.com/repos/symfony/console/zipball/d232bfc100dfd32b18ccbcab4bcc8f28697b7e41;
172 sha256 = "16kgs7x60y3vj0bbmljj80hq1x8fb6w1g0fd1j2hc1cbphgj8x67";
173 };
174 };
175 };
176 "symfony/polyfill-intl-idn" = {
177 targetDir = "";
178 src = composerEnv.buildZipPackage {
179 name = "symfony-polyfill-intl-idn-3bff59ea7047e925be6b7f2059d60af31bb46d6a";
180 src = fetchurl {
181 url = https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a;
182 sha256 = "0c26v3xpchyiqckp663n7i3hgswbzy56r0jdwjizrsgqq731h6fp";
183 };
184 };
185 };
186 "symfony/polyfill-mbstring" = {
187 targetDir = "";
188 src = composerEnv.buildZipPackage {
189 name = "symfony-polyfill-mbstring-fa79b11539418b02fc5e1897267673ba2c19419c";
190 src = fetchurl {
191 url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c;
192 sha256 = "17m46mkkcv7fsxf71si0cq8xdf6b1k272mc5bfwgl00h8s9bk0rs";
193 };
194 };
195 };
196 "symfony/polyfill-php72" = {
197 targetDir = "";
198 src = composerEnv.buildZipPackage {
199 name = "symfony-polyfill-php72-f048e612a3905f34931127360bdd2def19a5e582";
200 src = fetchurl {
201 url = https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582;
202 sha256 = "1lkjxh17nfaglh7v2m3zw2fy6b2w8nmxr7jb1gqqpvg74yqqz83f";
203 };
204 };
205 };
206 "symfony/yaml" = {
207 targetDir = "";
208 src = composerEnv.buildZipPackage {
209 name = "symfony-yaml-f79824187de95064a2f5038904c4d7f0227fedb5";
210 src = fetchurl {
211 url = https://api.github.com/repos/symfony/yaml/zipball/f79824187de95064a2f5038904c4d7f0227fedb5;
212 sha256 = "1pwx4bckfjz0afz62q02vl0i4wmg3c6f963jrhlx247b1z6isram";
213 };
214 };
215 };
216 };
217}