LINUX.ORG.RU

Сообщения Novator

 

Как перекомпилировать языковые пакеты (переводы, файлы *.po)?

Форум — Development

Я изменил Си-программу, причем изменил как *.h, *.c файлы, так и *.po.

При этом команды:

make
make install
компилируют и обновляют только *.h, *.c.

Как скомпилировать *.po файлы?

Может менять опции конфигуратора? Я делал так:

./configure --prefix=/usr

P.S. Приложение mc, если чо.

 , , , ,

Novator
()

Просмотр логов в реальном времени

Форум — Admin

Нашёл такие команды мониторинга логов:

tail -f /var/log/{messages,kernel,dmesg,syslog}
dmesg -w -T -x
journalctl -kf
watch -n 1 'dmesg -T -x | tail -50'

Как сейчас (во времена systemd) пацаны на раёне смотрят логи в режиме реального времени?

Научите дедушку модно-молодёжным фишкам!

 , ,

Novator
()

Рацуха по аве

Форум — Linux-org-ru

1. Разрешать менять аву раз в квартал (завести в базе дату смены).
2. Если модераторы забраковали аву, то её видит только пациент.
3. Хэши забаненных ав заносить в блэклист, такие авы показывать только владельцам - пусть каждый считает себя героем.

Это сведёт на нет возможность политического протеста через авы.

Если трех пунктов мало, вот ещё (опционально):
4. У кого меньше 3х звезд, показ другим новой авы только после одобрения модеров (можно добавлять авы в белый хэш-лист).
5. Умная периодичность: 1-2 звезды - раз в пол года, 3-4 - раз в квартал, 5 звезд - раз в месяц.
6. В весенние месяцы период удваивать :)

 , ,

Novator
()

Список последних 10 видео YouTube-канала по команде в терминале

Форум — Desktop

Методом тыка нашёл такую команду:

yt-dlp --flat-playlist --playlist-end 10 --print title --print " %(duration_string)s %(id)s" https://www.youtube.com/c/DmitriiWest/videos
- она отображает последние свежие 10 видео с ютуб-канала.

Сделал скрипт /usr/bin/yt-list

#!/bin/sh
exec python3 "/usr/bin/yt_dlp/__main__.py" --flat-playlist --playlist-end 10 --print title --print " %(duration_string)s %(id)s" "$1"

Теперь, не запуская браузер, я вижу список свежих видосиков по команде:

yt-list https://www.youtube.com/c/DmitriiWest/videos
И качаю новые командой:
yt-dlp -f 18 <id-of-video>

Кто ещё как автоматизирует получение видосиков с пока ещё не забаненого ютуба?
В идеале должно по cron'у качать свежие видосики в нужную папку - кто так сделал?

UPD. Для скачивания картинки (превьюшки) сделал второй скрипт /usr/bin/yt-img

#!/bin/sh
exec python3 "/usr/bin/yt_dlp/__main__.py" --write-thumbnail --convert-thumbnails jpg --no-download "$1"

Превьюшку глядеть так:

yt-img <id-of-video>

 , , ,

Novator
()

midnight commander не умеет сразу удалять файлы при переносе по F6

Форум — Desktop

Больше 15 лет пользуюсь mc и только сегодня споткнулся о проблему:
при переносе каталога по F6, оказывается, тупой mc сначала копирует всё содержимое на новое место, а только потом в конце удаляет файлы и подкаталоги на старом месте.

Даже досовские nc и vc удаляли файлы по мере переноса!

ПОЗОР!

Вопросы:
1) есть ли какая-то настройка в mc, которая включает правильный перенос?
2) умеют ли другие коммандеры (Gnome Commander или Double Commander) переносить правильно?
3) доколе?!

 , ,

Novator
()

Какой Slackware лучше: 32-bit vs. 64-bit?

Форум — Linux-install

Вот здесь:
https://mirrors.slackware.com/slackware/slackware-iso/
есть 2 новых iso:
slackware-15.0-install-dvd.iso
slackware64-15.0-install-dvd.iso.

По моему опыту с 14й версией у 64 битов много проблем:
1) не работает Wine
2) не работает Qemu
и так далее.

Поэтому я щас качаю 32-битную версию.

Правильно ли я понимаю, что нормальные слакварщики 64 битами не пользуются?

P.S. Попутно вопрос к слакварщикам: что мне ещё скачать, кроме 3,6Гб образа, чтобы все пакеты были у меня на диске? (готовлюсь к чебурнету)

 , ,

Novator
()

Иностранная VPN/VPS с оплатой за крипту и поддержкой OpenVPN - какая?

Форум — Admin

Посоветуйте:
1) иностранная VPN с оплатой за крипту и поддержкой OpenVPN
2) иностранная VPS с оплатой за крипту
3) они не должны быть заблокированы в РФ - ни оттуда, ни отсюда.

