[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger.spec
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,9 +1,9 @@
<services>
<service name="tar_git">
<param name="url">https://github.com/sailfishos-chum/bugger.git</param>
- <param name="branch">meta</param>
- <!--
+ <param name="branch"></param>
<param name="revision">chum-testing</param>
+ <!--
<param name="revision">0.9.9+git4</param>
-->
<param name="token"/>
|
[-]
[+]
|
Deleted |
_service:tar_git:harbour-bugger-0.10.3+git1+meta.20230320164443.25.g814bf5c.tar.gz/systemd/harbour-bugger-gather-android-logs.service
^
|
@@ -1,29 +0,0 @@
-[Unit]
-Description=Collect Android Support logcat file for Bugger!
-
-After=lipstick-security-ui.service
-Requires=lipstick-security-ui.service
-
-# would be nice, but user service can't depend on system service:
-# therefore, we use ExecStartPre below instead
-# After=aliendalvik.service
-# Requisite=aliendalvik.service
-# BindsTo=aliendalvik.service
-
-PartOf=harbour-bugger-gather-logs.target
-
-ConditionPathExists=/system/bin/logcat
-
-[Service]
-Type=oneshot
-ProtectSystem=full
-ReadWritePaths=%h/Documents
-ExecStartPre=/bin/sh -c '/usr/bin/systemctl is-active --quiet aliendalvik.service'
-ExecStart=/usr/bin/pkexec /bin/sh -c "\
- /usr/bin/lxc-attach -n aliendalvik -- /system/bin/logcat -d > %h/Documents/$(date -I)_%N.log; \
- /usr/bin/chmod 0600 %h/Documents/$(date -I)_%N.log; \
- /usr/bin/chown %u %h/Documents/$(date -I)_%N.log; \
-"
-
-[Install]
-WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/README_logcollect.md
^
|
@@ -3,6 +3,8 @@
Bugger! provides a systemd Target as well as a Service Template to facilitate
"plug-in" functionality for log gathering.
+### Adding a script to the log collector:
+
In order to add your script to the Bugger! log collector, do the following:
1. create a POSIX shell script which outputs logging to standard output
@@ -15,20 +17,37 @@
dependency on the `harbour-bugger-gather-logs.target` target, which is
called by the app.
-Notes:
+*Notes:*
- Bugger! will run the log creation, but will not add the created log files in
the app. Users will have to select them manually.
- The script will be run from systemd with `/bin/sh -c "scriptname"`, so make
sure its is /bin/sh compatible!
- log output will be written to
- `~/Documents/YYYY-MM-DD_harbour-bugger-gather-logs-plugin@$YOURNAME.log`
+ `~/Documents/Bugger/YYYY-MM-DD_harbour-bugger-gather-logs-plugin@$YOURNAME.log`
- `harbour-bugger-gather-logs-plugin@.service` uses `ProtectSystem=full`, so
don't expect any location to be writable in your script.
- scripts are run in systemd user scope. You can't be root. If you need to be
root, use `pkexec` to prompt users for the lock code/fingerprint.
-
Of course, you are free to not use the Service Template and just depend on the
Target from any custom systemd services you have written.
+If your log collecting script is part of a package, you can depend on
+`harbour-bugger-gather-logs` to make sure the infrastructure is installed.
+
+### Example
+
+A very basic "Hello World" example is in the `contrib` folder and part of the
+`harbour-bugger-gather-logs-contrib` package.
+
+Is places a script in `/usr/share/harbour-bugger/scripts` and can be activated by doing
+
+ systemctl --user enable harbour-bugger-gather-logs-plugin@hello-world.service`
+
+### Submitting scripts
+
+If you would like to add a log collection script to the -contrib package,
+please file a Pull Request, placing the script in the `contrib` directory.
+
+
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/contrib/contrib.pri
^
|
@@ -0,0 +1,4 @@
+INSTALLS += contrib
+
+contrib.files = $$PWD/gather-logs-*.sh
+contrib.path = $$INSTALL_ROOT/usr/share/$${TARGET}/scripts
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/contrib/gather-logs-hello-world.sh
^
|
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+printf '%s sais"\n\tHello World!\n' "$0"
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/harbour-bugger.pro
^
|
@@ -41,5 +41,6 @@
include(translations/translations.pri)
include(systemd/systemd.pri)
+include(contrib/contrib.pri)
include(icons/icons.pri)
include(sailjail/sailjail.pri)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/CatSelect.qml
^
|
@@ -5,25 +5,58 @@
import Sailfish.Silica 1.0
import "../config/meta.js" as Meta
-ComboBox {
+ValueButton { id: root
width: parent.width
+ property ListModel catModel: ListModel{}
+ property int currentIndex: -1
+ property string category: (catModel.count > 0 && currentIndex >=0) ? catModel.get(currentIndex).name : "none"
+
Component.onCompleted: {
Meta.data.categories.forEach(function(e){ catModel.append(e) })
- cmenu.entries = catModel
- menu = cmenu
}
- property ListModel catModel: ListModel{}
- property string category: (catModel.count > 0 && currentIndex >=0) ? catModel.get(currentIndex).name : "none"
label: qsTr("Bug Category")
value: (catModel.count > 0 && currentIndex >=0) ? catModel.get(currentIndex).displayName : qsTr("None")
description: (catModel.count > 0 && currentIndex >=0) ? catModel.get(currentIndex).description : qsTr("Bug Category")
- ContextMenu { id: cmenu
- property alias entries: entriesrep.model
- Repeater { id: entriesrep
- delegate: MenuItem { text: Theme.highlightText(displayName + ((description.length >0) ? ": " + description : ""), displayName, Theme.highlightColor) }
+
+ onClicked: {
+ var dialog = pageStack.push( catDialog, { model: catModel } )
+ dialog.accepted.connect(function() { root.currentIndex = dialog.selected })
+ }
+
+ Component { id: catDialog // meow!
+ Dialog { id: catDlg
+ canAccept: (selected != -1) // do it via onClicked on the list delegate
+ property int selected: -1
+ function select(i) {
+ selected = i
+ accept()
+ }
+ property alias model: view.model
+ SilicaListView { id: view
+ anchors.fill: parent
+ header: DialogHeader { id: dlgHead
+ title: qsTr("Bug Category")
+ acceptText: ""
+ }
+ delegate: ListItem {
+ width: ListView.view.width
+ Column {
+ width: parent.width - Theme.horizontalPageMargin*2
+ anchors.horizontalCenter: parent.horizontalCenter
+ Label { text: displayName; highlighted: true }
+ Label {
+ text: (description.length > 0) ? description : "no description"
+ font.pixelSize: Theme.fontSizeExtraSmall
+ wrapMode: Text.Wrap
+ font.italic: (description.length <= 0)
+ }
+ }
+ onClicked: catDlg.select(index)
+ }
+ }
}
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/FileList.qml
^
|
@@ -23,11 +23,12 @@
SilicaGridView { id: root
property bool showPlaceholder: true
+ property bool filtered: false
width: parent.width
height: Theme.iconSizeLarge * Math.max(count, 2)
cellWidth: parent.width/2
cellHeight: Theme.iconSizeLarge
- delegate: LogfileDelegate {}
+ delegate: LogfileDelegate { hidden: ( root.filtered && (pastedUrl.length ==0)) }
ViewPlaceholder {
enabled: (root.count == 0) && showPlaceholder
text: "No files."
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/LogGatherer.qml
^
|
@@ -25,23 +25,16 @@
Page {
id: page
- readonly property string svcBaseName: "harbour-bugger-gather-logs"
- readonly property string svcFileName: svcBaseName + ".service"
- readonly property string svcBusName: svcFileName.replace(/\./g, "_2e").replace(/-/g, "_2d")
-
- readonly property string tgtFileName: svcBaseName + ".target"
+ readonly property string unitBaseName: "harbour-bugger-gather-logs"
+ readonly property string svcFileName: unitBaseName + ".service"
+ readonly property string tgtFileName: unitBaseName + ".target"
readonly property string tgtBusName: svcFileName.replace(/\./g, "_2e").replace(/-/g, "_2d")
property bool svcExists: false
- property bool svcIsEnabled: false
-
property bool tgtExists: false
property bool tgtIsEnabled: false
- function startService() { dbusUnit.startService() }
- function startTarget() { dbusTarget.startTarget() }
-
- function start() { startTarget() }
+ function start() { dbusTarget.startTarget() }
property bool logCreated: false
@@ -98,25 +91,11 @@
function(error, message) {
console.warn('GetUnitFileStatus failed:', error)
console.warn('GetUnitFileStatus message:', message)
- page.tgtExists = false
+ page.tgtExists = false
})
}
}
- DBusInterface { id: dbusUnit
- bus: DBus.SessionBus
- service: 'org.freedesktop.systemd1'
- iface: 'org.freedesktop.systemd1.Unit'
- path: '/org/freedesktop/systemd1/unit/' + svcBusName
-
- function startService() {
- call('Start',
- ['replace'],
- function(result) { }, //console.debug("Job:", JSON.stringify(result)); },
- function(result) { console.warn(qsTr("Start"), JSON.stringify(result)) }
- );
- }
- }
DBusInterface { id: dbusTarget
bus: DBus.SessionBus
service: 'org.freedesktop.systemd1'
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/LogLoader.qml
^
|
@@ -25,7 +25,9 @@
property ListModel model: ListModel{}
- onModelChanged: {
+ onModelChanged: reload()
+
+ function reload() {
if (!model) return
for (var i = 0; i < model.count; ++i) {
getFileFrom(i, model.get(i))
@@ -48,7 +50,11 @@
if (r.readyState == XMLHttpRequest.DONE) {
if (r.status === 200 || r.status == 0) {
console.debug("Filedata loaded: about", r.response.split("\n").length, "lines");
- model.setProperty(index, "dataStr", r.response)
+ if (r.response.length > 0) {
+ model.setProperty(index, "dataStr", r.response)
+ } else {
+ console.warn("File was empty, not added:", JSON.stringify(r.response));
+ }
} else {
console.warn("Filedata load failed:", JSON.stringify(r.response));
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/LogPaster.qml
^
|
@@ -68,7 +68,7 @@
if (r.readyState == XMLHttpRequest.DONE) {
if (r.status === 200 || r.status == 0) {
console.info("upload sucessful:", data["fileName"], r.response);
- model.setProperty(index, "pastedUrl", r.response)
+ model.setProperty(index, "pastedUrl", r.response.replace(/"/g, ""))
successCount++;
} else {
console.warn("error in processing request.", r.status, r.statusText);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/components/LogfileDelegate.qml
^
|
@@ -21,12 +21,27 @@
import QtQuick 2.6
import Sailfish.Silica 1.0
-GridItem {
+GridItem { id: root
property string displayName
anchors.margins: Theme.paddingSmall
width: GridView.view.cellWidth
contentHeight: Math.max(GridView.view.cellHeight, Theme.iconSizeLarge, content.height)
+
+ // replicate the 'hidden' property from Sailfish.Silica.ListItem
+ property bool hidden
+ Item {
+ states: State {
+ when: root.hidden
+ name: "hidden"
+ PropertyChanges {
+ target: root
+ contentHeight: 0
+ enabled: false
+ opacity: 0.0
+ }
+ }
+ }
Row { id: content
height: icon.height
width: parent.width
@@ -42,13 +57,17 @@
anchors.verticalCenter: icon.verticalCenter
Label { text: fileName; width: parent.width; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeSmall; color: Theme.highlightColor }
Label { text: mimeType; width: parent.width; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
- Label { text: (model.dataStr) ? Format.formatFileSize(model.dataStr.length) : ""; width: parent.width; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
+ Row { width: parent.width; spacing: Theme.paddingSmall
+ Label { text: (model.fileSize > 0) ? Format.formatFileSize(model.fileSize) : "?"; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
+ Label { text: (model.pastedUrl) ? qsTr("uploaded"): qsTr("not uploaded"); truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
+ }
//Label { text: filePath; width: parent.width; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
//Label { text: fileNameOrig ? fileNameOrig : ""; width: parent.width; truncationMode: TruncationMode.Fade; font.pixelSize: Theme.fontSizeTiny; color: Theme.secondaryColor }
}
}
menu: ContextMenu {
width: (parent) ? parent.width : 0 // gives a log warning but works ;)
+ MenuItem { text: qsTr("View"); onClicked: { pageStack.push("../pages/LogViewPage.qml", { "fileData": model.dataStr, "fileName": model.fileName }) } }
MenuItem { text: qsTr("Remove"); onClicked: remorseDelete(function(){ filesModel.remove(index) }) }
}
}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/config/logconfig.js
^
|
@@ -0,0 +1,31 @@
+.pragma library
+var config = {
+ "entries": [
+ {
+ "name": "persistent_journal",
+ "displayName": "Persistent Journal",
+ "path": "/etc/systemd/journald.conf.d/999_bugger.conf",
+ "content": [
+ "Storage=persistent",
+ "SystemMaxUse=50M",
+ "RateLimitBurst=0",
+ "RateLimitInterval=0",
+ ]
+ },
+ {
+ "name": "ofono_verbose",
+ "displayName": "Ofono deugging",
+ "path": "/var/lib/environment/ofono/gather_logs.conf",
+ "content": [ "OFONO_DEBUG=-d"]
+ },
+ {
+ "name": "ohm_debug",
+ "displayName": "OHM deugging",
+ "path": "/etc/sysconfig/ohmd.debug",
+ "content": [ "DEBUG_FLAGS='--verbose=all --trace=\"* format [%C:%L] ; * enabled;* target stdout;*.*=all\"'" ]
+
+ }
+ ]
+}
+
+// vim: ft=javascript expandtab ts=4 sw=4 st=4
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/config/meta.js
^
|
@@ -2,7 +2,7 @@
/*
* When adding a category, add it at the end!!
*
- * Also, don't repeat the display name in the description, it makes the highlight look ugly.
+ * Don't use very long descriptions, they are shown in a button!
*
*/
var data = {
@@ -10,8 +10,8 @@
{ "name": "none", "displayName": "None",
"description": "No specific category"
},
- { "name": "android_app_support", "displayName": "Android App Support",
- "description": ""
+ { "name": "android_app_support", "displayName": "App Support",
+ "description": "Android App Support, a.k.a. AD, Alien Dalvik"
},
{ "name": "backup", "displayName": "Backup",
"description": "The Sailfish vault system"
@@ -23,16 +23,16 @@
"description": "Web browsing"
},
{ "name": "calendar", "displayName": "Calendar",
- "description": "sync or management of events"
+ "description": "Sync or management of events"
},
{ "name": "contacts", "displayName": "Contacts",
- "description": "sync or management of contact information"
+ "description": "Sync or management of contact information"
},
{ "name": "exchange", "displayName": "Exchange",
- "description": "Outlook or Office356 accounts"
+ "description": "Exchange/Outlook/Office356 accounts"
},
{ "name": "fingerprint", "displayName": "Fingerprint",
- "description": ""
+ "description": "Recognition, management, sensor"
},
{ "name": "mail", "displayName": "EMail",
"description": "General mail"
@@ -41,26 +41,32 @@
"description": "Music, Image, and Video metadata"
},
{ "name": "mobile_data", "displayName": "Mobile Data",
- "description": "SIM cards, reception, switching, roaming"
+ "description": "SIM cards, reception, roaming"
},
{ "name": "mpris", "displayName": "MPRIS",
"description": "Media Player remote control"
},
- { "name": "native_app", "displayName": "SFOS App",
+ { "name": "native_app","displayName": "SFOS App",
"description": "Sailfish stock apps"
},
{ "name": "network", "displayName": "Networking",
- "description": ""
+ "description": "General net and ocnnectivity issues"
},
{ "name": "ngfd", "displayName": "UI Feedback",
- "description": "Non-graphical feedback"
+ "description": "Haptic feedback"
},
- { "name": "oom_killer", "displayName": "OOM",
+ { "name": "oom_killer", "displayName": "OOM",
"description": "Out-of-memory conditions"
},
- { "name": "positioning", "displayName": "Positioning",
+ { "name": "positioning", "displayName": "Positioning",
"description": "GPS and other geolocation methods"
},
+ { "name": "power", "displayName": "Power Management",
+ "description": "Battery drain, Power usage, Charging"
+ },
+ { "name": "flashing", "displayName": "Flashing",
+ "description": "Installing/flashing OS images"
+ },
]
}
// vim: ft=javascript expandtab ts=4 sw=4 st=4
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/config/settings.js
^
|
@@ -20,6 +20,16 @@
"host": 'forum.sailfishos.org',
"uri": '/uploads.json'
},
+ "gather": {
+ "basename": "harbour-bugger-gather-logs",
+ "postfixes": [ ".log", "_kernel.log" ],
+ "prettynames": [
+ { "pattern": "/_kernel/", "name": "Kernel" },
+ { "pattern": "/_android/", "name": "Android" },
+ { "pattern": "/_hybris/", "name": "Hybris" },
+ { "pattern": "/_update/", "name": "Update" },
+ ]
+ },
"paste": {
"scheme": 'https',
"host": 'paste.mozilla.org',
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/pages/FilePage.qml
^
|
@@ -28,7 +28,8 @@
canAccept: false
property var config: Settings.config
- property var links: []
+
+ onRejected: filesModel.clear()
/*
states: [
@@ -55,9 +56,13 @@
onAccepted: {
if (acceptedHandled) return
for (var i = 0; i < selectedContent.count; ++i) {
- filesModel.append(selectedContent.get(i))
+ var o = selectedContent.get(i)
+ o["dataStr"] = ""; // prepare property so we don't need dynamicRoles
+ o["pastedUrl"] = ""; // prepare property so we don't need dynamicRoles
+ filesModel.append(o)
+ console.debug("added", i+1, "of" , selectedContent.count, "files:")
+ console.debug(JSON.stringify(o, null, 2))
}
- loadFiles()
acceptedHandled=true
}
}
@@ -65,6 +70,7 @@
function loadFiles() {
loader.model = filesModel
+ loader.reload()
}
function upload() {
paster.model = filesModel
@@ -75,30 +81,52 @@
LogPaster { id: paster } // uploads files to "pastebin"
Connections {
target: gather
+ /*
+ * mimic the selectedContentProperties schema from FilePicker and add to the model
+ *
+ * {
+ "contentType": 6,
+ "fileName": "2022-12-01_harbour-bugger-gather-hybris-logs.log",
+ "filePath": "/home/nemo/Documents/2022-12-01_harbour-bugger-gather-hybris-logs.log",
+ "fileSize": 439122,
+ "mimeType": "text/x-log",
+ "title": "2022-12-01_harbour-bugger-gather-hybris-logs.log",
+ "url": "file:///home/nemo/Documents/2022-12-01_harbour-bugger-gather-hybris-logs.log",
+ "url": "file:///home/nemo/Documents/2022-12-01_harbour-bugger-gather-hybris-logs.log"
+ }
+ */
onLogCreatedChanged: {
- // mimic the selectedContentProperties of the Picker and add to the model
- const logBaseName = new Date().toISOString().substring(0,10) + "_" + "harbour-bugger-gather-logs"
- const d = []
+ //const logBaseName = new Date().toISOString().substring(0,10) + "_" + "harbour-bugger-gather-logs"
+ const logBaseName = new Date().toISOString().substring(0,10) + "_" + config.gather.basename
+ const elements = []
const o = {}
- const postfixes = [ ".log", ".json", "_kernel.log", "_kernel.json" ];
+ //const postfixes = [ ".log", "_kernel.log" ];
+ const postfixes = config.gather.postfixes
+ const pretty = config.gather.prettynames
postfixes.forEach(function(postfix) {
o = {};
- o["title"] = (
- ( (/_kernel/.test(postfix)) ? "Kernel" : "Journal" )
- + " "
- + ((/json/.test(postfix)) ? "(JSON)" : "" )
- );
+ o["title"] = "";
+ const fn = logBaseName + postfix;
+ for ( var i = 0; i < pretty.length; ++i) {
+ const re = new RegExp(pretty[i].pattern);
+ if (re.test(postfix)) {
+ console.debug("found pretty name", pretty[i].name, "from pattern", pretty[i].pattern, "for filename", fn)
+ o["title"] = pretty[i].name;
+ break;
+ }
+ };
o["mimeType"] = (/json$/.test(postfix)) ? "application/json" : "text/plain";
o["fileName"] = logBaseName + postfix;
- o["filePath"] = StandardPaths.documents + "/" + o["fileName"];
+ o["filePath"] = StandardPaths.documents + "/Bugger/" + o["fileName"];
o["url"] = Qt.resolvedUrl(o["filePath"]);
+ o["fileSize"] = -1; // prepare property so we don't need dynamicRoles
o["dataStr"] = ""; // prepare property so we don't need dynamicRoles
o["pastedUrl"] = ""; // prepare property so we don't need dynamicRoles
- //console.debug("Adding:", JSON.stringify(o,null,2))
- d.push(o)
+ console.debug("Adding:", JSON.stringify(o,null,2))
+ elements.push(o)
})
// add the generated information to the model
- d.forEach(function(element) { filesModel.append(element)})
+ elements.forEach(function(element) { filesModel.append(element)})
loadFiles()
}
}
@@ -106,10 +134,6 @@
target: paster
onDoneChanged: {
if (!paster.done) return
- for (var i = 0; i < filesModel.count; ++i) {
- var d = filesModel.get(i)
- links.push('<a href="' + d.pastedUrl + '">' + d.fileName + '</a>')
- }
canAccept = true
progress.visible = false
app.popup(qsTr("Uploading finished: %1 successful, %2 error.").arg(paster.successCount).arg(paster.errorCount))
@@ -118,7 +142,8 @@
if (paster.uploading !== "") {
console.debug("uploading", paster.uploading)
progress.visible = true
- progress.label=qsTr("uploading %1/%2").arg(paster.successCount + 1, filesModel.count)
+ //progress.label = qsTr("uploading %1/%2").arg(paster.successCount + 1).arg(filesModel.count)
+ progress.label = qsTr("uploading %1 files, %2 done").arg(filesModel.count).arg(paster.successCount)
}
}
}
@@ -126,12 +151,7 @@
SilicaFlickable { id: flick
anchors.fill: parent
contentHeight: col.height
- DialogHeader { id: header ;
- width: parent.width
- cancelText: qsTr("Back")
- acceptText: qsTr("Apply")
- title: qsTr("Gather Files")
- }
+ DialogHeader { id: header ; width: parent.width ; title: qsTr("Gather Files") }
Column { id: col
width: parent.width - Theme.horizontalPageMargin
anchors.horizontalCenter: parent.horizontalCenter
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/pages/LogConfigPage.qml
^
|
@@ -0,0 +1,55 @@
+/*
+
+Apache License 2.0
+
+Copyright (c) 2023 Peter G. (nephros)
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+
+import QtQuick 2.6
+import Sailfish.Silica 1.0
+//import "../components"
+//import "../config/settings.js" as Settings
+import "../config/logconfig.js" as Logs
+
+Page { id: page
+
+ property var config: Settings.config
+
+ SilicaFlickable { id: flick
+ anchors.fill: parent
+ contentHeight: col.height
+ PageHeader { id: header ; width: parent.width ; title: qsTr("Prepare Logging") }
+ SilicaListView { id: col
+ width: parent.width - Theme.horizontalPageMargin
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: header.bottom
+ model: Logs
+ delegate: ListItem {
+ Label { text: displayName}
+ Label { text: path}
+ }
+ //PullDownMenu { id: pdm
+ // flickable: flick
+ // MenuItem { text: qsTr("Upload Contents"); onClicked: { upload() } }
+ // MenuItem { text: qsTr("Pick Files"); onClicked: pageStack.push(picker) }
+ // MenuItem { text: qsTr("Collect Logs"); onClicked: { startGatherer() } }
+ //}
+ }
+ }
+ VerticalScrollDecorator {}
+}
+
+// vim: expandtab ts=4 st=4 sw=4 filetype=javascript
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/pages/LogViewPage.qml
^
|
@@ -0,0 +1,66 @@
+/*
+
+Apache License 2.0
+
+Copyright (c) 2022 Peter G. (nephros)
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+
+import QtQuick 2.6
+import Sailfish.Silica 1.0
+
+Page {
+ id: page
+
+ property string fileName: ""
+ property string fileData: ""
+
+ SilicaListView {
+ id: view
+ header: PageHeader { title: qsTr("Log File"); description: fileName; width: view.width
+ Separator { anchors.verticalCenter: parent.bottom; width: parent.width; color: Theme.primaryColor }
+ }
+ anchors.fill: parent
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: parent.width - Theme.horizontalPageMargin
+ topMargin: Theme.paddingLarge
+ bottomMargin: Theme.paddingLarge
+ model: 1
+ delegate: SilicaFlickable {
+ width: ListView.view.width
+ height: ListView.view.height
+ contentHeight: content.height
+ contentWidth: content.width
+ ScrollDecorator{}
+ Label { id: content
+ //x: Theme.horizontalPageMargin
+ anchors.topMargin: Theme.paddingLarge
+ anchors.bottomMargin: Theme.paddingLarge
+ anchors.leftMargin: Theme.paddingMedium
+ anchors.rightMargin: Theme.paddingMedium
+
+ text: page.fileData.length > 0 ? page.fileData : ""
+
+ color: Theme.secondaryColor
+ font.pixelSize: Theme.fontSizeExtraSmall
+ font.family: "monospace"
+ wrapMode: Text.NoWrap
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+}
+
+// vim: expandtab ts=4 st=4 sw=4 filetype=javascript
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/qml/pages/MainPage.qml
^
|
@@ -87,7 +87,7 @@
comm.push("<x-bugger-meta name='" + k + "' value='" + metatags[k] + "' />")
truth.push(metatags[k]);
})
- const tamperhash = Qt.md5(truth.join(""));
+ const tamperhash = Qt.md5(truth.join("\n"));
comm.push("<x-bugger-meta name='hash' value='" + tamperhash + "' />")
comm.push("-->\n")
return comm.join('\n')
@@ -339,7 +339,7 @@
description: qsTr("e.g. 'the app closed', 'a message was not shown'")
onFocusChanged: shallSave();
}
- SectionHeader { text: qsTr("Device Information") }
+ SectionHeader { text: qsTr("Device Information"); font.pixelSize: Theme.fontSizeLarge }
Separator { color: Theme.primaryColor; horizontalAlignment: Qt.AlignHCenter; width: page.width}
/*
* bug info contents may be available later than this page is instantiated.
@@ -352,8 +352,10 @@
active: (typeof bugInfo.hw !== "undefined") && (typeof bugInfo.os !== "undefined") && (typeof bugInfo.ssu !== "undefined")
sourceComponent: DeviceInfo{}
}
+ Separator { color: Theme.primaryColor; horizontalAlignment: Qt.AlignHCenter; width: page.width }
+ Item { height: Theme.paddingLarge*2; width: parent.width }
+ SectionHeader { text: qsTr("Additional Information"); font.pixelSize: Theme.fontSizeLarge }
Separator { color: Theme.primaryColor; horizontalAlignment: Qt.AlignHCenter; width: page.width}
- SectionHeader { text: qsTr("Additional Information") }
TextArea{id: text_add;
width: parent.width; height: Math.max(implicitHeight, Theme.itemSizeLarge);
label: qsTr("Add any other information")
@@ -415,11 +417,13 @@
}
}
Column {
+ visible: fileList.count > 0
width: parent.width
SectionHeader { text: qsTr("Links/Attachments (%1)").arg(fileList.count) }
FileList{ id: fileList
model: filesModel
showPlaceholder: false
+ filtered: true
}
}
}
@@ -434,7 +438,15 @@
var dialog = pageStack.push(Qt.resolvedUrl("FilePage.qml"))
dialog.accepted.connect(function() {
console.debug("dialog done.")
- page.links = dialog.links
+ for (var i = 0; i < filesModel.count; ++i) {
+ var d = filesModel.get(i)
+ //links.push('<a href="' + d.pastedUrl + '">' + d.fileName + '</a>')
+ if (d.title && d.pastedUrl) {
+ links.push(' - [' + d.title + '](' + d.pastedUrl + ') ')
+ } else if (d.fileName && d.pastedUrl) {
+ links.push(' - [' + d.fileName + '](' + d.pastedUrl + ') ')
+ }
+ }
})
}
}
@@ -513,15 +525,15 @@
+ "Device Owner User: " + userInfo.username + " \n"
+ "Home Encryption: " + encStr + " \n"
+ "\n\n"
- + "ATTACHMENTS:\n"
+ + "LOG FILE LINKS:\n"
+ "=================\n\n"
+ links.join('\n')
+ "\n\n\n\n"
+ // add meta tags:
+ + metatagsToComment()
// add footer:
+ "---- \n"
+ "<div align='right'><small><i>" + infoFooter + "</i></small></div>\n"
- // add meta tags:
- + metatagsToComment()
+ "";
return payload;
}
@@ -615,7 +627,8 @@
"regver": regver.currentIndex,
"regarch": regarch.currentIndex,
"othersw": othersw.checked,
- "repro": repro.sliderValue
+ "repro": repro.sliderValue,
+ "links": links
};
Util.store(post);
}
@@ -669,6 +682,7 @@
regarch.currentIndex = data.regarch;
othersw.checked = data.othersw;
repro.value = data.repro;
+ links = data.links;
} finally {
preventSave = false;
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs-plugin@.service
^
|
@@ -1,6 +1,6 @@
[Unit]
Description=Collect Logfiles Bugger! Plugin: %i
-Documentation=https://github.com/sailfishos-chum/bugger/README_logcollect.md
+Documentation=https://github.com/sailfishos-chum/bugger/blob/master/README_logcollect.md
Documentation=file:///usr/share/harbour-bugger/scripts/README_logcollect.md
Before=harbour-bugger-gather-logs.target
@@ -8,12 +8,19 @@
[Service]
Type=oneshot
-ProtectSystem=full
+ProtectSystem=strict
+ProtectHome=read-only
+#PrivateNetwork=true
+ProtectKernelTunables=true
+
ReadWritePaths=%h/Documents
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
ExecStart=/bin/sh -c "\
- /usr/share/harbour-bugger/scripts/gather-logs-%i.sh > %h/Documents/$(date -I)_%N.log; \
- /usr/bin/chmod 0600 %h/Documents/$(date -I)_%N.log; \
- /usr/bin/chown %u %h/Documents/$(date -I)_%N.log; \
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ /usr/share/harbour-bugger/scripts/gather-logs-%i.sh > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
"
[Install]
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs.service
^
|
@@ -8,13 +8,14 @@
Type=oneshot
ProtectSystem=full
ReadWritePaths=%h/Documents
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
ExecStart=/usr/bin/pkexec /bin/sh -c "\
- /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o short _TRANSPORT=journal | grep -v selinux > %h/Documents/$(date -I)_%N.log; \
- /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o json _TRANSPORT=journal | grep -v selinux > %h/Documents/$(date -I)_%N.json; \
- /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o short-precise -k > %h/Documents/$(date -I)_%N_kernel.log; \
- /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o json -k > %h/Documents/$(date -I)_%N_kernel.json; \
- /usr/bin/chmod 0600 %h/Documents/$(date -I)_%N*json %h/Documents/$(date -I)_%N*log; \
- /usr/bin/chown %u %h/Documents/$(date -I)_%N*json %h/Documents/$(date -I)_%N*log; \
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o short-precise _TRANSPORT=journal | grep -v selinux > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/journalctl --no-hostname --all --quiet --utc --priority=emerg..debug -o short-precise -k > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N_kernel.log; \
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N*log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N*log; \
"
[Install]
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs.target
^
|
@@ -1,6 +1,6 @@
[Unit]
Description=Collect Log files for Bugger!
-Documentation=https://github.com/sailfishos-chum/bugger/README_logcollect.md
+Documentation=https://github.com/sailfishos-chum/bugger/blob/master/README_logcollect.md
Documentation=file:///usr/share/harbour-bugger/scripts/README_logcollect.md
DefaultDependencies=no
StopWhenUnneeded=true
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs_android.service
^
|
@@ -0,0 +1,45 @@
+[Unit]
+Description=Collect Android Support logcat file for Bugger!
+Documentation=https://docs.sailfishos.org/Support/Help_Articles/Collecting_Logs/Collect_Logs_with_Logcat
+
+After=lipstick-security-ui.service
+Requires=lipstick-security-ui.service
+
+# would be nice, but user service can't depend on system service:
+# therefore, we use ExecStartPre below instead
+# After=aliendalvik.service
+# Requisite=aliendalvik.service
+# BindsTo=aliendalvik.service
+
+#PartOf=harbour-bugger-gather-logs.target
+
+ConditionPathExists=/system/bin/logcat
+ConditionPathExists=/system/bin/dumpsys
+
+[Service]
+Type=oneshot
+ProtectSystem=full
+ReadWritePaths=%h/Documents
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
+ExecStartPre=/bin/sh -c '/usr/bin/systemctl is-active --quiet aliendalvik.service'
+ExecStart=/usr/bin/pkexec /bin/sh -c "\
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ if [ $(awk -F= '/^VERSION_ID/ {print $2}' /etc/os-release | awk -F. '{print $1 $2 $3}') -ge 450 ]; \
+ then; \
+ /usr/bin/appsupport-attach /system/bin/logcat -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/appsupport-attach /system/bin/dumpsys -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N_dumpsys.log; \
+ elif [ $(awk -F= '/^VERSION_ID/ {print $2}' /etc/os-release | awk -F. '{print $1 $2 $3}') -ge 440 ]; \
+ then; \
+ /usr/bin/lxc-attach -n aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/logcat -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/lxc-attach -n aliendalvik --lxcpath=/tmp/aliendalvik -- /system/bin/dumpsys -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N_dumpsys.log; \
+ else; \
+ /usr/bin/lxc-attach -n aliendalvik -- /system/bin/logcat -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/lxc-attach -n aliendalvik -- /system/bin/dumpsys -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N_dumpsys.log; \
+ fi; \
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N*.log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N*.log; \
+"
+
+[Install]
+WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs_basic.service
^
|
@@ -0,0 +1,43 @@
+[Unit]
+Description=Collect Jolla gather-logs.sh basic output for Bugger!
+Documentation=https://docs.sailfishos.org/Support/Help_Articles/Collecting_Logs/Collect_Persistent_Logs/
+
+After=lipstick-security-ui.service
+Requires=lipstick-security-ui.service
+
+#PartOf=harbour-bugger-gather-logs.target
+
+[Service]
+Type=oneshot
+ProtectSystem=full
+ReadWritePaths=%h/Documents
+# see https://github.com/jovirkku/docs.sailfishos.org/blob/master/Support/Help_Articles/Collecting_Logs/Collect_Persistent_Logs/gather-logs.sh
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
+ExecStart=/usr/bin/pkexec /bin/sh -c "\
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ for f in /etc/hw-release /etc/sailfish-release /etc/passwd /etc/group; do\
+ printf '====== %s =====\n' $f >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ cat $f >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ done ;\
+ printf '====== rpm -qa =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ rpm -qa | sort >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ printf '====== ssu lr =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ ssu lr >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ printf '====== df =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ df >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ printf '====== df =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ mount >> $BUGGER_LOGPATH/mount ;\
+ printf '====== mount =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ ps >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ printf '====== sl -lR /dev =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ ps >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ ls -l -n -R /dev >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ printf '====== sl -lR /etc =====\n' >> ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log ;\
+ ls -l -n -R /etc >> $BUGGER_LOGPATH/$(/usr/bin/date -I)_%N.log ;\
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+"
+
+[Install]
+WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs_hybris.service
^
|
@@ -0,0 +1,32 @@
+[Unit]
+Description=Collect hybris logcat file for Bugger!
+
+After=lipstick-security-ui.service
+Requires=lipstick-security-ui.service
+
+# would be nice, but user service can't depend on system service:
+# therefore, we use ExecStartPre below instead
+# After=aliendalvik.service
+# Requisite=aliendalvik.service
+# BindsTo=aliendalvik.service
+
+#PartOf=harbour-bugger-gather-logs.target
+
+ConditionPathExists=/usr/libexec/droid-hybris/system/bin/logcat
+
+[Service]
+Type=oneshot
+ProtectSystem=full
+ReadWritePaths=%h/Documents
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
+ExecStartPre=/bin/sh -c '/usr/bin/systemctl is-active --quiet droid-hal-init.service'
+ExecStart=/bin/sh -c "\
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ /usr/libexec/droid-hybris/system/bin/logcat -d > ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+"
+
+[Install]
+WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs_jolla.service
^
|
@@ -0,0 +1,27 @@
+[Unit]
+Description=Collect Jolla gather-logs.sh output for Bugger!
+Documentation=https://docs.sailfishos.org/Support/Help_Articles/Collecting_Logs/Collect_Persistent_Logs/
+
+After=lipstick-security-ui.service
+Requires=lipstick-security-ui.service
+
+#PartOf=harbour-bugger-gather-logs.target
+
+ConditionPathExists=/_gather_logs_tmp
+
+[Service]
+Type=oneshot
+ProtectSystem=full
+ReadWritePaths=%h/Documents
+# see https://github.com/jovirkku/docs.sailfishos.org/blob/master/Support/Help_Articles/Collecting_Logs/Collect_Persistent_Logs/gather-logs.sh
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
+Environment=LOG_PACKAGE=jolla-gather-logs.tar.bz2
+Environment=GATHER_LOGS_DIR=/_gather_logs_tmp
+ExecStart=/usr/bin/pkexec /bin/sh -c "\
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ /usr/bin/tar cjf "${BUGGER_LOGPATH}/$LOG_PACKAGE" "$GATHER_LOGS_DIR" -C /\
+"
+
+[Install]
+WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Added |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/harbour-bugger-gather-logs_update.service
^
|
@@ -0,0 +1,31 @@
+[Unit]
+Description=Collect up/usr/bin/date log file for Bugger!
+
+#After=lipstick-security-ui.service
+#Requires=lipstick-security-ui.service
+
+# would be nice, but user service can't depend on system service:
+# therefore, we use ExecStartPre below instead
+# After=aliendalvik.service
+# Requisite=aliendalvik.service
+# BindsTo=aliendalvik.service
+
+#PartOf=harbour-bugger-gather-logs.target
+
+ConditionPathExists=/var/log/systemup/usr/bin/date.log
+
+[Service]
+Type=oneshot
+ProtectSystem=full
+ReadWritePaths=%h/Documents
+Environment=BUGGER_LOGPATH=%h/Documents/Bugger
+ExecStart=/bin/sh -c "\
+ /bin/mkdir -p ${BUGGER_LOGPATH}; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}; \
+ cp /var/log/systemup/usr/bin/date.log ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chmod 0600 ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+ /usr/bin/chown %u ${BUGGER_LOGPATH}/$(/usr/bin/date -I)_%N.log; \
+"
+
+[Install]
+WantedBy=harbour-bugger-gather-logs.target
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/systemd/systemd.pri
^
|
@@ -1,13 +1,22 @@
OTHER_FILES += $${TARGET}-gather-logs.target\
$${TARGET}-gather-logs.service\
- $${TARGET}-gather-logs-plugin@.service \
- $${TARGET}-gather-android-logs.service
+ $${TARGET}-gather-logs_basic.service \
+ $${TARGET}-gather-logs_hybris.service \
+ $${TARGET}-gather-logs_android.service \
+ $${TARGET}-gather-logs_update.service \
+ $${TARGET}-gather-logs_jolla.service \
+ $${TARGET}-gather-logs-plugin@.service
INSTALLS += sdservice
sdservice.files = $$PWD/$${TARGET}-gather-logs.target \
- $$PWD/$${TARGET}-gather-logs.service \
- $$PWD/$${TARGET}-gather-logs-plugin@.service \
- $$PWD/$${TARGET}-gather-android-logs.service
+ $$PWD/$${TARGET}-gather-logs.service \
+ $$PWD/$${TARGET}-gather-logs_hybris.service \
+ $$PWD/$${TARGET}-gather-logs_basic.service \
+ $$PWD/$${TARGET}-gather-logs_android.service \
+ $$PWD/$${TARGET}-gather-logs_update.service \
+ $$PWD/$${TARGET}-gather-logs_jolla.service \
+ $$PWD/$${TARGET}-gather-logs-plugin@.service
+
sdservice.path = $$INSTALL_ROOT/usr/lib/systemd/user
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/translations/harbour-bugger-de.ts
^
|
@@ -103,77 +103,75 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../qml/pages/FilePage.qml" line="51"/>
+ <location filename="../qml/pages/FilePage.qml" line="52"/>
<source>Select log files to add</source>
<translation>Wähle Logdateien</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="115"/>
+ <location filename="../qml/pages/FilePage.qml" line="113"/>
<source>Uploading finished: %1 successful, %2 error.</source>
<translation>Raufladen beendet: %1 erfolgreich, %2 mit Fehlern.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="121"/>
+ <location filename="../qml/pages/FilePage.qml" line="119"/>
<source>uploading %1/%2</source>
<translation>Lade %1/%2 hinauf</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="131"/>
<source>Back</source>
- <translation>Zurück</translation>
+ <translation type="vanished">Zurück</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="132"/>
<source>Apply</source>
- <translation>OK</translation>
+ <translation type="vanished">OK</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="133"/>
+ <location filename="../qml/pages/FilePage.qml" line="127"/>
<source>Gather Files</source>
<translation>Daten sammeln</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="145"/>
+ <location filename="../qml/pages/FilePage.qml" line="138"/>
<source>Here you can gather and add log files, which will be uploaded to a 'Pastebin' type of service, and added as links to your Bug Report.</source>
<translation>Hier kannst du Dateien hinzufügen, die auf ein 'Pastebin'-Service hinaufgeladen werden, und als Verknüpfungen dem Bugreport hinzugefügt werden.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="147"/>
+ <location filename="../qml/pages/FilePage.qml" line="140"/>
<source>Use the Pulley Menu to populate the file list.</source>
<translation>Verwende das Zieh-Menü, um die Liste der Dateien zu befüllen.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="148"/>
+ <location filename="../qml/pages/FilePage.qml" line="141"/>
<source>Long press on a file in the list to remove.</source>
<translation>Zum Entfernen, halte das Element in der Liste gedrückt.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="149"/>
+ <location filename="../qml/pages/FilePage.qml" line="142"/>
<source>Finally, use the Pulley Menu to upload the data and add the links.</source>
<translation>Zum Schluss verwende das Ziehmenü, um die Daten hinzufzuladen und die Verknüpfungen zu erstellen.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="151"/>
+ <location filename="../qml/pages/FilePage.qml" line="144"/>
<source>The data will be uploaded to %1, and be publicly available. Be sure you don't add private or confidential information.</source>
<translation>Die Daten werden auf %1 hinaufgeladen und dind dann öffentlich zugänglich. Stelle sicher, daß keine privaten oder geheimen Daten dort landen.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="159"/>
+ <location filename="../qml/pages/FilePage.qml" line="152"/>
<source>List of files to upload</source>
<translation>Liste der Dateien</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="167"/>
+ <location filename="../qml/pages/FilePage.qml" line="160"/>
<source>Upload Contents</source>
<translation>Inhalte hinaufladen</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="168"/>
+ <location filename="../qml/pages/FilePage.qml" line="161"/>
<source>Add Files</source>
<translation>Dateien hinzufügen</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="169"/>
+ <location filename="../qml/pages/FilePage.qml" line="162"/>
<source>Collect Logs</source>
<translation>Logdateien sammeln</translation>
</message>
@@ -241,18 +239,17 @@
<context>
<name>LogGatherer</name>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="73"/>
+ <location filename="../qml/components/LogGatherer.qml" line="66"/>
<source>Log gathering successsful!</source>
<translation>Das Zusammensammeln war erfolgreich!</translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="76"/>
+ <location filename="../qml/components/LogGatherer.qml" line="69"/>
<source>Log gathering failed!</source>
<translation>Das Zusammensammeln ist fehlgeschlagen!</translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="116"/>
- <location filename="../qml/components/LogGatherer.qml" line="130"/>
+ <location filename="../qml/components/LogGatherer.qml" line="109"/>
<source>Start</source>
<translation>Start</translation>
</message>
@@ -269,7 +266,17 @@
<context>
<name>LogfileDelegate</name>
<message>
- <location filename="../qml/components/LogfileDelegate.qml" line="52"/>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>uploaded</source>
+ <translation>raufgeladen</translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>not uploaded</source>
+ <translation>nicht raufgeladen</translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="70"/>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
@@ -277,7 +284,7 @@
<context>
<name>MainPage</name>
<message>
- <location filename="../qml/pages/MainPage.qml" line="235"/>
+ <location filename="../qml/pages/MainPage.qml" line="243"/>
<source>Bug Info (%1)</source>
<translation>Bugreport (%1)</translation>
</message>
@@ -290,76 +297,76 @@
<translation type="vanished">unvollständig</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="183"/>
<location filename="../qml/pages/MainPage.qml" line="189"/>
<location filename="../qml/pages/MainPage.qml" line="195"/>
+ <location filename="../qml/pages/MainPage.qml" line="201"/>
<source>Ready for posting</source>
<translation>Bereit zum Abschicken</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="197"/>
+ <location filename="../qml/pages/MainPage.qml" line="203"/>
<source>excellent</source>
<comment>State of completeness of a bug report</comment>
<translation>perfekt</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="208"/>
+ <location filename="../qml/pages/MainPage.qml" line="216"/>
<source>Achievement unlocked! The quality of your bug report is %1!</source>
<translation>Achievement unlocked! Die Qualität deines Reports ist %1!</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="373"/>
+ <location filename="../qml/pages/MainPage.qml" line="384"/>
<source>unknown</source>
<comment>Reproducibility</comment>
<translation>Reproduzierbarkeit</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="159"/>
- <location filename="../qml/pages/MainPage.qml" line="439"/>
+ <location filename="../qml/pages/MainPage.qml" line="165"/>
+ <location filename="../qml/pages/MainPage.qml" line="461"/>
<source>Please fill in the required fields</source>
<translation>Bitte fülle die Pflichtfelder aus</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="258"/>
+ <location filename="../qml/pages/MainPage.qml" line="266"/>
<source>You can tap this section to hide it.</source>
<translation>Antippen zum Verstecken</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="161"/>
<location filename="../qml/pages/MainPage.qml" line="167"/>
<location filename="../qml/pages/MainPage.qml" line="173"/>
<location filename="../qml/pages/MainPage.qml" line="179"/>
+ <location filename="../qml/pages/MainPage.qml" line="185"/>
<source>incomplete</source>
<comment>State of completeness of a bug report</comment>
<translation>unvollständig</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="165"/>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/translations/harbour-bugger-en.ts
^
|
@@ -102,77 +102,67 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../qml/pages/FilePage.qml" line="51"/>
+ <location filename="../qml/pages/FilePage.qml" line="52"/>
<source>Select log files to add</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="115"/>
+ <location filename="../qml/pages/FilePage.qml" line="113"/>
<source>Uploading finished: %1 successful, %2 error.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="121"/>
+ <location filename="../qml/pages/FilePage.qml" line="119"/>
<source>uploading %1/%2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="131"/>
- <source>Back</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../qml/pages/FilePage.qml" line="132"/>
- <source>Apply</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../qml/pages/FilePage.qml" line="133"/>
+ <location filename="../qml/pages/FilePage.qml" line="127"/>
<source>Gather Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="145"/>
+ <location filename="../qml/pages/FilePage.qml" line="138"/>
<source>Here you can gather and add log files, which will be uploaded to a 'Pastebin' type of service, and added as links to your Bug Report.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="147"/>
+ <location filename="../qml/pages/FilePage.qml" line="140"/>
<source>Use the Pulley Menu to populate the file list.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="148"/>
+ <location filename="../qml/pages/FilePage.qml" line="141"/>
<source>Long press on a file in the list to remove.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="149"/>
+ <location filename="../qml/pages/FilePage.qml" line="142"/>
<source>Finally, use the Pulley Menu to upload the data and add the links.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="151"/>
+ <location filename="../qml/pages/FilePage.qml" line="144"/>
<source>The data will be uploaded to %1, and be publicly available. Be sure you don't add private or confidential information.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="159"/>
+ <location filename="../qml/pages/FilePage.qml" line="152"/>
<source>List of files to upload</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="167"/>
+ <location filename="../qml/pages/FilePage.qml" line="160"/>
<source>Upload Contents</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="168"/>
+ <location filename="../qml/pages/FilePage.qml" line="161"/>
<source>Add Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="169"/>
+ <location filename="../qml/pages/FilePage.qml" line="162"/>
<source>Collect Logs</source>
<translation type="unfinished"></translation>
</message>
@@ -216,18 +206,17 @@
<context>
<name>LogGatherer</name>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="73"/>
+ <location filename="../qml/components/LogGatherer.qml" line="66"/>
<source>Log gathering successsful!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="76"/>
+ <location filename="../qml/components/LogGatherer.qml" line="69"/>
<source>Log gathering failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="116"/>
- <location filename="../qml/components/LogGatherer.qml" line="130"/>
+ <location filename="../qml/components/LogGatherer.qml" line="109"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
@@ -244,7 +233,17 @@
<context>
<name>LogfileDelegate</name>
<message>
- <location filename="../qml/components/LogfileDelegate.qml" line="52"/>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>uploaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>not uploaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="70"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@@ -252,308 +251,308 @@
<context>
<name>MainPage</name>
<message>
- <location filename="../qml/pages/MainPage.qml" line="235"/>
+ <location filename="../qml/pages/MainPage.qml" line="243"/>
<source>Bug Info (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="161"/>
<location filename="../qml/pages/MainPage.qml" line="167"/>
<location filename="../qml/pages/MainPage.qml" line="173"/>
<location filename="../qml/pages/MainPage.qml" line="179"/>
+ <location filename="../qml/pages/MainPage.qml" line="185"/>
<source>incomplete</source>
<comment>State of completeness of a bug report</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="165"/>
<location filename="../qml/pages/MainPage.qml" line="171"/>
<location filename="../qml/pages/MainPage.qml" line="177"/>
+ <location filename="../qml/pages/MainPage.qml" line="183"/>
<source>%1 field is too short</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="165"/>
- <location filename="../qml/pages/MainPage.qml" line="277"/>
- <location filename="../qml/pages/MainPage.qml" line="440"/>
+ <location filename="../qml/pages/MainPage.qml" line="171"/>
+ <location filename="../qml/pages/MainPage.qml" line="285"/>
+ <location filename="../qml/pages/MainPage.qml" line="462"/>
<source>Title</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="171"/>
- <location filename="../qml/pages/MainPage.qml" line="288"/>
- <location filename="../qml/pages/MainPage.qml" line="441"/>
+ <location filename="../qml/pages/MainPage.qml" line="177"/>
+ <location filename="../qml/pages/MainPage.qml" line="296"/>
+ <location filename="../qml/pages/MainPage.qml" line="463"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="177"/>
- <location filename="../qml/pages/MainPage.qml" line="442"/>
+ <location filename="../qml/pages/MainPage.qml" line="183"/>
+ <location filename="../qml/pages/MainPage.qml" line="464"/>
<source>Steps</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="185"/>
+ <location filename="../qml/pages/MainPage.qml" line="191"/>
<source>ok</source>
<comment>State of completeness of a bug report</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="183"/>
<location filename="../qml/pages/MainPage.qml" line="189"/>
<location filename="../qml/pages/MainPage.qml" line="195"/>
+ <location filename="../qml/pages/MainPage.qml" line="201"/>
<source>Ready for posting</source>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger-0.10.5+git3.tar.gz/translations/harbour-bugger-sv.ts
^
|
@@ -103,77 +103,75 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../qml/pages/FilePage.qml" line="51"/>
+ <location filename="../qml/pages/FilePage.qml" line="52"/>
<source>Select log files to add</source>
<translation>Välj loggfiler att lägga till</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="115"/>
+ <location filename="../qml/pages/FilePage.qml" line="113"/>
<source>Uploading finished: %1 successful, %2 error.</source>
<translation>Uppladdning slutförd: %1 felfritt, %2 fel.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="121"/>
+ <location filename="../qml/pages/FilePage.qml" line="119"/>
<source>uploading %1/%2</source>
<translation>laddar upp %1/%2</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="131"/>
<source>Back</source>
- <translation>Tillbaka</translation>
+ <translation type="vanished">Tillbaka</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="132"/>
<source>Apply</source>
- <translation>Tillämpa</translation>
+ <translation type="vanished">Tillämpa</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="133"/>
+ <location filename="../qml/pages/FilePage.qml" line="127"/>
<source>Gather Files</source>
<translation>Samla filer</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="145"/>
+ <location filename="../qml/pages/FilePage.qml" line="138"/>
<source>Here you can gather and add log files, which will be uploaded to a 'Pastebin' type of service, and added as links to your Bug Report.</source>
<translation>Här kan du samla in och lägga till loggfiler, som laddas upp till en "Pastebin-tjänst" och läggs till som länkar i din felrapport.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="147"/>
+ <location filename="../qml/pages/FilePage.qml" line="140"/>
<source>Use the Pulley Menu to populate the file list.</source>
<translation>Använd dragmenyn för att fylla fillistan.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="148"/>
+ <location filename="../qml/pages/FilePage.qml" line="141"/>
<source>Long press on a file in the list to remove.</source>
<translation>Långtryck på en fil i listan, för att ta bort.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="149"/>
+ <location filename="../qml/pages/FilePage.qml" line="142"/>
<source>Finally, use the Pulley Menu to upload the data and add the links.</source>
<translation>Slutligen använder du dragmenyn för att ladda upp data och lägga till länkarna.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="151"/>
+ <location filename="../qml/pages/FilePage.qml" line="144"/>
<source>The data will be uploaded to %1, and be publicly available. Be sure you don't add private or confidential information.</source>
<translation>Data laddas upp till %1 och är offentligt tillgängliga. Tillse att du inte lägger till privat eller konfidentiell information.</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="159"/>
+ <location filename="../qml/pages/FilePage.qml" line="152"/>
<source>List of files to upload</source>
<translation>Lista över filer att ladda upp</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="167"/>
+ <location filename="../qml/pages/FilePage.qml" line="160"/>
<source>Upload Contents</source>
<translation>Ladda upp innehåll</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="168"/>
+ <location filename="../qml/pages/FilePage.qml" line="161"/>
<source>Add Files</source>
<translation>Lägg till filer</translation>
</message>
<message>
- <location filename="../qml/pages/FilePage.qml" line="169"/>
+ <location filename="../qml/pages/FilePage.qml" line="162"/>
<source>Collect Logs</source>
<translation>Samla in loggar</translation>
</message>
@@ -261,18 +259,17 @@
<context>
<name>LogGatherer</name>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="73"/>
+ <location filename="../qml/components/LogGatherer.qml" line="66"/>
<source>Log gathering successsful!</source>
<translation>Logginsamling slutförd!</translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="76"/>
+ <location filename="../qml/components/LogGatherer.qml" line="69"/>
<source>Log gathering failed!</source>
<translation>Logginsamling misslyckades!</translation>
</message>
<message>
- <location filename="../qml/components/LogGatherer.qml" line="116"/>
- <location filename="../qml/components/LogGatherer.qml" line="130"/>
+ <location filename="../qml/components/LogGatherer.qml" line="109"/>
<source>Start</source>
<translation>Starta</translation>
</message>
@@ -289,7 +286,17 @@
<context>
<name>LogfileDelegate</name>
<message>
- <location filename="../qml/components/LogfileDelegate.qml" line="52"/>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>uploaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="62"/>
+ <source>not uploaded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../qml/components/LogfileDelegate.qml" line="70"/>
<source>Remove</source>
<translation>Ta bort</translation>
</message>
@@ -297,71 +304,71 @@
<context>
<name>MainPage</name>
<message>
- <location filename="../qml/pages/MainPage.qml" line="421"/>
+ <location filename="../qml/pages/MainPage.qml" line="435"/>
<source>About</source>
<translation>Om</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="235"/>
+ <location filename="../qml/pages/MainPage.qml" line="243"/>
<source>Bug Info (%1)</source>
<translation>Felinformation (%1)</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="161"/>
<location filename="../qml/pages/MainPage.qml" line="167"/>
<location filename="../qml/pages/MainPage.qml" line="173"/>
<location filename="../qml/pages/MainPage.qml" line="179"/>
+ <location filename="../qml/pages/MainPage.qml" line="185"/>
<source>incomplete</source>
<comment>State of completeness of a bug report</comment>
<translation>ej komplett</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="165"/>
<location filename="../qml/pages/MainPage.qml" line="171"/>
<location filename="../qml/pages/MainPage.qml" line="177"/>
+ <location filename="../qml/pages/MainPage.qml" line="183"/>
<source>%1 field is too short</source>
<translation>%1fältet är för kort</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="165"/>
- <location filename="../qml/pages/MainPage.qml" line="277"/>
- <location filename="../qml/pages/MainPage.qml" line="440"/>
+ <location filename="../qml/pages/MainPage.qml" line="171"/>
+ <location filename="../qml/pages/MainPage.qml" line="285"/>
+ <location filename="../qml/pages/MainPage.qml" line="462"/>
<source>Title</source>
<translation>Titel</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="171"/>
- <location filename="../qml/pages/MainPage.qml" line="288"/>
- <location filename="../qml/pages/MainPage.qml" line="441"/>
+ <location filename="../qml/pages/MainPage.qml" line="177"/>
+ <location filename="../qml/pages/MainPage.qml" line="296"/>
+ <location filename="../qml/pages/MainPage.qml" line="463"/>
<source>Description</source>
<translation>Beskrivning</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="177"/>
- <location filename="../qml/pages/MainPage.qml" line="442"/>
+ <location filename="../qml/pages/MainPage.qml" line="183"/>
+ <location filename="../qml/pages/MainPage.qml" line="464"/>
<source>Steps</source>
<translation>Steg</translation>
</message>
<message>
- <location filename="../qml/pages/MainPage.qml" line="185"/>
+ <location filename="../qml/pages/MainPage.qml" line="191"/>
<source>ok</source>
<comment>State of completeness of a bug report</comment>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-bugger.yaml
^
|
@@ -1,6 +1,6 @@
Name: harbour-bugger
Summary: Bug reporting helper
-Version: 0.10.4
+Version: 0.10.5
Release: 1
Group: Applications
License: ASL 2.0
@@ -52,13 +52,8 @@
# %endif
#Patches:
# - 'baz'
-RequiresPost:
- - systemd
-RequiresPreUn:
- - systemd
-RequiresPostUn:
- - systemd
Requires:
+ - '%{name}-gather-logs'
- libsailfishapp-launcher
- sailfish-version >= 4.0.0
PkgBR:
@@ -84,9 +79,60 @@
- '%config %{_sysconfdir}/sailjail/permissions/%{name}.profile'
- '%config %{_sysconfdir}/firejail/%{name}.local'
- '%dir %{_datadir}/%{name}'
- - '%dir %{_datadir}/%{name}/scripts'
- - '%{_datadir}/%{name}/scripts/README_logcollect.md'
- '%{_datadir}/%{name}/translations/*.qm'
- '%{_datadir}/%{name}/qml/*'
- - '%{_userunitdir}/*.target'
- - '%{_userunitdir}/*.service'
+
+SubPackages:
+ - Name: gather-logs
+ Summary: Log gathering tools from %{name}
+ Group: Applications
+ Description: |
+ %{summary}.
+
+ %if "%{?vendor}" == "chum"
+ PackageName: Log collecting tools from Bugger!
+ Type: addon
+ Categories:
+ - Utility
+ Custom:
+ Repo: https://github.com/sailfishos-chum/bugger
+ %endif
+
+ BuildArch: noarch
+ AutoDepend: false
+ Requires:
+ - polkit
+ RequiresPost:
+ - systemd
+ RequiresPreUn:
+ - systemd
+ RequiresPostUn:
+ - systemd
+ Files:
+ - '%dir %{_datadir}/%{name}/scripts'
+ - '%{_datadir}/%{name}/scripts/README_logcollect.md'
+ - '%{_userunitdir}/*.target'
+ - '%{_userunitdir}/*.service'
+
+ - Name: gather-logs-contrib
+ Version: 0.1
+ Summary: Log gathering contributions for %{name}
+ Group: Applications
+ Description: |
+ %{summary}.
+
+ %if "%{?vendor}" == "chum"
+ PackageName: Log collecting contributions for Bugger!
+ Type: addon
+ Categories:
+ - Utility
+ Custom:
+ Repo: https://github.com/sailfishos-chum/bugger
+ %endif
+
+ Requires:
+ - '%{name}-gather-logs'
+ BuildArch: noarch
+ AutoDepend: false
+ Files:
+ - '%attr(0755,root,root) %{_datadir}/%{name}/scripts/gather-logs-*.sh'
|