Julius is a high-performance, two-pass large vocabulary continuous speech recognition. It is a needed dependency of simon speech2text. I filed an ebuild request for simon (Bug #244945) a couple of days ago, and as I was told there is a lack of manpower on the accessibility team, and so even if I'm not an IT-professional, and have no experience writing ebuilds, I decided to simply learn it and help the community. So here is my first ever ebuild, had quite some help from the forums, thanks! Reproducible: Always
Created attachment 170681 [details] first ebuild I had it under app-accessibility/julius not sure if that is the right category.
Created attachment 170683 [details, diff] patch for the paths in the makefiles This is needed, in order not to cause sandbox violations. Nevertheless the man-pages are not correctly installed. As shown in the following (snipped of output from emerge): ---------------------------------------------------- /usr/bin/install -c -d /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/lib /usr/bin/install -c -m 644 libjulius.a /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/lib /usr/bin/install -c -d /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/include/julius /usr/bin/install -c -m 644 include/julius/*.h /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/include/julius /usr/bin/install -c -d /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/bin /usr/bin/install -c libjulius-config /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/bin make[1]: Leaving directory `/var/tmp/portage/app-accessibility/julius-4.0.2/work/julius-4.0.2/libjulius' make[1]: Entering directory `/var/tmp/portage/app-accessibility/julius-4.0.2/work/julius-4.0.2/julius' /usr/bin/install -c -d /usr/bin /usr/bin/install -c -d /usr/share/man/man1 /usr/bin/install -c julius /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/bin/julius /usr/bin/install -c -m 644 julius.man /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/share/man/man1/julius.1 /usr/bin/install: reguläre Datei „/var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/share/man/man1/julius.1“ kann nicht angelegt werden: Datei oder Verzeichnis nicht gefunden make[1]: *** [install.man] Fehler 1 make[1]: *** Warte auf noch nicht beendete Prozesse... make[1]: Leaving directory `/var/tmp/portage/app-accessibility/julius-4.0.2/work/julius-4.0.2/julius' make[1]: Entering directory `/var/tmp/portage/app-accessibility/julius-4.0.2/work/julius-4.0.2/mkbingram' /usr/bin/install -c -d /usr/bin /usr/bin/install -c mkbingram /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/bin /usr/bin/install -c -d /usr/share/man/man1 /usr/bin/install -c -m 644 mkbingram.man /var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/share/man/man1/mkbingram.1 /usr/bin/install: reguläre Datei „/var/tmp/portage/app-accessibility/julius-4.0.2/image///usr/share/man/man1/mkbingram.1“ kann nicht angelegt werden: Datei oder Verzeichnis nicht gefunden make[1]: *** [install.man] Fehler 1 ---------------------------------------------------- Otherwise seems to work well, but I have no idea how to fix that. Posted in the forums as well, hope I can fix that soon.
Created attachment 170685 [details] the licence for julius Not sure if this has to be submitted as well, but as it uses an individual licence (as far as I can tell) and the licence has to be specified in the ebuild, I just decided to submit it as well.
Created attachment 170747 [details, diff] updated patch to install man-pages properly as well This patch makes the ebuild work perfectly for me. Can't find any problems left at this stage. Should I ask the sunrise overlay if they want to add the ebuild, or what is the proper way to proceed at this stage?
http://pastebin.com/f27caa3f6 This is awesome... I am the developer of simon and just want you to know that I really appreciate all your efforts! However, the Julius team already released the version 4.1 - they just didn't update the English site. So if you want the latest-and-greatest version of Julius you should check out the main site: http://julius.sourceforge.jp/. In the right panel of the Japanese site you will still get the same Quick-Download menu as on the English site but now the links point to the 4.1 release. The installation procedure didn't really change but I think libsoundfile may be a new (?) dependency. Additionally I would ask you to incorporate the following two patches. I tried to get them included upstream but received no reply up until now. The first one fixes a critical crash in mkfa: http://pastebin.com/m61f97964 And the second one changes a few parameters named "new" to the more c++-friendly "newParam" (simon 0.2 is going to use libjulius directly and is written in C++ where "new" is a reserved keyword): http://pastebin.com/f27caa3f6
The ebuild is now in sunrise-overlay: http://overlays.gentoo.org/svn/proj/sunrise/sunrise/app-accessibility/julius/ Thanks for all the help!
Created attachment 171760 [details] latest ebuild for julius Please check out the sunrise overlay for the patches!
Ebuild in Sunrise has been updated (not reviewed yet): http://overlays.gentoo.org/svn/proj/sunrise/sunrise/app-accessibility/julius/julius-4.1.ebuild
You can add the ~amd64 arch, works like a charm.
Not sure if this is the right place to mention this, but the ebuild in the sunrise overlay conflicts with dev-java/java-config. Both programs try to install a file called jcontrol into /usr/bin/jcontrol which leads to a file collision if both are to installed at the same time. Besides the name and place, both files however have nothing in common...
Created attachment 213671 [details, diff] This patch renames /usr/bin/jcontrol to /usr/bin/juliuscontrol in src_install to avoid collision with java-config No idea if this breaks something.
Looks like julius for simon comes in simon tarball (as for 0.3-alpha-2 version) and compiles with it. So looks like this bug doesn't block simon request now.
+*julius-4.2.2 (31 Mar 2013) + + 31 Mar 2013; Julian Ospald <hasufell@gentoo.org> +julius-4.2.2.ebuild, + +files/julius-4.2.2-install.patch, +files/julius-4.2.2-ldflags.patch: + initial import wrt #245475