Showing with 31,248 additions and 22,848 deletions.
  1. +1 −1 .travis.yml
  2. +11 −0 data/misc/io.github.Hexchat.Plugin.metainfo.xml.in
  3. +19 −1 data/misc/io.github.Hexchat.appdata.xml.in
  4. +71 −12 data/misc/meson.build
  5. +1 −2 meson.build
  6. +11 −2 meson_options.txt
  7. +1 −1 plugins/meson.build
  8. +1 −1 plugins/perl/lib/HexChat.pm
  9. +18 −10 plugins/perl/meson.build
  10. +368 −369 po/af.po
  11. +365 −368 po/am.po
  12. +571 −428 po/ast.po
  13. +397 −378 po/az.po
  14. +549 −419 po/be.po
  15. +440 −392 po/bg.po
  16. +658 −453 po/ca.po
  17. +551 −421 po/cs.po
  18. +778 −479 po/da.po
  19. +816 −493 po/de.po
  20. +602 −439 po/el.po
  21. +721 −461 po/en_GB.po
  22. +788 −484 po/es.po
  23. +532 −414 po/et.po
  24. +432 −390 po/eu.po
  25. +562 −425 po/fi.po
  26. +880 −508 po/fr.po
  27. +554 −423 po/gl.po
  28. +477 −402 po/gu.po
  29. +480 −406 po/hi.po
  30. +671 −455 po/hu.po
  31. +665 −455 po/id.po
  32. +861 −505 po/it.po
  33. +563 −421 po/ja_JP.po
  34. +574 −429 po/kn.po
  35. +745 −474 po/ko.po
  36. +636 −447 po/lt.po
  37. +469 −402 po/lv.po
  38. +8 −0 po/meson.build
  39. +543 −418 po/mk.po
  40. +367 −369 po/ml.po
  41. +383 −373 po/ms.po
  42. +773 −479 po/nb.po
  43. +552 −424 po/nl.po
  44. +373 −370 po/no.po
  45. +405 −380 po/pa.po
  46. +758 −475 po/pl.po
  47. +745 −474 po/pt.po
  48. +801 −487 po/pt_BR.po
  49. +632 −444 po/ru.po
  50. +365 −368 po/rw.po
  51. +494 −409 po/sk.po
  52. +520 −415 po/sl.po
  53. +791 −480 po/sq.po
  54. +543 −419 po/sr.po
  55. +502 −410 po/sr@latin.po
  56. +762 −476 po/sv.po
  57. +523 −410 po/th.po
  58. +773 −481 po/tr.po
  59. +564 −425 po/uk.po
  60. +69 −0 po/validate-textevent-translations
  61. +664 −445 po/vi.po
  62. +376 −371 po/wa.po
  63. +619 −430 po/zh_CN.po
  64. +464 −398 po/zh_TW.po
  65. +3 −3 src/common/outbound.c
  66. +3 −3 src/common/plugin.c
  67. +8 −0 src/common/plugin.h
  68. +3 −1 src/common/proto-irc.c
  69. +1 −1 src/common/server.c
  70. +1 −1 src/common/textevents.in
  71. +2 −2 src/fe-gtk/maingui.c
  72. +1 −0 src/fe-gtk/plugin-tray.c
  73. +2 −2 src/fe-gtk/plugingui.c
  74. +2 −25 src/fe-gtk/xtext.c
  75. +7 −5 win32/copy/copy.vcxproj
  76. +7 −5 win32/installer/hexchat.iss.tt
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -8,7 +8,7 @@ before_install:
install:
- docker run -d --privileged --cidfile=/tmp/cid --volume=${PWD}:/opt/hexchat hexchat/ubuntu-ci /bin/systemd --system
script:
- docker exec `cat /tmp/cid` /bin/sh -c 'meson /opt/hexchat /opt/hexchat-build -Dwith-text=true -Dwith-theme-manager=true && ninja -C /opt/hexchat-build install'
- docker exec `cat /tmp/cid` /bin/sh -c 'meson /opt/hexchat /opt/hexchat-build -Dwith-text=true -Dwith-theme-manager=true && ninja -C /opt/hexchat-build install && ninja -C /opt/hexchat-build test'
after_script:
- docker kill `cat /tmp/cid`
notifications:
Expand Down
11 changes: 11 additions & 0 deletions data/misc/io.github.Hexchat.Plugin.metainfo.xml.in
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
<id>io.github.Hexchat.Plugin.@NAME@</id>
<extends>io.github.Hexchat.desktop</extends>
<name>@NAME@ Plugin</name>
<summary>@SUMMARY@</summary>
<url type="homepage">https://hexchat.github.io/</url>
<project_license>@LICENSE@</project_license>
<metadata_license>CC0-1.0</metadata_license>
<update_contact>tingping_AT_fedoraproject.org</update_contact>
</component>
20 changes: 19 additions & 1 deletion data/misc/io.github.Hexchat.appdata.xml.in
Expand Up @@ -13,7 +13,6 @@
</description>
<url type="homepage">http://hexchat.github.io</url>
<url type="bugtracker">https://github.com/hexchat/hexchat</url>
<url type="translate">https://www.transifex.com/hexchat/hexchat</url>
<url type="donation">https://goo.gl/jESZvU</url>
<url type="help">https://hexchat.readthedocs.io/en/latest/</url>
<screenshots>
Expand All @@ -27,6 +26,25 @@
<id>hexchat.desktop</id>
</provides>
<releases>
<release date="2018-08-29" version="2.14.2">
<description>
<p>This is a minor release:</p>
<ul>
<li>Remove shift+click to close tab binding</li>
<li>Always unminimize when opening from tray</li>
<li>Fix some translations containing invalid text events</li>
<li>Fix sending server passwords starting with ":"</li>
</ul>
</description>
</release>
<release date="2018-03-13" version="2.14.1">
<description>
<p>This is a very minor bug-fix release:</p>
<ul>
<li>Fix performance regression</li>
</ul>
</description>
</release>
<release date="2018-03-10" version="2.14.0">
<description>
<p>This is largely a bug fix release though it has some large behind the scenes changes:</p>
Expand Down
83 changes: 71 additions & 12 deletions data/misc/meson.build
@@ -1,20 +1,23 @@
appdir = join_paths(get_option('datadir'), 'applications')
metainfodir = join_paths(get_option('datadir'), 'metainfo')
desktop_utils = find_program('desktop-file-validate', required: false)

if get_option('with-gtk')
hexchat_appdata = i18n.merge_file(
input: 'io.github.Hexchat.appdata.xml.in',
output: 'io.github.Hexchat.appdata.xml',
po_dir: '../../po',
install: true,
install_dir: join_paths(get_option('datadir'), 'metainfo')
)

appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test('Validate io.github.Hexchat.appdata.xml', appstream_util,
args: ['validate-relax', hexchat_appdata]
if get_option('with-appdata')
hexchat_appdata = i18n.merge_file(
input: 'io.github.Hexchat.appdata.xml.in',
output: 'io.github.Hexchat.appdata.xml',
po_dir: '../../po',
install: true,
install_dir: metainfodir
)

appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test('Validate io.github.Hexchat.appdata.xml', appstream_util,
args: ['validate-relax', hexchat_appdata]
)
endif
endif

desktop_conf = configuration_data()
Expand Down Expand Up @@ -66,3 +69,59 @@ if get_option('with-theme-manager')
install_dir: join_paths(get_option('datadir'), 'mime/packages')
)
endif

if get_option('with-plugin') and get_option('with-appdata')
plugin_metainfo = []

# FIXME: These should all get translated somewhere
if get_option('with-checksum')
plugin_metainfo += [
['Checksum', 'Calculates a checksum for all sent and recieved DCC files', 'MIT']
]
endif

if get_option('with-fishlim')
plugin_metainfo += [
['Fishlim', 'Allows setting a key for encrypted conversations', 'MIT AND GPL-2.0+']
]
endif

if get_option('with-lua') != 'false'
plugin_metainfo += [
['Lua', 'Provides a scripting interface in Lua', 'MIT']
]
endif

if get_option('with-perl') != 'false'
plugin_metainfo += [
['Perl', 'Provides a scripting interface in Perl', 'GPL-2.0+']
]
endif

if get_option('with-python') != 'false'
plugin_metainfo += [
['Python', 'Provides a scripting interface in Python', 'GPL-2.0+']
]
endif

if get_option('with-sysinfo')
plugin_metainfo += [
['Sysinfo', 'Adds command to display system information', 'GPL-2.0+']
]
endif

foreach metainfo : plugin_metainfo
name = metainfo[0]
conf = configuration_data()
conf.set('NAME', name)
conf.set('SUMMARY', metainfo[1])
conf.set('LICENSE', metainfo[2])

