90 Commits

Author SHA1 Message Date
Devendra Tewari acb2f73e58 rpi-libcamera-apps: add new recipe
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:58 +01:00
Khem Raj 1b598573be rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines
enable mmal only when using userland graphics

Fixes builds on non-rpi machines e.g.
ERROR: Nothing PROVIDES 'userland' (but /mnt/jenkins/workspace/yocto-world-glibc/sources/meta-raspberrypi/recipes-multimedia/rpidistro-ffmpeg/rpidistro-ffmpeg_4.3.2.bb DEPENDS on or otherwise requires it)
userland was skipped: incompatible with machine qemumips (not in COMPATIBLE_MACHINE)
NOTE: Runtime target 'rpidistro-ffmpeg' is unbuildable, removing...

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-13 22:15:08 +01:00
Vincent Davis Jr ba965e3b67 raspidistro-ffmpeg: add support for building raspidistro ffmpeg
Pulls the raspidistro version of ffmpeg down and applies the necessary
patches that are located in the debian/patches folder.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Andrei Gherzan 3122d5291d omxplayer: Bump to latest revision
Also, add a deprecation note as per the project's status:
https://github.com/popcornmix/omxplayer/blob/master/README.md

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Khem Raj cfbb192e5c omxplayer: Use internal version of ffmpeg
OE-Core's ffmpeg has moved to 5.x version whose headers are not directly
compatible with what omxplayer expects anymore. Therefore use captured
version of ffmpeg and point the header search paths accordingly.

Add missing dependency on alsa-lib for libasound headers

Fixes build with master/kirkstone

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Khem Raj 9f5aaa1a29 picamera-libs: Adjust sourcedir
After switching the SRC_URI for firmware, this adjustment was needed to
let this recipe find /opt/vc path in correct place

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Martin Jansa 2bfbdd633c meta: update license names
* openembedded-core/scripts/contrib/convert-spdx-licenses.py .
  ...
  All files processed with version 0.01

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Martin Jansa 3a8359693d meta: update variable names
* openembedded-core/scripts/contrib/convert-variable-renames.py .
  ...
  All files processed with version 0.1

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Martin Jansa 076aa51c59 gstreamer1.0-plugins-bad: remove libmms PACKAGECONFIG and add gpl
* libmms was removed with 1.20.0 upgrade in:
  https://git.openembedded.org/openembedded-core/commit/?id=76433d3628cbad311b428a57b25b4e2701ee513b

* fixes:
  ERROR: gstreamer1.0-plugins-bad-1.20.0-r0 do_configure: QA Issue: gstreamer1.0-plugins-bad: invalid PACKAGECONFIG: libmms [invalid-packageconfig]

* faad now requires gpl to be enabled:
  | ../gst-plugins-bad-1.20.0/ext/faad/meson.build:1:0: ERROR: Feature faad cannot be enabled:
  |   Plugin faad explicitly required via options but GPL-licensed plugins disabled via options.
  |   Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-20 14:16:25 +00:00
Aníbal Limón a96a61c16d gstreamer1.0-plugins-good: Update bbappend to 1.20
Gstreamer upgraded to 1.20 see,

https://git.openembedded.org/openembedded-core/commit/?id=75891f361f3e9df9fc3e97c720a2ae57dda75888

Signed-off-by: Aníbal Limón <anibal@rzerosystems.com>
Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
2022-02-09 21:08:41 +00:00
Khem Raj 2e83546856 picamera-libs,python3-picamera: Limit visibility to 32 bit rpi machines
These recipes use prebuilt vc libs which are 32bit only libs

They also do not work on musl

https://github.com/agherzan/meta-raspberrypi/pull/983 introduced these
recipes however these are not generic packages that can be used on non-rpi machines
therefore mark them so. It helps in using this SOC layer with other SOC
layers in a distro

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-28 22:32:58 +00:00
bhargavthriler bfac0b9ccb python3-picamera: Add picamera library
python3-picamera : recipe for python picamera library.
picamera-libs    : recipe raspberry pi firmware which are required
by picamera.

Closes: #959
Signed-off-by: Bhargav Das <bhargavthriler@gmail.com>
2022-01-25 16:25:49 +00:00
Marcel Hamer e31fba4c96 recipes: Update SRC_URI protocols for github
Use protocols=https for GitHub SRC_URIs using the conversion script in
openembedded-core.

Signed-off-by: Marcel Hamer <marcel@solidxs.se>
2021-11-07 21:30:23 +00:00
Martin Jansa 9ea7aa2cd2 Convert to new override syntax
This is the result of automated script conversion:

oe-core/scripts/contrib/convert-overrides.py .

