MakeMake The Dwarf Planet is a feed agregator.

Last FOSS contributions from the Yaal Coop team (summer 2022)

by Éloi Rivard <eloi@yaal.coop> from Yaal

squeekboard

An on-screen-keyboard input method for Wayland

libcall-ui

User interface for Linux phone calls

Mozilla Web Docs

Documentation about web technologies, including CSS, HTML, and JavaScript

canaille

Simplistic OpenID Connect provider over OpenLDAP

Python

python-caldav

Debian Archive Kit (dak)

Programs used to maintain the Debian project's archives

Python2 will disappear

  • Removal of a workaround for older releases than 2.6 in Webtest
  • Documentation: removal of an example based on python2 in Honcho
  • Removal of python2.7 specific cases in setuptools
  • Removal python2 support in msgpack

tracker-miners

Data collectors for GNOME tracker

poetry

Tool for dependency management and packaging in Python

fhir-kindling

FHIR resource and synthetic data set creation and management tool

keyring_pass

Password Store (pass) backend for python's keyring

dnserver

Simple development DNS server

nextcloud-oidc-login

Nextcloud login via a single OpenID Connect 1.0 provider

Lire la suite…

Dernières contributions à des logiciels libres par l'équipe Yaal Coop (été 2022)

by Éloi Rivard <eloi@yaal.coop> from Yaal

squeekboard

Un clavier virtuel pour Wayland

libcall-ui

Interface utilisateur pour les appels téléphoniques sous Linux

Mozilla Web Docs

Documentation sur les technologies du web, dont CSS, HTML et Javascript

canaille

Serveur OpenID Connect simpliste, basé sur OpenLDAP

Python

python-caldav

Debian Archive Kit (dak)

Programmes utilisés pour maintenir les archives du projet Debian

Python2 finira par disparaître

  • Suppression d'un contournement pour les version antérieures à 2.6 dans Webtest
  • Documentation : suppression d'un exemple basé sur python2 dans Honcho
  • Suppression de cas spécifiques à python2.7 dans setuptools
  • Suppression de python2 dans msgpack

tracker-miners

Collecteurs de données pour GNOME Tracker

poetry

Outil pour la gestion des dépendances et des paquets en Python

fhir-kindling

Brique de connexion à des serveurs de ressources FHIR

keyring_pass

Connecteur Password Store (pass) pour python-keyring

dnserver

Serveur DNS simpliste pour le développement

nextcloud-oidc-login

Plugin OpenID Connect pour nextcloud

Lire la suite…

Purism Librem 5 software review : our list to Santa

by Éloi Rivard <eloi@yaal.coop> from Yaal

After several years of waiting, we just received our Librem 5 phone from Purism. The Librem 5 phone is a privacy-oriented phone which notable features are:

  • it uses PureOS, a GNU/Linux distribution based on Debian, instead of Android or iOS;
  • the interface is based on GNOME with a few modifications;
  • it has kill switches to physically disable wifi, bluetooth, cellular data, camera and microphone.

Running a Linux on a cellular phone enables new uses, especially for tech savvy, but it comes with its lot of drawbacks. The main notable ones is that Linux phones is a brand new field, and a lot of apps are simply 'not ready'. Either because their UI is not adaptive, because they have not been adapted to mobile user interactions (swiping and other gestures), or just because they have not been tested enough by users, so some actions feels convoluted.

FOSS developers do their best, and a whole lot of great work has been done so far. However we are not yet at a point where Linux phones can be put in the hands of a larger audience. With our fresh eyes of new Linux mobile users, we want to list here the main things that we felt were really missing to provide a good user experience (at least for our biased geeky use). We focused on GNOME Core and Circle apps, and mobile/Librem5 specific apps developed by Purism. What we expect from a phone is to:

  • place calls
  • receive and send SMS
  • receive and send emails
  • be used as an alarm clock
  • manage contacts
  • manage tasks
  • be used as a geolocation navigation device
  • browse the internet
  • play music
  • take photos
  • take notes
  • display documents
  • share internet connection
  • be used as a torchlight
  • discuss with people

As patching has even more value than reporting, this list could be used by us (or you?) as a to-do list for some day if we get bored.

We have tested the phone running PureOS byzantium, and we updated all the apps through Flatpak when possible so we could get the latest GNOME 42 fixes.

Blockers

In this category we put the issues we feel are very discouraging for a daily use. This mainly concerns UX friction and stress, and missing or broken features.

Comfort

In this category we put the issues that would improve our comfort. This mainly concern mobile UX improvements.

Sparkles

In this category we put everything else that we met during our test, from nice-to-have features to slight mobile UX improvements:

Lire la suite…

Revue logicielle du Librem 5 de Purism

by Éloi Rivard <eloi@yaal.coop> from Yaal

