PHP 8 Horde (Maintaina)
Over the next few days, all Horde libraries and apps in the maintaina-com organization will be whitelisted for PHP 8x. in their FRAMEWORK_6_0 branch development versions. One next step will be a flavour of the OpenSUSE based containers and deployments which runs off PHP 8.0. While some few libraries have been enabled for PHP 8, it is almost certain that horde as a whole will not run correctly. Main culprits are the horde/rpc and horde/form packages and their user code, but there are some other ugly places that need attention.
Development Baseline at 7.4
Code in the maintaina-com repo will stay compatible with PHP 7.4 – at least for the time being. Decisions at Horde LLC may override that at some point or time may just march on. PHP 7.4 has been released two years ago, has ended active support 20 days ago and will be EOLed for upstream security support on November 28th 2022 – roughly 11 months to go. Linux distributions have a tradition to follow their own schedules and backport security fixes. OpenSUSE LEAP 15.3 ships with PHP 7.4 while openSUSE Tumbleweed has switched to PHP 8.0.13 – with PHP 8.1 versions becoming available from official repos soon.
This is a tough decision as PHP 8 and 8.1 have some really interesting features which would allow us to develop more elegant, more readable and more efficient code. For software that is not intended for this audience, I will immediately allow using 8.x-only features as soon as we are confident with Horde’s compatibility. This is going to be a major theme of January and possibly February.
No need to switch right now
If you are running Horde as of horde.org master branches or maintaina-com FRAMEWORK_6_0 branches off PHP 7.4, you should NOT switch right now. We will announce once we think any leftover issues are minor enough for an acceptable early adopter experience.
No particular love for 8.0.x
There is no guarantee our runtime will stay fixed at 8.0. PHP 8.1 offers a lot of new features and a considerable performance boost for some relevant scenarios. While making Maintaina Horde work with 8.x on a 7.4 feature baseline is the first step, the logical next step is upgrading feature baseline to 8.1 or higher. This will be much less of a problem if we get an official Horde 6 release in the meantime and users can choose between a properly conservative release version and a more adventurous Maintaina version. This is not something I have under control though. Horde LLC do as they find appropriate and sustainable and for many users, there is little reason to choose Maintaina over the official releases once we have a Horde 6 version that properly runs on recent PHP and supports Composer out of the box. I am perfectly fine with that and looking forward to it. I will always assist with a migration path as far as I can afford to.
Time is Money, Money buys Time
If you have an urgent commercial interest in a PHP 8-ready Horde version, you really do not want to rely on Maintaina’s timelines and priorities which may be subject to change. You will need to spend money. Approach somebody to do it for you, either Horde LLC or the company I work for, B1 Systems GmbH – both are formidable places to look for Horde-experienced development resources.
Update 2021-12-18 21:00 CET
I just ran the update to the metadata as a mass operation for everything which contains a .horde.yml file – the rest will have to wait until I stumble across it. I leveraged an edited version of horde/git-tools, some bash magic, some mass editing in vscode using their regex tool and some manual fixing.
- All packages now formally require “php”: “^7.4 || ^8”
- If horde-installer-plugin is required, I now go for “^2 || dev-FRAMEWORK_6_0” – however in maintaina-com/Core, I have a job that rebuilds composer.json on commit and this job showed me that the components tool needs an update in this aspect.
- SPDX license code warnings for LGPL and GPL versions have been remedied to LGPL-2.0-only, LGPL-3.0-only, GPL-3.0-only each
- Added the CI workflow where missing. Mostly it will fail until further editing. This is intentional.
- I did NOT unify all versions of CI workflow as some deviations are intentional. I did however unify PHP versions for the unit tests to “7.4”, “8.0” and “latest” and I did unify phpunit versions to “9.5” and “latest”.
- Unified/added the phpdoc workflow and the update-satis workflow as we had multiple versions for no good reason. I have settled for a version of the phpdoc job that will scan lib/, src/ and app/ if they exist
- Cleaned up a lot of metadata mess in the Kolab related packages.
- Removed some version: tags from composer.json files
- Removed the optional pear dependency of imp for the ASN1 implementation from phpseclib – need to look for a proper composer-ready and less outdated replacement.
While the mass changes themselves seem to have gone right, the resulting avalanche of CI jobs showed some issues:
- phpdoc job and update-satis job fail if they run in parallel and the satis repo content has changed since checkout. Either give the push commands in the loop a minute to wait each time or make the job smarter about handling these clashes. Still, failing is better than silently overwriting content
- Having so many versions of the CI job is not maintainable. Need to factor out the boilerplate into an action, make version requirements a config variable with a builtin default and have some mechanism for there rare cases where extra software is needed for meaningful QA, i.e. database and storage related items.
- After getting this migration done, upgrading the git-tools utility may be an interesting exercise in PHP 8 and PHPStan.
- I may have created unnecessary conflicts with some open pull requests. Sorry, contributors. I will improve.
Novedades de Kdenlive de KDE Gear 21.12
El pasado jueves 9 de diciembre fueron lanzadas las mejoras en las aplicaciones de la KDE Gear 21.12. Es hora de ir revisando aplicación a aplicación qué nos podemos encontrar. El primero de la lista fue Dolphin y le siguió Spectacle. Hoy toca el turno de las novedades de Kdenlive de KDE Gear 21.12, el editor de vídeo no lineal que está conquistando a propios y extraños.
Novedades de Kdenlive de KDE Gear 21.12
Kdenlive es una aplicación que va creciendo poco a poco pero con paso firme hasta que se convierta en una Killer App del ecosistema de aplicaciones KDE, como ya lo es Dolphin.

