LINUX.ORG.RU

Сообщения Pravorskyi

 

Как правильно создать ebuild с версией «2.5.0-b.9»?

Есть библиотека, промежуточные тестовые версии которой выглядят как «2.5.0-b.9». Как правильно именовать ebuild с такой версией, и потом распарсить в EAPI 7?

Трудность именно в суффиксе. Я так понял, в суффиксе не могут быть точки? Нужно разделить «b» и «9», чтобы потом при формировании URL можно было между ними поставить точку. Если записать просто «b9», то неочевидно, как это можно надёжно парсить, нет гарантий, что потом не будет версии «2.5.0-b2.9». Если нет лучшего решения, то придётся записать «b9» вместе и потом вытаскивать отдельно числа, отдельно буквы. Можно внутри ебилда держать отдельную переменную с нужным суффиксом, но хардкод тоже не хочется делать.

Пробовал:

odb-2.5.0-b.9.ebuild
odb-2.5.0_pre_b.9.ebuild
odb-2.5.0_pre_b_9.ebuild

 ,

Pravorskyi
()

Как вернуть стиль «Plastique» в Qt5?

К сожалению, стиль Plastique убрали из Qt5. Сейчас пользуюсь Breeze, но он мне не очень нравится. Fusion тоже. Как можно вернуть старый стиль с минимальными усилиями? Знаю, что можно портировать или переделать плагин QStyle, но, может, кто-то уже занимался этим.

В репозитории не нашёл, в интернете нашлись только старые плагины и статьи про удаление Plastique.

 , ,

Pravorskyi
()

Разбор конфигурационного файла виджетов KDE Plasma

Делаю автонастройку рабочего места с DE KDE 5, пока в виде скрипта, потом планирую перевести на Ansible.

Дошла очередь до настройки виджетов на рабочем столе, и тут я выпал в осадок, как сделали конфигурационный файл. ИЧСХ, это не наследие былых времён, а относительно недавно в который раз переписанная среда. В общем, вместо красивого и лаконичного декларативного описания, с нормальными иерархиями, конфигурационный файл виджетов сделан в формате INI и выглядит так:

[ActionPlugins][0]
MidButton;NoModifier=org.kde.paste
RightButton;NoModifier=org.kde.contextmenu
wheel:Vertical;NoModifier=org.kde.switchdesktop

[ActionPlugins][1]
RightButton;NoModifier=org.kde.contextmenu

[Containments][1]
activityId=5aea47af-243c-44ed-8464-71579ca4509f
formfactor=0
immutability=1
lastScreen=0
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image

[Containments][1][Configuration]
PreloadWeight=0

[Containments][1][Wallpaper][org.kde.image][General]
Image=DebianTheme

[Containments][14][General]
extraItems=org.kde.plasma.notifications,org.kde.plasma.networkmanagement,org.kde.discovernotifier,org.kde.plasma.devicenotifier,org.kde.plasma.mediacontroller,org.kde.plasma.battery
knownItems=org.kde.plasma.notifications,org.kde.plasma.volume,org.kde.kdeconnect,org.kde.plasma.networkmanagement,org.kde.plasma.clipboard,org.kde.discovernotifier,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.mediacontroller,org.kde.plasma.battery
showAllItems=true

[Containments][42]
activityId=
formfactor=2
immutability=1
lastScreen=0
location=4
plugin=org.kde.panel
wallpaperplugin=org.kde.image

[Containments][42][Applets][43][Configuration][General]
favoritesPortedToKAstats=true

[Containments][42][Applets][44]
immutability=1
plugin=org.kde.plasma.pager

[Containments][42][Applets][44][Configuration]
PreloadWeight=34

[Containments][42][Applets][45]
immutability=1
plugin=org.kde.plasma.taskmanager

[Containments][42][Applets][45][Configuration]
PreloadWeight=34

[Containments][42][Applets][45][Configuration][ConfigDialog]
DialogHeight=836
DialogWidth=933

[Containments][42][Applets][45][Configuration][General]
groupingStrategy=0
launchers=applications:org.kde.konsole.desktop,applications:firefox.desktop

