Planet Libre

Jehan : Notre vision pour LILA et ZeMarmot

Imaginez un studio de film, avec des artistes et techniciens qualifiés, qui travaillent sur des films ou des séries intéressantes… et qui les partagent sous une Licence Libre, pour être visibles par tous, partout (télé, cinéma, web…), partageables et réutilisables.

Imaginez maintenant que ce studio utilise essentiellement du Logiciel Libre (et de l’Open Hardware si disponible), qu’ils le corrigent, voire modifient et l’améliorent au besoin, aussi bien pour des logiciels finaux (tels que GIMP, Blender, Inkscape…), de bureau (tel GNOME), voire jusqu’au système d’exploitation (GNU/Linux) et tout le reste!

Voici donc mon rêve pour l’association à but non lucratif LILA, et pour le projet ZeMarmot (notre premier film, d’animation). C’est ce que je vise depuis le début, mais je me dis que ce n’était peut-être pas suffisamment clair.

Si vous aimez ce rêve, je vous encourage à nous aider en donnant par Patreon, Tipeee, Liberapay, ou tout autre moyen (donation directe bancaire, Paypal, etc.). Car comme toute association à but non lucratif, LILA et ZeMarmot vit par et pour vous!

Si vous voulez lire plus, je rajoute des détails ci-dessous!

Mon emploi actuel

Au niveau personnel, j’ai récemment été engagé pour un an par le CNRS pour développer du code touchant à GIMP et G’Mic.

J’ai peu de salaire stable depuis quelques années, et je suis donc content que ce soit pour travailler sur GIMP (ce que j’ai fait bénévolement ou peu payé pendant 6 ans!)!
Pour ajouter un peu de contexte, l’équipe de G’Mic m’avait d’abord proposé de travailler sur un plug-in Photoshop, ce que j’ai poliment refusé. Je n’ai rien contre Photoshop, mais ce n’est sûrement pas le boulot de mes rêves. Le projet fut alors retravaillé pour que je puisse continuer à travailler avec GIMP. Deux projets principaux ont été identifiés:

  1. La gestion d’extension dans GIMP, ce dont j’avais déjà parlé (sans savoir à l’époque que je serais engagé pour cela), puisque cela aidera beaucoup G’Mic à être installé. J’en profiterai aussi pour améliorer les extensions de manière générale (ce que je prévoyais d’ailleurs depuis le début).
  2. L’implémentation de leur algorithme de colorisation intelligente dans GIMP. Ce projet vint de ma propre initiative quand ils m’ont proposé de travailler ensemble, car cela rentrait très bien dans mes propres plans, et rendrait enfin leur super algo “utile” (l’interaction dans G’Mic est des plus douloureuses!). J’en reparlerai dans un article dédié. Voici pour donner une idée:

Et ZeMarmot dans tout ça?

ZeMarmot est mon projet adoré (de même que celui d’Aryeom). Je le chéris et c’est là que je vois un futur (pas forcément ZeMarmot en soi, mais là où ça va mener). Ainsi même si j’ai une autre source de revenu temporaire, je voudrais réitérer que si vous aimez ce que j’ai fait jusque là, alors c’est à ZeMarmot qu’il faut donner. Financer ZeMarmot est le seul moyen de me permettre de continuer à améliorer GIMP sur le long terme.

Je vois cette année avec le CNRS comme une opportunité de permettre à ZeMarmot de s’épanouir. Car soyons clair, ce n’est pas encore le cas. Chaque année, nous répétons la routine de demander votre aide, et d’ailleurs on est très peu doué sur ce point (quand je vois notamment que les autres assos et fondations ont commencé leurs campagnes de dons depuis un mois!). On est des techniciens essentiellement (développeurs, animateurs…), et on est vraiment nul en marketing. Donc voici notre demande à la dernière seconde!

À ce jour, nous sommes financés à peine au dessus des 1000 € par mois, ce qui ne permet même pas de payer un salaire à temps plein au minimum légal en France. Ainsi en 2018, LILA a été capable d’engager Aryeom (réalisation/animation) et moi-même (développement) en moyenne 6 jours par mois. C’est peu! Pourtant c’est ce qui nous a fait vivre.
On a estimé qu’il faut au moins 2100€ par mois pour une personne, et qu’en vrai nous avons besoin de 5000€ par personne pour un salaire raisonnable et des conditions de travail acceptables (nous avons vu d’ailleurs que la fondation Blender fait aussi cette même estimation), même si cela reste sous les prix du marché d’ailleurs. Notre financement actuel est donc 4 fois trop petit pour un minimum déraisonnable et 10 fois sous le minimum raisonnable. Sans même parler de la lointaine possibilité d’engager plus de gens. Triste, hein?

LILA en 2 mot

LILA est enregistrée officiellement en France comme une association à but non lucratif, loi 1901. Son numéro d’activité est celui d’une production de film, lui donnant un statut vraiment unique lui autorisant d’engager des gens pour la production de films libres, ce qui est fait depuis 3 ans.

Le but de cette production n’est pas l’enrichissement d’actionnaires quelconques (il n’y en a pas). Nous voulons créer nos œuvres, les faire connaître et passer au projet suivant. Car nous aimons ce que nous faisons. C’est pour cela que ZeMarmot est sous licence Creative Commons by-sa, permettant à chacun de télécharger le film, le partager avec amis et famille, et même de le vendre ou de le modifier! Sans blague! Nous proposerons même chaque image source avec les calques!

En outre LILA paye de vrai salaire pour chaque participant. En effet, nous ne considérons pas que “Art Libre” signifie “œuvre au rabais” ou même “amateurisme”. C’est un projet sympa? Oui. Mais c’est aussi professionnel.

Ainsi si LILA était soudainement financé au dessus de toutes nos espérances, cela ne ferait pas de salaires indécents. Simplement LILA pourra embaucher plus de personnes pour faire des superbes films et logiciels plus rapidement et ainsi rendre le monde de l’Art plus agréable. C’est ça être une association à but non lucratif!

Et le logiciel Libre alors?

Là c’est l’autre aspect du studio: nous utilisons uniquement des logiciels libres! Non seulement cela, mais aussi pour en développons! Je ne parle pas de libérer un script interne, mal fait et utilisé par 3 personnes dans le monde tous les 36 du mois. En particulier, nous faisons partie de l’équipe de développement de GIMP! Ces dernières années, un quart des commits de GIMP sont les notres (ce qui peut être aisément vérifié, en particulier les commits à mon nom “Jehan”, de même que ceux d’Aryeom et Lionel N.) Je suis aussi à l’origine de la relaxe de notre politique de sortie pour que nous sortions davantage de versions de GIMP avec de nouvelles fonctionnalités (cela fait des années que je demandais cela et fut finalement acté depuis GIMP 2.10.0!). Il me semble évident que LILA a eu une contribution positive et importante pour GIMP.

Bien sûr GIMP est donc notre projet logiciel principal, ce qui n’a pas empêché divers patches ici ou là dans d’autres logiciels, parfois majeurs! Sans compter nos rapports de bugs très réguliers quand nous n’avons pas le temps de corriger nous-même… nous sommes aussi des utilisateurs importants de tablettes graphiques, avons des contacts avec des dévs de Wacom et Red Hat (on est d’ailleurs désolés, on sait qu’on peut être un peu chiant parfois avec nos bugs! 😛). Et ainsi de suite. Ainsi la seule chose nous empêchant d’en faire plus est le temps. On a besoin de plus de mains, ce qui ne peut être amélioré que si notre financement nous permet enfin d’engager de nouveaux développeurs!

Aussi soyons clairs: ce n’est pas un truc temporaire. Nous croyons tout simplement aux Logiciel Libre. Nous pensons que c’est la chose à faire, que chacun doit avoir accès aux meilleurs logiciels et aussi que c’est ainsi que peuvent être faits les meilleurs logiciels. Je le disais d’ailleurs: je fais environ 1/4 du code de GIMP. Cela signifie que 3/4 ne sont pas faits par moi! Et c’est sans parler de GEGL (le moteur graphique de GIMP). En d’autres termes, je ne pourrais pas en faire autant seul. J’adore travailler avec certains autres des développeurs les plus brillants que j’ai eu l’occasion de rencontrer. Non seulement cela, mais les autres développeurs de GIMP sont également sympas et agréables. Que demander de plus? C’est ça le logiciel libre.
C’est ainsi que l’utilisation et la contribution au Logiciel Libre est dans les statuts de notre studio, notre “contrat en tant que studio à but non lucratif” et cela ne disparaîtra donc pas.

2018 en revue

Une revue rapide des choses que j’ai faites en 2018:

  • 633 commits, soit près de 2 commits par jour en moyenne, dans la branche master de GIMP (sans compter ce qui est dans les branches de fonctionnalité, mon travail en cours) + mes patches dans divers projets que nous utilisons (GEGL, glib, GTK+, libwebp, Appstream…)
  • Aider le projet MyPaint pour préparer une nouvelle sortie de libmypaint v1 (espérons début 2019), et la création du paquet de données mypaint-brushes (maintenant un paquet officiel de MyPaint!).
  • La création et maintenance continue du flatpak de GIMP sur flathub (d’après ce qu’on nous a dit, le logiciel le plus téléchargé de flathub!)
  • La sauvegarde automatique des images en cas de plantage de GIMP
  • Outils de debug (traces d’exécution, infos de plateforme…)
  • Prise en charge basique de HiDPI sur GIMP 2.10 (et plus à venir pour le futur GIMP 3)
  • Travail en cours pour la gestion d’extension dans GIMP
  • Maintenance de données divers (icônes, brosses, appdata, etc.) de GIMP
  • Travail sur les tablettes et périphériques d’entrée
  • Mentor pour un stagiaire FSF (amélioration de la prise en charge de JPEG 2000)
  • Correction de la plupart des cas d’enfer du DLL des plug-ins sous Windows (problème majeur il y a encore peu!)
  • Revue et amélioration de nombreuses fonctionnalités (redressement d’image dans l’outil de Mesure, libheif, libwebp, plug-in de capture d’écran, texte vertical dans l’outil Texte, et bien plus!)
  • L’option de colorisation intelligence dans l’outil de remplissage

Et probablement plein de choses que j’oublie! J’aide aussi à la maintenance du site et à l’écriture d’article sur gimp.org (63 commits cette année). Et tout cela sans compter les patches sans rapport avec GIMP que je fais aussi (par exemple pour les méthodes d’entrée en Coréen) ou les nombreux rapports de bugs que nous écrivons ou aidons à corriger (notamment en étant les premiers à installer Linux sur une Wacom MobileStudio, ou du moins les premiers à en parler, des bugs furent corrigés jusque dans le noyau, et Wayland).

Quant à Aryeom, en 2018, elle a beaucoup travaillé sur ZeMarmot bien sûr (l’animation requiert énormément de boulot; un jour, on devra peut-être donner plus d’information sur le sujet), nous rapprochant davantage de la sortie du pilote (à ce sujet, nous avons récemment créé un compte Instagram où Aryeom poste régulièrement des images et vidéos courtes de son travail en cours, pour qui est intéressé!). Et aussi elle a participé à des projets tiers (nous rappelons que ZeMarmot ne peut financer que quelques jours par mois pour l’instant!), tel qu’un jeu de société interne pour l’association “Petits Frères des Pauvres“, une vidéo marketing pour le logiciel libre Peertube, des designs de pin’s pour la Free Software Foundation. Elle a aussi donné quelques cours de peinture numérique et retouche avec GIMP à l’université.

  • Design de pin’s pour FSF, par Aryeom

  • Peertube, par Aryeom

Bien sûr elle préférerait passer tout son temps sur ZeMarmot uniquement. Mais encore une fois… on a besoin de vous pour permettre cela!

Le Futur

Comment je vois notre futur: dans quelques années, on peut payer plusieurs artistes (réalisatrice, animateurs, artistes peintres, musiciens…). LILA sera enfin un studio certes petit mais productif.

Et bien sûr cela signifie aussi plusieurs développeurs, donc plus de contrôle sur nos outils de production libres. J’ai tellement de rêves! Enfin un éditeur vidéo stable et puissant sans être tordu (en contribuant au Blender VSE, à Kdenlive ou d’autres projets)? Et quand aurons nous des outils de compositing professionnels maintenus (2018 fut un peu triste)? Sans parler de communication entre outils pour éditer des XCF dans GIMP, voir les changements live dans Blender, etc.? Tant d’espoirs! Tant de rêves à réaliser si on avait le financement!

Les rêves peuvent se réaliser si vous aidez!

Que pouvez-vous y faire? Vous pouvez aider ce studio à devenir viable. Me faire engager par le CNRS est cool personnellement mais fut un peu triste pour ce que cela signifie pour le projet. Cela signifie un manque de dépendance notamment. Sans compter que c’est une situation encore très précaire et temporaire. Ce n’est pas une situation stable, de long terme.

Si nous atteignions 5000€ par mois en 2019, cela serait un premier pas énorme pour le projet et la preuve de viabilité du rêve de studio libre.

Nous aiderez-vous à créer un Studio d’Animation Libre? Le graphisme professionnel 2D Libre est à notre porte. Il lui faut juste un peu d’aide pour lui permettre de passer le pas de porte! 🙂

» Financez dans Patreon (USD $) «
» Financez dans Tipeee (EUR €) «
» Financez dans Liberapay «
» Autres méthodes de donation (notamment virement ou Paypal) «

Passez de bonnes fêtes de fin d’année! Et joyeuse nouvelle année!

Gravatar de Jehan
Original post of Jehan.Votez pour ce billet sur Planet Libre.

Articles similaires

Littlewing : Touraine Tech 2019

Mon sujet de talk « Objectif Top Architecte » a été retenu pour l’édition 2019 de Touraine Tech.

Réservez le 1 février 2019 dans votre agenda !

Tout d’abord merci aux organisateurs pour leur confiance. Je suis vraiment  honoré d’être sélectionné une deuxième année consécutive.

Cette année, j’animerai un hands on sur l’architecture. Je vais tâcher de vulgariser quelques principes qui me paraissent importants et animer un « coding dojo de l’architecture ».

Pas besoin d’être architecte ou (vraiment, … mais vraiment pas besoin) d’avoir une certification TOGAF pour y participer 🙂

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Ouvrir les pages man directement dans son éditeur, pour un meilleur confort de lecture

Bonjour, Avant-hier, j'a acheté cette revue allemande que j'aime beaucoup car elle contient tout un tas d'astuces qui font la joie des gouiks de mon espèce, toujours à l'affût de quelque nouveauté pour égayer leur quotidien. Or, j'ai trouvé quelque chose de sympa et de simple à mettre en oeuvre : la possibilité d'ouvrir les... Lire la Suite →

Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Renault : Résultats des élections de Fedora 12/18

Comme je vous le rapportais il y a peu, Fedora a organisé des élections pour renouveler partiellement le collège de ses organes FESCo, Mindshare et Council.

Le scrutin est comme toujours un vote par valeurs. Nous pouvons attribuer à chaque candidat un certain nombre de points, dont la valeur maximale est celui du nombre de candidat, et le minimum 0. Cela permet de montrer l'approbation à un candidat et la désapprobation d'un autre sans ambiguïté. Rien n'empêchant de voter pour deux candidats avec la même valeur.

Les résultats pour le Conseil sont (seul le premier est élu) :

# votes | name 610 Dennis Gilmore (ausil) ------------------------------------ 295 Eduard Lucena (x3mboy) 286 Alejandro Perez (aeperezt) 247 John M. Harris, Jr. (JohnMH)

À titre indicatif le score maximal possible était de 213 * 4 votes (pour 213) soit 852.

Les résultats pour le FESCo sont (seuls les cinq premiers sont élus) :

# votes | name 1533 Kevin Fenzi (kevin) 1183 Miro Hrončok (churchyard) 1078 Zbigniew Jędrzejewski-Szmek (zbyszek) 1021 Owen Taylor (otaylor) 1017 Justin Forbes (jforbes) ----------------------------------- 978 Aleksandra Fedorova (bookwar) 822 Jeremy Cline (jcline) 757 František Zatloukal (frantisekz) 694 Fabio Valentini (decathorpe) 619 Christian Glombek (lorbus)

À titre indicatif le score maximal possible était de 262 * 10 (pour 262 votants) soit 2620.

Les résultats pour le Mindshare sont donc (seuls le premier est élu) :

# votes | name 438 Jared Smith (jsmith) 254 Luis Bazan (lbazan) 164 Ricardo Martinelli de Oliveira (rimolive)

À titre indicatif le score maximal possible était de 203 * 3 (pour 203 votants) soit 609.

Nous pouvons noter que globalement le nombre de votants pour chaque scrutin était proche aux alentours de 200-250 votants ce qui est plus que la fois précédente (100-110 en moyenne). Les scores sont aussi plutôt éparpillés, avec souvent quelques membres assez largement en tête de chaque scrutin.

