F12, спасибо, но хочу оживить стандартный апплет, тем более, что решение есть. Однако, у меня почему-то не работает...
Что делал:
1. Смотрим версию своего апплета. Нажимаем правой клавишей мыши на апплет, и в контекстном меню выбираем пункт "О приложении". На одной из моих машин 1.26.1.
2. В браузере, на ГитХабе проекта, в релизах ищем свою версию:
https://github.com/mate-desktop/libmateweather/releases
3. Переходим во временную папку, и скачиваем исходники::
$ cd /tmp/
$ wget -c https://github.com/mate-desktop/libmateweather/archive/refs/tags/v1.26.1.zip
4. Распаковываем их, и переходим в распакованную папку libmateweather, в которой находится пропатчиваемый файл :
$ unzip v1.26.1.zip
$ cd libmateweather-1.26.1/libmateweather/
5. Скачиваем в ту же папку патч для нашей ветки 1.26:
$ wget -O libmateweather-issue135.patch https://github.com/mate-desktop/libmateweather/commit/7e7baca66d1da49d26fd22c923e8787f85597e76.diff
6. Применяем патч:
(Завершилось неудачей)
$ patch -d /tmp/libmateweather-1.26.1/libmateweather/ -N -i libmateweather-issue135.patch
patching file weather-metar.c
Hunk #2 FAILED at 550.
1 out of 2 hunks FAILED -- saving rejects to file weather-metar.c.rej
Видимо, версия пропатчиваемого файла не совпадает с патчем...
Ну, раз с патчем не получается, будем изменять его вручную.
Открыл два окна. Слева с патчем, справа с файлом weather-metar.c и обнаружил три несовпадения. Первые два, отличаются номера строк. А третье, в weather-metar.c совсем другой адрес сервера:
В патче/А нужно
[member=9076]@[/member] -510,7 +510,7 / [member=9076]@[/member] -513,7 +513,7
[member=9076]@[/member] -550,7 +550,7 / [member=9076]@[/member] -553,7 +553,7
- "GET", "https://aviationweather.gov/cgi-bin/data/dataserver.php", / - "GET", "https://www.aviationweather.gov/adds/dataserver_current/httpparam",
Изменил вручную:
Было (libmateweather-issue135.patch):
diff --git a/libmateweather/weather-metar.c b/libmateweather/weather-metar.c
index 7bc24fc9..4698a077 100644
--- a/libmateweather/weather-metar.c
+++ b/libmateweather/weather-metar.c
@@ -510,7 +510,7
@@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
loc = info->location;
- searchkey = g_strdup_printf ("<raw_text>%s", loc->code);
+ searchkey = g_strdup_printf ("<raw_text>METAR %s", loc->code);
p = strstr (msg->response_body->data, searchkey);
g_free (searchkey);
if (p) {
@@ -550,7 +550,7
@@ metar_start_open (WeatherInfo *info)
}
msg = soup_form_request_new (
- "GET", "
https://aviationweather.gov/cgi-bin/data/dataserver.php",
+ "GET", "
https://aviationweather.gov/api/data/dataserver",
"dataSource", "metars",
"requestType", "retrieve",
"format", "xml",
Стало (libmateweather-issue135_my_ver_1.26.1.patch):
diff --git a/libmateweather/weather-metar.c b/libmateweather/weather-metar.c
index 7bc24fc9..4698a077 100644
--- a/libmateweather/weather-metar.c
+++ b/libmateweather/weather-metar.c
@@ -513,7 +513,7
@@ metar_finish (SoupSession *session, SoupMessage *msg, gpointer data)
loc = info->location;
- searchkey = g_strdup_printf ("<raw_text>%s", loc->code);
+ searchkey = g_strdup_printf ("<raw_text>METAR %s", loc->code);
p = strstr (msg->response_body->data, searchkey);
g_free (searchkey);
if (p) {
@@ -553,7 +553,7
@@ metar_start_open (WeatherInfo *info)
}
msg = soup_form_request_new (
- "GET", "
https://www.aviationweather.gov/adds/dataserver_current/httpparam",
+ "GET", "
https://aviationweather.gov/api/data/dataserver",
"dataSource", "metars",
"requestType", "retrieve",
"format", "xml",
Пробую патчить:
$ patch -d /tmp/libmateweather-1.26.1/libmateweather/ -N -i libmateweather-issue135_my_ver_1.26.1.patch
patching file weather-metar.c
Hunk #1 succeeded at 510 (offset -3 lines).
Hunk #2 succeeded at 550 (offset -3 lines).
Все пропатчилось!
Для контроля, сравнил файл weather-metar.c и weather-metar.c.orig. Всё пропатчилось как надо!
7. Переходим на уровень выше (в папку /tmp/libmateweather-1.26.1/)
$ cd ../
8. И собираем апплет:
$ ./autogen.sh --prefix=/usr
You need to install mate-common from the MATE Git
$ sudo apt-get install mate-common
$ ./autogen.sh --prefix=/usr
Now type `make' to compile libmateweather
$ make
$ sudo make install
9. Перезагружаем (Прибиваем апплет, чтобы он перезагрузился):
$ pkill -e mateweather-app
На этом всё. Должно работать, но не работает...
У кого получилось, укажите, что я упустил?