Try this.

I changed the logic which avoids building the sqlite3 shell.  Something
about the way it uses libtool made the old `touch`-based method fail.
There's also a bunch of configuration notes that really ought to be more
visible.

On Thu, Apr 2, 2020 at 2:26 PM Joel Sherrill <j...@rtems.org> wrote:

>
>
> On Thu, Apr 2, 2020 at 3:00 PM Gedare Bloom <ged...@rtems.org> wrote:
>
>> On Thu, Apr 2, 2020 at 1:57 PM Jonathan Brandmeyer
>> <jbrandme...@planetiq.com> wrote:
>> >
>> >
>> > On Thu, Apr 2, 2020 at 1:43 PM Joel Sherrill <j...@rtems.org> wrote:
>> >>
>> >> Thank you for the detailed feedback.
>> >>
>> >> I am torn between:
>> >>
>> >> + deleting sqlite from the BSP bset's
>> >> + requiring tclsh to be installed
>> >> + updating the RSB recipe for sqlite.
>> >>
>> >> Given the desire to get a release out the door. I am prone to the first
>> >> option with a ticket for 5.2 to update sqlite and re-add it to the BSP
>> >> bsets.
>> >
>> >
>> > I can see where you're coming from.  That said, even having an obsolete
>> bset in the RSB served as a helpful hint that it worked for someone once
>> upon a time.
>> >
>> >>
>> >>
>> >> Since you obviously use sqlite, if you could tackle updating the RSB
>> >> recipe, that would be great and avoid having to do something expedient
>> >> to get the release out the door.
>> >
>> >
>> >  I can make a pass at it.  What's the quickest way to iterate on a
>> BSET's rules?  I'd rather not have to wait on GCC and crew to rebuild when
>> I get it wrong the first time.
>> >
>> Use --dry-run option
>>
>
> This is good to watch the commands quickly.  But you can just explicitly
> build the one package.
>
> $ cd rtems
> $ ../source-builder/sb-set-builder \
>      --log=l-sqlite.txt \
>      --prefix=XXXX \
>       databases/sqlite
>
> Should be very close to working. I hacked my command for dtc so there may
> be a typo.
>
> This should take seconds.
>
> It is interesting that you didn't know you can build a single package
> or --dry-run. No foul to you. Just points out that we aren't letting the
> community know the cool things the RSB can do.
>
> I use the source download only option to get people to download things
> for the tools before they come to the Kick Start class. If they have
> network
> issues, can't fetch git, no admin, etc. then they can deal with those with
> their IT. I can't help with someone's draconian policies. :)
>
>
>>
>> >>
>> >> Chris will eventually wake up in Sydney and chime in. :)
>> >>
>> >
>> >
>> > --
>> > Jonathan Brandmeyer
>> > _______________________________________________
>> > devel mailing list
>> > devel@rtems.org
>> > http://lists.rtems.org/mailman/listinfo/devel
>>
>

-- 
Jonathan Brandmeyer
Vice President of Software Engineering
PlanetiQ
From 45c727a780a3f52815ba3fc2c7d82fdf0eed273c Mon Sep 17 00:00:00 2001
From: Jonathan Brandmeyer <jbrandme...@planetiq.com>
Date: Thu, 2 Apr 2020 16:35:15 -0600
Subject: [PATCH] databases/sqlite: Update to 3.31.1

---
 rtems/config/databases/sqlite-3.31.1-1.cfg  | 23 +++++++++++
 rtems/config/databases/sqlite-3.8.8.1-1.cfg | 27 -------------
 rtems/config/databases/sqlite.bset          |  2 +-
 source-builder/config/sqlite-3-1.cfg        | 44 ++++++++++++---------
 4 files changed, 49 insertions(+), 47 deletions(-)
 create mode 100644 rtems/config/databases/sqlite-3.31.1-1.cfg
 delete mode 100644 rtems/config/databases/sqlite-3.8.8.1-1.cfg

diff --git a/rtems/config/databases/sqlite-3.31.1-1.cfg b/rtems/config/databases/sqlite-3.31.1-1.cfg
new file mode 100644
index 0000000..cd2b5ef
--- /dev/null
+++ b/rtems/config/databases/sqlite-3.31.1-1.cfg
@@ -0,0 +1,23 @@
+#
+# Sqlite 3.31.1
+#
+
+%if %{release} == %{nil}
+ %define release 1
+%endif
+
+%include %{_configdir}/rtems-bsp.cfg
+
+#
+# Sqlite Version.
+#
+%define sqlite_version     3.31.1
+%define sqlite_src_version 3310100
+%define sqlite_src_year    2020
+
+%hash sha512 sqlite-autoconf-%{sqlite_src_version}.tar.gz d85250ba5f78f0c918880f663741709aba662192f04888b2324a0df17affdf5b8540e8428c6c7315119806e7adad758ea281c9b403c0ad94ac6a9bd1b93fd617
+
+#
+# Sqlite configuration
+#
+%include %{_configdir}/sqlite-3-1.cfg
diff --git a/rtems/config/databases/sqlite-3.8.8.1-1.cfg b/rtems/config/databases/sqlite-3.8.8.1-1.cfg
deleted file mode 100644
index aac06be..0000000
--- a/rtems/config/databases/sqlite-3.8.8.1-1.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Sqlite 3.8.8.1
-#
-
-%if %{release} == %{nil}
- %define release 1
-%endif
-
-%include %{_configdir}/rtems-bsp.cfg
-
-#
-# Sqlite Version.
-#
-# Sqlite uses a different version number label in source to the
-# actual version number. I suppose this is related to Windows.
-#
-#
-%define sqlite_version     3.8.8.1
-%define sqlite_src_version 3080801
-%define sqlite_src_year    2015
-
-%hash sha512 sqlite-src-%{sqlite_src_version}.zip 4f09228cb0c9c608e492da6e480afe3d27a63e27ccdcf33a88d5e56427f0846efab8930c81026b8e608f1bbb8d63e8d937dd26571deb828617f7efa27a765950
-
-#
-# Sqlite configuration
-#
-%include %{_configdir}/sqlite-3-1.cfg
diff --git a/rtems/config/databases/sqlite.bset b/rtems/config/databases/sqlite.bset
index f7c97b6..9f84f5d 100644
--- a/rtems/config/databases/sqlite.bset
+++ b/rtems/config/databases/sqlite.bset
@@ -12,4 +12,4 @@
 #
 # Build Sqlite
 #
