From 1897fc80874b6a01282bee1512170268e365dc83 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Mon, 13 Oct 2014 15:29:10 -0700 Subject: Fix the rpm building (currently broken) --- packages/redhat/cloud-init.spec.in | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 0e9862d8..05458271 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -81,7 +81,7 @@ ssh keys and to let the user run various scripts. %{__python} setup.py build %install -rm -rf \$RPM_BUILD_ROOT + %{__python} setup.py install -O1 \ --skip-build --root \$RPM_BUILD_ROOT \ --init-system=${init_sys} @@ -92,6 +92,9 @@ mkdir -p \$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d cp -p tools/21-cloudinit.conf \ \$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf +rm -rf \$RPM_BUILD_ROOT%{python_sitelib}/tests +mkdir -p \$RPM_BUILD_ROOT/var/lib/cloud + %clean rm -rf \$RPM_BUILD_ROOT @@ -169,7 +172,7 @@ fi /usr/lib/%{name}/write-ssh-key-fingerprints # Docs -%doc TODO LICENSE ChangeLog requirements.txt +%doc LICENSE ChangeLog requirements.txt %doc %{_defaultdocdir}/cloud-init/* # Configs @@ -180,7 +183,7 @@ fi %dir %{_sysconfdir}/cloud/templates %config(noreplace) %{_sysconfdir}/cloud/templates/* %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf -%config(noreplace) %{_sysconfdir}/sudoers.d/cloud-init +%dir /var/lib/cloud # Python code is here... %{python_sitelib}/* -- cgit v1.2.3 From ad943eb7d3e3b38d0689a9276040a539270f11f0 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Mon, 13 Oct 2014 15:36:30 -0700 Subject: Show the spec file content --- packages/brpm | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/brpm b/packages/brpm index b8bbff9d..9657b1dd 100755 --- a/packages/brpm +++ b/packages/brpm @@ -244,6 +244,7 @@ def main(): spec_fn = util.abs_join(root_dir, 'cloud-init.spec') util.write_file(spec_fn, contents) print("Created spec file at %r" % (spec_fn)) + print(contents) for p in args.patches: util.copy(p, util.abs_join(arc_dir, os.path.basename(p))) -- cgit v1.2.3 From fdbf0c166df12fbbd0ff35f33422ab631b72890f Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 Oct 2014 15:55:03 -0700 Subject: More spec file tweaks - Use _libexecdir for the helper binaries - Use _sharedstatedir instead of /var/lib - Ensure _libexecdir/${name} exists --- packages/redhat/cloud-init.spec.in | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 05458271..75faf8d8 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -92,8 +92,12 @@ mkdir -p \$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d cp -p tools/21-cloudinit.conf \ \$RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf +# Remove the tests rm -rf \$RPM_BUILD_ROOT%{python_sitelib}/tests -mkdir -p \$RPM_BUILD_ROOT/var/lib/cloud + +# Required dirs... +mkdir -p \$RPM_BUILD_ROOT/%{_sharedstatedir}/cloud +mkdir -p \$RPM_BUILD_ROOT/%{_libexecdir}/%{name} %clean rm -rf \$RPM_BUILD_ROOT @@ -164,12 +168,8 @@ fi # Program binaries %{_bindir}/cloud-init* - -# There doesn't seem to be an agreed upon place for these -# although it appears the standard says /usr/lib but rpmbuild -# will try /usr/lib64 ?? -/usr/lib/%{name}/uncloud-init -/usr/lib/%{name}/write-ssh-key-fingerprints +%{_libexecdir}/%{name}/uncloud-init +%{_libexecdir}/%{name}/write-ssh-key-fingerprints # Docs %doc LICENSE ChangeLog requirements.txt -- cgit v1.2.3 From 18d27181905f4474d9b338f1e756b3cadd7c6e57 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 Oct 2014 15:57:09 -0700 Subject: Ensure the files/dirs are retained --- packages/redhat/cloud-init.spec.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 75faf8d8..2625d90e 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -183,7 +183,9 @@ fi %dir %{_sysconfdir}/cloud/templates %config(noreplace) %{_sysconfdir}/cloud/templates/* %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf -%dir /var/lib/cloud + +%{_libexecdir}/%{name} +%dir %{_sharedstatedir}/cloud # Python code is here... %{python_sitelib}/* -- cgit v1.2.3 From 2b054e2cb21a14a4db5f3b891854cc15bdfef709 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 Oct 2014 16:11:32 -0700 Subject: USR_LIB_EXEC varies depending on system --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index bd41bc91..3b0af03c 100755 --- a/setup.py +++ b/setup.py @@ -81,9 +81,13 @@ INITSYS_TYPES = sorted(list(INITSYS_ROOTS.keys())) # FreeBSD systems. USR = "/usr" ETC = "/etc" +USR_LIB_EXEC = "/usr/lib" if os.uname()[0] == 'FreeBSD': USR = "/usr/local" + USR_LIB_EXEC = "/usr/local/lib" ETC = "/usr/local/etc" +elif os.path.isfile('/etc/redhat-release'): + USR_LIB_EXEC = "/usr/libexec" def get_version(): @@ -149,7 +153,7 @@ setuptools.setup(name='cloud-init', data_files=[(ETC + '/cloud', glob('config/*.cfg')), (ETC + '/cloud/cloud.cfg.d', glob('config/cloud.cfg.d/*')), (ETC + '/cloud/templates', glob('templates/*')), - (USR + '/lib/cloud-init', + (USR_LIB_EXEC + '/cloud-init', ['tools/uncloud-init', 'tools/write-ssh-key-fingerprints']), (USR + '/share/doc/cloud-init', -- cgit v1.2.3 From 211b09302ff3aff05b6c3c1382d8e7dd65e58b3a Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 Oct 2014 16:18:18 -0700 Subject: Allow the usr/lib/exec to vary and still work with write_keys --- cloudinit/config/cc_keys_to_console.py | 11 ++++++----- cloudinit/distros/__init__.py | 1 + cloudinit/distros/rhel.py | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cloudinit/config/cc_keys_to_console.py b/cloudinit/config/cc_keys_to_console.py index ed7af690..58104f4d 100644 --- a/cloudinit/config/cc_keys_to_console.py +++ b/cloudinit/config/cc_keys_to_console.py @@ -26,13 +26,14 @@ from cloudinit import util frequency = PER_INSTANCE # This is a tool that cloud init provides -HELPER_TOOL = '/usr/lib/cloud-init/write-ssh-key-fingerprints' +HELPER_TOOL_TPL = '%s/cloud-init/write-ssh-key-fingerprints' -def handle(name, cfg, _cloud, log, _args): - if not os.path.exists(HELPER_TOOL): +def handle(name, cfg, cloud, log, _args): + helper_path = HELPER_TOOL_TPL % (cloud.distro.usr_lib_exec) + if not os.path.exists(helper_path): log.warn(("Unable to activate module %s," - " helper tool not found at %s"), name, HELPER_TOOL) + " helper tool not found at %s"), name, helper_path) return fp_blacklist = util.get_cfg_option_list(cfg, @@ -42,7 +43,7 @@ def handle(name, cfg, _cloud, log, _args): ["ssh-dss"]) try: - cmd = [HELPER_TOOL] + cmd = [helper_path] cmd.append(','.join(fp_blacklist)) cmd.append(','.join(key_blacklist)) (stdout, _stderr) = util.subp(cmd) diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index 2599d9f2..49014477 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -51,6 +51,7 @@ LOG = logging.getLogger(__name__) class Distro(object): __metaclass__ = abc.ABCMeta + usr_lib_exec = "/usr/lib" hosts_fn = "/etc/hosts" ci_sudoers_fn = "/etc/sudoers.d/90-cloud-init-users" hostname_conf_fn = "/etc/hostname" diff --git a/cloudinit/distros/rhel.py b/cloudinit/distros/rhel.py index e8abf111..d01124e3 100644 --- a/cloudinit/distros/rhel.py +++ b/cloudinit/distros/rhel.py @@ -50,6 +50,7 @@ class Distro(distros.Distro): network_script_tpl = '/etc/sysconfig/network-scripts/ifcfg-%s' resolve_conf_fn = "/etc/resolv.conf" tz_local_fn = "/etc/localtime" + usr_lib_exec = "/usr/libexec" def __init__(self, name, cfg, paths): distros.Distro.__init__(self, name, cfg, paths) -- cgit v1.2.3 From 7d20f3843bff0069b1ac9b2f0c6d346889789058 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 Oct 2014 16:24:19 -0700 Subject: Use TODO.rst instead of removing it --- packages/redhat/cloud-init.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 2625d90e..49bd880b 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -172,7 +172,7 @@ fi %{_libexecdir}/%{name}/write-ssh-key-fingerprints # Docs -%doc LICENSE ChangeLog requirements.txt +%doc LICENSE ChangeLog TODO.rst requirements.txt %doc %{_defaultdocdir}/cloud-init/* # Configs -- cgit v1.2.3