public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITA] db
@ 2024-02-20 10:42 Takashi Yano
  2024-02-20 14:22 ` Takashi Yano
  0 siblings, 1 reply; 2+ messages in thread
From: Takashi Yano @ 2024-02-20 10:42 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 79 bytes --]

I would like to adopt db package.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

[-- Attachment #2: 5.3-tcl.patch --]
[-- Type: text/plain, Size: 474 bytes --]

--- origsrc/db-5.3.21/dist/aclocal/tcl.m4	2012-05-11 12:57:48.000000000 -0500
+++ src/db-5.3.21/dist/aclocal/tcl.m4	2013-03-08 00:21:33.268494500 -0600
@@ -107,7 +107,7 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [
 	# given by the Tcl spec are insufficient for our use.  [#5779],[#17109]
 	#
 	case "$host_os" in
-	aix*)
+	aix*|cygwin*)
 		LIBTSO_LIBS="$LIBTSO_LIBS $TCL_LIB_SPEC $TCL_LIB_FLAG"
 		LIBTSO_LIBS="$LIBTSO_LIBS -L$TCL_EXEC_PREFIX/lib -ltcl$TCL_VERSION";;
 	esac

[-- Attachment #3: 18.1.40-doc.patch --]
[-- Type: text/plain, Size: 602 bytes --]

--- origsrc/db-18.1.40/dist/Makefile.in	2020-05-30 02:58:22.000000000 +0900
+++ src/db-18.1.40/dist/Makefile.in	2024-02-20 15:53:03.023929400 +0900
@@ -1299,8 +1299,8 @@ uninstall_utilities:
 
 # We install csharp docs even on UNIX so we don't have a 
 # broken link on the landing page.
-DOCLIST=api_reference articles bdb-sql collections csharp gsg \
-	gsg_db_rep gsg_db_server gsg_txn index.html installation \
+DOCLIST=api_reference articles collections csharp gsg \
+	gsg_db_rep gsg_txn index.html installation \
 	java license porting programmer_reference upgrading
 
 install_docs:

[-- Attachment #4: db.cygport --]
[-- Type: text/plain, Size: 2877 bytes --]

inherit tcl

NAME="db"
VERSION=18.1.40
RELEASE=1
LICENSE="AGPL-3.0-only"
CATEGORY="Database"
SUMMARY="Oracle Berkeley DB"
DESCRIPTION="Oracle Berkeley DB is the industry-leading open source, embeddable
database engine that provides developers with fast, reliable, local persistence
with zero administration. Oracle Berkeley DB is a library that links directly
into your application. Your application makes simple function calls, rather
than sending messages to a remote server, eliminating the performance penalty
of client-server architectures."
HOMEPAGE="https://www.oracle.com/database/technologies/related/berkeleydb.html"
SRC_URI="http://download.oracle.com/otn/berkeley-db/db-${VERSION}.tar.gz"
PATCH_URI="5.3-tcl.patch 18.1.40-doc.patch"

PKG_NAMES="db libdb18.1 libdb-devel db-doc tcl-db" # java-db
db_CONTENTS="--exclude=html usr/bin/db*.exe usr/share/doc/"
libdb18_1_CONTENTS="--exclude=*java* usr/bin/*-18.1.dll"
libdb_devel_CONTENTS="usr/include/ usr/lib/lib*"
db_doc_CONTENTS="usr/share/doc/${NAME}/html/"
java_db_CONTENTS="usr/bin/cygdb_java-*.dll ${JAVA_DIR#/}/db.jar"
tcl_db_CONTENTS="${TCL_LIBDIR#/}/"

DIFF_EXCLUDES="config.* configure db.jar install-sh ltmain.sh libtool.m4 lt*.m4"

src_compile() {
	local slot=${PV[1]}.${PV[2]}

	check_prog_req libtoolize libtool

	cd ${S}/dist

	ac_macrodir=aclocal libtoolize --copy --force --install || error "berkdb: libtoolize failed"
	./s_config || error "s_config failed"

	cd ${B}
	CFLAGS="$CFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1"
	CYGCONF_SOURCE=${S}/dist \
	cygconf \
		--with-mutex=${ARCH_i686+x86}${ARCH_x86_64+x86_64}/gcc-assembly \
		--enable-compat185 \
		--enable-cxx \
		--enable-dynamic \
		--disable-java \
		--enable-tcl \
		--enable-test

	cygmake libdb-${slot}.la
	cygmake C_OBJS="libdb-${slot}.la"
}

src_test() {
	cd ${B}
	PATH=${B}/.libs:$PATH ${TCLSH} <<-_EOF
	load [file join ${B}/.libs cygdb_tcl-${PV[1]}.${PV[2]}.dll]
	source ${S}/test/tcl/test.tcl
	log001
	test001 btree
	run_test test001
	_EOF
# Use this target for running standard tests (takes very long)
# run_std
# Use this target for running ALL tests (takes even longer)
# run_all
}

src_install() {
	local slot=${PV[1]}.${PV[2]}

	cd ${B}
	cyginstall docdir=/usr/share/doc/${NAME}/html emode=755 fmode=644

	# these implibs aren't needed
	rm -f ${D}/usr/lib/libdb{_cxx,}.a
	rm -f ${D}/usr/lib/libdb_tcl-${slot}.*

	# relocate and install Tcl module
	dodir ${TCL_LIBDIR}/db${slot}
	mv ${D}/usr/lib/cygdb_tcl-${slot}.dll ${D}${TCL_LIBDIR}/db${slot}/
	echo pkg_mkIndex ${D}${TCL_LIBDIR}/db${slot} cygdb_tcl-${slot}.dll | PATH=${D}/usr/bin:$PATH ${TCLSH}
	sed -i -e "s#${D}##g" ${D}${TCL_LIBDIR}/db${slot}/pkgIndex.tcl
}

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ITA] db
  2024-02-20 10:42 [ITA] db Takashi Yano
@ 2024-02-20 14:22 ` Takashi Yano
  0 siblings, 0 replies; 2+ messages in thread
