Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

The syslog-ng Insider 2023-10: contribute; parallelize; compatibility;

The October syslog-ng newsletter is now on-line:

  • Why contribute to syslog-ng upstream?
  • Accelerating single TCP connections in syslog-ng: parallelize()
  • Backward compatibility in syslog-ng by using the version number in syslog-ng.conf

It is available at https://www.syslog-ng.com/community/b/blog/posts/the-syslog-ng-insider-2023-10-contribute-parallelize-compatibility

syslog-ng logo

a silhouette of a person's head and shoulders, used as a default avatar

Nuevo Fedora Slimbook, la familia crece

Cada cierto tiempo me gusta hablar de Slimbook, la marca de dispositivos 100% compatibles con GNU/Linux por varias razones, entre las que destacan que soy usuario habitual de la marca y que tengo la convicción de que debemos promocionar las empresas que confían en el Sotware Libre. Es por ello que me complace compartir con vosotros que ha sido lanzado el nuevo Fedora Slimbook, dentro de su serie de ordenadores portátiles diseñados y configurados expresamente para proyectos libres,como es el caso de esta veterana distribución.

Nuevo Fedora Slimbook, la familia crece

Ya no es complicado encontrar ordenadores portátiles con la posibilidad de disfrutar de un sistema operativo libre. Gracias a compañías como Slimbook esto se ha convertido en un juego de niños, y no solo por la venta de dispositivos con distribuciones GNU/Linux por defecto sino porque te los afinan como solo los profesionales saben hacer para que funcionen a pleno renidmiento (y si no me creéis os remito a este artículo donde un producto puesto a punto por los chicos y chicas de Slimbook barría en las pruebas de rendimiento a ordenadores, en principio, más potentes).

De tal forma que el lanzamiento de un nuevo producto de esta empresa es motivo de alegría ya que demuestra dos que la empresa valenciana siempre está buscando «nuevos mercados» y que no se queda estancada en el pasado, intentando ofrecer las máximas opciones para el usuario.

Así que me congratula compartir con todos la nota de prensa que Fedora y Slimbook hicieron pública ayer:

[…] el Proyecto Fedora y Slimbook tienen el placer de anunciar Fedora Slimbook, un ultrabook de vanguardia.
Slimbook, conocido por su compromiso con la calidad, la innovación y el apoyo a la comunidad de Linux, se ha unido al Proyecto Fedora para ofrecer a los usuarios una nueva experiencia informática como nunca antes. Fedora Slimbook trae un diseño elegante, software exclusivo Fedora y presume de características de primera categoría y mejoras de rendimiento, que incluyen:

  • 16″ 16:10 sRGB
  • Pantalla 3K de 90 Hz
  • Procesador Intel® Core™ i7-12700H con 20 hilos
  • NVIDIA GeForce RTX 3050 Ti
  • Hasta 64 GB de RAM
  • Hasta 4 TB de SSD Nvme
  • Batería de 82 Wh
  • Peso de 1,5 kg
Nuevo Fedora Slimbook

Fedora Slimbook está optimizada para las configuraciones de hardware específicas de Fedora, lo que proporciona a los usuarios una experiencia excelente desde el primer momento. Esta compatibilidad de hardware conduce a una mejor experiencia del usuario, especialmente para aquellos que no están familiarizados con la instalación de una distribución de Linux.
Fedora Slimbook es el primer portátil de Slimbook que ofrece Fedora preinstalado, combinando la funcionalidad y estética distintivas de Slimbook con el compromiso de Fedora con los principios del código abierto y el enfoque en distribuciones de Linux de vanguardia. La asociación entre el Proyecto Fedora y Slimbook ejemplifica el compromiso de Fedora con aumentar la cantidad de sistemas con Linux preinstalado y reducir las barreras de entrada para la adopción del código abierto

Esta declaración de intenciones cumple con el objetivo que la gente de Slimbook tiene en mente desde hace mucho tiempo «sumar puentes entre los distintos jugadores que contribuimos con el software libre, para mejorar el ecosistema, y una de las mejores maneras, es hacer llegar al usuario Linux de manera conjunta.»

