From: Eric Bollengier Date: Tue, 25 Mar 2025 16:06:19 +0000 (+0100) Subject: update changelog and releasenotes X-Git-Tag: Release-15.0.3~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=654feff45da1d58fad6515fd534bd5d2174dbc20;p=thirdparty%2Fbacula.git update changelog and releasenotes --- diff --git a/bacula/ChangeLog b/bacula/ChangeLog index 62ae7ffc7..653209509 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,3 +1,168 @@ + ChangeLog for Bacula Enterprise version 15.0.3 + +20Mar25 + - Fix compilation variable in var.c and expand.c + +03Mar25 + - Fix org#2748 About compilation error with ZSTD and not LZO enabled + +04Dec24 + - Fix org#2738 About error message with generated fileset + - bpipe: Fix org#2737 About segfault with bpipe + +29Nov24 + - Fix #11251 About bcopy not mounting correctly volumes provided with -i + option + +08Nov24 + - k8s: Fix get provisioner permissions + +22Oct24 + - Fix #11197 About error when using bextract on ZSTD compressed data + +14Oct24 + - k8s: Add pvc clean up from old backup jobs + +27Sep24 + - k8s: Get images from repositories with auth + +26Sep24 + - k8s: Add pvc annotation takes precedence without pod annotation + - k8s: Add parallel job in same namespace + +25Sep24 + - Update bsmtp copyright information + +24Sep24 + - k8s: Fix show pvdatada message when you don't use it + - k8s: Add new level(In pvc annotations) in selection of backup mode + +23Sep24 + - win32: Fix unwanted debug messages in windows File Daemon + +17Sep24 + - Add Francisco to AUTHORS file + +04Sep24 + - baculum: Add new query parameters in M365EmailList endpoint + +29Aug24 + - Fix #11058 About fsync error reported for tape driver + +09Aug24 + - Check for backquote in check_for_invalid_chars() function + +07Aug24 + - Fix #11048 About LastBackedUpTo StorageGroup policy not correctly set + +09Jul24 + - metaplugin: Include bacula jobid in the backend calls as BACULA_JOBID env + variable + +05Jul24 + - Disable orphan file detection + +04Jul24 + - Fix windows compilation + - Use bfopen instead of fopen in various tools + - win32: Limit the scope of the open files + - Add handle-list.exe tool in tools/Makefile + - Use bclose_from() in daemon.c + - Add k8s dependency versions in requirements + +03Jul24 + - Add helper functions to close open files + - Use O_CLOEXEC in pid/stat file management + - Add SOCK_CLOEXEC to bnet_server sockets + +02Jul24 + - k8s: Fix #0011005: ModuleNotFoundError: No module named 'baculak8s.plugins.k8sbackend.ingress' + +21Jun24 + - baculum: Add enable and disable client, storage, job and schedule endpoints + +20Jun24 + - Fix #10985 Report the FD/SD Encryption in the Job record and the job output + +13Jun24 + - deploy: limit urllib3 version to be compatible with rhel8 + +12Jun24 + - k8s: Avoid pvc data when pvc is in Pending status. k8s: Fix redoing backup + when pvcdata is 0 bytes and the backup mode is standard + +11Jun24 + - deploy: create dockerfile to fast k8s compilation in rhel platform + +10Jun24 + - baculum: Fix missing scopes on supported OAuth2 scope list + +07Jun24 + - baculum: Fix compatibility with very old PHP 5.4 + +06Jun24 + - k8s: Fix restore problem where pod require the pvc data when it starts + +05Jun24 + - Fix #10947 time output without century for locale that use multi bytes + utf8 + +04Jun24 + - k8s: Add more options to debug + +03Jun24 + - baculum: Add cloud storage status to SD status endpoint + +26May24 + - baculum: Fix #2722 port from Bacularis fix for displaying schedule list + +14May24 + - k8s: Avoid pvcs backup when the pvc status is Terminating + +10May24 + - k8s: Fix #0010901 - Problem when restore service clusterIPs + +09May24 + - k8s: Add dockerfile to create an image to compile k8s plugin in any debian/ubuntu + distribution + - k8s: Add Ingress integration backup/restore + +07May24 + - Fix compilation issue with zstd and without lzo + +17Apr24 + - Enforce malware database download from Abuse.ch + +16Apr24 + - Fix org#2714 Fails to take TLS Allowed CN into account + +04Apr24 + - baculum: Fix sorting in filesets endpoint if unique filesets parameter is + used + +28Mar24 + - Fix Client/Uname field not always updated after a status client + - baculum: Update API documentation + - baculum: Add name and sort parameters to filesets filter + +22Mar24 + - BSOCK improve POLL to detect and report errors + +05Feb24 + - show minimal backtrace if gdb is not installed + +17Jan24 + - Detect unsolvable volume cycle in split_bsr_loop() + +21Dec23 + - cloud: reapply usefull previous changes + - Revert "cloud storage: Fix #10291 Assume that driver ls can return an error + when scanning an unexistant cloud volume and loosen the conditions that + handle this case" + +Bugs fixed/closed since last release: +0010901 0011005 10291 10947 10985 11048 11058 11197 11251 2714 2722 2737 2738 2748 + ChangeLog for Bacula Enterprise version 15.0.2 22Mar24 diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 28f970198..f2c315bc7 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,6 +1,6 @@ Release Notes for Bacula 15.0 -This is a major beta release with many new features and a number of +This is a major release with many new features and a number of changes. Please take care to test this code carefully before putting it into production. Although the new features have been tested, they have not run in a production environment. @@ -42,6 +42,68 @@ As mentioned above, before running this script, please backup your catalog database, be sure to shutdown Bacula and be aware that running the script can take some time depending on your database size. +Release 15.0.3 / 25 March 2025 +---------------------------------------------------------------- + +15.0.3 is a minor bug fix release. + + - Use the CLOEXEC function in sockets and all file descriptors + - BSOCK improve POLL to detect and report errors + - Check for backquote in check_for_invalid_chars() function + - Detect unsolvable volume cycle in split_bsr_loop() + - Enforce malware database download from Abuse.ch + + - Fix #10947 time output without century for locale that use multi bytes utf8 + - Fix #10985 Report the FD/SD Encryption in the Job record and the job output + - Fix #11048 About LastBackedUpTo StorageGroup policy not correctly set + - Fix #11058 About fsync error reported for tape driver + - Fix #11197 About error when using bextract on ZSTD compressed data + - Fix #11251 About bcopy not mounting correctly volumes provided with -i option + - Fix Client/Uname field not always updated after a status client + - Fix compilation issue with zstd and without lzo + - Fix compilation variable in var.c and expand.c + + - Fix org#2714 Fails to take TLS Allowed CN into account + - Fix org#2738 About error message with generated fileset + - Fix org#2748 About compilation error with ZSTD and not LZO enabled + + - Update bsmtp copyright information + + - baculum: Add cloud storage status to SD status endpoint + - baculum: Add enable and disable client, storage, job and schedule endpoints + - baculum: Add name and sort parameters to filesets filter + - baculum: Add new query parameters in M365EmailList endpoint + - baculum: Fix #2722 port from Bacularis fix for displaying schedule list + - baculum: Fix compatibility with very old PHP 5.4 + - baculum: Fix missing scopes on supported OAuth2 scope list + - baculum: Fix sorting in filesets endpoint if unique filesets parameter is used + - baculum: Update API documentation + + - bpipe: Fix org#2737 About segfault with bpipe + + - k8s: Add Ingress integration backup/restore + - k8s: Add dockerfile to create an image to compile k8s plugin in any debian/ubuntu distribution + - k8s: Add more options to debug + - k8s: Add new level(In pvc annotations) in selection of backup mode + - k8s: Add parallel job in same namespace + - k8s: Add pvc annotation takes precedence without pod annotation + - k8s: Add pvc clean up from old backup jobs + - k8s: Avoid pvc data when pvc is in Pending status. k8s: Fix redoing backup when pvcdata is 0 bytes and the backup mode is standard + - k8s: Avoid pvcs backup when the pvc status is Terminating + - k8s: Fix #0010901 - Problem when restore service clusterIPs + - k8s: Fix #0011005: ModuleNotFoundError: No module named 'baculak8s.plugins.k8sbackend.ingress' + - k8s: Fix get provisioner permissions + - k8s: Fix restore problem where pod require the pvc data when it starts + - k8s: Fix show pvdatada message when you don't use it + - k8s: Get images from repositories with auth + + - show minimal backtrace if gdb is not installed + - win32: Fix unwanted debug messages in windows File Daemon + +Bugs fixed/closed since last release: + 10291 10901 10947 10985 11005 11048 11058 11197 11251 2722 + + ---------------------------------------------------------------- Release 15.0.2 / 21 March 2024 ---------------------------------------------------------------- diff --git a/bacula/release/git2changelog.pl b/bacula/release/git2changelog.pl index f371deb0c..e6decb70f 100755 --- a/bacula/release/git2changelog.pl +++ b/bacula/release/git2changelog.pl @@ -1,12 +1,11 @@ #!/usr/bin/perl -w # -# Copyright (C) 2000-2015 Kern Sibbald -# License: BSD 2-Clause; see file LICENSE-FOSS -# =head USAGE ./git2changelog.pl Release-3.0.1..Release-3.0.2 + ./git2changelog.pl Release-3.0.1 ../git ../docs + For bweb ReleaseNotes, use FORBWEB=1 ./git2changelog.pl Release-3.0.1..Release-3.0.2 @@ -14,71 +13,150 @@ use strict; use POSIX q/strftime/; +use Cwd; my $d=''; my $cur; my %elt; +my @all; +my @usea; my $last_txt=''; my %bugs; my $refs = shift || ''; my $for_bweb = $ENV{FORBWEB}?1:0; -open(FP, "git log --no-merges --pretty=format:'%at: %s' $refs|") or die "Can't run git log $!"; -while (my $l = ) { +my $root = getcwd(); +my $dir = shift || "."; +my $version="X.Y.Z"; +my $topic; - # remove non useful messages - next if ($l =~ /(tweak|typo|cleanup|regress:|again|.gitignore|fix compilation|technotes)/ixs); - next if ($l =~ /update (version|technotes|kernstodo|projects|releasenotes|version|home|release|todo|notes|changelog|tpl|configure)/i); +if ($refs =~ /^(Nightly|Release|Beta)-[\d\.]+$/) { + $refs = "$refs..HEAD"; +} - next if ($l =~ /bacula-web:/); +do { + chdir($dir); - if ($for_bweb) { - next if ($l !~ /bweb/ixs); - $l =~ s/bweb: *//ig; - } else { - next if ($l =~ /bweb:/ixs); + $topic = ""; + if ($dir =~ m:/?(\w+)$:) { + $topic = $1; + } + if ($topic eq 'bacula' || $topic eq 'git') { + $topic = ""; } - # keep list of fixed bugs - if ($l =~ /#(\d+)/) { - $bugs{$1}=1; + if ( -f "bacula/src/version.h") { + open(FP, "bacula/src/version.h"); + while (my $l = ) { + if ($l =~ /#define VERSION "(.+)"/) { + $version = $1; + last; + } + } + close(FP); } + open(FP, "git log --no-merges --pretty=format:'%at: %s' $refs|") or die "Can't run git log $!"; + while (my $l = ) { + + # remove non useful messages + next if ($l =~ /(tweak|typo|cleanup|regress:|again|.gitignore|fix compilation|technotes)/ixs); + next if ($l =~ /update (version|technotes|kernstodo|projects|releasenotes|version|home|release|todo|notes|changelog|tpl|configure)/i); - # remove old commit format - $l =~ s/^(\d+): (kes|ebl) /$1: /; + next if ($l =~ /bacula-web:/); - if ($l =~ /(\d+): (.+)/) { - # use date as 01Jan70 - my $dnow = strftime('%d%b%y', localtime($1)); - my $cur = strftime('%Y%m%d', localtime($1)); - my $txt = $2; + next if ($topic eq 'build' && $l !~ /rpms|debs/); - # avoid identical multiple commit message - next if ($last_txt eq $txt); - $last_txt = $txt; + if ($for_bweb) { + next if ($l !~ /bweb/ixs); + $l =~ s/bweb: *//ig; + } - # We format the string on 79 caracters - $txt =~ s/\s\s+/ /g; - $txt =~ s/.{70,77} /$&\n /g; + # keep list of fixed bugs + if ($l =~ / org#0*(\d+)/) { + $bugs{$2}=1; - # if we are the same day, just add entry - if ($dnow ne $d) { - $d = $dnow; - if (!exists $elt{$cur}) { - push @{$elt{$cur}}, "\n\n$dnow"; + } elsif ($l =~ /(#|MA)0*(\d+)/) { + $bugs{$2}=1; + } + + if ($l !~ /^\d+: \w+( \w+)?:/ && $topic) { + if ($l =~ /^(\d+:) (.*)/) { + $l = "$1 $topic: $2"; } } - push @{$elt{$cur}}, " - $txt"; - } else { - print STDERR "invalid format: $l\n"; + # remove old commit format + $l =~ s/^(\d+): (kes|ebl) /$1: /; + + if ($l =~ /(\d+): (.+)/) { + # use date as 01Jan70 + my $dnow = strftime('%d%b%y', localtime($1)); + my $cur = strftime('%Y%m%d', localtime($1)); + my $txt = $2; + + # avoid identical multiple commit message + next if ($last_txt eq $txt); + $last_txt = $txt; + +# Do not split for RST format +# # We format the string on 79 caracters +# $txt =~ s/\s\s+/ /g; +# $txt =~ s/.{70,77} /$&\n /g; + + if ($txt =~ /usea:/) { + push @usea, " - $txt"; + next; + } + + # if we are the same day, just add entry + if ($dnow ne $d) { + $d = $dnow; + if (!exists $elt{$cur}) { + push @{$elt{$cur}}, "\n\n$dnow"; + } + } + push @{$elt{$cur}}, " - $txt"; + push @all, " - $txt"; + + } else { + print STDERR "invalid format: $l\n"; + } } -} + chdir($root); + $dir = shift; +} while ($dir); close(FP); +print " ChangeLog for Bacula Enterprise version $version\n"; foreach my $d (sort {$b <=> $a} keys %elt) { print join("\n", @{$elt{$d}}); } print "\n\nBugs fixed/closed since last release:\n"; print join(" ", sort keys %bugs), "\n"; + +print "\n================================================================\n"; + +my $date = strftime('%d %B %Y', localtime()); +print "\n\n\n"; +print "Release $version / $date\n----------------------------------------------------------------\n\n$version is a bug fix release.\n\n"; + +foreach my $d (sort @all) { + print "$d\n"; +} + +print "\n\nBugs fixed/closed since last release:\n"; +print join(" ", sort keys %bugs), "\n"; + + +if (@usea) { + print "\n==================== USEA =====================================\n"; + + my $date = strftime('%d %B %Y', localtime()); + print "\n\n\n"; + print "Release $version $date\n\n$version is a bug fix release.\n\n"; + + foreach my $d (sort @usea) { + print "$d\n"; + } +}