Friendica 2018.09 released

Dear everybody in the Federation, the Fediverse and anywhere else, the Friendica team is pleased to announce the release of Friendica The Tazmans Flax-lily 2018.09.

This release brings the long awaited restructuring of the item table in the database, alongside some 100 closed issues from the tracker. Please see the CHANGELOG file for the complete overview of the changes. Here just a short list of the noteworthy changes since the 2018.05 release of Friendica.

  • The long awaited restructuring of the item table of the database will finally be included in this release. The needed changes and alterations of the database structure and content will take some time. Depending on the resources available on your system this can take hours or even days. The maintenance mode will inform you about the progress.
  • The configuration structure is changed. Your old `.htconfig.php` file will still work, but you will get a notification in the admin panel with some hopefully explaining text on how to convert your settings to the config file. In some cases the encoding of the displayed text got mangled up, if you are suffering from such garbage you need to switch to the new config style and set the correct encoding for the database.
  • The `.htaccess` file is no part of the git repository anymore. Instead we now ship the `.htaccess-dist` file that you have to copy to the `.htaccess` location. This has the advantage that you can now customise the `.htaccess` file to meet your requirements. Please make a copy of your old `.htaccess` file should you have made any changes and restore the file after the update from the backup or the distributed file. Without a working `.htaccess` file your node will probably not work!
  • We removed the old syntax highlighting mechanism from `[code]` blocks due to problems federating the highlighted syntax to other platforms. There will be an addon for this in the next release.
  • The libravatar service will be continued, so contrary to the note with the last release, you can keep using the libravatar addon to automatically generate avatar pictures for your users.

Thanks everyone who has made this release possible. Your work is much appreciated!

How to Update

Updating from old Friendica versions

If you are updating from a version older then Friendica 3.5.4 you have to make the update process in two steps due to a change in the updating procedure. First update to the 3.5.4 release and then update to the current release.

Please further note, that since Friendica 3.6 we use composer for dependency management. If you are updating via git, you have to remember to update the dependencies as well.

Pre-Update Procedures

Ensure that the last backup of your Friendica installation was done recently. While testing, we did not encounter problems (except those listed below), but better save than sorry.

This is especially true during this update for your `.htaccess` file which we removed from the repository so you can make local adjustments to the files without further conflicts. Please make a copy of the file before you start the update and restore it afterwards. If you have not made any changes to the file, you can use the new `.htaccess-dist` file and copy that to the `.htaccess` file.

Using the Archive files