Por cierto, y como suelo comentar en estos casos, esto tampoco es una entrada patrocinada. Mi relación con Slimbook es de cliente habitual, amistad e intereses mutuos (el dominio del mundo por parte de la filosofía GNU/Linux).

Más información: Slimbook

La entrada Nuevo Fedora Slimbook, la familia crece se publicó primero en KDE Blog.

the avatar of openSUSE News

Leap Micro 5.5 availability and Leap Micro 5.3 EOL

A new version of the modern lightweight host operating system Leap Micro 5.5 is now available. All documents including Release notes from SLE Micro 5.5 documentation space are also applicable for Leap Micro, as Leap Micro is essentially a rebranded SLE Micro.

It’s important to mention that this also means that Leap Micro 5.3 is now End of Life (EOL). Users of Leap Micro 5.3 are strongly advised to consider upgrading to either the Leap Micro 5.4 or 5.5 release. This ensures access to the latest features, security enhancements, and ongoing support.

One of the standout features of Leap Micro 5.5 is its SELinux enhancements. Security-Enhanced Linux (SELinux) has received a significant boost. It brings podman-docker and hyper-v support for AArch64 for a more robust and secure computing experience for users.

Leap Micro 5.5 has podman 4.4 which introduces podman quadlets. If you haven’t tried quadlets yet, please make sure to check our Nextcloud deployment using quadlets. We also ship podman-docker, which is a podman wrapper that can be used together with docker-compose, or at least once the fix for Bug #1215926 is released for SLE and Leap Micro.

Cockpit 298 container management interface noticeably matured, as I’m finally able to use Cockpit to manage all of my home workloads.

Cockpit Update

Users new to ImmutableOS space (systems with read-only /root) are advised to read transactional update guide. Users can also use Toolbox to install additional software without a need to reboot into a new snapshot, this comes especially handy for debugging where the reboot is not an option.

We’ve made a short YouTube playlist with a few tutorials on how to put Leap Micro to practical use at home.

Watch the video

the avatar of Nathan Wolf

a silhouette of a person's head and shoulders, used as a default avatar

NeoMutt el cliente de correo para la terminal

NeoMutt es un lector de correo para la terminal basado en Mutt.

Desde hace unas semanas estoy experimentando y familiarizándome con NeoMutt, el cliente de correo electrónico para usarlo en la terminal de nuestras distribuciones de GNU/Linux. Es software libre publicado bajo licencia GPL v2.0

Este artículo nace con la idea de que sea una pequeña guía de mi iniciación en NeoMutt como cliente de correo, siendo testigo de todo aquello que voy descubriendo, aprendiendo, buscando y recopilando.

Como siempre, trata de ser un cuaderno de registro personal y una manera de compartir lo que aprendo, por si tu lector o lectora que llegas al blog tienes idénticas inquietudes.

Trataré de reflejar lo que he aprendido y lo que aprenda sobre NeoMutt como cliente de correo para la terminal, si te animas puedes ser espectador, recorrer el mismo camino o compartir tus conocimientos conmigo.

NeoMutt es una versión parcheada que incorpora muchas mejoras y contribuciones, del cliente de correo Mutt que inició su andadura haya por un lejano 1995 y que 28 años después sigue su desarrollo.

Si me decanté por NeoMutt, no fue por nada en especial, si no porque experimentando y probando cosas particularmente preferí la versión moderna frente a la original.

Aunque mantienen ciertas compatibilidades en configuraciones y diseño. Hay algunas partes en las que NeoMutt se ha ditanciado del proyecto original.

Utilizo Thunderbird como cliente de correo. Un software para poder leer, y gestionar nuestro correo con una potente y recientemente renovada interfaz gráfica que cada vez está ofreciendo más mejoras de las que se ven y de aquellas que están bajo la superficie.

Entonces ¿Por qué embarcarse en este periplo? Bueno, siempre me han llamado la atención las aplicaciones para la terminal sin entorno gráfico. Y hace tiempo ya estuve mirando algo para el correo.

De entre todas las opciones he escogido NeoMutt. Si sabes y tienes tiempo, puedes configurarlo hasta el extremo. Es muy flexible y en su documentación tendrás disponible la cantidad de opciones de las que dispone.

