>>>>> On Thu, 12 Jun 2025 12:44:56 -0400, Dan Langille said:
> 
> On Thu, Jun 12, 2025, at 12:32 PM, Dan Langille wrote:
> > On Thu, Jun 12, 2025, at 12:09 PM, Martin Simmons wrote:
> >>>>>>> On Thu, 12 Jun 2025 09:45:20 -0400, Dan Langille said:
> >>> 
> >>> On Thu, Jun 12, 2025, at 8:19 AM, Martin Simmons wrote:
> >>> >>>>>> 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.
> >>> 
> >>> Thank you. I grabbed the two patches from:
> >>> 
> >>> https://gitlab.bacula.org/bacula-community-edition/bacula-community/-/commit/358e838a
> >>> https://gitlab.bacula.org/bacula-community-edition/bacula-community/-/commit/8d9669fb26bd8bce30e4c48a522d9943c110b5c2
> >>> 
> >>> I added them to my copy of the FreeBSD port and rebuilt the package. By 
> >>> that, I mean the bacula-client package, not the server (i.e. only 
> >>> bacula-fd on the client has been updated in my testing).
> >>> 
> >>> I'm assuming that only the client needs to be updated here, not that 
> >>> server. Am I correct there?
> >>
> >> bextract also uses it.
> >
> > but... we're not using bextract here are we?
> >
> >>> So far, testing with the above patches included is not compressing for 
> >>> 'compression=ZSTD'.
> >>> 
> >>> For testing, I swapped back to 'compression=GZIP - it compressed.
> >>
> >> Is the poudriere build succeeding?
> >
> > yes
> >
> >> What is the output of ldd now?
> >
> > [16:28 gw01 dvl ~] % ldd /usr/local/sbin/bacula-fd           
> > /usr/local/sbin/bacula-fd:
> >     libintl.so.8 => /usr/local/lib/libintl.so.8 (0x32541a345000)
> >     libz.so.6 => /lib/libz.so.6 (0x32541a773000)
> >     libbacfind-15.0.2.so => /usr/local/lib/libbacfind-15.0.2.so 
> > (0x32541bbe7000)
> >     libbaccfg-15.0.2.so => /usr/local/lib/libbaccfg-15.0.2.so 
> > (0x32541b229000)
> >     libbac-15.0.2.so => /usr/local/lib/libbac-15.0.2.so (0x32541ca27000)
> >     libm.so.5 => /lib/libm.so.5 (0x32541d48b000)
> >     libthr.so.3 => /lib/libthr.so.3 (0x32541e0e4000)
> >     libwrap.so.6 => /usr/lib/libwrap.so.6 (0x32541fd8b000)
> >     libssl.so.30 => /usr/lib/libssl.so.30 (0x32541eaa6000)
> >     libcrypto.so.30 => /lib/libcrypto.so.30 (0x3254218d1000)
> >     liblzo2.so.2 => /usr/local/lib/liblzo2.so.2 (0x32541f6be000)
> >     libc++.so.1 => /lib/libc++.so.1 (0x32541ff1f000)
> >     libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x325420633000)
> >     libc.so.7 => /lib/libc.so.7 (0x3254234d8000)
> >     libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x325420eda000)
> >     [vdso] (0x325419b0e000)
> >
> >> If it doesn't show zstd then what is the output of the poudriere build?
> >
> > It's here: 
> > https://services.unixathome.org/poudriere/build.html?mastername=142amd64-default-primary&build=2025-06-12_13h32m20s
> >
> > Click on success, under Log.
> >
> > I see
> >
> > ...
> > checking zstd.h usability... no
> > checking zstd.h presence... no
> > checking for zstd.h... no
> > ...
> > ZSTD support:             no
> > ...
> >
> > Am I missing a dependency?
> 
> Yes, yes I am:
> 
> LIB_DEPENDS+=   libzstd.so:archivers/zstd
> 
> With that:
> 
> [16:42 gw01 dvl ~] % ldd /usr/local/sbin/bacula-fd | grep std   
>       libzstd.so.1 => /usr/local/lib/libzstd.so.1 (0x37b1178e1000)
> 
> and:
> 
>   Software Compression:   71.6% 3.5:1
> 
> 
> Success. : Thank you. Now I'll feed this into the FreeBSD ports tree.

Yoy got lucky, because the zstd detection logic in configure is somewhat
goofy.

__Martin


_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to