On 1/9/24 09:32, Mina Galić wrote: >> Could you provide a tarball with the new port? > Tarball is attached. > > I've also updated my Git repo: > > browse: > https://codeberg.org/meena/openbsd-ports/src/branch/add/cloud-init/sysutils/cloud-init > > browse patch: > https://codeberg.org/meena/openbsd-ports/commit/df1e11cdb40ca0120c1d291f5e4f0058729fa8c6 > > Apply patch: > https://codeberg.org/meena/openbsd-ports/commit/df1e11cdb40ca0120c1d291f5e4f0058729fa8c6.patch > > Kind regards,
Some initial comments. At least TEST_DEPS need security/py-passlib and devel/py-serial pkg/README can has hardcoded paths, which can be changed to SYSCONFDIR and LOCALSTATEDIR. The build system for python can probably be set to use MODPY_BUILD=setuptools instead of MODPY_SETUPTOOLS=Yes Am getting the following test failures on my machine: =========================== short test summary info ============================ FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive_interacts_with_ibmcloud_config_disk FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_configured_list_with_none FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seed_in_cfg FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_single_entry_defines_datasource FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_64 FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_i386_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu FAILED tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_when_vmware_customization_is_enabled FAILED tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_write_command_output_to_file[cmd1-Unexpected error while running command.\nCommand: ['ls', '/nonexistent-directory']\nExit code: 2\nReason: -\nStdout: \nStderr: ls: cannot access '/nonexistent-directory': No such file or directory-None] FAILED tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_stream_command_output_to_file[cmd1-ls: cannot access '/nonexistent-directory': No such file or directory\n] FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_call_imds_twice_with_reprovision FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_given FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_redacted_in_ovf FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_false FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_true FAILED tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_unspecified FAILED tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_detect_nic_attach_reports_ready_and_waits_for_detach FAILED tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_nic_attach_multinic_attach FAILED tests/unittests/sources/test_azure.py::TestDependencyFallback::test_dependency_fallback FAILED tests/unittests/sources/helpers/test_netlink.py::TestCreateBoundNetlinkSocket::test_socket_error_on_create = 21 failed, 5010 passed, 11 skipped, 1 xfailed, 2225 warnings in 194.61s (0:03:14) = Some errors are def create_bound_netlink_socket(): """Creates netlink socket and bind on netlink group to catch interface down/up events. The socket will bound only on RTMGRP_LINK (which only includes RTM_NEWLINK/RTM_DELLINK/RTM_GETLINK events). The socket is set to non-blocking mode since we're only receiving messages. :returns: netlink socket in non-blocking mode :raises: NetlinkCreateSocketError """ try: netlink_socket = socket.socket( > socket.AF_NETLINK, socket.SOCK_RAW, socket.NETLINK_ROUTE ) E AttributeError: module 'socket' has no attribute 'AF_NETLINK' ____ TestAzureDataSource.test_password_with_disable_ssh_pw_auth_unspecified ____ self = <tests.unittests.sources.test_azure.TestAzureDataSource testMethod=test_password_with_disable_ssh_pw_auth_unspecified> def test_password_with_disable_ssh_pw_auth_unspecified(self): data = { "ovfcontent": construct_ovf_env( username="myuser", password="mypass", disable_ssh_password_auth=None, ) } dsrc = self._get_ds(data) dsrc.get_data() > assert dsrc.cfg["ssh_pwauth"] is True E KeyError: 'ssh_pwauth' They seem to be related to hot-attaching a NIC and some Azure related errors. Both of which don't seem super relevant to openbsd. I also see that a lot example template files are not making it into the package PLIST. Can't put into any plist (no applicable prefix): /etc/cloud/clean.d/README /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.d/05_logging.cfg /etc/cloud/cloud.cfg.d/README /etc/cloud/templates/chef_client.rb.tmpl /etc/cloud/templates/chrony.conf.alpine.tmpl /etc/cloud/templates/chrony.conf.centos.tmpl /etc/cloud/templates/chrony.conf.cos.tmpl /etc/cloud/templates/chrony.conf.debian.tmpl /etc/cloud/templates/chrony.conf.fedora.tmpl /etc/cloud/templates/chrony.conf.freebsd.tmpl /etc/cloud/templates/chrony.conf.opensuse-leap.tmpl /etc/cloud/templates/chrony.conf.opensuse-microos.tmpl /etc/cloud/templates/chrony.conf.opensuse-tumbleweed.tmpl /etc/cloud/templates/chrony.conf.opensuse.tmpl /etc/cloud/templates/chrony.conf.photon.tmpl /etc/cloud/templates/chrony.conf.rhel.tmpl /etc/cloud/templates/chrony.conf.sle-micro.tmpl /etc/cloud/templates/chrony.conf.sle_hpc.tmpl /etc/cloud/templates/chrony.conf.sles.tmpl /etc/cloud/templates/chrony.conf.ubuntu.tmpl /etc/cloud/templates/hosts.alpine.tmpl /etc/cloud/templates/hosts.arch.tmpl /etc/cloud/templates/hosts.debian.tmpl /etc/cloud/templates/hosts.freebsd.tmpl /etc/cloud/templates/hosts.gentoo.tmpl /etc/cloud/templates/hosts.mariner.tmpl /etc/cloud/templates/hosts.photon.tmpl /etc/cloud/templates/hosts.redhat.tmpl /etc/cloud/templates/hosts.suse.tmpl /etc/cloud/templates/ntp.conf.alpine.tmpl /etc/cloud/templates/ntp.conf.debian.tmpl /etc/cloud/templates/ntp.conf.fedora.tmpl /etc/cloud/templates/ntp.conf.freebsd.tmpl /etc/cloud/templates/ntp.conf.opensuse.tmpl /etc/cloud/templates/ntp.conf.photon.tmpl /etc/cloud/templates/ntp.conf.rhel.tmpl /etc/cloud/templates/ntp.conf.sles.tmpl /etc/cloud/templates/ntp.conf.ubuntu.tmpl /etc/cloud/templates/ntpd.conf.openbsd.tmpl /etc/cloud/templates/resolv.conf.tmpl /etc/cloud/templates/sources.list.debian.deb822.tmpl /etc/cloud/templates/sources.list.debian.tmpl /etc/cloud/templates/sources.list.ubuntu.deb822.tmpl /etc/cloud/templates/sources.list.ubuntu.tmpl /etc/cloud/templates/systemd.resolved.conf.tmpl /etc/cloud/templates/timesyncd.conf.tmpl You could potentially move them to /usr/local/share/doc/cloud-init/templates in a post-install step, that way the user gets the templates somewhere in the system and they can choose when to use them. Cheers, Aisha > > Mina http://www.unicode-symbol.com/u/0107.html Galić