Project

General

Profile

Actions

Bug #406

open

splitted system packages in isolated prefixes

Added by Guilhem Saurel 2 months ago. Updated 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-

Description

Hi,

I'm wondering if and how we could use splitted system packages in isolated prefixes.

Here is an example on archivers/bzip2/depend.mk. Both RedHat and Debian provide one package for the executable, and another one for the header, but they are installed in the same prefix, so SYSTEM_SEARCH.bzip2 is happy to find this prefix.

But with package managers that isolate each package, and which also split this kind of package, we get eg. on NixOS:

$ tree $PREFIX_BZIP2 
/nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin
└── bin
    ├── bunzip2 -> bzip2
    ├── bzcat -> bzip2
    ├── bzcmp -> bzdiff
    ├── bzdiff
    ├── bzegrep -> bzgrep
    ├── bzfgrep -> bzgrep
    ├── bzgrep
    ├── bzip2
    ├── bzip2recover
    ├── bzless -> bzmore
    └── bzmore

2 directories, 11 files

$ tree $PREFIX_BZIP2_DEV 
/nix/store/kh542xlg6mgb14xwz22mvqpm8810aidp-bzip2-1.0.8-dev
├── include
│   └── bzlib.h
├── lib
│   └── pkgconfig
│       └── bzip2.pc
└── nix-support
    └── propagated-build-inputs

5 directories, 3 files

Therefore, building pkgtools/pkg_install fail with:

Missing system package bzip2:
searching in /nix/store/kh542xlg6mgb14xwz22mvqpm8810aidp-bzip2-1.0.8-dev
missing:    /nix/store/kh542xlg6mgb14xwz22mvqpm8810aidp-bzip2-1.0.8-dev/bin/bzip2
searching in /nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin
found:    /nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/bin/bzip2
missing:    /nix/store/b0gdx2hz2nyf9ap2n0zixczc7k2kqk9j-bzip2-1.0.8-bin/include/bzlib.h

Please install the Ubuntu package bzip2 libbz2-dev.
- SYSTEM_PREFIX or PREFIX.bzip2 can be set to the installation prefix
  of this package in robotpkg.conf.
- If no bzip2 package can be made available in your
  system, you can use the robotpkg version, by setting in robotpkg.conf
        PREFER.bzip2=    robotpkg

I guess one option would be to split this package on robotpkg… But I think that's way too much work for nothing.
Another option is to define that we don't support this use case, and it would be fine for me. And in the case of bzip2 here, I can just follow the instructions and PREFER.bzip2=robotpkg.

But if you have other options in mind, which would not require a ton of work, and would allow me to use my system packages, feel free to share !

Best,
Guilhem

Actions

Also available in: Atom PDF