Refer to "Linux File System Hierarchy" instead of the FHS #1475

Open
zbyszek wants to merge 2 commits from use-file-hierarchy into main
Member

The FHS is severly outdated. Even the "current" version 3.0 is 10
years old at this point (published June 3, 2015), and hasn't even
followed the evolution of Linux systems that happened before 2015.
In particular, at that time, the usr-merge had already happened in Fedora,
with the relevant discussions happening very publicly in the preceding years.
Obviously, the FHS also couldn't follow later changes like the sbin-merge,
or increasing use of /run. There are some open tickets discussing additions
to the FHS, but they are stalled and it seems that there is little suppport
among the maintainers. At this point, the FHS is mostly of historical interest.

Link to file-hierarchy.7 that is provided by the systemd project. It
describes modern Linux systems as they are, so it's both much more
accurate and relevant, but also a much shorter document. That page
internally links to FHS 3.0 and XDG docs, so the interested reader can
read the background docs if they want to. Since the new page actually
describes what we are doing anyway, this doesn't introduce any new rules,
only just drops some baggage that we were ignoring anyway.

Prompted by fedora-devel thread:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/54GTFIECDKTIBATUVG3JQ4ZEDFBUMNLE/

The FHS is severly outdated. Even the "current" version 3.0 is 10 years old at this point (published June 3, 2015), and hasn't even followed the evolution of Linux systems that happened before 2015. In particular, at that time, the usr-merge had already happened in Fedora, with the relevant discussions happening very publicly in the preceding years. Obviously, the FHS also couldn't follow later changes like the sbin-merge, or increasing use of /run. There are some open tickets discussing additions to the FHS, but they are stalled and it seems that there is little suppport among the maintainers. At this point, the FHS is mostly of historical interest. Link to file-hierarchy.7 that is provided by the systemd project. It describes modern Linux systems as they are, so it's both much more accurate and relevant, but also a _much_ shorter document. That page internally links to FHS 3.0 and XDG docs, so the interested reader can read the background docs if they want to. Since the new page actually describes what we are doing anyway, this doesn't introduce any new rules, only just drops some baggage that we were ignoring anyway. Prompted by fedora-devel thread: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/54GTFIECDKTIBATUVG3JQ4ZEDFBUMNLE/
Member

There are a few more references to FHS in the guidelines

There are a few more references to `FHS` in the guidelines
Owner

Not sure how much we want to link to a systemd man page.

Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead.

Not sure how much we want to link to a systemd man page. Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead.
First-time contributor

Not sure how much we want to link to a systemd man page.

Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead.

We have now moved it to https://uapi-group.org/specifications/specs/linux_file_system_hierarchy/ which is neutral grounds

> Not sure how much we want to link to a systemd man page. > > Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead. We have now moved it to https://uapi-group.org/specifications/specs/linux_file_system_hierarchy/ which is neutral grounds
Author
Member

rebased onto 24b018899f

rebased onto 24b018899f51fbbd10111afa5e6097ea39f6d3b2
Author
Member

I updated the patch here to link to the new location.

Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead.

Apparently not entirely, FHS 4.0 might come out at some point. But I still think it makes sense to link to the new page. It just is a lot of text that is not at all specific to Fedora. By linking to the external docs we make it more likely that other distributions will follow the same rules. And we don't need to duplicate the work.

I updated the patch here to link to the new location. > Maybe worth borrowing/repeating it in our docs, along with notes saying FHS is dead. Apparently not entirely, FHS 4.0 might come out at some point. But I still think it makes sense to link to the new page. It just is a lot of text that is not at all specific to Fedora. By linking to the external docs we make it more likely that other distributions will follow the same rules. And we don't need to duplicate the work.
Author
Member

We made some updates and clarifications to the LFSH document, adding descriptions of /opt, /usr/include, and /usr/libexec. Please consider merging this PR.

We made some updates and clarifications to the LFSH document, adding descriptions of `/opt`, `/usr/include`, and `/usr/libexec`. Please consider merging this PR.
Owner

Unfortunately, I would oppose merging this change since UAPI LFH is fundamentally opposed to what most distributions do and what existing stakeholders even want.

Unfortunately, I would oppose merging this change since UAPI LFH is fundamentally opposed to what most distributions do and what existing stakeholders even want.
Owner

I think any decision on whether the distribution follows any specific version of the FHS or the LFH or something else is quite fundamental and should be made by FESCo or higher up than that. If a decision is made to change what the distribution follows, then we can update the packaging guidelines.

I have no objection to, or opinion on, such a change; I just don't think it is this committee's place to decide.

I think any decision on whether the distribution follows any specific version of the FHS or the LFH or something else is quite fundamental and should be made by FESCo or higher up than that. If a decision is made to change what the distribution follows, then we can update the packaging guidelines. I have no objection to, or opinion on, such a change; I just don't think it is this committee's place to decide.
Author
Member

Unfortunately, I would oppose merging this change since UAPI LFH is fundamentally opposed to what most distributions do and what existing stakeholders even want.

Hmm, that is some strong words. Do you have any quotes or facts or anything else to substantiate this claim?

> Unfortunately, I would oppose merging this change since UAPI LFH is fundamentally opposed to what most distributions do and what existing stakeholders even want. Hmm, that is some strong words. Do you have _any_ quotes or facts or anything else to substantiate this claim?
Author
Member
→ https://pagure.io/fesco/issue/3490
Author
Member

rebased onto 9f5fc87ef4

rebased onto 9f5fc87ef45921093661452bf42a47fa11993ffa
Author
Member

rebased onto 43294c77c6

rebased onto 43294c77c61c6f2a64d0a0b404275943f6151f11
Author
Member

Rebased. I dropped the commit for /nix (since that was already merged separately), and added a new one for /boot/efi.

Rebased. I dropped the commit for `/nix` (since that was already merged separately), and added a new one for `/boot/efi`.
Owner

Given @ngompa and @tibbs comments ... I don't see this going anywhere unless you open a FESCo ticket.

The other option is to change this to be a minor update noting that the std. we adhere to is old, and highlight that any changes for cross distro. compatibility should go through FESCo.

Given @ngompa and @tibbs comments ... I don't see this going anywhere unless you open a FESCo ticket. The other option is to change this to be a minor update noting that the std. we adhere to is old, and highlight that any changes for cross distro. compatibility should go through FESCo.
Owner

There is a fesco ticket: #1475 (comment)

It's "stalled" too, though.

There *is* a fesco ticket: https://forge.fedoraproject.org/packaging/guidelines/pulls/1475#issuecomment-626397 It's "stalled" too, though.
This pull request is broken due to missing fork information.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin use-file-hierarchy:use-file-hierarchy
git switch use-file-hierarchy

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff use-file-hierarchy
git switch use-file-hierarchy
git rebase main
git switch main
git merge --ff-only use-file-hierarchy
git switch use-file-hierarchy
git rebase main
git switch main
git merge --no-ff use-file-hierarchy
git switch main
git merge --squash use-file-hierarchy
git switch main
git merge --ff-only use-file-hierarchy
git switch main
git merge use-file-hierarchy
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
7 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
packaging/guidelines!1475
No description provided.