Bravo aux participants et aux élus et le meilleur pour le projet Fedora.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #51

Pour la 51ème semaine de l'année 2018, voici 14 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Syspatch : patch kernel - pcbopts - multi-arch - 6.3 + 6.4

Un nouveau correctif pour le noyau est fourni par l'équipe OpenBSD :

- pcbopts : risque de débordement de 4 octects dans la mémoire du noyau par un appel système setsockopt(2). - 6.3 : patch n°27 ; 6.4 : patch n°10

Le redémarrage de votre machine est nécessaire, car il touche le noyau.

Architectures concernées : amd64, arm64 et i386

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Full Circle Magazine FR : Pour les Fêtes !

Voici un cadeau à mettre sous tous les sapins : le dernier numéro du FCM, le numéro 139, celui de novembre 2018, traduit en français par les Trois mousquetaires ! Vous pouvez le visionner ou télécharger sur notre page Numéros ou le récupérer directement en cliquant sur la photo ci-dessous.

issue139.png

Vous y trouverez, notamment :

  • les tutoriels habituels (Inkscape, Great Cow Basic et Freeplane), mais aussi celui qui présente les AppImages, des applis prêtes à l'emploi sur presque toutes les plateformes ;
  • dans la rubrique Ubuntu au quotidien, il y a encore plus sur le rétro-gaming et on apprend beaucoup sur les anciens jeux d'arcades (sous Linux) ;
  • la critique d'un livre sur la philosophie Linux et les administrateurs système, qui mérite quatre étoiles et semble beaucoup parler de Zen et de cowsay (!) ;
  • l'opinion d'Erik concernant le RGPD qui pourrait faire froid dans le dos des TI d'entreprises (c'est l'article de couverture) ; et
  • la critique assez élogieuse de Graveyard Keeper, un jeu qui plairaît à certains, mais n'est pas pour les « prudes asséchés », nous dit Erik ...

Amusez-vous bien !

Toute l'équipe du FCMfr vous souhaite d'excellentes fêtes de fin d'année et vous dit « À l'année prochaine ! »

Les Trois mousquetaires (sans le quatrième cette fois-ci) : Bab, scribeur et relecteur, et AE et d52fr, traducteurs/relecteurs

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Simon Vieille : [tips] PHP FPM : récupérer la vraie adresse IP du visiteur

Mon serveur web fonctionne par couches. La première couche est gérée par Nginx et traite les requetes HTTP des internautes. Nginx gère les problématiques de cache sur les assets, c'est à dire les images, les fichiers javascripts et enfin les fichiers CSS. Ensuite, il transmet les requêtes au serveur web Apache qui va délivrer le site web concerné et faire appel au process manager de PHP (FPM) pour exécuter PHP.

En l'état, il n'est pas possible de connaître l'adresse IP de l'internaute via la variable globale $_SERVER en utilisant l'index REMOTE_ADDR. En effet, si j'affiche le contenu de $_SERVER['REMOTE_ADDR'], j'aurai comme résultat 127.0.0.1 qui est l'IP locale de Nginx.

Cependant, j'ai configuré Nginx de tel sorte qu'il ajoute les entêtes HTTP X-Forwarded-For et X-Real-IP. Apache les transmet ensuite via les index HTTP_X_FORWARDED_FOR et HTTP_X_REAL_IP.

proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr;

Ces index contiennent l'IP de l'internaute mais ne sont pas utilisés par les applications hébergées. Typiquement, Nextcloud détectait l'adresse IP 127.0.0.1. Lors d'un brute force, tous les comptes utilisateurs étaient impactés par la sécurité enclanchée par Nextcloud (soit 30s d'attente avant la validation des identifiants de connexion).

J'ai fouiné sur la toile et plusieurs solutions sont évoquées. J'ai un peu tout essayé et au delà des modules Apache Rpaf et RemoteIP, pas grand chose de probant. Rpaf est déjà installé et permet à Apache de logger la bonne IP dans les logs d'accès. RemoteIP n'a pas fonctionné dans mon environnement.

Pour résoudre le problème, j'ai appliqué ce qui a été rédigé dans ce post : inclure un script PHP de façon automatique pour l'ensemble des sites web du serveur.

j'ai créé un fichier PHP comme suite :

<?php $trustedProxies = [ '127.0.0.1', ]; $remote = $_SERVER['REMOTE_ADDR']; $headers = [ 'HTTP_X_FORWARDED_FOR' => 'REMOTE_ADDR', 'HTTP_X_REAL_IP' => 'REMOTE_HOST', ]; if (in_array($remote, $trustedProxies)) { foreach ($headers as $header => $value) { $_SERVER[$value] = $_SERVER[$header]; } }

Puis j'ai alimenté les php.ini de cette façon :

auto_prepend_file = /etc/php/fpm/real-ip.php

Après avoir relancé les services, j'ai pu constater que l'adresse IP de l'internaute est bien présente dans $_SERVER['REMOTE_ADDR'].

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Articles similaires

Framablog : Framasoft en 2019 pour les gens pressés

Vous avez aimé Dégooglisons Internet et pensez le plus grand bien de Contributopia ? Vous aimeriez savoir en quelques mots où notre feuille de route nous mènera en 2019 ? Cet article est fait pour vous, les décideurs pressés :)

Cet article présente de façon synthétique et ramassée ce que nous avons développé dans l’article de lancement de la campagne 2018-2019 : « Changer le monde, un octet à la fois ».

Un octet à la fois, oui, parce qu’avec nos pattounes, ça prend du temps.

Passé

Depuis 14 ans, Framasoft a créé un annuaire du logiciel libre, écrit et traduit des milliers d’articles, diffusé le logiciel libre sur de nombreux supports.

Depuis 4 ans, Framasoft montre qu’il est possible de décentraliser Internet avec l’opération « Dégooglisons Internet ». Le propos n’est ni de critiquer ni de culpabiliser, mais d’informer et de mettre en avant des alternatives qui existaient déjà, mais demeuraient difficiles d’accès ou d’usage.

De façon à ne pas devenir un nouveau nœud de centralisation, l’initiative CHATONS a été lancée, proposant de relier les hébergeurs de services en ligne qui partagent nos valeurs.

Dégooglisons Internet, vu par Péhä (CC-By)

Présent

Depuis l’année dernière, avec sa feuille de route Contributopia, Framasoft a décidé d’affirmer clairement qu’il fallait aller au-delà du logiciel libre, qui n’était pas une fin en soi, mais un moyen de faire advenir un monde que nous appelons de nos vœux.

Il faut donc encourager la société de contribution et dépasser celle de la consommation, y compris en promouvant des projets qui ne soient plus seulement des alternatives aux GAFAM, mais qui soient porteurs d’une nouvelle façon de faire. Cela se fera aussi en se rapprochant de structures (y compris en dehors du mouvement traditionnel du libre) avec lesquelles nous partageons certaines valeurs, de façon à apprendre et diffuser nos savoirs.

Cette année a vu naître la version 1.0 de PeerTube, logiciel phare qui annonce une nouvelle façon de diffuser des médias vidéos, en conservant le contrôle de ses données sans se couper du monde, qu’on soit vidéaste ou spectateur.

Le monde des services de Contributopia.
Illustration de David Revoy – Licence : CC-By 4.0

Avenir

La campagne de don actuelle est aussi l’occasion de de rappeler des éléments d’importance pour Framasoft : nous ne sommes pas une grosse multinationale, mais un petit groupe d’amis épaulé par quelques salarié·e·s, et une belle communauté de contributeurs et contributrices.

Cette petite taille et notre financement basé sur vos dons nous offrent souplesse et indépendance. Ils nous permettront de mettre en place de nouveaux projets comme MobilZon (mobilisation par le numérique), un Mooc CHATONS (tout savoir et comprendre sur pourquoi et comment devenir un chaton) ou encore Framapétitions (plateforme de pétitions n’exploitant pas les données des signataires).

Nous voulons aussi tenter d’en appeler à votre générosité sans techniques manipulatoires, en vous exposant simplement d’où nous venons et où nous allons. Nous espérons que cela vous motivera à nous faire un don.

Faire un don pour soutenir les actions de Framasoft

 

Pour en savoir plus

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

Articles similaires

dada : Kubernetes en multi-master sur du baremetal avec HAProxy



