* Re: [Comm] Перекомпиляция ядра
2003-06-26 13:08 [Comm] Перекомпиляция ядра Shrek
@ 2003-06-26 9:22 ` Maxim.Savrilov
2003-06-26 14:57 ` Shrek
0 siblings, 1 reply; 14+ messages in thread
From: Maxim.Savrilov @ 2003-06-26 9:22 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 500 bytes --]
On Thu, 26 Jun 2003 13:08:42 +0000
Shrek <shrek@progroup.ru> wrote:
> День добрый.
>
> Подскажите как из ядра перекомпилять всего один модуль, не компиляя все ядро
Ну например можно в том каталоге, где лежит исходник этого модуля, сказать make
Он там потребует Rules.make
его из корня исходников можно взять
потом положить модуль в /lib/modules/...
depmod -a
это по логике
правильно можно сделать make modules
--
Некоторые пожилые граждане бывают опасны для нападающих.
[-- Attachment #2: Type: application/pgp-signature, Size: 307 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Comm] Перекомпиляция ядра
@ 2003-06-26 13:08 Shrek
2003-06-26 9:22 ` Maxim.Savrilov
0 siblings, 1 reply; 14+ messages in thread
From: Shrek @ 2003-06-26 13:08 UTC (permalink / raw)
To: community
День добрый.
Подскажите как из ядра перекомпилять всего один модуль, не компиляя все ядро
С уважением, Валерий.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-26 9:22 ` Maxim.Savrilov
@ 2003-06-26 14:57 ` Shrek
2003-06-26 17:47 ` Re[2]: " ASA
0 siblings, 1 reply; 14+ messages in thread
From: Shrek @ 2003-06-26 14:57 UTC (permalink / raw)
To: community
> Ну например можно в том каталоге, где лежит исходник этого модуля, сказать make
> Он там потребует Rules.make
> его из корня исходников можно взять
не выходит каменный цветок....
поставим вопрос по другому.
есть исходники модуля, но нет makefile, как этот модуль собрать?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re[2]: [Comm] Перекомпиляция ядра
2003-06-26 14:57 ` Shrek
@ 2003-06-26 17:47 ` ASA
2003-06-27 9:56 ` Shrek
0 siblings, 1 reply; 14+ messages in thread
From: ASA @ 2003-06-26 17:47 UTC (permalink / raw)
To: Shrek
Hello Shrek,
Thursday, June 26, 2003, 7:57:41 PM, you wrote:
>> Ну например можно в том каталоге, где лежит исходник этого модуля, сказать make
>> Он там потребует Rules.make
>> его из корня исходников можно взять
S> не выходит каменный цветок....
S> поставим вопрос по другому.
S> есть исходники модуля, но нет makefile, как этот модуль собрать?
Модуль стороннего производителя?
На тебе образец Makefile'а для одного файла module.c
(подставить путь к исходникам и имя модуля вместо module.o)
KERNELDIR = /usr/src/kernel-2.4.20/
include $(KERNELDIR)/.config
CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O2 -Wall
ifdef CONFIG_SMP
CFLAGS += -D__SMP__ -DSMP
endif
all: module.o
clean:
rm -f *.o *~ core
--
Best regards,
ASA mailto:llb@udm.ru
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-26 17:47 ` Re[2]: " ASA
@ 2003-06-27 9:56 ` Shrek
2003-06-27 14:21 ` Re[2]: " ASA
0 siblings, 1 reply; 14+ messages in thread
From: Shrek @ 2003-06-27 9:56 UTC (permalink / raw)
To: community
> Модуль стороннего производителя?
>
> На тебе образец Makefile'а для одного файла module.c
> (подставить путь к исходникам и имя модуля вместо module.o)
Спасибо, но не поможет, т.к. файлов там штук 6 -7.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re[2]: [Comm] Перекомпиляция ядра
2003-06-27 9:56 ` Shrek
@ 2003-06-27 14:21 ` ASA
0 siblings, 1 reply; 14+ messages in thread
From: ASA @ 2003-06-27 14:21 UTC (permalink / raw)
To: Shrek
Hello Shrek,
Friday, June 27, 2003, 2:56:36 PM, you wrote:
>> На тебе образец Makefile'а для одного файла module.c
>> (подставить путь к исходникам и имя модуля вместо module.o)
S> Спасибо, но не поможет, т.к. файлов там штук 6 -7.
а почему это вы так решили, что не поможет?
дописываем еще одно правило в конец makefile:
(module1.o соответстуют module1.c и т.п.)
module.o: module1.o module2.o module3.o
$(LD) -r $^ -o $@
Вуаля.
про tab'ы не забываем (это так, на всякий случай).
--
Best regards,
ASA mailto:llb@udm.ru
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re[2]: [Comm] Перекомпиляция ядра
@ 2003-06-27 18:39 ` ASA
2003-06-27 19:28 ` Shrek
2003-06-28 17:36 ` Gleb Kulikov
1 sibling, 1 reply; 14+ messages in thread
From: ASA @ 2003-06-27 18:39 UTC (permalink / raw)
To: Shrek
Hello Shrek,
Friday, June 27, 2003, 11:12:44 PM, you wrote:
>> module.o: module1.o module2.o module3.o
>> $(LD) -r $^ -o $@
S> pwc-ctrl.c
S> pwc-ioctl.h
S> pwc_nala.h
S> pwc-uncompress.h
S> pwc.h
S> pwc_kiara.h
S> pwc_timon.h
S> pwc-if.c
S> pwc-misc.c
S> pwc-uncompress.c
S> в итоге должен получиться один модуль - pwc.o
==== начало предлагаемого Makefile
KERNELDIR = /usr/src/kernel-2.4.20/
include $(KERNELDIR)/.config
CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O2 -Wall
ifdef CONFIG_SMP
CFLAGS += -D__SMP__ -DSMP
endif
all: pwc.o
clean:
rm -f *.o *~ core
pwc.o: pwc-ctrl.o pwc-if.o pwc-misc.o pwc-uncompress.o
$(LD) -r $^ -o $@
==== конец предлагаемого Makefile
Там, где отступ в 8 символов - читать не пробел, а tab
(очень важный нюанс)
для компиляции этого хватит. Если планируется еще и
редактировать .h файлы между компиляциями, то перемежать их
(компиляции) либо make clean, либо добавить зависимости что-то типа
pwc-ctrl.o: pwc-ctrl.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
pwc-if.o: pwc-if.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
pwc-misc.o: pwc-misc.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
pwc-uncompress.o: pwc-uncompress.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
Но думаю, в данном случае это будет лишнее.
--
Best regards,
ASA mailto:llb@udm.ru
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-27 18:39 ` ASA
@ 2003-06-27 19:28 ` Shrek
2003-06-28 3:42 ` Re[2]: " ASA
0 siblings, 1 reply; 14+ messages in thread
From: Shrek @ 2003-06-27 19:28 UTC (permalink / raw)
To: community
Makefile
---------------------------------------------------------
KERNELDIR = /usr/src/RPM/BUILD/linux-2.4.20
include $(KERNELDIR)/.config
CFLAGS = -D__KERNEL__ -DMODULE -I$(KERNELDIR)/include -O2 -Wall
CC = gcc-2.96
ifdef CONFIG_SMP
CFLAGS += -D__SMP__ -DSMP
endif
all: pwc.o
clean:
rm -f *.o *~ core
pwc-uncompress.o: pwc-uncompress.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
$(CC) -c $(CFLAGS) pwc-uncompress.c
pwc-ctrl.o: pwc-ctrl.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
$(CC) -c $(CFLAGS) pwc-ctrl.c
pwc-if.o: pwc-if.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
$(CC) -c $(CFLAGS) pwc-if.c
pwc-misc.o: pwc-misc.c pwc-ioctl.h pwc_nala.h \
pwc-uncompress.h pwc.h pwc_kiara.h pwc_timon.h
$(CC) -c $(CFLAGS) pwc-misc.c
pwc.o: pwc-ctrl.o pwc-if.o pwc-misc.o pwc-uncompress.o
$(LD) -r $^ -o $@
--------------------------------------------------------------------------------------
мммм... чё то не срослось
$ make
gcc-2.96 -c -D__KERNEL__ -DMODULE -I/usr/src/linux-2.4.20/include -O2
-Wall pwc-ctrl.c
gcc-2.96 -c -D__KERNEL__ -DMODULE
-I/usr/src/RPM/BUILD/linux-2.4.20/include -O2 -Wall pwc-if.c
pwc-if.c: In function `pwc_isoc_init':
pwc-if.c:850: warning: assignment from incompatible pointer type
gcc-2.96 -c -D__KERNEL__ -DMODULE
-I/usr/src/RPM/BUILD/linux-2.4.20/include -O2 -Wall pwc-misc.c
gcc-2.96 -c -D__KERNEL__ -DMODULE
-I/usr/src/RPM/BUILD/linux-2.4.20/include -O2 -Wall pwc-uncompress.c
pwc-uncompress.c:178: parse error before
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:178: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:178: warning: data definition has no type or storage class
pwc-uncompress.c:179: parse error before
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:179: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:179: warning: data definition has no type or storage class
pwc-uncompress.c:180: parse error before
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:180: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
pwc-uncompress.c:180: warning: data definition has no type or storage class
make: *** [pwc-uncompress.o] Ошибка 1
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re[2]: [Comm] Перекомпиляция ядра
2003-06-27 19:28 ` Shrek
@ 2003-06-28 3:42 ` ASA
2003-06-28 7:25 ` Shrek
0 siblings, 1 reply; 14+ messages in thread
From: ASA @ 2003-06-28 3:42 UTC (permalink / raw)
To: Shrek
Hello Shrek,
Saturday, June 28, 2003, 12:28:24 AM, you wrote:
S> -I/usr/src/RPM/BUILD/linux-2.4.20/include -O2 -Wall pwc-uncompress.c
S> pwc-uncompress.c:178: parse error before
S> `this_object_must_be_defined_as_export_objs_in_the_Makefile'
Мда.... Какой-то трюк, связанный с Makefile.
Неужели нет никакой возможности достать Makefile от производителя?
--
Best regards,
ASA mailto:llb@udm.ru
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-28 3:42 ` Re[2]: " ASA
@ 2003-06-28 7:25 ` Shrek
0 siblings, 1 reply; 14+ messages in thread
From: Shrek @ 2003-06-28 7:25 UTC (permalink / raw)
To: community
> S> -I/usr/src/RPM/BUILD/linux-2.4.20/include -O2 -Wall pwc-uncompress.c
> S> pwc-uncompress.c:178: parse error before
> S> `this_object_must_be_defined_as_export_objs_in_the_Makefile'
> Мда.... Какой-то трюк, связанный с Makefile.
> Неужели нет никакой возможности достать Makefile от производителя?
в том то и дело что нету
http://www.smcc.demon.nl/webcam/
или у меня глаза в трусах?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-28 17:36 ` Gleb Kulikov
@ 2003-06-28 7:26 ` Shrek
0 siblings, 0 replies; 14+ messages in thread
From: Shrek @ 2003-06-28 7:26 UTC (permalink / raw)
To: community
> Коли не знаешь / не любишь (а кому он нравится?) формата мэйк, ну откажись от
> него. Или вручную собирай, или задействуй scons вместо make-а.
>
> Пишешь Sconstruct файл типа:
>
> SOURCES = ["pwc-ctrl.c", "pwc-if.c", "pwc-misc.c", "pwc-uncompress.c"]
> kerneldir = "/usr/src/kernel-2.4.20/"
>
> defines = ["-D__LINUX__", "-D__KERNEL__", " -DMODULE", "-Wall"]
> optimflg = "-O2"
> debugflg = "-g"
>
> if debug:
> defines.append(debugflg)
> if optimize:
> defines.append(optimflg)
>
> env = Environment(CCFLAGS = defines, CPPPATH=kerneldir+"/include")
>
> env.StaticObject(target = 'pwc.o', source = SOURCES)
>
> И запускаешь на компиляцию
> scons optimize=1 .
>
> исходники и .h можно править, как обычно -- вручную в майк (SConstruct) файле,
> прописываать зависимости не нужно, они будут отслежены автоматически.
>
Спасибо, попробую
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] ðÅÒÅËÏÍÐÉÌÑÃÉÑ ÑÄÒÁ
@ 2003-06-28 17:11 ` Ed V. Bartosh
2003-06-28 18:39 ` [Comm] Перекомпиляция ядра Shrek
1 sibling, 0 replies; 14+ messages in thread
From: Ed V. Bartosh @ 2003-06-28 17:11 UTC (permalink / raw)
To: community
>>>>> "A" == ASA writes:
S>> в том то и дело что нету http://www.smcc.demon.nl/webcam/ или у
S>> меня глаза в трусах?
A> :)))
A> Почитал вот http://www.smcc.demon.nl/webcam/release.html#pwcx
A> Note: The PWC module is now part of the main kernel tree and is
A> still in active development.
A> Глянул в исходник ядра - так, действительно есть.
A> В общем - просто берете те файлы, которые у вас - и замещаете ими
A> соответствующие в drivers/usb (если ваши - более свежие)
А может пакетик с модульком лучше собрать ?
--
Best regards,
Ed V. Bartosh
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-27 18:39 ` ASA
@ 2003-06-28 17:36 ` Gleb Kulikov
2003-06-28 7:26 ` Shrek
1 sibling, 1 reply; 14+ messages in thread
From: Gleb Kulikov @ 2003-06-28 17:36 UTC (permalink / raw)
To: community
В сообщении от 27 Июнь 2003 12:12 Shrek написал:
> pwc-ctrl.c
> pwc-ioctl.h
[...]
> в итоге должен получиться один модуль - pwc.o
Коли не знаешь / не любишь (а кому он нравится?) формата мэйк, ну откажись от
него. Или вручную собирай, или задействуй scons вместо make-а.
Пишешь Sconstruct файл типа:
SOURCES = ["pwc-ctrl.c", "pwc-if.c", "pwc-misc.c", "pwc-uncompress.c"]
kerneldir = "/usr/src/kernel-2.4.20/"
defines = ["-D__LINUX__", "-D__KERNEL__", " -DMODULE", "-Wall"]
optimflg = "-O2"
debugflg = "-g"
if debug:
defines.append(debugflg)
if optimize:
defines.append(optimflg)
env = Environment(CCFLAGS = defines, CPPPATH=kerneldir+"/include")
env.StaticObject(target = 'pwc.o', source = SOURCES)
И запускаешь на компиляцию
scons optimize=1 .
исходники и .h можно править, как обычно -- вручную в майк (SConstruct) файле,
прописываать зависимости не нужно, они будут отслежены автоматически.
--
Салют, /GLeb
>From okayunov@mtu-net.ru Sat Jun 28 08:46:37 2003
Return-Path: <okayunov@mtu-net.ru>
Delivered-To: community@lrn.ru
Received: from master.altlinux.ru (master.altlinux.ru [62.118.250.235])
by lrn.ru (Postfix) with ESMTP id 00EEA48A8D
for <community@lrn.ru>; Sat, 28 Jun 2003 08:46:36 +0400 (MSD)
Received: from hueymiccailhuitl.mtu.ru (hueytecuilhuitl.mtu.ru
[195.34.32.123])
by master.altlinux.ru (Postfix) with ESMTP id D7101E31CF
for <community@altlinux.ru>; Sat, 28 Jun 2003 08:46:36 +0400 (MSD)
Received: from mtu-net.ru (ppp144-229.dialup.mtu-net.ru [62.118.144.229])
by hueymiccailhuitl.mtu.ru (Postfix) with ESMTP id C04ACFB0B1
for <community@altlinux.ru>; Sat, 28 Jun 2003 08:46:35 +0400 (MSD)
(envelope-from okayunov@mtu-net.ru)
Message-ID: <3EFD1DA8.3040209@mtu-net.ru>
Date: Sat, 28 Jun 2003 08:46:32 +0400
From: "Oleg N. Kayunov" <okayunov@mtu-net.ru>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.2.1) Gecko/20030210
X-Accept-Language: ru-ru, en
MIME-Version: 1.0
To: community@altlinux.ru
References: <200306251516.28744.siba3000@bk.ru>
<200306271153.46223.shawkat@samitc.uzsci.net>
<200306271450.15786.siba3000@bk.ru> <200306271309.24290.someone_lists@bk.ru>
In-Reply-To: <200306271309.24290.someone_lists@bk.ru>
X-Enigmail-Version: 0.70.0.0
X-Enigmail-Supports: pgp-inline, pgp-mime
Content-Type: text/plain; charset=KOI8-R; format=flowed
Content-Transfer-Encoding: 8bit
Subject: [Comm] Re: =?koi8-r?b?88/axMHU2CDPwtLB2iDEydPLwQ==?=
X-BeenThere: community@altlinux.ru
X-Mailman-Version: 2.1.1
Precedence: list
Reply-To: community@altlinux.ru
List-Id: <community.altlinux.ru>
List-Unsubscribe: <http://www.altlinux.ru/mailman/listinfo/community>,
<mailto:community-request@altlinux.ru?subject=unsubscribe>
List-Archive: </pipermail/community>
List-Post: <mailto:community@altlinux.ru>
List-Help: <mailto:community-request@altlinux.ru?subject=help>
List-Subscribe: <http://www.altlinux.ru/mailman/listinfo/community>,
<mailto:community-request@altlinux.ru?subject=subscribe>
X-List-Received-Date: Sat, 28 Jun 2003 04:46:37 -0000
Someone Unknown пишет:
>В сообщении от 27 Июнь 2003 12:50 ILYA Sibgatullin написал(a):
>
>
>>В сообщении от Пятница 27 Июнь 2003 12:53 Shawkat написал(a):
>>
>>
>>>>А если взять готовый образ, примаунтить его и изменить некоторые
>>>>файлы. Он потом запишеться?
>>>>
>>>>
>>>Нет - iso9660 - read-only файловая система - в нее нельзя записать.
>>>ее можно только сгенерировать.
>>>
>>>
>>Жаль... А так хотелось! Но всё равно спасибо.
>>
>>
>
>Но... ЗАЧЕМ?! 8))
>
Ну например: есть ГОТОВЫЙ загрузочный CD-юк (Линуксовый, скажем), но
хочется просто добавить туда кое-что. Таки - опаньки! Надо весь гемморой
(включая загрузочные построения) делать с самого начала. Хорошо ещё, что
на Лиуксовых CD-ках почему-то сохраняются опции командной строки mkisofs
- непонятно, правда, зачем.
--
== В действительности все обстоит совершенно иначе чем на самом деле. ==
BR, Oleg N. Kayunov.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Comm] Перекомпиляция ядра
2003-06-28 17:11 ` [Comm] ðÅÒÅËÏÍÐÉÌÑÃÉÑ ÑÄÒÁ Ed V. Bartosh
@ 2003-06-28 18:39 ` Shrek
1 sibling, 0 replies; 14+ messages in thread
From: Shrek @ 2003-06-28 18:39 UTC (permalink / raw)
To: community
> В общем - просто берете те файлы, которые у вас - и замещаете
> ими соответствующие в drivers/usb (если ваши - более свежие)
>
> Далее по
> http://www.smcc.demon.nl/webcam/install.html
>
> After this has been done, reconfigure your kernel:
>
> # make menuconfig
> or
> # make xconfig
>
> While you're at it, check the following settings:
>
> * Loadable module support -> Set version information on modules OFF
> * [2.4.*] Input core support -> Input core support ON
> * [2.4.*] Input cure support -> Event interface support ON
> * Sound -> Sound card support ON (even if you don't have a soundcard!)
> * [2.2.*] Character devices -> Video4Linux ON
> * [2.4.*] Multimedia devices -> Video for Linux ON
> * [2.4.*] Multimedia devices -> Video for Linux -> information in proc filesystem ON
> * USB support -> Support for USB ON
> * USB support -> The USB driver: OHCI, UHCI, alternate UHCI
> * USB support -> USB Audio support ON
> * USB support -> and of course, the Philips Webcam option.
собственно это я делал... дальше make dep, make modules по идее. ан не
выходит каменный цветок - rpmbuild -bb kernel24.spec
но камеру все же запустил, с epcam-0.6, так что вопрос снят
Спасибо.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2003-06-28 18:39 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-26 13:08 [Comm] Перекомпиляция ядра Shrek
2003-06-26 9:22 ` Maxim.Savrilov
2003-06-26 14:57 ` Shrek
2003-06-26 17:47 ` Re[2]: " ASA
2003-06-27 9:56 ` Shrek
2003-06-27 14:21 ` Re[2]: " ASA
2003-06-27 18:39 ` ASA
2003-06-27 19:28 ` Shrek
2003-06-28 3:42 ` Re[2]: " ASA
2003-06-28 7:25 ` Shrek
2003-06-28 17:11 ` [Comm] ðÅÒÅËÏÍÐÉÌÑÃÉÑ ÑÄÒÁ Ed V. Bartosh
2003-06-28 18:39 ` [Comm] Перекомпиляция ядра Shrek
2003-06-28 17:36 ` Gleb Kulikov
2003-06-28 7:26 ` Shrek
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/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 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git