LINUX.ORG.RU

Сообщения MOPKOBKA

 

Есть ли программа для очереди заданий?

Форум — General

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

Писать сам это не собираюсь, хотелось бы что то не васянское, может systemd такое уже умеет?

 

MOPKOBKA
()

Си. Почему бы не запретить запись в стек?

Форум — Development

Решил немного разобраться как работают уязвимости. Как я понял, весомая их часть модифицирует стек.

#include <stdio.h>

register long unsigned rsp asm("rsp");

void print_arg(int arg) {
    ((int*)rsp)[3] = 0xBADC0DE;
    printf("arg = %x\n", arg);
}

int main(int argc, char **argv) {
    print_arg(0xF00D);
    return 0;
}

Этот код отрабатывает и не выводит ошибкок с

-fhardened -fcf-protection=full

На мой взгляд выглядит небезопасно.

Почему бы не вставлять проверки на ассемблере при записи в память, на включаемость в регион стека? Если нужно записать что то в аргумент на стеке (int), то проверку можно не вставлять. При записи по указателю, уже обязательно вставлять. Если адрес стека то ошибка. В memset проверять пересечение двух диапазонов.

Если на стек пишет fread(), то нужно вставить еще проверку на разрешающий диапазон буфера в который он пишет. Но тут компилятору нужно обязательно отслеживать откуда приходит поинтер, но если мы говорим про значения на стеке, то это не должно представлять сложности, значение всегда лежит в прошлых значениях стека, а значит вычислить размер буфера можно в момент компиляции, ну или записать в какую нибудь дополнительную переменную на стеке, если речь о сложном потоке управления и alloca.

void read_file(const char *name)
{
        char buff[999];
        FILE *f = fopen(name, "rb");
        read_block(f, buff);
}

void read_block(FILE *f, char *buff)
{
        // тут компилятор должен вывести что len(buff) == 999
        fread(buff, 1, 9999, f);
}

Что бы все идеально работало, нужно будет:

  • Пометить libc функции
  • Если функция работает со стеком как у меня в верхнем примере, но это правильное поведение, пометить и ее
  • Перекомпилировать основные библиотеки, что бы не ломать ABI можно ввести экспорт двух прототипов, с доп.значениями для проверки диапазонов и без, дублирование прототипов понадобится для малого числа функций

 

MOPKOBKA
()

Orage (программа для организации времени) из Xfce портирована на gtk3

Форум — Desktop

Orage - программа для Xfce для организации времени. Раннее она оставалась на gtk2 и не была доступна для новых версий Xfce.

( читать дальше... )

Подробности

Перемещено hobbit из office

 ,

MOPKOBKA
()

Linux непригоден для просмотра котиков

Форум — Talks

Решил запустить последний RoboCop на Linux, в меню меня встретили фризы в пару секунд, поэтому я побежал в магазин за новой видеокартой, но фризы не прошли, и я поставил Windows, а там тоже самое! Оказалось нужно просто подождать 10-20 секунд, и больше такого не будет, даже при следующем запуске.

Но под протоном испорчены разные вещи, например коты

Proton - https://ibb.co/g7KHmw6

Win - https://ibb.co/6byWNF8

 ,

MOPKOBKA
()

Red Hat угощает Wayland-ом разработчиков Firefox

Форум — Talks

Мартин Странски из Red Hat написал Wayland-Proxy как C++-версию предыдущей экспериментальной концепции, написанной на Rust

Среди ошибок Firefox Wayland одна из самых распространенных ошибок связана с потерей соединения с компоновщиком Wayland. Чтобы справиться с этим, необходимо иметь прокси-сервер между Firefox и компоновщиком Wayland для кэширования сообщений и предотвращения переполнения очереди сообщений компоновщика.

В комментариях разбирают подробнее

Mutter (и, возможно, другие) завершает работу клиента Wayland, если он распознается как зависший. Обычно это означает, что клиент Wayland недостаточно быстро читает сообщения из сокета дисплея Wayland и буфера вывода сообщений компоновщика. заполнено. Это может быть ошибка в самом приложении (цикл событий не обрабатывается) или это вызвано устройствами ввода, такими как мышь с частотой 1000 Гц, которая генерирует слишком много событий.

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

https://www.phoronix.com/news/Wayland-Proxy-Firefox

 

MOPKOBKA
()

ДИН, почему забанили космоспеца?

Форум — Linux-org-ru

Что за причина для бана? Ну зачем так клоунадить, должна быть четкая причина, человек между прочем серьезный.

www.linux.org.ru/people/kompospec/profile

 ,

MOPKOBKA
()

Может ли быть software rendering лучше hardware (сюда отнесу OpenGL) по задержке?

Форум — Development

Можно заметить что без композитора чистые X11 приложения ощущаются намного более отзывчивыми и быстрыми, так же на Windows приложения использующие GDI с выключенным композитингом чувствуются очень хорошо, в чем причина?

