Package: cfengine3
Version: 3.15.2-2
Severity: grave
Justification: renders package unusable

First, thank you for packaging cfengine 3.15.2.

Unfortunately, the new cfengine 3.15.2 package in sid/unstable is
broken and non-functional.

What led up to the situation?
Upgrading from cfengine 3.12.1 to 3.15.2.
Fresh installs of 3.15.2 also suffer from the problem.

Under an installation of Debian's cfengine 3.12.1, bootstrapping a
cfengine node works correctly, and cf-promises has variables like
"default:sys.cf_agent" defined.
This same behavior is seen using the cfengine community edition
packages from https://cfengine.com/product/community/

Here is example output from Debian's cfengine 3.12.1:

# cf-promises --show-vars | grep sys.cf_
...
default:sys.cf_agent                     \"/var/lib/cfengine3/bin/cf-agent\"    
                      cfe_internal,source=agent               
default:sys.cf_check                     \"/var/lib/cfengine3/bin/cf-check\"    
                      cfe_internal,source=agent               
default:sys.cf_execd                     \"/var/lib/cfengine3/bin/cf-execd\"    
                      cfe_internal,source=agent               
default:sys.cf_key                       \"/var/lib/cfengine3/bin/cf-key\"      
                      cfe_internal,source=agent               
default:sys.cf_monitord                  \"/var/lib/cfengine3/bin/cf-monitord\" 
                      cfe_internal,source=agent               
default:sys.cf_net                       \"/var/lib/cfengine3/bin/cf-net\"      
                      cfe_internal,source=agent               
default:sys.cf_promises                  \"/var/lib/cfengine3/bin/cf-promises\" 
                      cfe_internal,source=agent               
default:sys.cf_runagent                  \"/var/lib/cfengine3/bin/cf-runagent\" 
                      cfe_internal,source=agent               
default:sys.cf_serverd                   \"/var/lib/cfengine3/bin/cf-serverd\"  
                      cfe_internal,source=agent               
default:sys.cf_twin                      \"/var/lib/cfengine3/bin/cf-agent\"    
                      cfe_internal,source=agent               
default:sys.cf_upgrade                   \"/var/lib/cfengine3/bin/cf-upgrade\"  
                      cfe_internal,source=agent               
default:sys.cf_version                   3.12.1                                 
                      inventory,source=agent,attribute_name=CFEngine version
default:sys.cf_version_major             3                                      
                      source=agent                            
default:sys.cf_version_minor             12                                     
                      source=agent                            
default:sys.cf_version_patch             1                                      
                      source=agent                            

Here is example output from CFEngine Community edition 3.15.2:

# cf-promises --show-vars | grep sys.cf_
...
default:sys.cf_agent                     \"/var/cfengine/bin/cf-agent\"         
                      cfe_internal,source=agent
default:sys.cf_check                     \"/var/cfengine/bin/cf-check\"         
                      cfe_internal,source=agent
default:sys.cf_execd                     \"/var/cfengine/bin/cf-execd\"         
                      cfe_internal,source=agent
default:sys.cf_key                       \"/var/cfengine/bin/cf-key\"           
                      cfe_internal,source=agent
default:sys.cf_monitord                  \"/var/cfengine/bin/cf-monitord\"      
                      cfe_internal,source=agent
default:sys.cf_net                       \"/var/cfengine/bin/cf-net\"           
                      cfe_internal,source=agent
default:sys.cf_promises                  \"/var/cfengine/bin/cf-promises\"      
                      cfe_internal,source=agent
default:sys.cf_runagent                  \"/var/cfengine/bin/cf-runagent\"      
                      cfe_internal,source=agent
default:sys.cf_serverd                   \"/var/cfengine/bin/cf-serverd\"       
                      cfe_internal,source=agent
default:sys.cf_twin                      \"/var/cfengine/bin/cf-agent\"         
                      cfe_internal,source=agent
default:sys.cf_upgrade                   \"/var/cfengine/bin/cf-upgrade\"       
                      cfe_internal,source=agent
default:sys.cf_version                   3.15.2                                 
                      inventory,source=agent,attribute_name=CFEngine version
default:sys.cf_version_major             3                                      
                      source=agent
default:sys.cf_version_minor             15                                     
                      source=agent
default:sys.cf_version_patch             2                                      
                      source=agent
default:sys.cf_version_release           1                                      
                      source=agent

The new Debian package for cfengine 3.15.2 does not produce similar
output. It is missing all of the variables "sys.cf_agent" through
"sys.cf_upgade" (all of the vars that have an executable path associated
with them).

# cf-promises --show-vars | grep sys.cf_
...
default:sys.cf_version                   3.15.2                                 
                      inventory,source=agent,attribute_name=CFEngine version
default:sys.cf_version_major             3                                      
                      source=agent
default:sys.cf_version_minor             15                                     
                      source=agent
default:sys.cf_version_patch             2                                      
                      source=agent
default:sys.cf_version_release           1                                      
                      source=agent

As a result, bootstraping failes with error messages about non-existent
executable files.

# cf-agent --bootstrap X.X.X.X
   error: cf-promises needs to be installed in /usr/bin for pre-validation of 
full configuration
   error: Proposed executable file '$(sys.cf_agent)' doesn't exist
   error: '$(sys.cf_agent) -f /var/lib/cfengine3/inputs/update.cf --define 
bootstrap_mode' promises to be executable but isn't
   error: Method 'failsafe_cfe_internal_call_update' failed in some repairs
   error: Proposed executable file '$(sys.cf_agent)' doesn't exist
   error: '$(sys.cf_agent) --define bootstrap_mode' promises to be executable 
but isn't
   error: Method 'failsafe_cfe_internal_trigger_policy' failed in some repairs
R: Bootstrapping from host 'X.X.X.X' via built-in policy 
'/var/lib/cfengine3/inputs/failsafe.cf'
R: This host assumes the role of policy server
R: Updated local policy from policy server
R: Initial run of the policy failed
R: Restarted systemd unit cfengine3
   error: Bootstrapping failed, cf-execd is not running


As a result of this, the new Debian cfengine 3.15.2 package never
actually applies any of the configured policies, failing each time with
error messages that '$(sys.cf_agent)' doesn't exist.

I successfully installed an configured the CFEngine community edition
3.15.2 deb package from the CFEngine website, so it is an issue with the
new Debian package in unstable and not with the upstream cfengine 3.15.2
source code.


-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.6.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages cfengine3 depends on:
ii  e2fsprogs     1.45.6-1
ii  libacl1       2.2.53-8
ii  libc6         2.30-8
ii  liblmdb0      0.9.24-1
ii  libpam0g      1.3.1-5
ii  libpcre3      2:8.39-13
ii  libpromises3  3.15.2-2
ii  libssl1.1     1.1.1g-1
ii  libvirt0      6.0.0-7
ii  libxml2       2.9.10+dfsg-5+b1
ii  lsb-base      11.1.0

Versions of packages cfengine3 recommends:
pn  python  <none>

cfengine3 suggests no packages.

-- Configuration Files:
/etc/default/cfengine3 changed:
RUN_CFMONITORD=1
RUN_CFSERVERD=1
RUN_CFEXECD=1
CFMONITORD_ARGS=""
CFSERVERD_ARGS=""
CFEXECD_ARGS=""


-- no debconf information

Reply via email to