Download project files

How do I verify a download?


v1.0.0rc3 release from the dev series released

Release information
Changelog:

 * Fixed a problem with the setup script that caused installation to fail due
   to gzimg_build and gzimg_write no longer being present in the data directory.
   (Forest Bond)

File Description Downloads
download icon rebar-1.0.0rc3.tar.gz (md5, sig) rebar 1.0.0rc3 source 20
last downloaded 68 weeks ago
Total downloads: 20

v1.0.0rc2 release from the dev series released

Release information
Changelog:

 * Fixed a bug where debootstrap would be run with unsupported command-line
   option "--no-check-gpg" due to incorrect version checking logic.
   (Forest Bond)

 * GRUB can now be used for both i386 and amd64 architectures. Previously
   this would fail because the GRUB files were always copied from
   /usr/lib/grub/i386-pc, which does not exist on 64-bit systems.
   (Forest Bond)

 * When building disk images, filesystem size limits are enforced via losetup
   command-line option "--sizelimit".
   (Forest Bond)

 * When writing to an image with ``gzimg_write``, filesystem size limits are
   enforced via losetup command-line option "--sizelimit".
   (Forest Bond)

 * Binary packages (i.e. from directories passed via ``BinaryDirs``) are ignored
   if they don't match the platform architecture. Installing foreign
   architecture packages this way is currently unsupported.
   (Forest Bond)

 * Imaging scripts now ignore devices with size zero (e.g. because media is not
   inserted).
   (Forest Bond)

 * Imaging scripts now show a more complete device description instead of just
   the device name.
   (Forest Bond)

 * Imaging scripts now allow removable devices to be used as the destination
   device. Previously, a kernel boot parameter was required. A removable
   device will only be selected if a non-removable device cannot be found.
   (Forest Bond)

 * Fixed a bug where the APT libraries were configured to use the host
   architecture rather than the platform architecture if no architecture was
   explicitly specified in the Rebar file. This would have caused a variety of
   problems with package management, but only if the virtualizer architecture
   differed from that of the host system.
   (Forest Bond)

 * The ``Repository`` directive can optionally be passed a list of architectures
   for multi-arch qualification (i.e. the repository will only be used for the
   specified architectures). See the documentation for details.
   (Forest Bond)

 * The ``PlatformImage``, ``DirImage``, and ``DiskImagingImage`` directives now
   support specifying the boot loader installation location (MBR or VBR). See
   the documentation for details.
   (Forest Bond)

 * gzimg_write traps signals in order to detach a loopback device if necessary.
   (Forest Bond)

 * gzimg_write checks that the correct number of arguments were specified.
   (Forest Bond)

 * gzimg_write reads source image data from standard input if only one argument
   (the destination device/image) is specified.
   (Forest Bond)

 * Disk and network imaging scripts now ask the user whether to poweroff,
   reboot, or halt after imaging is complete.
   (Forest Bond)

 * gzimg_write explicitly uses gawk instead of the default awk implementation as
   gawk-specific features (the gensub function) are used. This fixes failures
   with other awk implementations.
   (Forest Bond)

 * The imaging hooks install gawk instead of the system awk for use by
   gzimg_write.
   (Forest Bond)

 * The screen is cleared after initializing the terminal in imaging scripts.
   (Forest Bond)

 * If a source or destination device is not found during image, the user is
   offered the choice to continue waiting instead of failing immediately. This
   is helpful on systems with slow hardware initialization.
   (Forest Bond)

 * The gzimg_write and gzimg_build scripts themselves are now installed directly
   in the system executable directory rather than installing small Python wrapper
   scripts.
   (Forest Bond)

 * gzimg_write and gzimg_build now support images with multiple partitions.
   When writing the image, the last partition is resized to fill the remaining
   free space on the destination device.
   (Forest Bond)

 * Fixed a bug with gzimg_write where partition type IDs were not handled
   correctly if they contained hexadecimal digits a-f.
   (Forest Bond)

 * Fixed a bug with gzimg_write where large (too large to represent as an
   unsigned integer) partition start offsets and sizes may have been truncated.
   (Forest Bond)

 * gzimg_write hides fsck output unless errors were found.
   (Forest Bond)

 * gzimg_write truncates the data from the first track of the source image if
   it is larger than the track size of the destination device/image.
   (Forest Bond)

 * gzimg_write checks data size against partition size and exits with an error
   if there is not enough space on the device. This avoids wasting time writing
   data that will not fit.
   (Forest Bond)

 * Imaging targets introduce requirement for package gawk to support
   gzimg_write.
   (Forest Bond)

 * Imaging hooks now correctly exit with non-zero status on failure.
   (Forest Bond)

 * Imaging hooks install GNU dd as the busybox version lacks some features
   needed by gzimg_write (ibs/obs).
   (Forest Bond)

 * gzimg_write uses a larger block size when writing partition data in an effort
   to achieve higher throughput.
   (Forest Bond)

 * gzimg_write prints loopback device details if appropriate.
   (Forest Bond)

 * If possible, the imaging scripts configure e2fsck to ignore problems caused
   by an incorrectly set system clock.
   (Forest Bond)

 * mount/umount command-line option -n is used during builds.
   (Forest Bond)

 * /dev/shm symlinks are properly handled in the chroot.
   (Forest Bond)

 * devtmpfs is mounted on /dev in the chroot if supported by the kernel.
   (Forest Bond)

 * Disk image manipulation is now generally done via a loopback device, with a
   few exceptions. This is required for forthcoming GRUB 2 support.
   (Forest Bond)

 * GRUB 2 is now supported via bootloader constant ``GRUB2``.
   (Forest Bond)

 * Requesting an invalid boot loader location (e.g. ``SYSLINUX(MBR)``) now
   results in a syntax error rather than proceeding with the build and failing
   later with an uncaught ``AssertionError``.
   (Forest Bond)

 * The primary disk partition is only marked bootable whenever the boot loader
   is installed in the VBR. Previously, it was always marked bootable, even
   when the boot loader was installed in the MBR.
   (Forest Bond)

 * The ``PlatformImage`` directive now supports specifying additional partitions
   to be inserted at the start of the disk image. See the documentation for
   details.
   (Forest Bond)

 * The ``PlatformImage`` directive now supports specifying commands to be run
   on the disk image itself (i.e. as opposed to the root filesystem image). See
   the documentation for details.
   (Forest Bond)

 * The ``__name__`` variable is now defined in the execution context of Rebar
   files. This makes it possible to define classes.
   (Forest Bond)

 * Extensions defined in Rebar files are now supported via the new ``Extension``
   directive. See the documentation for details.
   (Forest Bond)

 * Paths passed to the ``Include`` directive are now interpreted relative to the
   file in which the include occurs. Previously, include paths were always
   interpreted relative to the current working directory.
   (Forest Bond)

 * Fixed a bug where SIGSEGV was triggered due to not initializing the APT
   library properly in some cases when build phases were passed via
   command-line arguments.
   (Forest Bond)

 * The ``Repository`` directive can optionally be made trusted. See the
   documentation for details.
   (Forest Bond)

 * The local APT repository is set trusted.
   (Forest Bond)

 * APT configuration parameter ``APT::Get::Force-Yes`` is no longer set to
   true during build. It is no longer needed to disable authentication for the
   local APT repository. This may be a backwards incompatible change for some
   platform configurations. Custom APT repositories may need to be made
   trusted. In some cases re-enabling this setting may be required, however
   this is not recommended if it can be avoided.
   (Forest Bond)

