<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.gnome.gaim.devel">
    <title>gmane.comp.gnome.gaim.devel</title>
    <link>http://blog.gmane.org/gmane.comp.gnome.gaim.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19917"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19907"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19904"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19902"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19880"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19879"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19878"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19875"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19871"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19869"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19868"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19863"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19861"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19858"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19854"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19852"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19850"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19846"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19844"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19843"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19917">
    <title>Merging master password branch...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19917</link>
    <description>&lt;pre&gt;Hi all,

We should probably get around to merging this stuff... It does
compile, and run in some fashion, at least. I haven't really had to
modify it much lately, so I'd like everyone to take a look at some of
the API changes before merging. I'm mostly concerned with the
libpurple changes. For the rest, you can just check out monotone.

The following are high-level sorts of things or specific comments.
Please check monotone for the details.

accounts.h
* Add `cb` and `data` parameters to `purple_account_[gs]et_password`
for the caller to be notified when a password is truly saved/read. I
don't think any callers use the saved-cb though.

connection.h
* Add `gboolean purple_connection_had_error(const PurpleConnection
*gc);` -- Seems a bit of a hack to me based on the name. I'm sure it
can be done better.

plugin.h
* #define PURPLE_PLUGIN_FLAG_AUTOLOAD  0x02 -- Can't we just do the
same thing the SSL plugins do?

New Keyring API:
* Header comment points out that some GError's may not be useful. We
don't really use them in the rest of our API either.
* Keyring implementation stuff:
* * PurpleKeyringRead
* * PurpleKeyringSave
* * PurpleKeyringClose
* * PurpleKeyringChangeMaster
* * PurpleKeyringImportPassword
* * PurpleKeyringExportPassword
* Callbacks:
* * PurpleKeyringReadCallback
* * PurpleKeyringSaveCallback
* * PurpleKeyringChangeMasterCallback
* * PurpleKeyringSetInUseCallback
* Real API:
* * purple_keyring_find_keyring_by_id
* * purple_keyring_get_options
* * purple_keyring_get_keyrings
* * purple_keyring_get_inuse
* * purple_keyring_set_inuse
* * purple_keyring_register
* * purple_keyring_unregister
* * purple_keyring_get_password
* * purple_keyring_set_password
* * purple_keyring_close
* * purple_keyring_change_master
* * purple_keyring_new
* * purple_keyring_free
* * purple_keyring_get_name
* * purple_keyring_get_id
* * purple_keyring_get_read_password
* * purple_keyring_get_save_password
* * purple_keyring_get_close_keyring
* * purple_keyring_get_change_master
* * purple_keyring_get_import_password
* * purple_keyring_get_export_password
* * purple_keyring_set_name
* * purple_keyring_set_id
* * purple_keyring_set_read_password
* * purple_keyring_set_save_password
* * purple_keyring_set_close_keyring
* * purple_keyring_set_change_master
* * purple_keyring_set_import_password
* * purple_keyring_set_export_password
* Internal API? These are supposed to be used by account.c but are in
the public header. Maybe they should be moved somewhere else.
* * purple_keyring_import_password
* * purple_keyring_export_password

As for the actual keyrings, GNOME Keyring works best as I can test it
and it's in C. Somehow I managed to write the KWallet plugin from
scratch even though I don't know too much C++ or KDE/Qt. Someone who
knows better should probably check it out. There's probably some sort
of API on Windows, but we don't have a plugin for it yet.

--
Elliott aka QuLogic
Pidgin developer

_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Elliott Sales de Andrade</dc:creator>
    <dc:date>2012-05-25T20:13:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19907">
    <title>GSoC 2012: Android port</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19907</link>
    <description>&lt;pre&gt;Hello,

I was accepted as GSoC student to do an Android port of libpurple.
The original proposal and a planned timeline can be seen here [1].

The last two weeks I was mainly trying to get everything to build, and
after many hours of trying, patching, configure-scripts-reading and
waiting I got all dependencies of libpurple to compile and finally
libpurple itself.

The basic class structure is already in MTN, but there are no function
implementations. Methods marked as native are extracted to header files
to be implemented and enum constants from C files are autmatically
converted to java source files so that they can be used from java
without any manual hacking. This makes enum conversion a lot easier.

There ist already a documentation on how to set up a development
computer. In the end of the project, I can do a release so that not
everybody who wants to use the library in his projects needs to compile
everything from scratch and install all those tools.

Next week is mainly getting the Android SDK to pack all libraries and
needed Java files together in a package to be installed on the device
and implementing some simple test methods so that the native interface
can be testet.

I will be sending reports like this one about weekly to the list.

Regards,
Michael.

1:
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/michaelz/1
2:
http://developer.pidgin.im/wiki/GSoC2012/Android
&lt;/pre&gt;</description>
    <dc:creator>Michael Zangl</dc:creator>
    <dc:date>2012-05-23T11:05:10</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19904">
    <title>gsoc12 : pidgin plugin website</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19904</link>
    <description>&lt;pre&gt;
Hi.

I am Nikhil Bafna, a 4th year undergrad at BITS Pilani, India.

I am one of the 4 selected gsoc tudents to work with Pidgin this summer. My project proposal is "Building a Pidgin Plugin Website, from where user can easily discover &amp;amp; download plugins for their platform and rate &amp;amp; review them as well, intuitively. Developers would use it upload, modify and delete information about their plugins, maintain change log and get feedback from the user community."

The complete proposal for the project can be viewed here.

The period of coding for GSoC officially started yesterday, 21st May and will continue up to 20th of August. Throughout this period, I will post weekly updates on my work :-)


To provide a brief sum down of the project, I will be coding it in python + django + postgre. I have divided the project into 5 major chunks -

User frontend
User backend
Developer frontend
Developed backend
Integration with Pidgin Client
The version control system is Monotone and for the time being I will be hosting the code on Heroku until we decide the production environment of the website.

The area of focus for first two weeks (May 21 - June 5) is on the "User frontend". This was the part I had worked a bit on during the application period and demo for that is at pidgin.heroku.com.

The detailed plan for the next two weeks is as below.

During the first week, I will code up templates for the various user frontend pages. The hierarchy of which will look like -

/
/popular

/login
/signup

/plugin/plugin_id
/category/category_name

/dashboard

/about
/faq


As I mentioned in the proposal, the aim is to have a responsive design that scales down to small screens, doesn't break when js is disabled. Also, from the discussion during the application period, the theme was the site will be similar to pidgin.im. Since, I have suggested 2 weeks for this part - the first week is for coming up with the initial drafts. The entire 2nd week is for iteration based on feedback, testing and ensuring compatibility with older browsers (IE 6 *cringe*)

Also, I haven't been as interactive with community during the bonding period as much as I have would have preferred but I am looking forward to reverse that, as I was reminded in congratulatory mail that "over-communication is preferable to under-communication"


That's about it for now. The progress can be viewed at pidgin.heroku.com (which for now has work from my application period) and my contact details are -

