LINUX.ORG.RU

Сообщения Panika

 

Подружить PKGBUILD и Makefile

Написал PKGBUILD для своего хелоуворлда:

pkgname=hello-git
pkgver=r44.XxXxXx
pkgrel=1
pkgdesc='Описание'
arch=('any')
url='Ссылка_на_приватный_резозиторий'
license=('GPL3')
depends=('python')
makedepends=('git')
source=(git+Ссылка_на_приватный_резозиторий)
sha512sums=('SKIP')

pkgver() {
    cd "$srcdir/hello/"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

package() {
	cd "${srcdir}/${pkgname%-git}"
	make DESTDIR="$pkgdir/" install
}

Видно, что хочу запустить Makefile из PKGBUILD, а не прописывать, что и куда поставить. В Makefile что касается установки:

install:
	install -Dm755 hello.py /usr/bin/hello.py

Запускаю makepkg:

==> Сборка пакета hello-git r44.XxXxXx
==> Проверка зависимостей для запуска...
==> Проверка зависимостей для сборки...
==> Получение исходных файлов...
  -> Обновление репозитория 'hello' (git)...
==> Проверка файлов source с использованием sha512sums...
    hello ... Пропущено
==> Распаковка исходных файлов...
  -> Создание рабочей копии репозитория 'hello' (git)...
Сброс ветки «makepkg»
==> Запускается pkgver()...
==> Удаление директории '$pkgdir/'...
==> Вход в окружение fakeroot...
==> Запускается package()...
install -Dm755 hello.py /usr/bin/hello
install: невозможно создать обычный файл '/usr/bin/hello': Отказано в доступе
make: *** [Makefile:12: install] Ошибка 1
==> ОШИБКА: Произошел сбой в package().
    Прерывание...

Как быть?

 ,

Panika
()

Создание переводов в Makefile

Сегодня я туплю больше, чем обычно!

Есть небольшой проектик, который должен (мне 100р) устанавливаться и удаляться командами sudo make install и sudo make uninstall. Структура проекта выглядит так:

├── Makefile
├── po
│   └── ru.po
└── script.py

По идее, нужно в цикле пробежаться по содержимому каталога po и герировать переводы:

for i in $(cd po/ && ls *.po | sed 's/\.po$//'); do \
	msgfmt --statistics po/$i.po -o "/usr/share/locale/$i/LC_MESSAGES/script.mo"; \
done

Тут и возникает проблема: для /usr/share/locale/$i/LC_MESSAGES/script.mo должны быть права 644, но как мне их правильно вписать в конструкцию цикла?

 

Panika
()

Вопрос про git версии пакетов из AUR

В AUR есть пакеты plymouth:

plymouth 	22.02.122-4
plymouth-git 	22.02.122.r117.gca15d30c-1

Если 22.02.122 - это версия, то что за r117.gca15d30c-1 у git-версии? И откуда оно берется?

 ,

Panika
()

Костыльный PKGBUILD

Хочу написать PKGBUILD для python-скриптика, чтоб поставился он в систему по уму. Если с самим скриптом, все понятно: просто закидываем его в нужное место и выдаем нужные права, то как быть с переводами? Пройтись циклом, сгенерировать .mo и закинуть по нужным путям?

Вопрос второй: если мне потом приспичит добавить к нему, например, профиль apparmor, то как пропустить его установку у конечного пользователя, если он им не пользуется? Проверить существует ли /etc/apparmor.d/ через if then, и если что скопировать профиль?

В общем, насколько это все костыльно выглядит и есть ли идеи получше?

 ,

Panika
()

А bobbyburk разве спамил?

Вчерась @bobbyburk создал топик «Безопасность WI-FI», а его забанили за спам и тему удалили. @Dimez, что там произошло?

 ,

Panika
()

Как переводить непереведенные проги?

Нашел вот эту ссылку, решил пропробовать.

Создаю script.sh с:

#!/bin/sh
export TEXTDOMAINDIR=/usr/share/locale
export TEXTDOMAIN=script
. gettext.sh
TITLE="$(gettext 'Drive Mounter')"
TITLE2="$(eval_gettext 'Drive Mounter $x')"

echo $TITLE $TITLE2

Создаю и заполняю script.po:

xgettext script.sh -o script.po

"Language-Team: Russian <LL@li.org>\n"
"Language: ru\n"
"Content-Type: text/plain; charset=UTF-8\n"

#: script.sh:5
msgid "Drive Mounter"
msgstr "Монтажник дисков"

#: script.sh:6
#, sh-format
msgid "Drive Mounter $x"
msgstr "Монтажник дисков"

Теперь конвертирую и добавляю .mo:

sudo msgfmt script.po -o /usr/share/locale/ru/LS_MESSAGES/script.mo

Но echo выводит Drive Mounter вместо монтажника. Руководство относительно свежее, но что-то не так, но что именно?

 

Panika
()

Вопросы по plymouth

  1. За что конкретно отвечают параметры из /etc/plymouth/plymouthd.conf ?
ShowDelay=0
DeviceTimeout=3
  1. Кто отвечает за сообщение о запросе пароля, если / зашифрован? Хочу перевести эту строчку, но не знаю, где ее искать.
/tmp/Temp/» git clone https://gitlab.freedesktop.org/plymouth/plymouth.git
Клонирование в «plymouth»...
remote: Enumerating objects: 16007, done.
remote: Counting objects: 100% (198/198), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 16007 (delta 188), reused 183 (delta 180), pack-reused 15809
Получение объектов: 100% (16007/16007), 5.39 МиБ | 4.02 МиБ/с, готово.
Определение изменений: 100% (11764/11764), готово.
/tmp/Temp/» grep Password -R *                                            
plymouth/themes/script/script.script:Plymouth.SetDisplayPasswordFunction(display_password_callback);
plymouth/systemd-units/systemd-ask-password-plymouth.service.in:Description=Forward Password Requests to Plymouth
plymouth/systemd-units/systemd-ask-password-plymouth.service.in:Documentation=http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents
plymouth/systemd-units/systemd-ask-password-plymouth.path.in:Description=Forward Password Requests to Plymouth Directory Watch
plymouth/systemd-units/systemd-ask-password-plymouth.path.in:Documentation=http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents
plymouth/src/plugins/splash/two-step/plugin.c:        /* Password (or other) dialog alignment */
plymouth/src/plugins/splash/tribar/plugin.c:                prompt = "Password";
plymouth/src/plugins/splash/tribar/plugin.c:                prompt = "Password";
plymouth/src/plugins/splash/text/plugin.c:                prompt = "Password";
plymouth/src/plugins/splash/text/plugin.c:                prompt = "Password";
plymouth/src/plugins/splash/script/script-lib-plymouth.script:PlymouthSetDisplayPasswordFunction = Plymouth.SetDisplayPasswordFunction;
plymouth/src/plugins/splash/script/script-lib-plymouth.c:                                    "SetDisplayPasswordFunction",
plymouth/src/plugins/splash/details/plugin.c:                                "Password",
plymouth/src/plugins/splash/details/plugin.c:                                strlen ("Password"));
plymouth/src/client/plymouth.c:        ply_trace ("Password request");

В теме для plymouth тоже искал, ничего…

 

Panika
()

Ох уж эта биометрия

Habr пишет:

В Индии мужчина попытался использовать кожу друга для биометрической аутентификации на экзамене

Полиция индийского города Вадодара арестовала двух молодых людей за обман во время сдачи экзамена для работы на местной железной дороге. Один из них снял кожу с пальца и приклеил на палец друга, чтобы тот обманул систему биометрической аутентификации и сдал экзамен за него, сообщает NDTV.

22 августа частная компания, оператор железных дорог в городе Вадодара, организовала экзамен на вакансию железнодорожного рабочего, на который явились 600 кандидатов. Так как экзамен предусматривал подтверждение личности с помощью биометрии, кандидаты заранее предоставили свои отпечатки пальцев.

В попытке получить работу молодой человек по имени Маниш Кумар попросил своего друга, Раджьягуру Гупту, сдать экзамен вместо него по поддельному удостоверению личности. А чтобы обмануть систему аутентификации, Кумар обжёг большой палец горячей сковородой, после чего с помощью лезвия снял получившийся волдырь и приклеил его к пальцу Гупты. 

Экзаменатор заподозрил неладное, когда заметил, что один из кандидатов пытается что-то скрыть, пряча руку в кармане брюк. Когда экзаменатор обработал большой палец руки подозрительного кандидата дезинфицирующим средством, кожа, наклеенная на него, отвалилась.

Раскрыв обман, экзаменаторы позвонили в полицию. Гупта сообщил своё настоящее имя и рассказал о придуманной схеме. Полиция арестовала и Гупту, и Кумара, они обвиняются в подделке документов, мошенничестве путём выдачи себя за другое лицо и преступном сговоре.

Почему бы не отлить отпечаток из силикона или резины? Или не заплатить за реальный кусочек кожи покойного? Чего за сковородку-то хвататься?

А вы бы как послупили?

 

Panika
()

Черный экран при замене хуков base и udev на systemd

Archwiki говорит, что для ускорения загрузки можно замеменить хуки base и udev на systemd. Хорошо, решил попробовать. Меняю в /etc/mkinitcpio.conf:

HOOKS=(base udev autodetect modconf block filesystems keyboard encrypt lvm2 fsck)

На

HOOKS=(systemd autodetect modconf block filesystems keyboard encrypt lvm2 fsck)