[Containments][42][Applets][46]
immutability=1
plugin=org.kde.plasma.systemtray

[Containments][42][Applets][46][Configuration]
PreloadWeight=59
SystrayContainmentId=47

[Containments][42][Applets][48]
immutability=1
plugin=org.kde.plasma.digitalclock

[Containments][42][Applets][48][Configuration]
PreloadWeight=64

[Containments][42][Applets][58]
immutability=1
plugin=org.kde.plasma.kicker

[Containments][42][Applets][58][Configuration]
PreloadWeight=100

[Containments][42][Applets][58][Configuration][General]
favoritesPortedToKAstats=true

[Containments][42][Applets][58][Shortcuts]
global=Alt+F1

[Containments][42][Applets][59]
immutability=1
plugin=org.kde.plasma.digitalclock

[Containments][42][Applets][59][Configuration]
PreloadWeight=54

[Containments][42][Applets][59][Configuration][Appearance]
lastSelectedTimezone=UTC-07:00
selectedTimeZones=UTC-07:00
showDate=true
showLocalTimezone=true

[Containments][42][Applets][59][Configuration][ConfigDialog]
DialogHeight=540
DialogWidth=720

[Containments][42][ConfigDialog]
DialogHeight=84
DialogWidth=1920

[Containments][42][Configuration]
PreloadWeight=34

[Containments][42][General]
AppletOrder=58;44;45;46;59;48

[Containments][47]
activityId=
formfactor=2
immutability=1
lastScreen=0
location=4
plugin=org.kde.plasma.private.systemtray
wallpaperplugin=org.kde.image

[Containments][47][Applets][49][Configuration]
PreloadWeight=42

[Containments][47][Applets][50][Configuration]
PreloadWeight=42

[Containments][47][Applets][51][Configuration]
PreloadWeight=42

[Containments][47][Applets][52]
immutability=1
plugin=org.kde.kdeconnect

[Containments][47][Applets][52][Configuration]
PreloadWeight=39

[Containments][47][Applets][53][Configuration]
PreloadWeight=42

[Containments][47][Applets][54]
immutability=1
plugin=org.kde.plasma.notifications

[Containments][47][Applets][54][Configuration]
PreloadWeight=54

[Containments][47][Applets][55]
immutability=1
plugin=org.kde.plasma.devicenotifier

[Containments][47][Applets][55][Configuration]
PreloadWeight=84

[Containments][47][Applets][56]
immutability=1
plugin=org.kde.plasma.battery

[Containments][47][Applets][56][Configuration]
PreloadWeight=31

[Containments][47][Applets][57]
immutability=1
plugin=org.kde.plasma.networkmanagement

[Containments][47][Applets][57][Configuration]
PreloadWeight=34

[Containments][47][ConfigDialog]
DialogHeight=540
DialogWidth=720

[Containments][47][Configuration]
PreloadWeight=34

[Containments][47][General]
extraItems=org.kde.plasma.notifications,org.kde.kdeconnect,org.kde.plasma.networkmanagement,org.kde.plasma.devicenotifier,org.kde.plasma.battery
knownItems=org.kde.plasma.notifications,org.kde.plasma.volume,org.kde.kdeconnect,org.kde.plasma.networkmanagement,org.kde.plasma.clipboard,org.kde.discovernotifier,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.mediacontroller,org.kde.plasma.battery
showAllItems=true

[Containments][9][General]
AppletOrder=10;11;15

[General]
immutability=1

[ScreenMapping]
itemsOnDisabledScreens=

Например, я хочу изменить настройки панели задач, отображать только задачи с текущего рабочего стола.

Для этого мне нужно в секцию [Containments][42][Applets][45][Configuration][General] добавить параметр showOnlyCurrentDesktop=true Но эти ID динамически генерируются во время создания конфигурации. Нужно найти апплет с плагином org.kde.plasma.taskmanager Это выглядит так:

[Containments][42][Applets][45]
immutability=1
plugin=org.kde.plasma.taskmanager
Я узнаю, что ID апплета 45 и он находится в Containments с ID 42.

