NevemTeve blogja

php-7.0.10 fordítása (AIX újabb kalandjai)

 ( NevemTeve | 2016. augusztus 31., szerda - 7:55 )

(Felülről lefelé bővül)

20160908.1240
Itten van írásba foglalva (komoly tolongásra azért nem számítok): https://bugs.php.net/bug.php?id=73002#1473330938

20160908.1135
Az a hülye ötletem támadt, hogy alaposabban tesztelem a fejlesztésemet... Nem kellett volna, bugra szaladtam a "csak-be" típusú bind-változóknál.

GeoClue -- i've no clue about it

 ( NevemTeve | 2016. augusztus 29., hétfő - 12:46 )

20161007.1127
Ma leszedtem a 'dleyna-renderer' és 'dleyna-server' nevű komponenseket. Kár értük, jó ügynökök voltak.

20160909.1216
Szintén kitörlöm a /etc/passwd-ből, /etc/group-ból és /var/lib/dpkg/statoverride-ból.

20160909.1207
Nem jó, apt-get bedurcizik a hiánya miatt. Akkor újratelepítem, és kézileg törlöm a fájljait.

iconv az iconv ellen (Kramer contra Kramer)

 ( NevemTeve | 2016. augusztus 19., péntek - 13:38 )

Pontosabban mondva: ha van egy /usr/local/include/iconv.h meg egy /usr/include/iconv.h,
akkor ki fog nyerni? Mondjuk egy PHP fordítás során?

Nyilván az egyik a libc része (libc6-dev), a másik a külön telepített libiconvé.

Gondolom, az természetes, hogy semerről sem kompatibilisek... a libc ilyen szimbóleumokat exportál:
iconv
iconv_close
iconv_open

a /usr/local/lib/libiconv.so meg ilyeneket:
_fini
_init
_libiconv_version
iconv_canonicalize
libiconv
libiconv_close
libiconv_open
libiconv_open_into
libiconv_set_relocation_prefix
libiconvctl
libiconvlist

Emlékeztető: mit is kell megkérdezni a panaszos ügyféltől.

 ( NevemTeve | 2016. augusztus 12., péntek - 23:07 )

Nevét.
Telefonszámát.
Beosztását.
Saját maga tapasztalta-e a hibát, vagy másvalaki? Utóbbi esetben át tudná adni az illetőnek a telefont?
Saját maga hogyan sorolná be a gondját: hibabejelentés, segítségkérés, jogosultsági/bejelentkezési probléma, fejlesztési/változtatási igény, egyedi lekérdezés/feldolgozás kérése [pl.: Pistának hívják és Balmazújvárosban lakik, mi a telefonszáma?], egyéb.
Helyi rendszergazdával beszélt már? Miért nem?
Mikor működött utoljára? (Ha egyáltalán.)
Azóta mit telepítettek?

OpenSSL-1.1.0 elközeleg

 ( NevemTeve | 2016. augusztus 11., csütörtök - 14:30 )

De tényleg, előbb-utóbb kell vele foglalkozni. Egyelőre az 1.1.0-pre6 próbálható ki.

Bizonyos jelek [lásd a Makefile-t] arra utalnak, hogy a fejlesztők úgy képzelik, hogy az 1 a major verziószám és az 1.0-pre6 a minor. (Vagy csak az 1, és a .0-pre6 nem is számít. Legalábbis a shared object nevébe nem kerül bele.)

Namostan ezt mérések nem támasztják alá, default fordítás után:
[code]
# readelf -d /usr/local/lib64/libssl.so
0x000000000000000e (SONAME) Library soname: [libssl.so.1.1]

detencode -- mi a gond vele?

 ( NevemTeve | 2016. augusztus 10., szerda - 10:46 )

Ugye az alapgondolat zseniális: írjuk bele a fájl elején kommentbe a fájl kódolását, pl:

/* HelloVilag.java */
/* encoding: ISO-8859-2 */

Aztán valahogy így fordítsunk:

$ javac -encoding $(detencode HelloVilag.java) HelloVilag.java
# javac -encoding ISO-8859-2 HelloVilag.java -- ez lesz belőle

