Патчим conky, исправляем баг работы с apcupsd

Я конечно все понимаю, философия Arhc'a такая, что все должно работать как задумывал разработчик, но если проект мягко говоря заброшен, а очень нужная фичя в программе есть, но не работает, вот тут то к нам на помощь и приходят патчи.


Многие насмехаются над пользователями conky, за излишество выводимых данных, и в частности за версию ядра, лично я в этом ничего такого не вижу, ядро обновляется как минимум раз в неделю, и бывает забываешь какая там версия… Но сейчас не об этом, установив conky и скопировав старый конфиг из debian, я не увидел не температуры видеокарты, не процессора… да даже в статусе бесперебойника стояло N/A хотя служба apcusbd была настроена и прекрасно работала. Я стал разбираться, выяснилось что это древний баг коньков, а патч есть в пакете debian'a. Погнали, заставим эту сучку работать!
Я особо не стал заморачиваться и воспользовался системой PKGBUILD Arhc'a.
Я взял готовый PKBUILD из [https://aur.archlinux.org/packages/conky-lua-nv/] и немножко его подправил.
# Maintainer: Jon Wilson <bugs@pandorica.net>
# Contributor: Spyros Stathopoulos <foucault.online[at]gmail[dot]com>
# Contributor: Andrwe Lord Weber <lord-weber-andrwe [at] andrwe [dot] org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: James Rayner <james@archlinux.org>
# Contributor: Partha Chowdhury <kira.laucas@gmail.com>

pkgname=conky-nv
_pkgname=conky
pkgver=1.9.0
pkgrel=6
pkgdesc="An advanced system monitor for X based on torsmo with lua and nvidia enabled"
arch=('i686' 'x86_64')
url="http://conky.sourceforge.net/"
license=('custom')
replaces=('torsmo' 'conky')
conflicts=('conky')
provides=('conky')
depends=('alsa-lib' 'libxml2' 'curl' 'cairo' 'libxft' 'glib2' 'libxdamage' 'imlib2' )
makedepends=('pkgconfig' 'libxnvctrl')
optdepends=('nvidia: for GT4xx and newer GPUs',
  'nvidia-340xx: for G8x, G9x, GT2xx GPUS',
  'nvidia-304xx: for GeForce 6/7 GPUs')
backup=(etc/conky/conky.conf etc/conky/conky_no_x11.conf)
source=(http://downloads.sourceforge.net/project/${_pkgname}/${_pkgname}/${pkgver}/${_pkgname}-${pkgver}.tar.bz2 apcupsd.patch 3616.patch)
md5sums=('d3de615f43aadc98d555e05ad9e902c2'
'7f25a356d8944c82bebc1c85c88c4e27'
'8c744eb18015df9d06b12ec81a45ee76')
install="conky-nv.install"

build() {
  cd ${srcdir}/${_pkgname}-${pkgver}
  pwd
  patch -p1 < ../apcupsd.patch
  patch -p1 < ../3616.patch

  sed -i '/#include <curl\/types.h>/d' ${srcdir}/${_pkgname}-${pkgver}/src/ccurl_thread.c
  ./configure --prefix=/usr \
              --sysconfdir=/etc \
              --enable-ibm \
              --enable-imlib2 \
              --enable-ibm \
              --enable-nvidia
  make
}

package() {
  cd ${srcdir}/${_pkgname}-${pkgver}
  make DESTDIR=${pkgdir} install
  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE
  install -D -m644 extras/vim/syntax/conkyrc.vim "${pkgdir}"/usr/share/vim/vimfiles/syntax/conkyrc.vim
  install -D -m644 extras/vim/ftdetect/conkyrc.vim "${pkgdir}"/usr/share/vim/vimfiles/ftdetect/conkyrc.vim
}

# vim:ts=2:et:sw=2
Выкладываю патчи отдельно [3616.patch] [apcupsd.patch]
Уже собранный пакет [conky-nv-1.9.0-6-x86_64.pkg.tar.xz]
И если у вас есть желание собрать самим скачиваем [conky-nv.tar.gz],
распаковываем tar xf conky-nv.tar.gz, заходим в каталог cd conky-nv и начинаем сборку makepkg если все прошло хорошо, в этом же каталоге должен появиться собранный пакет, остается его только установить pacman -U conky-nv-1.9.0-6-x86_64.pkg.tar.xz(так он будет называется если у вас 64х битная система).
Ну а теперь пользуемся и наслаждаемся рабочим conky.
Мой скрин и конфиг коньков:


~/.conkyrc
background no
update_interval 1
minimum_size 310 450
cpu_avg_samples 6
net_avg_samples 2
temperature_unit celsius

double_buffer yes
no_buffers yes
text_buffer_size 2048

gap_x 20
gap_y 40
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
alignment tr

draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

override_utf8_locale yes
use_xft yes
xftfont caviar dreams:size=8
xftalpha 0.5
uppercase no

default_color FFFFFF
color1 DDDDDD
color2 AAAAAA
color3 888888
color4 EF5A29
color4 FF0708

#lua_load ~/.conky/conky_grey.lua
lua_draw_hook_post main


TEXT
${font Ubuntu:size=10,weight:bold}${color}System
${font Ubuntu:size=10,weight:normal}${color}Kernel${alignr}${kernel}
${color}Uptime${alignr}${uptime}

${font Ubuntu:size=10,weight:bold}${color}CPU:     ${cpu cpu0}% ${alignr} ${loadavg}
${font Ubuntu:size=10,weight:bold}${color}MEM:   ${memperc}% ${alignr}$memeasyfree
${cpugraph cpu0 FF0019 0AFF00 s}
${font Ubuntu:size=10,weight:normal}${color}Processes: $processes Running: $running_processes
${font Bitstream Vera Sans Mono:size=10,weight:normal}${color}Name             PID     CPU%   MEM%
${color1} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem_res 1}
${color2} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem_res 2}
${color3} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem_res 3}
${color3} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem_res 4}

