* [devel] Fwd: [git update] packages/test-glob-req: heads/master @ 2007-09-08 15:49 Alexey Tourbin 2007-09-08 18:50 ` Michael Shigorin 2007-09-09 18:40 ` [devel] Fwd: [git update] packages/test-glob-req: heads/master Slava Semushin 0 siblings, 2 replies; 9+ messages in thread From: Alexey Tourbin @ 2007-09-08 15:49 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 503 bytes --] Господа, Кто интересуется автоматическим поиском зависимостей, советую склонировать этот пакет и запустить gear --rpm -- rpm -bb Ну и ясное дело изучить зависимости собравшегося пакета. ----- Forwarded message from "Alexey M. Tourbin" <at@altlinux> ----- Update of /people/at/packages/test-glob-req.git New head `master' is available with the following commits: commit fb33b97b475c32c45df052312c411455098d989e Author: Alexey Tourbin <at@altlinux> Date: Sat Sep 8 19:39:18 2007 +0400 [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Fwd: [git update] packages/test-glob-req: heads/master 2007-09-08 15:49 [devel] Fwd: [git update] packages/test-glob-req: heads/master Alexey Tourbin @ 2007-09-08 18:50 ` Michael Shigorin 2007-09-08 19:52 ` Alexey Tourbin 2007-09-09 18:40 ` [devel] Fwd: [git update] packages/test-glob-req: heads/master Slava Semushin 1 sibling, 1 reply; 9+ messages in thread From: Michael Shigorin @ 2007-09-08 18:50 UTC (permalink / raw) To: devel On Sat, Sep 08, 2007 at 07:49:15PM +0400, Alexey Tourbin wrote: > Кто интересуется автоматическим поиском зависимостей, > советую склонировать этот пакет и запустить gear --rpm -- rpm -bb > Ну и ясное дело изучить зависимости собравшегося пакета. Прикольненько =) -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Fwd: [git update] packages/test-glob-req: heads/master 2007-09-08 18:50 ` Michael Shigorin @ 2007-09-08 19:52 ` Alexey Tourbin 2007-09-08 20:00 ` [devel] [JT] zsh nonomatch by default pls :) Michael Shigorin 0 siblings, 1 reply; 9+ messages in thread From: Alexey Tourbin @ 2007-09-08 19:52 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1640 bytes --] On Sat, Sep 08, 2007 at 09:50:46PM +0300, Michael Shigorin wrote: > On Sat, Sep 08, 2007 at 07:49:15PM +0400, Alexey Tourbin wrote: > > Кто интересуется автоматическим поиском зависимостей, > > советую склонировать этот пакет и запустить gear --rpm -- rpm -bb > > Ну и ясное дело изучить зависимости собравшегося пакета. > > Прикольненько =) В шелле есть word splitting, после которого автоматически выполняется глоб (не помню как это по-научному называется). Отделить одно от другого более-менее нельзя. $ files='/lib/libc-* /lib/libpthread-*' $ for f in $files; do echo "$f"; done /lib/libc-2.5.so /lib/libpthread-2.5.so $ Это фактически значит, что переменную с untrusted data нельзя писать без кавычек, иначе, помимо желаемого разбиения на слова также будет сделан глоб. Единственный способ не делать глоб -- это запускать скрипты в режиме -f ("#!/bin/sh -f" или "set -f"). Кстати, в zsh ни word splitting, ни глоб по умолчанию не выполняются, так что переменные вообще квотить не нужно. А splitting или глоб нужно специально просить, тот или другой, или оба вместе. Кстати щас возможностей для подтасовок слишком много. $ cat test.sh \ a ' a' $ sh --rpm-requires test.sh executable(\ a) executable(' a') $ /usr/lib/rpm/shell.req test.sh shell.req: /home/at/test.sh: ' not found (skip) shell.req: /home/at/test.sh: a' not found (skip) shell.req: /home/at/test.sh: \ not found (skip) shell.req: /home/at/test.sh: a not found (skip) $ Думаю как бы накрыть всё это разом. Кажется, как следует сделать всё равно ничего не получится. Но хотя бы отсечь заведомо дурные варианты. [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [devel] [JT] zsh nonomatch by default pls :) 2007-09-08 19:52 ` Alexey Tourbin @ 2007-09-08 20:00 ` Michael Shigorin 2007-09-08 20:10 ` Alexey Tourbin 0 siblings, 1 reply; 9+ messages in thread From: Michael Shigorin @ 2007-09-08 20:00 UTC (permalink / raw) To: devel On Sat, Sep 08, 2007 at 11:52:57PM +0400, Alexey Tourbin wrote: > Кстати, в zsh ни word splitting, ни глоб по умолчанию не выполняются, О! Вспомнил другое, что давно хотел: в _интерактивном_ zsh можно по умолчанию включить setopt nonomatch? А то заколебало уже без своего ~/.zshrc спотыкаться об отвал при scp -p host:file.* . -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] [JT] zsh nonomatch by default pls :) 2007-09-08 20:00 ` [devel] [JT] zsh nonomatch by default pls :) Michael Shigorin @ 2007-09-08 20:10 ` Alexey Tourbin 2007-09-09 17:21 ` Michael Shigorin 0 siblings, 1 reply; 9+ messages in thread From: Alexey Tourbin @ 2007-09-08 20:10 UTC (permalink / raw) To: devel [-- Attachment #1.1: Type: text/plain, Size: 1242 bytes --] On Sat, Sep 08, 2007 at 11:00:10PM +0300, Michael Shigorin wrote: > On Sat, Sep 08, 2007 at 11:52:57PM +0400, Alexey Tourbin wrote: > > Кстати, в zsh ни word splitting, ни глоб по умолчанию не выполняются, > > О! Вспомнил другое, что давно хотел: в _интерактивном_ zsh можно > по умолчанию включить setopt nonomatch? А то заколебало уже без > своего ~/.zshrc спотыкаться об отвал при scp -p host:file.* . Мне кажется плохая идея менять из коробки поведение по умолчанию. Тем более что люди спотыкаются каждый обо что-то своё. Но у меня есть файлик, который делает zsh "почити как bash". Это довольно старый файлик, что-то уже с тех пор изменилось. Кажется NO_PROMPTCR теперь не нужен, подсветка отсутствия конца строки реализована более удачно. Но я этот файлик давно отключил, чтобы не путаться. :) К сожалению zsh не тянет на "более консистентый шелл", у него слишком противоречивые цели. Разрабатывать шелло-подобный язык, который *концептуально* хорошо совместим с шеллом и при этом решает ряд проблем родного шелла; и делать автодополнялки аргументов для всего чево не поподя -- это совсем разные вещи. Хотя, по первому направлению в zsh кое-что сделано. Но он всё-таки глюковат и не серьёзно в общем. [-- Attachment #1.2: bash-compat.zsh --] [-- Type: text/plain, Size: 296 bytes --] # bash compatibility options # ${=foo} setopt SH_WORD_SPLIT # ${~foo} setopt GLOB_SUBST # export x=`echo hi there` setopt KSH_TYPESET # print foo=~/bar:~/rod setopt MAGIC_EQUAL_SUBST # print nosuchfile* setopt NO_NOMATCH # print [- setopt NO_BAD_PATTERN # print -n line setopt NO_PROMPTCR [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] [JT] zsh nonomatch by default pls :) 2007-09-08 20:10 ` Alexey Tourbin @ 2007-09-09 17:21 ` Michael Shigorin 0 siblings, 0 replies; 9+ messages in thread From: Michael Shigorin @ 2007-09-09 17:21 UTC (permalink / raw) To: devel On Sun, Sep 09, 2007 at 12:10:00AM +0400, Alexey Tourbin wrote: > > > Кстати, в zsh ни word splitting, ни глоб по умолчанию не выполняются, > > О! Вспомнил другое, что давно хотел: в _интерактивном_ zsh можно > > по умолчанию включить setopt nonomatch? А то заколебало уже без > > своего ~/.zshrc спотыкаться об отвал при scp -p host:file.* . > Мне кажется плохая идея менять из коробки поведение по умолчанию. > Тем более что люди спотыкаются каждый обо что-то своё. Если ты и другие пользователи zsh в ALT согласятся, что это один из немногих (для меня единственный) неразумный дефолт, то давай попробуем убедить в этом апстрим. Трепологическую сторону (роспись юзкейзов) обеспечу :) > Но у меня есть файлик, который делает zsh "почити как bash". Да мне не надо "как баш", мне надо чтоб удобно. А это неудобно. Но всё равно спасибо. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Fwd: [git update] packages/test-glob-req: heads/master 2007-09-08 15:49 [devel] Fwd: [git update] packages/test-glob-req: heads/master Alexey Tourbin 2007-09-08 18:50 ` Michael Shigorin @ 2007-09-09 18:40 ` Slava Semushin 2007-09-09 18:54 ` Alexey Tourbin 1 sibling, 1 reply; 9+ messages in thread From: Slava Semushin @ 2007-09-09 18:40 UTC (permalink / raw) To: ALT Linux Team development discussions 2007/9/8, Alexey Tourbin <at / altlinux.ru>: > Господа, > > Кто интересуется автоматическим поиском зависимостей, > советую склонировать этот пакет и запустить gear --rpm -- rpm -bb > Ну и ясное дело изучить зависимости собравшегося пакета. [...] Любопытство перевысило, хотя лучше бы ты подробно всё объяснил... Собирается долго... Пока вижу это: Поиск Requires (используя /usr/lib/rpm/find-requires) Выполняется(Requires): /bin/sh -e /home/coder/tmp/rpm-tmp.7630 + umask 022 + /bin/mkdir -p /home/coder/RPM/BUILD + cd /home/coder/RPM/BUILD + /usr/lib/rpm/find-requires grep: Unmatched [ or [^ grep: Unmatched [ or [^ error: file /usr/bin/idle: No such file or directory error: file /usr/bin/modulator: No such file or directory warning: no package provides /usr/bin/pydoc error: file /usr/bin/pynche: No such file or directory О! Собралось... Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1, rpmlib(CompressedFileNames) <= 3.0.4-1 Requires: /usr/bin/ControlPanel, /usr/bin/aclocal-default, /usr/bin/autoconf-default, /usr/bin/autoheader-default, /usr/bin/autom4te-default, /usr/bin/automake-default, /usr/bin/autoreconf-default, /usr/bin/autoscan-default, /usr/bin/autoupdate-default, /usr/bin/gcc, /usr/bin/i586-alt-linux-cpp, /usr/bin/i586-alt-linux-g++, /usr/bin/i586-alt-linux-gcc, /usr/bin/i586-alt-linux-gcov, /usr/bin/i586-alt-linux-protoize, /usr/bin/i586-alt-linux-unprotoize, /usr/bin/idle, /usr/bin/ifnames-default, /usr/bin/java, /usr/bin/keytool, /usr/bin/libtool-default, /usr/bin/libtoolize-default, /usr/bin/links, /usr/bin/modulator, /usr/bin/php, /usr/bin/policytool, /usr/bin/pydoc, /usr/bin/pynche, /usr/bin/servertool, /usr/bin/vim, /usr/bin/xbrowser, /usr/bin/xvt, ImageMagick, MySQL-client, MySQL-server, SysVinit, Xdialog, acpi, acpid, alsa-oss, alsa-utils, alternatives, antiword, apache-common, aplay, apt, apt-utils, arts, aspell, aterm, autoconf-common, autoconf_2.5, autoconf_2.6, automake-common, automake_1.10, automake_1.9, bash, bb, bdftopcf, bind-utils, binutils, bison, bzip2, catdoc, ccache, cdparanoia, chbg, clines, cmatrix, console-data, console-tools, console-vt-tools, coreutils, cpio-static, cpp4.1, curl, cutmp3, dbus, dbus-tools, desktop-file-utils, dialog, diffstat, diffutils, directfb, doxygen, e2fsprogs, eject, esound, etersoft-build-utils, faketime, fbgrab, fbpager, fbv, file, find-static, findutils, firefox, flawfinder, flex, fluxbox, fontconfig, fortune-mod, freetype, fslsfonts, ftp, gawk, gcc-c++-common, gcc-common, gcc4.1, gcc4.1-c++, gccmakedep, gdb, gdk-pixbuf, geany, gear, genromfs, getopt, gettext, gettext-tools, ghostscript-classic, ghostscript-common, ghostscript-minimal, git-core, gitk, glib-devel, glib2-devel, glibc-locales, glibc-timezones, glibc-utils, glxinfo, gnupg, gnupg2, gpm, gqview, groff-base, gtk+-devel, gzip, gzip-utils, hal, hasher, help2man, hostinfo, html2text, iceauth, iconv, imake, imlib-cfgeditor, imlib-devel, imlib2-devel, indent, info, irssi, kdebase-kcontrol, kdebase-kio, kdebase-konqueror, kdebase-libkonq, kdebase-libs, kdebase-wm, kdelibs, kdemultimedia-arts, kdemultimedia-libs, lbxproxy, less, libMySQL-devel, libSDL-devel, libXft-devel, libXpm, libXt-devel, libakode, libdc1394, libdca, libdirectfb-devel, libfreetype-devel, libgpg-error, libgsf, libgtk+2-common, libgtk+2-common-devel, libhw-tools, libidn, libiec61883, libnatspec, libncurses-devel, libncursesw-devel, libpango, libpcre-devel, libpng-devel, libqt3, libqt3-devel, librcc-gtk, libssl-devel, libtool-common, libtool_1.5, libxmlsec1, links1, links2, lndir, ltrace, lynx, m4, mailx, make, makedepend, man, mc, menu, menu-devel, mkfontdir, mkfontscale, mp3blaster, mp3info, mpc, mpd, mpg123, mplayer, mutt1.5, ncmpc, ncompress, netpbm, nfs-utils, nmap, nss-utils, openoffice.org, openssh, openssh-clients, passwd, patch, patchutils, pciutils, pdksh, perl-Encode, perl-base, perl-devel, perl-libwww, perl4-compat, php, php-base, pkg-config, poedit, postfix, procmail, procps, psi, psmisc, python-base, qt3-assistant, rcs, rman, rpm, rpm-build, rpm-build-compat, rpm-utils, rss_glx, rsync, screen, sed, sendmail-common, service, sessreg, setxkbmap, sh, shadow-change, shadow-groups, shared-mime-info, sharutils, sisyphus, sisyphus_check, sound_handler, sox, splint, srpmcmp, stardict-gtk, stardict-sdcv, strace, subversion, subversion-server-common, sudo, tar, tcl, termutils, texinfo, time, tk, tpb, tpctl, tree, udev, unrar, unzip, url_handler, urlview, userpasswd, util-linux, valgrind, vim-common, vim-console, vim-enhanced, vixie-cron, vorbis-tools, wget, which, wmacpi, wmbday, wmclockmon, wmcpuload, wmdiskmon, wmmaiload, wmmemload, wmnetload, wmupmon, x11setupdrv, xaos, xauth, xbill, xcmsdb, xconsole, xcursorgen, xdpyinfo, xdriinfo, xev, xf86dga, xfontsel, xfsinfo, xgamma, xhost, xinit, xinitrc, xkbcomp, xkbevd, xkbprint, xkill, xlockmore, xlsfonts, xmessage, xmms, xmodmap, xorg-x11-font-utils, xorg-x11-rgb, xorg-x11-server, xorg-x11-xfs, xosd-utils, xpdf-reader, xpdf-utils, xpenguins, xplanet, xprop, xrandr, xrdb, xrefresh, xset, xsetmode, xsetroot, xsnow, xstdcmap, xterm, xtrap, xvidtune, xvinfo, zip, zsh Как это истолковывать и что это значит? (В час тридцать восемь ночи что-то не соображу..) Спасибо. -- + Slava Semushin | slava.semushin @ gmail.com + ALT Linux Team | php-coder @ altlinux.ru ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Fwd: [git update] packages/test-glob-req: heads/master 2007-09-09 18:40 ` [devel] Fwd: [git update] packages/test-glob-req: heads/master Slava Semushin @ 2007-09-09 18:54 ` Alexey Tourbin 2007-09-10 9:34 ` [devel] find-package: implemented protection against shell metacharacters and evil paths Alexey Tourbin 0 siblings, 1 reply; 9+ messages in thread From: Alexey Tourbin @ 2007-09-09 18:54 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1216 bytes --] On Mon, Sep 10, 2007 at 01:40:41AM +0700, Slava Semushin wrote: > xosd-utils, xpdf-reader, xpdf-utils, xpenguins, xplanet, xprop, > xrandr, xrdb, xrefresh, xset, xsetmode, xsetroot, xsnow, xstdcmap, > xterm, xtrap, xvidtune, xvinfo, zip, zsh > > Как это истолковывать и что это значит? (В час тридцать восемь ночи > что-то не соображу..) > > Спасибо. В пакете имеется всего один скрипт вида #!/bin/sh /usr/bin/* Шелл-анализатор считает "/usr/bin/*" командой (не отсеивает глоб): $ sh --rpm-requires -c '/usr/bin/*' executable(/usr/bin/*) $ В таком виде это поступает на вход в shell.req. Из-за того, что старый (текущий) shell.req не работает в режиме -f, то там при определенной попытке разбить все полученные из --rpm-requires зависимости на слова выполняется реальный шелл-глоб: # Find requires found="$(FindReqs $reqs)" Здесь $reqs не только разбивается на слова, но и выполняется глоб, то есть /usr/bin/* среди $reqs фактически раскрывается во все-все файлы в /usr/bin. После этого запускается поиск зависимостей на все-все файлы в /usr/bin. Новый (мой not yet) shell.req работает в режиме -f, поэтому появляется неудовлетворенная зависимость на /usr/bin/* (sic!). [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [devel] find-package: implemented protection against shell metacharacters and evil paths 2007-09-09 18:54 ` Alexey Tourbin @ 2007-09-10 9:34 ` Alexey Tourbin 0 siblings, 0 replies; 9+ messages in thread From: Alexey Tourbin @ 2007-09-10 9:34 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3619 bytes --] On Sun, Sep 09, 2007 at 10:54:03PM +0400, Alexey Tourbin wrote: > В пакете имеется всего один скрипт вида > #!/bin/sh > /usr/bin/* > > Шелл-анализатор считает "/usr/bin/*" командой (не отсеивает глоб): > > $ sh --rpm-requires -c '/usr/bin/*' > executable(/usr/bin/*) > $ > > В таком виде это поступает на вход в shell.req. Из-за того, что старый > (текущий) shell.req не работает в режиме -f, то там при определенной > попытке разбить все полученные из --rpm-requires зависимости на слова > выполняется реальный шелл-глоб: > > # Find requires > found="$(FindReqs $reqs)" > > Здесь $reqs не только разбивается на слова, но и выполняется глоб, > то есть /usr/bin/* среди $reqs фактически раскрывается во все-все > файлы в /usr/bin. После этого запускается поиск зависимостей на все-все > файлы в /usr/bin. > > Новый (мой not yet) shell.req работает в режиме -f, поэтому появляется > неудовлетворенная зависимость на /usr/bin/* (sic!). Update of /people/at/packages/rpm.git Changes statistics since common ancestor `4.0.4-alt77-70-g9196764' follows: scripts/find-package.in | 12 +++++++++--- scripts/shell.req.in | 3 --- 2 files changed, 9 insertions(+), 6 deletions(-) Changelog since common ancestor `4.0.4-alt77-70-g9196764' follows: commit 2b1c36538fafa3b9daea6334a304b963995ef9fd Author: Alexey Tourbin <at@altlinux> Date: Mon Sep 10 13:26:52 2007 +0400 find-package: implemented protection against shell metacharacters and evil paths There are two possibilities for protection: 1) we should protect at least from very evil shell metacharacters, like [$*], and also from [:cntrl:] (e.g. newline). 2) we can provide an exhaustive list of characters that are valid for non-evil pathnames and commands, and issue mandatory warning if the command or path appears to be evil. I chose the latter approach. Valid character range is 'A-Za-z0-9/@=.,:_+-'. Note that (almost) all files from our base build system are valid paths: $ valid='A-Za-z0-9/@=.,:_+-' $ hsh-run -- rpm -qal |grep "[^$valid]" /usr/bin/[ /usr/share/man/man1/[.1.bz2 (contains no files) (contains no files) $ Later we'll see if the range of valid characters needs to be extended. Full diff since common ancestor `4.0.4-alt77-70-g9196764' follows: diff --git a/scripts/find-package.in b/scripts/find-package.in index 3971d48..eb0333a 100755 --- a/scripts/find-package.in +++ b/scripts/find-package.in @@ -272,15 +272,21 @@ FindPackage() local f="$1" r; shift || return for r; do local Verbose=Verbose + # Only these characters are allowed for pathnames or commands: + valid='A-Za-z0-9/@=.,:_+-' case "$r" in + /*[!"$valid"]*) + Info "$f: invalid pathname: $r" ;; /*) FindByPath "$f" "$r" ;; */*) - Info "$f: invalid pathname $r" ;; + Info "$f: invalid pathname: $r" ;; -*) - Info "$f: invalid command $r" ;; + Info "$f: invalid command: $r" ;; + *[!"$valid"]*) + Info "$f: invalid command: $r" ;; '') - ;; + Verbose "$f: empty command?" *) FindByName "$f" "$r" ;; esac diff --git a/scripts/shell.req.in b/scripts/shell.req.in index 5cb790b..28611b5 100755 --- a/scripts/shell.req.in +++ b/scripts/shell.req.in @@ -61,9 +61,6 @@ ShellReq() dname=${f#${RPM_BUILD_ROOT-}} dname=${dname%/*} for r in $reqs; do - if [ -z "${r/*\$*}" ]; then - continue - fi case "$(type -t -- "$r")" in alias|keyword|function|builtin) continue ;; [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-09-10 9:34 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-09-08 15:49 [devel] Fwd: [git update] packages/test-glob-req: heads/master Alexey Tourbin 2007-09-08 18:50 ` Michael Shigorin 2007-09-08 19:52 ` Alexey Tourbin 2007-09-08 20:00 ` [devel] [JT] zsh nonomatch by default pls :) Michael Shigorin 2007-09-08 20:10 ` Alexey Tourbin 2007-09-09 17:21 ` Michael Shigorin 2007-09-09 18:40 ` [devel] Fwd: [git update] packages/test-glob-req: heads/master Slava Semushin 2007-09-09 18:54 ` Alexey Tourbin 2007-09-10 9:34 ` [devel] find-package: implemented protection against shell metacharacters and evil paths Alexey Tourbin
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git