Ez így csudállatiasan jó.

Lenne.

detencode -- van ilyen?

 ( NevemTeve | 2016. július 29., péntek - 14:48 )

Biztos van már ilyesmi, arról lenne szó, hogy egy kis program beleolvas egy forrásprogramba, és az első pár sorban olyasmi kommentet keres, hogy encoding="valami" vagy encode: másvalami
Kicsit értelmesebben:

$ head Foo.java
/* Foo.java encoding="ISO-8859-2" */
$ detencode Foo.java
ISO-8859-2
$ javac -encoding $(detencode Foo.java) Foo.java

ya, sql -- csak hogy legyen valami

 ( NevemTeve | 2016. június 10., péntek - 10:38 )

Mármint yasql kellene nekem AIX-on.
Egy 6.1-re fel is erőltettem (függőségestül), de most az 5.3-on dacoskodik a Term-ReadLine-Gnu-1.32
Már eleve az sem volt triviális, hogy lebeszéljem cc_r használatáról, de a sed(1) elég sokszori alkalmazása azért segítetett.
Most jön ez:
[code]

share_mode_stale_pid: PID 10158134 (index 0 out of 1) does not exist anymore

 ( NevemTeve | 2016. június 1., szerda - 15:57 )

(frissítés az elején)

20160923.1619
És íme: https://www.samba.org/samba/history/samba-4.4.6.html
Igaz, hogy a legvégén, és igaz, hogy a problémának nincs köze a hexás/oktális számokhoz, de benne van a 4.4.6-ban a javítás!

20160101.1557

share_mode_stale_pid: PID 10158134 (index 0 out of 1) does not exist anymore

Szegény processz, nem létezik már. Ami kicsit kellemetlenné teszi a dolgot, az az, hogy az a procesz, ami ezt kiírta, az ez volt:

[code]
$ bs2stat 10158134

A feljentő embertípus (nem politikai)

 ( NevemTeve | 2016. május 14., szombat - 20:46 )

Mármint a feljelentő program, esetünkben:

$ java -V
JVMJ9VM007E Fel nem ismert parancssori paraméter: -V
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
$ tail /var/log/warning.log
May 14 20:36:03 machine user:err|error IBM Java[6094884]: JVMJ9VM007E Fel nem ismert parancssori paraméter: -V

Meg tudnák vajon mondani IBM-ék, hogy egy hibás opciót miért kell (error-ként, vagy bárhogy) syslogolni? (Pláne magyarul, de erről már volt szó.)

Az időutazás korlátai, avagy hogyan kerüljük el saját korábbi énünket?

 ( NevemTeve | 2016. május 13., péntek - 8:52 )

Na jó, ennyire nem izgalmas a téma, igazából azon gondolkozom, hogy amikor az X program 4.4.3-as verzióját fordítom forrásból, akkor a derék linker (ld(1)) ne a már telepített /usr/local/lib64/libX.so -ra találjon rá, hanem a /usr/local/src/X-4.4.3/bonyolult_path/libX.so-ra.

Természetesen nem állítom, hogy ez önmagában bármilyen hibának az oka, de mindenesetre egy olyan apróság, ami zavar, és szeretném kiszűrni.

Például a gdb-nek van egy ilyen ötlete (Makefile részlet):

SHARED_LIBADD = -Wl,/usr/local/src/gdb-7.10/bfd/.libs/libbfd.so

Ez már a Winux, vagy még csak félút?

 ( NevemTeve | 2016. április 26., kedd - 10:52 )

$ gnome-terminal
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 8

Értem, hogy systemd, freedesktop, hal, udev, dbus, pangocairo, istencsodája; de végülis nem kellene mindennek még működnie is? Szinte új Debian8 ez még...

20160427.1033: Értelmesebb hibaüzenet a /var/log/messages-ből:
[code]

akkor most működik a samba-4.4.2?

 ( NevemTeve | 2016. április 25., hétfő - 7:53 )

No, nagy nehezen fordult, települt, elindult. Akkor most jól működik? Természetesen nem, nyilvánvaló módon.

