[DRBD-user] error drbd integrating into kernel source

Walter Robert Ditzler ditwal001 at gmail.com
Thu Apr 19 12:23:25 CEST 2012

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


lars,

that's it, your solution works 100%. just curious, why hast hat tob e
changed for debian release?

thanks a lot, walter!


fort he public my resumee:

integrating drbd into kernel source (/usr/src/linux-3.3.2) plus generating a
drbd 8.4.1 deb package.

my script:
***
#!/bin/sh

aptitude update
aptitude safe-upgrade
aptitude clean
apt-get clean

aptitude -y install flex debconf-utils docbook-xml docbook-xsl dpatch
xsltproc autoheader autoconf
#purge in case script run already
aptitude -y purge drbd8-module-source drbd8-utils

cd /usr/src

#purge in case script run already
rm -rf drbd-8.4/
rm -rf drbd-8.4.1/
rm -f drbd-8.4.1.tar.gz
rm -f drbd8-module-source_8.4.1-2_all.deb
rm -f drbd8-utils_8.4.1-2_amd64.deb
rm -f drbd8_8.4.1-2_amd64.changes

#start over with compiling and installation
wget --continue http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz
tar -xzf drbd-8.4.1.tar.gz
git clone git://git.drbd.org/drbd-8.4.git

cd /usr/src/drbd-8.4
dpkg-buildpackage -rfakeroot -b -uc

cd /usr/src
dpkg -i drbd8-utils_8.4.1-2_amd64.deb
dpkg -i drbd8-module-source_8.4.1-2_all.deb

cd /usr/src/drbd-8.4.1
./configure --with-xen --with-utils --prefix=/usr --localstatedir=/var
--sysconfdir=/etc --with-km

make clean
make KDIR=/usr/src/linux-3.3.2
***

your fix:
***
diff --git a/drbd/drbd_nl.c b/drbd/drbd_nl.c index ecc35d5..b31cb1c 100644
--- a/drbd/drbd_nl.c
+++ b/drbd/drbd_nl.c
@@ -180,7 +180,7 @@ static int drbd_adm_prepare(struct sk_buff *skb, struct
genl_info *info,
 
 	/* genl_rcv_msg only checks for CAP_NET_ADMIN on "GENL_ADMIN_PERM"
:( */
 	if (cmd != DRBD_ADM_GET_STATUS
-	&& security_netlink_recv(skb, CAP_SYS_ADMIN))
+	&& !capable(CAP_SYS_ADMIN))
 	       return -EPERM;
 
 	adm_ctx.reply_skb = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
***




-----Original Message-----
From: drbd-user-bounces at lists.linbit.com
[mailto:drbd-user-bounces at lists.linbit.com] On Behalf Of 'Lars Ellenberg'
Sent: Donnerstag, 19. April 2012 11:27
To: drbd-user at lists.linbit.com
Subject: Re: [DRBD-user] error drbd integrating into kernel source

On Thu, Apr 19, 2012 at 03:05:28AM +0200, Walter Robert Ditzler wrote:
> hi lars,
> 
> sorry for replying so late, i just had to test and try all ways out.
> unfortunatelly always with the same result > nothing.
> 
> 1) i have kernel modules build
> 2) i did everything acording linbit instructions
> 
> are here maybe some software packages missing, do you maybe have a 
> list what's needed to compile drbd 8.4.1?
> 
> the git exort and the creation oft he debian packages works perfect 
> (dpkg-buildpackage -rfakeroot -b -uc)!
> 
> any glue on that?
> 
> thanks a lots for reading :-)
> 
> walter
> 
> 
> 
> the result is always the same:
> ***
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/documentation'
> 
>         Userland tools build was successful.
> make[1]: Entering directory `/usr/src/drbd-8.4.1/drbd'
> 
>     Calling toplevel makefile of kernel source tree, which I believe is in
>     KDIR=/lib/modules/3.3.2-adx-xen/build
> 
> make -C /lib/modules/3.3.2-adx-xen/build
SUBDIRS=/usr/src/drbd-8.4.1/drbd
> modules
> make[2]: Entering directory `/usr/src/linux-3.3.2'
>   CC [M]  /usr/src/drbd-8.4.1/drbd/drbd_buildtag.o
>   CC [M]  /usr/src/drbd-8.4.1/drbd/drbd_nl.o
> /usr/src/drbd-8.4.1/drbd/drbd_nl.c: In function 'drbd_adm_prepare':
> /usr/src/drbd-8.4.1/drbd/drbd_nl.c:183: error: implicit declaration of 
> function 'security_netlink_recv'

