DynamoRIO / DynamoRIO/dynamorio

Simplify packaging of DynamoRIO

Open
#5,153 3 comments 0 reactions 0 assignees View on GitHub
Component-Build Usability
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

**Add a pointer to any prior users list discussion.**

This issue is a follow up of the discussion started in #5152.

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

Currently, packaging of DynamoRIO for OS distributions like Debian is not possible (without patches) due to a list of incompatibilities. The following list should help to keep track of the current status and changes that will be required.

**Describe the solution you'd like**

The following aspects should be changed:

- CMake
- [x] Add support for install-relocation via DESTDIR env variable #5152
- [ ] libdynamorio-dev: Make CMake scripts of DynamoRIO work with system install paths
- [ ] libdynamorio-dev: Make export targets relocatable (make LIBDIR / BINDIR configurable via cache variable)
- drrun
- [x] rework injection logic to support other directory structures as well (e.g. `/usr/lib//dynamorio.so`, config in `/etc/dynamorio`, etc...)
- #5548
- #5443
- [ ] Find installed dynamorio tools / clients via conf.d style integration (each new client drops a file in `/etc/dynamorio/tools.d/`). This makes it possible for third-party tools that are packaged as well to easily integrate into DR.
- Libraries
- [x] Check if the `libdynamorio.so` needs the execution bit or if there are other strategies. Installing a library with execution bit set is discouraged or even forbidden for some distros. (It is required!)
- [ ] Add SO version, describing ABI compatibility
- [x] Do not rely on checked-in binaries (like elftc). These should always be built from the sources (e.g. via externalProject). Xref #4422
- [x] fix build errors around dwarf2 when building in chroot Xref https://github.com/DynamoRIO/dynamorio/issues/5153#issuecomment-1573528227

**Describe alternatives you've considered**

It is possible to work around some limitations (like expected directory layout of drrun) by using wrappers and ignoring checks. However, this is neither a clean solution, nor sustainable.

**Additional context**

- Debian policies: https://www.debian.org/doc/debian-policy/index.html
- Debian guide ["How do I add a new package to the archive?"](https://wiki.debian.org/DebianMentorsFaq#How_do_I_add_a_new_package_to_the_archive.3F)
- please note, I'm not a Debian "sponsor", so I cannot integrate that directly

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.