From: Takashi Yano @ 2024-02-20 14:22 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

On Tue, 20 Feb 2024 19:42:14 +0900
Takashi Yano via Cygwin-apps <cygwin-apps@cygwin.com> wrote:
> I would like to adopt db package.

cygport file has been revised.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

[-- Attachment #2: 5.3-tcl.patch --]
[-- Type: text/plain, Size: 474 bytes --]

--- origsrc/db-5.3.21/dist/aclocal/tcl.m4	2012-05-11 12:57:48.000000000 -0500
+++ src/db-5.3.21/dist/aclocal/tcl.m4	2013-03-08 00:21:33.268494500 -0600
@@ -107,7 +107,7 @@ AC_DEFUN(SC_LOAD_TCLCONFIG, [
 	# given by the Tcl spec are insufficient for our use.  [#5779],[#17109]
 	#
 	case "$host_os" in
-	aix*)
+	aix*|cygwin*)
 		LIBTSO_LIBS="$LIBTSO_LIBS $TCL_LIB_SPEC $TCL_LIB_FLAG"
 		LIBTSO_LIBS="$LIBTSO_LIBS -L$TCL_EXEC_PREFIX/lib -ltcl$TCL_VERSION";;
 	esac

[-- Attachment #3: 18.1.40-doc.patch --]
[-- Type: text/plain, Size: 602 bytes --]

--- origsrc/db-18.1.40/dist/Makefile.in	2020-05-30 02:58:22.000000000 +0900
+++ src/db-18.1.40/dist/Makefile.in	2024-02-20 15:53:03.023929400 +0900
@@ -1299,8 +1299,8 @@ uninstall_utilities:
 
 # We install csharp docs even on UNIX so we don't have a 
 # broken link on the landing page.
-DOCLIST=api_reference articles bdb-sql collections csharp gsg \
-	gsg_db_rep gsg_db_server gsg_txn index.html installation \
+DOCLIST=api_reference articles collections csharp gsg \
+	gsg_db_rep gsg_txn index.html installation \
 	java license porting programmer_reference upgrading
 
 install_docs:

[-- Attachment #4: db.cygport --]
[-- Type: text/plain, Size: 3026 bytes --]

inherit tcl

NAME="db"
VERSION=18.1.40
RELEASE=1
LICENSE="AGPL-3.0-only"
CATEGORY="Database"
SUMMARY="Oracle Berkeley DB"
DESCRIPTION="Oracle Berkeley DB is the industry-leading open source, embeddable
database engine that provides developers with fast, reliable, local persistence
with zero administration. Oracle Berkeley DB is a library that links directly
into your application. Your application makes simple function calls, rather
than sending messages to a remote server, eliminating the performance penalty
of client-server architectures."
HOMEPAGE="https://www.oracle.com/database/technologies/related/berkeleydb.html"
SRC_URI="http://download.oracle.com/otn/berkeley-db/db-${VERSION}.tar.gz"
PATCH_URI="5.3-tcl.patch 18.1.40-doc.patch"

PKG_NAMES="db libdb18.1 libdb-devel db-doc tcl-db" # java-db
db_CONTENTS="--exclude=html usr/bin/db*.exe usr/share/doc/"
libdb18_1_CONTENTS="--exclude=*java* usr/bin/*-18.1.dll"
libdb_devel_CONTENTS="usr/include/ usr/lib/lib*"
db_doc_CONTENTS="usr/share/doc/${NAME}/html/"
java_db_CONTENTS="usr/bin/cygdb_java-*.dll ${JAVA_DIR#/}/db.jar"
tcl_db_CONTENTS="${TCL_LIBDIR#/}/"

DIFF_EXCLUDES="config.* configure db.jar install-sh ltmain.sh libtool.m4 lt*.m4"

src_compile() {
	local slot=${PV[1]}.${PV[2]}

	check_prog_req libtoolize libtool

	cd ${S}/dist

	ac_macrodir=aclocal libtoolize --copy --force --install || error "berkdb: libtoolize failed"
	./s_config || error "s_config failed"

	cd ${B}
	CFLAGS="$CFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1"
	CYGCONF_SOURCE=${S}/dist \
	cygconf \
		--with-mutex=${ARCH_i686+x86}${ARCH_x86_64+x86_64}/gcc-assembly \
		--enable-compat185 \
		--enable-cxx \
		--enable-dynamic \
		--disable-java \
		--enable-tcl \
		--enable-test

	cygmake libdb-${slot}.la
	cygmake C_OBJS="libdb-${slot}.la"
}

src_test() {
	cd ${B}
	PATH=${B}/.libs:$PATH ${TCLSH} <<-_EOF
	load [file join ${B}/.libs cygdb_tcl-${PV[1]}.${PV[2]}.dll]
	source ${S}/test/tcl/test.tcl
	log001
	test001 btree
	run_test test001
	_EOF
# Use this target for running standard tests (takes very long)
# run_std
# Use this target for running ALL tests (takes even longer)
# run_all
}

src_install() {
	local slot=${PV[1]}.${PV[2]}

	cd ${B}
	cyginstall docdir=/usr/share/doc/${NAME}/html emode=755 fmode=644

	# replace unslotted libs with symlinks
	rm -f ${D}/usr/lib/libdb{_cxx,}.a
	dosym libdb-${slot}.dll.a /usr/lib/libdb.dll.a
	dosym libdb_cxx-${slot}.dll.a /usr/lib/libdb_cxx.dll.a

	# these implibs aren't needed
	rm -f ${D}/usr/lib/libdb_tcl-${slot}.*

	# relocate and install Tcl module
	dodir ${TCL_LIBDIR}/db${slot}
	mv ${D}/usr/lib/cygdb_tcl-${slot}.dll ${D}${TCL_LIBDIR}/db${slot}/
	echo pkg_mkIndex ${D}${TCL_LIBDIR}/db${slot} cygdb_tcl-${slot}.dll | PATH=${D}/usr/bin:$PATH ${TCLSH}
	sed -i -e "s#${D}##g" ${D}${TCL_LIBDIR}/db${slot}/pkgIndex.tcl
}

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-02-20 14:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-20 10:42 [ITA] db Takashi Yano
2024-02-20 14:22 ` Takashi Yano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).