3
0
Fork 0
forked from mirrors/nixpkgs
Nix Packages collection
Find a file
aszlig c420de6b05
gobject-introspection: Fix patching shared objects
The gi-r-scanner is generating a list of shared libraries that are
referenced in the shared-library attribute of the <namespace/> element
of the GIR file. However, this attribute only contains the names of the
libraries and not the full store paths, like for example while preparing
to package libblockdev, the following items were included in the
shared-library attribute:

  /nix/store/...-libblockdev-1.3/lib/libblockdev.so.0
  libm.so.6
  libdmraid.so.1.0.0.rc16
  libbd_utils.so.0

Unfortunately, loading such a library without setting LD_LIBRARY_PATH is
going to fail finding libm.so.6 and libdmraid.so.1.0.0.rc16.

Now the first attempt at solving this was to put absolute paths of all
the libraries referenced in the shared-library attribute, but this also
led up to including paths of build-time shared objects into that
attribute:

  /nix/store/...-libblockdev-1.3/lib/libblockdev.so.0
  /nix/store/...-glibc-2.21/lib/libm.so.6
  /nix/store/...-dmraid-1.0.0.rc16/lib/libdmraid.so.1.0.0.rc16
  /tmp/nix-build-libblockdev-1.3.drv-0/.../utils/.libs/libbd_utils.so.0

This of course is not what we want, so the final solution is to only
use the absolute path whenever it is a Nix path and leave the library
name as-is if the path doesn't reside within the store, like this:

  /nix/store/...-libblockdev-1.3/lib/libblockdev.so.0
  /nix/store/...-glibc-2.21/lib/libm.so.6
  /nix/store/...-dmraid-1.0.0.rc16/lib/libdmraid.so.1.0.0.rc16
  libbd_utils.so.0

The downside of this approach is that if not even the output path of the
library is in LD_LIBRARY_PATH, even loading of libbd_utils.so.0 could
fail, so we need to patch the loader as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2016-01-22 22:46:02 +01:00
doc nixpkgs manual: add a section about passthru 2016-01-21 19:47:53 +03:00
lib Merge pull request #12407 from jgillich/chats 2016-01-18 15:15:59 +01:00
maintainers copy-tarballs.pl: Create redirects before uploading file 2015-12-16 15:39:08 +01:00
nixos Merge pull request #12459 from avnik/fix-var-lib-postfix-permissions 2016-01-22 17:25:07 +01:00
pkgs gobject-introspection: Fix patching shared objects 2016-01-22 22:46:02 +01:00
.gitignore
.mention-bot .mention-bot: remove illegal comment (close #11488) 2015-12-15 14:46:39 +01:00
.travis.yml travis-ci: use trusty (has 7.5G ram compared to previous 3) 2015-11-02 13:04:03 +01:00
.version .version: remove trailing newline 2015-08-27 00:30:42 +02:00
CONTRIBUTING.md CONTRIBUTING.md: add a notice about licensing 2015-12-19 14:38:00 +01:00
COPYING Update copyright to include contributors 2015-12-18 18:16:54 +01:00
default.nix Expose minimum required Nix version. 2015-11-26 23:11:11 +08:00
README.md Set issuestats badges to flat style 2016-01-02 16:31:47 +00:00

logo

Build Status Issue Stats Issue Stats

Nixpkgs is a collection of packages for the Nix package manager. It is periodically built and tested by the hydra build daemon as so-called channels. To get channel information via git, add nixpkgs-channels as a remote:

% git remote add channels git://github.com/NixOS/nixpkgs-channels.git

For stability and maximum binary package support, it is recommended to maintain custom changes on top of one of the channels, e.g. nixos-15.09 for the latest release and nixos-unstable for the latest successful build of master:

% git remote update channels
% git rebase channels/nixos-15.09

For pull-requests, please rebase onto nixpkgs master.

NixOS linux distribution source code is located inside nixos/ folder.

Communication: