LINUX.ORG.RU

Сообщения mr-badguy

 

OpenVPN: Использовать VPN только для адресов из списка?

Помогите плиз настроить следующую хотелку:

Дано:

  • роутер с OpenWRT 15.05 (TP-Link 1043ND) + OpenVPN клиент, подключен к провайдеру через PPPoE
  • VPS c работающим OpenVPN сервером + клиентский openvpn конфиг, проверенно работающий в винде и убунте.
  • Я не админ, с iptables и сопутствующими утилитами знаком весьма поверхностно

Хотелки:

  • настроить OpenVPN клиент на роутере так, чтобы весь исходящий трафик, за исключением списка адресов, отправлялся по дефолтному маршруту (через интерфейс провайдера), а трафик из списка нужно отправлять через vpn интерфейс. Список большой и обновляемый, может представлен в виде текстового файла (или переменная в баш, не суть важно)

 ,

mr-badguy
()

Тачскрин + мышь одновременно. XOrg < 7.5

Собственно вопрос как сделать сабж? Целевая система SLED 11 SP1 (т.е. там MPX еще нету). Нужно чтобы на одном десктопе (2 монитора, горизонтально расположенные, т.е. монитор + тачскрин) этот самый тачскрин не оказывал влияние на основной курсор (на тачскрине будет крутиться полноэкранное приложение).

mr-badguy
()

SUSE Enterprise Linux 11 SP2 vs OpenSuse

Приветствую,

Существует ли релиз OpenSuse бинарно совместимый с SUSE Enterprise Linux 11 SP2? Требуется собрать rpm с проприетарным приложением, изучается возможность сделать это на OpenSuse (устанавливать SUSE Enterprise Linux очень не хотелось). Приложение на Qt.

 ,

mr-badguy
()

[OpenSuse 10.3] Запустить приложение, собранное под OpenSuse 11.4

Сабж. Т.е. имеется машина с таким древним дистрибутивом, имеется приложение на Qt 4.7.х (не opensource). На машине Qt 4.3, в приложении использованы API, появившиеся в более новых версиях. Обновить Qt (да и вообще систему) там нельзя.

Задача собрать приложение так, чтобы оно там запустилось. Клал в один каталог бинарник + Qt (so-шки), собранный на OpenSuse 11.4, при запуске ругается «version 'GLIBC_2_9' not found...»

На таргет машине glibc 2.6.1, ядро 2.6.22.

Правильно ли я понимаю, что если собрать приложение + Qt статически, то оно так же не запустится?

В общем присоветуйте как можно проблему решить?

mr-badguy
()

[QtWebKit][Ubuntu 10.04, 11.04] @font-face, хрень с жирным шрифтом

Столкнулся с непонятной проблемой: Есть приложение, использующее QWebView для отображения веб-контента. Выяснилось, что под Убунтой (10.04, 11.04) есть проблема с веб-шрифтами: шрифты, определенные через @font-face как bold, отображаются как обычные.

тестовая страница:

<html><head>
        <title>Font test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style type="text/css">

            body {
                margin:0;
                padding:0;
                background-color:white;
                color:black;
                -webkit-font-smoothing: antialiased;
            }

            
            @font-face{  
                font-family:'LiberationRegular';  
                src:url('LiberationSerif-Regular.ttf');
            }
            

            @font-face{  
                font-family:'LiberationBold';  
                font-style:bold;
                src:
                /*local('Liberation Serif'), */
                url('LiberationSerif-Bold.ttf');
            }

        </style>

    </head>
    <body>
        <p style="font:normal 30px Times New Roman;width:700px;">
        (TimesNewRoman) Lorem Ipsum is simply dummy text of the printing and typesetting 
        industry.
        </p>
        <!--if uncomment this, all texts become normal(not bold) in Windows; in Ubuntu it's always normal!!!
        <p style="font:normal 30px LiberationRegular;width:700px;">
        (LiberationSerifRegular) Lorem Ipsum is simply dummy text of the printing and typesetting 
        industry.
        </p>
        -->

        <p style="font:bold 30px LiberationBold;width:700px;">
        (liberationSerifBold) Lorem Ipsum is simply dummy text of the printing and typesetting 
        industry.
        </p>

    </body>