Quand on joue avec Kubernetes, on se rend compte que c'est aussi puissant que fragile. L'orchestration, ça ne s'improvise pas. Il faut vraiment passer des heures à se casser les dents sur des clusters de tests qui finiront toujours par s'écrouler. Que ce soit à cause d'un souci côté hébergeur, entraînant une indisponibilité de votre master ou une configuration laxiste permettant à des pods de consommer plus de ressources que ce qu'il y a de disponible, en massacrant chaque node disponible, méticuleusement, les uns après les autres, jusqu'à vous laisser sans rien.Je ne parlerai pas ici du meilleur moyen pour contrôler la consommation des pods. On va s'attaquer au premier souci : votre unique master configuré en SPoF.Le multi-master, ton amiPour éviter de voir un cluster HS à cause de l'absence de son maître, on va le configurer avec un quorum de... 3 masters. Tout simplement.
Pourquoi HAProxy ?Mon environnement de test est basé sur des serveurs dans le cloud de Hetzner. J'ai essayé d'attendre aussi longtemps que possible des infrastructures abordables supportant k8s loin des AWS, GCP ou encore Azure, en vain. Il y a bien OVH et DigitalOcean mais le côté "abordable" n'y est pas. Le premier ouvre son infrastructure à partir de 22€ le serveur, et l'autre 20$ (node unique + LB). On est loin des 6€ par machine chez Hetzner.L'idéeComme l'indique la documentation officielle, HAProxy va faire ce qu'il sait faire de mieux : rediriger les requêtes. Comment peut-on faire croire à 3 serveurs séparés qu'ils bossent ensemble ? En installant un HAproxy sur chacun d'entre eux, configuré pour loadbalancer les requêtes qui seront balancées sur le 127.0.0.1 et le port 5443 (choisi arbitrairement).
En image, ça donne ça :

Configurés comme ça, nos masters vont s'amuser entre-eux sans aucun souci.
L'installationJe passe sur la configuration de Kubernetes, j'en parle déjà ici. Notez quand même que vous pouvez suivre ce que je raconte jusqu'à l'init du cluster. Pas plus. Pourquoi ? Parce que sur le premier de vos masters, nous allons ajouter un fichier de configuration :
root@k8smaster1:~# cat kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
apiServer:
  certSANs:
  - "127.0.0.1"
controlPlaneEndpoint: "127.0.0.1:5443"
networking:
   podSubnet: "10.244.0.0/16"Ici, on voit bien que j'ai configuré mon k8s pour taper sur le localhost de la machine à travers le port 5443. C'est là que HAproxy prend la relève.
Je me suis permis d'ajouter la configuration nécessaire à Flannel, mon CNI, qui nécessite en CIDR particulier pour fonctionner correctement. C'est la partie networking.

On peut enchaîner sur la configuration de HAProxy :global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log    global
    mode    tcp
    option    tcplog
    option    dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend api-front
    bind 127.0.0.1:5443
    mode tcp
    option tcplog
    use_backend api-backend

backend api-backend
    mode tcp
    option tcplog
    option tcp-check
    balance roundrobin
    server master1  10.0.42.1:6443 check
    server master2  10.0.42.2:6443 check
    server master3  10.0.42.3:6443 checkLa partie global a l'exacte configuration par défaut. J'ai touché à rien.
Dans defaults, j'ai changé le mode de proxy pour le passer de http à tcp.
Les parties frontend et backend regroupent les configurations qui vont bien pour permettre à HAProxy de faire ce que je lui demande. Vous devriez pouvoir recopier tout ça en prenant seulement le soin de changer les IP des masters.
Pour comprendre plus clairement la configuration de HAproxy, je vous redirige vers cet excellent billet de Victor HÉRY.
Une fois configurés, n'oubliez pas de redémarrer les HAProxy sur tous les serveurs et de vérifier qu'ils écoutent bien sur le bon port :root@k8smaster1:~# nc -v localhost 5443
localhost [127.0.0.1] 5443 (?) openAstuce : pensez à installer hatop. C'est vraiment super ! Pour le lancer :hatop -s /var/run/haproxy/admin.sockPour le moment, tout sera down, mais une fois le premier master en état, il apparaîtra UP.
On va maintenant initialiser le premier master :kubeadm init --config=kubeadm-config.yamlUne fois terminé, vous allez récupérer les informations classiques : le join qui va bien.kubeadm join 127.0.0.1:5443 --token a1o01x.tokenblabla --discovery-token-ca-cert-hash sha256:blablablablalblawhateverlablablameans --experimental-control-planeNotez que l'IP de l'API est bien 127.0.0.1 avec le port spécifié à HAProxy. C'est tout bon ! Faites un tour dans hatop et remarquez que le backend du master1 est enfin marqué comme étant UP.
Un get nodes vous confirmera l'arrivée du master1 et un get pods vous montrera les conteneurs de base.
Installons maintenant Flannel, toujours aussi simplement :
kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.ymlEt on aura un premier master en état de fonctionner !
Pour configurer les deux autres masters, il va falloir jouer du SCP. La doc officielle fournit 2 scripts bash que vous pouvez utiliser. Je ne m'étends pas sur le sujet ici et j’enchaîne sur la configuration des autres masters. Pensez quand même à bien configurer SSH et votre user de base.
Une fois que tout est copié, vous n'avez qu'à lancer la commande join sur les masters restant, un par un, et voir le résultat :
dada@k8smaster1:~$ k get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8smaster1   Ready    master   12h   v1.13.1
k8smaster2   Ready    master   11h   v1.13.1
k8smaster3   Ready    master   11h   v1.13.1Ou encore :dada@k8smaster1:~$ k get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-cx4b7             1/1     Running   0          12h
kube-system   coredns-86c58d9df4-xf8kb             1/1     Running   0          12h
kube-system   etcd-k8smaster1                      1/1     Running   0          12h
kube-system   etcd-k8smaster2                      1/1     Running   0          11h
kube-system   etcd-k8smaster3                      1/1     Running   0          11h
kube-system   kube-apiserver-k8smaster1            1/1     Running   0          12h
kube-system   kube-apiserver-k8smaster2            1/1     Running   0          11h
kube-system   kube-apiserver-k8smaster3            1/1     Running   0          11h
kube-system   kube-controller-manager-k8smaster1   1/1     Running   1          12h
kube-system   kube-controller-manager-k8smaster2   1/1     Running   0          11h
kube-system   kube-controller-manager-k8smaster3   1/1     Running   0          11h
kube-system   kube-flannel-ds-amd64-55p4t          1/1     Running   1          11h
kube-system   kube-flannel-ds-amd64-g7btx          1/1     Running   0          12h
kube-system   kube-flannel-ds-amd64-knjk4          1/1     Running   2          11h
kube-system   kube-proxy-899l8                     1/1     Running   0          12h
kube-system   kube-proxy-djj9x                     1/1     Running   0          11h
kube-system   kube-proxy-tm289                     1/1     Running   0          11h
kube-system   kube-scheduler-k8smaster1            1/1     Running   1          12h
kube-system   kube-scheduler-k8smaster2            1/1     Running   0          11h
kube-system   kube-scheduler-k8smaster3            1/1     Running   0          11hUn dernier tour sur hatop pour admirer la présence de tous vos backends enfin marqué UP.

Vous avez maintenant un cluster k8s en HA ! La suite serait peut-être de vous raconter comment sortir ETCd du cluster pour le mettre en place dans un cluster séparé dédié, mais non. Ce billet est déjà bien assez long.
Si tout ne se passe pas comme prévu, pensez à regarder la documentation officielle. Mon billet n'est qu'un complément qui peut contenir des coquilles. Pensez aussi à bien vérifier la configuration de votre firewall, ou encore de HAProxy, ou encore de Docker, ou encore votre VPN parce qu'on ne laisse pas tout traîner sur le réseau. Bref.



Gravatar de dada
Original post of dada.Votez pour ce billet sur Planet Libre.

Articles similaires

Marty : KooZic : sortie de la v1.1.0

Alors que KooZic a fêté discrètement ses 2 ans, le développement continue son petit bonhomme de chemin, avec comme à l'habitude une release emballée rapidement mais un article qui traîne à s'écrire. Bref, développer des fonctionnalités c'est marrant, mais rédiger un bel article les expliquant ça l'est moins.Listes de lecture intelligentes et dynamiques

Le concept de liste de lecture intelligente est dans les tuyaux depuis un bon moment déjà. Rien de révolutionnaire par rapport à d'autres softs : KooZic va créer automatiquement une liste de lecture sur base d'un des modes supportés&nbsp:

  • Aléatoire
  • Déjà joué
  • Jamais joué
  • Le plus joué
  • Dernièrement écouté
  • Récent
  • Favoris
  • Le mieux noté
  • Le moins bien noté

