NevemTeve blogja

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 - 7: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 - 9: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ő - 6: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 - 9: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 - 18: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 - 10: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 - 19: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 - 12: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 - 14: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 - 13: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 - 20: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 - 6: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ő - 13: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ő - 17: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ő - 10: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.

Lázadó gabona: -usr-include-arpa-nameser_compat.h

 ( NevemTeve | 2016. január 24., vasárnap - 19:35 )

Csak nem megint AIX-en akarok fordítani valamit, amit a fene se szánt AIX-on fordításra? A termék neve glib-2.26.1, a hibaüzenet (mármint az első):

/usr/include/arpa/nameser_compat.h:210:2: error: unknown type name 'u_short'

Ez az 'u_short' a sys/types-ból kellene jöjjön, de csak akkor, ha az be is van inkludálva, és a különféle _*_SOURCE define-ok jól állnak.

Szerk: ezt még meg lehetne fixálni az alábbi header-rel:
[code]
/* /usr/local/include/arpa/nameser_compat.h */

#ifndef _H_ARPA_NAMESER_COMPAT_

#include <sys/types.h>

syslog: 0821-285 ioctl returns 17

 ( NevemTeve | 2016. január 19., kedd - 13:29 )

Na ugye. Minek néztem bele abba a buta /var/log/warning.log-ba?! Ha nem nézek bele, most nem kellene itt nyomoznom.

Egyébként az errno=17 az EEXIST, de persze nem biztos hogy ez az errno-t jelenti.

#define EEXIST 17 /* File exists */

Szerk: google szerint a hálózatokkal kapcsolatban lehet ilyen hibakódot kapni. Ez nem is kizárt, mert akkoriban cseréltünk IP-címet a ketyerén...

gdb-7.10.1 sem fordul

 ( NevemTeve | 2016. január 5., kedd - 14:10 )

Naná, majd elsőre fordul, mi?

$ cd /usr/local/src/gdb-7.10.1/sim/ppc
$ make
/bin/sh ./../../gdb/common/create-version.sh ./../../gdb \
      version.c
Usage: mv [-I] [ -d| -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
   or: mv [-I] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory

Namostan a 'version.c' előtt még van pár érték nélküli változó:

$(SHELL) $(srcroot)/gdb/common/create-version.sh \
$(srcroot)/gdb \
$(host_alias) $(target_alias) version.c

Beszólt a szoftver...

 ( NevemTeve | 2015. november 27., péntek - 19:41 )

Egy FTP-szerver azt mondta nekem:
421 Timeout - try typing a little faster next time

Egy másik meg, kapcsolatbontásnál:
221 You could at least say goodbye.

Nem tudom, mi lesz még itt, ha öntudatra ébrednek a szoftverek...

Mea culpa

 ( NevemTeve | 2015. október 15., csütörtök - 12:54 )

Ezt most találtam egy saját programomban, és nagyon nem tetszik:

q= strchr (p, '\0');

Mi a haragos moha ez? Jó, tegyük fel, hogy működik, de akkor is inkább így kellene:

q= p + strlen (p);

vagy

q= memchr (p, '\0', plim-p);

netkit-telnetd elavulta magát

 ( NevemTeve | 2015. október 14., szerda - 15:58 )

Nem lehet forrásból fordítani (ezt már abból is ki lehet találni, hogy C++ is van benne), marad a Debian, emlékeztetőül magamnak:

cd /usr/local/src
tar xfzv depo/netkit-telnet_0.17.orig.tar.gz
zcat depo/netkit-telnet_0.17-36.diff.gz | \
patch -p0 2>&1 | tee patch.log

Szerk: na jó, oké, így sem fordul, dehát mi tökéletes ebben a fájó életben?!

Szerk: a CPPFLAGS (és benne a -D_XOPEN_SOURCE) nem jutott el a Makefile-ig; az ilyenkor szokásos elegáns megoldás:

[code]
export CFLAGS="$CFLAGS $CPPFLAGS"
export CXXFLAGS="$CXXFLAGS $CPPFLAGS"

curl: nem a méret a lényeg...

 ( NevemTeve | 2015. szeptember 24., csütörtök - 20:23 )

Akárcsak az odbc-vel, a curl-lel is bajba kerülünk, ha 32- és 64-bitre is lefordítjuk; a gond forrása a /usr/local/include/curl/curlbuild.h -- tök jól belehardkódol mindenféléket, pl:

$ diff -u curlbuild_32.h diff curlbuild_64.h # részlet
  /* The size of `long', as computed by sizeof. */
- #define CURL_SIZEOF_LONG 4
+ #define CURL_SIZEOF_LONG 8

  /* Signed integral data type used for curl_off_t. */
- #define CURL_TYPEOF_CURL_OFF_T int64_t
+ #define CURL_TYPEOF_CURL_OFF_T long

Első tesztem a curl-FTP-vel (upload)

 ( NevemTeve | 2015. szeptember 24., csütörtök - 15:30 )

Persze semmi sem megy elsőre, most éppen az van, hogy

* Uploaded unaligned file size (359 out of 7 bytes)

amiből aztán az lesz, hogy

curl_easy_perform() failed: 18: Transferred a partial file

Namostan a tcpdump szerint a dróton 359 byte ment át (történetesen a /etc/motd, ami tényleg ekkora).

Első ötlet: hátha más partnerrel más a jelenség. Nem vált be, ugyanaz történik.

Második ötlet: van egy opcionális setopt-hívás, hogy CURLOPT_INFILESIZE / CURLOPT_INFILESIZE_LARGE. Most próbáljuk ki, hogy hátha nem annyira opcionális.

odbc: nem a méret a lényeg...

 ( NevemTeve | 2015. augusztus 18., kedd - 17:20 )

Mármint az egyes típusoké...

[code]
=== AIX ===

$ odbcinst --version
unixODBC 2.3.2

32-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:2
64-bit: Sizes of types: SQLINTEGER:8 SQLLEN:8 SQLSETPOSIROW:2

Ha '-DBUILD_LEGACY_64_BIT_MODE'-val fordítjuk:
64-bit: Sizes of types: SQLINTEGER:8 SQLLEN:8 SQLSETPOSIROW:2

=== linux ===

$ odbcinst --version
unixODBC 2.2.14

32-bit: Sizes of types: SQLINTEGER:4 SQLLEN:4 SQLSETPOSIROW:4
64-bit: Sizes of types: SQLINTEGER:4 SQLLEN:8 SQLSETPOSIROW:8

Ha '-DBUILD_LEGACY_64_BIT_MODE'-val fordítjuk:

Mire is jó nekem a unixODBC?

 ( NevemTeve | 2015. augusztus 17., hétfő - 15:14 )

Hát a teória szerint már annyira belaktuk magunkat az Oracle világába, hogy ideje más gyártók termékeit is kipróbálni... Minél egzotikusabb, annál jobb alapon (most ne firtassuk, miért, nem is szeretném tudni).

Namostan ez a derék gyártó azt mondta, hogy a rendszerük ugyan legjobban úgy működik, ha minden hw+sw komponenst ők szállítanak (meg vagyok lepve), de azért van lehetőség az adatbázis-szerverük elérésére más platformról, pl unix-ból unixODBC útján, Javá-ból JDBC-vel stb.