Re: using zstd compression - any particular build options?

Martin Simmons <[email protected]>
Newsgroups gmane.comp.bacula.user
Message-ID <[email protected]>
>>>>> On Wed, 11 Jun 2025 12:38:27 -0400, Dan Langille said:
> 
> On Wed, Jun 11, 2025, at 10:45 AM, Martin Simmons wrote:
> >>>>>> On Tue, 10 Jun 2025 20:23:40 -0400, Dan Langille said:
> >> 
> >> I expected to see std mentioned...
> >> 
> >> I tried building with --with-zstd in the build options - it did not change the above output.
> >> 
> >> i.e
> >> --CONFIGURE_ARGS--
> >> --disable-conio  --enable-batch-insert  --enable-smartalloc  --sysconfdir=/usr/local/etc/bacula  --with-baseport=9101  --with-db-name=bacula  --with-db-user=bacula  --with-dump-email=root@localhost  --with-job-email=root@localhost  --with-logdir=/var/log  --with-plugindir=/usr/local/lib  --with-readline=/usr/local  --with-sbin-perm=755  --with-scriptdir=/usr/local/share/bacula  --with-tcp-wrappers=/usr/lib  --with-working-dir=/var/db/bacula  --with-zstd --with-fd-group=wheel  --with-fd-user=root --enable-client-only --enable-nls --prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
> >
> > It is a bug in the configure script.
> >
> > As a workaround, try installing the curl package as a build-time dependency
> > and add --with-curl=/usr/local to the configure args.  AFAICS, this will not
> > change anything in the built binaries because Bacula doesn't actually use
> > curl, but it will work around the bug.
> 
> I have been able to reproduce the bug reported in the ticket. I've been able to get compressin with GZIP and LTO, but not ZSTD.
> 
> This is the FileSet I'm testing with:
> 
> FileSet {
>   Name    = "basic backup with compression"
>   Include {
>     Options {
>       signature=MD5
>       compression=ZSTD
>     } 
>     File = /boot
>     File = /etc
> ....
> 
> The build time changes I made were:
> 
> [15:36 pkg01 dvl /usr/local/poudriere/ports/default/sysutils/bacula15-server] % git diff
> diff --git a/sysutils/bacula15-server/Makefile b/sysutils/bacula15-server/Makefile
> index 5ab79d4d4852..bad3f52db132 100644
> --- a/sysutils/bacula15-server/Makefile
> +++ b/sysutils/bacula15-server/Makefile
> @@ -1,6 +1,6 @@
>  PORTNAME=      bacula
>  DISTVERSION=   15.0.2
> -PORTREVISION=  6
> +PORTREVISION=  6a
>  CATEGORIES?=   sysutils
>  MASTER_SITES=  SF/bacula/bacula/${DISTVERSION}
>  PKGNAMEPREFIX?=        #
> @@ -78,7 +78,8 @@ CONFIGURE_ARGS+=      --disable-conio \
>  
>  .if defined(WITH_CLIENT_ONLY)
>  CONFIGURE_ARGS+=       --with-fd-group=wheel \
> -                       --with-fd-user=root
> +                       --with-fd-user=root \
> +                        --with-curl=/usr/local
>  .else
>  CONFIGURE_ARGS+=       --with-dir-group=${BACULA_GROUP} \
>                         --with-dir-user=${BACULA_USER} \
> [15:48 pkg01 dvl /usr/local/poudriere/ports/default/sysutils/bacula15-server] % 
> 
> In my initial testing, I did not explicitly add ftp/curl as a run time dependency of the FreeBSD package.  curl was already present on the host for other dependencies. With
> the failed results for "compression=ZSTD", I went back and built the package with the
> dependency - same results: no compression.

If I remember correctly, poudriere builds in a jail so it will not see the
curl installed on the host.

It looks like the underlying bug has was fixed in git revision
358e838a99ad407e439a149a7dc9b472c63db2f8 (and
8d9669fb26bd8bce30e4c48a522d9943c110b5c2 for the autoconf/configure.in).  The
critical parts are the two new "unset error" lines so you could make a patch
from that.

__Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.