parent
868d1a9e3d
commit
b2bad923c9
@ -0,0 +1,2 @@
|
||||
DIST fig-0.5.2.tar.gz 213700 SHA256 02097d15d30cf6b3996a8982bcc0bec76377a42e8fc03191d33471c6f97ac835 SHA512 15bea312d2bfed765c32d98a8bd9cd8faf305467e135ca9fe73136cce4d0dfd1d585bc90bc67afe4f49acc0674f933dea851edea989315ea23d8528b4c3b2097 WHIRLPOOL 722a49d8b96156fe9c4121925355bd8e153fc5419d5aa315c1e7edb4bf1b444d1ffcb9e611f2bf7c199c72513f477065bc4dbcd245d67d0c8808ac3e7c2a60e8
|
||||
DIST fig-1.0.0.tar.gz 211497 SHA256 3ac21ce253e3ad791fb35d2b5cb83a530d9b16830a02e71587533664796b261a SHA512 82ca0e5932ce67057dec4fd30f334ff3029c04804ef2fc01bc86076f04cc3fdeee6675ff9a06f03a9e4ef7da18fce949ccb4c24ddba707f7419bbbd165166b31 WHIRLPOOL 43d90efcc24d836116cb3e473b4a50ef67cfaf422746dff6a0f7b2e1efb759d38401131d03d0a59a98326b23955e0187f4aca94f8fa9decac4dc045bfac86b0e
|
@ -0,0 +1,60 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/fig/fig-0.5.2.ebuild,v 1.1 2014/10/27 15:25:51 alunduil Exp $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="Punctual, lightweight development environments using Docker"
|
||||
HOMEPAGE="http://www.fig.sh/"
|
||||
SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
CDEPEND="
|
||||
>=dev-python/dockerpty-0.2.3[${PYTHON_USEDEP}]
|
||||
~dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
|
||||
~dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
|
||||
~dev-python/texttable-0.8.1[${PYTHON_USEDEP}]
|
||||
~dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
${CDEPEND}
|
||||
~dev-python/mock-1.0.1[${PYTHON_USEDEP}]
|
||||
~dev-python/nose-1.3.0[${PYTHON_USEDEP}]
|
||||
dev-python/unittest2[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
python_prepare_all() {
|
||||
ebegin 'patching setup.py'
|
||||
sed \
|
||||
-e 's/packages=find_packages(/&exclude=["tests.*", "tests"]/' \
|
||||
-i setup.py
|
||||
STATUS=$?
|
||||
eend ${STATUS}
|
||||
[[ ${STATUS} -gt 0 ]] && die
|
||||
|
||||
ebegin 'patching requirements.txt'
|
||||
sed \
|
||||
-e '3s/==/>=/' \
|
||||
-i requirements.txt
|
||||
STATUS=$?
|
||||
eend ${STATUS}
|
||||
[[ ${STATUS} -gt 0 ]] && die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
nosetests tests/unit || die "Tests failed under ${EPYTHON}"
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/fig/fig-1.0.0.ebuild,v 1.1 2014/10/27 15:25:51 alunduil Exp $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="Punctual, lightweight development environments using Docker"
|
||||
HOMEPAGE="http://www.fig.sh/"
|
||||
SRC_URI="https://github.com/docker/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
|
||||
CDEPEND="
|
||||
>=dev-python/dockerpty-0.2.4[${PYTHON_USEDEP}]
|
||||
>=dev-python/docker-py-0.5[${PYTHON_USEDEP}]
|
||||
<dev-python/docker-py-0.6[${PYTHON_USEDEP}]
|
||||
>=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
|
||||
<dev-python/docopt-0.7[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
|
||||
<dev-python/pyyaml-4[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
|
||||
<dev-python/requests-3[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.3.0[${PYTHON_USEDEP}]
|
||||
<dev-python/six-2[${PYTHON_USEDEP}]
|
||||
>=dev-python/texttable-0.8.1[${PYTHON_USEDEP}]
|
||||
<dev-python/texttable-0.9[${PYTHON_USEDEP}]
|
||||
>=dev-python/websocket-client-0.11.0[${PYTHON_USEDEP}]
|
||||
<dev-python/websocket-client-0.12[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
${CDEPEND}
|
||||
>=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
|
||||
dev-python/nose[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep 'dev-python/unittest2[${PYTHON_USEDEP}]' 'python2*')
|
||||
)
|
||||
"
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
python_prepare_all() {
|
||||
# Note: patch is 22KiB but should be removed next release.
|
||||
local PATCHES=(
|
||||
"${FILESDIR}"/1.0.0-unvendorize-dockerpty.patch
|
||||
)
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
nosetests tests/unit || die "Tests failed under ${EPYTHON}"
|
||||
}
|
@ -0,0 +1,790 @@
|
||||
diff --git a/fig/cli/main.py b/fig/cli/main.py
|
||||
index 9a47771..98a1624 100644
|
||||
--- a/fig/cli/main.py
|
||||
+++ b/fig/cli/main.py
|
||||
@@ -7,7 +7,7 @@ import signal
|
||||
from operator import attrgetter
|
||||
|
||||
from inspect import getdoc
|
||||
-from fig.packages import dockerpty
|
||||
+import dockerpty
|
||||
|
||||
from .. import __version__
|
||||
from ..project import NoSuchService, ConfigurationError
|
||||
diff --git a/fig/packages/__init__.py b/fig/packages/__init__.py
|
||||
deleted file mode 100644
|
||||
index e69de29..0000000
|
||||
diff --git a/fig/packages/dockerpty/__init__.py b/fig/packages/dockerpty/__init__.py
|
||||
deleted file mode 100644
|
||||
index a5d707a..0000000
|
||||
--- a/fig/packages/dockerpty/__init__.py
|
||||
+++ /dev/null
|
||||
@@ -1,27 +0,0 @@
|
||||
-# dockerpty.
|
||||
-#
|
||||
-# Copyright 2014 Chris Corbyn <chris@w3style.co.uk>
|
||||
-#
|
||||
-# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-# you may not use this file except in compliance with the License.
|
||||
-# You may obtain a copy of the License at
|
||||
-#
|
||||
-# http://www.apache.org/licenses/LICENSE-2.0
|
||||
-#
|
||||
-# Unless required by applicable law or agreed to in writing, software
|
||||
-# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-# See the License for the specific language governing permissions and
|
||||
-# limitations under the License.
|
||||
-
|
||||
-from .pty import PseudoTerminal
|
||||
-
|
||||
-
|
||||
-def start(client, container):
|
||||
- """
|
||||
- Present the PTY of the container inside the current process.
|
||||
-
|
||||
- This is just a wrapper for PseudoTerminal(client, container).start()
|
||||
- """
|
||||
-
|
||||
- PseudoTerminal(client, container).start()
|
||||
diff --git a/fig/packages/dockerpty/io.py b/fig/packages/dockerpty/io.py
|
||||
deleted file mode 100644
|
||||
index c31c540..0000000
|
||||
--- a/fig/packages/dockerpty/io.py
|
||||
+++ /dev/null
|
||||
@@ -1,294 +0,0 @@
|
||||
-# dockerpty: io.py
|
||||
-#
|
||||
-# Copyright 2014 Chris Corbyn <chris@w3style.co.uk>
|
||||
-#
|
||||
-# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-# you may not use this file except in compliance with the License.
|
||||
-# You may obtain a copy of the License at
|
||||
-#
|
||||
-# http://www.apache.org/licenses/LICENSE-2.0
|
||||
-#
|
||||
-# Unless required by applicable law or agreed to in writing, software
|
||||
-# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-# See the License for the specific language governing permissions and
|
||||
-# limitations under the License.
|
||||
-
|
||||
-import os
|
||||
-import fcntl
|
||||
-import errno
|
||||
-import struct
|
||||
-import select as builtin_select
|
||||
-
|
||||
-
|
||||
-def set_blocking(fd, blocking=True):
|
||||
- """
|
||||
- Set the given file-descriptor blocking or non-blocking.
|
||||
-
|
||||
- Returns the original blocking status.
|
||||
- """
|
||||
-
|
||||
- old_flag = fcntl.fcntl(fd, fcntl.F_GETFL)
|
||||
-
|
||||
- if blocking:
|
||||
- new_flag = old_flag &~ os.O_NONBLOCK
|
||||
- else:
|
||||
- new_flag = old_flag | os.O_NONBLOCK
|
||||
-
|
||||
- fcntl.fcntl(fd, fcntl.F_SETFL, new_flag)
|
||||
-
|
||||
- return not bool(old_flag & os.O_NONBLOCK)
|
||||
-
|
||||
-
|
||||
-def select(read_streams, timeout=0):
|
||||
- """
|
||||
- Select the streams from `read_streams` that are ready for reading.
|
||||
-
|
||||
- Uses `select.select()` internally but returns a flat list of streams.
|
||||
- """
|
||||
-
|
||||
- write_streams = []
|
||||
- exception_streams = []
|
||||
-
|
||||
- try:
|
||||
- return builtin_select.select(
|
||||
- read_streams,
|
||||
- write_streams,
|
||||
- exception_streams,
|
||||
- timeout,
|
||||
- )[0]
|
||||
- except builtin_select.error as e:
|
||||
- # POSIX signals interrupt select()
|
||||
- if e[0] == errno.EINTR:
|
||||
- return []
|
||||
- else:
|
||||
- raise e
|
||||
-
|
||||
-
|
||||
-class Stream(object):
|
||||
- """
|
||||
- Generic Stream class.
|
||||
-
|
||||
- This is a file-like abstraction on top of os.read() and os.write(), which
|
||||
- add consistency to the reading of sockets and files alike.
|
||||
- """
|
||||
-
|
||||
-
|
||||
- """
|
||||
- Recoverable IO/OS Errors.
|
||||
- """
|
||||
- ERRNO_RECOVERABLE = [
|
||||
- errno.EINTR,
|
||||
- errno.EDEADLK,
|
||||
- errno.EWOULDBLOCK,
|
||||
- ]
|
||||
-
|
||||
-
|
||||
- def __init__(self, fd):
|
||||
- """
|
||||
- Initialize the Stream for the file descriptor `fd`.
|
||||
-
|
||||
- The `fd` object must have a `fileno()` method.
|
||||
- """
|
||||
- self.fd = fd
|
||||
-
|
||||
-
|
||||
- def fileno(self):
|
||||
- """
|
||||
- Return the fileno() of the file descriptor.
|
||||
- """
|
||||
-
|
||||
- return self.fd.fileno()
|
||||
-
|
||||
-
|
||||
- def set_blocking(self, value):
|
||||
- if hasattr(self.fd, 'setblocking'):
|
||||
- self.fd.setblocking(value)
|
||||
- return True
|
||||
- else:
|
||||
- return set_blocking(self.fd, value)
|
||||
-
|
||||
-
|
||||
- def read(self, n=4096):
|
||||
- """
|
||||
- Return `n` bytes of data from the Stream, or None at end of stream.
|
||||
- """
|
||||
-
|
||||
- try:
|
||||
- if hasattr(self.fd, 'recv'):
|
||||
- return self.fd.recv(n)
|
||||
- return os.read(self.fd.fileno(), n)
|
||||
- except EnvironmentError as e:
|
||||
- if e.errno not in Stream.ERRNO_RECOVERABLE:
|
||||
- raise e
|
||||
-
|
||||
-
|
||||
- def write(self, data):
|
||||
- """
|
||||
- Write `data` to the Stream.
|
||||
- """
|
||||
-
|
||||
- if not data:
|
||||
- return None
|
||||
-
|
||||
- while True:
|
||||
- try:
|
||||
- if hasattr(self.fd, 'send'):
|
||||
- self.fd.send(data)
|
||||
- return len(data)
|
||||
- os.write(self.fd.fileno(), data)
|
||||
- return len(data)
|
||||
- except EnvironmentError as e:
|
||||
- if e.errno not in Stream.ERRNO_RECOVERABLE:
|
||||
- raise e
|
||||
-
|
||||
- def __repr__(self):
|
||||
- return "{cls}({fd})".format(cls=type(self).__name__, fd=self.fd)
|
||||
-
|
||||
-
|
||||
-class Demuxer(object):
|
||||
- """
|
||||
- Wraps a multiplexed Stream to read in data demultiplexed.
|
||||
-
|
||||
- Docker multiplexes streams together when there is no PTY attached, by
|
||||
- sending an 8-byte header, followed by a chunk of data.
|
||||
-
|
||||
- The first 4 bytes of the header denote the stream from which the data came
|
||||
- (i.e. 0x01 = stdout, 0x02 = stderr). Only the first byte of these initial 4
|
||||
- bytes is used.
|
||||
-
|
||||
- The next 4 bytes indicate the length of the following chunk of data as an
|
||||
- integer in big endian format. This much data must be consumed before the
|
||||
- next 8-byte header is read.
|
||||
- """
|
||||
-
|
||||
- def __init__(self, stream):
|
||||
- """
|
||||
- Initialize a new Demuxer reading from `stream`.
|
||||
- """
|
||||
-
|
||||
- self.stream = stream
|
||||
- self.remain = 0
|
||||
-
|
||||
-
|
||||
- def fileno(self):
|
||||
- """
|
||||
- Returns the fileno() of the underlying Stream.
|
||||
-
|
||||
- This is useful for select() to work.
|
||||
- """
|
||||
-
|
||||
- return self.stream.fileno()
|
||||
-
|
||||
-
|
||||
- def set_blocking(self, value):
|
||||
- return self.stream.set_blocking(value)
|
||||
-
|
||||
-
|
||||
- def read(self, n=4096):
|
||||
- """
|
||||
- Read up to `n` bytes of data from the Stream, after demuxing.
|
||||
-
|
||||
- Less than `n` bytes of data may be returned depending on the available
|
||||
- payload, but the number of bytes returned will never exceed `n`.
|
||||
-
|
||||
- Because demuxing involves scanning 8-byte headers, the actual amount of
|
||||
- data read from the underlying stream may be greater than `n`.
|
||||
- """
|
||||
-
|
||||
- size = self._next_packet_size(n)
|
||||
-
|
||||
- if size <= 0:
|
||||
- return
|
||||
- else:
|
||||
- return self.stream.read(size)
|
||||
-
|
||||
-
|
||||
- def write(self, data):
|
||||
- """
|
||||
- Delegates the the underlying Stream.
|
||||
- """
|
||||
-
|
||||
- return self.stream.write(data)
|
||||
-
|
||||
-
|
||||
- def _next_packet_size(self, n=0):
|
||||
- size = 0
|
||||
-
|
||||
- if self.remain > 0:
|
||||
- size = min(n, self.remain)
|
||||
- self.remain -= size
|
||||
- else:
|
||||
- data = self.stream.read(8)
|
||||
- if data is None:
|
||||
- return 0
|
||||
- if len(data) == 8:
|
||||
- __, actual = struct.unpack('>BxxxL', data)
|
||||
- size = min(n, actual)
|
||||
- self.remain = actual - size
|
||||
-
|
||||
- return size
|
||||
-
|
||||
- def __repr__(self):
|
||||
- return "{cls}({stream})".format(cls=type(self).__name__,
|
||||
- stream=self.stream)
|
||||
-
|
||||
-
|
||||
-class Pump(object):
|
||||
- """
|
||||
- Stream pump class.
|
||||
-
|
||||
- A Pump wraps two Streams, reading from one and and writing its data into
|
||||
- the other, much like a pipe but manually managed.
|
||||
-
|
||||
- This abstraction is used to facilitate piping data between the file
|
||||
- descriptors associated with the tty and those associated with a container's
|
||||
- allocated pty.
|
||||
-
|
||||
- Pumps are selectable based on the 'read' end of the pipe.
|
||||
- """
|
||||
-
|
||||
- def __init__(self, from_stream, to_stream):
|
||||
- """
|
||||
- Initialize a Pump with a Stream to read from and another to write to.
|
||||
- """
|
||||
-
|
||||
- self.from_stream = from_stream
|
||||
- self.to_stream = to_stream
|
||||
-
|
||||
-
|
||||
- def fileno(self):
|
||||
- """
|
||||
- Returns the `fileno()` of the reader end of the Pump.
|
||||
-
|
||||
- This is useful to allow Pumps to function with `select()`.
|
||||
- """
|
||||
-
|
||||
- return self.from_stream.fileno()
|
||||
-
|
||||
-
|
||||
- def set_blocking(self, value):
|
||||
- return self.from_stream.set_blocking(value)
|
||||
-
|
||||
-
|
||||
- def flush(self, n=4096):
|
||||
- """
|
||||
- Flush `n` bytes of data from the reader Stream to the writer Stream.
|
||||
-
|
||||
- Returns the number of bytes that were actually flushed. A return value
|
||||
- of zero is not an error.
|
||||
-
|
||||
- If EOF has been reached, `None` is returned.
|
||||
- """
|
||||
-
|
||||
- try:
|
||||
- return self.to_stream.write(self.from_stream.read(n))
|
||||
- except OSError as e:
|
||||
- if e.errno != errno.EPIPE:
|
||||
- raise e
|
||||
-
|
||||
- def __repr__(self):
|
||||
- return "{cls}(from={from_stream}, to={to_stream})".format(
|
||||
- cls=type(self).__name__,
|
||||
- from_stream=self.from_stream,
|
||||
- to_stream=self.to_stream)
|
||||
diff --git a/fig/packages/dockerpty/pty.py b/fig/packages/dockerpty/pty.py
|
||||
deleted file mode 100644
|
||||
index 4e11ca0..0000000
|
||||
--- a/fig/packages/dockerpty/pty.py
|
||||
+++ /dev/null
|
||||
@@ -1,235 +0,0 @@
|
||||
-# dockerpty: pty.py
|
||||
-#
|
||||
-# Copyright 2014 Chris Corbyn <chris@w3style.co.uk>
|
||||
-#
|
||||
-# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-# you may not use this file except in compliance with the License.
|
||||
-# You may obtain a copy of the License at
|
||||
-#
|
||||
-# http://www.apache.org/licenses/LICENSE-2.0
|
||||
-#
|
||||
-# Unless required by applicable law or agreed to in writing, software
|
||||
-# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-# See the License for the specific language governing permissions and
|
||||
-# limitations under the License.
|
||||
-
|
||||
-import sys
|
||||
-import signal
|
||||
-from ssl import SSLError
|
||||
-
|
||||
-from . import io
|
||||
-from . import tty
|
||||
-
|
||||
-
|
||||
-class WINCHHandler(object):
|
||||
- """
|
||||
- WINCH Signal handler to keep the PTY correctly sized.
|
||||
- """
|
||||
-
|
||||
- def __init__(self, pty):
|
||||
- """
|
||||
- Initialize a new WINCH handler for the given PTY.
|
||||
-
|
||||
- Initializing a handler has no immediate side-effects. The `start()`
|
||||
- method must be invoked for the signals to be trapped.
|
||||
- """
|
||||
-
|
||||
- self.pty = pty
|
||||
- self.original_handler = None
|
||||
-
|
||||
-
|
||||
- def __enter__(self):
|
||||
- """
|
||||
- Invoked on entering a `with` block.
|
||||
- """
|
||||
-
|
||||
- self.start()
|
||||
- return self
|
||||
-
|
||||
-
|
||||
- def __exit__(self, *_):
|
||||
- """
|
||||
- Invoked on exiting a `with` block.
|
||||
- """
|
||||
-
|
||||
- self.stop()
|
||||
-
|
||||
-
|
||||
- def start(self):
|
||||
- """
|
||||
- Start trapping WINCH signals and resizing the PTY.
|
||||
-
|
||||
- This method saves the previous WINCH handler so it can be restored on
|
||||
- `stop()`.
|
||||
- """
|
||||
-
|
||||
- def handle(signum, frame):
|
||||
- if signum == signal.SIGWINCH:
|
||||
- self.pty.resize()
|
||||
-
|
||||
- self.original_handler = signal.signal(signal.SIGWINCH, handle)
|
||||
-
|
||||
-
|
||||
- def stop(self):
|
||||
- """
|
||||
- Stop trapping WINCH signals and restore the previous WINCH handler.
|
||||
- """
|
||||
-
|
||||
- if self.original_handler is not None:
|
||||
- signal.signal(signal.SIGWINCH, self.original_handler)
|
||||
-
|
||||
-
|
||||
-class PseudoTerminal(object):
|
||||
- """
|
||||
- Wraps the pseudo-TTY (PTY) allocated to a docker container.
|
||||
-
|
||||
- The PTY is managed via the current process' TTY until it is closed.
|
||||
-
|
||||
- Example:
|
||||
-
|
||||
- import docker
|
||||
- from dockerpty import PseudoTerminal
|
||||
-
|
||||
- client = docker.Client()
|
||||
- container = client.create_container(
|
||||
- image='busybox:latest',
|
||||
- stdin_open=True,
|
||||
- tty=True,
|
||||
- command='/bin/sh',
|
||||
- )
|
||||
-
|
||||
- # hijacks the current tty until the pty is closed
|
||||
- PseudoTerminal(client, container).start()
|
||||
-
|
||||
- Care is taken to ensure all file descriptors are restored on exit. For
|
||||
- example, you can attach to a running container from within a Python REPL
|
||||
- and when the container exits, the user will be returned to the Python REPL
|
||||
- without adverse effects.
|
||||
- """
|
||||
-
|
||||
-
|
||||
- def __init__(self, client, container):
|
||||
- """
|
||||
- Initialize the PTY using the docker.Client instance and container dict.
|
||||
- """
|
||||
-
|
||||
- self.client = client
|
||||
- self.container = container
|
||||
- self.raw = None
|
||||
-
|
||||
-
|
||||
- def start(self, **kwargs):
|
||||
- """
|
||||
- Present the PTY of the container inside the current process.
|
||||
-
|
||||
- This will take over the current process' TTY until the container's PTY
|
||||
- is closed.
|
||||
- """
|
||||
-
|
||||
- pty_stdin, pty_stdout, pty_stderr = self.sockets()
|
||||
-
|
||||
- mappings = [
|
||||
- (io.Stream(sys.stdin), pty_stdin),
|
||||
- (pty_stdout, io.Stream(sys.stdout)),
|
||||
- (pty_stderr, io.Stream(sys.stderr)),
|
||||
- ]
|
||||
-
|
||||
- pumps = [io.Pump(a, b) for (a, b) in mappings if a and b]
|
||||
-
|
||||
- if not self.container_info()['State']['Running']:
|
||||
- self.client.start(self.container, **kwargs)
|
||||
-
|
||||
- flags = [p.set_blocking(False) for p in pumps]
|
||||
-
|
||||
- try:
|
||||
- with WINCHHandler(self):
|
||||
- self._hijack_tty(pumps)
|
||||
- finally:
|
||||
- if flags:
|
||||
- for (pump, flag) in zip(pumps, flags):
|
||||
- io.set_blocking(pump, flag)
|
||||
-
|
||||
-
|
||||
- def israw(self):
|
||||
- """
|
||||
- Returns True if the PTY should operate in raw mode.
|
||||
-
|
||||
- If the container was not started with tty=True, this will return False.
|
||||
- """
|
||||
-
|
||||
- if self.raw is None:
|
||||
- info = self.container_info()
|
||||
- self.raw = sys.stdout.isatty() and info['Config']['Tty']
|
||||
-
|
||||
- return self.raw
|
||||
-
|
||||
-
|
||||
- def sockets(self):
|
||||
- """
|
||||
- Returns a tuple of sockets connected to the pty (stdin,stdout,stderr).
|
||||
-
|
||||
- If any of the sockets are not attached in the container, `None` is
|
||||
- returned in the tuple.
|
||||
- """
|
||||
-
|
||||
- info = self.container_info()
|
||||
-
|
||||
- def attach_socket(key):
|
||||
- if info['Config']['Attach{0}'.format(key.capitalize())]:
|
||||
- socket = self.client.attach_socket(
|
||||
- self.container,
|
||||
- {key: 1, 'stream': 1, 'logs': 1},
|
||||
- )
|
||||
- stream = io.Stream(socket)
|
||||
-
|
||||
- if info['Config']['Tty']:
|
||||
- return stream
|
||||
- else:
|
||||
- return io.Demuxer(stream)
|
||||
- else:
|
||||
- return None
|
||||
-
|
||||
- return map(attach_socket, ('stdin', 'stdout', 'stderr'))
|
||||
-
|
||||
-
|
||||
- def resize(self, size=None):
|
||||
- """
|
||||
- Resize the container's PTY.
|
||||
-
|
||||
- If `size` is not None, it must be a tuple of (height,width), otherwise
|
||||
- it will be determined by the size of the current TTY.
|
||||
- """
|
||||
-
|
||||
- if not self.israw():
|
||||
- return
|
||||
-
|
||||
- size = size or tty.size(sys.stdout)
|
||||
-
|
||||
- if size is not None:
|
||||
- rows, cols = size
|
||||
- try:
|
||||
- self.client.resize(self.container, height=rows, width=cols)
|
||||
- except IOError: # Container already exited
|
||||
- pass
|
||||
-
|
||||
-
|
||||
- def container_info(self):
|
||||
- """
|
||||
- Thin wrapper around client.inspect_container().
|
||||
- """
|
||||
-
|
||||
- return self.client.inspect_container(self.container)
|
||||
-
|
||||
-
|
||||
- def _hijack_tty(self, pumps):
|
||||
- with tty.Terminal(sys.stdin, raw=self.israw()):
|
||||
- self.resize()
|
||||
- while True:
|
||||
- _ready = io.select(pumps, timeout=60)
|
||||
- try:
|
||||
- if all([p.flush() is None for p in pumps]):
|
||||
- break
|
||||
- except SSLError as e:
|
||||
- if 'The operation did not complete' not in e.strerror:
|
||||
- raise e
|
||||
diff --git a/fig/packages/dockerpty/tty.py b/fig/packages/dockerpty/tty.py
|
||||
deleted file mode 100644
|
||||
index bd2ccb5..0000000
|
||||
--- a/fig/packages/dockerpty/tty.py
|
||||
+++ /dev/null
|
||||
@@ -1,130 +0,0 @@
|
||||
-# dockerpty: tty.py
|
||||
-#
|
||||
-# Copyright 2014 Chris Corbyn <chris@w3style.co.uk>
|
||||
-#
|
||||
-# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
-# you may not use this file except in compliance with the License.
|
||||
-# You may obtain a copy of the License at
|
||||
-#
|
||||
-# http://www.apache.org/licenses/LICENSE-2.0
|
||||
-#
|
||||
-# Unless required by applicable law or agreed to in writing, software
|
||||
-# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
-# See the License for the specific language governing permissions and
|
||||
-# limitations under the License.
|
||||
-
|
||||
-from __future__ import absolute_import
|
||||
-
|
||||
-import os
|
||||
-import termios
|
||||
-import tty
|
||||
-import fcntl
|
||||
-import struct
|
||||
-
|
||||
-
|
||||
-def size(fd):
|
||||
- """
|
||||
- Return a tuple (rows,cols) representing the size of the TTY `fd`.
|
||||
-
|
||||
- The provided file descriptor should be the stdout stream of the TTY.
|
||||
-
|
||||
- If the TTY size cannot be determined, returns None.
|
||||
- """
|
||||
-
|
||||
- if not os.isatty(fd.fileno()):
|
||||
- return None
|
||||
-
|
||||
- try:
|
||||
- dims = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, 'hhhh'))
|
||||
- except:
|
||||
- try:
|
||||
- dims = (os.environ['LINES'], os.environ['COLUMNS'])
|
||||
- except:
|
||||
- return None
|
||||
-
|
||||
- return dims
|
||||
-
|
||||
-
|
||||
-class Terminal(object):
|
||||
- """
|
||||
- Terminal provides wrapper functionality to temporarily make the tty raw.
|
||||
-
|
||||
- This is useful when streaming data from a pseudo-terminal into the tty.
|
||||
-
|
||||
- Example:
|
||||
-
|
||||
- with Terminal(sys.stdin, raw=True):
|
||||
- do_things_in_raw_mode()
|
||||
- """
|
||||
-
|
||||
- def __init__(self, fd, raw=True):
|
||||
- """
|
||||
- Initialize a terminal for the tty with stdin attached to `fd`.
|
||||
-
|
||||
- Initializing the Terminal has no immediate side effects. The `start()`
|
||||
- method must be invoked, or `with raw_terminal:` used before the
|
||||
- terminal is affected.
|
||||
- """
|
||||
-
|
||||
- self.fd = fd
|
||||
- self.raw = raw
|
||||
- self.original_attributes = None
|
||||
-
|
||||
-
|
||||
- def __enter__(self):
|
||||
- """
|
||||
- Invoked when a `with` block is first entered.
|
||||
- """
|
||||
-
|
||||
- self.start()
|
||||
- return self
|
||||
-
|
||||
-
|
||||
- def __exit__(self, *_):
|
||||
- """
|
||||
- Invoked when a `with` block is finished.
|
||||
- """
|
||||
-
|
||||
- self.stop()
|
||||
-
|
||||
-
|
||||
- def israw(self):
|
||||
- """
|
||||
- Returns True if the TTY should operate in raw mode.
|
||||
- """
|
||||
-
|
||||
- return self.raw
|
||||
-
|
||||
-
|
||||
- def start(self):
|
||||
- """
|
||||
- Saves the current terminal attributes and makes the tty raw.
|
||||
-
|
||||
- This method returns None immediately.
|
||||
- """
|
||||
-
|
||||
- if os.isatty(self.fd.fileno()) and self.israw():
|
||||
- self.original_attributes = termios.tcgetattr(self.fd)
|
||||
- tty.setraw(self.fd)
|
||||
-
|
||||
-
|
||||
- def stop(self):
|
||||
- """
|
||||
- Restores the terminal attributes back to before setting raw mode.
|
||||
-
|
||||
- If the raw terminal was not started, does nothing.
|
||||
- """
|
||||
-
|
||||
- if self.original_attributes is not None:
|
||||
- termios.tcsetattr(
|
||||
- self.fd,
|
||||
- termios.TCSADRAIN,
|
||||
- self.original_attributes,
|
||||
- )
|
||||
-
|
||||
- def __repr__(self):
|
||||
- return "{cls}({fd}, raw={raw})".format(
|
||||
- cls=type(self).__name__,
|
||||
- fd=self.fd,
|
||||
- raw=self.raw)
|
||||
diff --git a/tests/integration/cli_test.py b/tests/integration/cli_test.py
|
||||
index 0581e8b..369e6c8 100644
|
||||
--- a/tests/integration/cli_test.py
|
||||
+++ b/tests/integration/cli_test.py
|
||||
@@ -129,13 +129,13 @@ class CLITestCase(DockerClientTestCase):
|
||||
|
||||
self.assertEqual(old_ids, new_ids)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_service_without_links(self, mock_stdout):
|
||||
self.command.base_dir = 'tests/fixtures/links-figfile'
|
||||
self.command.dispatch(['run', 'console', '/bin/true'], None)
|
||||
self.assertEqual(len(self.project.containers()), 0)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_service_with_links(self, __):
|
||||
self.command.base_dir = 'tests/fixtures/links-figfile'
|
||||
self.command.dispatch(['run', 'web', '/bin/true'], None)
|
||||
@@ -144,14 +144,14 @@ class CLITestCase(DockerClientTestCase):
|
||||
self.assertEqual(len(db.containers()), 1)
|
||||
self.assertEqual(len(console.containers()), 0)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_with_no_deps(self, __):
|
||||
self.command.base_dir = 'tests/fixtures/links-figfile'
|
||||
self.command.dispatch(['run', '--no-deps', 'web', '/bin/true'], None)
|
||||
db = self.project.get_service('db')
|
||||
self.assertEqual(len(db.containers()), 0)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_does_not_recreate_linked_containers(self, __):
|
||||
self.command.base_dir = 'tests/fixtures/links-figfile'
|
||||
self.command.dispatch(['up', '-d', 'db'], None)
|
||||
@@ -167,7 +167,7 @@ class CLITestCase(DockerClientTestCase):
|
||||
|
||||
self.assertEqual(old_ids, new_ids)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_without_command(self, __):
|
||||
self.command.base_dir = 'tests/fixtures/commands-figfile'
|
||||
self.check_build('tests/fixtures/simple-dockerfile', tag='figtest_test')
|
||||
@@ -191,7 +191,7 @@ class CLITestCase(DockerClientTestCase):
|
||||
[u'/bin/true'],
|
||||
)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_service_with_entrypoint_overridden(self, _):
|
||||
self.command.base_dir = 'tests/fixtures/dockerfile_with_entrypoint'
|
||||
name = 'service'
|
||||
@@ -206,7 +206,7 @@ class CLITestCase(DockerClientTestCase):
|
||||
u'/bin/echo helloworld'
|
||||
)
|
||||
|
||||
- @patch('fig.packages.dockerpty.start')
|
||||
+ @patch('dockerpty.start')
|
||||
def test_run_service_with_environement_overridden(self, _):
|
||||
name = 'service'
|
||||
self.command.base_dir = 'tests/fixtures/environment-figfile'
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer>
|
||||
<email>alunduil@gentoo.org</email>
|
||||
<name>Alex Brandt</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
</longdescription>
|
||||
</pkgmetadata>
|
@ -1,6 +1,6 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/ganeti/ganeti-2.11.5.ebuild,v 1.1 2014/08/29 20:52:43 chutzpah Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/ganeti/ganeti-2.11.5-r1.ebuild,v 1.1 2014/10/27 09:51:37 pinkbyte Exp $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=(python2_{6,7})
|
@ -0,0 +1,66 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-haskell/haskell-platform/haskell-platform-2013.2.0.0-r2.ebuild,v 1.1 2014/10/27 13:31:46 mjo Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
DESCRIPTION="The Haskell Platform"
|
||||
HOMEPAGE="http://haskell.org/platform"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+doc profile +X"
|
||||
|
||||
RDEPEND=">=dev-haskell/async-2.0.1.4:=[profile?]
|
||||
>=dev-haskell/attoparsec-0.10.4.0:=[profile?]
|
||||
>=dev-haskell/case-insensitive-1.0.0.1:=[profile?]
|
||||
>=dev-haskell/cgi-3001.1.7.5:=[profile?]
|
||||
>=dev-haskell/fgl-5.4.2.4:=[profile?]
|
||||
>=dev-haskell/hashable-1.1.2.5:=[profile?]
|
||||
>=dev-haskell/haskell-src-1.0.1.5:=[profile?]
|
||||
>=dev-haskell/html-1.0.1.2:=[profile?]
|
||||
>=dev-haskell/http-4000.2.8:=[profile?]
|
||||
>=dev-haskell/hunit-1.2.5.2:=[profile?]
|
||||
>=dev-haskell/mtl-2.1.2:=[profile?]
|
||||
>=dev-haskell/network-2.4.1.2:=[profile?]
|
||||
>=dev-haskell/parallel-3.2.0.3:=[profile?]
|
||||
>=dev-haskell/parsec-3.1.3:=[profile?]
|
||||
>=dev-haskell/primitive-0.5.0.1:=[profile?]
|
||||
>=dev-haskell/quickcheck-2.6:2=[profile?]
|
||||
>=dev-haskell/random-1.0.1.1:=[profile?]
|
||||
>=dev-haskell/regex-base-0.93.2:=[profile?]
|
||||
>=dev-haskell/regex-compat-0.95.1:=[profile?]
|
||||
>=dev-haskell/regex-posix-0.95.2:=[profile?]
|
||||
>=dev-haskell/split-0.2.2:=[profile?]
|
||||
>=dev-haskell/stm-2.4.2:=[profile?]
|
||||
>=dev-haskell/syb-0.4.0:=[profile?]
|
||||
>=dev-haskell/text-0.11.3.1:=[profile?]
|
||||
>=dev-haskell/transformers-0.3.0.0:=[profile?]
|
||||
>=dev-haskell/unordered-containers-0.2.3.0:=[profile?]
|
||||
>=dev-haskell/vector-0.10.0.1:=[profile?]
|
||||
>=dev-haskell/xhtml-3000.2.1:=[profile?]
|
||||
>=dev-haskell/zlib-0.5.4.1:=[profile?]
|
||||
X? (
|
||||
>=dev-haskell/gluraw-1.3.0.0:=[profile?]
|
||||
>=dev-haskell/glut-2.4.0.0:=[profile?]
|
||||
>=dev-haskell/opengl-2.8.0.0:=[profile?]
|
||||
>=dev-haskell/openglraw-1.3.0.0:=[profile?]
|
||||
)
|
||||
>=dev-lang/ghc-7.6.2:=
|
||||
>=dev-haskell/alex-3.0.5
|
||||
>=dev-haskell/cabal-1.16.0.3
|
||||
>=dev-haskell/cabal-install-1.16.0.3
|
||||
>=dev-haskell/happy-1.18.10
|
||||
>=dev-haskell/hscolour-1.19
|
||||
doc? ( >=dev-haskell/haddock-2.13.2 )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use X; then
|
||||
elog "The haskell platform includes the 3D graphics libraries opengl and glut."
|
||||
elog "To install opengl and glut requires the X use flag."
|
||||
fi
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-haskell/haskell-platform/haskell-platform-2013.2.0.0.ebuild,v 1.1 2013/05/26 04:02:58 gienah Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
DESCRIPTION="The Haskell Platform"
|
||||
HOMEPAGE="http://haskell.org/platform"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="profile X"
|
||||
|
||||
RDEPEND=">=dev-haskell/async-2.0.1.4:=[profile?]
|
||||
>=dev-haskell/attoparsec-0.10.4.0:=[profile?]
|
||||
>=dev-haskell/case-insensitive-1.0.0.1:=[profile?]
|
||||
>=dev-haskell/cgi-3001.1.7.5:=[profile?]
|
||||
>=dev-haskell/fgl-5.4.2.4:=[profile?]
|
||||
>=dev-haskell/hashable-1.1.2.5:=[profile?]
|
||||
>=dev-haskell/haskell-src-1.0.1.5:=[profile?]
|
||||
>=dev-haskell/html-1.0.1.2:=[profile?]
|
||||
>=dev-haskell/http-4000.2.8:=[profile?]
|
||||
>=dev-haskell/hunit-1.2.5.2:=[profile?]
|
||||
>=dev-haskell/mtl-2.1.2:=[profile?]
|
||||
>=dev-haskell/network-2.4.1.2:=[profile?]
|
||||
>=dev-haskell/parallel-3.2.0.3:=[profile?]
|
||||
>=dev-haskell/parsec-3.1.3:=[profile?]
|
||||
>=dev-haskell/primitive-0.5.0.1:=[profile?]
|
||||
>=dev-haskell/quickcheck-2.6:=[profile?]
|
||||
>=dev-haskell/random-1.0.1.1:=[profile?]
|
||||
>=dev-haskell/regex-base-0.93.2:=[profile?]
|
||||
>=dev-haskell/regex-compat-0.95.1:=[profile?]
|
||||
>=dev-haskell/regex-posix-0.95.2:=[profile?]
|
||||
>=dev-haskell/split-0.2.2:=[profile?]
|
||||
>=dev-haskell/stm-2.4.2:=[profile?]
|
||||
>=dev-haskell/syb-0.4.0:=[profile?]
|
||||
>=dev-haskell/text-0.11.3.1:=[profile?]
|
||||
>=dev-haskell/transformers-0.3.0.0:=[profile?]
|
||||
>=dev-haskell/unordered-containers-0.2.3.0:=[profile?]
|
||||
>=dev-haskell/vector-0.10.0.1:=[profile?]
|
||||
>=dev-haskell/xhtml-3000.2.1:=[profile?]
|
||||
>=dev-haskell/zlib-0.5.4.1:=[profile?]
|
||||
X? (
|
||||
>=dev-haskell/gluraw-1.3.0.0:=[profile?]
|
||||
>=dev-haskell/glut-2.4.0.0:=[profile?]
|
||||
>=dev-haskell/opengl-2.8.0.0:=[profile?]
|
||||
>=dev-haskell/openglraw-1.3.0.0:=[profile?]
|
||||
)
|
||||
>=dev-lang/ghc-7.6.2:=
|
||||
>=dev-haskell/alex-3.0.5
|
||||
>=dev-haskell/cabal-1.16.0.3
|
||||
>=dev-haskell/happy-1.18.10
|
||||
>=dev-haskell/hscolour-1.19
|
||||
>=dev-haskell/haddock-2.13.2"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use X; then
|
||||
elog "The haskell platform includes the 3D graphics libraries opengl and glut."
|
||||
elog "To install opengl and glut requires the X use flag."
|
||||
fi
|
||||
}
|
@ -0,0 +1 @@
|
||||
DIST camlbz2-0.6.0.tar.gz 57771 SHA256 8154b4e4699c48e14b4dd56cf839a0c10345e9860eb967066be040d432ae7388 SHA512 1052536bb08c9d9f9bdf4a063a5a01389445b55117ce423dd1732de00cd79db5e4befb4ce5c81c5db8a6d40b28a2ac4b897bb00598fdccf76ea92a2966592680 WHIRLPOOL fbd669e47b9401ddb02f15f26c1b519ebc9c0beb618878704638e41e406c815c708f631f59a1d643023d2bb834b137e60ed74f8fd6a60f0d046dcc5ac56a9945
|
@ -0,0 +1,27 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ml/camlbz2/camlbz2-0.6.0.ebuild,v 1.2 2014/10/27 09:44:28 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit findlib
|
||||
|
||||
DESCRIPTION="OCaml bindings for libbz (AKA, bzip2)"
|
||||
HOMEPAGE="http://camlbz2.forge.ocamlcore.org/"
|
||||
SRC_URI="http://forge.ocamlcore.org/frs/download.php/72/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="doc"
|
||||
|
||||
DEPEND="app-arch/bzip2
|
||||
>=dev-lang/ocaml-3.12:=[ocamlopt]"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
src_install() {
|
||||
findlib_src_preinst
|
||||
emake DESTDIR="${OCAMLFIND_DESTDIR}" install
|
||||
dodoc ChangeLog README ROADMAP BUGS
|
||||
use doc && dohtml doc/*
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>ml</herd>
|
||||
</pkgmetadata>
|
@ -1 +1,2 @@
|
||||
DIST findlib-1.4.tar.gz 231526 SHA256 6e4065e5d79d31176ec213ff94599c4eae17c3904c2896e845d0379a99f1bdf8 SHA512 7ee5bee74f6fc14c8d85496e673d42b63e056d35a724fe4f78fd1010a5af4506a9a962c0403fd96d5bf51f2278bfbe98a60aad65a171803cbde935cc3889157b WHIRLPOOL 31f1d0b9f1605a9a536ae996fb4abe5e1d5c47012759cb7bb45185d58a81e827d80285628b113f79d51b8b260cdff181c3eb05596adeea9a87070994058fce17
|
||||
DIST findlib-1.5.5.tar.gz 240247 SHA256 aafaba4f7453c38347ff5269c6fd4f4c243ae2bceeeb5e10b9dab89329905946 SHA512 051817ae897a53b705ad641ae7e9010474f2320d3cc7cfd15edc9345f50566932cb44bf6f45772260706b5f9e9e91194802600c770c9c96f772985678db7209d WHIRLPOOL f1ad9b77c1f38f6d733f2a17c14649d4ca9f05215b5fa8124e71dc3e05b229c34af10415471d56964384c1fe0b0b0db453638d7e1238af916e5ff854b931cd76
|
||||
|
@ -0,0 +1,70 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ml/findlib/findlib-1.5.5.ebuild,v 1.1 2014/10/27 08:40:50 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit multilib
|
||||
|
||||
DESCRIPTION="OCaml tool to find/use non-standard packages"
|
||||
HOMEPAGE="http://projects.camlcity.org/projects/findlib.html"
|
||||
SRC_URI="http://download.camlcity.org/download/${P}.tar.gz"
|
||||
IUSE="doc +ocamlopt tk"
|
||||
|
||||
LICENSE="MIT"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
|
||||
DEPEND=">=dev-lang/ocaml-3.10:=[ocamlopt?,tk?]"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
ocamlfind_destdir="${EPREFIX}/usr/$(get_libdir)/ocaml"
|
||||
stublibs="${ocamlfind_destdir}/stublibs"
|
||||
|
||||
src_configure() {
|
||||
local myconf
|
||||
use tk && myconf="-with-toolbox"
|
||||
./configure -bindir "${EPREFIX}"/usr/bin -mandir "${EPREFIX}"/usr/share/man \
|
||||
-sitelib ${ocamlfind_destdir} \
|
||||
-config ${ocamlfind_destdir}/findlib/findlib.conf \
|
||||
-no-custom \
|
||||
${myconf} || die "configure failed"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake all
|
||||
if use ocamlopt; then
|
||||
emake opt # optimized code
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake prefix="${D}" install
|
||||
|
||||
dodir "${stublibs#${EPREFIX}}"
|
||||
|
||||
cd "${S}/doc"
|
||||
dodoc QUICKSTART README DOCINFO
|
||||
use doc && dohtml -r ref-html guide-html
|
||||
}
|
||||
|
||||
check_stublibs() {
|
||||
local ocaml_stdlib=`ocamlc -where`
|
||||
local ldconf="${ocaml_stdlib}/ld.conf"
|
||||
|
||||
if [ ! -e ${ldconf} ]
|
||||
then
|
||||
echo "${ocaml_stdlib}" > ${ldconf}
|
||||
echo "${ocaml_stdlib}/stublibs" >> ${ldconf}
|
||||
fi
|
||||
|
||||
if [ -z `grep -e ${stublibs} ${ldconf}` ]
|
||||
then
|
||||
echo ${stublibs} >> ${ldconf}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
check_stublibs
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST ocaml-ssl-0.4.6.tar.gz 118798 SHA256 1ff7fbc77bb5ec7b6bfdca045c6c7a51d4d98ed60a865f29e06dd91285ac9499 SHA512 fe3626b985ad1fc18b65dcadd8155520814e1bbc6425fb3612919591d2a09a7be01ce31734d7e789c554053fb0de748aa872bfd53a2069496bd165014f9207c8 WHIRLPOOL 2c8eb40fe375261ef1fae1d2333236fd28ceee1e7b469d0573e6f72c6586d07dcd3e96d44a35b457b181a3a27f01267d232a61ce25e6dc4e5145fd5c982e9672
|
||||
DIST ocaml-ssl-0.4.7.tar.gz 119209 SHA256 e9beb2b32ea15dababf6b674c25bbb63044114779860c655ad7d581056421244 SHA512 6f740e87ef4b560cba71af57855de72737bd34f9fd4f57c9a6674caf32a417957269c83fadc41adbd661287553fef9e97951d821945f940700e48e922a951d0e WHIRLPOOL 38530d6aab3d82f5397c42ac50f33b47c1596e0862d090dad7fad410ac8ed823cd2454242d99d851c40c49f7b036a3159602a64edb3fc1b5c455b3357f7ac054
|
||||
|
@ -0,0 +1,35 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ml/ocaml-ssl/ocaml-ssl-0.4.7.ebuild,v 1.1 2014/10/27 08:34:19 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit findlib eutils
|
||||
|
||||
IUSE="doc"
|
||||
|
||||
DESCRIPTION="OCaml bindings for OpenSSL"
|
||||
SRC_URI="mirror://sourceforge/savonet/${P}.tar.gz"
|
||||
HOMEPAGE="http://savonet.sourceforge.net"
|
||||
|
||||
DEPEND="dev-libs/openssl
|
||||
>=dev-lang/ocaml-3.10:="
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
SLOT="0/${PV}"
|
||||
LICENSE="LGPL-2.1"
|
||||
KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
|
||||
|
||||
src_compile() {
|
||||
emake -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
findlib_src_preinst
|
||||
emake install
|
||||
|
||||
if use doc; then
|
||||
dohtml -r doc/html/*
|
||||
fi
|
||||
dodoc CHANGES README
|
||||
}
|
@ -0,0 +1 @@
|
||||
DIST parmap-1.0_rc5.tar.gz 97061 SHA256 3aa4e4d856d112a12d806c9a76d0f00f6d57ef06b8b329e657aef6bff51f889f SHA512 96c3dfbbbc62675b6575caaed46bac324ea184f80ebdd65998368072fd119d1ccf558bfd24ad89c143725f1bee363f27b4d57afc84bde538669392ac07efb311 WHIRLPOOL 4832b6dab32e234647e6deee027121d0a019c142b0f842ff257df2078e44b94dcbab5049a7077e43d19f9e3732c168cd1adebeba8135d692a237e5807b15c825
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>ml</herd>
|
||||
</pkgmetadata>
|
@ -0,0 +1,39 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ml/parmap/parmap-1.0_rc5.ebuild,v 1.1 2014/10/27 09:25:33 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit multilib
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
DESCRIPTION="Library allowing to exploit multicore architectures for OCaml programs with minimal modifications"
|
||||
HOMEPAGE="http://www.dicosmo.org/code/parmap/"
|
||||
SRC_URI="https://github.com/rdicosmo/parmap/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2-with-linking-exception"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="+ocamlopt"
|
||||
|
||||
RDEPEND=">=dev-lang/ocaml-3.12:=[ocamlopt?]"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-ml/findlib"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
src_test() {
|
||||
emake tests
|
||||
cd _build/tests || die
|
||||
for i in $(find . -type f -executable) ; do
|
||||
${i} || die
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake \
|
||||
OCAMLLIBDIR="$(get_libdir)/ocaml" \
|
||||
MANDIR="${ED}/usr/share/man/man3o" \
|
||||
DESTDIR="${ED}/usr" \
|
||||
install
|
||||
dodoc AUTHORS ChangeLog README
|
||||
}
|
@ -1,2 +1 @@
|
||||
DIST Sub-Install-0.925.tar.gz 14432 SHA256 a65a6e87b2f886ea9bbe3ac5a62ae98a7ff3f8139c0b92e727c2a7cb2d618ce9 SHA512 e43f5989f595df986c3d6cb75f4e2aa29a52f55d2b7cc042565758a460b5b627441f174b8111e19d4b87bfd138826bf8618ded7cf953d619f7d19746c79400ef WHIRLPOOL e6ad88758e1f3ead9dfac225975f27128795f547bf1fad8854c8f6ec49ee66dcc8156ae7c37b6112845deb60765b3aa1e470f142e8e3dcb82b91d97f2e922b4a
|
||||
DIST Sub-Install-0.926.tar.gz 15065 SHA256 acb2496643784976fe8edebc7b412e9a93f6f0825631f5bd9186c810aed1763e SHA512 c536e1ace79ce8c6bd4a6e580cc2e181671b54f07cef231a84094c854779aee556de4b2ff0a95f0e6a8aca87f77a6e19d148071a48fe5c6e9c0ca15314f0c9cc WHIRLPOOL f45c0ae8d1aa7e58c79d363691c3741baaf0a29df6af9e0f1d3a3643abacf93d8379e6127c4316f81b100d1bada8ada90e612cc2991fb4edf67cc9ae47453ad3
|
||||
|
@ -1,24 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Sub-Install/Sub-Install-0.925.0.ebuild,v 1.9 2014/10/19 21:26:33 dilfridge Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
MODULE_AUTHOR=RJBS
|
||||
MODULE_VERSION=0.925
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="install subroutines into packages easily"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 ~arm hppa ~ia64 ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~x86-freebsd ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND=""
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
dev-perl/Test-Pod
|
||||
dev-perl/Test-Pod-Coverage
|
||||
)"
|
||||
|
||||
SRC_TEST=do
|
@ -1,8 +1 @@
|
||||
DIST testify-0.3.0.tar.gz 57882 SHA256 1182efebb3e9ff6c46ea4fe9761b732282bb3557099cc780cc3d4de64d6407e7 SHA512 36e5f8aff152ac9aa3bc98e5e615b9605cdff53d4aa977960025cc633dde6514dec3efa0d581b5ed2b8e852539a0935a82529423754a54bc987b75ef7fb624c3 WHIRLPOOL 2a728f534dd00d72ea8a691e540846c49bf7bcc0978043099ff6776aa233597148ad9b58abb52aa6ac02af20e41be0bc774a6ff4223269b7b379c710e5e6f42e
|
||||
DIST testify-0.3.1.tar.gz 59494 SHA256 a7a1e233ffd85f9272b463d83bedc7e6cf0d03b156c63219eaa6a2a954df69da SHA512 03a9084ec29b1cacfa9e47d208869f57322703da8eec3b2e4eb398716378179ba18090851bf8a1142d89f3df586de9d164b0022a043310358ce7defefc54a8cf WHIRLPOOL 327a1a811aa356c3dbab6c2e0840c007490dbd0395545f00d97fd9e17e6c399d783b8ca8be2fee1cd6fd520b48d542b80fb6836562382f4a442e38edf2020d20
|
||||
DIST testify-0.3.2.tar.gz 61003 SHA256 a461a1d0e62a2921000e0a9321040a1fb13a32167807db38c945a264355bb822 SHA512 2b4d6fe2ffbfadb28c0c02ab6182296af563c2dd220482cfa800ad04acaffde42dfb6024d17a838c711d14eb64e2f5f2f7e441806b1ffcccc16dd87b807c5a75 WHIRLPOOL a04bcf1320b42c72a1c298aa37c32241bf7cf4fe336b6c6321a00efcab6d170fdbbbb31aaac4e2f55096512a2458a550d03390baffacd1bf77bc2520a634ca4e
|
||||
DIST testify-0.3.3.tar.gz 62149 SHA256 686c06ec91e80387919ecd7bf713ebfb2f3917db2c6d71f24e94b72de43f7a05 SHA512 5760710fb6dcd8127b7a7a4f31d023c50fbc77831ad037a8728672528bef53728bc7246ddb911404533eaa4953650b87ab4b07aeaa656f280ff32bbed64c7629 WHIRLPOOL 3d74318c75e4c72f083be910f5dc776b37be1a3eb115de528b9344ac6500287e6de154632b446cdcae6f686a51974695a90ed91d3345cee7e7a00f0561857a10
|
||||
DIST testify-0.3.4.tar.gz 64194 SHA256 c66eaeca1778812864acb7ab830cf74c0566ee7e687f286f9c9c5d9f91096d8f SHA512 08579c51ceeac502f044d5c32582158d55de4499dbdf0edb4a907de8d74d65cac1bf8b3650a67dc188dc9f1e17ef210031348aea6716009ae2948a01eca836b6 WHIRLPOOL dcc743426fab00cd3217a3d1735160c3e37529873adf64aca3a56b3a9c53db3a6b76a1fd81dc3b686706462630b82cde4527a2830e759d8c96d20e3d4f4f7618
|
||||
DIST testify-0.3.5.tar.gz 67790 SHA256 cc080515ee427dd0f31d74dba034893ef8d6512427f78f94df0cf3cefa15c997 SHA512 74508f8a4616648694bd1f8fc9da49e46a93ccc603336f11128d4f7c1964f0f0837f2b42a43ea15f7ff388be703a21a5df97ead2f408702e40cbc80509947ce3 WHIRLPOOL 746c601f3c59d0f2b31f6ffe5c1a28282574559a0d845ddcb3c87b1fb6ef63bfb3d1c46b3c1eb322b1a1e91f395a1eeccd1eb2c99b21e936ff132c6c04120d5b
|
||||
DIST testify-0.3.6.tar.gz 76466 SHA256 2d54128f611eeba89547fc89cdabd4f9472f4a390e002650d79135c06540be66 SHA512 ac6ee0df6afcf7c938c7936f97a0fc9c5e405aab6c876ca544b4d1006623c36e95dde7f5e8ef968fc04dd280a0d986c74c2ed054b72d02efaa56a60033559dce WHIRLPOOL 5f0a56761aa9266f41d823718b32033974b65c3783a75e4c6bc7911e20810aeb545db15b5b2e9db389ae7b0ee137e16ecb0f866ee118266070dc0e939a94cde0
|
||||
DIST testify-0.3.7.tar.gz 77149 SHA256 c5ab4e61e001340da2e97c74b62c08ad884d73526471be90a0d307d6dc58a54c SHA512 6b00b221b98cd0ded632c6be9e890ddbf5d355296d4d49e8f0826e25d6980df1e223c64cf1f7dc88dee189a42c0ca0c690eaf1a20edcfd9a645dd832eee02f63 WHIRLPOOL 4173151f5e92bb1d3814f95fae4401f29b8905d0839a3909a5a3192a9c2d4c4263c9c54adc0c7607a76a9bd6391003d633615808c8a18459bc823a8589d98d5a
|
||||
DIST testify-0.5.6.tar.gz 100331 SHA256 22b8a55bf273efcc12397cab74dc7d80ec530d02fc110957f7bae5c4dbecc025 SHA512 7e59386893e41f6ee1f598fb433d90b370522e715572ea1abe759ae12f079f83a5ee40dd5dd612fa761911f0c8411eb6fb2ef31c4883ae1e04ffaf5fe03c71df WHIRLPOOL e7c109ecff3c3a906906a6de9ec6052aab2aa9d56ab9263aeb62000b8e06c2d8f56ad1c23fbe385dc8b116b131aeaa5217e2a62da5dec5852be9cee85abd8551
|
||||
|
@ -1,37 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.0.ebuild,v 1.2 2014/05/20 15:16:08 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python{2_6,2_7} )
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]
|
||||
|| ( dev-lang/python:2.7 dev-lang/python:2.6 dev-python/simplejson )"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
src_prepare_all() {
|
||||
# Rm rogue test, Bug #438032
|
||||
rm -f test/plugins//http_reporter_test.py
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.1.ebuild,v 1.1 2014/05/20 15:16:08 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
src_prepare_all() {
|
||||
# Rm rogue test, Bug #438032
|
||||
rm -f test/plugins//http_reporter_test.py
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.2.ebuild,v 1.1 2014/05/26 08:10:39 patrick Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
RESTRICT="test"
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
src_prepare_all() {
|
||||
# Rm rogue test, Bug #438032
|
||||
rm -f test/plugins//http_reporter_test.py
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.3.ebuild,v 1.1 2014/06/03 10:53:39 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
RESTRICT="test" # basically broken
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
src_prepare_all() {
|
||||
# Rm rogue test, Bug #438032
|
||||
rm -f test/plugins//http_reporter_test.py
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.4.ebuild,v 1.1 2014/06/17 06:35:30 patrick Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
RESTRICT="test" # basically broken
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
src_prepare_all() {
|
||||
# Rm rogue test, Bug #438032
|
||||
rm -f test/plugins//http_reporter_test.py
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.5.ebuild,v 1.1 2014/07/24 10:12:30 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
RESTRICT="test" # basically very broken
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
|
||||
DOCS="README.md"
|
||||
|
||||
python_prepare_all() {
|
||||
# Correct typo in setup.py
|
||||
sed -e 's:mock,:mock:' -i setup.py || die
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/testify/testify-0.3.6.ebuild,v 1.1 2014/08/28 16:46:43 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
#RESTRICT="test" # basically very broken
|
||||
|
||||
inherit distutils-r1 vcs-snapshot
|
||||
|
||||
DESCRIPTION="A more pythonic replacement for the unittest module and nose"
|
||||
HOMEPAGE="https://github.com/Yelp/testify http://pypi.python.org/pypi/testify/"
|
||||
SRC_URI="https://github.com/Yelp/${PN}/tarball/${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/sqlalchemy[${PYTHON_USEDEP}]
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
www-servers/tornado[${PYTHON_USEDEP}]"
|
||||
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( ${RDEPEND} )"
|
||||
# There is another undocumented dep req'd for the testsuite; catbox
|
||||
DOCS="README.md"
|
||||
|
||||
python_prepare_all() {
|
||||
# Correct typo in setup.py
|
||||
sed -e 's:mock,:mock:' -i setup.py || die
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# https://github.com/Yelp/Testify/issues/283
|
||||
"${PYTHON}" bin/${PN} test || die
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-python/webtest/webtest-2.0.16.ebuild,v 1.1 2014/10/27 12:35:27 idella4 Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python{2_7,3_3,3_4} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_PN="WebTest"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="Helper to test WSGI applications"
|
||||
HOMEPAGE="http://pythonpaste.org/webtest/ http://pypi.python.org/pypi/WebTest"
|
||||
SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86"
|
||||
IUSE="doc test"
|
||||
|
||||
#nose<1.3.0
|
||||
RDEPEND="
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
>=dev-python/waitress-0.8.5[${PYTHON_USEDEP}]
|
||||
>=dev-python/webob-1.2[${PYTHON_USEDEP}]
|
||||
dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
|
||||
dev-python/lxml[${PYTHON_USEDEP}]"
|
||||
DEPEND="${RDEPEND}
|
||||
app-arch/unzip
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
|
||||
test? ( dev-python/nose[${PYTHON_USEDEP}]
|
||||
dev-python/pyquery[${PYTHON_USEDEP}]
|
||||
dev-python/pastedeploy[${PYTHON_USEDEP}]
|
||||
dev-python/wsgiproxy2[${PYTHON_USEDEP}]
|
||||
dev-python/coverage[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep 'dev-python/mock[${PYTHON_USEDEP}]' python2_7 )
|
||||
)"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# Makes testing easier; otherwise we get errors from pkg_resources.
|
||||
DISTUTILS_IN_SOURCE_BUILD=1
|
||||
|
||||
python_prepare_all() {
|
||||
# Prevent un-needed d'loading during doc build
|
||||
sed -s 's:intersphinx_mapping:_&:' -i docs/conf.py || die
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
if use doc; then
|
||||
sphinx-build docs html || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
DISTUTILS_NO_PARALLEL_BUILD=1 distutils-r1_src_test
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# Tests raise ImportErrors with our default PYTHONPATH.
|
||||
local -x PYTHONPATH=
|
||||
nosetests || die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
use doc && local HTML_DOCS=( html/. )
|
||||
distutils-r1_python_install_all
|
||||
}
|
@ -0,0 +1,229 @@
|
||||
--- a/tclpython.c 2006-03-07 16:28:03.000000000 +0300
|
||||
+++ b/tclpython.c 2014-05-06 23:33:41.713623943 +0400
|
||||
@@ -19,13 +19,83 @@
|
||||
$ cc -fpic -I/usr/local/include/tcltk/tcl8.3 -c tclthread.c
|
||||
$ ld -o tclpython.so -Bshareable -L/usr/X11R6/lib -L/usr/local/lib -L/usr/local/share/python/config tclpython.o tclthread.o -lpython -lutil -lreadline -ltermcap -lcrypt -lgmp -lgdbm -lpq -lz -ltcl83 -ltk83 -lX11
|
||||
|
||||
+Patched for Python 3 with respect to https://github.com/facebook/fbthrift/blob/master/thrift/lib/py/protocol/fastbinary.c
|
||||
+
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
#include <tcl.h>
|
||||
-#include <cStringIO.h>
|
||||
+
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ #define PyInt_FromLong PyLong_FromLong
|
||||
+ #define PyInt_AsLong PyLong_AsLong
|
||||
+ #define PyString_FromStringAndSize PyBytes_FromStringAndSize
|
||||
+#else
|
||||
+ #include <cStringIO.h>
|
||||
+#endif
|
||||
+
|
||||
#include "tclpython.h"
|
||||
|
||||
+// Mostly copied from cStringIO.c
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+
|
||||
+/** io module in python3. */
|
||||
+static PyObject* Python3IO;
|
||||
+
|
||||
+typedef struct {
|
||||
+ PyObject_HEAD
|
||||
+ char *buf;
|
||||
+ Py_ssize_t pos, string_size;
|
||||
+} IOobject;
|
||||
+
|
||||
+#define IOOOBJECT(O) ((IOobject*)(O))
|
||||
+
|
||||
+static int
|
||||
+IO__opencheck(IOobject *self) {
|
||||
+ if (!self->buf) {
|
||||
+ PyErr_SetString(PyExc_ValueError,
|
||||
+ "I/O operation on closed file");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static PyObject *
|
||||
+IO_cgetval(PyObject *self) {
|
||||
+ if (!IO__opencheck(IOOOBJECT(self))) return NULL;
|
||||
+ assert(IOOOBJECT(self)->pos >= 0);
|
||||
+ return PyBytes_FromStringAndSize(((IOobject*)self)->buf,
|
||||
+ ((IOobject*)self)->pos);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/* -- PYTHON MODULE SETUP STUFF --- */
|
||||
+
|
||||
+static PyObject *pythonTclEvaluate(PyObject *self, PyObject *args);
|
||||
+
|
||||
+static PyMethodDef tclMethods[] = {
|
||||
+ {"eval", pythonTclEvaluate, METH_VARARGS, "Evaluate a Tcl script."},
|
||||
+ {0, 0, 0, 0} /* sentinel */
|
||||
+};
|
||||
+
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+struct module_state {
|
||||
+ PyObject *error;
|
||||
+};
|
||||
+
|
||||
+static struct PyModuleDef TclModuleDef = {
|
||||
+ PyModuleDef_HEAD_INIT,
|
||||
+ "tcl",
|
||||
+ NULL,
|
||||
+ sizeof(struct module_state),
|
||||
+ tclMethods,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ NULL
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
#ifndef WIN32
|
||||
/* George Petasis, 21 Feb 2006:
|
||||
* The following check cannot be handled correctly
|
||||
@@ -66,13 +136,13 @@
|
||||
|
||||
static int pythonInterpreter(ClientData clientData, Tcl_Interp *interpreter, int numberOfArguments, Tcl_Obj * CONST arguments[])
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
PyObject *output;
|
||||
PyObject *message;
|
||||
PyObject *result;
|
||||
PyObject *globals;
|
||||
char *string = 0;
|
||||
- int length;
|
||||
+ Py_ssize_t length;
|
||||
Tcl_Obj *object;
|
||||
struct Tcl_HashEntry *entry;
|
||||
unsigned evaluate;
|
||||
@@ -111,12 +181,22 @@
|
||||
/* choose start token depending on whether this is an evaluation or an execution: */
|
||||
result = PyRun_String(Tcl_GetString(arguments[2]), (evaluate? Py_eval_input: Py_file_input), globals, globals);
|
||||
if (result == 0) { /* an error occured */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ output = PyObject_CallMethod(Python3IO, "BytesIO", "()");
|
||||
+#else
|
||||
output = PycStringIO->NewOutput(1024); /* use a reasonable initial size but big enough to handle most cases */
|
||||
- PySys_SetObject("stderr", output); /* capture all interpreter error output */
|
||||
+#endif
|
||||
+ PySys_SetObject("sys.stderr", output); /* capture all interpreter error output */
|
||||
PyErr_Print(); /* so that error is printed on standard error, redirected above */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ message = IO_cgetval(output);
|
||||
+ string = PyBytes_AsString(message);
|
||||
+ length = (string == NULL) ? 0 : strlen(string);
|
||||
+#else
|
||||
message = PycStringIO->cgetvalue(output);
|
||||
string = PyString_AsString(message);
|
||||
length = PyString_Size(message);
|
||||
+#endif
|
||||
if ((length > 0) && (string[length - 1] == '\n')) length--; /* eventually remove trailing new line character */
|
||||
object = Tcl_NewObj();
|
||||
Tcl_AppendStringsToObj(object, Tcl_GetString(arguments[0]), ": ", 0); /* identify interpreter in error */
|
||||
@@ -124,7 +204,11 @@
|
||||
Py_DECREF(output);
|
||||
} else {
|
||||
if (evaluate) {
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ string = PyUnicode_AsUTF8(PyObject_Str(result));
|
||||
+#else
|
||||
string = PyString_AsString(PyObject_Str(result));
|
||||
+#endif
|
||||
object = Tcl_NewStringObj(string, -1); /* return evaluation result */
|
||||
} else /* execute */
|
||||
object = Tcl_NewObj(); /* always return an empty result or an error */
|
||||
@@ -139,9 +223,9 @@
|
||||
|
||||
Tcl_Interp *tclInterpreter(CONST char *name) /* public function for use in extensions to this extension */
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
|
||||
- if ((sscanf(name, "tcl%u", &identifier) == 0) || (identifier != 0)) {
|
||||
+ if ((sscanf(name, "tcl%lu", &identifier) == 0) || (identifier != 0)) {
|
||||
return 0; /* invalid name */
|
||||
} else {
|
||||
return mainInterpreter; /* sole available interpreter */
|
||||
@@ -188,14 +272,9 @@
|
||||
return Py_BuildValue("s", result);
|
||||
}
|
||||
|
||||
-static PyMethodDef tclMethods[] = {
|
||||
- {"eval", pythonTclEvaluate, METH_VARARGS, "Evaluate a Tcl script."},
|
||||
- {0, 0, 0, 0} /* sentinel */
|
||||
-};
|
||||
-
|
||||
static int newInterpreter(Tcl_Interp *interpreter)
|
||||
{
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
Tcl_Obj *object;
|
||||
int created;
|
||||
#ifdef WITH_THREAD
|
||||
@@ -214,19 +293,31 @@
|
||||
return TCL_ERROR;
|
||||
} else {
|
||||
Py_Initialize(); /* initialize main interpreter */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ Python3IO = PyImport_ImportModule("io");
|
||||
+#else
|
||||
PycString_IMPORT;
|
||||
+#endif
|
||||
}
|
||||
Tcl_SetHashValue(Tcl_CreateHashEntry(&threadStates, (ClientData)identifier, &created), 0);
|
||||
#else
|
||||
if (existingInterpreters == 0) {
|
||||
Py_Initialize(); /* initialize main interpreter */
|
||||
PyEval_InitThreads(); /* initialize and acquire the global interpreter lock */
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ Python3IO = PyImport_ImportModule("io");
|
||||
+#else
|
||||
PycString_IMPORT;
|
||||
+#endif
|
||||
globalState = PyThreadState_Swap(0); /* save the global thread */
|
||||
} else {
|
||||
PyEval_AcquireLock(); /* needed in order to be able to create a new interpreter */
|
||||
}
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ if (Python3IO == 0) { /* make sure string input/output is properly initialized */
|
||||
+#else
|
||||
if (PycStringIO == 0) { /* make sure string input/output is properly initialized */
|
||||
+#endif
|
||||
Tcl_SetResult(interpreter, "fatal error: could not initialize Python string input/output module", TCL_STATIC);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
@@ -250,7 +341,11 @@
|
||||
newIdentifier++;
|
||||
#endif
|
||||
existingInterpreters++;
|
||||
+#if PY_MAJOR_VERSION >= 3
|
||||
+ tcl = PyModule_Create(&TclModuleDef);
|
||||
+#else
|
||||
tcl = Py_InitModule("tcl", tclMethods); /* add a new 'tcl' module to the python interpreter */
|
||||
+#endif
|
||||
Py_INCREF(tcl);
|
||||
PyModule_AddObject(PyImport_AddModule("__builtin__"), "tcl", tcl);
|
||||
return TCL_OK;
|
||||
@@ -260,7 +355,7 @@
|
||||
{
|
||||
int index;
|
||||
char *name;
|
||||
- int identifier;
|
||||
+ intptr_t identifier;
|
||||
struct Tcl_HashEntry *entry;
|
||||
Tcl_Obj *object;
|
||||
#ifdef WITH_THREAD
|
||||
@@ -270,7 +365,7 @@
|
||||
for (index = 0; index < numberOfArguments; index++) {
|
||||
name = Tcl_GetString(arguments[index]); /* interpreter name is "pythonN" */
|
||||
entry = 0;
|
||||
- if (sscanf(name, "python%u", &identifier) == 1) {
|
||||
+ if (sscanf(name, "python%lu", &identifier) == 1) {
|
||||
identifier = atoi(name + 6);
|
||||
entry = Tcl_FindHashEntry(&threadStates, (ClientData)identifier);
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST bibtex2html-1.97.tar.gz 94887 SHA256 99b5b66a729fd2928ee4d9d7d8397e36b684def4be9ee2746233006501c8e314 SHA512 001611bd763e4d91a926bc230341983b7feb1dd59687e1d64896607be54b206878ba4e163750b2d3f88e2e16cdac53a0e2ea70cc6e7ccf57262e368a7b067208 WHIRLPOOL d4531578214f4f21b44572750bdb7a69fa456303ee0876576b09f91504163b7aa3a72f30d6074a684634348d74a1dde7cc8fbcec31019be44b75835a0251b715
|
||||
DIST bibtex2html-1.98.tar.gz 92719 SHA256 e925a0b97bf87a14bcbda95cac269835cd5ae0173504261f2c60e3c46a8706d6 SHA512 7d8480ed87bef74a1e0c970446fba4d30b103df3e78f127a051efff875032ac7f52d3d6baab0c6a2fc67ca11f3d558d7be4439311934f99067993b5891ff6ad4 WHIRLPOOL e0a56cf31090012305140e11f46191a50d4949fbee1d179cdb9f56e216e5fcae05f60e4457de88cbc771a512f3b7b054a781ee604a1b25640eb810ff33224f1a
|
||||
|
@ -0,0 +1,58 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-tex/bibtex2html/bibtex2html-1.98.ebuild,v 1.1 2014/10/27 08:28:15 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils
|
||||
|
||||
IUSE="doc +ocamlopt"
|
||||
|
||||
DESCRIPTION="A bibtex to HTML converter"
|
||||
SRC_URI="http://www.lri.fr/~filliatr/ftp/bibtex2html/${P}.tar.gz"
|
||||
HOMEPAGE="http://www.lri.fr/~filliatr/bibtex2html/"
|
||||
|
||||
SLOT="0"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||
RESTRICT="test"
|
||||
|
||||
# With use doc we need a latex compiler to generate manual.pdf
|
||||
# hevea is used for manual.html
|
||||
# manual.tex needs fullpage.sty
|
||||
DEPEND=">=dev-lang/ocaml-3.10:=[ocamlopt?]
|
||||
doc? ( virtual/latex-base
|
||||
dev-texlive/texlive-latexextra
|
||||
dev-tex/hevea )"
|
||||
# We need tex-base for bibtex but also some bibtex styles, so we use latex-base
|
||||
RDEPEND="virtual/latex-base"
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}/${PN}-1.88-destdir.patch"
|
||||
# Avoid pre-stripped files
|
||||
sed -i -e "s/strip/true/" Makefile.in
|
||||
# For make install
|
||||
use ocamlopt || sed -i 's/= opt /= noopt /' Makefile.in
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export VARTEXFONTS="${T}/fonts"
|
||||
if use ocamlopt ; then
|
||||
emake opt
|
||||
else
|
||||
emake byte
|
||||
fi
|
||||
if use doc; then
|
||||
emake doc
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
dodoc README CHANGES
|
||||
if use doc; then
|
||||
dodoc manual.pdf
|
||||
dohtml manual.html
|
||||
fi
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST hevea-2.03.tar.gz 385865 SHA256 d927f538b47935f8b6cf34a817071195dfeb5da05debfd55ab47253c7868dab5 SHA512 dcb30992ff74935d92e6fdc4710bf8ee3b555e094673557e697531c3bff7155d6577349e2d80de21180abe5ea8d0ac1b4eaffcf217736477a33d8895ebd1aacc WHIRLPOOL 9d5c7a8cfb3f2fcffb90c09c0bfb43d50c0a7cd4cad8073de2b9640365e16613b202c76e8b35993f1a5dcecd7a215091597587a854fc8a8ff742ad0e04656e8e
|
||||
DIST hevea-2.18.tar.gz 407339 SHA256 be665556a62cc80d6e159c59b7f2e5137c0e104f49aa54eaf7b025935150feaf SHA512 bd0a5b4ff660309f62863765a4bf05d1a120cecb5ff88bae9261153472252702bf2cb1b8986d268fa8f827c6b316f5182c71051bc6169e0f1c11f016ee3145a5 WHIRLPOOL 7518eaf52650637ed5cc6cc41df37aa0d4a4db673fe261ad282e9b2f9c1c102b83dae0f35a1e7414a74043972a18b07e0c6162b7f06d7837b68a961a87e46392
|
||||
|
@ -0,0 +1,58 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-tex/hevea/hevea-2.18.ebuild,v 1.1 2014/10/27 08:31:15 aballier Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils multilib
|
||||
|
||||
IUSE="+ocamlopt"
|
||||
|
||||
DESCRIPTION="HeVeA is a quite complete and fast LaTeX to HTML translator"
|
||||
HOMEPAGE="http://hevea.inria.fr/"
|
||||
SRC_URI="http://hevea.inria.fr/distri/${P}.tar.gz"
|
||||
|
||||
LICENSE="QPL"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
|
||||
DEPEND=">=dev-lang/ocaml-3.12:=[ocamlopt?]"
|
||||
RDEPEND="${DEPEND}
|
||||
dev-texlive/texlive-latexextra"
|
||||
|
||||
src_compile() {
|
||||
rm -f config.sh
|
||||
emake PREFIX=/usr DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)/hevea" LATEXLIBDIR="/usr/share/texmf-site/tex/latex/hevea" config.sh || die "Failed to create config.sh"
|
||||
if use ocamlopt; then
|
||||
emake PREFIX=/usr || die "Failed to build native code binaries"
|
||||
else
|
||||
emake PREFIX=/usr TARGET=byte || die "Failed to build bytecode binaries"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if use ocamlopt; then
|
||||
emake DESTDIR="${D}" PREFIX=/usr install || die "Install failed"
|
||||
else
|
||||
emake DESTDIR="${D}" PREFIX=/usr TARGET=byte install || die "Install failed"
|
||||
fi
|
||||
|
||||
dodoc README CHANGES
|
||||
}
|
||||
|
||||
# If texmf-update is present this means we have a latex install; update it so
|
||||
# that hevea.sty can be found
|
||||
# Do not (r)depend on latex though because hevea does not need it itself
|
||||
# If latex is installed later, it will see hevea.sty
|
||||
|
||||
pkg_postinst() {
|
||||
if [ "$ROOT" = "/" ] && [ -x /usr/sbin/texmf-update ] ; then
|
||||
/usr/sbin/texmf-update
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if [ "$ROOT" = "/" ] && [ -x /usr/sbin/texmf-update ] ; then
|
||||
/usr/sbin/texmf-update
|
||||
fi
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST GNUMail-1.2.0.tar.gz 1380032 SHA256 792512276b253d79362736fb0cb7d614d5a980ea356d03d6adec4d0dd0f6ef2c SHA512 ef0c806e5550daa064a789633c3ecb87819c1e94667fc69fc52bc2923a6819ac6e7fc5262a74503c3554e79429c3d2163eeb68fd30adcfe59ba3aede7ee0a7cb WHIRLPOOL 8fb58c22ff2a2b0a8949aefcbe16c943287069e96d0ff0543156065c7d15e5c0b781497b7f6d3d01f609a3d2ff3010437bc5353ca233cc0b06a9d704374442df
|
||||
DIST GNUMail-1.2.2.tar.gz 1397764 SHA256 31a0c34c3afe20afb6b8ebc41002d2f9dbc2134ceda2032e67e64cb7d884d8af SHA512 3243c51eb177c1fabeeb894e6231e5ace09fb08fd0eb9d6311726bdebddc743e3b3958b4c00597e7eb97de7c2a25f1ca7e8f4111e7d543ecd65ee5f35bea89cc WHIRLPOOL 75dc05440ce08962cd5376d8faca143fb38dea77d4d6adec2e6a6eeffb2e9088b498404f6a80a1328200853b756b3215eb7049247a72a2972d7dec9390697dbe
|
||||
|
@ -0,0 +1,35 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/gnustep-apps/gnumail/gnumail-1.2.2.ebuild,v 1.1 2014/10/27 09:57:22 voyageur Exp $
|
||||
|
||||
EAPI=5
|
||||
inherit gnustep-2
|
||||
|
||||
MY_P=${P/gnum/GNUM}
|
||||
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
DESCRIPTION="A fully featured mail application for GNUstep"
|
||||
HOMEPAGE="http://www.collaboration-world.com/gnumail/"
|
||||
SRC_URI="http://download.gna.org/gnustep-nonfsf/${MY_P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="crypt"
|
||||
DEPEND=">=gnustep-base/gnustep-gui-0.11.0
|
||||
=gnustep-libs/pantomime-1.2*
|
||||
gnustep-apps/addresses"
|
||||
RDEPEND="crypt? ( app-crypt/gnupg )"
|
||||
|
||||
src_prepare() {
|
||||
sed -i -e 's|GNUMail_GUI_LIBS =|LIBRARIES_DEPEND_UPON +=|' \
|
||||
Framework/GNUMail/GNUmakefile || die "as-needed sed failed"
|
||||
use crypt || sed -i -e 's|Bundles/PGP||' \
|
||||
GNUmakefile || die "PGP bundle sed failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
gnustep-base_src_install
|
||||
dodoc "${S}"/Documentation/*
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
DIST ProjectCenter-0.6.0.tar.gz 498146 SHA256 78344a73595841c3d56be07ff25524524cac5fbfce58a538431cc124b2b96a7d SHA512 7e7992657dd6f4a1d9293199f94ecb25e82f9a30f8d83e33cd1a061186ba9e75cffd8860edd7f3946a680feaa4b16e96301e9d64874dc6ef9f39e5894a7620f6 WHIRLPOOL 85f31ff8d6fc889bde6dfd070ea6abda7317ea1e271777ce4df55a5634f322d9cb6cb72ae7db31ab7b30ab22b2f100fe56c7156115f82aa369194f4da449d74c
|
||||
DIST ProjectCenter-0.6.1.tar.gz 490466 SHA256 3dc72d29bb40bdea9382266045b419ae3c7d117329ea9e0263cf4553e1794ed2 SHA512 6c858f810c6563a185334e75fe7a3a3c58db51d69751b8d685d28e43bb311d7310c702435ab889eb7e53b6e46b8130bde51009f82c012b9cc7c7a2f74efd280b WHIRLPOOL 4e11e30db29c3de55faafd95bf8c94fae79849204b1430c69107e4e76b76a1c6f89976f4a6d6a934932bd88368c2f71221991768719977b1d3e0c129e37e40b6
|
||||
DIST ProjectCenter-0.6.2.tar.gz 492409 SHA256 c5104ae18511260f900c6de6cca0bcf39361da1866499102bf2a90e2f05d9473 SHA512 91e6712fa03fcb7b6e8239f64ddf89dabb1b4c54f4799204e8e535c9c6ad430a5e98644e28af5b9727a0b5b57a866b4e0837f09e8aedfac863673508a7c67a78 WHIRLPOOL 930e7405570a70eb564852e68573e847f684a2f64715fe8448fcf0d3b4220f154a9cd947bc0fb2e7a0755f572130d0f83346c3e4cad912b744988491d0846140
|
||||
|
@ -1,67 +0,0 @@
|
||||
http://svn.gna.org/viewcvs/gnustep?view=revision&revision=32788
|
||||
* Modules/Parsers/ProjectCenter/PCParser.m [-parse]: Move the
|
||||
selector and IMP definitions inside the method. Global IMP caching
|
||||
is always wrong! And this broke compilation with llvm.
|
||||
|
||||
http://svn.gna.org/viewcvs/gnustep?view=revision&revision=33818
|
||||
use setAllowedFileTypes method instead of private method which was removed
|
||||
|
||||
--- apps/projectcenter/trunk/Modules/Parsers/ProjectCenter/PCParser.m 2011/04/06 18:40:59 32787
|
||||
+++ apps/projectcenter/trunk/Modules/Parsers/ProjectCenter/PCParser.m 2011/04/06 18:46:03 32788
|
||||
@@ -124,23 +124,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static SEL selString = @selector(string:);
|
||||
-static SEL selNumber = @selector(number:);
|
||||
-static SEL selSpaceAndNewLine = @selector(spaceAndNewLine:);
|
||||
-static SEL selInvisible = @selector(invisible:);
|
||||
-static SEL selSymbol = @selector(symbol:);
|
||||
-
|
||||
-static void (*impString)(id, SEL, id);
|
||||
-static void (*impNumber)(id, SEL, id);
|
||||
-static void (*impSpaceAndNewLine)(id, SEL, unichar);
|
||||
-static void (*impInvisible)(id, SEL, unichar);
|
||||
-static void (*impSymbol)(id, SEL, unichar);
|
||||
-
|
||||
- (void)parse
|
||||
{
|
||||
unsigned int i, start, end;
|
||||
CodeType startType, endType;
|
||||
NSString *out;
|
||||
+ SEL selString = @selector(string:);
|
||||
+ SEL selNumber = @selector(number:);
|
||||
+ SEL selSpaceAndNewLine = @selector(spaceAndNewLine:);
|
||||
+ SEL selInvisible = @selector(invisible:);
|
||||
+ SEL selSymbol = @selector(symbol:);
|
||||
+ void (*impString)(id, SEL, id);
|
||||
+ void (*impNumber)(id, SEL, id);
|
||||
+ void (*impSpaceAndNewLine)(id, SEL, unichar);
|
||||
+ void (*impInvisible)(id, SEL, unichar);
|
||||
+ void (*impSymbol)(id, SEL, unichar);
|
||||
|
||||
NSLog(@"CodeParser begin...");
|
||||
|
||||
--- apps/projectcenter/trunk/Framework/PCAddFilesPanel.m 2011/09/08 05:59:20 33817
|
||||
+++ apps/projectcenter/trunk/Framework/PCAddFilesPanel.m 2011/09/08 13:05:29 33818
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
|
||||
|
||||
- Copyright (C) 2004 Free Software Foundation
|
||||
+ Copyright (C) 2004-2011 Free Software Foundation
|
||||
|
||||
Authors: Serg Stoyan
|
||||
+ Riccardo Mottola
|
||||
|
||||
This file is part of GNUstep.
|
||||
|
||||
@@ -93,7 +94,7 @@
|
||||
{
|
||||
NSString *path = nil;
|
||||
|
||||
- ASSIGN(_fileTypes, fileTypes);
|
||||
+ [super setAllowedFileTypes: fileTypes];
|
||||
|
||||
path = [_browser path];
|
||||
[self validateVisibleColumns];
|
@ -1 +1 @@
|
||||
DIST cal3d-0.11.0.tar.gz 568532 RMD160 309ee70ff378f679f87934c29308284c435fba79 SHA1 9579ef107a21091ce7e421d8779e9bf8bcd3333f SHA256 fc4a6fe311004987377ec80b804a04aab44c32085fd974d275aa9d0b14144b06
|
||||
DIST cal3d-0.11.0.tar.gz 568532 SHA256 fc4a6fe311004987377ec80b804a04aab44c32085fd974d275aa9d0b14144b06 SHA512 4dc4b36b8f18760bfe6f8c80cbd941c14e2ebe596d0cd514fdb1ae4175bf2706e125665272d67ff21d33bb4b34e7be22bad9c00d488c1da21f442550bf3f204f WHIRLPOOL cf6f1343556a97fe743482d6f34d147c7a68e77daf5f1ca7b4958da4b3cdd3e1c807b4eaaff7c26428e5e999733fc20c82b25ddc7dc56ae6ca58a92b61645457
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- tests/Makefile.am.old 2014-10-27 12:14:44.534607920 +0100
|
||||
+++ tests/Makefile.am 2014-10-27 12:16:00.825891248 +0100
|
||||
@@ -14,7 +14,7 @@
|
||||
EXTRA_DIST = \
|
||||
$(wildcard cal3d_converter/base.??f)
|
||||
|
||||
-TESTS_ENVIRONMENT = sh ./run
|
||||
+LOG_COMPILER = sh ./run
|
||||
TESTS = converter/skeleton converter/mesh converter/material converter/animation
|
||||
|
||||
.PHONY: ${TESTS}
|
@ -1 +1 @@
|
||||
Mon, 27 Oct 2014 08:07:01 +0000
|
||||
Mon, 27 Oct 2014 15:37:01 +0000
|
||||
|
@ -1 +1 @@
|
||||
Mon, 27 Oct 2014 08:07:01 +0000
|
||||
Mon, 27 Oct 2014 15:37:01 +0000
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue