Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #5153
Closed
Open
Issue created Oct 11, 2021 by Felix Moessbauer@fmoessbauerContributor3 of 8 checklist items completed3/8 checklist items

Simplify packaging of DynamoRIO

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
    • 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
    • rework injection logic to support other directory structures as well (e.g. /usr/lib/<multiarch-triplet>/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
    • 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
    • Do not rely on checked-in binaries (like elftc). These should always be built from the sources (e.g. via externalProject). Xref #4422

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?"
  • please note, I'm not a Debian "sponsor", so I cannot integrate that directly
Assignee
Assign to
Time tracking