Skip to main content

the avatar of Martin de Boer

The openSUSE Leap 15.1 update experience

On the 22nd of May, openSUSE released (1) Leap 15.1. A couple of days later I took the plunge to update my laptop and desktop from openSUSE Leap 15.0. In this blog, I will detail my update experience.

Updating my laptop

My laptop is a ASUS VivoBook X402NA-FA112T. This is a laptop with an Intel Pentium N4200 processor, 4 GB of RAM and a 128 GB SSD. The upgrade to Leap 15.1 went flawless.

I have used the SUSE studio image writer to burn the Leap 15.1 ISO to a USB thumb drive. This is an excellent program that does just one thing and does it right. After plugging in this USB drive, I checked the UEFI menu to make sure that I would boot from the USB drive instead of the SSD harddrive.

To start the upgrade, just select the right option from the USB boot menu.

Then accept the license agreement, which states that this is free and open source software! You own it outright, but you have to share the source code if you want to distribute or change it.

The installer kicks off and finds my previous installation of openSUSE Leap 15.0.

The next thing to do is to Disable the additional repositories. The default setting is for these repositories to be Removed. I don’t want to re-enter these additional repositories from scratch. So I simply disable them. After installation, I open YaST and then Software Repositories. And I change the name of the URL from Leap 15 to Leap 15.1. For example:

https://download.opensuse.org/repositories/mozilla/openSUSE_Leap_15.0/

becomes

https://download.opensuse.org/repositories/mozilla/openSUSE_Leap_15.1/

After that, I set the repository to Enabled and Auto-refresh.

Most of these repositories were available from the get go. The only exception were 2 gaming repositories which took 2 more days to become available.

The ‘update settings’ page stated that there were package conflicts that couldn’t be resolved automatically. So I needed to go in and make these decisions manually. The amazing thing is, that even with all additional package repositories disabled, the installer still goes out of its way to find an updated package from various additional package repositories and proposes to install it. Its these kind of little things that make a big difference!

After I went through the list with all the proposed changes, I got a nice summary of everything that would happen. This is the default YaST Software Manager installation overview. But its a nice touch to present the user with such a summary.

Once I clicked on Accept, I was returned to the ‘update settings’ page. After clicking install, there is no way back.

I restarted my laptop and Leap 15.1 was successfully installed! Great job openSUSE!

Updating my desktop

My desktop is a HP Pavilion Power 580-146nd. This is a midsize PC with an AMD Ryzen 5 1400 CPU, an AMD Radeon RX 580 GPU, 16 GB of RAM, a 128 GB M.2 SSD and a 1 TB 7200rpm HDD.

I used the same USB thumbstick. After selecting ‘Update’ from the boot menu, the whole screen went black. And then nothing happened. Since I have installed openSUSE many times before, I quickly realized that this must be a graphics issue. I used ‘nomodeset’ in the past to get around that issue. This causes the installer to go back to the most basic graphics settings but it also means I could finish the update.

It used to be a lot easier to edit the boot options. However, this is now hidden. This post on Stack Exchange (2) gives a great explanation how to enable nomodeset, both as a one-time option and as a permanent option.

For the permanent enablement of nomodeset I know an easier way: in YaST look for the module ‘Boot Loader’ and in the Kernel Parameters tab, you can edit the boot command. This was the route that I took to make nomodeset a permanent boot setting.

With nomodeset enabled, I was able to complete the installation. I set the BIOS options to a fixed resolution of 1280 x 1024, which was enough screen real-estate to complete the update.

The black screen issue was also present during regular boot. The permanent nomodeset was a way to work around this. This enabled me to successfully launch into the KDE Plasma 5 desktop environment.

It looks like I am not the only one with this issue. I found other forum posts that describe similar problems. Some describe this problem in Leap 42.3 or Leap 15.0 (3, 4). Some describe this problem in Tumbleweed (5, 6).