Пересобираю initram образ:

sudo mkinitcpio -P

Перезагружаюсь и получаю черный экран, без возможности ввести парользую фразу для /. Ввод «вслепую» ничего не дает, система не загружается… Использую luks+lvm в такой последовательности.

Если оставить base, но заменить udev на systemd, получу тоже самое.

Что я не углядел?

 

Panika
()

GNOMEтрия

 GNOME представил инструментарий для сбора телеметрии

Разработчики из компании Red Hat объявили о готовности инструмента gnome-info-collect для сбора телеметрии о системах, на которых используется окружение GNOME. Пользователям, желающим принять участие в сборе данных, предложены готовые пакеты для Ubuntu, openSUSE, Arch Linux и Fedora.

Переданная информация позволит проанализировать предпочтения пользователей GNOME и учесть их при принятии решений, связанных с повышением удобства работы и развитием оболочки. При помощи полученных данных разработчики смогут лучше понять потребности пользователей и выделить направления деятельности, которым следует уделить первостепенное внимание.

Gnome-info-collect представляет собой простое клиент-серверное приложение, которое собирает данные о системе и передаёт их на сервер GNOME. Данные обрабатываются обезличенно, без сохранения информации о конкретных пользователях и хостах, но для исключения дубликатов к данным привязывается хэш с солью, созданный на основе идентификатора компьютера (/etc/machine-id) и имени пользователя. Перед отправкой подготовленные для передачи данные показываются пользователю для подтверждения операции. Данные, которые могут использоваться для идентификации системы, такие как IP-адрес и точное время на стороне пользователя, отфильтровываются и не попадают в лог на сервере.

Среди собираемой информации: используемый дистрибутив, параметры аппаратного обеспечения (включая данные о производителе и модели), список установленных приложений, список избранных приложений (вынесенных на панель), наличие поддержки Flatpak и доступа к Flathub в GNOME Software, типы используемых учётных записей в GNOME online, включённые сервисы совместного доступа (DAV, VNC, RDP, SSH), настройки виртуальных рабочих столов, число пользователей в системе, используемый web-браузер, включённые расширения GNOME.

 

Panika
()

Не выключаются gsd службы

Выключаю, например, Wacom.service:

user:~$ systemctl --user mask org.gnome.SettingsDaemon.Wacom.service
Created symlink /home/user/.config/systemd/user/org.gnome.SettingsDaemon.Wacom.service → /dev/null.

Перезагружаю машину, открываю gnome-system-monitor, а они там вполне загруженые… При этом статус говорит, что все в порядке:

user:~$ systemctl --user status org.gnome.SettingsDaemon.Wacom.service
○ org.gnome.SettingsDaemon.Wacom.service
     Loaded: masked (Reason: Unit org.gnome.SettingsDaemon.Wacom.service is masked.)
     Active: inactive (dead)

Как их правильно отключить?

 

Panika
()

Systemd «скролинг»

Предположим, понадобилось почитать какой-нибудь help:

user:~$ lvm --help            
  WARNING: Running as a non-root user. Functionality may be unavailable.
  Available lvm commands:
  Use 'lvm help <command>' for more information
   
  config          Display and manipulate configuration information
  devtypes        Display recognised built-in block device types
  dumpconfig      Display and manipulate configuration information
  formats         List available metadata formats
  fullreport      Display full report
  help            Display help for commands
  lastlog         Display last command's log report
  lvchange        Change the attributes of logical volume(s)
  lvconvert       Change logical volume layout
  lvcreate        Create a logical volume
  lvdisplay       Display information about a logical volume
  lvextend        Add space to a logical volume
  lvmchange       With the device mapper, this is obsolete and does nothing.
  lvmconfig       Display and manipulate configuration information
  lvmdevices      Manage the devices file
  lvmdiskscan     List devices that may be used as physical volumes
  lvmsadc         Collect activity data
  lvmsar          Create activity report
  lvpoll          Continue already initiated poll operation on a logical volume
  lvreduce        Reduce the size of a logical volume
  lvremove        Remove logical volume(s) from the system
  lvrename        Rename a logical volume
  lvresize        Resize a logical volume
  lvs             Display information about logical volumes
  lvscan          List all logical volumes in all volume groups
  pvchange        Change attributes of physical volume(s)
  pvck            Check metadata on physical volumes
  pvcreate        Initialize physical volume(s) for use by LVM
  pvdata          Display the on-disk metadata for physical volume(s)
  pvdisplay       Display various attributes of physical volume(s)
  pvmove          Move extents from one physical volume to another
  pvremove        Remove LVM label(s) from physical volume(s)
  pvresize        Resize physical volume(s)
  pvs             Display information about physical volumes
  pvscan          List all physical volumes
  segtypes        List available segment types
  systemid        Display the system ID, if any, currently set on this host
  tags            List tags defined on this host
  version         Display software and driver version information
  vgcfgbackup     Backup volume group configuration(s)
  vgcfgrestore    Restore volume group configuration
  vgchange        Change volume group attributes
  vgck            Check the consistency of volume group(s)
  vgconvert       Change volume group metadata format
  vgcreate        Create a volume group
  vgdisplay       Display volume group information
  vgexport        Unregister volume group(s) from the system
  vgextend        Add physical volumes to a volume group
  vgimport        Register exported volume group with system
  vgimportclone   Import a VG from cloned PVs
  vgimportdevices Add devices for a VG to the devices file.
  vgmerge         Merge volume groups
  vgmknodes       Create the special files for volume group devices in /dev
  vgreduce        Remove physical volume(s) from a volume group
  vgremove        Remove volume group(s)
  vgrename        Rename a volume group
  vgs             Display information about volume groups
  vgscan          Search for all volume groups
  vgsplit         Move physical volumes into a new or existing volume group
