-
-
Notifications
You must be signed in to change notification settings - Fork 150
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
Make it work on Mac/Linux #3
Comments
Why would you want an MSI tool to work on a platform that doesn't support MSI? |
to get the files out of the msi |
@activescott Thanks -- I am definitely interested in Linux support. Is there anything you need done in particular? I have a need and can probably throw some time at the problem. Though I think CI calls it passing, at the moment, I'm seeing the following for lessmsi/src/LessMsi/LessMsi.csproj: That said, I could certainly be missing something obvious. Any suggestions? |
@smaresca Now that the cab support was recently done in a linux-compatible way, the next work area for linux support is really the wixcab calls that interact with the msi API. WINE has at least some if not all of the calls already done, just need to find a good way to extract/package them and keep the install light. If you want to work on this area with me, let me know and I'll dig out some notes on the topic and try to give some direction. A partner in crime on something like this will motivate me! The ItemGroup task in MSBuild should definitely be valid (http://msdn.microsoft.com/en-us/library/vstudio/646dk05y.aspx). What version of VS/MSBuild are you using? |
@activescott Ah I wasn't using visual studio at all -- was trying to compile with xbuild and the rest of the mono toolchain natively in Linux (gmcs, v 2.10.8.1). re: API coverage, sure dig out the notes and we'll see where it goes. |
xbuild works in 3.x or newer. I forget the exact version. Maybe 3.1 or 3.2 was required. It only compiles though I never tried to actually run it on mono. Obviously the wix/MSI native libraries that I'm calling into are windows-specific. |
is is possible to use lessmsi on linux. |
Not yet, but the cab extraction code does all work on Linux now. So we're half way there. The part that need some work is the MSI code which is a combination of OLE Compound Files (aka Structured Storage) and a special MSI-specific database. I think the most reasonable thing to do is to use the WINE libraries (or their source?) to get the last part done. Always glad to help you along if you're interested in contributing!
|
I have a very specific use case in which I need to get the MSI ProductVersion from the Property table of an MSI file using the command line on OS X. all of the following approaches give errors on the command line, but seem to work regardless. lessmsi command line using wineMy coworker figured out how to use lessmsi on the command line using wine: (this example uses the wine.app that comes with winebottler)
lessmsi GUI using wineI have the lessmsi GUI working with WineBottler. http://winebottler.kronenberg.org/ You can download the zip compressed .app I made here: https://dl.dropboxusercontent.com/u/640753/lessmsi.zip You can make it yourself using the following screenshot & winebottler:References:http://wiki.winehq.org/WineBottler |
Just want to throw it out there that I've been able to use Less MSIerables in linux with wine after doing I think it's quite probable that it could be compiled with libwine, but don't have the hard disk space on this laptop to verify. |
I am able to use it on a Mac, and it doesn't have any windows-specific code outside of whatever is in Wine. |
well as wine consists of alternative API's for windows-only code, you're saying the wine team has done it's job well - not that it's actually a portable program. Right? |
Yes, Wine's code is windows specific, just not written by Microsoft. LessMSI is not a portable program, but it works through Wine on the Mac, which doesn't have anything to help it run other than Wine and anything installed with Winetricks. |
On my side I would be interested to have command-line only native (no wine required) way to build & run on Linux and Mac in addition to Windows, to add support for a better MSI extraction in https://github.com/nexB/scancode-toolkit beside the 7z-based extraction I have today. |
I haven't explored this option, but since lessmsi appears to be written in C# then it might be able to run on Mono or .NET core which would make it portable without requiring WINE. From some quick reading, it seems like it is possible for the GUI and everything to run on MONO while only a command line option to run on .NET core, but the degree of difficulty would not be able to be determined without actually trying it. http://stackoverflow.com/questions/37738106/net-core-vs-mono |
Has anyone tried compiling with |
@activescott wrote:
Gnome
GNOME/msitools used the same approach in their Both libs are under LGPL-2 or 2.1. For MIT-licensed project it would be hard to reuse LGPL code (coming from Wine) directly. But the dynamic linking should be easy. |
I've actually switched to using https://github.com/GNOME/msitools for my non-windows use cases for this. That said, I wish I had the time to experiment with lessmsi to see how easy it would be to get it to work with winelib and/or mono. |
@jgstew thanks for your share. can you show me how to deploy msitools on linux? |
from https://code.google.com/p/lessmsi/issues/detail?id=5
The text was updated successfully, but these errors were encountered: