The packages "which" and "ncurses" are needed for building pygobject3
(on darwin) during the checkPhase. The ncurses library is necessary only
because python3.5 is currently built using "-lncurses" and pygobject3
wants the same libraries that python3.5 was compiled with. (Because it
uses "python3.5-config --ldflags" during the build)
I don't know why the builder uses `lndir ${dbus-python} $out`,
but this commit should work around the problem caused by
dbus-python starting to propagate some inputs.
This one was already merged into release-16.09, so let's not have the
stable branch is ahead of master and confuse things. In addition to
that, currently we have an odd situation that master has less things
actually finished building than in staging.
Conflicts:
pkgs/data/documentation/man-pages/default.nix
In the pygobject package of pythonPackages the codegen python files are
executable and get wrapped, which causes pygtk to not build because it
uses the python program to execute them. The attached patch makes them
not executable so they do not get wrapped and cause pygtk to fail its
build.
From 931b7998658fa72323c9a76e7b336fe726a9cc61 Mon Sep 17 00:00:00 2001
From: Karn Kallio <kkallio@skami.org>
Date: Fri, 2 Sep 2016 15:30:42 -0400
Subject: [PATCH] pygobject: prevent wrapping of codegen/*.py files.
Revert a revert of a merge that shouldn't have been in master but was intentionally in staging.
Next time I'll do this right after the revert instead of so far down the line...
This reverts commit 9adad8612b.
See #11567.
Furthermore, it renames pythonPackages.dbus to pythonPackages.dbus-
python as that's the name upstream uses.
There is a small rebuild but I couldn't figure out the actual cause.
Both python3 and setuptools come with easy-install. For some magic
reason this hasn't caused any collisions yet, but it does with #17428.
We hereby prioritize the version that comes with setuptools.
Newer 'mutagen' versions have a test suite that trips over missing
encoding in this file. The file is copied to source trees at build time
with the name nix_run_setup.py.
Sets the `basedirlist` option in setup.cfg such that distutils does not search
for headers and libraries in `/usr`, and `/usr/local`.
Otherwise the build can fail on non-NixOS machines, see #15993.
In line with the Nixpkgs manual.
A mechanical change, done with this command:
find pkgs -name "*.nix" | \
while read f; do \
sed -e 's/description\s*=\s*"\([a-z]\)/description = "\u\1/' -i "$f"; \
done
I manually skipped some:
* Descriptions starting with an abbreviation, a user name or package name
* Frequently generated expressions (haskell-packages.nix)
Currently, if a user tries to to set a variable that contains
spaces, it will be broken up before being passed to wrapProgram.
This commit resolves that by converting makeWrapperArgs to an
array that preserves any quoted elements using bash's parser.
The config.py script doesn't seem to cope very well with symlinks, so
let's pass it the right derivation outputs wherever possible and fall
back to drv.out.
I've disabled the tests because they somehow now seem to cause the build
to fail even though the tests failed *before* the merge of the
closure-size branch, but the whole build didn't fail regardless.
Here is a build from before the closure-size branch merge:
http://hydra.nixos.org/build/34367296
If you have a look at the build log, you already see a bunch of failing
tests (to be exact: the same set of tests that are failing now with the
fix of the preConfigure phase).
Other than that, the build now succeeds on my machine.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Commit 0055c6a introduced a new preConfigure hook that sets the right
qmake path. Unfortunately the mkDerivation attributes of pyqt5 override
the whole configurePhase, so this hook isn't run at all.
This fixes the build of pyqt5 and it now successfully compiles on my
machine.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
I think what's happening is that the linker automatically adds DT_NEEDED dependencies to some libraries because it finds these libraries are being used directly, but
because they're not linked explicitly with -lflags, the gcc wrapper does not add them to RUNPATH.
Rewrite dlopening stuff in hacky way (due ctypes.util totally brokennes:
it attempt to use /sbin/ldconfig, gcc from PATH and other tricks to
detect sonames, I replaced it with simple table lookup)
Also I add patch to bypass another rounding regression in tests
(this patch submitted upstream as well)
Fixes#12663: problems in python stuff due to old timestamps in sources.
- Files in sources older than a certain year are set to that year.
- Applied with 1980 for all python packages due to the way it often uses zip.
(cherry picked from staging commit e4ab8aee62)
Fixes#12663: problems in python stuff due to old timestamps in sources.
- Files in sources older than a certain year are set to that year.
- Applied with 1980 for all python packages due to the way it often uses zip.
Update to latest setuptools. Latest setuptools will always try to run tests.
This can cause some very vague errors. We now need to fix all packages where we do not
invoke the correct test runner.
See http://nixos.org/nixpkgs/manual/#sec-package-naming
I've added an alias for multipath_tools to make sure that we don't break
existing configurations referencing the old name.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
pylint (using Python 2.7) got propagated into python3Packages.spyder
so Python 2.7 setup-hook was used instead of python34.
Now that pylint is part of pythonPackages attribute set, pylint is
used with python3.4 as a base.
This was preventing the Nixpkgs channel from updating, since the
program indexer barfed on:
error: anonymous function at /nix/store/wdnwbh3kmf68nhqqp0khcyxbdbp43vg5-nixos-14.12.626.b0d594c/nixos/nixpkgs/pkgs/top-level/node-packages.nix:1:1 called without required argument ‘neededNatives’, at /data/releases/nixos/unstable-small/.tmp-nixos-16.03pre72946.c50d013-787/unpack/nixos-16.03pre72946.c50d013/lib/customisation.nix:56:12
because Nixpkgs 16.03 was importing files from Nixpkgs 14.12.
Also added some half-assed checks to detect this issue in the future.
The most complex problems were from dealing with switches reverted in
the meantime (gcc5, gmp6, ncurses6).
It's likely that darwin is (still) broken nontrivially.
This reverts commit d34f5b6570.
PIL and NumPy don't like this change and I'd rather spend time on
bringing wheels to Nix than fixing old infrastructure.
... after auto-removing some kinds of files by default.
In some cases I let them be removed and in others I let them be put into
$docdev. That was more due to general indecisiveness on this question
than any reasons in the particular cases.
Since I think 2.4 h5py introduced a new way to configure mpi. Therefore,
the BuildFlags are removed.
I built h5py and h5py-mpi packages successfully. Not sure though whether
the mpi version does actually work correctly since I don't use it.
Disabled two tests that require a preinstalled build of Mathics to
work, which is incompatible with the way nix runs them.
[Bjørn: remove unrelated disabling on Python 3]
Fixes#9044, close#9667. Thanks to @taku0 for suggesting this solution.
Now we have no modes starting with `/` or `+`.
Rewrite the `-perm` parameters of find:
- completely safe: rewrite `/0100` and `+100` to `-0100`,
- slightly semantics-changing: rewrite `+111` to `-0100`.
I cross-verified the `find` manual pages for Linux, Darwin, FreeBSD.
Regression introduced by 5f55788531.
The commit not only changes documentation, but also changed a few
variable names. One of them is $i which now is $f and it contains the
name of the file to wrap.
This was accidentally found by @Profpatsch (thanks!) who found himself
getting the basename of the last patch file to end up in sys.argv[0].
The reason for this is that $i is used in the for loop of the generic
patchPhase and thus is reused later when the Python file is to be
wrapped.
I have also added a small comment noting about this, to be sure that
this won't accidentally occur the next time someone changes variable
names.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Many (less easily automatically converted) old-style strings
remain.
Where there was any possible ambiguity about the exact version or
variant intended, nothing was changed. IANAL, nor a search robot.
Use `with stdenv.lib` wherever it makes sense.
This should fix#7366 for now, but using the (IMHO) pragmatic approach
of extending the sed expression to recognize strings.
However, this approach is obviously not parsing the full AST, nor does
it wrap Python itself (as pointed out by @spwhitt in #7366) but tries to
match Python strings as best as possible without getting TOO unreadable.
We also use a little bit of Nix to help generating the SED expression,
because doing the whole quote matching block over and over again would
be quite repetitious and error-prone to change. The reason why I'm using
imap here is that we need to have unique labels to avoid jumping into
the wrong branch.
So the new expression is not only able to match continous regions of
triple-quoted strings, but also regions with only one quote character
(even with escaped inner quotes) and empty strings.
However, what it doesn't correctly recognize is something like this:
"string1" "string2" "multi
line
string"
Which is very unlikely that we'll find something like this in the wild.
Of course, we could handle it as well, but it would mean that we need to
substitute the current line into hold space until we're finished parsing
the strings, branch off to another label where we match multiline
strings of all sorts and swap hold/pattern space and finally print the
result. So to summarize: The SED expression would be 3 to 4 times bigger
than now and we gain very little from that.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This reverts commit 79a5fec9c0.
meta.broken uses 'throw' under the hood so it can not improve the
current situation. Reverting to previous behaviour gives us correct
error message to the user indicating that interpreter is not supported.
Correcting Hydra output is out of scope of Python packaging.
Fixes this:
$ nix-env -f . -qa \* --meta --xml --drv-path --show-trace >/dev/null
...
error: while querying the derivation named ‘pypy2.5-graph-tool-2.2.36’:
while evaluating the attribute ‘preConfigure’ of the derivation ‘pypy2.5-graph-tool-2.2.36’ at "/home/bfo/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix":5:3:
attribute ‘sitePackages’ missing, at "/home/bfo/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix":22:54
We have tons of evaluation errors on Hydra because it tries to build
known broken packages. Re-using meta.broken makes sure these packages
aren't evaluated in the first place.
cherrytree - A hierarchical note taking application, featuring rich text
and syntax highlighting, storing data in a single xml or sqlite file.
This commit also adds PyGtkSourceView - a Python wrapper for the GtkSourceView widget library.
Official page http://www.giuspen.com/cherrytree
Propagation is not needed anymore, as we have more powerful apis today
than this dirty hack. See nix-shell tool and python.buildEnv function
in nixpkgs manual.
Because:
1. It is a mere alias of `pythonPackages.sip`
2. It is usually not needed since propagated by `pyqt4`
3. It makes it easy to have a packages depend on two different versions
of sip
Once nixpart 1.0 is released we then only need to delete one single
directory rather than searching for needles in a haystack, that is, all
of <nixpkgs>. Also, it keeps my sanity at an almost healthy level.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
I'm really not sure whether these tests are actually run upstream,
because there are quite a few oddities which either are my fault by just
missing something important or upstream really doesn't bother to run
those tests.
One example of this are testDiskChunk1 and testDiskChunk2, which create
two non-existing partitions and tries to allocate them. Now, in
allocatePartitions(), the partedPartition attributes are reset to None
and shortly afterwards a for loop is expecting it to be NOT None.
So, for now I'm disabling these tests and will see if we stumble on them
during work on nixpart 1.0, so we're really sure whether it's my fault
or a real bug in blivet.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Put a copy of old version 0.17 expression into 0.17.nix and update the
pointers from nixpart0 accordingly.
This also means, that plain nixpart is now way more broken than
nixpart0 (we might want to temporarily fix 0.4 anyway).
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
when you run nix-shell 2 times at the same time of project (but different
branches) you get collision in names inside /tmp folder. i solved this by
hashing current path of developing folder and using that as indentifier while
still keeping name at the end.
diff --git a/pkgs/development/python-modules/generic/default.nix
b/pkgs/development/python-modules/generic/default.nix index 4c9c53a..6ec7934
100644 --- a/pkgs/development/python-modules/generic/default.nix +++
b/pkgs/development/python-modules/generic/default.nix @@ -161,11 +161,12 @@ if
disabled then throw "${name} not supported for interpreter ${python.executabl
shellHook = attrs.shellHook or ''
if test -e setup.py; then
- mkdir -p /tmp/$name/lib/${python.libPrefix}/site-packages
+ tmp_path=/tmp/`pwd | md5sum | cut -f 1 -d " "`-$name
+ mkdir -p $tmp_path/lib/${python.libPrefix}/site-packages
${preShellHook}
- export PATH="/tmp/$name/bin:$PATH"
- export PYTHONPATH="/tmp/$name/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
- ${python}/bin/${python.executable} setup.py develop --prefix /tmp/$name
+ export PATH="$tmp_path/bin:$PATH"
+ export PYTHONPATH="$tmp_path/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+ ${python}/bin/${python.executable} setup.py develop --prefix $tmp_path
${postShellHook}
fi
'';
(My OCD kicked in today...)
Remove repeated package names, capitalize first word, remove trailing
periods and move overlong descriptions to longDescription.
I also simplified some descriptions as well, when they were particularly
long or technical, often based on Arch Linux' package descriptions.
I've tried to stay away from generated expressions (and I think I
succeeded).
Some specifics worth mentioning:
* cron, has "Vixie Cron" in its description. The "Vixie" part is not
mentioned anywhere else. I kept it in a parenthesis at the end of the
description.
* ctags description started with "Exuberant Ctags ...", and the
"exuberant" part is not mentioned elsewhere. Kept it in a parenthesis
at the end of description.
* nix has the description "The Nix Deployment System". Since that
doesn't really say much what it is/does (especially after removing
the package name!), I changed that to "Powerful package manager that
makes package management reliable and reproducible" (borrowed from
nixos.org).
* Tons of "GNU Foo, Foo is a [the important bits]" descriptions
is changed to just [the important bits]. If the package name doesn't
contain GNU I don't think it's needed to say it in the description
either.
Pyuv is a Python interface to libuv, a cross-platform asychronous I/O
library.
The setup.py is tweaked to that the system version of libuv is used,
instead of tying to fetch one with git.
[Bjørn: change commit message]
I had to update all the pyside programs, or freecad failed to build. I picked
the versions advertised in http://qt-project.org/wiki/PySideDownloads . The
rest I took for github latest releases.
Not really critical for anything we have in <nixpkgs> I guess, but
skipping lines three times really was a workaround and we're better off
just appending the lines ending with backslash to the pattern space so
we can accumulate all the crap until the last line of crap (crap, that
is "broken lines").
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
The bazaar package is still broken even with 5f01cc7, because __future__
imports need to be the first imports before anything else. So this time
I'm going to make the sed expression with explicit branching so we can
properly match all the occasions we want to skip and insert the line
modifying sys.argv[0] only _once_ and leave the command block after
that one substitution. So no ugly swaps between hold and pattern space.
The label which is resonsible for not escaping the command block is "r"
and we jump to it as long as we need to skip something from the start of
the file.
While at it, I'm not only skipping every line with __future__ in it but
also backslashes at the end of the line, so for example:
```python
from __future__ import shiny_feature1, \
shiny_feature2, \
shiny_feature3
```
... will now be properly skipped as well.
Tested against bazaar and nixops.
Thanks to @edolstra for reporting this.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Fixes issues introduced by 24ef871e6a.
The problem here is that "import sys; sys.argv[0] = ..." is just
appended after the first "#!", which in turn breaks things such as
encoding specifications. A second problem - although not very common -
is when there's another #! within the script.
This should take care of both cases.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
From the project page [1]:
> PyTables is a package for managing hierarchical datasets and designed to
> efficiently and easily cope with extremely large amounts of data.
It offers read/write access to hdf5 archives through a hierarchical interface.
I am adding it, because pandas depends on tables for hdf5 read/write
functionality.
Note: The name is a bit of an issue. The project is called pytables, whereas
the python module is simply called tables. I chose to name the nix-expression
tables for consistency with the source-tarball and the module name.
[1]: http://www.pytables.org/moin
Note: simply calling `virtualenv .` will not produce a ./bin/python
which can import e.g. sqlite3, using `virtualenv --python=python2.7`
will, if python2.7 is python27Full (the wrapped python). I'm not sure
if this is a bug or a feature.