~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to setup/util.py

[Uber-commit of holiday work because I lacked a local copy of the branch.]

 ivle.makeuser: Don't use jailconf.py as a header for the in-jail conf.py;
     generate the whole thing using string formatting operators and include
     the template inline.

 ivle.makeuser.make_conf_py: XXX the inclusion of ivle.conf.jail_base in
     the jail. It is simply there to placate ivle.studpath, and needs
     to go before we can entirely remove the in-jail config.

 ivle-buildjail:
   - Add. Converted from setup.buildjail.
   - Build the jail in __base_build__ and rsync it to __base__ when
     done, rather than operating only in ./jail
   - Rename --rebuildjail/-j to --recreate/-r, as the whole script
     is now for jail rebuilding. Also add a warning to the usage string about
     the large volume likely to be downloaded.
   - Check existence before removing trees.
   - Don't copy jailconf.py over conf.py in the jail. Also make
     sure that we remove conf.pyc.

 setup.configure:
   - Stop generating jailconf.py at all.
   - Add a jail_system_build setting, defaulting to __base_build__ next to
     the existing __base__.
   - Don't use an OptionParser before calling the real function, as that
     adds options dynamically.

 setup.install:
   - Add an option (-R) to avoid writing out svn revision info to
     $PREFIX/share/ivle/revision.txt.
   - Remove jail-copying things.
   - Install all services to the host, rather than just usrmgt-server. We do
     this so we can build the jail from the host without the source tree.
   - Shuffle some things, and don't install phpBB3 twice.
   - Add a --root argument, to take an alternate root directory to install
     into (as given to autotools in $DESTDIR).

 setup.build:
   - Allow running as non-root.
   - Take a --no-compile option to not byte-compile Python files.

 setup.util:
   - Include usrmgt-server in the list of services.
   - Add make_install_path(), a wrapper around os.path.join() that ensures
     the second path is relative.
   - Install ivle-buildjail with the other binaries.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
           'action_symlink', 'action_append', 'action_chown',
38
38
           'action_chown_setuid', 'action_chmod_x', 'action_make_private',
39
39
           'query_user', 'filter_mutate', 'get_svn_revision', 'InstallList',
40
 
           'wwwuid']
 
40
           'make_install_path', 'wwwuid']
41
41
 
42
42
# Determine which Python version (2.4 or 2.5, for example) we are running,
43
43
# and use that as the filename to the Python directory.
311
311
            _, pylist[i] = pylist[i].split(os.sep, 1)
312
312
    return pylist
313
313
 
 
314
def make_install_path(rootdir, path):
 
315
    '''Combine an installation root directory and final install path.
 
316
 
 
317
    Normalises path, and joins it to the end of rootdir, removing the leading
 
318
    / to make it relative if required.
 
319
    '''
 
320
    normpath = os.path.normpath(path)
 
321
    if normpath.startswith(os.sep):
 
322
        normpath = normpath[1:]
 
323
    return os.path.join(rootdir, normpath)
 
324
 
314
325
class InstallList(object):
315
326
    # We build two separate lists, by walking www and console
316
327
    list_www = property(lambda self: build_list_py_files('www'))
331
342
        "services/usrmgt-server",
332
343
        "services/diffservice",
333
344
        "services/svnlogservice",
 
345
        "services/usrmgt-server", # XXX: Should be in bin/
334
346
    ]
335
347
 
336
348
    list_user_binaries = [
342
354
        "bin/ivle-mountallusers",
343
355
        "bin/ivle-remakeuser",
344
356
        "bin/ivle-showenrolment",
 
357
        "bin/ivle-buildjail",
345
358
    ]