Build fail when attempting to install yellowgrass from github
I am attempting to use the github repository to install yellowgrass:
https://github.com/webdsl/yellowgrass
The build always fails, even when using three alternative approaches.
(1) First I did:
webdsl build deploy
and the build failed with the following error messages:
webdsl build deploy Buildfile: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml command0: build command1: deploy Cannot find application.ini. This file is necessary to build the application for you. Want to create an application.ini now? [y/n]: [n] y Application name, also the name of the main .app file (without .app extension): [yellowgrass] ---- Database information ---- You will now be asked for database info such as hostname, username, password and database. Do note that this script will check if this information is valid, if it is not, it will attempt to create the database with the given username and password for you. MySQL Host: [localhost] MySQL Username: [webdsluser] root MySQL Password: [] passwordABC123 MySQL Database: [webdsldb] yellowgrass Hibernate database mode (create-drop / update / false): [create-drop] Now checking if database info works. Executing query: show tables; Unsuccessful, will now attempt to create database. For this we need your MySQL's root password (by default this is blank). MySQL root user password: [] passwordABC123 Executing query: create database yellowgrass; Executing commands 1 of 1 SQL statements executed successfully Executing query: grant all on yellowgrass.* to root@localhost identified by 'passwordABC123'; Executing commands 1 of 1 SQL statements executed successfully Do you want to configure your application for sending email? [y/n] [n] y SMTP host: [smtp.gmail.com] SMTP Port [465] SMTP Username: [] SMTP Password: [] Email configuration done! Tomcat path for deployment: [/opt/tomcat] /var/lib/tomcat7 Web server configuration done! Directory to store lucene search index: [/var/indexes] Search index configuration done! /home/admin/wrk/yellowgrass/yellowgrass Created application.ini. Loading application settings (application.ini)... yellowgrass appname: yellowgrass Created dir: /home/admin/wrk/yellowgrass/yellowgrass/.servletapp Created dir: /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/lib-test Copying template for webdsl application Copying 2 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp Copying 6 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/images Copying 6 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/javascript Copying 54 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/WEB-INF/lib Copying 10 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/src-template Copying 6 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/stylesheets Copying 1 file to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/src-webdsl-template Configuring .servletapp/build.properties template dir: /home/admin/inc/webdsl/webdsl/share/webdsl/template-java-servlet tomcat dir: /var/lib/tomcat7 lucene index dir: /var/indexes Copying 4 files to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp Expanding: /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/stylesheets/images.tar.gz into /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/stylesheets Copying your application files Warning: /home/admin/wrk/yellowgrass/yellowgrass/lib does not exist. Copied 1 files from directories named javascript to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/javascript/ Copied 15 files from directories named images to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/images/ Copied 4 files from directories named stylesheets to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/stylesheets/ Copied 4 files from directories named html to /home/admin/wrk/yellowgrass/yellowgrass/.servletapp/ Building application webdslc arguments: --servlet -i ../yellowgrass.app --session-timeout 1440 --enable-caching 1 --dir "/home/admin/wrk/yellowgrass/yellowgrass/.servletapp" --indexdir /var/indexes --compile-units-cache --enable-query-optimization 1 Directory: /home/admin/wrk/yellowgrass/yellowgrass/.servletapp Java options: -Xss8m -Xmx1024m Classpath: /home/admin/inc/webdsl/webdsl/bin/webdsl.jar, strategoxt.jar [ Main | info ] stage 1: parsing yellowgrass.app [ 1.84s ] [ Main | info ] stage 2: importing modulesFile does not exist: elib/lib.app BUILD FAILED /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:84: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:116: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:619: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:612: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:607: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:254: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:343: Java returned: 1 Total time: 3 minutes 40 seconds</code> **(2) Then I tried to copy *all* the files from the elib-legacy github repository https://github.com/webdsl/elib-legacy into the elib folder.** Now the build failed with the following, different message: <code>webdsl build deploy Buildfile: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml command0: build command1: deploy Loading application settings (application.ini) yellowgrass appname: yellowgrass Copying template for webdsl application Configuring .servletapp/build.properties template dir: /home/admin/inc/webdsl/webdsl/share/webdsl/template-java-servlet tomcat dir: /var/lib/tomcat7 lucene index dir: /var/indexes Copying 4 files to /home/admin/wrk/yellowgrass/.servletapp Expanding: /home/admin/wrk/yellowgrass/.servletapp/stylesheets/images.tar.gz into /home/admin/wrk/yellowgrass/.servletapp/stylesheets Copying your application files Warning: /home/admin/wrk/yellowgrass/lib does not exist. Copied 3 files from directories named javascript to /home/admin/wrk/yellowgrass/.servletapp/javascript/ Copied 15 files from directories named images to /home/admin/wrk/yellowgrass/.servletapp/images/ Copied 11 files from directories named stylesheets to /home/admin/wrk/yellowgrass/.servletapp/stylesheets/ Copied 4 files from directories named html to /home/admin/wrk/yellowgrass/.servletapp/ Building application webdslc arguments: --servlet -i ../yellowgrass.app --session-timeout 1440 --enable-caching 1 --dir "/home/admin/wrk/yellowgrass/.servletapp" --indexdir /var/indexes --compile-units-cache --enable-query-optimization 1 Directory: /home/admin/wrk/yellowgrass/.servletapp Java options: -Xss8m -Xmx1024m Classpath: /home/admin/inc/webdsl/webdsl/bin/webdsl.jar, strategoxt.jar [ Main | info ] stage 1: parsing yellowgrass.app [ 0.89s ] [ Main | info ] stage 2: importing modules [ 7.50s ] [ Main | info ] stage 3: derive templates [ 0.02s ] [ Main | info ] stage 4: typechecking * generic/editable-text.app:46/17: error: Variable 'commentAdditionBox' not defined commentAdditionBox * generic/editable-text.app:70/6: error: Template with signature clear() not defined clear * generic/editable-text.app:128/6: error: Template with signature clear() not defined clear * issue/register.app:82/14: error: Template with signature helpBlock() not defined helpBlock { validate ( loggedIn() || ig.email != "" , "Please enter your email address" ) } * issue/register.app:85/15: error: Template with signature helpBlock() not defined helpBlock { "Email addresses are used for issue confirmation, notifications and questions only. " "Email addresses are never presented publicly." } * issue/register.app:96/12: error: Template with signature helpBlock() not defined helpBlock { "Leave empty if you don't have an account." } * tag/tag.app:167/6: error: Template with signature clear() not defined clear * tag/tag.app:186/18: error: Variable 'tagBar' not defined tagBar * tag/tag.app:218/16: error: Variable 'tagBar' not defined tagBar * project/settings.app:16/8: error: Template with signature helpBlock() not defined helpBlock { "Warn: When a mailing list is set, notifications will only be sent to the mailing list and not to individual members of the project." } * project/roadmap.app:16/45: error: No function 'get' for 'releases' with signature get(Int) releases.get(0) * project/roadmap.app:37/24: error: Template with signature progressBar(Int) not defined progressBar ( completed [ 2 ] ) * project/roadmap.app:61/14: error: Variable 'releases' not defined releases * servletapp/src-webdsl-template/built-in.app:748/4: error: Multiple page/template definitions with name 'span'. Use 'override' modifier to replace existing pages/templates. define template span ( ) { < span all attributes > elements </ span > } * elib/bootstrap/bootstrap.app:172/4: error: Multiple page/template definitions with name 'span'. Use 'override' modifier to replace existing pages/templates. define template span ( ) { < span all attributes > elements </ span > } * servletapp/src-webdsl-template/built-in.app:431/4: error: Global function with signature remoteAddress() is defined multiple times. function remoteAddress ( ) : String * elib/request.app:16/4: error: Global function with signature remoteAddress() is defined multiple times. function remoteAddress ( ) : String [ 11.94s ] BUILD FAILED /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:84: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:116: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:619: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:612: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:607: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:254: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:343: Java returned: 1 Total time: 27 seconds</code> **(3) Well, because it said something about a global function remoteAddress() being defined multiple times, and multiple page/template definitions with the name 'span', I figured I had copied *too* *many* files into the `lib` directory.** So now I copied them one by one, as each file was mentioned in the error message. This time the build eventually failed again (after I installed the entire bootstrap directory from elib-legacy: https://github.com/webdsl/elib-legacy/tree/master/bootstrap) - with multiple error messages: <code>webdsl build deploy Buildfile: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml command0: build command1: deploy Loading application settings (application.ini) yellowgrass appname: yellowgrass Copying template for webdsl application Configuring .servletapp/build.properties template dir: /home/admin/inc/webdsl/webdsl/share/webdsl/template-java-servlet tomcat dir: /var/lib/tomcat7 lucene index dir: /var/indexes Copying 4 files to /home/admin/wrk/yellowgrass/.servletapp Expanding: /home/admin/wrk/yellowgrass/.servletapp/stylesheets/images.tar.gz into /home/admin/wrk/yellowgrass/.servletapp/stylesheets Copying your application files Warning: /home/admin/wrk/yellowgrass/lib does not exist. Copied 5 files from directories named javascript to /home/admin/wrk/yellowgrass/.servletapp/javascript/ Copied 15 files from directories named images to /home/admin/wrk/yellowgrass/.servletapp/images/ Copied 18 files from directories named stylesheets to /home/admin/wrk/yellowgrass/.servletapp/stylesheets/ Copied 4 files from directories named html to /home/admin/wrk/yellowgrass/.servletapp/ Building application webdslc arguments: --servlet -i ../yellowgrass.app --session-timeout 1440 --enable-caching 1 --dir "/home/admin/wrk/yellowgrass/.servletapp" --indexdir /var/indexes --compile-units-cache --enable-query-optimization 1 Directory: /home/admin/wrk/yellowgrass/.servletapp Java options: -Xss8m -Xmx1024m Classpath: /home/admin/inc/webdsl/webdsl/bin/webdsl.jar, strategoxt.jar [ Main | info ] stage 1: parsing yellowgrass.app [ 0.94s ] [ Main | info ] stage 2: importing modules [ 4.91s ] [ Main | info ] stage 3: derive templates [ 0.02s ] [ Main | info ] stage 4: typechecking * questions/question-view.app:82/12: error: Template with signature hrule() not defined hrule * generic/editable-text.app:46/17: error: Variable 'commentAdditionBox' not defined commentAdditionBox * generic/editable-text.app:70/6: error: Template with signature clear() not defined clear * generic/editable-text.app:128/6: error: Template with signature clear() not defined clear * issue/issue.app:128/76: error: No function 'abbreviate' with signature abbreviate(String, Int). Available global functions with that name: abbreviate(i.project.name, 20) * issue/issue.app:171/76: error: No function 'abbreviate' with signature abbreviate(String, Int). Available global functions with that name: abbreviate(i.project.name, 20) * issue/sidebar.app:60/8: error: Template with signature hrule() not defined hrule * issue/register.app:82/14: error: Template with signature helpBlock() not defined helpBlock { validate ( loggedIn() || ig.email != "" , "Please enter your email address" ) } * issue/register.app:85/15: error: Template with signature helpBlock() not defined helpBlock { "Email addresses are used for issue confirmation, notifications and questions only. " "Email addresses are never presented publicly." } * issue/register.app:96/12: error: Template with signature helpBlock() not defined helpBlock { "Leave empty if you don't have an account." } * tag/tag.app:167/6: error: Template with signature clear() not defined clear * tag/tag.app:186/18: error: Variable 'tagBar' not defined tagBar * tag/tag.app:218/16: error: Variable 'tagBar' not defined tagBar * comment/comment.app:101/19: error: No function 'isEmptyString' with signature isEmptyString(WikiText). Available global functions with that name: isEmptyString(newCommentText) * comment/event.app:22/18: error: Template with signature hrule() not defined hrule * tag/sidebar.app:46/6: error: Template with signature hrule() not defined hrule * tag/sidebar.app:48/8: error: Template with signature hrule() not defined hrule * project/settings.app:16/8: error: Template with signature helpBlock() not defined helpBlock { "Warn: When a mailing list is set, notifications will only be sent to the mailing list and not to individual members of the project." } * project/sidebar.app:21/17: error: No function 'abbreviateNE' with signature abbreviateNE(String, Int). Available global functions with that name: abbreviateNE(p.name, 12) * project/roadmap.app:16/45: error: No function 'get' for 'releases' with signature get(Int) releases.get(0) * project/roadmap.app:37/24: error: Template with signature progressBar(Int) not defined progressBar ( completed [ 2 ] ) * project/roadmap.app:61/14: error: Variable 'releases' not defined releases * issue/issue-model.app:46/45: error: No function 'diffDays' with signature diffDays(Date, DateTime). Available global functions with that name: diffDays(due, now()) * issue/issue-model.app:45/6: error: The return statement in function timeLeft should have type Long function timeLeft ( ) : Long { return if ( hasDueDate && due != null ) diffDays(due, now()) else 1000L; } * auxiliary.app:30/9: error: No function 'max' with signature max(Int, Int). Available global functions with that name: max(m, current) * webservice/model.app:10/51: error: No function 'min' with signature min(Int, Int). Available global functions with that name: min(20, project.name.length() - 1) * webservice/model.app:26/51: error: No function 'min' with signature min(Int, Int). Available global functions with that name: min(20, project.name.length() - 1) * elib/bootstrap/bootstrap.app:122/6: error: Template with signature header1() not defined header1 { elements } * elib/bootstrap/bootstrap.app:127/8: error: Template with signature header2() not defined header2 { elements } * elib/bootstrap/bootstrap.app:132/8: error: Template with signature header3() not defined header3 { elements } * elib/bootstrap/bootstrap.app:137/8: error: Template with signature header4() not defined header4 { elements } * elib/request.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/list.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/tabs.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/ace.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/counter.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/wikitext.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/rss.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/modal-dialog.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/coordinates.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/editable.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/markup.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/datetime.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/accesscontrol.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/string.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/pageindex.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/math.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * elib/lib.app:25/4: error: Multiple page/template definitions with name 'empty'. Use 'override' modifier to replace existing pages/templates. define ajax ignore-access-control empty ( ) { } * servletapp/src-webdsl-template/built-in.app:748/4: error: Multiple page/template definitions with name 'span'. Use 'override' modifier to replace existing pages/templates. define template span ( ) { < span all attributes > elements </ span > } * elib/bootstrap/bootstrap.app:172/4: error: Multiple page/template definitions with name 'span'. Use 'override' modifier to replace existing pages/templates. define template span ( ) { < span all attributes > elements </ span > } [ 10.67s ] BUILD FAILED /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:84: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build-command.xml:116: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:619: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:612: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:607: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:254: The following error occurred while executing this line: /home/admin/inc/webdsl/webdsl/share/webdsl/webdsl-build.xml:343: Java returned: 1 Total time: 23 seconds
Since there is no readme file provided for this program, it is unclear how to install it.
ASF+SDF supports rather sophisticated language facilities such as parameterized modules and typing-checking. It could be presumed that one of the goals of languages such as ASF+SDF is to support programming-in-the-large. So it is rather surprising to see that the kind of broken builds typical of less-powerful, less carefully-designed languages - in a published, open-source “reference” application using the language.
Yellowgrass (and WebDSL, and Stratego/XT, and ASF+SDF, and TomCat) are non-trivial software packages which rely on many libraries and which have rather lengthy configuration files.
Can we really say that yellowgrass follows the spirit of “open-source” if it is being published with no readme?
Has anyone else installed yellowgrass from github?
Is the github repository for yellowgrass incomplete or obsolete?
Does anyone have any advice on how to install yellowgrass from github?
Thank you.
Submitted by Stefan on 14 December 2014 at 06:53
Issue Log
Elib is a Git submodule, to check out the full yellowgrass:
git clone https://github.com/webdsl/yellowgrass.git cd yellowgrass git submodule update --init
The remaining build errors are related to changes in WebDSL: some of the helper functions were moved to the standard library, and placeholders now have statically checked variable names. I will have a look at it this week, these are simple to fix. We haven’t added any features to Yellowgrass lately so it hasn’t been updated yet.
Hi thanks for the fast response.
Previously I was testing YellowGrass on a remote (headless) server using the command-line interface.
Now I have installed WebDSL as an Eclipse plug-in (as you recommended in issue 822). I’m testing building yellowgrass in Eclipse and it is still failing to build - apparently with the same errors.
The error messages are listed below for reference.
I will check back later to see when any fixes you mentioned may been made (regarding WebDSL’s helper functions now moved to the standard library, and placeholders now having statically typed variable names);
Thanks!
[java] [ Main | info ] stage 1: parsing yellowgrass.app [ 7,95s ]
[java] [ Main | info ] stage 2: importing modules [ 9,81s ]
[java] [ Main | info ] stage 3: derive templates [ 0,15s ]
[java] [ Main | info ] stage 4: typechecking
[java] * generic/editable-text.app:46/17: error: Variable ‘commentAdditionBox’ not defined
[java] commentAdditionBox
[java] * tag/tag.app:186/18: error: Variable ‘tagBar’ not defined
[java] tagBar
[java] * tag/tag.app:218/16: error: Variable ‘tagBar’ not defined
[java] tagBar
[java] * project/roadmap.app:16/45: error: No function ‘get’ for ‘releases’ with signature get(Int)
[java] releases.get(0)
[java] * project/roadmap.app:61/14: error: Variable ‘releases’ not defined
[java] releases
[java] * servletapp/src-webdsl-template/built-in.app:748/4: error: Multiple page/template definitions with name ‘span’. Use ‘override’ modifier to replace existing pages/templates.
[java] define template span ( ) { < span all attributes > elements </ span > }
[java] * elib/bootstrap/bootstrap.app:172/4: error: Multiple page/template definitions with name ‘span’. Use ‘override’ modifier to replace existing pages/templates.
[java] define template span ( ) { < span all attributes > elements </ span > }
[java] * servletapp/src-webdsl-template/built-in.app:431/4: error: Global function with signature remoteAddress() is defined multiple times.
[java] function remoteAddress ( ) : String
[java] * elib/request.app:16/4: error: Global function with signature remoteAddress() is defined multiple times.
[java] function remoteAddress ( ) : String
[java] [ 39,35s ]
BUILD FAILED
I have some local uncommitted changes. I’ll push these today. It will switch to the elib-bootstrap and elib-utils submodules. This also updates the placeholders to respect the new syntax where placeholder variables should be declared as ordinary template variables (placeholders cannot be declared inline anymore).
The errors have been fixed in Elmer’s commit. Yellowgrass uses some HQL queries that are not supported by the in-memory/in-file H2 database engine, so use MySQL also for testing.
Log in to post comments