aboutsummaryrefslogtreecommitdiff
path: root/nixops
diff options
context:
space:
mode:
Diffstat (limited to 'nixops')
-rw-r--r--nixops/modules/websites/ludivine/default.nix11
-rw-r--r--nixops/modules/websites/ludivine/ludivinecassal.json14
-rw-r--r--nixops/modules/websites/ludivine/ludivinecassal.nix314
-rw-r--r--nixops/modules/websites/ludivine/php-packages.nix868
4 files changed, 148 insertions, 1059 deletions
diff --git a/nixops/modules/websites/ludivine/default.nix b/nixops/modules/websites/ludivine/default.nix
index 2fcd94a..bd2bbea 100644
--- a/nixops/modules/websites/ludivine/default.nix
+++ b/nixops/modules/websites/ludivine/default.nix
@@ -1,10 +1,11 @@
1{ lib, pkgs, config, myconfig, mylibs, ... }: 1{ lib, pkgs, config, myconfig, mylibs, ... }:
2let 2let
3 ludivinecassal = pkgs.callPackage ./ludivinecassal.nix { inherit (mylibs) fetchedGitPrivate; }; 3 ludivinecassal_dev = pkgs.callPackage ./ludivinecassal.nix {
4 ludivinecassal_dev = ludivinecassal { 4 inherit (pkgs.private.webapps) ludivinecassal;
5 config = myconfig.env.websites.ludivinecassal.integration; 5 config = myconfig.env.websites.ludivinecassal.integration;
6 }; 6 };
7 ludivinecassal_prod = ludivinecassal { 7 ludivinecassal_prod = pkgs.callPackage ./ludivinecassal.nix {
8 inherit (pkgs.private.webapps) ludivinecassal;
8 config = myconfig.env.websites.ludivinecassal.production; 9 config = myconfig.env.websites.ludivinecassal.production;
9 }; 10 };
10 11
@@ -37,7 +38,7 @@ in {
37 system.activationScripts.ludivinecassal_prod = ludivinecassal_prod.activationScript; 38 system.activationScripts.ludivinecassal_prod = ludivinecassal_prod.activationScript;
38 system.extraSystemBuilderCmds = '' 39 system.extraSystemBuilderCmds = ''
39 mkdir -p $out/webapps 40 mkdir -p $out/webapps
40 ln -s ${ludivinecassal_prod.webRoot} $out/webapps/${ludivinecassal_prod.apache.webappName} 41 ln -s ${ludivinecassal_prod.app.webRoot} $out/webapps/${ludivinecassal_prod.apache.webappName}
41 ''; 42 '';
42 services.myWebsites.production.modules = ludivinecassal_prod.apache.modules; 43 services.myWebsites.production.modules = ludivinecassal_prod.apache.modules;
43 services.myWebsites.production.vhostConfs.ludivine = { 44 services.myWebsites.production.vhostConfs.ludivine = {
@@ -57,7 +58,7 @@ in {
57 system.activationScripts.ludivinecassal_dev = ludivinecassal_dev.activationScript; 58 system.activationScripts.ludivinecassal_dev = ludivinecassal_dev.activationScript;
58 system.extraSystemBuilderCmds = '' 59 system.extraSystemBuilderCmds = ''
59 mkdir -p $out/webapps 60 mkdir -p $out/webapps
60 ln -s ${ludivinecassal_dev.webRoot} $out/webapps/${ludivinecassal_dev.apache.webappName} 61 ln -s ${ludivinecassal_dev.app.webRoot} $out/webapps/${ludivinecassal_dev.apache.webappName}
61 ''; 62 '';
62 services.myWebsites.apacheConfig.ludivinecassal_dev.modules = ludivinecassal_dev.apache.modules; 63 services.myWebsites.apacheConfig.ludivinecassal_dev.modules = ludivinecassal_dev.apache.modules;
63 services.myWebsites.integration.modules = ludivinecassal_dev.apache.modules; 64 services.myWebsites.integration.modules = ludivinecassal_dev.apache.modules;
diff --git a/nixops/modules/websites/ludivine/ludivinecassal.json b/nixops/modules/websites/ludivine/ludivinecassal.json
deleted file mode 100644
index f39b143..0000000
--- a/nixops/modules/websites/ludivine/ludivinecassal.json
+++ /dev/null
@@ -1,14 +0,0 @@
1{
2 "tag": "0dacc32-master",
3 "meta": {
4 "name": "ludivinecassal",
5 "url": "gitolite@git.immae.eu:perso/Immae/Sites/Ludivine",
6 "branch": "master"
7 },
8 "git": {
9 "url": "gitolite@git.immae.eu:perso/Immae/Sites/Ludivine",
10 "rev": "0dacc320ea052b69f79861c84bceaa89be53de60",
11 "sha256": "10khg1fq9ixly3xak591n3v0rv3f2hn91rd46d75yv3wjxaj1c2d",
12 "fetchSubmodules": true
13 }
14}
diff --git a/nixops/modules/websites/ludivine/ludivinecassal.nix b/nixops/modules/websites/ludivine/ludivinecassal.nix
index c12d89c..39fd088 100644
--- a/nixops/modules/websites/ludivine/ludivinecassal.nix
+++ b/nixops/modules/websites/ludivine/ludivinecassal.nix
@@ -1,187 +1,157 @@
1{ pkgs, lib, writeText, fetchedGitPrivate, stdenv, composerEnv, fetchurl, fetchgit, ruby, sass, imagemagick }: 1{ config, ludivinecassal, pkgs, ruby, sass, imagemagick }:
2let 2rec {
3 ludivinecassal = { config }: rec { 3 app = ludivinecassal.override { inherit (config) environment; };
4 environment = config.environment; 4 varDir = "/var/lib/ludivinecassal_${app.environment}";
5 varDir = "/var/lib/ludivinecassal_${environment}"; 5 keys = [{
6 keys = [{ 6 dest = "webapps/${app.environment}-ludivinecassal";
7 dest = "webapps/${environment}-ludivinecassal"; 7 user = apache.user;
8 user = apache.user; 8 group = apache.group;
9 group = apache.group; 9 permissions = "0400";
10 permissions = "0400"; 10 text = ''
11 text = '' 11 # This file is auto-generated during the composer install
12 # This file is auto-generated during the composer install 12 parameters:
13 parameters: 13 database_host: ${config.mysql.host}
14 database_host: ${config.mysql.host} 14 database_port: ${config.mysql.port}
15 database_port: ${config.mysql.port} 15 database_name: ${config.mysql.name}
16 database_name: ${config.mysql.name} 16 database_user: ${config.mysql.user}
17 database_user: ${config.mysql.user} 17 database_password: ${config.mysql.password}
18 database_password: ${config.mysql.password} 18 database_server_version: ${pkgs.mariadb.mysqlVersion}
19 database_server_version: ${pkgs.mariadb.mysqlVersion} 19 mailer_transport: smtp
20 mailer_transport: smtp 20 mailer_host: 127.0.0.1
21 mailer_host: 127.0.0.1 21 mailer_user: null
22 mailer_user: null 22 mailer_password: null
23 mailer_password: null 23 secret: ${config.secret}
24 secret: ${config.secret} 24 ldap_host: ldap.immae.eu
25 ldap_host: ldap.immae.eu 25 ldap_port: 636
26 ldap_port: 636 26 ldap_version: 3
27 ldap_version: 3 27 ldap_ssl: true
28 ldap_ssl: true 28 ldap_tls: false
29 ldap_tls: false 29 ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu'
30 ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu' 30 ldap_base_dn: 'dc=immae,dc=eu'
31 ldap_base_dn: 'dc=immae,dc=eu' 31 ldap_search_dn: '${config.ldap.dn}'
32 ldap_search_dn: '${config.ldap.dn}' 32 ldap_search_password: '${config.ldap.password}'
33 ldap_search_password: '${config.ldap.password}' 33 ldap_search_filter: '${config.ldap.search}'
34 ldap_search_filter: '${config.ldap.search}' 34 leapt_im:
35 leapt_im: 35 binary_path: ${imagemagick}/bin
36 binary_path: ${imagemagick}/bin 36 assetic:
37 assetic: 37 sass: ${sass}/bin/sass
38 sass: ${sass}/bin/sass 38 ruby: ${ruby}/bin/ruby
39 ruby: ${ruby}/bin/ruby 39 '';
40 }];
41 phpFpm = rec {
42 preStart = ''
43 if [ ! -f "${app.varDir}/currentWebappDir" -o \
44 ! -f "${app.varDir}/currentKey" -o \
45 "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
46 || ! sha512sum -c --status ${app.varDir}/currentKey; then
47 pushd ${app} > /dev/null
48 /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=${app.environment} cache:clear --no-warmup
49 popd > /dev/null
50 echo -n "${app}" > ${app.varDir}/currentWebappDir
51 sha512sum /var/secrets/webapps/${app.environment}-ludivinecassal > ${app.varDir}/currentKey
52 fi
40 ''; 53 '';
41 }]; 54 serviceDeps = [ "mysql.service" ];
42 phpFpm = rec { 55 socket = "/var/run/phpfpm/ludivinecassal-${app.environment}.sock";
43 preStart = '' 56 pool = ''
44 if [ ! -f "${varDir}/currentWebappDir" -o \ 57 listen = ${socket}
45 ! -f "${varDir}/currentKey" -o \ 58 user = ${apache.user}
46 "${webappDir}" != "$(cat ${varDir}/currentWebappDir 2>/dev/null)" ] \ 59 group = ${apache.group}
47 || ! sha512sum -c --status ${varDir}/currentKey; then 60 listen.owner = ${apache.user}
48 pushd ${webappDir} > /dev/null 61 listen.group = ${apache.group}
49 /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=${environment} cache:clear --no-warmup 62 php_admin_value[upload_max_filesize] = 20M
50 popd > /dev/null 63 php_admin_value[post_max_size] = 20M
51 echo -n "${webappDir}" > ${varDir}/currentWebappDir 64 ;php_admin_flag[log_errors] = on
52 sha512sum /var/secrets/webapps/${environment}-ludivinecassal > ${varDir}/currentKey 65 php_admin_value[open_basedir] = "/var/secrets/webapps/${app.environment}-ludivinecassal:${app}:${app.varDir}:/tmp"
53 fi 66 php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
54 ''; 67 ${if app.environment == "dev" then ''
55 serviceDeps = [ "mysql.service" ]; 68 pm = ondemand
56 socket = "/var/run/phpfpm/ludivinecassal-${environment}.sock"; 69 pm.max_children = 5
57 pool = '' 70 pm.process_idle_timeout = 60
58 listen = ${socket} 71 env[SYMFONY_DEBUG_MODE] = "yes"
59 user = ${apache.user} 72 '' else ''
60 group = ${apache.group} 73 pm = dynamic
61 listen.owner = ${apache.user} 74 pm.max_children = 20
62 listen.group = ${apache.group} 75 pm.start_servers = 2
63 php_admin_value[upload_max_filesize] = 20M 76 pm.min_spare_servers = 1
64 php_admin_value[post_max_size] = 20M 77 pm.max_spare_servers = 3
65 ;php_admin_flag[log_errors] = on 78 ''}'';
66 php_admin_value[open_basedir] = "/var/secrets/webapps/${environment}-ludivinecassal:${webappDir}:${varDir}:/tmp" 79 };
67 php_admin_value[session.save_path] = "${varDir}/phpSessions" 80 apache = rec {
68 ${if environment == "dev" then '' 81 user = "wwwrun";
69 pm = ondemand 82 group = "wwwrun";
70 pm.max_children = 5 83 modules = [ "proxy_fcgi" ];
71 pm.process_idle_timeout = 60 84 webappName = "ludivine_${app.environment}";
72 env[SYMFONY_DEBUG_MODE] = "yes" 85 root = "/run/current-system/webapps/${webappName}";
73 '' else '' 86 vhostConf = ''
74 pm = dynamic 87 <FilesMatch "\.php$">
75 pm.max_children = 20 88 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
76 pm.start_servers = 2 89 </FilesMatch>
77 pm.min_spare_servers = 1
78 pm.max_spare_servers = 3
79 ''}'';
80 };
81 apache = rec {
82 user = "wwwrun";
83 group = "wwwrun";
84 modules = [ "proxy_fcgi" ];
85 webappName = "ludivine_${environment}";
86 root = "/run/current-system/webapps/${webappName}";
87 vhostConf = ''
88 <FilesMatch "\.php$">
89 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
90 </FilesMatch>
91 90
92 ${if environment == "dev" then '' 91 ${if app.environment == "dev" then ''
93 <Location /> 92 <Location />
94 Use LDAPConnect 93 Use LDAPConnect
95 Require ldap-group cn=ludivine.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu 94 Require ldap-group cn=ludivine.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu
96 ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>" 95 ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>"
97 </Location> 96 </Location>
98 97
99 <Directory ${root}> 98 <Directory ${root}>
100 Options Indexes FollowSymLinks MultiViews Includes 99 Options Indexes FollowSymLinks MultiViews Includes
101 AllowOverride None 100 AllowOverride None
102 Require all granted 101 Require all granted
103 102
104 DirectoryIndex app_dev.php 103 DirectoryIndex app_dev.php
105 104
106 <IfModule mod_negotiation.c> 105 <IfModule mod_negotiation.c>
107 Options -MultiViews 106 Options -MultiViews
108 </IfModule> 107 </IfModule>
109 108
110 <IfModule mod_rewrite.c> 109 <IfModule mod_rewrite.c>
111 RewriteEngine On 110 RewriteEngine On
112 111
113 RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 112 RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
114 RewriteRule ^(.*) - [E=BASE:%1] 113 RewriteRule ^(.*) - [E=BASE:%1]
115 114
116 # Maintenance script 115 # Maintenance script
117 RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f 116 RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
118 RewriteCond %{SCRIPT_FILENAME} !maintenance.php 117 RewriteCond %{SCRIPT_FILENAME} !maintenance.php
119 RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] 118 RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L]
120 ErrorDocument 503 /maintenance.php 119 ErrorDocument 503 /maintenance.php
121 120
122 # Sets the HTTP_AUTHORIZATION header removed by Apache 121 # Sets the HTTP_AUTHORIZATION header removed by Apache
123 RewriteCond %{HTTP:Authorization} . 122 RewriteCond %{HTTP:Authorization} .
124 RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 123 RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
125 124
126 RewriteCond %{ENV:REDIRECT_STATUS} ^$ 125 RewriteCond %{ENV:REDIRECT_STATUS} ^$
127 RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] 126 RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
128 127
129 # If the requested filename exists, simply serve it. 128 # If the requested filename exists, simply serve it.
130 # We only want to let Apache serve files and not directories. 129 # We only want to let Apache serve files and not directories.
131 RewriteCond %{REQUEST_FILENAME} -f 130 RewriteCond %{REQUEST_FILENAME} -f
132 RewriteRule ^ - [L] 131 RewriteRule ^ - [L]
133 132
134 # Rewrite all other queries to the front controller. 133 # Rewrite all other queries to the front controller.
135 RewriteRule ^ %{ENV:BASE}/app_dev.php [L] 134 RewriteRule ^ %{ENV:BASE}/app_dev.php [L]
136 </IfModule> 135 </IfModule>
137 136
138 </Directory> 137 </Directory>
139 '' else '' 138 '' else ''
140 Use Stats ludivinecassal.com 139 Use Stats ludivinecassal.com
141 140
142 <Directory ${root}> 141 <Directory ${root}>
143 Options Indexes FollowSymLinks MultiViews Includes 142 Options Indexes FollowSymLinks MultiViews Includes
144 AllowOverride All 143 AllowOverride All
145 Require all granted 144 Require all granted
146 </Directory> 145 </Directory>
147 ''} 146 ''}
148 ''; 147 '';
149 }; 148 };
150 activationScript = { 149 activationScript = {
151 deps = [ "wrappers" ]; 150 deps = [ "wrappers" ];
152 text = '' 151 text = ''
153 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} 152 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${app.varDir}
154 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/tmp 153 install -m 0755 -o ${apache.user} -g ${apache.group} -d ${app.varDir}/tmp
155 install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions 154 install -m 0750 -o ${apache.user} -g ${apache.group} -d ${app.varDir}/phpSessions
156 ''; 155 '';
157 };
158 webappDir = composerEnv.buildPackage (
159 import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
160 fetchedGitPrivate ./ludivinecassal.json //
161 rec {
162 noDev = (environment == "prod");
163 preInstall = ''
164 export SYMFONY_ENV="${environment}"
165 cp app/config/parameters.yml.dist app/config/parameters.yml
166 cat >> app/config/parameters.yml <<EOF
167 leapt_im:
168 binary_path: ${imagemagick}/bin
169 assetic:
170 sass: ${sass}/bin/sass
171 ruby: ${ruby}/bin/ruby
172 EOF
173 sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json
174 '';
175 # /!\ miniatures and data need to be in the same physical dir due to a
176 # bug in leapt.im (searches for data/../miniatures)
177 postInstall = ''
178 rm -rf var/{logs,cache,data,miniatures,tmp}
179 ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/
180 ln -sf /var/secrets/webapps/${environment}-ludivinecassal app/config/parameters.yml
181 '';
182 buildInputs = [ sass ];
183 });
184 webRoot = "${webappDir}/web";
185 }; 156 };
186in 157}
187 ludivinecassal
diff --git a/nixops/modules/websites/ludivine/php-packages.nix b/nixops/modules/websites/ludivine/php-packages.nix
deleted file mode 100644
index be0c559..0000000
--- a/nixops/modules/websites/ludivine/php-packages.nix
+++ /dev/null
@@ -1,868 +0,0 @@
1# Generated with composer2nix and adapted to return only the list of
2# packages
3{ composerEnv, fetchurl, fetchgit ? null }:
4{
5 packages = {
6 "behat/transliterator" = {
7 targetDir = "";
8 src = composerEnv.buildZipPackage {
9 name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c";
10 src = fetchurl {
11 url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c;
12 sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0";
13 };
14 };
15 };
16 "components/bootstrap" = {
17 targetDir = "";
18 src = composerEnv.buildZipPackage {
19 name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f";
20 src = fetchurl {
21 url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f;
22 sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg";
23 };
24 };
25 };
26 "components/jquery" = {
27 targetDir = "";
28 src = composerEnv.buildZipPackage {
29 name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649";
30 src = fetchurl {
31 url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649;
32 sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb";
33 };
34 };
35 };
36 "components/jqueryui" = {
37 targetDir = "";
38 src = composerEnv.buildZipPackage {
39 name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1";
40 src = fetchurl {
41 url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1;
42 sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9";
43 };
44 };
45 };
46 "composer/ca-bundle" = {
47 targetDir = "";
48 src = composerEnv.buildZipPackage {
49 name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660";
50 src = fetchurl {
51 url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660;
52 sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p";
53 };
54 };
55 };
56 "doctrine/annotations" = {
57 targetDir = "";
58 src = composerEnv.buildZipPackage {
59 name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5";
60 src = fetchurl {
61 url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5;
62 sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7";
63 };
64 };
65 };
66 "doctrine/cache" = {
67 targetDir = "";
68 src = composerEnv.buildZipPackage {
69 name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57";
70 src = fetchurl {
71 url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57;
72 sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i";
73 };
74 };
75 };
76 "doctrine/collections" = {
77 targetDir = "";
78 src = composerEnv.buildZipPackage {
79 name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf";
80 src = fetchurl {
81 url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf;
82 sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis";
83 };
84 };
85 };
86 "doctrine/common" = {
87 targetDir = "";
88 src = composerEnv.buildZipPackage {
89 name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d";
90 src = fetchurl {
91 url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d;
92 sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na";
93 };
94 };
95 };
96 "doctrine/dbal" = {
97 targetDir = "";
98 src = composerEnv.buildZipPackage {
99 name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9";
100 src = fetchurl {
101 url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9;
102 sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj";
103 };
104 };
105 };
106 "doctrine/doctrine-bundle" = {
107 targetDir = "";
108 src = composerEnv.buildZipPackage {
109 name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d";
110 src = fetchurl {
111 url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d;
112 sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3";
113 };
114 };
115 };
116 "doctrine/doctrine-cache-bundle" = {
117 targetDir = "";
118 src = composerEnv.buildZipPackage {
119 name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927";
120 src = fetchurl {
121 url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927;
122 sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa";
123 };
124 };
125 };
126 "doctrine/doctrine-migrations-bundle" = {
127 targetDir = "";
128 src = composerEnv.buildZipPackage {
129 name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce";
130 src = fetchurl {
131 url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce;
132 sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn";
133 };
134 };
135 };
136 "doctrine/event-manager" = {
137 targetDir = "";
138 src = composerEnv.buildZipPackage {
139 name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3";
140 src = fetchurl {
141 url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3;
142 sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88";
143 };
144 };
145 };
146 "doctrine/inflector" = {
147 targetDir = "";
148 src = composerEnv.buildZipPackage {
149 name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a";
150 src = fetchurl {
151 url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a;
152 sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5";
153 };
154 };
155 };
156 "doctrine/instantiator" = {
157 targetDir = "";
158 src = composerEnv.buildZipPackage {
159 name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda";
160 src = fetchurl {
161 url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda;
162 sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy";
163 };
164 };
165 };
166 "doctrine/lexer" = {
167 targetDir = "";
168 src = composerEnv.buildZipPackage {
169 name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
170 src = fetchurl {
171 url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
172 sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
173 };
174 };
175 };
176 "doctrine/migrations" = {
177 targetDir = "";
178 src = composerEnv.buildZipPackage {
179 name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6";
180 src = fetchurl {
181 url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6;
182 sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld";
183 };
184 };
185 };
186 "doctrine/orm" = {
187 targetDir = "";
188 src = composerEnv.buildZipPackage {
189 name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8";
190 src = fetchurl {
191 url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8;
192 sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls";
193 };
194 };
195 };
196 "doctrine/persistence" = {
197 targetDir = "";
198 src = composerEnv.buildZipPackage {
199 name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38";
200 src = fetchurl {
201 url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38;
202 sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7";
203 };
204 };
205 };
206 "doctrine/reflection" = {
207 targetDir = "";
208 src = composerEnv.buildZipPackage {
209 name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6";
210 src = fetchurl {
211 url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6;
212 sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy";
213 };
214 };
215 };
216 "fig/link-util" = {
217 targetDir = "";
218 src = composerEnv.buildZipPackage {
219 name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac";
220 src = fetchurl {
221 url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac;
222 sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64";
223 };
224 };
225 };
226 "gedmo/doctrine-extensions" = {
227 targetDir = "";
228 src = composerEnv.buildZipPackage {
229 name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27";
230 src = fetchurl {
231 url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27;
232 sha256 = "0jfg0a19lhdv5b3c032ghknxhvc1f0x2n7fcwp47bm1rbz222q0z";
233 };
234 };
235 };
236 "immae/ludivine-ckeditor-component" = {
237 targetDir = "";
238 src = fetchgit {
239 name = "immae-ludivine-ckeditor-component-1794320dcfdfcd19572fb1676294f9853a6bbc20";
240 url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-ckeditor-component.git";
241 rev = "1794320dcfdfcd19572fb1676294f9853a6bbc20";
242 sha256 = "080f3znvp0aj5jdpc3ywis0kfzvkwz5mw2jcj12gwq3r5g5i8zdq";
243 };
244 };
245 "immae/ludivine-slick-component" = {
246 targetDir = "";
247 src = fetchgit {
248 name = "immae-ludivine-slick-component-604734c4a960aac3d99f1008337181ed2b0f04db";
249 url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-slick-component.git";
250 rev = "604734c4a960aac3d99f1008337181ed2b0f04db";
251 sha256 = "041wqv9pa9nvqcgqykx6cnbj539qnr9h1iym7l54igw12yj57w06";
252 };
253 };
254 "incenteev/composer-parameter-handler" = {
255 targetDir = "";
256 src = composerEnv.buildZipPackage {
257 name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550";
258 src = fetchurl {
259 url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550;
260 sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm";
261 };
262 };
263 };
264 "jdorn/sql-formatter" = {
265 targetDir = "";
266 src = composerEnv.buildZipPackage {
267 name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
268 src = fetchurl {
269 url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
270 sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
271 };
272 };
273 };
274 "kriswallsmith/assetic" = {
275 targetDir = "";
276 src = composerEnv.buildZipPackage {
277 name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1";
278 src = fetchurl {
279 url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1;
280 sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8";
281 };
282 };
283 };
284 "leapt/im-bundle" = {
285 targetDir = "";
286 src = composerEnv.buildZipPackage {
287 name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1";
288 src = fetchurl {
289 url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1;
290 sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a";
291 };
292 };
293 };
294 "luxifer/doctrine-functions" = {
295 targetDir = "";
296 src = composerEnv.buildZipPackage {
297 name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c";
298 src = fetchurl {
299 url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c;
300 sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9";
301 };
302 };
303 };
304 "monolog/monolog" = {
305 targetDir = "";
306 src = composerEnv.buildZipPackage {
307 name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266";
308 src = fetchurl {
309 url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266;
310 sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png";
311 };
312 };
313 };
314 "ocramius/package-versions" = {
315 targetDir = "";
316 needsModifyRights = true;
317 src = composerEnv.buildZipPackage {
318 name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f";
319 src = fetchurl {
320 url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f;
321 sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881";
322 };
323 };
324 };
325 "ocramius/proxy-manager" = {
326 targetDir = "";
327 src = composerEnv.buildZipPackage {
328 name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1";
329 src = fetchurl {
330 url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1;
331 sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn";
332 };
333 };
334 };
335 "paragonie/random_compat" = {
336 targetDir = "";
337 src = composerEnv.buildZipPackage {
338 name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95";
339 src = fetchurl {
340 url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95;
341 sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09";
342 };
343 };
344 };
345 "psr/cache" = {
346 targetDir = "";
347 src = composerEnv.buildZipPackage {
348 name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
349 src = fetchurl {
350 url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
351 sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
352 };
353 };
354 };
355 "psr/container" = {
356 targetDir = "";
357 src = composerEnv.buildZipPackage {
358 name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
359 src = fetchurl {
360 url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
361 sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
362 };
363 };
364 };
365 "psr/link" = {
366 targetDir = "";
367 src = composerEnv.buildZipPackage {
368 name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562";
369 src = fetchurl {
370 url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562;
371 sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13";
372 };
373 };
374 };
375 "psr/log" = {
376 targetDir = "";
377 src = composerEnv.buildZipPackage {
378 name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd";
379 src = fetchurl {
380 url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd;
381 sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d";
382 };
383 };
384 };
385 "psr/simple-cache" = {
386 targetDir = "";
387 src = composerEnv.buildZipPackage {
388 name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
389 src = fetchurl {
390 url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
391 sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
392 };
393 };
394 };
395 "robloach/component-installer" = {
396 targetDir = "";
397 src = composerEnv.buildZipPackage {
398 name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7";
399 src = fetchurl {
400 url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7;
401 sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9";
402 };
403 };
404 };
405 "sensio/distribution-bundle" = {
406 targetDir = "";
407 src = composerEnv.buildZipPackage {
408 name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b";
409 src = fetchurl {
410 url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b;
411 sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs";
412 };
413 };
414 };
415 "sensio/framework-extra-bundle" = {
416 targetDir = "";
417 src = composerEnv.buildZipPackage {
418 name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a";
419 src = fetchurl {
420 url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a;
421 sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck";
422 };
423 };
424 };
425 "sensiolabs/security-checker" = {
426 targetDir = "";
427 src = composerEnv.buildZipPackage {
428 name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1";
429 src = fetchurl {
430 url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1;
431 sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi";
432 };
433 };
434 };
435 "swiftmailer/swiftmailer" = {
436 targetDir = "";
437 src = composerEnv.buildZipPackage {
438 name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950";
439 src = fetchurl {
440 url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950;
441 sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d";
442 };
443 };
444 };
445 "symfony/assetic-bundle" = {
446 targetDir = "";
447 src = composerEnv.buildZipPackage {
448 name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c";
449 src = fetchurl {
450 url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c;
451 sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc";
452 };
453 };
454 };
455 "symfony/monolog-bundle" = {
456 targetDir = "";
457 src = composerEnv.buildZipPackage {
458 name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff";
459 src = fetchurl {
460 url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff;
461 sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7";
462 };
463 };
464 };
465 "symfony/polyfill-apcu" = {
466 targetDir = "";
467 src = composerEnv.buildZipPackage {
468 name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2";
469 src = fetchurl {
470 url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2;
471 sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r";
472 };
473 };
474 };
475 "symfony/polyfill-ctype" = {
476 targetDir = "";
477 src = composerEnv.buildZipPackage {
478 name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19";
479 src = fetchurl {
480 url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19;
481 sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh";
482 };
483 };
484 };
485 "symfony/polyfill-intl-icu" = {
486 targetDir = "";
487 src = composerEnv.buildZipPackage {
488 name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644";
489 src = fetchurl {
490 url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644;
491 sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq";
492 };
493 };
494 };
495 "symfony/polyfill-mbstring" = {
496 targetDir = "";
497 src = composerEnv.buildZipPackage {
498 name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494";
499 src = fetchurl {
500 url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494;
501 sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi";
502 };
503 };
504 };
505 "symfony/polyfill-php56" = {
506 targetDir = "";
507 src = composerEnv.buildZipPackage {
508 name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af";
509 src = fetchurl {
510 url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af;
511 sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk";
512 };
513 };
514 };
515 "symfony/polyfill-php70" = {
516 targetDir = "";
517 src = composerEnv.buildZipPackage {
518 name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224";
519 src = fetchurl {
520 url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224;
521 sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik";
522 };
523 };
524 };
525 "symfony/polyfill-util" = {
526 targetDir = "";
527 src = composerEnv.buildZipPackage {
528 name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c";
529 src = fetchurl {
530 url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c;
531 sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i";
532 };
533 };
534 };
535 "symfony/swiftmailer-bundle" = {
536 targetDir = "";
537 src = composerEnv.buildZipPackage {
538 name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec";
539 src = fetchurl {
540 url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec;
541 sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01";
542 };
543 };
544 };
545 "symfony/symfony" = {
546 targetDir = "";
547 src = composerEnv.buildZipPackage {
548 name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412";
549 src = fetchurl {
550 url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412;
551 sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q";
552 };
553 };
554 };
555 "twig/extensions" = {
556 targetDir = "";
557 src = composerEnv.buildZipPackage {
558 name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202";
559 src = fetchurl {
560 url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202;
561 sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn";
562 };
563 };
564 };
565 "twig/twig" = {
566 targetDir = "";
567 src = composerEnv.buildZipPackage {
568 name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1";
569 src = fetchurl {
570 url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1;
571 sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n";
572 };
573 };
574 };
575 "zendframework/zend-code" = {
576 targetDir = "";
577 src = composerEnv.buildZipPackage {
578 name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb";
579 src = fetchurl {
580 url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb;
581 sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1";
582 };
583 };
584 };
585 "zendframework/zend-eventmanager" = {
586 targetDir = "";
587 src = composerEnv.buildZipPackage {
588 name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd";
589 src = fetchurl {
590 url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd;
591 sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n";
592 };
593 };
594 };
595 };
596 devPackages = {
597 "doctrine/data-fixtures" = {
598 targetDir = "";
599 src = composerEnv.buildZipPackage {
600 name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a";
601 src = fetchurl {
602 url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a;
603 sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm";
604 };
605 };
606 };
607 "doctrine/doctrine-fixtures-bundle" = {
608 targetDir = "";
609 src = composerEnv.buildZipPackage {
610 name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273";
611 src = fetchurl {
612 url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273;
613 sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf";
614 };
615 };
616 };
617 "fzaninotto/faker" = {
618 targetDir = "";
619 src = composerEnv.buildZipPackage {
620 name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d";
621 src = fetchurl {
622 url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d;
623 sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi";
624 };
625 };
626 };
627 "league/factory-muffin" = {
628 targetDir = "";
629 src = composerEnv.buildZipPackage {
630 name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a";
631 src = fetchurl {
632 url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a;
633 sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq";
634 };
635 };
636 };
637 "league/factory-muffin-faker" = {
638 targetDir = "";
639 src = composerEnv.buildZipPackage {
640 name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426";
641 src = fetchurl {
642 url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426;
643 sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1";
644 };
645 };
646 };
647 "mikey179/vfsStream" = {
648 targetDir = "";
649 src = composerEnv.buildZipPackage {
650 name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145";
651 src = fetchurl {
652 url = https://api.github.com/repos/mikey179/vfsStream/zipball/d5fec95f541d4d71c4823bb5e30cf9b9e5b96145;
653 sha256 = "034rdds85qr3n7kqz161dqinl909gwnxgjsvychw8m7dyk2dbl99";
654 };
655 };
656 };
657 "phpdocumentor/reflection-common" = {
658 targetDir = "";
659 src = composerEnv.buildZipPackage {
660 name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6";
661 src = fetchurl {
662 url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6;
663 sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2";
664 };
665 };
666 };
667 "phpdocumentor/reflection-docblock" = {
668 targetDir = "";
669 src = composerEnv.buildZipPackage {
670 name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08";
671 src = fetchurl {
672 url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08;
673 sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x";
674 };
675 };
676 };
677 "phpdocumentor/type-resolver" = {
678 targetDir = "";
679 src = composerEnv.buildZipPackage {
680 name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7";
681 src = fetchurl {
682 url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7;
683 sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb";
684 };
685 };
686 };
687 "phpspec/prophecy" = {
688 targetDir = "";
689 src = composerEnv.buildZipPackage {
690 name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06";
691 src = fetchurl {
692 url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06;
693 sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6";
694 };
695 };
696 };
697 "phpunit/php-code-coverage" = {
698 targetDir = "";
699 src = composerEnv.buildZipPackage {
700 name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979";
701 src = fetchurl {
702 url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979;
703 sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d";
704 };
705 };
706 };
707 "phpunit/php-file-iterator" = {
708 targetDir = "";
709 src = composerEnv.buildZipPackage {
710 name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4";
711 src = fetchurl {
712 url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4;
713 sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060";
714 };
715 };
716 };
717 "phpunit/php-text-template" = {
718 targetDir = "";
719 src = composerEnv.buildZipPackage {
720 name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686";
721 src = fetchurl {
722 url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686;
723 sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76";
724 };
725 };
726 };
727 "phpunit/php-timer" = {
728 targetDir = "";
729 src = composerEnv.buildZipPackage {
730 name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f";
731 src = fetchurl {
732 url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f;
733 sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr";
734 };
735 };
736 };
737 "phpunit/php-token-stream" = {
738 targetDir = "";
739 src = composerEnv.buildZipPackage {
740 name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16";
741 src = fetchurl {
742 url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16;
743 sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk";
744 };
745 };
746 };
747 "phpunit/phpunit" = {
748 targetDir = "";
749 src = composerEnv.buildZipPackage {
750 name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517";
751 src = fetchurl {
752 url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517;
753 sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6";
754 };
755 };
756 };
757 "phpunit/phpunit-mock-objects" = {
758 targetDir = "";
759 src = composerEnv.buildZipPackage {
760 name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983";
761 src = fetchurl {
762 url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983;
763 sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i";
764 };
765 };
766 };
767 "sebastian/comparator" = {
768 targetDir = "";
769 src = composerEnv.buildZipPackage {
770 name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be";
771 src = fetchurl {
772 url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be;
773 sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq";
774 };
775 };
776 };
777 "sebastian/diff" = {
778 targetDir = "";
779 src = composerEnv.buildZipPackage {
780 name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4";
781 src = fetchurl {
782 url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4;
783 sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6";
784 };
785 };
786 };
787 "sebastian/environment" = {
788 targetDir = "";
789 src = composerEnv.buildZipPackage {
790 name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea";
791 src = fetchurl {
792 url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea;
793 sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0";
794 };
795 };
796 };
797 "sebastian/exporter" = {
798 targetDir = "";
799 src = composerEnv.buildZipPackage {
800 name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4";
801 src = fetchurl {
802 url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4;
803 sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn";
804 };
805 };
806 };
807 "sebastian/global-state" = {
808 targetDir = "";
809 src = composerEnv.buildZipPackage {
810 name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4";
811 src = fetchurl {
812 url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4;
813 sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb";
814 };
815 };
816 };
817 "sebastian/recursion-context" = {
818 targetDir = "";
819 src = composerEnv.buildZipPackage {
820 name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7";
821 src = fetchurl {
822 url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7;
823 sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm";
824 };
825 };
826 };
827 "sebastian/version" = {
828 targetDir = "";
829 src = composerEnv.buildZipPackage {
830 name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6";
831 src = fetchurl {
832 url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6;
833 sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz";
834 };
835 };
836 };
837 "sensio/generator-bundle" = {
838 targetDir = "";
839 src = composerEnv.buildZipPackage {
840 name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65";
841 src = fetchurl {
842 url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65;
843 sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3";
844 };
845 };
846 };
847 "symfony/phpunit-bridge" = {
848 targetDir = "";
849 src = composerEnv.buildZipPackage {
850 name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5";
851 src = fetchurl {
852 url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5;
853 sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj";
854 };
855 };
856 };
857 "webmozart/assert" = {
858 targetDir = "";
859 src = composerEnv.buildZipPackage {
860 name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9";
861 src = fetchurl {
862 url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9;
863 sha256 = "0d84b0ms9mjpqx368gs7c3qs06mpbx5565j3vs43b1ygnyhhhaqk";
864 };
865 };
866 };
867 };
868}