converting the metadata to use ":" as the override character instead of "_".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Jose Quaresma 0a89fb8dac gstreamer1.0-omx: drop config-files-path.patch
gstreamer1.0-omx receipe on OE-core sets:
core-name=${GSTREAMER_1_0_OMX_CORE_NAME} on the installed gstomx.conf
in this case it will set:
core-name="${libdir}/libopenmaxil.so" in ${sysconfdir}/xdg/gstomx.conf
this is done in set_omx_core_name that is a do_install[postfuncs]

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma 946fc1ee5f gstreamer1.0-omx: consolidate the append usage and only use one
move patches from gstreamer1.0-omx-1.18 => gstreamer1.0-omx
and use PN on FILESEXTRAPATHS

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma 45a9819a43 gstreamer1.0-omx: drop custom cflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma 1da8814f8a gstreamer1.0-plugins-base: drop custom cppflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-30 16:14:04 +00:00
Martin Jansa 9e9746f5a7 Revert "gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin"
This reverts commit 0ecec6a1f9.

The patch as well as PACKAGECONFIG were merged to oe-core recipe in:
https://git.openembedded.org/openembedded-core/commit/?id=fe828754467db0a09bbc5d6fd54bf6245bd0a747
2020-11-19 12:25:15 +00:00
Jose Quaresma 3db2e1e967 gstreamer1.0-plugins-good: enable rpicamsrc plugin
enable the plugin when vc4graphics is not on machine features
as it needs userland.

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Jose Quaresma 0ecec6a1f9 gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Martin Jansa 393af232a7 gstreamer1.0-omx: rename bbappend to match new 1.18.0 version from oe-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-11-03 17:33:56 +00:00
Madhavan Krishnan c5bc556873 gstreamer: Fix the compilation issue in meta multimedia image
When we tried to build the meta-multimedia-image, we faced the
compilation issue with faad component.

Since faad component has commercial license, we could not able
to build with multimedia image. So we have modified the faad
component to be included when commercial licenese is supported.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-03-10 17:24:09 +00:00
Khem Raj a60d182bf0 gstreamer1.0-plugins-base: Adjust for meson conversion
OE-core now uses meson to build gstreamer

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-02-08 14:16:56 +00:00
Martin Jansa 3c8fdb4a7a omxplayer: respect virtual/libomxil
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-28 10:02:02 +00:00
Martin Jansa 2faf9cab72 gstreamer1.0-omx: let virtual/libomxil dependency to pull userland
* and adjust VIRTUAL-RUNTIME_libomxil to pull runtime provider for libomxil

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-24 12:09:42 +00:00
Martin Jansa 51bb38b728 gstreamer1.0-plugins-base: adapt to gstreamer1.0 now using meson
* depends on oe-core changes which adds dispmanx PACKAGECONFIG to gstreamer1.0-plugins-base

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-24 12:09:42 +00:00
Martin Jansa 6e84890e8c gstreamer1.0-plugins-base: respect opengl DISTRO_FEATURES when vc4graphics is in MACHINE_FEATURES
No virtual/egl provider is available in the default setup with
vc4graphics enabled and neither opengl nor vulkan in DISTRO_FEATURES:

$ bitbake -e virtual/egl | tee env.egl
ERROR: Nothing PROVIDES 'virtual/egl'
vc-graphics-hardfp PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp
vc-graphics PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics

$ bitbake -e userland 2>&1 | tee env.userland
ERROR: Nothing RPROVIDES 'libegl-mesa' (but /jenkins/mjansa/build-ros/ros2-dashing-warrior/meta-raspberrypi/recipes-graphics/userland/userland_git.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'libegl-mesa' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['libegl-mesa']
ERROR: Required build target 'userland' has no buildable providers.
Missing or unbuildable dependency chain was: ['userland', 'libegl-mesa']

$ bitbake -e mesa 2>&1 | tee env.mesa
ERROR: Nothing PROVIDES 'mesa'
mesa was skipped: one of 'vulkan opengl' needs to be in DISTRO_FEATURES

$ bitbake -e vc-graphics-hardfp 2>&1 | tee env.vc-graphics-hardfp
ERROR: Nothing PROVIDES 'vc-graphics-hardfp'
vc-graphics-hardfp was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp

There is unbuildable dependency on virtual/egl from gstreamer1.0-plugins-base because:
1) gstreamer1.0-plugins-base depends on virtual/egl because of "egl" PACKAGECONFIG

2) "egl" PACKAGECONFIG is enabled by
   meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
   PACKAGECONFIG_GL_rpi = "egl gles2"

   without respecting the "opengl" in DISTRO_FEATURES like the recipe in oe-core does
   openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.4.bb:
   PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"