Pero no hace falta leerse cientos de líneas de ayuda, documentación o pasar horas probando y configurando tu instalación de NeoMutt.

No sé si será un reemplazo total a Thunderbird, pero por el momento le voy dando más oportunidades, me voy familiarizando poco a poco con los atajos de teclado, voy adecuándome a su interfaz y configurando lo que necesito según va surgiendo.

No soy gurú de nada, así que de este tema tampoco, pero si te interesa trataré de ir publicando cosas nuevas sobre mi inicio en el uso de NeoMutt ¿te animas a probarlo tu también?

Instálalo en tu distribución GNU/Linux, abre una terminal y escribe neomutt . Sí con esos ojos de miedo y fascinación me quedé yo también. Dado el primer paso, solo queda continuar…

Enlaces de interés

a silhouette of a person's head and shoulders, used as a default avatar

Disponible Krita 5.2, puliendo las animaciones y mejorando los textos

Hoy me complace compartir que está disponible Krita 5.2, una nueva versión de la aplicación para dibujantes y artistas gráficos de KDE, y la verdad, de cualquier otro sistema. No te pierdas las novedades y mejoras.

Disponible Krita 5.2, puliendo las animaciones y mejorando los textos

Disponible Krita 5.2, puliendo las animaciones y mejorando los textos

Tras un año de duro trabajo, por fin está aquí Krita 5.2, una nueva versión que aporta una gran variedad de novedades, desde cambios fundamentales en el manejo de texto y animación-audio hasta varios elementos más pequeños, como la transformación de todas las capas seleccionadas.

Con una veintena de errores resueltos, como algunos relacionados con la animación, Krita se vuelve más estable y eficiente. Además, aporta jugosas novedades como las siguientes:

  • Reescrito por completo el motor de diseño de texto de Krita con lo que los artistas podrán realizar mejores y más adecuados textos para sus comics o ilustraciones.
  • Se ha revisado la función de deshacer acumulativo. Esta función permite fusionar operaciones de deshacer, lo que resulta útil cuando se pintan muchos trazos. Además, se ha simplificado el código y se ha hecho que las opciones sean más intuitivas.
  • Se ha añadido la capacidad de antialias a los resultados del motor de pinceles Sketch.
  • Se ha añadido la posibilidad de transformar todas las capas seleccionadas a la vez con la herramienta de transformación.
  • Añadido un nuevo modo a la herramienta de relleno
  • La herramienta Selección contigua también ha recibido la misma opción de ampliación de la selección que la herramienta Relleno y la posibilidad de establecer la opacidad de la decoración de la selección, además, la decoración de selección se ha hecho compatible con PPP.
  • Mejorada la herramienta de atajos de teclado.
  • Añadido un ‘Selector de color de gama amplia’. Este selector es casi igual que el selector de color avanzado, excepto que es capaz de seleccionar colores en wide-gamuts en lugar de sólo sRGB.
  • Se ha cambiado la forma en que funcionan los modos de fusión CMYK (con un conmutador en la configuración). De esta forma los modos de fusión se alinean con la forma en que Photoshop maneja los modos de fusión en CMYK, simplificando el intercambio de archivos PSD con clientes que requieren PSDs CMYK.

Más información: Krita | Notas de lanzamiento

Las novedades de la rama Krita 5

Es el momento de dar un repaso rápido por las novedades de Krita 5.0, que no son todas las que son pero sí todas las que están.

  • Renovada el sistema con el que Krita maneja herramientas como los pinceles, los degradados y las paletas, así como el etiquetado. Ahoras es mucho más rápido, utiliza mucha menos memoria y es mucho más fiable.
  • Se han mejorado los degradados: más suaves y pueden manejar gamas más amplias.
  • El motor de los pinceles para difuminar ha sido completamente reescrito, y tenemos un nuevo motor de pinceles, basado en MyPaint
  • Se ha revisado el sistema de animación, con mejoras en la interfaz de usuario y nuevas funciones, como los marcos de clonación y las máscaras de transformación animadas.
  • Añadido un editor de guiones gráficos integrado.
  • Nueva herramienta: grabadora para crear un vídeo de tus sesiones de pintura

