LINUX.ORG.RU

Сообщения d_a

 

Как правильно удалить Gnome из Fedora 29

На домашнем ПК Fedora 29, установлена была (кажется) с образа Workstation, в общем, тот который с гномом. Некоторое время назад установил Cinnamon

dnf group install cinnamon-desktop-environment

и логинился в него через шестерёнку в GDM. Теперь хочется удалить гном, так как больше не нужен. Сделал

dnf group remove gnome-desktop

но куча гномопакетов осталась

[root@home ~]# rpm -qa gnome\* | wc -l
32

и они висят в меню Cinnamon (‘‘Настройки Gnome’’ и т.д.). Если пытаться удалять гномопакеты поштучно (gnome-shell, gnome-session, …), то dnf хочет удалить gdm и разные xorg-пакеты, и я подозреваю что больше уже не залогинюсь. Как правильно удалить гном и ничего не разломать?

 , ,

d_a ()

Пришло время зарегистрировать свою Fedora

Там это, проект Fedora собирается идентифицировать каждую свою инсталляцию. А делается это, как несложно догадаться, для нашей же с вами пользы.

Пруф http://www.opennet.ru/opennews/art.shtml?num=49926

 

d_a ()

Типы для физических величин на C++: поругайте

Начал пилить некую систему типов для физических величин, где значение величины имеет семантику умножения безразмерного счётчика на абстрактную единицу измерения, чтобы не надо было каждый раз в публичных API вида SetFrequency(int freq) выяснять что же этот int хранит, а также чтобы не давало складывать метры с литрами и записывать результат в секунды (а также метры с километрами без должной конвертации первого или второго). Существующих велосипедов не нашёл, кроме разве Boost.Units, но это страшный overkill, надо чтобы было маленькое и в одном заголовке.

Базовая идея проста и описана в книжке Страуструпа в главе про <chrono> --

template<typename Rep, typename Period = std::ratio<1>>
class X
{
    Rep mCount;
};
 -- сохраняем значение безразмерного счётчика в фундаментальном типе Rep (int, double, etc), а десятичную приставку в виде рациональной дроби держим только в системе типов на этапе компиляции.

Код тут: https://github.com/Jajauma/SIUnits, содрано с std::chrono::duration, остатки libstdc++ ещё не вычистил полностью, так что на MSVC видимо работать не будет (а может и нигде не будет), главый шаблон SI::Units, для демонстрации там же определены типы Frequency и Length и нескучные пользовательские литералы типа _km, _mm и т.д.

 , ,

d_a ()

Лицензии и таскание пакетов из Fedora

Периодически заимствую для себя и для работы спеки пакетов из Fedora, которые потом публикую в интернете, иногда очень сильно переделанными, иногда вообще без изменений. Как правильно сделать это с соблюдением лицензии? (Сейчас просто прикладываю README, в котором написано что это переделанный пакет из Fedora). Из того что нашёл:

https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_...

сказано что спеки по умолчанию имеют лицензию MIT (Expat?). То есть получается надо приложить текст MIT с сохранением первой строчки (copyright). Как узнать кто владеет copyright? Вот например хочу пакетик http://pkgs.fedoraproject.org/cgit/rpms/f2fs-tools.git/log/, туда коммитит 4 человека и 1 робот. Кого вписывать в текст лицензии в copyright?

 , , ,

d_a ()

Наименее инвазивный рутовый шелл на sudo

Хочется иногда удобно получать рутовый шелл, так чтобы сохранить все свои функции из .bashrc и все переменные, включая dbus-ные эндпойнты, DISPLAY, членство в группах, в общем, всё, кроме собственно uid. Пока сделал:

if [[ -z $SUDO_USER ]]; then
    RootShell() {
        sudo -E \
            env HOME="$HOME" PS1="$PS1$On_Red<sudo>$Color_Off " \
            /bin/bash --rcfile "$HOME"/.bashrc
    }
fi

Получилось довольно похоже, но группы не сохраняются:
[d_a@home ~]$ id
uid=1000(d_a) gid=1000(d_a) группы=1000(d_a),10(wheel),18(dialout),135(mock),988(vboxusers),990(wireshark) контекст=unconfined_u:unconfined_r:unconfined_t:SystemLow-SystemHigh
[d_a@home ~]$ RootShell
[root@home ~]# <sudo> id
uid=0(root) gid=0(root) группы=0(root) контекст=unconfined_u:unconfined_r:unconfined_t:SystemLow-SystemHigh
[root@home ~]# <sudo> exit
[d_a@home ~]$ 