3) virtual/egl is provided either by:
   - userland (only without vc4graphics in MACHINE_FEATURES):
     meta-raspberrypi/recipes-graphics/userland/userland_git.bb:PROVIDES += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "virtual/libgles2 virtual/egl", d)}"
   - mesa (selected with vc4graphics in MACHINE_FEATURES)
     meta-raspberrypi/conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
   - vc-graphics(-hardfp)
     meta-raspberrypirecipes-graphics/vc-graphics/vc-graphics.inc:PROVIDES = "virtual/libgles2 virtual/egl"

4) vc-graphics(-hardfp) recipe are skipped in default setup, because with vc4graphics being
   in MACHINE_FEATURES by default since:
   https://github.com/agherzan/meta-raspberrypi/commit/690bdca57422447e49d4ef43862bf675e9acc28f
   the PREFERRED_PROVIDER_virtual/libgles2 is set to mesa in:
   conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"

   resulting in skipping the other virtual/libgles2 providers:
   vc-graphics-hardfp PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics-hardfp
   vc-graphics PROVIDES virtual/egl but was skipped: PREFERRED_PROVIDER_virtual/libgles2 set to mesa, not vc-graphics

5) mesa is skipped when neither opengl nor vulkan are in DISTRO_FEATURES

6) userland doesn't provide virtual/egl because we have the default vc4graphics
   meta-raspberrypi/recipes-graphics/userland/userland_git.bb:PROVIDES += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "virtual/libgles2 virtual/egl", d)}"
   and it cannot be built anyway, because with the default vc4graphics it depends on libegl-mesa:
   meta-raspberrypi/recipes-graphics/userland/userland_git.bb:RDEPENDS_${PN} += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "libegl-mesa", "", d)}"
   and libegl-mesa is provided only by mesa recipe from oe-core which in turn
   requires either "opengl" or "vulkan" to be in DISTRO_FEATURES

This causes a lot of unresolved dependencies in default setup with vc4graphics but without opengl.
- with Yocto 2.6 Thud and older it worked, because vc4graphics wasn't enabled by default before:
  https://github.com/agherzan/meta-raspberrypi/commit/690bdca57422447e49d4ef43862bf675e9acc28f

