Package Details: tfenv 2.2.3-2

Git Clone URL: https://aur.archlinux.org/tfenv.git (read-only, click to copy)
Package Base: tfenv
Description: Terraform version manager inspired by rbenv
Upstream URL: https://github.com/tfutils/tfenv
Keywords: terraform
Licenses: MIT
Conflicts: terraform
Provides: terraform, tfenv
Submitter: zephrax
Maintainer: T4cC0re
Last Packager: T4cC0re
Votes: 12
Popularity: 0.078588
First Submitted: 2018-02-26 14:36 (UTC)
Last Updated: 2022-03-22 11:42 (UTC)

Dependencies (1)

Required by (13)

Sources (1)

Pinned Comments

T4cC0re commented on 2020-04-20 17:53 (UTC)

tfenv 2.0!

Also some under the hood improvements to the way this is packaged

  • Versions and the version file remain in /var/lib/tfenv/
  • Actual application is now installed to /opt/tfenv
  • Symlinks to /usr/bin are provided for both tfenv and terraform
  • Once you add your user to the tfenv group, you can manage versions as a non-root user

Latest Comments

OJFord commented on 2022-03-16 21:21 (UTC) (edited on 2022-03-16 21:22 (UTC) by OJFord)

@T4cC0re Fair enough! I still haven't encountered the problem, (nor has it managed to create them in /opt) though it's not immediately clear to me why.

T4cC0re commented on 2022-03-16 19:49 (UTC)

@OJFord this is to ensure, that tfenv can be installed system-wide without requiring root permissions to install new versions. The patched target directory is writable to users in the tfenv group, which you can add your own user to.

Considering that it is apparent you did not thoroughly test the version you packaged I removed you as a co-maintainer. I will update the package myself in the coming days.

OJFord commented on 2022-03-16 17:47 (UTC)

@WhiteAnthrax I'm not sure if there's some comments lost here, but certainly I'm lacking some context - what's the motivation for the 'use a separate dir for versions and the default version' sed patch?

Seems inevitably brittle, I'm just not sure it's worth the maintenance burden. Or why it's Arch specific for that matter, is there an upstream issue/PR?

ghthor commented on 2022-03-16 16:23 (UTC)

Patch by @ribugent is working, thanks!

alxndr13 commented on 2022-03-11 13:03 (UTC)

@ribugent thanks, the fix worked.

ribugent commented on 2022-03-10 07:19 (UTC)

Hi,

I have the same problem as @MigueldeCarvalho.

It seems that the 2.2.3 release has introduced a change incompatible with the current PKGBUILD which patches the code to install terraform versions and set the version file in /var/lib/tfenv/. The current patch does not work at all because we're seeing tfenv trying to make changes in /opt/tfenv/

Here's my patch to get everything working again

diff --git a/PKGBUILD b/PKGBUILD
index 93e9f58..2b8dc96 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
 # Maintainer: Oliver "OJFord" Ford <dev.aur@ojford.com>
 pkgname=tfenv
 pkgver=2.2.3
-pkgrel=1
+pkgrel=2
 epoch=
 pkgdesc="Terraform version manager inspired by rbenv"
 arch=("x86_64")
@@ -28,6 +28,7 @@ package() {
        mkdir -p "${pkgdir}/opt/tfenv/bin"

        # This patches tfenv to use a separate dir for versions and the default version
+       sed -i 's:${TFENV_CONFIG_DIR}/version:/var/lib/tfenv/version:g' libexec/tfenv-*
        sed -i 's:${TFENV_ROOT}/version:/var/lib/tfenv/version:g' libexec/tfenv-*

        ln -s "/opt/tfenv/bin/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"

Hope this helps

MigueldeCarvalho commented on 2022-03-08 11:31 (UTC)

Hey, I am getting this error with new v2.2.3

version '1.1.3' is not installed (set by /home/mike/Documents/Customers/PL/pupil-cloud-terraform/.terraform-version). Installing now as TFENV_AUTO_INSTALL==true
Installing Terraform v1.1.3
Downloading release tarball from https://releases.hashicorp.com/terraform/1.1.3/terraform_1.1.3_linux_amd64.zip
####################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.1.3/terraform_1.1.3_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
mkdir: cannot create directory ‘/opt/tfenv/versions’: Permission denied
Failed to make directory /opt/tfenv/versions/1.1.3
/opt/tfenv/libexec/tfenv-exec: line 105: /opt/tfenv/versions/1.1.3/terraform: No such file or directory

Thanks

OJFord commented on 2022-03-05 13:20 (UTC)

Hi, I'd be happy to help if you're looking for an extra maintainer. (I flagged out of date last month and have some open PRs on tfenv, so have some interest in/awareness of new releases.)

DenisBY commented on 2021-04-30 09:26 (UTC)

Please update to 2.2.1 because of this issue https://github.com/tfutils/tfenv/issues/259

T4cC0re commented on 2021-02-15 16:41 (UTC)

Hey there, sorry for the delay in getting this updated. All up2date now :)

T4cC0re commented on 2020-04-20 17:53 (UTC)

tfenv 2.0!

Also some under the hood improvements to the way this is packaged

  • Versions and the version file remain in /var/lib/tfenv/
  • Actual application is now installed to /opt/tfenv
  • Symlinks to /usr/bin are provided for both tfenv and terraform
  • Once you add your user to the tfenv group, you can manage versions as a non-root user

T4cC0re commented on 2019-12-07 13:32 (UTC)

@knotsies: You got it :) Just pushed 1.0.2-4

