Leeeeeeeet the sun shiiiiiiiiiine

Tags: , , ,
No Comments »

En fevrier dernier, je vous parlais d’Illumos, incubateur libre permettant à OpenIndiana de garder l’haleine fraiche et le teint pétillant.

Les choses ont pas mal évolué depuis, en particulier, je me suis un chouillat impliqué dans le projet visant à intégrer parfaitement pkgsrc à Illumos.

De discussions en reflexions, j’en suis venu à me demander s’il ne serait pas judicieux de monter un repository de binaires pkgsrc pour OpenIndiana/Illumos/Solaris puisque cette plateforme est finalement parfaitement supportée depuis des lustres mais qu’aucun repo digne de ce nom n’a été maintenu plus de 2 mois. (et puis evidemment, il faut bien un package manager pour gêrer tous ces binaires hin hin hin…)
Ainsi, Mads Worsøe Duun, l’initiateur du projet pkgsrc pour Illumos, a demandé aux gentils administrateurs du projet OpenIndiana (ouais, faut suivre) de nous mettre à disposition une buildbox afin de proposer des packages à jour, et bien plus de logiciels que n’en proposent Blastwave ou les repos IPS/pkg d’OpenSolaris (*ricane* *ricane*).

Ce qui est réellement à notre disposition ici, c’est une Zone, or, dans la plupart des documentations sur ce sujet (pkgsrc et Solaris), la méthode préférée, c’est de justement créer une zone pour faire son bulk build, mais comme ne nous pouvons pas créer de zone dans une zone (YO DAWG), il faudra procéder autrement, et c’est la raison même de cet article.

Comme l’explique la documentation officielle, il serait parfaitement inconscient de réaliser son bulk build sur une arborescence opérationnelle, en effet, sur les 10000 packages disponibles, une quantité non négligeable d’entre eux vont ajouter des utilisateurs, des groupes, des repertoires, des logs, des modules, des librairies etc etc etc. Il vous faut une sandbox. Fort heureusement, la “création” d’une sandbox Solaris est d’une grande simplicité.

Je vous livre ici les differentes étapes que vous pourrez bien entendu concaténer dans un joli petit script.

On déclare tout d’abord la localisation du bac à sable sur le filesystem, puis on s’y rend :

SANDBOX="/export/home/pkgsrc/sandbox"
cd ${SANDBOX}

Là, nous créons tous les répertoires nécessaires au bon fonctionnement du chroot, /tmp possède evidemment des droits particuliers :

mkdir -p bin sbin usr lib etc tmp dev opt var/run proc
chmod 777 tmp; chmod +t tmp

On peuple un peu /etc de fichiers indispensables :

cp /etc/passwd etc/
cp /etc/group etc/
cp /etc/shadow etc/
cp /etc/nsswitch.conf etc/
cp /etc/vfstab etc/
cp /etc/resolv.conf etc/
cp /etc/hosts etc/
cp /etc/netconfig etc/
cp /etc/datemsk etc/
cp /etc/user_attr etc/
cp /etc/auto_home etc/
cp /etc/project etc/
cp -r /etc/skel /etc/

chmod 400 etc/shadow

Enfin, point de copie de fichiers inutiles, nous mountons en loopback les repertoires /dev et /proc en lecture et écriture, puis bin sbin usr lib en lecture seule afin de ne pas faire de bêtises.

for rwfs in proc dev
do
        mount -F lofs /${rwfs} ${SANDBOX}/${rwfs}
done

for rofs in bin sbin usr lib
do
        mount -F lofs -o ro /${rofs} ${SANDBOX}/${rofs}
done

C’est prêt !

imil@pkgsrc:~$ pfexec chroot pkgsrc/sandbox /usr/bin/bash
bash-4.0#

Afin de pouvoir correctement compiler l’ensemble des paquets de pkgsrc, vous aurez également besoin d’installer les logiciels suivants à l’aide de la commande pkg install : SUNWgcc, gnu-patch, gnu-tar, system/xopen/xcu4, gnu-grep, developer/object-file.

Enfin, voici les particularités de mon mk.conf, à ajouter aux directives du mk.conf chrooté grace au bootstrap et son drapeau --mk-fragment :

PKGSRC_COMPILER=                ccache gcc

ACCEPTABLE_LICENSES+=           vim-license
ACCEPTABLE_LICENSES+=           sendmail-license

FAILOVER_FETCH=                 yes
ALLOW_VULNERABLE_PACKAGES=      yes
PKG_DEVELOPER=                  yes

MAKE_JOBS=              16

PASSIVE_FETCH=          1

X11_TYPE=               native
X11BASE=                /usr/X11

Ainsi que la commande complète de bootstrap :

./bootstrap --workdir=/tmp/pkgsrc --prefix=/opt/ipp/pkg --abi=32 --mk-fragment=mk-fragment.conf

Happy building.

sysutils/shelldap dans les bacs

Tags: , ,
2 Comments »

Connaissez-vous shelldap ? Cet outil absolument indispendable est L’Outil que j’attendais depuis des années. Saoulé que j’étais de la machine-à-coredumps gq et de l’usine à gaz lat, j’implorais les Dieux du code de faire apparaître quelque part sur l’internet convivial un outil pratique pour éditer des bases LDAP, possiblement en console, fou optimiste que je suis.

Et bien cet outil existe. Et il est énorme. Comme son nom l’indique, il s’agit effectivement d’un shell-like destiné à la consultation et l’administration de bases LDAP, avec la completion s’il vous plait.

