tauri-apps / tauri-apps/libappindicator-rs

Consider `pkg-config` for finding system dependencies at build time

Open
#49 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
48
Forks
20
Avg merge
1d 1h
Merged PRs (30d)
1

Description

Is your feature request related to a problem? Please describe.

When packaging applications that relies on libappindicator-rs, it's required to wrap the final binary with a LD_LIBRARY_PATH or a LD_PRELOAD or to patch this dependency to find the actual dependency.

Most packagers are not used to these techniques and therefore spends some time discovering what is the right method.

Describe the solution you'd like

If we could rely on pre-existing mechanisms such as pkg-config (that are often used in -sys variants in Rust ecosystem), this problem would entirely go away by itself. Record the proper path at build-time where pkg-config would point where the dynamic library would be.

Describe alternatives you've considered

Do one of the above hack.

Additional context

This came up while packaging https://github.com/tchapgouv/tchap-desktop for NixOS which relies on libappindicator-rs indirectly.

In NixOS, dependencies are usually injected at build-time, so it's unexpected that a program would rely on the ambient environment and expect that the library would appear "magically" without declaring a dependency upon it in the build process.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name a source file or test. Start by reviewing the Rust build configuration and how libappindicator is located at build time, then investigate the project's existing dependency setup and pkg-config conventions. Done means packaged binaries locate the system library without LD_LIBRARY_PATH, LD_PRELOAD, or downstream patching.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
build-system, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.