Si tienes OSCommerce y actualizas PHP, aparece el error “eregi is deprecated”.
Para solventarlo vamos al foro de OSCommerce, donde tenemos los parches.
Después siguiendo esta receta de cómo generar (diff) y aplicar (patch) parches, bajamos de github los parches, añadiendo “.patch” al URL y aplicar los parches.
$ wget https://github.com/osCommerce/oscommerce2/commit/79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch $ wget https://github.com/osCommerce/oscommerce2/commit/88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch $ wget https://github.com/osCommerce/oscommerce2/commit/1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch $ wget https://github.com/osCommerce/oscommerce2/commit/15101263fa27b523139b405f99b1613c71a8e2c1.patch $ wget https://github.com/osCommerce/oscommerce2/commit/bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch $ patch -p1 < 79c601a7b3ee87943b92a5e6d77ce02480b49ffe.patch
patching file catalog/admin/backup.php patching file catalog/admin/cache.php Hunk #1 succeeded at 91 with fuzz 2. patching file catalog/admin/configuration.php patching file catalog/admin/ext/modules/payment/sofortueberweisung/install.php [...] patching file catalog/admin/includes/functions/general.php Hunk #1 FAILED at 939. 1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej [...] patching file catalog/includes/modules/payment/paypal_express.php Hunk #1 FAILED at 59. 1 out of 1 hunk FAILED -- saving rejects to file catalog/includes/modules/payment/paypal_express.php.rej [...]
Si nos fijamos en esta parte de la salida:
patching file catalog/admin/includes/functions/general.php Hunk #1 FAILED at 939. 1 out of 1 hunk FAILED -- saving rejects to file catalog/admin/includes/functions/general.php.rej
Vemos que al parchear el fichero "catalog/admin/includes/functions/general.php" en la línea 939 ha habido un error.
Tenemos más información en "catalog/admin/includes/functions/general.php.rej". Lo que hace patch en este casp es generar 3 ficheros:
- general.php es el fichero original CON los cambios que SÍ ha aplicado.
- general.php.orig es el fichero original.
- general.php.rej contiene los cambios que NO ha aplicado.
Así si el parche incluye varios cambios para un fichero puede ocurrir que unos cambios se apliquen y otros no.
En este caso no queda más remedio que revisar el cambio no realizado a mano.
Puede ocurrir que el archivo a parchear no exista. En ese caso tendremos solo dos ficheros:
- x.orig con 0 bytes, es copia del original. Como éste no existía, es un archivo en blanco.
- x.rej los cambios que no se han aplicado.
Basta con confirmar que es correcto que el fichero no exista. podría ocurrir que esté movido (revisar porqué), o que sea de un módulo del que no disponemos -lo habitual- (ignorar).
Igual con el resto de parches:
$ patch -p1 < 88d550f392d86c02d2fe16d0b93f1de8aa6a6770.patch $ patch -p1 < 1bfed2f6bf0e9c1c0ce4b160bce1e881cc6e6ef8.patch $ patch -p1 < 15101263fa27b523139b405f99b1613c71a8e2c1.patch $ patch -p1 < bc2bcd9b1bd2148bf852409b3843543555bc01e2.patch