przemoc / metastore

Store and restore metadata from a filesystem.
http://software.przemoc.net/#metastore
GNU General Public License v2.0
174 stars 31 forks source link

Cygwin and Mingw (Windows) support #40

Closed rasa closed 3 years ago

rasa commented 8 years ago

I have it compiling and working in Cygwin and Mingw in https://github.com/rasa/metastore.git but since Windows doesn't really support uid's or gid's, we need to tweak the code to use SID's instead (at least for MingW, Cygwin works around this somehow).

Cygwin's SID > uid mapping logic is at: https://cygwin.com/cygwin-ug-net/ntsec.html

przemoc commented 8 years ago

Thank you for your effort in bringing metastore to cygwin, but OS-dependent stuff has to be though-out for many systems before adding even one. I don't want bandaids and more #ifdef spaghetti.

As I wrote in comment to issue #39, I want to ultimately make metastore more modular. There should be some generic POSIX module (e.g. for ownership, perms), and OS-specific ones (e.g. for xattr). Cygwin should be possibly treated as POSIX alternative (as it's kind of mixed world), similarly native Windows-dedicated module if it will ever be created (but it wouldn't use uid/gid nomenclature there, etc.). Sorry that it's not there yet, but I'm not focusing on metastore lately.

Because of what I wrote above, I have to reject your PR atm. It wouldn't be merged as-is also for other reasons. To name a few: Various changes in one commit are bad, so please try to put only one logical change in each commit. Embedding files from other project "along the way", i.e. during introducing other changes, is also bad, so please always perform such actions in commits solely dedicated to them. In future please also develop new stuff for PR in non-master branch, ideally named appropriately.

Why you even embedded strmode.h, strmode.c in the first place? (If it was done in its own commit, you could (and actually should) try to explain it in commit message.)

zeluspudding commented 7 years ago

Would love a metastore like tool for Windows. Can you suggest other tools that store meta info w/ git that works on windows?

rasa commented 7 years ago

I attached my Windows versions (Mingw and Cygwin) of metastore to https://github.com/rasa/metastore/releases/tag/95d4e2d