GNU bug report logs -
#26308
[PATCH -v2] services: dict.scm: Support more dicod configuration
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26308 in the body.
You can then email your comments to 26308 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#26308
; Package
guix-patches
.
(Thu, 30 Mar 2017 11:15:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Huang Ying <huang.ying.caritas <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Thu, 30 Mar 2017 11:15:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/services/dict.scm (<dicod-configuration>): Add handlers to configure
handlers (module instances).
(<dicod-handler>): Add new record type to describe handler (module instance).
(<dicod-database>): Add more fields.
(dicod-configuration-file): Support convert handlers and enhanced databases
configuration to config file.
* doc/guix.text: Add description of newly added dicod configuration.
---
doc/guix.texi | 57 ++++++++++++++++++++++++++++++++++++++++++++++-----
gnu/services/dict.scm | 52 ++++++++++++++++++++++++++++++++++++++--------
2 files changed, 96 insertions(+), 13 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 57595b95e..f1a063581 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14370,25 +14370,49 @@ This is the list of IP addresses and ports and possibly socket file
names to listen to (@pxref{Server Settings, @code{listen} directive,,
dico, GNU Dico Manual}).
+@item @code{handlers} (default: @var{'()})
+List of @code{<dicod-handler>} objects denoting handlers (module instances).
+
@item @code{databases} (default: @var{(list %dicod-database:gcide)})
List of @code{<dicod-database>} objects denoting dictionaries to be served.
@end table
@end deftp
-@deftp {Data Type} dicod-database
-Data type representing a dictionary database.
+@deftp {Data Type} dicod-handler
+Data type representing a dictionary handler (module instance).
@table @asis
@item @code{name}
-Name of the database, will be used in DICT commands.
+Name of the handler (module instance).
-@item @code{module}
-Name of the dicod module used by this database
+@item @code{module} (default: @var{#f})
+Name of the dicod module of the handler (instance). If it is @code{#f},
+the module has the same name as the handler.
(@pxref{Modules,,, dico, GNU Dico Manual}).
@item @code{options}
List of strings or gexps representing the arguments for the module handler
+@end table
+@end deftp
+
+@deftp {Data Type} dicod-database
+Data type representing a dictionary database.
+
+@table @asis
+@item @code{name}
+Name of the database, will be used in DICT commands.
+
+@item @code{handler}
+Name of the dicod handler (module instance) used by this database
(@pxref{Handlers,,, dico, GNU Dico Manual}).
+
+@item @code{complex} (default: @var{#f})
+Whether the database configuration complex. The complex configuration
+will need a corresponding @code{<dicod-handler>} object, otherwise not.
+
+@item @code{options}
+List of strings or gexps representing the arguments for the database
+(@pxref{Databases,,, dico, GNU Dico Manual}).
@end table
@end deftp
@@ -14397,6 +14421,29 @@ A @code{<dicod-database>} object serving the GNU Collaborative International
Dictonary of English using the @code{gcide} package.
@end defvr
+The following is an example @code{dicod-service} configuration.
+
+@example
+(dicod-service #:config
+ (dicod-configuration
+ (handlers
+ (list
+ (dicod-handler
+ (name "wordnet")
+ (module "dictorg")
+ (options
+ '("dbdir=/gnu/store/xxxx-wordnet")))))
+ (databases
+ (list
+ (dicod-database
+ (name "wordnet")
+ (complex #t)
+ (handler "wordnet")
+ (options
+ '("database=wn")))
+ %dicod-database:gcide))))
+@end example
+
@subsubsection Version Control
The @code{(gnu services version-control)} module provides the following services:
diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm
index 303067037..596f901f3 100644
--- a/gnu/services/dict.scm
+++ b/gnu/services/dict.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Sou Bunnbu <iyzsong <at> gmail.com>
;;; Copyright © 2016 Ludovic Courtès <ludo <at> gnu.org>
+;;; Copyright © 2017 Huang Ying <huang.ying.caritas <at> gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,7 @@
#:export (dicod-service
dicod-service-type
dicod-configuration
+ dicod-handler
dicod-database
%dicod-database:gcide))
@@ -46,21 +48,30 @@
(dico dicod-configuration-dico (default dico))
(interfaces dicod-configuration-interfaces ;list of strings
(default '("localhost")))
- (databases dicod-configuration-databases
- ;; list of <dicod-database>
+ (handlers dicod-configuration-handlers ;list of <dicod-handler>
+ (default '()))
+ (databases dicod-configuration-databases ;list of <dicod-database>
(default (list %dicod-database:gcide))))
+(define-record-type* <dicod-handler>
+ dicod-handler make-dicod-handler
+ dicod-handler?
+ (name dicod-handler-name)
+ (module dicod-handler-module (default #f))
+ (options dicod-handler-options (default '())))
+
(define-record-type* <dicod-database>
dicod-database make-dicod-database
dicod-database?
(name dicod-database-name)
- (module dicod-database-module)
+ (handler dicod-database-handler)
+ (complex dicod-database-complex (default #f))
(options dicod-database-options (default '())))
(define %dicod-database:gcide
(dicod-database
(name "gcide")
- (module "gcide")
+ (handler "gcide")
(options (list #~(string-append "dbdir=" #$gcide "/share/gcide")
"idxdir=/var/run/dicod"))))
@@ -76,22 +87,47 @@
(shell (file-append shadow "/sbin/nologin")))))
(define (dicod-configuration-file config)
+ (define handler->text
+ (match-lambda
+ (($ <dicod-handler> name #f '())
+ `("
+load-module " ,name ";"))
+ (($ <dicod-handler> name #f options)
+ (handler->text (dicod-handler
+ (name name)
+ (module name)
+ (options options))))
+ (($ <dicod-handler> name module options)
+ `("
+load-module " ,name " {
+ command \"" ,module (string-join (list ,@options) " " 'prefix) "\";
+}\n"))))
+
(define database->text
(match-lambda
- (($ <dicod-database> name module options)
+ (($ <dicod-database> name handler #f options)
+ (append
+ (handler->text (dicod-handler
+ (name handler)))
+ (database->text (dicod-database
+ (name name)
+ (handler handler)
+ (complex #t)
+ (options options)))))
+ (($ <dicod-database> name handler complex options)
`("
-load-module " ,module ";
database {
name \"" ,name "\";
- handler \"" ,module
+ handler \"" ,handler
(string-join (list ,@options) " " 'prefix) "\";
}\n"))))
(define configuration->text
(match-lambda
- (($ <dicod-configuration> dico (interfaces ...) databases)
+ (($ <dicod-configuration> dico (interfaces ...) handlers databases)
(append `("listen ("
,(string-join interfaces ", ") ");\n")
+ (append-map handler->text handlers)
(append-map database->text databases)))))
(apply mixed-text-file "dicod.conf" (configuration->text config)))
--
2.12.2
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Fri, 31 Mar 2017 22:50:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Huang Ying <huang.ying.caritas <at> gmail.com>
:
bug acknowledged by developer.
(Fri, 31 Mar 2017 22:50:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 26308-done <at> debbugs.gnu.org (full text, mbox):
Hello,
Huang Ying <huang.ying.caritas <at> gmail.com> skribis:
> * gnu/services/dict.scm (<dicod-configuration>): Add handlers to configure
> handlers (module instances).
> (<dicod-handler>): Add new record type to describe handler (module instance).
> (<dicod-database>): Add more fields.
> (dicod-configuration-file): Support convert handlers and enhanced databases
> configuration to config file.
>
> * doc/guix.text: Add description of newly added dicod configuration.
I’ve committed with a few adjustments to the commit log and cosmetic
changes:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9af7ecd9591b4eff41389291bbc586dcf09e2665
> +@example
> +(dicod-service #:config
> + (dicod-configuration
> + (handlers
> + (list
> + (dicod-handler
> + (name "wordnet")
> + (module "dictorg")
> + (options
> + '("dbdir=/gnu/store/xxxx-wordnet")))))
I’ve changed this to use a real example instead of “xxx”.
> (define-record-type* <dicod-database>
> dicod-database make-dicod-database
> dicod-database?
> (name dicod-database-name)
> - (module dicod-database-module)
> + (handler dicod-database-handler)
> + (complex dicod-database-complex (default #f))
I changed that to ‘complex?’, to make it clear that it’s a Boolean.
While I was at it, I wrote a simple test for the dicod service:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb
It uses the example handler that you gave in the doc, but I think this
handler actually does nothing because WordNet does not provide data in
the dict.org format AIUI (and its data is under “/dict” anyway.) Is
that correct?
Do you have another example in mind that could use a dict.org-formatted
database?
Thank you!
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#26308
; Package
guix-patches
.
(Sat, 01 Apr 2017 16:06:05 GMT)
Full text and
rfc822 format available.
Message #13 received at 26308-done <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) writes:
> Hello,
>
> Huang Ying <huang.ying.caritas <at> gmail.com> skribis:
>
>> * gnu/services/dict.scm (<dicod-configuration>): Add handlers to configure
>> handlers (module instances).
>> (<dicod-handler>): Add new record type to describe handler (module instance).
>> (<dicod-database>): Add more fields.
>> (dicod-configuration-file): Support convert handlers and enhanced databases
>> configuration to config file.
>>
>> * doc/guix.text: Add description of newly added dicod configuration.
>
> I’ve committed with a few adjustments to the commit log and cosmetic
> changes:
>
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9af7ecd9591b4eff41389291bbc586dcf09e2665
>
>> +@example
>> +(dicod-service #:config
>> + (dicod-configuration
>> + (handlers
>> + (list
>> + (dicod-handler
>> + (name "wordnet")
>> + (module "dictorg")
>> + (options
>> + '("dbdir=/gnu/store/xxxx-wordnet")))))
>
> I’ve changed this to use a real example instead of “xxx”.
>
>> (define-record-type* <dicod-database>
>> dicod-database make-dicod-database
>> dicod-database?
>> (name dicod-database-name)
>> - (module dicod-database-module)
>> + (handler dicod-database-handler)
>> + (complex dicod-database-complex (default #f))
>
> I changed that to ‘complex?’, to make it clear that it’s a Boolean.
>
> While I was at it, I wrote a simple test for the dicod service:
>
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb
>
> It uses the example handler that you gave in the doc, but I think this
> handler actually does nothing because WordNet does not provide data in
> the dict.org format AIUI (and its data is under “/dict” anyway.) Is
> that correct?
>
> Do you have another example in mind that could use a dict.org-formatted
> database?
There are dict.org dict for wordnet and foldoc in Debian. Some
conversion tool is needed to convert the dict database file.
Best Regards,
Huang, Ying
> Thank you!
>
> Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#26308
; Package
guix-patches
.
(Sat, 01 Apr 2017 22:13:01 GMT)
Full text and
rfc822 format available.
Message #16 received at 26308-done <at> debbugs.gnu.org (full text, mbox):
Hello,
"Huang, Ying" <huang_ying_caritas <at> 163.com> skribis:
> ludo <at> gnu.org (Ludovic Courtès) writes:
[...]
>> While I was at it, I wrote a simple test for the dicod service:
>>
>> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb
>>
>> It uses the example handler that you gave in the doc, but I think this
>> handler actually does nothing because WordNet does not provide data in
>> the dict.org format AIUI (and its data is under “/dict” anyway.) Is
>> that correct?
>>
>> Do you have another example in mind that could use a dict.org-formatted
>> database?
>
> There are dict.org dict for wordnet and foldoc in Debian. Some
> conversion tool is needed to convert the dict database file.
OK. Any idea of a DICT database file that we could use as an example
and as a test?
Thanks,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#26308
; Package
guix-patches
.
(Mon, 03 Apr 2017 02:09:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 26308-done <at> debbugs.gnu.org (full text, mbox):
On Sun, Apr 2, 2017 at 6:12 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> Hello,
>
> "Huang, Ying" <huang_ying_caritas <at> 163.com> skribis:
>
>> ludo <at> gnu.org (Ludovic Courtès) writes:
>
> [...]
>
>>> While I was at it, I wrote a simple test for the dicod service:
>>>
>>> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=985a8599ed742053b52ac85f753c4feb54af93cb
>>>
>>> It uses the example handler that you gave in the doc, but I think this
>>> handler actually does nothing because WordNet does not provide data in
>>> the dict.org format AIUI (and its data is under “/dict” anyway.) Is
>>> that correct?
>>>
>>> Do you have another example in mind that could use a dict.org-formatted
>>> database?
>>
>> There are dict.org dict for wordnet and foldoc in Debian. Some
>> conversion tool is needed to convert the dict database file.
>
> OK. Any idea of a DICT database file that we could use as an example
> and as a test?
I found there is freedict database file, for example,
https://downloads.sourceforge.net/project/freedict/English%20-%20French/0.1.4/freedict-eng-fra-0.1.4.tar.bz2?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Ffreedict%2Ffiles%2FEnglish%2520-%2520French%2F0.1.4%2Ffreedict-eng-fra-0.1.4.tar.bz2%2Fdownload&ts=1491090445&use_mirror=excellmedia
The home page is http://freedict.org/en/, the github page is
http://freedict.org/en/, according to
https://github.com/freedict/fd-dictionaries/blob/master/eng-fra/COPYING,
the database file is released with GPL.
Best Regards,
Huang, Ying
> Thanks,
> Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 01 May 2017 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 6 years and 360 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.