• chevron_right

      Movim 0.24 Mueller

      Timothée Jaussoin · pubsub.movim.eu / Movim · 2 days ago - 20:51 edit · 2 minutes · 8 visibility

    Movim 0.24, codename Mueller is out. Let's dive in all the new exciting things that you can find in this new release!

    What's new?

    XEP-0386: Bind 2, XEP-0388: Extensible SASL Profile and XEP-0474: SASL SCRAM Downgrade Protection

    Movim was definitely not the first one integrating those XMPP extensions but their implementation finally brings a much modern authentication stack to the project.

    Bind 2 and Extensible SASL Profile greatly simplifies the authentication flow allowing Movim to connect (and reconnect) even faster, don't worry the older method is still there and will allow you to connect on #XMPP servers that don't support yet this new mechanism.

    SASL SCRAM Downgrade Protection is a small security layer that sits on top of SASL (the authentication framework used by XMPP) to prevent channel-binding downgrades attack during the handshakes methods. It starts to be enforced by several servers nowadays such as ejabberd.

    We would like to thank fabiang that did an awesome work on the #PHP #SASL library to add the SCRAM Downgrade Protection to it and allow a proper integration of the feature in Movim. Thanks!

    Complete page navigation loading refactoring

    You may not have seen it but a big #refactoring work was done under the hood to greatly simplify the navigation system in Movim.

    This allows you to have a working and reliable "back-button" experience across the user interface. It is actually especially noticeable on mobile where the back button is used a lot to switch between the different UI elements (drawers, pages, sliders...).

    This refactoring also fixed a few important bugs regarding the user interface internal events that were creating weird behaviors. For example, in some cases, when you were loading several time the same page in a row, the same event was attached several time to some buttons creating an mess when clicking on it.

    And finally the browser - server connection (that relies on a Websocket) was also refactored and simplified fixing numerous connectivity bugs that we had until now.

    Changes when publishing an article

    A new post publish form

    The post publication form was slightly reorganized. The post privacy toggle was more clearly defined and another one, to disable comments and likes, was added next to it.

    Interface improvements

    Since its big rewrite in 2014 Movim relies on the Google #Material Design system. This version continue the integration of Material 3 with the redesign of the search and chat boxes as well as small forms and buttons details.

    A new placeholder was also added when starting a new chat allowing you to quickly add the user to your contact list or block him.

    New chat placeholder

    Other fixes and improvements

    A few #OMEMO bugs were also fixed, especially the bug #1261 that was preventing Movim users to decrypt their own messages in chatrooms.

    Movim <3 Linphone

    We also fixed an annoying video-conferencing bug (#1274) that was preventing Movim to accept some specific audio and video calls. This allows Movim to process calls properly coming from #SIP bridges and to connect with SIP clients like Linphone !

    We would like to especially thanks toastal for his several contributions to the project including internal image size picture management, a big refactoring of the internal language management system and some more minor interface and performances fixes.

    What's next?

    This version prepared the last important bricks required to introduce the early steps of the big audio and video-conferencing refactoring, especially with all the navigation and interface internal events management that was done the past few releases.

    We will tell you more about it soon, stay tuned!

    In the meantime, please share the good news around you and don't forget to update your server if you're an admin!

    That's all folks!

    • chevron_right

      Movim 0.21 - Whipple

      Timothée Jaussoin · pubsub.movim.eu / Movim · Wednesday, 29 March, 2023 - 21:43 · 4 minutes · 3 visibility

    Movim 0.21, codename Whipple, is finally out!

    Party GIF

    Let's have a look of all the new and improved things that you can find in this big #release 🥳

    Message replies

    You can now reply to messages thanks to the implementation of the XEP-0461: Message Replies.

    Message replies in action

    More and more clients in the XMPP ecosystem supports this feature, including Slidge, new XMPP gateways project that is allowing you to bridge Movim with Telegram, Discord and many others chat platforms.

    Push Notifications

    Movim now integrates WebPush. Never miss a message, even when Movim is closed. This feature is also working when you install Movim as a Progressive Web App on your Android or iOS device.

    Configure your Push Notification from the new panel

    Improved account configuration

    The configuration panel has been redesigned to be more accessible.

    You can now block contacts directly from your Movim instance and manage your block-list from the panel.

    Microphones and webcams can also be configured and tested from the Audio & Video configuration tab.

    Audio and Video configuration

    New emojis

    This version brings the support of Unicode 14 and many new emojis that you can use in your messages, posts, replies and reactions.

    Redesign

    Movim is following the #Material Design guidelines since 2014. This release is bringing a fresh redesign of the components and animations based on Material 3.

    The main menu was reorganized to clarify the navigation and hide the second-level pages in a sub-menu that appears when hovering the account item.

    Following this redesign Movim accounts can now set a banner next to their avatars.

    A profile with a banner

    Share and Send To

    The Send To feature, that allows you to send articles to contacts was completed by a Share feature allowing you to share the article in a new publication on your personnal blog on in a Community that you're in. Useful to share things around !

    Sharing an article

    Audio messages

    Movim can now play and record #audio messages.

    Record and send audio messages

    Gallery Communities

    When creating or configuring your Communities you can now set a Community type. The Gallery Community forces the publications to contain at least one image and display them as a grid.

    A Gallery Community

    This feature is the result of a long clarification and standardization work made on XMPP Pubsub with the pubsub#type attribute, the introduction of a new XEP based on that change called XEP-0472: Pubsub Social Feed and the support of pubsub#type in ejabberd (related ticket).

    Performances, memory consumption and stability

    A very important work was done to limit the Movim processes memory consumption.

    The daemon and subprocesses are now using PHP Opcache to load and share only once lots of files that were previously loaded multiple time during the Movim runtime. PHP modules are also loaded using a predefined whitelist to limit the usage of useless modules in memory.

    DotEnv configuration

    The old configuration system has been moved to the DotEnv standard. This change merges all the previous configuration (database, daemon and paths) into an unique .env file.

    They can also be set using environment variable directly in your Docker Compose, or Web Server (using SetEnvin Apache for example).

    The official Movim Docker image was also updated to fit those changes.

    Migration from Movim 0.20

    If you are planning to upgrade your current Movim instance please follow those few steps:

    1. Copy and rename the .env.example file in .env and complete the few configuration variables in it. They should be the same as the one you set in the previous db.inc.php file and your daemon parameters.
    2. Remove the db.inc.php file
    3. Remove all the daemon.php parameters from your init.d, systemd services or other scripts. The daemon launch command should look this way: $ php daemon.php start.

    ...and as always, don't forget to run the migrations (php composer.phar movim:migrate) and restart your daemon.

    XMPP Pubsub node security and restrictions

    Movim 0.21 is not trusting anymore posts, likes and comments that are not containing the explicit identifier (Jabber ID) of the publisher and therefore now rely on this part of the XEP-0060: Pubblish-Subscribe - 12.16 Associating Events and Payloads with the Generating Entity.

    All the existing likes and comments might be not counted anymore or seen as "Non trusted" ones. All the new published ones will be configured properly.

    Migration from Movim 0.20

    On ejabberd

    You can update all the existing stored node configuration to force the new default configuration using the following SQL request. You might do a backup of your database before doing such changes:

    update pubsub_node_option set val = `publisher` where name = `itemreply` and val = `none`
    

    ...and load those changes without restarting ejabberd:

    $ ejabberdctl clear-cache
    

    On Prosody

    Ensure that you have the expose_publisher = true set in your configuration, see the related documentation.

    What's next?

    Movim 0.22 should include two big projects.

    OMEMO rewrite ?

    The cleanup, rewrite and refactoring of the OMEMO support that is quite buggy and not opmized. We are not promising anything on this side, OMEMO is always a complex beast to handle.

    Multi-part audio and video-conference feature

    The audio and video conferencing features were already introduced a few years ago in Movim. Some preparation work has been done in this 0.21 release to be able merge back the pop-up video-conference window inside the main window for the upcoming release.

    The multi-part audio and video-conference feature is also one of the main feature that miss in Movim and is requested quite often by our users. Let's see if Movim 0.22 finally include this long awaited #feature.

    Regarding the amount of work that need to be done regarding those features it might be possible that specific funding will be requested for it to free up enough time to work properly on their integration.

    Enjoy!

    A big thanks to the #Movim community that is growing more than ever. You can find us on our main support chatroom movim@conference.movim.eu.

    If you find issues or if you want to contribute to the project you can find everything on our Github page.

    And if you want to support us, fund the development of new features and help us pay our servers, domains and communication we are actively looking for supporters and sponsors on our Patreon.

    That's all folks!