summary refs log tree commit diff stats
path: root/share/misc/hexchat.spec
blob: 5f28a418edeb09487116bf76fd0957f06684676f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Summary:   A popular and easy to use graphical IRC (chat) client
Name:      hexchat
Version:   2.9.4
Release:   1%{?dist}
Group:     Applications/Internet
License:   GPLv2+
URL:       http://www.hexchat.org
Source:    https://github.com/downloads/hexchat/hexchat/hexchat-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires: perl, perl(ExtUtils::Embed), python-devel, tcl-devel, pciutils-devel
BuildRequires: dbus-devel, dbus-glib-devel
BuildRequires: glib2-devel >= 2.10.0, gtk2-devel >= 2.10.0, bison >= 1.35
BuildRequires: libtool, autoconf, gettext-devel, pkgconfig
BuildRequires: libproxy-devel, libsexy-devel, libnotify-devel, openssl-devel
BuildRequires: desktop-file-utils, hicolor-icon-theme
Requires: hwdata

%description
HexChat is an easy to use graphical IRC chat client for the X Window System.
It allows you to join multiple IRC channels (chat rooms) at the same time, 
talk publicly, private one-on-one conversations etc. Even file transfers
are possible.

%package tcl
Summary:  Tcl script plugin for HexChat
Group:    Applications/Internet
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tcl
The HexChat plugin providing the Tcl scripting interface.

%package perl
Summary:  Perl script plugin for HexChat
Group:    Applications/Internet
Requires: %{name}%{?_isa} = %{version}-%{release}
%description perl
The HexChat plugin providing the Perl scripting interface.

%package python
Summary:  Python script plugin for HexChat
Group:    Applications/Internet
Requires: %{name}%{?_isa} = %{version}-%{release}
%description python
The HexChat plugin providing the Python scripting interface.

%prep
%setup -q

%build
./autogen.sh

%configure --enable-ipv6 \
           --enable-spell=libsexy \
           --enable-tcl=%{_libdir} \
           --enable-shm

make %{?_smp_mflags}

%install
%{__rm} -rf $RPM_BUILD_ROOT
%{__make} install DESTDIR=$RPM_BUILD_ROOT

# Add SVG for hicolor
%{__install} -D -m644 share/icons/hexchat.svg $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/scalable/apps/hexchat.svg