Я сталкивался с иерархиями в INI в виде [A/B/C], но я не видел [A][A_ID][B][B_ID], и какие парсеры смогут по найденому параметру выдать список групп в правильном порядке.

Какие есть идеи, как с этим вообще работать?

 , , ,

Pravorskyi
()

Новый Chrome будет автоматически привязывать браузер к обнаруженным учёткам на GMail/YouTube без спроса

Начиная с Chrome 69 компания Google унифицировала использование учётной записи в системе синхронизации браузера и на сайтах Google. Например, если пользователь подключился к Gmail или YouTube, то Chrome автоматически привяжется к этой учётной записи, хочет того пользователь или нет.

Представители Google объясняют появление функции автоподключения к учётной записи заботой о приватности пользователей в условиях работы с одним браузером разных людей.

А я напоминаю, что в FireFox такой ерунды нет. Обращайтесь к лучшим дилерам за своей копией FireFox: Debian и GNU.

 , ,

Pravorskyi
()

IDE для Perl в 2018 году

Что хочется от IDE:

  • Семантическая подсветка синтаксиса (обычная есть почти везде).
  • Быстрая навигация по дереву проекта.
  • Быстрая навигация по структуре проекта (по классам, модулям, и т.д.).
  • Быстрая навигация по функциям внутри скрипта или модуля.
  • Возможность прикрутить статический анализ и внешние скрипты.
  • Автодополнение.

Сейчас пользуюсь Geany, раньше использовал Emacs, jEdit, и ещё в 2012 году Eclipse + EPIC, но для него нужно было гигабайты ОЗУ, тогда это была проблема, сейчас имеется 16 Гб ОЗУ, и можно попробовать опять.

Но прежде, чем опять экспериментировать, хотелось бы услышать ваши мнения.

 , ,

Pravorskyi
()

Beautifier и code style formatter для Perl

Какие современные свободные beautifier'ы и code style formatter'ы есть для Perl? Желательно с семантическим разбором, а не по ключевым словам и символам.

Нужна работа оффлайн, потому что планирую прикрутить к хукам git и continuous integration, поэтому online инструменты не подходят.

Я нашёл пока такое:

P.S. Не хватает тега «code style»

 , ,

Pravorskyi
()

Как сейчас обстоят дела с GNU/Linux и Dual Graphics на ноутбуках (AMD integrated/AMD discrete)?

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

Остановился на Asus X550IK (X550IK-DM016)

15.6" (1920x1080) Full HD, матовый/AMD FX-9830P (3.0 - 3.7 ГГц)/RAM 16 ГБ/HDD 1 ТБ + SSD 128 ГБ/AMD Radeon RX 560, 4 ГБ/без ОД/LAN/Wi-Fi/Bluetooth/веб-камера/Endless OS/2.45 кг/чёрный

У него дискретное видео AMD Radeon RX 560 и интегрированное Radeon R7 series.

Как в 2018 году происходит переключение между видеокартами AMD и насколько это хорошо работает?

В принципе, меня бы устроило полное переключение только на дискретную видеокарту, интегрированная мне не нужна совсем.

 , ,

Pravorskyi
()

Несколько ОС на Android-based смартфоне, LVM и шифрование

Привет, ЛОР!

Впервые стал обладателем смартфона новее 2008 года, а именно Xiaomi Redmi Note 4 (2017). Хотя с Android я и раньше имел дела, но в основном в эмуляторе.

Пока что он лежит без дела в ожидании аксессуаров. В планах снести штатную MIUI и установить Lineage OS. Также интересно потестировать Plasma Mobile на postmarketOS и в некотором будущем PureOS.

Возникло несколько вопросов:

Что лучше использовать для установки нескольких ОС? Можно ли устанавливать одновременно несколько не-Android-based ОС?

Какой recovery выбрать — ClockworkMod или TWRP? Или для GNU/Linux (postmarketOS) нужны особые?

Также хочу настроить full disk encryption, не будут ли несколько ОС конфликтовать? В принципе, Android можно завести на LVM, так что можно было бы сделать отдельные LV или даже VG, но я пока не знаю, насколько трудоёмкий этот процес для нескольких ОС.

 , , , ,

Pravorskyi
()

Возможен ли параметризированный поиск в Mediawiki и фильтрация по ключам из описания?

Конкретное описание проблемы:

Хочу вытаскивать из Wikipedia все статьи из раздела «Moble phones», где в описании есть параметр «Memory», и фильтровать по этому параметру.

Например, в этой статье есть поле «Memory» https://en.wikipedia.org/wiki/Nokia_3210 в произвольном виде.

Для поиска по разделам и подразделам есть параметры incategory: и deepcategory:.

Фильтрацию по значению параметра можно делать уже отдельным скриптом, если иметь ссылки на статьи и само значение.

А вот как извлечь именно статьи, которые содержат слово-ключ «Memory» в описании и его значение?

P.S. Недостаток информации в Wikipedia могу пополнять самостоятельно, всё равно нужно проверять каждую модель по официальной документации.

 ,

Pravorskyi
()

Что это за устройство?

В рамках очистки жилплощади и гаража от ненужных вещей нашёл вот такое устройство:

https://dump.bitcheese.net/files/papolez/20180111_009.jpg

https://dump.bitcheese.net/files/nutujid/20180111_010.jpg

https://dump.bitcheese.net/files/xoxoxeh/20180111_011.jpg

Что это?

Чем оно (целиком или отдельные запчасти) может быть кому-либо полезным (кроме сдачи в металлолом)?

 ,

Pravorskyi
()

Поиск аккумулятора на замену для смартфона Krüger&Matz MOVE 6S

Вздулся аккумулятор в смартфоне Krüger&Matz MOVE 6S. Стоимость пересылки и ремонта в официальном сервис-центре будет сопоставима со стоимостью нового смартфона, так что единственный вариант спасти девайс — заказать аккумулятор и самостоятельно заменить. Как он попал мне в руки — отдельная история.

Для галочки я отписал в саппорт Krüger&Matz письмо с вопросом, где взять замену, но надежды мало, скорее всего будет отписка, что ремонт и замена производится только в официальном сервис-центре, ну да ладно, хотя бы пусть знают, что у покупателей существует проблема с поиском запчастей.

Габариты: официальных размеров не нашёл, мои замеры гнезда под аккум дали примерно 95x37мм, но там аккумулятор вместе с «мозгами».

В моем смартфоне на аккумуляторе не было никаких маркировок, кроме IMEI, названия Krüger&Matz MOVE 6S и маркировки KM0444, что тоже обозначает модель смартфона, но не аккумулятора.

В инете нашёл видео со снятием крышки с модели Krüger&Matz MOVE 6 https://www.youtube.com/watch?v=jpnD04e-5no. Внешне аккумулятор очень похож по размерам, но я не знаю, на самом ли деле они идентичны по габаритам. Вот стоп-кадры, на которых есть маркировка самого аккумулятора: https://imgur.com/a/R4iwL (https://i.imgur.com/Cyn1rOX.jpg, https://i.imgur.com/DMttMJI.jpg, https://i.imgur.com/iYsNM8T.jpg).

Но даже по этим маркировкам мне удалось найти лишь аккумы похожих габаритов (меньше на пару мм) для iPhone 4, с емкостью 1420mAh. Я пока не разобрался, можно ли его взять на замену, для iPhone 4 идёт какой-то специфичный разъем, а в случае Krüger&Matz MOVE 6(S) от мозгов аккумулятора было лишь два провода - плюс и минус.

 , ,

Pravorskyi
()

NoScript готов для Firefox Quantum

Выпустили версию NoScript на базе WebExtension, без XUL. Таким образом пользователи нового Firefox Quantum смогут вновь пользоваться популярным инструментом блокирования нежелательного JavaScript-кода и предотвращения атак.

Немного копипасты с opennet:

