memory heap
367 subscribers
2.48K photos
508 videos
52 files
3.08K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
Выпустил релиз Guile-SSH 0.15.0:
https://lists.gnu.org/archive/html/guile-user/2022-01/msg00004.html

В предыдущей версии была ошибка с обновлением версии библиотеки libguile-ssh, не первый раз уже забываю эту версию обновить вместе с версией проекта. Для надёжности переместил строчку с версией библиотеки в самый верх configure.ac, чтобы на глаза всегда попадалась.

Официальная справка по обновлению версии библиотек, использующих libtool:
https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html#Updating-version-info

#dev #guile #ssh
Результат многочасового дебага дал свои плоды:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52975#14

Если коротко — похоже, получилось исправить очередной segfault в Guile-SSH.

#dev #projects #guile #ssh
Выпустил новый релиз Guile-SSH 0.15.1:
https://lists.gnu.org/archive/html/guile-user/2022-02/msg00169.html

Из исправлений:

0. Исправлена ошибка, возникающая при уничтожении Guile-SSH сессии, когда процедуры очистки ресурсов пытаются закрыть все Guile-SSH каналы, связанные с данной сессией. В этой ситуации раньше происходил выход за границы списка, теперь же это исправлено.

1. Исправлена ошибка сегментации при закрытии удалённой стороной сессии, так как процедуры очистки ресурсов Guile-SSH канала уничтожали callback'и, которые были назначены в библиотеке libssh, которая потом их пыталась вызвать. Теперь же Guile-SSH сначала убирает callback'и, потом уже очищает ресурсы.

2. Также добавлено описание пакета GNU Guix (файл guix.scm в корне репозитория), что позволяет прямо из репозитория собрать Git-версию Guile-SSH — например, так:
$ guix build -f ./guix.scm


#guile #ssh #dev
О! Замёржили патч в GNU Guix с обновлением Guile-SSH до 0.15.1:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=eabc6af9b8b14bd629544e54bc9c9afa2d0dcd85

Пишут, всё работает и собирается.

#guile #ssh #guix
Выпустил релиз Guile-SSH 0.16.0:
https://lists.gnu.org/archive/html/guile-user/2022-09/msg00036.html

Кратко об изменениях:
- Добавлен API для чтения каталогов через SFTP. В том числе теперь можно открыть на чтение каталог на удалённом хосте и через (ice-9 streams) в формате потока прочитать атрибуты хранящихся в нём файлов, по очереди. Атрибуты файлов представлены в виде ассоциативного списка.
- Исправлена ошибка, приводящая к проблемам при кросс-компиляции библиотеки.

Данный релиз обратно совместим с 0.15.1, однако приложения, использующие новый API , не смогут работать с 0.15.1.

Также у себя на сайте обновил online-документацию по библиотеке:
https://memory-heap.org/~avp/projects/guile-ssh/manual/

#dev #projects #guile #ssh
👍1
memory heap
Выпустил релиз Guile-SSH 0.16.0: https://lists.gnu.org/archive/html/guile-user/2022-09/msg00036.html Кратко об изменениях: - Добавлен API для чтения каталогов через SFTP. В том числе теперь можно открыть на чтение каталог на удалённом хосте и через (ice…
Кстати, вот пример использования нового API — данный код выводит информацию по всем файлам в каталоге /tmp на удалённом хосте:

#!/home/avp/.guix-profile/bin/guile \
-e main -s
!#

(use-modules (ice-9 streams)
(ice-9 pretty-print)
(ssh session)
(ssh auth)
(ssh sftp))

