From 0b6d2678c14aec4c1498b9ca756a2317e4919118 Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Thu, 27 Dec 2018 10:53:58 +0100 Subject: [PATCH 1/3] sqlite3: add configure switches to menuselect Adds (most) configure switches to menuselect. The defaults are _not_ changed, meaning the default configuration itself remains the same. This enables changing the configuration through menuselect and adds flags that other packages may use. Config.in is renamed to Config-lib.in in anticipation of a future commit where the cli tool package also gets a file to source. The variables also get a prefix change from SQLITE to SQLITE3 in case there will be a new major release in the future that may coexist with sqlite3. Signed-off-by: Sebastian Kemper --- libs/sqlite3/Config-lib.in | 53 ++++++++++++++++++++++++++++++++++++++ libs/sqlite3/Config.in | 18 ------------- libs/sqlite3/Makefile | 30 ++++++++++++--------- 3 files changed, 71 insertions(+), 30 deletions(-) create mode 100644 libs/sqlite3/Config-lib.in delete mode 100644 libs/sqlite3/Config.in diff --git a/libs/sqlite3/Config-lib.in b/libs/sqlite3/Config-lib.in new file mode 100644 index 000000000..aa6357b53 --- /dev/null +++ b/libs/sqlite3/Config-lib.in @@ -0,0 +1,53 @@ +menu "Configuration" + depends on PACKAGE_libsqlite3 + +config SQLITE3_DYNAMIC_EXTENSIONS + bool "Dynamic extensions" + default y + help + Enable loadable extensions. + +config SQLITE3_FTS3 + bool "FTS3 support" + default y + help + Enable FTS3 support. + +config SQLITE3_FTS4 + bool "FTS4 support" + depends on SQLITE3_FTS3 + default y + help + Enable FTS4 support. + +config SQLITE3_FTS5 + bool "FTS5 support" + default y + help + Enable FTS5 support. + +config SQLITE3_JSON1 + bool "JSON1 extension" + default y + help + Include JSON1 support. This is the default. + +config SQLITE3_RTREE + bool "R-Tree support" + default y + help + Enable R-Tree support. + +config SQLITE3_SESSION + bool "Session extension" + default n + help + Enable the session extension (default no). + +config SQLITE3_THREADSAFE + bool "Thread-safe library" + default y + help + Build a thread-safe library. + +endmenu diff --git a/libs/sqlite3/Config.in b/libs/sqlite3/Config.in deleted file mode 100644 index 8e8fa6ec9..000000000 --- a/libs/sqlite3/Config.in +++ /dev/null @@ -1,18 +0,0 @@ -menu "Configuration" - depends on PACKAGE_libsqlite3 - -config SQLITE_FTS3 - bool - prompt "Enable FTS3" - help - "Enable support for full-text search version 3" - default y - -config SQLITE_RTREE - bool - prompt "Enable RTREE" - help - "Enable support for the R*Tree index extension" - default y - -endmenu diff --git a/libs/sqlite3/Makefile b/libs/sqlite3/Makefile index b56af5360..d1a558717 100644 --- a/libs/sqlite3/Makefile +++ b/libs/sqlite3/Makefile @@ -25,8 +25,14 @@ PKG_FIXUP:=autoreconf PKG_INSTALL:=1 PKG_CONFIG_DEPENDS := \ - CONFIG_SQLITE_FTS3 \ - CONFIG_SQLITE_RTREE + CONFIG_SQLITE3_DYNAMIC_EXTENSIONS \ + CONFIG_SQLITE3_FTS3 \ + CONFIG_SQLITE3_FTS4 \ + CONFIG_SQLITE3_FTS5 \ + CONFIG_SQLITE3_JSON1 \ + CONFIG_SQLITE3_RTREE \ + CONFIG_SQLITE3_SESSION \ + CONFIG_SQLITE3_THREADSAFE include $(INCLUDE_DIR)/package.mk @@ -57,7 +63,7 @@ $(call Package/sqlite3/Default/description) endef define Package/libsqlite3/config - source "$(SOURCE)/Config.in" + source "$(SOURCE)/Config-lib.in" endef define Package/sqlite3-cli @@ -80,19 +86,19 @@ TARGET_CFLAGS += \ -DHAVE_MALLOC_USABLE_SIZE=1 \ -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -ifneq ($(CONFIG_SQLITE_FTS3),y) -TARGET_CFLAGS += -USQLITE_ENABLE_FTS3 -endif - -ifneq ($(CONFIG_SQLITE_RTREE),y) -TARGET_CFLAGS += -USQLITE_ENABLE_RTREE -endif - CONFIGURE_ARGS += \ --enable-shared \ --enable-static \ --disable-editline \ - --disable-static-shell + --disable-static-shell \ + $(if $(CONFIG_SQLITE3_DYNAMIC_EXTENSIONS),--enable-dynamic-extensions,--disable-dynamic-extensions) \ + $(if $(CONFIG_SQLITE3_FTS3),--enable-fts3,--disable-fts3) \ + $(if $(CONFIG_SQLITE3_FTS3),--enable-fts4,--disable-fts4) \ + $(if $(CONFIG_SQLITE3_FTS3),--enable-fts5,--disable-fts5) \ + $(if $(CONFIG_SQLITE3_JSON1),--enable-json1,--disable-json1) \ + $(if $(CONFIG_SQLITE3_RTREE),--enable-rtree,--disable-rtree) \ + $(if $(CONFIG_SQLITE3_SESSION),--enable-session,--disable-session) \ + $(if $(CONFIG_SQLITE3_THREADSAFE),--enable-threadsafe,--disable-threadsafe) define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include From 4e30b3b62adb6de6fda96f9c276bcc9ac8002acc Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Thu, 27 Dec 2018 11:11:20 +0100 Subject: [PATCH 2/3] sqlite3: make cli-editing support selectable sqlite3 can use libedit, readline or disable command-line editing support altogether. This commit adds a choice to menuselect. The default is changed from readline to libedit, as the latter is upstream's first choice and is also a bit smaller than readline. Signed-off-by: Sebastian Kemper --- libs/sqlite3/Config-cli.in | 24 ++++++++++++++++++++++++ libs/sqlite3/Makefile | 21 +++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 libs/sqlite3/Config-cli.in diff --git a/libs/sqlite3/Config-cli.in b/libs/sqlite3/Config-cli.in new file mode 100644 index 000000000..752db6e81 --- /dev/null +++ b/libs/sqlite3/Config-cli.in @@ -0,0 +1,24 @@ +menu "Configuration" + depends on PACKAGE_sqlite3-cli + +choice + prompt "Select command-line editing support" + default SQLITE3_LIBEDIT + + config SQLITE3_LIBEDIT + bool "libedit" + help + Link against libedit. This is the default. + + config SQLITE3_READLINE + bool "readline" + help + Link against GNU readline. + + config SQLITE3_READLINE_NONE + bool "none" + help + Disable command-line editing support. + +endchoice +endmenu diff --git a/libs/sqlite3/Makefile b/libs/sqlite3/Makefile index d1a558717..21cd04f4a 100644 --- a/libs/sqlite3/Makefile +++ b/libs/sqlite3/Makefile @@ -30,6 +30,8 @@ PKG_CONFIG_DEPENDS := \ CONFIG_SQLITE3_FTS4 \ CONFIG_SQLITE3_FTS5 \ CONFIG_SQLITE3_JSON1 \ + CONFIG_SQLITE3_LIBEDIT \ + CONFIG_SQLITE3_READLINE \ CONFIG_SQLITE3_RTREE \ CONFIG_SQLITE3_SESSION \ CONFIG_SQLITE3_THREADSAFE @@ -70,7 +72,11 @@ define Package/sqlite3-cli $(call Package/sqlite3/Default) SECTION:=utils CATEGORY:=Utilities - DEPENDS:=+libsqlite3 +libncurses +libreadline + DEPENDS := \ + +libsqlite3 \ + +SQLITE3_LIBEDIT:libedit \ + +SQLITE3_READLINE:libreadline \ + +SQLITE3_READLINE:libncursesw TITLE+= (cli) endef @@ -81,6 +87,10 @@ $(call Package/sqlite3/Default/description) formats. endef +define Package/sqlite3-cli/config + source "$(SOURCE)/Config-cli.in" +endef + TARGET_CFLAGS += \ -DHAVE_ISNAN=1 \ -DHAVE_MALLOC_USABLE_SIZE=1 \ @@ -89,7 +99,6 @@ TARGET_CFLAGS += \ CONFIGURE_ARGS += \ --enable-shared \ --enable-static \ - --disable-editline \ --disable-static-shell \ $(if $(CONFIG_SQLITE3_DYNAMIC_EXTENSIONS),--enable-dynamic-extensions,--disable-dynamic-extensions) \ $(if $(CONFIG_SQLITE3_FTS3),--enable-fts3,--disable-fts3) \ @@ -100,6 +109,14 @@ CONFIGURE_ARGS += \ $(if $(CONFIG_SQLITE3_SESSION),--enable-session,--disable-session) \ $(if $(CONFIG_SQLITE3_THREADSAFE),--enable-threadsafe,--disable-threadsafe) +ifeq ($(CONFIG_SQLITE3_LIBEDIT),y) +CONFIGURE_ARGS+=--disable-readline +else ifeq ($(CONFIG_SQLITE3_READLINE),y) +CONFIGURE_ARGS+=--disable-editline +else +CONFIGURE_ARGS+=--disable-editline --disable-readline +endif + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_INSTALL_DIR)/usr/include/sqlite3{,ext}.h $(1)/usr/include/ From a34c27d9a454a8e2a7901e83d3ee19cbc2e21ce4 Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Sun, 30 Dec 2018 13:37:30 +0100 Subject: [PATCH 3/3] sqlite3: small improvements This commit: - adds support for parallel builds (the possibilities of building parts of sqlite3 in parellel are limited, but there is no downside) - adds a CVE/CPE ID - Removes useless "=1" from -D[EFINES] - Adds --disable-debug (default anyway, just makes it explicit), put --disable-static-shell up top to sort the list alphabetically - Saves one INSTALL_DIR line in the end Signed-off-by: Sebastian Kemper --- libs/sqlite3/Makefile | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libs/sqlite3/Makefile b/libs/sqlite3/Makefile index 21cd04f4a..6bdabb585 100644 --- a/libs/sqlite3/Makefile +++ b/libs/sqlite3/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sqlite PKG_VERSION:=3260000 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz PKG_HASH:=5daa6a3fb7d1e8c767cd59c4ded8da6e4b00c61d3b466d0685e35c4dd6d7bf5d @@ -20,6 +20,10 @@ PKG_LICENSE_FILES:= PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-autoconf-$(PKG_VERSION) +PKG_BUILD_PARALLEL:=1 + +PKG_CPE_ID:=cpe:/a:sqlite:sqlite + PKG_FIXUP:=autoreconf PKG_INSTALL:=1 @@ -92,14 +96,15 @@ define Package/sqlite3-cli/config endef TARGET_CFLAGS += \ - -DHAVE_ISNAN=1 \ - -DHAVE_MALLOC_USABLE_SIZE=1 \ - -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 + -DHAVE_ISNAN \ + -DHAVE_MALLOC_USABLE_SIZE \ + -DSQLITE_ENABLE_UNLOCK_NOTIFY CONFIGURE_ARGS += \ + --disable-debug \ + --disable-static-shell \ --enable-shared \ --enable-static \ - --disable-static-shell \ $(if $(CONFIG_SQLITE3_DYNAMIC_EXTENSIONS),--enable-dynamic-extensions,--disable-dynamic-extensions) \ $(if $(CONFIG_SQLITE3_FTS3),--enable-fts3,--disable-fts3) \ $(if $(CONFIG_SQLITE3_FTS3),--enable-fts4,--disable-fts4) \ @@ -119,10 +124,9 @@ endif define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/sqlite3{,ext}.h $(1)/usr/include/ - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsqlite3.{a,so*} $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/include/sqlite3{,ext}.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsqlite3.{a,so*} $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/sqlite3.pc $(1)/usr/lib/pkgconfig/ endef