Bug 402509 - --stop-on-failure can't be added to the command-line invocation after the thing you want to build; must be before
Summary: --stop-on-failure can't be added to the command-line invocation after the thi...
Status: RESOLVED FIXED
Alias: None
Product: kdesrc-build
Classification: Developer tools
Component: general (show other bugs)
Version: Git
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Michael Pyne
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-23 22:16 UTC by Nate Graham
Modified: 2018-12-26 00:14 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 19.01


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2018-12-23 22:16:12 UTC
kdesrc-build from git master.

kdesrc-build gwenview --include-dependencies --stop-on-failure works fine.

kdesrc-build --include-dependencies --stop-on-failure gwenview explodes:

$ (arcpatch-D17732) kdesrc-build --include-dependencies --stop-on-failure gwenview
Updating kde-build-metadata (to branch master)
Updating sysadmin-repo-metadata (to branch master)

Building libdbusmenu-qt (1/299)
Unable to checkout libdbusmenu-qt! at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Updater/Bzr.pm line 37.
        ksb::Updater::Bzr::updateInternal(ksb::Updater::Bzr=HASH(0x55d00213e3d0), ksb::IPC::Pipe=HASH(0x55d0021019c8)) called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Module.pm line 720
        eval {...} called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Module.pm line 720
        ksb::Module::update(ksb::Module=HASH(0x55d001ded1c8), ksb::IPC::Pipe=HASH(0x55d0021019c8), ksb::BuildContext=HASH(0x55d00064a1e0)) called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Application.pm line 1356
        ksb::Application::_handle_updates(ksb::IPC::Pipe=HASH(0x55d0021019c8), ksb::BuildContext=HASH(0x55d00064a1e0)) called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Application.pm line 1617
        ksb::Application::_handle_async_build(ksb::IPC::Pipe=HASH(0x55d0020a3fc8), ksb::BuildContext=HASH(0x55d00064a1e0)) called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/modules/ksb/Application.pm line 685
        ksb::Application::runAllModulePhases(ksb::Application=HASH(0x55d0016cfb58)) called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/kdesrc-build line 367
        eval {...} called at /home/nate/SpiderOak Hive/Software projects/git projects/KDE/kdesrc-build/kdesrc-build line 363
Error updating libdbusmenu-qt, removing from list of packages to build.
 > 1
        Unable to update libdbusmenu-qt, build canceled.

libdbusmenu-qt didn't build, stopping here.
        No source update, but the build directory doesn't exist
Comment 1 Michael Pyne 2018-12-25 01:01:08 UTC
I don't think this is a failure directly about --stop-on-failure's positioning. The option is handled by Perl's standard library (Getopt::Long module) and that supports moving --options around as you would expect. The error message also says something about libdbusmenu-qt (which is the only bazaar user in kdesrc-build, so perhaps an error with that).

However there is definitely something screwy going on. Compare these commands run from a completely empty kdesrc-build setup (only kdesrc-build --metadata-only being run):

$ kdesrc-build -p kguiaddons --include-dependencies --stop-on-failure

Building extra-cmake-modules from <module-set at line 34> (1/2)
        Cloning extra-cmake-modules
        Source update complete for extra-cmake-modules: 1 file affected.
        Preparing build system for extra-cmake-modules.
        Running cmake...
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building kguiaddons from frameworks (2/2)
        Cloning kguiaddons
        Source update complete for kguiaddons: 1 file affected.
        Preparing build system for kguiaddons.
        Running cmake...
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

<<<  PACKAGES SUCCESSFULLY BUILT  >>>
extra-cmake-modules
kguiaddons
 
Removing 1 out of 1 old log directories...


But moving kguiaddons to the end...:

$ kdesrc-build -p --include-dependencies --stop-on-failure kguiaddons

Building libdbusmenu-qt (1/92)
        No changes to libdbusmenu-qt source, proceeding to build.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building taglib (2/92)
        Cloning taglib
        Source update complete for taglib: 1 file affected.
        Preparing build system for taglib.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building extra-cmake-modules from frameworks (3/92)
        Cloning extra-cmake-modules
        Source update complete for extra-cmake-modules: 1 file affected.
        Preparing build system for extra-cmake-modules.
        Running cmake...
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

...

Building libgpg-error (91/92)
        Cloning libgpg-error
        Source update complete for libgpg-error: 1 file affected.
        Preparing build system for libgpg-error.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

Building gpgme (92/92)
        Cloning gpgme
        Source update complete for gpgme: 1 file affected.
        Preparing build system for gpgme.
        Compiling... succeeded (after 0 seconds)
        Installing.. succeeded (after 0 seconds)

<<<  PACKAGES SUCCESSFULLY BUILT  >>>
Built 92 modules
 
Removing 1 out of 1 old log directories...

You'll note that kguiaddons isn't the last module built either! This one will take a bit to troubleshoot...
Comment 2 Michael Pyne 2018-12-25 01:05:12 UTC
And now that I've removed the ~/kde/src directory (but not other directories) and tried again, both forms of the command line are equivalent (and incorrect, only building 2 modules).
Comment 3 Michael Pyne 2018-12-25 22:27:45 UTC
Fixed, see https://invent.kde.org/kde/kdesrc-build/issues/8 and https://invent.kde.org/kde/kdesrc-build/commit/e743b5bb9f3031411429455494f0aa1deac22336 for details. Thanks for the report Nate!
Comment 4 Nate Graham 2018-12-26 00:14:44 UTC
Thanks for fixing it so quickly! I'll get involved with the Gitlab instance for future bug reports.