To build gstreamer1.0-plugins-base with egl PACKAGECONFIG enabled you have 2 options:
A) Just add "opengl" to DISTRO_FEATURES and use the default vc4graphics with mesa providing virtual/egl
B) Use DISABLE_VC4GRAPHICS added in
   https://github.com/agherzan/meta-raspberrypi/commit/96c8459c9363cc6bf463aedf4d24f92a1ee7d6ba
   to explicitly disable vc4graphics and use userland to provide virtual/egl

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-01-13 18:23:28 +00:00
Khem Raj 95ac7c9c11 omxplayer: Disable on aarch64
It does not build for 64bit, needs porting

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-10-16 15:31:42 +01:00
Kirill Goncharov c29c821c37 omxplayer: Bump revision
Bump revision to fix playback errors on RPi 4 (https://github.com/popcornmix/omxplayer/issues/733)
and update patches accordingly.
Update the license hash because of the change in FSF mailing address.

Signed-off-by: Kirill Goncharov <kdgoncharov@gmail.com>
2019-08-12 15:41:09 +02:00
Martin Schuessler ca11a291ee omxplayer: remove hardcoded tune and arch from Makefile
Fixes: #428

Signed-off-by: Martin Schuessler <tossprobe@gmail.com>
2019-06-20 21:52:46 +01:00
Andrei Gherzan 36c3c2e7ca gstreamer1.0-omx: Forward port bbappend and patches to v1.16.x
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2019-05-28 21:05:58 +01:00
Khem Raj 10cee099bc omxplaye: Fix build with userland graphic driver
- Upgrade to latest omxplayer with ffmpeg 4.x
- drop backported patches which are not needed
- Make vc4 support patch conditionally apply only when vc4graphics is used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-22 11:49:36 +02:00
Khem Raj b38a77938a userland: Merge userland-nogl into userland itself
Control the installs via MACHINE_FEATURES and avoid almost duplicate
recipe

Adjust other recipes to depend on userland now

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-21 17:56:52 +02:00
Khem Raj f661406e2d omxplayer: Fix build when using vc4graphics driver
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-08 13:23:05 +00:00
Khem Raj 229363bbac gstreamer1.0-omx: Use rpi target and depend on userland-nogl
This ensures that it links to right userland libraries to get access to
accelarated video path

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-07 14:25:00 +00:00
Khem Raj f7a2726cdf omxplayer: Forward port patches and fix build
Fixes issue #324

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-11-07 14:25:00 +00:00
Khem Raj c1aabba056 omxplayer: Update and add fixes for OpenSSL 1.1.x and thumb2
* Update to latest from upstream
* Backport OpenSSL 1.1.x related patches for ffmpeg
* Pass --cpu based on machine, instead of hardcoding it to arm1176jzf-s
* Make --cc, --cxx and --ld be used from environment, helps building
  with clang
* It requires userland graphics driver to build to encode that in
  COMPATIBLE_HOST

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-09-20 22:27:18 +03:00
Hugo Hromic b825f32ccd meta-raspberrypi: use _% suffix instead of specific versions for bbappends
Keep naming consistency and ensure they are still applied when the upstream recipes are updated.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-06-27 13:38:23 +01:00
Hugo Hromic 2b3526563e omxplayer: refresh and clean-up patches
fixes:

    WARNING: omxplayer-git-r4 do_patch:

    Applying patch 0003-Remove-strip-step-in-Makefile.patch
    patching file Makefile.ffmpeg
    Hunk #1 succeeded at 241 with fuzz 2 (offset -2 lines).
    Hunk #2 succeeded at 255 (offset -2 lines).

    Applying patch fix-tar-command-with-DIST.patch
    patching file Makefile
    Hunk #1 succeeded at 89 with fuzz 2 (offset 18 lines).

    Applying patch use-native-pkg-config.patch
    patching file Makefile.ffmpeg
    Hunk #1 succeeded at 245 with fuzz 1.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-06-27 13:33:02 +01:00
Khem Raj de597abc3b gstreamer1.0-plugins: App proper appends for base and bad plugins
This patch accounts for the fact that rpi dispmanx plugin migrated
from bad to base stating 1.14 release

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-22 21:38:09 +01:00
Khem Raj bf2a07be69 gstreamer1.0-plugins-bad_%.bbappend: Drop --disable-dispmanx
1.14 does not support this option
Fixes
QA Issue: gstreamer1.0-plugins-bad: configure was passed unrecognised options: --disable-dispmanx [unknown-configure-option]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-14 10:35:04 +01:00
Khem Raj 5492c68403 gstreamer1.0-omx: Forward port bbappend to 1.14
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-12 11:16:15 +01:00
Hugo Hromic 415c1998a6 gstreamer1.0-omx: refresh and clean-up patches
fixes:

    WARNING: gstreamer1.0-omx-1.12.4-r0 do_patch:
    Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
    The context lines in the patches can be updated with devtool:

        devtool modify <recipe>
        devtool finish --force-patch-refresh <recipe> <layer_path>

    Then the updated patches and the source tree (in devtool's workspace)
    should be reviewed to make sure the patches apply in the correct place
    and don't introduce duplicate lines (which can, and does happen
    when some of the context is ignored). Further information:
    http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
    https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450
    Details:
    Applying patch 0001-config-files-path.patch
    patching file config/bellagio/gstomx.conf
    Hunk #1 succeeded at 1 with fuzz 2.
    Hunk #2 succeeded at 9 with fuzz 2.
    patching file config/rpi/gstomx.conf
    Hunk #8 succeeded at 63 with fuzz 2.
    Hunk #10 succeeded at 82 with fuzz 2.
    Hunk #11 succeeded at 92 with fuzz 2.

    Now at patch 0001-config-files-path.patch

deleted obsolete `gstreamer1.0-omx` directory with duplicated patches that are also in `gstreamer1.0-omx-1.12`.
made file naming for `gstreamer1.0-omx_%.bbappend` consistent with the rest of the layer recipes.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-03-23 11:44:45 +00:00
Maxin B. John 79ea44b997 gstreamer1.0-omx: remove unused patches
Remove the following unused patches:
 1. 0002-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
 2. 0003-fix-decoder-flushing.patch

Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-08 21:57:25 +00:00
Martin Jansa 073f1e845e omxplayer: make samba support configureable
* samba depends on libpam and it might be useful to disable support
  for it in DISTROs without pam in DISTRO_FEATURES
* disable it by default

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-02-01 18:42:47 +00:00
Andrei Gherzan 536c15bab9 x264: Disable asm for raspberrypi0-wifi
This used to work in the past because this machine was based on raspberrypi
one. Now that they are separate, we need a configuration for it too otherwise:

| common/arm/quant-a.S: Assembler messages:
| common/arm/quant-a.S:362: Error: selected processor does not support `rbit
r1,r1' in ARM mode
| common/arm/quant-a.S:363: Error: selected processor does not support `rbit
r1,r1' in ARM mode

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Paul Barker f1e2bf782f omxplayer: Explain inclusion of ffmpeg
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker 47da217fda omxplayer: Update Upstream-status tag on patch
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker b00d914e78 omxplayer: Fix build issues
* Update the recipe and patch the Makefile to not require internet access during
  do_compile. Unfortunately, the upstream Makefile wants to access a web service
  hosted on Heroku and to "git clone" ffmpeg with no fixed commit hash.

* Patch Makefile.ffmpeg to avoid a potential race condition between the
  configure & compile stages.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00