File Description Downloads
download icon rebar-1.0.0rc2.tar.gz (md5, sig) rebar 1.0.0rc2 source 11
last downloaded 69 weeks ago
Total downloads: 11

v1.0.0rc1 release from the dev series released

Release information
Changelog:

 * CopyTo: Fixed a bug where user and group ownership would be applied in
   the virtualizer root rather than in the chroot.
   (Forest Bond)

 * Fixed missing documention of ``Include`` directive.
   (Forest Bond)

 * Fixed an uncaught ``UnicodeEncodeError`` that can occur when importing source
   packages with non-ASCII characters in the dsc or changelog files. This bug
   previously led to an ``AttributeError`` due to the original exception being
   mishandled.
   (Forest Bond)

 * The ``Include`` directive now supports keyword argument ``ignore_missing``.
   If specified as True, no error will occur if the included file does not
   exist.
   (Forest Bond)

 * The "clean" build phase no longer fails if the /proc, /dev/pts, or /dev/shm
   mount point does not exist within the platform chroot. This would be the
   case if the clean step had already been run, for example.
   (Forest Bond)

 * pshell version 0.2.0 or later is now required.
   (Forest Bond)

 * When importing unpacked source packages, the cp option "--force" is used to
   overwrite previously imported files of the same name. This makes it possible
   to run the "build" phase multiple times (e.g. after a previous build failed).
   However, this use case is still prone to quirks such as multiple sources.list
   entries for local APT repository.
   (Forest Bond)

 * APT process status is displayed when upgrading packages as it is when
   installing packages.
   (Forest Bond)

 * When copying files to or from the virtualizer, the modified and
   access times are copied. This fixes problems building some packages from
   source.
   (Forest Bond)

 * Output from package builds is logged continuously rather than being cached
   in memory until the build is finished.
   (Forest Bond)

 * Package building has been reworked so that source packages are not built
   until the build dependencies are known to be satisfiable and binary build
   results are not imported into the local APT repository until they are known
   to be installable. There were a variety of cases where the previous approach
   would fail, particularly with complex build dependencies.
   (Forest Bond)

 * Copying files to and from the virtualizer is now done via a socket connection
   using OpenBSD netcat. This makes transfers at least an order of magnitude
   faster.
   (Forest Bond)

 * The "shell" command has been renamed to "login".
   (Forest Bond)

 * All packages are upgraded during the "install" build phase. The most
   significant result of this is that packages added to the local APT
   repository (i.e. those built from source or loaded from package binary
   directories) are upgraded.
   (Forest Bond)

 * The ext4 filesystem is now supported for disk images.
   (Forest Bond)

 * Disk and network imaging scripts can now be configured to write images to
   removable storage devices by using kernel parameter "allow_removable".
   (Forest Bond)

 * When importing unpacked source packages, bzip-compressed orig tarballs are
   correctly copied into the chroot.
   (Forest Bond)

 * When building unpacked source packages, the epoch is correctly stripped from
   the package version number when guessing the dsc filename. This fixes build
   failures for unpacked source packages with an epoch in the version.
   (Forest Bond)

 * Virtual build dependencies are now correctly handled when determining the
   build order.
   (Forest Bond)

 * Fixed an uncaught CommandFailed exception when build dependencies cannot be
   satisfied.
   (Forest Bond)

 * New command "virt-login" can be used to start an interactive shell in the
   virtualizer (similar to the "login" command).
   (Forest Bond)

 * If it is supported, ``debootstrap`` command-line option "--no-check-gpg" is
   used to avoid trying to verify the release signature. However, in the
   future we will likely provide some mechanism for specifying whether or not
   the signature should be checked.
   (Forest Bond)

 * Copying the contents of a dereferenced symlink with a non-existent target no
   longer fails silently. Presently, this leads to an uncaught
   ``AssertionError``, but in the future it will cause the build to fail with an
   appropriate error message.
   (Forest Bond)

 * Fixed an issue where copying the contents of a dereferenced symlink target
   from the chroot would copy from the virtualizer instead if the symlink target
   was an absolute path. In many cases, the target path would not exist in the
   virtualizer, so no file would be copied.
   (Forest Bond)