Après plusieurs années d'attente, nous venons de recevoir le Librem 5 que nous avions commandé chez Purism. C'est un téléphone orienté vie-privée dont les fonctionnalités notables sont :

  • l'utilisation de PureOS, une distribution GNU/Linux basée sur Debian, à la place d'Android ou iOS ;
  • l'interface graphique est GNOME avec quelques modifications ;
  • la présence de boutons permettant de physiquement éteindre le Wifi, le Bluetooth, les données mobiles, le microphone ou la caméra (c'est à dire couper l'arrivée électrique).

Utiliser Linux sur un téléphone mobile ouvre à de nouveaux usages qui concernent surtout des personnes technophiles, mais cela vient aussi avec son lot d'inconvénients. Les plus notables sont que les téléphones sous Linux sont quelque chose de nouveau, et les applications ne sont simplement pas prêtes : les interface ne sont adaptées aux écrans mobiles, les interactions pratiques sur un téléphone mobile (comme le glissement du pouce) ne sont pas utilisées, et plus généralement les applications n'ont pas encore été assez testées par des utilisateurs mobiles.

Les développeurs de logiciels libres font de leur mieux, et un sacré travail a déjà été fait. Cependant nous ne sommes pas encore à un point où les téléphones sous Linux peuvent être mis entre toutes les mains. Avec notre regard vierge (c'est la première fois que nous voyons un téléphone sous Linux), nous voulons lister ici ce que nous pensons qu'il manque à l'écosystème pour fournir un bonne expérience utilisateur (du moins pour notre usage biaisé de technophiles).

Nous nous sommes concentrés sur les applications GNOME Core et Circle, ainsi que sur les applications mobiles développées par Purism.

Ce que nous attendons d'un téléphone est qu'il nous permette de :

  • passer des appels
  • recevoir et envoyer des SMS
  • recevoir et envoyer des emails
  • être utilisé comme réveil
  • gérer ses contacts
  • gérer des listes de tâches
  • être utilisé comme un appareil de géolocalisation
  • naviguer sur internet
  • jouer de la musique
  • prendre des photos
  • prendre des notes
  • afficher des documents
  • partager sa connexion internet
  • être utilisé comme lampe-torche
  • discuter avec des gens

Comme produire des correctifs a encore plus de valeur que rapporter des bugs, cette liste pourrait nous servir de liste de tâches à faire si nous (ou vous ?) nous ennuyons un jour.

Nous avons testé le téléphone sous PureOS byzantium, et mis à jour les applications grâce à Flatpak quand c'était possible afin de bénéficier des avancées de GNOME 42.

Bloquants

Dans cette catégorie nous listons les problèmes qui nous découragent fortement pour une utilisation quotidienne. Cela concerne principalement du stress et de la friction dans l'expérience utilisateur, ainsi que des fonctionnalités manquantes ou inutilisables.

Confort

Dans cette catégorie nous lisons ce qui améliorerait notre confort. Cela concerne principalement les interfaces.

Paillettes

Dans cette catégorie nous listons toutes les autres choses que nous avons rencontrées, il s'agit surtout de petites améliorations d'interface et quelques fonctionnalités qui permettraient par exemple un usage hors-ligne.

Lire la suite…

Dernières contributions à des logiciels libres par l'équipe Yaal Coop (début 2022)

by Éloi Rivard <eloi@yaal.coop> from Yaal

Ces derniers mois nous avons principalement contribué à canaille, le serveur d'identité que nous développons, ainsi que le menu d'autocomplétion simple-svelte-autocomplete et le greffon nextcloud-oidc-login qui permet à nextcloud de se connecter à des serveurs d'identité.

wtforms

Bibliothèque python de gestion de formulaires web

canaille

Serveur OpenID Connect simpliste, basé sur OpenLDAP

webtest

Bibliothèque de tests unitaires pour applications web

nextcloud

Logiciel de partage et de synchronisation de fichiers

nextcloud-oidc-login

Plugin OpenID Connect pour nextcloud

ansible

Outil d'automatisation des déploiements

simple-svelte-autocomplete

Composant svelte de suggestion d'éléments dans une liste déroulante

fhir-kindling

Brique de connexion à des serveurs de ressources FHIR

Debian

Lire la suite…

Last FOSS contributions from the Yaal Coop team (winter 2022)

by Éloi Rivard <eloi@yaal.coop> from Yaal

Those last months we mainly worked on canaille, our identity server, as well as the autocompletion menu simple-svelte-autocomplete and nextcloud-oidc-login that allows nextcloud to connect to identity servers.

wtforms

A flexible forms validation and rendering library for Python.

canaille

Simplistic OpenID Connect provider over OpenLDAP

webtest

Wraps any WSGI application and makes it easy to send test requests to that application, without starting up an HTTP server.

nextcloud

Nextcloud server, a safe home for all your data

nextcloud-oidc-login

Nextcloud login via a single OpenID Connect 1.0 provider

ansible

simple IT automation platform

simple-svelte-autocomplete

Simple Autocomplete / typeahead component for Svelte

fhir-kindling

FHIR resource and synthetic data set creation and management tool

Debian

Lire la suite…

Visite aux JDLL 2022

by Stéphane Blondon <stephane@yaal.coop> from Yaal

Les 2 et 3 avril 2022, plusieurs associé·es de Yaal Coop étaient présents aux 23ièmes Journées du Logiciel Libre qui se déroulaient à Lyon. C'était l'occasion d'approfondir des sujets qui nous intéressaient, de faire quelques découvertes ainsi que de rencontrer des acteur·ices du Libre en personne.

Comme nous construisons un service d'hébergement nommé nubla, assister aux présentations sur le collectif des CHATONS (Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires) et sur zourit ont été un moyen pour nous de confirmer (ou d'infirmer) nos choix sur le fonctionnement du service. Découvrir cette communauté donne du coeur à l'ouvrage !

