Adott egy Debian Linux (Squeeze) szerver, amelyen az 5.3-as PHP-t frissíteni kellett az 5.4-es változatra. A PHP csomagok a Dotdeb tárolóiból származnak. A szerveren egy Moodle e-learning keretrendszer fut, amely a felhasználókat egy Radius szerver segítségével hitelesíti, így természetesen szükség van a PHP Radius támogatására is. A PHP frissítése közben azonban a php5-radius csomag eltávolításra került, mivel a függőségekből hiányzott a phpapi-20090626+lfs nevű virtuális csomag.
Nem probléma, hiszen a pecl install radius parancs segítségével a szükséges Radius támogatás könnyedén telepíthető. Azonban a csomag fordításakor a következő hibaüzenettel leállt a telepítés:
/tmp/pear/temp/radius/radius.c:65: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘radius_functions’ /tmp/pear/temp/radius/radius.c:102: error: ‘radius_functions’ undeclared here (not in a function) make: *** [radius.lo] Error 1 ERROR: `make' failed
A megoldás a következő:
- A Radius csomag letöltése a pecl download radius< paranccsal.
- A radius-1.2.5.tgz fájl kitömörítése, például a /tmp mappába.
- A radius.c fájl 65. sorának módosítása, így: static zend_function_entry radius_functions[] = {
- Jöhetnek a szokásos parancsok: phpize, ./configure, make, make install
- És végül a webszerver újraindítása.
Ezután a Radius támogatás újra hiba nélkül működött.