P.S. Сейчас попробовал бесплатный тариф от ProtonVpn, но он начал впаривать какой-то блоб (хотя внизу есть приписка, что он вроде как поддерживает OpenVPN - кто пробовал, мины есть?)

 , ,

Novator
()

Retroshare: не могу «Создать новую личность» в список «Участники»

Форум — Desktop

После переноса профиля из портативной Windows-версии RetroShare (работала под Wine) на Linux-версию (AppImage) в домашнюю папку вида /home/user/.retroshare программа запустилась, запросила пароль ключа, появились соединения в «Журнале», пошёл сетевой трафик, есть старые письма на вкладке «Почта», есть узлы на вкладке «Сеть», есть список «Чатов», но остальные вкладки оказались пустые!

В частности, стал пустым список «Участников», при попытке добавить («Создать новую личность»), запрашивает данные, пароль ключа, данные принимает, форма закрывается, и ничего не происходит.

Где RetroShare хранит участников? В каком файле? Куда копать?

P.S. Вайновая версия работает, но хочется запускать нативную.

 , , , ,

Novator
()

Как программно перезапустить веб-приложение Nginx+Bottle

Форум — Web-development

Приложение меняет параметр и перезаписывает ini-файл.
Но на сайте это изменение не отражается, пока вручную не перезапустишь nginx.

Вопрос: как программно перезапустить веб-python-bottle-приложение, запущенное через nginx, причем чтоб метод работал и линуксе и в винде?

 , ,

Novator
()

Проброс порта: ssh держит порт на сервере при обрыве соединения

Форум — Admin

1. Пробрасываю порт через SSH такой командой:

ssh user@site.com -4 -N -g -f -M -R 127.0.0.1:8888:127.0.0.1:8888

Какое-то время работает, потом соединение умирает.
Убиваю на клиенте (на этой стороне) «ssh» командой «kill».

2. Запускаю ssh проброс снова, но ругается в консоль:

Warning: remote port forwarding failed for listen port

На сервере ничего подозрительного не висит.
Через минут 5 сервер всё-таки освобождает порт.

Вопрос: Как принудить ssh освобождать порт на сервере сразу же после обрыва?

 , , ,

Novator
()

Вторая секция в самоподписанном сертификате на сервере HTTPS

Форум — Web-development

HTTPS-хостинг требует 3 файла сертификатов:
1) Сертификат (FILE, .crt)
2) Приватный ключ (KeyFile, .key или .pem)
3) Цепочка сертификатов (ChainFile, сертификаты по порядку, коневой сертифкат идет последним)

Делаю самоподписанный сертификат скриптом create-ssl.sh:

#!/bin/sh

MYSITE=jarevo-porevo.ru

openssl req -new -x509 -sha256 -newkey rsa:2048 -days 3650 -subj '/CN='$MYSITE -nodes -keyout $MYSITE.ssl.key -out $MYSITE.ssl.crt
openssl x509 -x509toreq -days 3650 -in $MYSITE.ssl.crt -signkey $MYSITE.ssl.key -out $MYSITE.ssl.req
openssl x509 -signkey $MYSITE.ssl.key -in $MYSITE.ssl.req -days 3650 -req -out $MYSITE.ssl.pem

На выходе получаю 4 файла:

jarevo-porevo.ru.ssl.crt  1131
jarevo-porevo.ru.ssl.key  1704
jarevo-porevo.ru.ssl.pem  1009
jarevo-porevo.ru.ssl.req  3337

req - ненужен.
key - ключ
crt - сертификат
pem - должен быть сертификат с подписью, но в нём всего лишь ОДНА СЕКЦИЯ вместо двух!

Вопрос: где взять вторую секцию в цепочке сертификатов?

 , , , ,

Novator
()

Как Youtube формирует список форматов

Форум — Desktop

Если дать команду:

youtube-dl -F iZ4tYhmtoM0
то отображается список форматов (599, 600, 249, 250 и т.д.).

Если посмотреть список у другого ролика, например:

youtube-dl -F S8uNoZ7PLqU
то отображается другой список форматов (249, 250 и т.д.).

Внимание вопрос:
Почему Ютуб у разных роликов предлагает разный набор доступных форматов? И самое главное - как можно влиять на этот набор, например при загрузке ролика на ютую?
(я попробовал загрузить свой ролик, у меня получился очень скудный набор форматов).

 , ,

Novator
()

Проект TFC разработал USB-сплиттер для мессенджера из 3-х компьютеров

Новости — Hardware and Drivers
Проект TFC разработал USB-сплиттер для мессенджера из 3-х компьютеров
Группа Hardware and Drivers

