centeap / eap-build Goto Github PK
View Code? Open in Web Editor NEWBuild scripts for EAP 6 or 7
Build scripts for EAP 6 or 7
Compare version and patch files
New version available:
http://ftp.redhat.com/redhat/jbeap/6.3.1/en/source/
Seems like EAP 6.2.1 is available. Here you might want to copy the repositories section from EAP 6.2 parent pom.xml before compiling.
Output produced by cygwin md5sum has one space and an asterisk ' *' as separator.
md5 files in this repo have double space, so the checksum verification fails.
This is because md5sum on cygwin default to binary mode, which causes the separator to include the asterisk, as mentioned here: http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00376.html
I see 3 solutions:
sed 's/ \*/ /'
to the command that generates and compares the checksum. This would also require sed to be present on linux hosts for the build script not to fail.sed
snippet there. This would have the least impact.What do you think would be the best solution?
Print the comple output of the build
In I start the build with an empty m2 repository, the build fails at module "build", due to the jandex dependency in antrun.
2nd run of the build works fine !
For example on a brand new CentOS, command not found for wget, unzip.
I executed the newest build and this is the output from the build.log
despite the fact that
org.jboss.logging:jboss-logging:jar:3.1.2.GA-redhat-1
is present in the local repository
[INFO] Finished at: Mon Sep 09 17:18:39 CEST 2013
find: ‘work/jboss-eap-6.1-src/dist/target’: No such file or directory
Build failed. You may have a look at the work/build.log file, maybe you'll find the reason why it failed.
[INFO] Final Memory: 84M/359M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jboss-as-protocol: Could not resolve dependencies for project org.jboss.as:jboss-as-protocol:jar:7.2.1.Final-redhat: The following artifacts could not be resolved: org.jboss.logging:jboss-logging:jar:3.1.2.GA-redhat-1, org.jboss.logging:jboss-logging-processor:jar:1.1.0.Final-redhat-1, org.jboss.logmanager:jboss-logmanager:jar:1.4.3.Final-redhat-1, org.jboss.marshalling:jboss-marshalling:jar:1.3.18.GA-redhat-1, org.jboss.remoting3:jboss-remoting:jar:3.2.16.GA-redhat-1, org.jboss.sasl:jboss-sasl:jar:1.0.3.Final-redhat-1, org.jboss.marshalling:jboss-marshalling-river:jar:1.3.18.GA-redhat-1, org.jboss.threads:jboss-threads:jar:2.1.0.Final-redhat-1, org.jboss.xnio:xnio-api:jar:3.0.7.GA-redhat-1, org.jboss.xnio:xnio-nio:jar:3.0.7.GA-redhat-1: Could not find artifact org.jboss.logging:jboss-logging:jar:3.1.2.GA-redhat-1 in jboss-eap (file:///cygdrive/c/Users/mbazzani/Downloads/jboss-eap-6.1.1-src/work/jboss-eap-6.1.1.GA-maven-repository/) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :jboss-as-protocol
I got the following error right now:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-configs) on project jboss-as-build: Execution generate-configs of goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run failed: Plugin org.apache.maven.plugins:maven-antrun-plugin:1.7 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.jboss:jandex:jar:1.2.2.Final-redhat-1, org.slf4j:slf4j-api:jar:1.7.2.redhat-3: Could not find artifact org.jboss:jandex:jar:1.2.2.Final-redhat-1 in central (https://repo.maven.apache.org/maven2) -> [Help 1]
What Can I do ?
New version available:
ftp://ftp.redhat.com/redhat/jbeap/6.2.2/en/source/
md5sum need double space between the hash and the file name. MacOS "md5 -r" has a single space.
6.4.1 has been released (http://ftp.redhat.com/redhat/jbeap/6.4.1/en/source/).
Thanks for your work!
I ran the scripts on a CentOS 6.5 VM built from the "minimal.iso".
This revealed that the "patch" RPM is also a prerequisite to success in addition to "git", "wget", "unzip", and a Java installation.
Also, your script does not detect that the patch command is missing, skips over applying the patches, and goes ahead and launches the Maven build.
A useful comment to add to the readme would be a hint to do a "tail -f ./eap-build/work/build.log" once the script launches the Maven build. Otherwise, many minutes of quiet anticipation ensue.
Suggestion for enhancement: It would be great if one could specify both the baseline version of EAP as well as a specific full path to the patch file. In my case, I'm editing the patch file to advance to the most recent minor version of the patched dependencies instead of falling back to the last closest. Since I don't know what Redhat is hiding and what we are missing, figured there is a chance that upstream of those dependencies contain the fixes in later versions.
"./build-eap.sh 6.1.1" fails with the following error:
=== Patch ===
patching file work/jboss-eap-6.1-src/pom.xml
patching file work/jboss-eap-6.1.1.GA-maven-repository/log4j/log4j/1.2.16-redhat-2/log4j-1.2.16-redhat-2.pom
patching file work/jboss-eap-6.1.1.GA-maven-repository/org/fusesource/jansi/jansi/1.9-redhat-1/jansi-1.9-redhat-1.pom
Hunk #1 FAILED at 94.
1 out of 1 hunk FAILED -- saving rejects to file work/jboss-eap-6.1.1.GA-maven-repository/org/fusesource/jansi/jansi/1.9-redhat-1/jansi-1.9-redhat-1.pom.rej
patching file work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/byteman/byteman/2.0.1-redhat-2/byteman-2.0.1-redhat-2.pom
Hunk #1 FAILED at 132.
1 out of 1 hunk FAILED -- saving rejects to file work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/byteman/byteman/2.0.1-redhat-2/byteman-2.0.1-redhat-2.pom.rej
patching file work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/component/management/jboss-component-version-master/6.0.1-redhat-1/jboss-component-version-master-6.0.1-redhat-1.pom
patching file work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/jboss-parent/10-redhat-1/jboss-parent-10-redhat-1.pom
patching file work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/jboss-parent/10-redhat-2/jboss-parent-10-redhat-2.pom
Turns out this is just down to DOS formatted text in a couple of the unpacked files.
Adding the following just before the patch step in build-eap.sh was enough to get the build through:
dos2unix work/jboss-eap-6.1.1.GA-maven-repository/org/fusesource/jansi/jansi/1.9-redhat-1/jansi-1.9-redhat-1.pom
dos2unix work/jboss-eap-6.1.1.GA-maven-repository/org/jboss/byteman/byteman/2.0.1-redhat-2/byteman-2.0.1-redhat-2.pom
Regards,
Chris
Trying to build EAP 6.2.1 fails with
Failed to execute goal on project jboss-as-clustering-jgroups: Could not resolve dependencies for project org.jboss.as:jboss-as-clustering-jgroups:jar:7.3.1.Final-redhat-SNAPSHOT: Could not find artifact org.jboss.as:jboss-as-clustering-common:jar:tests:7.3.1.Final-redhat-SNAPSHOT in jboss-public-repo (http://repository.jboss.org/nexus/content/groups/public/) -> [Help 1]
Do you know the right dependency?
The results of the 6.1.0 and 6.1.1 builds have the same name : jboss-eap-6.1.zip.
We should rename the resulting file to something like jboss-eap-$EAP-VERSION.zip.
New version available:
ftp://ftp.redhat.com/redhat/jbeap/6.2.3/en/source/
http://maven.repository.redhat.com/techpreview/eap6/6.2.3/
org.jboss:jandex:1.0.3.Final-redhat-2 is in the provided maven repo, but build fail if this artefact isn't in the local repo at the beginning.
Seems like there is a new version out:
http://ftp.redhat.com/redhat/jbeap/6.4.2/en/source/
wget https://github.com/hasalex/eap-build/archive/master.zip
unzip master.zip
cd eap-build-master
./build-eap.sh
Reading through some posts on jboss community forum (also the one where hasalex mention this eap-build project of he created - https://community.jboss.org/message/831244#831244) and eula(s?) I am still not fully sure if building eap source makes it production use.
So issue has three sub questions:
I've found that it's useful to keep the build log file along with the binary. The following patch copies the build log to the dist directory alongside the built zip file.
diff --git a/src/functions.sh b/src/functions.sh
--- a/src/functions.sh
+++ b/src/functions.sh
@@ -123,6 +123,7 @@
function save_result {
# Copy zip files to the base dir, excluding the src files
find work/jboss-eap-$EAP_SHORT_VERSION-src/dist/target \( ! -name "jboss*-src.zip" \) -a \( -name "jboss*.zip" \) -exec cp -f {} dist/jboss-eap-$EAP_VERSION.zip \;
+ cp work/build.log dist/jboss-eap-$EAP_VERSION.build.log
if [ -f dist/jboss-eap-$EAP_VERSION.zip ]
then
Checking a little I have figured out what patches are needed to build without skipping tests:
And some good news on missing artifacts:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1066435
ftp://ftp.redhat.com/redhat/jbeap/6.2.4/en/source/
Does not find slf4j-api when local repo is empty
Seems like EAP version 6.4.0 is available:
http://ftp.redhat.com/redhat/jbeap/6.4.0/en/source/
Rejected files :
There seems to be no consensus with regard to this subject in forums, etc. For instance, see the following comment from Jason Greene:
"Another topic that was touched on is the licensing terms of the software itself. It is correct that the source code of JBoss EAP is licensed under the LGPL and a combination of other OSS licenses. However the distribution also contains our trademarked images and text which we do not allow redistribution without permission. Anyone that wishes to distribute their own derivative of JBoss EAP needs to replace all occurences of Red Hat and JBoss trademarks, and call it something other than JBoss."
Maven is trying to start but fails with some messages
Checksum checking for downloads should be added
Anonymous access to ftp://ftp.redhat.com/redhat/jbeap has been closed.
--quiet for maven
redirect some output in log files
http://maven.repository.redhat.com/techpreview/eap6/6.3.3/jboss-eap-6.3.3-full-maven-repository.zip link redirects automatically to this page: https://access.redhat.com/maven-repository and the download fails (or it downloads the HTML page and hash checksumming fails of course).
Has RedHat changed their site's directory structure or has they removed that jboss-eap-X.X.X-full-maven-repository.zip? Is there any fix for this issue?
I was under the impression that EAP releases could not be used in production without a valid support (subscription) agreement - is that (in)correct? Thanks.
EAP 7 needs Java 8
If the zip file is here, rm it and wget it again.
Useful when checksum fails.
here the error:
Trying to download jboss-eap-6.4.5-maven-repository.zip.
--2015-12-20 11:33:48-- http://maven.repository.redhat.com/techpreview/eap6/6.4.5/jboss-eap-6.4.5-maven-repository.zip
Resolving maven.repository.redhat.com... 23.33.65.202
Connecting to maven.repository.redhat.com|23.33.65.202|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://access.redhat.com/maven-repository [following]
--2015-12-20 11:33:48-- https://access.redhat.com/maven-repository
Resolving access.redhat.com... 23.33.14.97
Connecting to access.redhat.com|23.33.14.97|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'download/jboss-eap-6.4.5-maven-repository.zip'
jboss-eap-6.4.5-maven-repository.zip [ <=> ] 64.69K --.-KB/s in 0.1s
2015-12-20 11:33:50 (446 KB/s) - 'download/jboss-eap-6.4.5-maven-repository.zip' saved [66247]
Unzipping jboss-eap-6.4.5-maven-repository.zip
[download/jboss-eap-6.4.5-maven-repository.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of download/jboss-eap-6.4.5-maven-repository.zip or
download/jboss-eap-6.4.5-maven-repository.zip.zip, and cannot find download/jboss-eap-6.4.5-maven-repository.zip.ZIP, period.
jboss-eap-6.4.5-maven-repository.zip unzipped
Patching files
Launching Maven build
find: work/jboss-eap-6.4-src/dist/target: No such file or directory
Build done. Check your dist directory for the new eap zip file.
I think upstream had change the policy creating a /ga/ repository so we can deal with it directly
I'm working on finding a solution.
Jboss-eap-7.0.0-beta build failed on WildFly: Servlet Feature Pack module,
missing dependency "org.wildfly.core:wildfly-core-feature-pack:zip:2.0.3.Final-redhat-1"
[ERROR] Failed to execute goal on project wildfly-servlet-feature-pack: Could not resolve dependencies for project org.wildfly:wildfly-servlet-feature-pack:pom:10.0.0.CR6-redhat-1: Could not find artifact org.wildfly.core:wildfly-core-feature-pack:zip:2.0.3.Final-redhat-1 in jboss-eap
see attached logs for more complete details.
build.log.txt
Fix for this issue:
@@ -217,7 +217,8 @@
<version.org.syslog4j>0.9.30</version.org.syslog4j>
<version.org.wildfly.build-tools>1.1.0.Final</version.org.wildfly.build-tools>
<version.org.wildfly.checkstyle-config>1.0.4.Final</version.org.wildfly.checkstyle-config>
- <version.org.wildfly.core>2.0.3.Final-redhat-1</version.org.wildfly.core>
+ <version.org.wildfly.core>2.0.3.Final</version.org.wildfly.core>
+ <version.org.wildfly.core.test>2.0.3.Final</version.org.wildfly.core.test>
<version.org.wildfly.arquillian>1.0.2.Final</version.org.wildfly.arquillian>
<version.org.yaml.snakeyaml>1.15.0.redhat-1</version.org.yaml.snakeyaml>
<version.sun.jaxb>2.2.11.redhat-2</version.sun.jaxb>
Making a diff between the downloaded version and the built one shows a lot of differences :
We should probably build the feature pack for wildfly-core, if possible.
I maintain a local fork so that I can apply additional patches.
I noticed that when a patch fails to apply, currently the build continues.
The following patch fixes the behavior so that the build is aborted when applying the patch fails.
diff --git a/src/functions.sh b/src/functions.sh
--- a/src/functions.sh
+++ b/src/functions.sh
@@ -44,7 +44,7 @@
function patch_files {
echo "Patching files"
echo "=== Patch ===" >> work/build.log
- patch -p0 < src/jboss-eap-$EAP_VERSION.patch >> work/build.log
+ patch -p0 < src/jboss-eap-$EAP_VERSION.patch >> work/build.log || { echo >&2 "Error applying patch. Aborting."; exit 1; }
cp src/settings.xml work/jboss-eap-$EAP_SHORT_VERSION-src/tools/maven/conf/
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.