${font Ubuntu:size=10,weight:bold}${color}Disks I/O:${alignr}$diskio
${font Ubuntu:size=10,weight:normal}${color}root:${alignr}${fs_free /}
${color}tmp:${alignr}${fs_free /tmp}
${color}home:${alignr}${fs_free /home}
${color}var:${alignr}${fs_free /var}

${font Ubuntu:size=10,weight:bold}${color}Network
${font Ubuntu:size=10,weight:normal}${color}eth0:  ${downspeed eth0}${goto 100}${downspeedgraph eth0 10,60 000000 00ff00}${goto 190}${upspeedgraph eth0 10,60 000000 ff0000}${alignr}${upspeed eth0}
${color}eth1:  ${downspeed eth1}${goto 100}${downspeedgraph eth1 10,60 000000 00ff00}${goto 190}${upspeedgraph eth1 10,60 000000 ff0000}${alignr}${upspeed eth1}
${color}total: ${totaldown eth0}${alignr}${totalup eth0}

${color}Ping: yandex.ru:${alignr}${execpi 15 ~/.conky/ping.sh 93.158.134.3}

${font Ubuntu:size=10,weight:bold}${color}Temperature
${font Ubuntu:size=10,weight:normal}${color}CPU:${alignr}${hwmon 2 temp 2}°С
${color}System:${alignr}${hwmon 2 temp 1}°С
${color}Nvidia GPU:${alignr}${nvidia temp}°С
${color}HDD:${alignr}${hddtemp /dev/sdc}°С ${hddtemp /dev/sda}°С ${hddtemp /dev/sdb}°С

${font Ubuntu:size=10,weight:bold}${color}UPS${apcupsd localhost 3551}
${font Ubuntu:size=10,weight:normal}${color}Status:${alignr}${apcupsd_status}
${color}Time Left:${alignr}${apcupsd_timeleft}m
${color}Bcharge:${alignr}${apcupsd_charge}%
${color}Voltage:${alignr}${apcupsd_linev}V
${color}Load:${alignr}${apcupsd_load}%

${font Ubuntu:size=10,weight:bold}${color}Ports:${alignr}${font Ubuntu:size=10,weight:normal}${color}Total open: ${tcp_portmon 1 65535 count}
${font Bitstream Vera Sans Mono:size=10,weight:normal}${color}http:   ${tcp_portmon 80 80 count}
${color} ftp:   ${tcp_portmon 21 21 count}
${color}mumb:   ${tcp_portmon 64738 64738 count}
${color}prox:   ${tcp_portmon 3128 3128 count}
${color}sshd:   ${tcp_portmon 22 22 count}

${font Ubuntu:size=10,weight:bold}${color}Yandex.disk
${font Sans:size=10,weight:normal}${color}Status: ${alignr}${texeci 30 sed -n 2p ~/Yandex.Disk/.sync/status}

${font Ubuntu:size=10,weight:bold}${color}Курс $$ и € на ${time %d.%m.%Y}
${font Sans:size=10,weight:bold}${color}${execpi 3600 ~/.conky/zabugor.php}
~/.conky/ping.sh
#!/bin/bash
time=`ping $1 -c 1 | grep "time=" | awk '{print $7 $8}' | sed 's/time=//g'`
if [ -z $time ]
    then
        echo "\${color #ff0000}host is down"
    else
        echo "\${color #00ff00}"$time
fi
Единственное, если сервер не будет отвечать conky будут подвисать в ожидание окончания работы скрипта.
В связи скачек доллара, наваял небольшой скриптик на php, который получает с сайта центробанка текущий курс доллара и евро
~/.conky/zabugor.php
#!/usr/bin/php
<?php
$td = date("d/m/Y");
$xml = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$td);
print "\${alignr}$$ = ".$xml->Valute[9]->Value."р\n";
print "\${alignr}€ = ".$xml->Valute[10]->Value."р";
?>
Всем коньков.

Комментарии ()

    Есть вопрос или предложение пиши в Telegram @cloudsv

    Прямой эфир

    cloudsv 24 октября 2018, 00:27
    О жизни Обновление Scala Rider G4 0
    cloudsv 21 октября 2018, 23:16
    Arch Linux Памятка по основным утилитам Linux 0
    cloudsv 01 июня 2018, 01:39
    Telegram Настройка прокси mtproto для Telegram 28
    cloudsv 22 января 2018, 21:59
    Web Локальное зеркало обновлений Dr.web 0
    cloudsv 03 октября 2017, 10:55
    Web Пароль от резервной копии Bitrix 1
    cloudsv 09 июля 2017, 23:02
    Arch Linux Let's Encrypt это легко и просто 0