</html>

Если раскомментировать local('Liberation Serif'), то все ок, т.е. локальные (установленные) шрифты отображаются правильно. Кроме своего приложения проверял на Arora, browser из Qt Demos, fancybrowser из Qt examples - одинхер. Проверял на разных версиях Qt: 4.7.2, 4.7.3, 4.7.4, 4.8.0 - одинхер.

Под вендой (Qt 4.7.3 MSVC), если закоментировать параграф с LiberationRegular, все ОК. Если раскомментировать - жирность пропадает.

Под хромом и файрфоксом все хорошо.

Это нужно постить в кутэшный багтрекер или я что-то не так делаю??

Ссылка на архив со страницей и шрифтами

 

mr-badguy
()

[Ubuntu 11.04] Список последовательных девайсов

В старой убунте (10.04) делал так:

#! /usr/bin/env python
import dbus
bus = dbus.SystemBus()
hwmanager = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
hwmanager_i = dbus.Interface(hwmanager, 'org.freedesktop.Hal.Manager')
udis = hwmanager_i.FindDeviceByCapability("serial")

for udi in udis:
	dev = bus.get_object( 'org.freedesktop.Hal', udi)
	dev_i = dbus.Interface(dev, 'org.freedesktop.Hal.Device' )
	print ("device = %s" % (dev_i.GetProperty("serial.device")))
	device_properties = dev_i.GetAllProperties()
	for dp in device_properties:
		print ("\tproperty '%s' = '%s'" % ( dp, device_properties[dp] ))

В новой убунте хала как я понял нет. Как теперь получить список последовательных устройств?

mr-badguy
()

[Ubuntu 11.04 + Compiz + Firefox] Тормоза

Наблюдаю тормоза при перетаскивании окон в такой связке. Т.е. до запуска файрфокса все нормально, как только файрфокс запущен - тормоза при перетаскивании окон (любых). Что в юнити, что в гноме - одинаково. Реально починить?

Железо - ноут samsung r560 (c2d p8400, nvidia 9600gs) драйвер - nvidia-current 275.19

mr-badguy
()

QWidget, showFullScreen()

Доброго времени суток.

Есть виджет, который в определенное время должен занять весь экран, без заголовка, закрыть все панели (как полноэкранный режим в в огнелисе, например). showFullScreen() подходит, но за одним исключением: это виджет должен уметь показывать экранную клавиатуру(использую matchbox-keyboard), и в таком режиме ее как раз не видно. Пробую в убунте: metacity или compiz - одинаково. Как научить клавиатуру показываться перед виджетом?

Клавиатуру показываю/скрываю по тупому - старт/стоп процесса. Она умеет запускаться в режиме демона, но как ей управлять - хз. В гугле не нашел.

mr-badguy
()

Как получить событие о сбое ввода-вывода носителя?

Сабж. Есть ли какой стандартный интерфейс для этого?

Например, есть USB флеш накопитель, который со временем может выйти из строя (предел циклов записи). Процесс, работающий с таким носителем, на вызовах fwrite уходит в zombie или Uninterruptible sleep.

В сислог ядро выводит что-то типа:

Mar 16 09:11:26 hostname [   97.658780] sd 2:0:0:0: [sdb] Add. Sense: No additional sense information
Mar 16 09:11:26 hostname [   97.667873] sd 2:0:0:0: [sdb] Sense Key : No Sense [current]

Можно ли как-то поймать в юзерспейс приложении подобное событие? Или тупо мониторить сислог на предмет этого?

mr-badguy
()

[qt4.5.1][QTreeWidget][Selection]

Привет. Делаю что-то вроде редактора свойств для неких элементов. Слева QTreeWidget, справа собственно редактор. В слоте