Y muchos más pequeñas mejoras. Una gran noticia para un Software que no para de mejorar y que demuestra el gran potencial que tiene el Software Libre cuando se unen esfuerzos.

Más información: Anuncio de lanzamiento | Notas de lanzamiento

¿Qué es Krita?

Para los que no lo sepan, Krita es el software de pintura digital e ilustración basado en las librerías de la plataforma KDE que antes estaba incluido en Calligra Suite.
A diferencia de otras aplicaciones gráficas, se diseño hace énfasis en la creación de imágenes desde cero, es decir, está especialmente orientado para los artistas gráficos como ilustradores, dibujantes de cómics, etc.
Krita es software libre distribuido bajo la licencia GNU GPL y fue lanzado por primera vez como parte de la versión 1.4.0 de KOffice, el 21 de junio de 2005. (Vía: Wikipedia)

Para ver el funcionamiento de esta aplicación nada mejor que ver un vídeo de Odysseas Stamoglou en la que nos muestra como dibujar una chica dedel futuro con Krita.

La entrada Disponible Krita 5.2, puliendo las animaciones y mejorando los textos se publicó primero en KDE Blog.

the avatar of openSUSE News

Innovation Marathon Hack Week Set for November

Hack Week 23 is set to blaze a trail of innovation this November.

This annual tradition started in 2007, this annual tradition, which somehow made up the difference for the number of the event to now, mirrors the year; it brings together SUSE employees, openSUSE contributors and open-source developers and enthusiasts from around the globe together for a week of uninterrupted experimentation and boundary-pushing.

This year’s Hack Week is scheduled from Nov. 6 to 10 and participants are gearing up to harness their collective creativity to innovate, contribute and expand the open-source landscape.

SUSE employees step out of their regular roles to embark on a week-long journey of collaboration, innovation and socialization. This year’s Hack Week promises to be a dynamic convergence of talent, expertise, and passion, as hackers collaborate across teams and continents to push boundaries of technology.

Hack Week is more than just a coding marathon; it’s a testament to SUSE’s commitment to nurturing open-source collaboration across the globe. Participants bring a diverse set of skills, knowledge, passion and perspectives to build and develop something new; this fosters an environment where creative ideas flourish and solutions take shape.

Past Hack Weeks having produced groundbreaking advancements and disruptive innovations. A few to mention are openQA, Aeon (formally known as MicroOS’ GNOME Desktop) and Weblate, which is used by openSUSE for translations.

While the global open-source community eagerly anticipates the commencement of Hack Week 23, individuals are already gearing up by compiling lists of projects they intend to undertake or contribute to.

Stay tuned to SUSE’s official communications channels and social media platforms for updates, announcements, and a front-row seat to the action as Hack Week 23 takes center stage this November.

a silhouette of a person's head and shoulders, used as a default avatar

Un tribunal regional de Hambugo cierra la página web del proyecto yt-dl

La página oficial del proyecto yt-dl se mantiene bloqueada al público por orden de un tribunal de Hamburgo

A día de publicación de este artículo (10-10-2023) la página oficial del proyecto yt-dl se encuentra bloqueada y no se puede visitar. En su lugar aparece un simple texto en dos idiomas que anuncia:

Acceso denegado

Debido a una sentencia del Tribunal Regional de Hamburgo, el acceso a este sitio web está bloqueado.

Hace un tiempo ya publiqué en el blog un artículo sobre el reemplazo del software youtube-dl por el fork comunitario llamado yt-dlp que continuaba su desarrollo.

yt-dlp continuaba el desarrollo de esta herramienta escrita en Python y disponible en GNU/Linux. Corregía defectos y mantenía el soporte para nuevos errores y barreras encontradas.

yt-dl era una herramienta para la línea de comandos con la que podremos descargar los vídeos de distintos sitios web que los alojen (como por ejemplo YouTube). También hace sencillo el poder extraer el audio de dichos vídeos en formatos como mp3.

Por supuesto siempre os animo a que si utilizáis esta herramienta lo hagáis en vídeos que estén libres de derechos de autor o con su consentimiento.