Проект TFC (Tinfoil Chat) предложил аппаратное устройство с 3-мя USB-портами для соединения 3-х компьютеров и создания параноидально-защищённой системы обмена сообщениями.

Первый компьютер выступает шлюзом для подключения к сети и запуска скрытого сервиса Tor, он манипулирует уже зашифрованными данными.

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

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

USB-сплиттер работает на оптронах по принципу «диод данных» и физически пропускает данные только в заданных направлениях: отправку данных в сторону второго компьютера и приём данных от третьего компьютера.

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

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

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

Шифрование выполнено на базе 256-разрядного алгоритма XChaCha20-Poly1305, для защиты ключей паролем применяется медленная хеш-функция Argon2id. Для обмена ключами применяется X448 (протокол Диффи — Хеллмана на базе Curve448) или PSK-ключи (pre-shared). Каждое сообщение передаётся в режиме совершенной прямой секретности (PFS, Perfect Forward Secrecy) на базе хэшей Blake2b, при котором компрометация одного из долговременных ключей не позволяет расшифровать ранее перехваченный сеанс.

Интерфейс приложения предельно прост и включает окно, разбитое на три области - отправка, получение и командная строка с логом взаимодействия со шлюзом. Управление производится через специальный набор команд.

Программный код проекта написан на языке Python и доступен под лицензией GPLv3. Схемы сплиттера прилагаются (PCB) и доступны под лицензией GNU FDL 1.3, сплиттер можно собрать из подручных деталей.

>>> Подробности

 end-to-end, , ,

Novator
()

SQL: как пропустить колонку INSERT INTO (col1, col2, dummy, col4)

Форум — Development

При добавлении данных в таблицу нужно пропустить колонку, которая в новой таблице больше не существует (перестала существовать, т.к. была удалена). Пример ниже не работает:

INSERT INTO tab(col1, col2, @dummy, col4) VALUES(1,2,3,4);

Нашел такое решение:

INSERT INTO tab(col1, col2, col4) 
SELECT 
  с1, с2, с4
FROM 
  (VALUES(1, 2, 3, 4)) AS x(с1, с2, с3, с4);

Может есть способ проще?
Можно ли подсунуть какую-то временную переменную?
(NULL и 0 не канает - я проверял)

P.S. Если добавлять по-старому:

INSERT INTO tab(col1, col2, col3, col4) VALUES(1,2,3,4);
то ругается:

MySQL error: (1054, «Unknown column 'col3' in 'field list'»)

Если указать существующую колонку дважды:

INSERT INTO tab(col1, col2, col4, col4) VALUES(1,2,3,4);
то ругается:

MySQL error: (1110, «Column 'col4' specified twice»)

 , ,

Novator
()

Offline аналог Google-транслейт

Форум — Desktop

Под Linux есть шикарный свободный электронный оффлайн-словарь StarDict с кучей словарей на все языки и любой тематики.

Под виндой есть офф-лайн переводчик текстов Promt, но он проприетарный с закрытым кодом и несвободный.

Есть ли свободный офф-лайн переводчик текстов?

Чтоб я поставил его на комп, накачал словарей и он переводил мне тексты как гугл-транслейт (можно чуть похуже)?

 , , , ,

Novator
()

Как рисовать текст на картинке (не через PIL)

Форум — Development

Нужна простая в-одном-файле графическая библиотека:

1) использующая только struct или другие базовые модули
2) работающая и в Linux, и в Windows
3) позволяющая выводить текст безо всяких шрифтов (т.е. либо встроенные матрицы букв, либо прилагающийся битмап с буквами).

Работать она должна примерно так:

import coolbitmap

img = CoolBitmap(400, 250, 'white')
img.draw_text(10, 10, 'C', 'black')
img.draw_text(20, 10, 'ool', 'blue')
img.draw_pixel(25, 15, 'red')
img.save_to('cool.bmp')
img.close()

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

 ,

Novator
()

Релиз RetroShare 0.6.5

Новости — Open Source
Релиз RetroShare 0.6.5
Группа Open Source

Представлена новая версия RetroShare 0.6.5.

Что нового:

1. Новая подсистема распределения данных (GXS) позволяет искать, подписываться и синхронизировать каналы не подписанные прямыми друзьями. В планах также перевод форумов.

2. Создатель форума может назначать модераторов, которые смогут править (но не удалить) сообщения.

3. Создатель форума может закреплять (pin) записи.

4. Переписаны форумы, теперь они работают быстрее и потребляют меньше памяти.

5. Приложения для скрытых (tor, i2p) и стандартных узлов, разделенные в версии 0.6.4, снова объединены в одну программу.

6. Улучшена работа через Tor, теперь IP не отправляются вовне. Также упрощен интерфейс для Tor.