У sudo есть ключ -g, но с ним не работает:
[d_a@home ~]$ sudo -E -g \#1000 env HOME="$HOME" PS1="$PS1$On_Red<sudo>$Color_Off " /bin/bash --rcfile "$HOME"/.bashrc
Sorry, user d_a is not allowed to execute '/bin/env HOME=/home/d_a PS1=[\u@\h \W]\$ \e[41m<sudo>\e[0m  /bin/bash --rcfile /home/d_a/.bashrc' as d_a:d_a on home.

Настройка sudo стандартная (%wheel ALL=(ALL) ALL). Конфиг у него очень страшный, хуже только PAM. Можно ли как-нибудь сохранить группы или выкидывать sudo и на чём-то другом делать такой shell?

 , ,

d_a ()

А может выпилим к чёртовой матери автозамены с форума?

Всякие тире, ёлочки дурацкие. Пожалуйста.

Ну совсем же не смешно уже. Ответы вечно разломаны, цитаты вечно разломаны. Сейчас набегут конечно станут орать что типа [code] надо, а цитаты разломанные я как починю? Тоже в [code]? Может тогда по умолчанию сделаем всё в [code], и придём к тому же от чёго пионеры пытались уйти aka plaintext?

[pre] опять же, чем провинился. Зачем вообще делать автозамены в [pre], какой собачий сын это придумал?

Пошёл зашиваться.

d_a ()

Грубое нарушение правил и бездействие модераторов

Это само по себе привычно, и даже самых ньюфагов со стажем от месяца этим уже не удивить. Действительно, несложно догадаться, что у вас круговая порука как у врачей, иначе как и они долго бы вы не держались, и что некоторые посты автоматически получают иммунитет. Ладно. Но ради науки, скажите, нафига вы поставили модерировать какого-то сопляка с двача с блядями и боярами?

www.linux.org.ru/forum/security/13188503?cid=13188507

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

d_a ()

gdbserver: удалённая отладка без заливки файла

Как можно организовать удалённую отладку без постоянного копирования файлика на удалённую машину, т.е. без remote put local-file remote-file? Со стороны target запускаю

gdbserver --multi :2000
, со стороны host
(gdb) target extended-remote <ip>:2000
(gdb) file ./path/to/debug/build
remote put это во-первых долго, во-вторых, на удалённой машине же в принципе может быть некуда его заливать. Нельзя ли как-нибудь файл с локальной машины смапить в озу удалённой? Архитектура одинаковая, ОС одинаковая.

 ,

d_a ()

А куда делися книжечки бесплатные?

В прошлом году уведомления сыпались, а в этом -- нет. Халява кончилась? Издательство обанкротилось?

https://www.packtpub.com/packt/offers/free-learning

Книга дня от PacktPub.com (бесплатно)

d_a ()

XFS сделал файл нулевой длины при выключении

Я за полдня перенёс некоторые пароли и ключи в шифрованный gpg-файлик, сохраняясь почти после каждой строчки. Тут компьютер вырубился (у меня жутко кривая матринка на AMD, потому что я домой хотел сэкономить, никогда больше не буду покупать AMD, и компьютер постоянно барахлит и иногда выключается, иногда не включается). После перезапуска файлик в виме не расшифровался, я пошёл смотреть, а он 0 байт.

CentOS 7, файловая система на устройстве xfs, ядро 4.4.36 ванильное. Это вообще нормально почти в 2017 файл на крэще обнулять? Его же теперь никак не вернуть? В интернетах видел всякие скрипты которые по inode выковыривают чего-то из xfs_db, но у меня ничего не вышло. И на что переходить теперь?

 , ,

d_a ()

Steam под Wine: не отображается web-store и прочие странички

Подтянул 32-битный драйвер для nvidia, 32-битный glvnd, собрал 32-битный wine 1.9.24 (на основе федоровского, но только выкинув compholio). Магазинчик шапок стартует и логинит нормально, также сумел скачать мою игрулю (Trails in the Sky) и продолжить играть с того места, где я оставил под виндой. А вот сама винтрина в магазинчике не заработала, пустое место показывает: http://i.imgur.com/rP0LXVm.png. Пробовал гугулить, пишут что надо запускать с ключом -no-cef-sandbox, но мне не помогло (точнее, с ключом сразу крэшится steamwebhelper.exe).

