AppImageCommunity / pkg2appimage

Tool and recipes to convert existing deb packages to AppImage
http://appimage.org
MIT License
694 stars 214 forks source link

appimagekit-meshmixer.desktop: error: value "2.7" for key "Version" in group "Desktop Entry" is not a known version #166

Closed hroncok closed 7 years ago

hroncok commented 7 years ago

When I launch the MeshMixer AppImage on Fedora 25, it asks me the following question:

meshmixerappimage1

But nothing happens if i click Yes. I've tried in terminal an there's an error:

/home/churchyard/.local/share/applications/appimagekit-meshmixer.desktop: error: value "2.7" for key "Version" in group "Desktop Entry" is not a known version
Error on file "/tmp/.mount_miK9kd/meshmixer.desktop": Failed to validate the created desktop file

The latest specification says:

Version of the Desktop Entry Specification that the desktop entry conforms with. Entries that confirm with this version of the specification should use 1.1. Note that the version field is not required to be present.

The entire MeshMixer/MeshMixer.AppDir/meshmixer.desktop contents form the machine I created the AppImage:

[Desktop Entry]
Version=2.7
Name=MeshMixer
Name[en_GB]=MeshMixer
GenericName=Mesh processing
GenericName[en_GB]=Mesh processing
Comment=Application for aggregating, fixing and editing meshes, and for preparing them for 3d printers.
Type=Application
Exec=meshmixer.wrapper  %F
Icon=meshmixer
Terminal=false
Categories=Graphics;
probonopd commented 7 years ago

2.7 is not a valid entry for the Version= key at this time. This key does not hold the version of the application, but the version of the desktop specification. I will change the recipe to work around that, but a bug should be filed upstream because the desktop file is wrong.

hroncok commented 7 years ago

I was about to check if that si already problematic in that deb package.

probonopd commented 7 years ago

Workaround in 1cfed00, can you please test it?

hroncok commented 7 years ago

Original content:

[Desktop Entry]
Version=2.7
Name=MeshMixer
Name[en_GB]=MeshMixer
GenericName=Mesh processing
GenericName[en_GB]=Mesh processing
Comment=Application for aggregating, fixing and editing meshes, and for preparing them for 3d printers.
Type=Application
Exec=/usr/bin/meshmixer  %F
Icon=meshmixer
Terminal=false
Categories=Graphics;

So indeed an upstream bug.

probonopd commented 7 years ago

We could add desktop-file-validate to the Recipe so that we see these kinds of errors during AppImage creation time...

hroncok commented 7 years ago

Also, the desktop file created in ~/.share/applications has:

Icon=appimagekit-meshmixer

But there is no such icon copied anywhere to ~/.local (no error message this time).

hroncok commented 7 years ago

Upstream desktop file bug reported.

probonopd commented 7 years ago

Feel free to post about this on meshmixerforum.com (saves me the time to sign up in yet another forum).

hroncok commented 7 years ago

The desktop-file-validate on trusty is very old and thus fail in this scenario:

/meshmixer.desktop: error: value "1.1" for key "Version" in group "Desktop Entry" is not a known version
probonopd commented 7 years ago

Since most AppImage authors want to make their AppImages compatible with older target systems (distributions) as well, I suggest to use a version of the Desktop Entry Specification that is supported by trusty (i.e., 1.0).

kortschak commented 6 years ago

This appears to be broken again.

$ git rev-parse HEAD
7948b82f3bce01c9c45ff0f2687738104b8fc2b9
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial
$ bash -ex Recipe Meshmixer.yml
<snip>
.
.
.
<snip>
+ desktop-file-validate ./meshmixer.desktop
./meshmixer.desktop: error: file contains line "Action Bar\nThe Action Bar is not a traditional menu, it is a dynamic context-sensitive menu that responds to the current scene. For example, before you have loaded any objects into meshmixer, the Action Bar will provide you with commands such as Open, Import, etc. Once you load an object, those items will no longer be accessible from the Action Bar, you will have to use the File menu in the standard system menu. The Action Bar may change depending on the Tool you have selected. If ever you want to get back to the initial Action Bar state, just keep hitting Escape.\n\n Full manual at meshmixer.com/help", which is not a comment, a group or an entry
./meshmixer.desktop: error: value "1.1" for key "Version" in group "Desktop Entry" is not a known version
+ exit 1

The contents of meshmixer.desktop after failure:

