pidgin/nest

Merged in default (pull request #9)

2019-03-19, Gary Kramlich
2e12c8034c19
Merged in default (pull request #9)

Add and Edit some Content

Approved-by: Gary Kramlich
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hugo/archetypes/archetypes/default.md Tue Mar 19 05:13:02 2019 +0000
@@ -0,0 +1,6 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+replaces: []
+---
+
--- a/hugo/content/_index.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/_index.md Tue Mar 19 05:13:02 2019 +0000
@@ -1,5 +1,8 @@
---
title: "About"
+replaces: [
+ "pidgin.im/about/",
+]
---
Pidgin is a chat program which lets you log in to accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on MSN, talking to a friend on Google Talk, and sitting in a Yahoo chat room all at the same time.
--- a/hugo/content/contributing/_index.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/contributing/_index.md Tue Mar 19 05:13:02 2019 +0000
@@ -3,6 +3,7 @@
date: 2019-02-03T19:49:30-05:00
anchor: "contributing"
weight: 10
+original: true
---
Pidgin is a huge project with a ton of things to be done, even if you're not a coder. Below is a short list of things you can do to help get involved!!
--- a/hugo/content/development/design-guidelines.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/development/design-guidelines.md Tue Mar 19 05:13:02 2019 +0000
@@ -2,6 +2,9 @@
title: "Design Guidelines"
date: 2019-02-03T20:47:20-05:00
anchor: "design-guidelines"
+replaces: [
+ "developer.pidgin.im/wiki/DesignGuidelines",
+]
---
## Applicability
--- a/hugo/content/development/faq.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/development/faq.md Tue Mar 19 05:13:02 2019 +0000
@@ -2,6 +2,9 @@
title: "FAQ"
date: 2019-02-03T20:57:00-05:00
anchor: "development-faq"
+replaces: [
+ "developer.pidgin.im/wiki/Development%20FAQ",
+]
---
The following is a list of Frequently Asked Questions (FAQs), with answers, and notes related to development using LibPurple.
--- a/hugo/content/drafts/release-process.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/drafts/release-process.md Tue Mar 19 05:13:02 2019 +0000
@@ -1,6 +1,9 @@
---
title: "Release Process"
draft: true
+replaces: [
+ "developer.pidgin.im/wiki/ReleaseProcess",
+]
---
The release process for Pidgin is kind of tedious but is described in great detail below.
@@ -25,17 +28,19 @@
Ask Gary Kramlich or Richard Laager if you need administrative access to [Pidgin's Transifex project](https://www.transifex.com/projects/p/pidgin/resources/) for the following steps.
**Steps**
+
1. Fetch and commit all translations from Transifex.
- a. `cd po`
- a. `make pidgin.pot`
- a. `tx pull --force` - Pulls all translations from Transifex, even if local timestamp is newer than remote.
- a. `XGETTEXT_ARGS=--no-location intltool-update --report` - Merges current strings into translations and strips filename and line numbers to keep diffs smaller.
- a. `find -name \*.po -exec msgfmt -cv {} \;` - Check for mismatched c-format specifiers. These can cause crashes so look at the output carefully! If any are found, follow these steps:
- 1. Edit the translation in Transifex.
- 1. Remove the string with the mismatched c-format specifiers (leave it blank).
- 1. `tx pull --force --language=NN` - Pull the updated translation from Transifex.
+ 1. `cd po`
+ 1. `make pidgin.pot`
+ 1. `tx pull --force` - Pulls all translations from Transifex, even if local timestamp is newer than remote.
+ 1. `XGETTEXT_ARGS=--no-location intltool-update --report` - Merges current strings into translations and strips filename and line numbers to keep diffs smaller.
+ 1. `find -name \*.po -exec msgfmt -cv {} \;` - Check for mismatched c-format specifiers. These can cause crashes so look at the output carefully! If any are found, follow these steps:
+ 1. Edit the translation in Transifex.
+ 1. Remove the string with the mismatched c-format specifiers (leave it blank).
+ 1. `tx pull --force --language=NN` - Pull the updated translation from Transifex.
**Other Pre-Release Steps**
+
1. Make sure list of translators in `pidgin/gtkdialogs.c` matches the Transifex translations teams. (TODO: This is labor intensive and error prone. Should find a way to automate.)
1. Check there are no open tickets for this release milestone
1. Make sure the date and version number are correct in ChangeLog and ChangeLog.API
@@ -46,46 +51,47 @@
1. Verify that win32 builds succeed (including building installers).
## Release
+
1. Tag the repository. The tag should have a `v` prefix. Ie: `v2.12.0`.
1. Extract the tagged code `hg archive -r $TAG ../pidgin-$VERSION`.
1. `cd ../pidgin-$VERSION`
1. Run `./autogen.sh`
- 1. Run `make release`
- This will perform the following steps (which can also be done by hand at this point):
- a. `make commit-check` - Checks a few files for correctness (UTF-8 encoding, sort order, etc.).
- a. `make version-check` - Make sure version string does not contain "dev," version is correct in ChangeLogs, and we're building from a clean hg tag.
- a. `make distcheck` - Standard automake target. Builds and verifies tarballs. If "distcheck" fails and you're sure the failure is innocuous then you can use `make dist`, instead.
- a. `make sign-packages` - Creates a gpg signature of the two tarballs.
+ 1. Run `make release`: This will perform the following steps (which can also be done by hand at this point):
+ 1. `make commit-check` - Checks a few files for correctness (UTF-8 encoding, sort order, etc.).
+ 1. `make version-check` - Make sure version string does not contain "dev," version is correct in ChangeLogs, and we're building from a clean hg tag.
+ 1. `make distcheck` - Standard automake target. Builds and verifies tarballs. If "distcheck" fails and you're sure the failure is innocuous then you can use `make dist`, instead.
+ 1. `make sign-packages` - Creates a gpg signature of the two tarballs.
1. [wiki:BuildingWinPidgin Build on Windows]
- a. If there's a new GTK+ Bundle, upload the zip file to [Sourceforge](https://sourceforge.net/projects/pidgin/files/Pidgin/) and make sure that the `BUNDLE_SHA1SUM` in `pidgin/win32/nsis/generate_gtk_zip.sh` is correct (this should have been checked before `make release`).
- a. Check the authenticode signature and timestamp for the installers (unfortunately needs to be done on a Windows box with the Platform SDK installed)
-```
-signtool.exe verify /pa /tw pidgin-$VERSION-offline.exe
-signtool.exe verify /pa /tw pidgin-$VERSION.exe
-```
- a. Install `pidgin-$VERSION-offline.exe` and check the authenticode signature and timestamp of pidgin.exe
-```
-signtool.exe verify /pa /tw %ProgramFiles(x86)%\Pidgin\pidgin.exe
-```
+ 1. If there's a new GTK+ Bundle, upload the zip file to [Sourceforge](https://sourceforge.net/projects/pidgin/files/Pidgin/) and make sure that the `BUNDLE_SHA1SUM` in `pidgin/win32/nsis/generate_gtk_zip.sh` is correct (this should have been checked before `make release`).
+ 1. Check the authenticode signature and timestamp for the installers (unfortunately needs to be done on a Windows box with the Platform SDK installed)
+
+ signtool.exe verify /pa /tw pidgin-$VERSION-offline.exe
+ signtool.exe verify /pa /tw pidgin-$VERSION.exe
+
+ 1. Install `pidgin-$VERSION-offline.exe` and check the authenticode signature and timestamp of pidgin.exe
+
+ signtool.exe verify /pa /tw %ProgramFiles(x86)%\Pidgin\pidgin.exe
+
1. `hg push` the tag.
1. Upload the two tarballs, the two signatures, and the Windows builds to [Sourceforge](https://sourceforge.net/projects/pidgin/files/Pidgin/)
1. Wait a few hours and let people test.
1. Build and upload new API docs.
- a. Run `make` locally?
- a. `scp docs/reference/libpurple/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/libpurple/`
- a. `scp docs/reference/pidgin/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/pidgin/`
- a. `scp docs/reference/finch/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/finch/`
+ 1. Run `make` locally?
+ 2. `scp docs/reference/libpurple/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/libpurple/`
+ 3. `scp docs/reference/pidgin/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/pidgin/`
+ 4. `scp docs/reference/finch/html nicobar.pidgin.im:/srv/www/developer.pidgin.im/doxygen/x.y.z/finch/`
1. Update the Pidgin website
- a. Change `inc/version.inc.php` (only for full releases, not for betas)
- a. Update the ChangeLog in https://bitbucket.org/pidgin/www/ (this is used by the release notification plugin)
+ 1. Change `inc/version.inc.php` (only for full releases, not for betas)
+ 2. Update the ChangeLog in https://bitbucket.org/pidgin/www/ (this is used by the release notification plugin)
1. Send announcement email to announce and packagers mailing lists (sending to announce also sends to support and devel)
- * Someone must approve the posts in the [support](https://pidgin.im/cgi-bin/mailman/admindb/support) and [devel](https://pidgin.im/cgi-bin/mailman/admindb/devel) admin interface.
+ * Someone must approve the posts in the [support](https://pidgin.im/cgi-bin/mailman/admindb/support) and [devel](https://pidgin.im/cgi-bin/mailman/admindb/devel) admin interface.
## Post Release
+
1. Increment version number in `configure.ac` & set `purple_version_suffix`and `gnt_version_suffix` to `devel`
1. Update `#pidgin` topic
1. Add new Trac Version for this release
1. Add new Trac milestone for the next release
- 1. "Complete" old milestone
+ 1. "Complete" old milestone
1. Bump the auto-close script to target auto-closed bugs to the new milestone (/srv/trac/developer.pidgin.im/mercurial_support/trac-hg-post-commit-hook.py on nicobar.pidgin.im)
- 1. Update "The Road to" on WikiStart to list tickets for the new version
\ No newline at end of file
+ 1. Update "The Road to" on WikiStart to list tickets for the new version
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hugo/content/drafts/voice-and-video-API.md Tue Mar 19 05:13:02 2019 +0000
@@ -0,0 +1,90 @@
+---
+title: "Voice and Video API"
+date: 2019-03-16T20:15:02Z
+replaces: [
+ "developer.pidgin.im/wiki/vvAPI",
+]
+---
+
+For functions that could be per conference, session, participant, or stream, they would have a session and a participant parameter. A NULL for either of these would be a wildcard.
+
+### PurpleMediaManager?
+
+#### Functions
+
+```
+*_initiate # Creates a PurpleMedia instance. Probably have a flag as to whether it's the initiator or responder
+```
+
+#### Signals
+
+```
+init-media # Same as the current signal. Is triggered when *_initiate is called
+init-video-src # These are all triggered when the corresponding *_get_\* functions are called
+init-video-sink # The one problem I've thought of with them is that this way it wouldn't
+init-audio-src # be very easy to have multiple srcs or sinks of the same type.
+init-audio-sink
+```
+
+#### Get
+
+```
+*_get # Returns a global instance of the PurpleMediaManager
+
+*_get_pipeline # Returns a global pipeline to be used for all PurpleMedia instances.
+
+*_get_video_src # These all create their respective types if they don't exist.
+*_get_video_sink # Otherwise they return a src/sink-pad for the existing src/sink.
+*_get_audio_src
+*_get_audio_sink
+
+# The next three functions will probably have a type parameter (audio or video, src or sink)
+*_get_plugins # Return a list of audio/video GStreamer plugins (eg. v4lsrc, alsasrc)
+*_get_devices # Return a list of devices for a specific plugin
+*_get_devices_autodetect # Eventually, return a list of devices detected for all supported plugins
+```
+
+### PurpleMedia?
+
+#### Functions
+
+All of these functions will have parameters for session_id and participant_id NULL for either of these would indicate a wildcard and do this operation for all matching streams
+
+```
+*_add_stream # Adds a stream/session/participant to the conference, automatically creates participants and FsSessions as necessary
+*_add_candidate # Adds a single candidate to the stream (May not be necessary. Could alternately add a list)
+*_set_candidates # Sets a list of candidates for the stream
+*_set_codecs # Sets a list of codecs for the stream
+*_set_direction # Changes the direction of a stream/session/participant (could use *_add_stream to accomplish this)
+
+*_accept # Accept a session (User clicked the accept button)
+
+# The following two could probably be merged into one function
+*_mute # Mutes an audio stream/session/participant (sending and/or receiving?)
+*_pause # Pauses a video stream/session/participant (sending and/or receiving?)
+
+*_end # Ends a stream/session/participant/conference
+```
+
+#### Signals
+
+These signals also apply to the wildcard note above
+
+```
+ready # Waits for both codecs-ready to be TRUE and candidates-prepared to have fired (possibly also wait for the user to click accept if they are the responder otherwise we'll probably need an "accepted" signal)
+state-changed # Has an enum state (containing such states as connected, end, and ice-specific values) Signals for stream/session/participant/conference
+```
+
+More signals may be necessary for different protocols. Jingle ice-udp may also need a new-candidate and/or new-candidate-pair and a codecs-changed equivalent
+
+#### Get
+
+I'm not certain all of these will be necessary
+
+```
+*_codecs # gets codecs per sessions
+*_candidates # gets candidates per stream
+*_streams # gets stream_ids by session or by participant
+*_sessions # gets session_ids in the conference
+*_participants # gets participant names by conference or by session
+```
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hugo/content/drafts/voice-and-video.md Tue Mar 19 05:13:02 2019 +0000
@@ -0,0 +1,83 @@
+---
+title: "Voice and Video"
+date: 2019-03-16T16:58:31Z
+replaces: [
+ "developer.pidgin.im/wiki/vv",
+]
+---
+
+## Voice and Video
+
+Voice and video in libPurple is being worked on using [​Farstream](http://www.freedesktop.org/wiki/Software/Farstream/) (formerly Farsight). There are a few parts to this implementation. Firstly, basic API support needs to be added to libPurple. Then Pidgin and Finch need to be able to initiate, participate in, and terminate the voice and video sessions. After these two requirements are met, each protocol will require both the signaling to be implemented (such as SIP or Jingle) and the proper Farstream plugins.
+
+Farstream has rawudp, iceudp, and multicast transmitter plugins and an MSN webcam plugin. Basic voice and video support for libPurple, Pidgin, and Finch (voice support only) have been added to the im.pidgin.pidgin development branch. XMPP/GTalk/Gmail is working, but not complete. None of the other protocols have had much work done.
+
+### Protocol Specific Information
+
+#### XMPP/GTalk
+
+XMPP, GTalk, and Gmail use RTP. XMPP uses Jingle. GTalk and Gmail use their own flavor of Jingle. XMPP uses rawudp and XMPP, GTalk, and Gmail use the libnice Farstream transmitter plugin.
+
+Voice and video support for XMPP/GTalk was worked on for a [Summer of Code project](/wiki/GSoC2008/VoiceAndVideo)
+
+#### MSN
+
+MSN has several different voice and video types:
+
+- MSN Audio Conference (WLM 2009)
+- MSN Video Conference (WLM 2009. Includes audio. Allows the h263 codec)
+- MSN Audio Conference (pre-WLM 2009. Sometimes works with WLM2009)
+- MSN Video Conference (pre-WLM 2009. Sometimes works with WLM2009. Includes audio. Only uses the wmv3 codec for which there is no open source encoder/GStreamer element)
+- MSN Webcam
+
+A Farsight2 plugin for MSN Webcam has been released.
+
+[​http://imfreedom.org/wiki/MSN:AV](http://imfreedom.org/wiki/MSN:AV) has more information about the protocol.
+
+#### Oscar (AIM, iChat, ICQ)
+
+All Oscar protocols use RTP and SIP.
+
+#### Yahoo
+
+Yahoo voice uses straight SIP. It binds to the SIP server upon login and sends INVITEs as necessary.
+
+Yahoo webcam uses the JPEG2000 codec with proprietary transport and signalling. The old Farsight Yahoo plugin will need to be ported to the new Farstream API.
+
+#### Sametime
+
+Sametime seems to support at least voice chat [​http://publib.boulder.ibm.com/infocenter/sametime/v8r0/index.jsp?topic=/com.ibm.help.sametime.standard.doc/st_adm_avserv_aboutvoicechat_r.html](http://publib.boulder.ibm.com/infocenter/sametime/v8r0/index.jsp?topic=/com.ibm.help.sametime.standard.doc/st_adm_avserv_aboutvoicechat_r.html)
+
+#### Gadu-gadu
+
+This is a placeholder for information regarding GG voice An announcement that might be of interest: [​http://www.finanznachrichten.de/nachrichten-2008-10/12104971-global-ip-solutions-ab-gadu-gadu-launches-new-version-of-instant-messenger-with-excellent-voice-powered-by-gips-004.htm](http://www.finanznachrichten.de/nachrichten-2008-10/12104971-global-ip-solutions-ab-gadu-gadu-launches-new-version-of-instant-messenger-with-excellent-voice-powered-by-gips-004.htm)
+
+### Building with Voice and Video
+
+Please be familiar with compiling and installing code from source. Please also submit any bugs you find to Trac ([TipsForBugReports](/wiki/TipsForBugReports)).
+
+Make sure you are using the latest release of Pidgin.
+
+Farsight 2 0.0.9 and libNice 0.0.7 are the minimum versions required, but the newest versions you can get are best. Make sure to check Farsight2's README and make sure you have all of the dependencies for it. gst-plugins-base is also required for the gstreamer-interfaces-0.10 interface. Some distros call it libgstreamer-plugins-base0.10-dev. If everything in order, the configure script should output this line:
+
+> Build with voice and video.... yes
+
+For help with building, see [Installing Pidgin](/wiki/Installing%20Pidgin#Compiling). Please carefully read through that section and any extra information for the distribution you're using.
+
+#### Codec Configuration
+
+If a certain codec isn't working for you, you need to create an "fs-codec.conf" file in your purple config directory. See this for the specification: [​fs-codec-list-from-keyfile](http://farsight.freedesktop.org/apidoc/farsight2/farsight2-libs-FsCodec.html#fs-codec-list-from-keyfile)
+
+So, for example, if you want to disable the MPV codec you'd put this in the fs-codec.conf file:
+
+```
+[video/mpv]
+id=-1
+```
+
+### Links
+
+- [​http://www.freedesktop.org/wiki/Software/Farstream/](http://www.freedesktop.org/wiki/Software/Farstream/)
+- [​http://code.google.com/apis/talk/libjingle/index.html](http://code.google.com/apis/talk/libjingle/index.html)
+- [​http://trac.adium.im/wiki/VoiceAndVideo](http://trac.adium.im/wiki/VoiceAndVideo)
+- [​http://trac.adium.im/wiki/PidginVV](http://trac.adium.im/wiki/PidginVV)
--- a/hugo/content/gsoc/ideas.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/gsoc/ideas.md Tue Mar 19 05:13:02 2019 +0000
@@ -2,6 +2,9 @@
title: "GSoC Ideas"
date: 2019-01-10T22:32:00-06:00
anchor: "gsoc-ideas"
+replaces: [
+ "https://developer.pidgin.im/wiki/SoCIdeas",
+]
---
These ideas are starting points for Google Summer of Code projects that the Pidgin, Finch, and libpurple community has agreed are generally desirable and high impact. For smaller projects, community-submitted ideas, or projects that for some reason we are not sure are in scope for SoC, please see [wiki:SoCAndBountyIdeas]. (You can submit SoC proposals with those ideas, or your own ideas, as well, you just have to convince us they're suitable!)
--- a/hugo/content/gsoc/instructions.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/gsoc/instructions.md Tue Mar 19 05:13:02 2019 +0000
@@ -2,6 +2,9 @@
title: "GSoC Instructions"
date: 2019-01-10T22:32:00-06:00
anchor: "gsoc-instructions"
+replaces: [
+ "developer.pidgin.im/wiki/SoCApplicationInstructions"
+]
---
Our project has historically allowed a wide variety of applications on topics both solicited and unsolicited, and we do not intend to change this policy. However, every application must meet some criteria, which we have set out here, to be considered.
--- a/hugo/content/i18n/tips.md Mon Jan 28 20:36:52 2019 +0000
+++ b/hugo/content/i18n/tips.md Tue Mar 19 05:13:02 2019 +0000
@@ -1,6 +1,9 @@
---
title: "Tips"
anchor: "i18n-tips"
+replaces: [
+ "developer.pidgin.im/wiki/TipsForTranslators",
+]
---
### Can I help translate?