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…