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
  • Merge requests
  • !5172

RFC: Support system-wide install via package manager (Linux)

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Felix Moessbauer requested to merge github/fork/fmoessbauer/chore-debian-v2 into master Oct 21, 2021
  • Overview 85
  • Commits 8
  • Pipelines 0
  • Changes 37

This series implements the changes proposed in #5153 . All changes are implemented in a way that is fully backward compatible, i.E. the current install tree is kept as default. Also drrun / drfrondenlib and the DynamoRIOConfig cmake scripts are fully backward compatible and can handle both layouts.

The new install layout can be activated by setting -DUSE_GNU_DIR_LAYOUT=ON. A sample debianization (packaging for Debian ) is also provided (that could either live here in the project, or in a dedicated debian-only project). Sample Debian packages can be build using:

# assuming we are in the DR root
mk-build-deps -i -t "apt-get -y"
dpkg-buildpackage -us -uc -b

When installing these packages, also a find_package(DynamoRIO) properly works. For further details, have a look at the commit messages.

Open aspects:

  • Injection via drrun / drfrondendlib: Currently, we specialize on -root / and hard-coded path. This works well, but path for all architectures have to be hard-coded into the binaries. It would be better to first look in the provided DR root. If it is no DR root, continue by searching well-known library install paths. This would simplify packaging for other distributions as well.
  • Cross-compiling for armhf: undefined symbol: GLOBAL DEFAULT UND __aeabi_ldiv0
  • conf.d style client registering: Instead of using the drrun32 / drrun64 lists, client registration should happen by placing the <tool>.drrun<XX> in /etc/DynamoRIO/tools.d/, so DR clients can also easily be packaged and are automatically detected by drrun. A client would then just drop a client.drrun64 in this folder.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/fmoessbauer/chore-debian-v2