Need to add a apt package to the snap

Hello I want to use a packege https://github.com/coin-or/Cbc. which already has apt installation. I need to install this into the bin of the snap and need it for the app

I am very new to snap dev. I am attatching my yaml for your ref.

How can I proceed ? suggestions are welcome.

name: fastapidemo

version: 0.1.2.0

summary: fastapidemo

description: ‘simple demo-test1’

base: core20

confinement: strict

grade: stable

Limit architectures as ppcel64 doesn’t build currently

architectures:

  • build-on: amd64

  • build-on: arm64

apps:

run:

command: bin/launcher.wrapper

daemon: simple

plugs:

  - network-bind

  - network-status

  - network-observe

  - serial-port

  - datalayer

environment:

   "LD_LIBRARY_PATH": "$LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lapack:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/blas:$SNAP/usr/lib/python3/dist-packages"

desktop-launch:

command: bin/desktop-launch

plugs:

  - desktop  

parts:

requests:

plugin: python

build-environment:

  - PYTHONPATH: "$SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages"

stage-packages:

  - wget

  - git

  - zip

  - libssl-dev

  - libcurl4-openssl-dev

  - libcurl-dev

  - pkg-config

  - build-essential

  - unzip

  - python3-wheel

 

python-packages:

  - wheel

  - requests

  - flask

  - fastapi

  - uvicorn

  - pydantic

  - pyomo

  - networkx

  - pandas

  - typing

         

build-packages:

  - python3-dev

  - python3-wheel

  - build-essential

  - python3-setuptools

datalayerdeb:

  plugin: dump

  source: https://github.com/boschrexroth/ctrlx-automation-sdk/releases/download/1.18.0/ctrlx-datalayer-1.9.1.deb

  source-type: deb

  stage-packages:

    - libzmq5

shscripts:

source: ./shscripts/

plugin: dump

organize:

  '*': bin/

configs:

source: ./configs

plugin: dump

organize:

  'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/

  'secure-assets/*': secure-assets/${SNAPCRAFT_PROJECT_NAME}/

plugs:

datalayer:

interface: content

content: datalayer

target: $SNAP_DATA/.datalayer

slots:

secure-assets:

interface: content

content: secure-assets

source:

  read:

    - $SNAP/secure-assets/${SNAPCRAFT_PROJECT_NAME}

service-token:

interface: content

content: service-token

source:

  write:

    - $SNAP_DATA/service-token/${SNAPCRAFT_PROJECT_NAME}

package-assets:

interface: content

content: package-assets

source:

  read:

    - $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME}

kindly post the yaml file properly here. The format has got messed up and is not easy to understand currently.

Please add three backticks ``` above and below text you copy/paste, that way the original formatting stays intact

name: fastapidemo
version: 0.1.2.0
summary: fastapidemo
description: 'simple demo-test1'

base: core20
confinement: strict
grade: stable

# Limit architectures as ppcel64 doesn't build currently
architectures:
  - build-on: amd64
  - build-on: arm64


apps:
  run:
    command: bin/launcher.wrapper
    daemon: simple
    plugs:
      - network-bind
      - network-status
      - network-observe
      - serial-port
      - datalayer
    environment:
       "LD_LIBRARY_PATH": "$LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lapack:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/blas:$SNAP/usr/lib/python3/dist-packages"
      

    
  desktop-launch:
    command: bin/desktop-launch
    plugs:
      - desktop  

parts:


  requests:
    plugin: python
    build-environment:
      - PYTHONPATH: "$SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages"

    stage-packages:
      - wget
      - git
      - zip 
      - libssl-dev
      - libcurl4-openssl-dev
      - libcurl-dev
      - pkg-config
      - build-essential
      - unzip
      - python3-wheel
      
    python-packages:
      - wheel
      - requests
      - flask
      - fastapi
      - uvicorn
      - pydantic
      - pyomo
      - networkx
      - pandas
      - typing
      
      
 
    build-packages:
      - python3-dev
      - python3-wheel
      - build-essential
      - python3-setuptools




  datalayerdeb:
      plugin: dump
      source: https://github.com/boschrexroth/ctrlx-automation-sdk/releases/download/1.18.0/ctrlx-datalayer-1.9.1.deb
      source-type: deb
      stage-packages:
        - libzmq5
     
 
 
  shscripts:  
    source: ./shscripts/
    plugin: dump
    organize:
      '*': bin/
      

  configs:
    source: ./configs
    plugin: dump
    organize:
      'package-assets/*': package-assets/${SNAPCRAFT_PROJECT_NAME}/
      'secure-assets/*': secure-assets/${SNAPCRAFT_PROJECT_NAME}/



plugs:
  datalayer:
    interface: content
    content: datalayer
    target: $SNAP_DATA/.datalayer 


slots:
  secure-assets:
    interface: content
    content: secure-assets
    source:
      read:
        - $SNAP/secure-assets/${SNAPCRAFT_PROJECT_NAME}

  service-token:
    interface: content
    content: service-token
    source:
      write:
        - $SNAP_DATA/service-token/${SNAPCRAFT_PROJECT_NAME}

  package-assets:
    interface: content
    content: package-assets
    source:
      read:
        - $SNAP/package-assets/${SNAPCRAFT_PROJECT_NAME}





1 Like

Doesn’t the same way you use for “dayalayerdeb” work here ?

Yes it worked! I had to have additional stage packages.

1 Like