Veamos algunas de las novedades de Kdenlive de KDE Gear 21.12
- Añadido un Supresor de ruido para la voz, un nuevo efecto de sonido elimina el ruido de fondo de las grabaciones como por arte de magia.
- Herramientas mejoradas de seguimiento del movimiento, con el que se realizan las pixelaciones de partes del vídeo.
- Nuevo modo de recorte de deslizamiento o modo de recorte de ondulación, que nos facilitará la vida para colocar los videoclips en la línea de tiempo.
- Nueva función que permite crear múltiples contenedores de proyectos, y con los que tendrás pestañas separadas para cada carpeta del proyecto. Más facilidades para editar.
- Nueva función de edición multicámara nos ofrece nuevas posibilidades de edición. Añada los videoclips (hasta un máximo de cuatro) a diferentes pistas en la misma posición de la línea de tiempo y active la herramienta multicámara seleccionando Herramienta > Herramienta multicámara en el menú. Podrá saltar de una pista a otra para editarla pulsando 1, 2, 3 o 4 en el teclado, o simplemente haciendo clic sobre la pista que quiera en el monitor.
Y me quedo con la última frase del anucio «De cualquier modo, Kdenlive es el mejor editor de vídeo que no puede comprar (porque es gratis).»
Gratis, libre y simple por defecto pero potente cuando se necesita. ¿Qué más se puede pedir?
Más información: KDE Gear 21.12 | Kdenlive 21.12 is out
Mi escritorio Plasma de diciembre 2021 #viernesdeescritorio
Finalizo este año de la iniciativa #viernesdeescritorio con una nueva captura y superando más de un año entero seguido y sin faltas de entradas en la serie «Mi escritorio». De esta forma, bienvenidos a mi escritorio Plasma de diciembre 2021 que sigue en el tema oscuro del mes pasado y mostrando cambios radicales.
Mi escritorio Plasma de diciembre 2021 #viernesdeescritorio
Esta va a ser la decimocatva vez que muestro mi escritorio Plasma 5 en público, lo cual es número nada desdeñable de entradas. La entrada recopilatoria de las misma está cada vez más cerca… siempre lo digo pero nunca llega.
Además, he recuperando un plasmoide informativo de tiempo y meteorología animado y muy completo que no solo me ofrece información sino que me muestra incluso las fases de la luna. Ya hablaré de él más adelante que se merece una entrada en la sección de plasmoides.
Respecto al mes pasado ha cambiado bastante ya que aunque sigo utilizando el tema global Brisa oscuro, he cambiado el estilo de plasma, el fondo de pantalla a uno azul eléctrico . Además he añadido 2 barras de tareas y un par de plasmoides.
Respecto al estilo plasma se trata de Kadiya, que me proporciona unos bordes redondeados que me encantan y una transparencia ajustable.

