Le patch ne modifie pas la façon dont le code fonctionne. Il change simplement les noms des variables de sorte à les aligner avec la terminologie utilisée au sein du code source d’un gestionnaire de volume logique au sein du noyau Linux. C’est un total de 42 lignes de code qui disparaissent de la base de code OpenZFS et 48 qui font leur entrée.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/sh # # Show device mapper slave devices. This is useful for looking up the # /dev/sd* devices associated with a dm or multipath device. For example: # # $ ls /sys/block/dm-113/slaves/ # sddt sdjw # Show device mapper dependent / underlying devices. This is useful for # looking up the /dev/sd* devices associated with a dm or multipath device. # if [ "$1" = "-h" ] ; then echo "Show device mapper slave devices." echo "Show device mapper dependent (underlying) devices." exit fi @@ -29,4 +26,4 @@ if [ -d "/sys/class/block/$dev/slaves" ] ; then val=$(echo "$val" | sed -r 's/[[:blank:]]+/ /g') fi echo "slaves=$val" echo "dm-deps=$val" |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | @@ -74,10 +74,10 @@ check() { local blockdevs local fstype local majmin local _slavedev local _slavedevname local _slavedevtype local _slavemajmin local _depdev local _depdevname local _depdevtype local _depmajmin local _dev if [[ $hostonly ]]; then @@ -108,15 +108,15 @@ if [[ $hostonly ]]; then host_fs_types["$dev"]="$fstype" majmin=$(get_maj_min "$dev") if [[ -d /sys/dev/block/$majmin/slaves ]] ; then for _slavedev in /sys/dev/block/$majmin/slaves/*; do [[ -f $_slavedev/dev ]] || continue _slavedev=/dev/$(basename "$_slavedev") _slavedevname=$(udevadm info --query=property --name="$_slavedev" | grep "^DEVNAME=" | sed 's|^DEVNAME=||') _slavedevtype=$(get_devtype "$_slavedevname") _slavemajmin=$(get_maj_min "$_slavedevname") dinfo "zfsexpandknowledge: slave block device backing ZFS dataset $mp: $_slavedevname" array_contains "$_slavedevname" "${host_devs[@]}" || host_devs+=("$_slavedevname") host_fs_types["$_slavedevname"]="$_slavedevtype" for _depdev in /sys/dev/block/$majmin/slaves/*; do [[ -f $_depdev/dev ]] || continue _depdev=/dev/$(basename "$_depdev") _depdevname=$(udevadm info --query=property --name="$_depdev" | grep "^DEVNAME=" | sed 's|^DEVNAME=||') _depdevtype=$(get_devtype "$_depdevname") _depmajmin=$(get_maj_min "$_depdevname") dinfo "zfsexpandknowledge: underlying block device backing ZFS dataset $mp: $_depdevname" array_contains "$_depdevname" "${host_devs[@]}" || host_devs+=("$_depdevname") host_fs_types["$_depdevname"]="$_depdevtype" done fi done |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | @@ -336,25 +336,25 @@ function on_off_disk # disk state{online,offline} host if [[ $state == "offline" ]] && ( is_mpath_device $disk ); then dm_name="$(readlink $DEV_DSKDIR/$disk \ | nawk -F / '{print $2}')" slave="$(ls /sys/block/${dm_name}/slaves \ dep="$(ls /sys/block/${dm_name}/slaves \ | nawk '{print $1}')" while [[ -n $slave ]]; do while [[ -n $dep ]]; do #check if disk is online lsscsi | egrep $slave > /dev/null lsscsi | egrep $dep > /dev/null if (($? == 0)); then slave_dir="/sys/block/${dm_name}" slave_dir+="/slaves/${slave}/device" ss="${slave_dir}/state" sd="${slave_dir}/delete" dep_dir="/sys/block/${dm_name}" dep_dir+="/slaves/${dep}/device" ss="${dep_dir}/state" sd="${dep_dir}/delete" log_must eval "echo 'offline' > ${ss}" log_must eval "echo '1' > ${sd}" lsscsi | egrep $slave > /dev/null lsscsi | egrep $dep > /dev/null if (($? == 0)); then log_fail "Offlining" \ "$disk failed" fi fi slave="$(ls /sys/block/$dm_name/slaves \ dep="$(ls /sys/block/$dm_name/slaves \ 2>/dev/null | nawk '{print $1}')" done elif [[ $state == "offline" ]] && ( is_real_device $disk ); then @@ -380,9 +380,9 @@ function on_off_disk # disk state{online,offline} host if is_mpath_device $disk; then dm_name="$(readlink $DEV_DSKDIR/$disk \ | nawk -F / '{print $2}')" slave="$(ls /sys/block/$dm_name/slaves \ dep="$(ls /sys/block/$dm_name/slaves \ | nawk '{print $1}')" lsscsi | egrep $slave > /dev/null lsscsi | egrep $dep > /dev/null if (($? != 0)); then log_fail "Onlining $disk failed" fi |
Les blocs de code l’illustrent : on passe du terme « slave » à « dependent » qui signifie « périphérique sous-jacent. » D’un point de vue historique, la manœuvre se justifie pour Matthew Ahrens : « Les horribles effets de l'esclavage humain continuent à avoir un impact sur la société. L'utilisation occasionnelle du terme esclave dans les logiciels informatiques est une référence inutile à une expérience humaine douloureuse. » Elle n’est pas sans faire penser à celle de l’équipe du langage Go qui, il y a peu, a annoncé le retrait des termes "whitelist", "blacklist", "master" et "slave" de sa documentation et de sa base de code au motif de ce qu’ils véhiculent des stéréotypes raciaux. L’équipe du langage de programmation Go rejoignait celles des projets Python (2018), Django (2014), CouchDB (2014), Drupal (2014) et Redis (2017) dans cette démarche. Le même argument revient : bien que ces termes aient été utilisés depuis des décennies, ils peuvent avoir des significations à caractère raciste, entre autres, pour les utilisateurs. Il serait donc bon de les éviter.
Grosso modo, ce sont des changements que les différents projets justifient également d’un point de vue technique. À la place de "whitelist" et "blacklist", l’équipe Go a par exemple procédé à l’introduction des termes "allowlist" (liste d’autorisation) et "blocklist" (liste de refus) jugés plus explicites (ou moins ambigu) que ceux d’origine.
Source : GitHub
Et vous ?
Quel est votre avis sur la suppression de ces expressions ? Est-ce un exemple à suivre ?
Est-il préférable d’éviter ces expressions au nom de l’inclusion ? Si oui, quelle pourrait être votre proposition ?
Êtes-vous du même avis que ceux qui pensent que les remplaçants proposés ne restent pas souvent fidèles au sens originel ? Si oui, quels sont les cas de figure qui vous ont marqué ?
Voir aussi :
Commission d'enrichissement de la langue française : ne dites plus « cryptojacking » mais « minage pirate », voici la nouvelle vague de traductions proposées
Commission d'enrichissement de la langue française : ne dites plus « hackathon » mais « marathon de programmation », voici la nouvelle vague de traductions proposées
La commission d'enrichissement de la langue française s'attaque au vocabulaire de la cyberdéfense avec des équivalents français pour les anglicismes
Vous ne devez plus dire « data scientist », mais plutôt « expert en mégadonnées », d'après la Commission d'enrichissement de la langue française