That's an initial ebuild for mono-fuse, a C# binding for FUSE library. It depends on dev-lang/mono and sys-fs/fuse. Due to exceptions thrown and errors appearing I had to alter Makefile.am and move some work into the ebuild in order to succeed. If you know a better solution let me know. I think dev-dotnet is a pretty obvious choice for this package.
Created attachment 97048 [details] mono-fuse-0.2.1.ebuild (New package)
Created attachment 97073 [details] mono-fuse-0.3.0.ebuild (Version bump)
Created attachment 97822 [details] mono-fuse-0.3.0.ebuild update Modified the ebuild a bit so that it uses 'inherit autotools' and 'eautoreconf' now.
This looks mostly good. A couple things: 1) The DEPEND line doesn't need a \ for continuation... ebuilds are like bash... but not quite. (: 2) Can you post what error you get when trying to do just a regulae make during the src_compile step? It seems there's got to be a nicer, more maintainable solution than that. 3) If you continue lines inside any of the src_*, etc methods, make sure you indent for all further lines (last part of src_unpack has a problem). 4) Did you test on all 3 arches listed? Otherwise, this mostly looks good, I can't actually test this right now though.
> 1) The DEPEND line doesn't need a \ for continuation... ebuilds are like > bash... but not quite. (: Yes, I'm aware of that. I must have done that involuntary. > 2) Can you post what error you get when trying to do just a regulae make during > the src_compile step? It seems there's got to be a nicer, more maintainable > solution than that. After removing src_compile and src_unpack I get this error: make[3]: Entering directory `/var/tmp/portage/mono-fuse-0.3.0/work/mono-fuse-0.3.0/src/Mono.Fuse' /usr/bin/gmcs -d:TRACE -debug+ -out:../../lib/mono-fuse/Mono.Fuse.dll -target:library -r:Mono.Posix.dll ./MapAttribute.cs ./Mono.Fuse/FileSystem.cs ./Mono.Fuse/FileSystem.cs(45,18): warning CS0169: The private field `Mono.Fuse.FileSystemOperationContext.fuse' is never used Compilation succeeded - 1 warning(s) mono ./create-native-map.exe \ --public-macro:FUSE_USE_VERSION=25 \ --impl-header:"<fuse.h>" \ --library=MonoFuseHelper \ --rename-member:st_atime=st_atime_ \ --rename-member:st_mtime=st_mtime_ \ --rename-member:st_ctime=st_ctime_ \ ../../lib/mono-fuse/Mono.Fuse.dll ../../lib/map mono ./create-native-map.exe \ --public-macro:FUSE_USE_VERSION=25 \ --impl-header:"<fuse.h>" \ --library=MonoFuseHelper \ --rename-member:st_atime=st_atime_ \ --rename-member:st_mtime=st_mtime_ \ --rename-member:st_ctime=st_ctime_ \ ../../lib/mono-fuse/Mono.Fuse.dll ../../lib/map mono ./create-native-map.exe \ --public-macro:FUSE_USE_VERSION=25 \ --impl-header:"<fuse.h>" \ --library=MonoFuseHelper \ --rename-member:st_atime=st_atime_ \ --rename-member:st_mtime=st_mtime_ \ --rename-member:st_ctime=st_ctime_ \ ../../lib/mono-fuse/Mono.Fuse.dll ../../lib/map Unhandled Exception: System.IO.IOException: Sharing violation on path ../../lib/map.h at System.IO.FileStream..ctor (System.String name, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] at System.IO.FileStream..ctor (System.String name, FileMode mode, FileAccess access, FileShare share) [0x00000] at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare) at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] at System.IO.StreamWriter..ctor (System.String path, Boolean append) [0x00000] at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool) at System.IO.File.CreateText (System.String path) [0x00000] at HeaderFileGenerator.CreateFile (System.String assembly_name, System.String file_prefix) [0x00000] at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at MakeMap.Run (.Configuration config) [0x00000] at MakeMap.Main (System.String[] args) [0x00000] make[3]: *** [../../lib/map.c] Błąd 1 make[3]: *** Czekam na niezakończone zadania.... Unhandled Exception: System.IO.IOException: Sharing violation on path ../../lib/map.h at System.IO.FileStream..ctor (System.String name, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] at System.IO.FileStream..ctor (System.String name, FileMode mode, FileAccess access, FileShare share) [0x00000] at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare) at System.IO.StreamWriter..ctor (System.String path, Boolean append, System.Text.Encoding encoding, Int32 bufferSize) [0x00000] at System.IO.StreamWriter..ctor (System.String path, Boolean append) [0x00000] at (wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor (string,bool) at System.IO.File.CreateText (System.String path) [0x00000] at HeaderFileGenerator.CreateFile (System.String assembly_name, System.String file_prefix) [0x00000] at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_string_string (string,string) at MakeMap.Run (.Configuration config) [0x00000] at MakeMap.Main (System.String[] args) [0x00000] make[3]: *** [../../lib/map.h] Błąd 1 make[3]: Leaving directory `/var/tmp/portage/mono-fuse-0.3.0/work/mono-fuse-0.3.0/src/Mono.Fuse' make[2]: *** [all-recursive] Błąd 1 make[2]: Leaving directory `/var/tmp/portage/mono-fuse-0.3.0/work/mono-fuse-0.3.0/src' make[1]: *** [all-recursive] Błąd 1 make[1]: Leaving directory `/var/tmp/portage/mono-fuse-0.3.0/work/mono-fuse-0.3.0' make: *** [all] Błąd 2 !!! ERROR: dev-dotnet/mono-fuse-0.3.0 failed. Call stack: ebuild.sh, line 1546: Called dyn_compile ebuild.sh, line 937: Called src_compile ebuild.sh, line 608: Called die As you can see above, there are three attempts to run 'mono ./create-native-map.exe' and that's where the failure occurs. Therefore in my ebuild I perform this step manually. > 3) If you continue lines inside any of the src_*, etc methods, make sure you > indent for all further lines (last part of src_unpack has a problem). Yeah, I'm aware of that one too. I've simply omitted it. > 4) Did you test on all 3 arches listed? Nope. That's why I'm posting a patch for this ebuild rightaway
Created attachment 98057 [details, diff] mono-fuse-0.3.0.ebuild patch The aforementioned patch.
This is almost definitely a parallel build issue. Try using 'emake -j1' for the build part of this, that should hopefully resolve that issue for you.
Created attachment 98101 [details, diff] mono-fuse.0.3.0.ebuild.patch Of course you were right. MAKEOPTS="-j1" emake works. Besides that I introduced a pkg_setup() function where it is assured that the fuse module is modprobed before the compilation proceeds.
1) You shouldn't override MAKEOPTS like that (users might have stuff other than -j# there). Using 'emake -j1 || die' will work as desired there. 2) You really shouldn't be loading modules in ebuilds, ever. Put a big einfo in pkg_postinst telling the user that they need to have the fuse kernel module built and loaded in order to use mono-fuse. That's sufficient.
Created attachment 98140 [details, diff] mono-fuse-0.3.0.ebuild.patch Followed your comment and updated the ebuild patch.
0.4.0 is available... Tried to download it, build it and everything was fine (no patches needed). Haven't tried the ebuild, though...
Created attachment 99601 [details] mono-fuse-0.4.0.ebuild Version bump
Fixed in CVS.