build them during the build stage and install them during fake.
devel/ruby-gems doesn't have separate build and install commands, as
most gems are pure ruby code and don't need a separate build stage.
When ruby-gems is installing a gem with C extensions, it builds them
during the install. Since installing is done during the fake stage,
this meant that the extensions were getting built as root.
Previously, this was required, as gem's --user-install option was
broken. However, since that option has now been fixed, we use
it to install the gem to a temporary location as the current
user during build, and then mv and chown the files during fake.
Thanks to bernd@ for pointing out that the fixed --user-install
option allowed this.
ok landry
attempting to create all intermediate directories and rescuing failures,
don't attempt to create directories that already exist. Fixes systrace
warnings when building ruby ports.
ok landry
The lockfile package exports a LockFile class which provides a simple API for
locking files. Unlike the Windows msvcrt.locking function, the fcntl.lockf
and flock functions, and the deprecated posixfile module, the API is
identical across both Unix (including Linux and Mac) and Windows platforms.
The lock mechanism relies on the atomic nature of the link (on Unix) and
mkdir (on Windows) system calls. An implementation based on SQLite is also
provided, more as a demonstration of the possibilities it provides than as
production-quality code.
we set MODPY_BUILDDEP=No, whilst providing PYTHON via CONFIGURE_ENV. this
lead configure to believe there actually was a python present on the system.
which wasn't, so set MODPY_BUILDDEP=Yes and adjust REGRESS_DEPENDS accordingly
ok aja@ landry@
meant to be used on archs that have gcc4 in base, this doesn't require a
full gcc build from ports, and provides libgfortran as a subpackage.
idea from espie some months ago.
Redis is an advanced key-value store. It is similar to memcached
but the dataset is not volatile, and values can be strings, exactly
like in memcached, but also lists, sets, and ordered sets. All this
data types can be manipulated with atomic operations to push/pop
elements, add/remove elements, perform server side union, intersection,
difference between sets, and so forth.
In order to be very fast but at the same time persistent the whole
dataset is taken in memory, and from time to time saved on disc
asynchronously (semi persistent mode) or alternatively every change
is written into an append only file (fully persistent mode).
OK sthen@, landry@