Citrix ICA Client

Om gebruik te maken van Athena, wat van tijd tot tijd handig/noodzakelijk is, heb je de Citrix ICA Client nodig. Spijtig genoeg is dit proprietary software, en (dus?) binary-only. Ze bieden een deb aan, voor zowel i386 als amd64. Echter, de 64-bit versie maakt gebruik van, voor Debian, verouderde concepten. Het lijkt er op dat het 32 bit software is, echter steunt het pakket nog op allerlei compatibiliteits-lagen, terwijl Debian overgestapt is naar multiarch. Die verouderde lagen zitten zelfs niet meer in de Debian repo's voor Wheezy. Nu kan ik eventueel nspluginwrapper van squeeze of zelfs Ubuntu proberen, echter wist ik al via mail dat die weg toch, naar alle waarschijnlijkheid zou floppen.

Wat ik dus deed was multiarch activeren:

dpkg add-architecture i386
apt-get update

En nu het i386 pakket installeren. Nu gaf dit een error op, omdat op lijn 696 van het postinst-script nspluginwrapper werd opgeroepen. Blijkbaar controleerde het script zelf nog eens de architectuur, en riep dan maar nspluginwrapper op, die uiteraard niet geïnstalleerd stond, het was uiteindelijk ook geen dependency, en zou dus nooit mogen opgeroepen worden door het script. Nu dat aanpassen leverde dan later in het script een fout op, en wou niet zo mijn hele systeem laten vervuilen, en heb in prerm dezelfde wijzigingen doorgevoerd en het pakket verwijderd. Vervolgens heb ik de tar.gz gedownload, uitgepakt en de bestanden gewoon in ~/bin geplaatst. Vervolgens het root certificaat voor Athena toegevoegd aan ~/bin/icaclient/linuxx86/linuxx86.cor/keystore/cacerts.

Toen ik naar Athena surfte en een programma aanklikte wist Iceweasel uiteraard niet wat te doen met het bestand, aangezien er geen plugin geïnstalleerd is, enkel de bestanden in een lokale map uitgepakt, en geen enkel installatiescript uitgevoerd werd. Echter, gewoon het bestand laten openen met ~/bin/icaclient/linuxx86/linuxx86.cor/wfica "does the trick".

Dit bleek echter nog niet voldoende, en er kwamen errors over missende ini's. De oplossing was de ini's uit linuxx86/linuxx86.cor/nls/en te kopiëren naar linuxx86/linuxx86.cor/config. Nu werkt het!

Echter, we zijn nog niet klaar. Immers, de libraries die geïnstalleerd werden met icaclient, die zouden met een autoremove nu worden verwijderd. Dus moet ik die handmatig installeren. Nu, ik heb liefst zo min mogelijk handmatig geïnstalleerde pakketten, en dus heb ik eens getest welke nodig zijn om te voorkomen dat er pakketten verwijderd worden, en daarmee kwam ik tot het volgende:
apt-get install libgtk2.0-0:i386 libxmu6:i386 libxp6:i386 libxpm4:i386 libasound2:i386

Dit heeft één nadeel: wanneer de dependencies van één van die pakketten verandert, dan zou het in theorie kunnen dat ik ze opnieuw moet installeren, maar niet noodzakelijk. Maar zeker op gebied van libraries heb ik liefst niet (te veel) handmatig geïnstalleerde pakketten, dus doe ik het zo.