Porque ya sabemos que si descargas un vídeo de YouTube de un grupo de una multinacional y extraes su audio para escucharlo de manera local en tu dispositivo esto podría acarrear la bancarrota total para la discográfica que edita esa canción y supondría la ruina total para el grupo o cantante en cuestión que quizás tendrían que mendigar por las esquinas o mucho peor, meterse a política! y ninguna madre quiere ver sufrir así a sus hijos e hijas…

En la página oficial de yt-dl ahora clausurada, hay un simple enlace a un largo texto jurídico, en el que se detallarán los motivos por los que la ley ha decidido clausurar la web.

En dicha web se detalla que los demandantes son Sony Music, Universal Music y Warner Music. Tres “empresas emergentes» en esto de la música que sin duda ven cómo sus esfuerzos e intereses son arrebatados miserablemente por aquellas personas (sin corazón) que descargan las canciones de los artistas de sus respectivas nóminas.

Tribunal Regional de Hamburgo

Veredicto

EN NOMBRE DEL PUEBLO

en el litigio

1) Sony Music Entertainment Germany GmbH, representada por los directores generales …, …, …, …

  • Demandante y contrademandado –

2) Universal Music GmbH, representada por el director general…, …, …

  • Demandante y contrademandado –

3) Warner Music Group Germany Holding GmbH, representada por los directores generales …, …, …

  • Demandante y contrademandado –

Representantes legales 1 – 3:

Abogados…

contra

…, …, …

  • Demandada y Contrademandante –

Representante legal:

Abogados…

El Tribunal Regional de Hamburgo – Sala Civil 10 – a través del presidente del Tribunal Regional H…, el juez del Tribunal Regional H… y el juez del Tribunal Regional E… reconoce lo siguiente como ley sobre la Bases de la audiencia oral del 12 de enero de 2023:

En el siguiente texto se habla de la condena en forma de multa o prisión a la que se enfrenta por “elusión de medidas técnicas de protección».

hechos del caso

Los demandantes acusan al demandado de participar en la elusión de medidas técnicas de protección supuestamente efectivas. Se dice que está involucrado en la distribución del software llamado youtube-dl, que permite descargar vídeos musicales publicados en la plataforma YouTube. Los demandantes exigen medidas cautelares, información, determinación de la responsabilidad por daños y perjuicios y reembolso de los honorarios legales previos al litigio. La demanda se basa en la supuesta propiedad del productor de fonogramas de derechos de uso exclusivo sobre determinadas grabaciones sonoras. Con su reconvención, el imputado exige el reembolso de los honorarios legales de su defensa jurídica previa al juicio.

En todo caso la web está fuera de servicio, pero de momento a día de publicación del artículo el código de yt-dl sigue disponible en su repositorio de GitHub. Quizás sea buena idea clonar el repo de manera local para estudiarlo y tenerlo a buen recaudo por si se decide que el código ¡también es culpable de acabar con la música!

De momento el código la opción es seguir utilizando yt-dlp desde los repositorios de tu distribución de GNU/Linux. (Lo he probado en un sitio en el que es legítimo su uso con un contenido con licencias libre, lo juro).

En fin, como véis nada que no haya ocurrido antes. Gigantes del medio audiovisual queriendo coartar libertades y poner puertas al campo. Quieren jugar en el terreno multimedia actual pero sin perder su gran parte del pastel. Todo enarbolando la bandera de la cultura… Claro…

a silhouette of a person's head and shoulders, used as a default avatar

Reloj elegante para tu escritorio, Deskclock – Plasmoides de KDE (228)

Vuelven los plasmoides estilo reloj al blog. A lo largo de mucha entradas he presentado cosas desde Time Keeper Evolution a Aesthetic Clock 2. Hoy toca presentar un reloj elegante para tu escritorio, que recibe el nombre de Deskclock, el widget número 228 de esta serie, perfecto para decorar nuestro escritorio Plasma de la Comundidad KDE. y que , en realidad, es una variación de un gran plasmoide de este tipo.

Reloj elegante para tu escritorio, Deskclock – Plasmoides de KDE (228)

Hoy sigo con los plasmoides para nuestro entorno de trabajo ya que la Comunidad KDE no para de ofrecernos variedad y calidad. Aunque en esta ocasión se trata de un fork de uno que ya ha aparecido en el blog y que he utilizado en muchas entradas y en muchos #viernesdeescritorio: Clear Clock una creación de qewer.