# Get rid of libtool archives
%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/hexchat/plugins/*.la

# Remove unused schema
%{__rm} -f $RPM_BUILD_ROOT%{_sysconfdir}/gconf/schemas/apps_hexchat_url_handler.schemas

# Fix opening irc:// links by adding mimetype and editing exec
desktop-file-edit --set-key=Exec --set-value='sh -c "hexchat --existing --url %U || exec hexchat"' \
    $RPM_BUILD_ROOT%{_datadir}/applications/hexchat.desktop

desktop-file-edit --add-mime-type='x-scheme-handler/irc;x-scheme-handler/ircs' \
    $RPM_BUILD_ROOT%{_datadir}/applications/hexchat.desktop

%find_lang %{name}

%clean
%{__rm} -rf $RPM_BUILD_ROOT

%post
gtk-update-icon-cache %{_datadir}/icons/hicolor
update-desktop-database

%postun
gtk-update-icon-cache %{_datadir}/icons/hicolor
update-desktop-database

%files -f %{name}.lang
%defattr(-,root,root)
%{_bindir}/hexchat
%doc share/doc/*
%dir %{_libdir}/hexchat
%dir %{_libdir}/hexchat/plugins
%{_libdir}/hexchat/plugins/checksum.so
%{_libdir}/hexchat/plugins/doat.so
%{_libdir}/hexchat/plugins/fishlim.so
%{_libdir}/hexchat/plugins/sysinfo.so
%{_datadir}/applications/hexchat.desktop
%{_datadir}/icons/hicolor/scalable/apps/hexchat.svg
%{_datadir}/pixmaps/*
%{_datadir}/dbus-1/services/org.hexchat.service.service
%{_mandir}/man1/hexchat.1.gz

%files tcl
%defattr(-,root,root)
%{_libdir}/hexchat/plugins/tcl.so

%files perl
%defattr(-,root,root)
%{_libdir}/hexchat/plugins/perl.so

%files python
%defattr(-,root,root)
%{_libdir}/hexchat/plugins/python.so

%changelog
* Sat Oct 27 2012 TingPing <tingping@tingping.se> - 2.9.4-1
- Version bump to 2.9.4
- Split up python and perl packages

* Fri Oct 19 2012 TingPing <tingping@tingping.se> - 2.9.3-1
- Version bump to 2.9.3
- Added COPYING to doc

* Sat Oct 6 2012 TingPing <tingping@tingping.se> - 2.9.2-1
- Version bump to 2.9.2

* Sat Sep 1 2012 TingPing <tingping@tingping.se> - 2.9.1-1
- first version for hexchat 2.9.1
xt_Buffer */ char *input_text; /* input text buffer (while not-front tab) */ char *topic_text; /* topic GtkEntry buffer */ char *key_text; char *limit_text; gfloat old_ul_value; /* old userlist value (for adj) */ gfloat lag_value; /* lag-o-meter */ char *lag_text; /* lag-o-meter text */ char *lag_tip; /* lag-o-meter tooltip */ gfloat queue_value; /* outbound queue meter */ char *queue_text; /* outbound queue text */ char *queue_tip; /* outbound queue tooltip */ short flag_wid_state[NUM_FLAG_WIDS]; unsigned int c_graph:1; /* connecting graph, is there one? */ } restore_gui; typedef struct session_gui { GtkWidget *xtext, *vscrollbar, *window, /* toplevel */ *topic_entry, *note_book, *main_table, *user_tree, /* GtkTreeView */ *user_box, /* userlist box */ *button_box_parent, *button_box, /* userlist buttons' box */ *dialogbutton_box, *topicbutton_box, *meter_box, /* all the meters inside this */ *lagometer, *laginfo, *throttlemeter, *throttleinfo, *topic_bar, *hpane_left, *hpane_right, *vpane_left, *vpane_right, *menu, *bar, /* connecting progress bar */ *nick_box, /* contains label to the left of input_box */ *nick_label, *op_xpm, /* icon to the left of nickname */ *namelistinfo, /* label above userlist */ *input_box, *flag_wid[NUM_FLAG_WIDS], /* channelmode buttons */ *limit_entry, /* +l */ *key_entry; /* +k */ #define MENU_ID_NUM 12 GtkWidget *menu_item[MENU_ID_NUM+1]; /* some items we may change state of */ void *chanview; /* chanview.h */ int bartag; /*connecting progressbar timeout */ int pane_left_size; /*last position of the pane*/ int pane_right_size; guint16 is_tab; /* is tab or toplevel? */ guint16 ul_hidden; /* userlist hidden? */ } session_gui; extern GdkPixmap *channelwin_pix; extern GdkPixmap *dialogwin_pix; #ifdef USE_GTKSPELL char *SPELL_ENTRY_GET_TEXT (GtkWidget *entry); #define SPELL_ENTRY_SET_TEXT(e,txt) gtk_text_buffer_set_text (gtk_text_view_get_buffer(GTK_TEXT_VIEW(e)),txt,-1); #define SPELL_ENTRY_SET_EDITABLE(e,v) gtk_text_view_set_editable(GTK_TEXT_VIEW(e), v) int SPELL_ENTRY_GET_POS (GtkWidget *entry); void SPELL_ENTRY_SET_POS (GtkWidget *entry, int pos); void SPELL_ENTRY_INSERT (GtkWidget *entry, const char *text, int len, int *pos); #else #define SPELL_ENTRY_GET_TEXT(e) (GTK_ENTRY(e)->text) #define SPELL_ENTRY_SET_TEXT(e,txt) gtk_entry_set_text(GTK_ENTRY(e),txt) #define SPELL_ENTRY_SET_EDITABLE(e,v) gtk_editable_set_editable(GTK_EDITABLE(e),v) #define SPELL_ENTRY_GET_POS(e) gtk_editable_get_position(GTK_EDITABLE(e)) #define SPELL_ENTRY_SET_POS(e,p) gtk_editable_set_position(GTK_EDITABLE(e),p); #define SPELL_ENTRY_INSERT(e,t,l,p) gtk_editable_insert_text(GTK_EDITABLE(e),t,l,p) #endif