mail - nrbafna&amp;lt; at &amp;gt;soc.pidgin.im
blog - http://nrbafna.blogspot.com/
nrbafna on #pidgin

_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Nikhil Bafna</dc:creator>
    <dc:date>2012-05-22T07:21:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19902">
    <title>[ANN] pidgin git import v5</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19902</link>
    <description>&lt;pre&gt;Hi,

Here's a new version of the conversion scripts.

The major change is that I wrote a script to compare a git and
mercurial repo, thanks to this script, I've managed to track various
discrepancies between the mercurial and git scripts. After fixing all
those discrepancies, the repositories match 100% (except formatting
differences; hg convert seems to strip some lines from the commit
messages, and git author limitations: 'John Doe' -&amp;gt; 'John Doe
&amp;lt;unknown&amp;gt;'). All the graph matches as well; there's no single commit
lost.

I haven't checked the file contents yet, but I don't think there will
be any issues in 'mtn git_export'.

Also, there is now support to split certain unmerged branches to
separate repositories. This is better than the mercurial scripts
version because a) it actually works, and b) there's no need to figure
which branches have been merged or not; git figures that out
automatically. And of course it's *much* faster.

Finally, I've enabled the --log-revids and --log-certs options to 'mtn
git_export' and also removed --use-one-changelog so *all* the monotone
information is retained.

Here's an example of the information attached at the end; all
important certs, even if duplicate are listed:

    Monotone-Parent: 9e9d09486a04f5adb2e51b0f5aada69a9b053e93
    Monotone-Revision: 2cca525615a367389b1639a5246fbe6d451150c4

    Monotone-Author: markdoliner&amp;lt; at &amp;gt;pidgin.im
    Monotone-Date: 2012-02-18T23:28:43
    Monotone-Branch: im.pidgin.pidgin.2.x.y
    Monotone-Branch: im.pidgin.pidgin.mxit.2.x.y

Some of these might be useless, and might make sense to strip them,
but they are there now.