Par défaut, la liste est statique, c'est-à-dire qu'un nombre défini de titres est ajouté. Il est également possible de définir la liste comme étant dynamique. Dans ce cas, une piste est automatiquement ajoutée au fur et à mesure qu'on avance dans la liste de lecture.

Partage de la bibliothèque musicale

Jusqu'à la v1.0.0, chaque utilisateur avait sa propre collection musicale. D'un point de vue technique, cela rend les choses plus simples à gérer : chacun ses fichiers, ses titres, ses albums et ses artistes. De plus pas de mélange, et on ne retrouve pas dans sa collection de jazz les albums de sa petite sœur. Cependant, si plusieurs utilisateurs doivent accéder à la même collection musicale, cela veut dire ajouter la même collection pour chacun d'eux. Si de nombreux utilisateurs doivent accéder à la même collection, cela peut poser problème car la base de données est remplie de redondances.

Avec la v1.1.0, une option est introduite pour partager la collection musicale entre utilisateurs. Attention, c'est tout ou rien : soit chacun a sa propre collection, soit on partage tout. Les données relatives au nombre d'écoutes, les favoris, etc. restent tout de même spécifiques à chaque utilisateur. Notez qu'il n'est pas dans la roadmap de pouvoir gérer plus finement les accès. Cela deviendrait vite une usine à gaz pour une utilité assez limitée.

Autres Nouveautés

Les options de la liste de lecture ont légèrement été réorganisées pour plus de clarté. Par ailleurs, les pochettes d'album intégrées sont à présent utilisées si aucun fichier "cover", "front" ou "folder" n'est présent. Dans la vue par dossier, il est désormais possible d'ajouter les pistes récursivement.

Une option a aussi été ajoutée pour ignorer les tags ID3 sur un répertoire. Cela rendra l'analyse beaucoup plus rapides pour ceux qui ne les utilisent pas. Par contre, cela signifie que seule la vue par répertoire contiendra des informations. Les vues pistes, albums, artistes et genres resteront vides.

Finalement, l'ordre des transcoders est maintenant pris en compte lors du streaming. Auparavant, Opus était le format par défaut, suivi par Ogg et MP3. Dorénavant, le format par défaut sera celui du transcoder ayant la plus haute priorité. Dans le doute, ne touchez à rien ;-)

Mise-à-jour d'une installation existante