Композитинг тормозит из за того что окна выводятся в промежуточные буферы а потом копируются в итоговый?

 ,

MOPKOBKA
()

Debian/Ubuntu собрать Emacs только с gtk (deb)

Форум — General

Делаю

apt source emacs
если выполню
fakeroot rules/binary
то он начнет собирать со всеми фронтендами, а нужно только с gtk. Как мне это указать?

Нужно https://packages.debian.org/buster/emacs-gtk

Собирает:
https://packages.debian.org/buster/emacs-nox
https://packages.debian.org/buster/emacs-gtk

 , ,

MOPKOBKA
()

gtk3, как сделать такую таблицу

Форум — Development

Есть таблица (TreeView) вида

+------+------+------+
| Заг1 | Заг2 | Заг3 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------+------+

Нужно добавить под каждую строку прогресс бар, размером с (Заг1+ Заг2), при этом остальные столбцы должны быть выравнены.

+------+------+------+
| Заг1 + Заг2 | Заг3 |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+------+------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+-------------+------+
| 1234 | 1234 | 1234 |
+------+------|      |
+ #######.... |      |
+-------------+------+

Как это сделать?

 

MOPKOBKA
()

Как научить человека пользоваться компьютером?

Форум — Talks

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

Что можно такому человеку предоставить на русском языке по Linux? С упором на вещи которые можно применять в обычной жизни, то есть лучше что бы не был упомянут chmod, а было упомянуто как перекинуть файлы на флешку, как заполнить форму в LibreOffice итд. Что бы проходились поверхностно, но по нужным вещам.

Я мог бы показать это все сам, но это забывается, а сайт или документ можно посмотреть всегда без меня, и наверное кто то это уже сделал, и мне не надо тратить время.

 

MOPKOBKA
()

А почему у Gtk еще нету официальной React-подобной библиотеки поверх?

Форум — Development

Вот смотрю на то как в Rust делают приложения на Gtk, и очень удивляюсь, неужели кому то нравится писать вручную все эти интерфейсы в императивном стиле? А ведь пишут, еще обходя все проблемы, которые исходят из того что у Gtk свой подход к управлению памятью который на Rust не налазит, как и наследование компонентов, из за чего в Rust пришлось добавлять «классы» через макросы - https://gtk-rs.org/gtk4-rs/stable/latest/book/g_object_subclassing.html

Есть ли какая то проблема в создании libgtk-react, где можно будет описывать интерфейс декларативно, с использованием javascript, с удобным получением данных из C++ или Python части?

Вроде есть какие то библиотеки, но они нигде не используются как я понял.

 , ,

MOPKOBKA
()

NVIDIA, EDID и ttyX, как избавиться от «Вход не поддерживается»?

Форум — Desktop

После установки драйверов nvidia-driver:525, после запуска Xorg, если переключиться в tty монитор писал «Вход не поддерживается», переключение обратно в xorg tty не помогало. После добавления в xorg.conf

Section "Screen"
  Option "UseEDID" "False"
EndSection
Переключение обратно в xorg начало приводить к тому, что xorg нормально отображается. Но в tty все равно «Вход не поддерживается», его я никак после запуска xorg увидеть не могу.

Как я понял, проблема в том что переключение на tty пытается ввести монитор в какой то неправильный режим, но как его сделать правильным?

Пробовал ставить по отдельности и вместе nomodeset, nvidia-drm.modeset=1, nvidia-drm.modeset=0, drm.edid_firmware=edid/custom_edid.bin где custom_edid.bin это то что я сгенерировал находясь в графической сессии с помощью nvidia-settings, но ничего не помогло.

В Wayland вообще всегда нет сигнала, как и в tty, как я понимаю настроив tty я смогу и им пользоваться.

Debian 12, Linux 6.1.0, NVIDIA 525.105.17, RTX 3060 LHR

Монитор https://www.dns-shop.ru/product/483fcc72d53b3332/238-monitor-acer-ka242ybi-ce...

Видеокарта https://www.dns-shop.ru/product/49b77a8077562eb0/videokarta-kfa2-geforce-rtx-...

 , ,

MOPKOBKA
()

Баг в названии опроса

Форум — Linux-org-ru

www.linux.org.ru/vote-vote.jsp?msgid=17134667

Опрос тут называется:

&#171;Рукость&#187; ЛОРовца: какая рука у вас преобладающая?
Напрягают
&#171;
и
&#187;
maxcom

 

MOPKOBKA
()

Какой VPN поставить на сервер?

Форум — General

Однажды я смог настроить PPTP, но теперь не получается, пробовал WireGuard но там какие то интерфейсы, пиры, ключи, вроде переменных меньше, но слишком сложно, я вообще ничего не понял. Для OpenVPN какие то ключи надо делать, конфиги писать, iptables запускать, неужели еще ничего не придумали простого? И что бы NetworkManager поддерживал.

 

