Package Details: junie-eap 1231.2-1

Git Clone URL: https://aur.archlinux.org/junie-eap.git (read-only, click to copy)
Package Base: junie-eap
Description: Junie command‑line client
Upstream URL: https://github.com/jetbrains-junie/junie
Licenses: LicenseRef-Junie
Conflicts: junie
Provides: junie
Submitter: harre
Maintainer: harre
Last Packager: harre
Votes: 0
Popularity: 0.000000
First Submitted: 2026-01-06 04:16 (UTC)
Last Updated: 2026-03-31 20:18 (UTC)

Latest Comments

harre commented on 2026-04-03 23:31 (UTC)

Thanks for the hint to use strace, it gave me enough flesh to give to ChatGPT that also hinted me to use

 jstack <pid>

That gave me some insight that it was apparently some gnome-keyring that failed to launch, I then noticed that it had popped up a window to unlock keyring on another monitor and after unlocking I got it running.

Thanks for the hint and suggestion and now I have a more automatic way of getting junie running :)

rubin55 commented on 2026-04-01 08:12 (UTC) (edited on 2026-04-01 08:18 (UTC) by rubin55)

@harre with me it works normally, no hangs, must be something specific to your system maybe; you could try starting with strace to see where it's waiting (output is not great too read, but maybe claude or friends can help with interpretation!) Another thing I can think of is that it get's confused by old config files (you'd have to find ~ -type d -name junie, find ~ -type d -name .junie and potentially find ~ -type d -name JetBrains to figure out where it stores things)

harre commented on 2026-03-31 20:20 (UTC)

I have applied your patch now, thanks @rubin55. I have some issues of running junie though, it just hangs and nothing happens.

$ junie --version
Junie version: 1231.2
$ junie
... nothing happens here

Please test and report back, I'll file a bug upstream with my issue. I seem to be able to get junie working when I'm on older versions so I guess something is triggering it.

harre commented on 2026-03-31 12:34 (UTC)

@rubin55 thanks for your patch. I've been swamped with work lately and it's on my to-do to bump the package as they have updated the EAP again.

I'll try test your patch tonight or tomorrow after work. But it sounds promising to automatically get latest version

rubin55 commented on 2026-03-31 12:10 (UTC) (edited on 2026-03-31 12:50 (UTC) by rubin55)

Hey, I noticed this package is kind of interesting in that is is like a -git package, but the git repo contains no source, yet you want to obtain the eap so you know what the latest version is.

I've created a modiefied PKGBUILD that determines the latest eap version and download url by parsing update-info-eap.jsonl from the git repository. It means you can treat the -eap like it's a -git package; users will always obtain the latest eap.

# Maintainer: Markus Hartung <mail@hartmark.se>

pkgname=junie-eap
_binname=junie
provides=('junie')
conflicts=('junie')

pkgver=1231.2
pkgrel=1
pkgdesc="Junie command‑line client"
arch=('x86_64' 'aarch64')
options=('!strip' 'staticlibs')
url="https://github.com/jetbrains-junie/junie"

license=('LicenseRef-Junie')
# License details: https://www.jetbrains.com/legal/docs/terms/jetbrains-junie/

depends=(
  'bash'
  'glibc'
  'gcc-libs'
  'zlib'
  'libx11'
  'libxext'
  'libxrender'
  'libxi'
  'libxtst'
  'alsa-lib'
  'freetype2'
  'harfbuzz'
  'libpng'
  'libjpeg-turbo'
  'lcms2'
  'giflib'
  'pcsclite'
)
makedepends=('git' 'unzip' 'curl' 'jq')
optdepends=()

source=("$pkgname::git+https://github.com/jetbrains-junie/junie.git"
        'LICENSE')
sha512sums=('SKIP'
            'SKIP')

_latest_eap_version() {
  jq -rs 'map(select(.version? != null) | .version) | max_by(split(".") | map(tonumber))' \
    "$srcdir/$pkgname/update-info-eap.jsonl"
}

_eap_download_url() {
  local _version="$1"
  local _platform="$2"

  jq -rse --arg version "$_version" --arg platform "$_platform" '
    map(select(.version == $version and .platform == $platform and .downloadUrl? != null))
    | .[0].downloadUrl
  ' "$srcdir/$pkgname/update-info-eap.jsonl"
}

pkgver() {
  cd "$pkgname"
  _latest_eap_version
}

prepare() {
  cd "$srcdir"
  local _version
  local _platform
  local _download_url
  local _archive

  _version="$(_latest_eap_version)"

  case "$CARCH" in
    x86_64) _platform="linux-amd64" ;;
    aarch64) _platform="linux-aarch64" ;;
    *)
      printf 'Unsupported architecture: %s\n' "$CARCH" >&2
      return 1
      ;;
  esac

  if ! _download_url="$(_eap_download_url "$_version" "$_platform")"; then
    printf 'No download URL found for version %s on %s\n' "$_version" "$_platform" >&2
    return 1
  fi

  _archive="junie-eap-${_version}-${_platform}.zip"

  curl -fLo "$_archive" "$_download_url"
  unzip -o "$_archive"
}

package() {
    cd "${srcdir}"

    install -dm755 \
        "${pkgdir}/usr/bin" \
        "${pkgdir}/usr/lib/${pkgname}" \
        "${pkgdir}/usr/share/licenses/${pkgname}"

    cp -R --no-preserve=ownership \
        "${srcdir}/junie-app/"* \
        "${pkgdir}/usr/lib/${pkgname}/"

    cat << 'EOF' > "${pkgdir}/usr/bin/${_binname}"
#!/usr/bin/env bash
exec /usr/lib/junie-eap/bin/junie "$@"
EOF

    chmod 755 "${pkgdir}/usr/bin/${_binname}"

    install -Dm644 \
        "${srcdir}/LICENSE" \
        "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

PS: I've rewritten the file, my initial version did this based on git tag, but this new version is better because it does this based on what JetBrains considers EAP (which is not the latest version tag, nightly is not same as EAP apparently).

harre commented on 2026-02-22 22:52 (UTC)

Note that this package tracks EAP version, I have bumped to 802.4 now