De esta forma os presento Deskclock, una creación de zayronXIO que nos ofrece un reloj para nuestro escritorio elegante y muy moderno, con ese estilo tan de moda entre los estudiantes de escribir sobre texto (si alguien es maestro lo entenderá). Como he dicho, ser trata de un fork que ofrece, de momento, algunos cambios respecto a Clear Clock. De hecho sus opciones de configuración son igual de simples pero efectivas dado que nos permiten activar tanto el día de la semana como el formato de la hora así como la posibilidad o no de ver la fecha.

Reloj elegante para tu escritorio, Deskclock - Plasmoides de KDE (228)

Los cambios respecto a Clear Clock son:

  • Añadido el método de centrado de texto.
  • Transparencia en el tiempo.
  • Añadida la capitalización de la primera letra del día.
  • Cambiados los tamaños y colores por defecto.

Y como siempre digo, si os gusta el plasmoide podéis “pagarlo” de muchas formas en la mutante página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

¿Qué son los plasmoides?

Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.

En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.

La entrada Reloj elegante para tu escritorio, Deskclock – Plasmoides de KDE (228) se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

How to indicate device compatibility for your app in MetaInfo data

At the moment I am hard at work putting together the final bits for the AppStream 1.0 release (hopefully to be released this month). The new release comes with many new new features, an improved developer API and removal of most deprecated things (so it carefully breaks compatibility with very old data and the previous C API). One of the tasks for the upcoming 1.0 release was #481 asking about a formal way to distinguish Linux phone applications from desktop applications.

AppStream infamously does not support any “is-for-phone” label for software components, instead the decision whether something is compatible with a device is based the the device’s capabilities and the component’s requirements. This allows for truly adaptive applications to describe their requirements correctly, and does not lock us into “form factors” going into the future, as there are many and the feature range between a phone, a tablet and a tiny laptop is quite fluid.

Of course the “match to current device capabilities” check does not work if you are a website ranking phone compatibility. It also does not really work if you are a developer and want to know which devices your component / application will actually be considered compatible with. One goal for AppStream 1.0 is to have its library provide more complete building blocks to software centers. Instead of just a “here’s the data, interpret it according to the specification” API, libappstream now interprets the specification for the application and provides API to handle most common operations – like checking device compatibility. For developers, AppStream also now implements a few “virtual chassis configurations”, to roughly gauge which configurations a component may be compatible with.

To test the new code, I ran it against the large Debian and Flatpak repositories to check which applications are considered compatible with what chassis/device type already. The result was fairly disastrous, with many applications not specifying compatibility correctly (many do, but it’s by far not the norm!). Which brings me to the actual topic of this blog post: Very few seem to really know how to mark an application compatible with certain screen sizes and inputs! This is most certainly a matter of incomplete guides and good templates, so maybe this post can help with that a bit:

The ultimate cheat-sheet to mark your app “chassis-type” compatible

As a quick reminder, compatibility is indicated using AppStream’s relations system: A requires relation indicates that the system will not run at all or will run terribly if the requirement is not met. If the requirement is not met, it should not be installable on a system. A recommends relation means that it would be advantageous to have the recommended items, but it’s not essential to run the application (it may run with a degraded experience without the recommended things though). And a supports relation means a given interface/device/control/etc. is supported by this application, but the application may work completely fine without it.

I have a desktop-only application

A desktop-only application is characterized by needing a larger screen to fit the application, and requiring a physical keyboard and accurate mouse input. This type is assumed by default if no capabilities are set for an application, but it’s better to be explicit. This is the metadata you need:

<component type="desktop-application">
  <id>org.example.desktopapp</id>
  <name>DesktopApp</name>
  [...]
  <requires>
    <display_length>768</display_length>

    <control>keyboard</control>
    <control>pointing</control>
  </requires>
  [...]
</component>

With this requires relation, you require a small-desktop sized screen (at least 768 device-independent pixels (dp) on its smallest edge) and require a keyboard and mouse to be present / connectable. Of course, if your application needs more minimum space, adjust the requirement accordingly. Note that if the requirement is not met, your application may not be offered for installation.

