~marcustomlinson/gnome-system-monitor/snap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
name: gnome-system-monitor
adopt-info: gnome-system-monitor
summary: System Monitor
description: |
  GNOME System Monitor is a GNOME process viewer and system monitor with
  an attractive, easy-to-use interface, It has features, such as a tree
  view for process dependencies, icons for processes, the ability to hide
  processes that you don't want to see, graphical time histories of
  CPU/memory/swap usage, the ability to kill/renice processes needing root
  access, as well as the standard features that you might expect from a
  process viewer.

grade: stable # must be 'stable' to release into candidate/stable channels
confinement: strict
base: core18

plugs:
  gnome-3-32-1804:
    interface: content
    target: $SNAP/gnome-platform
    default-provider: gnome-3-32-1804
  gtk-3-themes:
    interface: content
    target: $SNAP/data-dir/themes
    default-provider: gtk-common-themes
  icon-themes:
    interface: content
    target: $SNAP/data-dir/icons
    default-provider: gtk-common-themes
  sound-themes:
    interface: content
    target: $SNAP/data-dir/sounds
    default-provider: gtk-common-themes

slots:
  # for GtkApplication registration
  gnome-system-monitor:
    interface: dbus
    bus: session
    name: org.gnome.SystemMonitor

apps:
  gnome-system-monitor:
    command: desktop-launch gnome-system-monitor
    plugs:
      - desktop
      - desktop-legacy
      - gsettings
      - unity7
      - mount-observe
      - network-observe
      - hardware-observe
      - system-observe
      - process-control
      - wayland
    desktop: usr/share/applications/gnome-system-monitor.desktop
    environment:
      GSETTINGS_SCHEMA_DIR: $SNAP/share/glib-2.0/schemas
      LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/lib/gnome-system-monitor

parts:
  desktop-gnome-platform:
    source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
    source-depth: 1
    source-subdir: gtk
    plugin: make
    make-parameters: [ "FLAVOR=gtk3" ]
    build-environment: &buildenv
      - PATH: /snap/gnome-3-32-1804-sdk/current/usr/bin:$PATH
      - XDG_DATA_DIRS: /snap/gnome-3-32-1804-sdk/current/usr/share:/usr/share:$XDG_DATA_DIRS
      - LD_LIBRARY_PATH: /snap/gnome-3-32-1804-sdk/current/lib/$SNAPCRAFT_ARCH_TRIPLET:/snap/gnome-3-32-1804-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:/snap/gnome-3-32-1804-sdk/current/usr/lib:/snap/gnome-3-32-1804-sdk/current/usr/lib/vala-current:$LD_LIBRARY_PATH
      - PKG_CONFIG_PATH: /snap/gnome-3-32-1804-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pkgconfig:/snap/gnome-3-32-1804-sdk/current/usr/lib/pkgconfig:/snap/gnome-3-32-1804-sdk/current/usr/share/pkgconfig:$PKG_CONFIG_PATH
      - GETTEXTDATADIRS: /snap/gnome-3-32-1804-sdk/current/usr/share/gettext-current:$GETTEXTDATADIRS
      - GDK_PIXBUF_MODULE_FILE: /snap/gnome-3-32-1804-sdk/current/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gdk-pixbuf-current/loaders.cache
    build-snaps: [ gnome-3-32-1804-sdk/latest/candidate ]

  gnome-system-monitor:
    after: [desktop-gnome-platform]
    source: https://gitlab.gnome.org/GNOME/gnome-system-monitor.git
    source-type: git
    source-branch: gnome-3-32
    plugin: meson
    meson-parameters:
      - --prefix=/snap/gnome-system-monitor/current/usr
      - -Dsystemd=true
    organize:
      snap/gnome-system-monitor/current/usr: usr
    build-environment: *buildenv
    override-pull: |
      snapcraftctl pull
      snapcraftctl set-version $(git describe --tags --abbrev=10)
      sed -i.bak -e 's|Icon=org.gnome.SystemMonitor$|Icon=${SNAP}/meta/gui/org.gnome.SystemMonitor.svg|g' gnome-system-monitor.desktop.in.in
      sed -i.bak -E -e 's|^(NotShowIn=.*)$|# \1|g' gnome-system-monitor.desktop.in.in
    override-build: |
      snapcraftctl build
      mkdir -p $SNAPCRAFT_PART_INSTALL/meta/gui/
      cp snapbuild/gnome-system-monitor.desktop $SNAPCRAFT_PART_INSTALL/meta/gui/
      cp data/icons/public/hicolor/scalable/apps/org.gnome.SystemMonitor.svg $SNAPCRAFT_PART_INSTALL/meta/gui/
    build-packages:
      - libglibmm-2.4-dev
      - libgtkmm-3.0-dev
      - libgtop2-dev
      - libsystemd-dev
      - policykit-1

  # workaround snapcraft trying to outsmart us by copying ldd listed libraries
  libraries:
    plugin: nil
    stage-packages:
      - libgtop-2.0-11
      - libgtkmm-3.0-1v5 
    prime:
      - "usr/lib/*/lib*mm*"
      - "usr/lib/*/libgtop*"
      - "usr/lib/*/libsigc-2.0.so.0*"