Commit graph

322 commits

Author SHA1 Message Date
Michael
b8ed6f1588 Re enable ratelimit integration tests 2019-09-03 14:34:04 +02:00
Bas van Beek
cb7c5a8ca1 Update Zipkin OpenTracing driver to latest 0.4.3 release 2019-09-03 11:52:04 +02:00
Julien Salleyron
df0dd2f5e6 Add errors about unknown entryPoint in runtime api 2019-08-29 03:38:04 -07:00
Julien Salleyron
602a2ea541 Adds mirroring service 2019-08-26 10:00:04 -07:00
Ludovic Fernandez
89150e1164 Update to go1.13rc1 2019-08-26 06:06:05 -07:00
mpl
4ec90c5c0d Add rate limiter, rename maxConn into inFlightReq
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-08-26 03:20:06 -07:00
Julien Salleyron
6fed76a687 WeightedRoundRobin load balancer
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2019-08-26 01:30:05 -07:00
Daniel Tomcej
9e3f549341 Add TLS-enabled Router 2019-08-14 10:16:06 -07:00
Fernandez Ludovic
0f32de4aa2 tests: improve timeout.
- upgrade k3s to v0.8.0
2019-08-12 05:06:04 -07:00
Daniel Tomcej
cd164de776 Add Feature-Policy header support 2019-07-29 07:12:05 -07:00
mpl
092aa8fa6d API: remove configuration of Entrypoint and Middlewares
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-19 12:28:07 +02:00
Ludovic Fernandez
f75f73f3d2 Certificate resolvers.
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-07-19 11:52:04 +02:00
mpl
6fdd48509e config: deal with multiple errors and their criticality
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-15 17:04:04 +02:00
Ryan Fitzpatrick
62800116d3 Add Jaeger collector endpoint 2019-07-15 14:52:04 +02:00
Ludovic Fernandez
093658836e Restrict traefik.toml to static configuration. 2019-07-15 10:22:03 +02:00
Jean-Baptiste Doumenjou
2c7cfd1c68 Expand Client Auth Type configuration 2019-07-12 17:50:04 +02:00
Daniel Tomcej
3f6ea04048 Properly add response headers for CORS 2019-07-12 11:46:04 +02:00
Jean-Baptiste Doumenjou
8ab33db51a Renamed kubernetes provider in kubernetesIngress provider 2019-07-08 21:36:03 +02:00
Ludovic Fernandez
c39aa5e857 Add scheme to IngressRoute. 2019-07-05 17:24:04 +02:00
mpl
39aae4167e TLSOptions: handle conflict: same host name, different TLS options
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-03 19:22:05 +02:00
Ludovic Fernandez
c7d336f958 Use the same case everywhere 2019-07-01 11:30:05 +02:00
Máté Szabó
f6436663eb Make HTTP Keep-Alive timeout configurable for backend connections 2019-06-28 00:36:04 +02:00
Michael
84d7c65039 Improve tracing 2019-06-28 00:16:04 +02:00
Ludovic Fernandez
4245096be4 Define a TLS section to group TLS, TLSOptions, and TLSStores.
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-06-27 23:58:03 +02:00
Jean-Baptiste Doumenjou
80b35575df Define TLS options on the Router configuration for Kubernetes
Co-authored-by: juliens <julien@containo.us>
2019-06-21 17:18:05 +02:00
Ludovic Fernandez
adc9a65ae3 Use name@provider instead of provider@name. 2019-06-21 09:54:04 +02:00
Ludovic Fernandez
e9792b446f Change the provider separator from . to @ 2019-06-20 00:40:05 +02:00
Jean-Baptiste Doumenjou
85ce16b34f Define TLS options on the Router configuration
Co-authored-by: juliens <julien@containo.us>
2019-06-17 18:14:08 +02:00
Ludovic Fernandez
8d7eccad5d New static configuration loading system.
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-06-17 11:48:05 +02:00
mpl
c4df78b4b9 Add support for TCP (in kubernetes CRD)
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-06-11 15:12:04 +02:00
Julien Salleyron
c1dc783512 Remove first byte wait when tcp catches all 2019-06-07 19:30:07 +02:00
Julien Salleyron
518a37e776 rework loadbalancer support 2019-06-05 22:18:06 +02:00
mpl
f6df556eb0 API: expose runtime representation
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-05-16 10:58:06 +02:00
Daniel Tomcej
5a173fa968 Allow matching with FQDN hosts with trailing periods 2019-05-06 17:16:03 +02:00
Julien Salleyron
bb8a193244 log.loglevel becomes log.level in configuration 2019-04-16 15:30:09 +02:00
Ludovic Fernandez
8389b46b5c Use the same case every where for entryPoints. 2019-04-15 11:14:05 +02:00
Ludovic Fernandez
0750235712 fix: configuration for integration tests. 2019-04-09 17:24:05 +02:00
Daniel Tomcej
d2b38e6ac4 Enable CORS configuration 2019-04-02 10:40:04 +02:00
mpl
0779c6a139 Full ACME+CRD example
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-03-27 15:16:04 +01:00
Ludovic Fernandez
72ffa91fe0 Clean old 2019-03-18 11:30:07 +01:00
Jean-Baptiste Doumenjou
bd4c822670 Update anonymize/collect 2019-03-14 19:32:03 +01:00
Ludovic Fernandez
4c060a78cc Custom resource definition
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-03-14 15:56:06 +01:00
Julien Salleyron
4a68d29ce2 Add a new protocol
Co-authored-by: Gérald Croës <gerald@containo.us>
2019-03-14 09:30:04 +01:00
SALLEYRON Julien
0cfaab02c0 k8s integration tests 2019-03-11 14:54:05 +01:00
SALLEYRON Julien
db13dbdf46 fix missing trailers with retry 2019-02-13 17:26:04 +01:00
SALLEYRON Julien
9ebe3c38b2 New rule syntax
Co-authored-by: jbdoumenjou <jb.doumenjou@gmail.com>
2019-01-30 16:24:07 +01:00
Gérald Croës
a433e469cc SchemeRedirect Middleware
Co-authored-by: jbdoumenjou <jb.doumenjou@gmail.com>
2019-01-22 08:30:04 +01:00
Ludovic Fernandez
04958c6951 Adds default rule system on Docker provider.
Co-authored-by: Julien Salleyron <julien@containo.us>
2019-01-21 19:06:02 +01:00
Ludovic Fernandez
b54c956c5e Adds Docker provider support
Co-authored-by: Julien Salleyron <julien@containo.us>
2019-01-18 15:18:04 +01:00
Gérald Croës
8735263930 Enables the use of elements declared in other providers 2019-01-15 14:28:04 +01:00
Daniel Tomcej
5b3762be08 Implement Case-insensitive SNI matching 2018-12-04 11:42:03 +01:00
SALLEYRON Julien
c815a732ef Migrate rest provider 2018-12-03 11:32:05 +01:00
SALLEYRON Julien
5d91c7e15c Remove old global config and use new static config 2018-11-27 17:42:04 +01:00
Ludovic Fernandez
a09dfa3ce1 Dynamic Configuration Refactoring 2018-11-14 10:18:03 +01:00
Fernandez Ludovic
d3ae88f108 Merge tag 'v1.7.4' into master 2018-10-30 12:34:00 +01:00
SALLEYRON Julien
e6e9a86919 Add flush interval option on backend 2018-10-29 18:42:03 +01:00
Daniel Tomcej
82b2a102ed Add double wildcard test 2018-10-23 18:04:05 +02:00
SALLEYRON Julien
95d86d84b4 Add keepTrailingSlash option 2018-10-17 14:22:03 +02:00
Jean-Baptiste Doumenjou
ba99fbe390 Fix certificate insertion loop to keep valid certificate and ignore the bad one 2018-10-16 11:00:04 +02:00
Fernandez Ludovic
6dcb51a4bd Merge 'v1.7.3' into master 2018-10-15 13:13:48 +02:00
Michael
b722748ec3 Fix update oxy 2018-10-10 18:20:05 +02:00
Jared Biel
5acd43efaf Add health check timeout parameter 2018-09-27 20:16:03 +02:00
Fernandez Ludovic
fdf14cd101 Merge 'v1.7' into master 2018-09-18 15:48:28 +02:00
Daniel Tomcej
ab2c98d931 Ensure only certificates from ACME enabled entrypoint are used 2018-09-18 08:22:03 +02:00
Fernandez Ludovic
bd4846aa9c Merge branch 'v1.7' into master 2018-09-07 19:33:01 +02:00
Jean-Baptiste Doumenjou
efc6560d83 Pass the TLS Cert infos in headers 2018-08-29 11:36:03 +02:00
Fernandez Ludovic
4055654e9b Merge branch 'v1.7' into master 2018-08-28 17:04:39 +02:00
SALLEYRON Julien
00728e711c IPStrategy for selecting IP in whitelist 2018-08-24 16:20:03 +02:00
Daniel Tomcej
870755e90d Extend https redirection tests, and fix incorrect behavior 2018-08-14 18:38:04 +02:00
Gérald Croës
1ec4e03738 Remove etcd v2 2018-08-07 19:12:03 +02:00
Gérald Croës
015cd7a3d0 Remove deprecated elements 2018-08-06 17:20:03 +02:00
Daniel Tomcej
91cafd1752 Correct Entrypoint Redirect with Stripped or Added Path 2018-07-31 11:28:03 +02:00
Michael
73b4df4e18 Remove TLS in API 2018-07-26 12:42:03 +02:00
NicoMen
14b7152bf0 Serve TLS-Challenge certificate in first 2018-07-12 19:10:03 +02:00
Daniel Tomcej
689f120410 Improve TLS Handshake 2018-07-06 10:30:03 +02:00
Gamalan
31a8e3e39a CNAME flattening 2018-07-03 16:44:05 +02:00
Ludovic Fernandez
139f280f35 ACME TLS ALPN 2018-07-03 12:44:04 +02:00
Ludovic Fernandez
17ad5153b8 Minor changes 2018-07-03 10:02:03 +02:00
Ludovic Fernandez
9e012a6b54 Simplify acme e2e tests. 2018-06-27 15:08:05 +02:00
Fernandez Ludovic
586ba31120 Merge v1.6.4 into master 2018-06-15 17:58:20 +02:00
Ludovic Fernandez
5b2b29043c Use logrus writer instead of os.Stderr 2018-06-15 16:08:03 +02:00
SALLEYRON Julien
e76836b948 h2c server 2018-05-28 11:46:03 +02:00
SALLEYRON Julien
9420308667 Implement h2c with backend 2018-05-24 10:52:04 +02:00
Michael
68cc826519 Add option to select algorithm to generate ACME certificates 2018-05-16 11:44:03 +02:00
Ludovic Fernandez
8168d2fdc1 Server weight zero 2018-04-11 16:30:04 +02:00
NicoMen
3be74bb275 Fix acme.json file automatic creation 2018-04-10 10:52:04 +02:00
Alexander Kachkaev
66485e81b4 Normalize parameter names in configs 2018-04-06 09:38:03 +02:00
NicoMen
16bb9b6836 ACME V2 Integration 2018-03-26 14:12:03 +02:00
ravilr
5792a19b97 Toggle /ping to artificially return unhealthy response on SIGTERM during requestAcceptGraceTimeout interval 2018-03-22 18:18:03 +01:00
Fernandez Ludovic
526a04d4c8 Merge branch 'v1.5' into master 2018-03-13 11:38:21 +01:00
Ludovic Fernandez
fc81d92c88 Enhance Traefik TOML sample. 2018-03-12 10:40:04 +01:00
NicoMen
c4529820f2 Delete TLS-SNI-01 challenge from ACME 2018-03-06 14:50:03 +01:00
NicoMen
8380de1bd9 Create ACME Provider 2018-03-05 20:54:04 +01:00
Michael
e28ebf1c62 Change port of traefik for error pages integration test 2018-02-23 10:52:03 +01:00
Fernandez Ludovic
21e28ae848 Merge branch 'v1.5' into master 2018-02-21 16:55:57 +01:00
SALLEYRON Julien
45fe218ee2 Isolate backend with same name on different provider 2018-02-16 11:04:04 +01:00
Fernandez Ludovic
f5adea1061 Merge branch 'v1.5' into master 2018-02-07 16:20:40 +01:00
SALLEYRON Julien
afe4c307f9 Traefik still start when Let's encrypt is down 2018-02-05 18:20:04 +01:00
Marco Jantke
ef4aa202d0 Fix high memory usage in retry middleware 2018-01-26 18:22:03 +01:00
Bastiaan Bakker
32ccc26712 Add username in accesslog 2018-01-24 18:18:03 +01:00
Fernandez Ludovic
c8446c2dc8 Merge branch 'v1.5' into master 2018-01-24 15:11:21 +01:00
Ludovic Fernandez
00e0571811 Rename TLSConfigurations to TLS. 2018-01-23 16:30:07 +01:00
SALLEYRON Julien
ced5aa5dc6 Challenge HTTP must ignore deprecated web.path option 2018-01-17 18:46:03 +01:00
Fernandez Ludovic
89d90de7d8 Merge branch '1.5.0-rc5' into master 2018-01-15 17:27:37 +01:00
SALLEYRON Julien
3e439cc39b Add Let's Encrypt HTTP Challenge 2018-01-15 16:04:05 +01:00
Michael
709d50836b Fix bad access log 2018-01-11 10:04:03 +01:00
SALLEYRON Julien
e2c5f3712f Fix redirect problem on dashboard + docs/tests on [web] 2018-01-11 09:46:03 +01:00
Michael
30ffba78e6 Opentracing support 2018-01-10 17:48:04 +01:00
Ludovic Fernandez
8a697f7a39 Fix: timeout integration test 2018-01-09 10:08:03 +01:00
NicoMen
1e44e339ad Allow deleting dynamically all TLS certificates from an entryPoint 2017-12-21 14:16:03 +01:00
SALLEYRON Julien
40b3c17703 Fix metrics problem on multiple entrypoints 2017-11-30 12:18:03 +01:00
Fernandez Ludovic
3d452fd5b9 Merge branch 'v1.4' into master 2017-11-28 14:03:55 +01:00
Michael
47a5cfbd3e Fix empty ip when container is stopped 2017-11-28 13:58:04 +01:00
lishaoxiong
1feeeb2eec Manage certificates dynamically in kv store 2017-11-23 11:50:03 +01:00
NicoMen
66e489addb Update libkv dependency 2017-11-17 17:22:03 +01:00
NicoMen
4f4491c247 Allow adding optional Client CA files 2017-11-10 10:30:04 +01:00
SALLEYRON Julien
27d1b46835 Split Web into API/Dashboard, ping, metric and Rest Provider 2017-11-09 16:12:04 +01:00
NicoMen
c469e669fd Make the TLS certificates management dynamic. 2017-11-09 12:16:03 +01:00
Emile Vauge
e8633d17e8 Add proxy protocol tests 2017-10-30 10:02:03 +01:00
Fernandez Ludovic
a0c72cdf00 Merge v1.4.1 into master 2017-10-25 11:36:14 +02:00
SALLEYRON Julien
afbad56012 Force http/1.1 for websocket 2017-10-20 17:38:04 +02:00
Fernandez Ludovic
9faae7387e Merge tag 'v1.4.0-rc5' into master 2017-10-10 17:17:44 +02:00
SALLEYRON Julien
93a1db77c5 Move http2 configure transport 2017-10-10 12:14:03 +02:00
Fernandez Ludovic
cf508b6d48 Merge 'v1.4.0-rc4' into master 2017-10-02 17:18:24 +02:00
SALLEYRON Julien
4fe9cc7730 Add tests for urlencoded part in url 2017-10-02 15:36:02 +02:00
Ludovic Fernandez
5cc49e2931 bug command. 2017-10-02 10:32:02 +02:00
Timo Reimann
1c98a9ad3e Add request accepting grace period delaying graceful shutdown. 2017-09-26 10:22:03 +02:00
Fernandez Ludovic
2cbf9cae71 Merge tag 'v1.4.0-rc3' into master 2017-09-18 21:52:44 +02:00
Frédéric Logier
49e0e20ce2 fix healthcheck port 2017-09-18 15:50:03 +02:00
Ben Parli
d54417acfe Rate limiting for frontends 2017-09-09 13:36:03 +02:00
SALLEYRON Julien
f80a6ef2a6 Fix consul catalog refresh problems 2017-09-08 20:50:04 +02:00
Chulki Lee
8c5514612f Fix whitespaces 2017-09-07 12:02:03 +02:00
SALLEYRON Julien
03ba8396f3 Add test for SSL TERMINATION in Websocket 2017-09-06 09:36:02 +02:00
Marco Jantke
14a0d66410 Add configurable timeouts and curate default timeout settings 2017-08-18 15:34:04 +02:00
Richard Shepherd
4e5fcac9cb Add log file close and reopen on receipt of SIGUSR1 2017-08-11 12:04:58 +02:00
Timo Reimann
64b8fc52c3 [marathon] Fix and extend integration tests.
- Update compose file.
- Add integration test for Marathon application deployment.
2017-08-10 21:58:08 +02:00
Christoph Glaubitz
ff11467022 Bind healthcheck to backend by entryPointName 2017-08-10 18:00:31 +02:00
SALLEYRON Julien
990ee89650 Add helloworld tests with gRPC 2017-08-06 11:55:42 +02:00
Fernandez Ludovic
d456c2ce6a Merge 'v1.3.5' 2017-08-01 19:32:44 +02:00
Julien Salleyron
888e6dcbc8 Oxy with gorilla for websocket(+integration tests) 2017-07-27 15:43:12 +02:00
Ben Parli
121c057b90 Custom Error Pages (#1675)
* custom error pages
2017-07-01 01:04:18 +02:00
Julien Salleyron
81d011e57d Handle RootCAs Certificate 2017-06-30 14:56:55 +02:00
Richard Shepherd
4128c1ac8d Allow file provider to load config from files in a directory. 2017-06-27 16:58:04 +02:00
Fernandez Ludovic
73e10c96cc Merge branch 'v1.3' 2017-06-27 14:42:12 +02:00
nmengin
631079a12f feature: Add provided certificates check before to generate ACME certificate when OnHostRule is activated
- ADD TI to check the new behaviour with onHostRule and provided certificates
- ADD TU on the getProvidedCertificate method
2017-06-26 18:32:55 +02:00
Alex Antonov
7d6c778211 Enhanced flexibility in Consul Catalog configuration 2017-06-12 21:18:55 +02:00
Fernandez Ludovic
2610023131 refactor: Deflake and Try package
- feat: add CI multiplier
- refactor: readability
- feat: custom Sleep function
- refactor(integration): use custom Sleep
- feat: show Try progress
- feat(try): try response with status code
- refactor(try): use a dedicate package.
- refactor(integration): Try everywhere
- feat(CI): pass CI env var to Integration Tests.
- refactor(acme): increase timeout.
- feat(acme): show Traefik logs
- refactor(integration): use `http.StatusXXX`
- refactor: remove Sleep
2017-05-18 22:34:15 +02:00
Timo Reimann
8fd6160758 Fix health check path key name in Marathon template. 2017-04-28 18:17:25 +02:00
Taylor Skinner
72e35af39f add dynamo
Signed-off-by: Taylor Skinner <tskinn12@gmail.com>

add some comments

Signed-off-by: Taylor Skinner <tskinn12@gmail.com>

update readmes

make test runnable

Signed-off-by: Taylor Skinner <tskinn12@gmail.com>

make test

squash! add dynamo

add glide.lock

format imports

gofmt

update glide.lock

fixes for review

golint

clean up and reorganize tests

add dynamodb integration test

remove default region. clean up tests. consistent docs

forgot the region is required

DRY

make validate

update readme and commit dependencies
2017-03-16 10:12:26 -06:00
Julien Salleyron
aa2edcc6e5
Add some integration test 2017-03-06 17:45:58 +01:00
Thomas Recloux
599c95e5f6 Add ACME/Let’s Encrypt integration tests
Thx @gwallet for the help.
2016-12-22 10:11:37 +01:00
Julien Salleyron
e1724444ac test(integration-test): Integration test for eureka 2016-11-20 18:25:48 +01:00
Julien Salleyron
d2dcec40e1 test(integration-test): First test for eureka 2016-11-16 23:21:47 +01:00
Emile Vauge
e62cca1e7c
Merge v1.0.1
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-07-28 20:15:09 +02:00
Anders Betnér
664bc9cae0 Added tests for client certificate authentication 2016-07-20 14:41:38 +02:00
julien
5afcf17706 add mesos provider inspired by mesos-dns & marathon provider 2016-07-20 11:56:14 +02:00
Vincent Demeester
b80479f9ef
Option to disable expose of all docker containers
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-14 11:32:15 +02:00
Ed Robinson
c719aa3db8
Fix default etcd port
Fixes #508
2016-07-11 13:14:43 +01:00
Emile Vauge
c3aadab615
Add Consul integration tests
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-03 15:41:09 +02:00
Emile Vauge
26774d2317
Add Etcd integration tests
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-05-03 15:41:09 +02:00
David Tootill
2a76a717e6 Add access log integration test 2016-04-20 11:54:57 -07:00
Emile Vauge
8737530a7d
Refactor frontends rules
Signed-off-by: Emile Vauge <emile@vauge.com>
2016-03-31 13:11:07 +02:00
Advait Shinde
a99010b8c2 Create an integration test for Etcd:
- Integration test specifically spins up an Etcd cluster with three
    nodes.
2016-02-25 23:34:51 +00:00
David Keijser
ae275c9e60 Consul catalog provider
Fixes #176
2016-02-24 09:23:27 +01:00
emile
81cb00573f
Fix tests to accept entrypoints 2016-02-10 12:14:16 +01:00
emile
35070f7c1c
Use of Viper and cobra 2016-01-27 13:56:46 +01:00
Jan Broer
d6e28a923c Adds TLS SNI support for the frontends 2015-12-01 22:26:17 +01:00
Vincent Demeester
3c9ec55f0a Updates and additions on some integration tests
- Use defer to kill traefik process (to fix the still running traefik
  binaries if the given tests is failing before the kill)
- Add TestWithWebConfig
- Add *.test to gitignore to ignore the test binaries generated by go.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-03 23:06:31 +01:00
Vincent Demeester
812ff77cec Add a regression test for #56 :)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-17 14:46:31 +02:00
Vincent Demeester
45ea23ecc1 Update integration setups to use libcompose events
Now that docker/libcompose#55 is merged, use it \o/
No more sleeps !

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-12 08:44:56 +02:00
Vincent Demeester
ecbfbd4de0 Make fixtures files template-able :)
So it can adapt to certain env (like tcp vs unix socket for docker suite)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-28 22:46:45 +02:00
Vincent Demeester
ad60b301b7 Add initial test-integration suites
Uses go-check in order to separate integration tests into suites, and
have Setup and TearDown operations (on Suites and Tests) ; and use
libcompose to start the external dependencies to test on (like consul,
marathon, etcd, some http images, etc..).

- Update Godeps to get dependencies needed for the use of libcompose
- Setup initial suites and go-check + libcompose mini-framework
- Add some hacks related to libcompose, will be fixed later (when fixed
  upstream)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-28 20:29:35 +02:00