This should do the trick:

diff --git a/drbd/drbd_nl.c b/drbd/drbd_nl.c index ecc35d5..b31cb1c 100644
--- a/drbd/drbd_nl.c
+++ b/drbd/drbd_nl.c
@@ -180,7 +180,7 @@ static int drbd_adm_prepare(struct sk_buff *skb, struct
genl_info *info,
 
 	/* genl_rcv_msg only checks for CAP_NET_ADMIN on "GENL_ADMIN_PERM"
:( */
 	if (cmd != DRBD_ADM_GET_STATUS
-	&& security_netlink_recv(skb, CAP_SYS_ADMIN))
+	&& !capable(CAP_SYS_ADMIN))
 	       return -EPERM;
 
 	adm_ctx.reply_skb = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);


> make[3]: *** [/usr/src/drbd-8.4.1/drbd/drbd_nl.o] Error 1
> make[2]: *** [_module_/usr/src/drbd-8.4.1/drbd] Error 2
> make[2]: Leaving directory `/usr/src/linux-3.3.2'
> make[1]: *** [kbuild] Error 2
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/drbd'
> make: *** [module] Error 2
> root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1# clear 
> root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1# make make -C drbd 
> drbd_buildtag.c
> make[1]: Entering directory `/usr/src/drbd-8.4.1/drbd'
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/drbd'
> make[1]: Entering directory `/usr/src/drbd-8.4.1/user'
> cp ../drbd/drbd_buildtag.c drbd_buildtag.c
> gcc -g -O2 -Wall -I../drbd -I../drbd/compat   -c -o drbd_buildtag.o
> drbd_buildtag.c
> gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdadm
drbdadm_scanner.o
> drbdadm_parser.o drbdadm_main.o drbdadm_adjust.o drbdtool_common.o 
> drbdadm_usage_cnt.o drbd_buildtag.o registry.o config_flags.o 
> libgenl.o drbd_nla.o
> gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdmeta drbdmeta.o
> drbdmeta_scanner.o drbdtool_common.o drbd_buildtag.o
> gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdsetup libgenl.o
> registry.o drbdsetup.o drbdtool_common.o drbd_buildtag.o 
> drbd_strings.o config_flags.o drbd_nla.o wrap_printf.o make -C legacy
> make[2]: Entering directory `/usr/src/drbd-8.4.1/user/legacy'
> cp ../../drbd/drbd_buildtag.c drbd_buildtag.c
> gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat   -c -o drbd_buildtag.o
> drbd_buildtag.c
> gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat    -o drbdadm-83
> drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o drbdadm_adjust.o 
> drbdtool_common.o drbdadm_usage_cnt.o drbd_buildtag.o
drbdadm_minor_table.o
> gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat    -o drbdsetup-83
> drbdsetup.o drbdtool_common.o drbd_buildtag.o drbd_strings.o
> make[2]: Leaving directory `/usr/src/drbd-8.4.1/user/legacy'
> ln -f -s legacy/drbdadm-83
> ln -f -s legacy/drbdsetup-83
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/user'
> make[1]: Entering directory `/usr/src/drbd-8.4.1/scripts'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/scripts'
> make[1]: Entering directory `/usr/src/drbd-8.4.1/documentation'
> To (re)make the documentation: make doc
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/documentation'
> 
>         Userland tools build was successful.
> make[1]: Entering directory `/usr/src/drbd-8.4.1/drbd'
> 
>     Calling toplevel makefile of kernel source tree, which I believe is in
>     KDIR=/lib/modules/3.3.2-adx-xen/build
> 
> make -C /lib/modules/3.3.2-adx-xen/build
SUBDIRS=/usr/src/drbd-8.4.1/drbd
> modules
> make[2]: Entering directory `/usr/src/linux-3.3.2'
>   CC [M]  /usr/src/drbd-8.4.1/drbd/drbd_buildtag.o
>   CC [M]  /usr/src/drbd-8.4.1/drbd/drbd_nl.o
> /usr/src/drbd-8.4.1/drbd/drbd_nl.c: In function 'drbd_adm_prepare':
> /usr/src/drbd-8.4.1/drbd/drbd_nl.c:183: error: implicit declaration of 
> function 'security_netlink_recv'
> make[3]: *** [/usr/src/drbd-8.4.1/drbd/drbd_nl.o] Error 1
> make[2]: *** [_module_/usr/src/drbd-8.4.1/drbd] Error 2
> make[2]: Leaving directory `/usr/src/linux-3.3.2'
> make[1]: *** [kbuild] Error 2
> make[1]: Leaving directory `/usr/src/drbd-8.4.1/drbd'
> make: *** [module] Error 2
> root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1#
> ***
> 
> -----Original Message-----
> From: drbd-user-bounces at lists.linbit.com
> [mailto:drbd-user-bounces at lists.linbit.com] On Behalf Of Lars 
> Ellenberg
> Sent: Mittwoch, 4. April 2012 16:10
> To: drbd-user at lists.linbit.com
> Subject: Re: [DRBD-user] error drbd integrating into kernel source
> 
> On Wed, Apr 04, 2012 at 03:35:03PM +0200, Walter Robert Ditzler wrote:
> > hello drbd list,
> > 
> >  
> > 
> > i can't integrate drbd into kernel source, never worked form me! 
> > bellow my steps with output result:
> > 
> >  
> > 
> > make clean all
> > 
> > make clean
> > 
> > ./configure --with-km
> > 
> > make KDIR=/usr/src/linux-3.3.1
> > 
> >  
> > 
> > any glue on that matter?
> 
> make sure your kernel source is configured for your running kernel.
> best to use the matching kernel headers or devel packages.
> 
> if you want to do it yourself, try with cd /usr/src/linux-3.3.1 make 
> oldconfig make modules_prepare
> 
> maybe more.
> just "standard" prepare for building out of tree modules.
> 
> > 
> >  
> > 
> > thanks a lot, walter
> > 
> >  
> > 
> >  
> > 
> > ***
> > 
> > root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1# ./configure --with-km
> > 
> > checking for gcc... gcc
> > 
> > checking whether the C compiler works... yes
> > 
> > checking for C compiler default output file name... a.out
> > 
> > checking for suffix of executables...
> > 
> > checking whether we are cross compiling... no
> > 
> > checking for suffix of object files... o
> > 
> > checking whether we are using the GNU C compiler... yes
> > 
> > checking whether gcc accepts -g... yes
> > 
> > checking for gcc option to accept ISO C89... none needed
> > 
> > checking whether ln -s works... yes
> > 
> > checking for sed... /bin/sed
> > 
> > checking for grep... /bin/grep
> > 
> > checking for flex... /usr/bin/flex
> > 
> > checking for rpmbuild... no
> > 
> > checking for xsltproc... /usr/bin/xsltproc
> > 
> > checking for tar... /bin/tar
> > 
> > checking for git... /usr/bin/git
> > 
> > checking for dpkg-buildpackage... /usr/bin/dpkg-buildpackage
> > 
> > checking for udevadm... /sbin/udevadm
> > 
> > checking for udevinfo... false
> > 
> > configure: WARNING: No rpmbuild found, building RPM packages is
disabled.
> > 
> > checking for /etc/gentoo-release... no
> > 
> > checking for /etc/redhat-release... no
> > 
> > checking for /etc/slackware-version... no
> > 
> > checking for /etc/debian_version... yes
> > 
> > checking for /etc/SuSE-release... no
> > 
> > configure: configured for Debian (includes Ubuntu).
> > 
> > configure: creating ./config.status
> > 
> > config.status: creating Makefile
> > 
> > config.status: creating user/Makefile
> > 
> > config.status: creating user/legacy/Makefile
> > 
> > config.status: creating scripts/Makefile
> > 
> > config.status: creating documentation/Makefile
> > 
> > config.status: creating user/config.h
> > 
> > config.status: user/config.h is unchanged
> > 
> > config.status: creating user/legacy/config.h
> > 
> > config.status: user/legacy/config.h is unchanged
> > 
> > ***
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> > ***
> > 
> > root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1# make
> > KDIR=/usr/src/linux-3.3.1
> > 
> > make -C drbd drbd_buildtag.c
> > 
> > make[1]: Entering directory `/usr/src/drbd-8.4.1/drbd'
> > 
> > make[1]: Leaving directory `/usr/src/drbd-8.4.1/drbd'
> > 
> > make[1]: Entering directory `/usr/src/drbd-8.4.1/user'
> > 
> > cp ../drbd/drbd_buildtag.c drbd_buildtag.c
> > 
> > gcc -g -O2 -Wall -I../drbd -I../drbd/compat   -c -o drbd_buildtag.o
> > drbd_buildtag.c
> > 
> > gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdadm
> drbdadm_scanner.o
> > drbdadm_parser.o drbdadm_main.o drbdadm_adjust.o drbdtool_common.o 
> > drbdadm_usage_cnt.o drbd_buildtag.o registry.o config_flags.o 
> > libgenl.o drbd_nla.o
> > 
> > gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdmeta drbdmeta.o
> > drbdmeta_scanner.o drbdtool_common.o drbd_buildtag.o
> > 
> > gcc -g -O2 -Wall -I../drbd -I../drbd/compat    -o drbdsetup libgenl.o
> > registry.o drbdsetup.o drbdtool_common.o drbd_buildtag.o 
> > drbd_strings.o config_flags.o drbd_nla.o wrap_printf.o
> > 
> > make -C legacy
> > 
> > make[2]: Entering directory `/usr/src/drbd-8.4.1/user/legacy'
> > 
> > cp ../../drbd/drbd_buildtag.c drbd_buildtag.c
> > 
> > gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat   -c -o drbd_buildtag.o
> > drbd_buildtag.c
> > 
> > gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat    -o drbdadm-83
> > drbdadm_scanner.o drbdadm_parser.o drbdadm_main.o drbdadm_adjust.o 
> > drbdtool_common.o drbdadm_usage_cnt.o drbd_buildtag.o 
> > drbdadm_minor_table.o
> > 
> > gcc -g -O2 -Wall -I. -I../drbd -I../drbd/compat    -o drbdsetup-83
> > drbdsetup.o drbdtool_common.o drbd_buildtag.o drbd_strings.o
> > 
> > make[2]: Leaving directory `/usr/src/drbd-8.4.1/user/legacy'
> > 
> > ln -f -s legacy/drbdadm-83
> > 
> > ln -f -s legacy/drbdsetup-83
> > 
> > make[1]: Leaving directory `/usr/src/drbd-8.4.1/user'
> > 
> > make[1]: Entering directory `/usr/src/drbd-8.4.1/scripts'
> > 
> > make[1]: Nothing to be done for `all'.
> > 
> > make[1]: Leaving directory `/usr/src/drbd-8.4.1/scripts'
> > 
> > make[1]: Entering directory `/usr/src/drbd-8.4.1/documentation'
> > 
> > To (re)make the documentation: make doc
> > 
> > make[1]: Leaving directory `/usr/src/drbd-8.4.1/documentation'
> > 
> >  
> > 
> >         Userland tools build was successful.
> > 
> > make[1]: Entering directory `/usr/src/drbd-8.4.1/drbd'
> > 
> >  
> > 
> >     Calling toplevel makefile of kernel source tree, which I believe 
> > is in
> > 
> >     KDIR=/usr/src/linux-3.3.1
> > 
> >  
> > 
> > make -C /usr/src/linux-3.3.1   SUBDIRS=/usr/src/drbd-8.4.1/drbd  modules
> > 
> > make[2]: Entering directory `/usr/src/linux-3.3.1'
> > 
> >  
> > 
> >   WARNING: Symbol version dump /usr/src/linux-3.3.1/Module.symvers
> > 
> >            is missing; modules will have no dependencies and
modversions.
> > 
> >  
> > 
> > grep: /usr/src/linux-3.3.1/Module.symvers: No such file or directory
> > 
> > grep: /usr/src/linux-3.3.1/Module.symvers: No such file or directory
> > 
> >   CC [M]  /usr/src/drbd-8.4.1/drbd/drbd_buildtag.o
> > 
> > In file included from include/linux/gfp.h:4,
> > 
> >                  from include/linux/irq.h:20,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/hardirq.h:5,
> > 
> >                  from include/linux/hardirq.h:7,
> > 
> >                  from include/net/sock.h:43,
> > 
> >                  from include/linux/connector.h:83,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/linux/drbd.h:28,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/drbd_buildtag.c:2:
> > 
> > include/linux/mmzone.h:18:30: error: generated/bounds.h: No such 
> > file or directory
> > 
> > include/linux/mmzone.h:280:5: warning: "MAX_NR_ZONES" is not defined
> > 
> > include/linux/mmzone.h:282:7: warning: "MAX_NR_ZONES" is not defined
> > 
> > include/linux/mmzone.h:284:7: warning: "MAX_NR_ZONES" is not defined
> > 
> > In file included from include/linux/gfp.h:4,
> > 
> >                  from include/linux/irq.h:20,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/hardirq.h:5,
> > 
> >                  from include/linux/hardirq.h:7,
> > 
> >                  from include/net/sock.h:43,
> > 
> >                  from include/linux/connector.h:83,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/linux/drbd.h:28,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/drbd_buildtag.c:2:
> > 
> > include/linux/mmzone.h:324: error: 'MAX_NR_ZONES' undeclared here 
> > (not in a
> > function)
> > 
> > In file included from include/linux/scatterlist.h:6,
> > 
> >                  from include/linux/dmaengine.h:26,
> > 
> >                  from include/linux/skbuff.h:30,
> > 
> >                  from include/linux/if_ether.h:134,
> > 
> >                  from include/linux/netdevice.h:29,
> > 
> >                  from include/net/sock.h:50,
> > 
> >                  from include/linux/connector.h:83,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/linux/drbd.h:28,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/drbd_buildtag.c:2:
> > 
> > include/linux/mm.h:602:63: warning: "NR_PAGEFLAGS" is not defined
> > 
> > include/linux/mm.h:646:62: warning: "NR_PAGEFLAGS" is not defined
> > 
> > In file included from include/linux/unistd.h:7,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/seccomp_64.h:4,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/seccomp.h:4,
> > 
> >                  from include/linux/seccomp.h:8,
> > 
> >                  from include/linux/sched.h:80,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/compat.h:8,
> > 
> >                  from include/linux/compat.h:18,
> > 
> >                  from include/linux/ethtool.h:17,
> > 
> >                  from include/linux/netdevice.h:48,
> > 
> >                  from include/net/sock.h:50,
> > 
> >                  from include/linux/connector.h:83,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/linux/drbd.h:28,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/drbd_buildtag.c:2:
> > 
> > /usr/src/linux-3.3.1/arch/x86/include/asm/unistd.h:16:29: error:
> > asm/unistd_64.h: No such file or directory
> > 
> > In file included from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/seccomp_64.h:5,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/seccomp.h:4,
> > 
> >                  from include/linux/seccomp.h:8,
> > 
> >                  from include/linux/sched.h:80,
> > 
> >                  from
> > /usr/src/linux-3.3.1/arch/x86/include/asm/compat.h:8,
> > 
> >                  from include/linux/compat.h:18,
> > 
> >                  from include/linux/ethtool.h:17,
> > 
> >                  from include/linux/netdevice.h:48,
> > 
> >                  from include/net/sock.h:50,
> > 
> >                  from include/linux/connector.h:83,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/linux/drbd.h:28,
> > 
> >                  from /usr/src/drbd-8.4.1/drbd/drbd_buildtag.c:2:
> > 
> > /usr/src/linux-3.3.1/arch/x86/include/asm/ia32_unistd.h:9:32: error:
> > asm/unistd_32_ia32.h: No such file or directory
> > 
> > make[3]: *** [/usr/src/drbd-8.4.1/drbd/drbd_buildtag.o] Error 1
> > 
> > make[2]: *** [_module_/usr/src/drbd-8.4.1/drbd] Error 2
> > 
> > make[2]: Leaving directory `/usr/src/linux-3.3.1'
> > 
> > make[1]: *** [kbuild] Error 2
> > 
> > make[1]: Leaving directory `/usr/src/drbd-8.4.1/drbd'
> > 
> > make: *** [module] Error 2
> > 
> > root at hst-ldeb-ksqx64:/usr/src/drbd-8.4.1#
> > 
> > ***
> > 
> 
> > _______________________________________________
> > drbd-user mailing list
> > drbd-user at lists.linbit.com
> > http://lists.linbit.com/mailman/listinfo/drbd-user
> 
> 
> --
> : Lars Ellenberg
> : LINBIT | Your Way to High Availability
> : DRBD/HA support and consulting http://www.linbit.com
> 
> DRBDR and LINBITR are registered trademarks of LINBIT, Austria.
> __
> please don't Cc me, but send to list   --   I'm subscribed
> _______________________________________________
> drbd-user mailing list
> drbd-user at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-user
> 
> _______________________________________________
> drbd-user mailing list
> drbd-user at lists.linbit.com
> http://lists.linbit.com/mailman/listinfo/drbd-user

--
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBDR and LINBITR are registered trademarks of LINBIT, Austria.
__
please don't Cc me, but send to list   --   I'm subscribed
_______________________________________________
drbd-user mailing list
drbd-user at lists.linbit.com
http://lists.linbit.com/mailman/listinfo/drbd-user




More information about the drbd-user mailing list