From 2146953c02fbc71cfeba20ac06d49d755a20a12b Mon Sep 17 00:00:00 2001 From: Yurii Rashkovskii Date: Sun, 2 Dec 2012 11:26:22 -0800 Subject: Drop agner support Closes #32 --- README.md | 52 ++--------------------------- bash_completion/kerl | 10 +----- kerl | 94 ++-------------------------------------------------- 3 files changed, 6 insertions(+), 150 deletions(-) diff --git a/README.md b/README.md index c685c28..636c6f6 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,6 @@ Easy building and installing of [Erlang/OTP](http://www.erlang.org) instances Kerl aims to be shell agnostic and its only dependencies, excluding what's required to actually build Erlang/OTP, are curl and git. -Unless explicitly disabled, [agner](http://erlagner.org) is installed automatically in the sandboxes for supported Erlang/OTP versions. - All is done so that, once a specific release has been built, creating a new installation is as fast as possible. Downloading @@ -53,8 +51,6 @@ Pick your choice and build it: Extracting source code Building Erlang/OTP R14B02 (r14b02), please wait... Erlang/OTP R14B02 has been successfully built - Fetching and building agner... - Agner has been successfully built Note that named builds allow you to have different builds for the same Erlang/OTP release with different configure options: @@ -64,8 +60,6 @@ Note that named builds allow you to have different builds for the same Erlang/OT Extracting source code Building Erlang/OTP R14B02 (r14b02_hipe), please wait... Erlang/OTP R14B02 (r14b02_hipe) has been successfully built - Fetching and building agner... - Agner has been successfully built (Note that kerl uses the otp_build script internally, and './otp_build configure' disables HiPE on linux) @@ -75,18 +69,15 @@ You can verify your build has been registered: R14B02,r14b02 R14B02,r14b02_hipe -Now install a build to some location (optionally you can disable agner support by adding KERL_DISABLE_AGNER=yes to your $HOME/.kerlrc file, or on the contrary define a list of additional packages to install using the KERL_AGNER_AUTOINSTALL directive in the same file or on the command line): +Now install a build to some location: $ kerl install r14b02 /path/to/install/dir/ Installing Erlang/OTP R14B02 (r14b02) in /path/to/install/dir... - Installing agner in /path/to/install/dir... You can activate this installation running the following command: . /path/to/install/dir/activate Later on, you can leave the installation typing: kerl_deactivate -Note that you can install an agnerized version of rebar along with agner using KERL_INSTALL_AGNERIZED_REBAR in your .kerlrc file or on the command line. - Here again you can check the installation's been registered: $ kerl list installations @@ -96,31 +87,13 @@ And at last activate it: $ . /path/to/install/dir/activate -Activation will backup your $PATH, prepend it with the installation's bin/ directory and do the right thing with AGNER_* vars to constrain agner operations to the sandbox. Thus it's only valid for the current shell session, and until you activate another installation or call kerl_deactivate. +Activation will backup your $PATH, prepend it with the installation's bin/ directory. Thus it's only valid for the current shell session, and until you activate another installation or call kerl_deactivate. You're now ready to work with your r14b02 installation: $ erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.8.3 - $ agner version - 0.4.16 - -You can use agner to install packages in your activated installation, they'll be directly available: - - $ agner install cowboy - (...) - Installed to: - /path/to/install/dir/lib/cowboy-@master - - $ erl - (...) - Eshell V5.8.3 (abort with ^G) - 1> application:start(cowboy). - ok - -Note that you can also define a list of packages to be autoinstalled on agner enabled installations using the KERL_AGNER_AUTOINSTALL entry in you $HOME/.kerlrc file - When you're done just type: $ kerl_deactivate @@ -161,20 +134,12 @@ You can easily deploy an installation to another host having ssh and rsync acces Later on, you can leave the installation typing: kerl_deactivate -You can update the agner version associated with a specific build (this will only affect installations made after that): - - $ kerl update agner r14b02 - Updating agner for build r14b02... - agner has been updated successfully - As an experimental feature, you can build Erlang directly from a git repository with a command of the form "kerl build git " where can be either a branch, a tag or a commit id as it will be passed to "git checkout": $ kerl build git https://github.com/erlang/otp.git dev r14b02_dev Checking Erlang/OTP git repositoy from https://github.com/erlang/otp.git... Building Erlang/OTP r14b02_dev from git, please wait... Erlang/OTP r14b02_dev from git has been successfully built - Fetching and building agner... - Agner has been successfully built Tuning ====== @@ -188,8 +153,6 @@ You can set the following variables: - KERL_DEFAULT_INSTALL_DIR if set in ~/.kerlrc, install builds to this dir if no path is provided on installs, (recommend "$KERL_BASE_DIR/installs") - KERL_CONFIGURE_OPTIONS options to pass to Erlang's ./configure script, e.g. --without-termcap - KERL_CONFIGURE_APPLICATIONS if non-empty, subset of applications used in the builds (and subsequent installations) process, e.g. "kernel stdlib sasl" -- KERL_DISABLE_AGNER if non-empty will disable agner support -- KERL_AGNER_AUTOINSTALL a list of packages to pre-install - KERL_SASL_STARTUP use SASL system startup instead of minimal - KERL_USE_AUTOCONF use autoconf in the builds process - KERL_INSTALL_MANPAGES if non-empty will install manpages @@ -228,10 +191,6 @@ Create a named build either from an official Erlang/OTP release or from a git re ### Tuning -#### Disable agner - -You can disable agner support by setting KERL_DISABLE_AGNER=yes in your $HOME/.kerlrc file - #### Configure options You can specify the configure options to use when building Erlang/OTP with the KERL_CONFIGURE_OPTIONS variable, either in your $HOME/.kerlrc file or prepending it to the command line. @@ -270,10 +229,6 @@ If path is omitted the current working directory will be used. However, if KERL_ ### Tuning -#### Auto-installing packages - -You can auto-install agner packages listing them in the KERL_AGNER_AUTOINSTALL variable in your $HOME/.kerlrc file or on the command line, e.g. KERL_AGNER_AUTOINSTALL="erlzmq cowboy" - #### SASL startup You can have SASL started automatically setting KERL_SASL_STARTUP=yes in your $HOME/.kerlrc file or prepending it to the command line @@ -318,12 +273,11 @@ You can have additional options given to RSYNC by setting them in the KERL_DEPLO update ------ -Update the releases list or the agner version of the specified named build +Update the list of releases ### Syntax kerl update releases - kerl update agner list ---- diff --git a/bash_completion/kerl b/bash_completion/kerl index 62efa00..559d844 100644 --- a/bash_completion/kerl +++ b/bash_completion/kerl @@ -49,15 +49,7 @@ _kerl() COMPREPLY=( $( compgen -W "build installation $words" -- "$cur") ) ;; update) - COMPREPLY=( $( compgen -W "releases agner" -- "$cur") ) - ;; - agner) - if [ "$COMP_CWORD" -eq 3 ]; then - if [ -f "$HOME/.kerl/otp_builds" ]; then - BUILDS=`cat "$HOME/.kerl/otp_builds" | cut -d "," -f 2` - fi - fi - COMPREPLY=( $( compgen -W "$BUILDS" -- "$cur") ) + COMPREPLY=( $( compgen -W "releases" -- "$cur") ) ;; *) if [ "$COMP_CWORD" -eq 3 ]; then diff --git a/kerl b/kerl index 601cf3c..a5b5e53 100755 --- a/kerl +++ b/kerl @@ -106,7 +106,7 @@ usage() echo " build Build specified release or git repository" echo " install Install the specified release at the given location" echo " deploy Deploy the specified installation to the given host and location" - echo " update Update agner or the list of available releases from erlang.org" + echo " update Update the list of available releases from erlang.org" echo " list List releases, builds and installations" echo " delete Delete builds and installations" echo " active Print the path of the active installation" @@ -146,31 +146,10 @@ check_releases() fi } -# c.f. agner issue #98 -# https://github.com/agner/agner/issues/#issue/98 -KERL_NO_AGNER_SUPPORT="R10B-0 R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 -R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 -R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B R13B01 R13B02 R13B03 R13B04" - KERL_NO_LION_SUPPORT="R10B-0 R10B-2 R10B-3 R10B-4 R10B-5 R10B-6 R10B-7 R10B-8 R10B-9 R11B-0 R11B-1 R11B-2 R11B-3 R11B-4 R11B-5 R12B-0 R12B-1 R12B-2 R12B-3 R12B-4 R12B-5 R13A R13B R13B01 R13B02 R13B03 R13B04 R14A R14B R14B01 R14B02 R14B03" -agner_support() -{ - if [ -n "$KERL_DISABLE_AGNER" ]; then - return 1; - fi - - for v in $KERL_NO_AGNER_SUPPORT; do - if [ "$v" = "$1" ]; then - return 1 - fi - done - - return 0 -} - lion_support() { for v in $KERL_NO_LION_SUPPORT; do if [ "$v" = "$1" ]; then @@ -232,24 +211,6 @@ assert_valid_installation() return 0 } -do_update_agner() -{ - rel=`get_release_from_name $1` - if [ $? -ne 0 ]; then - echo "Unknown build name $1" - exit 1 - fi - TARGET="$KERL_BUILD_DIR/$1/release_$rel" - cd "$KERL_BUILD_DIR/$1/agner_$rel" && \ - git pull && - PATH="$KERL_BUILD_DIR/$1/otp_src_$rel/bin:$PATH" \ - make > /dev/null 2>&1 - if [ $? -ne 0 ]; then - return 1 - fi - return 0 -} - assert_build_name_unused() { if [ -f "$KERL_BASE_DIR/otp_builds" ]; then @@ -342,17 +303,6 @@ do_git_build() ./Install $INSTALL_OPT "$KERL_BUILD_DIR/$3/release_git" > /dev/null 2>&1 echo "Erlang/OTP $3 from git has been successfully built" list_add builds "git,$3" - if [ -z "$KERL_DISABLE_AGNER" ]; then - echo "Fetching and building agner..." - cd "$KERL_BUILD_DIR/$3" && \ - git clone https://github.com/agner/agner.git agner_git > /dev/null 2>&1 && \ - cd agner_git && \ - PATH="$KERL_BUILD_DIR/$3/otp_src_git/bin:$PATH" make > /dev/null 2>&1 && \ - if [ $? -ne 0 ]; then - echo "Agner install failed"; exit 1 - fi - echo "Agner has been successfully built" - fi } do_build() @@ -424,17 +374,6 @@ do_build() ./Install $INSTALL_OPT "$KERL_BUILD_DIR/$2/release_$1" > /dev/null 2>&1 echo "Erlang/OTP $1 ($2) has been successfully built" list_add builds "$1,$2" - if agner_support $1; then - echo "Fetching and building agner..." - cd "$KERL_BUILD_DIR/$2" && \ - git clone https://github.com/agner/agner.git agner_$1 > /dev/null 2>&1 && \ - cd agner_$1 && \ - PATH="$KERL_BUILD_DIR/$2/otp_src_$1/bin:$PATH" make > /dev/null 2>&1 && \ - if [ $? -ne 0 ]; then - echo "Agner install failed"; exit 1 - fi - echo "Agner has been successfully built" - fi } do_install() @@ -521,20 +460,6 @@ if [ -n "\$BASH" -o -n "\$ZSH_VERSION" ]; then hash -r fi ACTIVATE - if agner_support $1; then - echo "Installing agner in $absdir..." - cp "$KERL_BUILD_DIR/$1/agner_$rel/agner" "$absdir/bin/" - if [ -n "$KERL_INSTALL_AGNERIZED_REBAR" ]; then - echo "Installing agnerized rebar in $absdir..." - cp "$KERL_BUILD_DIR/$1/agner_$rel/agner" "$absdir/bin/rebar" - fi - if [ -n "$KERL_AGNER_AUTOINSTALL" ]; then - for i in $KERL_AGNER_AUTOINSTALL; do - echo "Autoinstalling $i" - agner install $i > /dev/null 2>&1 - done - fi - fi if [ "$rel" != "git" -a -n "$KERL_INSTALL_MANPAGES" ]; then echo "Fetching and installing manpages..." FILENAME=otp_doc_man_$rel.tar.gz @@ -668,7 +593,7 @@ cleanup_usage() update_usage() { - echo "usage: $0 $1 " + echo "usage: $0 $1 " } get_active_path() @@ -777,21 +702,6 @@ case "$1" in echo "The available releases are:" list_print releases spaces ;; - agner) - if [ $# -ne 3 ]; then - echo "usage: $0 $1 $2 " - exit 1 - fi - if agner_support $3; then - echo "Updating agner for build $3..." - if do_update_agner $3; then - echo "agner has been updated successfully" - else - echo "failed to update agner" - exit 1 - fi - fi - ;; *) update_usage exit 1 -- cgit v1.2.3