H2o: рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.7.0 . рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдорд╛рд░реНрдЪ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: h2o/h2o

рдореИрдВрдиреЗ 21 рдорд╛рд░реНрдЪ рдХреЛ рдЬрд╛рд░реА рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.7.0 рдХреЗ рд╕рд╛рде рдПрдЪ2рдУ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдлрд┐рд░, рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
(рджреЛрдиреЛрдВ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ (рдкреНрд░рддрд┐рдмрджреНрдз 0376131) рдФрд░ рдПрдЪ2рдУ v2.2.4)

In file included from //rpmbuild/BUILD/repo/include/h2o/socket.h:34:0,
                 from //rpmbuild/BUILD/repo/include/h2o/multithread.h:27,
                 from //rpmbuild/BUILD/repo/include/h2o/hostinfo.h:32,
                 from //rpmbuild/BUILD/repo/lib/common/hostinfo.c:22:
//rpmbuild/BUILD/repo/include/h2o/openssl_backport.h:37:27: error: static declaration of 'BIO_meth_new' follows non-static declaration
 static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
                           ^~~~~~~~~~~~
In file included from /var/tmp/h2o-nightly-2.3.0-0.nightly20180323t195237.git0376131.el7.jp3cki-libressl-2.7.0-root/include/openssl/evp.h:67:0,
                 from /var/tmp/h2o-nightly-2.3.0-0.nightly20180323t195237.git0376131.el7.jp3cki-libressl-2.7.0-root/include/openssl/hmac.h:67,
                 from /var/tmp/h2o-nightly-2.3.0-0.nightly20180323t195237.git0376131.el7.jp3cki-libressl-2.7.0-root/include/openssl/ssl.h:149,
                 from //rpmbuild/BUILD/repo/include/h2o/socket.h:31,
                 from //rpmbuild/BUILD/repo/include/h2o/multithread.h:27,
                 from //rpmbuild/BUILD/repo/include/h2o/hostinfo.h:32,
                 from //rpmbuild/BUILD/repo/lib/common/hostinfo.c:22:
/var/tmp/h2o-nightly-2.3.0-0.nightly20180323t195237.git0376131.el7.jp3cki-libressl-2.7.0-root/include/openssl/bio.h:338:13: note: previous declaration of 'BIO_meth_new' was here
 BIO_METHOD *BIO_meth_new(int type, const char *name);
             ^~~~~~~~~~~~
make[2]: *** [CMakeFiles/libh2o-evloop.dir/lib/common/hostinfo.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....

рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рд░рд┐рд▓реАрдЬ рдиреЛрдЯ рдХрд╣рддрд╛ рд╣реИ "рдХрдИ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ 1.0.2 рдФрд░ 1.1 рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╕рдорд░реНрдерди" рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдЪ 2 рдУ рдХрд╛ рдмреИрдХрдкреЛрд░реНрдЯ рдХреЛрдб рдЙрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВред

  • CentOS 7 рдкрд░ Docker рдкрд░ CentOS 7 (рдХрд░реНрдиреЗрд▓ 4.15.11, ELRepo рд╕реЗ) VPS (SAKURA рдЗрдВрдЯрд░рдиреЗрдЯ) рдкрд░
  • рдЖрд░рдкреАрдПрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд┐рдВрдХ

    • cmake -DWITH_MRUBY=on -DCMAKE_INSTALL_PREFIX=%{_prefix} -DCMAKE_INCLUDE_PATH=%{libressl_root}/include -DCMAKE_LIBRARY_PATH=%{libressl_root}/lib

    • рднрдВрдбрд╛рд░ рдпрд╣рд╛рдБ рд╣реИ

рдпрд╣ рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.4 рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╢рд╛рдпрдж рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдиреАрдЪреЗ 3 рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

diff --git a/include/h2o/openssl_backport.h b/include/h2o/openssl_backport.h
index b24440e..b59a519 100644
--- a/include/h2o/openssl_backport.h
+++ b/include/h2o/openssl_backport.h
@@ -25,7 +25,7 @@
 #include <stdlib.h>

 /* backports for OpenSSL 1.0.2 */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)

 #define BIO_get_data(bio) ((bio)->ptr)
 #define BIO_set_data(bio, p) ((bio)->ptr = (p))
@@ -57,7 +58,7 @@ static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
 #endif

 /* backports for OpenSSL 1.0.1 and LibreSSL */