In addition to that, I've used 'hg-git'[1] with a few hacks to convert
the repository to mercurial, preserving all the information (except
renames, but that shouldn't be hard to add).

You can find it here:

https://bitbucket.org/felipec/pidgin-clone-hg

The last remaining item in my list is to convert the mtn ids in the
commit messages to the relevant git ids.

You can find the scripts in the usual place:

https://github.com/felipec/pidgin-git-import

In addition to that, I've fixed and cleaned the mercurial scripts
(almost rewrote many of them), so they are now *much* faster and
simpler. I've also made sure that the resulting repository is
*exactly* the same. That is, after applying some updates (I added an
'fc-updates' branch to mark those).

Attached is a condensed patch with all the changes, as Eion Robb
suggested (I guess clean and logical patches are frowned upon).

Since I have not received a single reply after all this work, and the
last real change to pidgin-mtn-conv-files was more than a year ago, my
only guess is that you don't actually want to stop using monotone,
even though you can do it *today*.

Cheers.

[1] http://hg-git.github.com/

diff --git a/.hgignore b/.hgignore
index 2e10ba1..3f1741b 100644
--- a/.hgignore
+++ b/.hgignore
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,5 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 syntax: glob
 mtn
 pidgin.mtn*
-svn-patch-authors
 tmpfs
diff --git a/add-committer-certs.py b/add-committer-certs.py
index 106df61..f6ce42b 100755
--- a/add-committer-certs.py
+++ b/add-committer-certs.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3,84 +3,51 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;

 import os
 import sys
+import subprocess

 sys.stdout.write("Adding committer certs based on changelog cert signers...")
 sys.stdout.flush()

 db = sys.argv[1]
-key = None
 try:
     key = sys.argv[2]
 except IndexError:
-    pass
+    key = None

-def shellquote(s):
-    return "'" + s.replace("'", "'\\''") + "'"
-mtn = "mtn -d {db} ".format(db=shellquote(db))
+mtn_args = ['mtn', '-d', db]
 if key:
-    mtn = "{mtn} -k {key} ".format(mtn=mtn, key=key)
+    mtn_args += ['-k', key]

 author_map = {}
 with open("authormap", "r") as f:
     for l in f:
-        try:
-            index = l.index("=")
-        except ValueError:
-            continue
-        author = l[:index].strip()
-        name = l[index+1:].strip()
+        author, name = l.rstrip("\n").split(" = ")
         if author and name:
             author_map[author] = name

-keys = {}
-cmd = mtn + "automate keys"
-with os.popen(cmd, "r") as pipe:
-    key_hash = None
-    for l in pipe.readlines():
-        if l.startswith("           hash ["):
-            key_hash = l[17:-2]
-        elif l.startswith("            hash ["):
-            key_hash = l[18:-2]
-        elif l.startswith('     given_name "'):
-            keys[key_hash] = l[17:-2]
-        elif l.startswith('      given_name "'):
-            keys[key_hash] = l[18:-2]
+def mtn_query(db, query):
+    global mtn_args
+    pipe = subprocess.Popen(mtn_args + ['db', 'execute', query],
stdout=subprocess.PIPE)
+    pipe.stdout.readline() # garbage
+    pipe.stdout.readline() # garbage
+    return (line.rstrip('\n').split(' | ') for line in pipe.stdout)

 # Add a "committer" cert for each revision based on the signer of the changelog
 # cert.  This will be picked up by our patched `hg convert`.
-cmd = "{mtn} automate roots ; {mtn} automate descendents `{mtn}
automate roots`".format(mtn=mtn)
-with os.popen(cmd, "r") as pipe:
-    for l in pipe.readlines():
-        revision = l.strip()
-        cmd = "{mtn} automate certs {revision}".format(mtn=mtn,
revision=revision)
-        with os.popen(cmd, "r") as pipe2:
-            key_hash = None
-            signer = None
-            found_author = False
-            author = None
-            for l in pipe2.readlines():
-                if l.startswith("      key ["):
-                    key_hash = l[11:-2]
-                elif l == '     name "changelog"\n':
-                    signer = keys[key_hash]
-                elif l == '     name "author"\n':
-                    found_author = True
-                elif found_author and l.startswith('    value "'):
-                    found_author = False
-                    author = l[11:-2]
-            if signer and not signer.startswith("tailor&amp;lt; at &amp;gt;"):
-                if not author:
-                    print "{revision} has no author.".format(revision=revision)
-                    continue
-                signer = author_map[signer]
-                try:
-                    author = author_map[author]
-                except KeyError:
-                    print "Missing author: {author}".format(author=author)
-                if signer != author:
-                    cmd = "{mtn} cert {revision} committer {signer}".format(
-                        mtn=mtn, revision=revision,
-                        signer=shellquote(signer))
-                    os.system(cmd)
+for revision, signer, author in mtn_query(db, "select
lower(hex(cc.revision_id)),k.name,ca.value "
+        "from revision_certs cc, revision_certs ca join public_keys k
on k.id = cc.keypair_id "
+        "where cc.revision_id=ca.revision_id and cc.name='changelog'
and ca.name='author' "
+        "group by cc.revision_id"):
+    if signer and not signer.startswith("tailor&amp;lt; at &amp;gt;"):
+        try:
+            signer = author_map[signer]
+        except KeyError:
+            print "Missing signer: {signer}".format(signer=signer)
+        try:
+            author = author_map[author]
+        except KeyError:
+            print "Missing author: {author}".format(author=author)
+        if signer != author:
+            subprocess.call(mtn_args + ['automate', 'cert', revision,
'committer', signer])

 print "DONE"
diff --git a/authormap b/authormap
index 4f6d3e5..f57ea3f 100644
diff --git a/authormap.TODO b/authormap.TODO
index e554245..d511653 100644
diff --git a/branchmap b/branchmap
index 6f357e1..cc693e7 100644
diff --git a/check-authors-and-committers.py b/check-authors-and-committers.py
index 8ac2bf9..9f27d17 100755
--- a/check-authors-and-committers.py
+++ b/check-authors-and-committers.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3,6 +3,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;

 import os
 import sys
+import subprocess

 BAD_AUTHORS=(
     "Unknown",
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -14,19 +15,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sys.stdout.write("Looking for bad authors and
committers...")
 sys.stdout.flush()

 db = sys.argv[1]
-def shellquote(s):
-    return "'" + s.replace("'", "'\\''") + "'"
-mtn = "mtn -d {db} ".format(db=shellquote(db))

 author_map = {}
 with open("authormap", "r") as f:
     for l in f:
-        try:
-            index = l.index("=")
-        except ValueError:
-            continue
-        author = l[:index].strip()
-        name = l[index+1:].strip()
+        author, name = l.rstrip("\n").split(" = ")
         if author and name:
             author_map[author] = name

&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -35,13 +28,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; def check_cert(revision, name, value):
     global author_map
     global first

-    if not value:
-        if name == "author":
-            if first:
-                print ""
-                first = False
-                print "Missing author on: {revision}".format(revision=revision)
-        return
     try:
         value = author_map[value]
     except KeyError:
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -53,28 +39,26 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; def check_cert(revision, name, value):
         print "Bad {name} on {revision}: {value}".format(
             revision=revision, name=name, value=value)

-cmd = "{mtn} automate roots ; {mtn} automate descendents `{mtn}
automate roots`".format(mtn=mtn)
-with os.popen(cmd, "r") as pipe:
-    for l in pipe.readlines():
-        revision = l.strip()
-        cmd = "{mtn} automate certs {revision}".format(mtn=mtn,
revision=revision)
-        with os.popen(cmd, "r") as pipe2:
-            found_author = False
-            author = None
-            found_committer = False
-            committer = None
-            for l in pipe2.readlines():
-                if l == '     name "author"\n':
-                    found_author = True
-                elif l == '     name "committer"\n':
-                    found_committer = True
-                elif found_author and l.startswith('    value "'):
-                    found_author = False
-                    author = l[11:-2]
-                elif found_committer and l.startswith('    value "'):
-                    found_committer = False
-                    committer = l[11:-2]
-            check_cert(revision, "author", author)
-            check_cert(revision, "committer", committer)
+def mtn_query(db, query):
+    pipe = subprocess.Popen(['mtn', '--db', db, 'db', 'execute',
query], stdout=subprocess.PIPE)
+    pipe.stdout.readline() # garbage
+    pipe.stdout.readline() # garbage
+    return (line.rstrip('\n').split(' | ') for line in pipe.stdout)
+
+# find missing authors
+for revision, authors in mtn_query(db, "select
lower(hex(r.id)),sum(c.name == 'author') from revisions r join
revision_certs c on r.id=c.revision_id group by r.id"):
+    if int(authors) == 0:
+        if first:
+            print ""
+            first = False
+        print "Missing author on: {revision}".format(revision=revision)
+
+# find bad authors
+for revision, value in mtn_query(db, "select
lower(hex(revision_id)),value from revision_certs where
name='author'"):
+    check_cert(revision, "author", value)
+
+# find bad committers
+for revision, value in mtn_query(db, "select
lower(hex(revision_id)),value from revision_certs where
name='committer'"):
+    check_cert(revision, "committer", value)

 print "DONE"
diff --git a/fix-branch-certs.sh b/fix-branch-certs.sh
index 77482e3..df7d9ee 100755
--- a/fix-branch-certs.sh
+++ b/fix-branch-certs.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -216,6 +216,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mtn -d $db local kill_certs
fe8468d91b46c3c88ad8f60a6499b16e3fa5f327 branch "im.
 mtn -d $db local kill_certs fe98ce53cdced722cba947379e236ad1fc03adc3
branch "im.pidgin.pidgin.openq"
 mtn -d $db local kill_certs 570b107a62822dd538074753d93b576dea0043a3
branch "im.pidgin.pidgin.next.minor"

+mtn -d $db local kill_certs 2cca525615a367389b1639a5246fbe6d451150c4
branch "im.pidgin.pidgin.mxit.2.x.y"
+mtn -d $db local kill_certs 32a55bbc4f1e8d632d205d040fa3e814559e1c95
branch "im.pidgin.pidgin.mxit"
+mtn -d $db local kill_certs 3a12ece5b629e6de76faec79315514e70ccb32bb
branch "im.pidgin.pidgin.next.minor"
+mtn -d $db local kill_certs 64907e955d5af4c51dbf683f72d3e75a6d52ba46
branch "im.pidgin.pidgin.2.9.0"
+mtn -d $db local kill_certs 65f0e21660895ebae2e934a8d04088a1c57899a6
branch "im.pidgin.pidgin.2.x.y"
+mtn -d $db local kill_certs 7d17d6b03c98b91ec1f90c5f17f7c923973f2e2c
branch "im.pidgin.pidgin.mxit"
+mtn -d $db local kill_certs 8ee22c12acfc2da5d83128948c7cfca17eb54306
branch "im.pidgin.pidgin.next.major"
+mtn -d $db local kill_certs 90563b555003eba18fcf35404c001c70b9f4c184
branch "im.pidgin.pidgin.next.minor"
+mtn -d $db local kill_certs 9fc56c5e4669dbbaa42a495b831982f2732e3895
branch "im.pidgin.pidgin.mxit"
+mtn -d $db local kill_certs c8c73eea7431e6f940916315ace40a41c8da3faa
branch "im.pidgin.pidgin.2.x.y"
+mtn -d $db local kill_certs ddbd0d68045c975cc5673417ad38c8fc65fadad1
branch "im.pidgin.pidgin.next.minor"
+mtn -d $db local kill_certs aad06bbf6f9a5e7fd1f16c72be4af2060e8de4c3
branch "im.pidgin.cpw.sulabh.yahoo"
+mtn -d $db local kill_certs bb41d065e7ff1100b5eb50335111df9b50537753
branch "im.pidgin.pidgin"
+mtn -d $db local kill_certs e09847cb3f7316d9a193184e236421bea704bd4b
branch "im.pidgin.cpw.sulabh.yahoo"
+mtn -d $db local kill_certs f0229545a42bc311f7242e3ab3648395bc8156a8
branch "im.pidgin.soc.2010.detachablepurple"
+
 #odd ipp-&amp;gt;remotelogging-&amp;gt;ipp situation
 #mtn -d $db local kill_certs 64d3e6a75d2827d3c93ac39eb27408b26dc735ea
branch "im.pidgin.soc.2007.remotelogging"
 #mtn -k $key -d $db cert 64d3e6a75d2827d3c93ac39eb27408b26dc735ea
branch "im.pidgin.pidgin"
diff --git a/fix-commits.sh b/fix-commits.sh
new file mode 100755
index 0000000..de5d0b0
--- /dev/null
+++ b/fix-commits.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,63 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+#!/bin/sh -e
+
+db=$1
+key=$2
+
+fix_commit ()
+{
+if [ "$2" ]; then
+mtn -d $db local kill_certs $1 author
+mtn -d $db -k $key automate cert $1 author "$2"
+fi
+mtn -d $db local kill_certs $1 changelog
+mtn -d $db -k $key cert $1 changelog # gets stdin
+}
+
+echo -n "Fixing crappy commits..."
+
+fix_commit "d137c7046bae7e4a0144fee82bfce8061f61e3b3" "Rob Flynn
&amp;lt;gaim&amp;lt; at &amp;gt;robflynn.com&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 9]
+Initial commit
+EOF
+
+fix_commit "84ed68a77e223f83d7891347c70e18519423e96b" "Nathan Walp
&amp;lt;nwalp&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 10836]
+EOF
+
+fix_commit "e0b0f3283559c9583658d47005cbf8a2719e5e45" "Luke Schierer
&amp;lt;lschiere&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 12524]
+EOF
+
+fix_commit "eb43dd9ae1ab74d11ea3cdc685e487b3fc5f48cd" "Daniel Atallah
&amp;lt;datallah&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 11819]
+EOF
+
+fix_commit "c42325d0684bbdde5f0161a049e709c2df6cf137" "Tim Ringenbach
&amp;lt;marv&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 11408]
+EOF
+
+fix_commit "7a10a49bb178320bab4d2f5241609ecdecb68a7d" "Sean Egan
&amp;lt;seanegan&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 3437]
+EOF
+
+fix_commit "26f9fd8304f47257cfe76bd7ea2f989bd2b83f5b" "Mark Doliner
&amp;lt;markdoliner&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+Change the version from 1.5.1cvs to 1.5.1dev.
+Thanks to Kevin for mentioning this
+EOF
+
+fix_commit "152f6d4a5c3c68d008f93aa52ea166a4ef2cd528" "Mark Doliner
&amp;lt;markdoliner&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 13410]
+Conversion nonsense
+EOF
+
+fix_commit "4f23dae193c4c65a599c972bd9f77e3b68761a5e" "Mark Doliner
&amp;lt;markdoliner&amp;lt; at &amp;gt;pidgin.im&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 13411]
+Conversion nonsense
+EOF
+
+fix_commit "9a5e7fb820bf82d0009c007e3c5146dfd9bda395" "Christian
Hammond &amp;lt;chipx86&amp;lt; at &amp;gt;chipx86.com&amp;gt;" &amp;lt;&amp;lt;EOF
+[gaim-migrate &amp;lt; at &amp;gt; 3445]
+Conversion nonsense
+EOF
+
+echo DONE
diff --git a/fix-svn-author-certs.py b/fix-svn-author-certs.py
index db348bf..5f52892 100755
--- a/fix-svn-author-certs.py
+++ b/fix-svn-author-certs.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3,89 +3,80 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;

 import os
 import sys
+import re
+import subprocess

-sys.stdout.write("Correcting author certs based on svn-patch-authors...")
+sys.stdout.write("Correcting author certs based on svn-authors...")
 sys.stdout.flush()

 db = sys.argv[1]
-key = None
 try:
     key = sys.argv[2]
 except IndexError:
-    pass
+    key = None

-def shellquote(s):
-    return "'" + s.replace("'", "'\\''") + "'"
-mtn = "mtn -d {db} ".format(db=shellquote(db))
+mtn_args = ['mtn', '-d', db]
 if key:
-    mtn = "{mtn} -k {key}".format(mtn=mtn, key=key)
+    mtn_args += ['-k', key]

 author_map = {}
 with open("authormap", "r") as f:
     for l in f:
-        try:
-            index = l.index("=")
-        except ValueError:
-            continue
-        author = l[:index].strip()
-        name = l[index+1:].strip()
+        author, name = l.rstrip("\n").split(" = ")
         if author and name:
             author_map[author.lower()] = name

 svn_map = {}
 with open("svn-revisions", "r") as f:
     for l in f:
-        (svn_revision, mtn_revision) = l.split()
+        svn_revision, mtn_revision = l.split()
         if svn_revision in svn_map:
             svn_map[svn_revision].append(mtn_revision)
         else:
             svn_map[svn_revision] = [mtn_revision]

+def mtn_query(db, query):
+    global mtn_args
+    pipe = subprocess.Popen(mtn_args + ['db', 'execute', query],
stdout=subprocess.PIPE)
+    pipe.stdout.readline() # garbage
+    pipe.stdout.readline() # garbage
+    return (line.rstrip('\n').split(' | ') for line in pipe.stdout)
+
 svn_authormap = {}
-with open("svn-patch-authors", "r") as f:
+with open("svn-authors-map", "r") as f:
+    for l in f:
+        key, value = l.rstrip().split(" = ")
+        svn_authormap[key] = value
+
+with open("svn-authors", "r") as f:
     for l in f:
-        l = l.replace(" # ", " ").strip()
-        index = l.index(" ")
-        revision = l[:index]
-        author = l[index+1:]
-        try:
-            author = author[:author.index("(")].strip()
-        except ValueError:
-            pass
-        revisions = svn_map[revision]
+        revision, author = l.rstrip("\n").split(" ", 1)
+        mark = author[0] == '#'
+        match = re.search('^(# )?(.+?)( \(.+\))?$', author)
+        author = match.group(2)
+        if mark and author in svn_authormap:
+            author = svn_authormap[author]
+        else:
+            if author.find("Unknown ") == 0:
+                author = author[8:]

-        for revision in revisions:
+        for revision in svn_map[revision]:
             existing_author = None
-            cmd = "{mtn} automate certs {revision}".format(mtn=mtn,
revision=revision)
-            with os.popen(cmd, "r") as pipe:
-                found_author = False
-                for l in pipe.readlines():
-                    if l == '     name "author"\n':
-                        found_author = True
-                    elif found_author and l.startswith('    value "'):
-                        found_author = False
-                        existing_author = l[11:-2]
+            for result in mtn_query(db, "select value from
revision_certs where "
+                "name='author' and
revision_id=X'{revision}'".format(revision=revision)):
+                existing_author = result[0]

             try:
                 existing_author = author_map[existing_author.lower()]
             except KeyError:
-                print "Missing author: %s" % existing_author
-            cmd = "{mtn} cert {revision} committer {existing_author}".format(
-                mtn=mtn, revision=revision,
-                existing_author=shellquote(existing_author))
-            os.system(cmd)
+                if not re.match('.*&amp;lt;.*&amp;gt;', existing_author):
+                    print "Missing author: %s" % existing_author

-            cmd = "{mtn} local kill_certs {revision} author".format(
-                mtn=mtn, revision=revision)
-            os.system(cmd)
-
-            try:
-                author = author_map[author.lower()]
-            except KeyError:
+            if not mark:
                 print "Missing author: %s" % author
-            cmd = "{mtn} cert {revision} author {author}".format(
-                mtn=mtn, revision=revision,
-                author=shellquote(author))
-            os.system(cmd)
+
+            subprocess.call(mtn_args + ['automate', 'cert', revision,
'committer', existing_author])
+            subprocess.call(mtn_args + ['local', 'kill_certs',
revision, 'author'])
+            subprocess.call(mtn_args + ['automate', 'cert', revision,
'author', author])

 print "DONE"
diff --git a/migrate.sh b/migrate.sh
index 5a9228f..d1f7ddd 100755
--- a/migrate.sh
+++ b/migrate.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -45,6 +45,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fi
 # this statement out
 export PATH=.:$PATH

+: ${PYTHON:=python}
+
 if [ -d tmpfs ] ; then
 if ! mount | grep -Fq "`pwd`/tmpfs" ; then
 sudo mount -t tmpfs tmpfs tmpfs
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -109,8 +111,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; for rev in $revisions; do
 done

 # Add some missing author certs.
-mtn -d $db -k $key cert 2d6f9e6fefcb1cc3acf077976fb4563ec6195f82 author N3fr0n
-mtn -d $db -k $key cert e8b2e1e7ac4597ec67db53c64064e2e8e7f3cbc1 author N3fr0n
+mtn -d $db -k $key cert 2d6f9e6fefcb1cc3acf077976fb4563ec6195f82
author "Tomáš Kebert"
+mtn -d $db -k $key cert e8b2e1e7ac4597ec67db53c64064e2e8e7f3cbc1
author "Tomáš Kebert"

 # Deal with revisions that have multiple branch certs
 ./fix-branch-certs.sh $db $key
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -124,7 +126,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fi

 # Add a committer cert with the mapped version of the signer of the changelog.
 # Our patched `hg convert` will append this information to the changelog.
-./add-committer-certs.py $db $key
+$PYTHON ./add-committer-certs.py $db $key

 # This has to be done after adding the committer certs, or that script will
 # use the wrong signer (since the changelog certs are recreated).
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -133,18 +135,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fi
 # For SVN commits of patches, move the author to a committer cert (since these
 # MTN revisions were signed by tailor, which we ignore above) and add the patch
 # writer as the author.
-#
-# wget http://people.freedesktop.org/~felipec/svn-patch-authors \
-#      -O svn-patch-authors.orig
-cp svn-patch-authors.orig svn-patch-authors
-patch -p0 svn-patch-authors svn-patch-authors.diff &amp;gt;/dev/null
-cat svn-patch-authors.gtk1-stable &amp;gt;&amp;gt; svn-patch-authors
-cat svn-patch-authors.missing &amp;gt;&amp;gt; svn-patch-authors
-cat svn-patch-authors.oldstatus &amp;gt;&amp;gt; svn-patch-authors
-./fix-svn-author-certs.py $db $key
+$PYTHON ./fix-svn-author-certs.py $db $key
+
+# Fix crappy commits
+./fix-commits.sh $db $key

 # Alert us of revisions that still need fixing...
-./check-authors-and-committers.py $db
+$PYTHON ./check-authors-and-committers.py $db

 targetrepodir=$destrepo.dir
 rm -rf $targetrepodir
diff --git a/print-svn-authors.py b/print-svn-authors.py
deleted file mode 100755
index 018a1d2..0000000
--- a/print-svn-authors.py
+++ /dev/null
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,34 +0,0 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-#!/usr/bin/python
-# vim: ai ts=4 sts=4 et sw=4
-
-import os
-import sys
-
-author_map = {}
-with open("authormap", "r") as f:
-    for l in f:
-        try:
-            index = l.index("=")
-        except ValueError:
-            continue
-        author = l[:index].strip()
-        name = l[index+1:].strip()
-        if author and name:
-            author_map[author.lower()] = name
-
-svn_authormap = {}
-with open("svn-patch-authors", "r") as f:
-    for l in f:
-        l = l.replace(" # ", " ").strip()
-        index = l.index(" ")
-        revision = l[:index]
-        author = l[index+1:]
-        try:
-            author = author[:author.index("(")].strip()
-        except ValueError:
-            pass
-        try:
-            author = author_map[author.lower()]
-        except:
-            pass
-        print "{revision} {author}".format(revision=revision, author=author)
diff --git a/split-branch-repos.sh b/split-branch-repos.sh
index 0e88e03..19a0d52 100755
--- a/split-branch-repos.sh
+++ b/split-branch-repos.sh
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -18,8 +18,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; hg --cwd $mainrepo strip --no-backup
"min(branch('im.pidgin.www'))"
 hg --cwd $mainrepo strip --no-backup "min(branch('im.pidgin.web.old'))"
 hg --cwd $mainrepo strip --no-backup
"min(branch('im.pidgin.doc.userguide.pidgin'))"
 hg --cwd $mainrepo strip --no-backup
"min(branch('im.pidgin.soc.2009.transport'))"
-# throw away this garbage branch
-hg --cwd $mainrepo strip --no-backup
"min(branch('im.pidgin.soc.2010.logviewer'))"

 branches="aes
 cpw.caseyho.crashreporter
diff --git a/svn-authors b/svn-authors
new file mode 100644
index 0000000..0883b02
diff --git a/svn-authors-map b/svn-authors-map
new file mode 100644
index 0000000..35feaa0
diff --git a/svn-patch-authors.diff b/svn-patch-authors.diff
deleted file mode 100644
index 22b3fa9..0000000
diff --git a/svn-patch-authors.gtk1-stable b/svn-patch-authors.gtk1-stable
deleted file mode 100644
index efa5ca6..0000000
diff --git a/svn-patch-authors.missing b/svn-patch-authors.missing
deleted file mode 100644
index a236967..0000000
diff --git a/svn-patch-authors.oldstatus b/svn-patch-authors.oldstatus
deleted file mode 100644
index 6a445a0..0000000
diff --git a/svn-patch-authors.orig b/svn-patch-authors.orig
deleted file mode 100644
index 475d805..0000000

&lt;/pre&gt;</description>
    <dc:creator>Felipe Contreras</dc:creator>
    <dc:date>2012-05-21T16:02:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19880">
    <title>[PATCH 00/21] pidgin-mtn-conv-files patches</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19880</link>
    <description>&lt;pre&gt;Hi,

Since I'm not receiving any reply, here are the patches.

The current version of the scripts don't even run, here are some fixes,
updates, and performance improvements.

I've made sure that the author conversions are functionally the same, I haven't
run a full conversion yet.

You can find a mercurial repo with the patches here:

 https://bitbucket.org/felipec/pidgin-mtn-conv-files/overview

By mails I'll be removing the biggest patches, which is mostly noise.

Cheers.

Felipe Contreras (21):
  add-committer-certs: warn if there's no signer
  fix-branch-certs: add missing fixes
  migrate: fix for python2
  add-committer-certs: improve performance
  add-committer-certs: trivial cleanup
  authormap: re-sort
  Get rid of svn-patch-authors.diff
  authormap: fix trivial conversion warnings
  authormap: remove unused entries
  authormap: update Marc E's address
  authormap: fix Miloslav Trmac entry
  authormap: update
  fix-svn-author-certs: fix valid author checks
  print-svn-authors: improve
  print-svn-authors: fix
  Add svn-patch-authors
  authormap: remove redundant entries
  Remove 'print-svn-authors'
  Add new svn authors mappings
  fix-svn-author-certs: use new format
  fix-svn-author-certs: trivial cleanup

 add-committer-certs.py        |   94 +-
 authormap                     |  351 +-----
 authormap.TODO                |    1 -
 fix-branch-certs.sh           |   16 +
 fix-svn-author-certs.py       |   28 +-
 migrate.sh                    |   16 +-
 print-svn-authors.py          |   34 -
 svn-patch-authors             | 2593 +++++++++++++++++++++++++++++++++++++++++
 svn-patch-authors.diff        |   16 -
 svn-patch-authors.gtk1-stable |   27 -
 svn-patch-authors.missing     |    7 -
 svn-patch-authors.oldstatus   |  209 ----
 svn-patch-authors.orig        | 2350 -------------------------------------
 svn_authors.txt               | 2593 +++++++++++++++++++++++++++++++++++++++++
 svn_authors_map.txt           |  173 +++
 15 files changed, 5445 insertions(+), 3063 deletions(-)
 delete mode 100755 print-svn-authors.py
 create mode 100644 svn-patch-authors
 delete mode 100644 svn-patch-authors.diff
 delete mode 100644 svn-patch-authors.gtk1-stable
 delete mode 100644 svn-patch-authors.missing
 delete mode 100644 svn-patch-authors.oldstatus
 delete mode 100644 svn-patch-authors.orig
 create mode 100644 svn_authors.txt
 create mode 100644 svn_authors_map.txt

&lt;/pre&gt;</description>
    <dc:creator>Felipe Contreras</dc:creator>
    <dc:date>2012-05-13T14:14:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19879">
    <title>[ANN] pidgin git import v4</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19879</link>
    <description>&lt;pre&gt;Hi,

Here's an updated version of my scripts to import the pidgin monotone
repository to git.

In this version there's a new script that trims the repository; one
can specify the oldest tag (v2.7.0), and which tags and branches to
keep. The resulting repository is much smaller (17M). In addition to
that, the script generates a 'grafts' file so it's possible to stitch
the full and the trimmed repositories together.

For example:
 % git clone git://gitorious.org/pidgin-clone/pidgin-trimmed.git pidgin
 % cd pidgin
 % git remote add full git://gitorious.org/pidgin-clone/pidgin-clone.git
 % git fetch full
 % cp /tmp/grafts pidgin/.git/info/grafts

Now you would be able to see the full history.

This can be used to migrate development to git *right now*, even
though the repository conversion scripts are still not finished. Once
they are finished; it's only a matter of updating the grafts file, and
the new history would not need to be changed.

Version v3.0 was already synchronized to the mercurial scripts[2], and
there have not been any changes since then, so it remains in sync.
BTW. I have a bunch of patches to simplify the mercurial conversion
scripts and have both more aligned with the git version, but I haven't
heard anything from Richard Laager.

Advantages of git over mercurial:

 * Ability to switch *today*

 * Better performance

Actiongithg
Cloning2:13m6:19m
Size106M213M
Pull0.367s1.714s
Commit0.137s0.239s
Diff0.018s0.275s
Show0.007s0.153s

 * Faster conversion: 30 minutes vs 40 hours

This means it's easier to test the conversion scripts, and finish them.

 * Brighter future

Depending on your sources, your views might differ, but git is the
undoubted king of DVCS right now, and it's popularity and power is
only going to increase. [3]


For the people not familiar with the SCM discussions (or the ones that
have forgot them), they all boil down to; pidgin developers are more
familiar with mercurial, therefore they voted for mercurial, and no
analysis was done (except by me [4]). "I'm familiar with monotone" was
a bad reason to pick monotone, and it's a bad reason to pick
mercurial.

switch to a decent DVCS is only making the situation worst.

The scripts are in:
https://github.com/felipec/pidgin-git-import

And the results:
https://gitorious.org/pidgin-clone

Cheers.

P.S. Remember to click 'reply to all' to keep in CC people not in the
mailing list (e.g. me)

[1] https://git.wiki.kernel.org/index.php/GraftPoint
[2] http://hg.guifications.org/pidgin-mtn-conv-files/
[3] http://jamesmckay.net/2012/03/what-is-gits-market-share/
[4] http://felipec.wordpress.com/2011/05/01/pidgin-picking-the-wrong-dvcs-again-mercurial/
[5] https://www.ohloh.net/p/pidgin/analyses/latest

&lt;/pre&gt;</description>
    <dc:creator>Felipe Contreras</dc:creator>
    <dc:date>2012-05-12T19:51:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19878">
    <title>Pidgin 2.10.4 released</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19878</link>
    <description>&lt;pre&gt;There are two security updates and a few other bug fixes.

Changes: http://developer.pidgin.im/wiki/ChangeLog
Files: https://sourceforge.net/projects/pidgin/files/Pidgin/2.10.4/
_______________________________________________
Announce mailing list
Announce&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/announce
&lt;/pre&gt;</description>
    <dc:creator>Mark Doliner</dc:creator>
    <dc:date>2012-05-07T05:25:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19875">
    <title>Disable logging</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19875</link>
    <description>&lt;pre&gt;Hi all,

What is the appropriate way to turn off logging in libpurple?

I am building a custom app using libpurple and won't be needing logging for all conversations.

I have tried reading the documentation in conversation.h and log.h, have tried purple_log_uninit() after a call to purple_core_init (but I think this is the wrong solution because my app dies). I think I'm still shooting to the wrong spot.

Please help.

Thanks,
John
&lt;/pre&gt;</description>
    <dc:creator>John Indra</dc:creator>
    <dc:date>2012-05-03T08:09:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19871">
    <title>About FBChat and logging</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19871</link>
    <description>&lt;pre&gt;Hi all,

I am new to libpurple. I currently have 2 questions which help is
greatly appreciated.

1. I am trying to make a command line FBChat client app based on
libpurple's example nullclient.c.
I can see on the console that new conversation is accepted by
libpurple and printed to screen, but my FBChat friend doesn't seem to
receive the message. The other way around works though (my friend can
send me FBChat message just fine). I test the same code with YM and
GTalk and it works just fine. Both can send and receive msg.

Does this have anything to do with FB App? Do I have to create an FB
App first. What then must I do after I create the FB App? Is there
more information on this somewhere?

2. How do I turn off logging, so the line "Logging of this
conversation failed." doesn't show up in nullclient.c

Thanks a  lot.

John
&lt;/pre&gt;</description>
    <dc:creator>John Indra</dc:creator>
    <dc:date>2012-05-02T07:32:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19869">
    <title>GSoC: Pidgin Plugin Website</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19869</link>
    <description>&lt;pre&gt;Thank you for selecting me to work on this project. I am really excited and
looking forward to it.

-
Nikhil Bafna
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Nikhil Bafna</dc:creator>
    <dc:date>2012-04-24T03:47:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19868">
    <title>Student Assistant Research Help!</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19868</link>
    <description>&lt;pre&gt;To the Developers and Contributors,

I am a graduate student assistant attempting to  researching both the size of pidgin and interactions between committees, developers and contributors in commit messages and bug reports.  Can anyone tell me, either offhand or through link, both the size of pidgin in terms of code and the number of active developers and commiters?  Any help or insight would be very appreciated!

Best,

Teya


_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Dorotea Veronica Szkolar</dc:creator>
    <dc:date>2012-04-21T14:26:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19863">
    <title>Skype, Yahoo, ICQ, MSN Messenger search engine tip</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19863</link>
    <description>&lt;pre&gt;search-im is a brand new, user contributed Skype, Yahoo, AIM, ICQ, MSN Messenger search engine community created to help messenger users connect with each other based on their profession, hobbies, and other interests(not their name). Please feel free to have a try and add yourself, your service, or business.

Let me know if you have any questions or have interest in being included in our upcoming "Messenger Resources" section as well.

http://www.search-im.com

Thanks,
Nicole Boivin
info&amp;lt; at &amp;gt;search-im.com
510-962-4385
&lt;/pre&gt;</description>
    <dc:creator>Nicole Boivin</dc:creator>
    <dc:date>2012-04-15T21:38:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19861">
    <title>Request: API addition for gtkconvs</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19861</link>
    <description>&lt;pre&gt;Hi,

I'd like to request an interface for plugins to specify that a
PidginWindow instance should not be automatically destroyed on the
removal of its last conversation.

Attached is an example patch to add a pair of functions implementing
this to illustrate what I mean.  (It tacks GObject data onto a widget
instead of adding a gboolean to the struct to ensure binary
compatibility is preserved.)

Does anyone have any opinions for or against supporting this functionality?

Thanks,
David
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>David Michael</dc:creator>
    <dc:date>2012-04-14T01:34:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19858">
    <title>I am looking for someone to customize a chat plugin for my website.</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19858</link>
    <description>&lt;pre&gt;I was given your name from Eion Robb, one of the developers of plugins for
the Pidgin chattign software.
I am looking for a developer with chat experience to  customize a
preexisting chat plugin for my social network.  Essential, i need to have
one that translates (especially spanish to english).  I prefer the multitab
layout like pedgin and messenger.  I also prefer a video chat feature.


Eion mentioned that you might have a list of potential developers for my
chat plugin.

Please let me know if you can foreward me their email address/

Thank you very much.

Scott
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Scott Rosenblum</dc:creator>
    <dc:date>2012-04-10T02:34:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19854">
    <title>A Win32 compilation question</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19854</link>
    <description>&lt;pre&gt;Hello everyone,

I've tried to compile 
http://prdownloads.sourceforge.net/pidgin/pidgin-2.10.3.tar.bz2 under 
Windows 7, and got an error.

First, I installed all dependencies as page [1] says. Then, I ran `make 
-f Makefile.mingw install' as the page [1] says. I've got an error 
`gtkdialogs.c:493: error: 'REVISION' undeclared' at 
`$PIDGIN_DEV_ROOT/pidgin-2.10.3/pidgin'. I've checked the included file 
`$PIDGIN_DEV_ROOT/pidgin-2.10.3/package_revision.h', it was 0 lines long.

Second, I ran ` ./configure &amp;amp;&amp;amp; make -f Makefile.mingw install' at dir 
`$PIDGIN_DEV_ROOT/pidgin-2.10.3/'. It reported:

checking for ld used by gcc... no
configure: error: no acceptable ld found in $PATH

I then ran:

$ which ld
/bin/ld

$ echo $PATH
/cygdrive/c/Perl/bin:/cygdrive/h/ECLIPSE_WORKSPACE/PIDGIN_DEV_ROOT1/win32-dev/mingw/bin:/bin/:/cygdrive/c/Perl/bin:/cygdrive/h/ECLIPSE_WORKSPACE/PIDGIN_DEV_ROOT1/win32-dev/mingw/bin:/usr/local/bin:/usr/bin:/cygdrive/c/Perl/site/bin:/cygdrive/c/Perl/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:[...]:/cygdrive/c/Program 
Files/GnuWin32/bin:/usr/bin

$ cygpath.exe -w /bin/ld
C:\cygwin\bin\ld

$ file /bin/ld
/bin/ld: PE32 executable (console) Intel 80386 (stripped to external 
PDB), for MS Windows

After all of that, package_revision.h remains 0 bytes long.

$ cd $PIDGIN_DEV_ROOT/win32-dev/mingw
$ ls ./bin/
addr2line.exe  gccbug              libgomp-1.dll    mingw32-gcc-4.4.0.exe
ar.exe         gcov.exe            libiconv-2.dll   mingwm10.dll
as.exe         libgcc_s_dw2-1.dll  libmpfr-1.dll
c++filt.exe    libgmp-3.dll        libssp-0.dll
gcc.exe        libgmpxx-4.dll      mingw32-gcc.exe

After that, I added the latest mingw-get-inst folder to PATH in a middle 
of a PATH, to the left of the cygwin's  /bin entry:

$ which ld
/cygdrive/c/MinGW/bin/ld

$ echo $PATH
/cygdrive/c/Perl/bin:/cygdrive/h/ECLIPSE_WORKSPACE/PIDGIN_DEV_ROOT1/win32-dev/mingw/bin:/cygdrive/c/MinGW/bin/:/bin/:/cygdrive/c/Perl/bin:/cygdrive/h/ECLIPSE_WORKSPACE/PIDGIN_DEV_ROOT1/win32-dev/mingw/bin:/bin/:/cygdrive/c/Perl/bin:/cygdrive/h/ECLIPSE_WORKSPACE/PIDGIN_DEV_ROOT1/win32-dev/mingw/bin:/usr/local/bin:/usr/bin:/cygdrive/c/Perl/site/bin:/cygdrive/c/Perl/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:[...]:/cygdrive/c/Program 
Files/GnuWin32/bin:/usr/bin

And `configure' was still unhappy about it:

checking for ld used by gcc... no
configure: error: no acceptable ld found in $PATH

What should I do to build Pidgin under Windows?

I intend to extend the Windows version of Pidgin and maybe even GTK for 
visually impaired ones. I don't know if I am motivated enough to 
complete this task. Currently, some users of accessibility features 
report that they are unhappy with accessibility state of the Windows 
version of Pidgin, so they use Miranda as a bad but somewhat working 
solution for them.

Best regards,
Evgeniy

[1] Building Pidgin under Windows 
http://developer.pidgin.im/wiki/BuildingWinPidgin
&lt;/pre&gt;</description>
    <dc:creator>Evgenii Philippov</dc:creator>
    <dc:date>2012-04-09T19:10:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19852">
    <title>Google Summer of Code - need advices</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19852</link>
    <description>&lt;pre&gt;Hello everybody,

I'm having a look at the Google Summer of Code, and I'm particularly
interested in the Pidgin group.
So I'd like to introduce  myself : I'm Célestin Matte, French student in
Ensimag, engineering school in IT and mathematics part of the Grenoble INP
group.
I would like to take part in the pidgin project because I'm a heavy user of
instant messaging, so I'd be glad to contribute in building this free and
powerful software on various systems.

I'm particularly interested in these project ideas and would like to know
more about them (mainly about what already exists) :
- android frontend
- better chat log viewer
- emoticon cache

I know it's really late to start having a look at the gsoc but I've been
missing time recently and I know I would really regret it if I didn't at
least try to apply. Therefore I'm going to do the best I can to build the
best proposal possible before tonight.

Thank you,
Célestin Matte
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Célestin Perdu</dc:creator>
    <dc:date>2012-04-06T12:05:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19850">
    <title>GSoC 2012 Project Idea : vCard export/import</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19850</link>
    <description>&lt;pre&gt;Hello,
actually i'm a every day user of pidgin and i have partecipated the last
GSoC working on Contacts and vCard for another organization. My idea was
about writing a portable lib that allow to easily parse and write vcard
files and then integrate it in pidgin as an import / export functionality.
The idea of writing a lib from scrach, came around because the existing
libs are not portable, libvcard requires Qt core, and ccard is only an
outdated parser...the other alternatives have been written in other
languages like java...

What do you think? Is that a project which could be appreciated for a GSoC
proposal?

Best Regards
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>dario casalinuovo</dc:creator>
    <dc:date>2012-04-04T12:18:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19846">
    <title>QQ support in Pidgin</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19846</link>
    <description>&lt;pre&gt;Hello,

I wanted to know if QQ could be reintegrated into Pidgin.
Last time I checked, QQ was there but since Pidgin used a older and
deprecated version of the QQ messenger, the server didn't support it.
But in the newer versions of Pidgin, QQ is no longer there.
Do you think QQ should be reintegrated into Pidgin?

Looking forward for a response,

Best,

Jaskirat Singh
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>Jaskirat Singh</dc:creator>
    <dc:date>2012-04-03T20:14:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19844">
    <title>building error on windows</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19844</link>
    <description>&lt;pre&gt;I tried the development steps in
http://developer.pidgin.im/wiki/BuildingWinPidgin.

I downloaded and extracted everything correctly as the instruction tells
me. However, it shows an error message when I execute "building pidgin"
this step.

 gcc: The -mno-cygwin flag has been removed; use a mingw-targeted
cross-compiler.

../libpurple/win32/rules.mak:4: recipe for target `account.o' failed
make[1]: *** [account.o] Error 1
make[1]:“/cygdrive/e/devel/pidgin-devel/pidgin-2.7.11/libpurple”
Makefile.mingw:83: recipe for target `all' failed
make: *** [all] Error 2

 In the 83th line of Makefile.mingw, it is as following:

$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE).

