-
-
Notifications
You must be signed in to change notification settings - Fork 183
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
FreeBSD support #532
FreeBSD support #532
Conversation
|
Bump. Can this be merged in, please? |
|
Heh, I did some changes on my own without looking at PRs, now found this :) I managed to get the document provider to add a file to the FUSE fs, since we don't have flatpak, this involved hacks:
Also from But honestly the FUSE based document provider might not be the most useful thing for us… if anyone cares about actual FreeBSD sandboxing read here…unless someone wants to do something like bubblewrap based on jails, but why would you do that when we have some better ideas for sandboxing :) That is, I'd like to use the document portal with capsicumizer eventually, and for that I literally just need to pass the fd to the sandboxed application. Basically all I want is for tl;dr maybe exclude all of |
|
Thanks for your review. I hope I've addressed all your comments. |
|
Looks good! |
|
This looks like it substantially changes the behaviour of the file system. An For example, consider this call: If the file path being opened is a symbolic link, on Linux the call will succeed returning an |
|
|
|
The example I gave was from the document portal code, where this PR defines xdg-desktop-portal/document-portal/document-portal-fuse.c Lines 1597 to 1599 in 2fe4f30
The code might compile, but it now means something different now. |
|
Would |
|
maybe just disable document-portal and don't port it |
|
My point was that it changes the meaning. For example, the >>> fd1 = os.open('/var/run', os.O_PATH|os.O_NOFOLLOW)
>>> stat.S_ISLNK(os.fstat(fd1).st_mode)
True
>>> fd2 = os.open('/var/run', os.O_RDONLY)
>>> stat.S_ISLNK(os.fstat(fd2).st_mode)
False
>>> stat.S_ISDIR(os.fstat(fd2).st_mode)
TrueOne file descriptor represents the symlink, and the other represents the symlink target: i.e. the difference between calling |
|
I have removed |
|
Bump. Can this be merged in? |
|
Another bump. |
|
An |
|
I'd still prefer to get this PR merged as is first. |
|
It's been more than 6 months since this MR was submitted. Is there something wrong with it? Can we finally make it in? |
|
Monthly bump. |
|
Another bump. |
|
These changes seems mostly harmless to me, but I can't tell whether the lack of flags added in the document portal has any unwanted consequences. It's also surprising the commits that just ifdef some header inclusion doesn't break compilation. Are those includes needed to begin with? |
FreeBSD may have functions defined in different headers, so the first thing I try when I stumble upon "header not found error" is just removing it to see if the stuff still compiles. |
|
@arrowd thanks for your work. Will this allow us to upgrade to |
…and meson.build This is required to build the code on non-Linux OS like FreeBSD.
Check for <sys/statfs.h> and <sys/mount.h> presence before including them. Fixes build on FreeBSD.
Check for <sys/vfs.h> and <sys/mount.h> presence before including them. Fixes build on FreeBSD.
- Check for non-portable header presence before including them. - Define uncommon error code `ENODATA`. - Guard the usage of uncommon flags with appropriate #ifdef. - Use `posix_fallocate` on non-Linux platforms. Fixes build of document-portal/document-portal-fuse.c on FreeBSD.
If this ever gets merged in. Speaking of which pinging again. |
|
@GeorgesStavracas please merge |
|
@smcv maybe you could help too? 🙏 |
|
It will be merged when it's considered ready. Please do not post comments asking for merging. |
|
@GeorgesStavracas sorry for reaching out to you in this manner. Gleb has been working hard and diligently addressing all comments for 2 years. Please understand that all this time we have to maintain a private fork/patchset to make xdg-desktop-portal usable on FreeBSD. And following upstream becomes more difficult. Maybe instead of gatekeeping the change and trying to make it perfect we you could grant @arrowd maintainer access to the project? It would help FreeBSD greatly to have an ambassador in freedesktop related projects. We are as interested in keeping this project working as you are. Thanks EDIT: cc: @emaste |
|
Asking to grant someone without previous contributions to a project full access to the repository is absolutely unreasonable. "Gatekeeping" changes and "trying to make them perfect" is standard procedure in software development, we call it "code review", and having maintainer access to the project does not imply permission to push without somebody else review it. @ngortheone honestly, I appreciate you have the best of intentions here, but dealing with your misguided commentary has devoided me of more energy than another round of reviews. @arrowd has already done an outstanding job in applying review comments and got this pull request on the verge of being merged. Pinging random people you consider important won't make this go any faster, very likely will have the opposite effect. Please, disengage. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only a minor nit now
If it is not found, do not try to run icon validation in the sandbox.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've briefly discussed this on the Flatpak Matrix channel today, and generally there are no objections to landing this given that the enablement work is mostly sprinkling ifdefs around. I'd like to make it clear that landing this does not imply any kind of "official" support, and the xdg-desktop-portal project still relies on BSD folks to actively monitor the project and send pull requests if the build breaks. We're not adding any BSD-based CI step due to that not being a core requirement of the project. These patches are appreciated, and I hope you continue to contribute to the project in the future.
|
Of course, we do plan to upstream any local patches that we come up with. Is there any ETA for the next release date that would contain this change? |
|
The 1.16 milestone is set to December 1st |
No description provided.