Cela fait aussi plaisir de constater l'intérêt pour le mouvement coopératif, comme ce fut le cas lors des discussions animées de la session d'échange "Gouvernance du libre/Gouvernance des coopératives : quels points communs ?". Tout un programme... Qui nous conforte dans notre choix de transformer Yaal en SCIC fin 2020. Un choix loin d'être unique comme l'a encore démontrée cette discussion organisée par d'autres coopératives du numérique : Hashbang, Tadaa et Probesys.

D'un point de vue moins politique (quoi que...) à Yaal Coop nous avons un usage quotidien de claviers plus ou moins originaux (TypeMatrix, Truly Ergonomic, ErgoDox) et, pour certains, de personnalisations de disposition de clavier bépo. De fait, la présentation sur la fabrication personnalisée de clavier et sur la disposition récente tentant d'avoir une disposition agréable pour écrire en français, en anglais et pour programmer - ergoL -, ont piqué notre curiosité.

Tellement de type de claviers dans la zone des associations !

Cette conférence était l'occasion de parler avec des passionnés mais aussi celle de recroiser et discuter avec des personnes déjà rencontrées lors d'autres conférences (en l'occurence DebConf et PyconFr).

Le village associatif en particulier a été pour nous un lieu d'échanges, notamment avec Framasoft sur les avantages et les différences des formats coopératifs et associatifs.

Du coup, encore merci à tous les organisateurs et présentatrices, et vivement la prochaine ?

Lire la suite…

Supprimer les plus vieux fichiers d’un dossier tant qu’on dépasse une certaine taille

by Olivier Pons from Olivier Pons


Exemples de lancement du script

Notez qu’il faut lancer en utilisant « source« 

  • Supprimer les plus vieux fichiers du dossier courant (./) tant qu’il prend plus de 96Mo :
    source ./clean_custom.sh --path ./ -l 9600000
  • Supprimer les plus vieux fichiers du dossier temporaire (/tmp/) tant qu’il prend plus de 2Go :
    source ./clean_custom.sh --path /tmp/ -l 2000000000

Code du script

#!/usr/bin/env bash                                                              
PATH_TO_CLEAN=                                                                   
NUMBER_FILES_TO_DELETE_EACH_LOOP=1                                               
SIZE_LIMIT=2000000000                                                            
                                                                                 
# ----------------------------------------------------------------------------   
# usage:                                                                         
usage()                                                                          
{                                                                                
    echo "Clean directory: while size of a dir > limit, oldest files first."
    echo "Usage: ${filename} [-p|--path path] [-s|--max-size size] | [-h]"
    echo "    -p|--path: path to clean"            
    echo "    -l|--limit: max size for the folder (must be > 0)"
    echo "    -h|--help this help"                 
}                                                                                
                                                                                 
# ----------------------------------------------------------------------------   
# handling arguments:                                                            
args=("$@")                                                            
filename=$(basename -- "$0" | sed 's/\(.*\)\..*/\1/')        
while [ "$1" != "" ]; do                                     
    case $1 in                                               
        -p | --path ) shift              
                      # stop if path doesn't exist:
                      if [ ! -d "$1" ]; then
                          echo "Path not found: '$1'"
                          usage
                          return 1
                      fi
                      PATH_TO_CLEAN=$1
                      ;;
        -l | --limit ) shift             
                       SIZE_LIMIT=$(echo $1 | bc)
                       if [ $SIZE_LIMIT -le 0 ]
                       then
                           usage
                           return 1
                       fi
                       ;;
        -h | --help ) usage              
                      return
                      ;;
        * ) usage                        
            return 1 
    esac                                                     
    shift                                                    
