Since commit e44038bccab0cae, cairo-1.0.typelib contains an absolute
path to cairo in the nix store so that no $LD_LIBRARY_PATH hacks are
needed. However, this did not yet work for lgi, because lgi does
dlopen("libcairo.so.2") without a full path, too.
To make this work, this commit ensures that lgi first uses
gobject-introspection to load libcairo. This uses the full path provided
by the typelib. Afterwards, dlopen("libcairo.so.2") does not hit the
filesystem anymore since the library is already loaded.
This commit adds a patch that reorders some code in lgi's cairo
initialisation. Previously, this started with core.module('cairo', 2),
which is where the dlopen happens. Now, this code is moved down and
instead core.gi.cairo.resolve is used to load the definitions of some
enums first. This part of the code goes through gobject-introspection
and causes libcairo to be loaded.
Signed-off-by: Uli Schlachter <psychon@znc.in>
These involve:
- Formatting and spacing.
- Switching to using fetchFromGitHub where possible.
- Adding missing meta attributes.
- Correcting license values or adding missing license values.
- Adding vyp as maintainer for unmaintained packages.
None of these changes should affect the build result.
A different revision is used for luasqlite3, however, the source code
between these revisions is actually the same. (And the advantage is that
the new revision is a tagged release.)
The shared objects are not available in 'pcre.dev', so to build the rex_pcre.so
file we must specify 'pcre.out' as the directory to obtain shared objects
from, 'pcre.dev' is still needed for the header files though.
This has surfaced due to 505d7bea3af48c79af4212111324a4b95f80f212 and
the fixup commit 77f5a50c400d7e312e7491593dcc8ee8cab86c2c.
The individial platform attributes are a list rather than single
elements, so in this case we got:
with platforms; [darwin linux freebsd illumos]
Which results in:
[ ["x86_64-darwin"]
["i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux"
"armv7l-linux" "aarch64-linux" "mips64el-linux"]
["i686-freebsd" "x86_64-freebsd"]
["x86_64-solaris"]
]
So if you don't have allowBroken set in nixpkgs config, you end up with
an evaluation error because meta.platforms is expected to be a list
instead of a list of lists which we got here.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @mornfall, @vcunat