Система CentOS 7 x86_64, если кому важно.
Ругань http://pastebin.com/d3vsFVx9, там кстати что-то про failed to launch child process.

 , , ,

d_a ()

Помогите сочинить регулярное выражение

Суть такова: должно быть срабатывание на любую подстроку не короче одного символа в пределах заданной. Короче говоря, есть строка, например target_link_libraries, нужно чтобы совпадало (match) target, _link_, link_lib, target_link и т.д. и не совпадало всякое прочее qwe, asd и т.д. То есть strstr(3) в общем-то.

Нужно для сниппетов в vim. Например, вот можно написать такой самодокументированный сниппет:

snippet 'target_link_libraries' "TARGET_LINK_LIBRARIES (<TARGET> PRIVATE|PUBLIC|INTERFACE <ITEM1> ... )" br
target_link_libraries(${1:<target>} ${2:PRIVATE} ${3:item1 ...})
endsnippet

Но я же не буду набивать полностью target_link_libraries, чтобы вставился сниппет. Обычно помнишь какую-нибудь подстроку только, например link или target. Хелп читал, на гугле ничего не нашлося.

 ,

d_a ()

СПб, билет на Garbage

Во вторник в СПб выступает Garbage, в клубе на петроградке. У меня оказался второй билет, который не пригодился. Кто-нибудь хочет пойти вместе? С вас компания и хорошее настроение, с меня этот билет и угощения, если там что-нибудь продаётся. Почта в профиле.

PS. Билет в яму.
PPS. Не удаляйте меня, пожалуйста, до понедельника.

 , ,

d_a ()

Не играет радио во всех браузерах

Вот есть один сайт (r-a-d.io), на котором у меня никак не хочеть петь радио. Выглядит так - http://i.imgur.com/p0CB2MB.png, на верхней кнопочке должно быть написано Play Stream, но вместо этого там бесконечно крутится блямба. Браузеры FF 47, 49 и Vivaldi самое последнее.

Система центосная, декодеры прикручиваю сам. Вот сейчас есть gstreamer-{good,bad,ugly}:

$ rpm -qa --qf '%{name}-%{version}\n' '*gstreamer*' | sort
gstreamer-0.10.36
gstreamer1-1.4.5
gstreamer1-devel-1.4.5
gstreamer1-plugins-bad-free-1.4.5
gstreamer1-plugins-base-1.4.5
gstreamer1-plugins-base-devel-1.4.5
gstreamer1-plugins-good-1.4.5
gstreamer1-plugins-ugly-1.4.5
gstreamer1-plugins-ugly-a52dec-1.4.5
gstreamer1-plugins-ugly-cdio-1.4.5
gstreamer1-plugins-ugly-dvdreadsrc-1.4.5
gstreamer1-plugins-ugly-lame-1.4.5
gstreamer1-plugins-ugly-mad-1.4.5
gstreamer1-plugins-ugly-mpeg2dec-1.4.5
gstreamer1-plugins-ugly-opencore-amr-1.4.5
gstreamer1-plugins-ugly-twolame-1.4.5
gstreamer1-plugins-ugly-x264-1.4.5
gstreamer-devel-0.10.36
gstreamer-plugins-bad-free-0.10.23
gstreamer-plugins-base-0.10.36
gstreamer-plugins-base-devel-0.10.36
gstreamer-plugins-good-0.10.31
gstreamer-plugins-ugly-0.10.19
gstreamer-plugins-ugly-a52dec-0.10.19
gstreamer-plugins-ugly-cdio-0.10.19
gstreamer-plugins-ugly-dvdreadsrc-0.10.19
gstreamer-plugins-ugly-lame-0.10.19
gstreamer-plugins-ugly-mad-0.10.19
gstreamer-plugins-ugly-mpeg2dec-0.10.19
gstreamer-plugins-ugly-opencore-amr-0.10.19
gstreamer-plugins-ugly-twolame-0.10.19
gstreamer-plugins-ugly-x264-0.10.19
gstreamer-tools-0.10.36
PackageKit-gstreamer-plugin-1.0.7
phonon-backend-gstreamer-4.6.3

Штатный rhythmbox это радио с ними открывает и играет. FF 49 на Windows XP в соседнем libvirt тоже всё играет нормально. Как выяснить, почему не работает в браузерах на Linux?

 , , , ,

d_a ()

Файловая система для USB HDD