I tried to do some troubleshooting by following this article SDB Configuring Graphics Cards (7). When entering the command:

sudo lspci -nnk | grep -A3 VGA

I found that the system detects the AMD GPU and also notes that the kernel driver in use is the amdgpu driver. What I tried so far to resolve the issue:

  1. Force reinstall all AMD graphic driver packages
  2. Remove all AMD/ATI graphic driver packages except for amdgpu
  3. Edit the xorg.conf and 50-device.conf files to force-enable the amdgpu driver

All of the above actions didn’t solve my problem. The next thing that I wanted to try is if this issue was also present in openSUSE Tumbleweed. So I downloaded the latest ISO image and used imagewriter to write it to the USB thumbstick. Unfortunately I encountered the same issue in Tumbleweed.

Next I tried to reinstall openSUSE Leap 15.0. That installation continued without the black screen issue. Because of time constraints, I decided that I would continue to use openSUSE Leap 15.0 for the time being. I will try to troubleshoot this issue by installing Leap 15.1 as a dual-boot option at a later date.

Conclusion

Overall, I really like the openSUSE update experience. Both on my laptop and desktop, the installer found my previous install and I think its great that the installer automatically fetches updated packages from additional package repositories. It also presents the user with an excellent installation overview.

The downside of the update experience is that it might not be very intuitive for new Linux users. I feel that new users might find it difficult to select the right package option manually.

Due to a GPU driver issue I didn’t keep openSUSE Leap 15.1 on my desktop PC and reverted back to Leap 15.0. This driver issue is present both in openSUSE Leap 15.1 and in openSUSE Tumbleweed (of 27 May 2019). I found that multiple people have encountered similar issues. I will try to resolve this driver issue in the future. That is a subject for a future blog post.

Published on: 18 june 2019

the avatar of Santiago Zarate

Permission denied for hugepages in QEMU without libvirt

So, say you’re running qemu, and decided to use hugepages, nice isn’t it? helps with performace and stuff, however a wild wall appears!

 QEMU: qemu-system-aarch64: can't open backing store /dev/hugepages/ for guest RAM: Permission denied

This basically means that you’re using the amazing -mem-path /dev/hugepages, and that QEMU running as an unprivileged user can’t write there… This is how it looked for me:

sudo -u _openqa-worker qemu-system-aarch64 -device virtio-gpu-pci -m 4094 -machine virt,gic-version=host -cpu host \ 
  -mem-prealloc -mem-path /dev/hugepages -serial mon:stdio  -enable-kvm -no-shutdown -vnc :102,share=force-shared \ 
  -cdrom openSUSE-Tumbleweed-DVD-aarch64-Snapshot20190607-Media.iso \ 
  -pflash flash0.img -pflash flash1.img -drive if=none,file=opensuse-Tumbleweed-aarch64-20190607-gnome-x11@aarch64.qcow2,id=hd0 \ 
  -device virtio-blk-device,drive=hd0

The machine tries to start, but utimately I get that dreadful message. You can simply do a chmod to the directory, use an udev rule, and get away with it, it’s quick and does the job but also there are few options to solve this using libvirt, however if you’re not using hugeadm to manage those pools and let the operating system take care of it, likely the operating system will take care of this for you, so you can look to /usr/lib/systemd/system/dev-hugepages.mount, since trying to add an udev rule failed for a colleague of mine, I decided to use the systemd approach, ending up with the following:


[Unit]
Description=Systemd service to fix hugepages + qemu ram problems.
After=dev-hugepages.mount

[Service]
Type=simple
ExecStart=/usr/bin/chmod o+w /dev/hugepages/

[Install]
WantedBy=multi-user.target

the avatar of Greg Kroah-Hartman

Linux Stable Tree Mirror at Github

As everyone seems to like to put kernel trees up on github for random projects (based on the crazy notifications I get all the time), I figured it was time to put up a semi-official mirror of all of the stable kernel releases on github.com