Note: Device-independent / logical pixels

One logical pixel (= device independent pixel) roughly corresponds to the visual angle of one pixel on a device with a pixel density of 96 dpi (for historical X11 reasons) and a distance from the observer of about 52 cm, making the physical pixel about 0.26 mm in size. When using logical pixels as unit, they might not always map to exact physical lengths as their exact size is defined by the device providing the display. They do however accurately depict the maximum amount of pixels that can be drawn in the depicted direction on the device’s display space. AppStream always uses logical pixels when measuring lengths in pixels.

I have an application that works on mobile and on desktop / an adaptive app

Adaptive applications have fewer hard requirements, but a wide range of support for controls and screen sizes. For example, they support touch input, unlike desktop apps. An example MetaInfo snippet for these kind of apps may look like this:

<component type="desktop-application">
  <id>org.example.adaptive_app</id>
  <name>AdaptiveApp</name>
  [...]

  <requires>
    <display_length>360</display_length>
  </requires>

  <supports>
    <control>keyboard</control>
    <control>pointing</control>
    <control>touch</control>
  </supports>
  [...]
</component>

Unlike the pure desktop application, this adaptive application requires a much smaller lowest display edge length, and also supports touch input, in addition to keyboard and mouse/touchpad precision input.

I have a pure phone/table app

Making an application a pure phone application is tricky: We need to mark it as compatible with phones only, while not completely preventing its installation on non-phone devices (even though its UI is horrible, you may want to test the app, and software centers may allow its installation when requested explicitly even if they don’t show it by default). This is how to achieve that result:

<component type="desktop-application">
  <id>org.example.phoneapp</id>
  <name>PhoneApp</name>
  [...]

  <requires>
    <display_length>360</display_length>
  </requires>

  <recommends>
    <display_length compare="lt">1280</display_length>
    <control>touch</control>
  </recommends>
  [...]
</component>

We require a phone-sized display minimum edge size (adjust to a value that is fit for your app!), but then also recommend the screen to have a smaller edge size than a larger tablet/laptop, while also recommending touch input and not listing any support for keyboard and mouse.

Please note that this blog post is of course not a comprehensive guide, so if you want to dive deeper into what you can do with requires/recommends/suggests/supports, you may want to have a look at the relations tags described in the AppStream specification.

Validation

It is still easy to make mistakes with the system requirements metadata, which is why AppStream 1.0 will provide more commands to check MetaInfo files for system compatibility. Current pre-1.0 AppStream versions already have an is-satisfied command to check if the application is compatible with the currently running operating system:

:~$ appstreamcli is-satisfied ./org.example.adaptive_app.metainfo.xml
Relation check for: */*/*/org.example.adaptive_app/*

Requirements:
 • Unable to check display size: Can not read information without GUI toolkit access.
Recommendations:
 • No recommended items are set for this software.
Supported:
  Physical keyboard found.
  Pointing device (e.g. a mouse or touchpad) found.
 • This software supports touch input.

In addition to this command, AppStream 1.0 will introduce a new one as well: check-syscompat. This command will check the component against libappstream’s mock system configurations that define a “most common” (whatever that is at the time) configuration for a respective chassis type.

If you pass the --details flag, you can even get an explanation why the component was considered or not considered for a specific chassis type:

:~$ appstreamcli check-syscompat --details ./org.example.phoneapp.metainfo.xml
Chassis compatibility check for: */*/*/org.example.phoneapp/*

Desktop:
  Incompatible
 • recommends: This software recommends a display with its shortest edge
   being << 1280 px in size, but the display of this device has 1280 px.
 • recommends: This software recommends a touch input device.

Laptop:
  Incompatible
 • recommends: This software recommends a display with its shortest edge 
   being << 1280 px in size, but the display of this device has 1280 px.
 • recommends: This software recommends a touch input device.

Server:
  Incompatible
 • requires: This software needs a display for graphical content.
 • recommends: This software needs a display for graphical content.
 • recommends: This software recommends a touch input device.

Tablet:
  Compatible (100%)

Handset:
  Compatible (100%)

I hope this is helpful for people. Happy metadata writing! 😀