MOPKOBKA
()

Как приходят в Kali Linux

Форум — Talks

Многие на ЛОРе жалуются, что люди выбирают Kali Linux просто так первым дистрибутивом, в погоне за любимым персонажем из фильма например, и советуют вместо этого читать книжки о Linux, изучить а там уже приступать. Ну и вот что там написано в этих самых книгах, как раз о той самой установке Kali Linux с нуля!

Страницы из книги

Перемещено hobbit из screenshots

 

MOPKOBKA
()

Docker Compose привязка к домену + порту

Форум — Development

Я часто работаю над несколькими проектами одновременно, смотрю что то в одном, делаю во втором итд, нужно держать их запущенными.

Если все проекты на Apache2 + PHP, без докера, то я бы использовал VirtualHosts, сделал бы для каждого проекта домен, и тестировал бы все там.

А что можно сделать в docker, docker compose из подобного? Идеальным решением было бы привязать docker-compose.yml к домену, что бы:

curl project-a.dev:8080 это /dev/project-a/docker-compose.yml::httpd

curl project-b.dev:8080 это /dev/project-b/docker-compose.yml::httpd

Как это реализовать?

 ,

MOPKOBKA
()

Программа для заметок

Форум — Desktop

С поддержкой синхронизации для Android, и возможностью поставить сервер на своей впске. Что есть? Желательно минималистичное. Возможно достаточно пары утилит и блокнота?

 

MOPKOBKA
()

А за что забанили metaprog?

Форум — Linux-org-ru

Заморозка - понятно. А бан из за чего прилетел сейчас? Верните все взад.

maxcom, hobbit

 

MOPKOBKA
()

Убрать выскакивающие меню в Electron приложениях для Gnome 3

Форум — Desktop

Например в Ubuntu, если использовать приложения на Electron, такие как Skype, VSCode, Atom, OnlyOffice, то можно столкнутся с неприятным багом, когда нажатие Alt+Shift открывает меню.

Как я это исправил:

  • Отключить в настройках все бинды на Alt+Shift, в том числе и переключение раскладки в Gnome Tweaks
  • Создать файл /usr/bin/switch-keyboard-layout.sh
    #!/bin/bash
    LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')
    if [ "$LAYOUT" == "ru" ]
      then `/usr/bin/setxkbmap us`
      else `/usr/bin/setxkbmap ru`
    fi
    
    if [ "$LAYOUT" == "ru" ]; then
      gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
    else
      gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"
    fi
    
  • Сделать
    chmod +x /usr/bin/switch-keyboard-layout.sh
  • В домашнюю папку вписать файл keybinder.py
    #!/usr/bin/env python3
    import subprocess
    import sys
    
    # defining keys & strings to be used
    key = "org.gnome.settings-daemon.plugins.media-keys custom-keybindings"
    subkey1 = key.replace(" ", ".")[:-1]+":"
    item_s = "/"+key.replace(" ", "/").replace(".", "/")+"/"
    firstname = "custom"
    # get the current list of custom shortcuts
    get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
    array_str = get("gsettings get "+key)
    # in case the array was empty, remove the annotation hints
    command_result = array_str.lstrip("@as")
    current = eval(command_result)
    # make sure the additional keybinding mention is no duplicate
    n = 1
    while True:
        new = item_s+firstname+str(n)+"/"
        if new in current:
            n = n+1
        else:
            break
    # add the new keybinding to the list
    current.append(new)
    # create the shortcut, set the name, command and shortcut key
    cmd0 = 'gsettings set '+key+' "'+str(current)+'"'
    cmd1 = 'gsettings set '+subkey1+new+" name '"+sys.argv[1]+"'"
    cmd2 = 'gsettings set '+subkey1+new+" command '"+sys.argv[2]+"'"
    cmd3 = 'gsettings set '+subkey1+new+" binding '"+sys.argv[3]+"'"
    
    for cmd in [cmd0, cmd1, cmd2, cmd3]:
        subprocess.call(["/bin/bash", "-c", cmd])
    
  • Запустить из домашней папки
    python3 keybinder.py 'keyboard layout switch' '/usr/bin/switch-keyboard-layout.sh' '<Alt>Shift_L'
    после чего keybinder.py удалить, или дальше использовать

Можете предлагать свои варианты!

 ,

MOPKOBKA
()

Telegram из tar.gz перестал выводить звук через pipewire 0.3.43

Форум — Desktop

Смотрю через pavucontrol, как выводящее приложение telegram появляется, но полосочка громкости не скачет, но если переключиться на pulseaudio, то и полосочка скачет, и звук играет. Кто сталкивался?

Раньше все вроде норм работало, точную версию с какой перестало играть не знаю.

 

MOPKOBKA
()

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