File Description Downloads
download icon rebar-1.0.0rc1.tar.gz (md5, sig) rebar 1.0.0rc1 source 11
last downloaded 69 weeks ago
Total downloads: 11

v0.9.0 release from the dev series released

Release information
Changelog:

[No changes].

File Description Downloads
download icon rebar-0.9.0.tar.gz (md5, sig) rebar 0.9.0 source 29
last downloaded 69 weeks ago
Total downloads: 29

v0.9.0rc2 release from the dev series released

Release information
Changelog:

 * CopyTo: Fixed handling of symlinks. We were executing "ln" with the source
   and destination arguments reversed.
   (Forest Bond)

 * If /sbin/initctl does not exist, no attempt is made to divert it in when
   entering the virtualizer or platform. This fixes possible failures with
   platforms not using Upstart.
   (Forest Bond)

 * If dpkg-divert is not available, mv is used to disable /sbin/initctl when
   entering the virtualizer or platform. This fixes possible failures with
   platforms that manage to remove dpkg-divert by pruning.
   (Forest Bond)

 * If restoring /sbin/initctl fails after diversion with dpkg-divert when
   entering the virtualizer or platform, mv is used to restore it. This
   addresses problems when /var/lib/dpkg is pruned.
   (Forest Bond)

 * If dpkg-divert is available but fails to divert /sbin/initctl when entering
   the virtualizer or platform (probably due to /var/lib/dpkg having been
   pruned), mv is used as a fallback.
   (Forest Bond)

 * CopyFrom: Fixed argument checking, which rejected the source and destination
   using inverted logic (the destination was expected to be an absolute path
   instead of the source).
   (Forest Bond)

 * The CopyFrom and CopyTo directives now support a "using" keyword argument,
   which should be either PLATFORM or VIRTUALIZER. If set to PLATFORM (the
   default), files are copied to or from the platform. If set to VIRTUALIZER,
   files are copied to or from the virtualizer. This allows targets to be built
   outside of the platform (in the virtualizer directly).
   (Forest Bond)

 * The DirImage directive was introduced. See the documentation for details.
   (Forest Bond)

File Description Downloads
download icon rebar-0.9.0rc2.tar.gz (md5, sig) rebar 0.9.0rc2 source 16
last downloaded 69 weeks ago
Total downloads: 16

v0.9.0rc1 release from the dev series released

Release information
Changelog:

 * Transferred all copyrights to Outpost Embedded, LLC.
   (Forest Bond)

 * Python 2.6 is the minimum required Python version.
   (Forest Bond)

 * The "rebar-diskimage" utility has been removed.
   (Forest Bond)

 * A dual-root model is now used. A "virtualizer" is used to build the
   platform. The virtualizer is a restricted environment that provides root
   access and can be customized (by adding and removing packages) to support
   the build process.

   The virtualizer to use for a build is specified using the new --virtualizer
   command-line option. For example, use "--virtualizer chroot:$directory" to
   use the "chroot" virtualizer in chroot $directory. The default for this
   option is "chroot:chroot" (use the "chroot" virtualizer with directory
   "chroot").

   Presently, the only supported virtualizer is a chroot, which can be
   initialized like this::

     rebar --virtualizer chroot:$directory --create-virtualizer hardy

   The platform is built in the /platform directory inside the virtualizer root.

   See the documentation for details.

   (Forest Bond)

 * New build phase "initialize" was added. This currently implements a single
   new function, prepartion of the virtualizer for other build steps. During
   this build phase, packages required to support later build steps are
   automatically installed into the virtualizer.
   (Forest Bond)

 * Fixed rare bug where resolv.conf backup is removed from host system instead
   of chroot if copying resolv.conf is interrupted by an asynchronous exception
   (due to a signal, for instance).
   (Forest Bond)

 * The ``Debug`` directive is no longer supported. To enable debugging, use the
   new ``--debug`` command-line option.
   (Forest Bond)

 * The ``Hostname`` directive is no longer supported. The ``Platform``
   directive should be used instead, like this:

     Platform(architecture = 'i386', hostname = 'foo')

   Note that ``Platform`` supports parameters other than the hostname. See the
   documentation for details.

   (Forest Bond)

 * Directives ``BaseRepository``, ``AdditionalRepository`` have been replaced by
   new directives ``Repository``, ``Bootstrap``. See the documentation for
   details.
   (Forest Bond)

 * The ``KeepPackages`` directive has been renamed to ``Require``.
   (Forest Bond)

 * The ``ExtraPackages`` directive has been renamed to ``Install``.
   (Forest Bond)

 * The ``Require`` directive no longer supports regular expressions matching
   package names. Actual package names must be used.
   (Forest Bond)

 * Build tools, build dependencies, and packages named by the ``Install``
   directive are marked as automatically installed (using apt-mark) so that e.g.
   apt-get autoremove will cause them to be removed.
   (Forest Bond)

 * The ``Target`` and ``target`` directives were removed, as was the
   ``--target`` command-line option.
   (Forest Bond)

 * Dropped directive ``Echo``. It was not very useful.
   (Forest Bond)

 * ``Include`` directive now supported. This is used to include additional
   content in the Rebar source file. Documentation is pending.
   (Forest Bond)

 * /etc/mtab is no longer backed up, modified, and restored when entering the
   chroot. If no /etc/mtab exists, however, an empty one is created. This
   fixes errors creating ext2 and ext3 filesystems since some versions of
   mkfs.ext2 and mkfs.ext3 try to check if the device is mounted before writing
   data.
   (Forest Bond)

 * Fix passing arguments to ``object.__init__`` in ``Action.__init__``.
   (Forest Bond)

 * Disk image directives are no longer handled as post-remove actions. Instead,
   a separate "ship" build phase is used (with "pre-ship" and "post-ship" action
   phases).
   (Forest Bond)

 * The new ``PlatformImage`` directive should be used to request that a platform
   disk image be built. Note that the arguments accepted by ``PlatformImage``
   differ from those that were previously accepted by ``DiskImage``. See
   the documentation for details.
   (Forest Bond)

 * Introduced new directive ``DiskImagingImage``, which builds imaging disk
   images. These are bootable disk images that write a platform disk image to a
   local storage device. Use with care, if such an image is booted on the wrong
   machine, parmanent data loss can occur (but a confirmation prompt is
   presented).
   (Forest Bond)

 * Introduced new directive ``DiskImagingDir``, which builds a directory
   containing the same files that images created with ``DiskImagingImage``
   would contain.
   (Forest Bond)

 * Introduced new directive ``NetworkImagingDir``, which builds files for PXE
   booting an imaging system. The image file must be placed on an HTTP or FTP
   server (wget must be able to access the URL).
   (Forest Bond)

 * A new image format called "gzimg" is supported. Scripts for building images
   (``gzimg_build``) and writing images (``gzimg_write``) are included. Targets
   that build disk images can be passed ``format = "gzimg"``.
   (Forest Bond)

 * ``print-size`` command is no longer supported.
   (Forest Bond)

 * The "chroot-shell" command has been renamed to "shell".
   (Forest Bond)

 * The interactive shell (using command "shell") handles SIGWINCH correctly via
   pshell's support for it. Not doing so caused problems with bash's
   interactive command-line editing. Obviously, this also has the benefit of
   correctly handling actual window size changes that take place mid-session.
   (Forest Bond)

 * Build phase "print-chroot-size" is no longer supported.
   (Forest Bond)

 * Added new build phase "build" for building Debian packages. This was
   previously done as part of the "install" phase.
   (Forest Bond)

 * When building packages from source, build dependencies are automatically
   fulfilled and no longer need to be manually specified via ``ExtraPackages``.
   (Forest Bond)

 * When temporarily adding the local APT repository in the chroot,
   /etc/apt/sources.list.d/rebar.list is used instead of modifying
   /etc/apt/sources.list.
   (Forest Bond)

 * Source packages can either be complete source directories (including the
   debian directory) or a Debian source package (a .dsc file and any
   accompanying files).
   (Forest Bond)

 * An APT upgrade is performed during the "base" build phase (after running
   debootstrap). This was previously not done until the "install" build phase.
   (Forest Bond)

 * Build steps are now implemented as Task objects, which are provided by Python
   library pytasks. This allows for build progress reporting. Introduces new
   dependency pytasks.
   (Forest Bond)

 * Output generation has undergone major rework. Multiple output formats are
   now supported. The output format to use for a build is determined by the
   ``--output`` command-line option, which defaults to "concise". Output
   similar to (but not exactly the same as) the old format can be achieved using
   output format "verbose". Output formats "detailed" and "concise" are now
   accompanied by a progress bar if stdout is connected to a tty. See the
   documentation for details.
   (Forest Bond)

 * Dropped sclapp in favor of sclapp2 and pshell. Note that dependencies have
   changed as a result (see README for details).
   (Forest Bond)

 * Fixed a bug where loading multiple Rebar environments in the same process
   corrupted mutable default values. This would affect Rebar during normal
   operation, but might have affected other programs making use of
   ``RebarEnvironment``.
   (Forest Bond)

 * Build failures and errors in Rebar files are now handled in a user-friendly
   fashion rather than resulting in a Python traceback.
   (Forest Bond)

 * Build logging is now supported via command-line option "--log".
   (Forest Bond)

 * New directive ``ExportDirs`` is now supported. Files resulting from
   package builds (where package sources are specified via ``SourceDirs``)
   are copied to this directory after building. See the documentation for
   details.
   (Forest Bond)

 * When building packages from source, the source package and changes file are
   not signed. This avoids build failures due to missing keys.
   (Forest Bond)

 * /etc/kernel-img.conf is no longer backed up, modified, and restored when
   entering/exiting the chroot. Instead, it is unconditionally written once
   during the "base" build step. Customization of file contents or complete
   removal can be performed as part of any other build steps.
   (Forest Bond)

 * /dev/shm is mounted inside the chroot. This is needed by programs that use
   shared memory.
   (Forest Bond)

 * sync is executed before running losetup -d when building disk images. This
   prevents a possible "Device or resource busy" error from losetup.
   (Forest Bond)

 * dpkg option --force-confnew is used when installing packages in the chroot.
   (Forest Bond)

 * pyfdisk is used for creating disk image partition tables. Built-in support
   for generating partition tables is dropped. This introduces a new
   dependency.
   (Forest Bond)

 * The ``PackageDir`` directive has been replaced with new directive
   ``BinaryDirs``. Note that ``BinaryDirs`` accepts more than one argument
   and can be used more than once. See the documentation for details.
   (Forest Bond)

 * The ``PackageSourceDir`` directive has been replaced with new directive
   ``SourceDirs``. note that ``SourceDirs`` accepts more than one argument
   and can be used more than once. See the documentation for details.
   (Forest Bond)

 * The ``Execute`` directive has been replaced with the ``Exec`` and ``Shell``
   directives. Note that the accepted arguments for these new directives
   differ from those accepted by ``Execute``. See the documentation for
   details.
   (Forest Bond)

 * The ``Copy`` directive has been replaced with new directive ``CopyTo``.
   Note that ``CopyTo`` arguments and semantics differ from those of the
   original ``Copy`` directive. See the documentation for details.
   (Forest Bond)

 * Added support for a new directive, ``CopyFrom``. This is similar to
   ``CopyTo``, but inverted (it copies files from the platform to the host
   system).
   (Forest Bond)

 * The ``Remove`` directive has been dropped. Use the "rm" command directly via
   the ``Exec`` directive instead.
   (Forest Bond)

 * The ``Update`` directive has been dropped. Instead, use ``CopyTo`` with
   ``replace = True``.
   (Forest Bond)

 * The ``DisableServices`` directive has been removed. Use ``Exec`` to run the
   appropriate commands to disable services for the build distribution.
   (Forest Bond)

 * Added new directive ``Target``. This can be used to define arbitrary targets
   using a list of actions, like this::

     Target('filename', [Shell('echo foo >filename')])

   The action sequence specifies how the target is built.

   (Forest Bond)

 * GRUB errors are handled correctly. The previous error handling code was
   broken and would lead to a hang waiting for the shell prompt, even though
   it had already appeared. The GRUB error was also not reported correctly.
   (Forest Bond)

 * GRUB files are always copied to /boot/grub when building disk images using
   GRUB as the boot loader, even if /boot/grub already exists. Existing files
   are not overwritten. This prevents GRUB install failures when the user has
   created /boot/grub/menu.lst but not copied the rest of the boot files needed
   by GRUB.
   (Forest Bond)

 * The "clean" build phase was introduced. This build phase runs at the very
   end of the build by default. When it runs, the platform is removed
   completely from the virtualizer.
   (Forest Bond)

 * /sbin/initctl is replaced (diverted) with a no-op during build phases to
   prevent upstart jobs from being started and stopped inappropriately.
   (Forest Bond)

File Description Downloads
download icon rebar-0.9.0rc1.tar.gz (md5, sig) rebar 0.9.0rc1 source 13
last downloaded 68 weeks ago
Total downloads: 13