├── .github
└── workflows
│ └── build-prs.yml
├── .gitignore
├── LICENSE
├── README.md
├── icons
└── jami.png
├── scripts
└── jami-gnome-wrapper
└── snap
└── snapcraft.yaml
/.github/workflows/build-prs.yml:
--------------------------------------------------------------------------------
1 | name: Build Pull Requests
2 |
3 | on:
4 | - pull_request
5 |
6 | jobs:
7 | snapcraft-build:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v2
11 | - uses: jhenstridge/snapcraft-build-action@v1
12 | id: build
13 | - uses: diddlesnaps/snapcraft-review-tools-action@v1
14 | with:
15 | snap: ${{ steps.build.outputs.snap }}
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #snapcraft specifics
2 | parts
3 | stage
4 | prime
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Snapcrafters
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | [Project]
5 |
6 |
7 | This is the snap for [Project], "Single-line elevator pitch for your amazing snap". It works on Ubuntu, Fedora, Debian, and other major Linux
8 | distributions.
9 |
10 |
15 |
16 | ## Install
17 |
18 | sudo apt install snapd-xdg-open
19 | sudo snap install my-snap-name
20 |
21 | ([Don't have snapd installed?](https://snapcraft.io/docs/core/install))
22 |
23 |
26 |
27 | Published for
with :gift_heart: by Snapcrafters
28 |
29 | ## Remaining tasks
30 |
31 | Snapcrafters ([join us](https://forum.snapcraft.io/t/join-snapcrafters/1325))
32 | are working to land snap install documentation and
33 | the [snapcraft.yaml](https://github.com/snapcrafters/fork-and-rename-me/blob/master/snap/snapcraft.yaml)
34 | upstream so [Project] can authoritatively publish future releases.
35 |
36 | - [x] Fork the [Snapcrafters template](https://github.com/snapcrafters/fork-and-rename-me) repository to your own GitHub account.
37 | - If you have already forked the Snapcrafter template to your account and want to create another snap, you'll need to use GitHub's [Import repository](https://github.com/new/import) feature because you can only fork a repository once.
38 | - [ ] Rename the forked Snapcrafters template repository
39 | - [ ] Update logos and references to `[Project]` and `[my-snap-name]`
40 | - [ ] Create a snap that runs in `devmode`
41 | - [ ] Register the snap in the store, **using the preferred upstream name**
42 | - [ ] Add a screenshot to this `README.md`
43 | - [ ] Publish the `devmode` snap in the Snap store edge channel
44 | - [ ] Add install instructions to this `README.md`
45 | - [ ] Update snap store metadata, icons and screenshots
46 | - [ ] Convert the snap to `strict` confinement, or `classic` confinement if it qualifies
47 | - [ ] Publish the confined snap in the Snap store beta channel
48 | - [ ] Update the install instructions in this `README.md`
49 | - [ ] Post a call for testing on the [Snapcraft Forum](https://forum.snapcraft.io) - [link]()
50 | - [ ] Ask a [Snapcrafters admin](https://github.com/orgs/snapcrafters/people?query=%20role%3Aowner) to fork your repo into github.com/snapcrafters, transfer the snap name from you to snapcrafters, and configure the repo for automatic publishing into edge on commit
51 | - [ ] Add the provided Snapcraft build badge to this `README.md`
52 | - [ ] Publish the snap in the Snap store stable channel
53 | - [ ] Update the install instructions in this `README.md`
54 | - [ ] Post an announcement in the [Snapcraft Forum](https://forum.snapcraft.io) - [link]()
55 | - [ ] Submit a pull request or patch upstream that adds snap install documentation - [link]()
56 | - [ ] Submit a pull request or patch upstream that adds the `snapcraft.yaml` and any required assets/launchers - [link]()
57 | - [ ] Add upstream contact information to the `README.md`
58 | - If upstream accept the PR:
59 | - [ ] Request upstream create a Snap store account
60 | - [ ] Contact the Snap Advocacy team to request the snap be transferred to upstream
61 | - [ ] Ask the Snap Advocacy team to celebrate the snap - [link]()
62 |
63 | If you have any questions, [post in the Snapcraft forum](https://forum.snapcraft.io).
64 |
65 | ## The Snapcrafters
66 |
67 | | [](https://github.com/yourname/) |
68 | | :---: |
69 | | [Your Name](https://github.com/yourname/) |
70 |
71 |
78 |
--------------------------------------------------------------------------------
/icons/jami.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/diddlesnaps/jami/1d2a757faa232f5cfd8ce213546d20074fd3618c/icons/jami.png
--------------------------------------------------------------------------------
/scripts/jami-gnome-wrapper:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | $SNAP/usr/lib/ring/dring -cd&
4 |
5 | exec "$@"
6 |
--------------------------------------------------------------------------------
/snap/snapcraft.yaml:
--------------------------------------------------------------------------------
1 | name: jami
2 | version: "20201027.1.3883929"
3 | adopt-info: jami
4 | icon: icons/jami.png
5 | summary: 'Jami: secure, distributed communication software & SIP client'
6 | description: >
7 | Jami is free software which allows its users to communicate in multiple ways.
8 |
9 | * A telephone: a simple tool to connect, communicate and share.
10 | * A teleconferencing tool: easily join calls to create conferences with multiple participants.
11 | * A media sharing tool: Jami supports a variety of video input options, including mutliple cameras and image and video files, and the selection of audio inputs and outputs; all this is supported by multiple high quality audio and video codecs.
12 | * A messenger: send text messeges during calls or out of calls (as long as your peer is connected).
13 | * A building block for your IoT project: re-use the universal communications technology of Jami with its portable library on your system of choice.
14 |
15 | confinement: strict
16 | grade: stable
17 | base: core18
18 |
19 | plugs:
20 | gnome-3-28-1804:
21 | interface: content
22 | target: $SNAP/gnome-platform
23 | default-provider: gnome-3-28-1804:gnome-3-28-1804
24 | gtk-3-themes:
25 | interface: content
26 | target: $SNAP/data-dir/themes
27 | default-provider: gtk-common-themes:gtk-3-themes
28 | icon-themes:
29 | interface: content
30 | target: $SNAP/data-dir/icons
31 | default-provider: gtk-common-themes:icon-themes
32 | sound-themes:
33 | interface: content
34 | target: $SNAP/data-dir/sounds
35 | default-provider: gtk-common-themes:sounds-themes
36 |
37 | slots:
38 | dbus-jami:
39 | interface: dbus
40 | bus: session
41 | name: net.jami.Jami
42 | dbus-ring:
43 | interface: dbus
44 | bus: session
45 | name: cx.ring.Ring
46 | dbus-jamignome:
47 | interface: dbus
48 | bus: session
49 | name: cx.ring.RingGnome
50 |
51 | layout:
52 | /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0:
53 | bind: $SNAP/gnome-platform/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0
54 | /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib:
55 | bind: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib
56 | /usr/local/share/jami-gnome:
57 | bind: $SNAP/usr/share/jami-gnome
58 |
59 | environment:
60 | DISABLE_WAYLAND: 'true'
61 | XDG_CURRENT_DESKTOP: Unity
62 |
63 | apps:
64 | jami:
65 | command: usr/bin/jami-gnome
66 | command-chain:
67 | - bin/desktop-launch
68 | - snap/command-chain/alsa-launch
69 | - bin/jami-gnome-wrapper
70 | common-id: net.jami.Jami
71 | desktop: usr/share/applications/jami-gnome.desktop
72 | slots:
73 | - dbus-jami
74 | - dbus-ring
75 | - dbus-jamignome
76 | plugs:
77 | - audio-playback
78 | - audio-record
79 | - browser-support
80 | - camera
81 | - desktop
82 | - desktop-legacy
83 | - gsettings
84 | - hardware-observe
85 | - home
86 | - network
87 | - network-bind
88 | - opengl
89 | - removable-media
90 | - unity7
91 | - wayland
92 | - x11
93 |
94 | parts:
95 | desktop-launch:
96 | source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
97 | plugin: nil
98 | build-packages:
99 | - gcc-8
100 | - qtbase5-dev
101 | - dpkg-dev
102 | stage-packages:
103 | - libqt5gui5
104 | - libqt5svg5 # for loading icon themes which are svg
105 | - try: [appmenu-qt5] # not available on core18
106 | override-pull: |
107 | snapcraftctl pull
108 | sed -i -E 's|\. \$SNAP/flavor-select|USE_gtk3=true|' gtk/launcher-specific
109 | sed -i -E 's|\. \$SNAP/flavor-select|USE_qt5=true|' qt/launcher-specific
110 | sed -i -E 's|(append_dir GTK_PATH \$RUNTIME/usr/lib/\$ARCH/gtk-2.0)|#\1|' qt/launcher-specific
111 | sed -i -E 's|\$RUNTIME|$SNAP|g' qt/launcher-specific
112 | sed -i -E 's|\$WITH_RUNTIME|no|g' qt/launcher-specific
113 | override-build: |
114 | snapcraftctl build
115 | gcc -Wall -O2 -o bindtextdomain.so -fPIC -shared src/bindtextdomain.c -ldl
116 |
117 | echo "#!/bin/bash" > desktop-launch
118 | cat common/init >> desktop-launch
119 |
120 | cat qt/runtime-exports >> desktop-launch
121 | cat gtk/runtime-exports >> desktop-launch
122 |
123 | cat common/desktop-exports >> desktop-launch
124 |
125 | cat qt/launcher-specific >> desktop-launch
126 | cat gtk/launcher-specific >> desktop-launch
127 |
128 | cat common/mark-and-exec >> desktop-launch
129 |
130 | install -D -m755 desktop-launch $SNAPCRAFT_PART_INSTALL/bin/desktop-launch
131 | install -D -m644 bindtextdomain.so $SNAPCRAFT_PART_INSTALL/lib/bindtextdomain.so
132 |
133 | mkdir -pv $SNAPCRAFT_PART_INSTALL/gnome-platform
134 |
135 | scripts:
136 | plugin: dump
137 | source: scripts
138 | organize:
139 | jami-gnome-wrapper: bin/jami-gnome-wrapper
140 |
141 | alsa-mixin:
142 | plugin: dump
143 | source: https://github.com/diddlesnaps/snapcraft-alsa.git
144 | source-subdir: snapcraft-assets
145 | build-packages:
146 | - libasound2-dev
147 | stage-packages:
148 | - libasound2
149 | - libasound2-plugins
150 |
151 | jami:
152 | after: [alsa-mixin]
153 | source: https://dl.jami.net/release/tarballs/jami_20201027.1.3883929.tar.gz
154 | source-subdir: ring-project
155 | source-type: tar
156 | plugin: nil
157 | parse-info: [usr/share/metainfo/jami-gnome.appdata.xml]
158 | override-pull: |
159 | snapcraftctl pull
160 | sed -i -E 's|(tmpName) << (PACKAGE_NAME << "_shm_")|\1 << "snap.jami." << \2|' daemon/src/media/video/sinkclient.cpp
161 | for file in jami-gnome.desktop jami-gnome.desktop.autostart; do
162 | sed -i -E 's|^Icon=.*|Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/jami.svg|' client-gnome/$file
163 | done
164 | override-build: |
165 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10
166 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20
167 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
168 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 20
169 |
170 | cd $SNAPCRAFT_PART_BUILD/daemon/contrib
171 | mkdir -p native
172 | cd native
173 | ../bootstrap
174 | make
175 |
176 | cd $SNAPCRAFT_PART_BUILD/daemon
177 | ./autogen.sh
178 | ./configure --prefix=/usr --disable-shared
179 | make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT
180 | DESTDIR=$SNAPCRAFT_PART_INSTALL make install
181 |
182 | cd $SNAPCRAFT_PART_BUILD/lrc
183 | mkdir build
184 | cd build
185 | cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
186 | -DCMAKE_PREFIX_PATH=$SNAPCRAFT_PART_INSTALL/usr \
187 | -DRING_BUILD_DIR=$SNAPCRAFT_PART_BUILD/daemon/src
188 | make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT
189 | DESTDIR=$SNAPCRAFT_PART_INSTALL make install
190 |
191 | sed -i "s|/usr|$SNAPCRAFT_PART_INSTALL/usr|g" $SNAPCRAFT_PART_INSTALL/usr/lib/cmake/LibRingClient/LibRingClientConfig.cmake
192 |
193 | cd $SNAPCRAFT_PART_BUILD/client-gnome
194 | mkdir build
195 | cd build
196 | cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
197 | -DCMAKE_PREFIX_PATH=$SNAPCRAFT_PART_INSTALL/usr \
198 | -DLibRingClient_DIR=$SNAPCRAFT_PART_INSTALL/usr/lib/cmake/LibRingClient
199 | make -j$SNAPCRAFT_PARALLEL_BUILD_COUNT
200 | DESTDIR=$SNAPCRAFT_PART_INSTALL make install
201 | build-packages:
202 | - autoconf
203 | - autoconf-archive
204 | - automake
205 | - autopoint
206 | - bzip2
207 | - cmake
208 | - curl
209 | - g++-8
210 | - gettext
211 | - gnome-icon-theme-symbolic
212 | - gzip
213 | - libappindicator3-dev
214 | - libayatana-appindicator3-dev
215 | - libasound2-dev
216 | - libavcodec-dev
217 | - libavdevice-dev
218 | - libavformat-dev
219 | - libboost-dev
220 | - libcanberra-gtk3-dev
221 | - libclutter-gtk-1.0-dev
222 | - libdbus-1-dev
223 | - libdbus-c++-dev
224 | - libebook1.2-dev
225 | - libexpat1-dev
226 | - libgnutls28-dev
227 | - libgsm1-dev
228 | - libgtk-3-dev
229 | - libjack-jackd2-dev
230 | - libjsoncpp-dev
231 | - libnotify-dev
232 | - libopus-dev
233 | - libpcre3-dev
234 | - libpulse-dev
235 | - libqrencode-dev
236 | - libsamplerate0-dev
237 | - libsndfile1-dev
238 | - libspeex-dev
239 | - libspeexdsp-dev
240 | - libsrtp0-dev
241 | - libswscale-dev
242 | - libtool
243 | - libudev-dev
244 | - libupnp-dev
245 | - libva-dev
246 | - libvdpau-dev
247 | - libwebkit2gtk-4.0-dev
248 | - libyaml-cpp-dev
249 | - qtbase5-dev
250 | - qttools5-dev
251 | - uuid-dev
252 | - yasm
253 | stage-packages:
254 | - freeglut3
255 | - libappindicator3-1
256 | - libayatana-appindicator3-1
257 | - libavcodec-extra
258 | - libavcodec57
259 | - libavdevice57
260 | - libavformat57
261 | - libdbus-1-3
262 | - libdbus-c++-1-0v5
263 | - libebook-1.2-19
264 | - libexpat1
265 | - libglu1-mesa
266 | - libgnutls30
267 | - libgsm1
268 | - libjack-jackd2-0
269 | - libjsoncpp1
270 | - libopus0
271 | - libpcre3
272 | - libqrencode3
273 | - libqt5core5a
274 | - libqt5dbus5
275 | - libqt5gui5
276 | - libqt5sql5
277 | - libqt5sql5-sqlite
278 | - libsamplerate0
279 | - libslang2
280 | - libsndfile1
281 | - libspeex1
282 | - libspeexdsp1
283 | - libswscale4
284 | - libudev1
285 | - libupnp6
286 | - libuuid1
287 | - libva-drm2
288 | - libva-glx2
289 | - libva-wayland2
290 | - libva2
291 | - libvdpau-va-gl1
292 | - libvdpau1
293 | - va-driver-all
294 |
--------------------------------------------------------------------------------