Por otra parte, la barra de la izquierda es simplemente la básica de Plasma pero redimensionada, reorganizados los plasmoides y sin el gestor de tareas, ya que esa funcionalidad me sigue gustando en la parte inferior.
Y justo en esta segunda barra donde hay más novedad ya que tras probar Plank hace unas semanas he decidido utilizarla de forma diaria. Si queréis saber más leed esta entrada.
Para finalizar, los plasmoides empleados son: Digital Clock Be Style, con ligeras modificaciones en el color de las agujas; y Condensed Weather para el informe meterológico.
De nuevo he realizado la descripción de las características de mi equipo de con neofetch. aunque esta vez ejecutado desde un Yakuake modificado para estar a la izquierda y redimensidado para que sea menos ancho.
Como es habitual, la captura está realizada sobre mi portátil Slimbook Pro de 13 pulgadas, el cual tiene instalado un KDE Neon con Plasma 5.23.4 (el último hasta el momento).
El resultado de mi escritorio de diciembre de 2021 es un escritorio oscuro pero luminoso, limpio y funcional que podéis ver en la imagen inferior (pinchad sobre ella para verlo un poco más grande)
The syslog-ng insider 2021-12: Humio; Log Management; Panther;
The December syslog-ng newsletter is now on-line:
- Sending logs to Panther using syslog-ng
- Reducing the complexity of log management
- Sending logs to Humio using the elasticsearch-http() destination of syslog-ng
It is available at https://www.syslog-ng.com/community/b/blog/posts/the-syslog-ng-insider-2021-12-humio-log-management-panther

