NicolasG a écrit 122 commentaires

  • [^] # Re: Zenitram et la démocratie

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 5. Dernière modification le 06 juillet 2015 à 13:57.

    Tu as raison, c’était déplacé, je m’en excuse. Je sais très bien que ce n’est pas dans un porte-monnaie qu’on trouve les neurones nécessaires à la tenue d’une discussion rationnelle.

  • [^] # Re: Le + intéressant c'est le futur proche

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 2.

    À propos, le gouvernement grec a mis en place une commission pour discuter de la légitimité. Il se trouve que dedans il y a Toussaint du CADTM, du coup on a eu le droit à quelques communications en français sur le travail de cette commission (qui doit encore beaucoup plancher). \o/ à suivre.

    https://www.youtube.com/watch?v=x_Y3CUZUIN4

    Cette commission devrait aider à faire la lumière dans le détail sur ce qui s’est réellement passé (même si on sait très largement dans les grandes lignes).

  • [^] # Re: Zenitram et la démocratie

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 4.

    Vois-tu Zenitram, pour qui lit LinuxFR depuis suffisamment longtemps, tu es juste ridicule de bêtise et d’abrutissement. Je te le dis comme je le pense sans aucune hypocrisie.

    En effet, il y a quelques années tu n’arrêtais pas de bassiner tout le monde à nous expliquer que la démocratie ce n’est pas la dictature de la majorité.

    Mal t’en as pris : tu as finis par me convaincre.

    Te voir revenir en justifiant seulement par le nombre (et encore dans la plus pure tradition démagogique, en faisant comme si les 300 millions étaient alignés sur tes positions), c’est juste du grand n’importe quoi.

  • # Zenitram et la démocratie

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 3. Dernière modification le 06 juillet 2015 à 10:44.

    À propos de l’Histoire de la dette j’ai vu passer d’excellents documents, dont j’ai malheureusement oublié les références. Zenitram, qui se réclame tant de la démocratie, ne sait pas, le malheureux! que le reniement de la dette a joué un grand rôle dans l’établissement des démocraties : Solon a été un personnage clef dans la lente découverte de la démocratie par les Athéniens car il a interdit la servitude pour rembourser la dette. Cette dette elle-même naît d’un partage inégalitaire de la terre, lui-même conséquence d’une explosion démographique causant des problèmes d’héritage (à >2 enfants par femme, y’a morcellement de la terre). On retrouve le même phénomène, avec quelques variantes dans l’avènement des démocraties modernes.

    Voilà pourquoi c’est spécifiquement le non, qui est une victoire de la démocratie.

    (D’autres facteurs jouent aussi : par exemple la naissance et la diffusion de l’écrit est contemporaine de la démocratie en Grèce antique et en Europe moderne, c’est une condition nécessaire de l’État de droit.)

    Ce n’est pas un hasard : la démocratie est un régime qui stipule l’égalité politique. Or la dette est un moyen primitif de réajuster une inégalité de richesse (le riche transfert au pauvre), mais elle s’accompagne d’un devoir moral aboutissant à un rapport social inégalitaire (le créancier entend dicter ses volontés). La démocratie et la remise en cause de la dette (a des degrés divers) finissent par être intimement liées.

  • [^] # Re: Démocratie?

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 10.

    Pour être plus exact on parle de monnaie scripturale.

    Plus que l’étalon-or (qui lui concerne le change entre les monnaies), il est enfermée dans une vision petite-bourgeoise de la monnaie comme d’une réserve de richesse, or une pièce est assez peu nutritive, et un billet ne protège guère de la pluie. C’est typique de gens qui ont un petit capital (soit personnellement soit évoluant dans un tel milieu social) : il s’agit de faire comme si leur compte en banque représentait une utilité économique intrinsèque, là où la monnaie n’est qu’un médium comptable pour rendre compte des échanges de richesses (et donc doit circuler) : recevoir un salaire en contre-partie de sa production de richesse, le dépenser pour consommer la production d’autres travailleurs, etc. (en fait la distinction entre flux et stock est l’une des premières choses que l’on apprend en économie, et il va sans dire que ce sont les flux qui font marcher l’économie).

    Évidemment considérer un seul instant que la monnaie est un instrument au service de l’économie (ou pire : un bien commun) change radicalement les choses. C’est une réalité factuelle qu’il n’est pas prêt à admettre car cela rend la constitution de tout capital financier discutable et c’est, en conséquence, envisager l’éventualité de le faire fondre (entre autre par l’inflation, excellent moyen de résorber une dette au désavantage du créancier).

    D’où les considérations pseudo-moralisatrices. M’enfin, morale à demie, parce que foutre tout un peuple dans ce qui est purement et simplement une servitude par dette (dette qui s’hérite évidemment à entendre certains à la télé. expliquer qu’à notre naissance nous sommes déjà endettés), ce n’est pas défendable moralement parlant. Étant donné l’historique de la dette et de la crise financière, la morale commanderait en toute logique d’effacer la dette grecque purement et simplement et de réclamer les sommes dûes aux institutions financières spéculatrices qui ont foutu tout le monde dans la merde (banques, assurances, fonds de pension, etc.).

  • [^] # Re: Démocratie?

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 9.

    Non. Le contrôle de la liquidité de l’€ n’est pas du ressort du gouvernement grec, mais de la banque centrale européenne. Par définition. Et non, la confiance n’a rien à voir là-dedans car il y a tout un ensemble de mécanismes mis en place (notamment après la crise de 29) afin d’éviter le bank run (garantie des dépôts, ratio de fonds propres). Renseignes-toi un peu sur le système bancaire avant de répéter les âneries de la propagande.

    Ici c’est la responsabilité directe de la banque centrale qui est engagée. Alors qu’il était de notoriété publique qu’il y avait un bank run larvé depuis des mois, c’était de la folie de la part de la banque centrale que de laisser entendre qu’elle pourrait couper les dernières liquidités. Ça a obligé le gouvernement grec au contrôle des retraits (dernier ressort pour éviter le bank run).

  • [^] # Re: Démocratie?

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 5. Dernière modification le 06 juillet 2015 à 09:11.

    Il y a confusion entre l’État et les banques privées (mais en fait l’État est en excédent primaire). Il y a aussi méconnaissance du système bancaire : un bank run conduit à une insolvabilité des banques même si elles ont un bilan positif, qu’elles respectent le ratio sur fond propre et tout le tointoin.

  • [^] # Re: Le + intéressant c'est le futur proche

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 1.

    https://linuxfr.org/users/niconico/journaux/l-etat-francais-retourne-sa-veste-sur-l-open-data-dans-les-transports#comment-1610970

    On pourra rajouter, à toutes fins utiles, que dans le cas grec il y a des données socio-économiques objectives qui les autorisent à « avoir la main ».

  • # Mouai...

    Posté par . En réponse au journal Et ce soir, la démocratie l'emporte !. Évalué à 1. Dernière modification le 05 juillet 2015 à 22:17.

    Vu les conditions dans lesquelles s’est passé le référendum... J’ai plutôt l’impression du contraire.

    http://www.greekcrisis.fr/2015/07/Fr0441.html
    http://www.greekcrisis.fr/2015/07/Fr0442.html

    Édifiant !

    Je n’oublie pas non plus l’erreur des sondages, trop monumentale pour être honnête.

    Extrait du film "The Dictator"

    Arf, j’ai cru que c’était Le dictateur, le discours à la fin, magnifique ! À voir aussi Un Roi à New York film tardif, et donc injustement méconnu, de Chaplin abordant le McCarthysme. Y’en a aussi un autre sur la crise de 29, Monsieur Verdoux : le capital Allemand (entre autres, avec ses retraités) a beaucoup perdu en ~2007, faut donc qu’il se rattrape sur le dos des Grecs (entre autres).

  • [^] # Re: Encore ?

    Posté par . En réponse au journal L'État français retourne sa veste sur l'Open Data dans les transports. Évalué à 10. Dernière modification le 24 juin 2015 à 00:16.

    Non. On élit une assemblée relativement représentative (représentatif ≠ bien échantilloné), qui délibère après débat.

    Élire un mec qui décide de tout (et là effectivement c’est la majorité+1), c’est pas une démocratie, c’est une monarchie (même si le mandat est borné dans le temps, même si la charge n’est pas transmise par héritage).

    En France, même si les institutions prennent le nom de "gouvernement", "d’assemblée", etc. Nous sommes le plus factuellement du monde en monarchie élective. On élit un mec. Il décide de tout (ou nomme ceux à qui il délègue du pouvoir, c’est du pareil au même, cf. la servitude volontaire). Ce que nous nommons usuellement Assemblée Nationale et Sénat sont des conseils, car le Président a la capacité de passer outre (relativement à ce qui se fait chez nos voisins) sans réel contre-pouvoir effectif (pas théorique, mais réellement mis en application lors du fonctionnement observé et constaté du régime).

    https://fr.wikipedia.org/wiki/Article_49_de_la_Constitution_de_la_Cinqui%C3%A8me_R%C3%A9publique_fran%C3%A7aise

    La prise en compte de toutes les opinions, le débat, la négociation, le compromis, etc. sont des étapes absolument essentielles de la politique en général, et donc particulièrement la démocratie. C’est un des gros point fort de la représentative (parlementaire de toute évidence). C’est ainsi qu’on peut à minima, chercher le plus petit commun dénominateur (car la finalité première de la politique c’est de créer une communauté) et veiller au respect des droits humains élémentaires de la totalité de la population. Idéalement on se donnera ce faisant les moyens de construire un intérêt général. Au pire on procédera à un arbitrage, qu’on cherchera équilibré c’est-à-dire juste envers chaque parti en conflit : dit de manière plus simple, les politiciens ménagent la chèvre et le choux. Pas parce que ce sont des vilain-méchant-pas-beau-qui-veulent-que-tout-le-monde-vote-pour-eux-aux-prochaines-élections mais parce que c’est leur boulot. Un arbitrage appelle nécessairement des compromis de part et d’autres.

    Le vote n’est que le processus de délibération final, un moyen pragmatique de trancher, sans quoi jamais nous ne pourrions prendre de résolutions collectives. S’il fallait le considérer seul et l’exclusif ressort de la démocratie, il ne serait qu’un moyen de faire régner la loi du plus fort : la majorité décide parce qu’elle a le nombre pour elle. Je ne parierai pas un kopeck sur la stabilité d’un tel régime, car une minorité suffirait à le renverser, à moins d’user de moyens d’oppressions plus conséquent, que ce soit la police ou tout autre ersatz armé, alors véritable détentrice du pouvoir au détriment de la majorité.

    Remarque que c’est bien cette vision qui est présentée par l’ensemble du monde médiatico-sondagier, qui montrent les positionnements politiques toujours comme de pures opinions individuelles, jamais comme le produit d’une construction sociale (ce qu’est le débat entre autres). Lorsque l’extrême-droite parle de démocratie, de référendum, elle hérite le plus directement du monde de cette vision politique-ci. C’est ce que j’appellerais le populisme, si tant est que le mot puisse encore servir. Ma remarque sur l’instabilité intrinsèque d’un tel régime vaut pour tous : ici nul procès d’intention, un tel régime conduit nécessairement vers un État policier (sauf à le voir dégénérer en guerre civile). Preuve en est que l’extrême-droite n’est pas nécessaire à l’aboutissement d’un tel état de fait (cf. loi sur le renseignement), quand bien même elle en serait le dépositaire le plus naturel à plus ou moins long terme.

  • # Y’en a qui se réveillent

    Posté par . En réponse au journal NeoRetro ou comment dévoyer le financement participatif. Évalué à 8. Dernière modification le 23 juin 2015 à 20:59.

    À la base, la startup, c’est le truc qui permet au CAC40 d’externaliser la R&D.

    Le financement participatif, qu’il soit de l’initiative d’une multinationale ou non, est une combine miraculeuse pour ne même plus en assumer le coût financier.

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à 2.

    Je viens de tomber sur ça :

    https://www.youtube.com/watch?v=QiFiof0lYkU

  • [^] # Re: Encore ?

    Posté par . En réponse au journal L'État français retourne sa veste sur l'Open Data dans les transports. Évalué à 4. Dernière modification le 23 juin 2015 à 13:12.

    Démocratie, de Demos, ca veut dire "pouvoir au peuple".

    Et qu’est-ce qui se passe quand tu mets 45 millions de personnes ensemble ?
    Ben ils sont pas d’accord.
    Alors qu’est-ce qu’ils font ?

    Ils se foutent sur la gueule

    ... ou ils font des compromis.

    Il serait bien même possible que l’incapacité du peuple à faire vivre une démocratie aurait pour conséquence inévitable l’établissement d’une dictature, car la délégation d’une telle tâche, de négociations en compromis, représente une source de pouvoir illégitime et inévitable. Mais là pfiou, point trop n’en faut.

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -9. Dernière modification le 21 juin 2015 à 13:07.

    un lien vers la présentation de Benjamin Mako Hill

    Arf, ça c’est bon pour les

    américanisés

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -10.

    lol

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -10.

    C’était juste un rappel des faits : un CEO qui a 1000 € à mettre pour défendre une opinion politique homophobe, est un petit bourgeois réactionnaire. Par définition. C’est factuel.

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -8.

    Évidemment CEO aurait été à mettre en gras aussi.

  • [^] # Re: De la brutalité militante

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -10.

    Ces zozos voudraient que le logiciel libre soit une utopie libérale-libertaire réservée à une petite catégorie sociale : les petits bourgeois américanisés partisans du progressisme sociétal.

    Brendan Eich a dû démissionner de son poste de CEO peut de temps après sa nomination à couse de la shitstorm dû à un dont de 1000$ en faveur de la proposition 8 en 2008...

    À titre personnel, j'associe cela ni plus ni moins qu'à de la terreur

    No comment.

  • # Un signe des temps

    Posté par . En réponse au journal La communauté Open Source Américaine et la liberté d'expression. Évalué à -10. Dernière modification le 21 juin 2015 à 11:54.

    Où la « liberté » de se comporter en enfoiré, d’insulter les gens, d’être sociopathe est défendue politiquement comme si c’était la Liberté, sans considération sur le fait qu’il s’agit d’exclure des gens de la société, de les dominer et les opprimer parce qu’ils n’ont pas le bon vouloir de se soumettre à la norme ridiculement étroite d’esprits qui le sont tout autant.

    Rappelons-nous que les propriétaires d’esclaves, à les entendre, défendaient aussi leur « liberté de marchander des être humains », leur droit de propriété, etc.

    Il ne suffit pas de mettre le mot Liberté à toutes les sauces pour en être. Il faut l’avoir dans les tripes, et ça c’est pas donné à tout le monde.

    On nous prépare la dictature.

    Stupeur et tremblements

  • # Réponse : oui

    Posté par . En réponse au message Linux from scratch pour Raspeberry: préparation depuis un PC. Évalué à 4.

    Voici mes notes. Elles datent d’environ un an, donc il y aura peut-être des mises à jour à faire. C’est très synthétique (ce n’était pas destiné à publication) : il faut donc avoir un très bon niveau pour pouvoir s’en servir.

    Ça utilise Gentoo par contre, si tu connais pas, peut-être vaut-il mieux l’utiliser avant sur un poste ordinaire : de toute façon mes notes utilisent Gentoo comme système de build, avec une partition btrfs (un subvolume faisant office d’image virtuelle du système : on versionne le système et on met à jour le diff seulement sur la carte, c’est vraiment le top pour travailler).

    C’est un gros boulot. J’avais fini par abandonner mon but initial. Mais il y a déjà de quoi faire avec mes notes. À toi d’adapter en fonction de tes besoins. Je livre tel quel, j’espère que cela te sera utile ou à d’autres même si ça n’utilise pas LFS. Bon courage !

    Je crois savoir que sous Debian il existe aussi un système de compilation croisée.

    Introduction
    ============
     Il s’agit d’utiliser la carte comme un serveur pour de
     l’auto‐hébergement. On exploitera les fonctionnalités les
     plus avancées des systèmes Linux et les dernières
     innovations (btrfs, systemd, kexec, gentoo, etc.). Par
     exemple btrfs conjugué à kexec autoriseront des mises à jour
     fiables du système sur la carte SD. Gentoo permettra de
     configurer le système afin de veiller à des performances
     optimales, avec la mise en place d’une compilation croisée
     et d’une distribution binaire des paquets.
     Le serveur web sera léger (lighttpd à priori) et fera appel
     à FCGI/C++, via une technologie "semi‐statique" : les pages
     html seront servies statiquement, mais il sera possible de
     les modifier via l’exposition d’une API HTTP get/post
     adéquate. La modification des pages html fera appel au *copy‐
     on‐write* et au renommage atomique. En guise de démonstration
     technologique, on créera un blog simple. On pourra aussi
     réutiliser, moyennant quelques menues adaptations, les
     scripts dash/make qui me permettent de tenir à jour ma
     galerie d’images & vidéos.
    Pré-requis
    ----------
     Achat pour ~50 ,ドル livraison comprise, sur [materiel.net](http://materiel.net) :
     — Raspberry Pi B+ ;
     — alimentation 1,2 A (dont ~700 mA pour la carte) ;
     — carte microSDHC classe 4 Kingston 4 GB ;
     — cable ethernet court, sans blindage.
     On peut vérifier avec une raspbian que le tout fonctionne
     correctement, et on peut récupérer les options du noyau dans
     `/proc/config.gz`, utiles si l’on ne les a pas déjà.
     Connaissances requises :
     — administration d’une gentoo, niveau intermédiaire ;
     — administration de serveurs, web & mail essentiellement.
     — systemd, niveau débutant ;
     — base en développement C ;
     — chaîne de compilation (config/econf, make/emake, install).
     Documentation :
     — [guide](http://wiki.gentoo.org/wiki/Raspberry_Pi) gentoo sur la raspberry ;
     — [guide](https://www.gentoo.org/proj/en/base/embedded/handbook/?part=1) gentoo sur les systèmes embarqués ;
     — page `man ebuild` de gentoo ;
     — pages `man systemd`.
    Compilation croisée
    ===================
     On utilisera une variable de confort
     `ARM="armv6j-hardfloat-linux-gnueabi"`
     à placer dans son `~/.$(basename $SHELL)rc`.
     Faire :
     `sudo emerge sys-devel/crossdev
     sudo crossdev -S -P \-j2 -oO /usr/local/portage \
     --target $ARM`
     Si on vous le demande, il vous faudra convertir certains
     fichiers de `/etc/portage` en répertoire. Toutes les options
     du type `‐jN` peuvent être adaptées, ici et par la suite, avec
     N le nombre de cœurs de vos processeurs — c’est la célèbre
     option de make, passée telle quelle. On va combler un manque
     de crossdev :
     `sudo cp /usr/bin/$ARM-emerge /usr/bin/$ARM-ebuild`
     puis éditer le fichier nouvellement créé en remplaçant toute
     référence à emerge par ebuild et en supprimant l’argument
     `--root-deps=rdeps`.
     Il est temps de configurer & compiler un système de base :
     `sudo ln -nsf \
     /usr/portage/profiles/default/linux/arm/13.0/armv6j \
     /usr/$ARM/etc/portage/make.profile`
     puis éditer le fichier `/usr/$ARM/etc/portage/make.conf` :
     `CFLAGS="-O2 -pipe -fomit-frame-pointer
     -march=armv6j -mfpu=vfp -mfloat-abi=hard"
     USE_PYTHON="2.7"
     PYTHON_TARGETS="python2_7"
     MAKEOPTS="-j2"
     PORTAGE_NICENESS=19
     PORTAGE_TMPDIR=/tmp/
     USE="${ARCH} -pam
     systemd python2 minimal
     -acl -kmod -firmware-loader -cracklib
     -nls -cramfs"`
     Notez bien que si je prends l’option d’un répertoire de
     travail dans `/tmp`, c’est pour que la compilation se déroule
     dans un tmpfs — c’est le cas de `/tmp` chez moi — sans pour
     autant interférer avec le répertoire de travail du portage
     principal — dans `/var/tmp` chez moi. Enfin :
     `sudo $ARM-emerge systemd btrfs-progs dash`
     Cela devrait nous mener à quelques erreurs de compilation.
     Voyons comment les résoudre.
    À propos des problèmes de compilation
    -------------------------------------
     Il faut commencer par consulter les logs laissés par
     portage. Par exemple à partir de
     `/tmp/portage/sys-apps/shadow-4.2.1/temp/build.log`
     on atteint
     `[..]/sys-apps/shadow-4.2.1/work/shadow-4.2.1/config.log`
     et ce dernier mène au script `configure:14778` dans le même
     répertoire.
     Il faut donc débrayer emerge et passer en manuel pour que
     portage puisse compiler les paquets qui posent problème.
     Pour ce faire on utilisera ebuild : je renvoie à sa
     documentation. Pour toute la section nous supposerons être
     root. En utilisant le fichier `.ebuild`, dans `/usr/portage` et
     correspondant au paquet à installer (attention à la version
     du paquet!), les commandes utiles sont :
     `$ARM-ebuild xxx.ebuild prepare
     $ARM-ebuild xxx.ebuild configure
     $ARM-ebuild xxx.ebuild compile
     $ARM-ebuild xxx.ebuild install
     $ARM-ebuild xxx.ebuild qmerge
     $ARM-ebuild xxx.ebuild package
     $ARM-ebuild xxx.ebuild clean`
     Par exemple avec shadow, on prépare le répertoire de
     travail, et ensuite on modifie le script configure aux
     alentours de la ligne 14 778. En effet on réalise que le
     problème vient de ce que le script a besoin de compiler et
     d’exécuter un petit programme à la volée pour vérifier si
     certaines données sont en 32 bits. Dans un contexte de
     compilation croisée, c’est pas cool ! Ceci dit, on sait que
     la raspberry est 32 bits. Il nous suffit donc de modifier le
     script en conséquence pour qu’il n’ait pas à faire son test,
     mais qu’il exécute les actions nécessaires en admettant un
     résultat de type 32 bits.
     En ce qui concerne btrfs, il sera probablement nécessaire de
     compiler le paquet acl avant, puis de suivre la procédure
     manuelle, pour faire un petit tour vers le Makefile afin de
     désactiver la compilation de l’inutile documentation, qui
     nécessite asciidoc, dont les dépendances sont trop lourdes.
     Parfois les problèmes sont plus profonds, et il peut être
     nécessaire de bloquer la version la plus récente d’un paquet
     se trouvant la plupart du temps dans `~arm`. Ce fut le cas
     pour `libgpg‐error‐1.13`.
     Pour clucene, réclamé plus tard par dovecot compilé avec la
     recherche plein texte, il faut désactiver le test de
     `snprintf`, après vérification manuelle sur la raspberry. Mais
     c’est insuffisant : une erreur de programmation subsiste
     lorsque les espaces de nom C++ ne sont pas disponibles. En
     effet le dévelopeur a bêtement utilisé un espace de nom
     directement plutôt qu’une macro ad‐hoc correspondante. Ceci
     dit, finalement, j’ai activé les espaces de nom directement,
     après vérification manuelle du test CMake sur la raspberry
     bien sûr, en modifiant directement le fichier cache de
     CMake. Ce fut nécessaire pour ne pas avoir de conflits au
     moment du lien.
     Rebelotte pour Dovecot. Toujours la même chose : l’étape
     configure réclame la compilation et l’exécution de
     programmes à la volée. Il faut modifier le script `configure`
     pour court‐circuiter les tests de epoll et inotify dont on
     veillera à l’activation dans le noyau. Il en est de même
     pour `fallocate` de posix, et des `size_t` non signés, après
     vérification manuelle. Le nombre de bits supportés par
     `gmtime` est 32, les `time_t` sont signés, `mmap` accepte les
     `write`, un obscur truc à propos de `fd` passe le test (premier
     de la boucle) sans problème, idem pour `vsnprintf`, et
     quelques test sur les listes à taille variable d’arguments.
    Noyau
    =====
     `USE="-symlink" sudo emerge \
     sys-kernel/raspberrypi-sources \
     sys-boot/raspberrypi-mkimage`
     J’ai installé la version des sources noyau qui correspond à
     mon système principal, suffisament récente pour btrfs — à
     l’heure où j’écris ce texte, c’est 3.14 —, et j’ai rendu
     permanent la suppression du USE symlink dans un fichier de
     `/etc/portage/package.use`. Puis dans le dossier des sources
     du noyau :
     `sudo make ARCH=arm CROSS_COMPILE=$ARM- make -j2
     sudo mkdir /usr/$ARM/boot
     sudo imagetool-uncompressed.py --force
     arch/arm/boot/Image /usr/$ARM/boot/kernel.img`
     J’utilise un noyau monolitique avec un [.config](http://TODO|le `.config` de mon noyau actuel) issu d’une
     raspbian (`/proc/config.gz`) et modifié pour être le plus
     minimaliste possible. Il faut veiller à certaines [options](Doivent être activées les deux options menuconfig qui concernent kexec ainsi que CONFIG_ATGS, pour plus tard, et les dépendances systemd pour le noyau : AUTOFS4_FS ok, BLK_DEV_BSG ok, CGROUPS ok, DEVTMPFS ok, DMIID n/a, EPOLL ok, FANOTIFY ok, FHANDLE ok, INOTIFY_USER ok, IPV6 ok, NET ok, NET_NS ok, PROC_FS ok, SECCOMP ok, SIGNALFD ok, SYSFS ok, TIMERFD ok, TMPFS_XATTR ok, !IDE ok, !SYSFS_DEPRECATED ok, !SYSFS_DEPRECATED_V2 ok, !GRKERNSEC_PROC ok, !FW_LOADER_USER_HELPER ok).
    Système
    =======
     Rechercher dans les [dépots](http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv6j_hardfp/) gentoo l’archive stage3 la plus
     récente, et noter son `url` :
     `wget $url
     wget \
     http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2
     sudo btrfs subvolume create root-work
     sudo tar xjpf stage3-armv6j_hardfp-xxx.tar.bz2 -C root-work/
     sudo tar xjpf portage-latest.tar.bz2 -C root-work/usr/ `<- TODO image miroir de /usr/$ARM/usr/bla
     Tenter un mount --bind`
     sudo $ARM-emerge --root root-work --unmerge udev
     PKGDIR=/usr/$ARM/packages sudo $ARM-emerge \
     systemd btrfs-progs dash --root root-work --usepkgonly`
     Il faut utiliser les fichiers fournis sur la partition de
     boot de la raspbian, car ceux du paquet gentoo ad‐hoc ne
     sont pas bons. La procédure consiste à lancer :
     `sudo parted bla-raspbian.img unit b print`
     Regarder le début de la partition fat16, et s’en servir
     comme `offset` :
     `mkdir boot
     sudo mount -o offset=$offset bla-raspbian.img boot
     sudo cp boot/* /usr/$ARM/boot
     sudo umount boot
     rmdir boot`
     Puis éditer le fichier `/usr/$ARM/boot/cmdline.txt`, sur une
     seule ligne :
     `console=tty1
     root=/dev/mmcblk0p2
     rootfstype=btrfs
     elevator=noop
     rootwait
     init=/usr/lib/systemd/systemd
     quiet
     ro
     rootflags=compress=lzo`
     puis le fichier `/usr/$ARM/boot/config.txt` pour les options :
     `hdmi_safe=1
     gpu_mem=16`
     Enfin, `root-work/etc/fstab` doit contenir :
     `/dev/mmcblk0p1 /boot vfat noauto,noatime 1 2
     /dev/mmcblk0p2 / btrfs noatime,compress=lzo 0 1
     /dev/mmcblk0p2 /mnt btrfs noatime,subvol=/,compress=lzo 0 0`
     Ne pas oublier de créer le lien :
     `sudo ln -s /proc/self/mounts root‐work/etc/mtab`
     Puis éditer le fichier `root-work/etc/systemd/journald.conf` :
     `Storage=volatile
     RuntimeMaxUse=10M`
     Activer le synchronisation de temps : <- TODO: ne fonctionne pas à cause d’une entrée /dev absente
     `sudo systemctl enable --root root-work \
     systemd-timesyncd.service`
     Bien noter qu’il faut copier l’unité correspondante du côté
     de `/etc` et y supprimer la ligne `PrivateTmp=yes`, et penser à
     créer le fichier `/var/lib/systemd/clock` avec le bon
     propriétaire (voir la section sur la création d’un système
     de fichier mixte ro‐rw). Pour localiser la zone horaire :
     `sudo ln -sf \
     /usr/share/zoneinfo/Europe/Paris root-work/etc/localtime`
     Le système d’init se contentera d’un démarrage simplifié :
     `sudo systemctl set-default basic.target --root root-work`
    Réseau & OpenSSH
    ----------------
     L’interface réseau est reconnue comme étant le très
     classique eth0. Il faut créer l’unité `static‐eth0.service`
     dans `root‐work/etc/systemd/system/network.target.wants` :
     `[Unit]
     Description=Static ethernet connection
     Before=network.target
     BindsTo=sys-subsystem-net-devices-eth0.device
     After=sys-subsystem-net-devices-eth0.device
     [Service]
     Type=oneshot
     RemainAfterExit=yes
     KillMode=none
     ExecStart=/bin/ifconfig eth0 192.168.0.2 \
     broadcast 192.168.0.255 netmask 255.255.255.0 up
     ExecStart=/bin/route add default gw 192.168.0.254`
     On n’oublie pas les DNS :
     `sudo cp -L /etc/resolv.conf root-work/etc/`
     On doit mettre en place le serveur ssh. Pour cela ajouter un
     lien :
     `sudo systemctl --root root-work enable sshd.socket`
     Editer le fichier de configuration
     `root-work/etc/ssh/sshd_config`
     pour supprimer, ou commenter, la ligne :
     `UsePAM yes
     AcceptEnv LANG LC_*`
     Puis faire (première commande le cas échéant) :
     `sudo ssh-keygen <- TODO: doit être fait pour chaque image fournie/téléchargée
     sudo mkdir root-work/root/.ssh
     sudo chmod 700 root-work/root/.ssh
     sudo cp \
     /root/.ssh/id_rsa.pub root-work/root/.ssh/authorized_keys
     sudo mount --bind root-work/root/etc/ssh /etc/ssh
     sudo ssh-keygen -A
     sudo umount /etc/ssh`
    Préparation de la carte SD
    --------------------------
     Pour finir on prépare le snapshot à placer sur la carte SD,
     pour cela, créer une partition FAT16 commençant à 4096kB et
     ayant l’étiquette lba, et une seconde pour le fichier racine
     en btrfs. Attention à bien spécifier les bons fichiers bloc
     pour les deux première commandes, car elles sont tout
     particulièrement dangereuses :
     `sudo mkfs.fat -F16 /dev/sdX1
     sudo mkfs.btrfs /dev/sdX2
     sudo mount /dev/sdX1 /mnt
     sudo cp /usr/$ARM/boot/* /mnt
     sudo umount /mnt
     sudo btrfs subvolume snapshot -r root-work root-xxx
     sudo mount /dev/sdX2 /mnt
     sudo btrfs send raspberry/root-xxx | sudo btrfs receive /mnt
     sudo btrfs subvolume set-default \
     $(sudo btrfs inspect-internal rootid /mnt/root-xxx) /mnt
     sudo umount /mnt`
    Finaliser l’installation
    ========================
     Si tout se passe bien, les étapes précédentes auront permis
     de créer un système fonctionnel avec lequel la raspberry
     peut démarrer, se connecter au réseau local, et ouvrir un
     serveur ssh. Une connection ssh depuis le compte root permet
     de valider l’opération.
     On pourra continuer le travail en supposant que la raspberry
     est allumée et accessible via le nom d’hôte éponyme. Pour ce
     faire, écrire dans le fichier /etc/hosts :
     `192.168.0.2 raspberry`
    Kexec & mise-à-jour à distance
    ------------------------------
     Nous allons installer kexec pour montrer comment on peut
     faire évoluer le système :
     `sudo $ARM-emerge kexec-tools
     PKGDIR=/usr/$ARM/packages sudo $ARM-emerge kexec-tools \
     --root root-work --usepkgonly
     sudo btrfs subvolume snapshot -r root-work root-xxx-r1
     sudo btrfs send -p root-xxx root-xxx-r1 -f incr.img
     sudo scp incr.img raspberry:/tmp
     sudo ssh raspberry
     mount -o subvol=/ /dev/mmcblk0p2 /mnt
     btrfs receive -f /tmp/incr.img /mnt
     btrfs subvolume set-default \
     $(btrfs inspect-internal rootid /mnt/root-xxx-r1) /mnt
     umount /mnt
     systemctl reboot`
     Ce qui devrait logiquement fermer la connexion ssh. Attendre
     quelques secondes, puis relancer :
     `sudo ssh raspberry
     mount -o subvol=/ /dev/mmcblk0p2 /mnt
     btrfs subvolume delete /mnt/root-xxx
     umount /mnt
     kexec -v`
     La dernière commande devrait être ok : on a réalisé une mise
     à jour à distance de notre raspberry !
     Pourquoi kexec ? Et bien, si un nouveau noyau tombe dans un
     `kernel panic` et que l’option
     `menuconfig->kernel hacking->panic timeout`
     est réglée à 10 (par exemple), alors qu’il est lancé avec
     kexec, la carte redémarrera automatiquement sur l’ancien
     noyau. Elle est pas belle la vie ? Voyons voir, compilons un
     nouveau noyau, selon la procédure décrite précédemment.
     Puis :
     `sudo scp arch/arm/boot/zImage raspberry:/tmp
     sudo ssh raspberry
     kexec -l /tmp/zImage --atags --command-line="$(cat /proc/cmdline)"
     kexec -e` <- TODO c’est pas du propre !
    Rendre fonctionnel l’ensemble
    -----------------------------
     Pour corriger les erreurs qui subsistent, il suffit d’ouvrir
     le journal systemd. Par exemple, mon installation montre que
     des groupes et des utilisateurs qui sont nécessaires au bon
     fonctionnement de systemd, etc. n’ont pas été créés. J’ai
     corrigé cela en ajoutant les lignes nécessaires aux fichiers
     `/etc/passwd` & `/etc/group`, directement piquées de mon système
     principal.
     C’est aussi le journal qui permet de connaître les
     répertoires qui doivent être accessibles en écriture pour la
     section suivante.
    Système de fichier mixte ro–rw
    ------------------------------
     Btrfs permet d’obtenir un système de fichier qui utilise
     deux blocs mémoire sources, dont un est en lecture seule. On
     va donc procéder à la création d’un fichier image qui
     contiendra un système de fichiers en lecture seule, et d’un
     bloc situé en mémoire vive accessible en écriture, et qui
     sera le *copy‐on‐write* du fichier image. On pourra ainsi
     limiter les écritures sur la carte SD, afin de la préserver.
     Pour initier la procédure, toujours sur la raspberry, avec
     la variable shell `rep` l’ensemble des répertoires qui doivent
     être en écriture, en suivant la convention de nommage de
     systemd :
     `dd if=/dev/zero of=/mnt/live bs=128M count=1
     mkfs.btrfs /mnt/live
     mount -o loop /mnt/live /media
     btrfs subvolume create /media/0
     for r in $rep;do mkdir /media/0/$r;done
     btrfs property set /media/0 ro true
     ln -s 0 /media/cur
     umount /media`
     Et sur l’ordinateur principal, toujours dans le répertoire
     où se trouve `root‐work` le répertoire destiné à être la
     racine du système de fichier de la raspberry :
     `sudo mkdir root-work/live`
     Éditer les fichiers `root-work/etc/fstab` :
     `/mnt/live /mnt btrfs loop,noatime 0 0`
     ensuite `root-work/usr/local/sbin/live.start` :
     `#!/bin/dash
     current=$(readlink /live/cur)
     other=$((1 - ${current}))
     if [ -d /live/${other} ]
     then
     /bin/umount /live
     /sbin/btrfstune -fS0 /mnt/live
     /bin/mount /live
     /sbin/btrfs subvolume delete /live/${other}
     /bin/umount /live
     /sbin/btrfstune -S1 /mnt/live
     /bin/mount /live
     fi
     btrfs device add -Kf /dev/ram0 /live
     mount -o rw,remount /live
     btrfs subvolume snapshot /live/${current} /live/${other}
     ln -snf ${other} /live/cur`
     et enfin `root-work/usr/local/sbin/live.stop` :
     `#!/bin/dash
     [ -f /live/volatile ] && exit 0
     current=$(readlink /live/cur)
     other=$((1 - ${current}))
     btrfs property set /live/${current} ro true
     btrfs send -p /live/${other} /live/${current} -f /tmp/live.incr
     umount /live
     btrfstune -fS0 /mnt/live
     mount /live
     btrfs receive -f /tmp/live.incr /live \
     && ln -nsf ${current} /live/cur.tmp \
     && mv -T /live/cur.tmp /live/cur \
     && btrfs subvolume delete /live/${other}
     umount /live \
     && btrfstune -S1 /mnt/live \
     && btrfs filesystem sync /mnt`
     Puis rendre les deux scripts exécutables :
     `chmod u+x root-work/usr/local/sbin/live.st*`
     Ils seront appelés par une unité systemd chargée de gérer ce
     montage d’un type un peu particulier dans `/live`, on écrit
     donc `root-work/etc/systemd/system/live.service` :
     `[Unit]
     DefaultDependencies=false
     RequiresMountsFor=/mnt /tmp /live
     [Service]
     Type=oneshot
     RemainAfterExit=true
     ExecStart=/usr/local/sbin/live.start
     ExecStop=/usr/local/sbin/live.stop`
     ainsi que `root-work/etc/systemd/system/live-pre.service` :
     `[Unit]
     DefaultDependencies=false
     RequiresMountsFor=/mnt
     Before=live.mount
     [Service]
     Type=oneshot
     SuccessExitStatus=1
     ExecStart=/sbin/btrfstune -S1 /mnt/live`
     et pour finir `root-work/etc/systemd/system/live.mount` :
     `[Unit]
     DefaultDependencies=false
     RequiresMountsFor=/mnt
     Requires=live-pre.service
     After=live-pre.service
     [Mount]
     What=/mnt/live
     Where=/live
     Options=loop,noatime`
     Il faut noter une fonctionnalité qui permet de désactiver le
     script d’arrêt, qui est particulièrement long lorsqu’on 
     teste, en plaçant un fichier vide `/live/volatile`, auquel cas
     on perd la persistance des données.
     On va ensuite créer des unités systemd de type `.mount` afin
     de gérer tous les répertoires qui doivent être accessibles
     en écriture. Elles devront dépendre du service qui vient
     d’être écrit. Il faut rendre accessible en écriture un
     certain nombre de répertoires, par exemple `/var/log` &
     `/var/lib/systemd`. Ce qui donne, par exemple, une unité
     dans `/etc/systemd/system/local‐fs.target.wants` de nom fixé
     `var‐log.mount` :
     `[Unit]
     DefaultDependencies=false
     Requires=live.service
     After=live.service
     Before=systemd-tmpfiles-setup.service
     [Mount]
     What=/live/cur/var-log
     Where=/var/log
     Options=bind`
     Et ainsi de suite, en veillant à bien respecter le nommage
     des unités comme systemd le réclame (voir la documentation).
     Il faut aussi créer les dossiers voulus sur la raspberry :
     si cela n’est pas déjà fait, enlever momentanément la
     propriété `ro` du volume concerné par `/live/cur`, puis y créer
     les dossiers tout en respectant, encore une fois, le schéma
     de nommage.
    Logiciels tiers
    ===============
    Serveurs
    --------
     Pour installer le serveur, on ajoute les USE nécessaires :
     `sieve managesieve lucene
     -threads
     -mysql -sqlite -gdbm`
     dans `/usr/$ARM/etc/portage/make.conf`, puis :
     `sudo $ARM-emerge \
     fetchmail ssmtp dovecot lighttpd`
     Pour les erreurs de compilation, se reporter à la section
     correspondante. Pour l’installation :
     `PKGDIR=/usr/$ARM/packages sudo $ARM-emerge \
     fetchmail ssmtp dovecot lighttpd \
     --root root-work --usepkgonly`
     Il faut là encore mettre en place les bons utilisateurs dans
     `/etc/passwd` & `/etc/group`. Il faut aussi les bons dossiers
     accessibles en écriture. Par exemple, sur la raspberry :
     `mkdir /var/log/lighttpd
     chown lighttpd:lighttpd /var/log/lighttpd
     rm /live/volatile
     systemctl stop live.mount`
     Ainsi le script d’arrêt est bien appelé dans sa version
     complète, comme cela peut prendre un moment on peut se
     renseigner sur son avancement :
     `systemctl status live.mount`
     puis remonter le tout :
     `systemctl start live.service
     systemctl start var-log.mount
     systemctl start var-lib-systemd.mount`
     avec l’avantage d’être toujours en volatile, si c’était le
     cas, car le fichier ad‐hoc a uniquement été supprimé du
     système de fichier en ram.
     Le cache de compression de lighttpd se trouve dans
     `/var/cache/lighttpd`, mis en tmpfs (`size=512M`) dans
     `/etc/fstab` en oubliant pas de placer un `RequiresMountsFor`
     adéquat pour l’unité lighttpd, ce qui aurait déjà dû être
     fait pour le `/var/log/lighttpd`.
    Outils
    ------
     Gnuplot et Imagemagick sont de la partie. Le premier sans
     readline mais avec gd (png), le second avec cxx et jpeg.
     TODO : Des erreurs de compilation apparaissent, sans
     surprise. Pour Gnuplot, c’est la création de fichiers d’aide
     qui bloque. Ce ne devrait pas être un problème. Pour
     Imagemagick, il faut creuser du côté de la libtool.
    Perspectives
    ============
     Penser à la possibilité d’ajouter une petite batterie,
     typiquement ce que j’ai sur mon XZ‐1. Il existe des
     convertisseurs 3,7 à 5 V DC. Cela permettrait une extinction
     propre de la machine au débranchement de l’alimentation,
     avec un peu de travail sur l’électronique. On pourrait
     relâcher ainsi la contrainte d’écriture sur la carte SD.
    TODO: redémarrer en cas de fail du net ou du ssh.
    TODO: faire du kexec et améliorer le noyau (unité systemd nécessaire, notamment pour veiller à la bonne gestion du live.service).
    TODO: kexec en changeant la cmdline pour démarrer sur un nouveau snapshot !!! pb avec fstab pas à jour?
    TODO: Documentation/cmdline-partition, pour indiquer la table de partitions sur la ligne de commande, sans compter l’utilisation d’un device static.
    TODO: utile de compléter le fichier /etc/shadow ?
    TODO: comment se passe la gestion des fichiers /var/log et/ou /var/lib/systemd
    TODO: voir si le premier umount avec -f dans live.stop accélère la vitesse du démontage (qui peut être forcé sans problème)
    TODO: SIGSTOP&SIGCONT pour pouvoir garder lighttpd sur le fil lorsqu’on doit effectuer un live.stop&live.start pour les dossiers du serveur.
    TODO: check pagesize of the raspberry
    TODO: ssh-keygen doit pouvoir être relancé pour chaque image.
    
  • [^] # Re: gentil·le

    Posté par . En réponse au journal Sexisme ordinaire sur Linuxfr. Évalué à -3.

    Quels modules exactement, si ce n’est pas indiscret ?

  • [^] # Re: gentil·le

    Posté par . En réponse au journal Sexisme ordinaire sur Linuxfr. Évalué à -1.

    C’est pour ça que tout bon article scientifique digne de ce nom commence par un état de l’art et une recherche bibliographique présentant le contexte du travail. Ce qui est le cas d’au moins un des articles cités. À priori, c’est fait correctement de ce que j’ai pu voir.

    pseudo-scientifique et cela n'a absolument rien à voir avec la dualité science humaines/dures

    Indépendamment de ce que tu penses en ton fort intérieur (je ne suis pas là pour faire des procès d’intention), ici tu t’es appuyé (consciemment ou non) sur un préjugé qui est vraiment très prégnant dans ces milieux là.

  • [^] # Re: gentil·le

    Posté par . En réponse au journal Sexisme ordinaire sur Linuxfr. Évalué à -10.

    Les complotistes, les réactionnaires, les antisémites et autres mouvements pas bien reluisants arrivent aussi à trouver de jolis articles écrits par des scientifiques pour démontrer

    Ah bon ? Perso à chaque fois que j’ai creusé je n’y ai trouvé que du vent, quand ce n’est pas un bête et méchant contre-sens du document de la part de celui qui cite (en supposant de sa bonne foi, mais je crois que le plus souvent c’est calculé en sachant très bien que la proportion de personnes qui suit le lien et lit est très faible).

    les gens ont tout à fait le droit d'être d'un avis différent du tiens et d'être des personnes progressistes sur la cause des femmes, homo et transgenre

    Jusqu’à être dans la posture morale, mais quand on les gratte un peu, on se rend compte qu’ils sont tout le contraire de ce qu’ils prétendent être.

    Bon je vais m'y coller car je trouve que la pseudo-science ça commence à bien faire.
    Il doit y avoir plus de 50% d'ingénieurs et a minima une 10 de pourcent (à la grosse louche) de docteurs

    Ça m’a fait rire. Les sciences "dures" (rien que le mot...) n’ont toujours eu que mépris arrogant et suffisance envers les sciences humaines. Y’a une série qui a beaucoup de succès sur ce sujet là et d’autres, The Big Bang Theory.

    Il doit y avoir plus de 50% d'ingénieurs et a minima une 10 de pourcent (à la grosse louche) de docteurs, dont je fais parti.

    Et 99% d’hommes. CQFD. Y’en a même qui cumulent les trois.

    À ce rythme tu vas entrer dans un cercle de paranoïa ou tu penseras que tout le monde est contre toi.

    Mais non mais non. On finit juste par se dire que la connerie humaine est décidément infinie ; comme quoi y’a pas besoin d’obtenir un prix Nobel pour savoir ça.

  • # Un commentaire

    Posté par . En réponse au journal Sexisme ordinaire sur Linuxfr. Évalué à 0.

    la majorité des personnes me lisant ne subissent aucune oppression due à la perception qu’on a de leur genre, leur race, leur sexualité, etc. et ne comprennent donc pas ces oppressions.

    Arf. Si seulement cela pouvait être vrai.

  • [^] # Re: Usage ?

    Posté par . En réponse au journal Annuaire d'Expertes. Évalué à -1.

    Ce n’est pas moi qui prétexte de cet état de fait dans la société pour le justifier dans les médias, hein...