La v1.1.0 est compatible avec les versions précédentes. Pour mettre à jour (attention, l'adresse a changé) :

curl https://raw.githubusercontent.com/DocMarty84/koozic_install/v1/koozic_install.py > k_install.py chmod +x k_install.py sudo ./k_install.py install

N'hésitez pas à soumettre un problème sur Github si nécessaire !

Gravatar de Marty
Original post of Marty.Votez pour ce billet sur Planet Libre.

Thuban : Syspatch : patch kernel - recvwait - multi-arch - 6.3+6.4

Un nouveau correctif, hier soir, de l'équipe d'OpenBSD touchant le noyau :

- recvwait : le noyau peut paniquer lorsque recv(2) utilisé avec le drapeau MSG_WAITALL reçoit des messages de contrôle à partir d'une socket - 6.4 : patch n°9 ; 6.3 : patch n°26

Le redémarrage de votre machine est nécessaire, car il touche le noyau.

Architectures concernées : amd64, arm64 et i386

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Carl Chenet : Les meilleurs médias francophones du Logiciel Libre

Ceux qui suivent régulièrement ce blog le savent : j’adore mettre en avant l’extraordinaire travail de la communauté FOSS francophone. D’où ce billet en forme de récapitulatif des meilleurs médias francophones du Logiciel Libre et Open source.

Pourquoi cette liste ?

Pris comme nous le sommes dans nos vies professionnelles et personnelles, il est simple de passer à côté d’un nouveau média prometteur ou d’un blog sympa. Coincés dans nos habitudes, nous n’allons pas toujours fureter en dehors de nos sources d’informations habituelles, souvent à tort.

Les étudiants et jeunes diplômés qui découvrent la scène francophone y trouveront aussi leur compte, avec une vue générale de cette scène francophone qui leur permettra de trouver les médias qui leur conviennent.

LinuxFR

LinuxFR aborde à peu près tous les sujets liés au Logiciel Libre et Open Source. Avec presque 20 ans d’activités, la communauté autour du site est massive. Vous pouvez rédiger vous-mêmes des articles à destination des lecteurs et/ou y maintenir un journal personnel autour de vos activités FOSS. Il est souvent utilisé pour annoncer des nouveaux projets ou avertir la communauté d’évolutions majeures d’un projet.

Les plus :

  • publier des annonces sur la vie de vos projets
  • nourrir un journal sur les avancés de vos projets
Le Journal du hacker

Agrégateur de la communauté FOSS francophone, le Journal du hacker permet à ses contributeurs de proposer des liens et de voter afin de déterminer les plus pertinents qui vont gagner en visibilité.

Les liens proviennent d’autres médias FOSS, mais aussi de médias généralistes et de la communauté des bloggeurs francophones, qu’ils soient des particuliers ou des entreprises. Les liens sont relayés vers Mastodon, Diaspora* et Twitter.

Les plus :

  • relayer largement des articles via le site et ses réseaux sociaux
  • contribuer à mettre en avant les articles les plus intéressants pour la communauté
Developpez.com

Site historique parlant de façon générale d’informatique, Developpez.com suit de très près l’actualité FOSS et est souvent le premier à produire des articles francophones sur des sujets chauds.

Même s’il est aujourd’hui concurrencé sur le FOSS sur certains sujets comme Numerama ou Zdnet, il reste une référence et un important producteur de contenu francophone.

Les plus :

  • premier à produire des articles francophones sur des sujets FOSS chauds
Framablog

Le Framablog, blog officiel de Framasoft, publie très régulièrement un contenu très important sur les questions des alternatives aux logiciels propriétaires et aux plateformes fermées, mais aussi de libertés individuelles et de vie privée.

Produisant du contenu en rapport direct avec le FOSS au sein de notre société, le Framablog est un incontournable de la communauté FOSS francophone.

Les plus :

  • articles fouillés
  • transcriptions de conférence
  • traitent des questions de fond
  • contenu souvent original, même hors de la communauté francophone
l’April

L’April est une association visant à promouvoir et défendre le Logiciel Libre. Et il en a souvent bien besoin ! Soutien indéfectible du Logiciel Libre, l’April produit régulièrement du contenu original à suivre si ces questions vous intéressent.

Les plus :

  • complète la vision technique du FOSS par son côté idéologique et politique
La Quadrature du Net

La Quadrature du Net promeut et défend les libertés fondamentales dans l’environnement numérique. Elle étudie par exemple les nouveaux textes de loi et déterminent les aspects liberticides de ceux-ci avant d’organiser le combat pour la défense des libertés fondamentales. Une tâche difficile et ingrate que le  FOSS en France est bien heureux que la Quadrature du net mène, vu le nombre d’attaques et d’incohérences votées par nos chers représentants.

Les plus :

  • contenu original en rapport avec l’actualité legislative et politique
  • lève les alertes auprès de la communauté FOSS
Le Courrier du hacker

Le Courrier du hacker (j’en suis le fondateur) se propose de résumer l’actualité francophone du Logiciel Libre et Open Source en un e-mail chaque semaine publié le vendredi,  avec aujourd’hui plus de 60 numéros publiés et plus de 2000 abonnés.

Réalisé à partir des meilleurs articles de la semaine passée, vous pouvez ainsi obtenir une bonne base en une quinzaine de liens directement dans vos e-mails en fin de semaine. Vous y retrouverez des articles en provenance de la plupart des médias présentés dans cet article.

Idéal donc pour se tenir au courant de l’actualité FOSS francophone sans investir beaucoup de temps.

Vous pouvez vous y abonner juste ci-dessous.

E-mail Submit

Les plus :

  • contenu dense et déjà choisi
  • directement dans la boîte à e-mail
En conclusion

Cet article offre une sélection des meilleurs médias FOSS francophones afin de vous aider dans la réalisation de votre veille, qu’elle soit technologique ou idéologique dans le domaine du Logiciel Libre et Open Source.

Il était impossible d’être exhaustif pour que l’article reste lisible, toutes mes excuses donc à tout ceux que je n’ai pas pu citer. Mais j’ai cité des médias sur lesquels on peut voir passer tous les producteurs de contenu. Et bien sûr si l’article plaît, je n’hésiterais pas à en écrire un prochain mettant en avant d’autres aspects de la communauté FOSS francophone.

L’auteur

Carl Chenet est un acteur de la communauté du Logiciel Libre et Open Source francophone, fondateur du Journal du hacker, du Courrier du hacker et du site d’emploi LinuxJobs.fr. Il a écrit et maintient également de nombreux logiciels libres.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Dimitri Robert : GIMP : détourage par contraste avec un masque de calque

C’est le retour du palmier qui fut le héros de précédents tutoriels, notamment celui du détourage avec l’outil d’extraction de premier plan. Mais cet outil a évolué dans la version 2.10 de GIMP et fonctionne différemment, et pour des résultats qui semblent de moins bonne qualité (à creuser).

Finalement, ne pourrait-on pas se passer d’outil de détourage ? Finalement, c’est le contraste entre le fond et le premier plan qui permet d’isoler ce dernier.

Voici donc une technique originale : le détourage par contraste. Cela consiste à créer un masque de calque initialisé avec une copie du calque en niveaux de gris. Ainsi le calque se masque lui-même. Il ne reste alors qu’à utiliser l’outil Niveaux pour forcer le contraste, pour que le fond devienne noir et le premier plan blanc avec un peu de nuances entre les deux.

Et le résultat s’avère meilleur qu’avec l’outil Extraction de premier plan !

Voici comment faire en vidéo.

L’article GIMP : détourage par contraste avec un masque de calque est apparu en premier sur Formation logiciel libre.

Gravatar de Dimitri Robert
Original post of Dimitri Robert.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Astuces Debian

Quelques astuces et commandes que je ne connaissais pas, que j'ai découverte et que je veux partager.

Automatiser la mise à jour apt en conservant les actuels fichiers de configuration

Issu du site bggofurther.com, dont je recopie le billet ici :
Lorsqu'une mise à jour est faite sur un serveur Debian/Ubuntu, si un paquet essaie de modifier un fichier de configuration, un choix manuel est requis. Si vous essayez d'automatiser le processus, vous souhaitez probablement éviter cette question and conserver la configuration actuelle par défaut.

#!/bin/bash
apt-get update
listUpgrades=`apt list --upgradable |grep upgradable |cut -d/ -f1`
execUpgrades="DEBIAN_FRONTEND=noninteractive apt-get --yes --assume-yes -o DPkg::options::=\\"--force-confdef\\" -o DPkg::options::=\\"--force-confold\\" --only-upgrade install "$listUpgrades
eval $execUpgrades

Les différentes options vont forcer la mise à jour à conserver la configuration actuelle et ne pas l'écraser avec celle par défaut du package.

debsum

Debsum est un programme qui va comparer la signature des paquets installés (comparaison du MD5 checksum) avec une liste de référence qui se trouve dans les fichiers /var/lib/dpkg/info/*.md5sums.

Utile pour vérifier l'intégralité d'un binaire dans le cas d'une machine potentiellement compromise (voir par exemple à ce sujet
Devenir SysAdmin d'une PME - Mineur de bitcoin- Billet n°2

Il faut bien évidemment que les fichiers /var/lib/dpkg/info/*.md5sums n'est pas été compromis par un attaquant.

debsecan

Debscan permet de générer une liste des vulnérabilités présentes sur une machine (serveur ou machine personnel) avec les numéros de CVE correspondants.

Pour avoir un article détaillé sur ce programme, voir Debsecan, le paquet qui fait peur sur le Blog-libre de Cascador, il faut également lire les commentaires avec un commentaire de Raphael Hertzog (auteur du livre Debian Administrator's Handbook).

checkrestart

Outil qui se trouve dans le paquet debian-goodies. checkrestart permet de vérifier quels services utilisent des librairies mises à jour depuis le lancement du service, et qu'il faudrait donc redémarrer pour prendre en compte ces mises à jour.

Voir sur cet utilitaire CheckRestart, outil pratique de debian-goodies, et version Octopuce

Autre façon de savoir s'il faut redémarrer un serveur, la présence du fichier /var/run/reboot-required qui indique que la prise en compte de la mise à jour du noyau (par exemple) nécessite un redémarrage de la machine.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #50

Pour la 50ème semaine de l'année 2018, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Paul Ezvan : Conversion de type avec PostgreSQL

Tous les jours je reçois un message d'erreur généré par le script cron de mon logiciel de webmail Roundcube:

ERROR: [7] ERROR: operator does not exist: boolean = integer LINE 1: DELETE FROM "contactgroups" WHERE "del" = 1 AND "changed" < ... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. (SQL Query: DELETE FROM "contactgroups" WHERE "del" = 1 AND "changed" < '2018-12-04 00:00:00')

Il semble que l'erreur soit causée par une incompatibilité entre le schéma de la base de données et la requête SQL utilisée par le script de nettoyage.

Pour administrer mes bases de données PostgreSQL simplement j'utilise le logiciel web phpPgAdmin. En observant le schéma de la table contactgroups je note que le type de la colonne del est boolean. C'est incompatible avec la requête DELETE FROM "contactgroups" WHERE "del" = 1 car del devrait être un nombre entier (un int). PostreSQL est tâtillon avec les types, et ne convertit pas un entier en booléen implicitement, ce qui cause l'erreur.

J'avais importé cette base depuis MySQL vers PostgreSQL, ce qui a pu causer quelques incohérences avec la schéma attendu par Roundcube. Je vérifie que c'est le cas en comparant avec le schéma fourni par Roundcube pour créer une base :

CREATE TABLE contactgroups ( contactgroup_id integer DEFAULT nextval('contactgroups_seq'::text) PRIMARY KEY, user_id integer NOT NULL REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE, changed timestamp with time zone DEFAULT now() NOT NULL, del smallint NOT NULL DEFAULT 0, name varchar(128) NOT NULL DEFAULT '' );

En effet dans ce schéma la colonne del est de type smallint. Je vais donc modifier le schéma de la table pour utiliser le type smallint à la place de boolean à l'aide du client psql.

roundcube=> ALTER TABLE "public"."contactgroups" ALTER COLUMN "del" TYPE smallint; ERROR: column "del" cannot be cast automatically to type smallint ASTUCE : You might need to specify "USING del::smallint".

Malheureusement la conversion échoue ! En effet PostgreSQL ne sait pas comment convertir un booléen en entier.

On peut donc lui indiquer:

roundcube=> ALTER TABLE "public"."contactgroups" roundcube-> ALTER COLUMN "del" TYPE smallint roundcube-> USING CASE WHEN del=FALSE then 0 roundcube-> WHEN del=TRUE then 1 roundcube-> else NULL roundcube-> END; ERROR: default for column "del" cannot be cast automatically to type smallint

Nouvelle erreur ! Cette fois c'est la valeur par défaut du champ, configurée à FALSE, qui ne peut pas être convertie. Le plus simple est de supprimer la valeur par défaut, effectuer la conversion, puis rajouter une valeur par défaut.

roundcube=> ALTER TABLE "public"."contactgroups" ALTER COLUMN "del" DROP DEFAULT; ALTER TABLE roundcube=> ALTER TABLE "public"."contactgroups" ALTER COLUMN "del" TYPE smallint USING CASE WHEN del=FALSE then 0 WHEN del=TRUE then 1 else NULL END; ALTER TABLE roundcube=> ALTER TABLE "public"."contactgroups" ALTER COLUMN "del" SET DEFAULT 0; ALTER TABLE

Et voilà, pas de problème cette fois !

Modifier le schéma d'une base de données peut amener à se soucier de nombreuses subtilités. Ces opérations sont délicates et il vaut mieux toujours tester avant de réaliser ce type d'opération en production.

Gravatar de Paul Ezvan
Original post of Paul Ezvan.Votez pour ce billet sur Planet Libre.

Morot : Mémo openssl

Création :

Générer une clé privée :

openssl genrsa -out key.pem 2048

Générer un CSR à partir d’une clé existante :

openssl req -out csr.csr -key key.pem -new

Générer une nouvelle clé et un CSR :

openssl req -out csr.csr -new -newkey rsa:2048 -nodes -keyout key.pem

Générer un certificat auto-signé :

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout key.pem -out certificate.crt -days 365

Générer un CSR sur la base d’un certificat et d’une clé existants :

openssl x509 -x509toreq -in certificate.crt -signkey key.pem -out csr.csr

Retirer la pass-phrase d’une clé privée :

openssl rsa -in key.pem -out newkey.pem Informations sur un certificat :

Obtenir la date d’expiration :

openssl x509 -noout -in certificate.crt -dates

Obtenir le signataire d’un certificat :

openssl x509 -noout -in certificate.crt -issuer Vérification des certificats :

Vérifier qu’une clé privée et un CSR correspondent :

openssl rsa -noout -modulus -in key.pem | openssl md5 openssl req -noout -modulus -in csr.txt | openssl md5

Vérifier qu’une clé privée et un certificat correspondent :

openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in key.pem | openssl md5

Vérifier un CSR :

openssl req -text -noout -verify -in csr.csr

Vérifier une clé privée :

openssl rsa -in key.pem -check

Vérifier un certificat :

openssl x509 -in certificate.crt -text -noout

Vérifier un certificat PKCS12 :

openssl pkcs12 -info -in store.p12 Tester une connexion à un serveur :

Vérifier une connexion et la chaîne de confiance sur un port TCP :

openssl s_client -connect host:443

Vérifier la prise en charge de SSLv2, SSLv3, TLS1.0, TLS1.1 et TLS1.2 :

openssl s_client -connect host:443 -ssl2 openssl s_client -connect host:443 –ssl3 openssl s_client -connect host:443 –tls1 openssl s_client -connect host:443 –tls1_1 openssl s_client -connect host:443 –tls1_2

Vérifier la prise en charge d’un algorithme de chiffrement sur un serveur (openssl ciphers) :

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect host:443 Conversions :

Convertir un PEM en DER :

openssl x509 -outform der -in certificate.crt -out certificate.der

Convertir un DER en PEM :

openssl x509 -inform der -in certificate.der -out certificate.pem

Conversion PEM en PKCS12 :

openssl pkcs12 -export -inkey key.pem -in certificate.crt -name SuperCertificat -out store.p12

Conversion PKCS12 en PEM :

openssl pkcs12 -in store.p12 -out store.pem -nodes

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

Articles similaires

Cenwen : Me Gamer and Linux User = Impossible Mission ? Not exactly. Part 6

Dans le dernier opus, nous traitions des périphériques tel que les casques sans toutefois avoir parler des jeux proprement dis. Et que dire de l’actualité de ces derniers jours. Et comme d’habitude, de fil en aiguilles, on se rend compte que l’éco-système est bien plus riche qu’on le croyais. En effet, si je vous dis GGKBDD ou Epic Games ou Steam ou encore Cougar. Et bien d’autres encore. A quoi pensez-vous  ? La réponse maintenant. 

Avant de commencer, une nouvelle importante pour tous les utilisateurs des dernières cartes graphiques AMD Radeon RX590 sorties mi-Novembre. Bien que du code les concernant avait été inclus dans le noyau en Septembre dernier, les développeurs Linux d’AMD ont eu la désagréable surprise d’avoir un bogue empêchant le fonctionnement tout court de ces cartes quelque soit le pilote graphique utilisé. Ceci était due à une modification du BIOS de ces cartes sur la ligne d’assemblage. Si la découverte du bogue a été presque immédiate dès la sortie, sa correction a demandé plus de temps et vient d’être annoncé ce . Ces patches pour l’AMDGPU seront inclus dans le noyau en cours (le 4.20) et une demande pour le noyau 4.19 a été émise. C’est donc une grande nouvelle pour les possesseurs de ces cartes graphiques.

Pour la petite info toute fraîche, AMD a envoyé toute une série de nouveau PCI ID concernant les Vegas 20 (0X66A4) et 10 (0X6869, 0X686A0X686B0X686D0X686E0X686F) à inclure dans le driver Linux. Cela ne signifie pas forcément que 7 nouvelles cartes vont sortir l’année prochaine mais en tout cas, il y aura de la nouveauté de ce côté. Nous en serons plus lors du CES à las Vegas mais des rumeurs non confirmées annoncent 3 nouvelles cartes qui vont venir concurrencer les best-off de Nvidia.

Le clavier Cougar 700K est un clavier mécanique avec une structure en aluminium et des switches mécanique MX, des Leds et des touches spéciales gaming. Au début de l’année, un nouveau driver HID a été inclus dans le Kernel 4.19 pour supporter le Cougar 500K de la marque. Dans le cycle en cours (Kernel 4.21), ce driver a été mis à jour afin de supporter toutes les fonctionnalités du 700K.

Peter Hutterer de Red Hat a créé GGKBDD en tant que daemon générique pour les claviers Gaming pour les systèmes Linux.
Ne vous emballez pas trop vite pour l’instant, il s’agit plus d’une ébauche de validation d’un concept qu’un programme/librairie fonctionnel. Même le nom est temporaire. Mais, si cela se confirme, cela sera vraiment très intéressant. Après, c’est en Python3. L’utilisation de ce langage (contrairement à du C ou du C++) touchera plus de monde qui soit susceptible de participer et donc de développer ce projet en quelque chose de concret rapidement.
A quand la même chose pour les souris, les casques,… ?

Un petit mot sur ce développeur de Red Had, Peter Hutterer. Ce nom ne vous est peut-être pas inconnu. En effet, ce talentueux développeur, spécialiste de « l’input » est l’auteur de nombreuses librairies pour piloter nos périphériques d’entrée dont nous tirons partie tous les jours. Libwacon, Tuhi, libratbag, libevdev, libinput, openRazer, … ont, entre autre, bénéficié de ses talents. La liste des projets sur lesquels il a travaillé est longue. Impressionnant.

Une autre nouvelle très importante: Epics Games a officiellement lancé leur nouveau « Game Store » (magasin en ligne) en tant qu’alternative à celui de Steam. Jusqu’à présent, le magasin existant ne supportait que Windows et MacOS. Courant 2019, il supportera aussi Android et les autres plateformes ouvertes (donc nous). Avec 12% du marché des jeux, l’arrivée de ce nouvel acteur va ouvrir de nouvelles perspectives pour nous autres Linuxiens Gamers.

Puisque nous parlons magasin en ligne de jeux, il serait inconcevable de ma part de parler de Steam et de son Steam Store. Depuis l’arrivée de Windows 8, Valve  a fait de gros efforts pour porter son Steam Store sous Linux. D’ailleurs, voici une liste du nombre de jeux tournant nativement sous Linux. Et je n’ai pas parlé des projets tel que Wine ou bien Playonlinux. Mais nous y reviendrons dans un instant avec un autre projet de Steam: Proton.

Puisque nous parlons des magasins de Jeux sous Linux, il serait indécent de ma part de ne pas mentionner de Lutris, Desura semble être un projet mort. Il faut aussi citer deux autres sites recensent l’actualité des jeux : Le bottin des Jeux Linux (3700 jeux) et GamingOnLinux.

Gnome Twitch est un client Linux pour la plateforme de streaming et de vidéos en ligne des joueurs enregistrant leurs parties de jeux : Twitch. Noter cependant qu’il n’a pas été mis à jour depuis 2 ans.

Sous Manjaro, vous l’installez de la manière suivante:

sudo pacman -S gnome-twitch

Voici une autre solution pour ceux qui ne veulent pas utiliser Gnome-twitch : Orion. Ce logiciel en QML/QT offre non seulement un client Twitch pour le bureau mais celui-ci offre en plus la VOD et le tchat et bien autres choses aussi.

Si vous voulez l’installer, vous avez à votre disposition la version stable mais aussi, pour les plus intrépides la version de développement disponibles sur AUR. Comme d’habitude, voici les commandes magiques:

yaourt -S orion

yaourt -S orion-git

Après Orion, voici une autre découverte faite cette semaine : Moonlight. Il s’agit d’une implémentation open source de NVidia GameStream.  Attention, cette version est une réécriture du programme en QT. L’ancienne version était elle, en Java.

Si vous voulez l’installer, vous avez à votre disposition la version stable mais aussi, pour les plus intrépides la version de développement disponibles sur AUR. Faites très attention pour prendre la bonne version. Comme d’habitude, voici les commandes magiques:

yaourt -S moonlight-qt

yaourt -S moonlight-qt-git

Voici maintenant deux logiciels indispensables pour jouer sous Linux comme nos collègues Windowsiens. Commençons par le premier: Mumble

Logiciel destiné plus particulièrement aux joueurs de tout poil mais pas que, Mumble est un logiciel libre performant de communications vocale (VOIP=Voices Over Internet Protocol) qui a la différence de son concurrent non libre Teamspeak utilise non seulement le serveur de son OSS, mais aussi Alsa et PulseAudio. Si vous êtes un gamer, c’est LE LOGICIEL A AVOIR lors de vos parties de jeux. Il se connecte à un serveur Murmur au protocole ouvert utilisant une répartition distribuée.  Chacun peut donc créer, si besoin est, son propre serveur.

Sous Manjaro, vous les installez de la manière suivante:

sudo pacman -S mumble murmur

Si vous désirez les versions de développement et bien plus encore, celles-ci sont disponibles sur AUR. Une simple recherche de type mumble dans votre gestionnaire de paquets graphiques vous en montrera toute l’étendue. Amusez-vous bien.

Passons maintenant à notre deuxième logiciel et quel logiciel car il offre la possibilité de profitez des jeux Windows de telle manière qu’on en oublierait que l’on se trouve sous Linux. Valve la société derrière la plateforme de jeux en ligne Steam a crée Proton le bien nommé.Sortie pendant les grandes vacances de cette année, on pourrait croire que la nouvelle aurait pu passée inaperçu. Que nenni. Ce nouvel outil est en train de révolutionner le Gaming pour Nous.Intégré à Steam, Proton est une version optimisée de Wine  afin de faciliter l’installation des jeux sous Linux, y compris ceux conçus pour Windows. Et ce n’est pas rien. Pour cela, il inclus deux autres outils: DXKV et vkd3d. Ce sont deux émulateurs DX11 et DX12 basé sur Vulkan le remplaçant de OpenGL.

La base de donnée ProtonDB (à garder dans vos marques pages et à consulter régulièrement) dont vous voyez une capture écran juste au-dessus recense la compatibilité des jeux à l’aide d’un code couleur et d’une appellation liée à celui-ci.Au bas de l’échelle, nous avons le rouge (Borked) pour un jeu ne fonctionnant pas du tout. Puis, nous passons en bronze (Bronze+) pour un jeu ayant des bogues majeurs, en argent (Silver+) pour un jeu jouable mais avec quelques anomalies. Ensuite, nous avons gold (Gold+) pour une jeu fonctionnant avec quelques réglages et enfin nous avons platinium (Platinium+) pour un jeu fonctionnant sans aucun réglage. A ce jour, 3131 jeux fonctionnent avec près de 23500 rapports écris sur 5718 jeux testés. C’est énorme.Chaque jeu dispose de son rapport réalisé par les utilisateurs testeurs. Outre les commentaires de ceux-ci, sont notamment préciser des informations importantes tel que la distribution utilisée, le noyau, les pilotes graphiques,… Pour les plus accros, cette base de données fournit aussi des données très utiles à cet endroit. Pour chaque catégorie de compatibilité, on y retrouve en effet :

  • la version de Proton utilisée
  • la distribution utilisée

  • le type de GPU utilisé
  • la version des pilotes graphiques utilisée

Et bien d’autres informations.Et comme tout projet libre, vous pouvez contribuer ici.Vous pouvez installer Proton et Steam sans aucun problème sous Manjaro car ils sont disponibles dans les dépôts officiels de la distribution et sur AUR. Tout dépendra de vos attentes. En attendant, pour ma part, ce sera:

sudo pacman -S steam-manjaro steam-devices && yaourt -S proton steam-fonts

Nous voici à la fin de sixième partie. Qui m’aurait dis l’année dernière (quand m’est venue l’idée de faire un article sur les périphériques gaming/Hardware) et sa division cette année en plusieurs parties (initialement 2) qu’il serait si grand, si étendue, si riche. Enfin, c’est ainsi. Après tout, le monde informatique évolue vite et les logiciels libres aussi. Et quand des sociétés s’y mettent, cela va encore plus vite. Amusez-vous bien.

Gravatar de Cenwen
Original post of Cenwen.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Borg Checker, petit script Python sans prétention

Prérequis :
- Avoir déjà utilisé Borg
- Connaître Python, ou a minima savoir lire du code

Rôle de ce bout de code

L'objectif est de savoir si les sauvegardes lancées la nuit, reposant sur un script Borg, se sont bien passées. Pour cela, nous partons du principe que si une commande borg c'est bien lancée, dans la liste des sauvegardes renvoyées par Borg, on aura une sauvegarde portant le bon nom (le nom incluant la date du jour). Le nom de chaque sauvegarde est donc l'élément discriminant et est de la forme Documents_AAAA-MM-DD-HH:MM:SS. Exemple Documents_2018-10-31-10:10:10

Le script répond à notre besoin, à savoir éviter de faire un "borg list" sur X répertoires et nous renvoyer un OK quand on a une sauvegarde avec la bonne date, KO si il n'y a pas de sauvegarde ayant la date du jour et il indique le nombre de jours entre la dernière sauvegarde et la date du jour.

Pourquoi en Python et pas en bash ?

J'avais commencé à former mon Pandawan au Shell et nous aurions pu faire un script équivalent en shell. Mais je voulais aussi le former à des notions de programmation objet, lui montrer que l'on pouvait faire aussi des choses en Python et dérouiller mon propre Python. D'où le choix de ce langage.

Attention, nous ne sommes pas des spécialistes Python, nous savons juste faire des bouts de scripts & codes que nous saurons relire et améliorer dans plusieurs mois. Le but n'était pas de faire un code optimisé ultra efficace mais de faire quelque chose de lisible et réutilisable et maintenable, compréhensible par la première personne qui sait lire un peu de code.

Le code

[SauvegardeBorg]
Documents_Dossier_A = /Backup/Documents/Dossier_A/
Documents_Dossier_B = /Backup/Documents/Dossier_B/
Documents_Dossier_C = /Backup/Documents/Dossier_C/#!/usr/bin/python
# -*-coding:Utf-8 -*
import configparser
import sys
import os.path
import datetime

#===========================================================
# SCRIPT DE VALIDATION DES DIFFERENTES SAUVEGARDES
#==========================================================

#"------------------------------------------------------------
# Initialisation des chemins
# On a un fichier avec
# * en clef : la sauvegarde à valider
# * en valeur : le chemin dans lequel on vérifie la sauvegarde
# via le check de borg list avec une sauvegarde borg à la date du jour
config = configparser.ConfigParser()
config.optionxform = str
config.read('./Config.ini')
configsauvegardeBorg = config['SauvegardeBorg']

def fctCheckBorg():
print("==========================================")
print(" CHECK DES SAUVEGARDES BORG")
print("==========================================")

from datetime import datetime
# Lecture de tous les éléments de BorgBackupPath
for key,value in config.items('SauvegardeBorg'):
try:
borgCommand="borg list "+ value
sortie = os.popen(borgCommand).read()
tabBorgList = sortie.split("\\n")
number=len(tabBorgList) -2
# La ligne est de la forme
# Documents_2018-10-31-10:10:10 Wed, 2018-10-31 10:10:10 [b576a0703b7144be76afd2e2]
# On coupe pour trouver la date
lastBackupDate = tabBorgList[number].split(",")[1].split("[")[0].split(" ")[1]
# Conversion du String en Date
lastBackupDateToDate = datetime.strptime(lastBackupDate,'%Y-%M-%d')
# Récupération de la date du jour au bon format
now=datetime.strptime(datetime.now().strftime('%Y-%M-%d'),'%Y-%M-%d')
# Calcul du delta
delta = now - lastBackupDateToDate
if (delta.days == 0):
print(key, ": statut OK. Nombre de jours depuis la dernière sauvegarde : ", str(delta.days))
else:
print(key, ": statut KO. Nombre de jours depuis la dernière sauvegarde :", str(delta.days))
except Exception as e:
print("Erreur rencontree : ")
print(str(e))
continue
print("\\n")
return 0;

Exemple de résultat d'exécution

Le script se lance via

python3 BorgChecker.py

Résultat de l'exécution quand on a bien une sauvegarde qui s'est déroulée sur la nuit

Documents_Dossier_A : statut OK. Nombre de jours depuis la dernière sauvegarde : 0.
Documents_Dossier_B : statut OK. Nombre de jours depuis la dernière sauvegarde : 0.

Résultat de l'exécution quand on a bien une erreur (et le nombre de jours permet de détecter que le script ne tourne plus depuis X jours par exemple).

Documents_Dossier_C : statut KO. Nombre de jours depuis la dernière sauvegarde : 3.

Ainsi on sait que pour le dossier A et B, on a bien une sauvegarde. Pour le dossier C, il y a eu une erreur (vu que l'on a un K0) et il faudra donc aller analyser pour en savoir plus (coupure de réseau, lock qui a empêché la bonne exécution de Borg...)

Conclusion

Le code source et l'ensemble de cet article sont en licence CC BY SA, faites en ce que vous voulez. Si ça peut vous être utile, tant mieux ;)

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Pages