diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 783a4ae..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*~
-*.sw[op]
diff --git a/README.md b/README.md
index a962331..0cf32d2 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ It shall NOT be edited by hand.
# Jitsi Meet for YunoHost
-[![Integration level](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) ![](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/jitsi.maintain.svg)
+[![Integration level](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) ![Working status](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/jitsi.maintain.svg)
[![Install Jitsi Meet with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=jitsi)
*[Lire ce readme en français.](./README_fr.md)*
@@ -18,13 +18,13 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
Jitsi Meet is a libre software (Apache) WebRTC JavaScript app that uses Jitsi Videobridge to provide high quality, secure, and scalable video conferences.
-**Shipped version:** 1.0.5913~ynh3
+**Shipped version:** 1.0.6155~ynh1
**Demo:** https://meet.jit.si/
## Screenshots
-![](./doc/screenshots/screenshot.png)
+![Screenshot of Jitsi Meet](./doc/screenshots/screenshot.png)
## Disclaimers / important information
@@ -38,21 +38,22 @@ Jitsi Meet is a libre software (Apache) WebRTC JavaScript app that uses Jitsi Vi
## Documentation and resources
-* Official app website: https://jitsi.org/
-* Official user documentation: https://jitsi.org/user-faq/
-* Upstream app code repository: https://github.com/jitsi/jitsi-meet
-* YunoHost documentation for this app: https://yunohost.org/app_jitsi
-* Report a bug: https://github.com/YunoHost-Apps/jitsi_ynh/issues
+* Official app website:
+* Official user documentation:
+* Upstream app code repository:
+* YunoHost documentation for this app:
+* Report a bug:
## Developer info
Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing).
To try the testing branch, please proceed like that.
-```
+
+``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing --debug
or
sudo yunohost app upgrade jitsi -u https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing --debug
```
-**More info regarding app packaging:** https://yunohost.org/packaging_apps
\ No newline at end of file
+**More info regarding app packaging:**
diff --git a/README_fr.md b/README_fr.md
index b86db42..8e0ff17 100644
--- a/README_fr.md
+++ b/README_fr.md
@@ -1,10 +1,14 @@
+
+
# Jitsi Meet pour YunoHost
-[![Niveau d'intégration](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) ![](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/jitsi.maintain.svg)
+[![Niveau d'intégration](https://dash.yunohost.org/integration/jitsi.svg)](https://dash.yunohost.org/appci/app/jitsi) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/jitsi.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/jitsi.maintain.svg)
[![Installer Jitsi Meet avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=jitsi)
*[Read this readme in english.](./README.md)*
-*[Lire ce readme en français.](./README_fr.md)*
> *Ce package vous permet d'installer Jitsi Meet rapidement et simplement sur un serveur YunoHost.
Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.*
@@ -14,13 +18,13 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
Jitsi Meet est un logiciel libre (Apache) dont Jitsi Videobridge, avec WebRTC Javascript, propose des vidéos-conférences de haute qualité, sécurisées et évolutives.
-**Version incluse :** 1.0.5913~ynh3
+**Version incluse :** 1.0.6155~ynh1
**Démo :** https://meet.jit.si/
## Captures d'écran
-![](./doc/screenshots/screenshot.png)
+![Capture d'écran de Jitsi Meet](./doc/screenshots/screenshot.png)
## Avertissements / informations importantes
@@ -34,21 +38,22 @@ Jitsi Meet est un logiciel libre (Apache) dont Jitsi Videobridge, avec WebRTC Ja
## Documentations et ressources
-* Site officiel de l'app : https://jitsi.org/
-* Documentation officielle utilisateur : https://jitsi.org/user-faq/
-* Dépôt de code officiel de l'app : https://github.com/jitsi/jitsi-meet
-* Documentation YunoHost pour cette app : https://yunohost.org/app_jitsi
-* Signaler un bug : https://github.com/YunoHost-Apps/jitsi_ynh/issues
+* Site officiel de l'app :
+* Documentation officielle utilisateur :
+* Dépôt de code officiel de l'app :
+* Documentation YunoHost pour cette app :
+* Signaler un bug :
## Informations pour les développeurs
Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing).
Pour essayer la branche testing, procédez comme suit.
-```
+
+``` bash
sudo yunohost app install https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing --debug
ou
sudo yunohost app upgrade jitsi -u https://github.com/YunoHost-Apps/jitsi_ynh/tree/testing --debug
```
-**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps
\ No newline at end of file
+**Plus d'infos sur le packaging d'applications :**
diff --git a/check_process b/check_process
index fd98cd2..30f4242 100644
--- a/check_process
+++ b/check_process
@@ -15,6 +15,8 @@
upgrade=1 from_commit=ba635a58f8184b5dd4a6682b8da96909d3d31060
# 1.0.5913~ynh1
upgrade=1 from_commit=12d4758ea7582c9d15d0bd80e2eb5f03ccac8484
+ # 1.0.5913~ynh3
+ upgrade=1 from_commit=afbc84d313452267cd97b9df44801d0ae085b1f2
backup_restore=1
multi_instance=0
port_already_use=0
diff --git a/conf/jitsi-jicofo.src b/conf/jitsi-jicofo.src
index 1fbfd1a..459c976 100644
--- a/conf/jitsi-jicofo.src
+++ b/conf/jitsi-jicofo.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://download.jitsi.org/stable/jicofo_1.0-862-1_all.deb
-SOURCE_SUM=410777ca731c3b12578dcccbdee3dc0789fec2d828de95502952d6cdf0343887
+SOURCE_URL=https://download.jitsi.org/stable/jicofo_1.0-877-1_all.deb
+SOURCE_SUM=a761d32a01240a8e665bea454ac6c082a78d0d3aeb60db707f38035ea1363f35
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=deb
SOURCE_IN_SUBDIR=true
diff --git a/conf/jitsi-meet-config.js b/conf/jitsi-meet-config.js
index a2276f7..4bd9870 100644
--- a/conf/jitsi-meet-config.js
+++ b/conf/jitsi-meet-config.js
@@ -68,6 +68,11 @@ var config = {
// or disabled for the screenshare.
// capScreenshareBitrate: 1 // 0 to disable - deprecated.
+ // Whether to use fake constraints (height: 99999, width: 99999) when calling getDisplayMedia on
+ // Chromium based browsers. This is intended as a workaround for
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=1056311
+ // setScreenSharingResolutionConstraints: true
+
// Enable callstats only for a percentage of users.
// This takes a value between 0 and 100 which determines the probability for
// the callstats to be enabled.
@@ -78,6 +83,10 @@ var config = {
flags: {
// Enables source names in the signaling.
// sourceNameSignaling: false,
+
+ // Enables sending multiple video streams, i.e., camera and desktop tracks can be shared in the conference
+ // separately as two different streams instead of one composite stream.
+ // sendMultipleVideoStreams: false
},
// Disables moderator indicators.
@@ -280,6 +289,9 @@ var config = {
// Whether to enable live streaming or not.
// liveStreamingEnabled: false,
+ // Whether to enable local recording or not.
+ // enableLocalRecording: false,
+
// Transcription (in interface_config,
// subtitles and buttons can be configured)
// transcribingEnabled: false,
@@ -473,6 +485,10 @@ var config = {
// If Lobby is enabled starts knocking automatically.
// autoKnockLobby: false,
+ // Enable lobby chat.
+ // enableLobbyChat: true,
+
+ // DEPRECATED! Use `breakoutRooms.hideAddRoomButton` instead.
// Hides add breakout room button
// hideAddRoomButton: false,
@@ -511,7 +527,7 @@ var config = {
// Hides the dominant speaker name badge that hovers above the toolbox
// hideDominantSpeakerBadge: false,
- // Default language for the user interface.
+ // Default language for the user interface. Cannot be overwritten.
// defaultLanguage: 'en',
// Disables profile and the edit of all fields from the profile settings (display name and email)
@@ -540,6 +556,10 @@ var config = {
// // When 'true', it shows an intermediate page before joining, where the user can configure their devices.
// // This replaces `prejoinPageEnabled`.
// enabled: true,
+ // // Hides the participant name editing field in the prejoin screen.
+ // // If requireDisplayName is also set as true, a name should still be provided through
+ // // either the jwt or the userInfo from the iframe api init object in order for this to have an effect.
+ // hideDisplayName: false,
// // List of buttons to hide from the extra join options dropdown.
// hideExtraJoinButtons: ['no-audio', 'by-phone']
// },
@@ -567,8 +587,17 @@ var config = {
// Array with avatar URL prefixes that need to use CORS.
// corsAvatarURLs: [ 'https://www.gravatar.com/avatar/' ],
- // Base URL for a Gravatar-compatible service. Defaults to libravatar.
- // gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/',
+ // Base URL for a Gravatar-compatible service. Defaults to Gravatar.
+ // DEPRECATED! Use `gravatar.baseUrl` instead.
+ // gravatarBaseURL: 'https://www.gravatar.com/avatar/',
+
+ // Setup for Gravatar-compatible services.
+ // gravatar: {
+ // // Defaults to Gravatar.
+ // baseUrl: 'https://www.gravatar.com/avatar/',
+ // // True if Gravatar should be disabled.
+ // disabled: false
+ // },
// App name to be displayed in the invitation email subject, as an alternative to
// interfaceConfig.APP_NAME.
@@ -590,6 +619,7 @@ var config = {
// 'chat',
// 'closedcaptions',
// 'desktop',
+ // 'dock-iframe'
// 'download',
// 'embedmeeting',
// 'etherpad',
@@ -598,11 +628,11 @@ var config = {
// 'fullscreen',
// 'hangup',
// 'help',
+ // 'highlight',
// 'invite',
+ // 'linktosalesforce',
// 'livestreaming',
// 'microphone',
- // 'mute-everyone',
- // 'mute-video-everyone',
// 'participants-pane',
// 'profile',
// 'raisehand',
@@ -616,6 +646,7 @@ var config = {
// 'stats',
// 'tileview',
// 'toggle-camera',
+ // 'undock-iframe',
// 'videoquality',
// '__end'
// ],
@@ -630,7 +661,9 @@ var config = {
// timeout: 4000,
// // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE
// // Whether toolbar should be always visible or should hide after x miliseconds.
- // alwaysVisible: false
+ // alwaysVisible: false,
+ // // Indicates whether the toolbar should still autohide when chat is open
+ // autoHideWhileChatIsOpen: false
// },
// Toolbar buttons which have their click/tap event exposed through the API on
@@ -739,8 +772,25 @@ var config = {
// Enables sending participants' emails (if available) to callstats and other analytics
// enableEmailInStats: false,
- // Enables detecting faces of participants and get their expression and send it to other participants
- // enableFacialRecognition: true,
+ // faceLandmarks: {
+ // // Enables sharing your face coordinates. Used for centering faces within a video.
+ // enableFaceCentering: false,
+
+ // // Enables detecting face expressions and sharing data with other participants
+ // enableFaceExpressionsDetection: false,
+
+ // // Enables displaying face expressions in speaker stats
+ // enableDisplayFaceExpressions: false,
+
+ // // Minimum required face movement percentage threshold for sending new face centering coordinates data.
+ // faceCenteringThreshold: 10,
+
+ // // Milliseconds for processing a new image capture in order to detect face coordinates if they exist.
+ // captureInterval: 1000,
+
+ // // Maximum number of faces that can be detected from a video track.
+ // maxFacesDetected: 4
+ // },
// Controls the percentage of automatic feedback shown to participants when callstats is enabled.
// The default value is 100%. If set to 0, no automatic feedback will be requested
@@ -903,23 +953,6 @@ var config = {
// ]
// },
- // Local Recording
- //
-
- // localRecording: {
- // Enables local recording.
- // Additionally, 'localrecording' (all lowercase) needs to be added to
- // the `toolbarButtons`-array for the Local Recording button to show up
- // on the toolbar.
- //
- // enabled: true,
- //
-
- // The recording format, can be one of 'ogg', 'flac' or 'wav'.
- // format: 'flac'
- //
-
- // },
// e2ee: {
// labels,
// externallyManagedKey: false
@@ -927,14 +960,18 @@ var config = {
// Options related to end-to-end (participant to participant) ping.
// e2eping: {
- // // The interval in milliseconds at which pings will be sent.
- // // Defaults to 10000, set to <= 0 to disable.
- // pingInterval: 10000,
+ // // Whether ene-to-end pings should be enabled.
+ // enabled: false,
//
- // // The interval in milliseconds at which analytics events
- // // with the measured RTT will be sent. Defaults to 60000, set
- // // to <= 0 to disable.
- // analyticsInterval: 60000,
+ // // The number of responses to wait for.
+ // numRequests: 5,
+ //
+ // // The max conference size in which e2e pings will be sent.
+ // maxConferenceSize: 200,
+ //
+ // // The maximum number of e2e ping messages per second for the whole conference to aim for.
+ // // This is used to contol the pacing of messages in order to reduce the load on the backend.
+ // maxMessagesPerSecond: 250
// },
// If set, will attempt to use the provided video input device label when
@@ -961,7 +998,8 @@ var config = {
// Disables all invite functions from the app (share, invite, dial out...etc)
// disableInviteFunctions: true,
- // Disables storing the room name to the recents list
+ // Disables storing the room name to the recents list. When in an iframe this is ignored and
+ // the room is never stored in the recents list.
// doNotStoreRoom: true,
// Deployment specific URLs.
@@ -976,12 +1014,25 @@ var config = {
// Options related to the remote participant menu.
// remoteVideoMenu: {
+ // // Whether the remote video context menu to be rendered or not.
+ // disabled: true,
// // If set to true the 'Kick out' button will be disabled.
// disableKick: true,
// // If set to true the 'Grant moderator' button will be disabled.
- // disableGrantModerator: true
+ // disableGrantModerator: true,
+ // // If set to true the 'Send private message' button will be disabled.
+ // disablePrivateChat: true
// },
+ // Endpoint that enables support for salesforce integration with in-meeting resource linking
+ // This is required for:
+ // listing the most recent records - salesforceUrl/records/recents
+ // searching records - salesforceUrl/records?text=${text}
+ // retrieving record details - salesforceUrl/records/${id}?type=${type}
+ // and linking the meeting - salesforceUrl/sessions/${sessionId}/records/${id}
+ //
+ // salesforceUrl: 'https://api.example.com/',
+
// If set to true all muting operations of remote participants will be disabled.
// disableRemoteMute: true,
@@ -1045,6 +1096,26 @@ var config = {
*/
// dynamicBrandingUrl: '',
+ // Options related to the participants pane.
+ // participantsPane: {
+ // // Hides the moderator settings tab.
+ // hideModeratorSettingsTab: false,
+ // // Hides the more actions button.
+ // hideMoreActionsButton: false,
+ // // Hides the mute all button.
+ // hideMuteAllButton: false
+ // },
+
+ // Options related to the breakout rooms feature.
+ // breakoutRooms: {
+ // // Hides the add breakout room button. This replaces `hideAddRoomButton`.
+ // hideAddRoomButton: false,
+ // // Hides the auto assign participants button.
+ // hideAutoAssignButton: false,
+ // // Hides the join breakout room button.
+ // hideJoinRoomButton: false
+ // },
+
// When true the user cannot add more images to be used as virtual background.
// Only the default ones from will be available.
// disableAddingBackgroundImages: false,
@@ -1071,7 +1142,7 @@ var config = {
// If a label's id is not in any of the 2 arrays, it will not be visible at all on the header.
// conferenceInfo: {
// // those labels will not be hidden in tandem with the toolbox.
- // alwaysVisible: ['recording', 'local-recording', 'raised-hands-count'],
+ // alwaysVisible: ['recording', 'raised-hands-count'],
// // those labels will be auto-hidden in tandem with the toolbox buttons.
// autoHide: [
// 'subject',
@@ -1080,7 +1151,8 @@ var config = {
// 'e2ee',
// 'transcribing',
// 'video-quality',
- // 'insecure-room'
+ // 'insecure-room',
+ // 'highlight-moment'
// ]
// },
@@ -1114,14 +1186,24 @@ var config = {
// will open an etherpad document.
// etherpad_base: 'https://your-etherpad-installati.on/p/',
+ // To enable information about dial-in access to meetings you need to provide
+ // dialInNumbersUrl and dialInConfCodeUrl.
+ // dialInNumbersUrl returns a json array of numbers that can be used for dial-in.
+ // {"countryCode":"US","tollFree":false,"formattedNumber":"+1 123-456-7890"}
+ // dialInConfCodeUrl is the conference mapper converting a meeting id to a PIN used for dial-in
+ // or the other way around (more info in resources/cloud-api.swagger)
+ //
+ // For JaaS customers the default values are:
+ // dialInNumbersUrl: 'https://conference-mapper.jitsi.net/v1/access/dids',
+ // dialInConfCodeUrl: 'https://conference-mapper.jitsi.net/v1/access',
+ //
+
// List of undocumented settings used in jitsi-meet
/**
_immediateReloadThreshold
debug
debugAudioLevels
deploymentInfo
- dialInConfCodeUrl
- dialInNumbersUrl
dialOutAuthUrl
dialOutCodesUrl
disableRemoteControl
@@ -1164,6 +1246,7 @@ var config = {
forceJVB121Ratio
forceTurnRelay
hiddenDomain
+ hiddenFromRecorderFeatureEnabled
ignoreStartMuted
websocketKeepAlive
websocketKeepAliveUrl
@@ -1205,7 +1288,6 @@ var config = {
// 'liveStreaming.unavailableTitle', // shown when livestreaming service is not reachable
// 'lobby.joinRejectedMessage', // shown when while in a lobby, user's request to join is rejected
// 'lobby.notificationTitle', // shown when lobby is toggled and when join requests are allowed / denied
- // 'localRecording.localRecording', // shown when a local recording is started
// 'notify.chatMessages', // shown when receiving chat messages while the chat window is closed
// 'notify.disconnected', // shown when a participant has left
// 'notify.connectedOneMember', // show when a participant joined
@@ -1219,6 +1301,7 @@ var config = {
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited
// 'notify.kickParticipant', // shown when a participant is kicked
+ // 'notify.linkToSalesforce', // shown when joining a meeting with salesforce integration
// 'notify.moderationStartedTitle', // shown when AV moderation is activated
// 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated
// 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation
@@ -1228,11 +1311,13 @@ var config = {
// 'notify.mutedTitle', // shown when user has been muted upon joining,
// 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device
// 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera
+ // 'notify.participantWantsToJoin', // shown when lobby is enabled and participant requests to join meeting
// 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely
// 'notify.passwordSetRemotely', // shown when a password has been set remotely
// 'notify.raisedHand', // shown when a partcipant used raise hand,
// 'notify.startSilentTitle', // shown when user joined with no audio
// 'notify.unmute', // shown to moderator when user raises hand during AV moderation
+ // 'notify.hostAskedUnmute', // shown to participant when host asks them to unmute
// 'prejoin.errorDialOut',
// 'prejoin.errorDialOutDisconnected',
// 'prejoin.errorDialOutFailed',
@@ -1248,12 +1333,47 @@ var config = {
// 'transcribing.failedToStart' // shown when transcribing fails to start
// ],
+ // List of notifications to be disabled. Works in tandem with the above setting.
+ // disabledNotifications: [],
+
// Prevent the filmstrip from autohiding when screen width is under a certain threshold
// disableFilmstripAutohiding: false,
+ // filmstrip: {
+ // // Disables user resizable filmstrip. Also, allows configuration of the filmstrip
+ // // (width, tiles aspect ratios) through the interfaceConfig options.
+ // disableResizable: false,
+
+ // // Disables the stage filmstrip
+ // // (displaying multiple participants on stage besides the vertical filmstrip)
+ // disableStageFilmstrip: false
+ // },
+
+ // Tile view related config options.
+ // tileView: {
+ // // The optimal number of tiles that are going to be shown in tile view. Depending on the screen size it may
+ // // not be possible to show the exact number of participants specified here.
+ // numberOfVisibleTiles: 25
+ // },
+
// Specifies whether the chat emoticons are disabled or not
// disableChatSmileys: false,
+ // Settings for the GIPHY integration.
+ // giphy: {
+ // // Whether the feature is enabled or not.
+ // enabled: false,
+ // // SDK API Key from Giphy.
+ // sdkKey: '',
+ // // Display mode can be one of:
+ // // - tile: show the GIF on the tile of the participant that sent it.
+ // // - chat: show the GIF as a message in chat
+ // // - all: all of the above. This is the default option
+ // displayMode: 'all',
+ // // How long the GIF should be displayed on the tile (in miliseconds).
+ // tileTime: 5000
+ // },
+
// Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value.
makeJsonParserHappy: 'even if last key had a trailing comma'
diff --git a/conf/jitsi-meet-prosody.src b/conf/jitsi-meet-prosody.src
index 8f01328..840c658 100644
--- a/conf/jitsi-meet-prosody.src
+++ b/conf/jitsi-meet-prosody.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://download.jitsi.org/stable/jitsi-meet-prosody_1.0.5913-1_all.deb
-SOURCE_SUM=6ed4f76bbe9dfe4d4e6508d48e8337c2867dce8ec3de50b3b03fc60bfae8aaa4
+SOURCE_URL=https://download.jitsi.org/stable/jitsi-meet-prosody_1.0.6155-1_all.deb
+SOURCE_SUM=2503d45b9cb92d46c43c211ca3d9c3904fd9045062ac121237b0ed7695e5c727
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=deb
SOURCE_IN_SUBDIR=true
diff --git a/conf/jitsi-meet-web.src b/conf/jitsi-meet-web.src
index 1a006ed..7e7b8a2 100644
--- a/conf/jitsi-meet-web.src
+++ b/conf/jitsi-meet-web.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://download.jitsi.org/stable/jitsi-meet-web_1.0.5913-1_all.deb
-SOURCE_SUM=0d6b8ba2b56556b2816fd98f02401ff2a9a84ade594cc517827484c6fb994798
+SOURCE_URL=https://download.jitsi.org/stable/jitsi-meet-web_1.0.6155-1_all.deb
+SOURCE_SUM=3ef7e8be35efc76db7bc4f577de136f48cae0900cf2646418909449d721fcace
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=deb
SOURCE_IN_SUBDIR=true
diff --git a/conf/jitsi-videobridge.src b/conf/jitsi-videobridge.src
index 2eb57ff..b7a9152 100644
--- a/conf/jitsi-videobridge.src
+++ b/conf/jitsi-videobridge.src
@@ -1,5 +1,5 @@
-SOURCE_URL=https://download.jitsi.org/stable/jitsi-videobridge2_2.1-634-gff8609ad-1_all.deb
-SOURCE_SUM=ccfb5a023ba258b3f8bb5b816f62e269484ef09afe9f5de752b3156b0529c481
+SOURCE_URL=https://download.jitsi.org/stable/jitsi-videobridge2_2.1-681-g3544ed05-1_all.deb
+SOURCE_SUM=f3a973b7d4a767a969a3bcfa3d0bd531945d349d3378350ff76c2b6e747415b1
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=deb
SOURCE_IN_SUBDIR=true
diff --git a/manifest.json b/manifest.json
index 5103063..83e4622 100644
--- a/manifest.json
+++ b/manifest.json
@@ -6,7 +6,7 @@
"en": "Video conferencing web application",
"fr": "Application web de conférence vidéo"
},
- "version": "1.0.5913~ynh3",
+ "version": "1.0.6155~ynh1",
"url": "https://jitsi.org/Projects/JitMeet",
"upstream": {
"license": "Apache-2.0",
diff --git a/scripts/_common.sh b/scripts/_common.sh
index 992eb27..b71ccbf 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -7,6 +7,8 @@
# dependencies used by the app
pkg_dependencies="openjdk-8-jre-headless|openjdk-11-jre-headless debconf|debconf-2.0 procps uuid-runtime lua-ldap"
+ynh_app_dependencies="prosody"
+
if [ $YNH_ARCH == "armhf" ]
then
pkg_dependencies_arm="automake autoconf build-essential libtool git maven m4"
diff --git a/scripts/backup b/scripts/backup
index 9add3f2..ca1534e 100644
--- a/scripts/backup
+++ b/scripts/backup
@@ -6,7 +6,7 @@
# IMPORT GENERIC HELPERS
#=================================================
-#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
+# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
@@ -15,7 +15,7 @@ source /usr/share/yunohost/helpers
#=================================================
ynh_clean_setup () {
- ynh_clean_check_starting
+ true
}
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
diff --git a/scripts/install b/scripts/install
index 80e81fe..5436fea 100644
--- a/scripts/install
+++ b/scripts/install
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_apps
source /usr/share/yunohost/helpers
#=================================================
@@ -98,25 +99,15 @@ ynh_app_setting_set --app=$app --key=port_component --value=$port_component
#=================================================
ynh_script_progression --message="Installing dependencies..."
+ynh_install_apps --apps="$ynh_app_dependencies"
ynh_install_app_dependencies $pkg_dependencies
+
if [ $YNH_ARCH == "armhf" ]
then
ynh_script_progression --message="Installing specific arm dependencies..."
ynh_install_extra_app_dependencies --repo="deb http://security.debian.org/debian-security stretch/updates main" --package="$pkg_extra_depedencies_arm" --key="https://ftp-master.debian.org/keys/archive-key-9-security.asc"
fi
-
-if ! yunohost app list | grep -q "prosody"
-then
- yunohost tools update
- yunohost app install prosody
-else
- yunohost tools update
- yunohost app upgrade prosody
-fi
-
-ynh_app_setting_set --app=$app --key=require_prosody --value="1"
-
#=================================================
# CREATE DEDICATED USER
#=================================================
@@ -263,6 +254,14 @@ mkdir -p "/var/log/$app"
chown -R $app: /var/log/$app
chmod -R 770 /var/log/$app
+#=================================================
+# SECURE FILES AND DIRECTORIES
+#=================================================
+ynh_script_progression --message="Securing files and directories..."
+
+# Set permissions to app files
+chown -R $app: /etc/$app
+
#=================================================
# SETUP SYSTEMD
#=================================================
@@ -274,14 +273,6 @@ ynh_add_systemd_config --service=$app-jicofo --template="jitsi-jicofo.service"
#=================================================
# GENERIC FINALIZATION
-#=================================================
-# SECURE FILES AND DIRECTORIES
-#=================================================
-ynh_script_progression --message="Securing files and directories..."
-
-# Set permissions to app files
-chown -R $app: /etc/$app
-
#=================================================
# SETUP LOGROTATE
#=================================================
diff --git a/scripts/remove b/scripts/remove
index 5d6b44e..1385a61 100644
--- a/scripts/remove
+++ b/scripts/remove
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_apps
source /usr/share/yunohost/helpers
#=================================================
@@ -52,6 +53,14 @@ ynh_script_progression --message="Stopping and removing the systemd service..."
ynh_remove_systemd_config --service=$app-videobridge
ynh_remove_systemd_config --service=$app-jicofo
+#=================================================
+# REMOVE LOGROTATE CONFIGURATION
+#=================================================
+ynh_script_progression --message="Removing logrotate configuration..."
+
+# Remove the app-specific logrotate config
+ynh_remove_logrotate
+
#=================================================
# RECONFIGURE PROSODY
#=================================================
@@ -79,14 +88,6 @@ update-ca-certificates -f
ynh_systemd_action --service_name=prosody --action=restart
-#=================================================
-# REMOVE LOGROTATE CONFIGURATION
-#=================================================
-ynh_script_progression --message="Removing logrotate configuration..."
-
-# Remove the app-specific logrotate config
-ynh_remove_logrotate
-
#=================================================
# REMOVE APP MAIN DIR
#=================================================
@@ -115,27 +116,7 @@ ynh_remove_app_dependencies
ynh_app_setting_delete --app=$app --key=require_prosody
gpasswd --delete prosody $app
-# List apps requiring Prosody
-installed_apps=$(yunohost app list | grep -oP 'id: \K.*$')
-required_by=""
-installed_app_required_by=""
-for installed_app in $installed_apps
-do
- installed_app_required_by=$(ynh_app_setting_get --app=$installed_app --key="require_prosody")
- if [[ $installed_app_required_by ]]
- then
- required_by="${installed_app_required_by}"
- fi
- installed_app_required_by=""
-done
-
-# If Prosody is no more required
-if [[ ! $required_by ]]
-then
- # Remove Prosody
- ynh_print_info --message="Removing of Prosody"
- yunohost app remove prosody --purge
-fi
+ynh_remove_apps
#=================================================
# CLOSE A PORT
diff --git a/scripts/restore b/scripts/restore
index 702caea..264c514 100644
--- a/scripts/restore
+++ b/scripts/restore
@@ -6,8 +6,9 @@
# IMPORT GENERIC HELPERS
#=================================================
-#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
+# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
+source ../settings/scripts/ynh_apps
source /usr/share/yunohost/helpers
#=================================================
@@ -52,13 +53,6 @@ test ! -d $final_path \
#=================================================
# STANDARD RESTORATION STEPS
-#=================================================
-# RESTORE THE NGINX CONFIGURATION
-#=================================================
-ynh_script_progression --message="Restoring the NGINX web server configuration..."
-
-ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
-
#=================================================
# RECREATE THE DEDICATED USER
#=================================================
@@ -87,20 +81,24 @@ chown -R $app:$app "$final_path"
ynh_script_progression --message="Reinstalling dependencies..."
# Define and install dependencies
+ynh_install_apps --apps="$ynh_app_dependencies"
ynh_install_app_dependencies $pkg_dependencies
-if ! yunohost app list | grep -q "prosody"
+if [ $YNH_ARCH == "armhf" ]
then
- yunohost tools update
- yunohost app install prosody
-else
- yunohost tools update
- yunohost app upgrade prosody
+ ynh_script_progression --message="Installing specific arm dependencies..."
+ ynh_install_extra_app_dependencies --repo="deb http://security.debian.org/debian-security stretch/updates main" --package="$pkg_extra_depedencies_arm" --key="https://ftp-master.debian.org/keys/archive-key-9-security.asc"
fi
-ynh_app_setting_set --app=$app --key=require_prosody --value="1"
gpasswd --add prosody $app
+#=================================================
+# RESTORE THE NGINX CONFIGURATION
+#=================================================
+ynh_script_progression --message="Restoring the NGINX web server configuration..."
+
+ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
+
#=================================================
# CONFIGURE FIREWALL
#=================================================
diff --git a/scripts/upgrade b/scripts/upgrade
index 1480702..93c02cb 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -7,6 +7,7 @@
#=================================================
source _common.sh
+source ynh_apps
source /usr/share/yunohost/helpers
#=================================================
@@ -130,19 +131,12 @@ chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:$app "$final_path"
-#=================================================
-# NGINX CONFIGURATION
-#=================================================
-ynh_script_progression --message="Upgrading NGINX web server configuration..."
-
-# Create a dedicated NGINX config
-ynh_add_nginx_config
-
#=================================================
# UPGRADE DEPENDENCIES
#=================================================
ynh_script_progression --message="Upgrading dependencies..."
+ynh_install_apps --apps="$ynh_app_dependencies"
ynh_install_app_dependencies $pkg_dependencies
if [ $YNH_ARCH == "armhf" ]
@@ -151,18 +145,16 @@ then
ynh_install_extra_app_dependencies --repo="deb http://security.debian.org/debian-security stretch/updates main" --package="$pkg_extra_depedencies_arm" --key="https://ftp-master.debian.org/keys/archive-key-9-security.asc"
fi
-if ! yunohost app list | grep -q "prosody"
-then
- yunohost tools update
- yunohost app install prosody
-else
- yunohost tools update
- yunohost app upgrade prosody
-fi
-
-ynh_app_setting_set --app=$app --key=require_prosody --value="1"
gpasswd --add prosody $app
+#=================================================
+# NGINX CONFIGURATION
+#=================================================
+ynh_script_progression --message="Upgrading NGINX web server configuration..."
+
+# Create a dedicated NGINX config
+ynh_add_nginx_config
+
#=================================================
# SPECIFIC UPGRADE
#=================================================
@@ -252,6 +244,14 @@ mkdir -p "/var/log/$app"
chown -R $app: /var/log/$app
chmod -R 770 /var/log/$app
+#=================================================
+# SECURE FILES AND DIRECTORIES
+#=================================================
+ynh_script_progression --message="Securing files and directories..."
+
+# Set permissions on app files
+chown -R $app: /etc/$app
+
#=================================================
# SETUP SYSTEMD
#=================================================
@@ -263,14 +263,6 @@ ynh_add_systemd_config --service=$app-jicofo --template="jitsi-jicofo.service"
#=================================================
# GENERIC FINALIZATION
-#=================================================
-# SECURE FILES AND DIRECTORIES
-#=================================================
-ynh_script_progression --message="Securing files and directories..."
-
-# Set permissions on app files
-chown -R $app: /etc/$app
-
#=================================================
# SETUP LOGROTATE
#=================================================
diff --git a/scripts/ynh_apps b/scripts/ynh_apps
new file mode 100644
index 0000000..0faad86
--- /dev/null
+++ b/scripts/ynh_apps
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+# Install others YunoHost apps
+#
+# usage: ynh_install_apps --apps="appfoo?domain=domain.foo&path=/foo appbar?domain=domain.bar&path=/bar&admin=USER&language=fr&is_public=1&pass?word=pass&port=666"
+# | arg: -a, --apps= - apps to install
+#
+# Requires YunoHost version *.*.* or higher.
+ynh_install_apps() {
+ # Declare an array to define the options of this helper.
+ local legacy_args=a
+ local -A args_array=([a]=apps=)
+ local apps
+ # Manage arguments with getopts
+ ynh_handle_getopts_args "$@"
+
+ # Split the list of apps in an array
+ local apps_list=($(echo $apps | tr " " "\n"))
+ local apps_dependencies=""
+
+ # For each app
+ for one_app_and_its_args in "${apps_list[@]}"
+ do
+ # Retrieve the name of the app (part before ?)
+ local one_app=$(cut -d "?" -f1 <<< "$one_app_and_its_args")
+ [ -z "$one_app" ] && ynh_die --message="You didn't provided a YunoHost app to install"
+
+ yunohost tools update apps
+
+ # Installing or upgrading the app depending if it's installed or not
+ if ! yunohost app list --output-as json --quiet | jq -e --arg id $one_app '.apps[] | select(.id == $id)' >/dev/null
+ then
+ # Retrieve the arguments of the app (part after ?)
+ local one_argument=$(cut -d "?" -f2- <<< "$one_app_and_its_args")
+ [ ! -z "$one_argument" ] && one_argument="--args $one_argument"
+
+ # Install the app with its arguments
+ yunohost app install $one_app $one_argument
+ else
+ # Upgrade the app
+ yunohost app upgrade $one_app
+ fi
+
+ if [ ! -z "$apps_dependencies" ]
+ then
+ apps_dependencies="$apps_dependencies, $one_app"
+ else
+ apps_dependencies="$one_app"
+ fi
+ done
+
+ ynh_app_setting_set --app=$app --key=apps_dependencies --value="$apps_dependencies"
+}
+
+# Remove other YunoHost apps
+#
+# Other YunoHost apps will be removed only if no other apps need them.
+#
+# usage: ynh_remove_apps
+#
+# Requires YunoHost version *.*.* or higher.
+ynh_remove_apps() {
+ # Retrieve the apps dependencies of the app
+ local apps_dependencies=$(ynh_app_setting_get --app=$app --key=apps_dependencies)
+ ynh_app_setting_delete --app=$app --key=apps_dependencies
+
+ if [ ! -z "$apps_dependencies" ]
+ then
+ # Split the list of apps dependencies in an array
+ local apps_dependencies_list=($(echo $apps_dependencies | tr ", " "\n"))
+
+ # For each apps dependencies
+ for one_app in "${apps_dependencies_list[@]}"
+ do
+ # Retrieve the list of installed apps
+ local installed_apps_list=$(yunohost app list --output-as json --quiet | jq -r .apps[].id)
+ local required_by=""
+ local installed_app_required_by=""
+
+ # For each other installed app
+ for one_installed_app in $installed_apps_list
+ do
+ # Retrieve the other apps dependencies
+ one_installed_apps_dependencies=$(ynh_app_setting_get --app=$one_installed_app --key=apps_dependencies)
+ if [ ! -z "$one_installed_apps_dependencies" ]
+ then
+ one_installed_apps_dependencies_list=($(echo $one_installed_apps_dependencies | tr ", " "\n"))
+
+ # For each dependency of the other apps
+ for one_installed_app_dependency in "${one_installed_apps_dependencies_list[@]}"
+ do
+ if [[ $one_installed_app_dependency == $one_app ]]; then
+ required_by="$required_by $one_installed_app"
+ fi
+ done
+ fi
+ done
+
+ # If $one_app is no more required
+ if [[ -z "$required_by" ]]
+ then
+ # Remove $one_app
+ ynh_print_info --message="Removing of $one_app"
+ yunohost app remove $one_app --purge
+ else
+ ynh_print_info --message="$one_app was not removed because it's still required by${required_by}"
+ fi
+ done
+ fi
+}