-databases/sqlite-3.8.8.1-1
+databases/sqlite-3.31.1-1
diff --git a/source-builder/config/sqlite-3-1.cfg b/source-builder/config/sqlite-3-1.cfg
index 07699fd..d7ba101 100644
--- a/source-builder/config/sqlite-3-1.cfg
+++ b/source-builder/config/sqlite-3-1.cfg
@@ -11,15 +11,15 @@
 Name:      sqlite-%{sqlite_version}-%{_host}-%{release}
 Summary:   SQLite is an in-process library that implements a
            self-contained, serverless, zero-configuration,
-	   transactional SQL database engine.
+           transactional SQL database engine.
 Version:   %{sqlite_version}
 Release:   %{release}
-URL: 	   http://www.sqlite.org/
+URL:       http://www.sqlite.org/
 
 #
 # Sqlite Source
 #
-%source set sqlite http://www.sqlite.org/%{sqlite_src_year}/sqlite-src-%{sqlite_src_version}.zip
+%source set sqlite http://www.sqlite.org/%{sqlite_src_year}/sqlite-autoconf-%{sqlite_src_version}.tar.gz
 
 #
 # Prepare the source code.
@@ -27,8 +27,8 @@ URL: 	   http://www.sqlite.org/
 %prep
   build_top=$(pwd)
 
-  source_dir_sqlite="sqlite-src-%{sqlite_src_version}"
-  %source setup sqlite -q -n sqlite-src-%{sqlite_src_version}
+  source_dir_sqlite="sqlite-autoconf-%{sqlite_src_version}"
+  %source setup sqlite -q -n sqlite-autoconf-%{sqlite_src_version}
   %patch setup sqlite -p1
 
   cd ${build_top}
@@ -43,7 +43,21 @@ URL: 	   http://www.sqlite.org/
 
   %{host_build_flags}
 
-  CFLAGS="${CFLAGS} -DSQLITE_OMIT_WAL=1 -DSQLITE_ENABLE_COLUMN_METADATA=1"
+  # RTEMS-specific SQLite configuration options.
+  # See also
+  # - https://sqlite.org/wal.html#noshm
+  # - https://sqlite.org/malloc.html
+  #
+  # Many other compile-time options may be passed in via CFLAGS.
+  #   See also https://sqlite.org/compile.html
+  #
+  # RTEMS filesystems do not support POSIX advisory file locks.  Applications
+  # must choose an appropriate SQLite VFS which avoids them, such as unix-none
+  # (no locking at all: Application logic must avoid collisions) or
+  # unix-dotfile.  This step must be performed at application startup time.
+  #   See also https://sqlite.org/c3ref/vfs_find.html
+  #
+  CFLAGS="${CFLAGS} -DSQLITE_MAX_MMAP_SIZE=0 -DSQLITE_DEFAULT_LOCKING_MODE=1 -DSQLITE_ENABLE_MEMSYS5"
 
   ../${source_dir_sqlite}/configure \
     --host=%{_host} \
@@ -57,17 +71,10 @@ URL: 	   http://www.sqlite.org/
     --infodir=%{_infodir} \
     --datadir=%{_datadir} \
     --disable-largefile \
-    --disable-tcl \
-    --disable-readline \
-    --disable-amalgamation
+    --disable-readline
 
   %{__make} %{?_smp_mflags} sqlite3.h libsqlite3.la
 
-  #
-  # Create the sqlite shell executable so the install works.
-  #
-  touch sqlite3
-
   cd ${build_top}
 
 %install
@@ -76,10 +83,9 @@ URL: 	   http://www.sqlite.org/
   %{__rmdir} $SB_BUILD_ROOT
 
   cd ${build_dir}
-  %{__make} DESTDIR=$SB_BUILD_ROOT install
+  # Warning: The unusual install targets avoid attempting to compile and link
+  # the SQLite3 command-line shell.  The SQLite3 shell is not supported by
+  # RTEMS.
+  %{__make} DESTDIR=$SB_BUILD_ROOT install-data install-libLTLIBRARIES
   cd ${build_top}
 
-  #
-  # Remove the sqlite shell as it is just a touch.
-  #
-  %{__rm} $SB_BUILD_ROOT%{_bindir}/sqlite3
-- 
2.20.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to