Skip to content

[WIP] Linux wait mount#1161

Closed
kivikakk wants to merge 10 commits into
microsoft:features/linuxprototypefrom
github:linux-wait-mount
Closed

[WIP] Linux wait mount#1161
kivikakk wants to merge 10 commits into
microsoft:features/linuxprototypefrom
github:linux-wait-mount

Conversation

@kivikakk
Copy link
Copy Markdown
Contributor

Running tests for github#21 (for merge into #1125).

/cc @chrisd8088 fyi

chrisd8088 and others added 9 commits May 17, 2019 11:51
We add the core GVFS.Platform.Linux classes, derived from their
GVFS.Platform.Mac equivalents but with appropriate changes for
syscall argument signatures and flag values, type definitions,
and structure fields (e.g., mode_t is a uint, and the layout of
struct stat is quite different).

The build tooling is largely a duplicate of the corresponding
Mac configuration, with some changes to ensure we build
successfully on Linux (e.g., testing for "!= Windows" is no longer
sufficient to determine that the platform is OS X).

The GVFS.sln configuration changes should ensure that the
ProjFS.Linux.Managed and GVFS.Platform.Linux subprojects are
built on all platforms (and their Mac and Windows equivalents
are built on Linux), and that the GVFS.Service.Mac classes are
built on Linux, so as to allow the GVFS.UnitTests subproject
to build and run successfully on all three platforms.

We also build the GVFS.Hooks.Linux and GVFS.Mount.Linux
subprojects on both Linux and Windows, just as their Mac
counterparts are built on both Mac and Windows.

The GVFS.Service binary is, for the time being, only a stub
on Linux, as we have yet to determine how (or if) we should
handle auto-mounting repositories.

Note that for now the BuildGVFSForLinux.sh script does not
perform any installation or packaging.

Co-authored-by: Ashe Connor <ashe@kivikakk.ee>
Based on work from commit 4b032fe,
from before the full GVFS.Service implementation for macOS.
We treat file modes as a 32-bit uint to match Linux's mode_t.
On Linux, try to use "which" to locate the "gvfs" binary, if
possible; otherwise default to the /usr/local/vfsforgit/gvfs path.
These checks allow us to detect compilation on systems which
may not meet requirements for stat(2) struct field layout
and __xstat64() libc ABI support on Linux.
Spotted by @kivikakk on review!

Co-authored-by: Ashe Connor <ashe@kivikakk.ee>
@kivikakk kivikakk force-pushed the linux-wait-mount branch 4 times, most recently from 41c9713 to 3b2fd95 Compare May 20, 2019 01:50
@kivikakk kivikakk force-pushed the linux-wait-mount branch from 3b2fd95 to f82659d Compare May 20, 2019 04:28
@kivikakk
Copy link
Copy Markdown
Contributor Author

github#21 was merged.

@kivikakk kivikakk closed this May 20, 2019
@kivikakk kivikakk deleted the linux-wait-mount branch May 20, 2019 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants