Como aplicar os patches Magento 2?

12

Estou usando o Magento 2.1.6 e quero aplicar o patch CE-MAGETWO-67805.patch.

Como posso aplicar os arquivos * .patch?

Rafael Corrêa Gomes
fonte
você pode me ajudar em como encontrar os patches necessários para instalar para uma determinada versão do Magento. Existe alguma ferramenta que você está usando para encontrá-los? ou devemos visitar magento.com para obter informações sobre patches?
Kalyan Chakravarthi V
eu estava procurando as melhores práticas para aplicar esses patches em uma instalação do Magento 2 Composer. Neste artigo, publiquei como corrigimos o Magento Source. medium.com/@LarsRoettig/…
Lars Roettig

Respostas:

12

Tradicional

Você pode usar o método tradicional:

git apply MAGEPatch-20181106.patch

ou

patch -p1 < MDVA-14172_EE_2.2.6_COMPOSER_v1.patch    

Compositor

Ou, para resolver a mesma situação com os arquivos corrigidos no diretório do fornecedor, há um bom artigo aqui: http://jamescowie.me/blog/2016/12/Composer-Magento-Patches/

Fizemos algo semelhante em nosso arquivo de compositor:

...
   "extra": {
        "magento-force": "override",
        "composer-exit-on-patch-failure": true,
        "patches": {
            "magento/module-cache-invalidate": {
                "GH 8815: Varnish purge requests can overrun size limit": "patches/composer/github-issue-8815.patch"
            },
        }
    }
...

Em nossa raiz do Magento, temos um diretório de patches / compositores, onde é feita a referência e, na seção extras / patches, informamos qual módulo do Magento deve ser corrigido.

Ironicamente, encontrei este post ao analisar como isso foi feito apenas para descobrir que nossa solução já estava em vigor pelo nosso fornecedor inicial.

Joshua Fricke
fonte
5

Se você tem o git instalado no seu ambiente, basta usar a seguinte cópia do patch na pasta raiz do magento.

Então use:

$ git apply MAGETWO-67805-2017-05-17-03-04-03.patch
Suresh Chikani
fonte
11
e se alguém não mantiver a pasta do fornecedor como parte do repositório git? Isso não corrige apenas os arquivos principais diretamente?
dchayka 8/09/17
2

Se alguém estiver fazendo isso através do Composer, existe um módulo gratuito que você pode instalar, que permite instalar patches a partir do CLI.

magento@ce87c6cc1cdf /home/magento/htdocs/$ php bin/magento patch:list
Magento Version: 2.3.0
PRODSECBUG-2198 - This patch provides protection against the SQL injection vulnerability described under PRODSECBUG-2198
More info can be found here: https://www.magentocommerce.com/products/downloads/magento/#download2288

magento@ce87c6cc1cdf /home/magento/htdocs/$ php bin/magento patch:add --patch=PRODSECBUG-2198
Patch: PRODSECBUG-2198
Message: PRODSECBUG-2198 - Added via Zero1_Patches
Magento Version: 2.3.0
SUCCESS!
The patch has been added to you composer.json
You can now run: "composer install" to apply the patch.
magento@ce87c6cc1cdf /home/magento/htdocs/$

Eu o uso no Mdoq , mas pode ser usado em qualquer lugar.
Há um bom post aqui

Adão
fonte
Tentei enviar um email à empresa sobre a adição de patches, mas o email está quebrado ([email protected]). Também parece que eles não adicionam novos patches há cerca de um ano. Este parece ser um projeto morto.
njm5785 4/03
@ njm5785 não é um projeto morto, desculpas por termos perdido seu e-mail. Como posso ajudar?
Adam
1
  • Faça o download do arquivo de correção e coloque-o no diretório raiz do Magento

  • Defina o modo de desenvolvedor usando o comando:

    php bin/magento deploy:mode:set developer

  • Aplique o patch usando o comando:

    $ git apply CE-MAGETWO-93036-2018-07-02-07-06-53.patch

  • Os possíveis avisos e erros que você pode obter são:

aviso: vendor / magento / module-email / Model / FileName.php possui o tipo 100755, esperado 100644

Os meios de alerta acima que a permissionsdo FileName.php são 755que o esperado permissionssão 644.

Se você aplicar o arquivo de correção duas vezes, é esperado que você receba uma mensagem de erro semelhante a:

erro: falha no patch: fornecedor / magento / module-email / Model / AbstractTemplate.php: 534

erro: vendor / magento / module-email / Model / AbstractTemplate.php: o patch não se aplica

Não há problema em obter o erro ou aviso acima.

Seu patch ainda foi aplicado com sucesso . Desfrutar ;)

Usman Yousaf
fonte
0
  1. Verifique se sua loja Magento está em developer mode

    php bin/magento deploy:mode:set developer

  2. Faça o download do patch de segurança

    git apply MAGETWO-67805-2017-05-17-03-04-03.patch

  3. Depois disso, basta executar o comando abaixo para aplicar o patch

    php bin/magento setup:upgrade

Divya
fonte
Você tem alguma idéia de como remover a última aplicação do patch?
Dhaduk Mitesh 15/03/19