FYI in general: I know there is a tfenv 2.x, but that is not a stable release yet. I will not update this package with a non-stable release.

knotsies commented on 2019-12-07 13:26 (UTC)

Hello! Thanks for adding this package to the AUR!

tfenv appears to use unzip when installing a new version:

/usr/local/lib/tfenv/libexec/tfenv-install: line 177: unzip: command not found
tfenv: tfenv-install: [ERROR] Tarball unzip failed

Can unzip be added as a dependency of this package?

T4cC0re commented on 2019-09-11 14:23 (UTC)

Sorry it took so long. Applied the suggestion by WhiteAnthrax. @WhiteAnthrax if you are interested I would like to make you a co-maintainer. You seem to be more active than me :)

WhiteAnthrax commented on 2019-09-02 06:46 (UTC)

Oh.. sorry % diff -u PKGBUILD.orig PKGBUILD

--- PKGBUILD.orig   2019-09-02 14:42:42.000000000 +0900
+++ PKGBUILD    2019-09-02 15:46:12.305817135 +0900
@@ -2,7 +2,7 @@
 # Maintainer: Hendrik "T4cC0re" Meyer <aur@t4cc0.re>
 pkgname=tfenv
 pkgver=1.0.1
-pkgrel=2
+pkgrel=3
 epoch=
 pkgdesc="Terraform version manager inspired by rbenv"
 arch=("x86_64")
@@ -20,14 +20,16 @@
 package() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    mkdir -p "${pkgdir}/usr/local/bin"
-   mkdir -p "${pkgdir}/usr/local/libexec"
+   mkdir -p "${pkgdir}/usr/local/lib/tfenv/libexec"
    echo $srcdir
    ls -lah
+  sed -i 's:TFENV_ROOT="$(cd "$(dirname "$(readlink_f "${0}")")/.." \&\& pwd)":TFENV_ROOT="$(cd "$(dirname "$(readlink_f "${0}")")/../lib/tfenv" \&\& pwd)":' bin/tfenv
    install -m755 "bin/${pkgname}" "${pkgdir}/usr/local/bin/${pkgname}"
    install -m755 "bin/terraform" "${pkgdir}/usr/local/bin/terraform"
-   for i in `ls ${srcdir}/${pkgname}/libexec/`; do
-       install -m755 "${srcdir}/${pkgname}/libexec/$i" "${pkgdir}/usr/local/libexec/$i"
+   for i in `ls ${srcdir}/${pkgname}-${pkgver}/libexec/`; do
+       install -m755 "${srcdir}/${pkgname}-${pkgver}/libexec/$i" "${pkgdir}/usr/local/lib/tfenv/libexec/$i"
    done
    chmod +x ${pkgdir}/usr/local/bin/${pkgname}
+  install -m644 "${srcdir}/${pkgname}-${pkgver}/CHANGELOG.md" "${pkgdir}/usr/local/lib/tfenv/"
 }
 sha512sums=(9ec96f67f6c25d0bb93fa880da6e1fdd74d6a5f930b29c45779a878ddc547eb10d2e6bacbbd64ac9a2a11b90b022fff87cd861a20eb3a412e39812e26c92741f)

shihanng commented on 2019-08-29 13:47 (UTC)

We should remove the ${srcdir}/${pkgname}/ from the for-loop?

    for i in `ls ${srcdir}/${pkgname}/libexec/`; do
        install -m755 "${srcdir}/${pkgname}/libexec/$i" "${pkgdir}/usr/local/libexec/$i"
    done

Also, it seems very likely that 1.0.1 broke the installation via tfenv as now it expects to find CHANGELOG.md but this PKGBUILD does not copy/install that file.

https://github.com/tfutils/tfenv/pull/113

There is also issue about where to install CHANGELOG.md because /usr/local/ (which I think the upstream expects it to be at) might not be a good idea.

Solution could be we install the whole repository and symlink tfenv/bin/* to /usr/local/bin/` but I am not sure if that is a good practice for AUR.

T4cC0re commented on 2019-08-26 09:46 (UTC)

@WhiteAnthrax applied your suggestion

WhiteAnthrax commented on 2019-08-21 04:41 (UTC) (edited on 2019-08-21 04:43 (UTC) by WhiteAnthrax)

--- /tmp/tfenv/PKGBUILD 2019-08-09 08:14:48.000000000 +0900
+++ tfenv/PKGBUILD  2019-08-21 13:40:19.873113328 +0900
@@ -18,7 +18,7 @@
 validpgpkeys=()

 package() {
-   cd "${srcdir}/${pkgname}"
+   cd "${srcdir}/${pkgname}-${pkgver}"
    mkdir -p "${pkgdir}/usr/local/bin"
    mkdir -p "${pkgdir}/usr/local/libexec"
    echo $srcdir

T4cC0re commented on 2019-08-08 23:15 (UTC)

I just adopted the package and applied the suggested fixes :)

shihanng commented on 2019-04-11 13:36 (UTC)

Hi zephrax, based on comments by hsa and nesth, I've created a patch as an attempt to improve this package. Would you be interested in merging this? https://github.com/shihanng/tfenv/commit/154fc37a92aeed75e21167b3159b3d3d590704e6

hsa commented on 2018-10-28 21:10 (UTC) (edited on 2018-10-28 21:11 (UTC) by hsa)

Upstream URL and sources have changed:

- https://github.com/Zordrak/tfenv
- git@github.com:Zordrak/tfenv.git

nesth commented on 2018-10-26 21:28 (UTC)

Why is terraform a dependency and the tfenv provided wrapper not included?