Path for desktop launch "does not exist": Building from .deb

I am having a problem attempting to build IBM Notes (yes, I know. I’m committing some kind of great sin, but we need it at work…).

As I am using build.snapcraft.io, I am seeing the following output:

File "/usr/lib/python3/dist-packages/debian/arfile.py", line 79, in __index_archive raise ArError("Unable to find global header")
debian.arfile.ArError: Unable to find global header
Build failed

Here’s a link to my .yaml:

https://github.com/kz6fittycent/IBM_NOTES/blob/master/snapcraft.yaml

It’s the initial stages of the build and there are gonna be other errors, but I’ve never run into this one and Google ain’t helping.

TIA.

This seems to be because the file is on dropbox and end up not getting the deb but html instead:

$ file parts/my-part/src/ibm-notes.deb\?dl\=0
parts/my-part/src/ibm-notes.deb?dl=0: HTML document, ASCII text, with very long lines

I have to figure out why wget works. As a workaround, hosting the file on someplace different than dropbox might just solve this issue for now.

This stackoverflow thread suggests that dropbox detects wget’s user agent string and provides the binary instead https://stackoverflow.com/questions/20227324/programmatically-download-content-from-shared-dropbox-folder-links

This makes me doubt we can support this in a maintainable way. I’ll think about it and also let this sit here to see what others can add as input.

Thanks! I am trying to figure out another solution as the file’s too big for github…

I’ve made some progress in building this snap but run into an odd situation wherein build.snapcraft.io is reporting the following when attempting to build the snap:

Priming my-part
The path 'prime/usr/share/applications/IBMNotes9.0.desktop' set for 'desktop' in 'ibmnotes' does not exist.
Build failed

Here’s a copy of my current .yaml:

name: ibm-notes
version: 9.0.1.2
summary: IBM Notes is an email client 
description: |
   IBM Notes is the email client software of the IBM Notes and Domino client/server platform. It provides email, calendar and contact management capabilities, but because it works with the Domino server, it can also integrate IBM collaboration tools and business applications.
grade: devel
confinement: devmode

parts:
  my-part:
    plugin: dump
    source: https://fabricsre.bigtester.org/index.php/s/D20mKKg5WD2mKsu/download
    source-type: deb
    build-packages:
      - execstack
    prepare: |
      sed -i 's|Icon=notes|Icon=/opt/ibm/notes/notes\.png|' usr/share/applications/IBMNotes9.0.desktop
      execstack --clear-execstack opt/ibm/notes/notes
    after: [desktop-gtk3]
    prime: [-*]
    
apps:
  ibmnotes: 
    desktop: usr/share/applications/IBMNotes9.0.desktop
    command: bin/desktop-launch $SNAP/opt/ibm/notes/notes
    plugs: 
      - unity7
      - x11
      - home
      - network
      - network-bind
      - gsettings  
      - browser-support
      - opengl
      - pulseaudio
      - wayland

You’ll notice there aren’t any stage-packages yet as I’m trying to get the first part to complete.

I’ve never built a snap from a .deb before, so this is new for me.

Any and all help is much appreciated!

well, no, it doesn’t exist. you’ve specifically excluded it from existing:

1 Like

LOL… :man_facepalming:

1 Like

Okay, that worked. Thanks @lucyllewy

Any idea how to get it to build with i386 stage-packages?

Here’s the newest .yaml:

name: ibm-notes
version: 9.0.1.4
summary: IBM Notes is an email client 
description: |
   IBM Notes is the email client software of the IBM Notes and Domino client/server platform. It provides email, calendar and contact management capabilities, but because it works with the Domino server, it can also integrate IBM collaboration tools and business applications.
grade: devel
confinement: devmode

parts:
  my-part:
    plugin: dump
    source: https://fabricsre.bigtester.org/index.php/s/D20mKKg5WD2mKsu/download
    source-type: deb
    build-packages:
      - execstack
      - dpkg
    prepare: |
      sed -i 's|Icon=notes|Icon=/opt/ibm/notes/notes\.png|' usr/share/applications/IBMNotes9.0.desktop
      execstack --clear-execstack opt/ibm/notes/notes
      dpkg --add-architecture i386
      
    after: [desktop-gtk2]
    stage-packages:
      - libstdc++6
    
apps:
  ibmnotes: 
    desktop: usr/share/applications/IBMNotes9.0.desktop
    command: bin/desktop-launch $SNAP/opt/ibm/notes/notes
    plugs: 
      - unity7
      - x11
      - home
      - network
      - network-bind
      - gsettings  
      - browser-support
      - opengl
      - pulseaudio
      - wayland

EDIT:

Never mind, found a link with the answer (your answer @lucyllewy):