It can be found at: https://github.com/gregkh/linux and I will try to keep it up to date with the real source of all kernel stable releases at https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/

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

openSUSE Leap 15.1 ofrece la experiencia completa de Linux en Raspberry Pi




Traducción del artículo original de fossbytes

SUSE es conocido por sus ofertas comerciales de SUSE Linux Enterprise para usuarios de escritorio y servidores. La compañía también patrocina la distribución comunitaria gratuita y de código abierto conocida como openSUSE.

openSUSE ofrece además dos versiones: Leap sigue el modelo de versión fija y Tumbleweed sigue el modelo de versión móvil. En este artículo, les contaré sobre la última versión estable de openSUSE Leap 15.1 basada en SUSE Linux Enterprise 15 Service Pack 1.



¿Qué hay de nuevo en openSUSE Leap 15.1?

Comenzando con el entorno de escritorio, Leap 15.1 nos permite elegir múltiples entornos de escritorio como KDE, GNOME y Xfce. Las opciones específicas disponibles con Leap 15.1 son KDE Plasma 15.2 y GNOME 3.26.

La distro también se envía con una pila de gráficos completamente nueva. Sin embargo, la nueva versión aún funciona con el kernel de Linux 4.12 pero contiene el muy necesario backporting de 4.19. También obtiene un mejor soporte para las CPUs AMD Vega y otro hardware.

Para mejorar la experiencia en 4K (HiDPI), Leap 15.1 ahora los detectará y escalará el escritorio para brindar una experiencia visual nítida. Para los audiófilos, hay mejoras como el audio HD de alta definición y otras actualizaciones como los controladores de audio USB con puerto trasero.

Continuando con el flujo de trabajo controlado por contenedores, esta versión viene con Singularity, que le permite crear contenedores mínimos y ejecutarlos como un solo entorno de aplicación. Combinados con otras herramientas centradas en contenedores como Podman y Buildah, los desarrolladores han prometido ofrecer una alternativa ligera a Docker.



Experiencia Linux completa en Raspberry Pi

openSUSE Leap 15.1 para ARM64, es el primer sistema operativo multipropósito que te permite disfrutar de una experiencia de escritorio Linux estándar completa en Raspberry Pi. Así que, ¿qué significa? esto significa que la imagen ISO estándar de Leap se puede instalar directamente en la Pi; no se necesita ninguna imagen personalizada. El instalador Leap detecta el Pi, aplica las configuraciones predefinidas y continúa con la instalación. 

Descargar y actualizar

Los desarrolladores han aconsejado a los usuarios de openSUSE Leap 15.0 que se actualicen a Leap 15.1, ya que el ciclo de soporte de la versión 15.0 expirará en los próximos 6 meses. Para aquellos que no lo saben, las versiones menores de Leap 15 reciben 18 meses de soporte.

Para aquellos que estén interesados ​​en realizar una instalación limpia, los archivos ISO y torrent se pueden encontrar aquí. Pruébalo y comparte tus experiencias. ¡Diviertete mucho!
a silhouette of a person's head and shoulders, used as a default avatar

Labplot-Aplicación de análisis y visualización de datos





LabPlot es una aplicación de KDE para gráficos y análisis interactivos de datos científicos.  LabPlot proporciona una manera fácil de crear, administrar y editar gráficos. Permite producir diagramas basados en datos de una hoja de cálculo o en datos importados de archivos externos. Los gráficos se pueden exportar a varios formatos de gráficos de píxeles y gráficos vectoriales. Esta versión está basada en KDE Frameworks 5.