7. Реализован JSON API, который автоматически синхронизируется с действующими Си-модулями RetroShare и предоставляет полный и актуальный набор функций, в том числе для мобильных приложений на Android.

Теперь любой новичок в JavaScript , Python, Lua может задействовать RetroShare для разработки своего собственного децентрализованного приложения (а некоторые уже делают это).

8. Добавлена поддержка IPv6, что в перспективе позволит улучшить преодоление NATов.

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

Также исправлены ошибки в файло-обмене, форумах, кругах и соединениях через OpenSSL1.1plus.

В планах:

1) разработчики начали переделывать веб-интерфейс с помощью нового API и планируют доделать его в 2019 году;

2) теперь, когда есть API для общения с libretroshare, открылось много интересных возможностей, например, сделать социальную сеть, которая будет работать в браузере во время общения с фоновым приложением RetroShare (по типу ZeroNet);

3) 2019 год также станет годом, когда RetroShare войдет в Debian, что является условием для участия в Tails . Это следующая задача, над которой разработчики планируют работать после релиза.

Основные разработчики (Cyril & Gio) выражают благодарность разработчикам G10h4ck (за JSON API), Phenom, Sehraf, hubernd, RetroPooh, Chelovechisko, Zapek, San-Josep и тестерам Ghibli, ASmith, Jolavillette.

>>> Официальный релиз

>>> Дистрибутивы для Linux, Windows и MacOS

 , ,

Novator
()

Как сжать linux-бинарник (запускаемый файл)

Форум — Development

Написал в Lazarus простенькое приложение, но после конпиляции запускаемый файл получился слишком большой - размер 20Мб.

Чтобы уменьшить выходной размер, как советуют в интернете, в свойствах проекта (Проект - Параметры проекта) включил 4 опции компилятора:

1) Вкладка Генерация кода: установить флажок "Умная компоновка" (-СХ);
2) Вкладка Компоновка: установить флажок "Умная компоновка" (-ХХ);
3) Вкладка Компоновка: установить флажок "Использовать внешний файл отладочных символов GDB" (-Xg);
4) Вкладка Компоновка: установить флажок "Вырезать символы из исполняемого файла" (-Xs);
5) Вкладка Компоновка: снять флажок "Выдавать номера строк в ошибках времени выполнения"(-gl).

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

После компилирования бинарь стал размером 4Мб. Вроде неплохо.

Затем утилита strip вырезала еще немного отладочной информации:

strip --strip-all ./mybinary

Дальше я попробовал сжать zip`ом, размер стал 1,7Мб, но файл перестал быть запускаемым (это логично).

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

UPD. Нашлись команды сжатия:

upx -k -9 ./mybinary
gzexe ./mybinary

Теперь второй вопрос: не скажется ли upx/gzexe на кроссплатформенности/совместимости? Ну например на i386 работает, а на x64 уже нет, или наоборот. Какая из них принесет меньше подобных проблем?

UPD2. Обновил пост, чтобы он остался в истории как мануал.
(Кстати, все опции и утилиты актуальны и для уменьшения exe-файлов в Windows)
И да, upx лучше не использовать, всё остальное - желательно.
Также рекомендую подробный мануал по рантайму, статическому и динамическому связыванию.

 , , ,

Novator
()

Анонимус возмущен гугл-капчой ЛОРа

Форум — Linux-org-ru

Анонимус передаёт своё возмущение гугл-капчой ЛОРа - неужели, говорит, на java нельзя сделать самодельную капчу (ведь была какое-то время нормальная капча)?!

Анониму обязательно нужно разгадывать 10 мозаик Гугля, перед написанием своего важного сообщения?

Второе: зачем-то запрашивается поле «Пароль», но какой пароль можно требовать с анонимуса? Это же явный баг!

P.S. Я когда-то сам просил капчу для анонимов и ограничения количества анонимных сообщений в день с одного IP - но то, что сделано сейчас - меня самого разочаровало, и я понимаю чувства анонимуса.

 , ,

Novator
()

Что нужно этому гадкому qMake?!

Форум — Development

Пытаюсь сконпилировать RetroShare и вот что выдаёт:

user@comp:/mnt/data/github/RetroShare$ qmake
fatal: No tags can describe '617ed25a19333f3f147b28a9465018f6c6b87787'.
Try --always, or create some tags.
Project WARNING: Determining RetroShare version via git failed plese specify it trough qmake command line arguments!
Project MESSAGE: QMAKE: You have disabled deprecated warnings.
Project MESSAGE: QMAKE: You have disabled C preprocessor warnings.

Что нужно этому гадкому qMake?!

Можно ли как-то сконпилировать Ретру без Qt-морды?

 , , ,

Novator
()

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