Кроме перехода на WebExtension в новой версии NoScript реализована система блокирования скриптов на основе ограничений на загрузку ресурсов, определённых через правила CSP (Content Security Policy). Также рализован фильтр для противодействия XSS-атакам, учитывающий запросы через асинхронный API webRequest, и возможность по мере работы построения белого списка межсайтовых запросов. В режимы DEFAULT, TRUSTED, UNTRUSTED и CUSTOM добавлен блокировщик активного контента. При этом, в связи с отсутствием в API WebExtension некоторых необходимых для работы возможностей, функциональность NoScript 10 пока отстаёт от прошлых выпусков, например, пока нет поддержки ClearClick (защита от Clickjacking) и ABE (Application Boundaries Enforcer, защита от CSRF). 

Что там ещё осталось портировать из популярных аддонов?

 ,

Pravorskyi
()

Какой вы представляете себе удобную десктопную программу для инвентаризации? [Форк R6 Home Inventory]

Привет, ночной ЛОР! В качестве очередного pet-project решил сделать и развивать форк R6 Home Inventory для своих нужд и для сообщества.

К сожалению, я не смог найти рабочих актуальных контактов автора и связаться с ним.

Имя: Chris Roland
e-mail: support@r6software.com (не рабочий)
Сайт: http://www.r6software.com (не рабочий)
Компания: 2006 R6 Software, LLC

Может, можно как-то по компании (если она не выдуманная) найти актуальные контакты человека?

Вкратце о проекте: приложение позволяет вести инвентаризацию вещей, предполагаю, что автор вдохновлялся Attic Manager или аналогами. У меня есть подозрения, что на sourceforge выложена не последняя версия R6 Home Inventory, но у автора спросить нет возможности. Последний доступный код почти не пригоден к использованию в реальной жизни, но костяк программы кое-какой есть. Пару мест пофиксить и постепенно рефакторить, и что-то да получится.

Теперь о главном: какие идеи будут и пожелания?

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

Что запланировано:

  • Переход на Qt5.
  • Переход на CMake. Может, в будущем добавим или перейдем на QBS.
  • Переход на GPLv3+ (сейчас GPLv2+).
  • Миграция с QtSql на ODB.
  • Поддержка UUID для каждой записи и истории изменений, чтобы в будущем сделать возможность слияния или обновления на лету БД. Это позволит легко синхронизировать БД средствами вроде Nextcloud. А вообще нужно посмотреть реализацию у KeePassXC, у них это сделано.
  • Поддержка локализации с помощью Qt Linguist.
  • Поддержка вложенных локаций и вложенных категорий.
  • В качестве локации можно будет выбирать другой предмет (например, чемодан является предметом с торговым названием модели, ценой, характеристиками, но он может в себе хранить тоже предметы).
  • Можно назначать несколько категорий.
  • Можно назначать для предмета несколько локаций, указывая количество в каждой локации (не придётся создавать однотипные предметы для каждой отдельной локации).
  • Отчёты собираюсь генерировать через темплейтный движок. Будет набор готовых шаблонов, и можно будет писать свои. Сейчас там реализация топорная и примитивная, вручную через строки.

Пока только десктоп. Мобильные версии может быть будут позже.

 ,

Pravorskyi
()

Нужна помощь в редактировании ebuild'а для ODB

Привет, ЛОР!

Есть официальный ebuild для C++ ORM — ODB, точнее, для одного из компонентов — libodb.

https://git.btbn.de/gitweb/odb-overlay.git/blob_plain/HEAD:/dev-db/libodb/lib...

Хочу его портировать на EAPI 6, с планами отправить патчи в апстрим и, по возможности, добавить его основное дерево Gentoo.

Знаю, что autotools-utils забанен в EAPI 6.

Ок, а какой eclass в EAPI 6 отвечает за IUSE doc и static-libs?

В чём смысл строки --docdir="${T}", если в каталоге /var/tmp/portage/dev-cpp/libodb-2.4.0/temp никакой документации я не обнаружил?

UPDATE

grep -r static-libs /usr/portage/eclass
Ничего интересного, кроме toolchain-binutils.eclass и autotools-utils.eclass не нашёл, но autotools-utils.eclass забанили в EAPI 6, а toolchain-binutils.eclass никакой другой eclass вроде не инклудит.

 ,

Pravorskyi
()

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