I checked the environment variables in
E:\devel\pidgin-devel\pidgin-2.7.11\libpurple\win32\global.mak ,
$PURPLE_TOP $MINGW_MAKEFILE are declared clearly there. Do you have any
idea of this mistake?

(I build it in Cygwin, Windows, following the instructions in the link
above)
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>xiaochu liu</dc:creator>
    <dc:date>2012-04-03T06:39:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19843">
    <title>building Error </title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19843</link>
    <description>&lt;pre&gt;I tried the development steps in http://developer.pidgin.im/wiki/BuildingWinPidgin.
I downloaded and extracted everything correctly as the instruction tells me. However, it shows an error message when I execute "building pidgin" this step.

gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.
../libpurple/win32/rules.mak:4: recipe for target `account.o' failed
make[1]: *** [account.o] Error 1
make[1]:“/cygdrive/e/devel/pidgin-devel/pidgin-2.7.11/libpurple”
Makefile.mingw:83: recipe for target `all' failed
make: *** [all] Error 2

In the 83th line of Makefile.mingw, it is as following:
$(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE).
I checked the environment variables in E:\devel\pidgin-devel\pidgin-2.7.11\libpurple\win32\global.mak , $PURPLE_TOP $MINGW_MAKEFILE are declared clearly there. Do you have any idea of this mistake?
(I build it in Cygwin, Windows, following the instructions in the link above)_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>doom_ood</dc:creator>
    <dc:date>2012-04-03T06:32:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19835">
    <title>[GSOC] Pidgin Plugin Website</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.devel/19835</link>
    <description>&lt;pre&gt;Hi all,
        I am going to submit my proposal for pidgin gsoc project "Pidgin
Plugin Website". I am confused over a few aspects of the project and I
think that a short survey and response from the plugin developers can help
me present a better proposal. I would be grateful if you would visit the
given link and fill out the short survey. thanks in advance .
https://docs.google.com/spreadsheet/viewform?formkey=dHdfbmlaaWNWeGF0bnJsOG50Z3lJMUE6MQ

Regards,

Mrigesh Pokhrel
mrigeshpokhrel&amp;lt; at &amp;gt;gmail.com
IRC : rAg3-nix(#ubuntu, #ubuntu+1, #pidgin)
_______________________________________________
Devel mailing list
Devel&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/devel
&lt;/pre&gt;</description>
    <dc:creator>mrigeshpokhrel</dc:creator>
    <dc:date>2012-03-31T17:28:42</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.gnome.gaim.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.gnome.gaim.devel</link>
  </textinput>
</rdf:RDF>

