diff --git a/libpurple/protocols/demo/meson.build b/protocols/demo/meson.build
rename from libpurple/protocols/demo/meson.build
rename to protocols/demo/meson.build
diff --git a/libpurple/protocols/demo/purpledemoconnection.h b/protocols/demo/purpledemoconnection.h
rename from libpurple/protocols/demo/purpledemoconnection.h
rename to protocols/demo/purpledemoconnection.h
diff --git a/libpurple/protocols/demo/purpledemoconnection.c b/protocols/demo/purpledemoconnection.c
rename from libpurple/protocols/demo/purpledemoconnection.c
rename to protocols/demo/purpledemoconnection.c
diff --git a/libpurple/protocols/demo/purpledemocontacts.h b/protocols/demo/purpledemocontacts.h
rename from libpurple/protocols/demo/purpledemocontacts.h
rename to protocols/demo/purpledemocontacts.h
diff --git a/libpurple/protocols/demo/purpledemocontacts.c b/protocols/demo/purpledemocontacts.c
rename from libpurple/protocols/demo/purpledemocontacts.c
rename to protocols/demo/purpledemocontacts.c
diff --git a/libpurple/protocols/demo/purpledemoplugin.h b/protocols/demo/purpledemoplugin.h
rename from libpurple/protocols/demo/purpledemoplugin.h
rename to protocols/demo/purpledemoplugin.h
diff --git a/libpurple/protocols/demo/purpledemoplugin.c b/protocols/demo/purpledemoplugin.c
rename from libpurple/protocols/demo/purpledemoplugin.c
rename to protocols/demo/purpledemoplugin.c
diff --git a/libpurple/protocols/demo/purpledemoprotocol.h b/protocols/demo/purpledemoprotocol.h
rename from libpurple/protocols/demo/purpledemoprotocol.h
rename to protocols/demo/purpledemoprotocol.h
diff --git a/libpurple/protocols/demo/purpledemoprotocol.c b/protocols/demo/purpledemoprotocol.c
rename from libpurple/protocols/demo/purpledemoprotocol.c
rename to protocols/demo/purpledemoprotocol.c
diff --git a/libpurple/protocols/demo/purpledemoprotocolactions.h b/protocols/demo/purpledemoprotocolactions.h
rename from libpurple/protocols/demo/purpledemoprotocolactions.h
rename to protocols/demo/purpledemoprotocolactions.h
diff --git a/libpurple/protocols/demo/purpledemoprotocolactions.c b/protocols/demo/purpledemoprotocolactions.c
rename from libpurple/protocols/demo/purpledemoprotocolactions.c
rename to protocols/demo/purpledemoprotocolactions.c
diff --git a/libpurple/protocols/demo/purpledemoprotocolclient.h b/protocols/demo/purpledemoprotocolclient.h
rename from libpurple/protocols/demo/purpledemoprotocolclient.h
rename to protocols/demo/purpledemoprotocolclient.h
diff --git a/libpurple/protocols/demo/purpledemoprotocolclient.c b/protocols/demo/purpledemoprotocolclient.c
rename from libpurple/protocols/demo/purpledemoprotocolclient.c
rename to protocols/demo/purpledemoprotocolclient.c
diff --git a/libpurple/protocols/demo/purpledemoprotocolcontacts.h b/protocols/demo/purpledemoprotocolcontacts.h
rename from libpurple/protocols/demo/purpledemoprotocolcontacts.h
rename to protocols/demo/purpledemoprotocolcontacts.h
diff --git a/libpurple/protocols/demo/purpledemoprotocolcontacts.c b/protocols/demo/purpledemoprotocolcontacts.c
rename from libpurple/protocols/demo/purpledemoprotocolcontacts.c
rename to protocols/demo/purpledemoprotocolcontacts.c
diff --git a/libpurple/protocols/demo/purpledemoprotocolconversation.h b/protocols/demo/purpledemoprotocolconversation.h
rename from libpurple/protocols/demo/purpledemoprotocolconversation.h
rename to protocols/demo/purpledemoprotocolconversation.h
diff --git a/libpurple/protocols/demo/purpledemoprotocolconversation.c b/protocols/demo/purpledemoprotocolconversation.c
rename from libpurple/protocols/demo/purpledemoprotocolconversation.c
rename to protocols/demo/purpledemoprotocolconversation.c
diff --git a/libpurple/protocols/demo/purpledemoprotocolmedia.h b/protocols/demo/purpledemoprotocolmedia.h
rename from libpurple/protocols/demo/purpledemoprotocolmedia.h
rename to protocols/demo/purpledemoprotocolmedia.h
diff --git a/libpurple/protocols/demo/purpledemoprotocolmedia.c b/protocols/demo/purpledemoprotocolmedia.c
rename from libpurple/protocols/demo/purpledemoprotocolmedia.c
rename to protocols/demo/purpledemoprotocolmedia.c
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Aegina.png b/protocols/demo/resources/buddy_icons/Aegina.png
rename from libpurple/protocols/demo/resources/buddy_icons/Aegina.png
rename to protocols/demo/resources/buddy_icons/Aegina.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Echo.png b/protocols/demo/resources/buddy_icons/Echo.png
rename from libpurple/protocols/demo/resources/buddy_icons/Echo.png
rename to protocols/demo/resources/buddy_icons/Echo.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Eion.png b/protocols/demo/resources/buddy_icons/Eion.png
rename from libpurple/protocols/demo/resources/buddy_icons/Eion.png
rename to protocols/demo/resources/buddy_icons/Eion.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Elliott.png b/protocols/demo/resources/buddy_icons/Elliott.png
rename from libpurple/protocols/demo/resources/buddy_icons/Elliott.png
rename to protocols/demo/resources/buddy_icons/Elliott.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Gary.png b/protocols/demo/resources/buddy_icons/Gary.png
rename from libpurple/protocols/demo/resources/buddy_icons/Gary.png
rename to protocols/demo/resources/buddy_icons/Gary.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/John.png b/protocols/demo/resources/buddy_icons/John.png
rename from libpurple/protocols/demo/resources/buddy_icons/John.png
rename to protocols/demo/resources/buddy_icons/John.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Markus.png b/protocols/demo/resources/buddy_icons/Markus.png
rename from libpurple/protocols/demo/resources/buddy_icons/Markus.png
rename to protocols/demo/resources/buddy_icons/Markus.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/Richard.png b/protocols/demo/resources/buddy_icons/Richard.png
rename from libpurple/protocols/demo/resources/buddy_icons/Richard.png
rename to protocols/demo/resources/buddy_icons/Richard.png
diff --git a/libpurple/protocols/demo/resources/buddy_icons/mkicon.py b/protocols/demo/resources/buddy_icons/mkicon.py
rename from libpurple/protocols/demo/resources/buddy_icons/mkicon.py
rename to protocols/demo/resources/buddy_icons/mkicon.py
diff --git a/libpurple/protocols/demo/resources/contacts.json b/protocols/demo/resources/contacts.json
rename from libpurple/protocols/demo/resources/contacts.json
rename to protocols/demo/resources/contacts.json
diff --git a/libpurple/protocols/demo/resources/icons/16x16/apps/im-purple-demo.png b/protocols/demo/resources/icons/16x16/apps/im-purple-demo.png
rename from libpurple/protocols/demo/resources/icons/16x16/apps/im-purple-demo.png
rename to protocols/demo/resources/icons/16x16/apps/im-purple-demo.png
diff --git a/libpurple/protocols/demo/resources/icons/22x22/apps/im-purple-demo.png b/protocols/demo/resources/icons/22x22/apps/im-purple-demo.png
rename from libpurple/protocols/demo/resources/icons/22x22/apps/im-purple-demo.png
rename to protocols/demo/resources/icons/22x22/apps/im-purple-demo.png
diff --git a/libpurple/protocols/demo/resources/icons/48x48/apps/im-purple-demo.png b/protocols/demo/resources/icons/48x48/apps/im-purple-demo.png
rename from libpurple/protocols/demo/resources/icons/48x48/apps/im-purple-demo.png
rename to protocols/demo/resources/icons/48x48/apps/im-purple-demo.png
diff --git a/libpurple/protocols/demo/resources/icons/scalable/apps/im-purple-demo.svg b/protocols/demo/resources/icons/scalable/apps/im-purple-demo.svg
rename from libpurple/protocols/demo/resources/icons/scalable/apps/im-purple-demo.svg
rename to protocols/demo/resources/icons/scalable/apps/im-purple-demo.svg
diff --git a/libpurple/protocols/demo/resources/purpledemo.gresource.xml b/protocols/demo/resources/purpledemo.gresource.xml
rename from libpurple/protocols/demo/resources/purpledemo.gresource.xml
rename to protocols/demo/resources/purpledemo.gresource.xml
diff --git a/libpurple/protocols/ircv3/README.md b/protocols/ircv3/README.md
rename from libpurple/protocols/ircv3/README.md
rename to protocols/ircv3/README.md
diff --git a/libpurple/protocols/ircv3/ircv3generategir.c b/protocols/ircv3/ircv3generategir.c
rename from libpurple/protocols/ircv3/ircv3generategir.c
rename to protocols/ircv3/ircv3generategir.c
diff --git a/libpurple/protocols/ircv3/meson.build b/protocols/ircv3/meson.build
rename from libpurple/protocols/ircv3/meson.build
rename to protocols/ircv3/meson.build
diff --git a/libpurple/protocols/ircv3/purpleircv3.h.in b/protocols/ircv3/purpleircv3.h.in
rename from libpurple/protocols/ircv3/purpleircv3.h.in
rename to protocols/ircv3/purpleircv3.h.in
diff --git a/libpurple/protocols/ircv3/purpleircv3capabilities.h b/protocols/ircv3/purpleircv3capabilities.h
rename from libpurple/protocols/ircv3/purpleircv3capabilities.h
rename to protocols/ircv3/purpleircv3capabilities.h
diff --git a/libpurple/protocols/ircv3/purpleircv3capabilities.c b/protocols/ircv3/purpleircv3capabilities.c
rename from libpurple/protocols/ircv3/purpleircv3capabilities.c
rename to protocols/ircv3/purpleircv3capabilities.c
diff --git a/libpurple/protocols/ircv3/purpleircv3connection.h b/protocols/ircv3/purpleircv3connection.h
rename from libpurple/protocols/ircv3/purpleircv3connection.h
rename to protocols/ircv3/purpleircv3connection.h
diff --git a/libpurple/protocols/ircv3/purpleircv3connection.c b/protocols/ircv3/purpleircv3connection.c
rename from libpurple/protocols/ircv3/purpleircv3connection.c
rename to protocols/ircv3/purpleircv3connection.c
diff --git a/libpurple/protocols/ircv3/purpleircv3constants.h b/protocols/ircv3/purpleircv3constants.h
rename from libpurple/protocols/ircv3/purpleircv3constants.h
rename to protocols/ircv3/purpleircv3constants.h
diff --git a/libpurple/protocols/ircv3/purpleircv3core.h b/protocols/ircv3/purpleircv3core.h
rename from libpurple/protocols/ircv3/purpleircv3core.h
rename to protocols/ircv3/purpleircv3core.h
diff --git a/libpurple/protocols/ircv3/purpleircv3core.c b/protocols/ircv3/purpleircv3core.c
rename from libpurple/protocols/ircv3/purpleircv3core.c
rename to protocols/ircv3/purpleircv3core.c
diff --git a/libpurple/protocols/ircv3/purpleircv3ctcp.h b/protocols/ircv3/purpleircv3ctcp.h
rename from libpurple/protocols/ircv3/purpleircv3ctcp.h
rename to protocols/ircv3/purpleircv3ctcp.h
diff --git a/libpurple/protocols/ircv3/purpleircv3ctcp.c b/protocols/ircv3/purpleircv3ctcp.c
rename from libpurple/protocols/ircv3/purpleircv3ctcp.c
rename to protocols/ircv3/purpleircv3ctcp.c
diff --git a/libpurple/protocols/ircv3/purpleircv3formatting.h b/protocols/ircv3/purpleircv3formatting.h
rename from libpurple/protocols/ircv3/purpleircv3formatting.h
rename to protocols/ircv3/purpleircv3formatting.h
diff --git a/libpurple/protocols/ircv3/purpleircv3formatting.c b/protocols/ircv3/purpleircv3formatting.c
rename from libpurple/protocols/ircv3/purpleircv3formatting.c
rename to protocols/ircv3/purpleircv3formatting.c
diff --git a/libpurple/protocols/ircv3/purpleircv3message.h b/protocols/ircv3/purpleircv3message.h
rename from libpurple/protocols/ircv3/purpleircv3message.h
rename to protocols/ircv3/purpleircv3message.h
diff --git a/libpurple/protocols/ircv3/purpleircv3message.c b/protocols/ircv3/purpleircv3message.c
rename from libpurple/protocols/ircv3/purpleircv3message.c
rename to protocols/ircv3/purpleircv3message.c
diff --git a/libpurple/protocols/ircv3/purpleircv3messagehandlers.h b/protocols/ircv3/purpleircv3messagehandlers.h
rename from libpurple/protocols/ircv3/purpleircv3messagehandlers.h
rename to protocols/ircv3/purpleircv3messagehandlers.h
diff --git a/libpurple/protocols/ircv3/purpleircv3messagehandlers.c b/protocols/ircv3/purpleircv3messagehandlers.c
rename from libpurple/protocols/ircv3/purpleircv3messagehandlers.c
rename to protocols/ircv3/purpleircv3messagehandlers.c
diff --git a/libpurple/protocols/ircv3/purpleircv3parser.h b/protocols/ircv3/purpleircv3parser.h
rename from libpurple/protocols/ircv3/purpleircv3parser.h
rename to protocols/ircv3/purpleircv3parser.h
diff --git a/libpurple/protocols/ircv3/purpleircv3parser.c b/protocols/ircv3/purpleircv3parser.c
rename from libpurple/protocols/ircv3/purpleircv3parser.c
rename to protocols/ircv3/purpleircv3parser.c
diff --git a/libpurple/protocols/ircv3/purpleircv3protocol.h b/protocols/ircv3/purpleircv3protocol.h
rename from libpurple/protocols/ircv3/purpleircv3protocol.h
rename to protocols/ircv3/purpleircv3protocol.h
diff --git a/libpurple/protocols/ircv3/purpleircv3protocol.c b/protocols/ircv3/purpleircv3protocol.c
rename from libpurple/protocols/ircv3/purpleircv3protocol.c
rename to protocols/ircv3/purpleircv3protocol.c
diff --git a/libpurple/protocols/ircv3/purpleircv3protocolconversation.h b/protocols/ircv3/purpleircv3protocolconversation.h
rename from libpurple/protocols/ircv3/purpleircv3protocolconversation.h
rename to protocols/ircv3/purpleircv3protocolconversation.h
diff --git a/libpurple/protocols/ircv3/purpleircv3protocolconversation.c b/protocols/ircv3/purpleircv3protocolconversation.c
rename from libpurple/protocols/ircv3/purpleircv3protocolconversation.c
rename to protocols/ircv3/purpleircv3protocolconversation.c
diff --git a/libpurple/protocols/ircv3/purpleircv3sasl.h b/protocols/ircv3/purpleircv3sasl.h
rename from libpurple/protocols/ircv3/purpleircv3sasl.h
rename to protocols/ircv3/purpleircv3sasl.h
diff --git a/libpurple/protocols/ircv3/purpleircv3sasl.c b/protocols/ircv3/purpleircv3sasl.c
rename from libpurple/protocols/ircv3/purpleircv3sasl.c
rename to protocols/ircv3/purpleircv3sasl.c
diff --git a/libpurple/protocols/ircv3/purpleircv3source.h b/protocols/ircv3/purpleircv3source.h
rename from libpurple/protocols/ircv3/purpleircv3source.h
rename to protocols/ircv3/purpleircv3source.h
diff --git a/libpurple/protocols/ircv3/purpleircv3source.c b/protocols/ircv3/purpleircv3source.c
rename from libpurple/protocols/ircv3/purpleircv3source.c
rename to protocols/ircv3/purpleircv3source.c
diff --git a/libpurple/protocols/ircv3/purpleircv3version.h b/protocols/ircv3/purpleircv3version.h
rename from libpurple/protocols/ircv3/purpleircv3version.h
rename to protocols/ircv3/purpleircv3version.h
diff --git a/libpurple/protocols/ircv3/resources/icons/16x16/apps/im-ircv3.png b/protocols/ircv3/resources/icons/16x16/apps/im-ircv3.png
rename from libpurple/protocols/ircv3/resources/icons/16x16/apps/im-ircv3.png
rename to protocols/ircv3/resources/icons/16x16/apps/im-ircv3.png
diff --git a/libpurple/protocols/ircv3/resources/icons/22x22/apps/im-ircv3.png b/protocols/ircv3/resources/icons/22x22/apps/im-ircv3.png
rename from libpurple/protocols/ircv3/resources/icons/22x22/apps/im-ircv3.png
rename to protocols/ircv3/resources/icons/22x22/apps/im-ircv3.png
diff --git a/libpurple/protocols/ircv3/resources/icons/48x48/apps/im-ircv3.png b/protocols/ircv3/resources/icons/48x48/apps/im-ircv3.png
rename from libpurple/protocols/ircv3/resources/icons/48x48/apps/im-ircv3.png
rename to protocols/ircv3/resources/icons/48x48/apps/im-ircv3.png
diff --git a/libpurple/protocols/ircv3/resources/ircv3.gresource.xml b/protocols/ircv3/resources/ircv3.gresource.xml
rename from libpurple/protocols/ircv3/resources/ircv3.gresource.xml
rename to protocols/ircv3/resources/ircv3.gresource.xml
diff --git a/libpurple/protocols/ircv3/tests/meson.build b/protocols/ircv3/tests/meson.build
rename from libpurple/protocols/ircv3/tests/meson.build
rename to protocols/ircv3/tests/meson.build
diff --git a/libpurple/protocols/ircv3/tests/test_ircv3_formatting.c b/protocols/ircv3/tests/test_ircv3_formatting.c
rename from libpurple/protocols/ircv3/tests/test_ircv3_formatting.c
rename to protocols/ircv3/tests/test_ircv3_formatting.c
diff --git a/libpurple/protocols/ircv3/tests/test_ircv3_parser.c b/protocols/ircv3/tests/test_ircv3_parser.c
rename from libpurple/protocols/ircv3/tests/test_ircv3_parser.c
rename to protocols/ircv3/tests/test_ircv3_parser.c
diff --git a/libpurple/protocols/ircv3/tests/test_ircv3_source.c b/protocols/ircv3/tests/test_ircv3_source.c
rename from libpurple/protocols/ircv3/tests/test_ircv3_source.c
rename to protocols/ircv3/tests/test_ircv3_source.c
# HG changeset patch
# Node ID 08f04239662f
# Parent  c2a9e82334f3
diff --git a/libpurple/protocols/meson.build b/libpurple/protocols/meson.build
--- a/libpurple/protocols/meson.build
+++ b/libpurple/protocols/meson.build
@@ -1,5 +1,3 @@
 subdir('bonjour')