Constatant avec effroi que ce formidable logiciel n’était pas encore présent dans pkgsrc, je me suis fendu d’un nouveau package, et shelldap est donc désormais disponible sous sysutils/shelldap.

C’est cadeau, ça m’fait plaisir.

pkgsrc/net/nagstamon… ça arrive (commited)

Tags: , ,
No Comments »

Il y a quelques jours, nico me faisait découvrir nagstamon. Ce fabuleux petit outil est le pendant du plugin Nagios Checker pour Firefox pour votre bureau UNIX/Linux.

Nagstamon est disponible dans le repository unstable de Debian, mais devinez quoi, pas dans pkgsrc. Ntt.. ntt.. ntt… je ne pouvais pas laisser ce vide perdurer.

Pkgsrc est actuellement en status freeze afin de préparer la sortie de pkgsrc-2010Q1, aussi, nous ne sommes autorisés à commiter que des correctifs mineurs ou impactant la sécurité. Ainsi, pour l’impatient qui souhaite essayer sur le champs ce package, j’ai mis en ligne un .shar du futur package ici même, à déployer dans /usr/pkgsrc/net/nagstamon.

update

À vos CVS :)

Maintenant, toi aussi tu peux zuipzuip !

Tags: , ,
3 Comments »

Et oui, ami des bureaux qui tournicottent, car on peut lire dans l’annonce officielle de pkgsrc-2009Q4 la phrase suivante :

the “Package of the Quarter” award is hereby awarded jointly to
clang, the compiler and lowlevel virtual machine infrastructure
nominated by Matthias Drochner, and to compiz, the compositing window
manager, nominated by iMil.

Parce que pour ne rien gâcher, c’est un package of the quarter :)

Ajoutons à cela le dernier post d’Hubert qui annonce :

Staying with driver games, iMil writes me that there’s documentation on getting DRI, AIGLX, Composite and Compiz going with NetBSD 5.0 available in the O(ther)NetBSD Wiki now.

The documentation covers how to enable the Direct Rendering Manager (DRI), setting up and configuring Modular X.org, assuring that everything’s in place, and how to get Compitz going. Mmm, wobbly windows at last! :-)

Je pense qu’on peut raisonnablement se dire qu’un bon petit pkgin in compiz compiz-fusion-plugins-main compiz-fusion-plugins-extra compizconfig-backend-gconf compiz-bcop ccsm suivi de la lecture de cette documentation devrait en ravir plus d’un.

Ah, et pour xorg-modular, c’est par ici.

Petits portages entre amis

Tags: ,
2 Comments »

Comme le diraient aussi bien Jean-Pierre Pernaut que Jean-Louis du bistrot-d’en-bas: “Et pour bien commencer l’année !”

[imil@temple ~/src/pkgin]$ ./pkgin -v
pkgin 0.3.2 for SunOS-5.10 i386

Suivi de près d’un

kamino:pkgin imil$ ./pkgin -v
pkgin 0.3.2 for Darwin-9.5.0 i386

Ou encore: pkgin compile et fonctionne désormais OOtB sous Solaris 10 et Mac OS X.

Alors ouais j’vous vois v’nir “oooh l’auuut’, y’nous r’fait l’coup du SunOS, l’arnaque”. Oui sauf que non. Il s’agit ici de Solaris 10, non d’OpenSolaris, et la nuance est de taille. En l’occurrence, en plus de quelques petits ajustements de code, vous noterez que le ld(1) fourni avec Solaris 10 ne supporte pas l’option -rpath, mais utilise plutot -R, les deux ayant la même finalité, ajouter des chemins de recherche de linkage.

J’ai résolu ce vilain conflit à l’aide de mon fâmeux configure.ac :

[...]
dnl permet d'obtenir plusieurs variables relatives à l'hôte
AC_CANONICAL_HOST
[...]
dnl simple case
case $host_os in
        sunos* | solaris*)
                RPATH="-Wl,-R"
                ;;
        *)
                RPATH="-Wl,-rpath"
                ;;
esac
dnl on demande la substitution dans le Makefile.in
AC_SUBST(RPATH)
[...]

Sans oublier de mettre à jour le Makefile.in afin de “variabiliser” -rpath / -R :

LDADD+=         -L${LOCALBASE}/lib @RPATH@,${LOCALBASE}/lib     \
                -lbz2 -lz -ltermcap -larchive @LIBS@

Vous trouverez l’ensemble du code sur le CVS de pkgin dont je vous encourage à tester le fonctionnement avant son import dans la prochaine branche de pkgsrc.

pkgin 0.3.0 dans ton wip

Tags: , , , , ,
2 Comments »

Pkgin 0.3.0 voit -enfin- le jour. Pas de changements fondamentaux dans le code de gestion d’install/upgrade mais plutot une tripotée de petits fixes issus d’utilisateurs-hackers autour du globe. Dans le désordre :

. Basculement vers autoconf pour la génération du Makefile
. Correction du bug d’affichage en console
. Pas mal de fixes autour de la standardisation des variables
. Le lookup du pkg_summary en bz2 ou gz est désormais automatique
. Gros ménage des conditions pour opensolaris
. substitution de variables dans repositories.conf ($arch et $osrelease)
. De traditionnels bugfixes
. Portage -encore un peu hors des clous- pour SunOS 5.8

Le soft est disponible sur pkgsrc-wip et si aucune plainte n’apparait, je mettrai à jour pkgsrc.

À vos torture tests !

WP Theme & Icons based on GlossyBlue by N.Design Studio
Banner from www.trynthlas.com
Entries RSS Comments RSS Log in
Performance Optimization WordPress Plugins by W3 EDGE