Plasmoid radio player ne fonctionne plus

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
J'utilisais depuis quelques temps le plasmoid Advanced Radio Player , qui fonctionnait très bien (liste de radios paramétrable, infos sur l' album, le titre, l'artiste, avec des liens pour plus de détails sur le web)
Hélas il ne fonctionne plus :
Message à l'écran :
Citation :
Erreur du chargement du fichier QML : file:///home/daniel/.local/share/plasma/plasmoids/org.kde.plasma.advancedradio/contents/ui/main.qml:78:34: Type FullRepresentation unavailable
file:///home/daniel/.local/share/plasma/plasmoids/org.kde.plasma.advancedradio/contents/ui/FullRepresentation.qml:8:1: PlasmaExtras.Representation is not a type
file:///home/daniel/.local/share/plasma/plasmoids/org.kde.plasma.advancedradio/contents/ui/FullRepresentation.qml:8:1: PlasmaExtras.Representation is not a type
Qui pourrait me renseigner sur ces erreurs QML ?
Voici le fichier main.qml :
Caché :
import QtQuick 2.12
import QtMultimedia 5.8
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
import org.kde.plasma.plasmoid 2.0
Item {
id: root
property string artist
property string artisturl
property string song
property string songurl
property string title: Plasmoid.title
property bool isError: false
property string tooltipimage
property string albumimage
property string album
property string albumurl
property int lastPlay: -1
property bool isConnected: networkStatus.networkStatus === i18nd(
"plasma_applet_org.kde.plasma.networkmanagement",
"Connected")
Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation
StationsModel {
id: stationsModel
}
Component.onCompleted: {
reloadStationsModel()
}
Connections {
target: plasmoid.configuration
function onServersChanged() {
playMusic.stop()
reloadStationsModel()
}
}
MediaPlayer {
id: playMusic
property string title: isPlaying()
&& playMusic.metaData.title ? playMusic.metaData.title : null
onTitleChanged: {
if (isPlaying()) {
getInfo(playMusic.metaData.title)
}
}
onError: {
isError = true
errorTimer.start()
}
onStopped: {
playMusic.stop()
playMusic.source = ""
root.title = Plasmoid.title
root.albumimage = ""
root.tooltipimage = ""
root.album = ""
root.albumurl = ""
root.artist = ""
root.artisturl = ""
root.song = ""
root.songurl = ""
}
volume: 0.75
}
Timer {
id: errorTimer
running: false
repeat: false
interval: 5000
onTriggered: {
isError = false
}
}
Plasmoid.compactRepresentation: CompactRepresentation {}
Plasmoid.fullRepresentation: FullRepresentation {
id: dialogItem
anchors.fill: parent
focus: true
}
function isPlaying() {
return playMusic.playbackState === MediaPlayer.PlayingState
}
function reloadStationsModel() {
playMusic.stop()
stationsModel.clear()
try {
var servers = JSON.parse(plasmoid.configuration.servers)
for (var i = 0; i < servers.length; i++) {
if (servers[i].active) {
stationsModel.append(servers[i])
}
}
} catch (e) {
console.log(e)
}
}
PlasmaNM.NetworkStatus {
id: networkStatus
onNetworkStatusChanged: {
if (networkStatus.networkStatus === i18nd(
"plasma_applet_org.kde.plasma.networkmanagement",
"Connected")) {
root.isConnected = true
} else {
console.log("Connection lost")
root.isConnected = false
}
}
}
function getInfo(data) {
if (data !== undefined && data.indexOf('-') !== -1) {
var strings // Magic to check non-standard artists/songs like "A-ha - Minor earth major sky"
if (data.indexOf(' - ') !== -1) {
strings = data.split(' - ')
} else {
strings = data.split('-')
}
var artist = strings[0].trim(), song = strings[1].trim()
var xmlhttp = new XMLHttpRequest()
var url = "http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=ada39a6834a3be4d641cc1aec7e64d48&artist=" + encodeURIComponent(
artist) + "&track=" + encodeURIComponent(
song) + "&autocorrect=1&format=json"
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
setInfo(JSON.parse(xmlhttp.responseText))
}
}
xmlhttp.open("GET", url)
xmlhttp.send()
function setInfo(arr) {
root.artist = (arr.track
&& arr.track.artist) ? (arr.track.artist.name) : artist
root.song = (arr.track) ? (arr.track.name) : song
root.title = (isPlaying(
)) ? root.artist + " - " + root.song : Plasmoid.title
root.artisturl = (arr.track
&& arr.track.artist) ? (arr.track.artist.url) : ""
root.songurl = (arr.track
&& arr.track.url) ? (arr.track.url) : ""
root.albumimage = arr.track && arr.track.album
&& arr.track.album.image[1]['#text'] ? arr.track.album.image[1]['#text'] : ""
root.tooltipimage = arr.track && arr.track.album
&& arr.track.album.image[0]['#text'] ? arr.track.album.image[0]['#text'] : ""
root.album = arr.track && arr.track.album
&& arr.track.album.title
&& arr.track.album.title != "" ? arr.track.album.title : ""
root.albumurl = arr.track && arr.track.album
&& arr.track.album.url
&& arr.track.album.url != "" ? arr.track.album.url : ""
}
} else {
root.title = isPlaying() && playMusic.metaData.title
&& !playMusic.metaData.title.startsWith(
"{") ? playMusic.metaData.title : Plasmoid.title // "{" fix for some stations
}
}
}
import QtMultimedia 5.8
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
import org.kde.plasma.plasmoid 2.0
Item {
id: root
property string artist
property string artisturl
property string song
property string songurl
property string title: Plasmoid.title
property bool isError: false
property string tooltipimage
property string albumimage
property string album
property string albumurl
property int lastPlay: -1
property bool isConnected: networkStatus.networkStatus === i18nd(
"plasma_applet_org.kde.plasma.networkmanagement",
"Connected")
Plasmoid.preferredRepresentation: Plasmoid.compactRepresentation
StationsModel {
id: stationsModel
}
Component.onCompleted: {
reloadStationsModel()
}
Connections {
target: plasmoid.configuration
function onServersChanged() {
playMusic.stop()
reloadStationsModel()
}
}
MediaPlayer {
id: playMusic
property string title: isPlaying()
&& playMusic.metaData.title ? playMusic.metaData.title : null
onTitleChanged: {
if (isPlaying()) {
getInfo(playMusic.metaData.title)
}
}
onError: {
isError = true
errorTimer.start()
}
onStopped: {
playMusic.stop()
playMusic.source = ""
root.title = Plasmoid.title
root.albumimage = ""
root.tooltipimage = ""
root.album = ""
root.albumurl = ""
root.artist = ""
root.artisturl = ""
root.song = ""
root.songurl = ""
}
volume: 0.75
}
Timer {
id: errorTimer
running: false
repeat: false
interval: 5000
onTriggered: {
isError = false
}
}
Plasmoid.compactRepresentation: CompactRepresentation {}
Plasmoid.fullRepresentation: FullRepresentation {
id: dialogItem
anchors.fill: parent
focus: true
}
function isPlaying() {
return playMusic.playbackState === MediaPlayer.PlayingState
}
function reloadStationsModel() {
playMusic.stop()
stationsModel.clear()
try {
var servers = JSON.parse(plasmoid.configuration.servers)
for (var i = 0; i < servers.length; i++) {
if (servers[i].active) {
stationsModel.append(servers[i])
}
}
} catch (e) {
console.log(e)
}
}
PlasmaNM.NetworkStatus {
id: networkStatus
onNetworkStatusChanged: {
if (networkStatus.networkStatus === i18nd(
"plasma_applet_org.kde.plasma.networkmanagement",
"Connected")) {
root.isConnected = true
} else {
console.log("Connection lost")
root.isConnected = false
}
}
}
function getInfo(data) {
if (data !== undefined && data.indexOf('-') !== -1) {
var strings // Magic to check non-standard artists/songs like "A-ha - Minor earth major sky"
if (data.indexOf(' - ') !== -1) {
strings = data.split(' - ')
} else {
strings = data.split('-')
}
var artist = strings[0].trim(), song = strings[1].trim()
var xmlhttp = new XMLHttpRequest()
var url = "http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=ada39a6834a3be4d641cc1aec7e64d48&artist=" + encodeURIComponent(
artist) + "&track=" + encodeURIComponent(
song) + "&autocorrect=1&format=json"
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
setInfo(JSON.parse(xmlhttp.responseText))
}
}
xmlhttp.open("GET", url)
xmlhttp.send()
function setInfo(arr) {
root.artist = (arr.track
&& arr.track.artist) ? (arr.track.artist.name) : artist
root.song = (arr.track) ? (arr.track.name) : song
root.title = (isPlaying(
)) ? root.artist + " - " + root.song : Plasmoid.title
root.artisturl = (arr.track
&& arr.track.artist) ? (arr.track.artist.url) : ""
root.songurl = (arr.track
&& arr.track.url) ? (arr.track.url) : ""
root.albumimage = arr.track && arr.track.album
&& arr.track.album.image[1]['#text'] ? arr.track.album.image[1]['#text'] : ""
root.tooltipimage = arr.track && arr.track.album
&& arr.track.album.image[0]['#text'] ? arr.track.album.image[0]['#text'] : ""
root.album = arr.track && arr.track.album
&& arr.track.album.title
&& arr.track.album.title != "" ? arr.track.album.title : ""
root.albumurl = arr.track && arr.track.album
&& arr.track.album.url
&& arr.track.album.url != "" ? arr.track.album.url : ""
}
} else {
root.title = isPlaying() && playMusic.metaData.title
&& !playMusic.metaData.title.startsWith(
"{") ? playMusic.metaData.title : Plasmoid.title // "{" fix for some stations
}
}
}
et FullRepresentation.qml :
Caché :
import QtQuick 2.12
import QtQuick.Layouts 1.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.plasmoid 2.0
PlasmaExtras.Representation {
id: fullRepresentation
Layout.minimumWidth: PlasmaCore.Units.gridUnit * 14
Layout.minimumHeight: PlasmaCore.Units.gridUnit * 18
Layout.maximumWidth: PlasmaCore.Units.gridUnit * 56
Layout.maximumHeight: PlasmaCore.Units.gridUnit * 36
collapseMarginsHint: true
readonly property var appletInterface: Plasmoid.self
header: PlasmaExtras.PlasmoidHeading {
id: header
focus: true
visible: true
RowLayout {
spacing: 0
Rectangle {
Layout.fillWidth: true
implicitWidth: fullRepresentation.width
width: fullRepresentation.width
implicitHeight: heading.height
Layout.topMargin: PlasmaCore.Units.smallSpacing
Layout.bottomMargin: PlasmaCore.Units.smallSpacing
color: "transparent"
clip: true
onWidthChanged: {
if (isPlaying()) {
header.calculateAnimation()
} else {
anim.stop()
heading.x = -heading.width / 2 + fullRepresentation.width / 2
}
}
PlasmaExtras.Heading {
id: heading
maximumLineCount: 1
anchors.verticalCenter: parent.verticalCenter
text: root.title
level: 1
onTextChanged: {
if (isPlaying()) {
header.calculateAnimation()
} else {
anim.stop()
heading.x = -heading.width / 2 + fullRepresentation.width / 2
}
}
}
}
XAnimator {
id: anim
target: heading
easing.type: Easing.Linear
duration: Math.round(
Math.abs(to - from) / PlasmaCore.Units.gridUnit
* (PlasmaCore.Units.longDuration + PlasmaCore.Units.shortDuration))
}
}
function calculateAnimation() {
anim.from = width + PlasmaCore.Units.gridUnit
anim.to = -heading.width
anim.loops = Animation.Infinite
anim.restart()
}
}
PlasmaComponents3.ScrollView {
id: scrollView
anchors.fill: parent
PlasmaComponents3.ScrollBar.horizontal.policy: PlasmaComponents3.ScrollBar.AlwaysOff
contentWidth: availableWidth - contentItem.leftMargin - contentItem.rightMargin
contentItem: ListView {
id: stationView
leftMargin: PlasmaCore.Units.smallSpacing
rightMargin: PlasmaCore.Units.smallSpacing
topMargin: PlasmaCore.Units.smallSpacing
bottomMargin: PlasmaCore.Units.smallSpacing
model: stationsModel
enabled: isConnected
focus: true
currentIndex: -1
boundsBehavior: Flickable.StopAtBounds
clip: true
delegate: MediaListItem {}
Connections {
target: playMusic
function onError() {
stationView.currentIndex = -1
}
}
}
}
footer: PlasmaExtras.PlasmoidHeading {
RowLayout {
Rectangle {
implicitWidth: fullRepresentation.width
width: fullRepresentation.width
Layout.preferredHeight: childrenRect.height
Layout.topMargin: PlasmaCore.Units.smallSpacing
Layout.bottomMargin: PlasmaCore.Units.smallSpacing
color: "transparent"
PlasmaComponents3.Label {
id: subtext
font: PlasmaCore.Theme.smallestFont
width: parent.width
clip: true
color: isError
|| !isConnected ? PlasmaCore.ColorScope.negativeTextColor : PlasmaCore.ColorScope.textColor
text: !isConnected ? i18n("Check internet connection...") : root.isError ? i18n("Error: ") + playMusic.errorString : isPlaying() && playMusic.status == 6 ? i18n("Bitrate: ") + Math.round(playMusic.metaData.audioBitRate / 1000) + 'Kb/s, ' + i18n("Genre: ") + playMusic.metaData.genre : playMusic.bufferProgress < 1 && playMusic.status != 1 ? i18n("Buffering...") + ' ' + Math.round(playMusic.bufferProgress * 100) + "%" : i18n("Choose station and enjoy...")
anchors.verticalCenter: parent.verticalCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
}
}
}
}
import QtQuick.Layouts 1.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.plasmoid 2.0
PlasmaExtras.Representation {
id: fullRepresentation
Layout.minimumWidth: PlasmaCore.Units.gridUnit * 14
Layout.minimumHeight: PlasmaCore.Units.gridUnit * 18
Layout.maximumWidth: PlasmaCore.Units.gridUnit * 56
Layout.maximumHeight: PlasmaCore.Units.gridUnit * 36
collapseMarginsHint: true
readonly property var appletInterface: Plasmoid.self
header: PlasmaExtras.PlasmoidHeading {
id: header
focus: true
visible: true
RowLayout {
spacing: 0
Rectangle {
Layout.fillWidth: true
implicitWidth: fullRepresentation.width
width: fullRepresentation.width
implicitHeight: heading.height
Layout.topMargin: PlasmaCore.Units.smallSpacing
Layout.bottomMargin: PlasmaCore.Units.smallSpacing
color: "transparent"
clip: true
onWidthChanged: {
if (isPlaying()) {
header.calculateAnimation()
} else {
anim.stop()
heading.x = -heading.width / 2 + fullRepresentation.width / 2
}
}
PlasmaExtras.Heading {
id: heading
maximumLineCount: 1
anchors.verticalCenter: parent.verticalCenter
text: root.title
level: 1
onTextChanged: {
if (isPlaying()) {
header.calculateAnimation()
} else {
anim.stop()
heading.x = -heading.width / 2 + fullRepresentation.width / 2
}
}
}
}
XAnimator {
id: anim
target: heading
easing.type: Easing.Linear
duration: Math.round(
Math.abs(to - from) / PlasmaCore.Units.gridUnit
* (PlasmaCore.Units.longDuration + PlasmaCore.Units.shortDuration))
}
}
function calculateAnimation() {
anim.from = width + PlasmaCore.Units.gridUnit
anim.to = -heading.width
anim.loops = Animation.Infinite
anim.restart()
}
}
PlasmaComponents3.ScrollView {
id: scrollView
anchors.fill: parent
PlasmaComponents3.ScrollBar.horizontal.policy: PlasmaComponents3.ScrollBar.AlwaysOff
contentWidth: availableWidth - contentItem.leftMargin - contentItem.rightMargin
contentItem: ListView {
id: stationView
leftMargin: PlasmaCore.Units.smallSpacing
rightMargin: PlasmaCore.Units.smallSpacing
topMargin: PlasmaCore.Units.smallSpacing
bottomMargin: PlasmaCore.Units.smallSpacing
model: stationsModel
enabled: isConnected
focus: true
currentIndex: -1
boundsBehavior: Flickable.StopAtBounds
clip: true
delegate: MediaListItem {}
Connections {
target: playMusic
function onError() {
stationView.currentIndex = -1
}
}
}
}
footer: PlasmaExtras.PlasmoidHeading {
RowLayout {
Rectangle {
implicitWidth: fullRepresentation.width
width: fullRepresentation.width
Layout.preferredHeight: childrenRect.height
Layout.topMargin: PlasmaCore.Units.smallSpacing
Layout.bottomMargin: PlasmaCore.Units.smallSpacing
color: "transparent"
PlasmaComponents3.Label {
id: subtext
font: PlasmaCore.Theme.smallestFont
width: parent.width
clip: true
color: isError
|| !isConnected ? PlasmaCore.ColorScope.negativeTextColor : PlasmaCore.ColorScope.textColor
text: !isConnected ? i18n("Check internet connection...") : root.isError ? i18n("Error: ") + playMusic.errorString : isPlaying() && playMusic.status == 6 ? i18n("Bitrate: ") + Math.round(playMusic.metaData.audioBitRate / 1000) + 'Kb/s, ' + i18n("Genre: ") + playMusic.metaData.genre : playMusic.bufferProgress < 1 && playMusic.status != 1 ? i18n("Buffering...") + ' ' + Math.round(playMusic.bufferProgress * 100) + "%" : i18n("Choose station and enjoy...")
anchors.verticalCenter: parent.verticalCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
}
}
}
}
Édité par DéBé Le 10/02/2023 à 18h21
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Il semble y avoir plusieurs version de de widget une version 2 et une plus ancienne. Laquelle est utilisée ? Il semble que même la version 1.8 utilise un type "representation". Le fichier Representation.qml existe t' il sur le système ( je ne comprends pas trop le commentaire du fichier Representation.qml ( https://api.kde.org/frameworks/plasma-framework/html/Representation_8qml_source.html ) ? Cela veut il dire que ce fichier n' est présent qu' à partir de la version 5.77 du framework ( dommage il semble que ce soit la version 5.76 actuellement sur Mageia 8) ?
Il est impossible de voir si une version plus ancienne que la version 1.8 ne contient pas le type représentation. Et pas sur que récuperer le fichier Representation.qml pour le coller dans /usr/lib64/qt5/qml/org/kde/plasma/extras/ permette de faire fonctionner le widget.
Attention, ma connaissance du QML est inexistante et ce ne sont que des suppositions.

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
J'utilise la version 2.0 de ce plasmoid.
Le système Mageia actuel :
Système d'exploitation : Mageia 8
Version de KDE Plasma : 5.20.4
Version de KDE Frameworks : 5.76.0
Version de Qt : 5.15.2
Version de noyau : 5.15.88-desktop-1.mga8
Type de système d'exploitation : 64-bit
Processeurs : 4 × Intel® Core™ i5-6500 CPU @ 3.20GHz
Mémoire : 7,6 Gio de mémoire vive
Processeur graphique : Mesa Intel® HD Graphics 530
et les requirements sont :
Gstreamer and gstreamer-plugins
Qt >= 5.12
QtquickControls >= 2.12
KDE Frameworks >= 5.89
donc on est au dessus....
Je vais tenter ta solution
Citation :
récuperer le fichier Representation.qml pour le coller dans /usr/lib64/qt5/qml/org/kde/plasma/extras/
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Sauf erreur de ma part, le plasma-framwork est en version 5.76 sous Mageia 8 ( et je dirais que 5.76 < 5.89


DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
nic80 :
Bonjour,
Sauf erreur de ma part, le plasma-framwork est en version 5.76 sous Mageia 8 ( et je dirais que 5.76 < 5.89
)
Sauf erreur de ma part, le plasma-framwork est en version 5.76 sous Mageia 8 ( et je dirais que 5.76 < 5.89

Effectivement ....
En fait , en y réfléchissant bien, j'ai du cliquer sur mise à jour dans cette applet, dans la liste des plasmoids, c'est peut-être de là que sont venus les problèmes.
Il faudrait que je puisse retrouver la version précédente ou bien attendre une mise à jour de Mageia .
Édité par DéBé Le 11/02/2023 à 14h19
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Sur Mageia 8, je ne suis pas sur que le plasma-framework puisse être mis à jour sans une recompilation/test importante des applications reposant sur celui ci ( c' est peut être pour ça qu' il est resté en version 5.76). De plus j' ai l'impression que la version 2 repose sur plasma-components 3.0 ( et je ne suis pas sur que ce soit disponible non plus sous Mageia 8).
Sous Cauldron le widget semble fonctionner ( mais le framework est en 5.102).
Pour les versions précedentes, toutes les tentatives que j' ai faite pour charger les .tar.gz se sont soldées par un " file not found".
Édité par nic80 Le 11/02/2023 à 14h51

DéBé Membre non connecté
-
- Voir le profil du membre DéBé
- Inscrit le : 30/01/2010
- Groupes :
dans ce cas, je vais patienter jusqu'à la sortie de Mageia 9

Merci et bon dimanche.
Finistère - Matériel : Desktop :Mga 9 x86-64 sur SSD 120 Go Plasma5 - Intel I5-6500 3,2 Ghz /Ram 8 Go --Lenovo T 410 Mga 9 x86-64 Plasma 5 Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire.” Albert Einstein

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
Par curiosité, je viens de regarder le fichier specs de plasma-framework et la recompilation dépend de nombreux paquets qui doivent être aussi être recompilés dans la version de plasma-framework ( par exemple pour une version 5.102.0, il faut que tous les paquets en dépendances soient aussi préalablement au minimum en version 5.102), ce qui rend compliquée une mise à jour. Du coup, il est effectivement préférable d' attendre la version 9 de Mageia ou trouver une version qui ne fait pas appel au type "representation".
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie