unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* WIP gnu social package
@ 2017-09-25 21:14 nee
  2017-10-05 15:00 ` Ludovic Courtès
  2018-01-12 15:54 ` nee
  0 siblings, 2 replies; 6+ messages in thread
From: nee @ 2017-09-25 21:14 UTC (permalink / raw)
  To: guix-devel

Hello, I'm currently trying to package gnu social for GuixSD.

I made a package that builds the translations and installs gnu social
into the store.
I also made a service that sets up the config.php file in the /gnu/store
and generates an /etc/gnu-social/$site-name/config.php link.
The service also has an activation phase in which I run the installer to
setup the mariadb database if it doesn't exist.
Generally it's working, as it installs and you can post things.
For completion it will probably take some time and I came across some
general problems, so I thought I might send a WIP report.



I have been developing it in my GUIX_PACKAGE_PATH and might send parts
like php-fpm to master soon. WIP packages can be seen here:
https://hidamari.blue/git/packages/html/gnu-social.scm.html

   # or clone it, this takes about a minute without any output:
   git clone https://hidamari.blue/git/packages/ hidamari-blue

Here is an example config: http://paste.lisp.org/display/356859



Here are a bunch of issues I have with guixSD in general:

- Setting up the database requires the sql root password, the new
  social_db_user password, and a password for the first admin user to
  create in gnu social.
  Having plaintext passwords in /etc/config.scm sounds pretty bad.
  I'm not sure what the solution here is.
  - Could we add a password store to guix? It could automatically
    generate passwords and pass them to services.
  - Should I generate a script that must be run manually and asks for
    password input through stdin?
  - Something else?

- The password of the database-user ends up in the config.php which is
  generated by mixed-text-file. This file can be read by everyone. Can I
  somehow set the owner on it and remove the reading rights from other
  users?

Here are some other open problems with the packages:

- I build php with --enable-intl now, causes a new broken tests to
  appear.
  I on a quick look I couldn't figure out what was wrong, and I'm not
  familiar with php, so I disabled the failing tests.
  Setting the language in gnu social does not seem to work. Nothing
  happens, but the installation phase does no longer complain about the
  missing php module.

- A bunch of plugins that are shipped with gs seem to rely on writeable
  cache directories in their working directory.
  Those can not be changed through the config file.
  It will take me some time to find and patch them all.

- The admin area must be patched out and all configuration options must
  be represented by the service.

- The following plugins throw warnings: Poll, OpenId, Favorite,
  Bookmark, DirectMessage those warnings might be related to the
  php/mariadb versions used with gnu social

- common warnings that appear:
 Warning: Declaration of InviteAction::handle($args) should be
compatible with Action::handle() in
/gnu/store/qfzqxlfkrzri73jrphlqccsd35s0kcy3-gnu-social-1.2.0-beta4/actions/invite.php
on line 298

  Warning: Cannot modify header information - headers already sent by
(output started at
/gnu/store/qfzqxlfkrzri73jrphlqccsd35s0kcy3-gnu-social-1.2.0-beta4/actions/invite.php:298)
in
/gnu/store/qfzqxlfkrzri73jrphlqccsd35s0kcy3-gnu-social-1.2.0-beta4/lib/action.php
on line 1277

The /settings/poll url completely breaks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-01-12 16:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-25 21:14 WIP gnu social package nee
2017-10-05 15:00 ` Ludovic Courtès
2017-11-26 20:18   ` nee
2017-11-28 16:08     ` Ludovic Courtès
2018-01-12 15:54 ` nee
2018-01-12 17:57   ` ng0

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).