From cf88fc99c5d0bfefb4498f558d18e7d62043e647 Mon Sep 17 00:00:00 2001 From: Taryn Anthony Don Hill Date: Sat, 13 Jun 2026 07:07:28 -0500 Subject: [PATCH 1/2] Add clojure.org built from source --- projects/clojure.org/package.yml | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 projects/clojure.org/package.yml diff --git a/projects/clojure.org/package.yml b/projects/clojure.org/package.yml new file mode 100644 index 0000000000..90875ab458 --- /dev/null +++ b/projects/clojure.org/package.yml @@ -0,0 +1,53 @@ +distributable: + url: https://github.com/clojure/clojure/archive/refs/tags/clojure-{{version}}.tar.gz + strip-components: 1 + +versions: + github: clojure/clojure/releases/tags + strip: /^clojure-/ + +dependencies: + openjdk.org: ">=11" + maven.apache.org: "^3.8" + +build: + dependencies: + openjdk.org: ">=11" + maven.apache.org: "^3.8" + + script: | + # Ensure we're using the correct Java version + export JAVA_HOME=$(pkgx which java | xargs dirname | xargs dirname) + + # Build the Clojure JAR + mvn clean package -DskipTests -Dproject.build.sourceEncoding=UTF-8 + + # Create the clojure CLI script wrapper + mkdir -p $PKGX_INSTALL_DIR/bin + + # Copy the built JAR + cp target/clojure-*.jar $PKGX_INSTALL_DIR/lib/clojure.jar + + # Create the clj wrapper script + cat > $PKGX_INSTALL_DIR/bin/clj << 'EOF' + #!/bin/bash + # Clojure REPL wrapper + exec java -cp "{{PKGX_INSTALL_DIR}}/lib/clojure.jar" clojure.main "$@" + EOF + chmod +x $PKGX_INSTALL_DIR/bin/clj + + # Create clojure alias + cat > $PKGX_INSTALL_DIR/bin/clojure << 'EOF' + #!/bin/bash + exec java -cp "{{PKGX_INSTALL_DIR}}/lib/clojure.jar" clojure.main "$@" + EOF + chmod +x $PKGX_INSTALL_DIR/bin/clojure + +provides: + - bin/clj + - bin/clojure + +test: + script: | + clj --version 2>&1 | grep -q "Clojure" + clojure -e "(println (+ 1 2))" | grep -q "3" From bbd6f855ab610483ce49a7946742125f231e8f85 Mon Sep 17 00:00:00 2001 From: Taryn Anthony Don Hill Date: Sat, 13 Jun 2026 07:10:52 -0500 Subject: [PATCH 2/2] Vendor clojure.org tools, from brew --- projects/clojure.org/package.yml | 69 ++++++++++++++------------------ 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/projects/clojure.org/package.yml b/projects/clojure.org/package.yml index 90875ab458..7a613192f9 100644 --- a/projects/clojure.org/package.yml +++ b/projects/clojure.org/package.yml @@ -1,53 +1,44 @@ -distributable: - url: https://github.com/clojure/clojure/archive/refs/tags/clojure-{{version}}.tar.gz - strip-components: 1 +distributable: ~ + +warnings: + - vendored versions: - github: clojure/clojure/releases/tags - strip: /^clojure-/ + github: clojure/brew-install/releases/tags -dependencies: - openjdk.org: ">=11" - maven.apache.org: "^3.8" +provides: + - bin/clj + - bin/clojure build: dependencies: - openjdk.org: ">=11" - maven.apache.org: "^3.8" - + curl.se: "*" + working-directory: ${{prefix}} script: | - # Ensure we're using the correct Java version - export JAVA_HOME=$(pkgx which java | xargs dirname | xargs dirname) + curl -LsSO https://github.com/clojure/brew-install/releases/download/{{version}}/clojure-tools-{{version}}.tar.gz + tar xzf clojure-tools-{{version}}.tar.gz - # Build the Clojure JAR - mvn clean package -DskipTests -Dproject.build.sourceEncoding=UTF-8 + mkdir -p {{prefix}}/bin \ + {{prefix}}/lib/clojure/libexec \ + {{prefix}}/share/man/man1 - # Create the clojure CLI script wrapper - mkdir -p $PKGX_INSTALL_DIR/bin + cp clojure-tools/deps.edn {{prefix}}/lib/clojure/ + cp clojure-tools/example-deps.edn {{prefix}}/lib/clojure/ + cp clojure-tools/tools.edn {{prefix}}/lib/clojure/ + cp clojure-tools/exec.jar {{prefix}}/lib/clojure/libexec/ + cp clojure-tools/clojure-tools-{{version}}.jar {{prefix}}/lib/clojure/libexec/ - # Copy the built JAR - cp target/clojure-*.jar $PKGX_INSTALL_DIR/lib/clojure.jar + # Strip +brewing to get the final installed path + brewing_prefix="{{prefix}}" + final_prefix="${brewing_prefix%+brewing}" - # Create the clj wrapper script - cat > $PKGX_INSTALL_DIR/bin/clj << 'EOF' - #!/bin/bash - # Clojure REPL wrapper - exec java -cp "{{PKGX_INSTALL_DIR}}/lib/clojure.jar" clojure.main "$@" - EOF - chmod +x $PKGX_INSTALL_DIR/bin/clj + sed -e "s@PREFIX@${final_prefix}/lib/clojure@g" clojure-tools/clojure > {{prefix}}/bin/clojure + sed -e "s@BINDIR@${final_prefix}/bin@g" clojure-tools/clj > {{prefix}}/bin/clj + chmod 755 {{prefix}}/bin/clojure {{prefix}}/bin/clj - # Create clojure alias - cat > $PKGX_INSTALL_DIR/bin/clojure << 'EOF' - #!/bin/bash - exec java -cp "{{PKGX_INSTALL_DIR}}/lib/clojure.jar" clojure.main "$@" - EOF - chmod +x $PKGX_INSTALL_DIR/bin/clojure + cp clojure-tools/clojure.1 {{prefix}}/share/man/man1/ + cp clojure-tools/clj.1 {{prefix}}/share/man/man1/ -provides: - - bin/clj - - bin/clojure + rm -rf clojure-tools clojure-tools-{{version}}.tar.gz -test: - script: | - clj --version 2>&1 | grep -q "Clojure" - clojure -e "(println (+ 1 2))" | grep -q "3" +test: clojure --version \ No newline at end of file