Лицензии пакетов описаны в /usr/share/doc/${package}/copyright
. Этот файл необходим для указания основной лицензии пакета; многие пакеты используют машиночитаемый copyright
файл, в котором перечислены лицензии каждого отдельного файла исходного пакета.
Для машиночитаемых файлов можно использовать строку License:
, которая представляет лицензии:
awk '/^License:/ { print $2 }' /usr/share/doc/*/copyright | sort -u
Если вы ищете лицензию, документированную в /usr/share/common-licenses
, вы можете поискать упоминания о них в copyright
файлах; например. для подсчета количества пакетов, лицензированных под GPL или LGPL:
grep -l GPL /usr/share/doc/*/copyright | wc -l
Чтобы подсчитать только количество исходных пакетов, подсчитайте количество уникальных файлов (бинарные пакеты, поставляемые из одного исходного пакета, имеют точно такой же copyright
файл или ссылку на тот же файл):
md5sum $(grep -l GPL /usr/share/doc/*/copyright) | sort -k1,1 -u | wc -l
Debsources предоставляет различные способы поиска по всем copyright
файлам Debian; вот однострочная строка для получения лицензии отдельного файла (если его пакет использует машиночитаемый формат). (Лицензия этого однострочника не документирована, поэтому я просто ссылаюсь на него, а не копирую его сюда.)
Обратите внимание, что поскольку файлы copyright
документируют лицензии исходных пакетов, они вполне могут документировать файлы, которые не поставляются в двоичных пакетах и не влияют на лицензию двоичного пакета; это может быть, например, в случае с файлами под лицензией GPL, которые используются только при сборке пакета без лицензии GPL.
1 )С помощью xev
я обнаружил, что ключ работает.
2 )Проверив вывод xev
на заведомо "исправные" ключи, а не -рабочие (XF86Mail
), обнаружил разницу:
Работает в связке клавиш:
KeyRelease event, serial 48, synthetic NO, window 0x2000001,
root 0x1e3, subw 0x0, time 70102367, (1618,-868), root:(3219,29),
state 0x10, keycode 158 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Не работает при привязке клавиш:
KeyRelease event, serial 48, synthetic NO, window 0x2000001,
root 0x1e3, subw 0x0, time 70103895, (1618,-868), root:(3219,29),
state 0x10, keycode 223 (keysym 0x1008ff19, XF86Mail), same_screen YES,
--> XKeysymToKeycode returns keycode: 163
XLookupString gives 0 bytes:
XFilterEvent returns: False
Итак, есть множество вариантов на выбор:
Перепробовал все из них, и работал только один 0xDF
.(<keybind key="0xDF">
в конфиге openbox)
Судя по номерам, поскольку XF86WWW имеет код клавиши 158, XF86Mail, клавиша рядом с ним на клавиатуре, вероятно, изначально имела код клавиши 163, но затем программный уровень изменил его.
Я начал копаться в таких вещах, как xmodmap
и руководство по архвики , но тогда мне не нужно было понимать, что происходит, xev
один дал мне решение, как только я в состоянии это понять.