Background
I have a simple Clojure 1.9 project.
It was configured with a minimal .travis.yml.
language: clojure
lein: 2.8.1
jdk:
- openjdk8
- openjdk9
- oraclejdk8
- oraclejdk9
Travis CI
The builds for OpenJDK 8, OracleJDK 8 and OracleJDK 9 succeeded. However, it failed for OpenJDK 9 in the lein deps stage.
Five artifacts cannot to be retrieved from Clojars. They are clojure-complete, clj-http, pedestal.service, pedestal.jetty and pedestal.service-tools.
It seems to be some issues related to certificates. I have included some of the logs below.
Could not find artifact clojure-complete:clojure-complete:jar:0.2.4 in central (https://repo1.maven.org/maven2/)
Could not transfer artifact clojure-complete:clojure-complete:jar:0.2.4 from/to clojars (https://repo.clojars.org/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
...
Could not transfer artifact clojure-complete:clojure-complete:pom:0.2.4 from/to clojars (https://repo.clojars.org/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
...
This could be due to a typo in :dependencies, file system permissions, or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.
Questions
Why it happened to OpenJDK9 builds only?
Is it a bug for Travis CI or my configurations?
How can I fix it?
Thanks!
There were discussions in the Travis CI issue tracker[1] and the clojurians Slack.
The cause is that OpenJDK 9 doesn't ship with the certificates that signed the Clojars' certificate.
Christian Stein mentioned that Travis CI will always provide an unpatched JDK installation. User will need to symlink the system CA certificates if necessary (Original words).
Solution
This is the updated minimal Travis CI configurations.
It involved manually symlinking the system CA certs in the before_install stage.
language: clojure
lein: 2.8.1
jdk:
- openjdk8
- oraclejdk8
- oraclejdk9
matrix:
include:
- jdk: openjdk9
before_install:
- rm "${JAVA_HOME}/lib/security/cacerts"
- ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts"
Other solutions
Alternatively, you can do the JDK installation with a custom matrix as well.
Updates for OpenJDK 10 and 11
All OpenJDK versions installed with jdk_install.sh by Travis do not patch the certificates. Thus, you will encounter the same problem for OpenJDK 10 and 11 as well.
You can reduce the boilerplate for those SDK versions with smartly placed YAML anchor as the example below.
matrix:
include:
- jdk: openjdk9
before_install: &fix_certs
- rm "${JAVA_HOME}/lib/security/cacerts"
- ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts"
- jdk: openjdk10
before_install: *fix_certs
- jdk: openjdk11
before_install: *fix_certs
Apologies that this isn't answering your specific question, but just wanted to mention that it looks like you're not the only one hitting this issue: https://github.com/travis-ci/travis-ci/issues/9368#issuecomment-395218865
Related
I have a Django App deployed via AWS' elastic beanstalk, that uses the CodePipeline service to build. As part of that pipeline, the CodeBuild service is used to build the app that gets deployed to the ElasticBeanstalk environment.
The build failed, sending the following error message:
django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
Per Amazon's own package version listing I realize that is expected given the older version is intended to be on the Amazon Linux 2 distro.
Ok. I wrote a shell script to download the latest version of SQLite and build from scratch, but I'm still getting the same issue.
In the buildspec.yaml file I have the following:
...
post_build:
commands:
- echo "beginning post-build phase..."
- bash get_sqlite.sh
- echo "sqlite version -- $(sqlite3 --version)"
- python manage.py makemigrations
...
In the CodeBuild logs, I can see the result of the echo command as such:
sqlite version -- 3.40.1 2022-12-28
Yet, the build fails and the logs still show the following error:
django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).
Any idea what further steps need to be taken for the updated version to be detected rather than the previous one?
I think you need to move your sqlite command to bin directory in linux.
- mv sqlite /usr/local/bin/
Even though package has been updated but linux reads PATH ( env variable to find the commands ) and still it is finding the old version of the command, that is hwy you need to replace the old sqlite command with the new version in bin directory
I have recently encountered an issue with building my ember project with bitbucket pipelines:
+ ember build --environment="production"
Could not start watchman
Visit https://ember-cli.com/user-guide/#watchman for more info.
Building
Environment: production
cleaning up
cleaning up...
Build Error (broccoli-persistent-filter:Babel > [Babel: ember-data]) in ember-data/adapters/json-api.js
Cannot use the decorators and decorators-legacy plugin together
I am currently using ember-cli version 3.8.1.
The issue occurs with all build environments, not just production.
What baffles me is that no new npm package or ember addon was added between last successful build and the ones that have been failing since - and now if I re-run the successful build, that will also fail.
I have gone back in the commit history to a commit that worked, then fast-forward into the present step-by-step - always deleting the node_modules and reinstalling the packages. It always works locally, but it will always fail when the pipeline is run.
I have also tried updating my docker image.
I have already gone through and tried the solutions listed here - but it seems like they have already been addressed in version 3.8.1.
Also, if it is any help, this is my bitbucket-pipelines.yml:
pipelines:
branches:
master:
- step:
name: Building Ember Project
script:
- npm install
- npm install firebase-tools
- ember build --environment="production"
- step:
trigger: manual
deployment: production
name: Deploy to Production
script:
- firebase use prod
- firebase deploy --non-interactive --token ${FIREBASE_TOKEN}
Thank you all in advance!
This sounds like a sub-dependency changing on the fly under the hood. Do you have an npm or yarn lockfile commited as part of your repo? Lockfiles are specifically designed to keep from hitting snags like this
I have gone through the below errors,
Build error : “Cannot use the decorators and decorators-legacy plugin together”
Build error: 'relationshipStateFor' is not exported by -private\system\record-data-for.js
On browser got Expected store.createRecordDataFor to be implemented but it wasn't.
Reason for the above error is with ember-data addon and mismatch in ember-cli version installed for my project.
In your package.json, You might have defined ember-cli version( "ember-cli": "^3.11.0",) with ^ symbol this means it will install latest version which is less than the 4.0.0. So your ember-cli in node_modules might be installed to the latest version.
The above mentioned error is caused by the ember-cli version which was installed and pointed to 3.15.0. So I have removed the ^ and updated "ember-cli": "3.11.0", and removed node_modules and did npm install that solves the above problem.
there have been some similar questions (Installing RQuantLib on Linux), but none related to the AWS RStudio environment. After trying the usual rute
install.packages('RQuantLib');
library(devtools)
install_github("eddelbuettel/rquantlib")
I get the following error (in both cases):
configure: error: Please install QuantLib before trying to build RQuantLib.
ERROR: configuration failed for package ‘RQuantLib’.
Also, all of a sudden (after upgrading R on my local machine from 3.4.4 to 3.5.0) RQuantLib stopped working also on my local Windows machine:
Error in system(full, intern = TRUE, ignore.stderr = quiet, ...) :
running command '"C:/PROGRA~1/R/R-35~1.0/bin/x64/R" --no-site-file --no- environ --no-save --no-restore --quiet CMD config CC' had status 1
After following the directions on the Github page I tried the following:
if (!require("drat")) install.packages("drat")
drat::addRepo("ghrr")
install.packages("RQuantLib", type="binary")
but got the follwoing error:
Warning in install.packages :
unable to access index for repository https://ghrr.github.io/drat/bin/windows/contrib/3.5:
cannot open URL 'https://ghrr.github.io/drat/bin/windows/contrib/3.5/PACKAGES'
Warning in install.packages :
package ‘RQuantLib’ is not available (as a binary package for R version 3.5.0)
What else could I try? The AWS problem has a higher priority, although I would really like to be able to use RQuantLib on my local machine again, so any help would be really appreciated.
A small end note: The RQuantLib library compiles succesfully on the Debian 16.04 AWS AMI, but not on the RStudio AMI.
Windows builds, just like Unix builds, require QuantLib to be present which has its challenges.
The most recent upload restores this ability, utilising a GitHub repo with a prebuilt version of QuantLib. Try installing RQuantLib 0.4.5 now on Windows; you should get a binary from CRAN as can been on the CRAN page.
I am starting out with Clojure, and i am currently following the hoplon.io get started tutorial
My troubles start when i try to build boot from source: (http://github.com/tailrecursion/boot)
This is the error that i receive when running the make boot command:
1 required artifact is missing.
for artifact:
org.apache.maven:super-pom:pom:2.0
from the specified remote repositories:
central (http://repo1.maven.org/maven2),
clojars (http://clojars.org/repo/)
I have installed maven but that did not change anything. Has anyone encountered this problem aswell?
Best Regards
Daniel
how to access to svn and build Identy server from sources?
The page http://docs.wso2.org/display/identity/Building+WSO2+Identity+Server+from+source is valid also for 3.2.3?
Installing Identity Server on Linux from Source Distribution [1] Guide.
When you extract the wso2is-3.2.3-src distribution execute mvn clean install from the root level OR if you need to build only 3.2.3 version go inside the /wso2is-3.2.0-src/patch-releases/ folder.
There you will find separate directories for 3.2.1, 3.2.2 and 3.2.3, To build 3.2.3 version, start building from 3.2.3 patch releases pom.xml (mvn clean install from /wso2is-3.2.0-src/patch-releases/3.2.3/ directory).
Please note, 3.2.0 branch needs to be built with maven2.
FYI: To build current trunk, use maven3.