Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP3:Update
kurso-de-esperanto
kurso-de-esperanto-qt5.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kurso-de-esperanto-qt5.patch of Package kurso-de-esperanto
--- a/cx_edit.cpp +++ b/cx_edit.cpp @@ -46,7 +46,7 @@ void cx_edit::keyPressEvent(QKeyEvent *e if ( (event->key() == Qt::Key_X) && (lCxapeligo)) { int arg1 = this->cursorPosition()-1; - QByteArray antaualitero = (this->text().mid(arg1,1)).toAscii(); + QByteArray antaualitero = (this->text().mid(arg1,1)).toLatin1(); QString novalitero; switch (antaualitero[0]) { case 'c': --- a/cx_plainedit.cpp +++ b/cx_plainedit.cpp @@ -49,9 +49,9 @@ void cx_plainedit::keyPressEvent(QKeyEve QChar antaualitero = this->document()->characterAt(arg1); //int arg1 = this->cursorPosition()-1; - //QByteArray antaualitero = (this->text().mid(arg1,1)).toAscii(); + //QByteArray antaualitero = (this->text().mid(arg1,1)).toLatin1(); QString novalitero; - switch (antaualitero.toAscii()) { + switch (antaualitero.toLatin1()) { case 'c': novalitero = QString::fromUtf8("ĉ"); break; --- a/ekznumeraloj.cpp +++ b/ekznumeraloj.cpp @@ -37,6 +37,7 @@ #include "ekznumeraloj.h" #include "ui_ekznumeraloj.h" #include "funkcioj.h" +#include <QtPrintSupport> #include <QtGui> #include <QtCore> --- a/funkcioj.cpp +++ b/funkcioj.cpp @@ -37,6 +37,8 @@ #include <cstdlib> #include <ctime> #include "sleeper.h" +#include <QtPrintSupport> +#include <QtWidgets> #include <QtGui> #include <QtCore> #include <funkcioj.h> @@ -747,7 +749,7 @@ void mp3(QString Dosiero) if (chefa_fenestro != 0) { - chefa_fenestro->ludilo->setCurrentSource(Loko + Dosiero.toLower()); + chefa_fenestro->ludilo->setMedia(QUrl::fromLocalFile(Loko + Dosiero.toLower())); chefa_fenestro->ludilo->play(); } --- a/funkcioj.h +++ b/funkcioj.h @@ -27,17 +27,15 @@ void mp3(QString Dosiero); void tekstoblinko(QWidget * korekta); QString helpdosiero(QString); -#ifdef Q_WS_X11 -const QString mp3_finajho=".ogg"; -const QString video_finajho=".ogv"; -#endif -#ifdef Q_WS_WIN +#if defined(Q_OS_WIN) const QString mp3_finajho=".wma"; const QString video_finajho=".wmv"; -#endif -#ifdef Q_WS_MACX +#elif defined(Q_OS_MACOS) const QString mp3_finajho=".mp3"; const QString video_finajho=".mov"; +#else +const QString mp3_finajho=".ogg"; +const QString video_finajho=".ogv"; #endif --- a/kiomahoro.cpp +++ b/kiomahoro.cpp @@ -37,6 +37,7 @@ #include "kiomahoro.h" #include "ui_kiomahoro.h" #include "funkcioj.h" +#include <QtPrintSupport> #include <QtGui> #include <QtCore> --- a/kurso4.pro +++ b/kurso4.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -QT += core gui phonon multimedia +QT += core gui widgets multimedia multimediawidgets printsupport TARGET = kurso4 TEMPLATE = app --- a/kurso.cpp +++ b/kurso.cpp @@ -37,6 +37,7 @@ #include "kurso.h" #include "ui_kurso.h" +#include <QtWidgets> #include <QtGui> #include <QtCore> #include <funkcioj.h> @@ -59,9 +60,10 @@ kurso::kurso(QWidget *parent) : Eta_Fenestro = false; JamMontrita = false; - ludilo = Phonon::createPlayer(Phonon::MusicCategory, - Phonon::MediaSource()); - + ludilo = new QMediaPlayer(this); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + ludilo->setAudioRole(QAudio::SonificationRole); +#endif komencakonfiguro(); Traduku(); @@ -456,7 +458,9 @@ void kurso::closeEvent(QCloseEvent *even if (lSxaltilo) { - while (this->ludilo->state() == Phonon::LoadingState || this->ludilo->state() == Phonon::PlayingState || this->ludilo->state() == Phonon::BufferingState ) + while (this->ludilo->mediaStatus() == QMediaPlayer::LoadingMedia || + this->ludilo->state() == QMediaPlayer::PlayingState || + this->ludilo->mediaStatus() == QMediaPlayer::BufferingMedia) QApplication::processEvents(); } @@ -505,18 +509,15 @@ void kurso::Stilo() QString Loko; if (QApplication::applicationDirPath().contains("Debug")) { - #ifdef Q_WS_X11 - Loko = "home/user/kurso4/"; - #endif - #ifdef Q_WS_WIN + #if defined(Q_OS_WIN) if (QApplication::applicationDirPath().contains("TROCA")) Loko = "C:/TROCA/kurso4/"; else Loko = "R:/kurso4/"; - - #endif - #ifdef Q_WS_MACX + #elif defined(Q_OS_MACOS) Loko = "/Users/user/kurso4/"; + #elif defined(Q_OS_UNIX) + Loko = "home/user/kurso4/"; #endif } else @@ -696,69 +697,81 @@ void kurso::paghoshanghita(QWidget *arg1 LastaPagxo = qobject_cast<QTabWidget *>(arg1->parentWidget()->parentWidget())->currentIndex(); } -void kurso::on_Lec01_currentChanged(QWidget *arg1) +void kurso::on_Lec01_currentChanged(int index) { + QWidget *arg1 = ui->Pagho01->findChild<QTabWidget *>("Lec01")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec02_currentChanged(QWidget *arg1) +void kurso::on_Lec02_currentChanged(int index) { + QWidget *arg1 = ui->Pagho02->findChild<QTabWidget *>("Lec02")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec03_currentChanged(QWidget *arg1) +void kurso::on_Lec03_currentChanged(int index) { + QWidget *arg1 = ui->Pagho03->findChild<QTabWidget *>("Lec03")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec04_currentChanged(QWidget *arg1) +void kurso::on_Lec04_currentChanged(int index) { + QWidget *arg1 = ui->Pagho04->findChild<QTabWidget *>("Lec04")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec05_currentChanged(QWidget *arg1) +void kurso::on_Lec05_currentChanged(int index) { + QWidget *arg1 = ui->Pagho05->findChild<QTabWidget *>("Lec05")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec06_currentChanged(QWidget *arg1) +void kurso::on_Lec06_currentChanged(int index) { + QWidget *arg1 = ui->Pagho06->findChild<QTabWidget *>("Lec06")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec07_currentChanged(QWidget *arg1) +void kurso::on_Lec07_currentChanged(int index) { + QWidget *arg1 = ui->Pagho07->findChild<QTabWidget *>("Lec07")->widget(index); paghoshanghita(arg1); } - -void kurso::on_Lec08_currentChanged(QWidget *arg1) +void kurso::on_Lec08_currentChanged(int index) { + QWidget *arg1 = ui->Pagho08->findChild<QTabWidget *>("Lec08")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec09_currentChanged(QWidget *arg1) +void kurso::on_Lec09_currentChanged(int index) { + QWidget *arg1 = ui->Pagho09->findChild<QTabWidget *>("Lec09")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec10_currentChanged(QWidget *arg1) +void kurso::on_Lec10_currentChanged(int index) { + QWidget *arg1 = ui->Pagho10->findChild<QTabWidget *>("Lec10")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec11_currentChanged(QWidget *arg1) +void kurso::on_Lec11_currentChanged(int index) { + QWidget *arg1 = ui->Pagho11->findChild<QTabWidget *>("Lec11")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec12_currentChanged(QWidget *arg1) +void kurso::on_Lec12_currentChanged(int index) { + QWidget *arg1 = ui->Pagho12->findChild<QTabWidget *>("Lec12")->widget(index); paghoshanghita(arg1); } -void kurso::on_Lec13_currentChanged(QWidget *arg1) +void kurso::on_Lec13_currentChanged(int index) { + QWidget *arg1 = ui->Pagho13->findChild<QTabWidget *>("Lec13")->widget(index); paghoshanghita(arg1); } @@ -874,7 +887,7 @@ void kurso::Saluton() iAleat6 = random(kvanto); QString dosiernomo = "sonoj/" + sonoj.entryList().at(iAleat6); - ludilo->setCurrentSource(Loko + dosiernomo.toLower()); + ludilo->setMedia(QUrl::fromLocalFile(Loko + dosiernomo.toLower())); ludilo->play(); // mp3(dosiernomo); --- a/kurso.h +++ b/kurso.h @@ -2,7 +2,7 @@ #define KURSO_H #include <QMainWindow> -#include <phonon/mediaobject.h> +#include <QMediaPlayer> #include <traduko.h> #include <QLabel> @@ -17,7 +17,7 @@ class kurso : public QMainWindow public: explicit kurso(QWidget *parent = 0); ~kurso(); - Phonon::MediaObject *ludilo; + QMediaPlayer *ludilo; public slots: void Saluton(); @@ -89,19 +89,19 @@ private slots: void ShanghasPaghon(QString Nomo); void paghoshanghita(QWidget *arg1); - void on_Lec01_currentChanged(QWidget *arg1); - void on_Lec02_currentChanged(QWidget *arg1); - void on_Lec03_currentChanged(QWidget *arg1); - void on_Lec04_currentChanged(QWidget *arg1); - void on_Lec05_currentChanged(QWidget *arg1); - void on_Lec06_currentChanged(QWidget *arg1); - void on_Lec07_currentChanged(QWidget *arg1); - void on_Lec08_currentChanged(QWidget *arg1); - void on_Lec09_currentChanged(QWidget *arg1); - void on_Lec10_currentChanged(QWidget *arg1); - void on_Lec11_currentChanged(QWidget *arg1); - void on_Lec12_currentChanged(QWidget *arg1); - void on_Lec13_currentChanged(QWidget *arg1); + void on_Lec01_currentChanged(int index); + void on_Lec02_currentChanged(int index); + void on_Lec03_currentChanged(int index); + void on_Lec04_currentChanged(int index); + void on_Lec05_currentChanged(int index); + void on_Lec06_currentChanged(int index); + void on_Lec07_currentChanged(int index); + void on_Lec08_currentChanged(int index); + void on_Lec09_currentChanged(int index); + void on_Lec10_currentChanged(int index); + void on_Lec11_currentChanged(int index); + void on_Lec12_currentChanged(int index); + void on_Lec13_currentChanged(int index); void on_Leciono1_clicked(); void on_Leciono2_clicked(); --- a/kurso.ui +++ b/kurso.ui @@ -2540,7 +2540,7 @@ p, li { white-space: pre-wrap; } <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Arial'; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://qt.nokia.com"><span style=" text-decoration: underline; color:#0000ff;">http://qt.nokia.com</span></a></p></body></html></string> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://qt.io"><span style=" text-decoration: underline; color:#0000ff;">https://qt.io</span></a></p></body></html></string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> --- a/main.cpp +++ b/main.cpp @@ -34,7 +34,7 @@ kune kun ĉi tiu programo. Se ne, iru al <http://www.gnu.org/licenses/>. */ -#include <QtGui/QApplication> +#include <QApplication> #include <QtCore> #include <QFontDatabase> #include "kurso.h" --- a/mp3ludilo.cpp +++ b/mp3ludilo.cpp @@ -43,11 +43,13 @@ mp3ludilo::mp3ludilo(QWidget *parent) : ui(new Ui::mp3ludilo) { ui->setupUi(this); - ludilo = Phonon::createPlayer(Phonon::MusicCategory, - Phonon::MediaSource()); + ludilo = new QMediaPlayer(this); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + ludilo->setAudioRole(QAudio::GameRole); +#endif - connect(ludilo, SIGNAL(finished()), - this, SLOT(on_Chesu_clicked())); + connect(ludilo, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), + this, SLOT(onLudiloMediaStatusChanged(QMediaPlayer::MediaStatus))); this->ui->Pauzu->setEnabled(true); this->ui->Pauzu->setVisible(false); MiaPagho = -1; @@ -59,6 +61,14 @@ mp3ludilo::~mp3ludilo() } +void mp3ludilo::onLudiloMediaStatusChanged(QMediaPlayer::MediaStatus status) +{ + if (status == QMediaPlayer::EndOfMedia) + { + on_Chesu_clicked(); + } +} + void mp3ludilo::on_Ludu_clicked() { @@ -66,7 +76,7 @@ void mp3ludilo::on_Ludu_clicked() if (MiaPagharo > 0) MiaPagho = MiaPagharo->currentIndex(); - if (ludilo->state() == Phonon::PlayingState) + if (ludilo->state() == QMediaPlayer::PlayingState) { ludilo->pause(); this->setUpdatesEnabled(false); @@ -76,7 +86,7 @@ void mp3ludilo::on_Ludu_clicked() } else { - if (ludilo->state() == Phonon::PausedState) + if (ludilo->state() == QMediaPlayer::PausedState) { ludilo->play(); this->setUpdatesEnabled(false); @@ -87,7 +97,7 @@ void mp3ludilo::on_Ludu_clicked() else { QString dosiero = Loko + "sonoj/" + this->objectName().left(5).toLower() + "/" + this->objectName().mid(6) + mp3_finajho; - ludilo->setCurrentSource(dosiero); + ludilo->setMedia(QUrl::fromLocalFile(dosiero)); ludilo->play(); this->setUpdatesEnabled(false); this->ui->Chesu->setEnabled(true); @@ -114,7 +124,7 @@ void mp3ludilo::on_Chesu_clicked() void mp3ludilo::on_Pauzu_clicked() { - if (ludilo->state() == Phonon::PlayingState) + if (ludilo->state() == QMediaPlayer::PlayingState) { ludilo->pause(); this->setUpdatesEnabled(false); @@ -129,6 +139,6 @@ void mp3ludilo::PaghoShanghita(int NovaP { if (MiaPagho >= 0) if (NovaPagho != MiaPagho) - if (ludilo->state() == Phonon::PlayingState) + if (ludilo->state() == QMediaPlayer::PlayingState) on_Chesu_clicked(); } --- a/mp3ludilo.h +++ b/mp3ludilo.h @@ -2,7 +2,7 @@ #define MP3LUDILO_H #include <QFrame> -#include <phonon/mediaobject.h> +#include <QMediaPlayer> namespace Ui { @@ -18,6 +18,7 @@ public: ~mp3ludilo(); private slots: + void onLudiloMediaStatusChanged(QMediaPlayer::MediaStatus status); void on_Ludu_clicked(); void on_Chesu_clicked(); void on_Pauzu_clicked(); @@ -25,7 +26,7 @@ private slots: private: Ui::mp3ludilo *ui; - Phonon::MediaObject *ludilo; + QMediaPlayer *ludilo; int MiaPagho; }; --- a/plenigas_spacon.cpp +++ b/plenigas_spacon.cpp @@ -38,6 +38,7 @@ #include "ui_plenigas_spacon.h" #include <ctime> // to use the time function #include <cstdlib> +#include <QtPrintSupport> #include <QtGui> #include <QtCore> #include "funkcioj.h" --- a/prononco.cpp +++ b/prononco.cpp @@ -52,8 +52,8 @@ prononco::prononco(QWidget *parent) : if (Provizorujo.right(1) != "/") Provizorujo.append("/"); - formato.setFrequency(44100); - formato.setChannels(1); + formato.setSampleRate(44100); + formato.setChannelCount(1); formato.setSampleSize(8); formato.setCodec("audio/pcm"); formato.setByteOrder( QAudioFormat::LittleEndian ); @@ -64,9 +64,10 @@ prononco::prononco(QWidget *parent) : if (!info.isFormatSupported(formato)) formato = info.nearestFormat(formato); - ludilo = Phonon::createPlayer(Phonon::MusicCategory, - Phonon::MediaSource()); - + ludilo = new QMediaPlayer(this, QMediaPlayer::LowLatency); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + ludilo->setAudioRole(QAudio::GameRole); +#endif } prononco::~prononco() @@ -169,9 +170,9 @@ void prononco::RegistrasVocxon() this->ui->PP_Vorto->setText(aEk09T[i][0]); this->ui->pagharo->setCurrentIndex(1); // auskultilo - ludilo->setCurrentSource(Loko + aEk09T[i][1]); + ludilo->setMedia(QUrl::fromLocalFile(Loko + aEk09T[i][1])); ludilo->play(); - aEk09F[i] = (ludilo->totalTime()/1000) + 2; + aEk09F[i] = (ludilo->duration() / 1000) + 2; Pauzu( aEk09F[i]); this->ui->pagharo->setCurrentIndex(0); // mikrofono this->ui->PP_Prog->setVisible(true); --- a/prononco.h +++ b/prononco.h @@ -5,8 +5,8 @@ #include "QtMultimedia/qaudioformat.h" #include "QtMultimedia/qaudioinput.h" #include "QtMultimedia/qaudiooutput.h" +#include <QMediaPlayer> #include <QFile> -#include <phonon/mediaobject.h> namespace Ui { class prononco; @@ -60,7 +60,7 @@ private: QAudioInput* audio_enen; // class member. QAudioFormat formato; QAudioOutput* audio_eksteren; - Phonon::MediaObject *ludilo; + QMediaPlayer *ludilo; QString Provizorujo; }; --- a/traduko.cpp +++ b/traduko.cpp @@ -1,5 +1,6 @@ #include "traduko.h" #include "ui_traduko.h" +#include <QtWidgets> #include "QtGui" #include "QtCore" #include "funkcioj.h" @@ -85,7 +86,7 @@ void traduko::konfiguro() Referenca2 = Konfiguro.value("Referenca2", "angla.trd").toString(); Leciono = Konfiguro.value("LastaLeciono", 0).toInt(); Pozicio = Konfiguro.value("Pozicio", 0).toInt(); - QString Provizora = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) ; + QString Provizora = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) ; Dosierujo = Konfiguro.value("Dosierujo", Provizora ).toString(); QDir ProvDosierujo(Dosierujo); --- a/videoludilo.cpp +++ b/videoludilo.cpp @@ -43,12 +43,17 @@ videoludilo::videoludilo(QWidget *parent ui(new Ui::videoludilo) { ui->setupUi(this); - videoLudilo = new Phonon::VideoPlayer(Phonon::VideoCategory, this); - videoLudilo->setMinimumSize(320,240); - videoLudilo->setMaximumSize(320,240); - videoLudilo->setStyleSheet("background: #E8E8E8; "); + videoLudilo = new QMediaPlayer(this, QMediaPlayer::VideoSurface); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + videoLudilo->setAudioRole(QAudio::VideoRole); +#endif + videoLudilaWidget = new QVideoWidget(this); + videoLudilaWidget->setMinimumSize(320, 240); + videoLudilaWidget->setMaximumSize(320, 240); + videoLudilaWidget->setStyleSheet("background-color: #E8E8E8;"); + videoLudilo->setVideoOutput(videoLudilaWidget); - layout.addWidget(videoLudilo); + layout.addWidget(videoLudilaWidget); layoutH.addWidget(ui->Ludu); layoutH.addWidget(ui->Pauzu); layoutH.addWidget(ui->Chesu); @@ -63,7 +68,8 @@ videoludilo::videoludilo(QWidget *parent connect(ui->Ludu,SIGNAL(clicked()),this,SLOT(onPlay())); connect(ui->Chesu, SIGNAL(clicked()), this, SLOT(onStop())); - connect(videoLudilo, SIGNAL(finished()), this, SLOT(onStop())); + connect(videoLudilo, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), + this, SLOT(onMediaStatusChanged(QMediaPlayer::MediaStatus))); this->ui->Pauzu->setEnabled(true); this->ui->Pauzu->setVisible(false); MiaPagho = -1; @@ -81,7 +87,7 @@ void videoludilo::onPlay() if (MiaPagharo > 0) MiaPagho = MiaPagharo->currentIndex(); - if (videoLudilo->isPlaying()) + if (videoLudilo->state() == QMediaPlayer::PlayingState) { videoLudilo->pause(); this->setUpdatesEnabled(false); @@ -91,7 +97,7 @@ void videoludilo::onPlay() } else { - if (videoLudilo->isPaused()) + if (videoLudilo->state() == QMediaPlayer::PausedState) { videoLudilo->play(); this->setUpdatesEnabled(false); @@ -102,7 +108,7 @@ void videoludilo::onPlay() else { QString dosiero = Loko + "video/" + this->objectName().left(5).toLower() + "/" + this->objectName().mid(6) + video_finajho; - videoLudilo->load(Phonon::MediaSource(dosiero)); + videoLudilo->setMedia(QUrl::fromLocalFile(dosiero)); videoLudilo->play(); ui->Chesu->setEnabled(true); this->setUpdatesEnabled(false); @@ -123,10 +129,18 @@ void videoludilo::onStop() this->setUpdatesEnabled(true); } +void videoludilo::onMediaStatusChanged(QMediaPlayer::MediaStatus status) +{ + if (status == QMediaPlayer::EndOfMedia) + { + this->onStop(); + } +} + void videoludilo::on_Pauzu_clicked() { - if (videoLudilo->isPlaying()) + if (videoLudilo->state() == QMediaPlayer::PlayingState) { videoLudilo->pause(); this->setUpdatesEnabled(false); @@ -141,6 +155,6 @@ void videoludilo::PaghoShanghita(int Nov { if (MiaPagho >= 0) if (NovaPagho != MiaPagho) - if (videoLudilo->isPlaying()) + if (videoLudilo->state() == QMediaPlayer::PlayingState) onStop(); } --- a/videoludilo.h +++ b/videoludilo.h @@ -2,7 +2,8 @@ #define VIDEOLUDILO_H #include <QFrame> -#include <phonon/videoplayer.h> +#include <QVideoWidget> +#include <QMediaPlayer> #include <QVBoxLayout> #include <QHBoxLayout> @@ -21,7 +22,8 @@ public: private: Ui::videoludilo *ui; - Phonon::VideoPlayer *videoLudilo; + QMediaPlayer *videoLudilo; + QVideoWidget *videoLudilaWidget; QVBoxLayout layout; QHBoxLayout layoutH; int MiaPagho; @@ -30,6 +32,7 @@ private: private slots: void onPlay(); void onStop(); + void onMediaStatusChanged(QMediaPlayer::MediaStatus status); void on_Pauzu_clicked(); void PaghoShanghita(int); --- a/vortoludo.cpp +++ b/vortoludo.cpp @@ -37,6 +37,7 @@ #include "vortoludo.h" #include "ui_vortoludo.h" #include "funkcioj.h" +#include <QtPrintSupport> #include <QtGui> #include <QtCore>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor