[Repoze-dev] [issue67] repoze.recipe.egg is incompatible with zc.buildout 1.2.2 (possibly 1.2.1 as well)

2009-04-18 Thread Chris McDonough

Chris McDonough  added the comment:

repoze.recipe.egg was updated to solve this particular issue, but it been 
retired as a project.

Use the dependent-scripts=true option in the latest zc.recipe.egg instead.

--
status: chatting -> resolved

__
Repoze Bugs 

__
___
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev


[Repoze-dev] [issue67] repoze.recipe.egg is incompatible with zc.buildout 1.2.2 (possibly 1.2.1 as well)

2009-03-23 Thread Clayton Parker

Clayton Parker  added the comment:

The corresponding change in buildout is here, looks like it was introduced in 
1.2.0

http://svn.zope.org/zc.buildout/trunk/src/zc/buildout/easy_install.py?rev=98175&r1=98023&r2=98175

Looks like an empty string gets passed in according to this changeset, this is
what I'm doing locally to get around the issue.

--
status: unread -> chatting
title: repoze.recipe.egg is incompatible with zc.buildout 1.2.2(possibly 1.2.1 
as well) -> repoze.recipe.egg is incompatible with zc.buildout 1.2.2 (possibly 
1.2.1 as well)

__
Repoze Bugs 

__
___
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev


[Repoze-dev] [issue67] repoze.recipe.egg is incompatible with zc.buildout 1.2.2(possibly 1.2.1 as well)

2009-03-20 Thread Adrian Cline

New submission from Adrian Cline :

I don't have a good way of submitting a patch, but fix was trivial.

Added False as additional argument to call to _script on line 249 of egg.py.
(This was needed as zc.buildout added the requirement of specifying whether
paths included were relative for invocations of easy_install)

Attached is the modified version of repoze.recipe.egg.egg

--
files: egg.py
messages: 152
nosy: ikanreed
priority: bug
status: unread
title: repoze.recipe.egg is incompatible with zc.buildout 1.2.2(possibly 1.2.1 
as well)

__
Repoze Bugs 

__##
#
# Copyright (c) 2006 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##
"""Install packages as eggs

$Id: egg.py 72431 2007-02-07 23:43:36Z jim $
"""

import logging
import os
import pkg_resources
import re
import sys

import zc.buildout.easy_install

class Eggs(object):

def __init__(self, buildout, name, options):
self.buildout = buildout
self.name = name
self.options = options
links = options.get('find-links',
buildout['buildout'].get('find-links'))
if links:
links = links.split()
options['find-links'] = '\n'.join(links)
else:
links = ()
self.links = links

index = options.get('index', buildout['buildout'].get('index'))
if index is not None:
options['index'] = index
self.index = index

options['eggs-directory'] = buildout['buildout']['eggs-directory']
options['_e'] = options['eggs-directory'] # backward compat.
options['develop-eggs-directory'
] = buildout['buildout']['develop-eggs-directory']
options['_d'] = options['develop-eggs-directory'] # backward compat.

assert options.get('unzip') in ('true', 'false', None)

python = options.get('python', buildout['buildout']['python'])
options['executable'] = buildout[python]['executable']

def working_set(self, extra=()):
"""Separate method to just get the working set

This is intended for reuse by similar recipes.
"""
options = self.options

distributions = [
r.strip()
for r in options.get('eggs', self.name).split('\n')
if r.strip()]
orig_distributions = distributions[:]
distributions.extend(extra)

if self.buildout['buildout'].get('offline') == 'true':
ws = zc.buildout.easy_install.working_set(
distributions, options['executable'],
[options['develop-eggs-directory'], options['eggs-directory']]
)
else:
ws = zc.buildout.easy_install.install(
distributions, options['eggs-directory'],
links = self.links,
index = self.index, 
executable = options['executable'],
always_unzip=options.get('unzip') == 'true',
path=[options['develop-eggs-directory']],
newest=self.buildout['buildout'].get('newest') == 'true',
)

return orig_distributions, ws

def install(self):
reqs, ws = self.working_set()
return ()

update = install

class Scripts(Eggs):

def __init__(self, buildout, name, options):
super(Scripts, self).__init__(buildout, name, options)

options['bin-directory'] = buildout['buildout']['bin-directory']
options['_b'] = options['bin-directory'] # backward compat.

self.extra_paths = [
os.path.join(buildout['buildout']['directory'], p.strip())
for p in options.get('extra-paths', '').split('\n')
if p.strip()
]
if self.extra_paths:
options['extra-paths'] = '\n'.join(self.extra_paths)

parse_entry_point = re.compile(
'([^=]+)=(\w+(?:[.]\w+)*):(\w+(?:[.]\w+)*)$'
).match
def install(self):
reqs, ws = self.working_set()
options = self.options

scripts = options.get('scripts')
if scripts or scripts is None:
if scripts is not None:
scripts = scripts.split()
scripts = dict([
('=' in s) and s.split('=', 1) or (s, s)
for s in scripts
])