Caracteristicas:
  • Gestión de datos basada en proyectos.
  • Project-explorer para la gestión y organización de objetos creados en diferentes carpetas y subcarpetas.
  • Hoja de cálculo con funcionalidad básica para el ingreso manual de datos o para la generación de números aleatorios uniformes y no uniformes.
  • Importación de datos ASCII externos en el proyecto para su posterior edición y visualización.
  • Exportación de hoja de cálculo a un archivo ASCII.
  • La hoja de trabajo como principal objeto principal para gráficos, etiquetas, etc., admite diferentes diseños y funciones de zoom.
  • Exportación de la hoja de trabajo a diferentes formatos (pdf, eps, png y svg).
  • Gran variedad de capacidades de edición para las propiedades de la hoja de cálculo y sus objetos.
  • Gráficos cartesianos, creados a partir de conjuntos de datos importados o creados manualmente o mediante ecuación matemática.
  • La definición de fórmulas matemáticas se apoya en el resaltado y finalización de la sintaxis y en la lista de constantes y funciones matemáticas y físicas agrupadas temáticamente.
  • El análisis de los datos trazados es compatible con muchas funciones de zoom y navegación.
  • Ajustes lineales y no lineales a los datos, se predefinen varios modelos de ajuste y se pueden proporcionar modelos personalizados con un número arbitrario de parámetros


Para instalar LabPlot en openSUSE accedemos a la siguiente URL:

https://software.opensuse.org/package/labplot-kf5

y seleccionamos la versión de openSUSE que estemos utilizando (Leap, Tumbleweed) con la tecnología 1 Click Install y seguimos las instrucciones de instalación.  

#HaveALotOfFun #DivierteteMucho 

the avatar of Nathan Wolf

Virtual Machine Manager with QEMU/KVM on openSUSE Tumbleweed

One of the beauties of a rolling distribution is that sometimes you are forced to use a new piece of software… My regular Virtual Machine application, VirtualBox was non-functional for a few days due to a kernel update and some sort of mismatch with the kernel driver or something… The positive is, I got to … Continue reading Virtual Machine Manager with QEMU/KVM on openSUSE Tumbleweed
the avatar of Federico Mena-Quintero

Bzip2 in Rust: porting the randomization table

Here is a straightforward port of some easy code.

randtable.c has a lookup table with seemingly-random numbers. This table is used by the following macros in bzlib_private.h:

extern Int32 BZ2_rNums[512];

#define BZ_RAND_DECLS                          \
   Int32 rNToGo;                               \
   Int32 rTPos                                 \

#define BZ_RAND_INIT_MASK                      \
   s->rNToGo = 0;                              \
   s->rTPos  = 0                               \

#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)

#define BZ_RAND_UPD_MASK                       \
   if (s->rNToGo == 0) {                       \
      s->rNToGo = BZ2_rNums[s->rTPos];         \
      s->rTPos++;                              \
      if (s->rTPos == 512) s->rTPos = 0;       \
   }                                           \
   s->rNToGo--;

Here, BZ_RAND_DECLS is used to declare two fields, rNToGo and rTPos, into two structs (1, 2). Both are similar to this:

typedef struct {
   ...
   Bool     blockRandomised;
   BZ_RAND_DECLS
   ...
} DState;

Then, the code that needs to initialize those fields calls BZ_RAND_INIT_MASK, which expands into code to set the two fields to zero.

At several points in the code, BZ_RAND_UPD_MASK gets called, which expands into code that updates the randomization state, or something like that, and uses BZ_RAND_MASK to get a useful value out of the randomization state.

I have no idea yet what the state is about, but let's port it directly.

Give things a name

It's interesting to see that no code except for those macros uses the fields rNToGo and rTPos, which are declared via BZ_RAND_DECLS. So, let's make up a type with a name for that. Since I have no better name for it, I shall call it just RandState. I added that type definition in the C code, and replaced the macro-which-creates-struct-fields with a RandState-typed field:

-#define BZ_RAND_DECLS                          \
-   Int32 rNToGo;                               \
-   Int32 rTPos                                 \
+typedef struct {
+   Int32 rNToGo;
+   Int32 rTPos;
+} RandState;