syslog-ng logo
Notifications Feature Release for All Users
Frameworks, Gear, Pipewire Update in Tumbleweed
There was no slowing down of snapshots this week as new software continues to flow with daily openSUSE Tumbleweed releases. Tumbleweed went seven for seven this week!
Just two updates were in the 20211214 snapshot. The remote accessing package remmina 1.4.22 provided fixes for freerdp3 compatibility, and remmina also had a fix for a crash if the main window is closed. The libcap-ng 0.7.11 package, which analyzes a system for apps with too many privileges, removed unneeded rules.
Among the many packages that arrive in snapshot 20211213 were KDE’s Gear 21.12.0 and Frameworks 5.89.0 versions. Gear 21.12.0 had some Dolphin file manager enhancements like a Ctrl + i filter feature that brings up a box under the main panel, which added a new Detailed View feature through a right click on an empty space; select the View Mode > Details from the pop up menu. The screenshot application Spectacle gives KDE users a cleaner look of images they drag and drop from Spectacle’s preview panel to Dolphin or to an online image storage site for sharing. The Kdenlive video editor from Gear improved the motion tracking tools; Just use the box in the monitor to cover the area to track, click Analyse in the effects panel, and have fun! The video editor also has a new audio effect that removes background noises from recordings; the Noise Suppressor allows for a voice grab in the audio effects tab to be dropped onto an audio track for clean up. Frameworks 5.89.0 had a considerable amount of bug fixes for the Breeze Icons, which included the addition of a missing kmail breeze icon. The KContacts fixed address formatting for country-only addresses and deprecated countryToISO/ISOToCountry in favor of KCountry. Both KIO and Kirigami had some changes; the latter package lets the escape key close and push the dialog layers. The application library exo updated to version 4.16.3 and fixed compilation warnings; the package that is targeted at application development for Xfce also added typecheck verification to prevent a GTK bug warning. The mpg123 1.29.3 package fixed typos and added a note about equalizer frequency bands in the man page. The updated 370 version of xterm improved performance over slow connections and suppressed the loading of italic font in a few places when the colorITmode is enabled. Other packages to update were yast2-bootloader 4.4.10 and yast2-storage-ng 4.4.23, which added support for mount options use with libstorage-ng to determine whether a efibootmgr is available.
The second update of the week for the Advanced Linux Sound Architecture package arrived in snapshot 20211212. The alsa 1.2.6.1 version fixed the configuration for device parsing. Several alsa changes were made in the kernel-source 5.15.7 update. The kernel also had several KVM fixes to include a shadow nested paging that does not have Protection Keys for Userspace. Since there is now a require dependency, wireplumber became the session manager for pipewire 0.3.40 in the snapshot; “when in doubt, the suggested package is selected,” according to the changelog. The python-cryptography package updated from version 3.4.8 to 36.0.0, which went through a version number change in September. The new Python Package Index has the entire X.509 layer written in Rust; this allows alternate asymmetric key implementations that can support cloud key management services or hardware security modules provided they implement the necessary interface. About 10 more updates arrived in the snapshot.
Quite a few GNOME packages received a version bump in snapshot 20211211. While there were translation updates for gnome-maps 41.2, gnome-software 41.2 fixed a crash when processing age ratings and reloaded application details only when the items were not installing/removing the application. The gupnp 1.4.1 package fixed a regression in the async deprecated Application Programming Interfaces. Mozilla Firefox 95.0 updated in the snapshot, and fixed some Common Vulnerabilities and Exposures. The release appears to be a nod at Windows 95 now that the browser is available in the Microsoft Store. A fix in the use of the default log writer with journald namespaces was made in the glib2 2.70.2 update. Other packages to update in the snapshot were hwdata 0.354, FireEye’s hxtools 20211204, LibreOffice 7.2.4.1, Node.js, 16.13.1, vte 0.66.2, yast2-installation 4.4.28 and more.
Three packages were updated in snapshot 20211210. An added method to disconnect proxy signals was made in the gnome-remote-desktop 41.2 update; the package, which can also be used for screencasting, made warning messages a little bit more explicit. The Linux laptop battery Optimizing package tlp 1.4.0 renamed “Battery Features” to “Battery Care” and introduced plugins to support Battery Care for non-ThinkPads; ASUS, Huawei, LG, Lenovo and Samsung are the first to benefit from the plugins. The kernel headers were updated in the linux-glibc-devel 5.15 release.
Most of the updates in snapshot 20211209 were PyPi updates with the exception of the libffi 3.4.2 and nvme-cli 1.16 updates. Snapshot 20211208 provided the first asla 1.2.6 update, which improved the support of multiple formats in the Pulse-code modulation. The sudo 1.9.8p2 package fixed a few minor memory leaks and sudo_logsrvd now only sends a log ID for the first command of a session, so there is no need to send the log ID for each sub-command. Several other packages were updated in the snapshot like screen reader orca 41.1, soundtouch 2.3.1 and yast2-journal 4.4.1, which is preparing code for Ruby3 along with many other YaST packages.
Ritchie CLI oficialmente no openSUSE

Depois de muito trabalho, o Ritchie-CLI 2.11.3 chega oficialmente disponível no repositório openSUSE Tumbleweed. Ritchie-CLI se tornou oficial em 11 de novembro no Tumbleweed. Parabéns para toda a equipe ZUP!
Ritchie é uma ferramenta de código aberto desenvolvida pela ZUP Company e permite aos usuários criar, armazenar e compartilhar automações com segurança. Otimiza comandos repetitivos para que os usuários tenham mais autonomia de programação. Estou trabalhando para adicionar um novo pacote ao Factory e a ajuda da comunidade openSUSE é bem-vinda. O pacote também está no meu Open Build Service de Alessandro para aqueles interessados . Mais informações podem ser encontradas nas notas de lançamento do pacote. E neste link a notícia OFICIAL!
Bloquea un paquete de software en #openSUSE con zypper
Veamos cómo usar zypper, el gestor de paquetes de software de openSUSE, para bloquear un paquete en concreto

