rpmbuild --eval %{version} package.spec
Сабж не работает:
$ rpmbuild --define "_topdir $PWD" --eval '%{version}' SPECS/package.spec
%{version}
Хочу узнать версию пакета, который будет сгенерирован. Как это сделать?
Сабж не работает:
$ rpmbuild --define "_topdir $PWD" --eval '%{version}' SPECS/package.spec
%{version}
Хочу узнать версию пакета, который будет сгенерирован. Как это сделать?
Доброго дня,
В связи с тем, что теги «Recommends» и «Suggests» появились только в RPM 4.11.2 а мне сейчас нужно разделаться с RPM 4.8 (возможен апгрейд)
Нужно сделать что-то такое:
%if %{rpm_version} >= 4.11.2
Suggests: package-a >= 2.11
Recommends: package-b >= 4.2
%else
Requires: package-a >= 2.11
Requires: package-b >= 4.2
%endif
Беда в том, что пока не могу придумать, как (правильно) проверить версию rpm внутри спеки.
Собственно сабж. Сейчас, например, в бетке 16.04 ядро 4.4.0-NN-<тип>. Непонятно, что дает им такое версионирование?
И,ЕМНИП, у них всегда последняя цифра версии ядра — 0.
Установил Git for windows, в комплекте идет perl-5.22.0. Хочу доустановить модуль List::MoreUtils. В процессе сборки полічаю вот такое сообщение:
perl Makefile.PL
Checking whether pureperl is required... no
Checking for cc... gcc
Checking for cc... (cached) gcc
Checking whether perlapi is accessible... no
configure: Cannot use Perl API - giving up
Что конкретно оно хочет? Что оно проверяет? Как заставить его работать?
Есть такой код:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
my $hash = {
key1 => 'value1',
key2 => 'value2',
key3 => 'value3',
};
my @options = map { "--$_" => $hash->{$_} } # line 13
grep { defined $hash->{$_} } # line 14
qw(key1 key4); # line 15
print Dumper(\@options);
Perl 5.22 выдает такое:
syntax error at ./test.pl line 14, near "grep"
Global symbol "@options" requires explicit package name (did you forget to declare "my @options"?) at ./test.pl line 17.
Execution of ./test.pl aborted due to compilation errors.Perl 5.10:
Not enough arguments for map at ./test.pl line 14, near "grep"
syntax error at ./test.pl line 14, near "grep"
Execution of ./test.pl aborted due to compilation errors.«Исправление» вот такое:
-my @options = map { "--$_" => $hash->{$_} } # line 13
+my @options = map { ("--$_") => $hash->{$_} } # line 13Внимание вопрос: почему не работает первый вариант кода? Что интерпретатору не нравится в кавычках?
Доброго дня.
Как известно, в Perl можно запросто сделать хеш из массива:
my @arr = (key1 => 'value1', key2 => 'value2');
# эквивалентно @arr = ('key1', 'value1', 'key2', 'value2')
my %hash = @arr;
for my $key (keys %hash) {
print "$key => $hash{$key}\n";
}
# выведет
# key2 => value2
# key1 => value1
Что я хочу сделать, это получить индексы элементов массива, которые станут ключами при такой конвертации. Сейчас накостылял вот такую конструкцию:
my @key_indexes = grep { !($_ &1) } 0 .. $#arr;
А если более глобально, то задача стоит такая: на вход подается массив (с чётным количеством элементов) на выходе необходимо сформировать строку вида key1=value1;key2=value2;... но важно сохнанить порядок элементов как в массиве (по этому вариант «через хеш» не подходит).
Сейчас делаю что-то такое:
my $str = join ';', map { qq/$arr[$_]=$arr[$_ + 1]/ } grep { !($_ & 1) } 0 .. $#arr;Подскажите пожалуйста, как такое сделать элегантнее.
Раньше у я с горем пополам еще мог как-то подключить второй дисплей (приходилось обходить баг с логаутом и перекрытием экранов). Однако после недавних обновлений kubuntu какая-то программа/скрипт специально выключает второй дисплей.
Суть вот в чем:
Попутно, в /home/elvenfighter/.local/share/kscreen/ генерируется файл с таким содержанием: http://pastebin.com/0ERTzqwU
Еще помню, недавно (два-три дня назад) в обновлениях kubuntu какой-то конфиг sddm требовал моего подтверждения на перезапись.
Помогите пожалуйста.
Если с вот таким шебангом все понятно:
#!/usr/bin/perlТо вот эти два варианта вводят меня в недоумение:
#!perl#!/usr/bin/env perlВроди оба должны запускать из PATH. Но есть ли между ними принципиальная разница? Какой лучше использовать? Какой портабельнее?
Вобщем есть у меня VLC 2.2.1. Если открыть видео (любое), то выводится только часть картинки, как например: http://i.imgur.com/AZd2pWL.png
Плюс, появляется дополнительный симптом: курсор мыши исчезает, когда провожу над видео и двойной клик по видео не открывает его на весь экран.
Данный баг (на моей системе) не зависит от:
Однако, если в настройках выключить галочку «Встроить видео в интерфейс» — всё нормально (только приходится терпеть два окна).
Дано:
Задача: приложению надо засекать время операций по каждому соединению.
Моя задумка: каким-либо образом сделать композицию двух обьектов: Connection и ConnectionBenchmark. Но таким образом, чтоб имея экземпляр Connection можно было получить соответвтвующий экзампляр ConnectionBenchmark (в обратную сторону — не обязательно). Делать класс-аггрегатор (композицию) — не удобно, слишком много boilerplate-кода доведется писать.
Подскажите пожалуйста, как такое реализовать? Думается мне, система мета-объектов Qt должна такое позволять.
P.S. Пока только придумалось что-то типа QMap<Connection *, ConnectionBenchmark *>
Итак, Дамы и Господа!
Подключаем kubuntu-backports PPA, czyli:
sudo add-apt-repository ppa:kubuntu-ppa/backports
Затем передёргиваем наши любимые команды:
sudo apt-get update
sudo apt-get dist-upgradeИ после login/logout наслаждаемся нашей свеженькой плазмой 5.5!
P.S. Арчеводы и прочие читеры, которые обновились пару недель раньше, гуляют стороной, здесь тред радости.
На данный момент видно, что у Valve с первым выпуском Steam Machines & Co первый блин получился комом:
До $700 за более-менее адекватный конфиг и до $5000 за Falcon Northwest Tiki для «илитки». В то время, как PS4 или XBox One можно купить за $350.CPU: AMD Athlon X4 840
GPU: AMD Radeon R9 270 2GB
Memory: 4GB DDR3 1600MHz
Storage: 500GB 7200 RPM HDD
Вот моя точка зрения на состояние вещей (как человека ниразу не сталкивавшегося со Steam Machines вживую): все сводится к тому, что данный выпуск от Valve имеет только одну ценность — свободу. А последняя, как известно, не ценится до момента, пока ее не отберут.
В итоге появляется вопрос: Steam Machines (и ко.) — всё? Или ждать второго поколения и исправления ошибок? Осилит ли Valve (финансово) поднять еще одно поколение? Останется ли оптимизм у вендоров (Dell, Zotac, ...) на производство Steam Machnies?
Есть некий файлик mylib/ldap.c, в котором есть функция int search(LDAP *ld, const char *id). Этот файлик входит в разделяемую библиоту libfoobar.
Задача — изолировать и оттестировать функцию foobar. Однако проблема в том, что эта функция использует как другие функции с библиотеки libfoobar так и функции с libldap-2.4.
Библиотека libfoobar собирается отдельно от тестов (отдельным CMake проектом). Затем тест собирается приблизительно так:
add_executable(search_test search_test.c)
set_target_properties(search_test PROPERTIES
LINK_FLAGS "-Wl,--wrap=internalFunc -Wl,--wrap=ldap_search_s"
)
target_link_libraries(search_test ${FOOBAR_LIBRARIES})
add_test(NAME search_test COMMAND search_test)
search_test.c:int __wrap_internalFunc(const char *str) {
fprintf(stderr, "## DEBUG: __wrap_internalFunc: %s\n", str);
return __real_internalFunc(str);
}
static void test_search(void **state) {
LDAP *ld = (*(TEST_DATA **) state)->ldap;
int err = search(ld, "something");
assert(err == LDAP_SUCCESS);
}
Проблема состоит в том, что --wrap не срабатывает для внутренних функций, т.е. search() не дергает __wrap_internalFunc(), а напрямую лезет к оригинальной internalFunc() (internalFunc не является static и находится в одном исходном файле с search()). Пробовал собирать libfoobar статически — не помогает.
Помогите пожалуйста понять процесс линковки, и где моя ошибка.
P.S. Собственно, заюзана фича --wrap из ld. man ld:
--wrap=symbol
Use a wrapper function for symbol. Any undefined reference to symbol will be resolved to «__wrap_ symbol ». Any undefined reference to «__real_ symbol » will be resolved to symbol.
This can be used to provide a wrapper for a system function. The wrapper function should be called «__wrap_ symbol ». If it wishes to call the system function, it should call «__real_ symbol ».Here is a trivial example:
void * __wrap_malloc (size_t c) { printf ("malloc called with %zu\n", c); return __real_malloc (c); }If you link other code with this file using --wrap malloc, then all calls to «malloc» will call the function «__wrap_malloc» instead. The call to «__real_malloc» in «__wrap_malloc» will call the real «malloc» function.
You may wish to provide a «__real_malloc» function as well, so that links without the --wrap option will succeed. If you do this, you should not put the definition of «__real_malloc» in the same file as «__wrap_malloc»; if you do, the assembler may resolve the call before the linker has a chance to wrap it to «malloc».
От версии Konsole не зависит(?) Нужен такой сетап:
Шаги:
После этого панель вкладок пропадает, однако вкладки остаются на месте (между ними можно по прежнем переключатся хоткеями и если добавить третью вкладку, то панел снова появляется).
Проявляется ли у вас этот баг? И если баг да, скажите пожалуйста, что у вас стоит в Settings -> New Tab Behaviour? А также интересна ваша версия Konsole.
Собственно сабж: https://www.kde.org/announcements/announce-applications-15.12.0.php
Разработчики мамой клянутся, что фиксили и полировали все, что только можно (включая kdenlive и contact suite). KSnapshot заменили на новый, нескучный Spectacle. По просьбам трудящихся было запилено много разных KDE Games на KF5. В целом, по их же словам, на KF5 уже портированно 126 приложений.
// а крусадера все нет, плак-плак
Добрый день ЛОР,
В следствии того, что бинарники на qt.io собраны с помощью gcc 4(.?) на RHEL 5.5 а в Ubuntu 15.10 по умолчанию gcc 5 самосборные плагины для QtCreator крашатся в совсем непонятных местах (как уверяют разработчики — несовместимость ABI gcc 4 и gcc 5).
В связи с этим решил собрать для себя тестовый полигон QtCreator из git (https://github.com/qtproject/qt-creator.git) используя системное Qt (как я надеюсь собранное gcc5). Однако имею проблему:
$ export QT_SELECT=5
$ qmake -r ../qt-creator/qtcreator.pro
Reading ../qt-creator/src/src.pro [../qt-creator-build-sys/src]
Reading ../qt-creator/src/libs/libs.pro [../qt-creator-build-sys/src/libs]
Reading ../qt-creator/src/libs/aggregation/aggregation.pro [../qt-creator-build-sys/src/libs/aggregation]
...
Reading ../qt-creator/src/plugins/plugins.pro [../qt-creator-build-sys/src/plugins]
Reading ../qt-creator/src/plugins/coreplugin/coreplugin.pro [../qt-creator-build-sys/src/plugins/coreplugin]
Project ERROR: Unknown module(s) in QT: help
Даже после установки пакетов libqt5help5 и самого qtcreator проблема не исчезла. Подскажите пожалуйста, как собрать?
Привет ЛОР,
Есть абстрактное приложение на хосте в вакууме. Оно работает месяцами без людского присмотра (возможно перекачивая данные с одного хранилища в другое). Этому приложению необходимо себя аутентифицировать на неком ресурсе (например откуда оно будет брать или куда будет заливать данные).
Так вот, вопрос в том, как правильно сделать аутентификацию на неком ресурсе для такого приложения? Т.е. чтоб:
Я даже не знаю, как информацию о сабже правильно нагуглить. Подскажите пожалуйста в какую сторону копать.
Хладагент медленно стекал по моей правой голени когда я наконец смог увидеть новость на сайте: https://amarok.kde.org/en/node/887
Ничего нового интересного мы там не увидим. Ну развечто посыпку из новых багов багфиксов.
Джва года делали! Финальный релиз запланирован на следующий раз. Ждём и надеемся.
Доброго времени суток,
В связи с резким приближением зимы меня обеспокоил вопрос: а надо ли менять резину на велосипеде?
Сейчас вместо покрышек имею вот это:
http://i.imgur.com/GNRV2eNh.jpg
http://i.imgur.com/9AS4Gzvh.jpg
http://i.imgur.com/dq72IeUh.jpg
Дано:
Скажите, стоит ли менять резину на зиму? Если да, то на накую? (Сейчас присматриваюсь к SCHWALBE Marathon Mondial Performance 28).
P.S. Бюджет особо не ограничен: собственное здоровье важнее денег
P.P.S. Линукс здесь при том, что я на велосипеде на работу езжу, где и работаю с линуксом.
Доброго дня,
В корне проекта должен быть файл VERSION, из которого нужно прочитать версию для CMake (переменные PROJECT_VERSION_{MAJOR,MINOR,PATCH}). Внутренний синтаксис файла пока не определнен, по этому его можно «подогнать» под задачу.
Все было бы просто, если бы надо было читать только из CMake то проблема бы решалась простым include(${PROJECT_SOURCE_DIR}/VERSION.cmake). Но вот тут есть проблема: данный файл с версией надо еще парсить из обычного GNU/Makefile (да-да legacy, выкинуть нельзя).
Да и к тому же в этом файле еще должны быть версии для двух библиотек из проекта (итого выходит 3 комплекта по 3 переменных):
PROGRAM_VERSION_MAJOR = 1
PROGRAM_VERSION_MINOR = 0
PROGRAM_VERSION_PATCH = 3
CORELIB_VERSION_MAJOR = 2
CORELIB_VERSION_MINOR = 2
CORELIB_VERSION_PATCH = 0
CLIENTLIB_VERSION_MAJOR = 1
CLIENTLIB_VERSION_MINOR = 0
CLIENTLIB_VERSION_PATCH = 8
Так вот, подскажите какой нибудь формат файла, из которого можно просто прочитать переменные, типа:имя = значение. Не хочется писать велосипеды.
| ← назад | следующие → |