snap/snapcraft.yaml
author Edouard Tisserant <edouard.tisserant@gmail.com>
Sun, 31 Jul 2022 17:54:19 +0200
changeset 80 1088ce57d3c9
parent 79 a8b434605895
child 81 a95b2fa896e9
permissions -rw-r--r--
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
79
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     1
name: beremiz
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     2
version: '1.3-beta2'
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     3
summary: Beremiz
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     4
description: |
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     5
  Beremiz is an integrated development environment for machine automation. It is Free Software, conforming to IEC-61131 among other standards.
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     6
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     7
grade: devel
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     8
confinement: devmode
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
     9
base: core20
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    10
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    11
parts:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    12
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    13
  python-deps:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    14
    # This part provides all python2 dependencies, including interpreter
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    15
    # More particularily, it builds latest PIP supporting python2 from git
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    16
    # and uses it to collect and buid other Beremiz dependencies.
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    17
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    18
    # rational:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    19
    #  - python plugin doesn't support python2 anymore on core20+
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    20
    #  - attempts to get python2+pip+virtualenv in a core20 based snap failed
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    21
    plugin: nil
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    22
    source: https://github.com/pypa/pip/archive/refs/tags/20.3.4.tar.gz
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    23
    build-packages:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    24
      - libssl-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    25
      - libgtk-3-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    26
      - libgl1-mesa-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    27
      - libglu1-mesa-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    28
      - python2-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    29
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    30
    stage-packages:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    31
      - python2
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    32
      - python-setuptools
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    33
      # libs reclaimed by snapcraft at the end of wxPython build
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    34
      # TODO: test if still necessary since using "extensions: [gnome-3-38]"
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    35
      - libgtk-3-0
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    36
      - libegl1
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    37
      - libgl1
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    38
      - libsm6
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    39
      - libxtst6
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    40
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    41
    override-build: |
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    42
      # For some reasons site-packages needs to be created and 
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    43
      # added to PYTHONPATH during PIP (own) build.
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    44
      # Strangely, not anymore when snap is executed.
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    45
      mkdir $SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    46
      PYTHONPATH=$SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages $SNAPCRAFT_PART_INSTALL/usr/bin/python2 $SNAPCRAFT_PART_SRC/setup.py install --prefix $SNAPCRAFT_PART_INSTALL/usr
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    47
      PYTHONPATH=$SNAPCRAFT_PART_INSTALL/usr/lib/python2.7/site-packages $SNAPCRAFT_PART_INSTALL/usr/bin/pip install \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    48
          lxml \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    49
          future \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    50
          matplotlib \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    51
          zeroconf2 \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    52
          enum34 \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    53
          pyro \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    54
          sslpsk \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    55
          posix_spawn \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    56
          twisted \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    57
          nevow \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    58
          autobahn \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    59
          click \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    60
          opcua \
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    61
          wxPython==4.1.1
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    62
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    63
  beremiz:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    64
    # Beremiz python source + GCC toolchain
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    65
    # source tree is expected to be just aside snap directory
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    66
    plugin: nil
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    67
    source: beremiz
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    68
    source-type: local
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    69
    stage-packages:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    70
      - gcc
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    71
      - libc6
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    72
      - libc6-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    73
      - linux-libc-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    74
      - libgcc-9-dev
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    75
      - libgcc-s1
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    76
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    77
    override-build: |
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    78
      cp -a $SNAPCRAFT_PART_SRC $SNAPCRAFT_PART_INSTALL/beremiz
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    79
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    80
  matiec:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    81
    # Matiec ST, SFC and IL compiler.
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    82
    # source tree is expected to be just aside snap directory
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    83
    plugin: nil
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    84
    source: matiec
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    85
    source-type: local
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    86
    build-packages:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    87
      - build-essential
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    88
      - automake
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    89
      - flex
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    90
      - bison
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    91
    override-build: |
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    92
      autoreconf -i && ./configure && make
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    93
      cp -a $SNAPCRAFT_PART_BUILD $SNAPCRAFT_PART_INSTALL/matiec
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    94
      
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    95
  revisiontxt:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    96
    # Makefile generated "revisions.txt"
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    97
    plugin: nil
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    98
    source: .
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
    99
    source-type: local
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   100
    override-build: |
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   101
      cp $SNAPCRAFT_PART_SRC/revisions.txt $SNAPCRAFT_PART_INSTALL
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   102
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   103
apps:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   104
  ide:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   105
    environment:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   106
      SYSROOT: $SNAP
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   107
    command: usr/bin/python2 $SNAP/beremiz/Beremiz.py
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   108
    extensions: [gnome-3-38]
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   109
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   110
  beremiz:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   111
    environment:
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   112
      SYSROOT: $SNAP
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   113
    command: usr/bin/python2 $SNAP/beremiz/Beremiz_cli.py
a8b434605895 Add Snap Package.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff changeset
   114