configure_file(
input: 'io.github.Hexchat.Plugin.metainfo.xml.in',
output: 'io.github.Hexchat.Plugin.@0@.metainfo.xml'.format(name),
configuration: conf,
install_dir: get_option('install-plugin-metainfo') ? metainfodir : '',
)
endforeach
endif
3 changes: 1 addition & 2 deletions meson.build
@@ -1,5 +1,5 @@
project('hexchat', 'c',
version: '2.14.0',
version: '2.14.2',
meson_version: '>= 0.38.0',
default_options: [
'c_std=gnu89',
Expand Down Expand Up @@ -131,7 +131,6 @@ global_ldflags = []
test_ldflags = [
'-Wl,-z,relro',
'-Wl,-z,now',
'-Wl,-pie',
# mingw
'-Wl,--dynamicbase',
'-Wl,--nxcompat',
Expand Down
13 changes: 11 additions & 2 deletions meson_options.txt
Expand Up @@ -28,6 +28,9 @@ option('with-theme-manager', type: 'boolean', value: false,
option('dbus-service-use-appid', type: 'boolean', value: false,
description: 'Rename dbus service to match app-id, required for Flatpak'
)
option('with-appdata', type: 'boolean',
description: 'Install appdata files for app stores'
)

# Plugins
option('with-checksum', type: 'boolean',
Expand All @@ -42,8 +45,8 @@ option('with-fishlim', type: 'boolean',
option('with-lua', type: 'string', value: 'luajit',
description: 'Lua scripting plugin, value is pkg-config name to use or "false"'
)
option('with-perl', type: 'boolean',
description: 'Perl scripting plugin'
option('with-perl', type: 'string', value: 'perl',
description: 'Perl scripting plugin, value is path to perl executable or "false"'
)
option('with-python', type: 'string', value: 'python3',
description: 'Python scripting plugin. value is pkg-config name to use or "false"'
Expand All @@ -57,3 +60,9 @@ option('with-upd', type: 'boolean',
option('with-winamp', type: 'boolean',
description: 'Winamp plugin, Windows only'
)
option('install-plugin-metainfo', type: 'boolean', value: false,
description: 'Installs metainfo files for enabled plugins, useful when distros create split packages'
)
option('with-perl-legacy-api', type: 'boolean', value: false,
description: 'Enables the legacy IRC perl module for compatibility with old scripts'
)
2 changes: 1 addition & 1 deletion plugins/meson.build
Expand Up @@ -26,7 +26,7 @@ if get_option('with-lua') != 'false'
subdir('lua')
endif

if get_option('with-perl')
if get_option('with-perl') != 'false'
subdir('perl')
endif

Expand Down
2 changes: 1 addition & 1 deletion plugins/perl/lib/HexChat.pm
Expand Up @@ -51,7 +51,7 @@ sub get_context;
sub HexChat::Internal::context_info;
sub HexChat::Internal::print;

#keep compability with Xchat scripts
#keep compatibility with Xchat scripts
sub EAT_XCHAT ();
BEGIN {
*Xchat:: = *HexChat::;
Expand Down
28 changes: 18 additions & 10 deletions plugins/perl/meson.build
Expand Up @@ -13,19 +13,24 @@ hexchat_perl_module = custom_target('hexchat-perl-header',
command: [generate_perl_header, '@OUTPUT@', '@INPUT@']
)

irc_perl_module = custom_target('irc-perl-header',
input: 'lib/IRC.pm',
output: 'irc.pm.h',
command: [generate_perl_header, '@OUTPUT@', '@INPUT@']
)
perl_cflags = []
irc_perl_module = []

if get_option('with-perl-legacy-api')
irc_perl_module = custom_target('irc-perl-header',
input: 'lib/IRC.pm',
output: 'irc.pm.h',
command: [generate_perl_header, '@OUTPUT@', '@INPUT@']
)
perl_cflags += '-DOLD_PERL'
endif

perl = find_program('perl')
perl = find_program(get_option('with-perl'))

ret = run_command([perl, '-MExtUtils::Embed', '-e', 'ccopts'])
if ret.returncode() != 0
error('perl: Failed to get cflags')
endif
perl_cflags = []
foreach flag : ret.stdout().strip().split(' ')
if flag.startswith('-I') or flag.startswith('-D')
perl_cflags += flag
Expand Down Expand Up @@ -71,11 +76,14 @@ int main(void) {
error('found perl not suitable for plugin')
endif

perl_dep = declare_dependency(
compile_args: perl_cflags,
link_args: perl_ldflags
)

shared_module('perl',
sources: ['perl.c', hexchat_perl_module, irc_perl_module],
dependencies: [libgio_dep, hexchat_plugin_dep],
c_args: perl_cflags,
link_args: perl_ldflags,
dependencies: [libgio_dep, hexchat_plugin_dep, perl_dep],
install: true,
install_dir: plugindir,
install_rpath: perl_rpath,
Expand Down