-#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10002000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)

 #define SSL_is_server(ssl) ((ssl)->server)

``` рдкреИрдЪ
рдЕрдВрддрд░ --git a/deps/neverbleed/neverbleed.cb/deps/neverbleed/neverbleed.c
рд╕реВрдЪрдХрд╛рдВрдХ 29b35a9..42356a6 100644
--- a/deps/neverbleed/neverbleed.c
+++ b/deps/neverbleed/neverbleed.c
@@ -547,7 +547,7 @@ рд╕реНрдерд┐рд░ рдЗрдВрдЯ рд╕рд╛рдЗрди_рд╕реНрдЯрдм (рд╕реНрдЯреНрд░рдХреНрдЪрд░ expbuf_t *buf)
рд╡рд╛рдкрд╕реА 0;
}

-#рдЕрдЧрд░ !OPENSSL_1_1_API
+#if !OPENSSL_1_1_API && (!рдкрд░рд┐рднрд╛рд╖рд┐рдд(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL)

рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп RSA_get0_key(const RSA rsa, const BIGNUM * n, const BIGNUM *e, const BIGNUM * d)
{

```patch
diff --git a/deps/picotls/lib/openssl.c b/deps/picotls/lib/openssl.c
index a19a29a..c4dfccb 100644
--- a/deps/picotls/lib/openssl.c
+++ b/deps/picotls/lib/openssl.c
@@ -41,13 +41,15 @@
 #include "picotls.h"
 #include "picotls/openssl.h"

-#if (OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER))
-#define OPENSSL_1_0_API 1
+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L
+#define OPENSSL_1_1_API 1
+#elif defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL
+#define OPENSSL_1_1_API 1
 #else
-#define OPENSSL_1_0_API 0
+#define OPENSSL_1_1_API 0
 #endif

-#if OPENSSL_1_0_API
+#if !OPENSSL_1_1_API

 #define EVP_PKEY_up_ref(p) CRYPTO_add(&(p)->references, 1, CRYPTO_LOCK_EVP_PKEY)
 #define X509_STORE_up_ref(p) CRYPTO_add(&(p)->references, 1, CRYPTO_LOCK_X509_STORE)
  • рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

    • рдПрдЪ2рдУ-рд╣реЗрдб (0376131)

    • рдПрдЪ2рдУ 2.2.4

  • рдУрдкрдирдПрд╕рдПрд╕рдПрд▓/рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

    • рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде

    • OpenSSL 1.0.2k (CentOS 7 рдкреИрдХреЗрдЬ) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • OpenSSL 1.1.0g . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • OpenSSL 1.1.1-pre3 (╬▓1) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд░реНрдорд┐рдд H2O 2.2.4+

    • OpenSSL 1.0.1u . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде

    • рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдФрд░ HEAD рдХреЛ LibreSSL 2.7.0 рдФрд░ 2.7.1 рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.4 . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд░реНрдорд┐рдд H2O 2.2.4+ рдФрд░ HEAD рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.3 рдХреЗ рд╕рд╛рде ( @omasanori рдиреЗ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрддрд╛рдпрд╛)

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.4.5 (рдПрдЪ2рдУ рдмрдВрдбрд▓) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдЪ2рдУ 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

(рдиреЛрдЯ: "H2O 2.2.4+" рдХрд╛ рдЕрд░реНрде рд╣реИ "H2O 2.2.4 + рдкреИрдЪ")

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╢рд╛рдпрдж рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдиреАрдЪреЗ 3 рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

diff --git a/include/h2o/openssl_backport.h b/include/h2o/openssl_backport.h
index b24440e..b59a519 100644
--- a/include/h2o/openssl_backport.h
+++ b/include/h2o/openssl_backport.h
@@ -25,7 +25,7 @@
 #include <stdlib.h>

 /* backports for OpenSSL 1.0.2 */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)

 #define BIO_get_data(bio) ((bio)->ptr)
 #define BIO_set_data(bio, p) ((bio)->ptr = (p))
@@ -57,7 +58,7 @@ static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
 #endif

 /* backports for OpenSSL 1.0.1 and LibreSSL */
-#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10002000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)

 #define SSL_is_server(ssl) ((ssl)->server)

