Git log: commit 7e9b8a0a009996f25b61a2a5fa0ba0fb93b6fca4
Merge: 44a733c 1da99ee
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 15:37:44 2024 -0700
Merge branch 'master' into debian/master
To create a snapshot of the upstreaming of the 4.1.0 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 44a733c09c3310f9d22fae04c5e4082bfe5e6f75
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 15:21:04 2024 -0700
Bug fixes in debian/recommends
...and update the changelog.
Fix bug 1023396
Remove systemd-binfmt from install Recommends as systemd now
handles it.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023396
Fix bug 1010082
Remove qemu from recommends, as binfmt covers emulation use
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010082
Testing:
Removed package recommands from debian/control
Rebuilt DUE
Purged due and qemu from my Ubuntu 22 system.
sudo dpkg -P ipxe-qemu ipxe-qemu-256k-compat-efi-roms\
qemu-block-extra qemu-efi-aarch64 qemu-efi-arm \
qemu-system-arm qemu-system-common qemu-system-data \
qemu-system-gui qemu-system-x86 qemu-user-static \
qemu libguestfs0
Installed DUE
x86 containers ran.
Creation of arm64 failed with a warning to install
qemu-user-static
Installed qemu-user static
Built a Debian 11 arm64 image
Image ran.
Running ps on host showed qemu running.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 356a402d034789580c24010307238897479bec9b
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 15:19:44 2024 -0700
README.md should be installed by debian/due.docs
Otherwise it is not automatically removed on an uninstall.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 65d0596e434dd288b0c56cc09dc37a4115885d41
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 15:17:36 2024 -0700
Update copyright to reflect Nvidia
In 2020, Cumulus Networks was bought by Mellanox, which
was bought by Nvidia coproration. This reflects the
change in ownership and maintainer's email address.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0fa5a76d09a62b80818144d5947b8adf1288a927
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 15:15:55 2024 -0700
Update lintian overrides to comply with Lintian v2.117.1
This updtates the syntax of bug fixes to work with the
latest Linitan in Sid.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 1da99eee6db84ce78b08eb0a01617a66376701fb
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 14:55:55 2024 -0700
Master changelog
Update to reflect Debian bug fixes for the 4.1 release.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit f30557e5e53b8d64747e971aa0b01dd3990d6589
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 13:21:57 2024 -0700
Update man pages
Rebuilt with Pandoc 3.1.3 from Debian Sid.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 9829c995a07a0e848553cc1ffabfebf8994be4e5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 12:54:40 2024 -0700
Makefile - update copyright to 2024
...as OS detection was updated a few commits back.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 7ccae1ed416878ec61006facece492c5ac83eeed
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 29 12:38:04 2024 -0700
debian-package post install - add fakeroot
Fakeroot does not seem to be present in the latest (07/29/2024) Sid
Docker image, which breaks building DUE from a tar file on
debian-test - the release dry run branch.
i.e.:
make debian-test
fails with an error that mentions fakeroot.
Presumably this has been present in previous builds, as previous releases
have gone out without fakeroot being explictly added, and Debian 12
images have it installed as well.
So this change explictly adds fakeroot to Debian package build images.
...and updates the copyright header.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 36ee0581460c29a1be3c1862299370beba304ad8
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 18:44:48 2024 -0700
debian-package README.md
Update examples and copyright.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 2e520c8060ebfdfd6f528114be4a7c54f100bcb5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 18:36:22 2024 -0700
Example template README.md - collect image quirks.
A number of images have issues that need to be addressed before DUE
can work properly with them. The Example image seemed to be the best
place to put them since it's purpose is to just build an image with
DUE, and not specialize it to build packages, or anything else.
Currently:
Ubuntu 24.04
With Ubuntu 24.04 introducing an 'ubuntu' user at ID 1000, the
default add user behavior breaks ( in that the host system probably
already _has_ a user 1000 who is, say, running DUE.)
Since the best resolution for this is not obvious (does the account
have special configuration?) , DUE throws an error and exits.
From that point the user has a few options ( delete the user, steal it's
ID, or log in as that user), all of which are documented in
the Example README.md.
Old Debian images.
Both Debian 8 and 9 reference package repositories that have been archived,
so a patch is necessary to update their repository configuration to get them
to build.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit fb00809e8cb761cd372d73f29bea0924715444b4
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 17:53:57 2024 -0700
onie post install template - Remove stray set -x and update copyright.
Removed a few set -x debug statements that had gotten committed, and
updated the copyright header to reflect recent changes.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 8e36dd04cc0addbef2c88e79c5c1b65a3799f45f
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 17:42:30 2024 -0700
due - Add menu creation to help examples
This adds a few examples of using the --menu option to apply
an example configuration from the template README files.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit d685c0b4017e96b79753f7bd997f6c1204fd1a4a
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 16:10:16 2024 -0700
Fix Debian 8 image builds.
This applys a patch to the image's /etc/apt/sources-list to point to the
archived versions of the Debian 8 package repositories, now that the
ones the image used are unavailable.
A similar patch was done for Debian 9.
Testing:
Built Debian 8 DUE image with:
./due --create --platform linux/amd64 \
--name example-debian-8 \
--prompt ExD8 \
--tag example-patch-debian-8 \
--use-template example \
--from debian:8 \
--description 'Debian 8 with patch' \
--image-patch debian/8/filesystem
Tested by checking out the 2021-08 branch of ONIE and building the
accton_as6701_32x target all and demo with:
make MACHINEROOT=../machine/accton MACHINE=accton_as6701_32x all demo
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ae44a3ee9982376577f4fe3eab8727540e15f660
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 16:02:40 2024 -0700
pre-install template - only use apt --force-yes on older Debian releases.
This updates the use of --force-yes to get the same effect while working
with newer versions of APT. Debian 8 and 9 images won't use the additional
--allow* arguments.
This removes a warning generated by Apt during image build.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 318bd481dca3bf1ecf518f41c3112da627ec0f53
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 28 00:38:54 2024 -0700
Makefile - improve OS detection.
The /etc/os-release file has a number of ways of stating the operating
system, from ID to ID_LIKE to using very descriptive strings in those
fields.
The goal of detection is to know what supported operating system the
container is from, so make the assumption (for surely assuming things won't
come back to burn us) that any /etc/os-release file WILL NOT mention
another OS.
Then case insensitive grep for supported OSs, and set variables accordingly.
Testing:
Ran 'make install' in the following container releases:
Debian 12
Debian Sid
Fedora 39
OpenSUSE Leap 15.6
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 9c06e7189f155986275734712898f9c9d0066886
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Jul 27 23:28:35 2024 -0700
Troubleshooting.md mention everything-in-usr.
Mention that install failures that mention 'usrmerge' are probably
due to an older Docker image colliding with newer code that expects
some top level directories to be links to /usr.
A web search for 'everything-in-usr' will provide more details on
the reasons for the change, which are outside of DUE's scope as they
need to be supported.
The triggering case was DUE using a 2 year old cached Sid (Debian
unstable) image that did not play well with current software
that expected a different file system layout.
Deleting the Sid image and downloading a new one fixed the problem.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit e252d5f193269ca2fff3926252520279c208f46d
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Jan 16 09:33:41 2024 -0800
Add option to merge host's /etc/group file with the container's
This was a feature I'd worked on that turned out to not be needed.
However it was enough work to figure out that I'm adding it in case
there is a use case where it is necessary to merge a custom
/etc/group file with that of the container's
(perhaps adding addtional groups the user is in?)
While the merge seems to work and not hurt anything, I don't have a
test case for it at the moment, so I'm leaving it undocumented, and,
since the group file under filesystem/etc gets merged in, rather
than copied directly, it will be named due-group to prevent accidental
invocation of the feature.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 52e7c6568a3665b15f44032e5a36ffdeddf9431e
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Wed Jan 10 10:52:13 2024 -0800
due - update --delete-matched help to reference images, not containers.
Fixing an error that's been there a long time, --delete-matched will
delete images from disk, not containers from memory.
An important distinction.
Updated command line help and man pages.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 40ea0a4b1731ead877720161fcf017706c508ffd
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Wed Jan 10 10:47:55 2024 -0800
Makefile - update make help targets list to have 'docs'.
This adds 'docs' to the list of makefile targets. It's been there
forever but has not been explicitly available in the make help.
This also adds:
'common targets':
- targets a user might need to deploy existing code.
'developer targets'
- targets that would be used during the development of new code.
To make it a bit more readable.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 666990b1880b1b09d336a743ee8c1edd69ab9f90
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Thu Jan 4 09:41:05 2024 -0800
libdue - Remove merge directory after a menu create
As menu creation ( due --create --menu ) invokes a pre-existing
configuration pulled from the template README files, the implication
is that the user is not actively debugging the creation of an image,
and just wants it created.
So there is no need to keep the merge directory around, and having it
there can trip up subsequent creation invocations.
The use case was a network mounted home directory that was used to
install DUE on different reserved lab systems, so that the invocation
directory remained the same while the install system changed, requiring
the recreation of the same image for each new reservation, and the
last merge directory would have to be deleted before the new image could
be created for the new system.
Testing:
--------
Created an example container, and directory was deleted
Created a root owned merge directory before trying container creation,
and, as expected, got errors about being unable to write to the directory.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 1744ff4d6961e138e38d3fde90f339cf1b5494a2
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Dec 20 16:02:36 2023 -0800
Fix cut and paste spaces/tabs in Makefile
rebase-upstream had leading spaces, not tabs because of a cut
and paste from the working copy.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 1f600b5779fb592466847a7d00e702e32850fefe
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Dec 20 15:56:51 2023 -0800
Makefile add 'rebase-upstream' target
Rebase the master branch off of the current upstream master branch.
This was useful for bringing upstream changes in to the master branch
of an independently hosted version of DUE, as would be the case if
a modified version needed to be updated.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit fdde17f9a53274d8ae05ad44ed02289ca7c29280
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Dec 20 15:29:15 2023 -0800
due - Add an example of using the --create --menu option.
This is how one would get example creation configurations for
a fedora container.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 0780401f005d25a0127c5f1e3a931f776e8d8647
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Dec 20 15:13:31 2023 -0800
Add --menu option to --create
This adds a --menu option to --create so that the image creation
examples in the README.md files under the templates directory
can be chosen as a nummerical selection.
This also works with --filter, so particular examples (onie, fedora, etc)
can be listed.
Testing
-------
./due --create --menu
./due --create --menu --filter fedora
./due --create --menu --filter zzzzz <-failure case
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 213d94a8a3bac0eabb52dfdaaa0d8f115f1f05e5
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Dec 20 09:01:03 2023 -0800
README.md - replace double quotes with single for static text.
This sets up the examples to be used in a menu for container creation.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a2c0fc6c34eeb3d62047fb66172d0f5cfb8a8c9d
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Nov 21 10:42:51 2023 -0800
Documenation - update with links to local files.
This adds linking to other files under ./docs, and
updates the branches in Branching.md to describe the RPM and
debian testing branches.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 4fe4af1ace5b12fcd1ee59721f4a81f58cbdd054
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Fri Nov 17 15:45:58 2023 -0800
SUSE and Red Hat duebuild - whitespace cleanup.
Added as a separate commit to keep real changes obvious.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 5d8b575e663d3cb5cab05ebaba8ce6f18258f77a
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Fri Nov 17 15:41:02 2023 -0800
RPM duebuild - same script for Red Hat and SUSE
We'll see how well having identical scripts works for this.
If the environmental differences get too severe, these are
still individual files that can be edited independently.
The script should be able to handle the differences between how
SUSE handles source builds (putting the contents under /usr/src)
and Red Hat (extracting contents to ~/rpmbuild).
Currently the script copies SUSE's /usr/src to ~/rpmbuild, and
then builds from there.
Once source is downloaded:
SUSE builds start with duebuild --cbuild /path/to/specfile
Red Hat starts with duebuild --cbuild <downloaded rpm>
Keep in mind these are not definitive build methods, but starting
points to hilight the differences developers will encounter
when moving between platforms.
Ideally, over time, they get more robust.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 5ae28bcff5a204666f4ebda09f287fd8360912ea
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Fri Nov 17 12:20:02 2023 -0800
Makefile - make clean for RPM builds too
This will clean out directories under ~/rpmbuild if the 'rpm'
binary is detected.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit bdaeb0a73f5730f7737f1959bb46ff403aa9b377
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Fri Nov 17 12:18:33 2023 -0800
Red Hat duebuild - make source rpm build clearer
This updates the help to point out it expects a source rpm,
and adds a check for the name of the file having .src.rpm
before getting too far along in the build process.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 5225377565cd5cf2b93f09f2f65de28cc32931be
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Fri Nov 17 09:47:04 2023 -0800
libdue - set package manager details for SUSE
If opensuse-leap or sles are detected as the operating system
set the package update and package install commands to use
zypper.
Previously this was grouped with Red Hat's dnf/yum, which I
can only assume was a cut and paste error.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 280271965b6e428242fdf17f36e8af0303fcc846
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Nov 14 09:56:42 2023 -0800
Fedora README.md - update Fedora version from 36 to 39
This updates the examples --create --help provides for
creating a Fedora image from version 36 to 39
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 29bcb1ec6d76823e2d7eb5189e872098c528b67d
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Nov 14 09:26:19 2023 -0800
RedHat duebuild - shellcheck cleanup
Apart from the usual quoting and return code issues, this
brought my attention to a few patches of dead code that
were left over from this script's origin serving as an RPM builder
for both Red Hat and SUSE.
There are still a few issues here but I want to check in the easy
fixes and do more testing on what's left to make sure nothing breaks.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit bd06c123e62a9b2707518f75dec420bf48468594
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Mon Nov 13 15:15:39 2023 -0800
Red Hat duebuild - update copyright year.
Since the file was updated in 2023, reflect that.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 568e5dbcd9388f94800a94ace25ee993c7a424bc
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Mon Nov 13 15:08:23 2023 -0800
Red Hat duebuild - whitespace cleanup
Kept separate for functional change clarity.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 057d346e4e7927f749ea12bb33a267ed5d00ec4e
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Mon Nov 13 15:01:22 2023 -0800
Red Hat duebuild - example clean up and build fixes.
All of these changes came out of making sure the help examples worked.
--help-examples Now uses htop as the example package.
It builds fast and reads better than 'foo'
The actual build command invoked wasn't printing.
Set it to BUILD_COMMAND rather than a local variable so that
what actually ran is visible in the build output.
For build and extraction options, the directories holding the output
are listed with a header to separate them, and are sorted with
the most recent files at the bottom of the list
RPM --target architecture (x86_64, aarch64, etc) is retrieved
with 'uname --machine' as uname --processor was returning a very unhelpful 'unknown'
Testing
----------------------
Verified help examples with Fedora 39
- Source download and build
duebuild --download-src htop
duebuild --cbuild ./htop-3.2.2-3.fc39.src.rpm
- Build with additional rpmbuild arguments
duebuild --rpmbuild-option -ba --cbuild ./htop-3.2.2-3.fc39.src.rpm
- Kernel build
duebuild --download-src kernel
duebuild --cbuild kernel-6.5.11-300.fc39.src.rpm
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ee69caa92d8187e6ea0390407ad84bc98aa9475d
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Mon Nov 13 14:52:44 2023 -0800
duebuild - Put a space in before help printout.
It just looks better.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 00b8bdefb5b35ab922c216664f9af118874875f8
Merge: 92f81cc 4a1e2f3
Author: Alex Doyle <44242404+ehdoyle@users.noreply.github.com>
Date: Sat Nov 11 12:06:22 2023 -0800
Merge pull request #46 from ehdoyle/master
Changes inspired by running Lintian
commit 4a1e2f39d043f798449e94386cba4b4491a1bccd
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 19:53:22 2023 +0000
Regenerated man pages with pandoc 2.17.1.1
Used the latest pandoc in Sid to regenerate the man pages after the
latest lintian flagged missing font 'C' in the documentation.
Ex: cannot select font 'C' [usr/share/man/man1/due.1.gz:1]
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 76a5c33667283a0949c7974894c2eccd54660ed0
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 19:41:17 2023 +0000
Makefile - add run-lintian
As an easy reminder that a built deb needs to be present in the
directory above the build directory.
Invokes: lintian <path to deb>
Note that the due.lintian-overrides file has to be built in to the .deb
for lintian to find it, and, currently the only two branches that provide
it are:
debian/master <- the upstream release branch
debian-test <- the debug branch for debian/master.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 9e1783041b70885bacc43e259095da0fedb9e163
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 11:16:40 2023 -0800
Makefile rm -rf due-build-merge directory.
Use the variable that sets the directory name, and add a -r as
it is a directory getting removed.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 92f81cc5393a1840446088c619bbd421c0f59c2e
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 10:32:33 2023 -0800
Makefile - add explicit debian-test branch target.
The debian-test branch is used to debug Debian packaging cleanup
issues (lintian warnings, etc) before cutting a release so those
changes can be as clean and clear as possible.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 3c62fb6119239a34edbcada6df8848259426c3de
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 18:15:11 2023 +0000
Makefile - add make clean
This adds a make clean option to clean up build leftovers.
This includes Debian packaging/build files in the directory
above the one where make is invoked, the original tar file,
and any image merge directories that might exist in the current one.
This also cleans up the Make help to group entries by
Developer options
Package targets
nice-to-haves.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit cef18dde8a1938d59739593c3d1133ab8148524b
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sat Nov 11 07:48:42 2023 -0800
Fix random posessive use of it's.
It's = it is.
Its = it has (posessive)
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c7ea44e949803b320bce648d3a22cf9d3116ca60
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Nov 10 07:12:36 2023 -0800
Onie README.md - add OS releases to --tag
changed --tag from onie to onie-9, onie-10, onie-11 for naming
consistency in example image creation.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 70d38ea707bd379bd8b87266e6e7bc7d195966e6
Merge: ee38536 b659c97
Author: Alex Doyle <44242404+ehdoyle@users.noreply.github.com>
Date: Thu Nov 9 15:50:42 2023 -0800
Merge pull request #45 from ehdoyle/master
Fixes inspired by shellcheck
commit b659c976a5eb997bf22d90c5faebdac4e9d19902
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 15:01:32 2023 -0800
due - Update Nvidia copyright to include 2023
...since the file was updated.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 78319b2b5f7ed9a7e3689132ab5a4e2e20679e98
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 14:55:01 2023 -0800
debian-package duebuild - shellcheck script cleanup
The clean up lead to having to retest a few functions to make sure
nothing broke.
Testing
--------
htop was used as the source package as it's a quick build and had
dependencies that the rest of the container didn't use.
#Download
./duebuild --download-src htop
#Remove some dependencies
sudo dpkg -P pkg-config libsensors-dev libnl-3-dev libnl-genl-3-dev htop-build-deps
#Build via .dsc
rm -rf ./htop-3.2.2/ ; ./duebuild --build-dsc ./htop_3.2.2-2.dsc
#Build from within the directory
cd htop-3.2.2/
../duebuild --build
Tested in Debian 12 and Ubuntu 18 containers.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 716503c95ae244fa8ba189f9c38c7b60579f6261
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 13:39:10 2023 -0800
duebuild - handle auto generation of sources repositories for Deb822
So with Debian 12, the format of files specifying source repositories
changed to have a .sources at the end, and internal formatting is a
bit different.
The --download-src option will try to auto-generate corresponding
source repository entries if they don't exist.
This is common with most released containers as they don't default
to being build environments (hence, DUE...).
This change looks for a *.sources file under /etc/apt, and if it
finds one, it creates a copy with Type: deb changed to Type: deb-src,
and puts the copy under /etc/apt/sources.list.d, and runs apt update
to make the contents accessible.
Note that this is not intended to be completely robust at this point.
In most cases finding a single file to convert should work, and if
it isn't enough, the resulting configuration should be a good starting
point for debug, as it has examples of what the user should do.
Testing:
./duebuild --download-src ncdu
Worked in a Debian 12 and an Ubuntu 18 container.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit d8123beeed83c63e2d50efedfc53df8ea52fb00b
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 13:37:30 2023 -0800
debian-package duebuild - some shellcheck cleanup
Fixes a few unquoted variables and adds in a few overrides for
stub arguments I'd like to leave there.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 2ffb64aa7d147c0f94aa8df4e39f230074b2629c
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 12:01:18 2023 -0800
Shellcheck cleanup for due and libdue
Fixed some variables that should have been quoted, and added
shellcheck exceptions for ones that should explicilty not be
with
shellcheck disable=SC2086
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 43cfb580b43077518a8edafb72b29ad89084776f
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Nov 9 10:42:11 2023 -0800
Backwards compatibility change to column formatting for help
Turns out, older versions of column, such as the one provided with
bsdmainutils 11.1.2ubuntu1
do not support arguments starting with --
This change reduces the options to just 'table' to help provide
maximum interoperability.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ee385364013b9c801c1605e448404bd0afb0c563
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Wed Nov 8 19:39:16 2023 -0800
Clean up container creation help example output.
This has two changes to make the container creation examples
cleaner for cut and paste.
1 - If DUE was invoked from a system install, rather than from a
source directory, remove the leading ./ on due in the example.
Thus './due' becomes 'due' so that the line can be cut-and pasted.
2 - If the 'column' program is available, strip extra spaces from
the example output, to create the closest possible columns.
Currently all the creation examples pulled from the README files in
the template directories are spaced such that the widest field determines
the spacing of the rest of the column, as that is always readable, but long.
Now if the user filters the output to only fedora builds with
due --create --help --filter fedora
columns will create compact formatted output, and because that output
doesn't have to account for, say, registry.suse.com/bci/bci-base:latest,
the line to cut and paste will be a lot shorter.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit a5af262a955125433a2722501d934ae61f41d198
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Fri Sep 1 08:29:35 2023 -0700
Makefile - updte help message for debian-test branch build.
The debian-test branch is used to test Debian packaging before
release to reduce the number of merges from master to the
debian/master branch.
Basically it's scratch space to figure out what one clean merge
for promotion will look like.
This change is a reminder to set the Makefile variable which
selects the branch to use when testing.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c2f340f01c07cb8cb23dde7698f4732d5f50f979
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Mon Jul 17 12:18:16 2023 -0700
Update debian-package and example to mention Debian 12 Bookworm
This updates the README.md files for the debian-package and
example templates to reference Debian 12 rather than Debian 11
in the example strings they provide when:
due --create --help
is run.
Nothing is wrong with Debian 11 - this just demonstrates that
the latest release is supported and those build configurations
work...and we don't need examples for every possible entry.
Testing: ran the following, logged in, and built with debian-package
---------
./due --create \
--platform linux/amd64 \
--name package-debian-12 \
--prompt PKGD12 \
--tag pkg-debian-12-amd64 \
--use-template debian-package \
--from debian:12 \
--description "Package Build for Debian 12"
./due --create \
--platform linux/amd64 \
--name example-debian-12 \
--prompt ExD12 \
--tag example-debian-12 \
--use-template example \
--from debian:12 \
--description "Debian 12 example"
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit c830fa782e5e29bf185391a0667219fe80c3dfae
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Thu Jul 13 15:07:30 2023 -0700
ONIE Debian 9 - use --image-patch, generate backports
Since the Debian package repositories for Debian 9 Stretch have been
archived, this commit:
- Updates the example for the Debian 9 ONIE build environment to use the
--image-patch option to pull in an updated sources.list
- Changes the post-install-config.sh script to dynamically generate
the stretch-backports.list file needed to pull in a newer version
of python-sphinx, rather than having a stretch-backports.list file
that can get pulled in to other Debian versions of the ONIE
build environment.
Testing:
Built ONIE for accton_833435_b21 in a Debian 10 container on master branch.
Built ONIE for alphanetworks_snj61d0_320f-r0 in a Debian 9 container on 2021.08 branch.
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit 8fea9c95cc0b98857bfba0f117e945747fd230cc
Author: Alexander Doyle <adoyle@nvidia.com>
Date: Tue Jul 4 07:24:47 2023 -0700
Container debug login hints for Podman
This adds reminders that the user can try browsing for running
containers as root if they are using Podman.
Testing:
Ran fine on CentOS 8
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
commit ffc96070a860b397cd0f0ee46ff176091d963f32
Author: Alex Doyle <alexddoyle@gmail.com>
Date: Sun Jul 2 11:59:21 2023 -0700
Version 4.1.0 Add image-patch directory, and --image-patch create option
User Malte Janduda (https://github.com/MalteJ) discovered that the latest
Debian 9 stretch images have an apt/sources.list file that no longer references
Stretch packages correctly since they nave been moved to archive.debian.org.
Additionally, stretch-updates has become stretch-proposed-updates.
(This article was useful in seein the to-archive conversion:
https://www.geekersdigest.com/apt-etc-apt-sources-list-for-every-debian-release/ )
Malte submitted a pull request ( https://github.com/CumulusNetworks/DUE/pull/43 )
that would have addressed the ONIE build, which makes sense because DUE
(up to this point) has assumed that the base images being pulled could
perform a package update, or were otherwise totally functional.
However when the Debian 9 image went stale, it also broke any template that
uses Debian 9, so both the ONIE and debian-package templates are broken,
for Debian 9, stuck trying to access package repositories that are no longer there.
And this problem is only going to get worse as other images age out, or
repositories go offline, so a more general solution is required to allow
the end user to modify the starting state of the image. Package repository
access is the only problem case right now, but there may be others.
To solve this I'm adding an image-patch directory where updated files
for images can be stored, and will be copied in to an image build if
the --image-patch < path to image-patch directory>/<image-name>/<tag>/
argument is passed during creation.
Those files will get copied in to the build area, and will end up under
/due-configuration in the container.
The pre-install-config.sh script can then apply the changes before
anything template specific executes.
For example, the pre-install-config.sh template that generates the first
script that DUE runs in the container during configuration starts by
usin apt to install bash, sudo, and other programs DUE scripts expect.
Then it applies the template files which may do things like
overwrite sources.list with a copy that points to a developer local repository.
With this change, the pre-install-config.sh now checks for
an etc/apt/patch-sources.list file, and, if present,
overwrites the container's /etc/apt/sources.list before trying to
apt update, and before the template files are installed.
The patch file starts with patch- both for clarity, and so it can
co exist with a sources.list file the template may supply
when it's files are copied in to the image creation directory.
Code changes include:
- Adding image-patches directory with updated sources.list for Debian 9
- Adding --image-patch argument
- Updating due and libdue to handle the argument and directory
- Updating makefile to install image-patches directory
- Updated pre-install-config.sh.template to deploy the sources.list
- Updated documenation and man page
- Rolled in Maltej's update to stretch-backports.list
- Updated version to 4.1.0 to distinguish from the last release
Signed-off-by: Alex Doyle <adoyle@nvidia.com>
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>