1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
|
ChangeLog -*- outline -*-
---------
Welcome to @PACKAGE@ @VERSION@. Please read these release notes carefully.
Full installation instructions are provided in the INSTALL file. The
README file also contains more specific notes regarding building and
configuration.
* Major changes in 0.78.1:
None (bugfix release)
* Major changes in 0.78.0:
1) core: Add libc-dev and libstdc++-dev to Build-Depends when cross
compiling
2) core: default to --no-arch-all when cross compiling
3) core: Set build profiles cross and nocheck by default when cross
compiling
4) core: Switch to C.UTF-8 for $LC_ALL
5) core: allow chroots with nothing more but Essenital:yes packages, apt
and their hard dependencies and create missing users and groups as
needed
6) sbuild: add --build-dir option
7) sbuild: add --no-source-only-changes option
8) sbuild: add --post-build-failed-commands hook
9) sbuild: let --append-to-version imply --no-arch-all
10) sbuild-createchroot: Don't usrmerge even if it is the debootstrap default
* Major changes in 0.77.1:
1) sbuild: run dpkg-source --before-build and --after-build
2) core: fix bd-uninstallable dose explainer for cross-building
* Major changes in 0.77.0:
1) core: New chroot mode "unshare" which allows unprivileged package builds
by using Linux user namespaces. Only requires lightweight newuidmap and
newgidmap suid binaries. Chroots can be created and updated without
needing sudo and are stored in ~/.cache/sbuild or an arbitrary absolute
path given via the --chroot option.
2) core: Add null resolver which does not install, upgrade or remove any
packages. This allows one to take full control over the package
installation process by using hooks.
3) core: Remove support for signing the dummy archive because Squeeze LTS
support ended in February 2016: remove the --keygen option from
sbuild-update, remove the SBUILD_BUILD_DEPENDS_SECRET_KEY and
SBUILD_BUILD_DEPENDS_PUBLIC_KEY configuration variables.
4) core: disable network during dpkg-buildpackage for backends that support
it (currently only the unshare backend)
5) core: Install (cross-)build-essential, manual depends and build depends
with a single dummy package instead of using a multi-step process to
avoid having later steps change what was installed in earlier steps.
6) core: Filter out foreign essential and multiarch foreign packages before
passing them to dose3 when cross building to prevent solutions that use
essential and multiarch foreign packages from the non-native
architecture.
7) sbuild: Command line option --make-binNMU now implies --no-arch-all
8) sbuild: only run autopkgtest if debian/tests/control exists
9) sbuild: Add new build log filtering for /build/pkg-minimal-XXX/resolver-YYY:
<<RESOLVERDIR>>
10) sbuild: Additional Lintian reasons in build log: info and warn.
11) sbuild: Dump content of the input .dsc before extracting it.
12) sbuild: Also print kernel version in build log
13) sbuild-createchroot: do not attempt several setup options when the user
specified --setup-only together with --make-sbuild-tarball because then
the unpacked directory does not exist
14) sbuild-createchroot: make the mirror argument optional as well (just as
it is in debootstrap)
15) sbuild-createchroot: add --chroot-mode=unshare which allows running
debootstrap and creating a chroot tarball without needing sudo
16) sbuild-createchroot: refuse to operate if output tarball or directory
already exist
17) sbuild-update: add --chroot-mode option and support for unshare
backend
* Major changes in 0.76.0:
1) sbuild-update-all: exit 0 when no chroots are set up.
* Major changes in 0.75.0:
1) buildd: only build arch:any packages
2) buildd: do not run lintian
3) remove harmful unnecessary lintian binary check
* Major changes in 0.74.0:
1) Install dose-distcheck and lintian for the native architecture
2) remove DCMD config value which is not used and just uselessly making
libsbuild-perl depend on devscripts
3) use dpkg-query instead of grep-status so that dependency on grep-dctrl is
not needed anymore
4) suppress schroot writing to stderr in sbuild-createchroot
5) check for modprobe in sbuild-createchroot
6) Add missing newline character to a bunch of error messages
7) dose3 failures no longer mask the --build-deps-failed-commands
8) Build arch: all packages by default.
9) Run lintian by default.
10) sbuild-createchroot: add --command-prefix
11) add sbuild-debian-developer-setup package
* Major changes in 0.73.0:
1) starting-build-command and finished-build-commands are now run as root.
2) Output .buildinfo in buildlog.
3) The autopkgtest-virt backends are no longer supplied with the chroot
name.
4) Add SBUILD_BUILD_ARCH percent escape.
5) Use Dpkg::Build::Info::get_build_env_whitelist() to generate the default
of ENVIRONMENT_FILTER.
6) For binNMUs, instead of copying the timestamp of the last changelog
entry, generate a new one.
7) Add the --binNMU-timestamp command line option to allow one to pass a
custom timestamp for the new binNMU changelog entry.
8) Add option --binNMU-changelog which allows one to pass a complete
debian/changelog entry for binary-only builds.
9) Extra packages can now be used to upgrade already installed packages.
10) The autopkgtest backend now runs into its own process group.
11) Extra repositories are now unconditionally updated.
12) Allow passing a directory to --extra-package which will add all .deb
inside.
* Major changes in 0.72.0:
1) Add option --purge-extra-packages which makes sure to remove all
non-essential packages before the package build starts.
2) Stop depending on newlines being produced by the build to detect timeouts
3) Accommodate for the autopkgtest 4.0 release by renaming all adt command
line options and configuration variables from adt to autopkgtest because
the same renaming was done by the autopkgtest release.
4) Add --bd-uninstallable-explainer which gives an explanation of why
the build dependencies of a source package cannot be installed.
* Major changes in 0.71.0:
1) Undo exporting private keys in armored ASCII format as introduced by the
last release. It turns out, that this is not necessary to support gpg
cross-version compatibility. This should fix problems with gpg 2.x
as well as chroots not having gpg installed as apt stopped depending on
it.
2) Undo the SUITE-VARIANT syntax of sbuild-createchroot as introduced by the
last release. It turns out that overloading the suite name argument with
a variant name was a bad idea because there exist distributions with a
minus in its name. Variant names can now be specified using the
--chroot-prefix option which works analogous to the --chroot-suffix
option.
3) Add percent escape support to piuparts, autopkgtest and adt-virt options.
4) Add sbuild-destroychroot.
* Major changes in 0.70.0:
1) Fix reproducibility issue by not writing the $HOME as set during the
build into config files and man pages anymore
2) Add an EXAMPLE section to the sbuild man page
3) sbuild-createchroot now has support for SUITE-VARIANT chroot names. This
is useful to create variants of base suits like jessie-backports or
unstable-experimental.
4) sbuild-createchroot now has the --no-deb-src option which allows one to
create a chroot without a deb-src entry in its sources.list. This is
useful to save bandwidth and disk space for chroots that will never be
used to download source packages as the source indices do not have to
downloaded, stored and later updated from the mirrors.
5) sbuild-createchroot now has the --alias option which is useful to add a
shorthand alias to a chroot which will be used for chroot selection. This
is for example useful for a Debian unstable chroot which will be
automatically selected for package builds that have UNRELEASED in their
debian/changelog, if the UNRELEASED alias is added to the Debian unstable
chroot.
6) suild-createchroot now has the --extra-repository which works like the
--extra-repository option for sbuild and permanently adds another line to
the chroot's sources.list.
7) Private/public key pairs are now stored in armored ASCII format to
maintain compatibility between different gpg versions on the host and
within the chroot. Re-running `sbuild-update --keygen` will create the
new key types.
8) Chroots can now have gpg >= 2.x installed as sbuild will properly clean
up any remaining gpg-agent processes and "apt-key add" is not used
anymore (it will leave a gpg-agent process around that cannot properly
be killed).
9) Add the --source-only-changes option which will create a .changes file
suitable for a source-only upload alongside the normal binary .changes
file.
10) Do not install debfoster by default in sbuild-createchroot to keep the
build chroot as minimal as possible. Users that use debfoster can use the
--include option of sbuild-createchroot.
11) Drop requirement for gpg inside the chroot as external archive keys are
now processed without gpg and signing of the internal repository is
entirely optional with helpful warning and error messages in case
signing failed.
12) Allow running autopkgtest after a successful build in the same manner
that piuparts can be run after a successful build.
* Major changes in 0.69.0:
1) Decouple chroot from host in terms of filesystem access to allow
chroot backends like qemu, ssh or lxc. Deprecate external command
percentage escape %SBUILD_CHROOT_DIR in favour of %SBUILD_CHROOT_EXEC.
2) Experimental adt backend. Enable with --chroot-mode=adt. Choose the
virtualization server with --adt-virt-server and add options with
--adt-virt-server-opt. This allows sbuild to use qemu, ssh and lxc
chroots.
3) Allow to build packages without specifying a version. Earlier it was
possible to let sbuild "apt-get download" a dsc by specifying
"package_version" as a command line argument. The version part is not
necessary anymore. No manual version lookup by the user is required
anymore.
4) Disallow conflicting command line options, thus making command line
switches position independent and remove the deprecated --arch-all-only
option in the process.
5) The aspcud resolver criteria is not hardcoded anymore but can be chosen
with --aspcud-criteria. The default criteria is -removed,-changed,-new.
To minimize the number of packages from experimental, use:
-count(solution,APT-Release:=/a=experimental/),-removed,-changed,-new
6) Apt doesn't download translations anymore.
7) Dummy archive is now signed with SHA-512
8) Cron script etc/sbuild-update-all allows one to periodically update all
sbuild chroots.
9) Add another --*-failed-commands external command:
--chroot-update-failed-commands
10) Documentation of configuration options in sbuild.conf(5) and in
/etc/sbuild/sbuild.conf now reference related command line options from
sbuild(1).
11) Documentation of command line options in sbuild(1) now references the
respective configuration options from sbuild.conf(5).
12) Remove configuration options which can be set on the command line from
the __INTERNAL group, thus exposing them in sbuild.conf as well and
referencing them in sbuild(1).
* Major changes in 0.68.0:
1) Dummy binary packages are now used for native building *and* cross
building (apt-get build-dep was used for the latter so far). For an
extensive rationale for this choice, read the commit message of commit
e227c8f3.
2) Deprecate --arch-all-only option which was introduced two releases ago in
favour of --arch-all --no-arch-any. The option will be completely removed
in the next release to remove redundancy and for overall clarity.
* Major changes in 0.67.0:
1) add --clean-source and --no-clean-source to allow building a package from
an unpacked directory without calling debian/rules clean
2) allow changing the user running dpkg-buildpackage inside the chroot
3) sbuild-createchroot: use union-type=overlay for directory chroot
4) Quit processing when external commands fail
5) Add the --no-arch-any and --arch-any options which give a better control
over building or not building architecture specific packages than
--arch-all-only
6) Set [trusted=yes] for internal dummy repository to make key generation
optional
* Major changes in 0.66.0:
1) add option --arch-all-only to build arch:all packages
2) environment variable SBUILD_CONFIG allows to specify a custom
configuration file
3) add option --build-path to set a deterministic build path
4) fix crossbuild dependency resolution
5) add option --extra-repository-key for extra apt keys
6) add option --build-dep-resolver=aspcud for aspcud based resolver
6) allow complex commands as sbuild hooks
7) add now external command %SBUILD_SHELL produces an interactive shell
8) add options --build-deps-failed-commands, --build-failed-commands and
--anything-failed-commands
* Major changes in 0.65.2:
None.
* Major changes in 0.65.1:
None.
* Major changes in 0.65.0:
1) Add support for build profiles. The specified profile is used
in the build if -P or --profiles is passed or the
DEB_BUILD_PROFILES environment variable is set.
2) An extra build-time repository and/or individual packages can be
made available during the build. See the --extra-repository and
--extra-package options.
3) Add more substitution variables for use in External commands:
host architecture (%a), chroot directory (%r), build directory inside
chroot (%b), and package build directory inside chroot (%p). See man
sbuild for details and alternate long names.
* Major changes in 0.64.3:
1) Add support for multiarch builds. Explicit build-deps on
foreign-arch packages enable that arch for the build.
2) Command hook changes: chroot-setup-commands run as root. 2 new
user -command hooks run immediately before/after inner build
(--starting-build-commands/--finished-build-commands).
* Major changes in 0.64.2:
1) Allow to Define custom debootstrap variant.
2) Allow to define custom suffixes in chroot names.
* Major changes in 0.64.1:
1) Bugfixes to work with Perl 5.18; use File::Temp and File::Spec
explicitly.
2) Drop autoflush workaround added for Perl 5.10.
* Major changes in 0.64.0:
1) The number of times buildd will try to build before sleeping is
now configurable with MAX_SBUILD_FAILS.
2) Lintian is now run inside the chroot rather than the host system.
3) binNMUs now set binary-only=yes in the changelog.
4) Cross-building improvements.
* Major changes in 0.63.2:
1) New options --no-run-lintian and --no-run-piuparts. If lintian
or piuparts are configured to run automatically following a
successful build, there options disable this behaviour for the
build.
2) New option --purge-build. This behaves identically to the old
--purge option. --purge now purges everything (build directory,
build dependencies and schroot session) and is equivalent to
using --purge-build, --purge-deps and --purge-session together.
3) If building from unpacked sources in the current working
directory, logs will be created in '..' rather than '.'.
* Major changes in 0.63.1:
None.
* Major changes in 0.63.0:
1) Support for cross-compiling has been added. This includes the
addition of $host and $build configuration variables, with
corresponding --host and --build command-line options. This
includes the addition of a new 'xapt' dependency resolver.
2) The deprecated 'internal' dependency resolver has been removed,
along with the configuration variables $apt_policy,
$check_depends_algorithm and $resolve_virtual, and the
command-line option --check-depends-algorithm. The 'apt'
resolver is the default replacement for 'internal'.
3) Support for watches has been removed. The configuration
variables $check_watches, $ignore_watches_no_build_deps and
$watches (and obsolete variables @ignore_watches_no_build_deps
and %watches) have also been removed.
3) sbuild-stats and support for build time and space statistics
recording has been removed. These statistics are recorded in
both the build log and are available as build metadata
internally. The statistics recorded in the database were not
particularly informative; storing the statistics in a proper
relational database is recommended. The configuration variables
$avg_time_db and $avg_space_db have been removed.
* Major changes in 0.62.6:
1) The use of alternatives in Build-Depends and Build-Depends-Indep
may be turned on or off by the configuration variable
$resolve_alternatives. It may also be enabled or disabled at
build time using the --resolve-alternatives and
--no-resolve-alternatives options, respectively.
2) The new Build-Depends-Arch and Build-Conflicts-Arch fields in
debian/control are now supported. These may be manually set
with --add-depends-arch and --add-conflicts-arch,
respectively.
3) schroot namespaces are now fully supported, meaning that
current 1.5.x schroot versions now work with sbuild.
* Major changes in 0.62.5:
None.
* Major changes in 0.62.4:
1) The distribution in the build summary is coloured yellow if it
does not match the distribution in the changelog. This is to
indicate that there may be a potential problem, such as
potentially uploading a package intended for experimental to
unstable by building for unstable by accident. Additionally,
lintian test results are also coloured to highlight success and
failure. Log colouring may now be disabled using $log_colour.
2) sbuild only permits building one source package at once.
Previously sbuild would allow building of more than one package
in a single invocation. Making this change means that the exit
status will always be the status of the build rather than the
last build, and it also means the logging is simplified and may
be started earlier.
3) Added new directory /var/lib/sbuild/build to hold build trees for
sbuild when building. This will be bind mounted on /build inside
the chroot following an update to the schroot sbuild and buildd
fstab configuration for schroot. This saves significant amounts
of space when using LVM snapshot chroots, and it also makes it
easier to preserve build trees for failing builds when using
snapshots.
4) Extra environment variables to be set when running
dpkg-buildpackage may now be set using $build_environment; these
will supplement the existing environment (e.g. PATH,
LD_LIBRARY_PATH). These variables will not be subject to
filtering with $environment_filter.
* Major changes in 0.62.3:
1) The apt and internal resolvers will resolve some alternatives
even when resolving alternative dependencies is disabled. For
relations involving the same package, the alternative will be
permitted when the package names are the same for each
alternative. For example,
foo (<< x) | foo (>= y) | bar
will be reduced to
foo (<< x) | foo (>= y)
while
foo | bar
will be reduced to
foo
2) The sbuild-schroot wrapper has been removed. This will be moved
into the schroot package in its next release.
3) The schroot "buildd" configuration profile has been moved to the
schroot package itself. This is due to being generated and being
architecture-dependent, and sbuild being an arch-all package (the
configuration would only be valid for the architecture sbuild was
built on).
4) A new option, "-j", has been added to allow parallel builds.
* Major changes in 0.62.2:
1) New options --no-apt-clean, --no-apt-update, --no-apt-upgrade and
--no-apt-distupgrade have been added to allow these actions to be
disabled even when set as the default in the configuration.
2) --keep-session is replaced by
--purge-session=(always|successful|never). This will allow the
session to be purged for all, successful and no builds,
respectively.
3) $purge_session uses the same purge modes as $purge_build_deps and
$purge_build_directory, rather than a boolean value.
4) Log filtering may be disabled using $log_filter = 0 in the
configuration. The replacement text is now also surrounded with
"«" and "»" so that strings such as CHROOT and BUILDDIR can't be
confused with any actual appearance of the same string in the
build log.
5) Log colouring may be disabled using $log_colour = 0 in the
configuration.
* Major changes in 0.62.1:
1) Fixed security issue in the sbuild-schroot wrapper program which
did not enforce sbuild group membership in order to allow users
to access the chroots as user sbuild.
* Major changes in 0.62.0:
1) 'apt' is now the default build dependency resolver. Users should
not see any significant changes compared with the old 'internal'
resolver. Please note that you may need to generate a GPG key
for the local archive created for dependency package
installation, if one does not already exist; see sbuild-update
(--keygen) for further details.
2) The 'internal' build dependency resolver is deprecated. It is
not recommended for future use, and will be removed once it is no
longer used by the buildd infrastructure. Please use the 'apt'
resolver as a drop-in replacement.
3) The 'aptitude' build dependency resolver will, unlike 'apt' and
'internal', consider alternative dependencies by default, rather
than only using the first alternative. This is intended to both
preserve backward compatibility, and make the 'aptitude' resolver
the preferred choice for more complex situations, such as
building for experimental.
4) sbuild.conf and buildd.conf are now automatically generated from
the help text and defaults in the source code. This means that
the examples will always be syntactically correct, the help text
will always be current, and the defaults will always match the
defaults in the source code.
5) All of the allowed values in sbuild.conf and buildd.conf are now
documented in the new sbuild.conf(5) and buildd.conf(5) manual
pages, respectively. Like sbuild.conf, this is entirely
generated from the source code, so will always match the defaults
for the same sbuild version.
6) Non-scalar (or reference) types are deprecated in sbuild.conf.
This is because it is not possible to tell the difference between
an empty and an undefined value. Values using array or hash
types should use the equivalent array reference or hash
reference, which have been supported for some time. The old
style array and hash values will remain supported for now, but
will be removed in a future release.
7) sbuild now performs an apt dist-upgrade at the start of each
build by default, rather than an upgrade. This is to reduce the
amount of manual administration required to keep chroots up to
date, and is not much more risky than upgrade in this context.
8) A new option, --keep-session, has been added. This prevents the
automatic removal of session-managed snapshot chroots.
Previously, snapshots would not be deleted if purging of the
build directory or build dependencies was disabled, but this was
not always desirable, hence it is now configurable separately.
9) Internally, building and other actions in the chroot are
performed by the 'sbuild' system user, where previously the user
invoking sbuild would be used instead. The aim of this change is
to separate privileges to increase security and reduce the chance
of accidental or deliberate tampering of the build environment.
While the latter is not addressed by these changes, this will be
taken care of during future architectural changes.
10) In order to handle errors more robustly, the build code now has
initial support for exception handling. Normal operation will
not be affected, but fatal errors may be logged in a different
order than seen previously. Fatal errors will now be seen at the
end of the build log, which should make it easier to spot
problems.
11) sbuild now always cleans up fully when receiving a termination
signal such as SIGINT or SIGTERM. Note that you may need to wait
while the cleanup actions are performed, or the current task is
completed prior to initiating cleanup. When running
interactively, hitting Ctrl-C will sent SIGINT to the entire
process group; doing this while apt-get or aptitude are running
will potentially leave dpkg in an inconsistent state, so aborting
at this point is not recommended. Sending a SIGTERM to the
sbuild process will always work cleanly.
12) Long paths such as the chroot location and the build directory
inside the chroot are now filtered in the build log and replaced
with small, constant, abbreviations. This makes the build logs
comparable between builds with tools such as diff(1).
13) Logging messages have been improved, and important messages are
now coloured when running interactively (does not affect log
files). Errors, warnings and informational messages are coloured
red, yellow and green, respectively. Build status is coloured
green for success and red for all failure conditions.
14) The sbuild package build directory created inside the chroot now
has a reduced name length. It's now /build/packagename-XXXXXX
where XXXXXX are random characters. This helps reduce the chance
of hitting path length restrictions on some architectures,
particularly when using sockets.
15) Build log mails are now compressed and mailed in MIME format by
default, together with a copy of the .changes file. The old
behaviour (plain mailing of uncompressed logs) may be restored by
setting $mime_build_log_mails=0 in the configuration, and
compression may also be disabled in the MIME mails by setting
$compress_build_log_mails=0. Note that it is no longer possible
to send compressed log mails unless MIME mailing is enabled.
16) The wanna-build database has been removed entirely. This part of
the sbuild package was not used, and was not maintained for some
time. Users wishing to use wanna-build should investigate the
version in the wanna-build.git repository used by the Debian
autobuilding infrastructure. This version is actively maintained
and in continual use.
* Major changes in 0.61.0:
1) The apt and aptitude build dependency resolvers now use only the
first alternative in alternative dependencies. The other
alternatives are stripped out entirely. This makes the apt and
aptitude resolvers behave exactly like the internal resolver.
Note that this is configurable with the $resolve_alternatives
option, so alternative resolving may be re-enabled with this
option if desired. This is useful for e.g. backports, but not
for unstable where the strict consistency and reproducibility
offered by only using the first alternative is required.
* Major changes in 0.60.9:
1) The architecture specified with --arch (defaulting to the host
system architecture) must match the chroot architecture. This
was previously allowed to be superseded by the chroot
architecture. This change is to avoid any abiguity regarding the
host/build architecture for the package being built.
* Major changes in 0.60.8:
None.
* Major changes in 0.60.7:
None.
* Major changes in 0.60.6:
1) sbuild now sanitises the environment when running external
commands such as dpkg-buildpackage. The allowed environment
variables may be specified with $environment_filter in the
configuration. Currently, various DEB* and *FLAGS* environment
variables are allowed, similar to debuild's behaviour.
2) sbuild now has a testsuite to do basic regression testing. By
default, only Perl syntax is checked. If configured with
--enable-chroot-checks, it will run the various sbuild-* helpers
and sbuild itself to build a small variety of different
packages. These are tested in an "unstable" chroot, which must
be present as a prerequisite for running the tests.
3) The apt and aptitude build dependency resolvers now use a
temporary local apt archive for installation of the dependency
packages. apt-get would previously try to remove the dependency
package under certain conditions (apt-get -f install would force
removal), whereas using a real archive to install from prevents
this.
4) sbuild-update has a new option, --keygen. This generated a GPG
key for signing local apt archives. The key will be generated
automatically on first use, but if entropy on the build system is
scarce, sbuild-update can generate it by hand at a more
convenient time, or on another system.
5) sbuild no longer generates the files REDO and SBUILD-REDO-DUMPED
upon receiving a termination signal. These were no longer used
in buildd mode, and were only useful in a buildd context.
* Major changes in 0.60.5:
1) A new resolver, 'apt', has been added. Like the aptitude
resolver, this installs a dependency package to install build
dependencies and remove build conflicts, but uses apt-get rather
than aptitude. This resolver is currently experimental and may
not yet perform correctly under all circumstances. Use at your
own risk.
2) It is now possible to run piuparts on the build packages with the
new --run-piuparts option.
* Major changes in 0.60.4:
1) The default dependency resolver has been reverted back to
'internal' for the present. 'aptitude' will become the default
again once it has had further testing. Feedback regarding the
'aptitude' resolver would be much appreciated.
* Major changes in 0.60.3:
1) The aptitude resolver is now the default resolver. Users wishing
to continue to use the old internal resolver should set
$build_dep_resolver='internal' in their configuration. The
aptitude resolver is far superior to the internal resolver,
because it can correctly resolve complex alternative and virtual
packages in build dependencies where the internal resolver would
fail.
2) The aptitude resolver is now entirely separate from the internal
resolver, and greatly simplified. All Build-Depends and
-Conflicts are now passed directly to aptitude (with
architecture-specific dependencies filtered out). As before, a
dummy dependency package is used to install and remove build
dependencies and build-conflicts.
3) The sbuild-clean program has been moved into sbuild-update, as
for the other sbuild- helper programs. The sbuild-* helper
programs now take the sbuild chroot lock used by sbuild to
prevent concurrent builds in the same chroot, making it safe to
run the maintenance commands while builds are running (they will
wait until the build has finished before making any changes).
The sbuild-* helper programs now operate on source chroots, where
available (for lvm-snapshot and btrfs-snapshot type chroots).
4) The sbuild-createchroot program can now create tarballs from the
created chroot, with gzip, bzip2, lzma and xz compression. Use
the new --make-sbuild-tarball option for this purpose.
5) sbuild may now be used on an unpacked source directory, in a
similar manner to debuild. The directory will be packaged using
'dpkg-source -b' prior to building. If a source package or
directory is not specified, sbuild will use the current working
directory like debuild.
6) Lintian may now be run after a package build with the
--run-lintian option.
7) External commands may now be run before and after a build and
during chroot setup and cleanup. These may be used to do
additional setup and checking during a build, for example to run
piuparts.
* Major changes in 0.60.2:
1) Virtual packages may now be used in Build-Depends using the
internal resolver. This is very simple, and picks the first
package providing the dependency in alphabetical order. The
aptitude resolver is rather more sophisticated, and should be
used if this is insufficiently clever.
2) Build-Conflicts are correctly removed and reinstalled, and sbuild
can now remove packages which depend upon other packages, due to
using "apt-get remove" in place of "dpkg --remove".
3) Package build-dependency installation in now preceeded by
installation of "core" dependencies (currently build-essential)
and "essential" dependencies (essential packages listed in
build-essential), to ensure a working build environment. These
should, of course, already be installed; this change is an
additional consistency check to ensure the build environment is
sane.
4) schroot sessions may be preserved on failure (failure to build or
failure to install build dependencies), to allow easier
troubleshooting.
* Major changes in 0.60.1:
1) Improvements in building of dpkg-source v3 source formats.
2) sbuild includes a new option --no-source to disable building
of source packages. This is the reciprocal of the existing
--source option.
* Major changes in 0.60.0:
1) sbuild no longer defaults the distribution to "unstable", and
requires setting by hand with --distribution unless configured in
.sbuildrc. This is to prevent accidental uploads to the wrong
distribution.
2) sbuild now lists all packages (including versions) installed in
the build chroot in the package build log. This may aid
identifying problems with builds using buggy or outdated package
versions.
3) With a recent versions of man-db (>= 2.5.6-4), man-db will be
configured not to rebuild its database during package
installation and removal in the build chroot.
4) sbuild has added new options to allow APT cleaning, upgrading and
dist-upgrading of the build chroot, in addition to the existing
updating option.
5) buildd has been synched with the buildd code in use on the Debian
buildd infrastructure, and is now in use on most, if not all,
running buildds. It has undergone extensive changes since the
previous release, and is now suitable for production use. Note
that the packaged version of wanna-build is not yet ready for use
with buildd.
6) buildd no longer bind mounts /home into the chroot.
7) buildd now handles all wanna-build interaction. All sbuild
wanna-build usage has been removed, including the
--auto-give-back and --database options.
* Major changes in 0.59.0:
1) The wanna-build options --no-propagation and
--no-down-propagation have been removed. These options no longer
have any effect, and were only present for backward-compatibility
with older versions of buildd. buildd no longer uses these
options, making it safe to remove them.
2) The wanna-build configuration options used by buildd in
buildd.conf have been renamed for better compatibility with future
planned sbuild changes. buildd.conf will require updating with the
new option names:
┌───────────────────────┬─────────────────────────────────────┐
│ old │ new │
├───────────────────────┼─────────────────────────────────────┤
│ $wanna_build_dbbase │ $wanna_build_db_name │
│ $wanna_build_user │ $wanna_build_db_user │
│ $ssh_user │ $wanna_build_ssh_user │
│ $ssh_host │ $wanna_build_ssh_host │
│ $ssh_socket │ $wanna_build_ssh_socket │
│ @ssh_options │ $wanna_build_ssh_options (arrayref) │
└───────────────────────┴─────────────────────────────────────┘
3) sbuild will set the "attempted" and "given-back" states for
certain failures. If wanna-build updates are configured with
--database and --auto-give-back by buildd, it will set the
"built" state on build completion, and "attempted" if the build
failed. As before, "given-back" will be set for most other
failure conditions.
* Major changes in 0.58.6:
None.
* Major changes in 0.58.5:
None.
* Major changes in 0.58.4:
None.
* Major changes in 0.58.3:
1) The broken options --add-depends and --force-depends have been
replaced by --add-depends, --add-conflicts, --add-depends-indep
and --add-conflicts-indep. These options each take a single
dependency, using the same dependency syntax one would use in
debian/control.
2) The wanna-build configuration has been moved back to
/etc/buildd/wanna-build.conf. However, the option names have
been renamed and your configuration will require updating.
3) When reading configuration files, stricter checking is performed.
If you see a "Global symbol "$x" requires explicit package
name" error, then the option $x is not valid and should be
removed from the configuration file indicated.
4) The maintainer name no longer defaults to DEBEMAIL as in most
cases the maintainer in the .dsc should be used.
* Major changes in 0.58.2:
None.
* Major changes in 0.58.1:
None.
* Major changes in 0.58.0:
1) The configuration option @no_auto_upgrade, which was no longer
used, has been removed. To prevent packages being upgraded
automatically, please use sbuild-hold. See sbuild-hold(1).
2) The configuration option $chroot_mode has been restored, allowing
chroot access by both schroot (which remains the default) and
sudo.
3) A new configuration option $chroot_split has been added. This
allows both schroot and sudo chroot access to be modified to run
apt/dpkg on the host system. Note that schroot needs sudo to run
commands as root on the host system.
4) Deprecated commands from /usr/lib/sbuild have been removed.
Please use the sbuild-* replacements found in /usr/bin.
5) The maintainer name defaults to DEBEMAIL if set in the
environment, so no longer needs setting explicitly in .sbuildrc.
6) Unless configured as a buildd ($sbuild_mode), when using sudo
chroot access, chroots are searched for in /etc/sbuild/chroots.
This directory should contain symlinks to the chroots, with the
distribution name being the name of the symlink. Buildd mode
will continue to use the old method of current-$distribution
symlinks in the current directory.
7) The log format used for build logs has been updated to use a more
readable format, and is now encoded in UTF-8 rather than
US-ASCII. Code which parses the log file may need to be updated
to handle the new format. Further log format changes made in the
future.
8) All commands now have a corresponding manual page.
9) The wanna-build configuration has moved from
/etc/wanna-build/wanna-build.conf into /etc/sbuild/sbuild.conf as
part of ongoing refactoring work. It is expected that this will
be split into a separate file in the future once this work is
completed.
10) wanna-build can now correctly dump and restore its databases
using the --export and --import options. Note that
wanna-build-catmldbm and related commands can not correctly dump
the current database format, can not be used to restore the dump
and will be removed in the future.
11) The wanna-build commands do-merge-packages and do-merge-quinn
have been renamed to wanna-build-merge-packages and
wanna-build-merge-quinn.
12) wanna-build changes from the official Debian wanna-build
installation have been merged.
13) Initial support for a wanna-build PostgreSQL backend backend has
been added, but is not currently functional. The database
schema is also included, but not yet finalised.
* Major changes in 0.57.5:
1) sbuild-createchroot now supports most of the options found in
debootstrap. It no longer adds main and contrib to
/etc/apt/sources.list in the chroot (the components are now
specified with --components instead of being hard-coded).
2) All sbuild commands now support --help and --version options.
3) sbuild-abort and sbuild have been updated to work with the
current dpkg-buildpackage and handle build termination
gracefully.
* Major changes in 0.57.4:
None.
* Major changes in 0.57.3:
None.
* Major changes in 0.57.2:
1) The new dpkg source format is now supported.
2) The chroot to build in may be specified independently of the
distribution.
3) Purging of files in the chroot has been made more reliable, by
putting all of the build files in a single temporary directory
which is purged after the build completes.
4) $mailto no longer needs setting in .sbuildrc if not running as a
buildd.
5) An option to always update the APT package list has been added
($apt_update in sbuild.conf).
6) wanna-build, the database used to track which packages need
rebuilding, has been added as a separate package.
* Major changes in 0.57.1:
1) While not used in the Debian packaging, the buildd and
wanna-build sources have been merged from the separate buildd.git
repository. They will be built as packages in a future release.
2) Helper scripts in the Debian package have been moved from
/usr/lib/sbuild back to /usr/share/sbuild, where they were
located prior to 0.57.0.
3) schroot "directory" type chroots are now purged correctly
following a package build.
* Major changes in 0.57.0:
1) All programs have been moved from /usr/share/sbuild to /usr/bin
(with the exception of dobuildlog), with an sbuild- prefix. In
some cases, the names have been changed. The older programs are
still available under /usr/lib/sbuild.
2) All programs (with the exception of dobuildlog) now have manual
pages.
3) sbuild now runs apt-get with APT::Install-Recommends set to
false.
4) sbuild can be optionally configured to use an alternative
algorithm to compute build dependencies, to allow installation of
alternative build dependencies.
5) sbuild-createchroot (formerly buildd.chroot) now creates a fully
working chroot, with no manual setup required other than adding
the schroot configuration.
|