LINUX.ORG.RU

Сообщения Seraph

 

CentOS, древний GCC 4.1.2, вообще левые *.h файлы...

Форум — Admin

Довелось мне за прошедший месяц испытать все радости разработки на Си. Софт написан, органзим измучан, пришло время сборки на сервере. В моей системе все собирается без единого варнинга, -Wall в теме.

Ставить софт нужно на сервер под CentOS 5.7. В ней есть gcc 4.1.2, это последняя версия в репах.

Проблема: При поптыке сборки программы получаю огромный высер от gcc с сообщениями типа:

In file included from /usr/include/pthread.h:24,
                 from app_logger.h:15,
                 from app_rssfeed.c:9:
/usr/include/sched.h:41: ошибка: класс хранения в декларации параметра ‘sched_setparam’
/usr/include/sched.h:44: ошибка: класс хранения в декларации параметра ‘sched_getparam’
/usr/include/sched.h:48: ошибка: класс хранения в декларации параметра ‘sched_setscheduler’
/usr/include/sched.h:51: ошибка: класс хранения в декларации параметра ‘sched_getscheduler’
/usr/include/sched.h:54: ошибка: класс хранения в декларации параметра ‘sched_yield’

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

Может кто сталкивался?

Seraph
()

KDE4 и Я: Segmentation fault у kwin и plasma.

Форум — Desktop

Перелез таки с Gnome3 на KDE4.
Ловлю глюки:
1. Сегфолтится kwin сразу при старте.
2. Сегфолтится plasma при попытке скачать сторонние виджеты.
3. Чувствуется, что окружение нуждается в настройке, пока не получаю удовольствия от работы в кедах, что посоветуете почитать чтобы освоится и, так скажем, персонализировать все это хозяйство.

Кеды ставил, добавив в репы это:
deb http://ftp.debian.org/debian/ experimental main non-free contrib

На борту Debian Sid.

Собственно хочу помощи/соображений по поводу первых, двух пунктов.

Seraph
()

Gnome 3 Classic mode, как готовить?

Форум — Desktop

Приветствую!
Вобщем посидел под стандартным режимом Gnome3, когда начал на компах с виндой тыкаться в верхний угол, чтобы вызвать меню, понял, что пора валить с Gnome3. Перешел в Classic mode, почти Gnome2, только кривее =)

Проблемы, которые хотелось бы решить:
1. Уведомления почему - то на процентов 30 уходят за правую границу экрана. (в dconf не нашел, в параметрах и т.п. тоже, где вобще оно настраивается?)

2. Запарило, что каждый «пук» в любом гномовском приложении сразу же порождает новое уведомление. (прим.: смена трэка в Rhytmbox).

3. Иногда слетает тема GTK, юзаю дефолтную Awaita, при не установленных обстоятельствах тема тупо слетает на какое - то убожество(стандартное, безтемное оформления видимо). Иконки слетают следом.

Помогите кто чем может, натравите меня хоть где рыть =) Собственно сам DE нравится, выбирать особо не из чего. Подумываю предать гнома и вкусить запретный плод KDE, стоит ли?

Seraph
()

mini-httpd и perl скрипты в cgi-bin, сервер отдает код скрипта

Форум — Admin

Доброго времени! Переношу проект со связки nginx + Apache на nginx + php-fpm. В проекте используется код написанный на perl(Uber-Uploader). От гугля узнал, что для запуска perl скриптов мне нужен еще один сервер т.к. nginx пока не дорос до этого функционала. Также гугл сказал что мне нужен mini-httpd. Ну что же, установил, настроил, запрашиваю скрипт а мне выдается исходник. Что делать? =)

Конфиг nginx:

		location ~ .pl$ {
			set                     $referer        $http_referer;
			proxy_set_header        Referer         $referer;
			proxy_set_header        X-Real-IP       $remote_addr;
			proxy_set_header        Host            localhost:9001;
			proxy_set_header        REQUEST_METHOD  $request_method;
			proxy_set_header        REMOTE_USER     $remote_user;
			proxy_set_header        REMOTE_ADDR     $remote_addr;
			proxy_set_header        SERVER_NAME     localhost;
			proxy_set_header        SERVER_PORT     9001;
			proxy_set_header        HTTP_COOKIE     $http_cookie;
			root /var/www/xserver/data/www/b******a.org/;
			gzip off;
			proxy_pass http://127.0.0.1:9001;
		}

Конифг mini-httpd:

# On which port mini_httpd should listen?
port=9001

# Which user mini_httpd should use?
user=www-data

# Run in chroot mode?
#chroot # yes
nochroot # no

# Working directory of mini_httpd.
dir=/var/www/xserver/data/www/b******a.org

# We are the web files stored?
# Please change this to your needs.
data_dir=/var/www/xserver/data/www/b******a.org

# Which certificate to use?
#certfile=<certfile>

# Which logfile to use?
logfile=/var/log/mini-httpd.log

# Which pidfile to use?
pidfile=/var/run/mini-httpd.pid

В том что запрос до mini-httpd вообще доходит я уверен, при отключении nginx выдает 502 ошибку.

Seraph
()

Какой предложите способ для вырезки текста статьи из html страницы?

Форум — Development

Доброго времени всем! По работе возникла необходимость вырезать из html страницы тексты. На вход алгоритму подается html код содержащий текст статьи, в тексте статьи могут быть html теги, но их не так много как за границами данного текста. Нельзя опираться на шаблоны html кода, которые могут показать где начало, а где конец текста, т.е. формат страницы заранее не должен быть известен алгоритму. Пока в голову приходит только libpcre, но вот какой шаблон подобрать чтобы все было так универсальненько я пока не додумался. Если есть идеи или ссылки на код реализующий подобный алгоритм то оставляйте, буду очень благодарен за помощь, да и потомки думаю тоже спасибо скажут =)

Seraph
()

ошибка: нет декларации «strcpy» в этой области видимости

Форум — Development

gcc 4.6.1

В инклудах это:

#include <cstdlib>
#include <iostream>
#include <queue>
#include <string>
#include <pthread.h>

#include <curl/curl.h>
#include <curl/easy.h>

#include "document_struct.h"
#include "html_getting_thread.h"

Как видно, string - на месте, объявление strcpy в заголовочном файле есть, по клику на функцию IDE (NetBeans 7.1) успешно находит ее. При попытке компиляции gcc вываливается с сабжем. Я очень уверен, что где - то неправ именно я, а не компилятор, но разобраться за 4 часа копания в гугле не получилось.

По сути мне нужно const char* скопировать в char*, может есть аналоги? Руками писать - не комельфо как то, знаю что можно через memcpy с проверкой на /0, но блин, костыль же?

P.S.: Эту проблему ув. форумчане помогли решить и она более не актуальна. Нужно подключать cstring:

#include <cstring>

Код:

//Вечный цикл работы потока
    for (;;) {
        //Если пришло время прощаться, значит такова жизнь
        if (itsTimeToSayGoodbye)
            break;

        //Блокировка мьютекса для очереди url
        pthread_mutex_lock(&params->urlsMutex);

        //Если очеред не пуста, выдираем из нее один url 
        //и качаем с него контент
        if (!urls->empty()) {
            //Буффер для принятия данных от curl
            string* dataBuffer = new string();

            string* url = new string(urls->front());
            urls->pop();

            //Незачем более держать доступ к очереди, зарблокируем мьютекс
            pthread_mutex_unlock(&params->urlsMutex);

            char* urlBuff = new char(url->length() + 1);
            strcpy(urlBuff, url->c_str());
            
            //Вылетает с SIGABRT на этом месте <-------
            curl_easy_setopt(curl, CURLOPT_URL, urlBuff);

            curl_easy_setopt(curl, CURLOPT_WRITEDATA, dataBuffer);
            
            CURLcode responseCode;
            responseCode = curl_easy_perform(curl);
            cout << dataBuffer->c_str();
            if(responseCode != CURLE_OK) {
                string* curlErrorMessage = new string(curl_easy_strerror(responseCode));
                
                cout << "==== ATTENTION! ====" << endl;
                cout << "Curl error: " << curlErrorMessage->c_str() << endl << "URL: " << url->c_str() 
                        << endl << "Thread #" << (params->lastThreadIndex - 1)  << endl;
                cout << "====================" << endl;
                
                delete curlErrorMessage;
            }


            //Почистим за собой память, dataBuffer оставим, т.к. в нем
            //у нас данные документа, которые будут переданы парсеру
            curl_easy_setopt(curl, CURLOPT_URL, NULL);
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL);
            delete urlBuff;
            delete url;
        } else {
            //Очередь оказалась пуста, а мы уже заблокировали мьютекс,
            //отпустим его.
            pthread_mutex_unlock(&params->urlsMutex);
        }

        //Пускай процессор подышит, наша задача не самая приоритетная
        sleep(100);
    }

Seraph
()

Flash падает под FreeBSD amd64

Форум — Desktop

Здравствуйте! Введение: Поставил фрибсд amd64, сверху иксы и гном, по мануалу Crazy Alex добавил поддержку Flash в Firefox. Проверил работоспособность, все отлично, цель достигнута, видео смотреть могу и хватает. Со временем отказалася от гнома в пользу OpenBox.

Проблема: Под OpenBox лиса виснет при попытке вопроизвести swf через Flash плагин, на минуту, иногда меньше. crash dump`а в домашнем каталоге не появляется, видимо пишет в другое место, в какое не нашел, но что пишет вроде точно, читал где - то =) Заметил что .so`шка плагина для иксов версия которых ниже чем установленная, но ведь под гномом работало...

Вопрос: Где я ошибся? Только не говорите, что ошибся я когда поставил фряху.. религия знаете - ли.

Seraph
()

Странный писк, раз в сутки, ubuntu 10.04

Форум — Desktop

Приветствую! Юзаю на лэптопе ubuntu 10.04(вроде, ну которая последняя LTS), бед не знаю, все клево. Три - четыре дня назад ровно в 2:01 часа ночи компьютер стал пищать, а после писка, сразу по окончанию отчетливо слышно как паркуются головки харда. Общее кол-во уже совершенных парковок около 13 тысяч, лэптопу почти 2 месяца. Хотя я могу ошибаться насчет того, что это парковка головок, но обычно такой звук я слышу при переходе ноута в спящий режим, хотя при перезагрузке такого нет. При писке, который длится около 3 секунд, всегда горит индикатор активности харда. При этом никаких глюков в системе не происходит, работа с хардом продолжается в обычном режиме. В общем, я озадачен, я не могу спать и есть, поделитесь опытом, что это за «особая, уличная магия»?

Seraph
()

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