-subdir('demo')
 subdir('gg')
-subdir('ircv3')
 subdir('jabber')
diff --git a/po/POTFILES.in b/po/POTFILES.in
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -72,9 +72,6 @@
 libpurple/protocols/bonjour/parser.c
 libpurple/protocols/bonjour/xmpp.c
 libpurple/protocols.c
-libpurple/protocols/demo/purpledemocontacts.c
-libpurple/protocols/demo/purpledemoplugin.c
-libpurple/protocols/demo/purpledemoprotocol.c
 libpurple/protocols/gg/avatar.c
 libpurple/protocols/gg/blist.c
 libpurple/protocols/gg/chat.c
@@ -316,6 +313,9 @@
 pidgin/win32/winpidgin.c
 protocols/bonjour/purplebonjourcore.c
 protocols/bonjour/purplebonjourprotocol.c
+protocols/demo/purpledemocontacts.c
+protocols/demo/purpledemoplugin.c
+protocols/demo/purpledemoprotocol.c
 protocols/xmpp/purplexmppconnection.c
 protocols/xmpp/purplexmppcore.c
 protocols/xmpp/purplexmppprotocol.c
diff --git a/protocols/meson.build b/protocols/meson.build
--- a/protocols/meson.build
+++ b/protocols/meson.build
@@ -1,2 +1,4 @@
 subdir('bonjour')
+subdir('demo')
+subdir('ircv3')
 subdir('xmpp')
