+ case "${usergroup_phase}" in
+ local run_cmd
+ run_cmd=run_su
+ shift
+ run_su /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/kajaani-kombat-0.7nb13/work.log
+ su pbulk -c '"$@"' make /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/kajaani-kombat-0.7nb13/work.log
=> Bootstrap dependency digest>=20211023: found digest-20220214
WARNING: [license.mk] Every package should define a LICENSE.
===> Building for kajaani-kombat-0.7nb13
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o game_obj.o game_obj.cpp
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o terrain.o terrain.cpp
In file included from terrain.h:34,
                 from terrain.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o msg.o msg.cpp
In file included from terrain.h:34,
                 from msg.h:25,
                 from msg.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
msg.h:50:42: error: ISO C++17 does not allow dynamic exception specifications
   50 |   void send (const TCPsocket sock) const throw (string);
      |                                          ^~~~~
msg.h:53:37: error: ISO C++17 does not allow dynamic exception specifications
   53 |   static msg* recv (TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:61:52: error: ISO C++17 does not allow dynamic exception specifications
   61 |   virtual void write_msgdata(TCPsocket sock) const throw (string) = 0;
      |                                                    ^~~~~
msg.h:62:45: error: ISO C++17 does not allow dynamic exception specifications
   62 |   virtual void read_msgdata(TCPsocket sock) throw (string) = 0;
      |                                             ^~~~~
msg.h:65:52: error: ISO C++17 does not allow dynamic exception specifications
   65 |   static void write_uint(TCPsocket sock, Uint32 d) throw (string);
      |                                                    ^~~~~
msg.h:66:43: error: ISO C++17 does not allow dynamic exception specifications
   66 |   static Uint32 read_uint(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:68:61: error: ISO C++17 does not allow dynamic exception specifications
   68 |   static void write_string(TCPsocket sock, const string &s) throw (string);
      |                                                             ^~~~~
msg.h:69:45: error: ISO C++17 does not allow dynamic exception specifications
   69 |   static string read_string(TCPsocket sock) throw (string);
      |                                             ^~~~~
msg.h:71:59: error: ISO C++17 does not allow dynamic exception specifications
   71 |   static void write_coord(TCPsocket sock, const coord &c) throw (string);
      |                                                           ^~~~~
msg.h:72:43: error: ISO C++17 does not allow dynamic exception specifications
   72 |   static coord read_coord(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:86:44: error: ISO C++17 does not allow dynamic exception specifications
   86 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:87:37: error: ISO C++17 does not allow dynamic exception specifications
   87 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:103:44: error: ISO C++17 does not allow dynamic exception specifications
  103 |   void write_msgdata(TCPsocket sock) const throw (string) ;
      |                                            ^~~~~
msg.h:104:37: error: ISO C++17 does not allow dynamic exception specifications
  104 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:122:44: error: ISO C++17 does not allow dynamic exception specifications
  122 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:124:37: error: ISO C++17 does not allow dynamic exception specifications
  124 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:139:44: error: ISO C++17 does not allow dynamic exception specifications
  139 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:141:37: error: ISO C++17 does not allow dynamic exception specifications
  141 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:156:44: error: ISO C++17 does not allow dynamic exception specifications
  156 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:158:37: error: ISO C++17 does not allow dynamic exception specifications
  158 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:172:44: error: ISO C++17 does not allow dynamic exception specifications
  172 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:174:37: error: ISO C++17 does not allow dynamic exception specifications
  174 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:188:44: error: ISO C++17 does not allow dynamic exception specifications
  188 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:190:37: error: ISO C++17 does not allow dynamic exception specifications
  190 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:204:44: error: ISO C++17 does not allow dynamic exception specifications
  204 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:206:37: error: ISO C++17 does not allow dynamic exception specifications
  206 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:220:44: error: ISO C++17 does not allow dynamic exception specifications
  220 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:222:37: error: ISO C++17 does not allow dynamic exception specifications
  222 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:236:44: error: ISO C++17 does not allow dynamic exception specifications
  236 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:238:37: error: ISO C++17 does not allow dynamic exception specifications
  238 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:252:44: error: ISO C++17 does not allow dynamic exception specifications
  252 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:254:37: error: ISO C++17 does not allow dynamic exception specifications
  254 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:270:44: error: ISO C++17 does not allow dynamic exception specifications
  270 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:271:37: error: ISO C++17 does not allow dynamic exception specifications
  271 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:289:44: error: ISO C++17 does not allow dynamic exception specifications
  289 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:290:37: error: ISO C++17 does not allow dynamic exception specifications
  290 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:309:44: error: ISO C++17 does not allow dynamic exception specifications
  309 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:310:37: error: ISO C++17 does not allow dynamic exception specifications
  310 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:331:44: error: ISO C++17 does not allow dynamic exception specifications
  331 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:332:37: error: ISO C++17 does not allow dynamic exception specifications
  332 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:353:44: error: ISO C++17 does not allow dynamic exception specifications
  353 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:354:37: error: ISO C++17 does not allow dynamic exception specifications
  354 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:375:44: error: ISO C++17 does not allow dynamic exception specifications
  375 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:376:37: error: ISO C++17 does not allow dynamic exception specifications
  376 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:397:44: error: ISO C++17 does not allow dynamic exception specifications
  397 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:398:37: error: ISO C++17 does not allow dynamic exception specifications
  398 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:419:44: error: ISO C++17 does not allow dynamic exception specifications
  419 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:420:37: error: ISO C++17 does not allow dynamic exception specifications
  420 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:439:44: error: ISO C++17 does not allow dynamic exception specifications
  439 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:440:37: error: ISO C++17 does not allow dynamic exception specifications
  440 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:460:44: error: ISO C++17 does not allow dynamic exception specifications
  460 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:461:37: error: ISO C++17 does not allow dynamic exception specifications
  461 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:484:44: error: ISO C++17 does not allow dynamic exception specifications
  484 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:485:37: error: ISO C++17 does not allow dynamic exception specifications
  485 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:504:44: error: ISO C++17 does not allow dynamic exception specifications
  504 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:505:37: error: ISO C++17 does not allow dynamic exception specifications
  505 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:526:44: error: ISO C++17 does not allow dynamic exception specifications
  526 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:527:37: error: ISO C++17 does not allow dynamic exception specifications
  527 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:548:44: error: ISO C++17 does not allow dynamic exception specifications
  548 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:549:37: error: ISO C++17 does not allow dynamic exception specifications
  549 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:568:44: error: ISO C++17 does not allow dynamic exception specifications
  568 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:569:37: error: ISO C++17 does not allow dynamic exception specifications
  569 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:591:44: error: ISO C++17 does not allow dynamic exception specifications
  591 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:592:37: error: ISO C++17 does not allow dynamic exception specifications
  592 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:618:44: error: ISO C++17 does not allow dynamic exception specifications
  618 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:619:37: error: ISO C++17 does not allow dynamic exception specifications
  619 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:644:44: error: ISO C++17 does not allow dynamic exception specifications
  644 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:645:37: error: ISO C++17 does not allow dynamic exception specifications
  645 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:661:44: error: ISO C++17 does not allow dynamic exception specifications
  661 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:662:37: error: ISO C++17 does not allow dynamic exception specifications
  662 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.cpp:176:33: error: ISO C++17 does not allow dynamic exception specifications
  176 | msg* msg::recv (TCPsocket sock) throw (string)
      |                                 ^~~~~
msg.cpp:289:39: error: ISO C++17 does not allow dynamic exception specifications
  289 | void msg::send (TCPsocket sock) const throw (string)
      |                                       ^~~~~
msg.cpp:327:48: error: ISO C++17 does not allow dynamic exception specifications
  327 | void msg::write_uint(TCPsocket sock, Uint32 d) throw (string)
      |                                                ^~~~~
msg.cpp:336:39: error: ISO C++17 does not allow dynamic exception specifications
  336 | Uint32 msg::read_uint(TCPsocket sock) throw (string)
      |                                       ^~~~~
msg.cpp:348:55: error: ISO C++17 does not allow dynamic exception specifications
  348 | void msg::write_coord(TCPsocket sock, const coord &c) throw (string)
      |                                                       ^~~~~
msg.cpp:354:39: error: ISO C++17 does not allow dynamic exception specifications
  354 | coord msg::read_coord(TCPsocket sock) throw (string)
      |                                       ^~~~~
msg.cpp:361:57: error: ISO C++17 does not allow dynamic exception specifications
  361 | void msg::write_string(TCPsocket sock, const string &s) throw (string)
      |                                                         ^~~~~
msg.cpp:369:41: error: ISO C++17 does not allow dynamic exception specifications
  369 | string msg::read_string(TCPsocket sock) throw (string)
      |                                         ^~~~~
msg.cpp:386:59: error: ISO C++17 does not allow dynamic exception specifications
  386 | void msg_serverhello::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:393:52: error: ISO C++17 does not allow dynamic exception specifications
  393 | void msg_serverhello::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:401:59: error: ISO C++17 does not allow dynamic exception specifications
  401 | void msg_clienthello::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:407:52: error: ISO C++17 does not allow dynamic exception specifications
  407 | void msg_clienthello::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:441:58: error: ISO C++17 does not allow dynamic exception specifications
  441 | void msg_start_game::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:445:51: error: ISO C++17 does not allow dynamic exception specifications
  445 | void msg_start_game::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:462:58: error: ISO C++17 does not allow dynamic exception specifications
  462 | void msg_playerinfo::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:468:51: error: ISO C++17 does not allow dynamic exception specifications
  468 | void msg_playerinfo::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:486:59: error: ISO C++17 does not allow dynamic exception specifications
  486 | void msg_talkmessage::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:492:52: error: ISO C++17 does not allow dynamic exception specifications
  492 | void msg_talkmessage::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:510:63: error: ISO C++17 does not allow dynamic exception specifications
  510 | void msg_castle_location::write_msgdata(TCPsocket sock) const throw (string)
      |                                                               ^~~~~
msg.cpp:516:56: error: ISO C++17 does not allow dynamic exception specifications
  516 | void msg_castle_location::read_msgdata(TCPsocket sock) throw (string)
      |                                                        ^~~~~
msg.cpp:535:65: error: ISO C++17 does not allow dynamic exception specifications
  535 | void msg_move_cannonplacer::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                 ^~~~~
msg.cpp:541:58: error: ISO C++17 does not allow dynamic exception specifications
  541 | void msg_move_cannonplacer::read_msgdata(TCPsocket sock) throw (string)
      |                                                          ^~~~~
msg.cpp:558:69: error: ISO C++17 does not allow dynamic exception specifications
  558 | void msg_move_characterchooser::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                     ^~~~~
msg.cpp:564:62: error: ISO C++17 does not allow dynamic exception specifications
  564 | void msg_move_characterchooser::read_msgdata(TCPsocket sock) throw (string)
      |                                                              ^~~~~
msg.cpp:584:64: error: ISO C++17 does not allow dynamic exception specifications
  584 | void msg_move_blockplacer::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:590:57: error: ISO C++17 does not allow dynamic exception specifications
  590 | void msg_move_blockplacer::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:631:60: error: ISO C++17 does not allow dynamic exception specifications
  631 | void msg_place_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:637:61: error: ISO C++17 does not allow dynamic exception specifications
  637 | void msg_change_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                             ^~~~~
msg.cpp:642:54: error: ISO C++17 does not allow dynamic exception specifications
  642 | void msg_change_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                      ^~~~~
msg.cpp:647:53: error: ISO C++17 does not allow dynamic exception specifications
  647 | void msg_place_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:653:64: error: ISO C++17 does not allow dynamic exception specifications
  653 | void msg_place_big_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:659:57: error: ISO C++17 does not allow dynamic exception specifications
  659 | void msg_place_big_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:683:64: error: ISO C++17 does not allow dynamic exception specifications
  683 | void msg_choose_character::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:690:57: error: ISO C++17 does not allow dynamic exception specifications
  690 | void msg_choose_character::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:708:60: error: ISO C++17 does not allow dynamic exception specifications
  708 | void msg_chooser_lock::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:713:53: error: ISO C++17 does not allow dynamic exception specifications
  713 | void msg_chooser_lock::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:730:60: error: ISO C++17 does not allow dynamic exception specifications
  730 | void msg_move_chooser::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:736:53: error: ISO C++17 does not allow dynamic exception specifications
  736 | void msg_move_chooser::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:754:64: error: ISO C++17 does not allow dynamic exception specifications
  754 | void msg_move_chooser_req::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:760:57: error: ISO C++17 does not allow dynamic exception specifications
  760 | void msg_move_chooser_req::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:777:60: error: ISO C++17 does not allow dynamic exception specifications
  777 | void msg_rotate_block::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:782:53: error: ISO C++17 does not allow dynamic exception specifications
  782 | void msg_rotate_block::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:800:59: error: ISO C++17 does not allow dynamic exception specifications
  800 | void msg_place_block::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:807:52: error: ISO C++17 does not allow dynamic exception specifications
  807 | void msg_place_block::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:828:53: error: ISO C++17 does not allow dynamic exception specifications
  828 | void msg_shoot::write_msgdata(TCPsocket sock) const throw (string)
      |                                                     ^~~~~
msg.cpp:836:46: error: ISO C++17 does not allow dynamic exception specifications
  836 | void msg_shoot::read_msgdata(TCPsocket sock) throw (string)
      |                                              ^~~~~
msg.cpp:862:58: error: ISO C++17 does not allow dynamic exception specifications
  862 | void msg_disconnect::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:866:51: error: ISO C++17 does not allow dynamic exception specifications
  866 | void msg_disconnect::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:870:59: error: ISO C++17 does not allow dynamic exception specifications
  870 | void msg_move_cursor::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:878:52: error: ISO C++17 does not allow dynamic exception specifications
  878 | void msg_move_cursor::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
gmake: *** [<builtin>: msg.o] Error 1
*** Error code 2

Stop.
bmake[1]: stopped in /data/jenkins/workspace/pkgsrc-upstream-trunk/games/kajaani-kombat
*** Error code 1

Stop.
bmake: stopped in /data/jenkins/workspace/pkgsrc-upstream-trunk/games/kajaani-kombat