If you had downloaded the source files in an archive file (zip or tar.gz) please download the current version of the archive from GitHub (friendica-full-2018.09.tar.gz and friendica-addons-2018.09.tar.gz and unpack it on your local computer.

As many files got deleted or moved around, please upload the unpacked files to a new directory on your server (say friendica_new) and copy over your existing `.htconfig.php` and `.htaccess` files. Afterwards rename your current Friendica directory (e.g. friendica) to friendica_old and friendica_new to friendica.

The files of the dependencies are included in the archive (make sure you are using the friendica-full-2018.09 archive), so you don’t have to worry about them.

Please be aware of the changes in the configuration format. You should follow the instructions linked from your admin panel as soon as possible to move your configuration to the new location.

Using git

Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository. Remember to also update the dependencies with composer.

    cd friendica
    git pull
    bin/composer.phar install
    cd addon
    git pull

If you want to switch the branch (e.g. if you helped testing the RC code) please do so after the pull using `git checkout`.

Be aware that the `.htaccess` file was removed from the git repository. You have to restore yours from a backup (if you have done local changes) or from the `.htaccess-dist` file (copy the file to `.htaccess` if you had not done any changes to the old `.htaccess` file).

Post-Update Procedures

Restore your .htaccess file from the backup or the .htaccess-dist file.

The conversion process of the items stored in the database can take a long time. Reports indicate some hours to days or even weeks depending on the number of stored items and the available resources on the server.

If you can start the process directly from the command line interface, this will speed up the process significantly. To do so run the following command (use screen or a similar tool so you can detach from the session while the process is running):

    bin/console postupdate

from the base of your Friendica installation.

The conversation of the stored items to the new structure of the database will cause some load on the server. It will not interfere with the daily usage of your Friendica node. Once it is finished the needed storage for the database should be lowered significantly, especially on large nodes.

Known Problems

Should the DB update process get stuck

If you encounter this, please initiate the DB update manually from the command line by running the script

    bin/console dbstructure update

from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned below.

Problem with InnoDB on MySQL 5.7

One user reported problems during the update of the database using MySQL 5.7 getting the error message `Creating index ‘PRIMARY’ required more than ‘innodb_online_alter_log_max_size’ bytes of modification log. Please try again.` from MySQL. If you encounter this problem, please try the following:

  • increase the config value mentioned in the error message above,
  • execute this command in your mysql console: `update config set v=1278 where k=”post_update_version”;`
  • after this execute the command `bin/console postupdate`.

How to Contribute?

If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.

Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with git(hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.

Thanks again everyone who helped making this release possible and have fun!


Friendica 2018.12 RC available

Today we have branched off the release candidate (RC) for the upcoming 2018.12 release of Friendica The Tazmans Flax-lily. Over the last quarter of the year many issues were resolved, alongside with some enhancements and new features. Most noteworthy the initial support of ActivityPub as communication protocol between nodes in the Fediverse.

For all these changes we now feel it is time for them to get released. Before this will happen, we’d like to invite you, to test them and report back some rough edges and problems you encountered. We are especially interested in the experiences of people who are currently running the 2018.09 release of Friendica.

If you are updating from an older version then the 2018.09 release, please first update your Friendica instance to that version as there were several important changes in that version. Afterwards you can continue to update to the RC branch.

How to help testing the release candidate?

Please pull the current sources for the core of Friendica and the addons from github. You should see a notification about a new branch called 2018.12-RC during the pull. in both repositories. You just need to checkout this branch with a

git checkout 2018.12-rc

and remember to follow the usual steps after updating using git. Please report any issues you encounter using either the issue tracker at github or the Friendica support or admin forums.

Should the DB update process get stuck

If you encounter this, please initiate the DB update manually from the command line by running the script

./bin/console dbstructure update

from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned above.


Friendica Berlin-Hackathon 2018

Last weekend we had our Hackathon in Berlin. Thanks to the nice people of the youth-club E-LOK we could use their venue again. Enjoying the crisp November air in the garden while hacking and discussing in the warmth inside. Thanks a lot for the opportunity!

Entrance area of the youth-club E-LOK in Berlin

Entrance area of the youth-club E-LOK in Berlin

Apart from enjoying the garden, what did we do?

  • We fixed a number of bugs in the user interface, enhanced the documentation and worked on the translations.
  • There were several issues with the Vagrant machine we could solve. Furthermore we discussed some changes to the machine we want to add as features in the future.
  • We discussed a potential change in the ~nickname viewpoint of the profile and turn it into a more blog like view to the postings.
  • Some time ago we started to discuss the state of various of the additional features of Friendica and the reasoning behind putting them behind that curtain. Over the Hackathon we evaluated the results of that discussion and changed their state accordingly.
  • And last but not least we spend some time discussing the various ways to block and ignore other accounts and their content. Starting from this discussion we started a clarification process which will hopefully lead to a cleaner interface to these features in Friendica in the near future.

Thanks everybody who made the Hackathon a wonderful weekend–it was real fun!


ActivityPub support in Friendica

What is ActivityPub?

In the last couple of weeks support for ActivityPub (AP) has landed in Friendica. For those who do not know AP–it is the attempt to provide a common protocol different projects can use to let their users and server communicate among each other. It was developed by the W3C Social Working Group and is adopted in the realm of the Fediverse/Federation by other projects like Funkwhale, Hubzilla, Mastodon, Pleroma or Osada.

Current state of implementation

At this point AP implementation is still a work in progress. Although many parts already charmingly work.

So what can you already use?

  • You can follow and un-follow accounts that support the AP protocol. We mainly test with Mastodon and Pleroma, so other AP supporting projects might not work at the moment. If you encounter such a case, please report it in the Support Forum or open a new issue at github.
  • The public and non-public communication works. You can write new postings and comments; like, unlike and delete them.
  • The distribution of comments for public postings is done both ways; thread based like e.g. in Friendica and diaspora* by the creator of a thread, and per posting as known from OStatus based systems.
  • The thread completion works the same, as Friendica already does the completion for threads from GNUsocial, so conversations are not torn apart.
  • When the initial distribution of your posting was not successful for some contacts, the posting will be re-queued for a later delivery retry.

Some things currently do not work, of have rough edges at the borders of the Friendica network to the (or some) other parts of the Fediverse. Among these, the most prominent are

  • AP does not support direct messages. There is only the workaround to make an non-public posting, restricted to one recipient and mention the recipient.
  • Resettling of your account to another node, does not work over AP.

And of course, you may find other quirks along the way. For the things that are currently not possible with AP we use the old ways, if they existed, so you wont loose functionality.

When can I use it?

You already can. That is, if your Friendica node is running the current development version of the code from the development branch. If you are running the current stable 2018.09 release (or an older version) you will get AP support with the December release of Friendica.

So stay tuned 😉


Friendica Hackathon 2018

Three times we’ll wake up, be hot then it’s Friendica hackathon weekend.

We are grateful that we can use the youth-club E-LOK, Laskerstraße 6-8 near Ostkreuz station in Berlin, again as venue for the Friendica hackathon in Berlin this year. Some of us will gather at Friday (that is the 16th November) afternoon at the venue for set-up and already doing some work. Hacking will most likely really happen at Saturday and Sunday; focusing the work on the open issues of the upcoming 2018.12 release. If you are interested in the progress, you can follow it with the Berlin2018 label for closed issues . If you want to join from abroad, we will be online at the Friendica IRC channel (#friendica at freenode.net) most of the time.

Entrance area of the youth-club E-LOK in Berlin

Entrance area of the youth-club E-LOK in Berlin

If you want to join us at the hackathon. Please contact Tobias and let him know, so that the snacks wont run out at Saturday evening 😉 But don’t hesitate, spontaneous visitors are welcome as well!

Happy hacking!


Friendica 2018.08 RC available

Today we have branched off the release candidate (RC) for the upcoming 2018.08 release of Friendica The Tazmans Flax-lily. Over the last 3 month many issues were resolved, alongside with some enhancements and new features. For all these changes we now feel it is time for them to get released. Before this will happen, we’d like to invite you, to test them and report back some rough edges and problems you encountered. We are especially interested in the experiences of people who are currently running the 2018.05 release of Friendica.

Some things you should be aware of before testing:

  • The long awaited restructuring of the item table of the database will finally be included in this release. The needed changes and alterations of the database structure and content will take some time. Depending on the resources available on your system this can take hours or even days. The maintenance mode will inform you about the progress.
  • The configuration structure is changed. Your old .htconfig.php file will still work, but you will get a notification in the admin panel with some hopefully explaining text on how to convert your settings to the config file. In some cases the encoding of the displayed text got mangled up, if you are suffering from such garbage you need to switch to the new config stile and set the correct encoding for the database.
  • The .htaccess file is no part of the git repository anymore. Instead we now ship the .htaccess-dist file that you have to copy to the .htaccess location. This has the advantage that you can now customize the .htaccess file to meet your requirements. Please make a copy of your old .htaccess file should you have made any changes and restore the file after the switch to the RC branch from the backup or the distributed file. Without a working .htaccess file your node will probably not work!

How to help testing the release candidate?

Please pull the current sources for the core of Friendica and the addons from github. You should see a notification about a new branch called 2018.08-RC during the pull. in both repositories You just need to checkout this branch with a

git checkout 2018.08-rc

and remember to follow the usual steps after updating using git. Please report any issues you encounter using either the issue tracker at github or the Friendica support or admin forums.

For a complete list of changes, please have a look at the file listing of this pull request at github.

Should the DB update process get stuck

If you encounter this, please initiate the DB update manually from the command line by running the script

./bin/console dbstructure update

from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned above.

One user reported problems during the update of the database using MySQL 5.7 getting the error message Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.from MySQL. If you encounter this problem, please try the following:

  • increase the config value mentioned in the error message above,
  • execute this command in your mysql console: update config set v=1278 where k="post_update_version";
  • after this execute the command bin/console postupdate.

Friendica 2018.05 released

Dear Federation, the Friendica team is pleased to announce the release of Friendica The Tazmans Flax-lily 2018.05.

Back on track with scheduled releases, after 3.6 took such a long time. In this release we have packed some bug fixes and enhancements. After an incompatibility glitch with the last release, Friendica 2018.05 is now again compatible with PHP 5.6. However we recommend using a more recent PHP version to further enhance the performance gain from the ongoing overhaul of the Friendica code and processes. Obviously GDPR was one thing we concentrated on for this release. Identifying problems in existing features (e.g. account and node mobility), adding new features (see below) and making things more transparent. To make a long story short, here a list of the noteworthy changes since the last release:

  • Finnish translation was added to the repository from Transifex. With it, Friendica now has 20 localizations from which 11 have more then 80% of the core plattform translated (DE, EN, EN-GB, EN-US, ES, FI, FR, IT, PL, RU, ZH-CN).
  • New module for Terms of Services for your node that can be activated from the admin panel. If the module is activated links from the general information page and the user registration will be added. Additionally a basic privacy statement can be shown in both, the TOS page and the registration page.
  • Many utility scripts are now bundled in a console that can be found in the bin directory. Please see bin/console –help for all available commands.
  • When entering a new password, the choosen one will be checked locally against a database of exposed passwords.
  • As libravatar is closing their service we have added a new alternative to the gravatar service based on David Revoy’s cat-avatar-generator: the catavatar.
  • The long deprecated themes frost( and frost-mobile have been removed from the Friendica repository. If you need them, you can find them in the deprecated-themes repository.

For a list of further changes, please have a look at the CHANGELOG file.

2018.05 release word cloud

wordcloud from the commit messages

Thanks to everyone who made this release possible, by writing code, translating the user interface and reporting issues!

How to update?

Pre-Update procedures

Ensure that the last backup of your Friendica database was done recently. While testing, we did not encounter problems, but better save than sorry.

From the archive files

If you had downloaded the source files in an archive file (zip or tar.gz) please download the current version of the archive from GitHub (friendica-full-2018.05.tar.gz and friendica-addons-2018.05.tar.gz) and unpack it on your local computer.

As many files got deleted or moved around, please upload the unpacked files to a new directory on your server (say friendica_new) and copy over your existing .htconfig.php file. Afterwards rename your current Friendica directory (e.g. friendica) to friendica_old and friendica_new to friendica.

The files of the dependencies are included in the archive (make sure you are using the friendica-full-2018.05 archive), so you don’t have to worry about them.

From git

Regardless of the branch you are on (master, develop or 2018.05-rc) all you have to do to get the new code is to run

git pull

on your server in the base and the addon directory. Remember to update the dependencies via composer as well.

If you helped testing the release candidate, you should also switch to either the master or the develop branch. Thanks for testing!

If you are updating from an older version then the 3.6 release, please be aware that Friendica is now using composer to manage the dependencies. After you pulled the latest code, you have to check the dependencies for updates as well. To do so run

bin/composer.phar install

from the base directory of your Friendica installation. To be able to extract the downloaded archives, you need to have the php-zip module installed on your server. If you don’t want to remember this every time you pull, you can also use a so called git-hook to do it automatically. Please have a look at the docs for further information about this.

If you are updating from a version older then 3.5.4 you have to make the update process in two steps due to a change in the updating procedure. First update to the 3.5.4 release and then update to the current release.

Post-Update procedures

If you are updating from the 3.6 release (or older versions) of Friendica please remember to change the path to the worker in the cron job to adopt the changed location.

It should now be something along these lines:

/usr/bin/php bin/worker.php

Among other things the worker will detect changes to the database structure. The changes will be applied automatically and may, depending on the size of your table (especially the item table) and the available resources on the server, take some time. On larger systems this can be hours.

How to Contribute?

If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.

Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with git(hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.

Thanks everyone who helped making this release possible and have fun!


Friendica 3.6 released

The year started with sad news that Tony Baldwin passed away January 6th. Tony was an early member of the Friendica/RedMatrix/Hubzilla community who contributed ideas, addons, themes and utility tools. He was a great spirit among the FLOSS people, an artist, a translator, an interpreter and a great friend who is deeply missed.

This release is dedicated to the memory of Tony “tazman” Baldwin.

Screenshot of the Diabook theme

Screenshot of the Diabook theme by Tony “tazman” Baldwin CC BY-SA 3.0 Source en.wikipedia.org

With no further ado, we’d like to present to you Friendica 3.6 The Tazmans Flax-​lily.

Noteworthy Changes

It took a long while this time for the developers find the opportunity to say now is the right time. Initially we wanted to have the release after last years hackathon, but then the big adventure of reorganising the code was started and that took some time. But the long wait was worth it, the code got cleaner and faster.

Some things we want to highlight are:

  • You can now interact with postings on the community page, even if you are not connected with the author.
  • Forums can now be addressed with an !, e.g. !helpers. The ACL dialog does this automatically when you select a forum as recipient and has the forums listed separately from user groups and regular contacts. Addressing a forum with an ! will make the posting exclusively for the subscribers to the forum (public or private depends on the forum settings).
  • You can now follow hashtags
  • Dependency management is now done using composer (see below).
  • The API was improved, letting the native clients provide a nicer mobile user experience.

Additionally we fixed numerous bugs that the community had found and we polished some quirks and added some more features. For the complete list of changes, please see the CHANGELOG file.

You can find the video on peertube and Vimeo.

How to Update?

We started to use composer for dependency management. This means, that if you are using git to manage the Friendica sources on your server, there is now an additional step in the update process. If you used the archives provided, you don’t need to care about it, as the archives contain the dependencies as well.

Should you encounter any problems while testing the RC code, please let us know about in the Friendica support forum, at github or over any other of the support channels.

Independent of the update path you are choosing, please be aware that there are some changes to the database structure to enhance the performance of Friendica that will be applied automatically to your database. Depending on the size of your database, especially the item table, these changes can take several hours.

If you are updating from a very old version of Friendica, you have to first update to version 3.5.4 before you can update to the 3.6 release.

Please note that due a slight oversight we did not encounter during testing in the RC phase you currently need php7 with the version 3.6. We are working on a 3.6.1 release that will then work again with php5.6. 3.6.1 should be available soon.

Updating with git from the stable (master) branch

As mentioned above, Friendica is now using composer for dependency management. This means that you have to do one further step when updating your git repository. This can be either an additional command every time you update, or adding a shell script to a git hook.

Composer needs to be able to unpack the downloaded archives, hence you need to have the PHP zip module available on your server.

If you want to do it all manually, then use the following sequence of commands: starting in the base directory of your Friendica installation.

git pull
php util/composer.phar install
cd addon
git pull

This will download the updated sources from github, call composer to get the dependencies and then change into the addon repository to fetch the new code there as well.

If you don’t want to remember this every time you pull, you can also use a so called git-hook to do it automatically. Please have a look at the docs for further information about this.

Updating with git from the RC or the development branches

As the changes regarding the dependency management are likely already in place on your system, a git pull in your Friendica core repository and the addon repository should bring you on the latest code as usual.

If you helped testing the release candidate–thanks a lot for helping!–you need to decide either to checkout the master or develop branch after the pull.

If you are using the develop branch, please be reminded about the recent path changes for many scripts.

Updating using the source archives

If you had downloaded the source files in an archive file (zip or tar.gz) please download the current version of the archive from GitHub (friendica-full-3.6.zip or tar.gz and friendica-addons-3.6.zip or tar.gz) and unpack it on your local computer.

As many files got deleted or moved around, please upload the unpacked files to a new directory on your server (say friendica_new) and copy over your existing  .htconfig.php file to friendica_new. Afterwards rename your current Friendica directory (e.g. friendica) to friendica_old and friendica_new to friendica.

The files of the dependencies are included in the archive (make sure that you use the friendica-full-3.6 archives), so you don’t have to worry about them.

After you performed the update, you need to touch your cron job for the background process. The script handling the worker has been moved to scripts directory. So your cron job must now contain: something like

/usr/bin/php scripts/worker.php

instead of the old location in the include directory.

How to contribute?

If you want to contribute to the project you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.

Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with git(hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.

Thanks everyone who helped making this release possible and have fun!

screenshot of the landing page of Friendica 3.6 using the frio theme

landing page for visitors using the frio theme


Develop: Executables have moved permanently

For anyone using the develop branch, as of now there are major changes about the executable scripts:

  • composer.pharworker.phpdaemon.php and auth_ejabberd.php have been moved to the newly created bin/ folder
  • A new CLI console has been created and can be accessed with bin/console or php bin/console.php. Calling it without arguments shows the list of available commands.
  • All the PHP executable scripts in util/ and scripts/dbstructure.php have been moved to the new console.

Thanks for your patience!


Friendica 3.6 RC available

Hey everyone, we have just branched off a release candidate branch for the next stable release of Friendica to focus on testing the code and fixing the final problem. For this to succeed, we’d like to ask you to test the 3.6-rc code on your node if you like.

This branch is for the final bug fixes and translation updates before the release. We don’t expect to heavy changes to it till the release. New features wont be included there. Instead pull requests for those should be done against the development branch as usual.

Before you update the code, please check that you have at least PHP 5.6 on your server available. Friendica does not work properly with version older then that.

How to switch to the RC branch?

If you are currently running the develop branch, then all you have to do is to checkout the 3.6-rc branch after a pull from the repositories.

git pull
git checkout 3.6-rc
cd addon
git pull
git checkout 3.6-rc

Assuming that you already have the composer call in your updating routing. In the last couple days there were no changes to the dependencies.

If you are currently using the last stable release code installed from git, the procedure is almost identical. There is one thing you should be aware of before doing the switch—we switched to composer for dependency management. If you don’t take this into account, your Friendica node will not work after the pull of the new code.

You can either add a call to

util/composer.phar install --no-dev

after the git pull in your update routines for the core repository, or you can add a small script to the “post-merge” git-hook. The script will then automatically be executed by git if there were changes to the dependencies.

Please be aware, that there were some heavy work on the database structure since the last stable release of Friendica. This means that depending on the size of your database, your node might need some time to apply all the changes. This can be several hours. The maintenance mode will inform you about the progress.

After you performed the update, you need to touch your cron job for the background process. The script handling the worker has been moved to scripts directory. So your cron job must now contain: something like

/usr/bin/php scripts/worker.php

instead of the old location in the include directory.

If you are updating from a very old version of Friendica, you have to first update to version 3.5.4 before you can update to the 3.6-rc branch.

Should you encounter any problems while testing the RC code, please let us know about in the Friendica support forum, at github or over any other of the support channels.

Thanks for testing and helping!

Solving Problems

DB Update stuck

One tester reported, that the update of the database got stuck at the item table for several hours. If you encounter this, please initiate the DB update manually from the command line by running the script

scripts/dbstructure.php update

from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned above.