alexlarsson/xdg-app

xdg-app-builder repeatedly garbles some git repo URLs

iBelieve opened this issue · 5 comments

I'm experimenting with building a Qt-based runtime for Papyros based off of gnome-sdk-nightly. However, during the downloading sources step, xdg-app-builder repeatedly has issues with adding random text to the end of some git urls. This happens every time, but not always for the same URLs (so it doesn't seem to be an issue with my build config or the main Qt repo).

$ ./build.sh -v
+ xdg-app-builder app io.papyros.Sdk.json
Downloading sources
Fetching git repo git://anongit.freedesktop.org/wayland/wayland-protocols
Fetching git repo git://code.qt.io/qt/qt5.git
Fetching git repo git://code.qt.io/qt/qt3d.git
Fetching git repo git://code.qt.io/qt/qtactiveqt.git
Fetching git repo git://code.qt.io/qt/qtandroidextras.git
Fetching git repo git://code.qt.io/qt/qtbase.git
Fetching git repo git://code.qt.io/qt/qtcanvas3d.git
Cloning git repo git://code.qt.io/qt/qtcharts.git
p/export1
Cloning into bare repository 'git_code.qt.io_qt_qtcharts.git
p_export1.clone_tmp'...
fatal: remote error: no such repository: /qt/qtcharts.git
p/export1
Failed to download sources: Child process exited with code 128

For reference, my runtime definition is here: https://github.com/papyros/papyros-sdk-nightly.

That is weird. I've never seen that myself.
Can you try running xdg-app-builder in valgrind?

Here's the output from running xdg-app-builder through valgrind. It's a bit long, so I put it in a gist: https://gist.github.com/iBeliever/5f51b098907121512aaf

The problem appears to be in xdg_app_spawn(). I added a line for debugging:

if (out) {
    if (data.splice_error) {
        g_propagate_error(error, data.splice_error);
        return FALSE;
    }

    /* Null terminate */
    g_output_stream_write(out, "\0", 1, NULL, NULL);
    *output = g_memory_output_stream_steal_data(G_MEMORY_OUTPUT_STREAM(out));

    // ADDED THIS LINE FOR DEBUGGING
    g_print("Output from command is '%s'\n", *output);
}

And got this result:

