vcswatch reports that
this package seems to have a new changelog entry (version
4.0.1-1, distribution
unstable) and new commits
in its VCS. You should consider whether it's time to make
an upload.
Here are the relevant commit messages:
commit c0263563b39820c30f6ecf9fba0dbbc2532c6efb
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 21 23:11:36 2023 +0000
debian changelog - update for 4.0.1 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 802e219c39c5fef1ccb1d512b601f0127ba0a716
Merge: 666087a 379a5c1
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 21 23:08:50 2023 +0000
Merge branch 'master' into debian/master for 4.0.1 release
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 666087aabc8eb0c12f59215fd17b43e9ea4124b2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 20 11:45:10 2023 -0800
due.docs - Add additional documentation files.
This puts the full collection of DUE documentation, with examples,
FAQ and getting started guides under /usr/share/doc/due
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 379a5c1a823fc1504d779d33c0ea4d4261dea25c
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 21 14:51:53 2023 -0800
Version 4.0.1 - New release for bug fixes
This fixes a few minor issues found post-release candidate.
- Image export now retains image name and tag.
- Debian duebuild's --download-src handles containers without sources.list files
- ONIE template has commented out mounts of suggested directories, as this
caused failures when using Podman. They can be re-added for Docker, though.
Signed-off-by: Alex Doyle: <adoyle@nvidia.com>
commit 960cdef5dce23b6415761e0482343b5387ac401f
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 21 14:39:29 2023 -0800
Debian duebuild - Improve --download-src error handling.
This accounts for the case of an /ect/apt/sources.list file
not being present, as is the case with Debian Sid containers.
--download-src will:
- Search /etc/apt for any deb-src entries. If it finds them, it
continues with an apt-src download.
- If it fails to find them, it will try and create deb-src entries
from existing deb entries in /etc/apt/sources.list and put the
resulting file under /etc/apt/sources.list.d.
- If an /etc/apt/sources.list file does not exist, it stops trying
to be clever and just errors out, letting the user figure out
how to add deb-src entries.
Testing:
-------
duebuild --download-src watchdog in a Ubuntu 22.04 container
- got source
duebuild --download-src watchdog in a Debian Sid container
- Fails to find source and errors out, as designed.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit fc1f681d344b41cf02784b552d166808383f5be3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Jan 19 18:38:31 2023 -0800
ONIE Dockerfile.config - disable auto mount of /cache and /dev
This comments out the auto mount of /var/cache/onie and /dev when
running an ONIE build container as it causes the container session
to crash with permissions errors on Podman.
The mounting is more of a convenience for secure boot builds and
storing source code for building multiple platforms, so it is more
of a corner case issue unless you are the ONIE Project Lead
Docker users can re-enable this, or add the mount for 'onie-build'
containers in the due.conf file used by the system.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f372c4d9d7194128366dd7233eea9471f31a45f2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Jan 19 18:30:11 2023 -0800
libdue Export image name and tag when exporting an image
This modifies the docker|podman save command to use a name:tag
rather than an image Id, which preserves the name and tag of the
container in the exported image so that it can be used on import.
Note that images exported from Podman will import to Docker with
a 'localhost/' in front of the image name.
This gets in to the 'short names' of Docker images not presenting
the full URL of where the image came from.
Docker assumes 'Docker.io/' and removes this.
Podman defaults to 'localhost/'
...which is why images exported from Docker to Podman get
'localhost/' prepended to the image name, and since images
exported from Podman to Docker don't start with 'Docker.io',
the 'localhost/' shows up on Docker import.
As there doesn't seem to be a way to get around this without
'being clever' and introducing more corner cases to cover
(Ex: tag the image, then export it, then delete the tag...unless
a tag already exists...) I'll leave it at "Functions As Designed"
Testing:
--------
Export Podman generated image, load on Docker system.
Export Docker generated image, load on Podman system.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 599456ff83d3c6f514c3829788dc42d828df918b
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 14 09:17:44 2023 -0800
debian/changelog - Update 4.0.0 release with bug fixes
This notes two debian/control specific fixes from:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&src=due
Drop qemu from recommends
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010082
Add support for systemd-binfmt
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023396
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a974ae3428cfe795009b607d0b5184a759e1a694
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 14 09:12:08 2023 -0800
debian/control - remvove recommends qemu - Deb bug #1010082
This removes the dummy package qemu from recommends: as it
currently installs no functional files and is going away.
Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010082
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit eb85edabe485550260685409fc100bffcb915a64
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 14 09:04:56 2023 -0800
debian/control - systemd as alternate recommends - Deb bug #1023396
As systemd provides a builtin cross-distro facility named
systemd-binfmt to register binary formats, it is the preferred
way to getting alternate architecture binaries to run.
binfmt-support is being kept as an alternate for older releases.
From: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023396
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 653ad97ca611a7c73118e2e015976ccf86d5171b
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 11:07:44 2023 -0800
debian/changelog - fix timestamp using dch -i
As part of re-checking everthing before tag and release,
Use host system, not container to be double sure of time zone.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f324faa9b351cf9a2ff1ea90201b38e4e66100b3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 19:00:01 2023 +0000
Update debian changelog for 4.0.0 release
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit e0c20d8aaf4494bbc41dc20da94377cf7121f7b8
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 18:54:55 2023 +0000
due.lintian-overrides - update for new files
This extends the overrides to the redhat and suse template directories,
as well as explicitly marking sourced bash scripts as non executable.
Signed-off-by Alex Doyle <adoyle@nvidia.com>
commit 06b713164907d3df4d7f6810d6bbfbb06693aef4
Merge: e276bc4 00fdc9f
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 10:45:47 2023 -0800
Merge branch 'master' into debian/master
Preparing for 4.0.0 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit e276bc4012209de90eb45188577a04abe906ca6d
Merge: 1a90e15 f352225
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 10:42:16 2023 -0800
Merge branch 'debian/master' of https://github.com/CumulusNetworks/DUE into debian/master
commit 00fdc9f054c352f40b6eb252e860b3aa487ab1b3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 09:23:29 2023 -0800
Makefile - fix build success logic.
This moves the check for a resulting .deb or rpm in to the second
pass of the Makefile, where it will execute AFTER build has been
attempted.
This does explain the failures on the first pass of the build.
If the .deb or .rpm was left over from a previous build, it would
be detected before build start, and everything would be fine.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 6232adba01f0d6adb4a95ca7df9f50e5eefd4e6c
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Jan 13 07:54:04 2023 -0800
Add DUE logo to documents.
This adds the jpeg for the project logo and adds
it to a few documents.
The intent of the logo is to provide a visual reference
for the project, where the Venn diagram implies that
the user can be simultaneously in two different environments.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 5374f7e2c93f6ad70e218913287ab1c51cb4e1a2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Jan 12 17:59:44 2023 -0800
due.conf - Add sample defaults for ONIE build
This adds a commented out example of the settings I'd used producing
ONIE releases for ONIE containers. The two options are:
--privileged - needed to loopback mount filesystems, needed when doing
Secure boot builds that set up a virtual USB drive.
--volume - mount the host's cache of ONIE downloaded packages under
/var/cache/onie/downloads (only use it if it is there.) This
can speed up builds by reducing the need to download packages off
the internet.
The example is commented out as not all users will need it, and
not all systems will have a cache, so it is left to the developer to
know what the right thing to do is.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f352225abaf3c4a99ab497ca41cac0b83a954232
Merge: 13e7f50 afa9bf1
Author: Alex Doyle <44242404+ehdoyle@users.noreply.github.com>
Date: Thu Jan 12 17:44:26 2023 -0800
Merge pull request #42 from debian-janitor/lintian-fixes
Fix some issues reported by lintian
commit cfcef651354a9741dd5d82fbb3f9c8cfcb1b0c16
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Jan 10 14:49:27 2023 -0800
Debian duebuild - support --lookup and download-src options.
This establishs some parity with the RPM duebuild script, where
I could never remember the commands to do this, so, presumably
developers more familiar with RPMs may have the same issues with
Debian.
--lookup - given a file it reports the .deb that installed it.
--download-src - in addition to running 'apt-get src', this will
go looking for deb-src entries under the container's /etc/apt/sources-list*
If it finds none, it will copy any 'deb http' URLS and write
them to a file under /etc/apt/sources.list.d/ as 'deb-src http',
since the binary and source repositories usually map up.
If it does find entries, it just skips to 'apt-get update' and
package download.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit afa9bf19b6267fffbe850875a85f086d682cb61b
Author: Debian Janitor <janitor@jelmer.uk>
Date: Sat Jan 7 21:52:04 2023 +0000
Update standards version to 4.6.2, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
commit f564ff94f34c3fca1292cf2c9419c9cf254a138c
Author: Debian Janitor <janitor@jelmer.uk>
Date: Sat Jan 7 21:52:02 2023 +0000
Set upstream metadata fields: Bug-Database, Bug-Submit, Repository-Browse.
Changes-By: lintian-brush
Fixes: lintian: upstream-metadata-file-is-missing
See-also: https://lintian.debian.org/tags/upstream-metadata-file-is-missing.html
Fixes: lintian: upstream-metadata-missing-bug-tracking
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-bug-tracking.html
commit 776bd5a02d6f6f14ad8fa63abc7a1733314f03fb
Author: Debian Janitor <janitor@jelmer.uk>
Date: Sat Jan 7 21:51:55 2023 +0000
Update lintian override info format in d/due.lintian-overrides on line 6, 10-13.
Changes-By: lintian-brush
Fixes: lintian: mismatched-override
See-also: https://lintian.debian.org/tags/mismatched-override.html
commit 45080fc1bbc181bef4f91216aa170a0f176fe6e5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 7 10:32:50 2023 -0800
libdue - Specify architectures to avoid warnings when using emulation.
To eliminate host/target architecture mismatch warnings when run. i.e:
"[Warning] The requested image's platform (linux/arm64) does not match the
detected host platform (linux/amd64) and no specific platform was requested"
- Podman requires:
--arch <target>.
- Docker wants:
--platform <target os>/<target arch>,
...and does not recognize --arch (at least in the verison I'm using,
which I will consider to be a feature for backwards compatibilty.)
So this commit adds conditional logic to eliminate the warnings.
Testing:
--------
Ubuntu 20 amd64, Docker ran Fedora 36 arm64
Ubuntu 20 amd64, Docker ran Sid amd64
RHEL 9 amd64, Podman ran Fedoral 36 arm64
RHEL 9 amd64, Podman ran RHEL9 amd64
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 861a73fb30ddd84b769713526b8a8630d519eb88
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jan 7 07:17:42 2023 -0800
pre-install-config.sh.template - Restrict faketime to Debian builds
Not all distributions will have faketime. This failed on RHEL9 testing.
As Debian 8 is the only build using it so far, limit its inclusion to
Debian based operating systems.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 5d6a32fc472d148a9fd5ba0a0faeade8768c0fcc
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Jan 3 15:21:28 2023 -0800
libdue - Supply OS when running with --platform
This fixes an issue seen on Podman where warnings about the
image platform not matching the expected platform were printing.
Supplying the OS with the architecture when using --platform fixes
this.
Ex: --platform linux/arm64
Testing
-------
Podman on Fedora 37 linux/amd64
Docker on Ubuntu 18 linux/arm64, and linux/amd64
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit b0e16dd68cccc92167701fec0938ffbaa51f52e0
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Jan 3 15:12:41 2023 -0800
Makefile rpm-package build fails on first ~/rpmbuild create
This adds a warning comment about this weird build condition.
For whatever reason, the rpm-package build can report failure
the first time it is run, as the Makefile wildcard match does
not detect the due*noarch.rpm file under ~/rpmbuild/RPMS/noarch
...even though a ls -l in the Makefile executing _before_ the
wildcard match runs does show that file there.
...and even though that detection logic works correctly on
subsequent builds.
Testing:
------------
rm --rf ~/rpmbuild
make rpm-package
<selected a fedora|opensuse container>
Build works, fail message prints
make rpm-package
Build works (rpm time stamp is updated)
Prints success.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit fa91aa7256ef0971daee377d956ddf2c66c3e976
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Jan 3 14:19:34 2023 -0800
Makefile - Automate packaging build cleanup.
This adds error handling to the rpm-package and debian-package
targets, which check out the rpm/master and debian/master branches,
then do the packaging build, then return to the master branch.
When the build fails the build area is left on the rpm or debian master
branch, which may not be immediately obvious to the user, and it
has files scattered around it which make switching back to master,
and remembering to 'stash pop' any changes, a bit much to ask.
So, for either of those targets, the build will always clean up
after itself as I've added a ' ; true' to keep even failed builds
from exiting the make.
To be able to actually flag errors, the Makefile will delete any
existing .deb or .rpm files that would be produced before the build
starts. (This happens a few steps in to the build so that conditions
that would prevent the build from working (wrong branch, missing tarfile,
etc ) have to be satisfied before the old build gets deleted)
If the deb/rpm does not exist at the end of the build, it's a fail,
and a big failure message will be printed.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0d00ec5a498ca6fa48cc1ec646c1f8aa98c95da8
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jan 2 15:22:12 2023 -0800
Support older (Debian 8) releases.
fixes #41
When using a Docker image for a release that is no longer
supported, users will encounter problems around expired keys
(resulting in validation errors) and possibly missing
upstream package repositories.
Fixing the missing repository problem will require the
developer to find archived copies of the repository and update
the image's /etc/apt/sources.list configuration.
However, DUE can help mitigate the key expiration/validation
issues by disabling APT security checks, reasoning that a
failed install at this point is worse than not having an image at all.
To that end, DUE's `pre-install-config.sh.template` will
`apt --force-install` packages for Debian releases.
The `post-install-config.sh` script will check against distributions
known to have these problems, and will notify the user with a warning
during image creation.
To do this, the `post-install-config.sh` will source the image's
`/etc/os-release` file and run APT commands with `faketime` to make
the system think the keys have not yet expired, provided the container's
release version matches a known release that has this problem.
As of 01/02/23, Debian 8 (Jessie) is the only image that is supported this way.
Additionally, the Debian `duebuild` script supports building in
containers that have this problem by supplying the `--force-apt` option.
Ex: `duebuild --force-apt --build`
will disable the checks on pulling in build dependencies, and do its
best to just build.
Users can also try force updating the keys by adding
`sudo apt-key adv --recv-keys` to the `pre-install-config.sh.template`
and re-creating the image, but this may result in getting a
newer set of expired keys.
Testing
-------
Built:
debian-package:
image from Debian 8 Jessie,
...and used it to build watchdog package with:
duebuild --force-apt --cbuild
images from Debian 11 Bullseye, and Sid
...and used them to build watchdog package with:
duebuild --cbuild
Also tried the Debian 11 watchdog build on WSL.
onie:
image from Debian 8 jessie
...and used it to build accton_as6701_32x from the
2020.11 legacy branch with
make MACHINEROOT=../machine/accton \
MACHINE=accton_as6701_32x -j8 all demo
image from Debian 10 Buster
...and used it to biuld a secure boot virtual target with:
make signing-keys install
make MACHINE=kvm_x86_64 shim-self-sign
make MACHINE=kvm_x86_64 -j8 all demo
So Debian 8 seems to work, and the changes don't seem to have
broken newer distributions.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 649b749530b8a4fe839dd2a55225edc0035f91d7
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jan 1 08:54:25 2023 -0800
README.md - elaborate on new RPM support.
This adds a few more comments about development history, specifically
calls out the new rpm *-package targets (fedora-package, etc)
and removes some references that implied DUE is strictly Debian -
which was accurate up to the 4.0.0 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a3433e4c5dc21ab86e2f843c0910808aa2f3e182
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 20:09:04 2022 -0800
README.md - updated to reference RedHat and SUSE
As Fedora, RHEL, SUSE, and openSUSE are now supported environments,
they get a mention in the top level README.md
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 1a90e15c3e6f704f557da0b6597cb5e96f44d48e
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 19:35:29 2022 -0800
due.lintian-overrides - update path formats for latest Lintian.
The latest Lintian in Sid as of release preparation is 2.115.3.
This version expects file paths used in Lintian overrides to
be enclosed in square braces [<path>], whereas the previous version
used in the 3.0.0 release of DUE did not.
This change adds square braces to the paths used to specify
Lintian overrides to eliminate 'mismatched tag' errors, and have
the overrides apply correctly.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 51346646906daa85332da27260fcdda87198a223
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 19:33:35 2022 -0800
debian/control - update Standards-Version to 4.6.1.0
Updates Standards-Version to 4.6.1.0 from the 4.6.0 used in the
3.0.0 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 49617291f33aa544de614efeef1fac0c20d353e8
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 09:56:26 2022 -0800
libdue - do not blame Docker fails on Podman systems.
This puts a conditional around an error that happens if Podman
errors out trying to list images. With Docker, it usually means
that the daemon isn't running, but since Podman doesn't have a daemon,
it really doesn't apply.
Found this testing rpm package install in a Fedora 36 container and
trying 'due --run' just to see what would happen.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 7317be28e3fbbb6767a7737d9344b8dc93543ab4
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 09:55:01 2022 -0800
GettingStarted.md - Initial add of rpm instructions.
Now that rpm builds are becoming a thing, instructions
have been added for installing the rpm build of DUE for
various RPM using operating systems.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit cad0e266fda122008875b44a2fc2be292489009a
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 09:03:09 2022 -0800
Makefile - Do not recreate orig.tar on every build.
This changes the orig.tar target to NOT rebuild the 'upstream tarball'
orig.tar file used for packaging .deb and .rpm files for release.
Otherwise it would be touched between .deb and .rpm builds, so this
assures that .rpm and .deb releases have exactly the same code
(time stamps and all).
Creating a clean tar file is left as an exercise for the developer
to manually delete as they see fit, since the code trying to be clever
about this is likely to make it worse.
Also cleaned up some display and informational formatting in the output.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 3a42b9c61eac9e3bf7434f1abdd5a31ac1685be6
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 31 09:13:13 2022 -0800
debian/changelog - updated to version 4.0.0-1
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 84b364ccab51c7201b3af9ec011a7e2600e27fba
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Dec 30 14:00:46 2022 -0800
Makefile - RPM Packaging support, with rpm-package target.
This target will:
Git stash current work.
Check out the rpm/master branch that has the due.spec file.
Create an ~/rpmbuild directory tree.
Copy the due original tarfile under ~/rpmbuild/SOURCES.
Copy the due.spec file under ~/rpmbuild/SPECS.
Provide a build command that requires the user to choose a
Docker image capable of building RPMs.
Does the build.
Checks out master again.
Pops any Git stashed work.
Ideally, the user will have a DUE RPM under ~/rpmbuild/RPMS
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ca3a2b07e8a93c56e4dd0708ca07a07f93294750
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 15:33:04 2022 -0800
libdue - Note Podman image listing may take a while.
For whatever reason:
images --format 'table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.ID}}'
takes about 20 seconds on an older test machine, where Docker does not.
Put in a message to imply that DUE hasn't hung while it is looking for images.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 56db3dca9a47f749ad98a16f2b4406d5aa2ab263
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 15:31:30 2022 -0800
Clean up file sourcing to be very explicit.
This explicitly lists the top directory, location of due,
libdue, and if the system's /etc/due/due.conf file or the user's
~/.config/due/due.conf fie is being used.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 67d793570ddb8090e46b8ac4ee6f8ca22081870c
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 15:20:15 2022 -0800
Makefile - clean up output formatting on install.
Fixes weird spacing and some column alignment issues.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 77d5d81fa9abcc7862f658bbd43c59436079ebea
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 10:09:39 2022 -0800
Documentation update
Ran spell check, clarified a few points, and added a section on
the --entrypoint option to override the binary that a container's
ENTRYPOINT runs by default.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit baf9e03cd2a18b227b0f5706c0825c6c3375b246
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 08:46:27 2022 -0800
Changelog - cleaned up wording for customization feature.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ca1df04eefb0d322d88cd77c139fed490b4bd30f
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Dec 29 08:43:40 2022 -0800
Add Release Notes directory
Release notes here provide a 'big picture' view of changes since
the last release, striking a balance between the brevity of the Changelog
and the complexity of the Git history.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 802ab6d2df0f51127a2f952bfe5093382008a501
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Dec 27 10:56:24 2022 -0800
Makefile - support Debian packaging on debian/master or debian-test
This creates the DEBIAN_PACKAGE_BRANCH variable to allow for testing
Debian packaging operations in preparation for release on the debian-test
branch. Once everything is sorted there, clean commits can be applied
to the debian/master branch for upstreaming.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit e695a58a80b27fc04c81b3c74889d4dc6e4478a1
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Dec 27 10:40:15 2022 -0800
Troubleshooting.md - mention systemd-binfmt
This points out that binfmt-support is no longer the requirement
it once was in newer distributions that use systemd-binfmt to
associate non-native binaries with the programs that execute them -
which is something users should be aware of when trying to resolve
problems.
Closes #39
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 933f2317607eb2503946c3a34517745b37a55cdc
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Dec 27 09:35:53 2022 -0800
Debian pre/post install - Add --force-yes to Apt commands.
Older versions of Apt require a --force-yes along with --assume-yes
for non-interactive install. Newer (Debian 11) versions of Apt
do not require this, but are not broken by it either, so it is there
for backwards compatibility purposes.
Testing:
--------
Did package builds with rebuilt Debian 8 and a Debian 11 based containers.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit e3778c08952fc4be980bb41753d1178f5697b8a3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Dec 27 08:52:58 2022 -0800
Debian package post-install-config.template - Support python3-six in Sid.
Newer Debian releases do not have python-six, but the Python 3 version
of that: python3-six, which caused a post install error creating Sid based
images when python-six could not be found.
As the post-install-config.sh script that is genereated from the
post-install-config.template can be running on Debian releases as far
back as 8 Jessie, it has to be aware of this.
So the solution is to try and install classic Python packages, and
if that fails, fail silently and try for the newer Python 3 versions
to provide the expected level of functionality.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 4e8505787b07c2b53859ed409162b659acc2871e
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Dec 27 08:27:10 2022 -0800
libdue - Whitespace cleanup.
Fixing a few indentation/spacing issues so that the no tabs, no
trailing whitespace formatting is enforced.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 44adb05d1dd189b3b27d44dd39cbbe71f1680a32
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Dec 23 11:34:42 2022 -0800
Update files with Copyright messages
Went through all files but .asc keys and added appropriate Copyright
headers.
Also added 'make copyright-check' option to the makefile to grep
for any files without a copyright message.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 97dc93d710966d8288d3d04fcb7664c75042a894
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Dec 23 08:38:11 2022 -0800
Add --entrypoint override option
This allows the user to override the image's ENTRYPOINT - the command
run by default on container start up - with a shell, or, if a
shell is not supplied, DUE will try to run container-create-user.sh.
This is useful for using DUE to wrap containers that already have
a non-shell ENTRYPOINT defined, to make run time debugging easier, or
just getting a shell in a container that has a non-shell ENTRYPOINT.
As the specifics of the image being run can vary, this is not guaranteed
to work for all cases, but the followning scenarios have been tested.
Testing:
---------
Non-DUE contianer:
due --run --entrypoint /bin/bash
- ran bash as root
Container with ENTRYPOINT used as a start point for a DUE build,
so that container-create-user.sh was in the image
due --run --entrypoint
- ran container-create-user.sh and created the invoking account
in the contianer.
Signed-off-by:
Alex Doyle <adoyle@nvidia.com>
commit 9c8ad1c7066ee80f61546bc317d90e5645eddb78
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Nov 22 13:55:31 2022 -0800
Man pages - tidy up and add real example of template directory inheritance.
Now that the RedHat and SUSE directories have sub-type examples
(Fedora and RHEL, for example) - update the documnetation to use
them as a real example of how files in sub-type directories will overwrite
identically named files in higher directories.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit fd5e873df9781ea91c5187a36b47092a02f6568c
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Nov 22 13:54:40 2022 -0800
Makefile - Add capital letters to summary.
As it looks better.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit bb849efa51abd87a202411d403f37bd83e57e301
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Nov 3 08:49:02 2022 -0700
Makefile - go inactive if packaging files are found.
This updates the previous change to disable the makefile if a
./debian/control file is found. This can be updated to handle
spec files when I get around to RPM packaging.
This way the packaging files don't have to know anything about the
Makefile, and if the Makefile is being used, it's under the control
of a developer who can disable the check by changing the name
of the file to look for in the Makefile, which should also show as
a change to avoid it getting committed to DUE.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a5f5efda5fe7e9d66a1a469ecc4d428caf4c5679
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Nov 2 16:09:06 2022 -0700
Makefile - add conditional to be inactive during package build.
This adds a check for DUE_BEING_PACKAGED_BUILD being set to
allow a top level Makefile to co-exist with a ./debian
directory during development/debug.
Background:
-----------
During development, I frequently have a ./debian directory
to be able to build a test package along with a Makefile for
brute force installation. If package build finds a Makefile,
it will (quite reasonably) try to run it, but this throws errors
as the DUE Makefile is there to install DUE, not build.
So this change has the top level Makefile do nothing if
DUE_BEING_PACKAGED_BUILD is set to TRUE, and allows me to build
a test .deb without changing git branches or moving files around,
which always leads to more work as something gets messed up.
More details:
-------------
A ./debian/rules file can set the variable with
export DUE_BEING_PACKAGED_BUILD = TRUE
OR
It can be set on the shell command line with
DUE_BEING_PACKAGED_BUILD="TRUE" make
If set, the Makefile does nothing, prints a message to
this effect and packaging continues.
Otherwise, all Makefile targets are valid.
The catch here is that the DUE Makefile mostly exists to
install DUE in the 'checked out from source' case, so no package
manager is involved, and invoking the install commands during packaging
throws errors and dies. So the solution is to just not do this.
Release details:
----------------
The debian/master branch used for upstream release has not, does not and
will not have a top level Makefile to collide with it's debian/rules
file, which is why this is has not been an issue for previous upstream releases,
Thus the ./debian/rules file does not have to export any values ( and, indeed, this is
good, because if the Makefile is present, when it should not be,
we _want_ things to break.)
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 87a93627445ca48ab6fd2bbc3137a801af220e88
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Oct 28 14:42:47 2022 -0700
For debug, --run with --debug should override container's Entrypoint
This adds logic such that a container that was not created with DUE
can be run by DUE for debug purposes which requires ignoring the
contianer's Entrypoint, and replacing it with an interactive shell
so the invoking developer can take a look around.
The shell defaults to /bin/sh, which should be available in most
instances. If the user wants to put in the extra effort to upgrade,
./due --run --debug --login-shell /bin/bash
Can be used to invoke a bash shell, if it is already installed in
the container.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 8a0165629524fae4c79041a15760da3482abe1f9
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Oct 28 14:12:40 2022 -0700
libdue - Replace '/' or ':' when creating the container's name.
This replaces any / or : with - when creating the container's
name and hostname at runtime, as both are illegal characters
for a Docker container name.
Testing:
--------
due --run --any
foo.bar.com:1234/some/strange/path:this-tag-is.22.04
Yields a name of:
foo.bar.com-1234-some-strange-path-this-tag-is.22.04
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 4ae3231231b2dc7b923c2324f05da7dd7138c610
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Oct 20 17:31:19 2022 -0700
RedHat duebuild - add kernel build example. Install dependencies.
This adds an example of getting a kernel source RPM, and adds
a line to install dependencies from the .spec file that may have been
missed earlier.
Testing:
--------
Downloaded a source kernel and built it.
Validated --patch-dir option by adding a patch that broke build,
and it applied correctly.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c7d356eedf235700409dd284fb5b09bd80e70c64
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Oct 19 09:34:03 2022 -0700
RedHat duebuild - Start cleanup
This rolls in some save-it-so-they're-not-lost changes for kernel
patching as well as format cleanup and fixing of the --default
argument behavior.
It's way more than I'd like to see in a commit, but as this is
still in development I'm not seeing a return on the effort of
going through all the changes. Plus by locking that chaos down
now, subsequent changes will be more easily identified.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f871ee10a2c7a4e6aeeb9b7bc86af799b415b04e
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Oct 18 10:40:38 2022 -0700
Template README.md - trim trailing whitespace in examples.
This sets the trailing whitespace in all the creation examples to be
two spaces to keep the Markdown formatting happy, in an attepmt to
reduce the amount of screen wrap that happens when printing the
(already longer than I'd like but neatly formatted) examples.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 538af34dd0c71c182f1e06c444d9ff143992d630
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Oct 18 09:31:43 2022 -0700
due.conf - clean up pass of /etc/hosts entry to container.
Updated the example of passing an /etc/hosts hostname/IP address
present on the host system to be present in the /etc/hosts of the
container by supplying the address by default at runtime.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ec38e0fa6e32bcd7a10867b489d07e2c99f924b4
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Oct 18 09:26:48 2022 -0700
Makefile - clean up basename error, make OS detect clearer.
This sends the error thrown by basename to /dev/null if it
is passed an empty value for the path to Podman. As the desired
end result is to have an empty variable for podman if it is not
present, then this is fine.
Also cleans up the message that indicates which host OS was
detected. Printing the value from /etc/os-relase is rather
cryptic if one doesn't know the context, so displaying it as
the detected OS will be more comprehensible to the average user.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 43198dbd0047abe19b3a6cfb9812554cef8454b2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Oct 18 09:21:52 2022 -0700
due,libdue - clean up sourcing messages.
Reworked the sourcing such that no sourcing messages are
printed if DUE is using the system default files located
in /lib, /bin and /etc/due respectively.
If DUE is being run locally with a ./due, then a message will
print at the start of the run that notes that.
If /etc/due/due.conf has the DUE_ALLOW_USER_CONFIG variable
set to "TRUE", then DUE will print the path to the invoking
user's ~/.config/due/due.conf.
Testing:
--------
Run installed due with 'due'
Run local checkout with ./due
Edit /etc/due/due/conf to set:
DUE_ALLOW_USER_CONFIG="TRUE" , and have a ~/.config/due/due.conf.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 500b5f687ef2a914f01bb0b0a1af379a08f2efa7
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Oct 4 12:35:36 2022 -0700
Update copyright on files.
Updated files (where the copyright would not cause syntax errors)
to state 2022 and Nvidia ownership (after Nvidia bought Cumulus).
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 52d29378b06a7e3d62a24696844c850359760d75
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:50:13 2022 -0700
Docs - DUE and Windows Subsystem for Linux.md -updated
- Changed the file name to be clearer about its contents
- Added a note on preferring Podman that goes with the
previously added 'make install' changes.
- Added a troubleshooting note on Podman suddenly not recognizing
containers by ID but requiring their full path and tag.
(There is an upcoming fix where DUE will auto-swap the ID for
the name:tag )
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 17f2a5a2d1c77ba2e9922b0af1d4cf1003cf0787
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:44:19 2022 -0700
libdue - identifying containers in Podman versions less than 4
If Podman is used, this change will detect major versions less than
4, and will launch containers using their name:tag rather than their
ID.
I hit this bug in Podman 3 in Windows Subsystem for Linux. I'm
not exactly sure where the dividing line is for versions, as I had just
the two to test with, so this may be refined further.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a47df5b914b20b46828a3ad3cacf03275f25cc20
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:38:37 2022 -0700
libdue - Retain user identity with Podman
This had been fixed at some point way back, so for clarity:
Podman will want to remap user space to create a user account that
is not associated with any on the host system. As the whole point
of DUE is to retain one's identity in a container, this gets worked
around.
So:
1 --userns keep-id is used to keep the name space remapping
from happening.
2 --user 0:0 is used to log the user in to the container as root,
so that container-create-user.sh has the ability
to create user accounts, and will create an account
for the user who launched the container.
Testing:
Was able to access ~/ on my host system
Was able to write a file in to ~/
On the host, that file had my host username and host group, and
was readable from the host.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 74f0932c8beda50352d314de5dc1f934da3a35ba
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:35:00 2022 -0700
container-create-user.sh Added help function.
Added logic to print out a help function if no arguments were passed.
While this is an unlikely scenario as it's invocation is wrapped from
libdue, it is ugly when it happens during debug.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f8e49fd2e25a657f17df41fb63e9a388fb4fc6c7
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:31:17 2022 -0700
fedora-package README.md - set prompt base to PGKF36 for consistency
This keeps it more like the other templates where the os version
comes before the architecture.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 61f093dbf5b6ece07d5f8f30f41ea85256620647
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 19:27:46 2022 -0700
Makefile - fix OS detection bug when using RHEL
The /etc/os-release in RHEL had quotes around the ID_LIKE value,
which is no big deal in Bash, but crippling in a Makefile that
does not expect them to be there - so that gets filtered out now.
Also consolidated the OS specific install logic in to a per os type
grouping at the top to make it clearer what is getting set, and
easier to change it later on.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0ef1e363c70060f3e29f2eeb78f8716adac585b9
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 17:20:32 2022 -0700
libdue - Only create user's due.config file once
Fixes logic where the user's config file was being replaced by the
default every time a container was run.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 6372700a398dbd4b49765a9f63eb41e16e594bf4
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 17:05:58 2022 -0700
Makefile - expand OS/Docker support for make install
'make install' allows a user to install DUE without building a
package (especially useful as DUE doesn't build as an RPM...yet)
This expands the Makefile's awareness of package installers to
use (apt/dnf/zypper) and whether to install Podman or Docker.io
by default.
Docker.io is shipped with a distribution and does not come
directly from Docker.
Podman is preferred by Red Hat, and so their systems are less likely
to have docker.io
So when installing.
If Docker or Podman is already installed, leave it.
If this is a Red Hat system (the /etc/os ID_LIKE is = fedora) default
to Podman
Otherwise default to using docker.io.
And if the user is on Windows Subsystem for Linux, that'll be Debian,
but because of limited daemon support, the user should pre install
Podman, and then run this because the Makefile has no way of knowing
this is the case.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0d8763b3ac8439bc282740cc27e9e3b1c6553932
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Oct 3 17:00:51 2022 -0700
Add RPM duebuild to Red Hat and Suse targets
This version of duebuild will build source RPMs. It is not as
feature rich as the Debian version but I expect that will evolve
over time.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c93a997e367f741b454fcf4fd74c08f3d6a763b3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Oct 2 11:07:44 2022 -0700
Docs - FAQ.md - updated for RPM/Podman references
This fixes a few formatting errors, removes some Debian/Docker only
references now that Red Hat/SUSE and Podman are supported, and
elaborates on the changes to the configuration file that allow for
supplying default arguments when launching a container of a particular
type.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit d6534ce092188bab365b2bd3388e82c1b66ba4d3
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Oct 2 10:03:26 2022 -0700
Docs - update Building.md
This fixes a formatting issue where the markdown titles had no spaces
between the # and text. ReText will draw it properly, but when
uploaded to GitHub the lack of a space becomes apparent.
Updated with Red Hat and RPM build examples.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 6b1b7108e453b82b4000a5c214842931b8231cb2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Oct 1 16:18:59 2022 -0700
Version bump to 4.0.0
Given config file changes, Red Hat/SUSE support, and improved
Podman compatibility, there has been enough evolution to warrant
a major version bump.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 41020a12c4d052411e4163ab4ac12bf51053cd64
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Oct 1 16:03:19 2022 -0700
due - Update help messages.
Added a few useful help mesages.
- Referenced Podman as well as Docker,
- Added a source RPM build example.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 554ad35de293525396a9af37ba5de3cd85df2f8c
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Oct 1 15:27:20 2022 -0700
SUSE post install - add rpm-build, source repos
rpm-build is now installed by default, and the source RPM
repositores are activated for source download.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c572456261f432775b4e944377b1bd27a23415fa
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Oct 1 15:11:01 2022 -0700
Fedora post-install - use dnf post install and whitespace cleanup.
This fixes some whitespace cleanup and uses dnf in post install of
local packages for consistency (as it is used for initial install),
and because it and yum will consider all of the RPMs passed when
resolving dependencies.
If building for older releases, it may be a good idea to have logic
switch between the older 'yum' and 'dnf'. That can be addressed when
a use case comes up.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 9abe26dbf33483bc4aa7a45c91466e45a4c16f97
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Oct 1 14:58:59 2022 -0700
Fedora post-install-config - add rpm-build package
This should be installed by default to allow the building of packages.
Which is rather the whole point of the container...
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 13e7f50d1923cf42d115e2e2c6a4550fa21781f5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Dec 11 08:36:04 2021 -0500
debian/changelog - updated for clarity using dch
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0e251d2fa2b1161df9968a7eea6f5d39c72c1ade
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Tue Nov 30 00:37:26 2021 +0000
debian/control - set debhelper-compat to 13
13 is the most recent version, per lintian.
Note this will break DUE's build on Debian releases
older than Debian 11 (Bullseye).
For those cases, build from the debian/buster branch of DUE.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 28753474000adc3f16d8dd2feee20151c081e6a2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Nov 26 22:59:45 2021 +0000
lintian clean up for 3.0.0 release
due.lintian-overrides. Added entries for repeated-path-segment warnings.
The "repeated paths" are used by the templates for docker image creation,
and refer to the destination directories in the image.
debian/control
Updated debhelper compat version to 12
Updated Standards-Version to 4.6.0
Added Rules-Requires-Root to no - as root privileges are not
required to build DUE.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 9a07edf8b3203d849f5963489b0ef3ba8fdf6b0e
Merge: b0682d1 077c02e
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Nov 26 22:03:17 2021 +0000
Merge branch 'master' into debian/master
Update for version 3.0.0
commit b0682d1a6cc6c0a8bc33a7952bf6852cc79ea977
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Nov 26 08:08:05 2021 -0800
debian/changelog - add 'New upstream release'
...for proper Debian compliance.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 49f1ec6d5c57327ed649cf6a723fe59d5f334664
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Nov 15 18:02:47 2021 +0000
due.lintian-overrides: ignore repeated path error.
Lintian flags:
P: due: repeated-path-segment usr usr/share/due/templates/debian-package/filesystem/usr/
P: due: repeated-path-segment usr usr/share/due/templates/frr/filesystem/usr/
P: due: repeated-path-segment usr usr/share/due/templates/onie/filesystem/usr/
but the usr path at the end is the path of files to be placed in the
Docker image being assembled, not the host system.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 59499080f9e509cb37f50ef295be9a2bef9424e9
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Nov 15 17:37:21 2021 +0000
debian/changelog - lintian fix line over 80 characters.
This fixes a warning found by lintian where the comment
line was too long.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 077c02e9cbde75a9bb0a4e6babdc83ee70250143
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Nov 15 09:21:53 2021 -0800
libdue - map uname's i686 to host arch i386
This provides initial support for running 32 bit Intel
containers. Though further testing is encouraged.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 65a04da85386cafe745d78037f94fd7fc3e988d7
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Nov 15 09:19:01 2021 -0800
Makefile - update debian-package target help.
Since:
- Building DUE as a .deb requires a build environment that
can support debian package builds.
- DUE can create that debian package build environment.
- New users may not be aware of this.
- And in the middle of the build process, the user is asked
to select a DUE debian package build container that they
may not have created yet.
...let them know one will be needed ahead of time.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit db287b5db2be14886fb1f8e1a02a6400f1fe618a
Merge: fc1d98e a0932d9
Author: Alex Doyle <44242404+ehdoyle@users.noreply.github.com>
Date: Sun Nov 14 16:27:22 2021 -0800
Merge pull request #33 from ehdoyle/debian/master
Debian/master
commit ee0082fd5252214e3750b635902b402219abf05e
Merge: c7a7213 d24646a
Author: Alex Doyle <44242404+ehdoyle@users.noreply.github.com>
Date: Sun Nov 14 16:25:42 2021 -0800
Merge pull request #32 from ehdoyle/master
Update to 3.0.0 for release
commit d24646ae42eb81910d8a6d9f2bc615162c2b4189
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 17:09:53 2021 -0800
Makefile - for debian-package target, use tarfile.orig for build.
As the debian/master branch should just be Debian specific files,
if one builds from the Makefile, with 'make debian-package' it will:
- Create the orig.tar.gz file
- Git stash any files on master
- Check out the debian/master branch
- Extract files from master in to the build area
- Run a DUE container to build the package
- Delete the extracted files
- Reset the debian/master build area
- Check out master
- Git stash pop any files that were being worked on.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit a0932d974d1ab1c174ffaf6bff1e2e6351a55a54
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 16:30:23 2021 -0800
Update documenation for 3.0.0 release.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit 9bbcd3c3149e79666b897f28f79c06f146577828
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 16:16:02 2021 -0800
Update version to 3.0.0
This reflects changes such as:
* Support Podman as well as Docker.
* Replace qemu, qemu-system Recommends with just qemu-user-static. Closes: bug#992947
* templates: Add pre and post install local dirs to build local packages into containers
* templates: debian-package and onie support for Debian 11
* Makefile: Clean up and provide better help by default
* debian-package: due-manage-local-repo: support multiple named local repositories
* libdue: support sub-type template directory file hierarchy for templates
* Fix invocation bug when running ARM64 containers on aarch64 hosts
* Fix save/load import/export mismatch when writing and reading image files.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit e5fbd29950a23687e71bceafd5b1a36b44282fe0
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 16:03:13 2021 -0800
Update changelog to version 3.0.0. Note only qemu-user-static is needed.
This removes dependencies on other flavors of QEMU binaries which
were not needed.
Closes: #992947
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 75009f5ca12816b0f00271cf73556ff93b8f25ee
Merge: 2aa2a3b 72f36be
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 15:52:30 2021 -0800
Merge branch 'master' of https://github.com/ehdoyle/DUE
commit 2aa2a3b83d2e681111051d958b62c4022eeb4407
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 15:35:31 2021 -0800
Makefile - pretty up 'make debian-package'
Fixes a bug where a message option with 'git stash' failed,
and adds a bit more context around what is happening, as
well as printing out the build products for new users that
may not be aware Debian packages end up in the parent directory.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit 72f36be0d2ba0f88ed1fb2873106d3abc5f5befe
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 15:35:31 2021 -0800
Makefile - pretty up 'make debian-package'
Fixes a bug where a message option with 'git stash' failed,
and adds a bit more context around what is happening, as
well as printing out the build products for new users that
may not be aware Debian packages end up in the parent directory.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit d1aac7b745130c3c137d75e7bd759a1981695211
Author: Alex Doyle <adoyle@nvidia.com>
Date: Sat Nov 13 10:51:53 2021 -0800
Image import - use 'load' with 'save' to import working images.
From the documentation, an image exported with 'save', which
preserves all filesystem layers, which is the safest course
of action for someone using a wrapper like DUE, should be
imported using 'load' which accounts for all that.
'export' and 'import' are separate commands which should not
be mixed and matched with 'save' and 'load'
Testing:
--------
./due --create --from debian:10 --description "Debian 10 example" \
--name example-debian-10 --prompt Ex --tag example-debian-10 --use-template example
./due --run <choose example>
In a separate window
due --manage --export-container extets
<saves container as due-extest.tar>
./due -m --import-image due-extest.tar
./due --run <choose due-extest>
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>
commit 799b70e15075e9e24a0bca4670ca3089b60b58e5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 13 09:57:10 2021 -0800
Podman - initial support
This set of changes should detect if Podman is installed,
rather than Docker, and, if so, it will be used.
The assumption is that both are not installed on the system, as
Docker, expected to be the more common program, is the default,
and as such there is no way to choose one or the other.
(At least until someone comes up with a viable use case and
a pull request.)
There are some conditional cases for parsing Podman output, and
for reference, feature development was done using the Podman
version from Debian 11, should different versions introduce issues.
Signed-off-by: Alex Doyle <alexddoyle@gmail.com>