``` рдкреИрдЪ
рдЕрдВрддрд░ --git a/deps/neverbleed/neverbleed.cb/deps/neverbleed/neverbleed.c
рд╕реВрдЪрдХрд╛рдВрдХ 29b35a9..42356a6 100644
--- a/deps/neverbleed/neverbleed.c
+++ b/deps/neverbleed/neverbleed.c
@@ -547,7 +547,7 @@ рд╕реНрдерд┐рд░ рдЗрдВрдЯ рд╕рд╛рдЗрди_рд╕реНрдЯрдм (рд╕реНрдЯреНрд░рдХреНрдЪрд░ expbuf_t *buf)
рд╡рд╛рдкрд╕реА 0;
}

-#рдЕрдЧрд░ !OPENSSL_1_1_API
+#if !OPENSSL_1_1_API && (!рдкрд░рд┐рднрд╛рд╖рд┐рдд(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL)

рд╕реНрдерд┐рд░ рд╢реВрдиреНрдп RSA_get0_key(const RSA rsa, const BIGNUM * n, const BIGNUM *e, const BIGNUM * d)
{

```patch
diff --git a/deps/picotls/lib/openssl.c b/deps/picotls/lib/openssl.c
index a19a29a..c4dfccb 100644
--- a/deps/picotls/lib/openssl.c
+++ b/deps/picotls/lib/openssl.c
@@ -41,13 +41,15 @@
 #include "picotls.h"
 #include "picotls/openssl.h"

-#if (OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER))
-#define OPENSSL_1_0_API 1
+#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L
+#define OPENSSL_1_1_API 1
+#elif defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL
+#define OPENSSL_1_1_API 1
 #else
-#define OPENSSL_1_0_API 0
+#define OPENSSL_1_1_API 0
 #endif

-#if OPENSSL_1_0_API
+#if !OPENSSL_1_1_API

 #define EVP_PKEY_up_ref(p) CRYPTO_add(&(p)->references, 1, CRYPTO_LOCK_EVP_PKEY)
 #define X509_STORE_up_ref(p) CRYPTO_add(&(p)->references, 1, CRYPTO_LOCK_X509_STORE)
  • рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

    • рдПрдЪ2рдУ-рд╣реЗрдб (0376131)

    • рдПрдЪ2рдУ 2.2.4

  • рдУрдкрдирдПрд╕рдПрд╕рдПрд▓/рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

    • рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде

    • OpenSSL 1.0.2k (CentOS 7 рдкреИрдХреЗрдЬ) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • OpenSSL 1.1.0g . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • OpenSSL 1.1.1-pre3 (╬▓1) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд░реНрдорд┐рдд H2O 2.2.4+

    • OpenSSL 1.0.1u . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде

    • рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдФрд░ HEAD рдХреЛ LibreSSL 2.7.0 рдФрд░ 2.7.1 рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.4 . рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ H2O 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

    • рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд░реНрдорд┐рдд H2O 2.2.4+ рдФрд░ HEAD рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.3 рдХреЗ рд╕рд╛рде ( @omasanori рдиреЗ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдмрддрд╛рдпрд╛)

    • рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.4.5 (рдПрдЪ2рдУ рдмрдВрдбрд▓) рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдЪ2рдУ 2.2.4+ рдмрдирд╛рдпрд╛ рдЧрдпрд╛

(рдиреЛрдЯ: "H2O 2.2.4+" рдХрд╛ рдЕрд░реНрде рд╣реИ "H2O 2.2.4 + рдкреИрдЪ")

рдЕрдЪреНрдЫреА рдкрдХрдбрд╝!

рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ < 2.7.0

рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкреИрдЪ рдХреЗ рд╕рд╛рде H2O 2.2.4 рдФрд░ рдорд╛рд╕реНрдЯрд░ рдХреЛ OpenBSD 6.2 рдкрд░ рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.6.3 рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.7.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдпрд╣рд╛рдВ рдкреИрдЪ

рдореИрдВрдиреЗ H2O-HEAD рд╡реЗрдирд┐рд▓рд╛ + рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.7.2 рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдпрд╣ рдЕрднреА рдЬрд╛рд░реА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдпрджрд┐ рдЖрдк рд▓реЛрдЧ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг (v2.2.4) + рд▓рд┐рдмреНрд░реЗрдПрд╕рдПрд╕рдПрд▓ 2.7.x рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрднреА рднреА рдКрдкрд░ рдкреИрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП @kazuho рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

proyb6 picture proyb6  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kazuho picture kazuho  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paulpref picture paulpref  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

utrenkner picture utrenkner  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

daniel-lucio picture daniel-lucio  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