...

-      BZ_RAND_DECLS;
+      RandState rand;

Since the fields now live inside a sub-struct, I changed the other macros to use s->rand.rNToGo instead of s->rNToGo, and similarly for the other field.

Turn macros into functions

Now, three commits (1, 2, 3) to turn the macros BZ_RAND_INIT_MASK, BZ_RAND_MASK, and BZ_RAND_UPD_MASK into functions.

And now that the functions live in the same C source file as the lookup table they reference, the table can be made static const to avoid having it as read/write unshared data in the linked binary.

Premature optimization concern: doesn't de-inlining those macros cause performance problems? At first, we will get the added overhead from a function call. When the whole code is ported to Rust, the Rust compiler will probably be able to figure out that those tiny functions can be inlined (or we can #[inline] them by hand if we have proof, or if we have more hubris than faith in LLVM).

Port functions and table to Rust

The functions are so tiny, and the table so cut-and-pasteable, that it's easy to port them to Rust in a single shot:

#[no_mangle]
pub unsafe extern "C" fn BZ2_rand_init() -> RandState {
    RandState {
        rNToGo: 0,
        rTPos: 0,
    }
}

#[no_mangle]
pub unsafe extern "C" fn BZ2_rand_mask(r: &RandState) -> i32 {
    if r.rNToGo == 1 {
        1
    } else {
        0
    }
}

#[no_mangle]
pub unsafe extern "C" fn BZ2_rand_update_mask(r: &mut RandState) {
    if r.rNToGo == 0 {
        r.rNToGo = RAND_TABLE[r.rTPos as usize];
        r.rTPos += 1;
        if r.rTPos == 512 {
            r.rTPos = 0;
        }
    }
    r.rNToGo -= 1;
}

Also, we define the RandState type as a Rust struct with a C-compatible representation, so it will have the same layout in memory as the C struct. This is what allows us to have a RandState in the C struct, while in reality the C code doesn't access it directly; it is just used as a struct field.

// Keep this in sync with bzlib_private.h:
#[repr(C)]
pub struct RandState {
    rNToGo: i32,
    rTPos: i32,
}

See the commit for the corresponding extern declarations in bzlib_private.h. With those functions and the table ported to Rust, we can remove randtable.c. Yay!

A few cleanups

After moving to another house one throws away useless boxes; we have to do some cleanup in the Rust code after the initial port, too.

Rust prefers snake_case fields rather than camelCase ones, and I agree. I renamed the fields to n_to_go and table_pos.

Then, I discovered that the EState struct doesn't actually use the fields for the randomization state. I just removed them.

Exegesis

What is that randomization state all about?

And why does DState (the struct used during decompression) need the randomization state, but EState (used during compression) doesn't need it?

I found this interesting comment:

      /*-- 
         Now a single bit indicating (non-)randomisation. 
         As of version 0.9.5, we use a better sorting algorithm
         which makes randomisation unnecessary.  So always set
         the randomised bit to 'no'.  Of course, the decoder
         still needs to be able to handle randomised blocks
         so as to maintain backwards compatibility with
         older versions of bzip2.
      --*/
      bsW(s,1,0);

Okay! So compression no longer uses randomization, but decompression has to support files which were compressed with randomization. Here, bsW(s,1,0) always writes a 0 bit to the file.

However, the decompression code actually reads the blockRandomised bit from the file so that it can see whether it is dealing with an old-format file:

GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);

Later in the code, this s->blockRandomised field gets consulted; if the bit is on, the code calls BZ2_rand_update_mask() and friends as appropriate. If one is using files compressed with Bzip2 0.9.5 or later, those randomization functions are not even called.

Talk about preserving compatibility with the past.

Explanation, or building my headcanon

Bzip2's compression starts by running a Burrows-Wheeler Transform on a block of data to compress, which is a wonderful algorithm that I'm trying to fully understand. Part of the BWT involves sorting all the string rotations of the block in question.

Per the comment I cited, really old versions of bzip2 used a randomization helper to make sorting perform well in extreme cases, but not-so-old versions fixed this.

This explains why the decompression struct DState has a blockRandomised bit, but the compression struct EState doesn't need one. The fields that the original macro was pasting into EState were just a vestige from 1999, which is when Bzip2 0.9.5 was released.

the avatar of Sébastien sogal Poher

Mise à jour des packages Mesa, VirtualBox, Ceph et NetworkManager dans Tumbleweed

Trois instantanés openSUSE Tumbleweed ont été publiés au cours des quatre premiers jours de juin, ce qui entraîne plusieurs mises à jour des paquets dans cette rolling-release.

L'instantané 20190604 apportait le paquet babl 0.1.64, améliorant la cohérence du code, la prise en charge de l'intégration continue (CI) de [gitlab](https://gitlab. com), ainsi que des améliorations d’autotools et meson build. Un accident dans la dénomination a entraîné le passage de la version 0.3.2 de bubblewrap à la version 0.3.3. Cependant, bubblewrap 0.3.3. a corrigé une vulnérabilité (CVE), fourni quelques corrections plus petites et ajouté l’API (Application Programming Interface) JSON qui permet de lire le code de sortie du processus interne. GNU Compiler Collection 8 a eu quelques mises à jour qui comprenaient quelques correctifs dont un rendant les constructions sans profilage reproductibles. La bibliothèque Generic Graphics Library gegl 0.4.16 a également ajouté le support de gitlab CI et utilise un allocateur personnalisé pour les données de mosaïque, qui aligne les données et les allocations de groupes dans des blocs ; ceci a été réalisé sur Linux en utilisant l'extension GNU malloc_trim pour permettre de forcer l'invocation de la fonction de récupération de place d'allocateurs, malloc, présente au sein de la glibc. La version 6.0.8 d’Oracle virtualbox corrigeait un crash lors de la mise hors tension d’une machine virtuelle sans contrôleur graphique et la version 1.20.5 de xorg-x11-server en corrigeait certains types d'entrées. L’instantané a actuellement une cote de 96, selon l'évaluateur d’instantané.

L'instantané 20190603 a mis à jour Mesa et Mesa-drivers en version 19.0.5 améliorant certaines parties du code et des pilotes. NetworkManager 1.16.2 a corrigé certaines autorisations erronées du fichier /var/lib/NetworkManager/secret_key. La mise à jour de la version mineure de Ceph a désactivé l'[Optimisation du temps de liaison](https://stackoverflow.com/questions/23736507/is-there-a-rreason-why-not-to -use-link-time-optimization-lto) dans le fichier spec lors de son utilisation. GNOME 3.32.2 comportait plusieurs mises à jour et correctifs de packages, notamment le correctif d'une régression qui entraînait la disparition de la catégorie "Fonts" (Polices). Tumbleweed a zappé la série 1.3.0 de Flatpak pour fournir directement à la version 1.4.0. Les principales modifications depuis la version 1.2.4 concernent l'utilisation améliorée des Entrées/Sorties pour les applications installées sur le système et le nouveau format des dépôts préconfigurées. Glib2 2.60.3 a mis à jour les traductions et fourni diverses corrections au support des petites clés/valeurs dans [GHashTable](https://developer.gnome.org/glib/stable /glib-Hash-Tables.html). Le langage de script php7 7.3.6 a ajouté une curl_version manquante et corrigé plusieurs autres bugs. L’instantané a actuellement une côte de 95, selon l'analyseur d’instantané (http://review.tumbleweed.boombatower.com/).

L'instantané qui a commencé le mois, 20190601, a mis à jour le [Noyau Linux](https: //www.kernel. org /) en version 5.1.5, ce qui corrigeait un bogue de perte de données. Flatpak-builder 1.0.7 a corrigé quelques détails sur la façon de créer des validations de plate-forme afin de résoudre les problèmes liés à la mise en cache de polices. La visionneuse d'images de GNOME gthumb 3.8.0 faisait partie des autres mises à jour de paquet contenues dans l'instantané en compagnie de ibus-libpinyin 1.11.1, libopenmpt 0.4.5, qalculate 3.2. 0, rdesktop 1.8.6, qui corrigeait le code du protocole gérant les nouvelles licences, et yast2-support 4.1.1. L’instantané a actuellement une cote de 90, selon l'analyseur d’instantané (http://review.tumbleweed.boombatower.com/).

Tags: opensuse

the avatar of Efstathios Iosifidis

Μέλλον της κοινότητας openSUSE! Foundation; Κάτι άλλο;

openSUSE

Είναι από καιρό σαφές ότι η διανομή openSUSE υποφέρει από έλλειψη ενεργού συμμετοχής. Χωρίς την ισχυρή υποστήριξη της SUSE, που βλέπει την openSUSE ως το δοκιμαστικό έδαφος για την εταιρική διανομή SUSE Linux Enterprise, η δωρεάν openSUSE ενδέχεται να μην υπάρχει πια. Ως επί το πλείστον, η openSUSE αποτελείται από τον πυρήνα και τα πακέτα του SUSE Linux Enterprise.

Αλλά αυτή η εξάρτηση από την SUSE υπερβαίνει τα όρια, για ορισμένα μέλη της κοινότητας. Στο φετινό συνέδριο openSUSE, το openSUSE board, συζήτησε πώς να δημιουργήσει μια δομή ανεξάρτητη από την SUSE. Αυτό προηγήθηκε σε συνεδριάσεις του board (δείτε τις συζητήσεις εδώ, κυρίως 2,16,30 Μαρτίου). Επίσης αναπτύσσεται αναλυτικά σε άρθρο στο LWN.

Δείτε την συζήτηση στο συνέδριο:



Σίγουρα δεν πρόκειται να γίνει απολύτως ανεξάρτητη από την SUSE, επειδή αυτή τη στιγμή δεν είναι δυνατό. Αντίθετα, ανεξάρτητα από τα οικονομικά οφέλη της SUSE, ένα κομμάτι του board πρέπει να είναι σε θέση να δέχεται δωρεές και να χρησιμοποιούνται τα έσοδα κατάλληλα.

Τα μέλη της κοινότητας φοβούνται ότι η SUSE μπορεί να παραιτηθεί από τις προηγούμενες δεσμεύσεις της στο openSUSE, για παράδειγμα, αν η εταιρεία πωληθεί. Η προηγούμενη σχέση με την SUSE θεωρείται θετική και δεν πρέπει να τερματίζεται από την κοινότητα (δείτε την σχετική συζήτηση που έχει ξεκινήσει στις λίστες της κοινότητας). Επίσης έχει ξεκινήσει και συζήτηση στο Github σχετικά με το branding. Ο οργανισμός που θα ιδρυθεί, ενδεχομένως ως ίδρυμα βάσει του γερμανικού νόμου, θα πρέπει ωστόσο να εξασφαλίσει μια χαμηλότερη εξάρτηση από την SUSE και, κατά συνέπεια, να είναι πιο ανθεκτική στο μέλλον.

Η μορφή που θα υιοθετήσει τελικά ο οργανισμός εξακολουθεί να είναι ανοιχτή. Ωστόσο, υπάρχουν πολλοί υποστηρικτές για την ίδρυσή του και οι φωνές τους ακούγονται ελάχιστα. Ωστόσο, ο Richard Brown, πρόεδρος του board της openSUSE, λέει ότι δεν βιάζεται και μπορούν να πάρουν το χρόνο τους για να βρουν τη βέλτιστη λύση.

Ο χρόνος θα δείξει!!!

the avatar of Nathan Wolf