Nesse caso, não é muito difícil fazer o download das fontes e examiná-las para ver se é óbvio o que alterar. Então apenas reconstrua seu próprio binário pv
. Se você estiver usando um sistema baseado em rpm
, tente o seguinte (como um usuário comum):
$ yumdownloader --source pv
(Isso deve funcionar mesmo se você tiver dnf em vez de yum). Você deve acabar com um arquivo com o sufixo .src.rpm
. O resto do nome irá variar dependendo do seu lançamento. Instalar e compilar:
$ rpm -i pv-1.6.0-1.fc22.src.rpm
$ rpmbuild -bc ~/rpmbuild/SPECS/pv.spec
Você não precisa ser root para instalar as fontes, pois elas são colocadas em ~/rpmbuild
. Você pode, no entanto, precisar instalar o rpmbuild
e outros pacotes para fazer a compilação. Você deve obter o binário final final normal em:
$ file ~/rpmbuild/BUILD/pv-1.6.0/pv
Entre as fontes, por exemplo MiB, para encontrar uma mudança provável. Eu achei que ~/rpmbuild/BUILD/pv-1.6.0/src/pv/display.c
tinha uma rotina pv__si_prefix()
que usou um parâmetro is_bytes
que determinou se dividir por 1000 ou 1024. Eu simplesmente editei essa rotina para forçá-la a 0 adicionando
is_bytes = 0;
logo após as declarações (antes de if (is_bytes) {
). Então, faça make
para obter o binário recompilado da seguinte forma:
$ cd ~/rpmbuild/BUILD/pv-1.6.0/
$ make
O novo arquivo pv
deve fazer o que você deseja.
Em um sistema de empacotamento deb
, você tem etapas semelhantes para fazer:
$ sudo apt-get install dpkg-dev debhelper
$ apt-get source pv
$ cd pv-1.6.0/
$ dpkg-buildpackage -b -nc
... edit src/pv/display.c
$ make