$ ./build.sh -v
+ xdg-app-builder app io.papyros.Sdk.json
Downloading sources
Fetching git repo git://anongit.freedesktop.org/wayland/wayland-protocols
Output from command is '0b05b70f9da245582f01581be4ca36db683682b8
'
Output from command is '(null)'
Fetching git repo git://code.qt.io/qt/qt5.git
Output from command is '9a70b8f6aad303e84b5cb063267c31801c555a6a
'
Output from command is '-ec963e106397d46e5c853e9adb3fbec1b27d9b04 qt3d
-ca7647e94748b499641e0800ee4aed158e89238b qtactiveqt
-38b83c33f3955570627f0235fa920b2b54440bdc qtandroidextras
-5ef14c52d0275e721153b15acfb0410b9889014a qtbase
-9a714258f32a6a5318eb461903af25f64b7c80d2 qtcanvas3d
-741f5e26cd618aeff349dd612516148b50c85dde qtconnectivity
-d1461c8429c7b6f9e9442f319d5a49b7e7a5b67d qtdeclarative
-12db3790eef4ba140528438a650a68777b1ed26d qtdoc
-2da36eb615f6f8f06a456d65c45547937b47bebd qtdocgallery
-e32bcb7b714454f9167c4d49776a95c9a5799d70 qtenginio
-862de791d785797a561204c78490f31a318a9360 qtfeedback
-9aa0edc6d13d20796feb1712883eddb7cd411ecd qtgraphicaleffects
-cba6b5c3a1e30757c71b905f368d38c2b123f85e qtimageformats
-9969179a06c30b56d3d057aba127686b64ccd659 qtlocation
-872bbed0a7f07d26f0e4a51f8034e90ae95fc4e4 qtmacextras
-8d88f172b691021d947385387f809a710dab23df qtmultimedia
-18e3d741c3526978cdacc88bc260d250918d2080 qtpim
-de8520af69fcc9a83d44828b8b01ea7c2cc2ed41 qtqa
-f079636a3ee5538eb79fd4e7e6ffcb0465a015a0 qtquick1
-1836451c18c557dbfc332124ef4645b3ba2bc9d4 qtquickcontrols
-0b050777c276010eda68ecdbb3cd5024c846225e qtrepotools
-a65471a8d5b0c084e2089616a3367c0438548b5e qtscript
-6a16281aceedb713676e16c3074e6f7ea1e70b79 qtsensors
-ad108e9d56e7838eac3726e0492a246086d53e70 qtserialport
-92f3d851029945d0d156866afe71362d14ae8a53 qtsvg
-44f70d99a2ecd5f3f320650461f1d69142d11bcc qtsystems
-a29927bbb85813841a8e2971073c9c4164eab0a7 qttools
-6fbc830e0ebeb66a5570e8c432c27658670cd071 qttranslations
-9d408649458a274864ae2e7c2d67b4fa3cabbfcd qtwayland
-906d910415454d64ff0b021b06f0df422a8c82bd qtwebchannel
-f32f4af43c207072e6bb175b9e63e0d3ebc2cc1d qtwebengine
-11ce03bd807504559961dc69bdf6ccc382b61812 qtwebkit
-df729f9f284df2d30db432de351e7e80360097c8 qtwebkit-examples
-043ecfb68e1af7a8b0225e59326bf8af344df043 qtwebsockets
-92359d2d571f3b553ab915901c62549df5b2512c qtwinextras
-e4f2f0a146a83fa3160687ca06e11430ff02c5a8 qtx11extras
-7367d313378fb548449feda3bb0f437d29f20e8b qtxmlpatterns
'
Output from command is '../qt3d.git
'
Fetching git repo git://code.qt.io/qt/qt3d.git
Output from command is 'ec963e106397d46e5c853e9adb3fbec1b27d9b04
'
Output from command is '(null)'
Output from command is '../qtactiveqt.git
'
Fetching git repo git://code.qt.io/qt/qtactiveqt.git
Output from command is 'ca7647e94748b499641e0800ee4aed158e89238b
'
Output from command is '(null)'
Output from command is '../qtandroidextras.git
'
Fetching git repo git://code.qt.io/qt/qtandroidextras.git
Output from command is '38b83c33f3955570627f0235fa920b2b54440bdc
'
Output from command is '(null)'
Output from command is '../qtbase.git
'
Fetching git repo git://code.qt.io/qt/qtbase.git
Output from command is '5ef14c52d0275e721153b15acfb0410b9889014a
'
Output from command is '(null)'
Output from command is '../qtcanvas3d.git
'
Fetching git repo git://code.qt.io/qt/qtcanvas3d.git
Output from command is '9a714258f32a6a5318eb461903af25f64b7c80d2
'
Output from command is '(null)'
Output from command is '../qtconnectivity.git
'
Fetching git repo git://code.qt.io/qt/qtconnectivity.git
Output from command is '741f5e26cd618aeff349dd612516148b50c85dde
'
Output from command is '(null)'
Output from command is '../qtdeclarative.git
'
Fetching git repo git://code.qt.io/qt/qtdeclarative.git
Output from command is 'd1461c8429c7b6f9e9442f319d5a49b7e7a5b67d
'
Output from command is '-0b5af3dcec772bb06b4d685a20b2859cda59d189 tests/manual/v4/test262
'
Output from command is 'git://github.com/tronical/test262.git
'
Fetching git repo git://github.com/tronical/test262.git
Output from command is '0b5af3dcec772bb06b4d685a20b2859cda59d189
'
Output from command is '(null)'
Output from command is '../qtdoc.git
'
Fetching git repo git://code.qt.io/qt/qtdoc.git
Output from command is '12db3790eef4ba140528438a650a68777b1ed26d
'
Output from command is '(null)'
Output from command is '../qtdocgallery.git
'
Fetching git repo git://code.qt.io/qt/qtdocgallery.git
Output from command is '2da36eb615f6f8f06a456d65c45547937b47bebd
'
Output from command is '(null)'
Output from command is '../qtenginio.git
'
Fetching git repo git://code.qt.io/qt/qtenginio.git
Output from command is 'e32bcb7b714454f9167c4d49776a95c9a5799d70
'
Output from command is '(null)'
Output from command is '../qtfeedback.git
'
Fetching git repo git://code.qt.io/qt/qtfeedback.git
Output from command is '862de791d785797a561204c78490f31a318a9360
'
Output from command is '(null)'
Output from command is '../qtgraphicaleffects.git
'
Fetching git repo git://code.qt.io/qt/qtgraphicaleffects.git
Output from command is '9aa0edc6d13d20796feb1712883eddb7cd411ecd
'
Output from command is '(null)'
Output from command is '../qtimageformats.git
'
Fetching git repo git://code.qt.io/qt/qtimageformats.git
Output from command is 'cba6b5c3a1e30757c71b905f368d38c2b123f85e
'
Output from command is '(null)'
Output from command is '../qtlocation.git
'
Fetching git repo git://code.qt.io/qt/qtlocation.git
Output from command is '9969179a06c30b56d3d057aba127686b64ccd659
'
Output from command is '(null)'
Output from command is '../qtmacextras.git
'
Fetching git repo git://code.qt.io/qt/qtmacextras.git
Output from command is '872bbed0a7f07d26f0e4a51f8034e90ae95fc4e4
'
Output from command is '(null)'
Output from command is '../qtmultimedia.git
'
Fetching git repo git://code.qt.io/qt/qtmultimedia.git
Output from command is '8d88f172b691021d947385387f809a710dab23df
'
Output from command is '(null)'
Output from command is '../qtpim.git
'
Fetching git repo git://code.qt.io/qt/qtpim.git
Output from command is '18e3d741c3526978cdacc88bc260d250918d2080
'
Output from command is '(null)'
Output from command is '../qtqa.git
'
Fetching git repo git://code.qt.io/qt/qtqa.git
Output from command is 'de8520af69fcc9a83d44828b8b01ea7c2cc2ed41
'
Output from command is '(null)'
Output from command is '../qtquick1.git
���'
Cloning git repo git://code.qt.io/qt/qtquick1.git
���
Cloning into bare repository 'git_code.qt.io_qt_qtquick1.git
���.clone_tmp'...
fatal: remote error: no such repository: /qt/qtquick1.git
���
Failed to download sources: Child process exited with code 128

For some reason, this problem usually happens at qtquick1, though occasionally it stops at other submodules. Just to verify it's not a git issue, I also ran the command that xdg-app-builder is getting the url from:

$ git config -f .gitmodules submodule.qtquick1.url
../qtquick1.git

That looks like it fixed it, thank you!