[2016/04/25 07:49:40.816250,  0] ../source3/smbd/smbXsrv_session.c:1387(smbXsrv_session_update)
  smbXsrv_session_update: global_id (0xf89437c2) store failed - NT_STATUS_INVALID_PARAMETER
[2016/04/25 07:49:40.816455,  0] ../source3/smbd/sesssetup.c:388(reply_sesssetup_and_X_spnego)
  smb1: Failed to update session for vuid=5802 - NT_STATUS_INVALID_PARAMETER

A fény az alagút végén...

 ( NevemTeve | 2016. április 22., péntek - 10:31 )

Szóval, a derék Samba a 'make install' hatására szétszórja rengeteg shared libjét a fájlrendszerben, gondosan ügyelve arra, hogy mindenhová jusson (na jó, mondjuk a /dev-be most nem tett, talán majd a következő verzióban).

Mivel közben írja, hogy mit csinál, kapunk egy esélyt, hogy megállapítsuk azt a '-rpath' értéket, amit a fordításkor kellett volna a libtool-nak megadni. (Illetve az export-fájlba belegyógyítni)

registry a sambában?

 ( NevemTeve | 2016. április 20., szerda - 19:17 )

Ezt én csodálatosan jó dolognak tartom, támogatom és helyeslem; egyetlen apróságot szeretnék csak ezzel kapcsolatban megemlíteni: azt, hogy én nem kérek belőle. Namostan természetesen nem indult el az új Samba a gépemen, ez nyilvánvalóan így is van rendjén, de a /var/log/warning.log-beli üzenetek kicsit nyugtalanítóak:

[code]
Apr 20 18:30:45 host daemon:err|error smbd[6881382]: [2016/04/20 18:30:45.657482, 0] ../lib/util/util.c:220(directory_create_or_exist)

Kigyókkal táncoló...

 ( NevemTeve | 2016. április 13., szerda - 11:13 )

Vagy valami ilyesmi... ahhoz, hogy a latin táncok egyik jeles képviselőjét fordíthassam, egy veszélyes kígyó is kellene az AIX-omba. (Ha nagyon filozofikus alkat lennék, most még a python2 vs python3 kérdésén is elgondolkoznék, de most ezt passzolom, és maradok a python=python2 egyenletnél)

$ ./configure --help >help.configure
./configure[16]: python:  not found

linuxban nincs registry

 ( NevemTeve | 2016. március 31., csütörtök - 20:13 )

Ezt persze mind tudjuk. Csak egy adatbázis-szerűség van, amit a freedesktop-társaság üzemeltet a /usr/share/app* könyvtárakban, és ami tulajdonképpen olyan, mint egy registry, csak nem annak hívjuk (kivéve a /usr/share/application-registry-t, amit úgy hívnak).

libevent+memcached on AIX

 ( NevemTeve | 2016. március 23., szerda - 13:06 )

Elnézést, egy pillanatra félre kell tegyen a saját PC-m ügyeit holmi céges projektek kedvéért... Borzasztó...

Naszóval, legyen libevent. Lett is, egy kis változást eszközöltem benne: a libevent.so gyárilag nem dependál a libevent_core.so-ra, hanem közös részeik vannak, így aztán már a saját tesztprogramjai szerkesztésekor panaszol a ld(1). Ezt megfixáltam, tehát nálam a -levent után kell egy -levent_core is, ezt majd igyekszem elfelejteni; kb ennyi az érdekes rész:

[code]
echo '
libevent.la: LIBS += libevent_core.la

as: assem tudtam, mi hiányzik nekem...

 ( NevemTeve | 2016. március 22., kedd - 15:06 )

Hát az, hogy ne forduljon az OpenSSL-1.0.2g az új Debian/Jessie-n 64-biten.

cd /usr/local/src/openssl-1.0.2g/crypto/md5
# as --64 md5-x86_64.s
md5-x86_64.s: Assembler messages:
md5-x86_64.s:43: Error: 0xd76aa478 out range of signed 32bit displacement
...
md5-x86_64.s:633: Error: 0xeb86d391 out range of signed 32bit displacement
# as -V
GNU assembler version 2.25 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.25

a régi gépen 2.20.1 az as verziószám, ott fordul.

Hurrá, Debian8 + Gnome3

 ( NevemTeve | 2016. március 19., szombat - 14:43 )

Annyi év után új Debian-t telepítettem az egyik céges gépemre. Az első, ami feltűnt, hogy az Alt+Tab nem azt csinálja, amit hétköznapi ésszel elvárnánk, hanem valami jószándékú segítőkészséget.

Note to self: hétfőn ezt kipróbálni: http://superuser.com/questions/394376/how-to-prevent-gnome-shells-alttab-from-grouping-windows-from-similar-apps

dtelnet-ben az AltGr megint bekavart

 ( NevemTeve | 2016. március 6., vasárnap - 21:46 )

Emlékeztető önmagamnak: kedves én, az AltGr+7 megszűnt működni, pontosabban Alt+Ctrl+7 ként működik.

A legutóbbi fejlesztés pont az volt, hogy

Ctrl+2 -> ^@ 0x00
Ctrl+3 -> ^[ 0x1b
Ctrl+4 -> ^\ 0x1c
Ctrl+5 -> ^] 0x1d
Ctrl+6 -> ^^ 0x1e
Ctrl+7 -> ^_ 0x1f
Ctrl+8 -> ^? 0x7f

Major és minor a gyakorlatban

 ( NevemTeve | 2016. március 2., szerda - 7:26 )

Hát tisztelettel, ha eddig még nem lett volna világos, hogy mikor kell a major verziószámot növelni, és mikor a minor-t, azt most az OpenSSL-1.0.2g megmagyarázta: a legminorabb verziószám (vagyis az utolsó betű) nőtt csak, de inkompatibilis változás történt az ABI-ban ([default opciókkal fordítva] megszűnt létezni a SSLv2_server|client_method), emiatt eddig működő programok (curl, wget, php) nem-indíthatóvá váltak.

Végre valami nyomoznivaló: #error unsupported size of off_t

 ( NevemTeve | 2016. február 8., hétfő - 14:38 )

Ezt mondja a php-5.6.18 egy AIX6.1-en

/usr/local/src/php-5.6.18/ext/zip/lib/zipint.h:118:2: error:
#error unsupported size of off_t

Egyelőre fogalmam sincs, hogy ez mi lehet, akár még az is lehet, hogy az egyik komponens római számot vár (VIII), a másik meg azt adja, hogy "EIGHT", ezért nem találkoznak...

20160208.1354: Nem egészen, azt írta valami nagyon okos script a main/php_config.h-ba, hogy:

/* The size of `off_t', as computed by sizeof. */
#define SIZEOF_OFF_T 0

20160208.1402: Jaja, configure írta is:
[code]

mc-4.8.15: előre a nem-fordíthatóság útján

 ( NevemTeve | 2016. január 25., hétfő - 18:35 )

Mottó: 'némely emberi agy egészen másképp működik, mint ahogy azt józan ésszel gondolkodva elvárnánk...' (Váncsa István)

Most éppen azt találták ki, hogy tákoltak egy 'config/compile' nevű scriptet, azzal, hogy Wrapper for compilers which do not understand '-c -o'

Eddig valahogy elvegetáltunk ilyen wrapper nélkül, de mostanra bizonyára szükségessé vált.

Persze azon túl, amit ígér, mást is csinál, nevezetesen belebarmol a libtool --mode=compile működésébe.

Őrnagy Őrnagy Őrnagy.

 ( NevemTeve | 2016. január 25., hétfő - 11:34 )

A 22-es csapdájában van egy ilyen nevű szereplő, akit egy IBM számítógép rögtön őrnagyi rangba helyezett a hadseregben. Na ő jutott eszembe, amikor a glib-2.26.1 fordítása megállt az alábbi üzenettel:

libtool: linking shared object: gcc -shared -Wl,-G -Wl,-bernotok -Wl,-bexport:.libs/libgio
ld: 0711-317 ERROR: Undefined symbol: .major
ld: 0711-317 ERROR: Undefined symbol: .minor
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.