done                                                                             
[ -z "$PATH_TO_CLEAN" ] && echo "Path empty" && usage && return 1
echo "Cleanin dir: '$PATH_TO_CLEAN', size limit=$SIZE_LIMIT" 
# ----------------------------------------------------------------------------   
# handling arguments:                                                            
while [ 1 ]                                                                      
do                                                                               
    s=$(du -sb $PATH_TO_CLEAN | cut -f1 | bc)                
    if [ $s -gt $SIZE_LIMIT ]                                
    then                                                     
        find $PATH_TO_CLEAN -type f -printf '%T+ %p\n' | \
            sort -nr | \
            tail -$NUMBER_FILES_TO_DELETE_EACH_LOOP | \
            cut -d' ' -f 2- | \
            xargs -I {} rm -f {}
    else                                                     
        break                            
    fi                                                                                                                                                                                                                                                      
done                                                                             
return 0

Lire la suite…

Retour d'expérience concernant l'usage d'AlpineLinux comme conteneur

by Stéphane Blondon <stephane@yaal.coop> from Yaal

AlpineLinux est une distribution souvent utilisée pour des conteneurs (lxc/lxd, Docker, etc.) car la taille des images d'AlpineLinux est minuscule (seulement 6 Mo !). C'est un avantage réel, surtout si on a beaucoup de conteneurs. Si cette performance est remarquable, il est cependant nécessaire de prendre en compte l'ensemble des choix réalisés par la distribution. Sur le site web, il est clairement indiqué « Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox. ». Voyons quelles contraintes cela apporte :

Les performances de musl

AlpineLinux a fait le choix de musl comme bibliothèque C, contrairement à la plupart des distributions Linux qui utilisent la libc GNU. Il peut y avoir des problèmes de compilation ou d'exécution de logiciel qui ont été testées avec la glibc et pas avec musl mais nous n'avons jamais rencontré ce problème.

À l'exécution, musl est plus lente que la glibc. Par exemple, une compilation de cpython est deux fois plus lente qu'avec la glibc. C'est un problème connu des mainteneurs qui pourrait être résolu dans le futur en changeant d'allocateur mémoire. Mimalloc semble être une bonne piste à l'avenir, mais pour l'instant, il faut vivre avec ce niveau de performance.

L'environnement espace utilisateur

busybox

AlpineLinux utilise busybox pour les outils Unix de base. Busybox est un projet éprouvé et utilisé depuis de nombreuses années dans l'embarqué.

Ce choix permet de minimiser la taille des outils embarqués par Alpine.

Mais, si le développement de script shell est réalisé sur un système disposant des outils GNU, il est possible qu'il y ait des erreurs lors de son exécution sur un système Alpine car le comportement n'est pas exactement le même : par exemple, il peut manquer des paramètres à certains outils (en particulier lorsque ce sont des extensions GNU à la norme Unix). Dans ce cas, il faut modifier le code ou installer un paquet pour embarquer l'outil GNU que l'on souhaite.

systemd

AlpineLinux utilise les scripts de démarrage classique Unix (dans /etc/init.d/) et non systemd. Selon les besoins et préférences de chacun, cela peut être une qualité ou un défaut.

Les mises-à-jour

Mettre à jour une version mineure d'alpine à l'autre (par exemple de 3.14 à 3.15) est très vite réalisé en quelques minutes. Comparé à la migration d'une version stable de Debian à la suivante, c'est étonnant et confortable puiqu'il n'y a pas de messages bloquants affichant les Changelog de changement incompatible ou des différences de fichiers de configuration entre la version du maitenant et celle du système en cours. L'inconvénient étant que les services peuvent être non fonctionnels ensuite...

Ce comportement n'est pas forcément un problème si l'usage est celui de conteneurs Docker qui sont supprimés et reconstruits à chaque modification. Dans le cas d'un usage classique avec des mises-à-jour, ça l'est beaucoup plus. L'usage d'instantanés (snapshot) peut permettre de limiter le problème : une fois la mise-à-jour faite, si des problèmes sont présents, il faut restaurer l'instantané fait avant la mise-à-jour puis chercher quel est le problème sur la version mise-à-jour.

Conclusion

Ces différents défauts ne sont pas forcément rédhibitoires selon l'usage fait d'AlpineLinux (par exemple pour des environnements docker locaux jetables). Il semble cependant important de les prendre en compte et se demander s'ils sont bloquants ou non avant de décider d'utiliser AlpineLinux selon l'usage prévu.

Après avoir utilisé AlpineLinux pour nos conteneurs lxc, nous avons conclu que l'utilisation de Debian était plus adapté à nos besoins dans ce cadre. Les prochains conteneurs seront donc basé sur Debian et les anciens migrés au fur et à mesure.

Lire la suite…