openSUSE Tumbleweed, es una distribución de GNU/Linux «rolling release», esto quiere decir que se van actualizando las versiones de software instalado de manera contínua.
Como puedes leer en los resúmenes semanales que publico en el blog, todas las semanas se publican nuevas actualizaciones, ¡algunas semanas casi a diario!
Imaginemos que tenemos un software, por ejemplo el editor nano, que por alguna circunstancia no queremos que se nos actualice a versiones más modernas que la que tenemos funcionando ahora, o que no queremos que alguien lo desinstale, etc.
Veamos cómo podemos bloquear el paquete de software con la herramienta zypper, para que no se puedan realizar estas operaciones.
Para bloquear un paquete con zypper utilizaremos las herramientas locks (ll) addlock (al) removelock (rl) o cleanlocks (cl). Entre paréntesis están los comandos cortos para utilizar con zypper. Veamos unos ejemplos.
Listar paquetes bloqueados
Primero vamos a comprobar si existen bloqueos ya existentes en nuestro sistema, para ello ejecuto zypper locks o ll:
zypper ll
No hay bloqueos de paquete definidos.
Añadir un bloqueo
Ahora, como ejemplo vamos a añadir un bloqueo al software nano. Deberemos hacerlo con privilegios de root:
zypper al nano*
El bloqueo se ha añadido correctamente.
Si volvemos a ejecutar un listado de paquetes bloqueados veremos algo distinto:
zypper ll
# | Name | Type | Repository | Comment
--+--------+---------+--------------+-----------
1 | nano* | package | (cualquiera) |
Como véis, en vez de bloquear un paquete de software específico, escribiendo su nombre exacto, he bloqueado todos los paquetes de software que empiezan con nano (todos relativos a este editor de texto)
El editor nano quedará «congelado». No se actualizará a nuevas versiones si están disponibles en los repositorios, ni lo podremos eliminar del sistema. Vamos a probar a desinstalarlo con zypper:
zypper rm nano
Leyendo los paquetes instalados...
Resolviendo dependencias de paquete...
Problema: peticiones en conflicto
Solución 1: Se realizarán las siguientes acciones:
elimine el bloqueo para permitir la eliminación de nano-5.9-1.1.x86_64
elimine el bloqueo para permitir la eliminación de nano-lang-5.9-1.1.noarch
Solución 2: no perdir que se supriman todos los elementos solucionables que proporcionen nano.x86_64 = 5.9-1.1
Elija las soluciones usando '1' o cancele usando 'c' [1/2/c/i/?] (c): c
Ahora imaginemos que también queremos bloquear el paquete de Vim, porque hay una actualización que nos rompería alguna funcionalidad con un complemento que tenemos, o algo así…
zypper al vim
El bloqueo se ha añadido correctamente.
En este caso solo hemos bloqueado el paquete llamado literalmente vim, permitiendo que otros que empiezan por vim se actualicen normalmente.
zypper ll
# | Name | Type | Repository | Comment
--+--------+---------+--------------+-----------
1 | nano* | package | (cualquiera) |
2 | vim | package | (cualquiera) |
Bloquear un paquete de un repositorio específico
También podemos bloquear un paquete de software para que no se actualice desde un repositorio en concreto, permitiendo que si está disponible en otros repositorios se actualice desde allí:
zypper al -r repo-oss virtualbox*
Se bloqueará ese software desde dicho repositorio llamado repo-oss pero se podrá actualizar desde otros. Veamos el listado de bloqueos de nuevo:
zypper ll
# | Name | Type | Repository | Comment
--+-------------+---------+--------------+-----------
1 | nano* | package | (cualquiera) |
2 | vim | package | (cualquiera) |
3 | virtualbox* | package | repo-oss |
Eliminar bloqueos
Ahora vamos a eliminar el bloqueo de vim, ya que ya podemos volver a actualizarlo:
zypper rl vim
1 bloqueo se ha eliminado correctamente.
zypper ll
# | Name | Type | Repository | Comment
--+-------------+---------+--------------+-----------
1 | nano* | package | (cualquiera) |
2 | virtualbox* | package | repo-oss |
También podemos especificar no el nombre del paquete, si no el número dentro de la lista de bloqueos que ocupa. Eliminemos el bloqueo de nano:
zypper rl 1
Se ha eliminado correctamente el bloqueo especificado.
1 bloqueo se ha eliminado correctamente.
Quedando así nuestra lista de bloqueos:
zypper ll
# | Name | Type | Repository | Comment
--+-------------+---------+-------------+-----------
1 | virtualbox* | package | repo-oss |
Podremos volver a ejecutar el comando anterior, para ahora eliminar el que ocupa la posición 1. Eliminando todos los bloqueos que había en nuestro sistema.
Bloquear con YaST
Seguro que te lo estás preguntando, sí desde YaST también se puede hacer todo esto. Abrimos YaST y vamos a la sección instalar/desinstalar software.
Escribimos en el cuadro de búsqueda el paquete que queremos, por ejemplo nano otra vez, y con botón derecho seleccionamos la opción Protegido, no modificar.
Si son varios los paquetes que queremos seleccionar, escogeremos la opción Todos los de la lista y seleccionaremos Protegido, no modificar.
Para volverlos a activar, seleccionaríamos la opción Mantener con el botón derecho.
Espero que os haya resultado útil esta opción si no la conocías de openSUSE a la hora de gestionar paquetes de software. ¿Lo vas a poner en práctica ahora que has aprendido este comando? Compártelo en los comentarios.
Fuente: Wiki de openSUSE

