Como definir o número da versão reportada por '$ tmux -V', durante a compilação de um pacote 'tmux'?

0

Estou compilando o tmux a partir do seu código-fonte através de um script que se parece com isso:

set -e
DIR="${HOME}/Programs/"
build() {
  [[ -d "${DIR}" ]] || mkdir -p "${DIR}"
  cd "${DIR}"
  if [[ ! -d tmux ]]; then
    git clone https://github.com/tmux/tmux
  fi
  cd tmux
  git stash
  git checkout master
  git pull
  make clean; make distclean
  sh autogen.sh
  ./configure
  make
}
install() {
  dpkg -r tmux
  checkinstall --pkgname tmux --pkgversion '9999:9999.9999' -y
}
build
install

Compila e instala o tmux, como esperado.
Mas ainda há um problema, que é a versão relatada por $ tmux -V :

$ tmux -V
tmux master

Ele informa tmux master , enquanto eu preferiria tmux X.Y , X.Y sendo a versão da última versão. Por exemplo, no momento, a versão mais recente é 2.8 , por isso gostaria de $ tmux -V para gerar tmux 2.8 .

Existe alguma maneira de alterar este resultado?

Eu olhei para a saída de ./configure --help e procurei por uma opção para definir a versão do processo tmux, mas não consegui encontrar uma.

No momento, incluí um comando sed no meu script para que ele edite automaticamente o arquivo configure.ac e atribua um número de versão grande 99.99 (não sei como obter programaticamente o número da versão da última versão):

sh autogen.sh
sed -i 's/AC_INIT(tmux, master)/AC_INIT(tmux, 99.99)/' configure.ac
./configure

Existe uma maneira melhor?

A razão pela qual eu faço esta pergunta é porque eu uso o plugin tmux-open , que não funciona como esperado quando $ tmux -V produz tmux master .

O último usa esta linha de código para determinar a versão do processo atual do tmux:

$ tmux_version="$(tmux -V | cut -d ' ' -f 2)"

O plugin então usa essa variável para determinar a sintaxe dos comandos instalação de atalhos de teclado .

As ligações de teclas não estão instaladas na minha máquina e acho que é devido à saída de $ tmux -V . Porque se eu substituir esta linha no plug-in:

if [[ $tmux_version == $1 ]]

com esta linha:

if [[ $tmux_version == $1 ]] || [[ $tmux_version == 'master' ]]

Em seguida, o plug-in instala corretamente suas associações de teclas.

    
por user938271 14.09.2018 / 21:18

1 resposta

2

insira uma linha como:

sed '/AC_INIT/s/master/m4_esyscmd_s([git describe])/' -i configure.ac

antes da chamada sh autogen.sh no seu script.

com base na resposta aqui

    
por 14.09.2018 / 22:05

Tags