(define (main args)
(let ((session (make-session #:host "example.org"
#:user "avp")))
(connect! session)
(userauth-agent! session)
(let* ((sftp-session (make-sftp-session session))
(stream (sftp-dir-open-stream sftp-session "/tmp/")))
(stream-for-each (lambda (attrs)
(pretty-print attrs))
stream))))


#dev #guile #ssh #projects
👍1
Выпустил релиз Guile-SSH 0.16.1:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.1

В новом релизе по-умолчанию выключены все тесты, которые требуют поддержки алгоритма DSA для публичных ключей. Дело в том, что начиная с версии libssh 0.10, поддержка DSA выключена в библиотеке по-умолчанию, и поскольку Guile-SSH использует libssh "под капотом", то при использовании libssh 0.10 тесты падали.

Теперь же, если поддержка DSA всё же нужна, то необходимо добавить опцию --enable-dsa при запуске скрипта configure.

В целом, Guile-SSH 0.16.1 не вносит изменения в API, однако стоит учитывать, что поддержка DSA будет полностью убрана из libssh в следующих релизах (пока что её можно включить при сборке libssh, через опцию -DWITH_DSA=on.)

#gnu #guile #projects #ssh
memory heap
Выпустил релиз Guile-SSH 0.16.1: https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.1 В новом релизе по-умолчанию выключены все тесты, которые требуют поддержки алгоритма DSA для публичных ключей. Дело в том, что начиная с версии libssh 0.10…
commit 194fd7d3e4e16c5bbd64062d55fa98b4d79e69df
Author: Artyom Poptsov <[email protected]>
Date: Sun May 12 01:30:36 2013 +0400

Initial commit.

12 мая 2013 года был сделан первый коммит в репозитории Guile-SSH. Более 1600 коммитов за 9 лет, 7 разработчиков, включая меня. Наличие в репозиториях GNU Guix, Ubuntu, Arch, Parabola, openSUSE, macOS и возможно каких-то других систем. Неожиданно успешный проект.

#projects #guile #ssh
4
Vagrant Cascadian нашёл ещё одну проблему в Guile-SSH, связанную с поддержкой libssh 0.10, пришлось править тесты, чтобы не падали, и выпускать новую версию Guile-SSH 0.16.2:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.2

Кстати, Vagrant Cascadian — сопровождающий пакета Guile-SSH в Debian и Ubuntu:
- https://tracker.debian.org/pkg/guile-ssh
- https://launchpad.net/ubuntu/+source/guile-ssh

Отправил в GNU Guix патч с обновлением Guile-SSH до 0.16.2:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60502

Теперь, насколько вижу, можно обновить libssh 0.10 в GNU Guix, не нарушая сборку Gule-SSH и без "грязных хаков" с патчингом кода Guile-SSH перед сборкой.

#gnu #guix #guile #ssh #projects
3
Выпустил релиз Guile-SSH 0.16.3 с исправлением "утечки каналов": при закрытии libssh-канала на удалённой стороне (например, после выполнения консольной команды), канал оставался не освобождённым. Из-за ограничения на количество открытых каналов в OpenSSH (которое контролируется опцией MaxSessions в sshd_config), в определённый момент сервер переставал позволять открывать новые каналы, что приводило к ошибкам.

Проблема была выявлена в GNU Guix, при выполнении команды guix deploy.

Анонс Guile-SSH 0.16.3 в почтовой рассылке GNU Guile:
https://mail.gnu.org/archive/html/guile-user/2023-01/msg00059.html

#projects #guile #ssh #dev
1
Выпустил новый релиз Guile-SSH 0.16.4:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.4

В новом релизе:

- Процедура private-key-from-file теперь позволяет читать зашифрованные ключи, благодаря возможности указать при вызове процедуру #:auth-callback (и опционально #:user-data для передачи в процедуру.) Документация обновлена с описанием новой функциональности и примерами.

- Добавлены GNU Guix workflow для GitHub CI, тестирующие сборку под платформы x86_64-linux-gnu и aarch64-linux-gnu). Спасибо Sharlatan Hellseher (@ob_hs) за реализацию новых workflow!

- Исправление мелких очепяток в документации (спасибо Maxim Cournoyer)

#projects #guile #ssh
4