1) The wrapper erroneously used the ghc-pkg flag "--package-db" instead of
"--global-package-db". The result was that packages installed locally in
~/.ghc and ~/.cabal were invisible to GHC. This has been fixed.
2) The wrapper now deals gracefully with an empty package set: if no package
is requested to be included in the wrapped environment, the wrapper just
installs a pristine GHC.
3) Correctly configure the "docdir" path returned by ghc-paths.
4) Added some comments that describe the idea behind our ghc-paths patches and
gives users same sample shell code that can be used to import our special
environment variables into the currently running shell, so that programs
outside of the wrapped environment can use them, too.
- It now uses JavaScript for configuration (only),
so I had to "convert" config for NetworkManager.
- I tested suspend/restart/(un)mount on KDE/Xfce,
Phreedom tested NetworkManager config conversion.
The default setting for extraLibs used to be the set of modules that come with
python by default but aren't usually enabled in our standard python derivation
because they require additional libraries. This meant that users who want to
*add* libraries to that set had to use a fairly complicated override, to add
more entries without loosing the ones set by default.
After this patch, the "standard libraries" such as "curses' are listed in
stdLibs while the extraLibs argument remains empty by default. This allows
users to override extraLibs without overriding the standard libraries.
Furthermore, the wrapper environment can be messed around with in an
additional 'postBuild' step. One nice application of this build step is
to patch scripts and binaries to use the wrapped python interpreter
instead of the pristine one, thereby enabling them to pick up all
modules that have been configured. The following example shows how this
is done for the 'pylint' utility:
pkgs.python27Full.override {
extraLibs = [pkgs.pylint];
postBuild = ''
cd ${pkgs.pylint}/bin
for i in *; do
rm $out/bin/$i
sed -r -e "s|^exec |exec $out/bin/python -- |" <$i >$out/bin/$i
chmod +x $out/bin/$i
done;
'';
};
The ghcWithPackage expression now has an argument 'ignoreCollisions' that
allows users to disable the path collision check like so:
(pkgs.haskellPackages.ghcWithPackages (pkgs: with pkgs; [ haskellPlatform ])).override { ignoreCollisions = true; };
See d64917ad17
for a long and detailed discussion of why these path collisions may occur.
Haskell packages -- i.e. packages built by our Cabal builder -- invariably have
the attributes 'pname' and 'version'. We use the absence of these attributes to
recognize non-Haskell packages and filter them from the closed package set
generated by closePropagation. We do this so that the generated Haskell
environment won't contain paths like "/lib/libz.a", which are part of the
closure but have nothing to do with Haskell.
The previous scheme used the attribute 'ghc' to accomplish the same thing, but
unfortunately other packages to contain a 'ghc' attribute, too, like the
old-style ghc-wrapper. Including the ghc-wrapper in this environment is
pointless, obviously. The new approach filters the ghc-wrapper successfully.
This uses a patch from Gentoo to disable Java support for now, as it is
not needed for supporting Mixxx (which is the package I'm preparing).
Hopefully, the patch will be applied upstream so we can safely drop it
here.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
To prevent multiple Qt libraries when developing with a custom one, the Qt
support can now be activated by directly supplying the Qt libraries as an
argument (qtLib).
qtSDK and qtFull users/developers now just have to define an override such
as the following one in order to use it inside their development
environment:
vtk.override { qtLib = qt4SDK; };
The previous behavior is still the same for vtk and vtkWithQt4 end-users.
Change-Id: I517762d4ff7de46d32cc46e6e725fd62737caa52
* There now is full support for building Haskell packages as shared libraries
for GHC versions 7.4.2 or later. The Cabal builder recognizes the following
attributes:
- enableSharedLibraries configures Cabal to build of shared libraries in
addition to static ones. This option requires that all dependencies of
the package have been compiled for use in shared libraries, too.
- enableSharedExecutables configures Cabal to prefer shared libraries when
linking executables.
The default values for these attributes are arguments to the haskellPackages
expression.
* Haskell builds now run in a LANG="en_US.UTF-8" environment to avoid plenty
of build and test suite errors. Without this setting, GHC seems unable to
deal with the UTF-8 character encoding that's generally considered standard
in the Haskell world.
* The Cabal builder supports a new attribute 'testTarget' to specify the exact
set of tests to be run during the check phase.
* The ghc-wrapper attribute ghcVersion has been removed. Instead, we use the
ghc.version attribute, which exists in unwrapped GHC derivations, too.
xc3sprog is command-line tools for programming FPGAs, microcontrollers
and PROMs via JTAG.
Homepage: http://xc3sprog.sourceforge.net/
I'm using the latest from subversion as xc3sprog doesn't seem to make
proper releases. There are only a few seemingly random snapshots at
sourceforge. And these snapshots are built binary packages, not source
archives.
NOTE: I haven't tested this on any hardware yet.
Consider this as a first step towards the integration of Qt5 into nixpkgs,
it does not yet intends to replace Qt4 on every packages even if possible.
My goal here is to have a first derivation in common between people who
needs qt5 for development purposes.
The derivation has been written from scratch but I took care to read at the
version 4 to re-integrate some patches which are still compatible. However,
I did not had enough time to test gtkStyle and flashplayerFix as I do not
use any of them. Also, OSX users will have to do some extra work because
I do not have any mac.
Finally, as some configure flags have changed and in an hope to provide a
clear package definition before it becomes mature, I voluntary added some
flags which are default. Once every option will be mastered, we will just
have to redo a pass on qt5 configure flags and remove the ones which are
set by default.
Apply a fix which prevented to use -DGL_GLEXT_LEGACY, -Werror and -Wundef
to be used together. This produced a build fail on any software meeting
these requirements.
To give the ability to use a different Qt version than the default one
(which can build 3 different times Qt Libraries if we mixed the default
one, the qtcreator one and the version including all the examples and the
docs).
Right now a developer can choose to directly install the QtSDK which
includes a "full" (developerBuild + docs + examples) Qt version and uses
it to build QtCreator.
The possibility to only install QtCreator and its previous behavior has
been kept for flexibility purposes (we do not need to force someone on the
SDK approach).