El escritorio Plasma de KDE en 3 minutos
Aunque tengo temas de que hablar, hoy no tengo el cuerpo para hacerlo. Así que voy al recurso fácil de presentaros un video. Concretamente uno en el que nos muestran el escritorio Plasma de KDE en 3 minutos en forma de vídeo de mano de TechHut. Una pequeño pero gran vídeo que sirve de introducción al increíble entorno de trabajo de la Comunidad KDE.
El escritorio Plasma de KDE en 3 minutos
Quizás un problema de Plasma, el escritorio de KDE, es sus infinitas posibilidades, lo cual hace que no sea sencillo explicarlo sin abrumar.

Es por ello que me complace compartir con vosotros este vídeo de TechHut donde en apenas tres minutos nos presentan las características más destacadas de este entorno de trabajo.
A continuación os dejo el vídeo, donde no solo habla en esos 300 segundos del entorno básico de Plasma sino que se atreve a comentar también scripts de KWin como Krohnkite.
Por supuesto que esto es una pincelada, los lectores del blog saben que Plasma es esto y mucho más, que KDE es una activa y prolífica Comunidad y que tu, como cualquier simpatizante del Software Libre, puede formar parte de ella si así se lo propone.
Celebrate the first openSUSE BAR anniversary!
Almost a year ago, on the 19th of December 2020, openSUSE Members knurpht and m4u had the following conversation:
Gertjan™ - Knurpht™, [19.12.20 00:05]
Dude, have a drink on meet.opensuse.org/beer?
Gertjan™ - Knurpht™, [19.12.20 01:11]
Yo, we( Neal and me are waiting for you to show up
Maurizio G., [19.12.20 05:36]
let’s see how i feel after coffee
Maurizio G., [19.12.20 05:38]
are you and neal still in the BAR?
Gertjan™ - Knurpht™, [19.12.20 05:39]
Nope
We were in the beer btw 😃
Maurizio G., [19.12.20 05:41]
yea i saw your message
Maurizio G., [19.12.20 05:41]
i’m just waking up. maybe in a bit
Gertjan™ - Knurpht™, [19.12.20 05:42]
Now in meet.opensuse.org/BAR
This was the birth of our beloved openSUSE BAR! Since then, the BAR has been a place for contributions, for fixing things together and just hanging out.
The BAR evolved into an important part of our community that helps people get to know each other in the project. It has on-boarded new contributors, strengthened old friendships, brought fixes for various issues on the way and was the place for historical events, such as probably the oldest openSUSE User (89 y.o.) meeting the youngest openSUSE Member (16 y.o.).
During the online openSUSE Leap 15.3 release party, which was aimed to last for 24 hours, the bar passed the marks of a 50+ guests and a 100-hour-BAR session on June 6, 2021, which was followed by reaching a mark of a 200-hour-BAR session on June 10, 2021.
To celebrate the first-year anniversary of the BAR, the second largest BAR event is going to begin on Dec. 18 starting 16:00 UTC at meet.opensuse.org/bar!! Let’s see how long we can keep the party going this time!
We definitely look forward to seeing you all there!! New faces, old friends, those that visit the BAR regularly, and those who have never logged on before. Cheers!
NOTE: Please don’t be discouraged if it takes you a couple of tries to connect! Just keep trying!! Just keep trying and mash the F5 key to refresh, you won’t regret it!!
The openSUSE BAR Crowd