[Desktop Entry]
Version=1.1
Name=MeshMixer
Name[en_GB]=MeshMixer
GenericName=Mesh processing
GenericName[en_GB]=Mesh processing
Comment=The ultimate tool for 3D mashups and remixes.\n\nMash, mix, sculpt, stamp or paint your own 3D designs, or start from over 10,000 models in the Gallery. Now includes direct 3D print support.\n\nMesh & Mix\nDesign your own creations by combining two or more models with a few simple steps. It’s as easy as “cut-and-paste”.\n\nPattern\nCreate beautiful overlay textures using a variety of simple grid and pattern options.\n\nSculpt\nMold and refine surfaces real-time like virtual clay.\n\n3D printing with Meshmixer\nSeamless digital-to-physical experience\nStarting from any 123D software, 3D model in the Gallery, or any major 3D model file format†, you can preview, refine and prepare your models to print with confidence.\n .stl, .obj, .amf, .ply, .wrl\n\nSupports any desktop 3D printer\nPrint directly from Meshmixer to your MakerBot or Type A Machines. Meshmixer is also compatible with Stratasys, and has the option to configure your own desktop printer.Hassle-free 3D printing services\n\nYou don’t need to own a 3D printer to create amazing 3D-printed objects. Leave the 3D printing to Autodesk's trusted partners: i.materialise, Sculpteo and Shapeways. Pick from dozens of different materials, colors and finishes, and preview your shopping cart right in Meshmixer\n\nA key concept to understand in meshmixer is the
Action Bar\nThe Action Bar is not a traditional menu, it is a dynamic context-sensitive menu that responds to the current scene. For example, before you have loaded any objects into meshmixer, the Action Bar will provide you with commands such as Open, Import, etc. Once you load an object, those items will no longer be accessible from the Action Bar, you will have to use the File menu in the standard system menu. The Action Bar may change depending on the Tool you have selected. If ever you want to get back to the initial Action Bar state, just keep hitting Escape.\n\n Full manual at meshmixer.com/help
Type=Application
Exec=meshmixer  %F
Icon=meshmixer
Terminal=false
Categories=Graphics;
probonopd commented 6 years ago

I don't think the desktop file was ever fixed...

kortschak commented 6 years ago

Oh, OK. Is there a work-around?

kortschak commented 6 years ago

There appears to be two problems:

  1. The Comment value is actually broken, with a line break in the string.
  2. desktop-file-validate is broken in the Version check, incorrectly rejecting "1.1".

A work around is to add a hook into Recipe which swaps in a fixed desktop file with no Version and the broken line manually fixed.

probonopd commented 6 years ago

We are running Ubuntu 14.04 which comes with a version of desktop-file-validate that only accepts 1.0. This is intentional to ensure that the generated AppImage will run on the oldest still-supported LTS releases, too. I will try a workaround in the yml file.

probonopd commented 6 years ago

...and please ask the original authors of this software to provide an official AppImage for Linux, thanks.

kortschak commented 6 years ago

Yes, I had a play with that today and it seems the best way to deal with the Version value is to //d the line. However there is also a mis-formatting of the Comment value.

I'll send a PR to fix both of those.

The original authors have completely dropped support for Linux, hence the changes in download URLs and that the URLs don't point to meshmixer.com. In my exploration I managed to find a 2.9 version deb file hidden in a meshmixer docker image. I have extracted that, but I'm not sure what (if anything) I should do about getting that file hosted.

probonopd commented 6 years ago

The original authors have completely dropped support for Linux

Is there an official statement to this regard somewhere?

probonopd commented 6 years ago

However there is also a mis-formatting of the Comment value.

I was hoping this would fix it, doesn't it do that?

https://github.com/AppImage/AppImages/commit/c1c95a1adf59eb2e1097d2f83aec6d4dfb012d44#diff-97996981a42a86d4c2d2cb2be69f6f14R32

kortschak commented 6 years ago

I'm not aware of any official statement, but the download page for Linux that previously existed has been removed and the AWS bucket that held the 2.9 version does not exist. Further the comments on the wine hq page for the application indicate a similar view.

That change will not fix the Comment issue since the text is broken over two lines. I have a sed expression that fixes it, but I am afk right now. I'd also suggest that just removing the Version line would be better since the spec allows it.

hroncok commented 6 years ago

I have extracted that, but I'm not sure what (if anything) I should do about getting that file hosted.

I'm afraid legally you cannot do much.

kortschak commented 6 years ago

Yes, that was my feeling. I might write up something to automate extraction, but it's a big heft pulling a docker image to just pull 37MB of a deb.

probonopd commented 6 years ago

Check this out: https://twitter.com/meshmixer/status/891088707662614528

mesh

I didn't feel like following up and chasing Autodesk since I don't like their subscription licensing models, but if you can follow up with them I'm sure happy to help making an AppImage (they are already using one of my tools, linuxdeployqt, for Eagle).

kortschak commented 6 years ago

That is unfortunate, but seems only (from that article) to be related to eagle and meshmixer is still marked prominently as free (kostenlos).

I'm happy to take up contacting them as a neophyte to AppImage, but it it might be more effective with someone with more experience/clout with AppImage (corpthink).

probonopd commented 6 years ago

As said, I am really happy to help if they are interested. But I don't have the time "chasing" them.

kortschak commented 6 years ago

I'll email them to follow up and see what they plan to do; I have annual leave coming up, so I do have some time to chase things.

probonopd commented 6 years ago

Maybe it helps to mention that AppImage is apparently rather popular in the 3D printing world, with Ultimaker Cura, Slic3r, Slic3r PE, PrusaControl, FreeCAD, OpenSCAD all providing official AppImages...

kortschak commented 6 years ago

I have had a couple of back and forth emails with meshmixer, and they are not in the slightest interested in doing this. Pity they could be honest at the time.

kortschak commented 6 years ago

A minor followup here. I found that the wayback machine has kept a download of the last available linux version, 2.9.