Hello community, here is the log from the commit of package libretro-craft for openSUSE:Factory checked in at 2020-06-23 21:06:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libretro-craft (Old) and /work/SRC/openSUSE:Factory/.libretro-craft.new.2956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libretro-craft" Tue Jun 23 21:06:04 2020 rev:2 rq:816502 version:1.0~git20200504 Changes: -------- --- /work/SRC/openSUSE:Factory/libretro-craft/libretro-craft.changes 2020-02-11 22:23:07.059492373 +0100 +++ /work/SRC/openSUSE:Factory/.libretro-craft.new.2956/libretro-craft.changes 2020-06-23 21:06:33.954224375 +0200 @@ -1,0 +2,14 @@ +Tue Jun 16 06:48:39 UTC 2020 - [email protected] + +- Update to version 1.0~git20200504: + * Improve logging + * Fix compile failure on emscripten + * Fix path to auth database + * Log database init error code + * Don't attempt to run main loop after failure. + * MAke sure log_cb is always set + * Update libretro.h + * allow compiling for ios-arm64 + * libretro: allow mingw cross compile + +------------------------------------------------------------------- Old: ---- libretro-craft-1.0~git20190627.tar.xz New: ---- libretro-craft-1.0~git20200504.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libretro-craft.spec ++++++ --- /var/tmp/diff_new_pack.Qrac06/_old 2020-06-23 21:06:34.678226714 +0200 +++ /var/tmp/diff_new_pack.Qrac06/_new 2020-06-23 21:06:34.678226714 +0200 @@ -1,7 +1,7 @@ # # spec file for package libretro-craft # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,17 +17,17 @@ Name: libretro-craft -Version: 1.0~git20190627 +Version: 1.0~git20200504 Release: 0 Summary: Craft libretro core -License: GPL-3.0 +License: GPL-3.0-only URL: http://www.retroarch.com Source: %{name}-%{version}.tar.xz Patch1: tinycthread.patch +BuildRequires: Mesa-devel BuildRequires: gcc BuildRequires: make -BuildRequires: Mesa-devel %description Minecraft clone for Windows, Mac OS X and Linux. Just a few thousand lines of C using modern OpenGL (shaders). Online multiplayer support is included using a Python-based server. ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Qrac06/_old 2020-06-23 21:06:34.722226856 +0200 +++ /var/tmp/diff_new_pack.Qrac06/_new 2020-06-23 21:06:34.722226856 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/libretro/craft</param> - <param name="changesrevision">9591c25a78d938780813f42390a3dcc97db7b3cf</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">d132ba03a25ccdf5266b65f6ecb0f4d57e0e56a8</param></service></servicedata> \ No newline at end of file ++++++ libretro-craft-1.0~git20190627.tar.xz -> libretro-craft-1.0~git20200504.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/Makefile.common new/libretro-craft-1.0~git20200504/Makefile.common --- old/libretro-craft-1.0~git20190627/Makefile.common 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/Makefile.common 2020-05-04 03:18:01.000000000 +0200 @@ -52,7 +52,9 @@ SOURCES_C += $(LIBRETRO_COMM_DIR)/glsm/glsm.c ifeq ($(GLES), 1) GLFLAGS += -DHAVE_OPENGLES -DHAVE_OPENGLES2 +ifneq ($(STATIC_LINKING), 1) SOURCES_C += $(LIBRETRO_COMM_DIR)/glsym/glsym_es2.c +endif else GLFLAGS += -DHAVE_OPENGL SOURCES_C += $(LIBRETRO_COMM_DIR)/glsym/glsym_gl.c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/Makefile.libretro new/libretro-craft-1.0~git20200504/Makefile.libretro --- old/libretro-craft-1.0~git20190627/Makefile.libretro 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/Makefile.libretro 2020-05-04 03:18:01.000000000 +0200 @@ -280,9 +280,8 @@ TARGET := $(TARGET_NAME)_libretro_$(platform).bc GLES := 1 CPUFLAGS += -Dasm=asmerror -D__asm__=asmerror - PLATCFLAGS += -Drglgen_symbol_map=craft_rglgen_symbol_map \ - -Drglgen_resolve_symbols_custom=craft_rglgen_resolve_symbols_custom \ - -Drglgen_resolve_symbols=craft_rglgen_resolve_symbols \ + PLATCFLAGS += -Drglgen_resolve_symbols_custom=craft_rglgen_resolve_symbols_custom \ + -Drglgen_resolve_symbols=craft_rglgen_resolve_symbols STATIC_LINKING=1 @@ -379,8 +378,8 @@ TARGET := $(TARGET_NAME)_libretro.dll LDFLAGS += -shared -static-libgcc -static-libstdc++ -Wl,--version-script=$(ROOT_DIR)/link.T -lwinmm -lgdi32 -lws2_32 GL_LIB := -lopengl32 - CC = gcc - CXX = g++ + CC ?= gcc + CXX ?= g++ endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/deps/libretro-common/include/glsm/glsm.h new/libretro-craft-1.0~git20200504/deps/libretro-common/include/glsm/glsm.h --- old/libretro-craft-1.0~git20190627/deps/libretro-common/include/glsm/glsm.h 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/deps/libretro-common/include/glsm/glsm.h 2020-05-04 03:18:01.000000000 +0200 @@ -32,6 +32,9 @@ RETRO_BEGIN_DECLS #ifdef HAVE_OPENGLES2 +#if defined (IOS) || defined(EMSCRIPTEN) +typedef GLfloat GLdouble; +#endif typedef GLclampf GLclampd; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/libretro/libretro.c new/libretro-craft-1.0~git20200504/libretro/libretro.c --- old/libretro-craft-1.0~git20190627/libretro/libretro.c 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/libretro/libretro.c 2020-05-04 03:18:01.000000000 +0200 @@ -22,7 +22,6 @@ retro_environment_t environ_cb; static retro_input_poll_t input_poll_cb; retro_input_state_t input_state_cb; -static retro_log_printf_t log_cb; unsigned game_width = 640; unsigned game_height = 480; @@ -38,6 +37,8 @@ va_end(va); } +retro_log_printf_t log_cb = fallback_log; + #if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES) static bool fb_ready = false; static bool init_program_now = true; @@ -145,8 +146,6 @@ if (cb(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &logging)) log_cb = logging.log; - else - log_cb = fallback_log; } void retro_set_audio_sample(retro_audio_sample_t cb) @@ -264,6 +263,7 @@ static unsigned logic_frames = 0; static unsigned amount_frames = 0; +static bool dead = false; extern void on_key(void); @@ -272,6 +272,11 @@ static unsigned timestep = 0; static double libretro_on_key_delay = 0.0f; bool updated = false; + + if (dead) { + environ_cb (RETRO_ENVIRONMENT_SHUTDOWN, NULL); + return; + } if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE, &updated) && updated) check_variables(false); @@ -282,7 +287,12 @@ } if (init_program_now) { - main_load_game(0, NULL); + if (main_load_game(0, NULL) < 0) { + log_cb(RETRO_LOG_ERROR, "Game init failed\n"); + environ_cb (RETRO_ENVIRONMENT_SHUTDOWN, NULL); + dead = true; + return; + } init_program_now = false; video_cb(NULL, game_width, game_height, 0); return; @@ -304,7 +314,10 @@ if (main_run() != 1) { - /* Do shutdown or something similar. */ + log_cb(RETRO_LOG_INFO, "main_run failed. Shutting down\n"); + environ_cb (RETRO_ENVIRONMENT_SHUTDOWN, NULL); + dead = true; + return; } timestep += 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/libretro/libretro.h new/libretro-craft-1.0~git20200504/libretro/libretro.h --- old/libretro-craft-1.0~git20190627/libretro/libretro.h 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/libretro/libretro.h 2020-05-04 03:18:01.000000000 +0200 @@ -246,6 +246,9 @@ RETRO_LANGUAGE_ESPERANTO = 13, RETRO_LANGUAGE_POLISH = 14, RETRO_LANGUAGE_VIETNAMESE = 15, + RETRO_LANGUAGE_ARABIC = 16, + RETRO_LANGUAGE_GREEK = 17, + RETRO_LANGUAGE_TURKISH = 18, RETRO_LANGUAGE_LAST, /* Ensure sizeof(enum) == sizeof(int) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/src/config.h new/libretro-craft-1.0~git20200504/src/config.h --- old/libretro-craft-1.0~git20190627/src/config.h 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/src/config.h 2020-05-04 03:18:01.000000000 +0200 @@ -10,6 +10,7 @@ #define SCROLL_THRESHOLD 0.1 #define MAX_MESSAGES 4 #define DB_PATH "craft.db" +#define DB_AUTH_PATH "auth.db" #define USE_CACHE 1 #define DAY_LENGTH 600 #define INVERT_MOUSE 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/src/db.c new/libretro-craft-1.0~git20200504/src/db.c --- old/libretro-craft-1.0~git20190627/src/db.c 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/src/db.c 2020-05-04 03:18:01.000000000 +0200 @@ -3,6 +3,7 @@ #include "ring.h" #include "sqlite3.h" #include "tinycthread.h" +#include "util.h" static int db_enabled = 0; @@ -36,10 +37,14 @@ return db_enabled; } -int db_init(char *path) +static void sqlite_log_callback(void *closure, int err_code, const char *msg){ + LOG_ERROR("sqlite log: (%d) %s\n", err_code, msg); +} + +int db_init(char *path, char *auth_path) { + static const char *attach_query = "attach database ? as auth;"; static const char *create_query = - "attach database 'auth.db' as auth;" "create table if not exists auth.identity_token (" " username text not null," " token text not null," @@ -113,14 +118,37 @@ static const char *set_key_query = "insert or replace into key (p, q, key) " "values (?, ?, ?);"; + sqlite3_stmt *attach_stmt; int rc; + char *errmsg; if (!db_enabled) { return 0; } + + sqlite3_config(SQLITE_CONFIG_LOG, sqlite_log_callback, NULL); + rc = sqlite3_open(path, &db); if (rc) return rc; - rc = sqlite3_exec(db, create_query, NULL, NULL, NULL); + + rc = sqlite3_prepare_v2( + db, attach_query, -1, &attach_stmt, NULL); + if (rc) return rc; + rc = sqlite3_bind_text(attach_stmt, 1, auth_path, -1, NULL); + if (rc) return rc; + do + rc = sqlite3_step(attach_stmt); + while (rc == SQLITE_ROW); + if (rc && rc != SQLITE_DONE) return rc; + rc = sqlite3_finalize(attach_stmt); if (rc) return rc; + + rc = sqlite3_exec(db, create_query, NULL, NULL, NULL); + if (rc) { + LOG_ERROR("Error running SQLite create_query: %d: %s\n", rc, + errmsg); + sqlite3_free(errmsg); + return rc; + } rc = sqlite3_prepare_v2( db, insert_block_query, -1, &insert_block_stmt, NULL); if (rc) return rc; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/src/db.h new/libretro-craft-1.0~git20200504/src/db.h --- old/libretro-craft-1.0~git20190627/src/db.h 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/src/db.h 2020-05-04 03:18:01.000000000 +0200 @@ -7,7 +7,7 @@ void db_enable(); void db_disable(); int get_db_enabled(); -int db_init(char *path); +int db_init(char *path, char *auth_path); void db_close(); void db_commit(); void db_auth_set(char *username, char *identity_token); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/src/main.c new/libretro-craft-1.0~git20200504/src/main.c --- old/libretro-craft-1.0~git20190627/src/main.c 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/src/main.c 2020-05-04 03:18:01.000000000 +0200 @@ -136,6 +136,7 @@ int mode; int mode_changed; char db_path[MAX_PATH_LENGTH]; + char db_auth_path[MAX_PATH_LENGTH]; char server_addr[MAX_ADDR_LENGTH]; int server_port; int day_length; @@ -2689,9 +2690,12 @@ char slash = '/'; #endif snprintf(g->db_path, MAX_PATH_LENGTH, "%s%c%s", dir, slash, DB_PATH); + snprintf(g->db_auth_path, MAX_PATH_LENGTH, "%s%c%s", dir, slash, DB_AUTH_PATH); } - else + else { snprintf(g->db_path, MAX_PATH_LENGTH, "%s", DB_PATH); + snprintf(g->db_auth_path, MAX_PATH_LENGTH, "%s", DB_AUTH_PATH); + } } static void parse_command(const char *buffer, int forward) @@ -3374,9 +3378,14 @@ // DATABASE INITIALIZATION // if (g->mode == MODE_OFFLINE || USE_CACHE) { + int rc; db_enable(); - if (db_init(g->db_path)) + rc = db_init(g->db_path, g->db_auth_path); + if (rc) { + LOG_ERROR("Error initing db %s+%s: %d\n", + g->db_path, g->db_auth_path, rc); return -1; + } if (g->mode == MODE_ONLINE) { // TODO: support proper caching of signs (handle deletions) db_delete_all_signs(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libretro-craft-1.0~git20190627/src/util.h new/libretro-craft-1.0~git20200504/src/util.h --- old/libretro-craft-1.0~git20190627/src/util.h 2019-06-27 00:53:23.000000000 +0200 +++ new/libretro-craft-1.0~git20200504/src/util.h 2020-05-04 03:18:01.000000000 +0200 @@ -11,11 +11,19 @@ #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define SIGN(x) (((x) > 0) - ((x) < 0)) +#ifdef __LIBRETRO__ +#include "libretro.h" +extern retro_log_printf_t log_cb; +#define LOG(...) log_cb(RETRO_LOG_INFO, __VA_ARGS__) +#define LOG_ERROR(...) log_cb(RETRO_LOG_ERROR, __VA_ARGS__) +#else #if DEBUG #define LOG(...) printf(__VA_ARGS__) #else #define LOG(...) #endif +#define LOG_ERROR(...) fprintf(stderr, __VA_ARGS__) +#endif int main_load_graphics(void);