user:~$

Это полный вывод. А теперь что-нибудь из systemd:

user:~$ systemd-analyze --help
systemd-analyze [OPTIONS...] COMMAND ...

Profile systemd, show unit dependencies, check unit files.

Commands:
  [time]                     Print time required to boot the machine
  blame                      Print list of running units ordered by
                             time to init
  critical-chain [UNIT...]   Print a tree of the time critical chain
                             of units
  plot                       Output SVG graphic showing service
                             initialization
  dot [UNIT...]              Output dependency graph in dot(1) format
  dump                       Output state serialization of service
                             manager
  cat-config                 Show configuration file and drop-ins
  unit-files                 List files and symlinks for units
  unit-paths                 List load directories for units
  exit-status [STATUS...]    List exit status definitions
  capability [CAP...]        List capability definitions
  syscall-filter [NAME...]   List syscalls in seccomp filters
  filesystems [NAME...]      List known filesystems
  condition CONDITION...     Evaluate conditions and asserts
  verify FILE...             Check unit files for correctness
  calendar SPEC...           Validate repetitive calendar time
                             events
  timestamp TIMESTAMP...     Validate a timestamp
  timespan SPAN...           Validate a time span
  security [UNIT...]         Analyze security of unit
  inspect-elf FILE...        Parse and print ELF package metadata

Options:
     --recursive-errors=MODE Control which units are verified
lines 1-33

Теперь мне нужно проскролить через клавиатуру, потому что колесико мышки заработает только после того как я проскролю клавиатурой… Что мешает сразу весь вывод дать? Можно это как-то поменять?

 

Panika
()

Темы для grubx64.efi

В прошлый раз я разобрался с шифрованым boot. В результате получил одинокий grubx64.efi, лежащий на esp разделе. Потом я решил все это дело облагородить и поставил тему для grub, но она применяется только на самом grub. То есть, запущеный grubx64.efi выглядит как консольный граб без темы, после ввода пароля появляется выбор систем и тема.

Внимание вопрос: можно ли как-то применить тему к самому grubx64.efi? Т.е чтобы экран с запросом пароля не выглядел так убого?

 

Panika
()

Запустался с Grub

Арчеводы у себя в документации пишут:

Tip: You can use grub-improved-luks2-gitAUR that has been patched for LUKS2 support.

Значит ли это, что дальнейшие шаги по созднию grub-pre.cfg не нужны для этого случая и достаточно просто поставить этот пакет и создать конфиг граба? Еще какие-нибудь шаги нужно сделать?

И еще. Он для UEFI или с BIOS он тоже нормально работает?

И еще: как мне его поставить-то? Он лежит в aur, а для установки от туда нужен yay или paru, которые не собираются потому что makepkg запускается от root. Других пользователей еще нет, потому что я на этапе установки. Как его поставить?

 

Panika
()

Муки разметки

Хочу установить систему, используя полное шифрование дисков. Моя текущая разметка выглядит следующим образом:

/dev/sda1    boot
/dev/sda2    /
/dev/sda3    home
/dev/sdb1    storage

Это SSD, на котором настроены ссылки для больших файлов на HDD.

Сначала я хотел использовать такую же разметку, но подумал, что это плохая идея, потому видно, где boot, /, home, что может как-то помочь злоумышленику. В идеале, я хочу получить что-то вроде:

/dev/sda1 LUKS
/dev/sdb1 LUKS

Первое, о чем я подумал – это настроить LVM в LUKS контейнере, но как грамотно добавить туда sdb1, чтобы это работало также как и сейчас. Или может LVM избыточен для моего случая и есть способ проще и лучше?

От шифрования отказываться не собираюсь, как и от желания «спрятать» boot, /и home из разметки.

 ,

Panika
()

RSS подписка на новые темы