Во что форматировать внешние USB HDD, чтобы не надо было мудохаться с правами на разных машинах? Нужны файлы >4ГБ, симлинки и желательно не через FUSE. NTFS-3G как бы подходит, кроме последнего пункта, exFAT для FUSE тоже существует, но может что получше есть, а то неудобно их таскать, так как на тот же винт их, очевидно, не положишь.

umask 0000, chmod 777 можно не предлагать.

 

d_a ()

Починить dejavu sans на CentOS

В попытке как-то помочь в ситуации с ШГ пересобрал на центосе самые последние библиотеки fontconfig и freetype c BCI/subpixel в отдельную software collection (в штатных либах выключено вообще всё), врубил коллекцию для своего пользователя, настроил по арчевики fonts.conf на свой вкус (сглаживание <12 выкл, хинтинг полный, LCD по умолчанию), стала почти ляпота. Но вот проблема - Dejavu, например, на таких настройках "сломанный" --- пример Gtk, пример Qt. Причём это он именно у меня в центосе сломан, совершенно точно помню, что в виртуалке с дебианом я использовал Dejavu Sans без сглаживания, и там он выглядел правильно, ровно и аккуратно.

Мне, конечно, этот дежавю не сильно критичен, в псевдонимы sans и serif пока Liberation вписал, который работает правильно, но из спортивного интереса хочется разобраться. Вопрос - что ещё надо пересобрать, чтобы Dejavu стал выглядеть правильно (как в дебиане)?

 

d_a ()

Растровые шрифты в Gnome

Как вот этот замечательный шрифт [1] или любой аналогичный растровый, но _не_ моноширинный шрифт из пакета xorg-x11-fonts-cyrillic прикрутить ко всему остальному Gnome и FF/TB? Ибо ttf-мыло, радуга и обгрызанные палки у букв уже в печёнках сидят, сил нет.

В системных диалогах настройки шрифтов никаких слов типа Cronyx или Helvetica, естественно, нет, и самой гарнитуры такой я не нашёл. Ссылку на 70-yes-bitmaps.conf в /etc/fonts.d/conf.d кинул, но это не помогло. Дистриба CentOS 6(.2).

1) http://i.imgur.com/sWWea.png

d_a ()

Пришло время прогревать трактор

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

Подскажите ближайший аналогичный по наполнению и духу международный ресурс типа l.o.r на англ. языке. Не /. Желательно сразу с тем, с чего у нас содрали лурочку (encyclopediadramatica, кажется), для квикстарта.

d_a ()

[qt] Сохранение/восстановление ввода в GUI

tl;dr - как сделать сохранение пользователського ввода в GUI между перезапусками программы?

------------
Пусть окно некоторой программы организовано в несколько вкладок с инпутами, в основном флажки, (радио)кнопки и поля ввода для текста и чисел, а также слайдеры и несколько таблиц. И положим, есть человек, который заполнив все необходимые поля и таблицы и уставив флажки, хотел бы видеть результаты своего труда и после перезапуска программы. Для решения такой банальной задачки есть минимум 3 способа:

1) Используя QSettings API, вручную сохранять и восстанавливать все неообходмые поля по отдельности. Учитывая что параметров, которые нужно таким образом сохранять/восстанавливать, весьма много, этот подход мне не нравится, во всяком случае, до тех пор, пока мне не платят за число строк.

2) Использовать QFormBuilder из libQtDesigner, с помощью методов load()/save() которого можно организовать некое подобие персистентности GUI в целом, во всяком случае в теории, на практике же вёрстанный мною GUI сохраняется неправильно, вложенные layout'ы 2-го и высших уровней «пропадают» и в результате контролы сидят друг на друге.

3) Написать (самому?) некий реккурентный траверс дерева виджетов с интроспекцией и сохранением/восстановлением нужных свойств в зависимости от типа виджета (у полей ввода - текст или числовое значение, у кнопок и чеков - состояние, у таблиц и списков - массивы строк и т.д.). Не то чтобы это было невыполнимо, но есть дела и поинтереснее.

Вероятно, за то время, которое я потратил на гуглёж и написание этого треда, я бы уже реализовал траверс, но тем не менее, в качестве последней попытки, интересуюсь здесь - есть ли ещё способы?

d_a ()

Посещения сайта

Можно меряться ими тут. У меня >16 с половиной тысяч и старый профиль ff, который переезжает со мной с машины на машину. Видеоинструкция для тех, кто вообще ничего не понял - http://www.youtube.com/watch?v=btH5_IgIvls

d_a ()

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