ruby 1.8, ruby 1.9, and jruby.
One major change for all ports is that RDoc documentation is no longer
going to be installed by default for gem ports. For ruby 1.8, it used
a separate documentation file per method, and the file names created
weren't consistent across ruby versions (1.8.6 differed from 1.8.7,
and 1.8.7 differs from 1.9.2 and jruby). It made reviewing diffs very
painful, and since most ruby developers do not use the documentation
(preferring web documentation), it doesn't make sense to include them.
For most gem ports, a ruby 1.9 version can be built by using
the ruby19 FLAVOR, and a jruby version can be build using the jruby
FLAVOR. These flavors modify the FULLPKGNAME to use either the
ruby19- or jruby- package stem, so you don't need to worry about
the ruby 1.8 package conflicting.
In most cases, you no longer need the PKGNAME set in the port
Makefile, as the FULLPKGNAME handling will take care of that for you.
Also, for pure ruby gems (without C extensions), PKG_ARCH = * is added
automatically.
Changes to all dependent ports will be committed shortly. For new
ruby ports, you need to make sure that gem dependencies are specified
like this (assuming they depend on the hoe gem):
:${MODRUBY_PKG_PREFIX}-hoe-*:devel/ruby-hoe,${FLAVOR}
MODRUBY_PKG_PREFIX will be ruby for ruby 1.8 ports, ruby19 for ruby
1.9 ports, and jruby for jruby ports. The ,${FLAVOR} part at the end
makes sure that dependencies use the same version of ruby that
the current port uses.
PLISTs are going to become a lot smaller with this. However, any
binaries installed by the gem need to have a special string added.
For example, the minitar binary installed by
archivers/ruby-archive-tar-minitar looks like this in the PLIST:
${GEM_BIN}/minitar${GEM_BIN_SUFFIX}
The ${GEM_BIN_SUFFIX} needs to be added manually so the package
works on ruby 1.9, which installs the binaries with a 19 suffix.
GEM_SKIPDEPENDS has been removed and related support will be removed
from devel/ruby-gems. To modify dependencies inside the gem, the gem
metadata is placed under WRKDIST and can be modified with the standard
patching procedure.
OK landry@
hs-glib (and probably other stuff that uses the Cabal library).
Bump both -main and -doc (yes, really, -doc, too).
I hereby nominate myself for the HSMAUS (Homer Simpson Memorial
Award of Unlimited Stupidity).
libraries not coming together with ghc. This allows for looking up
a library's PKGPATH by running
ghc-pkg field $pkgname pkgpath
where $pkgname is the GHC library name without the `hs-' prefix,
for example `ghc-paths'.
looks good to jasper@
cabal and without nort), to avoid collisions with other (non-Haskell)
ports;
- Documentation is installed as ${PREFIX}/share/doc/hs-$foo instead of
${PREFIX}/share/doc/$foo.
- The library itself (and its interface files) is installed as
${PREFIX}/lib/ghc/$foo instead of ${PREFIX}/lib/$foo.
- Additional files will be installed in ${PREFIX}/share/hs-$foo instead
of ${PREFIX}/share/foo.
from kili@
depending port's plists will be adjusted in a few
performance increases and ruby 1.8.7 support. ffi support now works in
simple cases. It now works on amd64 as well. I'm taking over
maintenance from bernd@.
ok landry
Also, if CONFIGURE_STYLE includes ext or extconf, update WANTLIB
and LIB_DEPENDS, and set SHARED_ONLY=Yes. That configure style
is only used for ruby C extensions, which need those settings.
This cleans up a lot of ruby C extension ports, which will be
committed shortly.
ok landry, phessler, sthen
automatically change from scripts from using /usr/bin/env python or
/usr/bin/python to using #!${MODPY_BIN} .
Add a MODPY_ADJ_FILES in which you can put the files that are under
${WRKSRC} you want to subtitute the shebang.
e.g.
MODPY_ADJ_FILES= setup.py bin/foobar.py.in
Some input from djm@
"sane idea to me" jasper, ok sthen@
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
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.
perl command that accepts filename arguments and modifies the common
/usr/bin/env ruby shebang to ${RUBY}. MODRUBY_ADJ_FILES is a short
cut that allows you to set filename patterns and have
MODRUBY_RUBY_ADJ called on all files in ${WRKSRC} that match that
pattern. It adds a pre-configure action to do so, if a pre-configure
action is not already defined. If a pre-configure action is already
defined, you can call the replacement command with
${MODRUBY_ADJ_REPLACE}.
ok sthen, landry
for gems with native extensions. Without this, it calls
/usr/bin/install -o root -g bin as a regular user, which fails due
to permission issues. This removes the -o root -g bin, so it can
succeed as a regular user.
This same patch was recently added to devel/ruby-gems, which is
specific to ruby 1.8. ruby 1.9 ships with ruby-gems, so the
patch needs to be included here as well.
OK landry@
All ruby .gem files are now hosted on rubygems.org in the same
directory. If the ruby gem CONFIGURE_STYLE is used, make the
default MASTER_SITES that directory.
There are still a few uses of MASTER_SITE_RUBYFORGE in the tree, for
some ports that aren't gems, or where the .gem file isn't hosted on
rubygems.org, or where the hashes don't match. Most of these will be
dealt with in the near future.
OK landry@
Haskell-Source with Extensions (HSE, haskell-src-exts) is an extension
of the standard haskell-src package, and handles most registered
syntactic extensions to Haskell, including:
* Multi-parameter type classes with functional dependencies
* Indexed type families (including associated types)
* Empty data declarations
* GADTs
* Implicit parameters
* Template Haskell
[..]
feedback/ok kili@
1.9, similar to how the lang/python ports are handled. ruby 1.8
now installs as ruby18 and ruby 1.9 installs as ruby19. The
included MESSAGE files for both ports let you know the symlinks to
set up if you want to make that version the default system ruby.
Split port originally started by bernd@, many changes since by me,
help and support from jcs@, landry@, jasper@, and sthen@.
This causes a large amount of fallout in dependent ruby ports,
which will be committed shortly.
OK jcs@, landry@, jasper@, sthen@
built with python versions previous to 2.6.
- Simplify MODPY_BADEGGS.
- Fake setuptools if MODPY_SETUPTOOLS is not present to detect those ports
that will build regardless but the resulting plist will be different.
Input, tested and ok by many, thanks!
the stm package), which is no longer possible, because TMVar is deriving
Eq now. So move the (somewhat crude) comparision based on addressOf (which
comes from the hs-pugs-compat package) into Pugs.AST.Types, providing an
explicit Eq instance for VThread.
IMHO, instance declarations for standard type classes on types imported
from other Haskell packages are evil.
Breakage noticed by naddy@.
While here, update WANTLIB and bump.