currentItemChanged(current, previous)
обрабатываю смену айтемов: из редактора записываем данные в previous, загружаем в редактор из current. Если в prеvious после редактирования оказываются семантически невалидные данные, то необходимо сигнализировать это и сделать невозможным выбор другого айтема. Делаю так:
editor->setItemData( item );  //setItemData выставляется item'у признак валидности
if( !item->isValid() ) { //item - моя структура данных
       SHOW_CRITICAL_ERROR_MSG( "Ошибка", "Что-то неправильно" );
       ui->treeWidget->blockSignals( true );
       ui->treeWidget->setCurrentItem( previous, 0, QItemSelectionModel::Clear );
//           ui->treeWidget->selectionModel()->clearSelection();
            
       ui->treeWidget->blockSignals( false );
       previous->setSelected( true ); //QTreeWidgetItem, связанный с item
       return;
}
При навигации по дереву с помощью клавиатуры все работает правильно. А вот если мышкой выбрать другой айтем, то он ( другой ) оказывается выделенным( темный background ). Что я делаю не так? С флагами в setCurrentItem(...) игрался, требуемого поведения добиться не удалось. clearSelection() тоже не помогает.

mr-badguy
()

[qt 4.5.x] Выделение неактивного (disabled) QTreeWidgetItem'a

После переезда на версию 4.5.1 с удивлением обнаружил, что отключенные QTreeWidgetItem'ы более не выбираются, хотя в версии 4.4.3 выбирались(бэкграунд отображался неактивным цветом), флаг Qt::ItemIsSelectable установлен . При навигации по дереву с помощью клавиатуры отключенные item'ы просто пропускаются (в версии 4.4.3 курсор ходил по отключенным item'ам).

Есть ли какой простой способ вернуть старое поведение disabled QTreeWidgetItem'ам или это теперь руками придется делать?

mr-badguy
()

[Qt4] Символы в QLabel

Есть необходимость отображать символы (символ градуса например, &deg) в QLabel. Пытаюсь запихать это в <html>&deg</html> - вижу "&deg". Вышел из положения копипастом символа из браузера, но подозреваю что это сильно неправильно. Как заставить QLabel правильно отображать символы? Или он так не умеет?

mr-badguy
()

[Qt4] QTreeWidget - как запретить редактирование item'ов в определенных столбцах?

сабж.

Можно ли как попроще сделать (не изобретая лисапедов)? Для редактирования данных в нужных столбцах использую делегаты, установленные с помощью setItemDelegateForColumn(). Для столбцов, где делегаты не установлены, запускаются дефолтные редакторы. Можно это отключить как-нибудь? Обрабатывать сигналы itemClicked()/itemDoubleClicked() и потом editItem()?

mr-badguy
()

KDE4 + Konsole + [Shift+Tab] не работает

Народ, научите как настроить Shift+Tab в konsole(2.1), KDE(4.1.3)? Использую этот хоткей в vim'e для переключения между хидером и исходником, в консоли от 3-их кед работало, тут нет.

mr-badguy
()

как правильно завернуть ввод/вывод консольного приложения в сокет.

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

Исходники доступны, поэтому сделал следующее (изврат конечно, но..) :
   
for (;;) {
    	connfd = accept (listenfd, (struct sockaddr*) &servaddr, (socklen_t*) &len);
    	if (connfd < 0) {
    		perror("accept");
    		close(connfd);
    		close(listenfd);
    		exit(1);
    	}
        dup2(connfd , STDIN_FILENO);
        dup2(connfd, STDOUT_FILENO);
        dup2(connfd, STDERR_FILENO);
        close(connfd);
    	while ( (buff = readline("> "))  &&  ( 0< strlen(buff)) ) {
        error = luaL_loadbuffer(L, buff, strlen(buff), "line") 
                        || lua_pcall(L, 0, 0, 0);
// Здесь используется Lua для распарсивания ввода юзера и вызова 
//соответствующих команд (функций) настоящего шелла. Т.е. Lua 
//используется в качестве некоего враппера для функций шелла.

       }

}

Шелл запускается функцией (скажем iocsh()), функция блокирующая.
выход из этой функции в данном случае == останов программы.

Т.е. вышеприведенный readline это замена настоящему шеллу. 

Вопрос в том, как обеспечить требуемый функционал (отдать шелл 
удаленно) и не делать подобных костылей. Параллельный сервер не 
требуется, т.е. одновременно один клиент. Вариант с netcat'oм не катит, т.к. приложение должно работать не зависимо от того, 
подсоединился ли клиент, т.е. общение с клиентом посредством шелла 
это вторичная задача. Направьте в правильном направлении плз.

ЗЫ Опыта разработки под *nix мало...

>>>

mr-badguy
()

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