Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 343213 - 4store-1.0.4 (new package)
Summary: 4store-1.0.4 (new package)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Default Assignee for New Packages
URL: http://4store.org/
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-29 07:05 UTC by Guido Jäkel
Modified: 2013-02-01 07:47 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
4store V1.0.4 ebuild (4store-1.0.4.ebuild,1.57 KB, text/plain)
2010-11-10 08:27 UTC, Guido Jäkel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guido Jäkel 2010-10-29 07:05:51 UTC
"4store is an efficient, scalable and stable RDF database."

This is a first, rough version of a ebuild. In addition, it's *my* first ebuild from the scratch. For me, it do the job on ~amd for compiling and installing.

The upstream Makefiles are told to have poor quality; i have to apply brutal-force patching to have it installed to /usr instead of /usr/local.

ToDo: All related to the rc-scripting, i.e. files for init.d/ and conf.d/. This will not be straight-forward, because 4store consists of modules coupled by use of TCP/IP. Therefore, there are different operating models to run the software.

There are
* two tiers (db-backend and http/sparql-frontend), with *may* (but must no) run on different machines 
* a cluster mode for the backend to distribute the database to different machines.
* the possibility to use multiple instances to server more than one datastore. Because this will be a obvious requirement, this should be supported by the rc-scripts, maybe in an analogous way like "net" or "stunnel" by using a couple of files named conf.d/4store[.db-name].
Comment 1 Guido Jäkel 2010-11-10 08:27:44 UTC
Created attachment 253855 [details]
4store V1.0.4 ebuild

I've had communication with upstream. They know about poor quality of configure and Make files and announce to work on it next time. As this may take an unknown time, i upload my ebuild althrough.
Comment 2 Guido Jäkel 2010-11-10 08:42:26 UTC
From my first test with 4store i've learned that you need "cluster support" -- i.e. the use of a mDNS provider like avahi -- event if you want to use more than one database locally.

I'm not happy with this, i would like to see "zero-conf" to be a real option. And i'll try to contribute on upstream to either enhance the fallback mechanisms or provide manual configuration mechanisms.


I figured out that for the cluster mode you have to DEPEND on  net-dns/avahi , with will depend on  sys-apps/dbus . For usage with 4store, you don't have to configure anything on this but just to start it before the 4store backends.
Comment 3 Patrick Lauer gentoo-dev 2012-05-30 07:24:36 UTC
Tried to get to the newest current version, seems to depend on old raptor version:

/bin/sh ../../libtool --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -Wall -g -std=gnu99 -O2 -I.. -DGIT_REV="\"v1.1.4\"" -I/usr/include/raptor2   -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include    -O2 -pipe -lz -lraptor2   -lglib-2.0    -Wl,-O1 -Wl,--as-needed -o 4s-backend server.o backend.o import-backend.o query-backend.o timing.o lib4storage.a ../common/lib4sintl.a  -lpcre -lreadline -lncurses -lm 
libtool: link: x86_64-pc-linux-gnu-gcc -Wall -g -std=gnu99 -O2 -I.. -DGIT_REV=\"v1.1.4\" -I/usr/include/raptor2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -pipe -Wl,-O1 -Wl,--as-needed -o 4s-backend server.o backend.o import-backend.o query-backend.o timing.o  -lz -lraptor2 -lglib-2.0 lib4storage.a ../common/lib4sintl.a -lpcre -lreadline -lncurses -lm
lib4storage.a(rhash.o): In function `get_entry':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/rhash.c:674: undefined reference to `uncompress'
lib4storage.a(rhash.o): In function `fs_rhash_put':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/rhash.c:430: undefined reference to `compress'
lib4storage.a(metadata.o): In function `fs_metadata_open':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:78: undefined reference to `raptor_new_world_internal'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:84: undefined reference to `raptor_new_parser'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:85: undefined reference to `raptor_parser_set_statement_handler'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:87: undefined reference to `raptor_new_uri'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:88: undefined reference to `raptor_new_uri'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:90: undefined reference to `raptor_parser_parse_uri'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:95: undefined reference to `raptor_free_parser'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:96: undefined reference to `raptor_free_uri'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:97: undefined reference to `raptor_free_uri'
lib4storage.a(metadata.o): In function `parse_stmt':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:51: undefined reference to `raptor_uri_as_string'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:56: undefined reference to `raptor_uri_as_string'
lib4storage.a(metadata.o): In function `fs_metadata_flush':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:225: undefined reference to `raptor_new_serializer'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:231: undefined reference to `raptor_serializer_start_to_filename'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:235: undefined reference to `raptor_new_term_from_uri_string'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:236: undefined reference to `raptor_new_term_from_uri_string'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:237: undefined reference to `raptor_new_term_from_literal'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:239: undefined reference to `raptor_serializer_serialize_statement'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:240: undefined reference to `raptor_free_term'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:241: undefined reference to `raptor_free_term'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:242: undefined reference to `raptor_free_term'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:245: undefined reference to `raptor_serializer_serialize_end'
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:246: undefined reference to `raptor_free_serializer'
lib4storage.a(metadata.o): In function `fs_metadata_close':
/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend/metadata.c:261: undefined reference to `raptor_free_world'
collect2: ld returned 1 exit status
make[3]: *** [4s-backend] Error 1
make[3]: Leaving directory `/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src/backend'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/dev-db/4store-1.1.4/work/4store-v1.1.4'
make: *** [all] Error 2
emake failed
 * ERROR: dev-db/4store-1.1.4 failed (compile phase):

So sad ;)
Comment 4 Guido Jäkel 2012-05-30 11:02:13 UTC
Dear Patrick,

Yes, i've build the 4store 1.0.4 @20101110 using media-libs/raptor-1.4.20, which isn't in the portage tree anymore.

From the raptor homepage i see that's a major change in the API between 1.4 and 2. Therefore i ask myself why this wasn't made slotted and the last 1.4 have been preserved.

Maybe you can setup an raptor-1.4.21 ebuild, there's a source at http://download.librdf.org/source/raptor-1.4.21.tar.gz

In addition, we shoud try to point the 4store developers on the raptor2-upgrate-howto (http://librdf.org/raptor/UPGRADING.html)

greetings

Guido
Comment 5 Patrick Lauer gentoo-dev 2013-02-01 03:34:34 UTC
+  01 Feb 2013; Patrick Lauer <patrick@gentoo.org> +4store-1.1.5.ebuild,
+  +metadata.xml:
+  Initial commit, ebuild based on #343213 by Guido Jaekel

This one works, all it needs now to make me happy is an init script to autostart the relevant components.
Comment 6 Guido Jäkel 2013-02-01 07:47:11 UTC
Dear Patrick,

as stated in #1, it will need some conceptual planning before writing down the init scripts, because one may run more than one backend engine (to get N databases). In addition it offers a cluster feature. And the frontend for each database also may run on a different host. The last is because the interconnection is made by mDNS (avahi).

For my former test, i have used a simple hard-wired start script:

    4s-backend foo
    4s-backend bar
    4s-httpd -dUs -1  foo  -p 8888
    4s-httpd -dUs -1  bar  -p 8889


Unfortunately from the Gentoo point of view, my installation was just for evaluation purposes but the related software project is currently on hold. I may continue here, if this changes. Or if somebody cry out for support here ;)