Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install locations in packaging #3675

Closed
gtrepta opened this issue Sep 28, 2023 · 4 comments
Closed

Install locations in packaging #3675

gtrepta opened this issue Sep 28, 2023 · 4 comments
Assignees

Comments

@gtrepta
Copy link
Contributor

gtrepta commented Sep 28, 2023

The ubuntu package installs into some strange paths and has files that don't belong in it.

  • We install /usr/lib/scripts/util.sh and /usr/lib/version, which have no indication on first glance of what package they're a part of.
  • We install a bunch of headers into /usr/include/fmt, sharing ownership over those files with the libfmt-dev package.
  • Some files that go to /usr/bin either shouldn't be there (ng, booster-dev, eventlog-parser?) or need to be named better (rpc-client)

A rough outline of folders created under /usr by the package:

usr
├── include
│   ├── fmt
│   ├── kframework
│   ├── kllvm
│   └── kllvm-c
├── lib
│   ├── cmake
│   │   └── kframework
│   ├── kframework
│   ├── kllvm
│   └── scripts
└── share
    ├── doc
    │   └── kframework
    └── kframework

IMO it should look like this:

usr
├── include
│   ├── kframework
├── lib
│   ├── cmake
│   │   └── kframework
│   ├── kframework
└── share
    ├── doc
    │   └── kframework
    └── kframework

@dwightguth
Copy link
Collaborator

The /usr/lib/kframework and /usr/include/kframework directories were created for this purpose. We can move scripts and fmt under the respective directories.

@F-WRunTime
Copy link
Member

Here is the debian Directory Tree definitions / standards @gtrepta

https://www.debian.org/releases/buster/amd64/apcs02.en.html

@gtrepta
Copy link
Contributor Author

gtrepta commented Sep 29, 2023

#3683 Has been drafted to move /usr/lib/version.

My next step is to move the llvm-backend under /usr/lib/kframework. This will clean up a lot of the filesystem. However, this will require putting the llvm-backend's binaries under /usr/lib/kframework/bin and symlinking to them from /usr/bin. I have to open a PR for the llvm-backend first to make it more tolerant towards these symlinks (runtimeverification/llvm-backend#848).

Further work ahead:

  • The FHS states that /usr/include is for C language files. So, I think it's a good idea to move include/kframework to lib/kframework/include
  • Audit the binaries installed to /usr/bin for any that should be moved to /usr/lib/kframework/bin

rv-jenkins added a commit that referenced this issue Oct 3, 2023
For #3675 

We're installing `version` into `/usr/lib/version`. This change moves it
to `/usr/lib/kframework/version`.

Co-authored-by: rv-jenkins <admin@runtimeverification.com>
@gtrepta gtrepta removed their assignment Nov 2, 2023
@gtrepta gtrepta self-assigned this Nov 15, 2023
rv-jenkins added a commit to runtimeverification/llvm-backend that referenced this issue Nov 20, 2023
for runtimeverification/k#3675

---------

Co-authored-by: Bruce Collie <brucecollie82@gmail.com>
Co-authored-by: rv-jenkins <admin@runtimeverification.com>
Co-authored-by: Freeman <105403280+F-WRunTime@users.noreply.github.com>
@Baltoli
Copy link
Contributor

Baltoli commented Nov 21, 2023

We should maybe move the ng binary out of the default binary search paths.

rv-jenkins added a commit that referenced this issue Nov 29, 2023
for #3675

---------

Co-authored-by: rv-jenkins <admin@runtimeverification.com>
@Baltoli Baltoli closed this as completed Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants