I have made the following changes intended for : CE:MW:Shared / ssu Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below.
https://build.pub.meego.com//request/show/7765 Thank You, aard [This message was auto-generated] --- Request # 7765: Messages from BOSS: State: review at 2013-01-29T17:15:11 by bossbot Reviews: accepted by bossbot : Prechecks succeeded. new for CE-maintainers : Please replace this text with a review and approve/reject the review (not the SR). BOSS will take care of the rest Changes: submit: home:aard:branches:CE:MW:Shared / ssu -> CE:MW:Shared / ssu changes files: -------------- --- ssu.changes +++ ssu.changes @@ -0,0 +1,3 @@ +* Tue Jan 29 2013 Bernd Wachter <[email protected]> - 0.20 +- Move ssu resolver log to systemd journal, with fallback in /tmp/ssu.log + old: ---- ssu-0.19.tar.gz new: ---- ssu-0.20.tar.gz spec files: ----------- --- ssu.spec +++ ssu.spec @@ -1,5 +1,5 @@ Name: ssu -Version: 0.19 +Version: 0.20 Release: 1 Summary: SSU enabler for RND Group: System/Base @@ -10,6 +10,7 @@ BuildRequires: pkgconfig(libzypp) BuildRequires: pkgconfig(QtSystemInfo) BuildRequires: pkgconfig(qt-boostable) +BuildRequires: pkgconfig(libsystemd-journal) Requires(pre): shadow-utils Requires(postun): shadow-utils Requires: ssu-vendor-data other changes: -------------- ++++++ ssu-0.19.tar.gz -> ssu-0.20.tar.gz --- rpm +++ rpm +(directory) --- rpm/ssu.changes +++ rpm/ssu.changes @@ -0,0 +1,37 @@ +* Tue Jan 29 2013 Bernd Wachter <[email protected]> - 0.20 +- Move ssu resolver log to systemd journal, with fallback in /tmp/ssu.log + +* Tue Jan 29 2013 Bernd Wachter <[email protected]> - 0.19 +- Use default domain values if no domain-specific values exist + +* Wed Jan 16 2013 Pekka Lundstrom <[email protected]> - 0.18 +- Added domain support for registration +- Added support to remove old values from config by using ssu-defaults.ini + +* Thu Dec 20 2012 Bernd Wachter <[email protected]> - 0.17 +- Change flavour variable to flavourPattern, and export flavourName as well + +* Tue Nov 27 2012 Marko Saukko <[email protected]> - 0.16 +- Added -tools subpackage +- Removed old obsoletes/provides for libssu + +* Mon Nov 19 2012 Bernd Wachter <[email protected]> - 0.15 +- install ssu.h to allow out of tree development using libssu + +* Sun Nov 04 2012 Bernd Wachter <[email protected]> - 0.14 +- Move device detection bits into configuration files +- Allow downloading authorized_keys file during rnd registration + +* Thu Oct 25 2012 Bernd Wachter <[email protected]> - 0.13 +- Fall back to imei environement variable for N9/N950/N900 + +* Wed Oct 24 2012 Bernd Wachter <[email protected]> - 0.12 +- Add configurable URLs for credentials scope + +* Sun Oct 21 2012 Bernd Wachter <[email protected]> - 0.11 +- Allow user URLs in ssu.ini +- Don't allow phones without IMEI to register +- Add update mechanism for ssu.ini + +* Mon Oct 08 2012 Bernd Wachter <[email protected]> - 0.10 +- Initial open source version --- rpm/ssu.spec +++ rpm/ssu.spec @@ -0,0 +1,125 @@ +Name: ssu +Version: 0.20 +Release: 1 +Summary: SSU enabler for RND +Group: System/Base +License: Proprietary +Source0: %{name}-%{version}.tar.gz +URL: https://github.com/nemomobile/ssu +BuildRequires: pkgconfig(QtCore) +BuildRequires: pkgconfig(libzypp) +BuildRequires: pkgconfig(QtSystemInfo) +BuildRequires: pkgconfig(qt-boostable) +BuildRequires: pkgconfig(libsystemd-journal) +Requires(pre): shadow-utils +Requires(postun): shadow-utils +Requires: ssu-vendor-data + +%description +%{summary}. + +%files +%defattr(-,root,root,-) +%{_libdir}/zypp/plugins/urlresolver/* +%{_bindir}/rndssu +%{_libdir}/*.so.* +%dir %{_sysconfdir}/zypp/credentials.d + + +%package vendor-data-example +Summary: Sample vendor configuration data +Group: System/Base + +%description vendor-data-example +%{summary}. A vendor (including Nemo) is supposed to put those configuration on device. + +%files vendor-data-example +%defattr(-,root,root,-) +%attr(0664, root, ssu) %config(noreplace) %{_sysconfdir}/ssu/ssu.ini +%{_datadir}/ssu/*.ini + + +%package rnd-ui +Summary: Shiny user interface for %{name} +Group: System/Base + +%description rnd-ui +%{summary}. With ponies! + +%files rnd-ui +%defattr(-,root,root,-) +%{_bindir}/rndregisterui +%{_datadir}/applications/*.desktop + + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +%{summary}. + +%files devel +%defattr(-,root,root,-) +%{_libdir}/*.so +%{_includedir}/ssu.h + + +%package tests +Summary: Unit tests for %{name} +Group: Development/Libraries +Requires: testrunner-lite + +%description tests +%{summary}. + +%files tests +%defattr(-,root,root,-) +/opt/tests/%{name} + + +%package tools +Summary: Tools for %{name} +Group: Development/Libraries +Requires: rpm + +%description tools +%{summary}. + +%files tools +%defattr(-,root,root,-) +%attr(0755, -, -) /usr/sbin/ssu-repos.sh + + +%prep +%setup -q + + +%build +qmake DEFINES+='TARGET_ARCH=\\\"\"%{_target_cpu}\"\\\"' -recursive +make %{?_smp_mflags} + + +%install +make INSTALL_ROOT=%{buildroot} install +mkdir -p %{buildroot}/%{_sysconfdir}/zypp/credentials.d + +%pre +groupadd -rf ssu +USER=$(getent passwd 1000 | cut -d: -f1) +if [ -n "$USER" ]; then + usermod -a -G ssu $USER +fi +if [ -f /etc/ssu/ssu.ini ]; then + chgrp ssu /etc/ssu/ssu.ini + chmod 664 /etc/ssu/ssu.ini +fi + +%postun +/sbin/ldconfig +if [ "$1" == 0 ]; then + getent group ssu >/dev/null && groupdel ssu +fi + +%post -p /sbin/ldconfig --- ssuurlresolver/ssuurlresolver.cpp +++ ssuurlresolver/ssuurlresolver.cpp @@ -6,17 +6,31 @@ */ #include <QCoreApplication> +#include <systemd/sd-journal.h> + #include "ssuurlresolver.h" SsuUrlResolver::SsuUrlResolver(): QObject(){ - logfile.setFileName("/var/log/ssu.log"); - logfile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append); - logstream.setDevice(&logfile); QObject::connect(this,SIGNAL(done()), QCoreApplication::instance(),SLOT(quit()), Qt::QueuedConnection); } +void SsuUrlResolver::printJournal(int priority, QString message){ + QByteArray ba = message.toUtf8(); + const char *ca = ba.constData(); + + if (sd_journal_print(LOG_INFO, "ssu: %s", ca) < 0){ + QFile logfile; + QTextStream logstream; + logfile.setFileName("/tmp/ssu.log"); + logfile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append); + logstream.setDevice(&logfile); + logstream << message << "\n"; + logstream.flush(); + } +} + void SsuUrlResolver::run(){ QHash<QString, QString> repoParameters; QString resolvedUrl, repo; @@ -26,7 +40,7 @@ if (in.headerEmpty()){ // FIXME, do something; we need at least repo header - logstream << "D'oh, received empty header list\n"; + printJournal(LOG_WARNING, "Received empty header list. Most likely your ssu setup is broken"); } PluginFrame::HeaderListIterator it; @@ -72,7 +86,7 @@ // TODO: check for credentials scope required for repository; check if the file exists; // compare with configuration, and dump credentials to file if necessary - logstream << QString("Requesting credentials for '%1' with RND status %2...").arg(repo).arg(isRnd); + printJournal(LOG_DEBUG, QString("Requesting credentials for '%1' with RND status %2...").arg(repo).arg(isRnd)); QString credentialsScope = ssu.credentialsScope(repo, isRnd); if (!credentialsScope.isEmpty()){ headerList.append(QString("credentials=%1").arg(credentialsScope)); @@ -100,7 +114,8 @@ .arg(headerList.join("&")); } - logstream << QString("resolved to %1\n").arg(resolvedUrl); + printJournal(LOG_INFO, QString("%1 resolved to %2").arg(repo).arg(resolvedUrl)); + PluginFrame out("RESOLVEDURL"); out.setBody(resolvedUrl.toStdString()); out.writeTo(std::cout); --- ssuurlresolver/ssuurlresolver.h +++ ssuurlresolver/ssuurlresolver.h @@ -52,8 +52,7 @@ private: Ssu ssu; - QFile logfile; - QTextStream logstream; + void printJournal(int priority, QString message); public slots: void run(); --- ssuurlresolver/ssuurlresolver.pro +++ ssuurlresolver/ssuurlresolver.pro @@ -8,7 +8,7 @@ CONFIG += console link_pkgconfig QT -= gui QT += network -PKGCONFIG += libzypp +PKGCONFIG += libzypp libsystemd-journal unix:target.path = $${PREFIX}/usr/lib/zypp/plugins/urlresolver INSTALLS += target
