Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Solventar en OSCommerce eregi is deprecated

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
OSCommerce, OSC, github, eregi deprecated, patch,