Bug 197791

Summary: Review Request: stacaccli - Stateless Cached Client Tools
Product: [Fedora] Fedora Reporter: Mark McLoughlin <markmc>
Component: Package ReviewAssignee: David Cantrell <dcantrell>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-08 08:51:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mark McLoughlin 2006-07-06 13:31:55 UTC
Spec URL: http://people.redhat.com/markmc/stacaccli/stacaccli.spec
SRPM URL: http://people.redhat.com/markmc/stacaccli/stacaccli-0.2-1.src.rpm
Description:
Stateless Linux is not a deployment model. It is not any single
technology. It's a new way of thinking about how a system is
supposed to run and be managed.

The "Cached Client" mode of deploying stateless clients is
similar to using a network mounted root filesystem, except
that an entire copy of the OS image is cached locally thereby
allowing offline support and better performance.

stacaccli contains the tools needed for running a cached client.
stacaccli-install is responsible for installing such a client
by initializing the local cache of the OS image. stacacclid
is a daemon which downloads updates from the image server and
integrates them into the local image cache.

Comment 1 Mark McLoughlin 2006-07-06 13:37:07 UTC
Some notes:

  - Overview of what this is all about:

      http://fedoraproject.org/wiki/StatelessLinuxCachedClient

  - In order for the updating part of this to work, we need a new "snapshot
    merging" feature in LVM and device-mapper. Patches here:

      http://www.gnome.org/~markmc/code/lvm-snapshot-merging/

    agk is currently reviewing these for upstream inclusion.

    The cached client install part works without this feature, though.

  - Only works on i386 and x86_64 currently. The partitioning and bootloader
    code is specific to these arches.

Comment 2 Jesse Keating 2006-07-10 15:32:37 UTC
NEEDSWORK:
- pyver checking not necessary.  Python now autoadds the python(abi) requirement.
- needs 'noarch' listed in ExclusiveArch.
- Currently our build system doesn't like the combo of BuildArch: noarch and
ExclusiveArch: i386 x86_64.  As a workaround I would put noarch in the
ExclusiveArch.  I don't know what this will do for composes though, we need to
fix the build system.
- rpmlint output on the packages:

E: stacaccli explicit-lib-dependency libxml2-python
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/bootloader.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/config.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/fileutils.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/grabutils.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/imagemetadata.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/__init__.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/logger.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/lvm.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/shvar.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/sysutils.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/common/udevmonitor.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/daemon/config.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/daemon/__init__.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/daemon/main.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/daemon/updater.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/__init__.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/install/config.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/install/__init__.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/install/installer.py 0644
E: stacaccli non-executable-script
/usr/lib/python2.4/site-packages/stacaccli/install/main.py 0644
W: stacaccli incoherent-init-script-name stacacclid
W: stacaccli incoherent-version-in-changelog 0.1-1 0.2-1
W: stacaccli non-conffile-in-etc /etc/rwtab.d/stacaccli
W: stacaccli strange-permission stacaccli.spec 0600


Comment 3 Mark McLoughlin 2006-07-12 13:13:23 UTC
Thanks

(In reply to comment #2)

> - pyver checking not necessary.  Python now autoadds the python(abi) requirement.

Done.

> - needs 'noarch' listed in ExclusiveArch.

Done.

> E: stacaccli explicit-lib-dependency libxml2-python

Not actually a lib dependency. Just matches the regex.

> E: stacaccli non-executable-script
> /usr/lib/python2.4/site-packages/stacaccli/common/bootloader.py 0644

[snip more non-executable-script]

Yes, they're python modules and not intended to be executable, even though they
start with #!

Fairly common with python code e.g. rpmlint yum.

> W: stacaccli incoherent-init-script-name stacacclid

i.e. rename the initscript stacaccli ? It starts the daemon (stacacclid), so I
think the current name is probably more appropriate.

> W: stacaccli incoherent-version-in-changelog 0.1-1 0.2-1

Fixed.

> W: stacaccli non-conffile-in-etc /etc/rwtab.d/stacaccli

/etc/rwtab isn't marked with %config, and I don't think it's correct to mark
this one either.

> W: stacaccli strange-permission stacaccli.spec 0600

Fixed.

Comment 4 Jesse Keating 2006-07-17 19:01:14 UTC
rpmlint package does not have a sha-bang in the module files not designed to be
executed directly.  They really don't belong there.

The complaint about a direct lib requirement is because rpm itself can most
often figure out the package requirements on its own.  Is this not the case if
you remove the Requires: line?  (This may not work for python module requirements)

Getting more input on the rwtab issue.

Comment 5 Jesse Keating 2006-07-17 19:08:12 UTC
More info on rwtab.

Since the rwtab file will be package version specific most likely, its not
designed to be user editable right?  And thus it can't be marked noreplace, so
there is little value (other than rpmlint) in marking it as config.  You can
ignore if the above assumptions are true.

Comment 6 Mark McLoughlin 2006-08-08 08:51:06 UTC
Closing this as deferred for now - the device-mapper changes didn't make it into
the kernel in time for feature freeze

Thanks