+++ /dev/null
--Shell account per user management seems broken
+++ /dev/null
-gforge (4.8+scmrefactor-1) unstable; urgency=low
-
- * As part of the refactoring of the SCM plugins, and to avoid namespace
- pollution in /var/lib/gforge/chroot with many directories, the
- repositories are now stored under
- /var/lib/gforge/chroot/scmrepos/$scm. If you were previously using
- the CVS and/or Subversion plugins, you need to take care of moving the
- existing contents of /var/lib/gforge/chroot/cvsroot to
- .../chroot/scmrepos/cvs/, similarly from
- /var/lib/gforge/chroot/svnroot to .../chroot/scmrepos/svn/. Take care
- to update your backup scripts, internal documentation, symbolic links,
- etc. accordingly.
-
- -- Roland Mas <lolando@debian.org> Thu, 20 Aug 2009 09:50:25 +0200
-
+++ /dev/null
-@FORGENAME@ for Debian
-======================
-
-@FORGENAME@ is packaged for Debian, and was formerly packaged under
-the 'gforge' source package name. Even though a transition is in
-progress towards renaming it widely, only high-level meta-packages are
-named with the '@PACKAGE@' prefix. The rest of the packages are
-still named with the 'gforge-' prefix, so expect most paths and
-filenames to still be named in relation to 'gforge'.
-
-Status
-------
-Want to know what the status of this package is? Read
-/usr/share/doc/@PACKAGE@/TODO.Debian or (even better)
-<https://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/Roadmap>.
-If you miss a feature, or find a bug, or want to help, don't hesitate
-to contact me (Roland Mas <lolando@debian.org>) . Plenty of features
-are missing, I'm working on some, but if you don't tell me which ones
-you miss the most I might process them in the wrong order for you.
-
- Please read the bug reports on the Debian bug-tracking system (at
-<URL:http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=@PACKAGE@>)
-before submitting new ones. Be warned that bug reports describing a
-problem precisely and/or offering a solution will probably be
-processed faster :-)
-
-
-Note on documentation
----------------------
-See contents of /usr/share/doc/@OLDPACKAGE@-common/ first.
-
-Although a few documentation files from upstream are included, they
-are either very out of date or practically useless. I mostly include
-them for completeness's sake (and per request, too). The files I'm
-referring to are Install_Guide.html, Adminstration_Guide.html,
-Contributor_Guide.html, INSTALL, and AUTHORS.
-
-
-Installation notes
-------------------
- @FORGENAME@ is a big piece of software. It's far-reaching. It
-fiddles with many different parts of the system. As automated as I
-have tried to make its installation, there are still things that need
-to be done by hand, maybe even by a system administrator.
-
- First, you'll need a hostname. Get the @PACKAGE@.<your-domain>
-DNS name to be created, pointing on the IP address of the host you're
-installing @FORGENAME@ on. The "@PACKAGE@" part isn't required, you
-can call it however you like. However, I'll assume you chose
-"@PACKAGE@" from now on; substitute as needed.
-
- If you want to use the Apache virtual hosting service, you'll even
-need a delegation of a subdomain. Get your system administrator to
-delegate you the SOA for the @PACKAGE@.<your-domain> subdomain.
-This will allow @FORGENAME@ to create new hostnames for projects when
-needed (foo.@PACKAGE@.<your-domain>, for instance), as well as some
-hostnames needed by the system (for mailing-lists or SCM, for
-instance).
-
- The LDAP server is hosted on the same host and automatically
-managed, therefore you should not have to worry too much about it.
-You might be able to access it from another host, but I'm not sure
-you'll be able to modify the entries in it. I would advise not to in
-any case, since it would make the data contained in the LDAP directory
-inconsistent with the real data stored in the PostgreSQL database.
-
- You'll need a configured MTA for @FORGENAME@. Depending on whether
-the @FORGENAME@ users are local or remote, you might need to set up a
-smarthost or something else. @FORGENAME@ depends on a working mail
-system, and you won't be able to create user accounts without it. I'm
-not sure yet what advanced tricks need to be done with the MTA. There
-might be some stuff to do with virtual domains for mailing-lists or
-user email forwarding... I haven't fully investigated it yet. Your
-contribution will be most welcome.
-
- Depending on the targeted audience, you might want to get a real
-SSL/TLS certificate from some certification authority, whether it be a
-professional one or your personal one (or the one in your company).
-Otherwise, just use mod-ssl-makecert as advised during the
-configuration phase, and get your own custom certificate.
-
- Do *not* delete the /etc/@PACKAGE@/*.template files. They are
-needed. Do not alter them either unless you *know* what you're doing.
-
- See /usr/share/doc/@PACKAGE@-web-apache2/README.Debian(.gz) for
-more details about the Apache webserver configuration options for
-FusionForge.
-
-Custom local configuration
---------------------------
-With default Debian settings, a set of conf files have been generated,
-and will contain the desired settings for runtime :
- - /etc/fusionforge/config.ini
- - /etc/fusionforge/config.ini.d/*.ini
-
-They are standard Windows-style *.ini files, and can be updated with
-any text editor. They should be taken into account immediately by the
-web part of the forge and any subsequent runs of the cron jobs. Note
-however that some require manual intervention: for instance, if you
-change the name of the database, you will need to perform the
-appropriate steps in the database server too.
-
-Instead of changing the contents of the existing file, you may wish to
-add only your custom local settings which differ from the packaged
-defaults in a dedicated overriding file, for example in the provided
-/etc/@PACKAGE@/config.ini.d/zzzz-local.ini. This will make it
-easier to track local customizations.
-
-
-Adminning notes
----------------
- Once @FORGENAME@ is set up, it pretty much runs by itself. There
-should be relatively few things to do for the administrator. The
-following are random notes trying to document them.
-
- You'll need to periodically check the Approve Pending Projects page
-as well as the Approve News Bytes one, and take appropriate action.
-That can be done by the `admin' user (or any user having admin
-permissions on the `siteadmin' project) via the web interface.
-
- If you need to add skills to the database after installation, you
-can use the sf-add-skill script. Give it a skill (or a list of
-skills) and it'll insert it into the databse. This script is located
-in /usr/share/@PACKAGE@/bin/.
-
- For cvs to work you have to add a symlink doing
-ln -s /var/lib/@PACKAGE@/chroot/cvsroot /cvsroot.
-We can't do this for Debian policy reason that forbid this.
- For svn similar
-ln -s /var/lib/@PACKAGE@/chroot/svnroot /svnroot is to be done
-
- Don't forget about adding
-SYSLOGD="-p /dev/log -a /var/lib/@PACKAGE@/chroot/dev/log" in /etc/default/syslog
-This is a WARNING you might have seen at install, essential if you run
-anonymous cvs in a root jail (This is the default in Debian)
-
- If you would like to add a theme to your @FORGENAME@, you'll first
-have to compose it. Please refer to README.Themes.
-
- Other customisations are described in README.Custom.
-
-
-Thanks
-------
- Apart from the SourceForge crew at VA Linux, who did (and probably
-still do) a great job with SF, I'd like to send my thanks to Guillaume
-Morin, who wrote a very thorough SourceForge installation guide. That
-guide gives step-by-step instructions for the installation procedure,
-and a big part of the packaging task was to turn these instructions
-into automated scripts. Even if this package has evolved a lot since
-then, it was originally based on his guide.
-
- Thanks also to all who tested packages and helped correct many
-errors of mine. In particular, thanks to all who submitted patches.
-
- And mega-thanks to Christian Bayle. That guy single-handedly
-adapted and fixed all the scripts related to SCM, DNS, SSH accounts,
-and probably more.
-
- -- Olivier Berger <obergix@debian.org>, Thu, 16 Aug 2012 12:55:46 +0200
-
-# Local Variables:
-# mode: text
-# End:
-
+++ /dev/null
-DEBIAN GFORGE MAINTAINER HOWTO
-------------------------------
-
-Here is a short HOWTO explaining a few of the tricks that are used by
-the Debian Gforge packages.
-
-ATTENTION TO NMUERS
--------------------
-If you intend to NMU this package, *please* read it thoroughly. While
-you can make it up as you do it as far as the helpers are organised,
-the database handling is, to say the least, very fragile. And errors
-are fatal. So go read the section entitled "THE DATABASE". Do it
-now. Don't skip it. Really.
-
-HELPERS (DEBHELPER & DEBCONF)
------------------------------
-The package uses Debhelper and Debconf. While not all features of are
-used (no Emacsen modules, no shared libraries, no rollback features in
-Debconf, etc.), some of them are. Where they are, it is in a fairly
-straightforward way. No black magic or advanced features are used.
-
-PACKAGE ORGANISATION
---------------------
-Historically, the package was monolithic: there was only one (rather
-large) package, called "sourceforge". This package went and changed
-things all over the system, configuring a database, a web server, the
-mail transfer agent, etc. In order to keep a semblance of order in
-all the actions involved, we separated them by "subsystem". There was
-the database subsystem, the web server subsystem, the LDAP subsystem,
-etc. These subsystems were each represented by a script handling most
-of it. These scripts are called deb-specific/install-*.sh. The main
-maintainer scripts (postinst, prerm, cron jobs and suchlike) called
-these scripts in turn. The install-*.sh scripts handle different
-parameters: "configure", "purge" and "update" have rather explicit
-names (I hope); "configure-files" and "purge-files" are special
-targets. They are used as a way for the postinst to delegate the task
-of computing a proposed change in a configuration file to the
-subsystem. The postinst then uses Debconf to ask whether the proposed
-file should be used, takes appropriate action, then lets the subsystem
-finish its configuration. Similar things happen for prerm scripts.
-
- The package is now split into several pkgname-* packages. Some
-of them still contain some install-*.sh scripts (usually at most one).
-Each pkgname-* package installs its corresponding subsystem, or a
-semblance thereof. For instance, it is planned that the database can
-be hosted on a different server than the website. But the website
-still needs to know where the database server is. In this case, the
-database host will have to install pkgname-db-local (or whatever
-the package is named), and the web server will have to install
-pkgname-db-remote. The -db-local package will still install the
-database (thus invoking install-db.sh), but -db-remote will only
-install what is needed by the database *clients* (basically, the host
-where the database is installed and the appropriate password).
-
- There are therefore some areas where packages overlap: the database
-password is a variable "provided" by both the -db-local and -db-remote
-packages. Debconf is intelligent enough not to ask the corresponding
-question twice, but it is interesting nevertheless to keep the
-appropriate variables where they belong, and only there. Hence the
-use of a Debhelper-like trick, as described below.
-
-DSF-HELPER
-----------
-This is the most tricky part of the source package. The maintainer
-scripts and Debconf templates are not used "as is", but they are
-instead generated from templates. In much the same way as Debhelper
-replaces #DEBHELPER# lines in maintainer scripts by appropriate chunks
-of code to add the needed functionality to packages, this package
-builds the maintainer scripts (and Debconf templates) from templates
-by inserting bits of text in them. These bits can be either simple
-text (like for Debconf templates), or bits of code (like the
-appropriate code to handle one particular Debconf variable in a
-.config file, or a function to repeatedly ask for a password until two
-consecutive answers match).
-
- I call this trick DSF-Helper (for "Debian Sourceforge helper").
-It's largely inspired from Debhelper (particularly dh_installdeb) in
-both its concepts and implementation, and it might result in a patch
-submitted against Debhelper proper when I'm confident it works and is
-useful. It is currently implemented in Perl.
-
- The "bits of stuff" are grouped by identifiers. For each
-identifier, you can have one chunk of text for each family of
-generated files (currently the families are .templates, .config,
-.preinst, .postinst, .prerm and .postrm). For instance, a Debconf
-variable shared between several packages will have one chunk for the
-.templates file (containing the Debconf template), one for the .config
-file (containing the appropriate Debconf call), and one for the
-.postinst file (containing code to turn this Debconf variable into a
-line in a configuration file).
-
- Each subpackage can then use some of these "bits of stuff" in its
-files. To do so, the files must be named *.dsfh-in and include lines
-like #DSFHELPER:identifier#. These files will be processed by
-dsf-helper.pl and turned into the appropriate files, with the keywords
-replaced by the appropriate text.
-
- Now for a few examples.
-
-- get-debconf-password: this is a simple shell function looping until
- the user types the same passwrd twice. This function is mostly
- useful in .config files, hence the "group" consists of the sole
- debian/dsf-helper/get-debconf-password.config file. To use it in a
- <blah>.config file, just rename that <blah>.config file as
- <blah>.config.dsfh-in and include #DSFHELPER:get-debconf-password#
- in it.
-
-- ldap-variables: this one involves both Debconf templates and .config
- code. Just include #DSFHELPER:ldap-variables# in both the
- <blah>.templates.dsfh-in and <blah>.config.dsfh-in, and DSF-Helper
- will insert the appropriate chunk of text in the appropriate file.
-
- The rationale behind DSF-Helper is that the code handling, say, one
-particular Debconf variable is likely to change from time to time, and
-to be added to one subpackage and removed from another. It can become
-a big hassle just to maintain the code in different files and keep it
-consistent, and creating a new subpackage is also a tedious task.
-DSF-Helper makes these tasks a bit more automated. Each bit of code
-is only maintained in one file, and it's propagated into every package
-at package building time. Creating a new package can be "just" a
-matter of picking the appropriate bits of code, and DSF-Helper will
-put them where needed.
-
- To draw a comparison with compiled C code, DSF-Helper is separate
-compilation (each function in its own file) made into static binaries.
-The "static" part is this: I could of course have put all the bits of
-code into one external file, and source it at run time, but that
-cannot work for .config, .preinst and .postrm scripts since they are
-executed when the package is not installed (not yet unpacked or
-already removed).
-
-THE DATABASE
-------------
-It is vitally important that extreme care be taken for changes in the
-database. A smooth upgrade path has been provided so far by carefully
-sequencing the changes in the database and making sure they will not
-conflict with each other or some other trick. This section is
-targetted at people who touch deb-specific/db-upgrade.pl. Please read
-it thoroughly, and don't skip paragraphs. A single mistake can be a
-nightmare to fix (and believe me, I know that).
-
- The database, as created by the package, has a lot of tables for the
-software proper, plus one especially used to store a version of the
-database scheme. That one table is named debian_meta_data, and
-contains two fields (named 'key' and 'value'). Two rows are currently
-used: the one for which the key is 'db-version', and the one for which
-the key is 'current-path'. Together they store the current status of
-the database.
-
- The value of 'current-path' is only used during the first
-installation of Sourceforge 2.6. If that installation is done on a
-fresh machine, the value will be 'scratch-to-2.6'. If the
-installation is done as an upgrade on Sourceforge 2.5, the value will
-be '2.5-to-2.6'. In any case, when that first installation is
-completed, the row is deleted. There's currently no other use for
-this row.
-
- The value of 'db-version' is a string encoding a version. The
-ordering method for these strings is the one provided by dpkg
---compare-versions. The values currently used more or less match the
-package versions, but you shouldn't depend on it. Special procedures
-(upgrading from 2.5, or installing a fresh 2.6, or future cases maybe)
-involve names not corresponding to a package version. They still must
-be ordered according to dpkg.
-
- The database upgrader (db-upgrade.pl) can be seen as walking along a
-path. Either that path is an explicit one (during first install or
-upgrade from 2.5), or it is the default one (upgrading betwen versions
-of 2.6). In any case, the walking is made in steps. Each step has a
-target version (where it leads) and a series of actions to perform to
-reach that target. If the current version of the database is lesser
-than the target version, the actions are performed, and the current
-version is updated to the target version. If not, that step is
-skipped. It is very important that steps are attempted in the correct
-order (ascending order of target versions), otherwise steps will be
-skipped. It is also very important that the actions are dependable.
-Generally, when executing the actions for step n, you can depend on
-the database being compliant with the last step before n.
-
- Tip #1: don't assume things unless you are certain they are true.
-Don't assume some value is missing from a table simply because it's
-missing from yours. Don't assume some value is available.
-
- Tip #2: test your patch. Install Sourceforge 2.6 from scratch.
-Install it over a freshly installed Sourceforge 2.5. Install it over
-a previous version of Sourceforge 2.6. If at all possible, install it
-over a non-empty database coming from 2.5, then do it again over a
-non-empty database of 2.6. If *any* of these break, *don't upload*.
-Period.
-
- Tip #3: remember, there's no way back. Once your package has been
-installed by some user, the database version has irreversibly been
-bumped up. While you can sometimes revert changes by hand on your
-local database, you can't provide a rollback for potential thousands
-of users (even it the actual number is more in the tens than in the
-thousands).
-
- Tip #4: the db-upgrade.pl script has evolved over time to involve a
-few functions, such as get_db_version and update_db_version. Use
-them. Your best bet would be to cut and paste a block, change the
-$target, and change the actions.
-
- Tip #5: pay attention to the ordering of the blocks. You can't go
-back in time, so all your changes must be at the end of the series of
-actions.
-
- There. Thanks for reading. I know it sounds boring, but I can
-guarantee you will avoid problems if you understand this. Maybe not
-all problems, but definitely some of them.
-
-CONTRIBUTING
-------------
-
-The source is maintained in bzr (see debian/control's Vcs-Bzr:
-field). A copy can be checked-out using : debcheckout gforge.
-
-
- -- Roland Mas
+++ /dev/null
-TODO : document what this file is about (or get rid of it ?) -- Olivier Berger
-
-Here is a simple dependency graph
-
-
-sourceforge-common +
- |
- +- sourceforge-db-postgresql | sourceforge-db +
- | |
- | +- sourceforge-web-apache | sourceforge-web
- |
- +- sourceforge-mta-exim | sourceforge-mta
- |
- +- sourceforge-dns-bind9 | sourceforge-dns
- |
- +- sourceforge-ldap-openldap | sourceforge-ldap +
- |
- +- sourceforge-shell-ldap | sourceforge-shell
- |
- +- sourceforge-cvs
- |
- +- sourceforge-ftp-proftpd | sourceforge-ftp
- |
- +- sourceforge-lists-mailman | sourceforge-lists
-
-I suggest the folowing order
-
-PACKPATH=..
-export PACKPATH
-sudo dpkg -i $PACKPATH/sourceforge-common*deb
-sudo dpkg -i $PACKPATH/sourceforge-db-postgresql*deb
-sudo dpkg -i $PACKPATH/sourceforge-web-apache*deb
-
-sudo dpkg -i $PACKPATH/sourceforge-mta-exim*deb
-sudo dpkg -i $PACKPATH/sourceforge-dns-bind9*deb
-
-sudo dpkg -i $PACKPATH/sourceforge-ldap-openldap*deb
-sudo dpkg -i $PACKPATH/sourceforge-shell-ldap*deb
-
-sudo dpkg -i $PACKPATH/sourceforge-cvs*deb
-sudo dpkg -i $PACKPATH/sourceforge-ftp-proftpd*deb
-sudo dpkg -i $PACKPATH/sourceforge-lists-mailman*deb
-
-
+++ /dev/null
-The Debian-specific package sources are managed in upstream's
-repository (Debian maintainers are currently also usptream
-developers).
-
-Source Package Format is 1.0.
-
-Orig tarball is constructed from upstream's sources top-level dir
-using 'make orig'.
-
-fusionforge_5.1.orig.tar.gz is in sync with upstream's "v5.1" svn tag (rev. 13667)
-
-
-Packages of 5.1 are snapshots of the upstream svn branch "Branch_5_1",
-i.e. the source package's diffs include "non packaging" changes
-outside debian/ too, as direct patches to upstream sources.
-
-More precisely :
- - fusionforge-5.1.1-2 is in sync with upstream SVN contents as of rev. 14705;
- - fusionforge-5.1.1-1 is in sync with upstream SVN contents as of rev. 14498;
- - fusionforge-5.1-7 is in sync with upstream SVN contents as of rev. 14445;
- - fusionforge-5.1-6 is in sync with upstream SVN contents as of rev. 14319;
- - fusionforge-5.1-5 is in sync with upstream SVN contents as of rev. 14267;
- - fusionforge-5.1-4 is in sync with upstream SVN contents as of rev. 14120;
- - fusionforge-5.1-3 is in sync with upstream SVN contents as of rev. 14089;
- - fusionforge-5.1-2 is in sync with upstream SVN contents as of rev. 14087;
- - fusionforge-5.1-1 is in sync with upstream SVN contents as of rev. 14081.
-
-
-In addition to the above, this package uses quilt. For more details,
-install the quilt package and consult
-/usr/share/doc/quilt/README.source.
-
-The following may provide more details on variations between the
-upstream main version and Debian's packaging :
-http://patch-tracker.debian.org/package/fusionforge
-
- -- Roland Mas <lolando@debian.org>, Tue, 25 Oct 2011 10:42:39 +0200
+++ /dev/null
-This is a TODO list for the packaging. Some items that used to be
-here have been transferred onto the Savannah project, at
-<http://savannah.gnu.org/support/?group_id=259>.
-
-* [CB] Add the possibility to handle sourceforge.conf with debconf
-
-* [CB] Using ldap2dns
-
-* [CB] Make /stats/ work. [RM] It seems the tables don't get filled
- up, so I'd be tempted to blame the cronjobs.
-
-* [CB] Add documentation pointed in project admin page. [RM] Has to
- wait for smooth DB upgrade. [RM] Even though, most of the
- documentation is VA-centric and should not be used as is.
-
-* [CB] ViewCVS instead of CVSWEB? [RM] Chora might be even better,
- since it's in PHP and could be more easily hacked to include
- permission checking.
-
-* [CB] When a project is private, cvsweb access should be too, this
- means implementing access control a la sourceforge in perl for
- CVSWEB or python for ViewCVS. At the occasion give the sourceforge
- look to CVS Browsing.
-
-* [CB] Find how to use libnss-lwres. [RM] ??? [CB] It is not doing
- what I was thinking. It may be possible to make the dns server to
- use directly postgres-db or ldap (Look at sdb driver
- /usr/share/doc/bind9-doc/misc/sdb.gz).
-
-* [RM] Decide on whether to use a chroot or not.
-
-* [RM] Provide a way to un-release a file, and (why not?) to modify a
- released file afterwards. Maybe. [RM] Already supposed to work
- (edit releases), needs testing. [RM] Currently done asynchronously
- (by a cron job). Can probably be done on-the-fly instead, but that
- requires a patch in fileforge.pl.
-
-* [RM] Browse through everything and find out things to add here.
-
-* [RM] Search and replace "sourceforge.net" with the appropriate
- hostname in all files. Ditto with "valinux.com".
-
-* [CB] Integrate Sourceforge Timesheet System
- http://sourceforge.net/projects/dts
-
-# Local variables:
-# mode: indented-text
-# End:
+++ /dev/null
-fusionforge (5.2) UNRELEASED; urgency=low
-
- [ Olivier Berger ]
- * Properly fix #674536 without messing too much with upstream or other
- downstream that aren't yet using gitweb >= 1.7.4.1.
- * Populate new user's shell accounts out of
- /var/lib/gforge/chroot/etc/skel (closes: #675054).
- * Fix several missing files errors in gitweb for scmgit plugin (closes:
- #674536).
- * Fix permission problem with scmgit plugin (closes: #682223)
- * Set defaults to use SSH and not DAV for scmgit plugin (closes:
- #682222)
-
- [ Thorsten Glaser ]
- * Merge fusionforge (5.2~rc1wheezy1~exp1) experimental upload
- * Move wikis to new (as of 2010-03-19, possibly by accident) data path
- * Check image upload is enabled before trying to do so (Closes: #679521)
- * Unbreak and silence the MediaWiki nightly dump cronjob (Closes: #680165)
- * SECURITY: Upon user deletion, remove their Unix account as well
- * SECURITY: Do not disclose inaccessible groups on user_home/toplist
-
- [ Roland Mas ]
- * Fail configuration of the -db-postgresql package if no
- database is available, to prevent other packages from breaking
- things due to misconfiguration. (Closes: #688374)
-
- -- Thorsten Glaser <tg@mirbsd.de> Mon, 03 Sep 2012 14:07:16 +0200
-
-fusionforge (5.2~rc1wheezy1~exp1) experimental; urgency=low
-
- * Since this package was accidentally uploaded as native package,
- and there is a large delta to what’s in upstream SVN right now,
- upload this deliberately as native package now.
- * Add myself to uploaders
- * Opt out of Apport reports
- * Integrate with MediaWiki 1.19 (Closes: #679932)
-
- -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Aug 2012 13:34:37 +0200
-
-fusionforge (5.2~rc1-5) unstable; urgency=low
-
- * Updated Debconf translations for Portuguese (thanks to Américo
- Monteiro), German (thanks to Helge Kreutzmann), Russian (thanks to
- Yuri Kozlov), Galician (thanks to Jorge Barreiro), Czech (thanks to
- Miroslav Kure) (closes: #677737, #677653, #678424, #678629, #678685).
-
- -- Roland Mas <lolando@debian.org> Thu, 28 Jun 2012 20:16:27 +0200
-
-fusionforge (5.2~rc1-4) unstable; urgency=low
-
- * One more fix to Mediawiki upgrades (closes: #677599).
-
- -- Roland Mas <lolando@debian.org> Fri, 15 Jun 2012 14:48:58 +0200
-
-fusionforge (5.2~rc1-3) unstable; urgency=low
-
- * Updated Debconf translations for Swedish (thanks to Martin Bagge)
- (closes: #677411).
- * Fixes to Mediawiki plugin (including for interwiki).
-
- -- Roland Mas <lolando@debian.org> Thu, 14 Jun 2012 16:48:38 +0200
-
-fusionforge (5.2~rc1-2) unstable; urgency=low
-
- * Use more of the system-provided Jquery.
- * Reinstate code running the Mediawiki SQL initialisation code from the
- package's postinst (closes: #677373).
-
- -- Roland Mas <lolando@debian.org> Wed, 13 Jun 2012 18:58:30 +0200
-
-fusionforge (5.2~rc1-1) unstable; urgency=low
-
- * New upstream pre-release 5.2rc1.
- * Ripped out all but the most important Debconf questions in order to
- simplify installation and get rid of the legacy fusionforge.conf
- configuration file (which is no longer created on new installs).
- * Stop shipping fusionforge-config manpage.
-
- -- Roland Mas <lolando@debian.org> Fri, 01 Jun 2012 14:28:54 +0200
-
-fusionforge (5.1.50+svn15558-1) experimental; urgency=low
-
- * New upstream SVN snapshot from the 5.2 stabilisation branch.
- * Generate initial list of countries and codes from the current known
- data (from isoquery) at build time (closes: #565240). Thanks to David
- Prévot <david@tilapin.org> for the bulk of the patch.
- * Remove UCF-generated files on purge (closes: #672256).
-
- -- Roland Mas <lolando@debian.org> Wed, 23 May 2012 14:34:18 +0200
-
-fusionforge (5.1.50+svn15410-1) experimental; urgency=low
-
- * Really fix upgrade-db.php this time (closes: #668970).
-
- -- Roland Mas <lolando@debian.org> Fri, 27 Apr 2012 16:11:34 +0200
-
-fusionforge (5.1.50+svn15405-1) experimental; urgency=low
-
- * New upstream SVN snapshot from the 5.2 stabilisation branch.
- * Disable authcas plugin at least until phpCAS is packaged in Debian,
- thanks to Laurent Bonnaud (closes: #666908).
- * Fixed upgrade-db.php so it can run even without gforge-web-apache2
- installed, thanks to Andreas Beckmann (closes: #668970).
-
- -- Roland Mas <lolando@debian.org> Fri, 27 Apr 2012 14:56:51 +0200
-
-fusionforge (5.1.50+svn15228-1) experimental; urgency=low
-
- * New upstream SVN snapshot from the 5.2 stabilisation branch.
-
- -- Roland Mas <lolando@debian.org> Tue, 27 Mar 2012 20:57:28 +0200
-
-fusionforge (5.1.1-9) UNRELEASED; urgency=low
-
- [ Roland Mas ]
- * Reinstate code running the Mediawiki SQL initialisation code from the
- package's postinst.
- * Fail configuration of the -db-postgresql package if no database is
- available, to prevent other packages from breaking things due to
- misconfiguration.
-
- [ Thorsten Glaser ]
- * SECURITY: Upon user deletion, remove their Unix account as well
- * SECURITY: Do not disclose inaccessible groups on user_home/toplist
-
- -- Roland Mas <lolando@debian.org> Fri, 21 Sep 2012 16:05:28 +0200
-
-fusionforge (5.1.1-8) unstable; urgency=low
-
- * Fixes from the 5.1 upstream branch.
- * Fixed wrong link for custom homepage, thanks to Olivier Berger for the
- patch (closes: #675090).
-
- -- Roland Mas <lolando@debian.org> Fri, 01 Jun 2012 11:04:11 +0200
-
-fusionforge (5.1.1-7) unstable; urgency=low
-
- * Many fixes from the 5.1 upstream branch.
- * Set up a dpkg trigger to handle Mediawiki upgrades and update the
- database schemas accordingly (closes: #673125).
-
- -- Roland Mas <lolando@debian.org> Wed, 23 May 2012 13:54:10 +0200
-
-fusionforge (5.1.1-6) unstable; urgency=low
-
- * Fixes in search.
- * Use current way to get configuration values instead of looking for the
- old file, thanks to Andreas Beckmann (closes: #668878).
-
- -- Roland Mas <lolando@debian.org> Fri, 27 Apr 2012 14:38:52 +0200
-
-fusionforge (5.1.1-5) unstable; urgency=low
-
- * Remove more config files on purge (detected by piuparts).
-
- -- Roland Mas <lolando@debian.org> Tue, 27 Mar 2012 20:34:57 +0200
-
-fusionforge (5.1.1-4) unstable; urgency=low
-
- * Removed one more call to fusionforge-config.
-
- -- Roland Mas <lolando@debian.org> Tue, 20 Mar 2012 17:09:19 +0100
-
-fusionforge (5.1.1-3) unstable; urgency=low
-
- [ Olivier Berger ]
- * Add new README.Debian for gforge-web-apache2 specifically.
-
- [ Roland Mas ]
- * Use common/include/env.inc.php rather than www/env.inc.php for offline
- scripts (closes: #663602).
- * More comprehensive purge for -common package (closes: #638167).
- * Stop trying to call fusionforge-config in maintainer scripts, it's not
- needed any longer and it causes problems (closes: #655965, #656088,
- #662897).
- * Fixed PHP 5.4 compatibility (closes: #658955).
-
- -- Roland Mas <lolando@debian.org> Fri, 16 Mar 2012 16:12:09 +0100
-
-fusionforge (5.1.1-2) unstable; urgency=low
-
- * New upstream SVN snapshot.
- * Added logrotate config file for web-apache2.
-
- -- Roland Mas <lolando@debian.org> Tue, 25 Oct 2011 10:42:19 +0200
-
-fusionforge (5.1.1-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Roland Mas <lolando@debian.org> Thu, 29 Sep 2011 14:07:08 +0200
-
-fusionforge (5.1-7) unstable; urgency=low
-
- * New snapshot from upstream SVN.
-
- -- Roland Mas <lolando@debian.org> Tue, 20 Sep 2011 11:11:32 +0200
-
-fusionforge (5.1-6) unstable; urgency=low
-
- [ Olivier Berger ]
- * Fix invalid XHTML+RDFa (Closes: #635373).
-
- [ Roland Mas ]
- * Fixed possible infinite loop in install-postfix.sh, thanks to Vincent
- Caron (closes: #639947).
- * Fixed Provides: in -plugin-scmgit.
-
- [ Thorsten Glaser ]
- * Move php-htmlpurifier dependency into gforge-common because it
- contains scripts requiring it, which are called from its postinst.
- * Check for presence of dependencies before regenerating control.
-
- -- Roland Mas <lolando@debian.org> Tue, 06 Sep 2011 15:41:43 +0200
-
-fusionforge (5.1-5) unstable; urgency=low
-
- [ Olivier Berger ]
- * Better document in README.source how the package is build vs upstream
- SVN repo.
- * Manage pg_hba.conf with custom ucf template that should be less
- ambiguous, including a proper default value (closes: #556188).
- * Use explicit db host connection on 127.0.0.1 in order to avoid some
- changes in pg_hba.conf.
- * Fix bits around ucf (using ucfr / ucfq)
-
- [ Roland Mas ]
- * Switch dependency on PostgreSQL packages to the metapackage, as
- requested by the PostgreSQL maintainer.
- * Switch from dpatch to quilt, since the former is being deprecated by
- its author.
- * Tweaked package relationships to help transitioning to testing.
-
- -- Roland Mas <lolando@debian.org> Mon, 29 Aug 2011 17:49:00 +0200
-
-fusionforge (5.1-4) unstable; urgency=low
-
- [ Olivier Berger ]
- * Make sure /usr/share/gforge/db/20110701-gforge-5.1.sql is actually
- shipped (closes: #637202).
-
- [ Roland Mas ]
- * Added Olivier to Uploaders.
- * Ship httpd.vhosts template as a conffile, so as not to overwrite local
- changes.
-
- -- Roland Mas <lolando@debian.org> Tue, 16 Aug 2011 16:18:44 +0200
-
-fusionforge (5.1-3) unstable; urgency=low
-
- * Fixed links for plugins.
-
- -- Roland Mas <lolando@debian.org> Thu, 04 Aug 2011 10:48:53 +0200
-
-fusionforge (5.1-2) unstable; urgency=low
-
- * Bumped Standards-Version to 3.9.2 (no changes).
- * Point Vcs-*: header at the upstream Subversion repository.
- * Wrap long lines in package descriptions.
- * Add Depends: php5-cli to fusionforge-plugin-oslc.
- * Use the Simplepie library provided by Debian rather than a local copy.
-
- -- Roland Mas <lolando@debian.org> Thu, 04 Aug 2011 10:31:34 +0200
-
-fusionforge (5.1-1) unstable; urgency=low
-
- [ Roland Mas ]
- * New upstream release. Many new features and plugins.
- * Fixed chroot generation error in case of some files not always present
- (closes: #634169).
- * Apache configuration is now split into several snippets rather than in
- one monolithic file (closes: #568532).
- * Runtime configuration is also now stored into a set of *.ini files
- marked as conffiles, so local customizations aren't overwritten
- (closes: #599274).
- * Add a /usr/share/gforge/bin/fix_default_role.php script to run if
- upgrades from really old instances fail when migrating permissions for
- users having the "Default" role in their projects (closes: #561351).
-
- [ Thorsten Glaser ]
- * Update copyright file
- * Fix broken link in /usr/share/fusionforge (Evolvis [#1638])
-
- -- Roland Mas <lolando@debian.org> Wed, 03 Aug 2011 20:09:56 +0200
-
-fusionforge (5.0.3-1) unstable; urgency=low
-
- * New upstream bugfix release.
-
- -- Roland Mas <lolando@debian.org> Fri, 15 Apr 2011 14:55:34 +0200
-
-fusionforge (5.0.2-5) unstable; urgency=low
-
- * Stop trying to copy libcap into chroot, since it's not used by PAM
- anymore and therefore not guaranteed to be present, thanks to Lucas
- Nussbaum and Hideki Yamane (closes: #604218).
-
- -- Roland Mas <lolando@debian.org> Fri, 26 Nov 2010 09:50:25 +0100
-
-fusionforge (5.0.2-4) unstable; urgency=low
-
- * Fixed logic in create-mailing-lists.pl script, allowing it to actually
- run (closes: #601573).
- * Also fixed the database credentials used for NSS and email forwarding
- in new installations (gforge_nss/mta -> fusionforge_nss/mta).
-
- -- Roland Mas <lolando@debian.org> Fri, 29 Oct 2010 11:55:13 +0200
-
-fusionforge (5.0.2-3) unstable; urgency=medium
-
- * Fixed Mediawiki creation script so it uses the appropriate database
- and user (closes: #600605).
- * Fixed hang during removal of -mta-postfix in some conditions (closes:
- #600583).
- * Plugged XSS vulnerability discovered by "Bluetouff" in
- -plugin-globalsearch.
- * Backport from trunk: stricter checking of mailing-list name during
- deletion, to avoid potential deleting of unintended lists.
-
- -- Roland Mas <lolando@debian.org> Tue, 19 Oct 2010 20:44:49 +0200
-
-fusionforge (5.0.2-2) unstable; urgency=low
-
- * Ship a /usr/share/gforge/plugins/ directory in gforge-web-apache2
- (closes: #597714).
- * Update roadmap URL (closes: #597847).
- * Fix detection of PostgreSQL's init script (closes: #596929).
- * Updated Portuguese Debconf translations (closes: #597354).
- * Support rsyslog as well as syslogd (closes: 535580).
- * Handle amd64 architectures and add missing files in chroot creation
- (closes: #396128, #536055).
- * Make up our mind about which config file to use (fusionforge.conf, not
- gforge.conf) and migrate from gforge.conf if needed (closes: #597916).
- * Ditto for fusionforge-config instead of gforge-config (closes: #597931).
- * Updated Spanish, Italian and French translations from upstream.
-
- -- Roland Mas <lolando@debian.org> Sun, 03 Oct 2010 18:26:20 +0200
-
-fusionforge (5.0.2-1) unstable; urgency=low
-
- * New upstream bugfix release.
- * Switch to Unix sockets for DB access by default.
- * Cope with postgresql-8.4 on both sides of 8.4.4-2, where the init
- script can be called either "postgresql-8.4" or "postgresql" (closes:
- #596929).
- * Also cope with PostgreSQL having been installed with a non-UTF-8
- locale, which previously prevented our database from being created due
- to charset incompatibility (closes: #596931).
-
- -- Roland Mas <lolando@debian.org> Thu, 16 Sep 2010 09:51:32 +0200
-
-fusionforge (5.0.1+svn10155-1) unstable; urgency=low
-
- * Fixed embedded copy of viewvc for Python 2.6 (closes: #582012).
- * Also removed dependency on external viewvc until propely fixed.
-
- -- Roland Mas <lolando@debian.org> Tue, 29 Jun 2010 14:23:08 +0200
-
-fusionforge (5.0.1+svn10137-1) unstable; urgency=low
-
- * Adapted URLs to logos and CSS for gitweb >= 1.7. Added versioned
- dependency accordingly.
- * Use local YUI library (over HTTPS if needed) rather than possibly
- leaking informations to Yahoo's servers (closes: #579459).
-
- -- Roland Mas <lolando@debian.org> Mon, 28 Jun 2010 13:34:14 +0200
-
-fusionforge (5.0.1+svn10088-1) unstable; urgency=low
-
- * New snapshot from upstream SVN (Branch_5_0).
-
- -- Roland Mas <lolando@debian.org> Fri, 18 Jun 2010 13:14:11 +0200
-
-fusionforge (5.0.1+svn10006-1) unstable; urgency=low
-
- * New snapshot from upstream SVN (Branch_5_0).
- * Removed dependency on perl-suid (closes: #581944).
-
- -- Roland Mas <lolando@debian.org> Tue, 08 Jun 2010 15:54:59 +0200
-
-fusionforge (5.0.1-1) unstable; urgency=low
-
- * New upstream release (bugfixes and translations).
-
- -- Roland Mas <lolando@debian.org> Fri, 30 Apr 2010 16:39:27 +0200
-
-fusionforge (5.0-1) unstable; urgency=low
-
- * New upstream release, woo-hoo!
-
- -- Roland Mas <lolando@debian.org> Fri, 26 Mar 2010 11:20:27 +0100
-
-fusionforge (5.0~rc2-1) experimental; urgency=low
-
- * New upstream release candidate.
-
- -- Roland Mas <lolando@debian.org> Fri, 19 Mar 2010 14:20:15 +0100
-
-fusionforge (5.0~rc1+svn9102-1) experimental; urgency=low
-
- * New snapshot from upstream SVN (Branch_5_0).
- * Filtered out PEAR modules from source package to fix (hopefully) the
- final license problems in the package.
-
- -- Roland Mas <lolando@debian.org> Tue, 16 Mar 2010 16:30:50 +0100
-
-fusionforge (5.0~rc1-1) experimental; urgency=low
-
- * New upstream release candidate.
- * Updated debian/copyright file to include licenses and copyright
- notices even for files not used in the binary packages.
- * Also tweaked the script that generates the .orig.tar.gz from upstream
- SVN so source-less binary files are filtered out.
-
- -- Roland Mas <lolando@debian.org> Mon, 01 Mar 2010 21:06:55 +0100
-
-fusionforge (4.8.60-1) experimental; urgency=low
-
- * New snapshot from upstream SVN (trunk).
- * Renamed source package.
- * Also renamed binary meta-packages, now split into three parts:
- fusionforge-minimal, fusionforge-standard and fusionforge-full.
-
- -- Roland Mas <lolando@debian.org> Fri, 19 Feb 2010 13:44:31 +0100
-
-gforge (4.8.55-1) experimental; urgency=low
-
- [ Christian Bayle ]
- * put debian postinst/prerm/config/.. files in dsf-in dir
- * use @PACKAGE@ instead of gforge everywhere i can
- * Remove frame from mediawiki
-
- [ Roland Mas ]
- * Use standard Sort::Versions module to compare database schema version
- numbers rather than forking dpkg --compare-versions.
- * Rewritten SCM subsystem. CVS and Subversion plugins have been cleaned
- up, and new plugins added: scmcpold (as a proof of concept), scmarch,
- scmbzr, scmdarcs, scmgit and scmhg. Mercurial (scmhg) and Arch are
- not quite complete yet.
- * Patched mediawiki plugin to enable one wiki per project.
- * New contribtracker plugin, developed for Adullact.
- * Simplified debian/rules by using Debhelper 7.
- * Dropped dependency on -ftp-proftpd from the meta-package.
-
- [ Christian Bayle ]
- * Add new -web-apache2-vhosts package and moved vhosts files in this
- package.
-
- -- Christian Bayle <bayle@debian.org> Sun, 07 Feb 2010 16:04:59 +0100
-
-gforge (4.8.51-1) experimental; urgency=low
-
- * Fixed blackhole syntax for gforge-mta-exim4 so as not to require
- file_transport.
- * New extratabs plugin from Adullact.
- * New globalsearch plugin allowing to publish lists of projects for
- other forges and to search for projects in remote forges.
- * New projectlabels plugin from Adullact.
- * Packaging-related files are now stored in
- gforge/packaging/{dirs,install,cron.d,control}/* rather than the
- previous gforge/{dirs,install,cron.d,control}/*.
- * Read sys_urlprefix from gforge.conf and use it for local.inc and in
- the Apache config. This makes it possible to run FusionForge as
- http://<hostname>/forge/ with unmodified packages.
-
- -- Roland Mas <lolando@debian.org> Wed, 29 Apr 2009 15:21:31 +0200
-
-gforge (4.8.3-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Roland Mas <lolando@debian.org> Fri, 19 Mar 2010 13:49:29 +0100
-
-gforge (4.8.2+svn8761-1) unstable; urgency=low
-
- * New upstream snapshot from the 4.8 branch.
- * Includes fix for Docman bug (closes: #550318).
-
- -- Roland Mas <lolando@debian.org> Tue, 09 Feb 2010 19:38:52 +0100
-
-gforge (4.8.2-2) unstable; urgency=low
-
- * Updated Debconf template translations for German, French, Russian and
- Swedish (closes: #562704, #562929, #562940, #563350).
-
- -- Roland Mas <lolando@debian.org> Sun, 07 Feb 2010 22:27:19 +0100
-
-gforge (4.8.2-1) unstable; urgency=low
-
- * New upstream release.
-
- [ Olivier Berger ]
- * Fix copyright file to mention nusoap.
- * Fix location of Vcs-Bzr: sources repository.
- * Fix problem in use-snoopy-from-distro.dpatch containing .rej changes.
- * No longer ship copy of nusoap in binary package, adding dependency on
- libnusoap-php instead (Closes: #529575).
- * Add provides tag to control for fusionforge.
- * Change default system name to FusionForge instead of GForge.
- * Fix changelog entry for previous version adding details of CVE entry.
-
- [ Roland Mas ]
- * Fix for symlink attack (CVE-2009-3304).
-
- -- Roland Mas <lolando@debian.org> Tue, 01 Dec 2009 09:22:03 +0100
-
-gforge (4.8.1-3) unstable; urgency=low
-
- * New upstream snapshot from the 4.8 branch. This includes fixes for
- CVE-2009-3303.
- * Fixed potential hang in install-postfix.sh.
- * Fixed dependency on viewcvs, now called viewvc (closes: #552524).
-
- -- Roland Mas <lolando@debian.org> Thu, 12 Nov 2009 14:34:32 +0100
-
-gforge (4.8.1-2) unstable; urgency=low
-
- * New upstream snapshot from the 4.8 branch.
- * Fixed file conflict between -web-apache2 and -plugin-mediawiki.
- * Bumped Standards-Version to 3.8.3 (no changes).
- * Bumped versioned dependency on debhelper to >= 5.
-
- -- Roland Mas <lolando@debian.org> Wed, 14 Oct 2009 14:50:26 +0200
-
-gforge (4.8.1-1) unstable; urgency=low
-
- * New upstream release.
- * Fixed Postfix configuration for mailing lists.
- * Stop overwriting local config on upgrades for domain_name and
- server_admin.
-
- -- Roland Mas <lolando@debian.org> Mon, 21 Sep 2009 08:53:35 +0200
-
-gforge (4.8-3) unstable; urgency=low
-
- * New upstream snapshot as of SVN r7960.
-
- -- Roland Mas <lolando@debian.org> Thu, 27 Aug 2009 10:47:54 +0200
-
-gforge (4.8-2) unstable; urgency=low
-
- * Upload to Debian unstable, with a new upstream snapshot as of SVN
- r7945.
-
- -- Roland Mas <lolando@debian.org> Thu, 06 Aug 2009 11:25:16 +0200
-
-gforge (4.8-1) experimental; urgency=low
-
- * New upstream release.
-
- -- Roland Mas <lolando@debian.org> Fri, 12 Jun 2009 13:44:57 +0200
-
-gforge (4.8~rc2-1) experimental; urgency=low
-
- * New upstream release candidate.
- * Fixed path to install-svn.sh in -plugin-scmsvn's postinst and prerm.
-
- -- Roland Mas <lolando@debian.org> Mon, 18 May 2009 11:24:58 +0200
-
-gforge (4.8~rc1-2) experimental; urgency=low
-
- * New upstream snapshot.
- * install-chroot.sh: do not fail if device nodes can't be created (such
- as when operating in a vserver).
- * Fixed crontab syntax for -db-postgresql (cron doesn't interpolate the
- user column itself).
-
- -- Roland Mas <lolando@debian.org> Mon, 04 May 2009 22:16:11 +0200
-
-gforge (4.8~rc1-1) experimental; urgency=low
-
- [ Christian Bayle ]
- * Removed all files from /usr/lib/gforge and put them in /usr/share/gforge
- * cron scripts ar now in /usr/share/gforge/cronjobs
- * Now generate *.cron.d *.dirs *.install from cron.d/dirs/install dirs
- * Use dh_install instead of copy in rules
-
- [ Roland Mas ]
- * Fixed a bunch of lintian warnings.
- * Added logrotate configuration file for vhosts access logs.
- * New upstream release candidate.
-
- -- Roland Mas <lolando@debian.org> Tue, 28 Apr 2009 15:33:18 +0200
-
-gforge (4.7.3-2) unstable; urgency=high
-
- * Fixed SQL injection and possible cross-site scripting vulnerabilities
- due to insufficient input sanitizing (CVE ids pending).
-
- -- Roland Mas <lolando@debian.org> Mon, 15 Jun 2009 16:10:06 +0200
-
-gforge (4.7.3-1) unstable; urgency=low
-
- * New upstream release.
- * Removed -f option from the shebang line in PHP scripts, as it seems to
- cause problems (closes: #528792).
-
- -- Roland Mas <lolando@debian.org> Fri, 15 May 2009 18:43:56 +0200
-
-gforge (4.7.2-9) unstable; urgency=low
-
- * gforge-plugin-scmsvn: For some reason the code setting up the inetd
- was missing. Re-added it.
- * Fixed email sending in forums.
-
- -- Roland Mas <lolando@debian.org> Tue, 12 May 2009 13:30:37 +0200
-
-gforge (4.7.2-8) unstable; urgency=low
-
- * Added watch file.
- * Fixed copyright file to mention FusionForge.
- * Fixed group join request only sending a notification email to one of
- the project admins.
-
- -- Roland Mas <lolando@debian.org> Mon, 04 May 2009 22:22:14 +0200
-
-gforge (4.7.2-7) unstable; urgency=low
-
- * Added Debconf template translations for Spanish (closes: #519066).
- * Do not fail in prerm if the user removed the vhost file from Apache's
- config (closes: #516579).
- * Don't display the link to the SVN browser for projects where anonymous
- checkout is disabled since it won't work anyway (Closes: #514613).
- * Updated Vcs-* fields in debian/control.
- * Also replaced GForge with FusionForge in debian/control (although the
- packages are still called gforge-* for now).
- * First upload to unstable since the FusionForge 4.7 release.
-
- -- Roland Mas <lolando@debian.org> Wed, 15 Apr 2009 14:55:01 +0200
-
-gforge (4.7.2-6) experimental; urgency=low
-
- * Use Unix sockets to connect to the DB in the Perl scripts.
- * Added db_stop to fix gforge-dns-bind9's postinst script from hanging.
- * Also create anonscm-gforge user in the chroot, not only scm-gforge.
-
- -- Roland Mas <lolando@debian.org> Tue, 14 Apr 2009 10:16:38 +0200
-
-gforge (4.7.2-5) experimental; urgency=low
-
- * Small tweak in fr.po to fix links to statistics and project reporting
- pages from the project summary page.
- * Fixed project reporting graphs.
-
- -- Roland Mas <lolando@debian.org> Tue, 07 Apr 2009 18:54:09 +0200
-
-gforge (4.7.2-4) experimental; urgency=low
-
- * Quick fix for a bug in uploading attachments to forum posts. A proper
- fix requires a change in the DB schema, and will be implemented in
- trunk rather than in the 4.7 series.
- * Removed database password from a world-readable file.
- * Fixed require directives in cronjobs (again, this is only for the 4.7
- series as it won't be needed on trunk).
- * Fixed date printing and parsing in activity tab, where the expected
- format for date input didn't match the one used for display (which
- depended on locale).
-
- -- Roland Mas <lolando@debian.org> Thu, 02 Apr 2009 16:41:35 +0200
-
-gforge (4.7.2-3) experimental; urgency=low
-
- * Removed another error message from the mediawiki plugin for
- non-connected users.
-
- -- Roland Mas <lolando@debian.org> Thu, 26 Mar 2009 18:36:40 +0100
-
-gforge (4.7.2-2) experimental; urgency=low
-
- * Removed automatic creation of the Mediawiki users on session opening
- (since it caused problems and users are authenticated on the fly when
- they access a MW page).
- * Also removed a few error messages that were displayed above the wiki
- pages.
-
- -- Roland Mas <lolando@debian.org> Thu, 26 Mar 2009 17:00:09 +0100
-
-gforge (4.7.2-1) experimental; urgency=low
-
- * New upstream bugfix release.
- * Fixed mediawiki plugin for Mediawiki 1.12.
-
- -- Roland Mas <lolando@debian.org> Fri, 20 Mar 2009 14:06:17 +0100
-
-gforge (4.7.1-2) experimental; urgency=low
-
- * New upstream snapshot (SVN r7012 in the 4.7 branch).
- * Fixed bashisms in /usr/lib/gforge/bin/setup, thanks to Gonéri Le
- Bouder (Closes: #514768).
- * Fixed permissions of /var/lib/gforge/download (needs to belong to
- www-data).
-
- -- Roland Mas <lolando@debian.org> Fri, 20 Feb 2009 14:19:05 +0100
-
-gforge (4.7.1-1) experimental; urgency=low
-
- * New upstream release.
-
- -- Roland Mas <lolando@debian.org> Thu, 05 Feb 2009 21:01:10 +0100
-
-gforge (4.7-1) experimental; urgency=low
-
- [ Roland Mas ]
- * New upstream release.
- * Made PostgreSQL dependency stricter: some of the views only work with
- versions >= 8.1 (closes: #498811).
-
- [ Christian Bayle ]
- * Enable apache2 mod rewrite
-
- -- Roland Mas <lolando@debian.org> Sun, 01 Feb 2009 19:22:16 +0100
-
-gforge (4.7~rc2-7) unstable; urgency=high
-
- * Fixed yet another SQL injection vulnerability due to insufficient
- input sanitizing (CVE-2008-2381).
-
- -- Roland Mas <lolando@debian.org> Wed, 17 Dec 2008 15:26:59 +0100
-
-gforge (4.7~rc2-6) unstable; urgency=high
-
- * Removed gforge-plugins-extra binary package (closes: #504758). I
- can't promise to do security support for it, and it's quite
- susceptible to security holes since it ships local copies of PHP
- libraries.
-
- -- Roland Mas <lolando@debian.org> Sat, 15 Nov 2008 20:06:46 +0100
-
-gforge (4.7~rc2-5) unstable; urgency=high
-
- * Fix several SQL injection vulnerabilities due to insufficient input
- sanitizing (CVE-2008-6187, CVE-2008-6188; CVE-2008-6189).
-
- -- Roland Mas <lolando@debian.org> Mon, 06 Oct 2008 16:12:50 +0200
-
-gforge (4.7~rc2-4) unstable; urgency=low
-
- * gforge-plugin-scmsvn: display SVN instructions corresponding to the
- actual Debian setup (SSH, no DAV).
-
- -- Roland Mas <lolando@debian.org> Mon, 22 Sep 2008 11:49:23 +0200
-
-gforge (4.7~rc2-3) unstable; urgency=low
-
- * Added explicit cast to fix PostgreSQL 8.3 compatibility (closes:
- #497512).
-
- -- Roland Mas <lolando@debian.org> Thu, 04 Sep 2008 09:06:51 +0200
-
-gforge (4.7~rc2-2) unstable; urgency=low
-
- * Fixed chroot setup on amd64 (closes: #495728).
-
- -- Roland Mas <lolando@debian.org> Sun, 31 Aug 2008 20:33:58 +0200
-
-gforge (4.7~rc2-1-svn6585) unstable; urgency=low
-
- * Added support for nss shadow
- * Commented allusers and allgroups entries in nss config as a workaround
- for failing postgreqsl restart, also changed getent calls in install-chroot.sh
-
- -- Christian Bayle <bayle@debian.org> Fri, 15 Aug 2008 20:05:16 +0200
-
-gforge (4.7~rc2-1) unstable; urgency=low
-
- * Changed version number to reflect the upstream tagging of r6582 to
- 4.7rc2. No changes in code.
- * Updated Debconf template translations for Swedish (closes: #492883).
-
- -- Roland Mas <lolando@debian.org> Tue, 19 Aug 2008 21:19:03 +0200
-
-gforge (4.6.99+svn6582-1) unstable; urgency=low
-
- * Removed from gforge-plugins-extra a few files that were also present
- in other packages (closes: #492952).
-
- -- Roland Mas <lolando@debian.org> Fri, 08 Aug 2008 17:03:48 +0200
-
-gforge (4.6.99+svn6580-1) unstable; urgency=low
-
- [ Christian Bayle ]
- * Don't try to unregister scm plugins when GForge database is not
- available
- * Adapted use-snoopy-from-distro.dpatch for new gfplugin and
- gfconfig vars
- * Readded missing cvs-pserver and removed obsolete one from
- deb-specific, fixed missing lib for cvs in install-chroot.sh
- * Fix mailman ScriptAlias
- * SYSLOGD is now to set in /etc/default/syslogd
- * Renamed update-user-group-cvs.sh in update-user-group-ssh.sh
- as it doesn't update CVS
-
- [ Roland Mas ]
- * New SVN snapshot.
- * Fix a few bashisms in shell scripts (closes: #489600, #489601).
- * Tweaked dependencies on virtual packages.
- * Fixed PostgreSQL socket path in Postfix configuration, and removed old
- unused code.
- * Since we can't seem to decide on whether the Mailman web interface
- should be under /cgi/bin/mailman/ or directly under /mailman/, at
- least ensure that both work. This should put an end to the related
- troubles (closes: #399671, #486845).
- * Cleaned up the Apache configuration script to use the
- sites-available/sites-enabled system (closes: #398885).
- * Fixed include_path and include files for cron jobs, so they are not
- prevented from running (closes: #373557).
- * Fixed upstream: user activity reporting now allows searching for users
- by the initial letter of their username as well as their lastname
- (closes: #373558)
- * Stop trying to copy a nonexisting default page for projects (closes:
- #374431).
-
- -- Roland Mas <lolando@debian.org> Sun, 20 Jul 2008 20:16:46 +0200
-
-gforge (4.6.99+svn6496-1) unstable; urgency=low
-
- * New SVN snapshot, incuding a fix for the previous patch.
-
- -- Roland Mas <lolando@debian.org> Wed, 14 May 2008 18:27:34 +0200
-
-gforge (4.6.99+svn6491-1) unstable; urgency=high
-
- * New SVN snapshot, includes fix for an insecure file handling
- (CVE-2008-0167).
-
- -- Roland Mas <lolando@debian.org> Tue, 13 May 2008 12:20:18 +0200
-
-gforge (4.6.99+svn6486-1) unstable; urgency=low
-
- * New SVN snapshot.
- * Updated Debconf template translations for Portuguese (closes:
- #475769).
- * Removed from gforge-plugins-extra a file that should only be in
- gforge-plugin-mediawiki (closes: #476582).
- * Enabled the "headers" module in apache2, since the database auth
- tokens are now received through an extra header rather than through
- environment variables.
-
- -- Roland Mas <lolando@debian.org> Thu, 24 Apr 2008 22:57:54 +0200
-
-gforge (4.6.99+svn6477-1) unstable; urgency=low
-
- [ Christian Bayle ]
- * Change apache NameVirtualHost to use * instead of IP address
- * Harden exim4 uninstall so it doesn't fail on a missing file
- * Don't invoke proftpd restart as it locks install
- * Replace deprecated DisplayFirstChdir with DisplayChdir in proftpd config
-
- [ Roland Mas ]
- * New SVN snapshot.
- * New feature from the "urlmaker" branch, to compute URLs for links and
- forms in one single place, the point being to make it easier to host
- Gforge in a variety of URL schemes (full virtual host or
- http://shared.host/gforge, for instance).
- * Updated Debconf template translations for French, German, Finnish,
- Russian, Galician, Vietnamese, Czech and Dutch (closes: #468471,
- #469756, #472485, #472502, #472588, #473192, #474621).
-
- -- Roland Mas <lolando@debian.org> Fri, 11 Apr 2008 13:59:31 +0200
-
-gforge (4.6.99+svn6387-1) unstable; urgency=low
-
- * New SVN snapshot.
- * Adapted to mediawiki packaging no longer being in mediawiki1.X package
- and directory names.
- * Bumped Standards-Version to 3.7.3 (no changes needed).
- * Removed .cvsignore files from packages.
- * Cleaned up empty directories in binary packages.
- * Rephrased debian/copyright file.
- * Removed useless gforge-ftp-proftpd.templates and
- gforge-shell-postgresql.config.
- * Various fixes in debconf files, inspired by a lintian check.
- * Removed lintian overrides, no longer needed.
- * Updated to PostgreSQL 8.3 (while still retaining compatibility with
- 8.2), with a few syntax fixes.
-
- -- Roland Mas <lolando@debian.org> Wed, 27 Feb 2008 10:23:40 +0100
-
-gforge (4.6.99+svn6368-1) unstable; urgency=low
-
- * New SVN snapshot.
- * New binary package: gforge-plugin-mediawiki, to embed Mediawiki in
- Gforge (in an iframe, on a new optional project tab). The related
- files have been removed from gforge-plugin-extras.
-
- -- Roland Mas <lolando@debian.org> Mon, 25 Feb 2008 20:13:21 +0100
-
-gforge (4.6.99+svn6347-1) unstable; urgency=high
-
- * New SVN snapshot, including a fix for a cross-site scripting
- vulnerability (CVE-2007-0176).
- * Fixed typos in debian/control.
-
- -- Roland Mas <lolando@debian.org> Mon, 21 Jan 2008 14:57:32 +0100
-
-gforge (4.6.99+svn6330-1) unstable; urgency=high
-
- * Finished removing all references to LDAP from the Debconf templates
- and maintainer scripts (closes: #408867).
- * Also updated German debconf template translation (closes: #456504).
- * Fixed SQL injection vulnerability due to insufficient input sanitizing
- (CVE-2008-0173).
-
- -- Roland Mas <lolando@debian.org> Thu, 10 Jan 2008 13:59:45 +0100
-
-gforge (4.6.99+svn6319-3) unstable; urgency=low
-
- * gforge-mta-postfix.config: don't try to replace files unless their
- replacements have been generated.
-
- -- Roland Mas <lolando@debian.org> Fri, 14 Dec 2007 17:20:11 +0100
-
-gforge (4.6.99+svn6319-2) unstable; urgency=low
-
- * Fixed dependencies to add at least one real package before virtual
- ones.
-
- -- Roland Mas <lolando@debian.org> Fri, 14 Dec 2007 13:12:15 +0100
-
-gforge (4.6.99+svn6319-1) unstable; urgency=low
-
- * New SVN snapshot (r6319). This includes a bugfix for the creation of
- a relation between a tracker item and a task (closes: #376095), and a
- few German localisation updates (closes: #375526).
- * The SCM plugins now depend on some gforge-shell, since they're useless
- without it anyway.
- * Updated gforge-shell-postgresql dependency to point to openssh-server
- rather than ssh. Also added a recommendation on nscd.
- * Updated the list of registered themes to match what's actually
- available (closes: #395026).
- * Handle "/" characters in values for the config file (closes: #420511).
-
- -- Roland Mas <lolando@debian.org> Thu, 13 Dec 2007 10:44:37 +0100
-
-gforge (4.6.99+svn6313-1) unstable; urgency=low
-
- * New SVN snapshot (r6313). Gettext transition is now complete
- (including the French translation). Still lots of cleanups.
- * Removed debian/patches/use-fckeditor-from-distro.dpatch, since
- run-time detection was added upstream.
- * Fix maintainer scripts for gforge-plugin-scmcvs and -scmsvn (no
- db-upgrade.pl/db-delete.pl script to call).
- * Use Unix domain sockets for NSS-pgsql too.
- * gforge-shell-postgresql now depends on libnss-pgsql2 rather than the
- old libnss-pgsql1.
- * Switch to using ucf for management of config files, instead of
- home-grown scripts and functions. Re-use Debconf instance if one
- exists.
- * More generally, cleaned up the maintainer scripts.
- * Fixed handling of localised error messages from the PostgreSQL server
- (closes: #283849).
-
- -- Roland Mas <lolando@debian.org> Tue, 11 Dec 2007 21:21:23 +0100
-
-gforge (4.6.99+svn6225-1) unstable; urgency=low
-
- * New SVN snapshot (r6225). Mostly fixes for PHP warnings.
- * Re-add a prerm script for the scmsvn plugin, which had somehow been
- lost.
- * debian/patches/use-fckeditor-from-distro.dpatch: Use the FCKeditor
- provided by the fckeditor package rather than shipping our own copy of it
- (closes: #452597).
- * Removed the local copy from the binary packages, to be extra sure.
-
- -- Roland Mas <lolando@debian.org> Sat, 24 Nov 2007 10:01:48 +0100
-
-gforge (4.6.99+svn6219-1) unstable; urgency=low
-
- * New SVN snapshot (r6219). Includes lots of fixes for PHP warnings,
- some internationalisation work, and fixes for IPv6 compatibility.
- * Apache virtual hosts are now available on every IP address, so they'll
- still work on dual-stack (IPv4 and IPv6) boxes.
- * debian/patches/unix-sockets-for-database.dpatch: Use Unix sockets to
- connect to the PostgreSQL server.
-
- -- Roland Mas <lolando@debian.org> Fri, 23 Nov 2007 10:25:40 +0100
-
-gforge (4.6.99+svn6169-1) unstable; urgency=high
-
- * New SVN snapshot (r6169), including the removal of a few tables
- (replaced by views where needed, or access to the RBAC tables when
- possible).
- * Updated package description and Debconf templates after a review by
- the debian-l10n-english team (closes: #446569).
- * Updated debian/po/de.po (German translation), from Helge Kreutzmann
- <debian@helgefjell.de> (closes: #447170).
- * Ditto for debian/po/gl.po (Galician), from Jacobo Tarrio
- <jtarrio@trasno.net> (closes: #447194).
- * Ditto for debian/po/cs.po (Czech), from Miroslav Kure
- <kurem@upcase.inf.upol.cz> (closes: #447477).
- * Ditto for debian/po/vi.po (Vietnamese), from Clytie Siddall
- <clytie@riverland.net.au> (closes: #447883).
- * Ditto for debian/po/nl.po (Dutch/Flemish), from Bart Cornelis
- <cobaco@skolelinux.no> (closes: #448124).
- * Ditto for debian/po/pt.po (Portuguese), from Ricardo Silva
- <ardoric@gmail.com> (closes: #448229).
- * Ditto for debian/po/fr.po (French), from Christian Perrier
- <bubulle@debian.org> (closes: #449014).
- * Added new debian/po/fi.po (Finnish) translation, from Esko Arajärvi
- <edu@iki.fi> (closes: #447298).
- * Added new debian/po/ru.po (Russian) translation, from Yuri Kozlov
- <kozlov.y@gmail.com> (closes: #448938).
- * Applied a patch by Steffen Joeris <steffen.joeris@skolelinux.de> for a
- security vulnerability (CVE-2007-5156) in the copy of FCKeditor
- embedded in gforge-plugins-extra (closes: #447590).
- * SVN r6169 also fixes a few denial of service and file truncation
- vulnerabilities (CVE-2007-3921).
- * Added Vcs-Bzr: field to debian/control.
- * Patched dsf-helper.pl so it removes a few blank lines in Debconf
- templates, since they're not allowed.
-
- -- Roland Mas <lolando@debian.org> Tue, 06 Nov 2007 20:10:41 +0100
-
-gforge (4.6.99+svn6094-4) unstable; urgency=low
-
- * Fixed a few script permissions and shebangs.
- * gforge-mta-courier should really depend on courier-mta.
- * Updated debian/po/de.po, from Helge Kreutzmann <debian@helgefjell.de>
- (closes: #444615).
- * Updated changelog entry for version 4.6.99+svn6094-1 to include the
- CVE ID.
- * Collect SVN stats every day, not only on Sundays.
-
- -- Roland Mas <lolando@debian.org> Wed, 17 Oct 2007 15:22:56 +0200
-
-gforge (4.6.99+svn6094-3) unstable; urgency=low
-
- * Merged in a patch from Christian Perrier and the Debian i18n and
- English l10n team, bringing better style to Debconf templates.
- * Also fixed encoding problems in debian/po/fr.po.
-
- -- Roland Mas <lolando@debian.org> Wed, 26 Sep 2007 17:46:07 +0200
-
-gforge (4.6.99+svn6094-2) unstable; urgency=low
-
- * Added Homepage: field to debian/control.
- * debian/patches/use-snoopy-from-distro.dpatch: Use the Snoopy class as
- provided by libphp-snoopy rather than shipping our own copy of it
- (closes: #443951).
- * Removed local copies from the binary packages, to be extra sure.
- * Updated debian/po/de.po, from Helge Kreutzmann <debian@helgefjell.de>
- (closes: #441250).
- * Make sure there's at least a dummy SSL certificate set up, even if
- it's the Snake Oil cert; the admin is expected to replace it with a
- real cert if possible, but this should ensure the initial SSL setup is
- at least working (closes: #433826).
-
- -- Roland Mas <lolando@debian.org> Wed, 26 Sep 2007 15:44:35 +0200
-
-gforge (4.6.99+svn6094-1) unstable; urgency=high
-
- * New SVN snapshot (r6094). This includes a fix for an HTML injection
- vulnerability possibly leading to cross-site scripting
- (CVE-2007-3918), hence the high urgency.
-
- -- Roland Mas <lolando@debian.org> Thu, 13 Sep 2007 09:44:05 +0200
-
-gforge (4.6.99+svn6086-1) unstable; urgency=high
-
- * Re-added debian/po/*.po files that hadn't been ported to SVN trunk
- (closes: #439951).
- * Updated debian/po/fr.po, thanks to the debian-l10n-french team
- (closes: #440785).
- * Turned register_globals off.
- * Removed non-free RFCs from source package (closes: #440889).
- * New SVN snapshot (r6086). This includes a fix for an SQL injection
- vulnerability (CVE-2007-3913), hence the high urgency.
-
- -- Roland Mas <lolando@debian.org> Thu, 06 Sep 2007 13:43:45 +0200
-
-gforge (4.6.99+svn6078-1) unstable; urgency=low
-
- * New SVN snapshot (r6078).
- * Removed unneeded Listen directives.
- * Fixed a couple of Lintian warnings along the way.
-
- -- Roland Mas <lolando@debian.org> Sun, 26 Aug 2007 20:54:10 +0200
-
-gforge (4.6.99+svn6070-2) experimental; urgency=low
-
- * Re-add an empty gforge-web-apache package for the transition to
- apache2.
- * Generate *.mo at build-time.
-
- -- Roland Mas <lolando@debian.org> Sun, 26 Aug 2007 14:35:32 +0200
-
-gforge (4.6.99+svn6070-1) experimental; urgency=low
-
- * SVN snapshot (based on revision 6070, with packaging patches). Don't
- use for production!
- * Generate gforge-plugin-scmcvs and g-p-scmsvn from the gforge source
- package, since they're maintained in the same upstream repository.
- * New gforge-plugins-extra package, with other plugins. Not necessarily
- well-tested (or even working).
- * Using local database to avoid problems with PostgreSQL not listening
- to TCP/IP connections by default (closes: #309276, #396127, #415650,
- #420751).
- * Removing support for Apache 1.3 and PostgreSQL < 8.2, since these
- packages are no longer in Debian.
- * Also removing support for LDAP for now, unless someone comes up ready
- to maintain it in a proper shape (closes: #237229, #241389, #296399,
- #296507, #372260, #378616).
- * Added dummy password for the gforge_mta and gforge_nss PostgreSQL
- users, since it no longer seems possible to use an empty password.
- * Fixed Postfix alias resolution (closes: #424697).
- * Actually display the Debconf question asking for an administrative
- password. On the other hand, I don't think anybody cares for the
- database password, so that question can be skipped.
- * Made cronjobs silent.
-
- -- Roland Mas <lolando@debian.org> Fri, 27 Jul 2007 21:21:46 +0200
-
-gforge (4.5.14-25+963) unstable; urgency=low
-
- * Merged Branch_4_5 into trunk after svn conversion
- essentially debian and deb-specific dir, setup and install-apache.sh too
- * Separated gforge-web-apache in gforge-web-apache and gforge-web-apache2
- * Added support for php5
- * Don't setup ssl if certifcate are not there
- * Added dsf_helper/patch-apache.*
- * Added a update_with_sql function in db-upgrade.pl and get in sync with
- latest db/*.sql
- * Fixed many typos in templates so lintian is happy
- * Removed php4 dependancies for gforge-db-postgresql and reordered
- postgresql one
- * Install plugins with gforge-web-apache
- * Added mediawiki support
- * Increase version in db-upgrade.pl not to clash with 4.5 branch
-
- -- Christian Bayle <bayle@debian.org> Sat, 30 Sep 2006 20:48:24 +0200
-
-gforge (4.5.14-23) unstable; urgency=low
-
- * Remove support for php4, since this package will soon no
- longer be in Debian (closes: #424792, #424786).
- * Ditto for exim (closes: #420268).
-
- -- Roland Mas <lolando@debian.org> Sun, 01 Jul 2007 19:10:40 +0200
-
-gforge (4.5.14-22) unstable; urgency=low
-
- * Removed Bazaar-internal ,,commit-blahblah directory from the source
- package. No other changes.
-
- -- Roland Mas <lolando@debian.org> Wed, 7 Mar 2007 20:04:08 +0100
-
-gforge (4.5.14-21) unstable; urgency=high
-
- * More input sanitisation, fixing more cross-site scripting
- vulnerabilities. Again, security implications cause the high urgency.
- * Also, make sure that the registration procedure happens over SSL.
- * New debconf templates translations, thanks to Jacobo Tarrio
- <jtarrio@trasno.net> for Galician (closes: #412917), Miroslav Kure
- <kurem@upcase.inf.upol.cz> for Czech (closes: #409655), and Ricardo
- Silva <ardoric@gmail.com> for Portuguese (closes: #413750).
- * Stopped enabling pgsql.so and gd.so in php.ini, since they're enabled
- in separate files by the respective packages.
-
- -- Roland Mas <lolando@debian.org> Wed, 7 Mar 2007 09:56:47 +0100
-
-gforge (4.5.14-20) unstable; urgency=high
-
- * Added input sanitisation in the advanced search form to fix a
- cross-site scripting vulnerability (closes: #406244). Security
- implications, hence the urgency.
- * Updated Dutch debconf templates translation, from Bart
- Cornelis <cobaco@skolelinux.no> (closes: #408073).
- * Added German debconf templates translation, from Helge Kreutzmann
- <debian@helgefjell.de> (closes: #408868).
-
- -- Roland Mas <lolando@debian.org> Mon, 29 Jan 2007 13:28:52 +0100
-
-gforge (4.5.14-19) unstable; urgency=low
-
- * [Roland] Made the chroot environment a bit more complete, by adding
- missing files: pam_pgsql.conf (closes: #396329), various libraries
- (closes: #396128), /etc/hosts (closes: #396333).
-
- -- Roland Mas <lolando@debian.org> Thu, 9 Nov 2006 21:16:12 +0100
-
-gforge (4.5.14-18) unstable; urgency=low
-
- * [Roland] Oops. fix-frs.pl was only added to the source package, not
- to the binary ones. Fixed.
-
- -- Roland Mas <lolando@debian.org> Sat, 28 Oct 2006 17:30:28 +0200
-
-gforge (4.5.14-17) unstable; urgency=low
-
- * [Roland] Removed (actually, commented out) Listen directives in the
- Apache configuration (closes: #394933) (again). For some reason,
- Apache doesn't want to start when told to listen on a particular port
- twice.
- * [Roland] Added deb-specific/fix-frs.pl, to move released files to the
- appropriate place according to the new layout mandated by the FRS.
-
- -- Roland Mas <lolando@debian.org> Sat, 28 Oct 2006 17:22:39 +0200
-
-gforge (4.5.14-16) unstable; urgency=high
-
- * [Roland] install-nsspgsql.sh: Create an empty pam_pgsql.conf if it
- doesn't exist prior to installation.
- * [Roland] install-ldap.sh: Ditto for libnss-ldap.conf.
- * [Roland] gforge-mta-exim4: Invoke update-exim4.conf on installation
- and removal, so Exim is actually configured...
- * [Roland] fix-mailing-lists.pl needs to be run as root, not gforge,
- otherwise it has no access to the mailing-lists data. Fixed
- gforge-mta-mailman.postinst and fix-mailing-lists.pl accordingly.
- * [Roland] install-db.sh: Made purge more resistant (closes: #395088).
- * [Roland] install-ldap.sh: Made installation more resistant.
- * [Roland] Made Apache setup less invasive (closes: #394933).
-
- -- Roland Mas <lolando@debian.org> Wed, 25 Oct 2006 12:12:11 +0200
-
-gforge (4.5.14-15) unstable; urgency=low
-
- * [Roland] sql2ldif.pl: Get the user password from nss_shadow, since it
- cannot be found in nss_passwd any longer due to the recent NSS/PAM
- reorg, patch from Julien Cristau <julien.cristau@ens-lyon.org>
- (closes: #394022).
-
- -- Roland Mas <lolando@debian.org> Thu, 19 Oct 2006 11:09:37 +0200
-
-gforge (4.5.14-14) unstable; urgency=low
-
- * [Roland] deb-specific/db-upgrade.pl: Last upload only prevented new
- migrations from using the broken role names, this one tries to restore
- the names as they should have been.
-
- -- Roland Mas <lolando@debian.org> Thu, 12 Oct 2006 13:37:36 +0200
-
-gforge (4.5.14-13) unstable; urgency=high
-
- * [Roland] deb-specific/db-upgrade.pl: Fixed conversion of old
- permissions system to RBAC. All roles were created under the name
- "rname", which is... let's just say the urgency of this upload is
- probably not exaggerated.
-
- -- Roland Mas <lolando@debian.org> Fri, 6 Oct 2006 21:10:19 +0200
-
-gforge (4.5.14-12) unstable; urgency=low
-
- * [Roland] Fixed the NSS/PAM mess, hopefully. We now have NSS views so
- that the password is hidden from normal users, and a new PAM-specific
- database user with access to the nss_shadow view.
-
- -- Roland Mas <lolando@debian.org> Wed, 4 Oct 2006 15:15:59 +0200
-
-gforge (4.5.14-11) unstable; urgency=low
-
- * [Roland] Updated Dutch debconf templates translation, from Bart
- Cornelis <cobaco@skolelinux.no> (closes: #384150).
- * [Roland] debian/rules: Also remove binary files coming from uu-files
- coming from patches on clean.
- * [Roland] db-upgrade.pl: Fixed conversion of the Resolution field to
- the extra-fields system.
- * [Roland] debian/rules: Remove .arch-ids directories at build time, if
- present (for packages built from an Arch/Bazaar gateway).
-
- -- Roland Mas <lolando@debian.org> Tue, 19 Sep 2006 20:50:12 +0200
-
-gforge (4.5.14-10) unstable; urgency=low
-
- * [Roland] Fixed control file (it referenced a gforge-plugin-scmcase
- package that never existed, rather than -scmccase).
- * [Roland] Updated from CVS.
- * [Roland] Updated French debconf templates translation, from Christian
- Perrier <bubulle@debian.org> and the French l10n team (closes:
- #382589).
- * [Roland] Updated Swedish debconf templates translation, from Daniel
- Nylander <po@danielnylander.se>.
- * [Roland] Updated Vietnamese debconf templates translation, from Clytie
- Siddall <clytie@riverland.net.au> and the Vietnamese free-software
- translation team.
-
- -- Roland Mas <lolando@debian.org> Fri, 18 Aug 2006 09:12:54 +0200
-
-gforge (4.5.14-9) unstable; urgency=low
-
- * [Roland] Uploading to unstable. This means the bugs that were fixed
- during the experimental phase can now be closed (closes: #358241,
- #328224, #375863, #331835, #339646, #374384, #373554, #242186,
- #376155, #311791, #339878, #354591).
- * [Roland] fix-lists-url.dpatch: Fixed URL patterns for Mailman pages
- (closes: #375529). By using the appropriate URLs, rather than messing
- with Mailman's configuration. Adapted the Apache config accordingly.
- * [Roland] Fixed Postfix configuration (closes: #376284).
- * [Roland] Removed versioned dependencies on virtual packages, by
- keeping only the existing packages (closes: #376163). If new
- alternatives appear (for new MTAs or mailing-list managers or anything
- else), I'll be glad to add them in the control file.
- * [Roland] Applied patch from Julien Cristau
- <julien.cristau@ens-lyon.org>, whereby sql2ldif.pl now uses the SQL
- views rather than duplicating their code.
-
- -- Roland Mas <lolando@debian.org> Sat, 22 Jul 2006 16:43:57 +0200
-
-gforge (4.5.14-8) experimental; urgency=low
-
- * [Roland] Oops. Only part of the fix for #376155 had been committed,
- and the rest wasn't part of 4.5.14-7. This new upload should have it.
-
- -- Roland Mas <lolando@debian.org> Mon, 10 Jul 2006 18:56:25 +0200
-
-gforge (4.5.14-7) experimental; urgency=low
-
- * [Roland] Add a "project_before_description" hook on project homes.
- * [Roland] Managed to get apache-related scripts to play nice with
- debconf (closes: #376155).
- * [Roland] Also, updated from CVS, to fix the "missing
- Textsanitizer.class" bug (closes: #375863).
-
- -- Roland Mas <lolando@debian.org> Mon, 10 Jul 2006 18:15:56 +0200
-
-gforge (4.5.14-6) experimental; urgency=low
-
- * [Roland] Fixed the RBAC migration (which left the whole site without
- any project admin, doh!).
-
- -- Roland Mas <lolando@debian.org> Wed, 28 Jun 2006 10:41:30 +0200
-
-gforge (4.5.14-5) experimental; urgency=low
-
- * [Roland] Converted the remaining PHP database upgrading scripts
- (20040826_migraterbac.php and 20041211-syncmail.php, 20051027-2.php
- and 20050325-2.php) to static Perl code in db-upgrade.pl.
-
- -- Roland Mas <lolando@debian.org> Tue, 27 Jun 2006 14:49:03 +0200
-
-gforge (4.5.14-4) experimental; urgency=low
-
- * [Roland] Now recommends at least one of the SCM plugins (Subversion or
- CVS).
- * [Roland] Added missing rss.png icon (closes: #373554).
- * [Roland] Fixed db-upgrade.pl (trying to access a column not yet
- created yet for checkpoint 4.1-8).
-
- -- Roland Mas <lolando@debian.org> Mon, 26 Jun 2006 16:05:06 +0200
-
-gforge (4.5.14-3) experimental; urgency=low
-
- * [Roland] Removed a bit of verbosity from db-upgrade.pl.
- * [Roland] add-groupadminmenu-hook.dpatch: Backported the insertion of
- the groupadminmenu hook from CVS HEAD.
- * [Roland] Set up the tables for timetracking at install time, rather
- than needing the admin to go and click on a button.
- * [Roland] Removed banner ads.
- * [Roland] Made create-vhosts.sh cronjob silent (closes: #374384).
-
- -- Roland Mas <lolando@debian.org> Mon, 19 Jun 2006 16:37:24 +0200
-
-gforge (4.5.14-2) experimental; urgency=low
-
- * [Roland] Started moving database upgrading code from PHP scripts to
- db-upgrade.pl: migrateforum.php, 20050617.php.
- * [Roland] disable-tracker-reply-by-email.dpatch: Removed the blurb
- about replying to a bug report by email from the notifications, since
- the reply by email doesn't work yet.
- * [Roland] Re-enabled dpatch, which seems to have been left out at some
- point.
-
- -- Roland Mas <lolando@debian.org> Mon, 12 Jun 2006 16:03:11 +0200
-
-gforge (4.5.14-1) experimental; urgency=low
-
- * [Roland] New upstream release (4.5.14), snapshot as of 2006-06-03,
- (closes: #242186, #281310).
- * This release includes the fix for a cross-site scripting security
- vulnerability (closes: #328224).
- * proftpd's config file is now in /etc/proftpd/proftpd.conf.
- * Added Debconf translations for Vietnamese and Swedish, updated Dutch
- (closes: #311791, #339878, #354591).
- * Allow debconf-2.0 as an alternative for debconf (closes: #331835).
-
- -- Roland Mas <lolando@debian.org> Tue, 6 Jun 2006 21:03:26 +0200
-
-gforge (4.5.6-1) unstable; urgency=low
-
- * [Christian] Add support for most recent database postgresql 8.0 8.1 at the time
- writing this.
-
- -- Christian Bayle <bayle@debian.org> Mon, 30 Jan 2006 00:51:15 +0100
-
-gforge (4.5.3-4) stable; urgency=low
-
- * New Upstream version, compile for sarge
-
- -- Christian Bayle <bayle@debian.org> Wed, 16 Nov 2005 19:08:15 +0100
-
-gforge (4.5.3-3) stable; urgency=low
-
- * New Upstream version, compile for sarge
-
- -- Christian Bayle <bayle@debian.org> Sun, 13 Nov 2005 18:25:52 +0100
-
-gforge (4.5-5k) stable; urgency=low
-
- * [Christian] Compile for sarge
-
- -- Christian Bayle <bayle@debian.org> Tue, 8 Nov 2005 22:11:58 +0100
-
-gforge (4.5-2) unstable; urgency=low
-
- * [Christian] Added 20050605.sql, 20050617.php, 20050628.sql in db-upgrade
- * [Christian] Some issues were fixed in migraterbac scripts and in tracker
- * [Christian] Include last branch corrections
-
- -- Christian Bayle <bayle@debian.org> Sun, 3 Jul 2005 17:44:38 +0200
-
-gforge (4.1-5z18) unstable; urgency=low
-
- * [Christian] nss-pgsql1 integration
- * [Christian] System.class reorganization
- * [Christian] Added anonscm-gforge user for anonymous cvs
- and moved lock files in cvsroot/cvs-locks/ dir
- * [Christian] dummy user is now scm-gforge and removed from ldap
- * [Christian] Fixed a problem with OID at db upgrade (see db-upgrade.pl)
- * [Christian] Moved some gforge.conf var from include.pl to local.pl
- * [Christian] Update to fit with last sid LDAP
- * [Christian] Added www-gforge user used as the apache user/group
- for gforge main vhosts
- * [Christian] Hope I solved a long time bug at apache reload, but adding
- more tests in install-apache.sh
- * [Christian] reorganized gforge-shell-* cron so homedirs are created in
- both ldap and postgresql, update of ldap is done in gforge-ldap
- * [Christian] Added sys_apache_user and sys_apache_group in local.inc
- * [Christian] Removed remaining CVS stuffs in pot files and elsewhere
- * [Christian] Added debconf questions for ftp upload and jabber hosts
-
- -- Christian Bayle <bayle@debian.org> Tue, 26 Apr 2005 21:28:24 +0200
-
-gforge (4.0.2-7) unstable; urgency=low
-
- * [Christian] Let's go for 4.0
- * [Christian] Had to add a db_stop before gforge-config in
- * ftp and dns postinst scripts, quite strange
- * [Christian] Now do a replace file in postinst if replace was wanted.
- during config by changing dsf-helper replace-file functions.
- Now at replace I make a copy of conffile to conffile.dpkg-old
- At postinst, if conffile.dpkg-old exists conffile is
- replaced with conffile.dpkg-new
- * [Christian] Added 20041124.sql to db-upgrade.pl
- * [Christian] Added dpatch support
- * [Christian] Added globalsoff dpatch
- * [Christian] Added overrides file for select-with-translated-default-field
- warning
- * [Christian] replace_files helper now don't brake when file doesn't exist
- by emit a warning during config and postinst
- * [Christian] Added exist_db function in postgresql the ancient method was
- broken with non US localized distro
- * [Christian] Added myself as uploader to remove a lintian warning I had
- * [Christian] Added conflict to gforge-cvs
- * [Christian] Move common dir and some files from web-apache to common
- so postgresql can upgrade without web-apache
- * [Christian] added from 20041211 to 20050212 db stuffs
- * [Christian] added build-depends on devscripts and dpatch
-
- -- Christian Bayle <bayle@debian.org> Fri, 11 Feb 2005 01:19:12 +0100
-
-gforge (3.3.0-60) unstable; urgency=low
-
- * [Christian] Added a call to migrateform.php and migraterbac.php in
- db-upgrade
- * [Christian] Added 20040804.sql and 20040826.sql to db-upgrade.pl
- * [Christian] Removed dc: field in install-ldap.sh since this generate
- an attribute 'dc' not allowed at install
- * [Christian] Create an empty /var/lib/gforge/etc/httpd.vhosts if necessary
- * [Christian] Changed default sys_theme to gforge, so web frontend is
- not broken when theme pack is not installed
- * [Christian] sys_project_reg_restricted=false by default
- * [Roland] Added views for NSS-PGSQL (form Wichert Akkerman).
- * [Christian] Added 20040914.sql, 20041005.sql, 20041006.sql.
- * [Hal] Maded changes to support apache2
- * [Roland] Removing LDAP dependency, now replaced with direct PostgreSQL
- lookups: new database views, new pgsql.class, new NSS configuration,
- new configuration for Exim4 and Postfix.
- * [Roland] Cleaned up the generated packages a bit: no more sourceforge
- packages, fixed dependencies to take into account the LDAP->PGSQL
- migration.
- * [Roland] libphp-jpgraph goes from suggested to recommended.
- * [Roland] Don't die in install-db.sh if postgresql is not running, but
- start it instead.
- * [Roland] Various fixes in several scripts.
- * [Christian] Added 20041104 and 20041108 to db-upgrade.pl
- * [Christian] Added dependancy on php4-cli for gforge-db-postgresql
- * [Christian] Change redirection from /dev/null to $tmp1 $tmp2 in
- install-db.sh
- * [Christian] Lintian cleanup
- * [Christian] Renamed gforge/debian/dsf-helper/replace-files.postinst in
- gforge/debian/dsf-helper/replace-files.config and moved debconf stuff from
- postinst to config
- * [Christian] Commented fileforge and filemove in rules not to install them
- as there are not used right now
-
- -- Christian Bayle <bayle@debian.org> Sat, 15 Jan 2005 15:30:33 +0100
-
-gforge (3.3.0-12) unstable; urgency=low
-
- * [Christian] Repared vhosts generation
- * [Christian] Some renaming cvs -> scm
- * [Christian] Added new sql upgrade (2004*.sql)
- * [Christian] Stable backbort
- * [Christian] Added = ${Source-Version} for gforge-mta-postfix
- * [Christian] Make db-upgrade able to run with default pg_hba.conf
- * [Christian] Make vhost scripts work default pg_hba.conf
- * [Christian] Add missing space in update-user-group.sh (closes
- gforge upstream bug #751)
- * [Christian] Adjust cvs_dump rights
- * [Christian] Try to fix problems when dbname and dbuser are not gforge
- * [Christian] Applied blindly (I red the diff) Mathieu Peltier patch #641
- that fix DNS configuration problem
- * [Christian] Added default project home page generation
- * [Christian] Added get_news_notapproved cron
- * [Christian] Made system management OO (see Changelog)
- * [Roland] SCM systems are now pluginified.
-
- -- Christian Bayle <bayle@debian.org> Thu, 29 Jul 2004 16:41:16 +0200
-
-gforge (3.2.1-4) experimental; urgency=low
-
- * [Christian] Now use setup script (wrapped in gforge-config)
- * [Christian] Added dependencies in control file so all package of the same version are
- installed when you apt-get install gforge
- * [Christian] Re-added local.pl and database.inc fill
- * [Christian] Added dumps dir for gforge-cvs
- * [Christian] Various change to make work better setup script
-
- -- Christian Bayle <bayle@debian.org> Sat, 13 Mar 2004 02:59:35 +0100
-
-gforge (3.2.1-2) experimental; urgency=low
-
- * [Roland] New upstream release. Debian packaging still experimental at
- this stage.
- * [Roland] Upgrade database schema using 20031105.sql and 20031124.sql.
- * [Roland] Also use 20031129.sql, for the "last changed XX days ago"
- patch from Hidenari Miwa and Tsutomu Tominaga.
- * [Roland] Also use 20031126.sql, for the "cron manager" feature.
- * [Roland] Also use 20031205.sql.
- * [Christian] Now use setup script (wrapped in gforge-config)
- * [Christian] Added dependencies in control file so all package of the same version are
- installed when you apt-get install gforge
-
- -- Christian Bayle <bayle@debian.org> Wed, 3 Mar 2004 10:08:06 +0100
-
-gforge (3.1-12) unstable; urgency=low
-
- * [Roland] Added an empty sourceforge binary package, with some Debconf
- magic to help people upgrading from sourceforge to gforge.
- * [Christian] Also moved the logs in gforge-sourceforge-transition.
-
- -- Roland Mas <lolando@debian.org> Tue, 2 Mar 2004 23:06:02 +0100
-
-gforge (3.1-11) unstable; urgency=low
-
- * [Roland] Added exim4 support, patch from Guillem Jover
- <guillem@debian.org>. Thanks! (closes: #234684). Also made it the
- default, since exim4 is the new default MTA for Sarge.
-
- -- Roland Mas <lolando@debian.org> Mon, 1 Mar 2004 16:46:57 +0100
-
-gforge (3.1-10) unstable; urgency=low
-
- * [Roland] This is a brown-paper-bag type of release. I broke
- install-ldap.sh in 3.1-9. This should fix it.
-
- -- Roland Mas <lolando@debian.org> Mon, 16 Feb 2004 14:20:27 +0100
-
-gforge (3.1-9) unstable; urgency=low
-
- * [Roland] Added permissions for the robot to edit the
- ou=mailingList,dc=... entries in LDAP.
- * [Roland] Better detection of strange conditions in cvs_dump_update.pl.
- * [Roland] Fixed permissions for groups' "home" directories.
- * [Roland] Added po/nl.po for the Dutch translation (closes: #232236).
- * [Roland] Don't comment out LDAP schema inclusions in slapd.conf
- (closes: #227377).
- * [Roland] Don't count private projects and the None user when
- displaying numbers on the front page (closes: #211086).
-
- -- Roland Mas <lolando@debian.org> Sun, 15 Feb 2004 17:10:11 +0100
-
-gforge (3.1-8) unstable; urgency=low
-
- * [Roland] It seems the new organisation of the apache (and related)
- packages managed to break quite a lot of things. Still trying to
- catch up, this time removing a "Listen" directive that would turn out
- to be a duplicate one, thus preventing Apache from running.
-
- -- Roland Mas <lolando@debian.org> Tue, 20 Jan 2004 22:45:03 +0100
-
-gforge (3.1-7) unstable; urgency=low
-
- * [Roland] Yet another LDAP fix. This one would completely prevent
- installation from scratch.
-
- -- Roland Mas <lolando@debian.org> Sun, 11 Jan 2004 02:12:51 +0100
-
-gforge (3.1-6) unstable; urgency=low
-
- * [Roland] Detection of wrong passwords, with a message describing how
- to fix (closes: #223693, #215577, #224257).
- * [Roland] Insert data into LDAP using the robot DN, so as to minimise
- the use of the admin DN.
- * [Roland] Better detection of errors when creating database and user,
- too.
- * [Roland] Added cronjobs/massmail.php and enabled it in
- gforge-db-postgresql.cron.d (closes: #225686).
- * [Roland] Cleaned up the Apache installation process so that it works
- more generically with apache{,-perl,-ssl} flavours. Also use
- /etc/$flavour/conf.d/ directory (thus removing the hack that changed
- the /etc/$flavour/httpd.conf file).
-
- -- Roland Mas <lolando@debian.org> Sat, 10 Jan 2004 22:41:21 +0100
-
-gforge (3.1-5) unstable; urgency=low
-
- * [Christian] corrected stupid chmod error in user_dump_update.pl
- that was making unwritable htdocs dir to the group
- * [Christian] added support for cvsweb.php a cvsweb wrapper
- updated to last cvsweb version
- * [Christian] added setup and cleanup target in install-ldap.sh
- and fill crypted password
- * [Roland] Tightened the versioned dependency on Apache so that we can
- rely on modules-config (closes: #220872).
- * [Roland] Escape special characters like @ and $ before passing strings
- containing them to a Perl script, for instance e-mail addresses.
- Should help fix the administrator's e-mail.
- * [Roland] install-db.sh now uses grep and cut (instead of Perl) to
- extract the configuration variables from the configuration file, which
- should help gforge-sourceforge-transition work better.
- * [Roland] Added full path to invoke-rc.d in create-vhosts.sh. This
- script may be called from a very sparse environment (cron), in which
- $PATH does not include /usr/sbin.
- * [Roland] Remove .ssh/authorized_keys when they are set to empty,
- instead of just leaving them as they are.
- * [Roland] Added support for apache-perl too.
- * [Roland] Fixed the way we use modules-config so that gforge-web-apache
- does not hang on install (closes: #221172).
- * [Roland] Added "--encoding=UNICODE" to the restore action of
- install-db.sh.
-
- -- Roland Mas <lolando@debian.org> Fri, 9 Jan 2004 22:35:34 +0100
-
-gforge (3.1-4) unstable; urgency=low
-
- * [Roland] Fixed multiline inline Perl script for gforge-mta-postfix's
- configuration process (I know, I know) (closes: #219379).
- * [Roland] install-apache.sh now uses the new "modules-config" mechanism
- provided by Apache packages to enable/disable modules, instead of
- uncommenting LoadModules lines by script (closes: #219745).
- * [Roland] Fixed update-user-group-cvs.sh's handling of lockfiles
- (closes: #219957).
- * [Christian] corrected SYSLOGD warning to 'you must have
- SYSLOGD="-p /dev/log -a /var/lib/gforge/chroot/dev/log" in
- /etc/init.d/sysklogd', since the old advice might have break
- your syslogd, sorry for this but this is makejail advice.
-
- -- Roland Mas <lolando@debian.org> Thu, 13 Nov 2003 23:21:26 +0100
-
-gforge (3.1-3) unstable; urgency=low
-
- * [Roland] Added a lock feature to update-user-group-cvs.sh. That adds
- a dependency on lockfile-progs.
- * [Roland] Fixed install-postfix.sh for gforge-mta-postfix's
- deconfiguration process (closes: #218637).
-
- -- Roland Mas <lolando@debian.org> Tue, 4 Nov 2003 23:16:44 +0100
-
-gforge (3.1-2) unstable; urgency=low
-
- * [Roland] Fixed install-db.sh and its "cannot create user : already
- exists" bug.
-
- -- Roland Mas <lolando@debian.org> Mon, 27 Oct 2003 10:35:09 +0100
-
-gforge (3.1-1) unstable; urgency=low
-
- * New upstream release.
- * [Roland] Patch #558 from Patrick McFarland to fix hardwiring problem
- in install-db.sh.
- * [Roland] Patch #561 from Patrick McFarland to fix "access to *'" bug
- in install-ldap.sh.
- * [Roland] Fixed a few occurences of SF in the Debconf templates (Gforge
- bug #555).
-
- -- Roland Mas <lolando@debian.org> Sun, 26 Oct 2003 23:01:26 +0100
-
-gforge (3.0-9) unstable; urgency=low
-
- * [Roland] New CVS snapshot, including fix for a bug that prevented
- e-mails to be sent with the passwords for new mailing-lists at their
- creation.
-
- -- Roland Mas <lolando@debian.org> Fri, 10 Oct 2003 12:23:09 +0200
-
-gforge (3.0-8) unstable; urgency=low
-
- * [Roland] Fixed redirection URL for Mailman.
- * [Roland] Made the create-vhosts cronjob silent.
- * [Roland] Removed duplicate colon from PHP script, it belongs in the
- *.tab files (closes: #212213).
- * [Roland] Fixed -request alias for Mailman (closes: #213160).
- * [Roland] Index page is now customisable (in
- /etc/gforge/custom/index_std.php) (and the default version differs
- from the gforge.org home page). Patch from Francisco Gimeno.
- * [Roland] Fixed images alias for Mailman (closes: #213052).
-
- -- Roland Mas <lolando@debian.org> Mon, 6 Oct 2003 16:27:38 +0200
-
-gforge (3.0-7) unstable; urgency=low
-
- * [Roland] Added 20030822.sql.
- * [Roland] Added scripts to generate a /var/lib/gforge/etc/httpd.vhosts
- file from the database and use that, so projects can use virtual hosts
- other than <projectname>.<domainname>. Added a
- /etc/gforge/templates/httpd.vhosts.template file, too.
- * [Roland] Bumped Standards-Version: to 3.6.1 (no changes needed).
- * [Christian] Applied Joo-won Jung ldap patch [#507] to correct bad ldap
- init
- * [Christian] Applied Vicente J. Ruiz Jurado patch [ #430 ] mailman +
- postfix to correct postfix setup (untested)
- * [Christian] Applied Antoine Nivard suggestion to correct [ #505 ]
- Disable Tracker and the "TAB" is not disable / error in Layout.class
- * [Roland] Added "objectclass: domain" to the top-level LDAP object when
- it's not the same as the top-level LDAP object created by slapd, see
- Gforge bug #518. Also, (closes: #208849), since I believe it's the
- same bug.
- * [Roland] Create /var/lib/gforge/etc in all packages, for the upcoming
- move of generated config files.
- * [Roland] install-apache.sh: do not exit with an error if Apache fails
- to start, so that people without an SSL certificate will still be able
- to install.
- * [Roland] Fixed db-upgrade.pl. It seems Postgresql feels free to
- change the return type of a function when it's used by a trigger, but
- doesn't allow the user to change that return type afterwards. Fix:
- drop trigger and function, re-create function and trigger.
-
- -- Roland Mas <lolando@debian.org> Sun, 21 Sep 2003 14:43:14 +0200
-
-gforge (3.0-6) unstable; urgency=low
-
- * [Roland] Suppressed warning in gforge-common.postinst when the
- sourceforge user does not exist.
-
- -- Roland Mas <lolando@debian.org> Fri, 22 Aug 2003 17:38:01 +0200
-
-gforge (3.0-5) unstable; urgency=low
-
- * [Roland] Changed proftpd configuration file to comply with current
- syntax. Patch from Igor Genibel <igenibel@debian.org>, thanks Igor
- (closes: #203341).
- * [Roland] Fixed the *-owner alias for Mailman lists. Patch from Igor
- Genibel again (closes: #203522).
- * [Roland] Changed the objectclass: person to objectclass: account,
- since person requires an additional field.
-
- -- Roland Mas <lolando@debian.org> Fri, 22 Aug 2003 12:24:35 +0200
-
-gforge (3.0-4) unstable; urgency=low
-
- * [Roland] Make sure the $gforge_base_dn, ou=People,$gforge_base_dn and
- other needed LDAP records exist before we try to insert new
- sub-trees/records in them (closes: #201536).
- * [Christian] Corrected my stupid error in ldap.php that made a warning
- on changing ldap protocol version (closes: #202208)
- * [Christian] Added dependancy on cpio for gforge-common
- * [Roland] Updated French translation for Debconf templates, again
- thanks to the French l10n team (closes: #201668).
- * [Roland] The French l10n team have too much time on their hands, but
- they provide valid suggestions as for which Debconf templates should
- be translated and which shouldn't. I obey the French l10n team's
- wishes in that regard (closes: #201666).
- * [Roland] Clearly mark files generated from templates as such, as well
- as these templates (closes: #193155).
- * [Christian] Added cronjobs/db_project_sums.php in postgres cron
- * [Christian] Added cronjobs/check_stale_tracker_items.php in postgres cron
- * [Christian] Added objectClass: person in install-ldap.sh as suggested by
- Lars Ehrhardt in http://gforge.org/forum/message.php?msg_id=3211
- * [Roland] Reverted a few images to their status in 3.0-1, to avoid
- build problems. Sorry about the delay, and the lack of a 3.0-3.
-
- -- Roland Mas <lolando@debian.org> Wed, 20 Aug 2003 22:02:32 +0200
-
-gforge (3.0-2) unstable; urgency=low
-
- * [Roland] Applied patch provided by Denis Barbier <barbier@debian.org>
- and the French l10 team, to switch the Debconf templates to po-debconf
- (closes: #199939). Many thanks, guys!
-
- -- Roland Mas <lolando@debian.org> Tue, 8 Jul 2003 21:23:45 +0200
-
-gforge (3.0-1) unstable; urgency=low
-
- * [Roland] The much-awaited 3.0 release! Yay!
- * [Roland] This Debian release is dedicated to Christian and his wife,
- whose marriage was five years old on the 20th of June.
- * [Roland] Do not take the availability of mod_userdir.c for granted.
- Patch from Tomas Pospisek <tpo_deb@sourcepole.ch> (closes: #197606).
- * [Roland] Bumped Standards-Version: to 3.5.10 (no changes needed).
- * [Christian] added sys_ldap_version variable and take it in account if
- defined in common/include/ldap.php after bind
- * [Roland] Rename French versions of the fields in Debconf templates
- from *-fr_FR to *-fr (closes: #199743).
- * [Roland] Cleanup in install-ldap.sh.
-
- -- Roland Mas <lolando@debian.org> Thu, 3 Jul 2003 21:09:15 +0200
-
-gforge (3rc2-4) unstable; urgency=low
-
- * [Roland] Install README.Debian into all packages (Gforge bug #340),
- and README.Multipack into gforge-common (closes: #193151).
- * [Roland] We can even quit using the OID 1.3.6.1.4.1.9586.1.1
- (iso.org.dod.internet.private.enterprise.Debian.package.sourceforge)
- and start using the newly assigned 1.3.6.1.4.1.9586.100.3
- (iso.org.dod.internet.private.enterprise.Debian.package.gforge)
- instead. That means a global s/debSf/debGforge/ in attribute types
- and object classes, in all the files that use LDAP.
- * [Roland] Lots of fixes in the Debconf variable handling. It should be
- more straightforward now, more logical (variables have been moved to
- their proper package), more policy-compliant (gforge.conf is read and
- Debconf is initialised from it as much as possible), and it even
- actually seems to work.
- * [Christian] Added {cronolog_path} in httpd.conf.template, make it fill
- by gforge-config and removed dependancy on a specific cronolog version
- * [Roland] Fixed create-mailing-lists.pl to change the base URL of newly
- created mailing-lists (Gforge bug #331). Also added a
- fix-mailing-lists.pl script to fix the previous damage. We even run
- this script if the previously installed version was likely to have the
- bug.
- * [Roland] and [Christian] Added cn: fiend in LDAP entries for
- mailing-lists.
- * [Roland] Stopped trying to create/modify the base DN of the LDAP
- directory if it already exists.
-
- -- Roland Mas <lolando@debian.org> Fri, 20 Jun 2003 13:31:38 +0200
-
-gforge (3rc2-3) unstable; urgency=low
-
- * [Roland] Switched from non-US to main, so that the upload be accepted.
-
- -- Roland Mas <lolando@debian.org> Wed, 21 May 2003 00:11:57 +0200
-
-gforge (3rc2-2) unstable; urgency=low
-
- * [Roland] Added db/20030513.sql, to add an "enabled" column to the
- themes table. Fixed register-theme accordingly, and wrote a new
- unregister-theme too (which just disables the theme).
- * [Christian] Updated French.tab contributed by Linac (Angouleme Lug)
- for Adullact <michel.bondaz@linac.org>.
- * [Roland] Applied patch #330 fixing LDAP schema. Thanks, Alwyn
- Schoeman <alwyn@smart.com.ph>.
- * [Christian] Moved <name> theme in gforge-theme-<name> dir where name
- not gforge or osx.
- * [Roland] Fixed cvs_dump_update.pl so that it creates the homedirs for
- the anoncvs_* users when needed.
- * [Roland] Also fixed database user creation code.
- * [Roland] Depend on cronolog (>= 1.6.2-1), since the binary was
- relocated from /usr/sbin to /usr/bin in that version.
- * [Roland] Clean the source tree so as to be able to build a non-native
- Debian package.
- * [Roland] Restored initial debSfMailingList (Mailman 2.0 version) to
- the LDAP schema, and added the new debSfMailingListMM21 with OID
- 1.3.6.1.4.1.9586.1.1.1.2.3 for Mailman 2.1. Fixed sql2ldif.pl
- accordingly.
-
- -- Roland Mas <lolando@debian.org> Tue, 20 May 2003 23:18:47 +0200
-
-gforge (3rc2-1) unstable; urgency=low
-
- * [Christian] rc2 will go to unstable
-
- -- Christian Bayle <bayle@debian.org> Wed, 14 May 2003 00:15:36 +0200
-
-gforge (3rc1-3) experimental; urgency=low
-
- * [Christian] Fixed GForge-CVS in cvsweb.conf
- * [Christian] Fixed jpgraph path in local.inc
- * [Christian] Added suggest on libphp-jpgraph
- * [Christian] Added unix_box and cvs_box argument to the
- create funtion in Group.class
- * [Christian] added darkaqua theme from Patrick McFarland (diablod3)
- * [Chrsitian] added a find for sourceforge owned file in common postinst
- (Closes: bug#179050)
- * [Roland] Fixed homedirs for anoncvs_* users.
- * [Roland] Enabled HTTPS for CVSweb.
- * [Roland] Removed yet a few mentions of Sourceforge.
- * [Roland] Fixed a few problems with OpenLDAP 2.1.
-
- -- Roland Mas <lolando@debian.org> Sat, 26 Apr 2003 22:22:39 +0200
-
-gforge (3rc1-2) experimental; urgency=low
-
- * [Roland] Corrected a bug in exim install script
- * [Christian] Added location on projects and users for ssl part
- * [Christian] Fixed a typo in deb-specific/install-postfix.sh
-
- -- Christian Bayle <bayle@debian.org> Wed, 26 Mar 2003 23:29:15 +0100
-
-gforge (3rc1-1) experimental; urgency=low
-
- * [Christian] Added support for content encoding in util_send_mail
- * [Christian] Removed .htaccess and put appropriate lines in httpd template
- * [Christian] Renamed sf-(un)register functions in (un)register
- * [Christian] Some cvs improvement
- * [Roland] Fixed several database upgrading bugs.
- * [Roland] Don't fail or hang in postinst with recent ssh.
- * [Roland] Added a few diagnostic tests in the LDAP isntallation
- scripts. That should help pointing out errors caused by the user
- inputting invalid data.
- * [Christian] rewrote partly user/group/cvs/ssh backend, now there
- are four separate scripts [user|group|cvs|ssh]_dump_update.pl
-
- -- Christian Bayle <bayle@debian.org> Sun, 16 Mar 2003 21:51:42 +0100
-
-gforge (3pre9-0+2) experimental; urgency=low
-
- * [Roland] Recoded Debconf templates into UTF-8, as part of the grand
- transition to UTF-8.
- * [Roland] Also set the PHP default charset to be UTF-8 in the Apache
- configuration.
- * [Christian] Improved transition from debian-sf 2.5
- * [Christian] pre9 package db upgrade
- * [Christian] Removed stricter dependency on debconf, to be able to run
- on woody
- * [Christian] removed dns.head for simple config and added test in dns
- cron
- * [Christian] applied Jim Nutt (jimnutt) patch [ #183 ] Fixes an ip
- address in dns config
- * [Roland] Adapted to run with Mailman 2.1.
- * [Christian] Adjusted sequence in language table
- * [Christian] Adjusted stateid in doc_data
- * [Christian] Repeared local customization
-
- -- Christian Bayle <bayle@debian.org> Mon, 3 Mar 2003 22:55:59 +0100
-
-gforge (3pre8-0+1) experimental; urgency=low
-
- * [Roland] Reencoded this changelog into UTF-8, as per upcoming policy
- changes (see bug #174982).
- * [Roland] Also, changed version to reflect the pre8 status of the
- current code.
- * [Roland] Stricter dependency on debconf, to fix a Lintian warning.
- * [Roland] Die on error when installing the DB.
- * [Roland] Do not forget 20021213.sql...
- * [Roland] Generate a random password for the LDAP stuff if the user
- doesn't provide one.
- * [Christian] Applied Olafur Osvaldsson patch #143, Incorrect user
- permissions on upload dir
- * [Roland] Several changes occured in PostgreSQL between versions 7.2
- and 7.3: the pg_hba.conf file syntax, the way users are authenticated,
- and data checking is stricter. The installation process should now
- work with both versions (provided the PostgreSQL server is installed
- correctly).
- * [Roland] Applied patches #103 and #104 fixing stuff related with
- Apache-SSL / Apache + mod_ssl. Thanks, Julien Goodwin
- <laptop006@users.gforge.org>.
- * [Roland] Applied patch #102. At last, a serious attempt at a working
- install-postfix.sh. Thanks again, Julien Goodwin.
-
- -- Roland Mas <lolando@debian.org> Wed, 15 Jan 2003 17:15:52 +0100
-
-gforge (3.0-0+8) experimental; urgency=low
-
- * [Christian] Reintroduce the possibility to define default home page in
- Themes
- * [Christian] Added subMenu in Layout
- * [Roland] Merged in everything that was done on the trunk since
- Branch_gforge was started. That includes the plugin subsystem.
- * [Roland] Merged Branch_gforge back into the trunk.
- * [Christian] Removed dependency on php4-mcrypt
- * [Christian] Applied F. Elie patch theme init #73
- * [Christian] Applied F. Elie patch image and searchbox localisation #84 #85
-
- -- Christian Bayle <bayle@debian.org> Tue, 31 Dec 2002 13:12:48 +0100
-
-gforge (3.0-0+7) experimental; urgency=low
-
- * [Christian] Added db upgrade 20021125-debian.sql
- * [Christian] See upstream Changelog
- * [Christian] Replacing html_get_alt_row_color with boxGetAltRowStyle
- * [Christian] Removed obsolete html_get_alt_row_color function
- * [Christian] FRS/QRS in gforge fashion
- * [Christian] Added Peerating parameter management
-
- -- Christian Bayle <bayle@debian.org> Thu, 19 Dec 2002 00:27:27 +0100
-
-gforge (3.0-0+5) experimental; urgency=low
-
- * [Christian] Merged mostly all change from gforge tree
- now changing the package name
- * [Christian] Applied Francisco Gimeno alias kikov supposed corrected patch
- * [Christian] Big renaming from sourceforge to gforge
- * [Christian] Added Jabber related French translation
- * [Christian] Added Jabber stuffs in local.inc.template
- * [Christian] Made sys_dbname sys_dbuser sys_dbhost debconf param
- * [Christian] Added gforge-sourceforge-transition package for smooth upgrade
- * [Christian] First pre-pre-realease
-
- -- Christian Bayle <bayle@debian.org> Wed, 11 Dec 2002 00:08:07 +0100
-
-sourceforge (2.6-0+17+gforge-1) experimental; urgency=low
-
- * [Roland] Started the "gforge" branch, to temporarily host all the
- changes made by Tim Perdue (a.k.a. Bigdisk) in his Gforge fork.
- Hopefully, we'll eventually merge them into the trunk and drop that
- branch, but since his changes seem to be rather large, we can't do
- that instantly.
-
- -- Roland Mas <roland.mas@free.fr> Wed, 27 Nov 2002 22:42:02 +0100
-
-sourceforge (2.6-0+17+) experimental; urgency=low
-
- * [Roland] Introducing the plugin subsystem: some infrastructure is now
- in place to add plugins to Sourceforge. Currently implemented: a
- table containing a list of installed plugins, a table for a list of
- "this group uses that plugin" relations, one for "this user uses that
- plugin" relations, and a usesPlugin() method for the User and Group
- classes (in PHP).
- * [Roland] Also implemented: a PluginManager class, a Plugin class.
- * [Roland] Also, a hook system. Read README.Plugins for more info.
-
- -- Roland Mas <lolando@debian.org> Sat, 14 Dec 2002 19:29:04 +0100
-
-sourceforge (2.6-0+17) experimental; urgency=low
-
- * [Christian] repared broken delete function in new_parse.pl (again)
- * [Christian] Fixed install-chroot.sh incomplete copy of libs for ldap
- * [Roland] DSF-Helperised a bit of Debconf for sourceforge-dns-bind9
- that had previously been forgotten.
-
- -- Christian Bayle <bayle@debian.org> Tue, 10 Dec 2002 23:03:18 +0100
-
-sourceforge (2.6-0+16) experimental; urgency=low
-
- * [Christian] repared broken delete function in new_parse.pl
- * [Christian] made that ssh_dump.pl don't try to create key files for
- deleted user
- * [Christian] Applied an repared Francisco Gimeno alias kikov task
- manager patch
-
- -- Christian Bayle <bayle@debian.org> Tue, 3 Dec 2002 10:11:31 +0100
-
-sourceforge (2.6-0+15) experimental; urgency=low
-
- * [Christian] Add the possibility to hide forum in news_show_latest
- * [Christian] Added the possibility of a language by theme customization
- and updated README.Custom
- * [Christian] Included full Spanish translation from Vicente Ruiz.
- Thanks again
- * [Christian] Removed the unused categories column in
- www/admin/grouplist.php
- * [Christian] Added stats_getprojects_active_public function in
- www/include/features_boxes.php
- * [Christian] Applied Francisco Gimeno patch as is
-
- -- Christian Bayle <bayle@debian.org> Wed, 27 Nov 2002 22:08:19 +0100
-
-sourceforge (2.6-0+14) experimental; urgency=low
-
- * [Roland] Uuencoded all binary files in the source package, so that
- dpkg-source can build a .diff.gz from the .orig.tar.gz. debian/rules
- changed accordingly to uudecode the *.uu files at build time, and to
- remove the resulting files at clean time.
- * [Christian] Made trove cat more editable
- * [Roland] Added integrity constraints between the tables related to the
- Trove map.
- * [Roland] Bumped Standards-Version to 3.5.7 and DH_COMPAT to 4.
- Changed Build-Depends-Indep accordingly.
- * [Roland] Applied patch from Vicente Ruiz <vjrj@ourproject.org> to fix
- LDAP installation.
- * [Roland] Added an <IfModule apache_ssl.c> test in sf-httpd.conf so
- that SSL is enabled on Apache-SSL (as opposed to Apache / mod_ssl)
- servers. Thanks, Kees Louwen <keeslouwen@hotmail.com>.
- * [Christian] Added delete capability in trove map edit
- * [Christian] Added setup_onevar_mainfile function in dsf helper to add
- vars in sourceforge.conf not managed by debconf
- * [Christian] More i18n in /my and /account
- * [Christian] Make user menu themeable
- * [Christian] Applied Mathieu Peltier <Mathieu.Peltier@inrialpes.fr>
- patch to send mail to admin when a project is submitted, and modified
- it to send the mail to all members of siteadmin (id=1) group, also
- applied ftp patch partly.
- * [Christian] Added translation tool in admin (Visualisation only at the
- moment)
- * [Roland] Added missing dependency on php4-cgi for package
- sourceforge-web-apache.
- * [Roland] [From 2.5] Sort documents by title.
- * [Roland] Fix email delivery to users, patch from Vicente Ruiz.
- * [Otavio] Now the browser accepted language are only read if set.
- * [Christian] i18n for project Approval/Rejection/Submission mail.
- * [Paddington] Patch #577 by Andreas Schrattenecker
- <andreas.schrattenecker@aon.at>: preserve release date hh:mm in "Edit
- Releases".
- * [Roland] Added eval magic in install-ldap.sh to help debugging.
- "export DEBSFDEBUG=1" will disable all the redirections, thus showing
- the STDOUT and STDERR of all commands.
- * [Roland] Added extra columns (use_ftp, use_tracker, use_frs,
- use_stats, enable_pserver, enable_anoncvs) in the groups table.
- * [Christian] added web management of these new columns, now you can
- hide almost everything in project page.
- * [Roland] sourceforge-ldap-openldap now depends on libnss-ldap. This
- should not be necessary and will have to be fixed at some point, but
- for now I'm just too lazy to move the code from install-ldap.sh to
- another, more appropriately named, script.
- * [Roland] Applied patch #614 from Robert Lamoureux
- <Robert.Lamoureux@tfn.com> fixing various problems with themes.
- Thanks, Bob!
- * [Roland] Included full Spanish translation from Vicente Ruiz. Thanks
- a lot, Vicente!
- * [Roland] Changes to the supported_languages table: the language_code
- field is now 5 characters wide (2 characters previously). We can thus
- rename the language code for Brazilian to its proper value, pt_BR.
- Also renamed the files to PortugueseBrazilian with one 'l' only, which
- is the proper spelling for it.
- * [Roland] Also, added a foreign key constraint: the doc_data table
- references a language_id.
- * [Christian] Made project admin menu themeable
- * [Christian] Made news menu themeable
- * [Christian] A lot of i18n in forum_utils
- * [Christian] You can now customize date format in language tab files
- * [Roland] Applied patch #617 from Robert Lamoureux. Stats should now
- work! Changes are detailed below, with a [Bob] prefix.
- * [Bob] Fixed initial pass problem with calculate_user_metric.php so
- user ratings statistics now run.
- * [Bob] Fixed db_ commit() error in project_weekly_metric.php. Project
- statistics now work.
- * [Bob] Fixed stats_http_logparse.pl to look for HTTP access log entries
- in the right place (/var/log/sourceforge).
- * [Bob] Changed sf-httpd.conf to have all sourceforge Virtual Web
- servers log all activity to /var/log/sourceforge. Introduced a
- dependency on cronolog. The stats Perl files all assume a YYYY/MM/DD
- directory structure for the log files.
- * [Bob] Fixed rules file to install cron jobs into /bin directory.
- * [Bob] Changed sourceforge-db-postgresql cron file to call the stats
- jobs every night.
- * [Bob] Changed the views_graph.png and users_graph.png files to
- generate an empty graph when no data is present rather than a broken
- image icon. Also, fixed a bug that would break the graph if there was
- 0 or only 1 row in the database.
- * [Bob] Changed stats_logparse.sh to have the full path to the scripts.
- We cannot assume we will be in the right directory when it runs.
- * [Bob] Fixed relative paths to utils/include.pl since all cronjobs seem
- to installed in the bin directory. The old path was 3 levels down in
- the cronjobs directory which is not part of the install hierarchy.
- * [Roland] Applied patch #637 from Mathieu Peltier
- <Mathieu.Peltier@inrialpes.fr>. Changes are detailed below, with
- entries having a [Mathieu] prefix.
- * [Mathieu] Fixed project title displayed when the forum of a news item
- is viewed (was always 'Site Admin News' instead of the name of the
- project).
- * [Mathieu] Fixed typos in www/forum/forum_utils.php,
- www/include/Base.tab, www/include/menu.php and
- www/include/Layout.class.
- * [Mathieu] Removed 'Edit' and '?' links for root trove category in the
- trove map.
- * [Christian] you can now have a customized pre.php in
- /etc/sourceforge/custom/pre.php
- * [Roland] Changed the authentication system: the authoritative password
- field is now unix_pw, even for authenticating web sessions. We keep
- user_pw for better performance when looking up the user entry in the
- database, but it is just a cached value that is recomputed from the
- unix_pw when possible (except when said unix_pw is empty, in which
- case user_pw is the reference, and unix_pw is recomputed when
- possible). This allows for better integration with existing systems
- (for instance, if you want to inject some existing accounts into the
- database...).
- * [Roland] A little i18n in the user's homepage.
- * [Christian] added James Michael DuPont proposed files from
- http://introspector.sourceforge.net/sfexport.tgz . This means 2 files:
- bug_dump.php and patch_dump.php
- * [Christian] Added the supposed userIsAdmin() function in Group class
- used in bug_dump.php and patch_dump.php
- * [Christian] Made some change in bug_dump.php and patch_dump.php to make
- them work (partially), this need actually to manually create two views since in 2.6
- patch and bug tables don't exist, scripts creating views are view_bug.sql and
- view_patch.sql.
- * [Roland] Make HTTPS harder to leave, and make it the default in links
- sent as e-mails (should fix Savannah bug #1401).
- * [Christian] applied paddington patch #644 missing rotate_activity.php,
- generate artifact stats
- * [Christian] more i18n in account management
-
- -- Christian Bayle <bayle@debian.org> Tue, 12 Nov 2002 21:49:11 +0100
-
-sourceforge (2.6-0+13) experimental; urgency=low
-
- * [Christian] Added a dump and restore option to install-db.sh
- * [Christian] Added themeable main page support
- * [Christian] Rewritting of trove_getcatlisting function to
- return a string instead of direct printing
- * [Christian] you can choose default language in local.inc with
- e.g. $sys_lang='French';
- * [Roland] Added the files necessary for sourceforge-mta-postfix. Yay!
- Our first try at flexibility! Don't get any funny ideas though, I'm
- pretty confident it doesn't work. Yet.
- * [Roland] [From 2.5] Changed the way we empty the LDAP directory, so as
- not to kill entries that are not ours.
- * [Roland] [From 2.5] Fixed last inserted languages.
- * [Soon-Son] added group write permission (0664) when creating the
- val-tags file in the CVSROOT directory of each project. Old
- configuration (0644) caused an error when the user tries to tag it as
- follows:
- $cvs up -r xterm-branch
- cvs [server aborted]: cannot write /cvsroot/[...]/CVSROOT/val-tags:
- Permission denied
- * [Roland] [From 2.5] New install-ldap.sh. Should help killing our LDAP
- problems. Still waiting for more testing, but it seems to mostly
- work. There's still a bug in it, but it should be fairly simple to
- fix and I'm working on it.
- * [Roland] Various other cleanings in install-ldap.sh.
- * [Roland] Fixed dependencies of the packages. Not as if it were really
- important before multi-host installations are officially supported,
- but it's good to do it nevertheless.
- * [Roland] [From 2.5] common/include/User.class: Fixed Unix UID
- attribution, so that accounts activated by hand by the admin are given
- an UID too.
- * [Roland] [From 2.5] deb-specific/db-upgrade.pl: Fixed the backlog of
- wrong UIDs.
- * [Roland] Applied patch #417 from Chris Rudd <chris@omegaware.com>
- (very slightly modified) to spread the use of the util_send_mail()
- function. Thanks, Chris.
- * [Roland] Also applied patch #418 from same Chris Rudd to help
- portability on Cygwin platforms. Thanks, Chris.
- * [Roland] utils/new_parse.pl: Applied patch from Manik Surtani
- <manik.surtani@conchango.com> fixing a few paths.
- * [Christian] Update language_code in supported_languages table. It's
- used to have a default language corresponding to browser language
- settings.
- * [Christian] More i18n on Trove map (work in progress).
- * [Christian] More i18n in group, French translation added too.
- * [Christian] Added choice for default language and theme in debconf.
- * [Roland] Made some scripts silent (including some cron jobs). They
- should have been silent earlier, but shell redirection is trickier
- than I thought.
- * [Roland] README.Themes: Added a section on theme naming to avoid name
- conflicts.
- * [Christian] added choice for default language and theme in debconf
- * [Christian] more i18n for account register
- * [Christian] cosmetics/i18n in bugtracker
- * [Christian] removed multi record bug in software map
- * [Roland] Dropped and recreated the views related to the artifact
- manager, to fix the artifact bug (couldn't submit new artifacts,
- couldn't add new comments to existing ones, couldn't attach files).
- Thanks to Andreas Schrattenecker <andreas.schrattenecker@aon.at> for
- the bug report and analysis.
-
- -- Christian Bayle <bayle@debian.org> Wed, 9 Oct 2002 21:35:36 +0200
-
-sourceforge (2.6-0+12) unstable; urgency=low
-
- * [Roland] Added support for local overloading of the default
- translation files. See README.Custom for details.
- * [Roland] Applied Olafur's "Making DNS simpler" patch, with a few
- changes.
- * [Roland] Applied Soon-Son's patch #281 increasing internationalisation
- and the Korean translation.
- * [Roland] Split the package into no less than eleven subpackages. This
- isolates different features into different packages, and it also paves
- the road to multi-host installations (that part is not done yet).
- * [Roland] To facilitate this splitting, a bit of magic was introduced.
- I hereby present DSF-Helper to the face of the world. This script is
- inspired from dh_installdeb, and basically does a search-and-replace
- on template files. This allows us to share bits of code (for
- maintainer scripts) or text (Debconf templates) between several
- packages without having to maintain consistency by hand. The
- code/text is in one file, and is inserted in the appropriate files
- when the package is built.
- * [Roland] Cleaned debian/rules file a bit.
- * [Christian] Added box1_get_alt_row_style function in Layout.class that
- replace html_get_alt_row_color from html.php. This will help to solve
- problems with savannah themes. I also made the necessary changes in
- savannah styles
- * [Soon-Son] fixed bug # 148 (malformed part on dns.zone)
- * [Soon-Son] fixed bug # 431 (Number of public forum/msg are 0)
- * [Soon-Son] removed all links to nonexistent document
- * [Soon-Son] more i18n effort including patch # 283
- * [Soon-Son] removed dtd definition for bug # 120
- * [Christian] Repared trove map count
- * [Roland] Fixed invocation of tarballs.sh in crontab.
- * [Roland] [From 2.5] Fixed mailing-lists entries in LDAP.
- * [Roland] Included entries from the 2.5 changelog file into this one.
- Don't worry it the dates are not ordered. Development has been
- concurrent for a while (and still is). Such merges should happen
- until the 2.5 branch is abandoned.
- * [Roland] Added missing languages.
- * [Christian] added checks in sourceforge-config
- * [Christian] install/desinstall cycle support for common, web-apache,
- db-postgress
- * [Christian] Added ssh-nonfree support
- * [Christian] Added many Replaces: sourceforge in control files
-
- -- Christian Bayle <bayle@debian.org> Thu, 27 Jun 2002 00:13:31 +0200
-
-sourceforge (2.6-0+11) unstable; urgency=low
-
- * [Roland] Fixed theme registration for 2.6->2.6 upgrades. You might
- encounter problems if you registered them manually, in this case
- simply run the following SQL in the sourceforge database:
- DELETE FROM themes WHERE dirname LIKE 'savannah_%'; BUG #124 CLOSED
- * [Christian] changed Layout.class with div align=center BUG #120 CLOSED
- * [Christian] removed link to docman BUG #122 CLOSED
- * [Christian] $sys_name is now used for imported savannah themes
- BUG #129 CLOSED
- * [Christian/Roland] added darkslate savannah theme
-
- -- Christian Bayle <bayle@debian.org> Thu, 25 Apr 2002 17:15:57 +0200
-
-sourceforge (2.6-0+10) unstable; urgency=low
-
- * [Christian] Corrected wrong link in menu.php for lastlogin.php.
- * [Roland] *Lots* of patches from Olafur Osvaldsson <oli@isnic.is>
- applied, many thanks to him.
- * [Roland] Changed about.php page so that it now speaks about Debian
- Sourceforge. It's internationalised, too.
- * [Roland] Page footer is now shorter, internationalised, and pointing
- to the About page.
- * [Roland] Fixed links in the Site News page.
- * [Roland] Made groups siteadmin and newsadmin public to prevent
- problems with submitting of news. Also, changed their names for
- coherence with names inherited from the 2.5 branch.
- * [Christian] Continuing work on theming, added a new function in
- html.php (url_html)
- * [Roland] Removed a few bashisms in maintainer scripts.
- * [Christian] Added savannah converted themes and appropriate db inserts
- * [Christian] Added README.Themes
-
- -- Christian Bayle <bayle@debian.org> Thu, 25 Apr 2002 01:02:54 +0200
-
-sourceforge (2.6-0+9) unstable; urgency=low
-
- * [Christian] Added dependancy on rcs for our patched cvsweb
- * [Roland] Renamed db-upgrade26.pl to db-upgrade.pl.
- * [Roland] Split the parse_sql_file function out of db-upgrade.pl and
- into its own file (sqlparser.pm).
- * [Roland] Fixed configuration of apache-ssl.
- * [Roland] Worked to make the database scheme independent of the upgrade
- path: installing 2.6 over 2.5 now yields the same scheme as installing
- 2.6 from scratch. Well, actually, not quite, but the differences are
- only in a few constraints, and that'll be taken care of when we
- provide some way to backup and restore a database.
- * [Roland] db-upgrade.pl: replay the database "fixes" included in the
- 2.5 packages before starting the conversion to 2.6, to permit upgrades
- from versions that are not the latest in the 2.5 series.
- * [Christian] gig2png conversion to make GNU happy.
- * [Christian] some html cleaning in Layout.class and osdn.php
- * [Christian] added Add, Delete, or Edit Themes in Site Utilities for admin
- * [Christian] change uid/gid attribution in ldap.php to be backend compliant
- * [Christian] added debian and savannah Themes
- * [Roland] Remove /cvsroot symlink on purge.
- * [Roland] Insert the appropriate rows in the database for themes.
- * [Roland] Added a "checkpoint" in db-upgrade.pl, so that we should now
- be able to provide upgrades between different releases in the 2.6
- series.
- * [Roland] Added a totally rewritten Korean language translation file
- provided by Soon-Son Kwon <kss@kldp.org>. Many thanks to him.
- * [Roland] Also rewrote the French language translation file, so as to
- not be lagging behind the Koreans :-)
- * [Roland] Also fixed a few typoes in the English language.
- * [Christian] Removed confusing unused image from archive and put in unused
- directory in cvs, preparing easy Theming
- * [Christian] Theming should be easier though not complete
-
- -- Christian Bayle <bayle@debian.org> Tue, 16 Apr 2002 22:14:28 +0200
-
-sourceforge (2.6-0+8) unstable; urgency=low
-
- * [Christian] Added debian/BUGS
- * [Christian] Corrected approve_pending bug
- * [Christian] Corrected wrong userid for CVS
- * [Christian] Fixed libmcryp4 dependancy
- * [Christian] Added anoncvs_ users in ldap db
- * [Roland] [From 2.5] Added man page for sourceforge-config (from a
- Docbook SGML file). This fixes a lintian error.
- * [Christian] Added ldap support for chrooted anonymous cvs
- * [Roland] Minor typo-fixes here and there, and a few cosmetic changes.
- * [Roland] [From 2.5] Fixed unix_box entries.
- * [Roland] Fixed leftover cruft in /etc/nsswitch.conf purging.
- * [Roland] Made the header somewhat customizable (display/hide the
- banner, mainly).
- * [Roland] Transitioned to PostgreSQL 7.2. That was far from easy,
- since PG 7.2 is much more anal retentive than 7.1.3. In particular,
- foreign key constraints and indices are not automagically dropped,
- which caused strange errors and deep frustration in the upgrade path
- from the 2.5 series.
- * [Roland] While I was fixing that, I also took the opportunity to add
- some code to drop the useless "deadXX" columns that are introduced by
- the 2.5->2.6 upgrade (ALTER TABLE/DROP COLUMN not being implemented in
- PostgreSQL yet).
- * [Roland] Moved a few SQL statements used only in the 2.5->2.6 upgrade
- from db-upgrade26.pl to sf2.5-to-sf2.6.sql.
-
- -- Christian Bayle <bayle@aist.enst.fr> Mon, 11 Mar 2002 23:54:57 +0100
-
-sourceforge (2.6-0+7) unstable; urgency=low
-
- * [Roland] [From 2.5] Added templates to conffiles.
- * [Roland] Added debconf magic to ask whether to replace a config file
- before doing it (in the post-installation and pre-remove phases).
- * [Christian] Changed to use cvsweb
- * [Roland] [From 2.5] Added "-s /bin/sh" when su'ing to postgres.
- * [Roland] [From 2.5] Moved templates to a Policy-compliant location
- (/etc/sourceforge/templates).
- * [Christian] modify install-ldap.sh to follow slapd undocumented
- changes
- * [Christian] removed test on /etc/ldap.secret in sourceforge.config
- * [Christian] changed template in local.inc.template to remove People in
- sys_ldap_admin dn
-
- -- Christian Bayle <bayle@aist.enst.fr> Tue, 26 Feb 2002 18:20:31 +0100
-
-sourceforge (2.6-0+6) unstable; urgency=low
-
- * [Roland] [From 2.5] Added docs.
- * [Roland] Added libmime-base64-perl and libhtml-parser-perl to
- dependencies (db-upgrade26.pl now uses MIME::Base64 and
- HTML::Entities).
- * [Roland] Added migration capability to the db-upgrade26.pl script.
- Database upgrades smoothly from 2.5 to 2.6. Hopefully. Not very well
- tested yet.
- * [Christian] Removed libmcrypt bug workaround
-
- -- Christian Bayle <bayle@aist.enst.fr> Thu, 7 Feb 2002 18:30:27 +0100
-
-sourceforge (2.6-0+5) unstable; urgency=low
-
- * [Christian] Added dependency to php4-mcrypt
- * [Christian] Temporary workaround for libmcrypt bug in local.inc.template
- * [Christian] Removed mcrypt-test.sh
-
- -- Christian Bayle <bayle@aist.enst.fr> Sun, 27 Jan 2002 18:43:43 +0100
-
-sourceforge (2.6-0+4) unstable; urgency=low
-
- * [Christian] Removed unjustified warning in intall-ldap.sh.
- * [Roland] Updated Standards-Version to 3.5.6.0.
- * [Roland] Made the package arch-independent.
- * [Roland] Updated debian/TODO a bit.
- * [Roland] Fixed a few minor bugs in my/index.php.
- * [Roland] Fixed speling error in Description: field.
- * [Roland] Added dependencies on packages providing the vi editor.
- * [Roland] www/include/Layout.class (and others): Removed the VA logo in
- the site icon. The new site icon now consists of a black "SF" written
- over a Debian swirl.
- * [Roland] deb-specific/install-ldap.sh: Test for the existence of
- /etc/ldap/slapd.conf before trying to modify it, and suggest to
- reconfigure slapd if it is not present.
- * [Roland] [From 2.5] Ported the new LDAP schema, that had been
- forgotten for some reason.
- * [Roland] [From 2.5] Fixed email addresses on the users' home page.
- * [Roland] Added the login name and real name of the user whose
- permissions in a project are being edited.
- * [Roland] Replaced a call to /etc/init.d/bind9 restart by a (more
- appropriate) reload. Used the policy-defined invoke-rc.d, too.
- * [Roland] Fixed dependencies to correctly handle apache-ssl and
- exim-tls.
-
- -- Roland Mas <lolando@debian.org> Fri, 11 Jan 2002 13:05:02 +0100
-
-sourceforge (2.6-0+3) unstable; urgency=low
-
- * [Christian] Added proper chmod for cp -r www and common
- * [Christian] Added homedir_prefix and groupdir_prefix in
- local.inc.template and made the change in account.php to take this in
- account
- * [Roland] [From 2.5] Rewrote the config file handling, so that it does
- not overwrite local changes.
- * [Roland] [From 2.5] Added cvssh.pl.
-
- -- Christian Bayle <bayle@aist.enst.fr> Mon, 3 Dec 2001 20:09:39 +0100
-
-sourceforge (2.6-0+2) unstable; urgency=low
-
- * [Christian] Patch for db init
- * [Christian] Repared bad db init
-
- -- Christian Bayle <bayle@aist.enst.fr> Sat, 17 Nov 2001 01:29:25 +0100
-
-sourceforge (2.6-0+1) unstable; urgency=low
-
- * Started working on 2.6. Don't expect it to work just yet.
- * Split the DB installation/deinstallation process out of
- postinst/postrm/prerm and into an install-db.sh script. Made it a bit
- less verbose.
- * Split the Apache installation/deinstallation process out of
- postinst/prerm and into an install-db.sh script.
- * Cleaned the exim configuration a bit.
- * Cleaned the DNS configuration a bit.
- * Cleaned the install-*.sh scripts a lot. They now all look the same,
- are more readable (well, they are more readable to me), and work
- approximately the same way. Added a template for future such scripts
- (install-skel.sh).
- * [Christian] Put utils/include.pl utils/sql2ldif.pl
- utils/underworld-dummy/ssh_dump.pl of 2.5 as 2.6 scripts, sql2ldif
- will probably have to be re-seen
- * [Christian] Added sf-2.6-complete.sql script
- * [Christian] Cleaned debian/rules
- * [Christian] Added path in apache template
- * deb-specific/db-upgrade26.pl: Rewrote the SQL parsing state machine so
- that it 1. works better, 2. is more readable, 3. knows about comments,
- 4. knows about COPY [...] FROM stdin.
- * [From 2.5 branch] Fixed install-cvs.sh so that it no longer inserts
- too many lines in the inetd.conf file.
- * [From 2.5 branch] Added sf_ldap_modify_if_exists() to
- www/include/ldap.php. Works the same as sf_ldap_modify, but returns a
- non-error if the LDAP entry does not exist. Patched
- sf_ldap_user_set_attribute to use this new function, so that even
- users with no account (or no account yet) can change their passwords
- and personal info.
- * Adapted the patch to display the site admin menu, from using the now
- deprecated function user_ismember() to using the new (2.6) methods
- involving Group and Permission objects.
- * [From 2.5 branch] Improved personal page: site admin(s) now see(s) a
- list of pending projects, and news admin(s) see(s) a list of pending
- news bytes.
- * Replaced calls to /etc/init.d/<script> <action> in maintainer scripts
- with invoke-rc.d <script> <action>, as per policy.
- * Slightly rewrote the template handling in postinst script, to allow
- parsing for files not in /etc/sourceforge (not needed yet, but it
- might come in handy).
- * Removed an unneeded dependency on bash (in install-chroot.sh).
- * Added resolution data. Fixes the "Can't submit a bug/patch/whatever"
- bug.
-
- -- Roland Mas <lolando@debian.org> Fri, 23 Nov 2001 20:05:11 +0100
-
-sourceforge (2.5-34) unstable; urgency=low
-
- * [Christian] made that adduser don't break postinst
- * [Otavio] Added the possibility to change default language using a
- system variable called $sys_lang (look in /etc/sourceforge/local.inc).
- * [Otavio] Added the commentary in /etc/sourceforge/local.inc about
- $sys_theme.
- * [Christian] Applied Otavio patch and updated postinst consequantly
- * [Roland] Bumped Standards-Version to 3.5.7 and DH_COMPAT to 4.
- * [Otavio] Patch to fix user deletion (closes: #162793).
- * [Roland] Sort documentations by title.
- * [Roland] Updated language codes in the database.
- * [Roland] Otavio's patch #552: better handling of the browser language
- preferences.
-
- -- Roland Mas <lolando@debian.org> Tue, 12 Nov 2002 19:22:05 +0100
-
-sourceforge (2.5-33) unstable; urgency=low
-
- * [Roland] Fixed the fix in db-upgrade.pl, which caused an error to
- occur when upgrading (closes: #159277).
-
- -- Roland Mas <lolando@debian.org> Tue, 3 Sep 2002 13:38:06 +0200
-
-sourceforge (2.5-32) unstable; urgency=low
-
- * [Roland] www/admin/useredit.php: Fixed Unix UID attribution, so that
- accounts activated by the admin are given an UID too. Previously only
- the accounts that were entering a group got given an UID, and that
- could result in people existing in the LDAP database and having a
- shell account yet no UID. Thanks to Otavio Salvador
- <otavio@debian.org> for the report and help in fixing.
- * [Roland] deb-specific/db-upgrade.pl: Fixed the backlog of wrong UIDs.
- * [Roland] utils/new_parse.pl: Applied patch from Manik Surtani
- <manik.surtani@conchango.com> fixing a few paths.
- * [Soon-Son] fixed an error when rating a user. The error message was
- as follows: (Fatal error: Call to a member function on a non-object
- in /usr/lib/sourceforge/www/include/User.class on line 666)
- * [Roland] Hot news! ProFTPd is now in main! Sourceforge migrated back
- from non-US to main. Ftpmasters: sorry about all the fuss.
-
- -- Roland Mas <lolando@debian.org> Sun, 1 Sep 2002 18:35:18 +0200
-
-sourceforge (2.5-31) unstable; urgency=low
-
- * [Soon-Son] added method="post" to massmail.php which was missing so
- far so that the admin can send email to the users
- * [Roland] Revamped install-ftp.sh more or less thoroughly in order to
- finally get rid of the sneaky LDAP problems. From what I can see, it
- works. Yay!
- * [Roland] Various other cleanings in install-ldap.sh.
-
- -- Roland Mas <lolando@debian.org> Mon, 26 Aug 2002 13:01:49 +0200
-
-sourceforge (2.5-30) unstable; urgency=high
-
- * [Christian] Change gid/uid attribution in ldap.php to be like in
- backend
- * [Christian] Added asciize function in ldap.php because
- LDAP expects utf-8 encoded character string (backport from 2.6)
- * [Roland] Fixed install-ftp.sh so that it actually does install stuff.
- * [Roland] Fixed a few bashisms in maintainer scripts.
- * [Roland] Fixed LDAP entries for mailing-lists (attribute cn: is not in
- the schema).
- * [Roland] Fixed user in crontab (for the DNS stuff) (closes: #147434).
- * [Roland] Fixed bug in the "Submit a bug" form: all bug admins are able
- to assign a bug from the start, not just project admins.
- * [Roland] May I introduce you to Soon-Son Kwon <kss@kldp.org> who
- recently got write access to our CVS repository. He seems to focus on
- internationalisation and Korean translation, but he is also a source
- of bugfixes and other interesting patches.
- * [Soon-Son] applied patch for bug # 148(savannah project page).
- * [Soon-Son] added "scp" to allowed commands in cvssh.pl
- * [Soon-Son] changed hardcoded "SourceForge" to $GLOBALS[sys_name]
- so that the user can define custom site name.
- * [Soon-Son] modified .../www/forum/message.php so that it can display
- article subject correctly on the title.
- * [Soon-Son] i18n patch for *many* pages (not all yet)
- * [Soon-Son] removed "sourceforge.net" & "VA linux" specific pages
- like .../contest/*, .../mirrors/* and simplified/generalized footer
- * [Roland] Fixed search results page for Software/Group: the link was
- wrong in the case of foundries.
- * [Roland] Fixed POSIXness of maintainer scripts (closes: #150410).
- * [Roland] Added missing languages (closes: #150301).
- * [Christian] Added support for ssh-nonfree
- * [Christian] Hope I solved a postrm bug that made uninstall fail
- * [Soon-Son] fixed "forbidden" error when trying to connect
- download.foobar.net
- * [Roland] Fixed "value too long for type character varying(32)" in the
- db-upgrade.pl script (when inserting local data) for a fresh install
- (closes: #153031). It was caused by a change of behaviour in the
- md5sum binary provided by dpkg 1.10 and higher.
- * [Roland] Be a little less stupid when emptying the LDAP directory on
- purge (closes: #153032). Instead of removing all entries but a few,
- we now remove all *our* entries but a few. Sorry about that.
- * [Roland] When exiting on an error, db-upgrade.pl now tells you the
- request that failed. That should help debugging.
- * [Roland] Moved the PostgreSQL de-configuration down in the prerm
- script, since the LDAP de-configuration now uses sql2ldif and
- therefore needs access to the database.
- * [Roland] Moved back to non-US. It seems there was a mistake, and not
- all the dependencies were in main after all. For some reason, the
- fact that ProFTPd was still in non-US eluded both me and the
- ftpmasters at the time the 2.5-29 package made it into main. I'm
- sorry about that.
- * [Soon-Son] added group write permission(0664) when creating the val-tags
- file in the CVSROOT directory of each project. Old configuration (0644)
- caused an error when the user tries to tag it as follows:
- $cvs up -r xterm-branch
- cvs [server aborted]: cannot write /cvsroot/hanterm-xf/CVSROOT/val-tags:
- Permission denied
-
- -- Roland Mas <lolando@debian.org> Fri, 19 Jul 2002 20:46:00 +0200
-
-sourceforge (2.5-29.1) stable; urgency=low
-
- * [Roland] Maintenance release for Debian 3.0r1, the first update of
- Woody. Only fixing really major bugs, so that the stable release
- manager may accept this package.
- * [Roland] Moved back to non-us, since proftpd is not in main in Woody.
- * [Roland] Backported fix from 2.5-30 so that uninstalling will not
- completely remove the LDAP directory, but only the entries generated
- from our database. This fixes bug #153032 in Woody.
-
- -- Roland Mas <lolando@debian.org> Tue, 12 Nov 2002 19:09:24 +0100
-
-sourceforge (2.5-29) unstable; urgency=low
-
- * [Roland] Moved to main. I promise the only changes in this package
- are this changelog entry and the Section: field of debian/control.
- * Note to ftpmasters, #1: there's no crypto code in this package, only
- dependencies. I'm not sure you need to notify the BXA or anything.
- * Note to ftpmasters, #2: this package depends on libdbd-pg-perl, which
- is currently in queue/new. Take care not to process sourceforge
- before libdbd-pg-perl.
- * Note to ftpmasters, #3: this package also has a dependency on
- libapache-mod-ssl | apache-ssl. At the time of writing, only
- apache-ssl has transitioned to main, but the package is still
- installable without any non-US-only component. My interpretation is
- that this is enough to allow the transition. If not, well, I'll bug
- the libapache-mod-ssl maintainer so that he goes through this
- transition.
- * Note to ftpmasters, #4: I chose the "devel" subsection because I felt
- it was most appropriate. "web" would be inaccurate (mailing-lists and
- CVS are not web stuff). In a quick survey on IRC, no really
- convincing arguments were put up for (or against) either.
- * Note to ftpmasters, #5: "Thank you for your contribution to Debian"
- yourself. You do a great job. Thanks a lot guys.
-
- -- Roland Mas <lolando@debian.org> Tue, 9 Apr 2002 19:38:46 +0200
-
-sourceforge (2.5-28) unstable; urgency=low
-
- * [Roland] Fixed problem with Apache-SSL: the config file is
- /etc/apache-ssl/httpd.conf, not /etc/apache/httpd.conf.
- * [Christian] Removed ou=People for admin in local.inc.template
-
- -- Roland Mas <lolando@debian.org> Tue, 9 Apr 2002 18:59:48 +0200
-
-sourceforge (2.5-27) unstable; urgency=low
-
- * [Roland] Fixed the shell box hostname entries (again) in db-upgrade.pl
- (closes: #137183).
- * [Christian] Added dependency on rcs for cvsweb (closes: #137811).
- Yes, we need to have our own cvsweb, since it's a patched version.
- * [Roland] Bumped the sequences for bug and task ids so that they are
- greater than 100. If they are not, the 100th task/bug will have a
- wrong list or reverse dependencies (since 100 is the id of "None", and
- all tasks and bugs depend on this "None" by default. This patch
- should prevent that from happening if it hasn't already. It won't fix
- existing sites where the 100th bug/task already exists, though. If
- you are in such a situation, I'm afraid there's nothing I can do for
- you. Your best bet would be to declare that bug/task closed and
- recreate another, identical, one.
-
- -- Roland Mas <lolando@debian.org> Fri, 22 Mar 2002 13:59:36 +0100
-
-sourceforge (2.5-26) unstable; urgency=medium
-
- * [Christian] Made big changes in install-ldap.sh to be ok with
- slapd config.
- * [Roland] Removed unused dir /usr/lib/sourceforge/templates.
- * [Roland] Recalculated $version in db-upgrade.pl.
- * [Roland] Mentioned the .sourceforge-old backup files in the debconf
- question.
- * [Roland] Versioned Depends: on slapd (the admin dn seems to have
- changed).
- * [Roland] Fixed cleaning of LDAP-related files on purge.
- * [Roland] Also fixed cleaning of LDAP directory on remove.
- * [Roland] Updated debian/TODO a bit. It seems we mostly have "can wait
- until / will be done in / already done in the 2.6 series" entries now,
- which is cool.
- * [Roland] Removed an invalid (and useless) request from
- approve-pending.php. Should remove a few lines in PostgreSQL error
- logs.
- * [Roland] A few changes here and there to get Sourceforge working with
- the recently uploaded PostgreSQL 7.2, see items tagged [PG7.2] below.
- * [Roland] [PG7.2] Send HUP signal to postmaster in postinst and prerm
- scripts. This because PostgreSQL now only re-reads the pg_hba.conf
- file upon receiving this signal (and no more on each connection).
- * [Roland] [PG7.2] Fixed insertion of over-long hostnames in the
- database (db-upgrade.pl).
- * [Roland] Also in db-upgrade.pl: fixed the (probably truncated)
- existing unix_box entries.
- * [Roland] Various minor fixes here and there: Debconf templates,
- install-dap.sh, sourceforge-config.sgml, qrs.php.
- * [Christian] change gid determination in install-ftp.sh update
- * [Roland] Overall urgency set to medium, since 2.5-25 is broken with
- recent slapds and PostgreSQLs.
-
- -- Roland Mas <lolando@debian.org> Wed, 6 Mar 2002 19:35:01 +0100
-
-sourceforge (2.5-25) unstable; urgency=low
-
- * [Roland] Rewrote the setup_vars() function in install-ldap.sh for more
- robustness.
- * [Roland] Added manpage for sourceforge-config (fixes lintian error).
- * [Christian] Added ':' in /etc/nsswitch.conf
- * [Christian] Added do_config template
- * [Roland] Wrote the code behind the do_config debconf variable.
- * [Roland] Also, do not completely replace the existing configuration in
- /etc/nsswitch.conf. Only add 'ldap' in there. This, and the two
- previous entries, makes the package well-behaved (closes: #134058).
- * [Roland] Moved template files to /etc/sourceforge/templates
- (Policy for conffiles) (closes: #134724).
- * [Roland] Specified shell when su'ing to postgres. Will hopefully help
- in resolving #130230, but I'm not sure yet so I don't close it.
- * [Roland] Added Korean language class provided by Soon-Son Kwon
- <kss@kldp.org>, many thanks to him.
-
- -- Roland Mas <lolando@debian.org> Fri, 22 Feb 2002 17:43:19 +0100
-
-sourceforge (2.5-24) unstable; urgency=low
-
- * [Roland] Fixed a few errors (SQL syntax, queries on nonexistant
- tables) in project_metric.php.
- * [Roland] Marked the templates as conffiles (closes: #130239).
-
- -- Roland Mas <lolando@debian.org> Thu, 14 Feb 2002 17:17:26 +0100
-
-sourceforge (2.5-23) unstable; urgency=low
-
- * [Roland] Fixed the .../home/users/<user>.incoming bug (erroneous
- directories were created).
- * [Roland] Included documentation files per request (closes: #130219).
-
- -- Roland Mas <lolando@debian.org> Mon, 28 Jan 2002 10:52:06 +0100
-
-sourceforge (2.5-22) unstable; urgency=low
-
- * [Roland] Replaced a call to /etc/init.d/bind9 restart by a (more
- appropriate) reload. Used the policy-defined invoke-rc.d, too.
- * [Roland] Fixed dependencies to correctly handle apache-ssl and
- exim-tls (closes: #128345).
-
- -- Roland Mas <lolando@debian.org> Fri, 11 Jan 2002 11:05:03 +0100
-
-sourceforge (2.5-21) unstable; urgency=low
-
- * [Roland] Delete temporary LDIF files created by cronjob (closes:
- #127636, #127641).
-
- -- Roland Mas <lolando@debian.org> Fri, 4 Jan 2002 11:44:30 +0100
-
-sourceforge (2.5-20) unstable; urgency=low
-
- * [Roland] Fixed thinko in 2.5-19. I'll stop uploading things for
- today, sorry for the noise.
-
- -- Roland Mas <lolando@debian.org> Fri, 28 Dec 2001 16:28:42 +0100
-
-sourceforge (2.5-19) unstable; urgency=low
-
- * [Roland] user_home.php: Fixed email addresses on /users/<blah>.
- * [Roland] sendmessage.php: Fixed a few typos.
-
- -- Roland Mas <lolando@debian.org> Fri, 28 Dec 2001 14:44:49 +0100
-
-sourceforge (2.5-18) unstable; urgency=low
-
- * [Roland] Fixed speling error in Description: field (closes: #125372).
- * [Roland] Added dependencies on packages providing the vi editor
- (closes: #124326). I hope I got them all.
- * [Roland] deb-specific/install-exim.sh: Fixed LDAP queries to match the
- real attribute names from the new schema introduced in 2.5-15.
-
- -- Roland Mas <lolando@debian.org> Fri, 28 Dec 2001 10:12:30 +0100
-
-sourceforge (2.5-17) unstable; urgency=low
-
- * [Roland] Fixed a lintian error.
- * [Roland] Fixed a bug in postinst: just having a LoadModule line in
- httpd.conf doesn't mean the module is present (closes: #122413).
-
- -- Roland Mas <lolando@debian.org> Fri, 7 Dec 2001 11:54:57 +0100
-
-sourceforge (2.5-16) unstable; urgency=low
-
- * [Christian] Added proper chmod for cp -r of www
- * [Roland] Replaced last instances of x-cvsShell by the correct form
- (debSfCvsShell) in the LDAP stuff. Also fix sf_ldap_moify_if_exists.
- (closes: #121633).
- * [Justin] Fix displayed file sizes in the FRS.
-
- -- Roland Mas <lolando@debian.org> Fri, 30 Nov 2001 16:01:43 +0100
-
-sourceforge (2.5-15) unstable; urgency=medium
-
- * [Christian] LDAP cleanup: Added access to userPassword for SF_robot
- (Thanks to Justin Richer), made a clean LDAP purge, made
- install-ldap.sh more silent and backport from 2.6.
- * deb-specific/sourceforge.schema, utils/sql2ldif.pl: Changed schema to
- use assigned OIDs, a saner naming scheme and better attribute types.
- * install-ldap.sh: Replaced calls to "/etc/init.d/slapd restart" with
- "invoke-rc.d slapd restart" (policy).
- * install-ldap.sh: Clean the LDAP directory on package removal (closes:
- #118516).
- * Rewrote grap.c (cvssh) in Perl, to allow for a greater portability.
- Switched the architecture to arch: all accordingly.
- * Merged in patch from Justin Richer: fix the changing of a user's
- password by the admin.
- * Also from Justin's patch (slightly rewritten): admin now sees a list
- of pending projects on his homepage.
- * This was not in Justin's patch, but he inspired the idea: news admin
- sees a list of pending news bytes on his personal page too.
- * Still from Justin's patch (a bit rewritten): fixed "My Projects" links
- on personal pages so that they point to the right place in case the
- project is a foundry.
- * Added sf_ldap_modify_if_exists() to www/include/ldap.php. Works the
- same as sf_ldap_modify, but returns a non-error if the LDAP entry does
- not exist. Patched sf_ldap_user_set_attribute to use this new
- function, so that even users with no account (or no account yet) can
- change their passwords and personal info.
- * Fixed install-cvs.sh so that it no longer inserts too many lines in
- the inetd.conf file.
- * Rewrote the config file handling, so that it does not overwrite local
- changes (closes: #120442).
-
- -- Roland Mas <lolando@debian.org> Fri, 23 Nov 2001 14:46:29 +0100
-
-sourceforge (2.5-14) unstable; urgency=low
-
- * Made install-dns.sh a bit more silent.
- * Same for the db-upgrade.pl, which is now piped to an appropriate grep.
- * Added a Depends: on perl-suid (for fileforge.pl).
- * Made sure the incoming and download dirs are created and have correct
- permissions. Cleaned new_parse.pl a bit, accordingly.
- * Changed Priority: from optional to extra to avoid overrides.
- * Various fixes and cleanups.
-
- -- Roland Mas <lolando@debian.org> Wed, 7 Nov 2001 19:01:59 +0100
-
-sourceforge (2.5-13) unstable; urgency=low
-
- * Fixed config so that the database password is set to what the user
- types (and not randomly generated).
-
- -- Roland Mas <lolando@debian.org> Sun, 4 Nov 2001 18:52:29 +0100
-
-sourceforge (2.5-12) unstable; urgency=low
-
- * Fixed a PATH problem in install-ldap.sh.
- * Made the cronjobs silent.
-
- -- Roland Mas <lolando@debian.org> Thu, 1 Nov 2001 20:03:28 +0100
-
-sourceforge (2.5-11) unstable; urgency=low
-
- * Fixed /etc/aliases entry for sourceforge user. Really, this time.
- * Fixed Trove software map (closes: #108297).
- * Added sf-add-skill and sf-register-theme scripts.
- * Removed the need for chsh sourceforge in update-user-group-cvs.sh.
- * Fixed user list and group list.
- * [Christian] Added support for sites without DNS delegation.
- * Included patch from Olivier Garcia <olivier@linux-nerd.com>: support
- for multiple network cards.
- * Made sourceforge.config ash-compatible.
- * Fixed User.class (closes: #108682).
- * Added the alias for the Mailman images in sf-httpd.conf.template.
- * Fixed the most important entry in the zone file (ours).
- * Email forwarding should now work (through LDAP). I'm afraid this has
- required that we depend on exim specifically (instead of any other
- MTA). If you desperately need support for another MTA, please read
- (and understand) deb-specific/install-exim.sh and send me the
- appropriate install-<your-MTA-here>.sh for inclusion.
- * Fixed fill-in-the-blanks.pl to allow multiple replacements of the same
- token on the same line. That was needed by some magic that's not here
- anymore, but it's better nevertheless.
- * [Christian] Added SF_robot and Replicator entry in sql2ldif script.
- * [Christian] Made ldap_add_password template var work.
- * Mailing-lists should now work. The emails should also be sent to the
- list with the same LDAP trick we used for the email forwarding, and
- the web part of Mailman be correctly configured.
- * Fixed apache-ssl support (apache + libapache-mod-ssl was the only
- combination I had previously tested).
- * [Christian] Added ldap check in apache/php config.
- * [Christian] Ldap online support enabled. Requires intensive testing
- and probably security enhancements similar to database.
- * Fixed possible infinite loop in cronjobs/calculate_user_metric.php.
- * [Christian] backport of 2_6_1 docman for better language support
- * [Christian] Fixed install-ldap loss of robot password
- * [Christian] Started FTP setup
- * [Christian] Download server added
- * [Christian] File Release FRS support added (closes: #108173)
- * [Christian] Added CVS nightly tarballs
- * Fixed errors in LDAP configuration so that the online creation of
- groups and users works.
- * Fixed a thinko in debian/sourceforge/cron.d.
- * Added a periodical check for the presence of an incoming directory in
- the users' home dir.
- * Fixed versioned dependency on debconf (thanks to lintian).
- * Removed unnecessary CVS/ dirs from the package when it's built from a
- CVS checkout (as opposed to a CVS export).
- * Fix in include.pl to allow the use of an empty password. To be
- tested, but it might help closing #116009.
- * Delayed deletion of files until the very end of the uninstall process,
- in order to potentially help fixing one symptom described in #116009
- too.
- * deb-specific/install-exim.sh: (still related to, and not closing,
- #116009) no need to require /etc/sourceforge/local.pl when
- deconfiguring.
- * Updated debian/TODO a bit.
- * Added fileforge.pl, a setuid Perl script to move files around securely
- (without needing to grant www-data read/write permission on
- $user/incoming/ directories).
- * [Christian] Splited install-dns.sh in install-dns.sh and
- install-cvs.sh and related modification in prerm and postinst, purge
- is now done for cvs, but i don't use update-inetd that doesn't restore
- old config. probably cvs maintainer should be contacted to have a
- friendly sourceforge config, because cvs config break sourceforge cvs
- config
- * Migrated install-cvs.sh to update-inetd (using appropriate
- --comment-chars tricks).
- * Fixed top of page background (looked nice on Forged Metal theme, but
- not with any other theme).
- * Deduped releases in the Quick Release System.
- * Fixed searches: broken SQL syntax in the admin-only search, and
- removed case-sensitiveness in the other search.
- * www/include/theme.php: Fixed SQL (removed quotes from integer fields).
- * www/include/theme.php: Changed the default user theme to a saner one.
- * www/include/cache.php: Removed warning when the page is not cached.
- * debian/sourceforge.prerm: Fixed uninstall-time bugs (deluser could
- fail, and the FTP root directory could be non-empty).
- * debian/sourceforge.config: Eventually fixed the empty db_passwd bug
- (closes: #116009).
- * Removed the web-only installation. All the services work, and there
- is no need for a stripped-down version (which would be full of broken
- links and non-working features).
- * debian/control: Replaced Recommends: with Depends: now that the
- web-only installation is no more. Removed cvsweb, too, since we
- provide our own version.
- * deb-specific/database.inc.template, deb-specific/local.inc.template,
- deb-specific/sf-httpd.secrets.template: Took the LDAP password out of
- the reach of unallowed users (same trick we used for the database
- password).
- * deb-specific/install-ldap.sh: Rewrote the way the LDAP password was
- handled.
- * Added a debconf note concerning the way libpam-ldap has to be
- configured.
- * [Christian] deb-specific/install-ldap.sh: Fixed incorrect upgrade.
- * Plus a ton of other fixes and cleanups, but this changelog entry is
- already long enough.
- * Today, the 1st of November 2001, I'd like to dedicate this release to
- Édith and Virginie. So there.
-
- -- Roland Mas <lolando@debian.org> Thu, 1 Nov 2001 14:31:48 +0100
-
-sourceforge (2.5-10) unstable; urgency=low
-
- * I am starting to get rather confident in this package, to the point
- where I cannot think of major bugs preventing it to enter woody
- (closes: #99336). It will still have to wait for its dependencies to
- be fulfilled and for its other RC bugs to be fixed/closed, but I won't
- artificially keep it out from testing.
- * Fixed possible double insertion of the sourceforge alias in
- /etc/aliases.
- * Check the presence of, and when needed, add, "extension={pgsql,gd}"
- lines in /etc/php4/{apache,cgi}/php.ini files (closes: #107290).
- * Moved some code where it belongs (in the "if web_only = false"
- if-block) in sourceforge.config.
- * Added a Debconf note to remind the admin to create the SSL/TLS
- certificate.
- * A few cosmetic changes.
- * Added an "Installation notes" paragraph in README.Debian.
- * Removed an entry in the TODO file (now it's a bug on the BTS).
- * Fixed the diary stuff (viewing entries, monitoring other people's
- diary) (closes: #108166, #108169).
-
- -- Roland Mas <lolando@debian.org> Fri, 10 Aug 2001 09:04:44 +0200
-
-sourceforge (2.5-9) unstable; urgency=low
-
- * Added more checks into the postinst to deal with more possible errors.
- * Small fixes in postinst and postrm.
- * Changed the way we use the templates (fill-in-the-blanks.pl) and keep
- the postinst script -e (closes: #103902).
- * Continued work on db-upgrade.pl: added a function to parse SQL files.
- The first installation (database initialisation) is now done via this
- script too.
- * Redirected email to sourceforge@domain to the server admin address (as
- specified by the debconf question).
- * Continued the hunt for references to sourceforge.net, including
- removed links to some pages that were too deeply connected with
- sf.net.
-
- -- Roland Mas <lolando@debian.org> Wed, 18 Jul 2001 18:58:46 +0200
-
-sourceforge (2.5-8) unstable; urgency=low
-
- * Removed references to foundries from the site homepage.
- * Went through debian/TODO. Didn't do much, but the file is a bit
- cleaner and more up-to-date now. Transferred a bit of it onto
- Savannah.
- * Added French translation into the debconf template.
- * Ask confirmation for passwords in debconf.
- * Other minor tweaks in debconf.
- * Fixed cvsweb "Unable to find gzip binary in $PATH" bug.
- * Fixed the PostgreSQL reconfiguration in case the server changes IP
- addresses.
- * Added smooth DB upgrade script. Be afraid, be very afraid.
-
- -- Roland Mas <lolando@debian.org> Wed, 27 Jun 2001 19:58:09 +0200
-
-sourceforge (2.5-7) unstable; urgency=low
-
- * Started removing some VA / SF.net / OSDN advertisements.
- * Fixed postinst for web-only installs.
- * Fixed project_weekly_metric.php cron job (closes: #101004).
-
- -- Roland Mas <lolando@debian.org> Sat, 16 Jun 2001 19:09:49 +0200
-
-sourceforge (2.5-6) unstable; urgency=low
-
- * [Christian] New install-ldap.sh and fixed sourceforge.schema. Should
- help fix the LDAP problems.
- * Depends: libpam-ldap.
- * Fixed Depends: debconf (closes: #100415).
- * [Christian] Fixed a bug sending an email for un-approved projects.
-
- -- Roland Mas <lolando@debian.org> Fri, 15 Jun 2001 23:07:59 +0200
-
-sourceforge (2.5-5) unstable; urgency=low
-
- * Removed annoying "activate_group(...)" in /admin/approve_pending.php.
- * Fixed user_get_language().
-
- -- Roland Mas <lolando@debian.org> Tue, 22 May 2001 19:49:28 +0200
-
-sourceforge (2.5-4) unstable; urgency=low
-
- * Fixed /new/ script.
- * Made the LDAP password debconf parameter to be a password (instead of
- a string).
-
- -- Roland Mas <lolando@debian.org> Sat, 19 May 2001 20:39:38 +0200
-
-sourceforge (2.5-3) unstable; urgency=low
-
- * rules: remove cvssh.1 for the 'clean' target.
- * Fixed and improved the skill import.
- * [Christian] Added list option to install-ldap.sh.
- * [Christian] More things for ldap in local.inc.template.
- * Added debconf question for ldap password.
-
- -- Roland Mas <lolando@debian.org> Fri, 18 May 2001 22:37:57 +0200
-
-sourceforge (2.5-2) unstable; urgency=low
-
- * Fixed the sending of emails in the support request tracker.
- * Fixed the Change User Password page.
- * [Christian] Correct a bug in new_parse.pl for anonymous CVS
- * [Christian] Removed maybe 2 dangerous rm -rf from new_parse.pl, should
- find a better solution
- * [Christian] Added man for cvssh
- * [Christian] Remove warning from grap.c compilation (Dirty code)
- * [Christian] Started to reintroduce in local.inc.template things about
- ldap
- * [Christian] Modified dirs for ftp (things changing have to be in var
- not in usr, remember that a system should work with /usr /etc read
- only, that's why zone files for bind are in var)
- * Trimmed package dependencies a bit.
- * Improved the way postinst detects an error upon database and user
- creation.
- * Added sfdocs.sql, not (yet) used.
- * [Christian] Fixed incorrect list of shell in account.php (function
- account_shellselects) for useredit.php
- * [Christian] Made /bin/cvssh as default shell and take this in
- new_parse and sql2ldif , admin can now choose by web: Restricted shell
- /bin/cvssh or whatever shell available in /etc/shells.
-
- -- Roland Mas <lolando@debian.org> Fri, 18 May 2001 20:21:11 +0200
-
-sourceforge (2.5-1) unstable; urgency=low
-
- * First upload to Debian (closes: #78847).
-
- -- Roland Mas <lolando@debian.org> Mon, 14 May 2001 20:18:03 +0200
-
-sourceforge (2.5-0+17) unstable; urgency=low
-
- * Fixed a postinst bug.
- * Merged stuff from Christian again:
- + Moved db_get sourceforge/noreply_to_bitbucket because later db_get
- locks
- + Created install-ssh.sh and relativ modifs in prerm and postinst
- + Modified local.pl.template to have database access
- + Adding ldap config that allow user/passwd management without
- touching /etc files. LDAP is not directly used from php like it's done
- on current CVS snapshot.
- + By default now ssh don't chroot (Possible, thanks to ldap) and there
- is a symlink /cvsroot to let CVS with ssh run like before and there is
- an option chroot to install-ssh.sh to have chroot again. To have a on
- demand per user chroot, we maybe should create a special shell that to
- this. Because we run in one box cvs imply ssh, this make that a cvs
- writer has got a shell on your box. Chroot restrict access, it would
- also be possible to restrict access using cvssh (alias grap.c) without
- chroot
- + Modified update-user-group-cvs.sh to update ldap tables
- + Correct a mistake in /cvs/ page (Added :ext: at cvs command)
- + Added cvssh in /bin/
- + Changed sql2lif.pl to have cvssh as default shell in ldap tables
- * Stripped cvssh to make lintian happy.
-
- -- Roland Mas <lolando@debian.org> Mon, 14 May 2001 14:07:28 +0200
-
-sourceforge (2.5-0+16) unstable; urgency=low
-
- * Fixed some bugs in the maintainer scripts again.
- * Merged stuff from Christian Bayle:
- + Added sf-httpd.conf.template enhancement for virtual hosting
- + Added vhost_alias_module check in sourceforge.postinst
- + Work on sql2ldif.pl and install-ldap.sh
- * Fixed crontab so that it doesn't complain when the package is
- uninstalled.
- * Also in crontab: do not start the non-web-only scripts if the
- installation was web-only.
- * Depend on mail-transport-agent.
-
- -- Roland Mas <lolando@debian.org> Fri, 11 May 2001 20:23:13 +0200
-
-sourceforge (2.5-0+15) unstable; urgency=low
-
- * Still heading to stability.
- * Updated TODO list and README.Debian.
- * Optionnally send email to "noreply" to /dev/null.
- * Fiddled with the .orig.tar.gz to fix permissions on some files
- (notable some executable *.png and *.php). Lintian is now happier.
- * Added dependencies on the right LDAP packages.
- * Fixed the postgresql cron script problem.
- * Clean up more stuff when purging the package.
-
- -- Roland Mas <lolando@debian.org> Fri, 11 May 2001 14:00:23 +0200
-
-sourceforge (2.5-0+14) unstable; urgency=low
-
- * Got my hands back on the package, and started cleaning it a bit.
- * Removed the killall in postinst (it bit me while I was remotely
- installing the package).
- * Added a bit more verbosity in postinst.
- * Fixed a typo in the debconf template.
- * Ditto in install-dns.sh.
- * Restart ssh in prerm.
- * Removed duplicate invocation of debconf for the LDAP stuff in config.
- * Added Depends: on ssh, libnss-ldap and bind9.
- * Heading to a stable state, all unstable stuff is conditioned to a
- debconf question.
- * Removed bashisms in config.
-
- -- Roland Mas <lolando@debian.org> Thu, 10 May 2001 11:10:34 +0200
-
-sourceforge (2.5-0+13.3) unstable; urgency=low
-
- * Modified sourceforge.config to get a correct ldap DN
- * Changed ldaptest for install-ldap.sh in deb-specific
- * Added sql2ldif.sh and install-ldap.sh in debian/rules
- * Added stuffs for default ldap_dn in sourceforge.config but this should
- be better done
- * Added sourceforge.schema for ldap in etc/sourceforge (Added in rules)
- * Now nstall-ldap.sh is a working loader of the ldap database
- * Probably libnss-ldap will require modif of /etc/nsswitch.conf
- * Added apache_conf.pl example found on sourceforge offsite talk
- * This should help for apache aliasing of sites except if there is a
- solution without restarting apache
-
- -- Christian Bayle <bayle@aist.enst.fr> Wed, 9 May 2001 01:43:06 +0200
-
-sourceforge (2.5-0+13.2) unstable; urgency=low
-
- * Changed install-chroot.sh for improved one with option
- * Modified utils/underworld-dummy/ssh_dump.pl installed
- * Modified utils/underworld-dummy/dns_conf.pl installed
- * Modified utils/underworld-dummy/dump_database.pl installed
- * Changed gid_add from 1000 to 10000 and dummy_uid from 103 to 9999
- * Modified utils/new_parse.pl installed
- * Modified utils/ssh_create.pl installed
- * Added update_user_group_cvs.sh and use in postinst and cron.d
- * Changed sourceforge/db_password from low to medium in sourceforge.config
- * Changed postinst: database passwd must be introduced after database init
- * Uncommented DNS
- * In sourceforge.config changed ip_adress default for $(hostname -i)
- * Added install-dns.sh script in debian/rules with option
- * and use added in prerm and posinst
- * Added modified perl script ans icons in deb-specific/cvsweb
- * Added install for cvsweb in debian/rules
- * Added usr/lib/sourceforge/<cvs,cvs/icons,cgi-bin> in debian/sourceforge.dirs
- * Modified www/cvs/index.php to have a good ref with cvs
- * Modified sf-httpd.template to make good ref to cvs cgi-bin
- * Added required cron for DNS/CVS/GROUP/USER in debian/sourceforge.cron.d
- * Everything from my 2.5-0+12p9 is reintegrated
- * Added ldaptest exemple in deb-specific and could test this with
- * std debian slapd install. This should help for ldap setup
-
- -- Christian Bayle <bayle@aist.enst.fr> Mon, 7 May 2001 00:32:08 +0200
-
-sourceforge (2.5-0+13.1) unstable; urgency=low
-
- * Starting to merge in a huge lot of things that were previously in the
- TODO list, done by Christian Bayle <bayle@aist.enst.fr>.
-
- -- Roland Mas <lolando@debian.org> Wed, 2 May 2001 23:08:30 +0200
-
-sourceforge (2.5-0+13) unstable; urgency=low
-
- * Should fix the error on news forum creation (thanks to Y. J. Chun
- <monac@pmail.net>).
- * Added a $sys_images_url (Y. J. Chun again).
- * Started work on the LDAP stuff. The script seems to work, now I don't
- know what to do with it yet.
- * Run the postinst psql scripts as sourceforge to satisfy PostgreSQL's
- paranoia.
- * Sort-of-fixed a problem occurring when trying to see the source for
- generated pages (/projects/test/, for instance).
- * Fixed the sending of emails to strange addresses on task creation.
-
- -- Roland Mas <lolando@debian.org> Wed, 2 May 2001 19:29:23 +0200
-
-sourceforge (2.5-0+12) unstable; urgency=low
-
- * Fixed some incorrect SQL (DROP TABLE IF EXISTS), removed the adequate
- hack in some cronjobs.
- * Added project metrics cronjobs.
-
- -- Roland Mas <lolando@debian.org> Fri, 20 Apr 2001 18:50:43 +0200
-
-sourceforge (2.5-0+11) unstable; urgency=low
-
- * Ran lintian. Fixed errors and warnings (many).
-
- -- Roland Mas <lolando@debian.org> Thu, 19 Apr 2001 20:05:55 +0200
-
-sourceforge (2.5-0+10) unstable; urgency=low
-
- * Fixed HTML and link in the "Showing the Sourceforge logo" blurb (in
- project/admin/).
- * Fixed the daily activity log rotation.
-
- -- Roland Mas <lolando@debian.org> Wed, 18 Apr 2001 23:11:29 +0200
-
-sourceforge (2.5-0+9) unstable; urgency=low
-
- * Hopefully fixed cron job calculating the Trove software map sums.
- * Made the cron jobs silent.
-
- -- Roland Mas <lolando@debian.org> Mon, 16 Apr 2001 22:39:09 +0200
-
-sourceforge (2.5-0+8) unstable; urgency=low
-
- * Small patch: default timezone is read from /etc/timezone. Yeah, very
- small patch indeed :-)
-
- -- Roland Mas <lolando@debian.org> Mon, 9 Apr 2001 19:59:04 +0200
-
-sourceforge (2.5-0+7) unstable; urgency=low
-
- * Changed the database host to localhost in psql calls from the
- maintainer scripts. It still doesn't work with out-of-the-box
- PostgreSQL installation (which is a little paranoid), but it should
- lower the requirements for manual intervention.
- * Un-commented the Apache restart in maintainer scripts. It's really
- needed, especially for the prerm.
- * Cease to drop the databases on remove (only do this un purge).
-
- -- Roland Mas <lolando@debian.org> Sun, 8 Apr 2001 20:27:27 +0200
-
-sourceforge (2.5-0+6) unstable; urgency=low
-
- * Added debconf question to insert an initial list of skills into the
- database.
-
- -- Roland Mas <lolando@debian.org> Fri, 6 Apr 2001 00:03:50 +0200
-
-sourceforge (2.5-0+5) unstable; urgency=low
-
- * Big ooops. The postinst used to chown plenty of files to the
- not-yet-existant user sourceforge. Thanks to Luca for noticing.
-
- -- Roland Mas <lolando@debian.org> Wed, 4 Apr 2001 18:09:19 +0200
-
-sourceforge (2.5-0+4) unstable; urgency=low
-
- * Continued work on cron jobs: disabled the vacuuming part (not needed),
- fixed some SQL in the user rating script.
-
- -- Roland Mas <lolando@debian.org> Thu, 22 Feb 2001 23:03:36 +0100
-
-sourceforge (2.5-0+3) unstable; urgency=low
-
- * Started work on the cron jobs. Same again, don't expect it to Just
- Work, because it won't. Why on Earth they should write cron jobs in
- PHP I will probably never understand.
- * CHanged Depends: perl5 to Depends: perl.
-
- -- Roland Mas <lolando@debian.org> Wed, 21 Feb 2001 22:59:41 +0100
-
-sourceforge (2.5-0+2) unstable; urgency=low
-
- * Bugfix in the installation procedure: the sequences are now
- initialised after the default data have been inserted.
- * Bugfix in the diary page.
-
- -- Roland Mas <lolando@debian.org> Mon, 19 Feb 2001 23:06:19 +0100
-
-sourceforge (2.5-0+1) unstable; urgency=low
-
- * New upstream release.
- * New maintainer address.
- * This package should (barely) install. Don't expect it to work. It's
- not public anyway, so how did you get it?
-
- -- Roland Mas <lolando@debian.org> Mon, 12 Feb 2001 00:01:50 +0100
-
-sourceforge (2.0-0phase1v19) unstable; urgency=low
-
- * Removed a lintian warning.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Fri, 12 Jan 2001 20:15:45 +0100
-
-sourceforge (2.0-0phase1v18) unstable; urgency=low
-
- * Fixed the bugs caused by file permission in v17. Separated secrets
- into different files.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Wed, 10 Jan 2001 21:01:45 +0100
-
-sourceforge (2.0-0phase1v17) unstable; urgency=low
-
- * Changed security for the database password: it is now only stored in
- the sf-httpd.conf file, and this file is now chmod 600.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Mon, 8 Jan 2001 22:10:03 +0100
-
-sourceforge (2.0-0phase1v16) unstable; urgency=low
-
- * Changed the sourceforge user's homedir.
- * Added entries into the TODO list.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Sat, 6 Jan 2001 22:56:02 +0100
-
-sourceforge (2.0-0phase1v15) unstable; urgency=low
-
- * Added TODO.Debian file (might be temporary).
- * Fixed the order of db_* config file to set the defaults.
- * Changed the sf-httpd.conf file to avoid "Address already in use" bug.
- * debconf'ed the newsadmin group id.
- * Added a system user to run the crontab scripts.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Sat, 6 Jan 2001 19:58:17 +0100
-
-sourceforge (2.0-0phase1v14) unstable; urgency=low
-
- * Fixed some data in the database init phase: no-reply email address,
- features of the siteadmin and newsadmin groups, some fields
- de-NULLified.
- * Added Depends: php4-gd (for the statistics graphs).
- * Added entries in conffiles for the templates.
- * Added some more backend (stats) scripts to the crontab.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Wed, 3 Jan 2001 22:54:37 +0100
-
-sourceforge (2.0-0phase1v13) unstable; urgency=low
-
- * Re-enabled the conffiles-ness of the crontab, with appropriate testing
- ([ -x ... ] && ...).
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Fri, 29 Dec 2000 16:32:40 +0100
-
-sourceforge (2.0-0phase1v12) unstable; urgency=low
-
- * Removed the need for exclusivity on DocumentRoot by using a
- VirtualHost.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Thu, 28 Dec 2000 14:19:44 +0100
-
-sourceforge (2.0-0phase1v11) unstable; urgency=low
-
- * Re-enabled the full user list and full project list links in the site
- admin page.
- * Replaced all references to "Alexandria" by the chosen system name.
- * Removed crontab from conffiles, lest we try to call a script that
- doesn't exist when the package is removed but not purged.
- * Added plenty of backend scripts into the crontab.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Wed, 27 Dec 2000 21:31:14 +0100
-
-sourceforge (2.0-0phase1v10) unstable; urgency=low
-
- * Fixed the graphs (survey results, bugs aging reports). Crude hack for
- now, hopefully a cleaner fix will occur soon.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Sat, 23 Dec 2000 18:36:25 +0100
-
-sourceforge (2.0-0phase1v9) unstable; urgency=low
-
- * Removed dependency on localhost.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Fri, 22 Dec 2000 13:25:27 +0100
-
-sourceforge (2.0-0phase1v8) unstable; urgency=low
-
- * Added site-admin and site-news-admin menu.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Thu, 21 Dec 2000 21:00:59 +0100
-
-sourceforge (2.0-0phase1v7) unstable; urgency=low
-
- * Fixed include path in db_trove_treesums.pl (again).
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Thu, 21 Dec 2000 15:03:51 +0100
-
-sourceforge (2.0-0phase1v6) unstable; urgency=low
-
- * Fixed clear.gif image references and included the image.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Thu, 21 Dec 2000 12:41:01 +0100
-
-sourceforge (2.0-0phase1v5) unstable; urgency=low
-
- * Suppressed dependency on dnsutils (by using getent instead of host).
- * Fixed include path in db_trove_treesums.pl.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Thu, 21 Dec 2000 10:26:59 +0100
-
-sourceforge (2.0-0phase1v4) unstable; urgency=low
-
- * Fixed the docman bug (another one).
- * Fixed the survey bug.
- * Installed crontab for the software map.
- * Tested patches, code snippet library, news, support, user skills,
- software map.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Wed, 20 Dec 2000 23:01:10 +0100
-
-sourceforge (2.0-0phase1v3) unstable; urgency=low
-
- * Fixed Makefile for building.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Tue, 12 Dec 2000 17:46:36 +0100
-
-sourceforge (2.0-0phase1v2) unstable; urgency=low
-
- * Deleted many .ex files in debian/.
- * Fixed the docman bug.
- * Fixed the news bug.
- * Removed mode -x in postinst script, and generally cleaned postinst and
- postrm a bit.
- * Added debconf questions cvs_host and lists_host.
- * Moved the cache directory into a FHS-compliant location.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Tue, 12 Dec 2000 14:12:17 +0100
-
-sourceforge (2.0-0phase1v1) unstable; urgency=low
-
- * Initial Release. Expect many bugs.
-
- -- Roland Mas <99.roland.mas@aist.enst.fr> Sun, 10 Dec 2000 16:15:20 +0100
-
-Local Variables:
-coding: utf-8
-End:
+++ /dev/null
-Source: fusionforge
-Section: devel
-Priority: optional
-Maintainer: Roland Mas <lolando@debian.org>
-Uploaders: Christian Bayle <bayle@debian.org>, Olivier Berger <obergix@debian.org>, Thorsten Glaser <tg@mirbsd.de>
-Build-Depends-Indep: sharutils, docbook-to-man, devscripts, gettext, isoquery, iso-codes
-Build-Depends: debhelper (>= 7), quilt (>= 0.40), perl, confget
-Standards-Version: 3.9.2
-Homepage: http://fusionforge.org/
-Vcs-Svn: svn://scm.fusionforge.org/scmrepos/svn/fusionforge/trunk
-XBS-Apport: No
-
-Package: fusionforge-standard
-Architecture: all
-Conflicts: sourceforge, gforge-cvs, gforge-common (<< ${source:Version})
-Replaces: gforge
-Provides: gforge
-Depends: debconf (>= 1.0.32) | debconf-2.0, ucf, gforge-common (=${source:Version}), gforge-web-apache2 | gforge-web, gforge-db-postgresql | gforge-db, gforge-mta-exim4 | gforge-mta, gforge-shell-postgresql | gforge-shell, gforge-lists-mailman | gforge-lists, ${misc:Depends}
-Recommends: fusionforge-plugin-scmsvn | fusionforge-plugin-scm
-Description: FusionForge collaborative development tool - standard metapackage
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This metapackage installs a standard FusionForge site.
-
-Package: fusionforge-minimal
-Architecture: all
-Conflicts: sourceforge, gforge-cvs, gforge-common (<< ${source:Version}), gforge
-Replaces: gforge
-Provides: gforge
-Depends: debconf (>= 1.0.32) | debconf-2.0, ucf, gforge-common (>=${source:Version}), gforge-web-apache2 | gforge-web, gforge-db-postgresql | gforge-db, ${misc:Depends}
-Description: FusionForge collaborative development tool - minimal metapackage
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This metapackage installs a minimal FusionForge site.
-
-Package: fusionforge-full
-Architecture: all
-Conflicts: sourceforge, gforge-cvs, gforge-common (<< ${source:Version}), gforge
-Replaces: gforge
-Provides: gforge
-Depends: debconf (>= 1.0.32) | debconf-2.0, ucf, gforge-common (=${source:Version}), gforge-web-apache2 | gforge-web, gforge-web-apache2-vhosts, gforge-db-postgresql | gforge-db, gforge-mta-exim4 | gforge-mta, gforge-shell-postgresql | gforge-shell, gforge-lists-mailman | gforge-lists, fusionforge-plugin-contribtracker, fusionforge-plugin-extratabs, fusionforge-plugin-globalsearch, fusionforge-plugin-mediawiki, fusionforge-plugin-moinmoin, fusionforge-plugin-projectlabels, fusionforge-plugin-scmarch, fusionforge-plugin-scmbzr, fusionforge-plugin-scmcvs, fusionforge-plugin-scmdarcs, fusionforge-plugin-scmgit, fusionforge-plugin-scmhg, fusionforge-plugin-scmsvn, fusionforge-plugin-blocks, fusionforge-plugin-hudson, fusionforge-plugin-oslc, ${misc:Depends}
-Description: FusionForge collaborative development tool - full metapackage
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This metapackage installs a full FusionForge site with all plugins.
-
-Package: gforge
-Architecture: all
-Depends: fusionforge-standard, ${misc:Depends}
-Description: Dummy upgrade package for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This is a transitional package and can safely be removed; see the
- fusionforge-standard package instead.
-
-Package: gforge-common
-Architecture: all
-Depends: debconf (>= 1.0.32) | debconf-2.0, ucf, cpio, lockfile-progs, adduser, php5-cli, php-htmlpurifier (>= 4.0), libphp-simplepie, python, ${misc:Depends}
-Conflicts: sourceforge, gforge-plugin-scmcvs (<< 4.1), gforge-plugin-scmsvn (<< 4.1), gforge-plugin-scmccase (<< 4.1), gforge-theme-starterpack (<< 4.0)
-Description: collaborative development tool - shared files
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package contains files and programs used by several other
- subpackages.
-
-Package: gforge-web-apache2
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, libapache2-mod-php5, php5-cgi, php5-pgsql, php5-gd, perl, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, cronolog, python, ssl-cert, libnusoap-php, libphp-simplepie, php-http, libjs-yui, libjs-scriptaculous, libjs-jquery, libjs-jquery-tipsy, libjs-jquery-ui, libjs-jquery-ui-theme-overcast, libphp-jpgraph, ${misc:Depends}
-Recommends: locales | locales-all
-Provides: gforge-web
-Conflicts: gforge-web
-Description: collaborative development tool - web part (using Apache)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package contains the files needed to run the web part of
- FusionForge on an Apache webserver.
-
-Package: gforge-web-apache2-vhosts
-Architecture: all
-Depends: gforge-web-apache2, ${misc:Depends}
-Description: collaborative development tool - web vhosts (using Apache)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package contains the files needed to run project vhosts
- FusionForge on an Apache webserver.
-
-Package: gforge-web-apache
-Architecture: all
-Depends: gforge-web-apache2, ${misc:Depends}
-Description: transitional package to gforge-web-apache2
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This dummy package exists only as a means to make transitions
- to apache2 easier. You can safely uninstall it.
-
-Package: gforge-db-postgresql
-Architecture: all
-Depends: gforge-common, postgresql (>= 8.4), perl, libdbi-perl, libdbd-pg-perl, libmime-base64-perl, libhtml-parser-perl, libtext-autoformat-perl, libmail-sendmail-perl, libsort-versions-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, php5-pgsql, ${misc:Depends}
-Provides: gforge-db
-Conflicts: gforge-db
-Description: collaborative development tool - database (using PostgreSQL)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package installs, configures and maintains the FusionForge
- database.
-
-Package: gforge-mta-exim4
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, exim4-daemon-heavy, ${misc:Depends}
-Provides: gforge-mta
-Conflicts: gforge-mta
-Description: collaborative development tool - mail tools (using Exim 4)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package configures the Exim 4 mail transfer agent to run
- FusionForge.
-
-Package: gforge-mta-postfix
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, postfix, postfix-pgsql, ${misc:Depends}
-Provides: gforge-mta
-Conflicts: gforge-mta
-Description: collaborative development tool - mail tools (using Postfix)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package configures the Postfix mail transfer agent to run
- FusionForge.
-
-Package: gforge-mta-courier
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, courier-mta, ${misc:Depends}
-Provides: gforge-mta
-Conflicts: gforge-mta
-Description: collaborative development tool - mail tools (using Courier)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package configures the Courier mail transfer agent to run
- FusionForge.
-
-Package: gforge-shell-postgresql
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, openssh-server, libnss-pgsql2, ${misc:Depends}
-Provides: gforge-shell
-Conflicts: gforge-shell
-Recommends: nscd
-Description: collaborative development tool - shell accounts (using PostgreSQL)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package provides shell accounts authenticated via the PostGreSQL
- database to FusionForge users.
-
-Package: gforge-ftp-proftpd
-Architecture: all
-Depends: gforge-common, gforge-shell-postgresql | gforge-shell, proftpd, perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, php5-cli, ${misc:Depends}
-Provides: gforge-ftp
-Conflicts: gforge-ftp
-Description: collaborative development tool - FTP management (using ProFTPd)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package configures the ProFTPd FTP server for FusionForge.
-
-Package: gforge-dns-bind9
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, perl, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, bind9 , ${misc:Depends}
-Provides: gforge-dns
-Conflicts: gforge-dns
-Description: collaborative development tool - DNS management (using Bind9)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package configures and maintains the DNS zones for FusionForge.
-
-Package: gforge-lists-mailman
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-mta-exim4 | gforge-mta, apache2 (>= 2.0.52), perl, libdbi-perl, libdbd-pg-perl, debianutils (>= 1.7), debconf (>= 1.0.32) | debconf-2.0, ucf, mailman (>= 2.1-3), ${misc:Depends}
-Provides: gforge-lists
-Conflicts: gforge-lists
-Description: collaborative development tool - mailing-lists (using Mailman)
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This package controls the interaction between FusionForge and Mailman.
-
-Package: gforge-plugin-extratabs
-Architecture: all
-Depends: fusionforge-plugin-extratabs, ${misc:Depends}
-Description: Extratabs plugin for FusionForge (transitional package)
- This package is only present for transitional purposes and can be
- safely removed.
-
-Package: gforge-plugin-globalsearch
-Architecture: all
-Depends: fusionforge-plugin-globalsearch, ${misc:Depends}
-Description: Globalsearch plugin for FusionForge (transitional package)
- This package is only present for transitional purposes and can be
- safely removed.
-
-Package: gforge-plugin-mediawiki
-Architecture: all
-Depends: fusionforge-plugin-mediawiki, ${misc:Depends}
-Description: Mediawiki plugin for FusionForge (transitional package)
- This package is only present for transitional purposes and can be
- safely removed.
-
-Package: gforge-plugin-projectlabels
-Architecture: all
-Depends: fusionforge-plugin-projectlabels, ${misc:Depends}
-Description: Projectlabels plugin for FusionForge (transitional package)
- This package is only present for transitional purposes and can be
- safely removed.
-
-Package: gforge-plugin-scmgit
-Architecture: all
-Depends: fusionforge-plugin-scmgit, ${misc:Depends}
-Description: Git plugin for FusionForge (transitional package)
- This package is only present for transitional purposes and can be
- safely removed.
-
-Package: fusionforge-plugin-authcas
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, ${misc:Depends}
-Description: collaborative development tool - CAS authentication plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains a CAS authentication mechanism for
- FusionForge. It allows users to authenticate against an external CAS
- server.
-
-Package: fusionforge-plugin-authhttpd
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, ${misc:Depends}
-Description: collaborative development tool - HTTPD authentication plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains an HTTPD authentication mechanism for
- FusionForge. It allows Apache authentication to be reused for
- FusionForge, for instance where Kerberos is used.
-
-Package: fusionforge-plugin-authldap
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, php5-ldap, ${misc:Depends}
-Description: collaborative development tool - LDAP authentication plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains an LDAP authentication mechanism for
- FusionForge. It allows users to authenticate against an external LDAP
- directory, and syncs some of their personal information from LDAP
- into the FusionForge database.
-
-Package: fusionforge-plugin-blocks
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, php5-cli, ${misc:Depends}
-Description: collaborative development tool - Blocks plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Blocks subsystem of FusionForge. It allows each
- FusionForge project to have its own Blocks, and gives some
- control over it to the project's administrator.
-
-Package: fusionforge-plugin-compactpreview
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, ${misc:Depends}
-Description: collaborative development tool - Compact Preview plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin adds support for user and project compact-preview
- (popups) compatible with the OSLC specifications.
-
-Package: fusionforge-plugin-contribtracker
-Architecture: all
-Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, ${misc:Depends}
-Conflicts: gforge-plugin-contribtracker (<< 5.0.51-2)
-Replaces: gforge-plugin-contribtracker (<< 5.0.51-2)
-Description: Contribution tracker plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin allows each project to display a list of significant
- contributions, along with their authors.
-
-Package: fusionforge-plugin-doaprdf
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, php-http, ${misc:Depends}
-Description: collaborative development tool - DOAP RDF plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin provides DOAP RDF documents for projects on /projects URLs
- with content-negociation (application/rdf+xml).
-
-Package: fusionforge-plugin-extratabs
-Architecture: all
-Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, ${misc:Depends}
-Provides: gforge-plugin-extratabs
-Conflicts: gforge-plugin-extratabs (<< 5.0.51-2)
-Replaces: gforge-plugin-extratabs (<< 5.0.51-2)
-Description: Extratabs plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin allows each project to define extra tabs with arbitrary
- titles and links.
-
-Package: fusionforge-plugin-extsubproj
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, libarc-php, fusionforge-plugin-compactpreview ${misc:Depends}
-Description: collaborative development tool - extsubproj plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the extsubproj subsystem of FusionForge. It allows each
- FusionForge project to have its own extsubproj, and gives some
- control over it to the project's administrator.
-
-Package: fusionforge-plugin-foafprofiles
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, ${misc:Depends}
-Description: collaborative development tool - FOAF Profiles plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin provides FOAF profiles for users on /users URLs
- with content-negociation (application/rdf+xml).
-
-Package: fusionforge-plugin-globalsearch
-Architecture: all
-Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, libxml-rss-perl, libgetopt-mixed-perl, libdbi-perl, libwww-perl, libcrypt-ssleay-perl, libunicode-string-perl, ${misc:Depends}
-Provides: gforge-plugin-globalsearch
-Conflicts: gforge-plugin-globalsearch (<< 5.0.51-2)
-Replaces: gforge-plugin-globalsearch (<< 5.0.51-2)
-Description: Globalsearch plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains a cross-FusionForge search engine. You can
- declare a list of other FusionForge sites, and search for projects
- hosted on these forges from your own.
-
-Package: fusionforge-plugin-gravatar
-Architecture: all
-Depends: gforge-common, , gforge-db-postgresql | gforge-db, php5-cli, ${misc:Depends}
-Description: collaborative development tool - Gravatar plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the gravatar plugin of FusionForge. It allows each
- FusionForge user to have its gravatar icon displayed.
-
-Package: fusionforge-plugin-hudson
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, php5-cli, ${misc:Depends}, libjs-scriptaculous
-Description: collaborative development tool - Hudson plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Hudson subsystem of FusionForge. It allows each
- FusionForge project to have its own Hudson, and gives some
- control over it to the project's administrator.
-
-Package: fusionforge-plugin-mediawiki
-Architecture: all
-Depends: gforge-common (>= 4.8), gforge-db-postgresql (>= 4.8) | gforge-db, gforge-web-apache2 (>= 4.8) | gforge-web, postgresql-contrib, mediawiki (>= 1:1.19.1-2~exp2), php5-cli, php5-gd, ${misc:Depends}
-Provides: gforge-plugin-mediawiki
-Conflicts: gforge-plugin-mediawiki (<< 5.0.51-2)
-Replaces: gforge-plugin-mediawiki (<< 5.0.51-2)
-Description: Mediawiki plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin allows each project to embed Mediawiki under a tab.
-
-Package: fusionforge-plugin-moinmoin
-Architecture: all
-Depends: gforge-common (>= 4.8), gforge-db-postgresql (>= 4.8) | gforge-db, gforge-web-apache2 (>= 4.8) | gforge-web, python-moinmoin, python-psycopg2, libapache2-mod-wsgi, php5-cli, ${misc:Depends}
-Description: MoinMoinWiki plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin allows each project to embed MoinMoinWiki under a tab.
-
-Package: fusionforge-plugin-oslc
-Homepage: http://picoforge.int-evry.fr/cgi-bin/twiki/view/Oslc/Web/FusionForgeOslcServer
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, zendframework (>> 1.10), php5-cli, php-pear, php-http (>= 1.4.1), ${misc:Depends}
-Recommends: fusionforge-plugin-compactpreview
-Description: OSLC-CM compatible plugin for FusionForge tracker system.
- OSLC-CM is a standard specification for APIs in Change Management
- applications. It is based on Web technologies such as REST, RDF, or AJAX.
- This package provides an OSLC-CM V2 compatible plugin for FusionForge
- tracker system.
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- OSLC-CM compatible plugin for FusionForge tracker system.
-
-Package: fusionforge-plugin-projectimport
-Homepage: https://fusionforge.org/plugins/mediawiki/wiki/fusionforge/index.php/Project_Import_plugin
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, libarc-php, ${misc:Depends}
-Description: Project Import plugin for FusionForge
- This plugin allows the import of a project data previously exported
- with ForgePlucker, or a compatible tool.
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- Project Import plugin for FusionForge
-
-Package: fusionforge-plugin-projectlabels
-Architecture: all
-Depends: gforge-common (>= 4.6.99), gforge-db-postgresql (>= 4.6.99) | gforge-db, gforge-web-apache2 (>= 4.6.99) | gforge-web, ${misc:Depends}
-Conflicts: gforge-plugin-projectlabels (<< 5.0.51-2)
-Replaces: gforge-plugin-projectlabels (<< 5.0.51-2)
-Provides: gforge-plugin-projectlabels
-Description: Projectlabels plugin for FusionForge
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This can be used to highlight some projects on a forge, for instance
- for a "project of the month".
-
-Package: fusionforge-plugin-scmarch
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, php5-cli, tla, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmarch
-Conflicts: gforge-plugin-scmarch
-Replaces: gforge-plugin-scmarch
-Description: collaborative development tool - GNU Arch plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the GNU Arch subsystem of FusionForge. It allows
- each FusionForge project to have its own Arch repository, and gives
- some control over it to the project's administrator.
-
-Package: fusionforge-plugin-scmbzr
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, bzr, php5-cli, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmbzr
-Conflicts: gforge-plugin-scmbzr
-Replaces: gforge-plugin-scmbzr
-Description: collaborative development tool - Bazaar plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Bazaar subsystem of FusionForge. It allows each
- FusionForge project to have its own Bazaar repository, and gives some control
- over it to the project's administrator.
-
-Package: fusionforge-plugin-scmcvs
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, libipc-run-perl, rcs, liburi-perl, cvs, php5-cli, python, libphp-snoopy, openbsd-inetd | inet-superserver, update-inetd, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmcvs
-Conflicts: gforge-plugin-scmcvs
-Replaces: gforge-plugin-scmcvs
-Description: collaborative development tool - CVS plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the CVS subsystem of FusionForge. It allows each
- FusionForge project to have its own CVS repository, and gives some control
- over it to the project's administrator.
-
-Package: fusionforge-plugin-scmdarcs
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, darcs, darcsweb, php5-cli, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmdarcs
-Conflicts: gforge-plugin-scmdarcs
-Replaces: gforge-plugin-scmdarcs
-Description: collaborative development tool - Darcs plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Darcs subsystem of FusionForge. It allows each
- FusionForge project to have its own Darcs repository, and gives some control
- over it to the project's administrator.
-
-Package: fusionforge-plugin-scmgit
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, git (>= 1:1.7) | git-core, gitweb (>= 1:1.7.4.1), php5-cli, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmgit
-Conflicts: gforge-plugin-scmgit (<< 5.0.51-2)
-Replaces: gforge-plugin-scmgit (<< 5.0.51-2)
-Description: collaborative development tool - Git plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Git subsystem of FusionForge. It allows each
- FusionForge project to have its own Git repository, and gives some
- control over it to the project's administrator.
-
-Package: fusionforge-plugin-scmhg
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, mercurial, php5-cli, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmhg
-Conflicts: gforge-plugin-scmhg
-Replaces: gforge-plugin-scmhg
-Description: collaborative development tool - Mercurial (Hg) plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Mercurial (Hg) subsystem of FusionForge. It
- allows each FusionForge project to have its own Mercurial repository,
- and gives some control over it to the project's administrator.
-
-Package: fusionforge-plugin-scmsvn
-Architecture: all
-Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, libapache2-svn, gforge-shell-postgresql | gforge-shell, subversion, subversion-tools, python-subversion, python (>= 2.3), php5-cli, openbsd-inetd | inet-superserver, update-inetd, ${misc:Depends}
-Provides: fusionforge-plugin-scm, gforge-plugin-scmsvn
-Conflicts: gforge-plugin-scmsvn
-Replaces: gforge-plugin-scmsvn
-Description: collaborative development tool - Subversion plugin
- FusionForge provides many tools to aid collaboration in a
- development project, such as bug-tracking, task management,
- mailing-lists, SCM repository, forums, support request helper,
- web/FTP hosting, release management, etc. All these services are
- integrated into one web site and managed through a web interface.
- .
- This plugin contains the Subversion subsystem of FusionForge. It allows
- each FusionForge project to have its own Subversion repository, and gives
- some control over it to the project's administrator.
-
+++ /dev/null
-The "sourceforge" package was first debianised on Wed, 22 Nov 2000
-22:06:35 +0100 by Roland Mas <lolando@debian.org>. Work has been
-constant since then, and the package evolved a great deal. It began
-to work, for a start, and then it evolved into GForge, what with the
-more recent versions of the Sourceforge software having been made
-proprietary. And then in early 2009 it evolved into FusionForge, what
-with the more recent versions of GForge having been rewritten as
-proprietary software without a name change.
-
-FusionForge is Copyright © 2009-2011 by several people, including:
-Patrick Apel <p.apel@tarent.de>
-Christian Bayle <bayle@debian.org>
-Julien Heyman <julien.heyman@atosorigin.com>
-Mélanie Le Bail
-Olivier Berger
-Gonéri Le Bouder <goneri.lebouder@atosorigin.com>
-Grégory Cuellar
-Thorsten Glaser <t.glaser@tarent.de>
-Julien Heyman
-Ognyan Kulev
-Pierre Lacoste
-Olaf Lenz
-Roland Mas <lolando@debian.org>
-Olivier Meunier <olivier.meunier@centraliens.net>
-Alexandre Neymann <alexandre.neymann@dgfip.finances.gouv.fr>
-Mathieu Peltier
-Alain Peyrat <aljeux@free.fr>
-Philip Schwartz
-Franck Villaume
-
-GForge itself is Copyright © 2000-2008 by a fair number of people,
-including:
-Tim Perdue <tim@gforge.org>
-Roland Mas <99.roland.mas@aist.enst.fr>
-Christian Bayle <gforge@free.fr>
-Tom Copeland <tom@infoether.com>
-Guillaume Smet <guillaume-gforge@smet.org>
-Francisco Gimeno <kikov@kikov.org>
-Sung Kim <hunkims@gmail.com>
-Alain Peyrat <aljeux@free.fr>
-
-Past Members of the development team include:
-Reinhard Spisser
-Ryan T. Sammartino
-Edward Ritter
-Michael Jennings
-
-Since FusionForge, and GForge before it, was initially a fork of
-Sourceforge, here's the copyright info for the Sourceforge software:
-,----
-| The original sources were downloaded from http://www.sourceforge.net/
-|
-| Authors: The Sourceforge crew at VA Linux. They are many, they
-| change as time goes by, and they are listed on the Sourceforge
-| website. Let them be thanked for their work.
-|
-| Copyright:
-|
-| This software is Copyright © 1999-2000 by VA Linux.
-|
-| You are free to distribute this software under the terms of the GNU
-| General Public License.
-`----
-
-For some reason, the OSX-like theme is provided under an MIT-like
-license rather than the usual GPL:
-,----
-| This theme is
-|
-| Copyright(c) 2002-2003 Richard Offer. All rights reserved.
-|
-| Permission to use, copy, modify, distribute, and sell this software and its
-| documentation for any purpose is hereby granted without fee, provided that
-| the above copyright notice appear in all copies and that both that
-| copyright notice and this permission notice appear in supporting
-| documentation.
-|
-| The above copyright notice and this permission notice shall be included in
-| all copies or substantial portions of the Software.
-|
-| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-| AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-| AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-| CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-|
-| Except as contained in this notice, the name of the author shall not be
-| used in advertising or otherwise to promote the sale, use or other dealings
-| in this Software without prior written authorization from the author.
-`----
-
-The packaging and installing scripts (in the debian/ and deb-specific/
-directories amongst others) are Copyright © 2000-2010 by Christian
-Bayle <bayle@aist.enst.fr> and Roland Mas <lolando@debian.org>. You
-are free to use and redistribute them under the terms of the GNU
-General Public License, version 2 or (at your option) any later
-version published by the Free Software Foundation.
-
-The upstream sources contain a modified copy of a version of the
-Nusoap library (prior to nusoap 0.6.8) (not used by the Debian
-packages):
-,----
-| NuSOAP - Web Services Toolkit for PHP developed by Dietrich Ayala
-|
-| Copyright (c) 2002 NuSphere Corporation
-|
-| This library is free software; you can redistribute it and/or
-| modify it under the terms of the GNU Lesser General Public
-| License as published by the Free Software Foundation; either
-| version 2.1 of the License, or (at your option) any later version.
-|
-| This library is distributed in the hope that it will be useful,
-| but WITHOUT ANY WARRANTY; without even the implied warranty of
-| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-| Lesser General Public License for more details.
-|
-| You should have received a copy of the GNU Lesser General Public
-| License along with this library; if not, write to the Free Software
-| Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
-| USA.
-`----
-
-They also contain a copy of tabber.js and related files (under an
-MIT-like license):
-,----
-| tabber.js by Patrick Fitzgerald pat@barelyfitz.com
-|
-| Documentation can be found at the following URL:
-| http://www.barelyfitz.com/projects/tabber/
-|
-| License (http://www.opensource.org/licenses/mit-license.php)
-|
-| Copyright (c) 2006 Patrick Fitzgerald
-|
-| Permission is hereby granted, free of charge, to any person
-| obtaining a copy of this software and associated documentation files
-| (the "Software"), to deal in the Software without restriction,
-| including without limitation the rights to use, copy, modify, merge,
-| publish, distribute, sublicense, and/or sell copies of the Software,
-| and to permit persons to whom the Software is furnished to do so,
-| subject to the following conditions:
-|
-| The above copyright notice and this permission notice shall be
-| included in all copies or substantial portions of the Software.
-|
-| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-| NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-| BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-| ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-| CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-| SOFTWARE.
-`----
-
-There's also a copy of the JSCook Javascript library (also under an
-MIT-like license):
-,----
-| JSCookMenu v1.4.4. (c) Copyright 2002-2005 by Heng Yuan
-|
-| Permission is hereby granted, free of charge, to any person obtaining a
-| copy of this software and associated documentation files (the "Software"),
-| to deal in the Software without restriction, including without limitation
-| the rights to use, copy, modify, merge, publish, distribute, sublicense,
-| and/or sell copies of the Software, and to permit persons to whom the
-| Software is furnished to do so, subject to the following conditions:
-|
-| The above copyright notice and this permission notice shall be included
-| in all copies or substantial portions of the Software.
-|
-| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-| ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-| FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-| DEALINGS IN THE SOFTWARE.
-`----
-
-And a copy of the FCKeditor Javascript library, triple-licensed:
-,----
-| FCKeditor - The text editor for Internet - http://www.fckeditor.net
-| Copyright (C) 2003-2008 Frederico Caldeira Knabben
-|
-| Licensed under the terms of any of the following licenses at your
-| choice:
-|
-| - GNU General Public License Version 2 or later (the "GPL")
-| http://www.gnu.org/licenses/gpl.html
-| (See Appendix A)
-|
-| - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-| http://www.gnu.org/licenses/lgpl.html
-| (See Appendix B)
-|
-| - Mozilla Public License Version 1.1 or later (the "MPL")
-| http://www.mozilla.org/MPL/MPL-1.1.html
-| (See Appendix C)
-`----
-
-FCKeditor also includes a copy of ImageObject.cfc and image.cfc, which
-are under a BSD-like license:
-,----
-| Copyright (c) 2007, Rick Root <rick@webworksllc.com>
-| All rights reserved.
-|
-| Redistribution and use in source and binary forms, with or
-| without modification, are permitted provided that the
-| following conditions are met:
-|
-| - Redistributions of source code must retain the above
-| copyright notice, this list of conditions and the
-| following disclaimer.
-| - Redistributions in binary form must reproduce the above
-| copyright notice, this list of conditions and the
-| following disclaimer in the documentation and/or other
-| materials provided with the distribution.
-| - Neither the name of the Webworks, LLC. nor the names of
-| its contributors may be used to endorse or promote products
-| derived from this software without specific prior written
-| permission.
-|
-| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-| CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-| INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-| CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-| HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-| CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-| OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-|
-| ============================================================
-| This is a derivative work. Following is the original
-| Copyright notice.
-| ============================================================
-|
-| Copyright (c) 2004 James F. Dew <jdew@yggdrasil.ca>
-|
-| Permission to use, copy, modify, and distribute this software for any
-| purpose with or without fee is hereby granted, provided that the above
-| copyright notice and this permission notice appear in all copies.
-|
-| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-| WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-| MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-| ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-| ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-| OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-`----
-
-The ARC2_OSLCCoreRDFJSONParserPlugin.php file from the OSLC Tools
-project, shipped as part of fusionforge-plugin-projectimport is
-distributed under the terms of the Apache license (a copy can be found
-in /usr/share/common-licenses/Apache-2.0) :
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0 or in the acompanying COPYING file
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-
-PHPWIKI ??
-
-VIEWVC ??
-
-On Debian systems, the complete text of the GNU General Public License
-can be found in the /usr/share/common-licenses directory.
-
-# Local Variables:
-# coding: utf-8
-# End:
+++ /dev/null
-<!doctype refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
-
- <!-- Fill in your name for FIRSTNAME and SURNAME. -->
- <!ENTITY dhfirstname "<firstname>Christian</firstname>">
- <!ENTITY dhsurname "<surname>Bayle</surname>">
- <!-- Please adjust the date whenever revising the manpage. -->
- <!ENTITY dhdate "<date>may 14, 2001</date>">
- <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
- allowed: see man(7), man(1). -->
- <!ENTITY dhsection "<manvolnum>1</manvolnum>">
- <!ENTITY dhemail "<email>bayle@aist.enst.fr</email>">
- <!ENTITY dhusername "Christian Bayle">
- <!ENTITY dhucpackage "<refentrytitle>@FORGENAME@</refentrytitle>">
- <!ENTITY dhpackage "cvssh">
-
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY gnu "<acronym>GNU</acronym>">
-]>
-
-<refentry>
- <docinfo>
- <address>
- &dhemail;
- </address>
- <author>
- &dhfirstname;
- &dhsurname;
- </author>
- <copyright>
- <year>2000</year>
- <holder>&dhusername;</holder>
- </copyright>
- &dhdate;
- </docinfo>
- <refmeta>
- &dhucpackage;
-
- &dhsection;
- </refmeta>
- <refnamediv>
- <refname>&dhpackage;</refname>
-
- <refpurpose>CVS shell for @FORGENAME@ / General execution wRAPper LITE!
- </refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>&dhpackage;</command>
-
- <arg><option>-e <replaceable>"foo"</replaceable></option></arg>
- <arg><option>-e <replaceable>"foo bar"</replaceable></option></arg>
- <arg><option>-e <replaceable>"foo -c foo -f bar"</replaceable></option></arg>
- </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>DESCRIPTION</title>
-
- <para>This manual page documents briefly the
- <command>&dhpackage;</command> command.</para>
-
- <para>This manual page was written for the &debian; distribution
- because the original program does not have a manual page, but
- a documentation in the code.
- </para>
-
- <para><command>&dhpackage;</command> formely called grap or graplite is a
- wrapper designed to verify commands before passing them to system()
- or just reporting the accepted command. cvssh will report an error if the
- input is invalid. It checks for string lengths (prevent overflows),
- specific sets of options and commands.
- </para>
-
- </refsect1>
- <refsect1>
- <title>OPTIONS</title>
-
- <para>
- These programs follow the usual GNU command line syntax,
- with long options starting with two dashes (`-'). A summary of
- options is included below.
-
- cvssh, in full force, is called as: <cvssh> <option>
- "<command> <arguments list ... >" where <cvssh>
- is this program, <option> is an optional trap for a single
- option (like "-e" or "-c" used by programs that call shells,
- subject to the approval list below), <command> is the
- command wished to be run (subject to the approval list below), and
- <arguments list .. > is the list of args passed to
- <command> All are optional, allowing for forms such as:
- cvssh -e "foo" cvssh "foo bar" cvssh -e "foo -c foo -f bar" <g
- ><o ><cmd> <g > <cmd/args> <g
- ><o> <cmd/ args >
-
- <options> and <command> need to be exact matched to those in the
- acceptance list.
- </para>
-
- <variablelist>
- <varlistentry>
- <term><option>-e</option>
- </term>
- <listitem>
- <para>Accepted commands.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>SEE ALSO</title>
-
- <para>@FORGENAME@ package documentation.</para>
- </refsect1>
- <refsect1>
- <title>AUTHOR</title>
-
- <para>This manual page was written by &dhusername; &dhemail; for
- the &debian; system (but may be used by others). Original
- comment in the code is Copyrighted (C) 1999 Lion Templin
- lion@leonine.com </para>
-
- <!-- <para>Permission is granted to copy, distribute and/or modify
- this document under the terms of the <acronym>GNU</acronym> Free
- Documentation License, Version 1.1 or any later version
- published by the Free Software Foundation; with no Invariant
- Sections, no Front-Cover Texts and no Back-Cover Texts. A copy
- of the license can be found under
- <filename>/usr/share/common-licenses/FDL</filename>.</para> -->
-
- </refsect1>
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
--->
+++ /dev/null
-#!/bin/sh -e
-
-# Source debconf library.
-. /usr/share/debconf/confmodule
-
-db_get @PACKAGE@/shared/web_host || true
-if [ -z "$RET" ] ; then
- hostname=$(hostname -f 2>/dev/null) || hostname=localhost
- db_set @PACKAGE@/shared/web_host $hostname
-fi
-db_input medium @PACKAGE@/shared/web_host || true
-db_go || true
-
-db_get @PACKAGE@/shared/server_admin || true
-if [ -z "$RET" ] ; then
- db_get @PACKAGE@/shared/web_host || true
- db_set @PACKAGE@/shared/server_admin "webmaster@$RET"
-fi
-
-db_input medium @PACKAGE@/shared/server_admin || true
-db_input low @PACKAGE@/shared/forge_name || true
-
-db_go || true
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- for file in \
- /usr/share/xml/xhtml/schema/dtd/1.0/xhtml1-strict.dtd \
- /usr/share/xml/xhtml/schema/dtd/1.0/xhtml1-transitional.dtd \
- /usr/share/xml/entities/xhtml/xhtml-lat1.ent \
- /usr/share/xml/entities/xhtml/xhtml-special.ent \
- /usr/share/xml/entities/xhtml/xhtml-symbol.ent \
- ; do
- fname=${file##*/}
- test -s /usr/share/gforge/common/include/$fname || \
- ln -sf $file /usr/share/gforge/common/include/
- done
-
- adduser --system --group --home /var/www/@OLDPACKAGE@ @OLDPACKAGE@ > /dev/null 2>&1
- adduser --system --group --home /var/lib/@OLDPACKAGE@/chroot/cvsroot anonscm-@OLDPACKAGE@ > /dev/null 2>&1
- adduser --system --group --home /var/lib/@OLDPACKAGE@/chroot/cvsroot scm-@OLDPACKAGE@ > /dev/null 2>&1
- adduser --system --group --home /var/lib/@OLDPACKAGE@/chroot/cvsroot www-@OLDPACKAGE@ > /dev/null 2>&1
-
- if [ "$2" = "" ] ; then
- # Installation from scratch, let's generate initial config files
- if [ ! -e /etc/@PACKAGE@/config.ini.d/debian-install.ini ] ; then
- db_get @PACKAGE@/shared/forge_name || true
- if [ -z "$RET" ] ; then
- forge_name=FusionForge
- else
- forge_name=$RET
- fi
- db_get @PACKAGE@/shared/web_host || true
- if [ -z "$RET" ] ; then
- web_host=$(hostname -f)
- else
- web_host=$RET
- fi
- cat > /etc/@PACKAGE@/config.ini.d/debian-install.ini <<EOF
-; This file was generated by the Debian installation system.
-; You can edit the values here or move them to other files.
-
-[core]
-forge_name=$forge_name
-web_host=$web_host
-EOF
- fi
- if [ ! -e /etc/@PACKAGE@/config.ini.d/debian-install-secrets.ini ] ; then
- t=$(mktemp /etc/@PACKAGE@/config.ini.d/debian-install-secrets.ini.XXXXXX)
- pw=
- db_fget @PACKAGE@/shared/db_password seen || true
- seen="$RET"
- if [ "$seen" = "true" ]; then
- db_get @PACKAGE@/shared/db_password || true
- pw=$RET
- fi
- if [ "$pw" = "" ] ; then
- if [ -c /dev/urandom ]; then # ...using /dev/urandom when possible
- pw=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -c-32)
- else # ...or something else if need be.
- pw=$(date +"%s:%N" | md5sum | cut -c-32)
- fi
- fi
-
- if [ -c /dev/urandom ]; then # ...using /dev/urandom when possible
- sk=$(dd if=/dev/urandom count=1 bs=16 2> /dev/null | md5sum | cut -c-32)
- else # ...or something else if need be.
- sk=$(date +"%s:%N" | md5sum | cut -c-32)
- fi
-
- cat > $t <<EOF
-; This file was generated by the Debian installation system.
-; You can edit the values here or move them to other files.
-; These values should not go into world-readable files!
-
-; ATTENTION : these configuration variables may not be used directly
-; by the PHP scripts run by apache.
-; See contents of secrets.inc which is loaded by Apache conf files too
-
-[core]
-database_host=127.0.0.1
-database_name=gforge
-database_user=gforge
-database_port=5432
-database_password=$pw
-
-session_key=$sk
-EOF
- mv $t /etc/@PACKAGE@/config.ini.d/debian-install-secrets.ini
- fi
- elif dpkg --compare-versions $2 lt 5.0.51-1 ; then
- echo "Migrating existing configuration to *.ini files"
- PATH=$PATH:/usr/share/gforge/bin migrate-to-ini-files.sh
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# postrm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see /usr/share/doc/packaging-manual/
-
-case "$1" in
- purge)
- rm -rf /var/lib/@OLDPACKAGE@
- [ -d /etc/@OLDPACKAGE@ ] && rm -rf /etc/@OLDPACKAGE@
- for i in config.ini.d/debian-install-secrets.ini config.ini.d/debian-install.ini fusionforge.conf ; do
- [ -e /etc/@PACKAGE@/$i ] && rm /etc/@PACKAGE@/$i
- done
- ;;
- remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
-
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
-
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/pkg ]; then
- rm -f /usr/doc/pkg
-fi
-
-case "$1" in
- remove)
- for file in \
- /usr/share/xml/xhtml/schema/dtd/1.0/xhtml1-strict.dtd \
- /usr/share/xml/xhtml/schema/dtd/1.0/xhtml1-transitional.dtd \
- /usr/share/xml/entities/xhtml/xhtml-lat1.ent \
- /usr/share/xml/entities/xhtml/xhtml-special.ent \
- /usr/share/xml/entities/xhtml/xhtml-symbol.ent \
- ; do
- fname=${file##*/}
- test x"$(readlink /usr/share/gforge/common/include/$fname)" = \
- x"$file" && rm -f /usr/share/gforge/common/include/$fname
- done
-
- if [ -f /etc/@OLDPACKAGE@/local.pl ]
- then
- rm -f /etc/@OLDPACKAGE@/local.pl
- fi
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-# These templates have been reviewed by the debian-l10n-english
-# team
-#
-# If modifications/additions/rewording are needed, please ask
-# debian-l10n-english@lists.debian.org for advice.
-#
-# Even minor modifications require translation updates and such
-# changes should be coordinated with translators and reviewers.
-
-Template: @PACKAGE@/shared/web_host
-Type: string
-_Description: @FORGENAME@ domain or subdomain name:
- Please enter the domain that will host the @FORGENAME@ installation. Some
- services (scm, lists, etc.) will be given their own subdomain in that
- domain.
-
-Template: @PACKAGE@/shared/forge_name
-Type: string
-Default: @FORGENAME@
-_Description: @FORGENAME@ system name:
- Please enter the name of the @FORGENAME@ system. It is used in various places
- throughout the system.
+++ /dev/null
-<!doctype refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
-
- <!-- Fill in your name for FIRSTNAME and SURNAME. -->
- <!ENTITY dhfirstname "<firstname>Roland</firstname>">
- <!ENTITY dhsurname "<surname>Mas</surname>">
- <!-- Please adjust the date whenever revising the manpage. -->
- <!ENTITY dhdate "<date>February 14th, 2002</date>">
- <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
- allowed: see man(7), man(1). -->
- <!ENTITY dhsection "<manvolnum>1</manvolnum>">
- <!ENTITY dhemail "<email>lolando@debian.org</email>">
- <!ENTITY dhusername "Roland Mas">
- <!ENTITY dhucpackage "<refentrytitle>@FORGENAME@</refentrytitle>">
- <!ENTITY dhpackage "@PACKAGE@-config">
-
- <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
- <!ENTITY gnu "<acronym>GNU</acronym>">
-]>
-
-<refentry>
- <docinfo>
- <address>
- &dhemail;
- </address>
- <author>
- &dhfirstname;
- &dhsurname;
- </author>
- <copyright>
- <year>2002</year>
- <holder>&dhusername;</holder>
- </copyright>
- &dhdate;
- </docinfo>
- <refmeta>
- &dhucpackage;
-
- &dhsection;
- </refmeta>
- <refnamediv>
- <refname>&dhpackage;</refname>
-
- <refpurpose>Reconfigure @FORGENAME@
- </refpurpose>
- </refnamediv>
-
- <refsynopsisdiv>
- <cmdsynopsis>
- <command>&dhpackage;</command>
-
- <!-- <arg><option>-e <replaceable>"foo"</replaceable></option></arg> -->
- </cmdsynopsis>
- </refsynopsisdiv>
-
- <refsect1>
- <title>DESCRIPTION</title>
-
- <para>
- This manual page documents briefly the
- <command>&dhpackage;</command> command.
- </para>
-
- <para><command>&dhpackage;</command> replaces (or creates) the
- configuration files found in /etc/@PACKAGE@ with appropriate
- files derived from standard fill-in-the-blank templates (found
- in /usr/share/@PACKAGE@/templates). The values used to fill in
- the blanks are taken from /etc/@PACKAGE@/@PACKAGE@.conf.
- @PACKAGE@-config HAS BEEN REMOVED AND IS NOT ANYMORE REQUIRED
- </para>
-
- </refsect1>
-
- <refsect1>
- <title>OPTIONS</title>
-
- <para>
- None yet.
- </para>
- </refsect1>
-
- <refsect1>
- <title>SEE ALSO</title>
-
- <para>@FORGENAME@ package documentation (ahem).</para>
- </refsect1>
-
- <refsect1>
- <title>AUTHOR</title>
-
- <para>This manual page was written by &dhusername; &dhemail; for
- the &debian; system (but may be used by others).</para>
-
- <para>Permission is granted to copy, distribute and/or modify
- this document under the terms of the <acronym>GNU</acronym> Free
- Documentation License, Version 1.1 or any later version
- published by the Free Software Foundation; with no Invariant
- Sections, no Front-Cover Texts and no Back-Cover Texts. A copy
- of the license can be found under
- <filename>/usr/share/common-licenses/FDL</filename>.</para>
-
- </refsect1>
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:2
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:nil
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
--->
+++ /dev/null
-#!/bin/sh -e
-
-# Source debconf library.
-. /usr/share/debconf/confmodule
-
-gen_random_pw () { # Generate a random password
- if [ -c /dev/urandom ]; then # ...using /dev/urandom when possible
- tmp=$(dd if=/dev/urandom count=1 bs=8 2> /dev/null | md5sum | cut -b1-8)
- else # ...or something else if need be.
- # Last I was told, the Hurd had no /dev/urandom
- # (Correct me if it has changed)
- # Suggestions form something more random than $(date) are welcome
- tmp=$(date | md5sum | cut -b1-8)
- fi
- echo $tmp
-}
-
-get_pw () { # Use Debconf to get a password
- get_pw__pwname=$1
- get_pw__priority=$2
- get_pw__ok=''
- while [ -z "$get_pw__ok" ] ; do
- db_input ${get_pw__priority} ${get_pw__pwname} || get_pw__retcode=$? || true
- db_input ${get_pw__priority} ${get_pw__pwname}_confirm || true
- db_go
- if [ "$get_pw__retcode" = 30 ] ; then
- get_pw__ok="not-asked"
- else
- db_get ${get_pw__pwname} || true
- get_pw__PW1=$RET
- db_get ${get_pw__pwname}_confirm || true
- get_pw__PW2=$RET
- if [ "$get_pw__PW1" = "$get_pw__PW2" ] ; then
- get_pw__ok="confirmed"
- else
- get_pw__ok="mismatch"
- db_fset ${get_pw__pwname} seen false
- db_fset ${get_pw__pwname}_confirm seen false
- fi
- fi
- done
- case $get_pw__ok in
- not-asked)
- echo "not-asked"
- ;;
- confirmed)
- echo "confirmed"
- ;;
- *)
- echo "SHOULDN'T HAVE HAPPENED"
- exit 1
- ;;
- esac
-}
-
-db_fget @PACKAGE@/shared/admin_password seen || true
-if [ "$RET" = "false" ]; then
- if [ "$(get_pw @PACKAGE@/shared/admin_password high)" = "not-asked" ] ; then
- db_set @PACKAGE@/shared/admin_password $(gen_random_pw)
- db_get @PACKAGE@/shared/admin_password || true
- echo "Since you asked not to see all the debconf questions, I generated a random"
- echo "password for the admin user. It is '${RET}'." ;
- db_fset @PACKAGE@/shared/admin_password seen true
- fi
-fi
-
-db_go || true
-db_stop
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-# Support for new place for pg_hba.conf
-# I only try to upgrade on the default cluster
-if [ -x /usr/bin/pg_lsclusters ]
-then
- # We are with new postgresql working with clusters
- # This is probably not te most elegant way to deal with database
- # I install or upgrade on the default cluster if it is online
- # or I quit gently with a big message
- pg_version=`pg_lsclusters | grep 5432 | grep online | cut -d' ' -f1`
- if [ "x$pg_version" != "x" ]
- then
- export pg_hba_dir=/etc/postgresql/${pg_version}/main
- else
- echo "No database found online on port 5432"
- echo "Couldn't initialize or upgrade @OLDPACKAGE@ database"
- exit 1
- fi
-else
- export pg_hba_dir=/etc/postgresql
-fi
-
-set -e
-#set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch DB configuration files
- /usr/share/@OLDPACKAGE@/bin/install-db.sh configure-files
-
- # At first, the pg_hba.conf file is not yet handled by ucf, so
- # we don't display the usual template, but instead a custom
- # one (fusionforge/ucfchangeprompt)
- ucf_package=`ucfq -w ${pg_hba_dir}/pg_hba.conf | cut -d ':' -f 2`
- if [ "x$ucf_package" != "x@OLDPACKAGE@-db-postgresql" ]
- then
- ucf --debconf-ok --debconf-template fusionforge/ucfchangeprompt ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new ${pg_hba_dir}/pg_hba.conf
- else
- ucf --debconf-ok ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new ${pg_hba_dir}/pg_hba.conf
- fi
- # register it with ucfr/ucfq so that next time the normal ucf template is used, in case of user changes (or another package's)
- ucfr @OLDPACKAGE@-db-postgresql ${pg_hba_dir}/pg_hba.conf
- rm ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new
-
- # Make sure the database accepts connections from these new users
- pg_name=postgresql-$pg_version
- # Trying "postgresql" init script...
- v=0
- invoke-rc.d postgresql reload || v=$?
- if test x"$v" = x"100"; then
- # No "postgresql" init script (for packages << 8.4.4-2)
- pg_name=postgresql-$pg_version
- invoke-rc.d ${pg_name} reload
- elif test x"$v" != x"0"; then
- # Needed, since we run under "set -e"...
- exit $v
- fi
-
- # Setup our DB
- v=0
- /usr/share/@OLDPACKAGE@/bin/install-db.sh configure || v=$?
- if test x"$v" = x"100"; then
- db_get @PACKAGE@/shared/admin_password || true
- /usr/share/gforge/bin/forge_set_password admin "$RET"
- elif test x"$v" != x"0"; then
- exit $v
- fi
-
- if [ -n "$2" ] && dpkg --compare-versions $2 lt 5.1-8 ; then
- echo "Normalizing all roles and permissions"
- PATH=$PATH:/usr/share/gforge/bin normalize_roles.php
- fi
-
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/bash
-# postrm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
- purge)
- for i in $(ucfq -w @OLDPACKAGE@-db-postgresql|cut -d: -f1|grep pg_hba.conf) ; do
- ucf --purge $i
- ucfr --purge @OLDPACKAGE@-db-postgresql $i
- done
- ;;
-
- remove)
- ;;
-
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-# Support for new place for pg_hba.conf
-# I only try to upgrade on the default cluster
-if [ -x /usr/bin/pg_lsclusters ]
-then
- # We are with new postgresql working with clusters
- # This is probably not te most elegant way to deal with database
- # I install or upgrade on the default cluster if it is online
- # or I quit gently with a big message
- pg_version=`pg_lsclusters | grep 5432 | grep online | cut -d' ' -f1`
- if [ "x$pg_version" != "x" ]
- then
- export pg_hba_dir=/etc/postgresql/${pg_version}/main
- else
- echo "No database found online on port 5432."
- echo "Assuming the database was dropped and no action is needed."
- echo "Exiting without error, but make sure there are no leftovers."
- exit 0
- fi
-else
- export pg_hba_dir=/etc/postgresql
-fi
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- # Remove our database
- /usr/share/@OLDPACKAGE@/bin/install-db.sh purge
-
- # Unpatch DB configuration files
- /usr/share/@OLDPACKAGE@/bin/install-db.sh purge-files
- ucf --debconf-ok ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new ${pg_hba_dir}/pg_hba.conf
- rm ${pg_hba_dir}/pg_hba.conf.@OLDPACKAGE@-new
-
- pg_name=postgresql-$pg_version
- # Trying "postgresql" init script...
- v=0
- invoke-rc.d postgresql reload || v=$?
- if test x"$v" = x"100"; then
- # No "postgresql" init script (for packages << 8.4.4-2)
- pg_name=postgresql-$pg_version
- invoke-rc.d ${pg_name} reload
- elif test x"$v" != x"0"; then
- # Needed, since we run under "set -e"...
- exit $v
- fi
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-# These templates have been reviewed by the debian-l10n-english
-# team
-#
-# If modifications/additions/rewording are needed, please ask
-# debian-l10n-english@lists.debian.org for advice.
-#
-# Even minor modifications require translation updates and such
-# changes should be coordinated with translators and reviewers.
-
-Template: @PACKAGE@/shared/admin_password
-Type: password
-_Description: @FORGENAME@ administrator password:
- The @FORGENAME@ administrator account will have full privileges on the
- forge. It will be used to approve the creation of new projects.
- .
- Please choose the password for this forge account.
-
-Template: @PACKAGE@/shared/admin_password_confirm
-Type: password
-_Description: Password confirmation:
- Please re-type the password for confirmation.
-
-Template: @PACKAGE@/ucfchangeprompt
-Type: select
-__Choices: install the new version configured by @PACKAGE@, keep the local version currently installed, show the differences between the versions, show a side-by-side difference between the versions, start a new shell to examine the situation
-Choices-C: install_new, keep_current, diff, sdiff, shell
-Default: install_new
-_Description: What do you want to do about configuration file ${BASENAME}?
- The configuration file ${FILE} needs to be modified by @PACKAGE@,
- whereas it is also a configuration file of the postgresql package.
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch Bind configuration files
- /usr/share/@OLDPACKAGE@/bin/install-dns.sh configure-files
- ucf --debconf-ok /etc/bind/named.conf.@OLDPACKAGE@-new /etc/bind/named.conf
- rm /etc/bind/named.conf.@OLDPACKAGE@-new
-
- db_stop
-
- # Create the DNS zone
- /usr/share/@OLDPACKAGE@/bin/install-dns.sh configure
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- db_title "Unconfiguring @FORGENAME@"
-
- # Unpatch Bind configuration files
- /usr/share/@OLDPACKAGE@/bin/install-dns.sh purge-files
- ucf --debconf-ok /etc/bind/named.conf.@OLDPACKAGE@-new /etc/bind/named.conf
- rm /etc/bind/named.conf.@OLDPACKAGE@-new
- ucf --purge /etc/bind/named.conf
-
- # Clean debconf after ourselves
- db_stop
-
- # DNS config removal
- /usr/share/@OLDPACKAGE@/bin/install-dns.sh purge
-
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-# These templates have been reviewed by the debian-l10n-english
-# team
-#
-# If modifications/additions/rewording are needed, please ask
-# debian-l10n-english@lists.debian.org for advice.
-#
-# Even minor modifications require translation updates and such
-# changes should be coordinated with translators and reviewers.
-
-Template: @PACKAGE@/shared/simple_dns
-Type: boolean
-Default: false
-# Translators: SCM here means "Source Control Management"
-# (cvs, svn, etc.)
-_Description: Do you want a simple DNS setup for @FORGENAME@?
- You can use a simple DNS setup with wildcards to map all
- project web-hosts to a single IP address, and direct all the scm-hosts
- to a single SCM server, or a complex setup which allows
- many servers as project web servers or SCM servers.
- .
- Even if you use a simple DNS setup, you can still use
- separate machines as project servers; it just assumes that
- all the project web directories are on the same server with a single
- SCM server.
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch Proftpd configuration files
- /usr/share/@OLDPACKAGE@/bin/install-ftp.sh configure-files
- if [ -f /etc/proftpd/proftpd.conf.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/proftpd/proftpd.conf.@OLDPACKAGE@-new /etc/proftpd/proftpd.conf
- rm /etc/proftpd/proftpd.conf.@OLDPACKAGE@-new
- fi
-
- # Setup our FTP
- /usr/share/@OLDPACKAGE@/bin/install-ftp.sh configure
-
- # Setup our FRS
- chown www-data:www-data /var/lib/@OLDPACKAGE@/download
-
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- db_title "Unconfiguring @FORGENAME@"
-
- # Unpatch Proftpd configuration files
- /usr/share/@OLDPACKAGE@/bin/install-ftp.sh purge-files
- ucf --debconf-ok /etc/proftpd/proftpd.conf.@OLDPACKAGE@-new /etc/proftpd/proftpd.conf
- rm /etc/proftpd/proftpd.conf.@OLDPACKAGE@-new
- ucf --purge /etc/proftpd/proftpd.conf
-
- # Clean debconf after ourselves
- db_stop
-
- # FTP config removal
- /usr/share/@OLDPACKAGE@/bin/install-ftp.sh purge
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- echo "Fixing past damage in mailing-lists..."
- if [ -z "$2" ] || dpkg --compare-versions $2 le 3rc2-4 ; then
- /usr/share/@OLDPACKAGE@/bin/fix-mailing-lists.pl
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#!/bin/sh -e
-
-# Source debconf library.
-. /usr/share/debconf/confmodule
-
-if [ -f /etc/aliases.@OLDPACKAGE@-new ]
-then
- ucf --debconf-ok /etc/aliases.@OLDPACKAGE@-new /etc/aliases
- rm /etc/aliases.@OLDPACKAGE@-new
-fi
-if [ -f /etc/exim4/exim4.conf.@OLDPACKAGE@-new ]
-then
- ucf --debconf-ok /etc/exim4/exim4.conf.@OLDPACKAGE@-new /etc/exim4/exim4.conf
- rm /etc/exim4/exim4.conf.@OLDPACKAGE@-new
-fi
-if [ -f /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new ]
-then
- ucf --debconf-ok /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new /etc/exim4/exim4.conf.template
- rm /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new
-fi
-if [ -f /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new ]
-then
- ucf --debconf-ok /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
- rm /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new
-fi
-db_stop
-
-
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch Exim configuration files
- /usr/share/@OLDPACKAGE@/bin/install-exim4.sh configure-files
- if [ -f /etc/aliases.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/aliases.@OLDPACKAGE@-new /etc/aliases
- rm /etc/aliases.@OLDPACKAGE@-new
- fi
- if [ -f /etc/exim4/exim4.conf.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/exim4/exim4.conf.@OLDPACKAGE@-new /etc/exim4/exim4.conf
- rm /etc/exim4/exim4.conf.@OLDPACKAGE@-new
- fi
- if [ -f /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new /etc/exim4/exim4.conf.template
- rm /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new
- fi
- if [ -f /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
- rm /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- db_title "Unconfiguring @FORGENAME@"
-
- # Unpatch Exim configuration files
- /usr/share/@OLDPACKAGE@/bin/install-exim4.sh purge-files
- ucf --debconf-ok /etc/aliases.@OLDPACKAGE@-new /etc/aliases
- if [ -f /etc/exim4/exim4.conf.@OLDPACKAGE@-new ]
- then
- ucf --debconf-ok /etc/exim4/exim4.conf.@OLDPACKAGE@-new /etc/exim4/exim4.conf
- rm /etc/exim4/exim4.conf.@OLDPACKAGE@-new
- fi
- ucf --debconf-ok /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new /etc/exim4/exim4.conf.template
- ucf --debconf-ok /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
- rm /etc/aliases.@OLDPACKAGE@-new
- rm /etc/exim4/exim4.conf.template.@OLDPACKAGE@-new
- rm /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.@OLDPACKAGE@-new
- ucf --purge /etc/aliases
- ucf --purge /etc/exim4/exim4.conf
- ucf --purge /etc/exim4/exim4.conf.template
- ucf --purge /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
-
- # Clean debconf after ourselves
- db_stop
-
- # Exim config removal
- /usr/share/@OLDPACKAGE@/bin/install-exim4.sh purge
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch Postfix configuration files
- /usr/share/@OLDPACKAGE@/bin/install-postfix.sh configure-files
- ucf --debconf-ok /etc/aliases.@OLDPACKAGE@-new /etc/aliases
- ucf --debconf-ok /etc/postfix/main.cf.@OLDPACKAGE@-new /etc/postfix/main.cf
- rm /etc/aliases.@OLDPACKAGE@-new
- rm /etc/postfix/main.cf.@OLDPACKAGE@-new
- /usr/share/@OLDPACKAGE@/bin/install-postfix.sh configure
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- db_title "Unconfiguring @FORGENAME@"
-
- # Unpatch Postfix configuration files
- /usr/share/@OLDPACKAGE@/bin/install-postfix.sh purge-files
- ucf --debconf-ok /etc/aliases.@OLDPACKAGE@-new /etc/aliases
- ucf --debconf-ok /etc/postfix/main.cf.@OLDPACKAGE@-new /etc/postfix/main.cf
- rm /etc/aliases.@OLDPACKAGE@-new
- rm /etc/postfix/main.cf.@OLDPACKAGE@-new
- ucf --purge /etc/aliases
- ucf --purge /etc/postfix/main.cf
-
- # Clean debconf after ourselves
- db_stop
-
- # Exim config removal
- /usr/share/@OLDPACKAGE@/bin/install-postfix.sh purge
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/bash
-# postrm script for mailman plugin
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
- purge|remove)
- dpkg-divert --package @PACKAGE@-plugin-mailman --rename --remove /usr/lib/mailman/Mailman/Archiver/Archiver.py || true
- dpkg-divert --package @PACKAGE@-plugin-mailman --rename --remove /usr/lib/mailman/Mailman/SecurityManager.py || true
- dpkg-divert --package @PACKAGE@-plugin-mailman --rename --remove /usr/lib/mailman/Mailman/MailList.py || true
- ;;
-
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
-
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-exit 0
+++ /dev/null
-#! /bin/bash
-# preinst script for mailman plugin
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <new-preinst> `install'
-# * <new-preinst> `install' <old-version>
-# * <new-preinst> `upgrade' <old-version>
-# * <old-preinst> `abort-upgrade' <new-version>
-#
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
- install|upgrade)
- dpkg-divert --package @PACKAGE@-plugin-mailman \
- --divert /usr/lib/mailman/Mailman/Archiver/Archiver.py.old \
- --rename /usr/lib/mailman/Mailman/Archiver/Archiver.py
- dpkg-divert --package @PACKAGE@-plugin-mailman \
- --divert /usr/lib/mailman/Mailman/SecurityManager.py.old \
- --rename /usr/lib/mailman/Mailman/SecurityManager.py
- dpkg-divert --package @PACKAGE@-plugin-mailman \
- --divert /usr/lib/mailman/Mailman/MailList.py.old \
- --rename /usr/lib/mailman/Mailman/MailList.py
- ;;
-
- abort-upgrade)
- ;;
-
- *)
- echo "preinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-exit 0
-
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@-plugin-@PLUGSHORTNAME@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-case "$1" in
- configure)
- # Run plugin specific db upgrade
- if [ -f /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/db-upgrade.pl ]
- then
- /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/db-upgrade.pl
- fi
- /usr/share/@OLDPACKAGE@/bin/register-plugin $(echo @PLUGSHORTNAME@ | sed 's/-//g') "@PLUGLONGNAME@"
- # Restart apache if there is some change in config
- if [ -f /etc/gforge/httpd.conf.d/plugin-@PLUGSHORTNAME@.inc ]
- then
- for flavour in apache apache-perl apache-ssl apache2 ; do
- if [ -x /usr/sbin/$flavour ]; then
- invoke-rc.d $flavour reload || true
- fi
- done
- fi
- # Run plugin specific install
- if [ -f /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/install.sh ]
- then
- /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/install.sh configure
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
-
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@-plugin-@PLUGSHORTNAME@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
- remove|deconfigure)
- if [ -f /var/run/postgresql/.s.PGSQL.5432 ]
- then
- /usr/share/@OLDPACKAGE@/bin/unregister-plugin $(echo @PLUGSHORTNAME@ | sed 's/-//g')
- if [ -f /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/db-delete.pl ]
- then
- /usr/share/@OLDPACKAGE@/plugins/@PLUGSHORTNAME@/bin/db-delete.pl
- fi
- fi
- ;;
- upgrade|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
-
-
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-# set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- # Patch NSS configuration files
- /usr/share/@OLDPACKAGE@/bin/install-nsspgsql.sh configure-files
-
- # There's probably no /etc/nss-pgsql.conf yet (none provided by default with libnss-pgsql2)
- if [ ! -f /etc/nss-pgsql.conf ]; then
- # Install default version, identical to the one managed with ucf : ucf won't prompt us this time
- cp /etc/nss-pgsql.conf.gforge-new /etc/nss-pgsql.conf
- fi
- ucf --debconf-ok /etc/nss-pgsql.conf.@OLDPACKAGE@-new /etc/nss-pgsql.conf
- ucfr @OLDPACKAGE@-shell-postgresql /etc/nss-pgsql.conf
-
- # There's probably no /etc/nss-pgsql.conf yet (none provided by default with libnss-pgsql2)
- if [ ! -f /etc/nss-pgsql-root.conf ]; then
- # Install default version, identical to the one managed with ucf : ucf won't prompt this time
- cp /etc/nss-pgsql-root.conf.@OLDPACKAGE@-new /etc/nss-pgsql-root.conf
- fi
- ucf --debconf-ok /etc/nss-pgsql-root.conf.@OLDPACKAGE@-new /etc/nss-pgsql-root.conf
- ucfr @OLDPACKAGE@-shell-postgresql /etc/nss-pgsql-root.conf
-
- # There should be a nsswitch.conf, so we have to manage it
- ucf --debconf-ok /etc/nsswitch.conf.@OLDPACKAGE@-new /etc/nsswitch.conf
- ucfr @OLDPACKAGE@-shell-postgresql /etc/nsswitch.conf
-
- rm /etc/nss-pgsql.conf.@OLDPACKAGE@-new
- rm /etc/nss-pgsql-root.conf.@OLDPACKAGE@-new
- rm /etc/nsswitch.conf.@OLDPACKAGE@-new
-
- # Install the chroot environment
- /usr/share/@OLDPACKAGE@/bin/install-chroot.sh configure
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- db_title "Unconfiguring @FORGENAME@"
-
- # Unpatch Slapd configuration files
- /usr/share/@OLDPACKAGE@/bin/install-nsspgsql.sh purge-files
- ucf --debconf-ok /etc/nss-pgsql.conf.@OLDPACKAGE@-new /etc/nss-pgsql.conf
- ucf --debconf-ok /etc/nss-pgsql-root.conf.@OLDPACKAGE@-new /etc/nss-pgsql-root.conf
- ucf --debconf-ok /etc/nsswitch.conf.@OLDPACKAGE@-new /etc/nsswitch.conf
- rm /etc/nss-pgsql.conf.@OLDPACKAGE@-new
- rm /etc/nss-pgsql-root.conf.@OLDPACKAGE@-new
- rm /etc/nsswitch.conf.@OLDPACKAGE@-new
- ucf --purge /etc/nss-pgsql.conf
- ucfr --purge @OLDPACKAGE@-shell-postgresql /etc/nss-pgsql.conf
- ucf --purge /etc/nss-pgsql-root.conf
- ucfr --purge @OLDPACKAGE@-shell-postgresql /etc/nss-pgsql-root.conf
- ucf --purge /etc/nsswitch.conf
- ucfr --purge @OLDPACKAGE@-shell-postgresql /etc/nsswitch.conf
-
- # Clean debconf after ourselves
- db_stop
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-/var/log/@OLDPACKAGE@/vhosts/*/access.log {
- weekly
- missingok
- rotate 52
- compress
- delaycompress
- notifempty
- create 640 root adm
- sharedscripts
-}
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-#set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- db_stop
- # Setup our Apache
- touch /var/lib/@OLDPACKAGE@/etc/templates/httpd.vhosts && \
- chown @OLDPACKAGE@:@OLDPACKAGE@ /var/lib/@OLDPACKAGE@/etc/templates/httpd.vhosts && \
- /usr/share/@OLDPACKAGE@/bin/create-vhosts.sh --norestart
-
- # Make Apache see these new changes
- invoke-rc.d apache2 reload || true
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# postrm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see /usr/share/doc/packaging-manual/
-
-case "$1" in
- purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- # Make Apache see these new changes
- invoke-rc.d apache2 reload || true
- ;;
-
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
-
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
+++ /dev/null
-/var/log/@OLDPACKAGE@/access.log /var/log/@OLDPACKAGE@/awstats.log {
- weekly
- missingok
- rotate 52
- compress
- delaycompress
- notifempty
- create 640 root adm
- sharedscripts
-}
-
+++ /dev/null
-#! /bin/sh
-# postinst script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-#set -x # Be verbose, be very verbose.
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- configure)
- if [ ! -e /etc/@OLDPACKAGE@/ssl-cert.pem ] || [ ! -e /etc/@OLDPACKAGE@/ssl-cert.key ] ; then
- # Uh-oh, no SSL cert, let's make sure at least a dummy one exists.
- if [ ! -e /etc/ssl/certs/ssl-cert-snakeoil.pem ] || [ ! -e /etc/ssl/private/ssl-cert-snakeoil.key ] ; then
- # What, not even the snakeoil cert is there? Let's generate it
- make-ssl-cert generate-default-snakeoil
- fi
- # Right. At this point, it should be safe to set the symlinks.
- ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/@OLDPACKAGE@/ssl-cert.pem
- ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/@OLDPACKAGE@/ssl-cert.key
- fi
-
- for i in secrets.inc vhost-list.inc vhost-main.inc vhost-projects.inc ; do
- if [ ! -e /etc/gforge/httpd.conf.d/$i ] ; then
- cp /usr/share/gforge/etc/httpd.conf.d-fhs/$i /etc/gforge/httpd.conf.d/$i
- if [ $i = "secrets.inc" ] ; then
- chmod 700 /etc/gforge/httpd.conf.d/$i
- fi
- PATH=/usr/share/gforge/bin:$PATH manage-apache-config.sh install
- mv /etc/gforge/httpd.conf.d/$i.generated /etc/gforge/httpd.conf.d/$i
- fi
- done
-
- touch /var/lib/gforge/etc/httpd.vhosts
-
- db_stop
-
- # Setup our FRS
- chown www-data:www-data /var/lib/@OLDPACKAGE@/download
-
- # Enable required modules
- DEBIAN_FRONTEND=noninteractive a2enmod php5 || true
- DEBIAN_FRONTEND=noninteractive a2enmod ssl || true
- DEBIAN_FRONTEND=noninteractive a2enmod env || true
- DEBIAN_FRONTEND=noninteractive a2enmod vhost_alias || true
- DEBIAN_FRONTEND=noninteractive a2enmod headers || true
- DEBIAN_FRONTEND=noninteractive a2enmod rewrite || true
- DEBIAN_FRONTEND=noninteractive a2enmod proxy || true
- DEBIAN_FRONTEND=noninteractive a2enmod proxy_http || true
-
- # Enable the @FORGENAME@ configuration
- if [ -e /etc/apache2/conf.d/@OLDPACKAGE@.httpd.conf ] ; then
- rm -f /etc/apache2/conf.d/@OLDPACKAGE@.httpd.conf
- fi
- if [ -d /etc/apache2/sites-available ] && [ ! -h /etc/apache2/sites-available/@OLDPACKAGE@ ] ; then
- ln -s /etc/@OLDPACKAGE@/httpd.conf /etc/apache2/sites-available/@OLDPACKAGE@
- fi
- a2ensite @OLDPACKAGE@
-
- # Make Apache see these new changes
- invoke-rc.d apache2 restart || true
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#! /bin/sh
-# prerm script for @OLDPACKAGE@
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-. /usr/share/debconf/confmodule
-
-case "$1" in
- remove)
- a2dissite @OLDPACKAGE@ || true
- rm -f /etc/apache2/sites-available/@OLDPACKAGE@
- invoke-rc.d apache2 reload || true
- ;;
- upgrade|deconfigure|failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-[type: gettext/rfc822deb] dsf-in/common.templates
-[type: gettext/rfc822deb] dsf-in/db-postgresql.templates
-[type: gettext/rfc822deb] dsf-in/dns-bind9.templates
+++ /dev/null
-#
-# Translators, if you are not familiar with the PO format, gettext
-# documentation is worth reading, especially sections dedicated to
-# this format, e.g. by running:
-# info -n '(gettext)PO Files'
-# info -n '(gettext)Header Entry'
-#
-# Some information specific to po-debconf are available at
-# /usr/share/doc/po-debconf/README-trans
-# or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-# Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-23 19:55+0200\n"
-"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
-"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Název @FORGENAME@ domény nebo subdomény:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Zadejte prosím doménu, která bude hostit vaši instalaci @FORGENAME@. Některé "
-"služby obdrží své vlastní subdomény této domény (scm, lists, atd.)."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid "@FORGENAME@ system name:"
-msgstr "Jméno @FORGENAME@ systému:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Zadejte prosím jméno @FORGENAME@ systému. Toto jméno je v systému používáno "
-"na několika místech."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "Heslo správce @FORGENAME@:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"Správce @FORGENAME@ bude mít v systému @FORGENAME@ všechna práva. Používá se "
-"například pro schvalování vytváření nových projektů."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "Please choose the password for this forge account."
-msgstr "Zadejte prosím heslo pro tento forge účet."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Potvrzení hesla:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Zadejte heslo ještě jednou pro potvrzení."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "instalovat novou verzi nastavenou @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "ponechat aktuálně nainstalovanou lokální verzi"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "zobrazit rozdíly mezi verzemi"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "zobrazit rozdíly mezi verzemi vedle sebe"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "spustit nový shell a prozkoumat situaci"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Co chcete provést s konfiguračním souborem ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"Konfigurační soubor ${FILE} musí být balíkem @PACKAGE@ upraven, avšak "
-"tento soubor je i konfiguračním souborem balíku postgresql."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Chcete mít v @FORGENAME@ jednoduchou konfiguraci DNS?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Můžete mít buď jednodušší konfiguraci DNS, která používá zástupné znaky, aby "
-"namapovala weby všech projektů na jedinou IP adresu a nasměrovala všechny "
-"SCM servery na server jediný, nebo můžete mít komplexní nastavení, jež vám "
-"umožní použít vícero počítačů pro webové a SCM servery."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"I když zvolíte jednodušší nastavení DNS, stále můžete použít více počítačů. "
-"Nastavení bude pouze předpokládat, budete mít všechny adresáře s weby "
-"projektů na jednom počítači a že pro SCM použijete jediný server."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Emailová adresa správce @FORGENAME@:"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Zadejte prosím emailovou adresu správce tohoto systému @FORGENAME@. "
-#~ "Adresa se použije v případě výskytu problémů."
-
-#~ msgid "Download server:"
-#~ msgstr "Server pro stahování:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Zadejte prosím jméno serveru, který bude hostit balíky @FORGENAME@."
-
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Měl by to být jiný počítač než je hlavní server @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Databázový server:"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Zadejte prosím IP adresu (nebo jméno) serveru, který bude hostit vaši "
-#~ "@FORGENAME@ databázi."
-
-#~ msgid "Database name:"
-#~ msgstr "Jméno databáze:"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Zadejte prosím jméno databáze, která bude obsahovat databázi @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Uživatelské jméno správce databáze:"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Zadejte prosím uživatelské jméno správce databáze na serveru, který bude "
-#~ "hostit databázi @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Heslo pro připojení do databáze:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "Připojení do databáze je ověřováno heslem."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Zadejte zde prosím heslo pro připojení."
-
-#~ msgid "IP address:"
-#~ msgstr "IP adresa:"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Zadejte prosím IP adresu serveru, který bude hostit instalaci @FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "To je vyžadováno pro nastavení virtuálních hostů v Apachi."
-
-#~ msgid "Shell server:"
-#~ msgstr "Server se shellovými účty:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Zadejte prosím jméno serveru, který bude hostit shellové účty @FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Server pro poštovní konference:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Zadejte prosím jméno serveru, který bude hostit poštovní konference "
-#~ "@FORGENAME@."
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Zadejte prosím jméno serveru, který bude hostit shellové účty @FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "ID skupiny správců novinek:"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Členové správcovské skupiny pro novinky mohou schvalovat novinky pro "
-#~ "hlavní stránku @FORGENAME@. Tato skupina nesmí mít ID 1. Toto byste měli "
-#~ "měnit jen v případě, že přecházíte z dřívější verze a chcete zachovat svá "
-#~ "data."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "ID skupiny správců pro statistiky:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "ID skupiny správců pro hodnocení:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Zadejte prosím jméno serveru, který bude hostit balíky @FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "angličtina"
-
-#~ msgid "Bulgarian"
-#~ msgstr "bulharština"
-
-#~ msgid "Catalan"
-#~ msgstr "katalánština"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "čínština (tradiční)"
-
-#~ msgid "Dutch"
-#~ msgstr "holandština"
-
-#~ msgid "Esperanto"
-#~ msgstr "esperanto"
-
-#~ msgid "French"
-#~ msgstr "francouzština"
-
-#~ msgid "German"
-#~ msgstr "němčina"
-
-#~ msgid "Greek"
-#~ msgstr "řečtina"
-
-#~ msgid "Hebrew"
-#~ msgstr "hebrejština"
-
-#~ msgid "Indonesian"
-#~ msgstr "indonéština"
-
-#~ msgid "Italian"
-#~ msgstr "italština"
-
-#~ msgid "Japanese"
-#~ msgstr "japonština"
-
-#~ msgid "Korean"
-#~ msgstr "korejština"
-
-#~ msgid "Latin"
-#~ msgstr "latina"
-
-#~ msgid "Norwegian"
-#~ msgstr "norština"
-
-#~ msgid "Polish"
-#~ msgstr "polština"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "portugalština (brazilská)"
-
-#~ msgid "Portuguese"
-#~ msgstr "portugalština"
-
-#~ msgid "Russian"
-#~ msgstr "ruština"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "čínština (zjednodušená)"
-
-#~ msgid "Spanish"
-#~ msgstr "španělština"
-
-#~ msgid "Swedish"
-#~ msgstr "švédština"
-
-#~ msgid "Thai"
-#~ msgstr "thajština"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "English"
-
-#~ msgid "Default language:"
-#~ msgstr "Výchozí jazyk:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Vyberte prosím výchozí jazyk pro webové stránky."
-
-#~ msgid "Default theme:"
-#~ msgstr "Výchozí téma:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Vyberte prosím výchozí téma pro webové stránky. Musí to být platný název."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Chcete, aby se pošta doručená na ${noreply} zahazovala?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ využívá adresu „${noreply}“ k odesílání i příjmu velkého "
-#~ "množství pošty."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Pokud s touto adresou nemáte jiné plány, doporučujeme veškerou příchozí "
-#~ "poštu přesměrovat do černé díry (/dev/null)."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Server pro přesměrování pošty:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Zadejte prosím jméno serveru, který bude hostit přesměrování pošty pro "
-#~ "uživatele @FORGENAME@."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Přihlašovací jméno správce @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Zadejte prosím přihlašovací jméno tohoto účtu."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Počáteční seznam schopností:"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ umožňuje uživatelům, aby si ze seznamu schopností definovali "
-#~ "své dovednosti. Seznam, který zde zadáte, bude uložen v databázi jako "
-#~ "výchozí seznam schopností."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr "Jednotlivé položky seznamu schopností oddělte středníky."
+++ /dev/null
-# Translation of @PACKAGENAME@ debconf templates to German
-# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2007-2009,2012.
-# This file is distributed under the same license as the @PACKAGENAME@ package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGENAME@ 5.2~rc1-2\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-15 20:24+0200\n"
-"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
-"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "@FORGENAME@ Domain- oder Subdomain-Name:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Bitte geben Sie die Domain an, die Ihre @FORGENAME@-Installation beherbergen "
-"wird. Einigen Diensten (scm, lists, usw.) wird innerhalb der Domain eine "
-"eigene Subdomain zugewiesen."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid "@FORGENAME@ system name:"
-msgstr "@FORGENAME@-Systemname:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Bitte geben Sie den Namen des @FORGENAME@-Systems ein. Er wird an "
-"verschiedenen Stellen im ganzen System verwendet."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "@FORGENAME@-Administrator-Passwort:"
-
-# FIXME: Translation of forge???
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"Das @FORGENAME@-Administrator-Konto wird alle Privilegien auf der "
-"Forge haben. Es wird benötigt, um die Erstellung von neuen "
-"Projekten zu bewilligen."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "Please choose the password for this forge account."
-msgstr "Bitte wählen Sie das Passwort für dieses Forge-Konto."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Bestätigung des Passworts:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Bitte geben Sie zur Bestätigung das Passwort erneut ein."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "die neue durch @PACKAGE@ konfigurierte Version installieren"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "die derzeit installierte lokale Version beibehalten"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "die Unterschiede zwischen den Versionen anzeigen"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "zeige die Unterscheide zwischen den Versionen Seite-an-Seite"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "öffne eine neue Shell, um die Situation zu untersuchen"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Was soll mit der Konfigurationsdatei ${BASENAME} passieren?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"Die Konfigurationsdatei ${FILE} muss durch @PACKAGE@ verändert werden, wobei "
-"sie auch eine Konfigurationsdatei des Pakets postgresql ist."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Möchten Sie eine einfache DNS-Installation für @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Sie können eine einfache DNS-Installation haben, die Jokerzeichen verwendet, "
-"um alle Projekt-Webhosts auf eine einzelne IP abzubilden und alle scm-hosts "
-"auf einen einzigen SCM-Server weiterzuleiten, oder eine komplexe "
-"Installation, die viele Server als Projektwebserver oder SCM-Server erlaubt."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Selbst falls Sie eine einfache DNS-Installation verwenden, können Sie "
-"dennoch separate Maschinen für die Projektserver verwenden, es wird nur "
-"angenommen, dass sich alle Webverzeichnisse der Projekte auf dem gleichen "
-"Server mit einem einzelnen Server für das SCM befinden."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "E-Mail-Adresse des @FORGENAME@-Administrators:"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Bitte geben Sie die E-Mail-Adresse des @FORGENAME@-Administrators Ihrer "
-#~ "Site an. Diese wird beim Auftritt von Problemen benötigt."
-
-#~ msgid "Download server:"
-#~ msgstr "Download-Server:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihre @FORGENAME@-"
-#~ "Pakete beherbergen wird."
-
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr ""
-#~ "Dieser sollte nicht mit dem Namen des Haupt-@FORGENAME@-Rechners "
-#~ "übereinstimmen."
-
-#~ msgid "Database server:"
-#~ msgstr "Datenbank-Server:"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Bitte geben Sie die IP-Adresse (oder den Rechnernamen) des Servers ein, "
-#~ "der die @FORGENAME@-Datenbank beherbergen wird."
-
-#~ msgid "Database name:"
-#~ msgstr "Datenbankname:"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Bitte geben Sie den Namen der Datenbank an, die die @FORGENAME@-Datenbank "
-#~ "beherbergen wird."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Name des Administrators der Datenbank:"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Bitte geben Sie den Benutzernamen des Datenbankadministrators für den "
-#~ "Server ein, der die @FORGENAME@-Datenbank beherbergen wird."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Für die Datenbank verwendetes Passwort:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr ""
-#~ "Verbindungen zum Datenbank-System werden durch ein Passwort "
-#~ "authentifiziert."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Bitte wählen Sie das Passwort für Verbindungen aus."
-
-#~ msgid "IP address:"
-#~ msgstr "IP-Adresse:"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Bitte geben Sie die IP-Adresse des Servers ein, der Ihre @FORGENAME@-"
-#~ "Installation beherbergen wird."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr ""
-#~ "Diese wird für die virtualhosting-Konfiguration des Apache benötigt."
-
-#~ msgid "Shell server:"
-#~ msgstr "Shell-Server:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihre @FORGENAME@-"
-#~ "Shell-Konten beherbergen wird."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Mailinglisten-Server:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihre @FORGENAME@-"
-#~ "Mailinglisten beherbergen wird."
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihre @FORGENAME@-"
-#~ "Shell-Konten beherbergen wird."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "ID der News-Administrators-Gruppe:"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Mitglieder der News-Administrator-Gruppe können Nachrichten für die "
-#~ "@FORGENAME@-Hauptseite genehmigen. Diese Gruppen-ID darf nicht 1 sein. "
-#~ "Dies sollte nur geändert werden, falls Sie ein Upgrade von einer "
-#~ "vorhergehenden Version durchführen und Ihre Daten behalten möchten."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "ID der Statistik-Administratorgruppe:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "ID der »peer rating«-Administratorgruppe:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihre @FORGENAME@-"
-#~ "Pakete beherbergen wird."
-
-#~ msgid "English"
-#~ msgstr "Englisch"
-
-#~ msgid "Bulgarian"
-#~ msgstr "Bulgarisch"
-
-#~ msgid "Catalan"
-#~ msgstr "Katalanisch"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "(traditionelles) Chinesisch"
-
-#~ msgid "Dutch"
-#~ msgstr "Holländisch"
-
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-#~ msgid "French"
-#~ msgstr "Französisch"
-
-#~ msgid "German"
-#~ msgstr "Deutsch"
-
-#~ msgid "Greek"
-#~ msgstr "Griechisch"
-
-#~ msgid "Hebrew"
-#~ msgstr "Hebräisch"
-
-#~ msgid "Indonesian"
-#~ msgstr "Indonesisch"
-
-#~ msgid "Italian"
-#~ msgstr "Italienisch"
-
-#~ msgid "Japanese"
-#~ msgstr "Japanisch"
-
-#~ msgid "Korean"
-#~ msgstr "Koreanisch"
-
-#~ msgid "Latin"
-#~ msgstr "Latein"
-
-#~ msgid "Norwegian"
-#~ msgstr "Norwegisch"
-
-#~ msgid "Polish"
-#~ msgstr "Polnisch"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "brasilianisches Portugiesisch"
-
-#~ msgid "Portuguese"
-#~ msgstr "Portugiesisch"
-
-#~ msgid "Russian"
-#~ msgstr "Russisch"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "(vereinfachtes) Chinesisch"
-
-#~ msgid "Spanish"
-#~ msgstr "Spanisch"
-
-#~ msgid "Swedish"
-#~ msgstr "Schwedisch"
-
-#~ msgid "Thai"
-#~ msgstr "Thailändisch"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "German"
-
-#~ msgid "Default language:"
-#~ msgstr "Standardsprache:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Bitte wählen Sie die Standardsprache für Webseiten."
-
-#~ msgid "Default theme:"
-#~ msgstr "Standard Thema:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Bitte wählen Sie das Standard-Thema für Webseiten. Dies muss ein gültiger "
-#~ "Namen sein."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Möchten Sie, dass E-Mail an ${noreply} verworfen wird?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ sendet und empfängt viele E-Mails von und auf der "
-#~ "»${noreply}«-Adresse."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "E-Mails an diese Adresse sollten an ein schwarzes Loch (/dev/null) "
-#~ "umgeleitet werden, es sei denn, Sie haben für diese Adresse eine andere "
-#~ "Verwendung."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Benutzer-E-Mail-Umleitungsserver:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Bitte geben Sie den Rechnernamen des Servers ein, der Ihren @FORGENAME@-"
-#~ "Benutzer-E-Mail-Umleiter beherbergen wird."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "@FORGENAME@-Administrator-Anmeldung:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Bitte wählen Sie den Benutzernamen für dieses Konto."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Anfängliche Liste der Fähigkeiten:"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ erlaubt es den Benutzern, eine Liste Ihrer Fähigkeiten zu "
-#~ "definieren, die aus allen in der Datenbank hinterlegten Fähigkeiten "
-#~ "ausgewählt werden können. Diese Liste ist die anfängliche Liste von "
-#~ "Fähigkeiten, die in die Datenbank eingegeben wird."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Bitte geben Sie die Namen der Fähigkeiten, getrennt durch Semikola »;«, "
-#~ "ein."
-
-#~ msgid "admin"
-#~ msgstr "Administrator"
+++ /dev/null
-# @PACKAGE@ po-debconf translation to Spanish
-# Copyright (C) 2007, 2009 Software in the Public Interest
-# This file is distributed under the same license as the @PACKAGE@ package.
-#
-# Changes:
-# - Initial translation
-# José Miguel Parrella Romero <joseparrella@cantv.net>, 2007
-#
-# - Updates
-# Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2009
-#
-# Traductores, si no conoce el formato PO, merece la pena leer la
-# documentación de gettext, especialmente las secciones dedicadas a este
-# formato, por ejemplo ejecutando:
-# info -n '(gettext)PO Files'
-# info -n '(gettext)Header Entry'
-#
-# Equipo de traducción al español, por favor, lean antes de traducir
-# los siguientes documentos:
-#
-# - El proyecto de traducción de Debian al español
-# http://www.debian.org/intl/spanish/
-# especialmente las notas de traducción en
-# http://www.debian.org/intl/spanish/notas
-#
-# - La guía de traducción de po's de debconf:
-# /usr/share/doc/po-debconf/README-trans
-# o http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@ 4.7~rc2-7\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2009-04-15 14:37+0200\n"
-"Last-Translator: Francisco Javier Cuadrado <fcocuadrado@gmail.com>\n"
-"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ domain or subdomain name:"
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "El nombre de dominio o subdominio de @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid ""
-#| "Please enter the domain that will host the @FORGENAME@ installation. Some "
-#| "services (scm, lists, etc.) will be given their own subdomain in that "
-#| "domain."
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Introduzca el dominio que albergará la instalación de @FORGENAME@. Algunos "
-"servicios (scm, lists, etc.) tendrán su propio subdominio en ese dominio."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid "@FORGENAME@ system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "Nombre del sistema de @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid ""
-#| "Please enter the name of the @FORGENAME@ system. It is used in various "
-#| "places throughout the system."
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Introduzca el nombre del sistema de @FORGENAME@. Se utiliza en varios sitios "
-"del sistema."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ administrator password:"
-msgid "@FORGENAME@ administrator password:"
-msgstr "Contraseña del administrador de @FORGENAME@"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"La cuenta de administrador de @FORGENAME@ tendrá privilegios completos sobre "
-"el sistema. Se debe utilizar para aprobar la creación de nuevos proyectos."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Escriba la contraseña para esta cuenta."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Confirmación de la contraseña:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Escriba nuevamente la contraseña para su confirmación."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-#, fuzzy
-#| msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "¿Quiere una configuración sencilla de DNS para @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Puede utilizar una configuración sencilla de DNS que utilizará comodines "
-"para asignar todos los anfitriones web de proyectos a una única dirección "
-"IP, y dirigir a todos los anfitriones de SCM a un único servidor de SCM, o "
-"una configuración compleja que le permitirá tener muchos servidores como "
-"servidores de proyectos web o de SCM."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Incluso si tiene una configuración sencilla de DNS, aún puede utilizar "
-"máquinas diferentes para los servidores de proyecto. Simplemente se asumirá "
-"que todos los directorios web de los proyectos están en el mismo servidor y "
-"que tiene un único servidor para SCM."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Dirección de correo electrónico del administrador de @FORGENAME@:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~| "site. It will be used when problems occur."
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Introduzca la dirección de correo electrónico del administrador de "
-#~ "@FORGENAME@ de este sitio. Se utilizará en caso de que ocurra un problema."
-
-#~ msgid "Download server:"
-#~ msgstr "Servidor de descargas:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará los paquetes de "
-#~ "@FORGENAME@."
-
-#, fuzzy
-#~| msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "No debería ser igual al de la máquina principal de @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Servidor de bases de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address (or hostname) of the server that will host "
-#~| "the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Introduzca la dirección IP (o nombre de la máquina) del servidor que "
-#~ "alberga la base de datos de @FORGENAME@."
-
-#~ msgid "Database name:"
-#~ msgstr "Nombre de la base de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the name of the database that will host the @FORGENAME@ "
-#~| "database."
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Introduzca el nombre de la base de datos que albergará la base de datos "
-#~ "de @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Nombre de usuario del administrador de la base de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the username of the database administrator for the server "
-#~| "that will host the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Introduzca el nombre de usuario del administrador de la base de datos del "
-#~ "servidor en el que se albergará la base de datos de @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Contraseña de la base de datos:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr ""
-#~ "Las conexiones al sistema de la base de datos se autentican con una "
-#~ "contraseña."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Escriba la contraseña de conexión."
-
-#~ msgid "IP address:"
-#~ msgstr "Dirección IP:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~| "installation."
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Introduzca la dirección IP del servidor que albergará la instalación de "
-#~ "@FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Es necesario para la configuración del servidor virtual de Apache."
-
-#~ msgid "Shell server:"
-#~ msgstr "Servidor de la consola:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará las cuentas de la consola "
-#~ "de @FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Servidor de las listas de correo:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "mailing lists."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará las listas de correo de "
-#~ "@FORGENAME@."
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará las cuentas de la consola "
-#~ "de @FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "ID del grupo de administración de las noticias:"
-
-#, fuzzy
-#~| msgid ""
-#~| "The members of the news admin group can approve news for the @FORGENAME@ "
-#~| "main page. This group's ID must not be 1. This should be changed only if "
-#~| "you upgrade from a previous version and want to keep the data."
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Los miembros del grupo de administradores de noticias pueden aprobar "
-#~ "nuevas noticias en la página principal de @FORGENAME@. El identificador "
-#~ "de este grupo no debe ser «1». Esto se debería cambiar sólo si actualiza "
-#~ "desde una versión previa y quiere mantener los datos."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "ID del grupo de administración de estadísticas:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "ID del grupo de administradores de las calificaciones comunitarias:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará los paquetes de "
-#~ "@FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "Inglés"
-
-#~ msgid "Bulgarian"
-#~ msgstr "Búlgaro"
-
-#~ msgid "Catalan"
-#~ msgstr "Catalán"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "Chino (Tradicional)"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandés"
-
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-#~ msgid "French"
-#~ msgstr "Francés"
-
-#~ msgid "German"
-#~ msgstr "Alemán"
-
-#~ msgid "Greek"
-#~ msgstr "Griego"
-
-#~ msgid "Hebrew"
-#~ msgstr "Hebreo"
-
-#~ msgid "Indonesian"
-#~ msgstr "Indonesio"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonés"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Latin"
-#~ msgstr "Latín"
-
-#~ msgid "Norwegian"
-#~ msgstr "Noruego"
-
-#~ msgid "Polish"
-#~ msgstr "Polaco"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "Portugués (Brasileño)"
-
-#~ msgid "Portuguese"
-#~ msgstr "Portugués"
-
-#~ msgid "Russian"
-#~ msgstr "Ruso"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "Chino (Simplificado)"
-
-#~ msgid "Spanish"
-#~ msgstr "Español"
-
-#~ msgid "Swedish"
-#~ msgstr "Sueco"
-
-#~ msgid "Thai"
-#~ msgstr "Tailandés"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "Inglés [Idioma predeterminado]"
-
-#~ msgid "Default language:"
-#~ msgstr "Idioma predeterminado:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Elija el idioma predeterminado para las páginas web."
-
-#~ msgid "Default theme:"
-#~ msgstr "Tema predeterminado:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Elija el tema predeterminado para las páginas web. Debe ser un nombre "
-#~ "válido."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "¿Desea borrar los correos enviados a ${noreply}?"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~| "\"${noreply}\" address."
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ envía y recibe muchos correos electrónicos hacia y desde la "
-#~ "dirección «${noreply}»."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Los correos electrónicos que se envíen a esa dirección se deberían "
-#~ "redireccionar a un agujero negro («/dev/null»), a menos que esa dirección "
-#~ "tenga otro uso."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Servidor de reenvío de los correos de usuarios:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "user mail redirector."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Introduzca el nombre del servidor que albergará el redirector de los "
-#~ "correos electrónicos de usuarios de @FORGENAME@."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator login:"
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Usuario del administrador de @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Escriba el nombre de usuario para esta cuenta."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Lista inicial de habilidades:"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~| "from those present in the database. This list is the initial list of "
-#~| "skills that will enter the database."
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ permite que los usuarios definan una lista de habilidades, a "
-#~ "elegir de las presentes en la base de datos. Esta lista es la lista "
-#~ "inicial de habilidades que se introducirá en la base de datos."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Introduzca una lista de nombres de habilidades, separados por punto y "
-#~ "coma."
+++ /dev/null
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2008-03-24 17:41+0200\n"
-"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
-"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
-"Language: fi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Finnish\n"
-"X-Poedit-Country: FINLAND\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ domain or subdomain name:"
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "@FORGENAME@n verkkotunnus tai aliverkkotunnus:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid ""
-#| "Please enter the domain that will host the @FORGENAME@ installation. Some "
-#| "services (scm, lists, etc.) will be given their own subdomain in that "
-#| "domain."
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Anna @FORGENAME@-asennuksen verkkotunnus. Joillekin palveluille "
-"(versionhallinta, listat, jne.) annetaan oma aliverkkotunnus tämän "
-"verkkotunnuksen alta."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid "@FORGENAME@ system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "@FORGENAME@n järjestelmänimi:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid ""
-#| "Please enter the name of the @FORGENAME@ system. It is used in various "
-#| "places throughout the system."
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Anna @FORGENAME@-järjestelmän nimi. Tätä käytetään eri paikoissa ympäri "
-"järjestelmää."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ administrator password:"
-msgid "@FORGENAME@ administrator password:"
-msgstr "@FORGENAME@n ylläpitosalasana:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"@FORGENAME@n ylläpitotunnuksella tulee olemaan täydet oikeudet "
-"järjestelmään. Sitä käytetään hyväksyttäessä uusien projektien luominen."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Valitse tunnuksen salasana."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Salasanan vahvistus:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Anna salasana uudestaan vahvistukseksi."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-#, fuzzy
-#| msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Käytetäänkö @FORGENAME@n kanssa yksinkertaista DNS-asetusta?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Kaikki projektin verkkoasemat voidaan kuvata yhteen IP-osoitteeseen "
-"yksinkertaisella, korvausmerkkejä sisältävällä DNS-asetuksella ja ohjata "
-"kaikki versionhallintakoneet yhdelle versionhallintapalvelimelle. "
-"Vaihtoehtoisesti voidaan käyttää monipuolisempia asetuksia, jotka sallivat "
-"useampia palvelimia projektin verkko- tai versionhallintapalvelimina."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Vaikka käytettäisiin yksinkertaista DNS-asetusta, voidaan erillisiä koneita "
-"silti käyttää projektipalvelimina. Tällöin vain oletetaan, että kaikki "
-"projektien verkkohakemistot ovat samalla palvelimella yhden "
-"versionhallintapalvelimen kanssa."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "@FORGENAME@n ylläpidon sähköpostiosoite:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~| "site. It will be used when problems occur."
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n ylläpidon sähköpostiosoite. Tätä käytetään, kun "
-#~ "ongelmia ilmaantuu."
-
-#~ msgid "Download server:"
-#~ msgstr "Latauspalvelin:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Anna @FORGENAME@-paketteja isännöivän palvelimen verkkonimi."
-
-#, fuzzy
-#~| msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Tämän ei tulisi olla @FORGENAME@n pääpalvelin."
-
-#~ msgid "Database server:"
-#~ msgstr "Tietokantapalvelin:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address (or hostname) of the server that will host "
-#~| "the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n tietokantaa isännöivän palvelimen IP-osoite (tai "
-#~ "verkkonimi)."
-
-#~ msgid "Database name:"
-#~ msgstr "Tietokannan nimi:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the name of the database that will host the @FORGENAME@ "
-#~| "database."
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr "Anna @FORGENAME@n tietokantaa isännöivän tietokannan nimi."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Tietokannan ylläpitotunnus:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the username of the database administrator for the server "
-#~| "that will host the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n tietokantaa isännöivän palvelimen tietokannan "
-#~ "ylläpitokäyttäjätunnus."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Tietokannan salasana:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "Yhteydet tietokantaan todennetaan salasanalla."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Anna yhteyssalasana."
-
-#~ msgid "IP address:"
-#~ msgstr "IP-osoite:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~| "installation."
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr "Anna @FORGENAME@-asennusta isännöivän palvelimen IP-osoite."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Tätä tarvitaan Apachen näennäiskoneiden asetukseen."
-
-#~ msgid "Shell server:"
-#~ msgstr "Komentorivipalvelin:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n komentorivitunnuksia isännöivän palvelimen verkkonimi."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Postituslistapalvelin:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "mailing lists."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr "Anna @FORGENAME@n postituslistoja isännöivän palvelimen verkkonimi."
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n komentorivitunnuksia isännöivän palvelimen verkkonimi."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Uutisten ylläpitäjäryhmän ID:"
-
-#, fuzzy
-#~| msgid ""
-#~| "The members of the news admin group can approve news for the @FORGENAME@ "
-#~| "main page. This group's ID must not be 1. This should be changed only if "
-#~| "you upgrade from a previous version and want to keep the data."
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Uutisten ylläpitäjäryhmän jäsenet voivat hyväksyä uutisia @FORGENAME@n "
-#~ "pääsivulle. Tämän ryhmän ID:n ei tule olla 1. Tätä tulisi muuttaa vain, "
-#~ "jos päivität aikaisemmasta versiosta ja haluat säilyttää tiedot."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Tilastojen ylläpitäjäryhmän ID:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "Vertaisarvioiden ylläpitäjäryhmän ID:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Anna @FORGENAME@n paketteja isännöivän palvelimen verkkonimi."
-
-#~ msgid "English"
-#~ msgstr "englanti"
-
-#~ msgid "Bulgarian"
-#~ msgstr "bulgaria"
-
-#~ msgid "Catalan"
-#~ msgstr "katalaani"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "kiina (perinteinen)"
-
-#~ msgid "Dutch"
-#~ msgstr "hollanti"
-
-#~ msgid "Esperanto"
-#~ msgstr "esperanto"
-
-#~ msgid "French"
-#~ msgstr "ranska"
-
-#~ msgid "German"
-#~ msgstr "saksa"
-
-#~ msgid "Greek"
-#~ msgstr "kreikka"
-
-#~ msgid "Hebrew"
-#~ msgstr "heprea"
-
-#~ msgid "Indonesian"
-#~ msgstr "indonesia"
-
-#~ msgid "Italian"
-#~ msgstr "italia"
-
-#~ msgid "Japanese"
-#~ msgstr "japani"
-
-#~ msgid "Korean"
-#~ msgstr "korea"
-
-#~ msgid "Latin"
-#~ msgstr "latina"
-
-#~ msgid "Norwegian"
-#~ msgstr "norja"
-
-#~ msgid "Polish"
-#~ msgstr "puola"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "portugali (Brasilian)"
-
-#~ msgid "Portuguese"
-#~ msgstr "portugali"
-
-#~ msgid "Russian"
-#~ msgstr "venäjä"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "kiina (yksinkertaistettu)"
-
-#~ msgid "Spanish"
-#~ msgstr "espanja"
-
-#~ msgid "Swedish"
-#~ msgstr "ruotsi"
-
-#~ msgid "Thai"
-#~ msgstr "thai"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "englanti"
-
-#~ msgid "Default language:"
-#~ msgstr "Oletuskieli:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Valitse verkkosivujen oletuskieli."
-
-#~ msgid "Default theme:"
-#~ msgstr "Oletusteema:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr "Valitse verkkosivujen oletusteema. Tämän tulee olla käypä nimi."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr ""
-#~ "Haluatko, että osoitteeseen ${noreply} tuleva sähköposti heitetään pois?"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~| "\"${noreply}\" address."
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ lähettää ja vastaanottaa paljon sähköpostia osoitteen "
-#~ "”${noreply}” kautta."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Tuohon osoitteeseen tuleva sähköposti tulisi ohjata mustaan aukkoon (/dev/"
-#~ "null), jos osoitteelle ei ole muuta käyttöä."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Käyttäjäpostien edelleenohjaajapalvelin:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "user mail redirector."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Anna @FORGENAME@n käyttäjäpostien edelleenohjaajaa isännöivän palvelimen "
-#~ "verkkonimi."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator login:"
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "@FORGENAME@n ylläpitotunnus:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Valitse tämän tunnuksen nimi."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Alkuperäinen lista taidoista:"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~| "from those present in the database. This list is the initial list of "
-#~| "skills that will enter the database."
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ antaa käyttäjien määrittää listan taidoistaan. Ne valitaan "
-#~ "tietokannassa tällä hetkellä olevista. Tämä alkuperäinen taitolista "
-#~ "tallennetaan tietokantaan."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr "Anna puolipisteillä erotettu lista taitojen nimistä."
-
-#~ msgid "admin"
-#~ msgstr "admin"
+++ /dev/null
-# Translation of @PACKAGENAME@ debconf templates to French
-# Copyright (C) 2002-2007 Christian Perrier <bubulle@debian.org>
-# This file is distributed under the same license as the @PACKAGENAME@ package.
-#
-# Christian Perrier <bubulle@debian.org>, 2002-2007, 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGENAME@\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-05-29 18:33+0200\n"
-"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
-"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Nom de domaine ou de sous-domaine @FORGENAME@ :"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Veuillez indiquer le nom de domaine qui hébergera le serveur @FORGENAME@. "
-"Certains services auront leur propre sous-domaine à l'intérieur de ce "
-"domaine (scm, lists, etc.)."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid "@FORGENAME@ system name:"
-msgstr "Nom du système @FORGENAME@ :"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Veuillez indiquer le nom du système @FORGENAME@. Il est utilisé dans "
-"plusieurs parties du serveur."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "Mot de passe de l'administrateur de @FORGENAME@ :"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr "Le compte d'administration de @FORGENAME@ aura tous les privilèges sur la forge. Il servira à approuver la création de projets."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "Please choose the password for this forge account."
-msgstr "Veuillez choisir le mot de passe de ce compte."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Confirmation du mot de passe :"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Veuillez entrer à nouveau le mot de passe, pour confirmation."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "installer la nouvelle version proposée par @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "conserver la version actuelle"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "afficher les différences entre les versions"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "afficher les différences côte à côte"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "suspendre ce processus pour examiner la situation"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Que voulez-vous faire du ficher de configuration ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr "Le fichier de configuration ${FILE} doit être modifié pour permettre le fonctionnement de @PACKAGE@, mais il appartien au paquet postgresql."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Souhaitez-vous une configuration DNS simplifiée ?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Il est possible de mettre en service une gestion DNS simplifiée qui "
-"utilisera des jokers (« wildcards ») pour affecter tous les serveurs web de "
-"vos projets à une seule adresse IP, ainsi que tous les hôtes SCM (« Source "
-"Control Management » : gestionnaire de configuration) à un seul serveur SCM. "
-"Une configuration plus complexe est également possible pour utiliser "
-"plusieurs serveurs comme serveurs web ou SCM."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Même si vous choisissez la configuration DNS simplifiée, vous pourrez "
-"toujours utiliser des serveurs différents comme serveurs de projets. Ce "
-"choix n'apporte qu'une restriction : tous les répertoires web sont sur un "
-"seul serveur, ainsi que tous les entrepôts SCM."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Adresse électronique de l'administrateur @FORGENAME@ :"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Veuillez indiquer l'adresse de l'administrateur de @FORGENAME@. Elle est "
-#~ "utilisée quand un problème se produit."
-
-#~ msgid "Download server:"
-#~ msgstr "Serveur de téléchargement :"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom du serveur qui hébergera les paquets de "
-#~ "@FORGENAME@."
-
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr ""
-#~ "Ce nom devrait être différent du nom d'hôte principal de @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Serveur de base de données :"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Veuillez indiquer l'adresse IP ou le nom du serveur qui hébergera la base "
-#~ "de données de @FORGENAME@."
-
-#~ msgid "Database name:"
-#~ msgstr "Nom de la base de données :"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr "Veuillez indiquer le nom de la base de données pour @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Identifiant de l'administrateur du serveur de bases de données :"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Veuillez indiquer l'identifiant de l'administrateur du serveur de bases "
-#~ "de données qui hébergera la base de données de @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Mot de passe de connexion au serveur de bases de données :"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr ""
-#~ "Les connexions au serveur de bases de données sont protégées par un mot "
-#~ "de passe."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Veuillez choisir ce mot de passe de connexion."
-
-#~ msgid "IP address:"
-#~ msgstr "Adresse IP :"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Veuillez indiquer l'adresse IP du serveur qui hébergera @FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr ""
-#~ "Cette information est indispensable à la configuration des hôtes virtuels "
-#~ "pour Apache."
-
-#~ msgid "Shell server:"
-#~ msgstr "Serveur interactif (« shell server ») :"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom du serveur qui hébergera les comptes interactifs "
-#~ "@FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Serveur de listes de diffusion :"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom d'hôte du serveur qui hébergera les listes de "
-#~ "diffusion de @FORGENAME@."
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom d'hôte du serveur qui hébergera les comptes "
-#~ "interactifs @FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Numéro du groupe (GID) d'administration des nouvelles :"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Les membres du groupe d'administration des nouvelles peuvent approuver "
-#~ "des nouvelles pour les publier sur la page d'accueil de @FORGENAME@. Le "
-#~ "numéro de ce groupe ne doit pas être 1. Cette information n'est requise "
-#~ "que si vous mettez à jour une installation précédente et que vous voulez "
-#~ "garder vos données."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Numéro du groupe d'administration des statistiques :"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "Numéro du groupe d'administration des notations (« rating ») :"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom du serveur qui hébergera les paquets de "
-#~ "@FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "French"
-
-#~ msgid "Bulgarian"
-#~ msgstr "bulgare"
-
-#~ msgid "Catalan"
-#~ msgstr "catalan"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "chinois traditionnel"
-
-#~ msgid "Dutch"
-#~ msgstr "néerlandais"
-
-#~ msgid "Esperanto"
-#~ msgstr "espéranto"
-
-#~ msgid "French"
-#~ msgstr "français"
-
-#~ msgid "German"
-#~ msgstr "allemand"
-
-#~ msgid "Greek"
-#~ msgstr "grec"
-
-#~ msgid "Hebrew"
-#~ msgstr "hébreu"
-
-#~ msgid "Indonesian"
-#~ msgstr "indonésien"
-
-#~ msgid "Italian"
-#~ msgstr "italien"
-
-#~ msgid "Japanese"
-#~ msgstr "japonais"
-
-#~ msgid "Korean"
-#~ msgstr "coréen"
-
-#~ msgid "Latin"
-#~ msgstr "latin"
-
-#~ msgid "Norwegian"
-#~ msgstr "norvégien"
-
-#~ msgid "Polish"
-#~ msgstr "polonais"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "portugais du Brésil"
-
-#~ msgid "Portuguese"
-#~ msgstr "portugais"
-
-#~ msgid "Russian"
-#~ msgstr "russe"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "chinois simplifié"
-
-#~ msgid "Spanish"
-#~ msgstr "espagnol"
-
-#~ msgid "Swedish"
-#~ msgstr "suédois"
-
-#~ msgid "Thai"
-#~ msgstr "thaï"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "French"
-
-#~ msgid "Default language:"
-#~ msgstr "Langue par défaut :"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Veuillez choisir la langue par défaut des pages web."
-
-#~ msgid "Default theme:"
-#~ msgstr "Thème par défaut :"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Veuillez choisir le thème par défaut des pages web. Veillez à indiquer un "
-#~ "nom valable."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Faut-il supprimer les courriers pour ${noreply} ?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ envoie fréquemment des courriers de et vers l'adresse "
-#~ "« ${noreply} »."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Il est conseillé de rediriger les courriers adressés à cette adresse vers "
-#~ "un trou noir (/dev/null), sauf si elle est utilisée par ailleurs."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Redirecteur des courriers des utilisateurs :"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Veuillez indiquer le nom du serveur qui hébergera le redirecteur du "
-#~ "courriel utilisateurs de @FORGENAME@."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Identifiant de l'administrateur de @FORGENAME@ :"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Veuillez choisir l'identifiant à utiliser pour ce compte."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Liste initiale de domaines de compétences :"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "Les utilisateurs de @FORGENAME@ peuvent afficher leurs niveaux de "
-#~ "compétence dans différents domaines. Cette liste est la liste initiale de "
-#~ "ces domaines. "
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Veuillez indiquer les noms de ces domaines de compétence, séparés par des "
-#~ "points-virgules."
-
-#~ msgid "admin"
-#~ msgstr "admin"
+++ /dev/null
-# Galician translation of @PACKAGE@'s debconf templates
-# This file is distributed under the same license as the @PACKAGE@ package.
-#
-# Jacobo Tarrio <jtarrio@debian.org>, 2007, 2008.
-# Jorge Barreiro <yortx.barry@gmail.com>, 2012.
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-23 12:29+0200\n"
-"Last-Translator: Jorge Barreiro <yortx.barry@gmail.com>\n"
-"Language-Team: Galician <proxecto@trasno.net>\n"
-"Language: gl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#| msgid "@FORGENAME@ domain or subdomain name:"
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Nome de dominio ou subdominio de @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#| msgid ""
-#| "Please enter the domain that will host the @FORGENAME@ installation. Some "
-#| "services (scm, lists, etc.) will be given their own subdomain in that "
-#| "domain."
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Introduza o dominio que hospedará a instalación de @FORGENAME@. Algúns "
-"servizos (scm, listas, etc.) terán o seu propio subdominio dentro dese "
-"dominio."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid "@FORGENAME@ system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "Nome do sistema @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid ""
-#| "Please enter the name of the @FORGENAME@ system. It is used in various "
-#| "places throughout the system."
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Introduza o nome do sistema @FORGENAME@. Emprégase en varios lugares do "
-"sistema."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "@FORGENAME@ administrator password:"
-msgid "@FORGENAME@ administrator password:"
-msgstr "Contrasinal de administrador de @FORGENAME@:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"A conta de administrador de @FORGENAME@ terá todos os privilexios no "
-"sistema. Empregarase para aprobar a creación de novos proxectos."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Escolla un contrasinal para esta conta."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Confirmación do contrasinal:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Volva introducir o contrasinal para confirmalo."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "instalar a nova versión configurada por @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "manter a versión local instalada actualmente"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "amosar as diferenzas entre as versións"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "mostrar as entre as versións cara a cara"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "executar un intérprete de ordes para examinar a situación"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Que quere facer co ficheiro de configuración ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"O ficheiro de configuración ${FILE} precisa ser modificado por @PACKAGE@, "
-"pero tamén é un ficheiro de configuración do paquete «postgresql»."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-#| msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Quere unha configuración de DNS simple para @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Pode empregar unha configuración de DNS simple con comodíns para mapear "
-"tódalas webs dos proxectos a un só enderezo IP e dirixir tódolos nomes dos "
-"SCM a un só servidor de SCM, ou unha configuración complexa que lle permite "
-"ter moitos servidores como servidores web ou servidores SCM."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Aínda se ten unha configuración simple de DNS, pode ter varias máquinas para "
-"os servidores dos proxectos; só supón que tódolos directorios web dos "
-"proxectos están no mesmo servidor cun só servidor para SCM."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Enderezo de email do administrador de @FORGENAME@:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~| "site. It will be used when problems occur."
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Introduza o enderezo de email do administrador de @FORGENAME@ deste "
-#~ "sitio. Hase empregar se aparecen problemas."
-
-#~ msgid "Download server:"
-#~ msgstr "Servidor de descargas:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar os paquetes de @FORGENAME@."
-
-#, fuzzy
-#~| msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Non debería ser o mesmo que o servidor principal de @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Servidor de bases de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address (or hostname) of the server that will host "
-#~| "the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Introduza o enderezo IP (ou nome) do servidor que ha hospedar a base de "
-#~ "datos de @FORGENAME@."
-
-#~ msgid "Database name:"
-#~ msgstr "Nome da base de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the name of the database that will host the @FORGENAME@ "
-#~| "database."
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Introduza o nome da base de datos que ha hospedar as contas shell de "
-#~ "@FORGENAME@"
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Nome de usuario do administrador da base de datos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the username of the database administrator for the server "
-#~| "that will host the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Introduza o nome de usuario do administrador de bases de datos do "
-#~ "servidor que ha hospedar a base de datos de @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Contrasinal para a base de datos:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr ""
-#~ "As conexións ao sistema de bases de datos van autenticadas cun "
-#~ "contrasinal."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Escolla o contrasinal para a conexión."
-
-#~ msgid "IP address:"
-#~ msgstr "Enderezo IP:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~| "installation."
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Introduza o enderezo IP do servidor que ha hospedar a instalación de "
-#~ "@FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Isto é preciso para configurar a hospedaxe virtual de Apache."
-
-#~ msgid "Shell server:"
-#~ msgstr "Servidor de shell:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar as contas shell de "
-#~ "@FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Servidor de listas de correo:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "mailing lists."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar as listas de correo de "
-#~ "@FORGENAME@."
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar as contas shell de "
-#~ "@FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "ID do grupo de administradores de novas:"
-
-#, fuzzy
-#~| msgid ""
-#~| "The members of the news admin group can approve news for the @FORGENAME@ "
-#~| "main page. This group's ID must not be 1. This should be changed only if "
-#~| "you upgrade from a previous version and want to keep the data."
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Os membros do grupo de administradores de novas poden aprobar as novas da "
-#~ "páxina principal de @FORGENAME@. Este ID de grupo non debe ser 1. Só se "
-#~ "debería cambiar se está a se actualizar dunha versión anterior e quere "
-#~ "conservar os datos."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "ID do grupo de administradores de estatísticas:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "ID do grupo de administradores de calificacións de iguais:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar os paquetes de @FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "Inglés"
-
-#~ msgid "Bulgarian"
-#~ msgstr "Búlgaro"
-
-#~ msgid "Catalan"
-#~ msgstr "Catalán"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "Chinés (Tradicional)"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandés"
-
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-#~ msgid "French"
-#~ msgstr "Francés"
-
-#~ msgid "German"
-#~ msgstr "Alemán"
-
-#~ msgid "Greek"
-#~ msgstr "Grego"
-
-#~ msgid "Hebrew"
-#~ msgstr "Hebreo"
-
-#~ msgid "Indonesian"
-#~ msgstr "Indonesio"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Xaponés"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Latin"
-#~ msgstr "Latín"
-
-#~ msgid "Norwegian"
-#~ msgstr "Noruegués"
-
-#~ msgid "Polish"
-#~ msgstr "Polaco"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "Portugués (Brasil)"
-
-#~ msgid "Portuguese"
-#~ msgstr "Portugués"
-
-#~ msgid "Russian"
-#~ msgstr "Ruso"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "Chinés (Simplificado)"
-
-#~ msgid "Spanish"
-#~ msgstr "Español"
-
-#~ msgid "Swedish"
-#~ msgstr "Sueco"
-
-#~ msgid "Thai"
-#~ msgstr "Thai"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "Inglés"
-
-#~ msgid "Default language:"
-#~ msgstr "Idioma por defecto:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Escolla o idioma por defecto para as páxinas web."
-
-#~ msgid "Default theme:"
-#~ msgstr "Tema por defecto:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Escolla o tema por defecto para as páxinas web. Debe ser un nome válido."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "¿Quere que se descarten as mensaxes enviadas a ${noreply}?"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~| "\"${noreply}\" address."
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ envía e recibe moito email desde e para o enderezo "
-#~ "\"${noreply}\"."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "O email dirixido a ese enderezo debería ser enviado a un burato negro (/"
-#~ "dev/null), a menos que empregue ese enderezo para outra cousa."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Redirector de correo dos usuarios:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "user mail redirector."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Introduza o nome do servidor que ha hospedar o redirector do correo dos "
-#~ "usuarios de @FORGENAME@."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator login:"
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Nome do usuario administrador de @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Escolla o nome de usuario para esta conta."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Lista inicial de coñecementos:"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~| "from those present in the database. This list is the initial list of "
-#~| "skills that will enter the database."
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ permítelle aos usuarios facer unha lista cos seus "
-#~ "coñecementos, que poden escoller entre os que figuran na base de datos. "
-#~ "Esta lista é a lista inicial de coñecementos que han entrar na base de "
-#~ "datos."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Introduza unha lista de nomes de coñecementos separados por signos de "
-#~ "punto e coma."
-
-#~ msgid "admin"
-#~ msgstr "admin"
+++ /dev/null
-#
-# Translators, if you are not familiar with the PO format, gettext
-# documentation is worth reading, especially sections dedicated to
-# this format, e.g. by running:
-# info -n '(gettext)PO Files'
-# info -n '(gettext)Header Entry'
-#
-# Some information specific to po-debconf are available at
-# /usr/share/doc/po-debconf/README-trans
-# or http://www.debian.org/intl/l10n/po-debconf/README-trans
-#
-# Developers do not need to manually edit POT or PO files.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2008-03-28 14:19+0100\n"
-"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
-"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Dutch\n"
-
-# Type: string
-# Description
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ domain or subdomain name:"
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "De @FORGENAME@-domeinnaam (of subdomeinnaam):"
-
-# Type: string
-# Description
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-#, fuzzy
-#| msgid ""
-#| "Please enter the domain that will host the @FORGENAME@ installation. Some "
-#| "services (scm, lists, etc.) will be given their own subdomain in that "
-#| "domain."
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Wat is het domein waarop uw @FORGENAME@-installatie gehost wordt? Sommige "
-"diensten (broncodebeheer, lijsten, ...) zullen hun eigen subdomein krijgen "
-"binnen dat domein."
-
-# Type: string
-# Description
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid "@FORGENAME@ system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "Naam van het @FORGENAME@-systeem:"
-
-# Type: string
-# Description
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#, fuzzy
-#| msgid ""
-#| "Please enter the name of the @FORGENAME@ system. It is used in various "
-#| "places throughout the system."
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Wat is de naam van het @FORGENAME@-systeem? Deze naam wordt op verschillende "
-"plaatsen in het systeem gebruikt."
-
-# Type: password
-# Description
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "@FORGENAME@ administrator password:"
-msgid "@FORGENAME@ administrator password:"
-msgstr "Wachtwoord van de @FORGENAME@-beheerder:"
-
-# Type: string
-# Description
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"De @FORGENAME@-beheerdersaccount krijgt volledige rechten binnen @FORGENAME@-"
-"systeem, en wordt gebruikt om nieuwe projecten goed te keuren."
-
-# Type: password
-# Description
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Wat is het wachtwoord van deze account?"
-
-# Type: password
-# Description
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Wachtwoordbevestiging:"
-
-# Type: password
-# Description
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Ter bevestiging dient het wachtwoord nogmaals ingevoerd te worden."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-
-# Type: boolean
-# Description
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-#, fuzzy
-#| msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Wilt u een eenvoudige DNS-opzet voor @FORGENAME@?"
-
-# Type: boolean
-# Description
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Er kan een eenvoudige DNS-opstelling gebruikt worden die jokers gebruikt om "
-"alle project-websites naar een enkel IP-adres en alle scm-hosts naar een "
-"enkele SCM-server te mappen. Of u er kan een complexe opstelling gebruikt "
-"worden die toelaat meerdere servers als project-webserver of SCM-server te "
-"gebruiken."
-
-# Type: boolean
-# Description
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Ook bij gebruik van de eenvoudige DNS-opzet heeft kunt u alsnog "
-"verschillende machines gebruiken voor de projectservers, de enige aanname is "
-"dat alle project-webmappen op dezelfde server staan, en dat u een enkele "
-"server heeft voor bronbeheer (SCM)."
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "E-mailadres van de @FORGENAME@-beheerder:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~| "site. It will be used when problems occur."
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Wat is het e-mail-adres van de @FORGENAME@-beheerder op dit systeem? "
-#~ "Wordt gebruikt wanneer er problemen optreden."
-
-# Type: string
-# Description
-#~ msgid "Download server:"
-#~ msgstr "Downloadserver:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server waarop de @FORGENAME@-pakketten "
-#~ "gehost gaan worden?"
-
-#, fuzzy
-#~| msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Dit dient te verschillen van de hoofd-@FORGENAME@-server."
-
-# Type: string
-# Description
-#~ msgid "Database server:"
-#~ msgstr "Databaseserver:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address (or hostname) of the server that will host "
-#~| "the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Wat is het IP-adres (of de computernaam) van de server die de @FORGENAME@-"
-#~ "database gaat hosten?"
-
-# Type: string
-# Description
-#~ msgid "Database name:"
-#~ msgstr "Databasenaam:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the name of the database that will host the @FORGENAME@ "
-#~| "database."
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Wat is de naam van de database die als de @FORGENAME@-database gebruikt "
-#~ "gaat worden?"
-
-# Type: string
-# Description
-#~ msgid "Database administrator username:"
-#~ msgstr "Gebruikersnaam van de databasebeheerder:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the username of the database administrator for the server "
-#~| "that will host the @FORGENAME@ database."
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Wat is de gebruikersnaam van de database-beheerder van de server die de "
-#~ "@FORGENAME@-database gaat hosten?"
-
-# Type: password
-# Description
-#~ msgid "Password used for the database:"
-#~ msgstr "Databasewachtwoord:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr ""
-#~ "Verbindingen met het databasesysteem worden geauthentificeerd via een "
-#~ "wachtwoord."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Wat is het wachtwoord voor de verbinding?"
-
-# Type: string
-# Description
-#~ msgid "IP address:"
-#~ msgstr "IP-adres:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~| "installation."
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server die de @FORGENAME@-installatie gaat "
-#~ "hosten?"
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Dit is nodig voor om de 'virtual hosting' van Apache in te stellen."
-
-# Type: string
-# Description
-#~ msgid "Shell server:"
-#~ msgstr "Shell-server:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server die de @FORGENAME@-shellaccounts "
-#~ "gaat aanbieden?"
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "E-maillijst-server:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "mailing lists."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server die de @FORGENAME@-e-maillijsten "
-#~ "gaat hosten?"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server die de @FORGENAME@-shellaccounts "
-#~ "gaat aanbieden?"
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Groep-ID van de nieuws-beheerdersgroep:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "The members of the news admin group can approve news for the @FORGENAME@ "
-#~| "main page. This group's ID must not be 1. This should be changed only if "
-#~| "you upgrade from a previous version and want to keep the data."
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "De leden van de niews-beheerdersgroep kunnen nieuws voor de @FORGENAME@-"
-#~ "hoofdpagina goedkeuren. Deze groep-ID mag niet 1 zijn. Dit optie is enkel "
-#~ "van belang als u opwaardeerd van een eerdere versie en uw gegevens wilt "
-#~ "bewaren."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Groep-ID van de statistiekbeheerdersgroep:"
-
-# Type: string
-# Description
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "groep-ID van de 'peer rating'-beheerdersgroep:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server die de @FORGENAME@-pakketten gaat "
-#~ "hosten?"
-
-# Type: select
-# DefaultChoice
-#~ msgid "English"
-#~ msgstr "Engels"
-
-# Type: select
-# Choices
-#~ msgid "Bulgarian"
-#~ msgstr "Bulgaars"
-
-# Type: select
-# Choices
-#~ msgid "Catalan"
-#~ msgstr "Catalaans"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "Traditioneel Chinees"
-
-# Type: select
-# Choices
-#~ msgid "Dutch"
-#~ msgstr "Nederlands"
-
-# Type: select
-# Choices
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-# Type: select
-# Choices
-#~ msgid "French"
-#~ msgstr "Frans"
-
-# Type: select
-# Choices
-#~ msgid "German"
-#~ msgstr "Duits"
-
-# Type: select
-# Choices
-#~ msgid "Greek"
-#~ msgstr "Grieks"
-
-# Type: select
-# Choices
-#~ msgid "Hebrew"
-#~ msgstr "Hebreeuws"
-
-# Type: select
-# Choices
-#~ msgid "Indonesian"
-#~ msgstr "Indonesisch"
-
-# Type: select
-# Choices
-#~ msgid "Italian"
-#~ msgstr "Italiaans"
-
-# Type: select
-# Choices
-#~ msgid "Japanese"
-#~ msgstr "Japans"
-
-# Type: select
-# Choices
-#~ msgid "Korean"
-#~ msgstr "Koreaans"
-
-# Type: select
-# Choices
-#~ msgid "Latin"
-#~ msgstr "Latijns"
-
-# Type: select
-# Choices
-#~ msgid "Norwegian"
-#~ msgstr "Noors"
-
-# Type: select
-# Choices
-#~ msgid "Polish"
-#~ msgstr "Pools"
-
-# Type: select
-# Choices
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "Braziliaans Portugees"
-
-# Type: select
-# Choices
-#~ msgid "Portuguese"
-#~ msgstr "Portugees"
-
-# Type: select
-# Choices
-#~ msgid "Russian"
-#~ msgstr "Russisch"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "Vereenvoudigd Chinees"
-
-# Type: select
-# Choices
-#~ msgid "Spanish"
-#~ msgstr "Spaans"
-
-# Type: select
-# Choices
-#~ msgid "Swedish"
-#~ msgstr "Zweeds"
-
-# Type: select
-# Choices
-#~ msgid "Thai"
-#~ msgstr "Thais"
-
-# Type: select
-# Description
-#~ msgid "English[ Default language]"
-#~ msgstr "Dutch"
-
-# Type: select
-# Description
-#~ msgid "Default language:"
-#~ msgstr "Standaardtaal:"
-
-# Type: select
-# Description
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Wat wordt de standaardtaal voor webpagina's?"
-
-# Type: string
-# Description
-#~ msgid "Default theme:"
-#~ msgstr "Standaardthema:"
-
-# Type: string
-# Description
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Wat wordt het standaardthema voor webpagina's? Dit dient een geldige naam "
-#~ "te zijn."
-
-# Type: boolean
-# Description
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Wilt u dat e-mail voor ${noreply} weggegooid wordt?"
-
-# Type: boolean
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~| "\"${noreply}\" address."
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ verstuurt en ontvangt een heleboel e-mails van en naar het "
-#~ "adres '${noreply}'."
-
-# Type: boolean
-# Description
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Tenzij u dat adres voor iets anders gebruikt is het aan te raden om de e-"
-#~ "mail naar dat adres om te leiden naar een zwart gat (/dev/null)."
-
-# Type: string
-# Description
-#~ msgid "User mail redirector server:"
-#~ msgstr "De e-mail-doorstuur-server:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "user mail redirector."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Wat is de computernaam van de server verantwoordelijk voor het doorsturen "
-#~ "van de mail voor @FORGENAME@-gebruikers?"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator login:"
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Gebruikersnaam @FORGENAME@-beheerder:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Wat is de gebruikersnaam voor deze account?"
-
-# Type: string
-# Description
-#~ msgid "Initial list of skills:"
-#~ msgstr "Initiële lijst van vaardigheden:"
-
-# Type: string
-# Description
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~| "from those present in the database. This list is the initial list of "
-#~| "skills that will enter the database."
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ geeft gebruikers de mogelijkheid om een lijst met hun "
-#~ "vaardigheden op te geven, gekozen uit deze aanwezig in de database. Dit "
-#~ "is de de initiële lijst van vaardigheden voor de database."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Gelieve een met puntkomma's gescheiden lijst van vaardigheidsnamen in te "
-#~ "voeren."
+++ /dev/null
-# Portuguese translation for fusionforge's debconf messages
-# Copyright (C) 2007 the fusionforge's copyright holder
-# This file is distributed under the same license as the fusionforge package.
-#
-# Ricardo Silva <ardoric@gmail.com>, 2007-2008.
-# Américo Monteiro <a_monteiro@netcabo.pt>, 2012.
-msgid ""
-msgstr ""
-"Project-Id-Version: fusionforge 5.2~rc1-2\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-14 20:53+0100\n"
-"Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
-"Language-Team: Portuguese <traduz@debianpt.org>\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.4\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "O nome do domínio ou subdomínio de @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Por favor introduza o domínio que vai conter a instalação de @FORGENAME@. "
-"Alguns serviços (scm, listas de mail, etc.) terão o seu próprio subdomínio "
-"nesse domínio."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid "@FORGENAME@ system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "Nome do sistema @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid ""
-#| "Please enter the name of the @FORGENAME@ system. It is used in various "
-#| "places throughout the system."
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Por favor introduza o nome do sistema @FORGENAME@. Este nome é utilizado em "
-"vários lugares pelo sistema."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "@FORGENAME@ administrator password:"
-msgid "@FORGENAME@ administrator password:"
-msgstr "Palavra-passe do administrador do @FORGENAME@:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"A conta de administrador do @FORGENAME@ terá privilégios totais sobre a "
-"forja. Será usada para aprovar a criação de novos projectos."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Por favor escolha a palavra-passe para esta conta de forja."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Confirmação da palavra-passe:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Por favor, reescreva a palavra-passe para confirmação."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "instalar a nova versão configurada por @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "manter a versão local actualmente instalada"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "mostrar as diferenças entre as versões"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "mostrar as diferenças, lado-a-lado, entre versões"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "iniciar uma nova linha de comandos para examinar a situação"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "O que deseja fazer acerca do ficheiro de configuração ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"O ficheiro de configuração ${FILE} precisa de ser modificado pelo @PACKAGE@, "
-"no entanto este também é um ficheiro de configuração do pacote postgresql."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Deseja uma configuração simples de DNS para @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Você pode ter uma configuração simples de DNS com 'wildcards' para mapear "
-"todos os web-hosts de projectos para um só endereço IP, e direccionar todos "
-"os hosts scm para um único servidor SCM, ou uma configuração complexa que "
-"permite ter bastantes servidores como servidores web para projectos ou para "
-"SCM."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Mesmo que tenha uma configuração simples de DNS, pode ter máquinas separadas "
-"para os seus servidores de projectos; a configuração simplesmente assume que "
-"tem os directórios de projectos no mesmo servidor e tem um único servidor "
-"SCM."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Endereço de email do administrador do @FORGENAME@:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~| "site. It will be used when problems occur."
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Por favor introduza o endereço de email do administrador @FORGENAME@ "
-#~ "neste site. Será usado quando houverem problemas."
-
-#~ msgid "Download server:"
-#~ msgstr "Servidor de downloads:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "packages."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Por favor introduza o nome do servidor que irá guardar os pacotes "
-#~ "@FORGENAME@."
-
-#, fuzzy
-#~| msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Não deve ser o mesmo que o host principal do @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Servidor de bases de dados:"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Por favor introduza o endereço IP (ou nome da máquina) do servidor que "
-#~ "irá guardar a base de dados do @FORGENAME@."
-
-#~ msgid "Database name:"
-#~ msgstr "Nome da sua base de dados:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the name of the database that will host the @FORGENAME@ "
-#~| "database."
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Por favor introduza o nome da base de dados que irá guardar a base de "
-#~ "dados do @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Nome do administrador da sua base de dados:"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Por favor introduza o nome de utilizador do administrador do servidor que "
-#~ "irá guardar a base de dados do @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Palavra-passe utilizada na base de dados:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "As ligações à base de dados são autenticadas por uma palavra-passe."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Por favor escolha a palavra-passe da ligação."
-
-#~ msgid "IP address:"
-#~ msgstr "Endereço IP:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~| "installation."
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Por favor introduza o endereço IP do servidor onde será feita a "
-#~ "instalação do @FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Isto é necessário para a configuração de 'virtual hosts' do Apache."
-
-#~ msgid "Shell server:"
-#~ msgstr "Servidor de shells:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Por favor introduza o nome da máquina do servidor onde ficarão as contas "
-#~ "shell do @FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Servidor de listas de email:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Por favor introduza o nome do servidor que irá guardar as listas de email "
-#~ "do @FORGENAME@."
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "shell accounts."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Por favor introduza o nome do servidor onde irão ficar as contas de shell "
-#~ "do @FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Identificador do grupo de administradores de notícias:"
-
-#, fuzzy
-#~| msgid ""
-#~| "The members of the news admin group can approve news for the @FORGENAME@ "
-#~| "main page. This group's ID must not be 1. This should be changed only if "
-#~| "you upgrade from a previous version and want to keep the data."
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Os membros do grupo de administradores de notícias podem aprovar notícias "
-#~ "afixadas na página principal do @FORGENAME@. Este identificador de grupo "
-#~ "não pode ser 1. Isto deve ser mudado apenas se actualizar a partir de uma "
-#~ "versão antiga e quiser manter os seus dados."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Identificador do grupo de administradores de estatísticas:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr ""
-#~ "Identificador do grupo de administradores de classificação por pares:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Por favor introduza o nome do servidor que irá guardar os pacotes do "
-#~ "@FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "Inglês"
-
-#~ msgid "Bulgarian"
-#~ msgstr "Búlgaro"
-
-#~ msgid "Catalan"
-#~ msgstr "Catalão"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "Chinês (Tradicional)"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandês"
-
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-#~ msgid "French"
-#~ msgstr "Francês"
-
-#~ msgid "German"
-#~ msgstr "Alemão"
-
-#~ msgid "Greek"
-#~ msgstr "Grego"
-
-#~ msgid "Hebrew"
-#~ msgstr "Hebraico"
-
-#~ msgid "Indonesian"
-#~ msgstr "Indonésio"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonês"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Latin"
-#~ msgstr "Latim"
-
-#~ msgid "Norwegian"
-#~ msgstr "Norueguês"
-
-#~ msgid "Polish"
-#~ msgstr "Polaco"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "Português do Brasil"
-
-#~ msgid "Portuguese"
-#~ msgstr "Português"
-
-#~ msgid "Russian"
-#~ msgstr "Russo"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "Chinês (Simplificado)"
-
-#~ msgid "Spanish"
-#~ msgstr "Espanhol"
-
-#~ msgid "Swedish"
-#~ msgstr "Sueco"
-
-#~ msgid "Thai"
-#~ msgstr "Tailandês"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "Inglês[ Idioma pré-definido]"
-
-#~ msgid "Default language:"
-#~ msgstr "Idioma pré-definido:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Por favor escolha o idioma pré-definido das páginas web."
-
-#~ msgid "Default theme:"
-#~ msgstr "Tema pré-definido:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Por favor escolha o tema pré-definido para as páginas web. Tem de "
-#~ "introduzir um nome válido."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Deseja que o mail para ${noreply} seja apagado?"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~| "\"${noreply}\" address."
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "O @FORGENAME@ envia e recebe bastante e-mail para e a partir do endereço "
-#~ "\"${noreply}\"."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Os e-mails para esse endereço devem ser redireccionados para um buraco "
-#~ "negro (/dev/null), a não ser que tenha outro uso para esse endereço."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Servidor de redireccionamento de mail dos utilizadores:"
-
-#, fuzzy
-#~| msgid ""
-#~| "Please enter the host name of the server that will host the @FORGENAME@ "
-#~| "user mail redirector."
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Por favor introduza o nome do servidor que fará o redireccionamento do "
-#~ "mail dos utilizadores do @FORGENAME@."
-
-#, fuzzy
-#~| msgid "@FORGENAME@ administrator login:"
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Login do administrador do @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Por favor escolha o nome de utilizador para esta conta."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Lista inicial de competências:"
-
-#, fuzzy
-#~| msgid ""
-#~| "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~| "from those present in the database. This list is the initial list of "
-#~| "skills that will enter the database."
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "O @FORGENAME@ permite que os utilizadores definam uma lista com as suas "
-#~ "competências, a serem escolhidas de entre aquelas que estão na base de "
-#~ "dados. Esta lista é a lista inicial de competências que irão figurar na "
-#~ "base de dados."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Por favor introduza uma lista de nomes de capacidades, separadas pelo "
-#~ "símbolo ponto-e-vírgula (;)."
-
-#~ msgid "admin"
-#~ msgstr "admin"
+++ /dev/null
-# translation of @PACKAGENAME@_4.8.2-1_ru.po to Russian
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the fusionforge package.
-#
-# Yuri Kozlov <kozlov.y@gmail.com>, 2007, 2008.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2012.
-msgid ""
-msgstr ""
-"Project-Id-Version: fusionforge 5.2~rc1-2\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-21 20:40+0400\n"
-"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
-"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.2\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Имя домена или поддомена @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Введите домен, который будет обслуживать установку @FORGENAME@. В этом "
-"домене некоторым службам (scm, lists и т.д.) будут присвоены свои "
-"собственные поддомены."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid "@FORGENAME@/FusionForge system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "Имя системы @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Введите имя системы @FORGENAME@. Оно используется в разных местах по всей "
-"системе."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "Пароль администратора @FORGENAME@:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"Учётная запись администратора @FORGENAME@ будет иметь все привилегии в "
-"forge. Она будет использована для подтверждения создания новых проектов."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Введите пароль для этой учётной записи forge."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Подтверждение пароля:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Введите пароль ещё раз для подтверждения."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "установить новую версию, настроенную @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "сохранить установленную локальную версию"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "показать различия между версиями"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "показать различия между версиями параллельно"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "запустить новую оболочку для прояснения ситуации"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Что нужно сделать с файлом настройки ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"@PACKAGE@ требуется изменить файл настройки ${FILE}, который также является "
-"файлом настройки для пакета postgresql."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Выполнить простую настройку DNS для @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Вы можете использовать простую настройку DNS с групповыми символами, по "
-"которым веб-имена всех проектов преобразуются в один IP-адрес, а все "
-"scm-узлы в одно имя сервера SCM, или сложную настройку, которая позволяет "
-"многим серверам выступать в качестве веб или SCM серверов."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Даже если используется простая настройка DNS, вы всё равно можете "
-"использовать отдельные машины под серверы проектов; здесь просто "
-"предполагается, что все веб-каталоги проектов размещены на том же сервере с "
-"одним сервером SCM."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Адрес электронной почты администратора @FORGENAME@:"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Введите e-mail адрес администратора @FORGENAME@ для этого сайта. Он будет "
-#~ "использован при возникновении проблем."
-
-#~ msgid "Download server:"
-#~ msgstr "Сервер загрузок:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Введите имя сервера, на котором будут расположены пакеты @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Сервер базы данных:"
-
-#~ msgid "Database name:"
-#~ msgstr "Имя базы данных:"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Введите имя базы данных, которая будет содержать базу данных @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Имя пользователя администратора базы данных:"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Введите имя пользователя администратора базы данных для сервера, на "
-#~ "котором будет расположена база данных @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Пароль для базы данных:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "Для подключений к базе данных требуется пароль."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Введите пароль для подключения."
-
-#~ msgid "IP address:"
-#~ msgstr "IP-адрес:"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Введите IP-адрес сервера, на котором будет располагаться установка "
-#~ "@FORGENAME@."
-
-#~ msgid "Shell server:"
-#~ msgstr "Сервер оболочек:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Введите имя сервера, на котором будут расположены учётные записи оболочек "
-#~ "для @FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Сервер списков почтовых рассылок:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Введите имя сервера, на котором будут расположены учётные записи оболочек "
-#~ "для @FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Административный ID группы новостей:"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Члены административной группы новостей могут утверждать новости для "
-#~ "главной страницы @FORGENAME@. Данный ID не должен быть равен 1. Он должен "
-#~ "быть изменён, только если вы обновляетесь с предыдущей версии и хотите "
-#~ "сохранить данные."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Административный ID группы статистики:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "Административный ID группы рейтинга:"
-
-#~ msgid "English"
-#~ msgstr "английский"
-
-#~ msgid "Bulgarian"
-#~ msgstr "болгарский"
-
-#~ msgid "Catalan"
-#~ msgstr "каталонский"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "китайский (традиционный)"
-
-#~ msgid "Dutch"
-#~ msgstr "голландский"
-
-#~ msgid "Esperanto"
-#~ msgstr "эсперанто"
-
-#~ msgid "French"
-#~ msgstr "французский"
-
-#~ msgid "German"
-#~ msgstr "немецкий"
-
-#~ msgid "Greek"
-#~ msgstr "греческий"
-
-#~ msgid "Hebrew"
-#~ msgstr "иврит"
-
-#~ msgid "Indonesian"
-#~ msgstr "индонезийский"
-
-#~ msgid "Italian"
-#~ msgstr "итальянский"
-
-#~ msgid "Japanese"
-#~ msgstr "японский"
-
-#~ msgid "Korean"
-#~ msgstr "корейский"
-
-#~ msgid "Latin"
-#~ msgstr "латинский"
-
-#~ msgid "Norwegian"
-#~ msgstr "норвежский"
-
-#~ msgid "Polish"
-#~ msgstr "польский"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "португальский (бразильский)"
-
-#~ msgid "Portuguese"
-#~ msgstr "португальский"
-
-#~ msgid "Russian"
-#~ msgstr "русский"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "китайский (упрощённый)"
-
-#~ msgid "Spanish"
-#~ msgstr "испанский"
-
-#~ msgid "Swedish"
-#~ msgstr "шведский"
-
-#~ msgid "Thai"
-#~ msgstr "тайский"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "русский"
-
-#~ msgid "Default language:"
-#~ msgstr "Язык по умолчанию:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Выберите язык по умолчанию для веб-страниц."
-
-#~ msgid "Default theme:"
-#~ msgstr "Тема по умолчанию:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Выберите тему по умолчанию для веб-страниц. Должно быть указано "
-#~ "допустимое имя."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Удалять почту, присланную на адрес ${noreply}?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ посылает и принимает множество электронных писем на адрес "
-#~ "\"${noreply}\"."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Почта на этот адрес должна быть перенаправлена в чёрную дыру (/dev/null), "
-#~ "если вы не используете этот адрес для чего-то ещё."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Сервер-перенаправитель пользовательской почты:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Введите имя сервера, который будет перенаправлять почту пользователей "
-#~ "@FORGENAME@."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Учётная запись администратора @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Введите имя пользователя учётной записи для этого."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Начальный список навыков:"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ позволяет пользователям составить список своих навыков из "
-#~ "имеющихся в базе данных. Запрашиваемый сейчас начальный список навыков "
-#~ "будет введён в базу данных."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr "Введите названия навыков, разделяя их точкой с запятой."
+++ /dev/null
-# Translation of fusionforge debconf template to Swedish
-# Copyright (C) 2012 Martin Bagge <brother@bsnet.se>
-# This file is distributed under the same license as the fusionforge package.
-#
-# Martin Ågren <martin.agren@gmail.com>, 2008.
-# Martin Bagge <brother@bsnet.se>, 2009, 2012
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGENAME@_4.6.99+svn6580-1_sv\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2012-06-13 20:58+0100\n"
-"Last-Translator: Martin Bagge / brother <brother@bsnet.se>\n"
-"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Swedish\n"
-"X-Poedit-Country: Sweden\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Namn på @FORGENAME@-domänen eller -underdomänen:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Ange den domän som kommer att vara värd för @FORGENAME@-installationen. "
-"Vissa tjänster (källkodshantering, listor, etc.) kommer att tilldelas sina "
-"egna underdomäner i den domänen."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-#| msgid "@FORGENAME@/FusionForge system name:"
-msgid "@FORGENAME@ system name:"
-msgstr "@FORGENAME@ systemnamn:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Ange namnet på @FORGENAME@-systemet. Det används på olika ställen i systemet."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "@FORGENAME@-administratörens lösenord:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"Administratörskontot för @FORGENAME@ kommer att ha maximala rättigheter i "
-"forge-systemet. Det behövs för att godkänna skapandet av nya projekt."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Ange lösenordet för det här forge-kontot."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Lösenordsbekräftelse:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Mata in lösenordet igen för bekräftelse."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr "installera den nya versionens inställningar för @PACKAGE@"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr "behåll den lokalt justerade versionen som förnärvarande är installerad"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr "visa skillnaderna mellan versionerna"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr "visa skillnaderna mellan versionerna sida-vid-sida"
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr "starta ett nytt skal för att undersöka situationen"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr "Vad vill du göra med inställningsfilen ${BASENAME}?"
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-"Inställningsfilen ${FILE} behöver justeras av @PACKAGE@, detta är också "
-"inställningsfilen för postgresql-paketet."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Vill du ha en enkel DNS-konfiguration för @FORGENAME@?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Du kan ha en enkel DNS-konfiguration som använder jokertecken för att peka "
-"alla projektwebbplatser till en enda IP-adress och vidaresända alla "
-"källkodshanteringsvärdar till en enda källkodshanteringsserver, eller en "
-"komplex konfiguration som låter dig ha många servrar som projektwebbservrar "
-"eller källkodshanteringsservrar."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Även om du har en enkel DNS-konfiguration, kan du fortfarande ha separata "
-"maskiner för dina projektservrar; den antar bara att du har alla projektens "
-"webbkataloger på samma server och en enda källkodshanteringsserver."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "@FORGENAME@-administratörens e-postadress:"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Ange e-postadressen för @FORGENAME@-administratören på systemet. Den "
-#~ "kommer användas ifall problem uppstår."
-
-#~ msgid "Download server:"
-#~ msgstr "Hämtningsserver:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla @FORGENAME@-paketen."
-
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Det ska inte vara samma som huvudvärden för @FORGENAME@."
-
-#~ msgid "Database server:"
-#~ msgstr "Databasserver:"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "IP-adressen (eller värdnamnet) för servern som kommer tillhandahålla "
-#~ "@FORGENAME@-databasen."
-
-#~ msgid "Database name:"
-#~ msgstr "Databasnamn:"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr ""
-#~ "Ange namnet på databasen som kommer tillhandahålla @FORGENAME@-databasen."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Databasadministratörens användarnamn:"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Ange användarnamnet på databasadministratören för servers som kommer "
-#~ "tillhandahålla @FORGENAME@-databasen."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Lösenordet som används för databasen:"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "Uppkopplingar till databassystem autentiseras med ett lösenord."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Välj uppkopplingslösenordet."
-
-#~ msgid "IP address:"
-#~ msgstr "IP-adress:"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr ""
-#~ "Ange IP-adressen för servern som kommer tillhandahålla @FORGENAME@-"
-#~ "installationen."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Detta krävs för att konfigurera Apaches virtuella värd."
-
-#~ msgid "Shell server:"
-#~ msgstr "Skalserver:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla skalkonton för "
-#~ "@FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Server för sändlistor:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla sändlistorna för "
-#~ "@FORGENAME@."
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla skalkonton för "
-#~ "@FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "Grupp-id för nyhetsadministratörerna:"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Medlemmar i nyhetsadministrationsgruppen kan godkänna nyheter för "
-#~ "@FORGENAME@s förstasida. Detta grupp-id får inte vara 1. Du behöver bara "
-#~ "ändra detta värde om du uppgraderar från en tidigare version och vill "
-#~ "behålla ditt data."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "Grupp-id för statistikadministratörerna:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "Grupp-id för användarbedömningsadministratörerna:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla @FORGENAME@-paketen."
-
-#~ msgid "English"
-#~ msgstr "Engelska"
-
-#~ msgid "Bulgarian"
-#~ msgstr "Bulgariska"
-
-#~ msgid "Catalan"
-#~ msgstr "Katalanska"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "Kinesiska (traditionell)"
-
-#~ msgid "Dutch"
-#~ msgstr "Holländska"
-
-#~ msgid "Esperanto"
-#~ msgstr "Esperanto"
-
-#~ msgid "French"
-#~ msgstr "Franska"
-
-#~ msgid "German"
-#~ msgstr "Tyska"
-
-#~ msgid "Greek"
-#~ msgstr "Grekiska"
-
-#~ msgid "Hebrew"
-#~ msgstr "Hebreiska"
-
-#~ msgid "Indonesian"
-#~ msgstr "Indonesiska"
-
-#~ msgid "Italian"
-#~ msgstr "Italienska"
-
-#~ msgid "Japanese"
-#~ msgstr "Japanska"
-
-#~ msgid "Korean"
-#~ msgstr "Koreanska"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Norwegian"
-#~ msgstr "Norska"
-
-#~ msgid "Polish"
-#~ msgstr "Polska"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "Portugisiska (brasiliansk)"
-
-#~ msgid "Portuguese"
-#~ msgstr "Portugisiska"
-
-#~ msgid "Russian"
-#~ msgstr "Ryska"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "Kinesiska (förenklad)"
-
-#~ msgid "Spanish"
-#~ msgstr "Spanska"
-
-#~ msgid "Swedish"
-#~ msgstr "Svenska"
-
-#~ msgid "Thai"
-#~ msgstr "Thailändska"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "Engelska[ Standardspråk]"
-
-#~ msgid "Default language:"
-#~ msgstr "Standardspråk:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Ange standardspråket för webbsidorna."
-
-#~ msgid "Default theme:"
-#~ msgstr "Standardtema:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Ange standardtemat för webbsidorna. Detta måste vara ett giltigt namn."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Vill du att e-post till ${noreply} ska tas bort?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ skickar och tar emot en mängd e-postmeddelanden till och från "
-#~ "adressen \"${noreply}\"."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "E-post till den adressen ska pekas mot ett svart hål (/dev/null) såvida "
-#~ "du inte har andra användningsområden för den adressen."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Omdirigerarserver för användarnas e-post:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Ange värdnamnet för servern som kommer tillhandahålla omdirigerarserver "
-#~ "för användarnas e-post för @FORGENAME@."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "@FORGENAME@-administratörens användarnamn:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Ange användarnamnet för detta konto."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Initiala listan över färdigheter:"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ låter användarna definiera en lista över sina färdigheter, "
-#~ "som kan väljas av de som finns i databasen. Denna lista är den initiala "
-#~ "listan som kommer att läggas in i databasen."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr "Mata in namn på färdigheter, separerade med semikolon."
+++ /dev/null
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: fusionforge\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid "@FORGENAME@ system name:"
-msgstr ""
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr ""
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "Please choose the password for this forge account."
-msgstr ""
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr ""
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
+++ /dev/null
-# Vietnamese Translation for @FORGENAME@.
-# Copyright © 2008 Free Software Foundation, Inc.
-# This file is distributed under the same license as the @PACKAGE@ 4.6.99+svn6387-1 package.
-# Clytie Siddall <clytie@riverland.net.au>, 2005-2008.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: @PACKAGE@ 4.6.99+svn6387-1\n"
-"Report-Msgid-Bugs-To: fusionforge@packages.debian.org\n"
-"POT-Creation-Date: 2012-05-29 18:26+0200\n"
-"PO-Revision-Date: 2010-03-10 10:10+0200\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
-"Language: vi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 1.2.1\n"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid "@FORGENAME@ domain or subdomain name:"
-msgstr "Tên miền hay miền con @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:2001
-msgid ""
-"Please enter the domain that will host the @FORGENAME@ installation. Some "
-"services (scm, lists, etc.) will be given their own subdomain in that domain."
-msgstr ""
-"Hãy gõ miền sẽ chứa bản cài đặt @FORGENAME@. Một số dịch vụ (scm, lists v."
-"v.) sẽ nhận miền con riêng ở trong miền đó."
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid "@FORGENAME@ system name:"
-msgstr "Tên hệ thống @FORGENAME@:"
-
-#. Type: string
-#. Description
-#: ../dsf-in/common.templates:3001
-msgid ""
-"Please enter the name of the @FORGENAME@ system. It is used in various "
-"places throughout the system."
-msgstr ""
-"Hãy gõ tên của hệ thống @FORGENAME@. Nó được dùng ở các nơi khác nhau trên "
-"khắp hệ thống."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-msgid "@FORGENAME@ administrator password:"
-msgstr "Mật khẩu quản trị @FORGENAME@:"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid ""
-#| "The @FORGENAME@ administrator account will have full privileges on the "
-#| "system. It will be used to approve the creation of new projects."
-msgid ""
-"The @FORGENAME@ administrator account will have full privileges on the "
-"forge. It will be used to approve the creation of new projects."
-msgstr ""
-"Tài khoản quản trị @FORGENAME@ này sẽ được mọi quyền truy cập đến hệ thống. "
-"Nó dùng để tán thành việc tạo dự án mới."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:2001
-#, fuzzy
-#| msgid "Please choose the password for this account."
-msgid "Please choose the password for this forge account."
-msgstr "Hãy chọn mật khẩu cho tài khoản này."
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Password confirmation:"
-msgstr "Xác nhận mật khẩu :"
-
-#. Type: password
-#. Description
-#: ../dsf-in/db-postgresql.templates:3001
-msgid "Please re-type the password for confirmation."
-msgstr "Hãy gõ lại mật khẩu để xác nhận nó."
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "install the new version configured by @PACKAGE@"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "keep the local version currently installed"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show the differences between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "show a side-by-side difference between the versions"
-msgstr ""
-
-#. Type: select
-#. Choices
-#: ../dsf-in/db-postgresql.templates:4001
-msgid "start a new shell to examine the situation"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid "What do you want to do about configuration file ${BASENAME}?"
-msgstr ""
-
-#. Type: select
-#. Description
-#: ../dsf-in/db-postgresql.templates:4002
-msgid ""
-"The configuration file ${FILE} needs to be modified by @PACKAGE@, whereas it "
-"is also a configuration file of the postgresql package."
-msgstr ""
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid "Do you want a simple DNS setup for @FORGENAME@?"
-msgstr "Bạn có muốn tạo một thiết lập DNS đơn giản cho @FORGENAME@ không?"
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"You can use a simple DNS setup with wildcards to map all project web-hosts "
-"to a single IP address, and direct all the scm-hosts to a single SCM server, "
-"or a complex setup which allows many servers as project web servers or SCM "
-"servers."
-msgstr ""
-"Bạn có thể sử dụng một thiết lập DNS đơn giản có ký tự đại diện, để ánh xạ "
-"mọi máy chủ Web của dự án tới cùng một địa chỉ IP, và chuyển hướng mọi máy "
-"chủ scm-host tới cùng một máy phục vụ SCM, hoặc một thiết lập phức tạp cho "
-"phép nhiều máy phục vụ làm máy phục vụ Web của dự án hay máy phục vụ SCM."
-
-#. Type: boolean
-#. Description
-#. Translators: SCM here means "Source Control Management"
-#. (cvs, svn, etc.)
-#: ../dsf-in/dns-bind9.templates:2001
-msgid ""
-"Even if you use a simple DNS setup, you can still use separate machines as "
-"project servers; it just assumes that all the project web directories are on "
-"the same server with a single SCM server."
-msgstr ""
-"Thậm chí nếu bạn sử dụng một thiết lập DNS đơn giản, bạn vẫn còn có thể sử "
-"dụng các máy khác nhau làm máy phục vụ dự án; nó chỉ giả sử tất cả các thư "
-"mục Web của dự án nằm trên cùng một máy phục vụ, với một máy phục vụ SCM "
-"riêng lẻ."
-
-#~ msgid "@FORGENAME@ administrator e-mail address:"
-#~ msgstr "Địa chỉ thư của quản trị @FORGENAME@:"
-
-#~ msgid ""
-#~ "Please enter the e-mail address of the @FORGENAME@ administrator of this "
-#~ "site. It will be used when problems occur."
-#~ msgstr ""
-#~ "Hãy gõ địa chỉ thư điện tử của quản trị @FORGENAME@ của địa chỉ Web này. "
-#~ "Nó sẽ được dùng khi gặp vấn đề."
-
-#~ msgid "Download server:"
-#~ msgstr "Máy phục vụ tải xuống:"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Hãy gõ tên máy của máy phục vụ sẽ hỗ trợ các gói @FORGENAME@."
-
-#~ msgid "It should not be the same as the main @FORGENAME@ host."
-#~ msgstr "Không nên trùng với máy chủ @FORGENAME@ chính."
-
-#~ msgid "Database server:"
-#~ msgstr "Máy phục vụ cơ sở dữ liệu :"
-
-#~ msgid ""
-#~ "Please enter the IP address (or hostname) of the server that will host "
-#~ "the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Hãy gõ địa chỉ IP (hay tên máy) của máy phục vụ sẽ chứa cơ sở dữ liệu "
-#~ "@FORGENAME@."
-
-#~ msgid "Database name:"
-#~ msgstr "Tên cơ sở dữ liệu :"
-
-#~ msgid ""
-#~ "Please enter the name of the database that will host the @FORGENAME@ "
-#~ "database."
-#~ msgstr "Hãy gõ tên của cơ sở dữ liệu sẽ hỗ trợ cơ sở dữ liệu @FORGENAME@."
-
-#~ msgid "Database administrator username:"
-#~ msgstr "Tên người dùng quản trị cơ sở dữ liệu :"
-
-#~ msgid ""
-#~ "Please enter the username of the database administrator for the server "
-#~ "that will host the @FORGENAME@ database."
-#~ msgstr ""
-#~ "Hãy gõ tên người dùng của quản trị cơ sở dữ liệu cho máy phục vụ sẽ chứa "
-#~ "cơ sở dữ liệu @FORGENAME@."
-
-#~ msgid "Password used for the database:"
-#~ msgstr "Mật khẩu dùng cho cơ sở dữ liệu :"
-
-#~ msgid "Connections to the database system are authenticated by a password."
-#~ msgstr "Kết nối đến hệ thống cơ sở dữ liệu thì xác thực bằng mật khẩu."
-
-#~ msgid "Please choose the connection password."
-#~ msgstr "Hãy chọn mật khẩu kết nối."
-
-#~ msgid "IP address:"
-#~ msgstr "Địa chỉ IP:"
-
-#~ msgid ""
-#~ "Please enter the IP address of the server that will host the @FORGENAME@ "
-#~ "installation."
-#~ msgstr "Hãy gõ địa chỉ IP của máy phục vụ sẽ chứa bản cài đặt @FORGENAME@."
-
-#~ msgid "This is needed for the configuration of Apache virtual hosting."
-#~ msgstr "Nó cần để cấu hình dịch vụ ảo Apache."
-
-#~ msgid "Shell server:"
-#~ msgstr "Máy phục vụ trình bao :"
-
-#~ msgid ""
-#~ "Please enter the hostname of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Hãy gõ tên máy của máy phục vụ sẽ hỗ trợ các tài khoản trình bao "
-#~ "@FORGENAME@."
-
-#~ msgid "Mailing lists server:"
-#~ msgstr "Máy phục vụ hộp thư chung:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "mailing lists."
-#~ msgstr ""
-#~ "Hãy gõ tên máy của máy phục vụ sẽ chứa các hộp thư chung @FORGENAME@."
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "shell accounts."
-#~ msgstr ""
-#~ "Hãy gõ tên máy của máy phục vụ sẽ chứa các tài khoản trình bao "
-#~ "@FORGENAME@."
-
-#~ msgid "News administrative group ID:"
-#~ msgstr "ID nhóm quản trị tin tức:"
-
-#~ msgid ""
-#~ "The members of the news admin group can approve news for the @FORGENAME@ "
-#~ "main page. This group's ID must not be 1. This should be changed only if "
-#~ "you upgrade from a previous version and want to keep the data."
-#~ msgstr ""
-#~ "Các thành viên của nhóm quản trị tin tức cũng có quyền tán thành tin tức "
-#~ "để hiển thị trên trang chính @FORGENAME@. Mã số nhóm (GID) này phải khác "
-#~ "với số 1. Thay đổi nó chỉ nếu bạn nâng cấp từ một phiên bản cũ và muốn "
-#~ "giữ lại dữ liệu."
-
-#~ msgid "Statistics administrative group ID:"
-#~ msgstr "ID nhóm quản trị thống kê:"
-
-#~ msgid "Peer rating administrative group ID:"
-#~ msgstr "ID nhóm quản trị đánh giá ngang hàng:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "packages."
-#~ msgstr "Hãy gõ tên máy của máy phục vụ sẽ chứa các gói @FORGENAME@."
-
-#~ msgid "English"
-#~ msgstr "tiếng Anh"
-
-#~ msgid "Bulgarian"
-#~ msgstr "tiếng Bun-ga-ri"
-
-#~ msgid "Catalan"
-#~ msgstr "tiếng Ca-ta-lăng"
-
-#~ msgid "Chinese (Traditional)"
-#~ msgstr "tiếng Trung (truyền thống)"
-
-#~ msgid "Dutch"
-#~ msgstr "tiếng Hòa"
-
-#~ msgid "Esperanto"
-#~ msgstr "tiếng Etpêrantô"
-
-#~ msgid "French"
-#~ msgstr "tiếng Pháp"
-
-#~ msgid "German"
-#~ msgstr "tiếng Đức"
-
-#~ msgid "Greek"
-#~ msgstr "tiếng Hy Lạp"
-
-#~ msgid "Hebrew"
-#~ msgstr "tiếng Do Thái"
-
-#~ msgid "Indonesian"
-#~ msgstr "tiếng Nam Dương"
-
-#~ msgid "Italian"
-#~ msgstr "tiếng Ý"
-
-#~ msgid "Japanese"
-#~ msgstr "tiếng Nhật"
-
-#~ msgid "Korean"
-#~ msgstr "tiếng Hàn"
-
-#~ msgid "Latin"
-#~ msgstr "tiếng La-tinh"
-
-#~ msgid "Norwegian"
-#~ msgstr "tiếng Na Uy"
-
-#~ msgid "Polish"
-#~ msgstr "tiếng Ba Lan"
-
-#~ msgid "Portuguese (Brazilian)"
-#~ msgstr "tiếng Bổ Đào Nhà (Bra-xin)"
-
-#~ msgid "Portuguese"
-#~ msgstr "tiếng Bổ Đào Nhà"
-
-#~ msgid "Russian"
-#~ msgstr "tiếng Nga"
-
-#~ msgid "Chinese (Simplified)"
-#~ msgstr "tiếng Trung (phổ thông)"
-
-#~ msgid "Spanish"
-#~ msgstr "tiếng Tây Ban Nha"
-
-#~ msgid "Swedish"
-#~ msgstr "tiếng Thuỵ Điển"
-
-#~ msgid "Thai"
-#~ msgstr "tiếng Thái"
-
-#~ msgid "English[ Default language]"
-#~ msgstr "Tiếng Việt [Ngôn ngữ mặc định]"
-
-#~ msgid "Default language:"
-#~ msgstr "Ngôn ngữ mặc định:"
-
-#~ msgid "Please choose the default language for web pages."
-#~ msgstr "Hãy chọn ngôn ngữ mặc định cho trang Web."
-
-#~ msgid "Default theme:"
-#~ msgstr "Sắc thái mặc định:"
-
-#~ msgid ""
-#~ "Please choose the default theme for web pages. This must be a valid name."
-#~ msgstr ""
-#~ "Hãy chọn sắc thái mặc định cho trang Web: nó phải là một tên hợp lệ."
-
-#~ msgid "Do you want mail to ${noreply} to be discarded?"
-#~ msgstr "Bạn có muốn hủy mọi thư được gửi cho ${noreply} không?"
-
-#~ msgid ""
-#~ "@FORGENAME@ sends and receives plenty of e-mail to and from the "
-#~ "\"${noreply}\" address."
-#~ msgstr ""
-#~ "@FORGENAME@ gửi và nhận rất nhiều thư điện tử cho/từ địa chỉ « ${noreply} "
-#~ "»."
-
-#~ msgid ""
-#~ "E-mail to that address should be directed to a black hole (/dev/null), "
-#~ "unless you have another use for that address."
-#~ msgstr ""
-#~ "Các thư gửi đến địa chỉ đó nên bị chuyển hướng tới « /dev/null » (bị "
-#~ "hủy), trừ bạn muốn sử dụng địa chỉ đó bằng cách khác."
-
-#~ msgid "User mail redirector server:"
-#~ msgstr "Máy phục vụ chuyển hướng thư tín người dùng:"
-
-#~ msgid ""
-#~ "Please enter the host name of the server that will host the @FORGENAME@ "
-#~ "user mail redirector."
-#~ msgstr ""
-#~ "Hãy gõ tên máy của máy phục vụ sẽ chứa bộ chuyển hướng thư tín người dùng "
-#~ "@FORGENAME@."
-
-#~ msgid "@FORGENAME@ administrator login:"
-#~ msgstr "Tên đăng nhập quản trị @FORGENAME@:"
-
-#~ msgid "Please choose the username for this account."
-#~ msgstr "Hãy chọn tên người dùng cho tài khoản này."
-
-#~ msgid "Initial list of skills:"
-#~ msgstr "Danh sách kỹ năng ban đầu :"
-
-#~ msgid ""
-#~ "@FORGENAME@ allows users to define a list of their skills, to be chosen "
-#~ "from those present in the database. This list is the initial list of "
-#~ "skills that will enter the database."
-#~ msgstr ""
-#~ "@FORGENAME@ cho mỗi người dùng có khả năng xác định một danh sách các kỹ "
-#~ "năng của mình, được chọn trong các điều nằm trong cơ sở dữ liệu. Danh "
-#~ "sách này là danh sách kỹ năng ban đầu sẽ vào cơ sở dữ liệu."
-
-#~ msgid "Please enter a semicolon-separated list of skill names."
-#~ msgstr ""
-#~ "Hãy gõ danh sách các tên kỹ năng định giới bằng dấu chấm phẩy « ; »."
+++ /dev/null
-Index: src/plugins/authcas/etc/authcas.ini
-===================================================================
---- src.orig/plugins/authcas/etc/authcas.ini
-+++ src/plugins/authcas/etc/authcas.ini
-@@ -4,7 +4,7 @@
- ; valid means : production ready.
- ; Any other strings means it's under work or broken and plugin
- ; is available in installation_environment = development only.
--plugin_status = valid
-+plugin_status = "disabled for Debian until phpCAS gets packaged"
-
-
- ; By default, CAS is required and sufficient to log in
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Disable SVN-over-WebDAV
-Index: src/plugins/scmsvn/etc/scmsvn.ini
-===================================================================
---- src.orig/plugins/scmsvn/etc/scmsvn.ini
-+++ src/plugins/scmsvn/etc/scmsvn.ini
-@@ -7,9 +7,9 @@
- ; is available in installation_environment = development only.
- plugin_status = valid
-
--use_dav = yes
-+use_dav = no
- use_ssl = "$core/use_ssl"
--use_ssh = no
-+use_ssh = yes
- anonsvn_login = anonsvn
- anonsvn_password = anonsvn
- default_server = "$core/web_host"
-Index: src/etc/httpd.conf.d/plugin-scmsvn.inc
-===================================================================
---- src.orig/etc/httpd.conf.d/plugin-scmsvn.inc
-+++ src/etc/httpd.conf.d/plugin-scmsvn.inc
-@@ -1,15 +1,16 @@
--<Location /svn>
-- <IfModule mod_dav_svn.c>
-- DAV svn
-- SVNParentPath {scmsvn/repos_path}
--
-- # how to authenticate a user
-- AuthzSVNAccessFile {core/data_path}/svnroot-access
-- AuthType Basic
-- AuthName "Document repository"
-- AuthUserFile {core/data_path}/svnroot-authfile
-- </IfModule>
--
-- # only authenticated users may access the repository
-- Require valid-user
--</Location>
-+# Disabled by disable-dav.patch
-+# <Location /svn>
-+# <IfModule mod_dav_svn.c>
-+# DAV svn
-+# SVNParentPath {scmsvn/repos_path}
-+#
-+# # how to authenticate a user
-+# AuthzSVNAccessFile {core/data_path}/svnroot-access
-+# AuthType Basic
-+# AuthName "Document repository"
-+# AuthUserFile {core/data_path}/svnroot-authfile
-+# </IfModule>
-+#
-+# # only authenticated users may access the repository
-+# Require valid-user
-+# </Location>
-Index: src/plugins/scmgit/etc/scmgit.ini
-===================================================================
---- src.orig/plugins/scmgit/etc/scmgit.ini
-+++ src/plugins/scmgit/etc/scmgit.ini
-@@ -13,6 +13,6 @@ repos_path = "$core/chroot/scmrepos/git"
- ; this value might be used to create an alias in your httpd conf for clone
- scm_root = "git"
-
--use_dav = yes
--use_ssh = no
-+use_dav = no
-+use_ssh = yes
- use_ssl = "$core/use_ssl"
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Disable the blurb about replying to a bug via email
-at least until this is made to work.
-Index: src/common/tracker/Artifact.class.php
-===================================================================
---- src.orig/common/tracker/Artifact.class.php
-+++ src/common/tracker/Artifact.class.php
-@@ -1582,10 +1582,6 @@
- "\n".util_make_url ('/tracker/?func=detail&atid='. $this->ArtifactType->getID() .
- "&aid=". $this->getID() .
- "&group_id=". $this->ArtifactType->Group->getID()) .
-- "\nOr by replying to this e-mail entering your response between the following markers: ".
-- "\n".ARTIFACT_MAIL_MARKER.
-- "\n(enter your response here, only in plain text format)".
-- "\n".ARTIFACT_MAIL_MARKER.
- "\n\n".
- $this->marker('status',$changes).
- "Status: ". $this->getStatusName() ."\n".
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Default deployment is production, not development
-Index: src/etc/config.ini.d/debug.ini
-===================================================================
---- src.orig/etc/config.ini.d/debug.ini
-+++ src/etc/config.ini.d/debug.ini
-@@ -1,12 +1,12 @@
- [core]
-
--; Switch to "production" to remove extra debugging
--installation_environment = development
-+; Switch to "development" or "integration" to add extra debugging
-+installation_environment = production
-
- ; fine-grained control over debugging
-
- ; enable debugging at all (overlay the page with pink box)
--sysdebug_enable = true
-+sysdebug_enable = false
-
- ; enable the PHP Error Handler (default if sysdebug_enable)
- sysdebug_phphandler = true
+++ /dev/null
-disable-tracker-reply-by-email
-disable-dav
-use-snoopy-from-distro
-use-nusoap-from-distro
-use-jquery-from-distro
-use-simplepie-from-distro
-use-yui-from-distro
-upgrade-db-location
-upgrade-db-noninteractive
-production-environment
-disable-authcas
+++ /dev/null
-Index: src/db/upgrade-db.php
-===================================================================
---- src.orig/db/upgrade-db.php
-+++ src/db/upgrade-db.php
-@@ -10,7 +10,7 @@
- require_once $gfcommon.'include/pre.php';
- require_once $gfcommon.'include/sqlparser.php';
-
--$db_path = dirname(__FILE__).'/';
-+$db_path = dirname(__FILE__).'/../db/';
- $date = -1;
- $version = '';
-
+++ /dev/null
-Index: src/db/upgrade-db.php
-===================================================================
---- src.orig/db/upgrade-db.php
-+++ src/db/upgrade-db.php
-@@ -197,16 +197,7 @@
- if (!$res) {
- show(db_error()."\n");
- show("QUERY: $query\n");
-- show("Continue executing ([Y]es/[N]o)?\n");
-- // Read the input
-- $answer = strtolower(trim(fgets(STDIN)));
-- if ($answer != 'y' && $answer != 'yes') {
-- //db_rollback();
-- return false;
-- } else {
-- //db_commit();
-- //db_begin();
-- }
-+ return false;
- }
- }
-
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Use JQuery as provided by the libjs-jquery Debian package
-Index: src/www/include/html.php
-===================================================================
---- src.orig/www/include/html.php
-+++ src/www/include/html.php
-@@ -377,14 +377,14 @@
- }
-
- function html_use_jquery() {
-- use_javascript('/scripts/jquery/jquery-1.4.2.min.js');
-+ use_javascript('/scripts/jquery/jquery.min.js');
- }
-
- function html_use_tooltips() {
- html_use_jquery();
-- use_javascript('/scripts/jquery-tipsy/src/javascripts/jquery.tipsy.js');
-+ use_javascript('/scripts/jquery-tipsy/jquery.tipsy.js');
- use_javascript('/js/jquery-common.js');
-- use_stylesheet('/scripts/jquery-tipsy/src/stylesheets/tipsy.css');
-+ use_stylesheet('/scripts/jquery-tipsy/stylesheets/tipsy.css');
- }
-
- function html_use_storage() {
-@@ -407,8 +407,8 @@
-
- function html_use_jqueryui() {
- html_use_jquery();
-- use_javascript('/scripts/jquery-ui/js/jquery-ui-1.8.17.custom.min.js');
-- use_stylesheet('/scripts/jquery-ui/css/overcast/jquery-ui-1.8.17.custom.css');
-+ use_javascript('/scripts/jquery-ui/jquery-ui.min.js');
-+ use_stylesheet('/scripts/jquery-ui-themes/overcast/jquery-ui.min.css');
- }
-
- /**
+++ /dev/null
-Author: Olivier Berger <olivier.berger@it-sudparis.eu>
-Description: Use NUSOAP as provided by the libnusoap-php Debian package
-Index: src/www/soap/index.php
-===================================================================
---- src.orig/www/soap/index.php
-+++ src/www/soap/index.php
-@@ -14,7 +14,8 @@
-
- $uri = 'http://'.forge_get_config('web_host');
- // 1. include client and server
--require_once $gfwww.'soap/nusoap.php';
-+#require_once $gfwww.'soap/nusoap.php';
-+require_once '/usr/share/php/nusoap/nusoap.php';
- //$debug = true;
- // 2. instantiate server object
- $server = new soap_server();
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Use SimplePie as provided by the libphp-simplepie Debian package
-Index: src/common/widget/Widget_Rss.class.php
-===================================================================
---- src.orig/common/widget/Widget_Rss.class.php
-+++ src/common/widget/Widget_Rss.class.php
-@@ -49,7 +49,7 @@
- return idn_to_unicode($param);
- }
- }
-- require_once('common/rss/simplepie.inc');
-+ require_once('/usr/share/php/simplepie/simplepie.inc');
- if (!is_dir(forge_get_config('data_path') .'/rss')) {
- mkdir(forge_get_config('data_path') .'/rss');
- }
-@@ -132,12 +132,7 @@
- $vTitle = new Valid_String('title');
- $vTitle->required();
- if (!$request->validInArray('rss', $vTitle)) {
-- if (function_exists('idn_to_utf8()')) {
-- require_once('simplepie/simplepie.inc');
-- }
-- else {
-- require_once('common/rss/simplepie.inc');
-- }
-+ require_once('/usr/share/php/simplepie/simplepie.inc');
- if (!is_dir(forge_get_config('data_path') .'/rss')) {
- mkdir(forge_get_config('data_path') .'/rss');
- }
-Index: src/common/rss/simplepie.inc
-===================================================================
---- src.orig/common/rss/simplepie.inc
-+++ /dev/null
-@@ -1,13724 +0,0 @@
--<?php
--/**
-- * SimplePie
-- *
-- * A PHP-Based RSS and Atom Feed Framework.
-- * Takes the hard work out of managing a complete RSS/Atom solution.
-- *
-- * Copyright (c) 2004-2008, Ryan Parman and Geoffrey Sneddon
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without modification, are
-- * permitted provided that the following conditions are met:
-- *
-- * * Redistributions of source code must retain the above copyright notice, this list of
-- * conditions and the following disclaimer.
-- *
-- * * Redistributions in binary form must reproduce the above copyright notice, this list
-- * of conditions and the following disclaimer in the documentation and/or other materials
-- * provided with the distribution.
-- *
-- * * Neither the name of the SimplePie Team nor the names of its contributors may be used
-- * to endorse or promote products derived from this software without specific prior
-- * written permission.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
-- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
-- * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-- * POSSIBILITY OF SUCH DAMAGE.
-- *
-- * @package SimplePie
-- * @version 1.1.3
-- * @copyright 2004-2008 Ryan Parman, Geoffrey Sneddon
-- * @author Ryan Parman
-- * @author Geoffrey Sneddon
-- * @link http://simplepie.org/ SimplePie
-- * @link http://simplepie.org/support/ Please submit all bug reports and feature requests to the SimplePie forums
-- * @license http://www.opensource.org/licenses/bsd-license.php BSD License
-- * @todo phpDoc comments
-- */
--
--/**
-- * SimplePie Name
-- */
--define('SIMPLEPIE_NAME', 'SimplePie');
--
--/**
-- * SimplePie Version
-- */
--define('SIMPLEPIE_VERSION', '1.1.3');
--
--/**
-- * SimplePie Build
-- */
--define('SIMPLEPIE_BUILD', 20081219);
--
--/**
-- * SimplePie Website URL
-- */
--define('SIMPLEPIE_URL', 'http://simplepie.org');
--
--/**
-- * SimplePie Useragent
-- * @see SimplePie::set_useragent()
-- */
--define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD);
--
--/**
-- * SimplePie Linkback
-- */
--define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>');
--
--/**
-- * No Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_NONE', 0);
--
--/**
-- * Feed Link Element Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1);
--
--/**
-- * Local Feed Extension Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2);
--
--/**
-- * Local Feed Body Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4);
--
--/**
-- * Remote Feed Extension Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8);
--
--/**
-- * Remote Feed Body Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16);
--
--/**
-- * All Feed Autodiscovery
-- * @see SimplePie::set_autodiscovery_level()
-- */
--define('SIMPLEPIE_LOCATOR_ALL', 31);
--
--/**
-- * No known feed type
-- */
--define('SIMPLEPIE_TYPE_NONE', 0);
--
--/**
-- * RSS 0.90
-- */
--define('SIMPLEPIE_TYPE_RSS_090', 1);
--
--/**
-- * RSS 0.91 (Netscape)
-- */
--define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2);
--
--/**
-- * RSS 0.91 (Userland)
-- */
--define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4);
--
--/**
-- * RSS 0.91 (both Netscape and Userland)
-- */
--define('SIMPLEPIE_TYPE_RSS_091', 6);
--
--/**
-- * RSS 0.92
-- */
--define('SIMPLEPIE_TYPE_RSS_092', 8);
--
--/**
-- * RSS 0.93
-- */
--define('SIMPLEPIE_TYPE_RSS_093', 16);
--
--/**
-- * RSS 0.94
-- */
--define('SIMPLEPIE_TYPE_RSS_094', 32);
--
--/**
-- * RSS 1.0
-- */
--define('SIMPLEPIE_TYPE_RSS_10', 64);
--
--/**
-- * RSS 2.0
-- */
--define('SIMPLEPIE_TYPE_RSS_20', 128);
--
--/**
-- * RDF-based RSS
-- */
--define('SIMPLEPIE_TYPE_RSS_RDF', 65);
--
--/**
-- * Non-RDF-based RSS (truly intended as syndication format)
-- */
--define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190);
--
--/**
-- * All RSS
-- */
--define('SIMPLEPIE_TYPE_RSS_ALL', 255);
--
--/**
-- * Atom 0.3
-- */
--define('SIMPLEPIE_TYPE_ATOM_03', 256);
--
--/**
-- * Atom 1.0
-- */
--define('SIMPLEPIE_TYPE_ATOM_10', 512);
--
--/**
-- * All Atom
-- */
--define('SIMPLEPIE_TYPE_ATOM_ALL', 768);
--
--/**
-- * All feed types
-- */
--define('SIMPLEPIE_TYPE_ALL', 1023);
--
--/**
-- * No construct
-- */
--define('SIMPLEPIE_CONSTRUCT_NONE', 0);
--
--/**
-- * Text construct
-- */
--define('SIMPLEPIE_CONSTRUCT_TEXT', 1);
--
--/**
-- * HTML construct
-- */
--define('SIMPLEPIE_CONSTRUCT_HTML', 2);
--
--/**
-- * XHTML construct
-- */
--define('SIMPLEPIE_CONSTRUCT_XHTML', 4);
--
--/**
-- * base64-encoded construct
-- */
--define('SIMPLEPIE_CONSTRUCT_BASE64', 8);
--
--/**
-- * IRI construct
-- */
--define('SIMPLEPIE_CONSTRUCT_IRI', 16);
--
--/**
-- * A construct that might be HTML
-- */
--define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32);
--
--/**
-- * All constructs
-- */
--define('SIMPLEPIE_CONSTRUCT_ALL', 63);
--
--/**
-- * PCRE for HTML attributes
-- */
--define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*');
--
--/**
-- * PCRE for XML attributes
-- */
--define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*');
--
--/**
-- * XML Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace');
--
--/**
-- * Atom 1.0 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom');
--
--/**
-- * Atom 0.3 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#');
--
--/**
-- * RDF Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
--
--/**
-- * RSS 0.90 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/');
--
--/**
-- * RSS 1.0 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/');
--
--/**
-- * RSS 1.0 Content Module Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/');
--
--/**
-- * RSS 2.0 Namespace
-- * (Stupid, I know, but I'm certain it will confuse people less with support.)
-- */
--define('SIMPLEPIE_NAMESPACE_RSS_20', '');
--
--/**
-- * DC 1.0 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/');
--
--/**
-- * DC 1.1 Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/');
--
--/**
-- * W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#');
--
--/**
-- * GeoRSS Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss');
--
--/**
-- * Media RSS Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/');
--
--/**
-- * Wrong Media RSS Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss');
--
--/**
-- * iTunes RSS Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
--
--/**
-- * XHTML Namespace
-- */
--define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml');
--
--/**
-- * IANA Link Relations Registry
-- */
--define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/');
--
--/**
-- * Whether we're running on PHP5
-- */
--define('SIMPLEPIE_PHP5', version_compare(PHP_VERSION, '5.0.0', '>='));
--
--/**
-- * No file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_NONE', 0);
--
--/**
-- * Remote file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1);
--
--/**
-- * Local file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2);
--
--/**
-- * fsockopen() file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4);
--
--/**
-- * cURL file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_CURL', 8);
--
--/**
-- * file_get_contents() file source
-- */
--define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16);
--
--/**
-- * SimplePie
-- *
-- * @package SimplePie
-- * @version "Razzleberry"
-- * @copyright 2004-2007 Ryan Parman, Geoffrey Sneddon
-- * @author Ryan Parman
-- * @author Geoffrey Sneddon
-- * @todo Option for type of fetching (cache, not modified header, fetch, etc.)
-- */
--class SimplePie
--{
-- /**
-- * @var array Raw data
-- * @access private
-- */
-- var $data = array();
--
-- /**
-- * @var mixed Error string
-- * @access private
-- */
-- var $error;
--
-- /**
-- * @var object Instance of SimplePie_Sanitize (or other class)
-- * @see SimplePie::set_sanitize_class()
-- * @access private
-- */
-- var $sanitize;
--
-- /**
-- * @var string SimplePie Useragent
-- * @see SimplePie::set_useragent()
-- * @access private
-- */
-- var $useragent = SIMPLEPIE_USERAGENT;
--
-- /**
-- * @var string Feed URL
-- * @see SimplePie::set_feed_url()
-- * @access private
-- */
-- var $feed_url;
--
-- /**
-- * @var object Instance of SimplePie_File to use as a feed
-- * @see SimplePie::set_file()
-- * @access private
-- */
-- var $file;
--
-- /**
-- * @var string Raw feed data
-- * @see SimplePie::set_raw_data()
-- * @access private
-- */
-- var $raw_data;
--
-- /**
-- * @var int Timeout for fetching remote files
-- * @see SimplePie::set_timeout()
-- * @access private
-- */
-- var $timeout = 10;
--
-- /**
-- * @var bool Forces fsockopen() to be used for remote files instead
-- * of cURL, even if a new enough version is installed
-- * @see SimplePie::force_fsockopen()
-- * @access private
-- */
-- var $force_fsockopen = false;
--
-- /**
-- * @var bool Force the given data/URL to be treated as a feed no matter what
-- * it appears like
-- * @see SimplePie::force_feed()
-- * @access private
-- */
-- var $force_feed = false;
--
-- /**
-- * @var bool Enable/Disable XML dump
-- * @see SimplePie::enable_xml_dump()
-- * @access private
-- */
-- var $xml_dump = false;
--
-- /**
-- * @var bool Enable/Disable Caching
-- * @see SimplePie::enable_cache()
-- * @access private
-- */
-- var $cache = true;
--
-- /**
-- * @var int Cache duration (in seconds)
-- * @see SimplePie::set_cache_duration()
-- * @access private
-- */
-- var $cache_duration = 3600;
--
-- /**
-- * @var int Auto-discovery cache duration (in seconds)
-- * @see SimplePie::set_autodiscovery_cache_duration()
-- * @access private
-- */
-- var $autodiscovery_cache_duration = 604800; // 7 Days.
--
-- /**
-- * @var string Cache location (relative to executing script)
-- * @see SimplePie::set_cache_location()
-- * @access private
-- */
-- var $cache_location = './cache';
--
-- /**
-- * @var string Function that creates the cache filename
-- * @see SimplePie::set_cache_name_function()
-- * @access private
-- */
-- var $cache_name_function = 'md5';
--
-- /**
-- * @var bool Reorder feed by date descending
-- * @see SimplePie::enable_order_by_date()
-- * @access private
-- */
-- var $order_by_date = true;
--
-- /**
-- * @var mixed Force input encoding to be set to the follow value
-- * (false, or anything type-cast to false, disables this feature)
-- * @see SimplePie::set_input_encoding()
-- * @access private
-- */
-- var $input_encoding = false;
--
-- /**
-- * @var int Feed Autodiscovery Level
-- * @see SimplePie::set_autodiscovery_level()
-- * @access private
-- */
-- var $autodiscovery = SIMPLEPIE_LOCATOR_ALL;
--
-- /**
-- * @var string Class used for caching feeds
-- * @see SimplePie::set_cache_class()
-- * @access private
-- */
-- var $cache_class = 'SimplePie_Cache';
--
-- /**
-- * @var string Class used for locating feeds
-- * @see SimplePie::set_locator_class()
-- * @access private
-- */
-- var $locator_class = 'SimplePie_Locator';
--
-- /**
-- * @var string Class used for parsing feeds
-- * @see SimplePie::set_parser_class()
-- * @access private
-- */
-- var $parser_class = 'SimplePie_Parser';
--
-- /**
-- * @var string Class used for fetching feeds
-- * @see SimplePie::set_file_class()
-- * @access private
-- */
-- var $file_class = 'SimplePie_File';
--
-- /**
-- * @var string Class used for items
-- * @see SimplePie::set_item_class()
-- * @access private
-- */
-- var $item_class = 'SimplePie_Item';
--
-- /**
-- * @var string Class used for authors
-- * @see SimplePie::set_author_class()
-- * @access private
-- */
-- var $author_class = 'SimplePie_Author';
--
-- /**
-- * @var string Class used for categories
-- * @see SimplePie::set_category_class()
-- * @access private
-- */
-- var $category_class = 'SimplePie_Category';
--
-- /**
-- * @var string Class used for enclosures
-- * @see SimplePie::set_enclosures_class()
-- * @access private
-- */
-- var $enclosure_class = 'SimplePie_Enclosure';
--
-- /**
-- * @var string Class used for Media RSS <media:text> captions
-- * @see SimplePie::set_caption_class()
-- * @access private
-- */
-- var $caption_class = 'SimplePie_Caption';
--
-- /**
-- * @var string Class used for Media RSS <media:copyright>
-- * @see SimplePie::set_copyright_class()
-- * @access private
-- */
-- var $copyright_class = 'SimplePie_Copyright';
--
-- /**
-- * @var string Class used for Media RSS <media:credit>
-- * @see SimplePie::set_credit_class()
-- * @access private
-- */
-- var $credit_class = 'SimplePie_Credit';
--
-- /**
-- * @var string Class used for Media RSS <media:rating>
-- * @see SimplePie::set_rating_class()
-- * @access private
-- */
-- var $rating_class = 'SimplePie_Rating';
--
-- /**
-- * @var string Class used for Media RSS <media:restriction>
-- * @see SimplePie::set_restriction_class()
-- * @access private
-- */
-- var $restriction_class = 'SimplePie_Restriction';
--
-- /**
-- * @var string Class used for content-type sniffing
-- * @see SimplePie::set_content_type_sniffer_class()
-- * @access private
-- */
-- var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer';
--
-- /**
-- * @var string Class used for item sources.
-- * @see SimplePie::set_source_class()
-- * @access private
-- */
-- var $source_class = 'SimplePie_Source';
--
-- /**
-- * @var mixed Set javascript query string parameter (false, or
-- * anything type-cast to false, disables this feature)
-- * @see SimplePie::set_javascript()
-- * @access private
-- */
-- var $javascript = 'js';
--
-- /**
-- * @var int Maximum number of feeds to check with autodiscovery
-- * @see SimplePie::set_max_checked_feeds()
-- * @access private
-- */
-- var $max_checked_feeds = 10;
--
-- /**
-- * @var string Web-accessible path to the handler_favicon.php file.
-- * @see SimplePie::set_favicon_handler()
-- * @access private
-- */
-- var $favicon_handler = '';
--
-- /**
-- * @var string Web-accessible path to the handler_image.php file.
-- * @see SimplePie::set_image_handler()
-- * @access private
-- */
-- var $image_handler = '';
--
-- /**
-- * @var array Stores the URLs when multiple feeds are being initialized.
-- * @see SimplePie::set_feed_url()
-- * @access private
-- */
-- var $multifeed_url = array();
--
-- /**
-- * @var array Stores SimplePie objects when multiple feeds initialized.
-- * @access private
-- */
-- var $multifeed_objects = array();
--
-- /**
-- * @var array Stores the get_object_vars() array for use with multifeeds.
-- * @see SimplePie::set_feed_url()
-- * @access private
-- */
-- var $config_settings = null;
--
-- /**
-- * @var integer Stores the number of items to return per-feed with multifeeds.
-- * @see SimplePie::set_item_limit()
-- * @access private
-- */
-- var $item_limit = 0;
--
-- /**
-- * @var array Stores the default attributes to be stripped by strip_attributes().
-- * @see SimplePie::strip_attributes()
-- * @access private
-- */
-- var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
--
-- /**
-- * @var array Stores the default tags to be stripped by strip_htmltags().
-- * @see SimplePie::strip_htmltags()
-- * @access private
-- */
-- var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
--
-- /**
-- * @var string proxy used to fetch feeds
-- * @see SimplePie::set_proxy()
-- * @access private
-- */
-- var $proxy = "";
--
-- /**
-- * The SimplePie class contains feed level data and options
-- *
-- * There are two ways that you can create a new SimplePie object. The first
-- * is by passing a feed URL as a parameter to the SimplePie constructor
-- * (as well as optionally setting the cache location and cache expiry). This
-- * will initialise the whole feed with all of the default settings, and you
-- * can begin accessing methods and properties immediately.
-- *
-- * The second way is to create the SimplePie object with no parameters
-- * at all. This will enable you to set configuration options. After setting
-- * them, you must initialise the feed using $feed->init(). At that point the
-- * object's methods and properties will be available to you. This format is
-- * what is used throughout this documentation.
-- *
-- * @access public
-- * @since 1.0 Preview Release
-- * @param string $feed_url This is the URL you want to parse.
-- * @param string $cache_location This is where you want the cache to be stored.
-- * @param int $cache_duration This is the number of seconds that you want to store the cache file for.
-- * @param string $proxy This is the proxy "host:port" used to fetch feeds
-- */
-- function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null, $proxy = null)
-- {
-- // Other objects, instances created here so we can set options on them
-- $this->sanitize = new SimplePie_Sanitize;
--
-- // Set options if they're passed to the constructor
-- if ($cache_location !== null)
-- {
-- $this->set_cache_location($cache_location);
-- }
--
-- if ($cache_duration !== null)
-- {
-- $this->set_cache_duration($cache_duration);
-- }
--
-- if ($proxy !== null)
-- {
-- $this->set_proxy($proxy);
-- }
--
-- // Only init the script if we're passed a feed URL
-- if ($feed_url !== null)
-- {
-- $this->set_feed_url($feed_url);
-- $this->init();
-- }
-- }
--
-- /**
-- * Used for converting object to a string
-- */
-- function __toString()
-- {
-- return md5(serialize($this->data));
-- }
--
-- /**
-- * Remove items that link back to this before destroying this object
-- */
-- function __destruct()
-- {
-- if (!empty($this->data['items']))
-- {
-- foreach ($this->data['items'] as $item)
-- {
-- $item->__destruct();
-- }
-- unset($this->data['items']);
-- }
-- if (!empty($this->data['ordered_items']))
-- {
-- foreach ($this->data['ordered_items'] as $item)
-- {
-- $item->__destruct();
-- }
-- unset($this->data['ordered_items']);
-- }
-- }
--
-- /**
-- * Force the given data/URL to be treated as a feed no matter what it
-- * appears like
-- *
-- * @access public
-- * @since 1.1
-- * @param bool $enable Force the given data/URL to be treated as a feed
-- */
-- function force_feed($enable = false)
-- {
-- $this->force_feed = (bool) $enable;
-- }
--
-- /**
-- * This is the URL of the feed you want to parse.
-- *
-- * This allows you to enter the URL of the feed you want to parse, or the
-- * website you want to try to use auto-discovery on. This takes priority
-- * over any set raw data.
-- *
-- * You can set multiple feeds to mash together by passing an array instead
-- * of a string for the $url. Remember that with each additional feed comes
-- * additional processing and resources.
-- *
-- * @access public
-- * @since 1.0 Preview Release
-- * @param mixed $url This is the URL (or array of URLs) that you want to parse.
-- * @see SimplePie::set_raw_data()
-- */
-- function set_feed_url($url)
-- {
-- if (is_array($url))
-- {
-- $this->multifeed_url = array();
-- foreach ($url as $value)
-- {
-- $this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1);
-- }
-- }
-- else
-- {
-- $this->feed_url = SimplePie_Misc::fix_protocol($url, 1);
-- }
-- }
--
-- /**
-- * This is the proxy used to fetch feeds
-- *
-- * @access public
-- * @param string $proxy This is the URL of the proxy "host:port"
-- */
-- function set_proxy($proxy)
-- {
-- $this->proxy = $proxy;
-- $this->sanitize->proxy = $proxy;
-- }
--
-- /**
-- * Provides an instance of SimplePie_File to use as a feed
-- *
-- * @access public
-- * @param object &$file Instance of SimplePie_File (or subclass)
-- * @return bool True on success, false on failure
-- */
-- function set_file(&$file)
-- {
-- if (is_a($file, 'SimplePie_File'))
-- {
-- $this->feed_url = $file->url;
-- $this->file =& $file;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to use a string of RSS/Atom data instead of a remote feed.
-- *
-- * If you have a feed available as a string in PHP, you can tell SimplePie
-- * to parse that data string instead of a remote feed. Any set feed URL
-- * takes precedence.
-- *
-- * @access public
-- * @since 1.0 Beta 3
-- * @param string $data RSS or Atom data as a string.
-- * @see SimplePie::set_feed_url()
-- */
-- function set_raw_data($data)
-- {
-- $this->raw_data = $data;
-- }
--
-- /**
-- * Allows you to override the default timeout for fetching remote feeds.
-- *
-- * This allows you to change the maximum time the feed's server to respond
-- * and send the feed back.
-- *
-- * @access public
-- * @since 1.0 Beta 3
-- * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed.
-- */
-- function set_timeout($timeout = 10)
-- {
-- $this->timeout = (int) $timeout;
-- }
--
-- /**
-- * Forces SimplePie to use fsockopen() instead of the preferred cURL
-- * functions.
-- *
-- * @access public
-- * @since 1.0 Beta 3
-- * @param bool $enable Force fsockopen() to be used
-- */
-- function force_fsockopen($enable = false)
-- {
-- $this->force_fsockopen = (bool) $enable;
-- }
--
-- /**
-- * Outputs the raw XML content of the feed, after it has gone through
-- * SimplePie's filters.
-- *
-- * Used only for debugging, this function will output the XML content as
-- * text/xml. When SimplePie reads in a feed, it does a bit of cleaning up
-- * before trying to parse it. Many parts of the feed are re-written in
-- * memory, and in the end, you have a parsable feed. XML dump shows you the
-- * actual XML that SimplePie tries to parse, which may or may not be very
-- * different from the original feed.
-- *
-- * @access public
-- * @since 1.0 Preview Release
-- * @param bool $enable Enable XML dump
-- */
-- function enable_xml_dump($enable = false)
-- {
-- $this->xml_dump = (bool) $enable;
-- }
--
-- /**
-- * Enables/disables caching in SimplePie.
-- *
-- * This option allows you to disable caching all-together in SimplePie.
-- * However, disabling the cache can lead to longer load times.
-- *
-- * @access public
-- * @since 1.0 Preview Release
-- * @param bool $enable Enable caching
-- */
-- function enable_cache($enable = true)
-- {
-- $this->cache = (bool) $enable;
-- }
--
-- /**
-- * Set the length of time (in seconds) that the contents of a feed
-- * will be cached.
-- *
-- * @access public
-- * @param int $seconds The feed content cache duration.
-- */
-- function set_cache_duration($seconds = 3600)
-- {
-- $this->cache_duration = (int) $seconds;
-- }
--
-- /**
-- * Set the length of time (in seconds) that the autodiscovered feed
-- * URL will be cached.
-- *
-- * @access public
-- * @param int $seconds The autodiscovered feed URL cache duration.
-- */
-- function set_autodiscovery_cache_duration($seconds = 604800)
-- {
-- $this->autodiscovery_cache_duration = (int) $seconds;
-- }
--
-- /**
-- * Set the file system location where the cached files should be stored.
-- *
-- * @access public
-- * @param string $location The file system location.
-- */
-- function set_cache_location($location = './cache')
-- {
-- $this->cache_location = (string) $location;
-- }
--
-- /**
-- * Determines whether feed items should be sorted into reverse chronological order.
-- *
-- * @access public
-- * @param bool $enable Sort as reverse chronological order.
-- */
-- function enable_order_by_date($enable = true)
-- {
-- $this->order_by_date = (bool) $enable;
-- }
--
-- /**
-- * Allows you to override the character encoding reported by the feed.
-- *
-- * @access public
-- * @param string $encoding Character encoding.
-- */
-- function set_input_encoding($encoding = false)
-- {
-- if ($encoding)
-- {
-- $this->input_encoding = (string) $encoding;
-- }
-- else
-- {
-- $this->input_encoding = false;
-- }
-- }
--
-- /**
-- * Set how much feed autodiscovery to do
-- *
-- * @access public
-- * @see SIMPLEPIE_LOCATOR_NONE
-- * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY
-- * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION
-- * @see SIMPLEPIE_LOCATOR_LOCAL_BODY
-- * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION
-- * @see SIMPLEPIE_LOCATOR_REMOTE_BODY
-- * @see SIMPLEPIE_LOCATOR_ALL
-- * @param int $level Feed Autodiscovery Level (level can be a
-- * combination of the above constants, see bitwise OR operator)
-- */
-- function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL)
-- {
-- $this->autodiscovery = (int) $level;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for caching.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_cache_class($class = 'SimplePie_Cache')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Cache'))
-- {
-- $this->cache_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for auto-discovery.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_locator_class($class = 'SimplePie_Locator')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Locator'))
-- {
-- $this->locator_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for XML parsing.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_parser_class($class = 'SimplePie_Parser')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Parser'))
-- {
-- $this->parser_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for remote file fetching.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_file_class($class = 'SimplePie_File')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_File'))
-- {
-- $this->file_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for data sanitization.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_sanitize_class($class = 'SimplePie_Sanitize')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize'))
-- {
-- $this->sanitize = new $class;
-- $this->sanitize->proxy = $this->proxy;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for handling feed items.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_item_class($class = 'SimplePie_Item')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Item'))
-- {
-- $this->item_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for handling author data.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_author_class($class = 'SimplePie_Author')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Author'))
-- {
-- $this->author_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for handling category data.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_category_class($class = 'SimplePie_Category')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Category'))
-- {
-- $this->category_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for feed enclosures.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_enclosure_class($class = 'SimplePie_Enclosure')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Enclosure'))
-- {
-- $this->enclosure_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for <media:text> captions
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_caption_class($class = 'SimplePie_Caption')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Caption'))
-- {
-- $this->caption_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for <media:copyright>
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_copyright_class($class = 'SimplePie_Copyright')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Copyright'))
-- {
-- $this->copyright_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for <media:credit>
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_credit_class($class = 'SimplePie_Credit')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Credit'))
-- {
-- $this->credit_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for <media:rating>
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_rating_class($class = 'SimplePie_Rating')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Rating'))
-- {
-- $this->rating_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for <media:restriction>
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_restriction_class($class = 'SimplePie_Restriction')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Restriction'))
-- {
-- $this->restriction_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses for content-type sniffing.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Content_Type_Sniffer'))
-- {
-- $this->content_type_sniffer_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to change which class SimplePie uses item sources.
-- * Useful when you are overloading or extending SimplePie's default classes.
-- *
-- * @access public
-- * @param string $class Name of custom class.
-- * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-- * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-- */
-- function set_source_class($class = 'SimplePie_Source')
-- {
-- if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Source'))
-- {
-- $this->source_class = $class;
-- return true;
-- }
-- return false;
-- }
--
-- /**
-- * Allows you to override the default user agent string.
-- *
-- * @access public
-- * @param string $ua New user agent string.
-- */
-- function set_useragent($ua = SIMPLEPIE_USERAGENT)
-- {
-- $this->useragent = (string) $ua;
-- }
--
-- /**
-- * Set callback function to create cache filename with
-- *
-- * @access public
-- * @param mixed $function Callback function
-- */
-- function set_cache_name_function($function = 'md5')
-- {
-- if (is_callable($function))
-- {
-- $this->cache_name_function = $function;
-- }
-- }
--
-- /**
-- * Set javascript query string parameter
-- *
-- * @access public
-- * @param mixed $get Javascript query string parameter
-- */
-- function set_javascript($get = 'js')
-- {
-- if ($get)
-- {
-- $this->javascript = (string) $get;
-- }
-- else
-- {
-- $this->javascript = false;
-- }
-- }
--
-- /**
-- * Set options to make SP as fast as possible. Forgoes a
-- * substantial amount of data sanitization in favor of speed.
-- *
-- * @access public
-- * @param bool $set Whether to set them or not
-- */
-- function set_stupidly_fast($set = false)
-- {
-- if ($set)
-- {
-- $this->enable_order_by_date(false);
-- $this->remove_div(false);
-- $this->strip_comments(false);
-- $this->strip_htmltags(false);
-- $this->strip_attributes(false);
-- $this->set_image_handler(false);
-- }
-- }
--
-- /**
-- * Set maximum number of feeds to check with autodiscovery
-- *
-- * @access public
-- * @param int $max Maximum number of feeds to check
-- */
-- function set_max_checked_feeds($max = 10)
-- {
-- $this->max_checked_feeds = (int) $max;
-- }
--
-- function remove_div($enable = true)
-- {
-- $this->sanitize->remove_div($enable);
-- }
--
-- function strip_htmltags($tags = '', $encode = null)
-- {
-- if ($tags === '')
-- {
-- $tags = $this->strip_htmltags;
-- }
-- $this->sanitize->strip_htmltags($tags);
-- if ($encode !== null)
-- {
-- $this->sanitize->encode_instead_of_strip($tags);
-- }
-- }
--
-- function encode_instead_of_strip($enable = true)
-- {
-- $this->sanitize->encode_instead_of_strip($enable);
-- }
--
-- function strip_attributes($attribs = '')
-- {
-- if ($attribs === '')
-- {
-- $attribs = $this->strip_attributes;
-- }
-- $this->sanitize->strip_attributes($attribs);
-- }
--
-- function set_output_encoding($encoding = 'UTF-8')
-- {
-- $this->sanitize->set_output_encoding($encoding);
-- }
--
-- function strip_comments($strip = false)
-- {
-- $this->sanitize->strip_comments($strip);
-- }
--
-- /**
-- * Set element/attribute key/value pairs of HTML attributes
-- * containing URLs that need to be resolved relative to the feed
-- *
-- * @access public
-- * @since 1.0
-- * @param array $element_attribute Element/attribute key/value pairs
-- */
-- function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite'))
-- {
-- $this->sanitize->set_url_replacements($element_attribute);
-- }
--
-- /**
-- * Set the handler to enable the display of cached favicons.
-- *
-- * @access public
-- * @param str $page Web-accessible path to the handler_favicon.php file.
-- * @param str $qs The query string that the value should be passed to.
-- */
-- function set_favicon_handler($page = false, $qs = 'i')
-- {
-- if ($page != false)
-- {
-- $this->favicon_handler = $page . '?' . $qs . '=';
-- }
-- else
-- {
-- $this->favicon_handler = '';
-- }
-- }
--
-- /**
-- * Set the handler to enable the display of cached images.
-- *
-- * @access public
-- * @param str $page Web-accessible path to the handler_image.php file.
-- * @param str $qs The query string that the value should be passed to.
-- */
-- function set_image_handler($page = false, $qs = 'i')
-- {
-- if ($page != false)
-- {
-- $this->sanitize->set_image_handler($page . '?' . $qs . '=');
-- }
-- else
-- {
-- $this->image_handler = '';
-- }
-- }
--
-- /**
-- * Set the limit for items returned per-feed with multifeeds.
-- *
-- * @access public
-- * @param integer $limit The maximum number of items to return.
-- */
-- function set_item_limit($limit = 0)
-- {
-- $this->item_limit = (int) $limit;
-- }
--
-- function init()
-- {
-- if ((function_exists('version_compare') && version_compare(PHP_VERSION, '4.3.0', '<')) || !extension_loaded('xml') || !extension_loaded('pcre'))
-- {
-- return false;
-- }
-- if (isset($_GET[$this->javascript]))
-- {
-- if (function_exists('ob_gzhandler'))
-- {
-- ob_start('ob_gzhandler');
-- }
-- header('Content-type: text/javascript; charset: UTF-8');
-- header('Cache-Control: must-revalidate');
-- header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
-- ?>
--function embed_odeo(link) {
-- document.writeln('<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url='+link+'"></embed>');
--}
--
--function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) {
-- if (placeholder != '') {
-- document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-- }
-- else {
-- document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-- }
--}
--
--function embed_flash(bgcolor, width, height, link, loop, type) {
-- document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>');
--}
--
--function embed_flv(width, height, link, placeholder, loop, player) {
-- document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>');
--}
--
--function embed_wmedia(width, height, link) {
-- document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>');
--}
-- <?php
-- exit;
-- }
--
-- // Pass whatever was set with config options over to the sanitizer.
-- $this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->cache_class);
-- $this->sanitize->pass_file_data($this->file_class, $this->timeout, $this->useragent, $this->force_fsockopen);
--
-- if ($this->feed_url !== null || $this->raw_data !== null)
-- {
-- $this->data = array();
-- $this->multifeed_objects = array();
-- $cache = false;
--
-- if ($this->feed_url !== null)
-- {
-- $parsed_feed_url = SimplePie_Misc::parse_url($this->feed_url);
-- // Decide whether to enable caching
-- if ($this->cache && $parsed_feed_url['scheme'] !== '')
-- {
-- $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc');
-- }
-- // If it's enabled and we don't want an XML dump, use the cache
-- if ($cache && !$this->xml_dump)
-- {
-- // Load the Cache
-- $this->data = $cache->load();
-- if (!empty($this->data))
-- {
-- // If the cache is for an outdated build of SimplePie
-- if (!isset($this->data['build']) || $this->data['build'] != SIMPLEPIE_BUILD)
-- {
-- $cache->unlink();
-- $this->data = array();
-- }
-- // If we've hit a collision just rerun it with caching disabled
-- elseif (isset($this->data['url']) && $this->data['url'] != $this->feed_url)
-- {
-- $cache = false;
-- $this->data = array();
-- }
-- // If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL.
-- elseif (isset($this->data['feed_url']))
-- {
-- // If the autodiscovery cache is still valid use it.
-- if ($cache->mtime() + $this->autodiscovery_cache_duration > time())
-- {
-- // Do not need to do feed autodiscovery yet.
-- if ($this->data['feed_url'] == $this->data['url'])
-- {
-- $cache->unlink();
-- $this->data = array();
-- }
-- else
-- {
-- $this->set_feed_url($this->data['feed_url']);
-- return $this->init();
-- }
-- }
-- }
-- // Check if the cache has been updated
-- elseif ($cache->mtime() + $this->cache_duration < time())
-- {
-- // If we have last-modified and/or etag set
-- if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag']))
-- {
-- $headers = array();
-- if (isset($this->data['headers']['last-modified']))
-- {
-- $headers['if-modified-since'] = $this->data['headers']['last-modified'];
-- }
-- if (isset($this->data['headers']['etag']))
-- {
-- $headers['if-none-match'] = '"' . $this->data['headers']['etag'] . '"';
-- }
-- $file = new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen, $this->proxy);
-- if ($file->success)
-- {
-- if ($file->status_code == 304)
-- {
-- $cache->touch();
-- return true;
-- }
-- else
-- {
-- $headers = $file->headers;
-- }
-- }
-- else
-- {
-- unset($file);
-- }
-- }
-- }
-- // If the cache is still valid, just return true
-- else
-- {
-- return true;
-- }
-- }
-- // If the cache is empty, delete it
-- else
-- {
-- $cache->unlink();
-- $this->data = array();
-- }
-- }
-- // If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it.
-- if (!isset($file))
-- {
-- if (is_a($this->file, 'SimplePie_File') && $this->file->url == $this->feed_url)
-- {
-- $file =& $this->file;
-- }
-- else
-- {
-- $file = new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen, $this->proxy);
-- }
-- }
-- // If the file connection has an error, set SimplePie::error to that and quit
-- if (!$file->success)
-- {
-- $this->error = $file->error;
-- if (!empty($this->data))
-- {
-- return true;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- if (!$this->force_feed)
-- {
-- // Check if the supplied URL is a feed, if it isn't, look for it.
-- $locate = new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds, $this->content_type_sniffer_class);
-- if (!$locate->is_feed($file))
-- {
-- // We need to unset this so that if SimplePie::set_file() has been called that object is untouched
-- unset($file);
-- if ($file = $locate->find($this->autodiscovery))
-- {
-- if ($cache)
-- {
-- $this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD);
-- if (!$cache->save($this))
-- {
-- trigger_error("$cache->name is not writeable", E_USER_WARNING);
-- }
-- $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc');
-- }
-- $this->feed_url = $file->url;
-- }
-- else
-- {
-- $this->error = "A feed could not be found at $this->feed_url";
-- SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-- return false;
-- }
-- }
-- $locate = null;
-- }
--
-- $headers = $file->headers;
-- $data = $file->body;
-- $sniffer = new $this->content_type_sniffer_class($file);
-- $sniffed = $sniffer->get_type();
-- }
-- else
-- {
-- $data = $this->raw_data;
-- }
--
-- // Set up array of possible encodings
-- $encodings = array();
--
-- // First check to see if input has been overridden.
-- if ($this->input_encoding !== false)
-- {
-- $encodings[] = $this->input_encoding;
-- }
--
-- $application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity');
-- $text_types = array('text/xml', 'text/xml-external-parsed-entity');
--
-- // RFC 3023 (only applies to sniffed content)
-- if (isset($sniffed))
-- {
-- if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml')
-- {
-- if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-- {
-- $encodings[] = strtoupper($charset[1]);
-- }
-- $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data));
-- $encodings[] = 'UTF-8';
-- }
-- elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml')
-- {
-- if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-- {
-- $encodings[] = $charset[1];
-- }
-- $encodings[] = 'US-ASCII';
-- }
-- // Text MIME-type default
-- elseif (substr($sniffed, 0, 5) === 'text/')
-- {
-- $encodings[] = 'US-ASCII';
-- }
-- }
--
-- // Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1
-- $encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data));
-- $encodings[] = 'UTF-8';
-- $encodings[] = 'ISO-8859-1';
--
-- // There's no point in trying an encoding twice
-- $encodings = array_unique($encodings);
--
-- // If we want the XML, just output that with the most likely encoding and quit
-- if ($this->xml_dump)
-- {
-- header('Content-type: text/xml; charset=' . $encodings[0]);
-- echo $data;
-- exit;
-- }
--
-- // Loop through each possible encoding, till we return something, or run out of possibilities
-- foreach ($encodings as $encoding)
-- {
-- // Change the encoding to UTF-8 (as we always use UTF-8 internally)
-- if ($utf8_data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8'))
-- {
-- // Create new parser
-- $parser = new $this->parser_class();
--
-- // If it's parsed fine
-- if ($parser->parse($utf8_data, 'UTF-8'))
-- {
-- $this->data = $parser->get_data();
-- if ($this->get_type() & ~SIMPLEPIE_TYPE_NONE)
-- {
-- if (isset($headers))
-- {
-- $this->data['headers'] = $headers;
-- }
-- $this->data['build'] = SIMPLEPIE_BUILD;
--
-- // Cache the file if caching is enabled
-- if ($cache && !$cache->save($this))
-- {
-- trigger_error("$cache->name is not writeable", E_USER_WARNING);
-- }
-- return true;
-- }
-- else
-- {
-- $this->error = "A feed could not be found at $this->feed_url";
-- SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-- return false;
-- }
-- }
-- }
-- }
-- // We have an error, just set SimplePie::error to it and quit
-- $this->error = sprintf('XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column());
-- SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-- return false;
-- }
-- elseif (!empty($this->multifeed_url))
-- {
-- $i = 0;
-- $success = 0;
-- $this->multifeed_objects = array();
-- foreach ($this->multifeed_url as $url)
-- {
-- if (SIMPLEPIE_PHP5)
-- {
-- // This keyword needs to defy coding standards for PHP4 compatibility
-- $this->multifeed_objects[$i] = clone($this);
-- }
-- else
-- {
-- $this->multifeed_objects[$i] = $this;
-- }
-- $this->multifeed_objects[$i]->set_feed_url($url);
-- $success |= $this->multifeed_objects[$i]->init();
-- $i++;
-- }
-- return (bool) $success;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Return the error message for the occured error
-- *
-- * @access public
-- * @return string Error message
-- */
-- function error()
-- {
-- return $this->error;
-- }
--
-- function get_encoding()
-- {
-- return $this->sanitize->output_encoding;
-- }
--
-- function handle_content_type($mime = 'text/html')
-- {
-- if (!headers_sent())
-- {
-- $header = "Content-type: $mime;";
-- if ($this->get_encoding())
-- {
-- $header .= ' charset=' . $this->get_encoding();
-- }
-- else
-- {
-- $header .= ' charset=UTF-8';
-- }
-- header($header);
-- }
-- }
--
-- function get_type()
-- {
-- if (!isset($this->data['type']))
-- {
-- $this->data['type'] = SIMPLEPIE_TYPE_ALL;
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed']))
-- {
-- $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_10;
-- }
-- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed']))
-- {
-- $this->data['type'] &= SIMPLEPIE_TYPE_ATOM_03;
-- }
-- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF']))
-- {
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['channel'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['image'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_10]['textinput']))
-- {
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_10;
-- }
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['channel'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['image'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item'])
-- || isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_090]['textinput']))
-- {
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_090;
-- }
-- }
-- elseif (isset($this->data['child']['']['rss']))
-- {
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_ALL;
-- if (isset($this->data['child']['']['rss'][0]['attribs']['']['version']))
-- {
-- switch (trim($this->data['child']['']['rss'][0]['attribs']['']['version']))
-- {
-- case '0.91':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091;
-- if (isset($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data']))
-- {
-- switch (trim($this->data['child']['']['rss'][0]['child']['']['skiphours']['hour'][0]['data']))
-- {
-- case '0':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_NETSCAPE;
-- break;
--
-- case '24':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_091_USERLAND;
-- break;
-- }
-- }
-- break;
--
-- case '0.92':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_092;
-- break;
--
-- case '0.93':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_093;
-- break;
--
-- case '0.94':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_094;
-- break;
--
-- case '2.0':
-- $this->data['type'] &= SIMPLEPIE_TYPE_RSS_20;
-- break;
-- }
-- }
-- }
-- else
-- {
-- $this->data['type'] = SIMPLEPIE_TYPE_NONE;
-- }
-- }
-- return $this->data['type'];
-- }
--
-- /**
-- * Returns the URL for the favicon of the feed's website.
-- *
-- * @todo Cache atom:icon
-- * @access public
-- * @since 1.0
-- */
-- function get_favicon()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif (($url = $this->get_link()) !== null && preg_match('/^http(s)?:\/\//i', $url))
-- {
-- $favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $url);
--
-- if ($this->cache && $this->favicon_handler)
-- {
-- $favicon_filename = call_user_func($this->cache_name_function, $favicon);
-- $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $favicon_filename, 'spi');
--
-- if ($cache->load())
-- {
-- return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- $file = new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen, $this->proxy);
--
-- if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0)
-- {
-- $sniffer = new $this->content_type_sniffer_class($file);
-- if (substr($sniffer->get_type(), 0, 6) === 'image/')
-- {
-- if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
-- {
-- return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- trigger_error("$cache->name is not writeable", E_USER_WARNING);
-- return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
-- }
-- }
-- }
-- else
-- {
-- return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
-- return false;
-- }
--
-- /**
-- * @todo If we have a perm redirect we should return the new URL
-- * @todo When we make the above change, let's support <itunes:new-feed-url> as well
-- * @todo Also, |atom:link|@rel=self
-- */
-- function subscribe_url()
-- {
-- if ($this->feed_url !== null)
-- {
-- return $this->sanitize($this->feed_url, SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function subscribe_feed()
-- {
-- if ($this->feed_url !== null)
-- {
-- return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function subscribe_outlook()
-- {
-- if ($this->feed_url !== null)
-- {
-- return 'outlook' . $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function subscribe_podcast()
-- {
-- if ($this->feed_url !== null)
-- {
-- return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 3), SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function subscribe_itunes()
-- {
-- if ($this->feed_url !== null)
-- {
-- return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 4), SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * Creates the subscribe_* methods' return data
-- *
-- * @access private
-- * @param string $feed_url String to prefix to the feed URL
-- * @param string $site_url String to prefix to the site URL (and
-- * suffix to the feed URL)
-- * @return mixed URL if feed exists, false otherwise
-- */
-- function subscribe_service($feed_url, $site_url = null)
-- {
-- if ($this->subscribe_url())
-- {
-- $return = $this->sanitize($feed_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->feed_url);
-- if ($site_url !== null && $this->get_link() !== null)
-- {
-- $return .= $this->sanitize($site_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_link());
-- }
-- return $return;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function subscribe_aol()
-- {
-- return $this->subscribe_service('http://feeds.my.aol.com/add.jsp?url=');
-- }
--
-- function subscribe_bloglines()
-- {
-- return urldecode($this->subscribe_service('http://www.bloglines.com/sub/'));
-- }
--
-- function subscribe_eskobo()
-- {
-- return $this->subscribe_service('http://www.eskobo.com/?AddToMyPage=');
-- }
--
-- function subscribe_feedfeeds()
-- {
-- return $this->subscribe_service('http://www.feedfeeds.com/add?feed=');
-- }
--
-- function subscribe_feedster()
-- {
-- return $this->subscribe_service('http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl=');
-- }
--
-- function subscribe_google()
-- {
-- return $this->subscribe_service('http://fusion.google.com/add?feedurl=');
-- }
--
-- function subscribe_gritwire()
-- {
-- return $this->subscribe_service('http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl=');
-- }
--
-- function subscribe_msn()
-- {
-- return $this->subscribe_service('http://my.msn.com/addtomymsn.armx?id=rss&ut=', '&ru=');
-- }
--
-- function subscribe_netvibes()
-- {
-- return $this->subscribe_service('http://www.netvibes.com/subscribe.php?url=');
-- }
--
-- function subscribe_newsburst()
-- {
-- return $this->subscribe_service('http://www.newsburst.com/Source/?add=');
-- }
--
-- function subscribe_newsgator()
-- {
-- return $this->subscribe_service('http://www.newsgator.com/ngs/subscriber/subext.aspx?url=');
-- }
--
-- function subscribe_odeo()
-- {
-- return $this->subscribe_service('http://www.odeo.com/listen/subscribe?feed=');
-- }
--
-- function subscribe_podnova()
-- {
-- return $this->subscribe_service('http://www.podnova.com/index_your_podcasts.srf?action=add&url=');
-- }
--
-- function subscribe_rojo()
-- {
-- return $this->subscribe_service('http://www.rojo.com/add-subscription?resource=');
-- }
--
-- function subscribe_yahoo()
-- {
-- return $this->subscribe_service('http://add.my.yahoo.com/rss?url=');
-- }
--
-- function get_feed_tags($namespace, $tag)
-- {
-- $type = $this->get_type();
-- if ($type & SIMPLEPIE_TYPE_ATOM_10)
-- {
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag]))
-- {
-- return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['child'][$namespace][$tag];
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_ATOM_03)
-- {
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag]))
-- {
-- return $this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['child'][$namespace][$tag];
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_RDF)
-- {
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag]))
-- {
-- return $this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['child'][$namespace][$tag];
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-- {
-- if (isset($this->data['child']['']['rss'][0]['child'][$namespace][$tag]))
-- {
-- return $this->data['child']['']['rss'][0]['child'][$namespace][$tag];
-- }
-- }
-- return null;
-- }
--
-- function get_channel_tags($namespace, $tag)
-- {
-- $type = $this->get_type();
-- if ($type & SIMPLEPIE_TYPE_ATOM_ALL)
-- {
-- if ($return = $this->get_feed_tags($namespace, $tag))
-- {
-- return $return;
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_10)
-- {
-- if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'channel'))
-- {
-- if (isset($channel[0]['child'][$namespace][$tag]))
-- {
-- return $channel[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_090)
-- {
-- if ($channel = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'channel'))
-- {
-- if (isset($channel[0]['child'][$namespace][$tag]))
-- {
-- return $channel[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-- {
-- if ($channel = $this->get_feed_tags('', 'channel'))
-- {
-- if (isset($channel[0]['child'][$namespace][$tag]))
-- {
-- return $channel[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- return null;
-- }
--
-- function get_image_tags($namespace, $tag)
-- {
-- $type = $this->get_type();
-- if ($type & SIMPLEPIE_TYPE_RSS_10)
-- {
-- if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'image'))
-- {
-- if (isset($image[0]['child'][$namespace][$tag]))
-- {
-- return $image[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_090)
-- {
-- if ($image = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'image'))
-- {
-- if (isset($image[0]['child'][$namespace][$tag]))
-- {
-- return $image[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- if ($type & SIMPLEPIE_TYPE_RSS_SYNDICATION)
-- {
-- if ($image = $this->get_channel_tags('', 'image'))
-- {
-- if (isset($image[0]['child'][$namespace][$tag]))
-- {
-- return $image[0]['child'][$namespace][$tag];
-- }
-- }
-- }
-- return null;
-- }
--
-- function get_base($element = array())
-- {
-- if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base']))
-- {
-- return $element['xml_base'];
-- }
-- elseif ($this->get_link() !== null)
-- {
-- return $this->get_link();
-- }
-- else
-- {
-- return $this->subscribe_url();
-- }
-- }
--
-- function sanitize($data, $type, $base = '')
-- {
-- return $this->sanitize->sanitize($data, $type, $base);
-- }
--
-- function get_title()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags('', 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_category($key = 0)
-- {
-- $categories = $this->get_categories();
-- if (isset($categories[$key]))
-- {
-- return $categories[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_categories()
-- {
-- $categories = array();
--
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['attribs']['']['term']))
-- {
-- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->category_class($term, $scheme, $label);
-- }
-- foreach ((array) $this->get_channel_tags('', 'category') as $category)
-- {
-- $categories[] = new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-- {
-- $categories[] = new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-- {
-- $categories[] = new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($categories))
-- {
-- return SimplePie_Misc::array_unique($categories);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_author($key = 0)
-- {
-- $authors = $this->get_authors();
-- if (isset($authors[$key]))
-- {
-- return $authors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_authors()
-- {
-- $authors = array();
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $authors[] = new $this->author_class($name, $uri, $email);
-- }
-- }
-- if ($author = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $authors[] = new $this->author_class($name, $url, $email);
-- }
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-- {
-- $authors[] = new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-- {
-- $authors[] = new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-- {
-- $authors[] = new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($authors))
-- {
-- return SimplePie_Misc::array_unique($authors);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributor($key = 0)
-- {
-- $contributors = $this->get_contributors();
-- if (isset($contributors[$key]))
-- {
-- return $contributors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributors()
-- {
-- $contributors = array();
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $contributors[] = new $this->author_class($name, $uri, $email);
-- }
-- }
-- foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $contributors[] = new $this->author_class($name, $url, $email);
-- }
-- }
--
-- if (!empty($contributors))
-- {
-- return SimplePie_Misc::array_unique($contributors);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_link($key = 0, $rel = 'alternate')
-- {
-- $links = $this->get_links($rel);
-- if (isset($links[$key]))
-- {
-- return $links[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * Added for parity between the parent-level and the item/entry-level.
-- */
-- function get_permalink()
-- {
-- return $this->get_link(0);
-- }
--
-- function get_links($rel = 'alternate')
-- {
-- if (!isset($this->data['links']))
-- {
-- $this->data['links'] = array();
-- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
-- {
-- foreach ($links as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-- }
-- }
-- }
-- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
-- {
-- foreach ($links as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
--
-- }
-- }
-- }
-- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_channel_tags('', 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
--
-- $keys = array_keys($this->data['links']);
-- foreach ($keys as $key)
-- {
-- if (SimplePie_Misc::is_isegment_nz_nc($key))
-- {
-- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-- }
-- else
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-- }
-- }
-- elseif (substr($key, 0, 41) == SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-- {
-- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-- }
-- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
-- }
-- }
--
-- if (isset($this->data['links'][$rel]))
-- {
-- return $this->data['links'][$rel];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_description()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags('', 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_copyright()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags('', 'copyright'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_language()
-- {
-- if ($return = $this->get_channel_tags('', 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang']))
-- {
-- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang']))
-- {
-- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang']))
-- {
-- return $this->sanitize($this->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($this->data['headers']['content-language']))
-- {
-- return $this->sanitize($this->data['headers']['content-language'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_latitude()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[1];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_longitude()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[2];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_title()
-- {
-- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_image_tags('', 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_url()
-- {
-- if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
-- {
-- return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'url'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'url'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_image_tags('', 'url'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_link()
-- {
-- if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_image_tags('', 'link'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_width()
-- {
-- if ($return = $this->get_image_tags('', 'width'))
-- {
-- return round($return[0]['data']);
-- }
-- elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags('', 'url'))
-- {
-- return 88.0;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_height()
-- {
-- if ($return = $this->get_image_tags('', 'height'))
-- {
-- return round($return[0]['data']);
-- }
-- elseif ($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION && $this->get_image_tags('', 'url'))
-- {
-- return 31.0;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_item_quantity($max = 0)
-- {
-- $qty = count($this->get_items());
-- if ($max == 0)
-- {
-- return $qty;
-- }
-- else
-- {
-- return ($qty > $max) ? $max : $qty;
-- }
-- }
--
-- function get_item($key = 0)
-- {
-- $items = $this->get_items();
-- if (isset($items[$key]))
-- {
-- return $items[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_items($start = 0, $end = 0)
-- {
-- if (!empty($this->multifeed_objects))
-- {
-- return SimplePie::merge_items($this->multifeed_objects, $start, $end, $this->item_limit);
-- }
-- elseif (!isset($this->data['items']))
-- {
-- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'entry'))
-- {
-- $keys = array_keys($items);
-- foreach ($keys as $key)
-- {
-- $this->data['items'][] = new $this->item_class($this, $items[$key]);
-- }
-- }
-- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry'))
-- {
-- $keys = array_keys($items);
-- foreach ($keys as $key)
-- {
-- $this->data['items'][] = new $this->item_class($this, $items[$key]);
-- }
-- }
-- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item'))
-- {
-- $keys = array_keys($items);
-- foreach ($keys as $key)
-- {
-- $this->data['items'][] = new $this->item_class($this, $items[$key]);
-- }
-- }
-- if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item'))
-- {
-- $keys = array_keys($items);
-- foreach ($keys as $key)
-- {
-- $this->data['items'][] = new $this->item_class($this, $items[$key]);
-- }
-- }
-- if ($items = $this->get_channel_tags('', 'item'))
-- {
-- $keys = array_keys($items);
-- foreach ($keys as $key)
-- {
-- $this->data['items'][] = new $this->item_class($this, $items[$key]);
-- }
-- }
-- }
--
-- if (!empty($this->data['items']))
-- {
-- // If we want to order it by date, check if all items have a date, and then sort it
-- if ($this->order_by_date)
-- {
-- if (!isset($this->data['ordered_items']))
-- {
-- $do_sort = true;
-- foreach ($this->data['items'] as $item)
-- {
-- if (!$item->get_date('U'))
-- {
-- $do_sort = false;
-- break;
-- }
-- }
-- $item = null;
-- $this->data['ordered_items'] = $this->data['items'];
-- if ($do_sort)
-- {
-- usort($this->data['ordered_items'], array(&$this, 'sort_items'));
-- }
-- }
-- $items = $this->data['ordered_items'];
-- }
-- else
-- {
-- $items = $this->data['items'];
-- }
--
-- // Slice the data as desired
-- if ($end == 0)
-- {
-- return array_slice($items, $start);
-- }
-- else
-- {
-- return array_slice($items, $start, $end);
-- }
-- }
-- else
-- {
-- return array();
-- }
-- }
--
-- function sort_items($a, $b)
-- {
-- return $a->get_date('U') <= $b->get_date('U');
-- }
--
-- function merge_items($urls, $start = 0, $end = 0, $limit = 0)
-- {
-- if (is_array($urls) && sizeof($urls) > 0)
-- {
-- $items = array();
-- foreach ($urls as $arg)
-- {
-- if (is_a($arg, 'SimplePie'))
-- {
-- $items = array_merge($items, $arg->get_items(0, $limit));
-- }
-- else
-- {
-- trigger_error('Arguments must be SimplePie objects', E_USER_WARNING);
-- }
-- }
--
-- $do_sort = true;
-- foreach ($items as $item)
-- {
-- if (!$item->get_date('U'))
-- {
-- $do_sort = false;
-- break;
-- }
-- }
-- $item = null;
-- if ($do_sort)
-- {
-- usort($items, array('SimplePie', 'sort_items'));
-- }
--
-- if ($end == 0)
-- {
-- return array_slice($items, $start);
-- }
-- else
-- {
-- return array_slice($items, $start, $end);
-- }
-- }
-- else
-- {
-- trigger_error('Cannot merge zero SimplePie objects', E_USER_WARNING);
-- return array();
-- }
-- }
--}
--
--class SimplePie_Item
--{
-- var $feed;
-- var $data = array();
--
-- function SimplePie_Item($feed, $data)
-- {
-- $this->feed = $feed;
-- $this->data = $data;
-- }
--
-- function __toString()
-- {
-- return md5(serialize($this->data));
-- }
--
-- /**
-- * Remove items that link back to this before destroying this object
-- */
-- function __destruct()
-- {
-- unset($this->feed);
-- }
--
-- function get_item_tags($namespace, $tag)
-- {
-- if (isset($this->data['child'][$namespace][$tag]))
-- {
-- return $this->data['child'][$namespace][$tag];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_base($element = array())
-- {
-- return $this->feed->get_base($element);
-- }
--
-- function sanitize($data, $type, $base = '')
-- {
-- return $this->feed->sanitize($data, $type, $base);
-- }
--
-- function get_feed()
-- {
-- return $this->feed;
-- }
--
-- function get_id($hash = false)
-- {
-- if (!$hash)
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags('', 'guid'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (($return = $this->get_permalink()) !== null)
-- {
-- return $return;
-- }
-- elseif (($return = $this->get_title()) !== null)
-- {
-- return $return;
-- }
-- }
-- if ($this->get_permalink() !== null || $this->get_title() !== null)
-- {
-- return md5($this->get_permalink() . $this->get_title());
-- }
-- else
-- {
-- return md5(serialize($this->data));
-- }
-- }
--
-- function get_title()
-- {
-- if (!isset($this->data['title']))
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags('', 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-- {
-- $this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $this->data['title'] = null;
-- }
-- }
-- return $this->data['title'];
-- }
--
-- function get_description($description_only = false)
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags('', 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (!$description_only)
-- {
-- return $this->get_content(true);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_content($content_only = false)
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_content_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- elseif (!$content_only)
-- {
-- return $this->get_description(true);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_category($key = 0)
-- {
-- $categories = $this->get_categories();
-- if (isset($categories[$key]))
-- {
-- return $categories[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_categories()
-- {
-- $categories = array();
--
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['attribs']['']['term']))
-- {
-- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- foreach ((array) $this->get_item_tags('', 'category') as $category)
-- {
-- $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-- {
-- $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-- {
-- $categories[] = new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($categories))
-- {
-- return SimplePie_Misc::array_unique($categories);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_author($key = 0)
-- {
-- $authors = $this->get_authors();
-- if (isset($authors[$key]))
-- {
-- return $authors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributor($key = 0)
-- {
-- $contributors = $this->get_contributors();
-- if (isset($contributors[$key]))
-- {
-- return $contributors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributors()
-- {
-- $contributors = array();
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $contributors[] = new $this->feed->author_class($name, $uri, $email);
-- }
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $contributors[] = new $this->feed->author_class($name, $url, $email);
-- }
-- }
--
-- if (!empty($contributors))
-- {
-- return SimplePie_Misc::array_unique($contributors);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * @todo Atom inheritance (item author, source author, feed author)
-- */
-- function get_authors()
-- {
-- $authors = array();
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $authors[] = new $this->feed->author_class($name, $uri, $email);
-- }
-- }
-- if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $authors[] = new $this->feed->author_class($name, $url, $email);
-- }
-- }
-- if ($author = $this->get_item_tags('', 'author'))
-- {
-- $authors[] = new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-- {
-- $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-- {
-- $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-- {
-- $authors[] = new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($authors))
-- {
-- return SimplePie_Misc::array_unique($authors);
-- }
-- elseif (($source = $this->get_source()) && ($authors = $source->get_authors()))
-- {
-- return $authors;
-- }
-- elseif ($authors = $this->feed->get_authors())
-- {
-- return $authors;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_copyright()
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_date($date_format = 'j F Y, g:i a')
-- {
-- if (!isset($this->data['date']))
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags('', 'pubDate'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
-- {
-- $this->data['date']['raw'] = $return[0]['data'];
-- }
--
-- if (!empty($this->data['date']['raw']))
-- {
-- $parser = SimplePie_Parse_Date::get();
-- $this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']);
-- }
-- else
-- {
-- $this->data['date'] = null;
-- }
-- }
-- if ($this->data['date'])
-- {
-- $date_format = (string) $date_format;
-- switch ($date_format)
-- {
-- case '':
-- return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
--
-- case 'U':
-- return $this->data['date']['parsed'];
--
-- default:
-- return date($date_format, $this->data['date']['parsed']);
-- }
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_local_date($date_format = '%c')
-- {
-- if (!$date_format)
-- {
-- return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (($date = $this->get_date('U')) !== null)
-- {
-- return strftime($date_format, $date);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_permalink()
-- {
-- $link = $this->get_link();
-- $enclosure = $this->get_enclosure(0);
-- if ($link !== null)
-- {
-- return $link;
-- }
-- elseif ($enclosure !== null)
-- {
-- return $enclosure->get_link();
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_link($key = 0, $rel = 'alternate')
-- {
-- $links = $this->get_links($rel);
-- if ($links[$key] !== null)
-- {
-- return $links[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_links($rel = 'alternate')
-- {
-- if (!isset($this->data['links']))
-- {
-- $this->data['links'] = array();
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
--
-- }
-- }
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-- }
-- }
-- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_item_tags('', 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_item_tags('', 'guid'))
-- {
-- if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) == 'true')
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- }
--
-- $keys = array_keys($this->data['links']);
-- foreach ($keys as $key)
-- {
-- if (SimplePie_Misc::is_isegment_nz_nc($key))
-- {
-- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-- }
-- else
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-- }
-- }
-- elseif (substr($key, 0, 41) == SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-- {
-- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-- }
-- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
-- }
-- }
-- if (isset($this->data['links'][$rel]))
-- {
-- return $this->data['links'][$rel];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * @todo Add ability to prefer one type of content over another (in a media group).
-- */
-- function get_enclosure($key = 0, $prefer = null)
-- {
-- $enclosures = $this->get_enclosures();
-- if (isset($enclosures[$key]))
-- {
-- return $enclosures[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * Grabs all available enclosures (podcasts, etc.)
-- *
-- * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
-- *
-- * At this point, we're pretty much assuming that all enclosures for an item are the same content. Anything else is too complicated to properly support.
-- *
-- * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
-- * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists).
-- */
-- function get_enclosures()
-- {
-- if (!isset($this->data['enclosures']))
-- {
-- $this->data['enclosures'] = array();
--
-- // Elements
-- $captions_parent = null;
-- $categories_parent = null;
-- $copyrights_parent = null;
-- $credits_parent = null;
-- $description_parent = null;
-- $duration_parent = null;
-- $hashes_parent = null;
-- $keywords_parent = null;
-- $player_parent = null;
-- $ratings_parent = null;
-- $restrictions_parent = null;
-- $thumbnails_parent = null;
-- $title_parent = null;
--
-- // Let's do the channel and item-level ones first, and just re-use them if we need to.
-- $parent = $this->get_feed();
--
-- // CAPTIONS
-- if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-- {
-- foreach ($captions as $caption)
-- {
-- $caption_type = null;
-- $caption_lang = null;
-- $caption_startTime = null;
-- $caption_endTime = null;
-- $caption_text = null;
-- if (isset($caption['attribs']['']['type']))
-- {
-- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['lang']))
-- {
-- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['start']))
-- {
-- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['end']))
-- {
-- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['data']))
-- {
-- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-- }
-- }
-- elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-- {
-- foreach ($captions as $caption)
-- {
-- $caption_type = null;
-- $caption_lang = null;
-- $caption_startTime = null;
-- $caption_endTime = null;
-- $caption_text = null;
-- if (isset($caption['attribs']['']['type']))
-- {
-- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['lang']))
-- {
-- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['start']))
-- {
-- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['end']))
-- {
-- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['data']))
-- {
-- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $captions_parent[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-- }
-- }
-- if (is_array($captions_parent))
-- {
-- $captions_parent = array_values(SimplePie_Misc::array_unique($captions_parent));
-- }
--
-- // CATEGORIES
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['data']))
-- {
-- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $scheme = 'http://search.yahoo.com/mrss/category_schema';
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories_parent[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['data']))
-- {
-- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $scheme = 'http://search.yahoo.com/mrss/category_schema';
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories_parent[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category)
-- {
-- $term = null;
-- $scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd';
-- $label = null;
-- if (isset($category['attribs']['']['text']))
-- {
-- $label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories_parent[] = new $this->feed->category_class($term, $scheme, $label);
--
-- if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category']))
-- {
-- foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory)
-- {
-- if (isset($subcategory['attribs']['']['text']))
-- {
-- $label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories_parent[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- }
-- }
-- if (is_array($categories_parent))
-- {
-- $categories_parent = array_values(SimplePie_Misc::array_unique($categories_parent));
-- }
--
-- // COPYRIGHT
-- if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-- {
-- $copyright_url = null;
-- $copyright_label = null;
-- if (isset($copyright[0]['attribs']['']['url']))
-- {
-- $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($copyright[0]['data']))
-- {
-- $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label);
-- }
-- elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-- {
-- $copyright_url = null;
-- $copyright_label = null;
-- if (isset($copyright[0]['attribs']['']['url']))
-- {
-- $copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($copyright[0]['data']))
-- {
-- $copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $copyrights_parent = new $this->feed->copyright_class($copyright_url, $copyright_label);
-- }
--
-- // CREDITS
-- if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-- {
-- foreach ($credits as $credit)
-- {
-- $credit_role = null;
-- $credit_scheme = null;
-- $credit_name = null;
-- if (isset($credit['attribs']['']['role']))
-- {
-- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($credit['attribs']['']['scheme']))
-- {
-- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $credit_scheme = 'urn:ebu';
-- }
-- if (isset($credit['data']))
-- {
-- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-- }
-- }
-- elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-- {
-- foreach ($credits as $credit)
-- {
-- $credit_role = null;
-- $credit_scheme = null;
-- $credit_name = null;
-- if (isset($credit['attribs']['']['role']))
-- {
-- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($credit['attribs']['']['scheme']))
-- {
-- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $credit_scheme = 'urn:ebu';
-- }
-- if (isset($credit['data']))
-- {
-- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $credits_parent[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-- }
-- }
-- if (is_array($credits_parent))
-- {
-- $credits_parent = array_values(SimplePie_Misc::array_unique($credits_parent));
-- }
--
-- // DESCRIPTION
-- if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-- {
-- if (isset($description_parent[0]['data']))
-- {
-- $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- }
-- elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-- {
-- if (isset($description_parent[0]['data']))
-- {
-- $description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- }
--
-- // DURATION
-- if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration'))
-- {
-- $seconds = null;
-- $minutes = null;
-- $hours = null;
-- if (isset($duration_parent[0]['data']))
-- {
-- $temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- if (sizeof($temp) > 0)
-- {
-- (int) $seconds = array_pop($temp);
-- }
-- if (sizeof($temp) > 0)
-- {
-- (int) $minutes = array_pop($temp);
-- $seconds += $minutes * 60;
-- }
-- if (sizeof($temp) > 0)
-- {
-- (int) $hours = array_pop($temp);
-- $seconds += $hours * 3600;
-- }
-- unset($temp);
-- $duration_parent = $seconds;
-- }
-- }
--
-- // HASHES
-- if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-- {
-- foreach ($hashes_iterator as $hash)
-- {
-- $value = null;
-- $algo = null;
-- if (isset($hash['data']))
-- {
-- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($hash['attribs']['']['algo']))
-- {
-- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $algo = 'md5';
-- }
-- $hashes_parent[] = $algo.':'.$value;
-- }
-- }
-- elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-- {
-- foreach ($hashes_iterator as $hash)
-- {
-- $value = null;
-- $algo = null;
-- if (isset($hash['data']))
-- {
-- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($hash['attribs']['']['algo']))
-- {
-- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $algo = 'md5';
-- }
-- $hashes_parent[] = $algo.':'.$value;
-- }
-- }
-- if (is_array($hashes_parent))
-- {
-- $hashes_parent = array_values(SimplePie_Misc::array_unique($hashes_parent));
-- }
--
-- // KEYWORDS
-- if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-- {
-- if (isset($keywords[0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords_parent[] = trim($word);
-- }
-- }
-- unset($temp);
-- }
-- elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-- {
-- if (isset($keywords[0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords_parent[] = trim($word);
-- }
-- }
-- unset($temp);
-- }
-- elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-- {
-- if (isset($keywords[0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords_parent[] = trim($word);
-- }
-- }
-- unset($temp);
-- }
-- elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-- {
-- if (isset($keywords[0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords_parent[] = trim($word);
-- }
-- }
-- unset($temp);
-- }
-- if (is_array($keywords_parent))
-- {
-- $keywords_parent = array_values(SimplePie_Misc::array_unique($keywords_parent));
-- }
--
-- // PLAYER
-- if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-- {
-- if (isset($player_parent[0]['attribs']['']['url']))
-- {
-- $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
-- elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-- {
-- if (isset($player_parent[0]['attribs']['']['url']))
-- {
-- $player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
--
-- // RATINGS
-- if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-- {
-- foreach ($ratings as $rating)
-- {
-- $rating_scheme = null;
-- $rating_value = null;
-- if (isset($rating['attribs']['']['scheme']))
-- {
-- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $rating_scheme = 'urn:simple';
-- }
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- }
-- elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-- {
-- foreach ($ratings as $rating)
-- {
-- $rating_scheme = 'urn:itunes';
-- $rating_value = null;
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- }
-- elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-- {
-- foreach ($ratings as $rating)
-- {
-- $rating_scheme = null;
-- $rating_value = null;
-- if (isset($rating['attribs']['']['scheme']))
-- {
-- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $rating_scheme = 'urn:simple';
-- }
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- }
-- elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-- {
-- foreach ($ratings as $rating)
-- {
-- $rating_scheme = 'urn:itunes';
-- $rating_value = null;
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings_parent[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- }
-- if (is_array($ratings_parent))
-- {
-- $ratings_parent = array_values(SimplePie_Misc::array_unique($ratings_parent));
-- }
--
-- // RESTRICTIONS
-- if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-- {
-- foreach ($restrictions as $restriction)
-- {
-- $restriction_relationship = null;
-- $restriction_type = null;
-- $restriction_value = null;
-- if (isset($restriction['attribs']['']['relationship']))
-- {
-- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['attribs']['']['type']))
-- {
-- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['data']))
-- {
-- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- }
-- elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-- {
-- foreach ($restrictions as $restriction)
-- {
-- $restriction_relationship = 'allow';
-- $restriction_type = null;
-- $restriction_value = 'itunes';
-- if (isset($restriction['data']) && strtolower($restriction['data']) == 'yes')
-- {
-- $restriction_relationship = 'deny';
-- }
-- $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- }
-- elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-- {
-- foreach ($restrictions as $restriction)
-- {
-- $restriction_relationship = null;
-- $restriction_type = null;
-- $restriction_value = null;
-- if (isset($restriction['attribs']['']['relationship']))
-- {
-- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['attribs']['']['type']))
-- {
-- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['data']))
-- {
-- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- }
-- elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-- {
-- foreach ($restrictions as $restriction)
-- {
-- $restriction_relationship = 'allow';
-- $restriction_type = null;
-- $restriction_value = 'itunes';
-- if (isset($restriction['data']) && strtolower($restriction['data']) == 'yes')
-- {
-- $restriction_relationship = 'deny';
-- }
-- $restrictions_parent[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- }
-- if (is_array($restrictions_parent))
-- {
-- $restrictions_parent = array_values(SimplePie_Misc::array_unique($restrictions_parent));
-- }
--
-- // THUMBNAILS
-- if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-- {
-- foreach ($thumbnails as $thumbnail)
-- {
-- if (isset($thumbnail['attribs']['']['url']))
-- {
-- $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
-- }
-- elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-- {
-- foreach ($thumbnails as $thumbnail)
-- {
-- if (isset($thumbnail['attribs']['']['url']))
-- {
-- $thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- }
-- }
--
-- // TITLES
-- if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-- {
-- if (isset($title_parent[0]['data']))
-- {
-- $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- }
-- elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-- {
-- if (isset($title_parent[0]['data']))
-- {
-- $title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- }
--
-- // Clear the memory
-- unset($parent);
--
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- // Elements
-- $captions = null;
-- $categories = null;
-- $copyrights = null;
-- $credits = null;
-- $description = null;
-- $hashes = null;
-- $keywords = null;
-- $player = null;
-- $ratings = null;
-- $restrictions = null;
-- $thumbnails = null;
-- $title = null;
--
-- // If we have media:group tags, loop through them.
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group)
-- {
-- // If we have media:content tags, loop through them.
-- foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-- {
-- if (isset($content['attribs']['']['url']))
-- {
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- // Elements
-- $captions = null;
-- $categories = null;
-- $copyrights = null;
-- $credits = null;
-- $description = null;
-- $hashes = null;
-- $keywords = null;
-- $player = null;
-- $ratings = null;
-- $restrictions = null;
-- $thumbnails = null;
-- $title = null;
--
-- // Start checking the attributes of media:content
-- if (isset($content['attribs']['']['bitrate']))
-- {
-- $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['channels']))
-- {
-- $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['duration']))
-- {
-- $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $duration = $duration_parent;
-- }
-- if (isset($content['attribs']['']['expression']))
-- {
-- $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['framerate']))
-- {
-- $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['height']))
-- {
-- $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['lang']))
-- {
-- $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['fileSize']))
-- {
-- $length = ceil($content['attribs']['']['fileSize']);
-- }
-- if (isset($content['attribs']['']['medium']))
-- {
-- $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['samplingrate']))
-- {
-- $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['type']))
-- {
-- $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['width']))
-- {
-- $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
--
-- // Checking the other optional media: elements. Priority: media:content, media:group, item, channel
--
-- // CAPTIONS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-- {
-- $caption_type = null;
-- $caption_lang = null;
-- $caption_startTime = null;
-- $caption_endTime = null;
-- $caption_text = null;
-- if (isset($caption['attribs']['']['type']))
-- {
-- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['lang']))
-- {
-- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['start']))
-- {
-- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['end']))
-- {
-- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['data']))
-- {
-- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-- }
-- if (is_array($captions))
-- {
-- $captions = array_values(SimplePie_Misc::array_unique($captions));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-- {
-- $caption_type = null;
-- $caption_lang = null;
-- $caption_startTime = null;
-- $caption_endTime = null;
-- $caption_text = null;
-- if (isset($caption['attribs']['']['type']))
-- {
-- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['lang']))
-- {
-- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['start']))
-- {
-- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['end']))
-- {
-- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['data']))
-- {
-- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-- }
-- if (is_array($captions))
-- {
-- $captions = array_values(SimplePie_Misc::array_unique($captions));
-- }
-- }
-- else
-- {
-- $captions = $captions_parent;
-- }
--
-- // CATEGORIES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-- {
-- foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['data']))
-- {
-- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $scheme = 'http://search.yahoo.com/mrss/category_schema';
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- }
-- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-- {
-- foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['data']))
-- {
-- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $scheme = 'http://search.yahoo.com/mrss/category_schema';
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- }
-- if (is_array($categories) && is_array($categories_parent))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent)));
-- }
-- elseif (is_array($categories))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique($categories));
-- }
-- elseif (is_array($categories_parent))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique($categories_parent));
-- }
--
-- // COPYRIGHTS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-- {
-- $copyright_url = null;
-- $copyright_label = null;
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-- {
-- $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-- {
-- $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label);
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-- {
-- $copyright_url = null;
-- $copyright_label = null;
-- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-- {
-- $copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-- {
-- $copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label);
-- }
-- else
-- {
-- $copyrights = $copyrights_parent;
-- }
--
-- // CREDITS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-- {
-- $credit_role = null;
-- $credit_scheme = null;
-- $credit_name = null;
-- if (isset($credit['attribs']['']['role']))
-- {
-- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($credit['attribs']['']['scheme']))
-- {
-- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $credit_scheme = 'urn:ebu';
-- }
-- if (isset($credit['data']))
-- {
-- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-- }
-- if (is_array($credits))
-- {
-- $credits = array_values(SimplePie_Misc::array_unique($credits));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-- {
-- $credit_role = null;
-- $credit_scheme = null;
-- $credit_name = null;
-- if (isset($credit['attribs']['']['role']))
-- {
-- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($credit['attribs']['']['scheme']))
-- {
-- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $credit_scheme = 'urn:ebu';
-- }
-- if (isset($credit['data']))
-- {
-- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-- }
-- if (is_array($credits))
-- {
-- $credits = array_values(SimplePie_Misc::array_unique($credits));
-- }
-- }
-- else
-- {
-- $credits = $credits_parent;
-- }
--
-- // DESCRIPTION
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-- {
-- $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-- {
-- $description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $description = $description_parent;
-- }
--
-- // HASHES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-- {
-- $value = null;
-- $algo = null;
-- if (isset($hash['data']))
-- {
-- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($hash['attribs']['']['algo']))
-- {
-- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $algo = 'md5';
-- }
-- $hashes[] = $algo.':'.$value;
-- }
-- if (is_array($hashes))
-- {
-- $hashes = array_values(SimplePie_Misc::array_unique($hashes));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-- {
-- $value = null;
-- $algo = null;
-- if (isset($hash['data']))
-- {
-- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($hash['attribs']['']['algo']))
-- {
-- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $algo = 'md5';
-- }
-- $hashes[] = $algo.':'.$value;
-- }
-- if (is_array($hashes))
-- {
-- $hashes = array_values(SimplePie_Misc::array_unique($hashes));
-- }
-- }
-- else
-- {
-- $hashes = $hashes_parent;
-- }
--
-- // KEYWORDS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-- {
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords[] = trim($word);
-- }
-- unset($temp);
-- }
-- if (is_array($keywords))
-- {
-- $keywords = array_values(SimplePie_Misc::array_unique($keywords));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-- {
-- if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords[] = trim($word);
-- }
-- unset($temp);
-- }
-- if (is_array($keywords))
-- {
-- $keywords = array_values(SimplePie_Misc::array_unique($keywords));
-- }
-- }
-- else
-- {
-- $keywords = $keywords_parent;
-- }
--
-- // PLAYER
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-- {
-- $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-- {
-- $player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- $player = $player_parent;
-- }
--
-- // RATINGS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-- {
-- $rating_scheme = null;
-- $rating_value = null;
-- if (isset($rating['attribs']['']['scheme']))
-- {
-- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $rating_scheme = 'urn:simple';
-- }
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- if (is_array($ratings))
-- {
-- $ratings = array_values(SimplePie_Misc::array_unique($ratings));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-- {
-- $rating_scheme = null;
-- $rating_value = null;
-- if (isset($rating['attribs']['']['scheme']))
-- {
-- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $rating_scheme = 'urn:simple';
-- }
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- if (is_array($ratings))
-- {
-- $ratings = array_values(SimplePie_Misc::array_unique($ratings));
-- }
-- }
-- else
-- {
-- $ratings = $ratings_parent;
-- }
--
-- // RESTRICTIONS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-- {
-- $restriction_relationship = null;
-- $restriction_type = null;
-- $restriction_value = null;
-- if (isset($restriction['attribs']['']['relationship']))
-- {
-- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['attribs']['']['type']))
-- {
-- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['data']))
-- {
-- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- if (is_array($restrictions))
-- {
-- $restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-- {
-- $restriction_relationship = null;
-- $restriction_type = null;
-- $restriction_value = null;
-- if (isset($restriction['attribs']['']['relationship']))
-- {
-- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['attribs']['']['type']))
-- {
-- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['data']))
-- {
-- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- if (is_array($restrictions))
-- {
-- $restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-- }
-- }
-- else
-- {
-- $restrictions = $restrictions_parent;
-- }
--
-- // THUMBNAILS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-- {
-- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- if (is_array($thumbnails))
-- {
-- $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-- }
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-- {
-- foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-- {
-- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- if (is_array($thumbnails))
-- {
-- $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-- }
-- }
-- else
-- {
-- $thumbnails = $thumbnails_parent;
-- }
--
-- // TITLES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-- {
-- $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-- {
-- $title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $title = $title_parent;
-- }
--
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width);
-- }
-- }
-- }
--
-- // If we have standalone media:content tags, loop through them.
-- if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
-- {
-- foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-- {
-- if (isset($content['attribs']['']['url']))
-- {
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- // Elements
-- $captions = null;
-- $categories = null;
-- $copyrights = null;
-- $credits = null;
-- $description = null;
-- $hashes = null;
-- $keywords = null;
-- $player = null;
-- $ratings = null;
-- $restrictions = null;
-- $thumbnails = null;
-- $title = null;
--
-- // Start checking the attributes of media:content
-- if (isset($content['attribs']['']['bitrate']))
-- {
-- $bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['channels']))
-- {
-- $channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['duration']))
-- {
-- $duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $duration = $duration_parent;
-- }
-- if (isset($content['attribs']['']['expression']))
-- {
-- $expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['framerate']))
-- {
-- $framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['height']))
-- {
-- $height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['lang']))
-- {
-- $lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['fileSize']))
-- {
-- $length = ceil($content['attribs']['']['fileSize']);
-- }
-- if (isset($content['attribs']['']['medium']))
-- {
-- $medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['samplingrate']))
-- {
-- $samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['type']))
-- {
-- $type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['attribs']['']['width']))
-- {
-- $width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
--
-- // Checking the other optional media: elements. Priority: media:content, media:group, item, channel
--
-- // CAPTIONS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-- {
-- $caption_type = null;
-- $caption_lang = null;
-- $caption_startTime = null;
-- $caption_endTime = null;
-- $caption_text = null;
-- if (isset($caption['attribs']['']['type']))
-- {
-- $caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['lang']))
-- {
-- $caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['start']))
-- {
-- $caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['attribs']['']['end']))
-- {
-- $caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($caption['data']))
-- {
-- $caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $captions[] = new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-- }
-- if (is_array($captions))
-- {
-- $captions = array_values(SimplePie_Misc::array_unique($captions));
-- }
-- }
-- else
-- {
-- $captions = $captions_parent;
-- }
--
-- // CATEGORIES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-- {
-- foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['data']))
-- {
-- $term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $scheme = 'http://search.yahoo.com/mrss/category_schema';
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->feed->category_class($term, $scheme, $label);
-- }
-- }
-- if (is_array($categories) && is_array($categories_parent))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent)));
-- }
-- elseif (is_array($categories))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique($categories));
-- }
-- elseif (is_array($categories_parent))
-- {
-- $categories = array_values(SimplePie_Misc::array_unique($categories_parent));
-- }
-- else
-- {
-- $categories = null;
-- }
--
-- // COPYRIGHTS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-- {
-- $copyright_url = null;
-- $copyright_label = null;
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-- {
-- $copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-- {
-- $copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $copyrights = new $this->feed->copyright_class($copyright_url, $copyright_label);
-- }
-- else
-- {
-- $copyrights = $copyrights_parent;
-- }
--
-- // CREDITS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-- {
-- $credit_role = null;
-- $credit_scheme = null;
-- $credit_name = null;
-- if (isset($credit['attribs']['']['role']))
-- {
-- $credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($credit['attribs']['']['scheme']))
-- {
-- $credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $credit_scheme = 'urn:ebu';
-- }
-- if (isset($credit['data']))
-- {
-- $credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $credits[] = new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-- }
-- if (is_array($credits))
-- {
-- $credits = array_values(SimplePie_Misc::array_unique($credits));
-- }
-- }
-- else
-- {
-- $credits = $credits_parent;
-- }
--
-- // DESCRIPTION
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-- {
-- $description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $description = $description_parent;
-- }
--
-- // HASHES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-- {
-- $value = null;
-- $algo = null;
-- if (isset($hash['data']))
-- {
-- $value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($hash['attribs']['']['algo']))
-- {
-- $algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $algo = 'md5';
-- }
-- $hashes[] = $algo.':'.$value;
-- }
-- if (is_array($hashes))
-- {
-- $hashes = array_values(SimplePie_Misc::array_unique($hashes));
-- }
-- }
-- else
-- {
-- $hashes = $hashes_parent;
-- }
--
-- // KEYWORDS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-- {
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-- {
-- $temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-- foreach ($temp as $word)
-- {
-- $keywords[] = trim($word);
-- }
-- unset($temp);
-- }
-- if (is_array($keywords))
-- {
-- $keywords = array_values(SimplePie_Misc::array_unique($keywords));
-- }
-- }
-- else
-- {
-- $keywords = $keywords_parent;
-- }
--
-- // PLAYER
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-- {
-- $player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- else
-- {
-- $player = $player_parent;
-- }
--
-- // RATINGS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-- {
-- $rating_scheme = null;
-- $rating_value = null;
-- if (isset($rating['attribs']['']['scheme']))
-- {
-- $rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $rating_scheme = 'urn:simple';
-- }
-- if (isset($rating['data']))
-- {
-- $rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $ratings[] = new $this->feed->rating_class($rating_scheme, $rating_value);
-- }
-- if (is_array($ratings))
-- {
-- $ratings = array_values(SimplePie_Misc::array_unique($ratings));
-- }
-- }
-- else
-- {
-- $ratings = $ratings_parent;
-- }
--
-- // RESTRICTIONS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-- {
-- $restriction_relationship = null;
-- $restriction_type = null;
-- $restriction_value = null;
-- if (isset($restriction['attribs']['']['relationship']))
-- {
-- $restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['attribs']['']['type']))
-- {
-- $restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($restriction['data']))
-- {
-- $restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $restrictions[] = new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-- }
-- if (is_array($restrictions))
-- {
-- $restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-- }
-- }
-- else
-- {
-- $restrictions = $restrictions_parent;
-- }
--
-- // THUMBNAILS
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-- {
-- foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-- {
-- $thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- if (is_array($thumbnails))
-- {
-- $thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-- }
-- }
-- else
-- {
-- $thumbnails = $thumbnails_parent;
-- }
--
-- // TITLES
-- if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-- {
-- $title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- $title = $title_parent;
-- }
--
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width);
-- }
-- }
-- }
--
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-- {
-- if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] == 'enclosure')
-- {
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-- if (isset($link['attribs']['']['type']))
-- {
-- $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($link['attribs']['']['length']))
-- {
-- $length = ceil($link['attribs']['']['length']);
-- }
--
-- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-- }
-- }
--
-- foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-- {
-- if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] == 'enclosure')
-- {
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- $url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-- if (isset($link['attribs']['']['type']))
-- {
-- $type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($link['attribs']['']['length']))
-- {
-- $length = ceil($link['attribs']['']['length']);
-- }
--
-- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-- }
-- }
--
-- if ($enclosure = $this->get_item_tags('', 'enclosure'))
-- {
-- if (isset($enclosure[0]['attribs']['']['url']))
-- {
-- // Attributes
-- $bitrate = null;
-- $channels = null;
-- $duration = null;
-- $expression = null;
-- $framerate = null;
-- $height = null;
-- $javascript = null;
-- $lang = null;
-- $length = null;
-- $medium = null;
-- $samplingrate = null;
-- $type = null;
-- $url = null;
-- $width = null;
--
-- $url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0]));
-- if (isset($enclosure[0]['attribs']['']['type']))
-- {
-- $type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($enclosure[0]['attribs']['']['length']))
-- {
-- $length = ceil($enclosure[0]['attribs']['']['length']);
-- }
--
-- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-- }
-- }
--
-- if (sizeof($this->data['enclosures']) == 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width))
-- {
-- // Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-- $this->data['enclosures'][] = new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-- }
--
-- $this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures']));
-- }
-- if (!empty($this->data['enclosures']))
-- {
-- return $this->data['enclosures'];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_latitude()
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[1];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_longitude()
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[2];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_source()
-- {
-- if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source'))
-- {
-- return new $this->feed->source_class($this, $return[0]);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * Creates the add_to_* methods' return data
-- *
-- * @access private
-- * @param string $item_url String to prefix to the item permalink
-- * @param string $title_url String to prefix to the item title
-- * (and suffix to the item permalink)
-- * @return mixed URL if feed exists, false otherwise
-- */
-- function add_to_service($item_url, $title_url = null, $summary_url = null)
-- {
-- if ($this->get_permalink() !== null)
-- {
-- $return = $this->sanitize($item_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_permalink());
-- if ($title_url !== null && $this->get_title() !== null)
-- {
-- $return .= $this->sanitize($title_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_title());
-- }
-- if ($summary_url !== null && $this->get_description() !== null)
-- {
-- $return .= $this->sanitize($summary_url, SIMPLEPIE_CONSTRUCT_IRI) . rawurlencode($this->get_description());
-- }
-- return $return;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function add_to_blinklist()
-- {
-- return $this->add_to_service('http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=', '&Title=');
-- }
--
-- function add_to_blogmarks()
-- {
-- return $this->add_to_service('http://blogmarks.net/my/new.php?mini=1&simple=1&url=', '&title=');
-- }
--
-- function add_to_delicious()
-- {
-- return $this->add_to_service('http://del.icio.us/post/?v=4&url=', '&title=');
-- }
--
-- function add_to_digg()
-- {
-- return $this->add_to_service('http://digg.com/submit?url=', '&title=', '&bodytext=');
-- }
--
-- function add_to_furl()
-- {
-- return $this->add_to_service('http://www.furl.net/storeIt.jsp?u=', '&t=');
-- }
--
-- function add_to_magnolia()
-- {
-- return $this->add_to_service('http://ma.gnolia.com/bookmarklet/add?url=', '&title=');
-- }
--
-- function add_to_myweb20()
-- {
-- return $this->add_to_service('http://myweb2.search.yahoo.com/myresults/bookmarklet?u=', '&t=');
-- }
--
-- function add_to_newsvine()
-- {
-- return $this->add_to_service('http://www.newsvine.com/_wine/save?u=', '&h=');
-- }
--
-- function add_to_reddit()
-- {
-- return $this->add_to_service('http://reddit.com/submit?url=', '&title=');
-- }
--
-- function add_to_segnalo()
-- {
-- return $this->add_to_service('http://segnalo.com/post.html.php?url=', '&title=');
-- }
--
-- function add_to_simpy()
-- {
-- return $this->add_to_service('http://www.simpy.com/simpy/LinkAdd.do?href=', '&title=');
-- }
--
-- function add_to_spurl()
-- {
-- return $this->add_to_service('http://www.spurl.net/spurl.php?v=3&url=', '&title=');
-- }
--
-- function add_to_wists()
-- {
-- return $this->add_to_service('http://wists.com/r.php?c=&r=', '&title=');
-- }
--
-- function search_technorati()
-- {
-- return $this->add_to_service('http://www.technorati.com/search/');
-- }
--}
--
--class SimplePie_Source
--{
-- var $item;
-- var $data = array();
--
-- function SimplePie_Source($item, $data)
-- {
-- $this->item = $item;
-- $this->data = $data;
-- }
--
-- function __toString()
-- {
-- return md5(serialize($this->data));
-- }
--
-- /**
-- * Remove items that link back to this before destroying this object
-- */
-- function __destruct()
-- {
-- unset($this->item);
-- }
--
-- function get_source_tags($namespace, $tag)
-- {
-- if (isset($this->data['child'][$namespace][$tag]))
-- {
-- return $this->data['child'][$namespace][$tag];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_base($element = array())
-- {
-- return $this->item->get_base($element);
-- }
--
-- function sanitize($data, $type, $base = '')
-- {
-- return $this->item->sanitize($data, $type, $base);
-- }
--
-- function get_item()
-- {
-- return $this->item;
-- }
--
-- function get_title()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags('', 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_category($key = 0)
-- {
-- $categories = $this->get_categories();
-- if (isset($categories[$key]))
-- {
-- return $categories[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_categories()
-- {
-- $categories = array();
--
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-- {
-- $term = null;
-- $scheme = null;
-- $label = null;
-- if (isset($category['attribs']['']['term']))
-- {
-- $term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['scheme']))
-- {
-- $scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($category['attribs']['']['label']))
-- {
-- $label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- $categories[] = new $this->item->feed->category_class($term, $scheme, $label);
-- }
-- foreach ((array) $this->get_source_tags('', 'category') as $category)
-- {
-- $categories[] = new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-- {
-- $categories[] = new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-- {
-- $categories[] = new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($categories))
-- {
-- return SimplePie_Misc::array_unique($categories);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_author($key = 0)
-- {
-- $authors = $this->get_authors();
-- if (isset($authors[$key]))
-- {
-- return $authors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_authors()
-- {
-- $authors = array();
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $authors[] = new $this->item->feed->author_class($name, $uri, $email);
-- }
-- }
-- if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $authors[] = new $this->item->feed->author_class($name, $url, $email);
-- }
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-- {
-- $authors[] = new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-- {
-- $authors[] = new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-- {
-- $authors[] = new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-- }
--
-- if (!empty($authors))
-- {
-- return SimplePie_Misc::array_unique($authors);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributor($key = 0)
-- {
-- $contributors = $this->get_contributors();
-- if (isset($contributors[$key]))
-- {
-- return $contributors[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_contributors()
-- {
-- $contributors = array();
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-- {
-- $name = null;
-- $uri = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-- {
-- $uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $uri !== null)
-- {
-- $contributors[] = new $this->item->feed->author_class($name, $uri, $email);
-- }
-- }
-- foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-- {
-- $name = null;
-- $url = null;
-- $email = null;
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-- {
-- $name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-- {
-- $url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-- }
-- if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-- {
-- $email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- if ($name !== null || $email !== null || $url !== null)
-- {
-- $contributors[] = new $this->item->feed->author_class($name, $url, $email);
-- }
-- }
--
-- if (!empty($contributors))
-- {
-- return SimplePie_Misc::array_unique($contributors);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_link($key = 0, $rel = 'alternate')
-- {
-- $links = $this->get_links($rel);
-- if (isset($links[$key]))
-- {
-- return $links[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- /**
-- * Added for parity between the parent-level and the item/entry-level.
-- */
-- function get_permalink()
-- {
-- return $this->get_link(0);
-- }
--
-- function get_links($rel = 'alternate')
-- {
-- if (!isset($this->data['links']))
-- {
-- $this->data['links'] = array();
-- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
-- {
-- foreach ($links as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-- }
-- }
-- }
-- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
-- {
-- foreach ($links as $link)
-- {
-- if (isset($link['attribs']['']['href']))
-- {
-- $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-- $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
--
-- }
-- }
-- }
-- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
-- if ($links = $this->get_source_tags('', 'link'))
-- {
-- $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-- }
--
-- $keys = array_keys($this->data['links']);
-- foreach ($keys as $key)
-- {
-- if (SimplePie_Misc::is_isegment_nz_nc($key))
-- {
-- if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-- $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-- }
-- else
-- {
-- $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-- }
-- }
-- elseif (substr($key, 0, 41) == SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-- {
-- $this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-- }
-- $this->data['links'][$key] = array_unique($this->data['links'][$key]);
-- }
-- }
--
-- if (isset($this->data['links'][$rel]))
-- {
-- return $this->data['links'][$rel];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_description()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags('', 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_copyright()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
-- {
-- return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags('', 'copyright'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_language()
-- {
-- if ($return = $this->get_source_tags('', 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- elseif (isset($this->data['xml_lang']))
-- {
-- return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_latitude()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[1];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_longitude()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-- {
-- return (float) $return[0]['data'];
-- }
-- elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', $return[0]['data'], $match))
-- {
-- return (float) $match[2];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_image_url()
-- {
-- if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
-- {
-- return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-- {
-- return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Author
--{
-- var $name;
-- var $link;
-- var $email;
--
-- // Constructor, used to input the data
-- function SimplePie_Author($name = null, $link = null, $email = null)
-- {
-- $this->name = $name;
-- $this->link = $link;
-- $this->email = $email;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_name()
-- {
-- if ($this->name !== null)
-- {
-- return $this->name;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_link()
-- {
-- if ($this->link !== null)
-- {
-- return $this->link;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_email()
-- {
-- if ($this->email !== null)
-- {
-- return $this->email;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Category
--{
-- var $term;
-- var $scheme;
-- var $label;
--
-- // Constructor, used to input the data
-- function SimplePie_Category($term = null, $scheme = null, $label = null)
-- {
-- $this->term = $term;
-- $this->scheme = $scheme;
-- $this->label = $label;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_term()
-- {
-- if ($this->term !== null)
-- {
-- return $this->term;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_scheme()
-- {
-- if ($this->scheme !== null)
-- {
-- return $this->scheme;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_label()
-- {
-- if ($this->label !== null)
-- {
-- return $this->label;
-- }
-- else
-- {
-- return $this->get_term();
-- }
-- }
--}
--
--class SimplePie_Enclosure
--{
-- var $bitrate;
-- var $captions;
-- var $categories;
-- var $channels;
-- var $copyright;
-- var $credits;
-- var $description;
-- var $duration;
-- var $expression;
-- var $framerate;
-- var $handler;
-- var $hashes;
-- var $height;
-- var $javascript;
-- var $keywords;
-- var $lang;
-- var $length;
-- var $link;
-- var $medium;
-- var $player;
-- var $ratings;
-- var $restrictions;
-- var $samplingrate;
-- var $thumbnails;
-- var $title;
-- var $type;
-- var $width;
--
-- // Constructor, used to input the data
-- function SimplePie_Enclosure($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
-- {
-- $this->bitrate = $bitrate;
-- $this->captions = $captions;
-- $this->categories = $categories;
-- $this->channels = $channels;
-- $this->copyright = $copyright;
-- $this->credits = $credits;
-- $this->description = $description;
-- $this->duration = $duration;
-- $this->expression = $expression;
-- $this->framerate = $framerate;
-- $this->hashes = $hashes;
-- $this->height = $height;
-- $this->javascript = $javascript;
-- $this->keywords = $keywords;
-- $this->lang = $lang;
-- $this->length = $length;
-- $this->link = $link;
-- $this->medium = $medium;
-- $this->player = $player;
-- $this->ratings = $ratings;
-- $this->restrictions = $restrictions;
-- $this->samplingrate = $samplingrate;
-- $this->thumbnails = $thumbnails;
-- $this->title = $title;
-- $this->type = $type;
-- $this->width = $width;
-- if (class_exists('idna_convert'))
-- {
-- $idn = new idna_convert;
-- $parsed = SimplePie_Misc::parse_url($link);
-- $this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-- }
-- $this->handler = $this->get_handler(); // Needs to load last
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_bitrate()
-- {
-- if ($this->bitrate !== null)
-- {
-- return $this->bitrate;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_caption($key = 0)
-- {
-- $captions = $this->get_captions();
-- if (isset($captions[$key]))
-- {
-- return $captions[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_captions()
-- {
-- if ($this->captions !== null)
-- {
-- return $this->captions;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_category($key = 0)
-- {
-- $categories = $this->get_categories();
-- if (isset($categories[$key]))
-- {
-- return $categories[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_categories()
-- {
-- if ($this->categories !== null)
-- {
-- return $this->categories;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_channels()
-- {
-- if ($this->channels !== null)
-- {
-- return $this->channels;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_copyright()
-- {
-- if ($this->copyright !== null)
-- {
-- return $this->copyright;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_credit($key = 0)
-- {
-- $credits = $this->get_credits();
-- if (isset($credits[$key]))
-- {
-- return $credits[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_credits()
-- {
-- if ($this->credits !== null)
-- {
-- return $this->credits;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_description()
-- {
-- if ($this->description !== null)
-- {
-- return $this->description;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_duration($convert = false)
-- {
-- if ($this->duration !== null)
-- {
-- if ($convert)
-- {
-- $time = SimplePie_Misc::time_hms($this->duration);
-- return $time;
-- }
-- else
-- {
-- return $this->duration;
-- }
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_expression()
-- {
-- if ($this->expression !== null)
-- {
-- return $this->expression;
-- }
-- else
-- {
-- return 'full';
-- }
-- }
--
-- function get_extension()
-- {
-- if ($this->link !== null)
-- {
-- $url = SimplePie_Misc::parse_url($this->link);
-- if ($url['path'] !== '')
-- {
-- return pathinfo($url['path'], PATHINFO_EXTENSION);
-- }
-- }
-- return null;
-- }
--
-- function get_framerate()
-- {
-- if ($this->framerate !== null)
-- {
-- return $this->framerate;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_handler()
-- {
-- return $this->get_real_type(true);
-- }
--
-- function get_hash($key = 0)
-- {
-- $hashes = $this->get_hashes();
-- if (isset($hashes[$key]))
-- {
-- return $hashes[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_hashes()
-- {
-- if ($this->hashes !== null)
-- {
-- return $this->hashes;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_height()
-- {
-- if ($this->height !== null)
-- {
-- return $this->height;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_language()
-- {
-- if ($this->lang !== null)
-- {
-- return $this->lang;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_keyword($key = 0)
-- {
-- $keywords = $this->get_keywords();
-- if (isset($keywords[$key]))
-- {
-- return $keywords[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_keywords()
-- {
-- if ($this->keywords !== null)
-- {
-- return $this->keywords;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_length()
-- {
-- if ($this->length !== null)
-- {
-- return $this->length;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_link()
-- {
-- if ($this->link !== null)
-- {
-- return urldecode($this->link);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_medium()
-- {
-- if ($this->medium !== null)
-- {
-- return $this->medium;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_player()
-- {
-- if ($this->player !== null)
-- {
-- return $this->player;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_rating($key = 0)
-- {
-- $ratings = $this->get_ratings();
-- if (isset($ratings[$key]))
-- {
-- return $ratings[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_ratings()
-- {
-- if ($this->ratings !== null)
-- {
-- return $this->ratings;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_restriction($key = 0)
-- {
-- $restrictions = $this->get_restrictions();
-- if (isset($restrictions[$key]))
-- {
-- return $restrictions[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_restrictions()
-- {
-- if ($this->restrictions !== null)
-- {
-- return $this->restrictions;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_sampling_rate()
-- {
-- if ($this->samplingrate !== null)
-- {
-- return $this->samplingrate;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_size()
-- {
-- $length = $this->get_length();
-- if ($length !== null)
-- {
-- return round($length/1048576, 2);
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_thumbnail($key = 0)
-- {
-- $thumbnails = $this->get_thumbnails();
-- if (isset($thumbnails[$key]))
-- {
-- return $thumbnails[$key];
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_thumbnails()
-- {
-- if ($this->thumbnails !== null)
-- {
-- return $this->thumbnails;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_title()
-- {
-- if ($this->title !== null)
-- {
-- return $this->title;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_type()
-- {
-- if ($this->type !== null)
-- {
-- return $this->type;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_width()
-- {
-- if ($this->width !== null)
-- {
-- return $this->width;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function native_embed($options='')
-- {
-- return $this->embed($options, true);
-- }
--
-- /**
-- * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
-- */
-- function embed($options = '', $native = false)
-- {
-- // Set up defaults
-- $audio = '';
-- $video = '';
-- $alt = '';
-- $altclass = '';
-- $loop = 'false';
-- $width = 'auto';
-- $height = 'auto';
-- $bgcolor = '#ffffff';
-- $mediaplayer = '';
-- $widescreen = false;
-- $handler = $this->get_handler();
-- $type = $this->get_real_type();
--
-- // Process options and reassign values as necessary
-- if (is_array($options))
-- {
-- extract($options);
-- }
-- else
-- {
-- $options = explode(',', $options);
-- foreach($options as $option)
-- {
-- $opt = explode(':', $option, 2);
-- if (isset($opt[0], $opt[1]))
-- {
-- $opt[0] = trim($opt[0]);
-- $opt[1] = trim($opt[1]);
-- switch ($opt[0])
-- {
-- case 'audio':
-- $audio = $opt[1];
-- break;
--
-- case 'video':
-- $video = $opt[1];
-- break;
--
-- case 'alt':
-- $alt = $opt[1];
-- break;
--
-- case 'altclass':
-- $altclass = $opt[1];
-- break;
--
-- case 'loop':
-- $loop = $opt[1];
-- break;
--
-- case 'width':
-- $width = $opt[1];
-- break;
--
-- case 'height':
-- $height = $opt[1];
-- break;
--
-- case 'bgcolor':
-- $bgcolor = $opt[1];
-- break;
--
-- case 'mediaplayer':
-- $mediaplayer = $opt[1];
-- break;
--
-- case 'widescreen':
-- $widescreen = $opt[1];
-- break;
-- }
-- }
-- }
-- }
--
-- $mime = explode('/', $type, 2);
-- $mime = $mime[0];
--
-- // Process values for 'auto'
-- if ($width == 'auto')
-- {
-- if ($mime == 'video')
-- {
-- if ($height == 'auto')
-- {
-- $width = 480;
-- }
-- elseif ($widescreen)
-- {
-- $width = round((intval($height)/9)*16);
-- }
-- else
-- {
-- $width = round((intval($height)/3)*4);
-- }
-- }
-- else
-- {
-- $width = '100%';
-- }
-- }
--
-- if ($height == 'auto')
-- {
-- if ($mime == 'audio')
-- {
-- $height = 0;
-- }
-- elseif ($mime == 'video')
-- {
-- if ($width == 'auto')
-- {
-- if ($widescreen)
-- {
-- $height = 270;
-- }
-- else
-- {
-- $height = 360;
-- }
-- }
-- elseif ($widescreen)
-- {
-- $height = round((intval($width)/16)*9);
-- }
-- else
-- {
-- $height = round((intval($width)/4)*3);
-- }
-- }
-- else
-- {
-- $height = 376;
-- }
-- }
-- elseif ($mime == 'audio')
-- {
-- $height = 0;
-- }
--
-- // Set proper placeholder value
-- if ($mime == 'audio')
-- {
-- $placeholder = $audio;
-- }
-- elseif ($mime == 'video')
-- {
-- $placeholder = $video;
-- }
--
-- $embed = '';
--
-- // Make sure the JS library is included
-- if (!$native)
-- {
-- static $javascript_outputted = null;
-- if (!$javascript_outputted && $this->javascript)
-- {
-- $embed .= '<script type="text/javascript" src="?' . htmlspecialchars($this->javascript) . '"></script>';
-- $javascript_outputted = true;
-- }
-- }
--
-- // Odeo Feed MP3's
-- if ($handler == 'odeo')
-- {
-- if ($native)
-- {
-- $embed .= '<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://adobe.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url=' . $this->get_link() . '"></embed>';
-- }
-- else
-- {
-- $embed .= '<script type="text/javascript">/* <![CDATA[ */embed_odeo("' . $this->get_link() . '");/* ]]> */</script>';
-- }
-- }
--
-- // Flash
-- elseif ($handler == 'flash')
-- {
-- if ($native)
-- {
-- $embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
-- }
-- else
-- {
-- $embed .= '<script type="text/javascript">/* <![CDATA[ */' .
-- "embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');/* ]]> */</script>";
-- }
-- }
--
-- // Flash Media Player file types.
-- // Preferred handler for MP3 file types.
-- elseif ($handler == 'fmedia' || ($handler == 'mp3' && $mediaplayer != ''))
-- {
-- $height += 20;
-- if ($native)
-- {
-- $embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
-- }
-- else
-- {
-- $embed .= '<script type="text/javascript">/* <![CDATA[ */' .
-- "embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');/* ]]> */</script>";
-- }
-- }
--
-- // QuickTime 7 file types. Need to test with QuickTime 6.
-- // Only handle MP3's if the Flash Media Player is not present.
-- elseif ($handler == 'quicktime' || ($handler == 'mp3' && $mediaplayer == ''))
-- {
-- $height += 16;
-- if ($native)
-- {
-- if ($placeholder != ""){
-- $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-- }
-- else {
-- $embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-- }
-- }
-- else
-- {
-- $embed .= '<script type="text/javascript">/* <![CDATA[ */' .
-- "embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');/* ]]> */</script>";
-- }
-- }
--
-- // Windows Media
-- elseif ($handler == 'wmedia')
-- {
-- $height += 45;
-- if ($native)
-- {
-- $embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
-- }
-- else
-- {
-- $embed .= '<script type="text/javascript">/* <![CDATA[ */' .
-- "embed_wmedia('$width', '$height', '" . $this->get_link() . "');/* ]]> */</script>";
-- }
-- }
--
-- // Everything else
-- else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
--
-- return $embed;
-- }
--
-- function get_real_type($find_handler = false)
-- {
-- // If it's Odeo, let's get it out of the way.
-- if (substr(strtolower($this->get_link()), 0, 15) == 'http://odeo.com')
-- {
-- return 'odeo';
-- }
--
-- // Mime-types by handler.
-- $types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
-- $types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
-- $types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
-- $types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
-- $types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
--
-- if ($this->get_type() !== null)
-- {
-- $type = strtolower($this->type);
-- }
-- else
-- {
-- $type = null;
-- }
--
-- // If we encounter an unsupported mime-type, check the file extension and guess intelligently.
-- if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
-- {
-- switch (strtolower($this->get_extension()))
-- {
-- // Audio mime-types
-- case 'aac':
-- case 'adts':
-- $type = 'audio/acc';
-- break;
--
-- case 'aif':
-- case 'aifc':
-- case 'aiff':
-- case 'cdda':
-- $type = 'audio/aiff';
-- break;
--
-- case 'bwf':
-- $type = 'audio/wav';
-- break;
--
-- case 'kar':
-- case 'mid':
-- case 'midi':
-- case 'smf':
-- $type = 'audio/midi';
-- break;
--
-- case 'm4a':
-- $type = 'audio/x-m4a';
-- break;
--
-- case 'mp3':
-- case 'swa':
-- $type = 'audio/mp3';
-- break;
--
-- case 'wav':
-- $type = 'audio/wav';
-- break;
--
-- case 'wax':
-- $type = 'audio/x-ms-wax';
-- break;
--
-- case 'wma':
-- $type = 'audio/x-ms-wma';
-- break;
--
-- // Video mime-types
-- case '3gp':
-- case '3gpp':
-- $type = 'video/3gpp';
-- break;
--
-- case '3g2':
-- case '3gp2':
-- $type = 'video/3gpp2';
-- break;
--
-- case 'asf':
-- $type = 'video/x-ms-asf';
-- break;
--
-- case 'flv':
-- $type = 'video/x-flv';
-- break;
--
-- case 'm1a':
-- case 'm1s':
-- case 'm1v':
-- case 'm15':
-- case 'm75':
-- case 'mp2':
-- case 'mpa':
-- case 'mpeg':
-- case 'mpg':
-- case 'mpm':
-- case 'mpv':
-- $type = 'video/mpeg';
-- break;
--
-- case 'm4v':
-- $type = 'video/x-m4v';
-- break;
--
-- case 'mov':
-- case 'qt':
-- $type = 'video/quicktime';
-- break;
--
-- case 'mp4':
-- case 'mpg4':
-- $type = 'video/mp4';
-- break;
--
-- case 'sdv':
-- $type = 'video/sd-video';
-- break;
--
-- case 'wm':
-- $type = 'video/x-ms-wm';
-- break;
--
-- case 'wmv':
-- $type = 'video/x-ms-wmv';
-- break;
--
-- case 'wvx':
-- $type = 'video/x-ms-wvx';
-- break;
--
-- // Flash mime-types
-- case 'spl':
-- $type = 'application/futuresplash';
-- break;
--
-- case 'swf':
-- $type = 'application/x-shockwave-flash';
-- break;
-- }
-- }
--
-- if ($find_handler)
-- {
-- if (in_array($type, $types_flash))
-- {
-- return 'flash';
-- }
-- elseif (in_array($type, $types_fmedia))
-- {
-- return 'fmedia';
-- }
-- elseif (in_array($type, $types_quicktime))
-- {
-- return 'quicktime';
-- }
-- elseif (in_array($type, $types_wmedia))
-- {
-- return 'wmedia';
-- }
-- elseif (in_array($type, $types_mp3))
-- {
-- return 'mp3';
-- }
-- else
-- {
-- return null;
-- }
-- }
-- else
-- {
-- return $type;
-- }
-- }
--}
--
--class SimplePie_Caption
--{
-- var $type;
-- var $lang;
-- var $startTime;
-- var $endTime;
-- var $text;
--
-- // Constructor, used to input the data
-- function SimplePie_Caption($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
-- {
-- $this->type = $type;
-- $this->lang = $lang;
-- $this->startTime = $startTime;
-- $this->endTime = $endTime;
-- $this->text = $text;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_endtime()
-- {
-- if ($this->endTime !== null)
-- {
-- return $this->endTime;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_language()
-- {
-- if ($this->lang !== null)
-- {
-- return $this->lang;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_starttime()
-- {
-- if ($this->startTime !== null)
-- {
-- return $this->startTime;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_text()
-- {
-- if ($this->text !== null)
-- {
-- return $this->text;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_type()
-- {
-- if ($this->type !== null)
-- {
-- return $this->type;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Credit
--{
-- var $role;
-- var $scheme;
-- var $name;
--
-- // Constructor, used to input the data
-- function SimplePie_Credit($role = null, $scheme = null, $name = null)
-- {
-- $this->role = $role;
-- $this->scheme = $scheme;
-- $this->name = $name;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_role()
-- {
-- if ($this->role !== null)
-- {
-- return $this->role;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_scheme()
-- {
-- if ($this->scheme !== null)
-- {
-- return $this->scheme;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_name()
-- {
-- if ($this->name !== null)
-- {
-- return $this->name;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Copyright
--{
-- var $url;
-- var $label;
--
-- // Constructor, used to input the data
-- function SimplePie_Copyright($url = null, $label = null)
-- {
-- $this->url = $url;
-- $this->label = $label;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_url()
-- {
-- if ($this->url !== null)
-- {
-- return $this->url;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_attribution()
-- {
-- if ($this->label !== null)
-- {
-- return $this->label;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Rating
--{
-- var $scheme;
-- var $value;
--
-- // Constructor, used to input the data
-- function SimplePie_Rating($scheme = null, $value = null)
-- {
-- $this->scheme = $scheme;
-- $this->value = $value;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_scheme()
-- {
-- if ($this->scheme !== null)
-- {
-- return $this->scheme;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_value()
-- {
-- if ($this->value !== null)
-- {
-- return $this->value;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--class SimplePie_Restriction
--{
-- var $relationship;
-- var $type;
-- var $value;
--
-- // Constructor, used to input the data
-- function SimplePie_Restriction($relationship = null, $type = null, $value = null)
-- {
-- $this->relationship = $relationship;
-- $this->type = $type;
-- $this->value = $value;
-- }
--
-- function __toString()
-- {
-- // There is no $this->data here
-- return md5(serialize($this));
-- }
--
-- function get_relationship()
-- {
-- if ($this->relationship !== null)
-- {
-- return $this->relationship;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_type()
-- {
-- if ($this->type !== null)
-- {
-- return $this->type;
-- }
-- else
-- {
-- return null;
-- }
-- }
--
-- function get_value()
-- {
-- if ($this->value !== null)
-- {
-- return $this->value;
-- }
-- else
-- {
-- return null;
-- }
-- }
--}
--
--/**
-- * @todo Move to properly supporting RFC2616 (HTTP/1.1)
-- */
--class SimplePie_File
--{
-- var $url;
-- var $useragent;
-- var $success = true;
-- var $headers = array();
-- var $body;
-- var $status_code;
-- var $redirects = 0;
-- var $error;
-- var $method = SIMPLEPIE_FILE_SOURCE_NONE;
--
-- function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false, $proxy = "")
-- {
-- if (class_exists('idna_convert'))
-- {
-- $idn = new idna_convert;
-- $parsed = SimplePie_Misc::parse_url($url);
-- $url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-- }
-- $this->url = $url;
-- $this->useragent = $useragent;
-- if (preg_match('/^http(s)?:\/\//i', $url))
-- {
-- if ($useragent === null)
-- {
-- $useragent = ini_get('user_agent');
-- $this->useragent = $useragent;
-- }
-- if (!is_array($headers))
-- {
-- $headers = array();
-- }
-- if (!$force_fsockopen && function_exists('curl_exec'))
-- {
-- $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL;
-- $fp = curl_init();
-- $headers2 = array();
-- foreach ($headers as $key => $value)
-- {
-- $headers2[] = "$key: $value";
-- }
-- if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>='))
-- {
-- curl_setopt($fp, CURLOPT_ENCODING, '');
-- }
-- curl_setopt($fp, CURLOPT_URL, $url);
-- curl_setopt($fp, CURLOPT_HEADER, 1);
-- curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
-- curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
-- curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
-- curl_setopt($fp, CURLOPT_REFERER, $url);
-- curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
-- curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
-- if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
-- {
-- curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
-- curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
-- }
-- if ($proxy)
-- {
-- curl_setopt($fp, CURLOPT_PROXY, $proxy);
-- }
--
-- $this->headers = curl_exec($fp);
-- if (curl_errno($fp) == 23 || curl_errno($fp) == 61)
-- {
-- curl_setopt($fp, CURLOPT_ENCODING, 'none');
-- $this->headers = curl_exec($fp);
-- }
-- if (curl_errno($fp))
-- {
-- $this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp);
-- $this->success = false;
-- }
-- else
-- {
-- $info = curl_getinfo($fp);
-- curl_close($fp);
-- $this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
-- $this->headers = array_pop($this->headers);
-- $parser = new SimplePie_HTTP_Parser($this->headers);
-- if ($parser->parse())
-- {
-- $this->headers = $parser->headers;
-- $this->body = $parser->body;
-- $this->status_code = $parser->status_code;
-- if (($this->status_code == 300 || $this->status_code == 301 || $this->status_code == 302 || $this->status_code == 303 || $this->status_code == 307 || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-- {
-- $this->redirects++;
-- $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-- return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-- }
-- }
-- }
-- }
-- else
-- {
-- $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
-- $url_parts = parse_url($url);
-- if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) == 'https')
-- {
-- $url_parts['host'] = "ssl://$url_parts[host]";
-- $url_parts['port'] = 443;
-- }
-- if (!isset($url_parts['port']))
-- {
-- $url_parts['port'] = 80;
-- }
-- if ($proxy) {
-- $proxy_parts = explode(':', $proxy);
-- if (!isset($proxy_parts[1])) {
-- $proxy_parts[1] = 80;
-- }
-- $host = $proxy_parts[0];
-- $port = $proxy_parts[1];
-- } else {
-- $host = $url_parts['host'];
-- $port = $url_parts['port'];
-- }
-- $fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
-- if (!$fp)
-- {
-- $this->error = 'fsockopen error: ' . $errstr;
-- $this->success = false;
-- }
-- else
-- {
-- stream_set_timeout($fp, $timeout);
-- if ($proxy) {
-- $get = $url;
-- } else {
-- if (isset($url_parts['path']))
-- {
-- if (isset($url_parts['query']))
-- {
-- $get = "$url_parts[path]?$url_parts[query]";
-- }
-- else
-- {
-- $get = $url_parts['path'];
-- }
-- }
-- else
-- {
-- $get = '/';
-- }
-- }
-- $out = "GET $get HTTP/1.0\r\n";
-- $out .= "Host: $url_parts[host]\r\n";
-- $out .= "User-Agent: $useragent\r\n";
-- if (extension_loaded('zlib'))
-- {
-- $out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n";
-- }
--
-- if (isset($url_parts['user']) && isset($url_parts['pass']))
-- {
-- $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n";
-- }
-- foreach ($headers as $key => $value)
-- {
-- $out .= "$key: $value\r\n";
-- }
-- $out .= "Connection: Close\r\n\r\n";
-- fwrite($fp, $out);
--
-- $info = stream_get_meta_data($fp);
--
-- $this->headers = '';
-- while (!$info['eof'] && !$info['timed_out'])
-- {
-- $this->headers .= fread($fp, 1160);
-- $info = stream_get_meta_data($fp);
-- }
-- if (!$info['timed_out'])
-- {
-- $parser = new SimplePie_HTTP_Parser($this->headers);
-- if ($parser->parse())
-- {
-- $this->headers = $parser->headers;
-- $this->body = $parser->body;
-- $this->status_code = $parser->status_code;
-- if (($this->status_code == 300 || $this->status_code == 301 || $this->status_code == 302 || $this->status_code == 303 || $this->status_code == 307 || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-- {
-- $this->redirects++;
-- $location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-- return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-- }
-- if (isset($this->headers['content-encoding']))
-- {
-- // Hey, we act dumb elsewhere, so let's do that here too
-- switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20")))
-- {
-- case 'gzip':
-- case 'x-gzip':
-- $decoder = new SimplePie_gzdecode($this->body);
-- if (!$decoder->parse())
-- {
-- $this->error = 'Unable to decode HTTP "gzip" stream';
-- $this->success = false;
-- }
-- else
-- {
-- $this->body = $decoder->data;
-- }
-- break;
--
-- case 'deflate':
-- if (($body = gzuncompress($this->body)) === false)
-- {
-- if (($body = gzinflate($this->body)) === false)
-- {
-- $this->error = 'Unable to decode HTTP "deflate" stream';
-- $this->success = false;
-- }
-- }
-- $this->body = $body;
-- break;
--
-- default:
-- $this->error = 'Unknown content coding';
-- $this->success = false;
-- }
-- }
-- }
-- }
-- else
-- {
-- $this->error = 'fsocket timed out';
-- $this->success = false;
-- }
-- fclose($fp);
-- }
-- }
-- }
-- else
-- {
-- $this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
-- if (!$this->body = file_get_contents($url))
-- {
-- $this->error = 'file_get_contents could not read the file';
-- $this->success = false;
-- }
-- }
-- }
--}
--
--/**
-- * HTTP Response Parser
-- *
-- * @package SimplePie
-- */
--class SimplePie_HTTP_Parser
--{
-- /**
-- * HTTP Version
-- *
-- * @access public
-- * @var float
-- */
-- var $http_version = 0.0;
--
-- /**
-- * Status code
-- *
-- * @access public
-- * @var int
-- */
-- var $status_code = 0;
--
-- /**
-- * Reason phrase
-- *
-- * @access public
-- * @var string
-- */
-- var $reason = '';
--
-- /**
-- * Key/value pairs of the headers
-- *
-- * @access public
-- * @var array
-- */
-- var $headers = array();
--
-- /**
-- * Body of the response
-- *
-- * @access public
-- * @var string
-- */
-- var $body = '';
--
-- /**
-- * Current state of the state machine
-- *
-- * @access private
-- * @var string
-- */
-- var $state = 'http_version';
--
-- /**
-- * Input data
-- *
-- * @access private
-- * @var string
-- */
-- var $data = '';
--
-- /**
-- * Input data length (to avoid calling strlen() everytime this is needed)
-- *
-- * @access private
-- * @var int
-- */
-- var $data_length = 0;
--
-- /**
-- * Current position of the pointer
-- *
-- * @var int
-- * @access private
-- */
-- var $position = 0;
--
-- /**
-- * Name of the hedaer currently being parsed
-- *
-- * @access private
-- * @var string
-- */
-- var $name = '';
--
-- /**
-- * Value of the hedaer currently being parsed
-- *
-- * @access private
-- * @var string
-- */
-- var $value = '';
--
-- /**
-- * Create an instance of the class with the input data
-- *
-- * @access public
-- * @param string $data Input data
-- */
-- function SimplePie_HTTP_Parser($data)
-- {
-- $this->data = $data;
-- $this->data_length = strlen($this->data);
-- }
--
-- /**
-- * Parse the input data
-- *
-- * @access public
-- * @return bool true on success, false on failure
-- */
-- function parse()
-- {
-- while ($this->state && $this->state !== 'emit' && $this->has_data())
-- {
-- $state = $this->state;
-- $this->$state();
-- }
-- $this->data = '';
-- if ($this->state === 'emit' || $this->state === 'body')
-- {
-- return true;
-- }
-- else
-- {
-- $this->http_version = '';
-- $this->status_code = '';
-- $this->reason = '';
-- $this->headers = array();
-- $this->body = '';
-- return false;
-- }
-- }
--
-- /**
-- * Check whether there is data beyond the pointer
-- *
-- * @access private
-- * @return bool true if there is further data, false if not
-- */
-- function has_data()
-- {
-- return (bool) ($this->position < $this->data_length);
-- }
--
-- /**
-- * See if the next character is LWS
-- *
-- * @access private
-- * @return bool true if the next character is LWS, false if not
-- */
-- function is_linear_whitespace()
-- {
-- return (bool) ($this->data[$this->position] === "\x09"
-- || $this->data[$this->position] === "\x20"
-- || ($this->data[$this->position] === "\x0A"
-- && isset($this->data[$this->position + 1])
-- && ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20")));
-- }
--
-- /**
-- * Parse the HTTP version
-- *
-- * @access private
-- */
-- function http_version()
-- {
-- if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/')
-- {
-- $len = strspn($this->data, '0123456789.', 5);
-- $this->http_version = substr($this->data, 5, $len);
-- $this->position += 5 + $len;
-- if (substr_count($this->http_version, '.') <= 1)
-- {
-- $this->http_version = (float) $this->http_version;
-- $this->position += strspn($this->data, "\x09\x20", $this->position);
-- $this->state = 'status';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- /**
-- * Parse the status code
-- *
-- * @access private
-- */
-- function status()
-- {
-- if ($len = strspn($this->data, '0123456789', $this->position))
-- {
-- $this->status_code = (int) substr($this->data, $this->position, $len);
-- $this->position += $len;
-- $this->state = 'reason';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- /**
-- * Parse the reason phrase
-- *
-- * @access private
-- */
-- function reason()
-- {
-- $len = strcspn($this->data, "\x0A", $this->position);
-- $this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20");
-- $this->position += $len + 1;
-- $this->state = 'new_line';
-- }
--
-- /**
-- * Deal with a new line, shifting data around as needed
-- *
-- * @access private
-- */
-- function new_line()
-- {
-- $this->value = trim($this->value, "\x0D\x20");
-- if ($this->name !== '' && $this->value !== '')
-- {
-- $this->name = strtolower($this->name);
-- if (isset($this->headers[$this->name]))
-- {
-- $this->headers[$this->name] .= ', ' . $this->value;
-- }
-- else
-- {
-- $this->headers[$this->name] = $this->value;
-- }
-- }
-- $this->name = '';
-- $this->value = '';
-- if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A")
-- {
-- $this->position += 2;
-- $this->state = 'body';
-- }
-- elseif ($this->data[$this->position] === "\x0A")
-- {
-- $this->position++;
-- $this->state = 'body';
-- }
-- else
-- {
-- $this->state = 'name';
-- }
-- }
--
-- /**
-- * Parse a header name
-- *
-- * @access private
-- */
-- function name()
-- {
-- $len = strcspn($this->data, "\x0A:", $this->position);
-- if (isset($this->data[$this->position + $len]))
-- {
-- if ($this->data[$this->position + $len] === "\x0A")
-- {
-- $this->position += $len;
-- $this->state = 'new_line';
-- }
-- else
-- {
-- $this->name = substr($this->data, $this->position, $len);
-- $this->position += $len + 1;
-- $this->state = 'value';
-- }
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- /**
-- * Parse LWS, replacing consecutive LWS characters with a single space
-- *
-- * @access private
-- */
-- function linear_whitespace()
-- {
-- do
-- {
-- if (substr($this->data, $this->position, 2) === "\x0D\x0A")
-- {
-- $this->position += 2;
-- }
-- elseif ($this->data[$this->position] === "\x0A")
-- {
-- $this->position++;
-- }
-- $this->position += strspn($this->data, "\x09\x20", $this->position);
-- } while ($this->has_data() && $this->is_linear_whitespace());
-- $this->value .= "\x20";
-- }
--
-- /**
-- * See what state to move to while within non-quoted header values
-- *
-- * @access private
-- */
-- function value()
-- {
-- if ($this->is_linear_whitespace())
-- {
-- $this->linear_whitespace();
-- }
-- else
-- {
-- switch ($this->data[$this->position])
-- {
-- case '"':
-- $this->position++;
-- $this->state = 'quote';
-- break;
--
-- case "\x0A":
-- $this->position++;
-- $this->state = 'new_line';
-- break;
--
-- default:
-- $this->state = 'value_char';
-- break;
-- }
-- }
-- }
--
-- /**
-- * Parse a header value while outside quotes
-- *
-- * @access private
-- */
-- function value_char()
-- {
-- $len = strcspn($this->data, "\x09\x20\x0A\"", $this->position);
-- $this->value .= substr($this->data, $this->position, $len);
-- $this->position += $len;
-- $this->state = 'value';
-- }
--
-- /**
-- * See what state to move to while within quoted header values
-- *
-- * @access private
-- */
-- function quote()
-- {
-- if ($this->is_linear_whitespace())
-- {
-- $this->linear_whitespace();
-- }
-- else
-- {
-- switch ($this->data[$this->position])
-- {
-- case '"':
-- $this->position++;
-- $this->state = 'value';
-- break;
--
-- case "\x0A":
-- $this->position++;
-- $this->state = 'new_line';
-- break;
--
-- case '\\':
-- $this->position++;
-- $this->state = 'quote_escaped';
-- break;
--
-- default:
-- $this->state = 'quote_char';
-- break;
-- }
-- }
-- }
--
-- /**
-- * Parse a header value while within quotes
-- *
-- * @access private
-- */
-- function quote_char()
-- {
-- $len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position);
-- $this->value .= substr($this->data, $this->position, $len);
-- $this->position += $len;
-- $this->state = 'value';
-- }
--
-- /**
-- * Parse an escaped character within quotes
-- *
-- * @access private
-- */
-- function quote_escaped()
-- {
-- $this->value .= $this->data[$this->position];
-- $this->position++;
-- $this->state = 'quote';
-- }
--
-- /**
-- * Parse the body
-- *
-- * @access private
-- */
-- function body()
-- {
-- $this->body = substr($this->data, $this->position);
-- $this->state = 'emit';
-- }
--}
--
--/**
-- * gzdecode
-- *
-- * @package SimplePie
-- */
--class SimplePie_gzdecode
--{
-- /**
-- * Compressed data
-- *
-- * @access private
-- * @see gzdecode::$data
-- */
-- var $compressed_data;
--
-- /**
-- * Size of compressed data
-- *
-- * @access private
-- */
-- var $compressed_size;
--
-- /**
-- * Minimum size of a valid gzip string
-- *
-- * @access private
-- */
-- var $min_compressed_size = 18;
--
-- /**
-- * Current position of pointer
-- *
-- * @access private
-- */
-- var $position = 0;
--
-- /**
-- * Flags (FLG)
-- *
-- * @access private
-- */
-- var $flags;
--
-- /**
-- * Uncompressed data
-- *
-- * @access public
-- * @see gzdecode::$compressed_data
-- */
-- var $data;
--
-- /**
-- * Modified time
-- *
-- * @access public
-- */
-- var $MTIME;
--
-- /**
-- * Extra Flags
-- *
-- * @access public
-- */
-- var $XFL;
--
-- /**
-- * Operating System
-- *
-- * @access public
-- */
-- var $OS;
--
-- /**
-- * Subfield ID 1
-- *
-- * @access public
-- * @see gzdecode::$extra_field
-- * @see gzdecode::$SI2
-- */
-- var $SI1;
--
-- /**
-- * Subfield ID 2
-- *
-- * @access public
-- * @see gzdecode::$extra_field
-- * @see gzdecode::$SI1
-- */
-- var $SI2;
--
-- /**
-- * Extra field content
-- *
-- * @access public
-- * @see gzdecode::$SI1
-- * @see gzdecode::$SI2
-- */
-- var $extra_field;
--
-- /**
-- * Original filename
-- *
-- * @access public
-- */
-- var $filename;
--
-- /**
-- * Human readable comment
-- *
-- * @access public
-- */
-- var $comment;
--
-- /**
-- * Don't allow anything to be set
-- *
-- * @access public
-- */
-- function __set($name, $value)
-- {
-- trigger_error("Cannot write property $name", E_USER_ERROR);
-- }
--
-- /**
-- * Set the compressed string and related properties
-- *
-- * @access public
-- */
-- function SimplePie_gzdecode($data)
-- {
-- $this->compressed_data = $data;
-- $this->compressed_size = strlen($data);
-- }
--
-- /**
-- * Decode the GZIP stream
-- *
-- * @access public
-- */
-- function parse()
-- {
-- if ($this->compressed_size >= $this->min_compressed_size)
-- {
-- // Check ID1, ID2, and CM
-- if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08")
-- {
-- return false;
-- }
--
-- // Get the FLG (FLaGs)
-- $this->flags = ord($this->compressed_data[3]);
--
-- // FLG bits above (1 << 4) are reserved
-- if ($this->flags > 0x1F)
-- {
-- return false;
-- }
--
-- // Advance the pointer after the above
-- $this->position += 4;
--
-- // MTIME
-- $mtime = substr($this->compressed_data, $this->position, 4);
-- // Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness
-- if (current(unpack('S', "\x00\x01")) === 1)
-- {
-- $mtime = strrev($mtime);
-- }
-- $this->MTIME = current(unpack('l', $mtime));
-- $this->position += 4;
--
-- // Get the XFL (eXtra FLags)
-- $this->XFL = ord($this->compressed_data[$this->position++]);
--
-- // Get the OS (Operating System)
-- $this->OS = ord($this->compressed_data[$this->position++]);
--
-- // Parse the FEXTRA
-- if ($this->flags & 4)
-- {
-- // Read subfield IDs
-- $this->SI1 = $this->compressed_data[$this->position++];
-- $this->SI2 = $this->compressed_data[$this->position++];
--
-- // SI2 set to zero is reserved for future use
-- if ($this->SI2 === "\x00")
-- {
-- return false;
-- }
--
-- // Get the length of the extra field
-- $len = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-- $position += 2;
--
-- // Check the length of the string is still valid
-- $this->min_compressed_size += $len + 4;
-- if ($this->compressed_size >= $this->min_compressed_size)
-- {
-- // Set the extra field to the given data
-- $this->extra_field = substr($this->compressed_data, $this->position, $len);
-- $this->position += $len;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- // Parse the FNAME
-- if ($this->flags & 8)
-- {
-- // Get the length of the filename
-- $len = strspn($this->compressed_data, "\x00", $this->position);
--
-- // Check the length of the string is still valid
-- $this->min_compressed_size += $len + 1;
-- if ($this->compressed_size >= $this->min_compressed_size)
-- {
-- // Set the original filename to the given string
-- $this->filename = substr($this->compressed_data, $this->position, $len);
-- $this->position += $len + 1;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- // Parse the FCOMMENT
-- if ($this->flags & 16)
-- {
-- // Get the length of the comment
-- $len = strspn($this->compressed_data, "\x00", $this->position);
--
-- // Check the length of the string is still valid
-- $this->min_compressed_size += $len + 1;
-- if ($this->compressed_size >= $this->min_compressed_size)
-- {
-- // Set the original comment to the given string
-- $this->comment = substr($this->compressed_data, $this->position, $len);
-- $this->position += $len + 1;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- // Parse the FHCRC
-- if ($this->flags & 2)
-- {
-- // Check the length of the string is still valid
-- $this->min_compressed_size += $len + 2;
-- if ($this->compressed_size >= $this->min_compressed_size)
-- {
-- // Read the CRC
-- $crc = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
--
-- // Check the CRC matches
-- if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc)
-- {
-- $this->position += 2;
-- }
-- else
-- {
-- return false;
-- }
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- // Decompress the actual data
-- if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false)
-- {
-- return false;
-- }
-- else
-- {
-- $this->position = $this->compressed_size - 8;
-- }
--
-- // Check CRC of data
-- $crc = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-- $this->position += 4;
-- /*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc))
-- {
-- return false;
-- }*/
--
-- // Check ISIZE of data
-- $isize = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-- $this->position += 4;
-- if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize))
-- {
-- return false;
-- }
--
-- // Wow, against all odds, we've actually got a valid gzip string
-- return true;
-- }
-- else
-- {
-- return false;
-- }
-- }
--}
--
--class SimplePie_Cache
--{
-- /**
-- * Don't call the constructor. Please.
-- *
-- * @access private
-- */
-- function SimplePie_Cache()
-- {
-- trigger_error('Please call SimplePie_Cache::create() instead of the constructor', E_USER_ERROR);
-- }
--
-- /**
-- * Create a new SimplePie_Cache object
-- *
-- * @static
-- * @access public
-- */
-- static function create($location, $filename, $extension)
-- {
-- return new SimplePie_Cache_File($location, $filename, $extension);
-- }
--}
--
--class SimplePie_Cache_File
--{
-- var $location;
-- var $filename;
-- var $extension;
-- var $name;
--
-- function SimplePie_Cache_File($location, $filename, $extension)
-- {
-- $this->location = $location;
-- $this->filename = rawurlencode($filename);
-- $this->extension = rawurlencode($extension);
-- $this->name = "$location/$this->filename.$this->extension";
-- }
--
-- function save($data)
-- {
-- if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
-- {
-- if (is_a($data, 'SimplePie'))
-- {
-- $data = $data->data;
-- }
--
-- $data = serialize($data);
--
-- if (function_exists('file_put_contents'))
-- {
-- return (bool) file_put_contents($this->name, $data);
-- }
-- else
-- {
-- $fp = fopen($this->name, 'wb');
-- if ($fp)
-- {
-- fwrite($fp, $data);
-- fclose($fp);
-- return true;
-- }
-- }
-- }
-- return false;
-- }
--
-- function load()
-- {
-- if (file_exists($this->name) && is_readable($this->name))
-- {
-- return unserialize(file_get_contents($this->name));
-- }
-- return false;
-- }
--
-- function mtime()
-- {
-- if (file_exists($this->name))
-- {
-- return filemtime($this->name);
-- }
-- return false;
-- }
--
-- function touch()
-- {
-- if (file_exists($this->name))
-- {
-- return touch($this->name);
-- }
-- return false;
-- }
--
-- function unlink()
-- {
-- if (file_exists($this->name))
-- {
-- return unlink($this->name);
-- }
-- return false;
-- }
--}
--
--class SimplePie_Misc
--{
-- function time_hms($seconds)
-- {
-- $time = '';
--
-- $hours = floor($seconds / 3600);
-- $remainder = $seconds % 3600;
-- if ($hours > 0)
-- {
-- $time .= $hours.':';
-- }
--
-- $minutes = floor($remainder / 60);
-- $seconds = $remainder % 60;
-- if ($minutes < 10 && $hours > 0)
-- {
-- $minutes = '0' . $minutes;
-- }
-- if ($seconds < 10)
-- {
-- $seconds = '0' . $seconds;
-- }
--
-- $time .= $minutes.':';
-- $time .= $seconds;
--
-- return $time;
-- }
--
-- static function absolutize_url($relative, $base)
-- {
-- if ($relative !== '')
-- {
-- $relative = SimplePie_Misc::parse_url($relative);
-- if ($relative['scheme'] !== '')
-- {
-- $target = $relative;
-- }
-- elseif ($base !== '')
-- {
-- $base = SimplePie_Misc::parse_url($base);
-- $target = SimplePie_Misc::parse_url('');
-- if ($relative['authority'] !== '')
-- {
-- $target = $relative;
-- $target['scheme'] = $base['scheme'];
-- }
-- else
-- {
-- $target['scheme'] = $base['scheme'];
-- $target['authority'] = $base['authority'];
-- if ($relative['path'] !== '')
-- {
-- if (strpos($relative['path'], '/') === 0)
-- {
-- $target['path'] = $relative['path'];
-- }
-- elseif ($base['authority'] !== '' && $base['path'] === '')
-- {
-- $target['path'] = '/' . $relative['path'];
-- }
-- elseif (($last_segment = strrpos($base['path'], '/')) !== false)
-- {
-- $target['path'] = substr($base['path'], 0, $last_segment + 1) . $relative['path'];
-- }
-- else
-- {
-- $target['path'] = $relative['path'];
-- }
-- $target['query'] = $relative['query'];
-- }
-- else
-- {
-- $target['path'] = $base['path'];
-- if ($relative['query'] !== '')
-- {
-- $target['query'] = $relative['query'];
-- }
-- elseif ($base['query'] !== '')
-- {
-- $target['query'] = $base['query'];
-- }
-- }
-- }
-- $target['fragment'] = $relative['fragment'];
-- }
-- else
-- {
-- // No base URL, just return the relative URL
-- $target = $relative;
-- }
-- $return = SimplePie_Misc::compress_parse_url($target['scheme'], $target['authority'], $target['path'], $target['query'], $target['fragment']);
-- }
-- else
-- {
-- $return = $base;
-- }
-- $return = SimplePie_Misc::normalize_url($return);
-- return $return;
-- }
--
-- static function remove_dot_segments($input)
-- {
-- $output = '';
-- while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input == '.' || $input == '..')
-- {
-- // A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
-- if (strpos($input, '../') === 0)
-- {
-- $input = substr($input, 3);
-- }
-- elseif (strpos($input, './') === 0)
-- {
-- $input = substr($input, 2);
-- }
-- // B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
-- elseif (strpos($input, '/./') === 0)
-- {
-- $input = substr_replace($input, '/', 0, 3);
-- }
-- elseif ($input == '/.')
-- {
-- $input = '/';
-- }
-- // C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
-- elseif (strpos($input, '/../') === 0)
-- {
-- $input = substr_replace($input, '/', 0, 4);
-- $output = substr_replace($output, '', strrpos($output, '/'));
-- }
-- elseif ($input == '/..')
-- {
-- $input = '/';
-- $output = substr_replace($output, '', strrpos($output, '/'));
-- }
-- // D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
-- elseif ($input == '.' || $input == '..')
-- {
-- $input = '';
-- }
-- // E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
-- elseif (($pos = strpos($input, '/', 1)) !== false)
-- {
-- $output .= substr($input, 0, $pos);
-- $input = substr_replace($input, '', 0, $pos);
-- }
-- else
-- {
-- $output .= $input;
-- $input = '';
-- }
-- }
-- return $output . $input;
-- }
--
-- static function get_element($realname, $string)
-- {
-- $return = array();
-- $name = preg_quote($realname, '/');
-- if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
-- {
-- for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++)
-- {
-- $return[$i]['tag'] = $realname;
-- $return[$i]['full'] = $matches[$i][0][0];
-- $return[$i]['offset'] = $matches[$i][0][1];
-- if (strlen($matches[$i][3][0]) <= 2)
-- {
-- $return[$i]['self_closing'] = true;
-- }
-- else
-- {
-- $return[$i]['self_closing'] = false;
-- $return[$i]['content'] = $matches[$i][4][0];
-- }
-- $return[$i]['attribs'] = array();
-- if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER))
-- {
-- for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++)
-- {
-- if (count($attribs[$j]) == 2)
-- {
-- $attribs[$j][2] = $attribs[$j][1];
-- }
-- $return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8');
-- }
-- }
-- }
-- }
-- return $return;
-- }
--
-- function element_implode($element)
-- {
-- $full = "<$element[tag]";
-- foreach ($element['attribs'] as $key => $value)
-- {
-- $key = strtolower($key);
-- $full .= " $key=\"" . htmlspecialchars($value['data']) . '"';
-- }
-- if ($element['self_closing'])
-- {
-- $full .= ' />';
-- }
-- else
-- {
-- $full .= ">$element[content]</$element[tag]>";
-- }
-- return $full;
-- }
--
-- static function error($message, $level, $file, $line)
-- {
-- switch ($level)
-- {
-- case E_USER_ERROR:
-- $note = 'PHP Error';
-- break;
-- case E_USER_WARNING:
-- $note = 'PHP Warning';
-- break;
-- case E_USER_NOTICE:
-- $note = 'PHP Notice';
-- break;
-- default:
-- $note = 'Unknown Error';
-- break;
-- }
-- error_log("$note: $message in $file on line $line", 0);
-- return $message;
-- }
--
-- /**
-- * If a file has been cached, retrieve and display it.
-- *
-- * This is most useful for caching images (get_favicon(), etc.),
-- * however it works for all cached files. This WILL NOT display ANY
-- * file/image/page/whatever, but rather only display what has already
-- * been cached by SimplePie.
-- *
-- * @access public
-- * @see SimplePie::get_favicon()
-- * @param str $identifier_url URL that is used to identify the content.
-- * This may or may not be the actual URL of the live content.
-- * @param str $cache_location Location of SimplePie's cache. Defaults
-- * to './cache'.
-- * @param str $cache_extension The file extension that the file was
-- * cached with. Defaults to 'spc'.
-- * @param str $cache_class Name of the cache-handling class being used
-- * in SimplePie. Defaults to 'SimplePie_Cache', and should be left
-- * as-is unless you've overloaded the class.
-- * @param str $cache_name_function Obsolete. Exists for backwards
-- * compatibility reasons only.
-- */
-- function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5')
-- {
-- $cache = call_user_func(array($cache_class, 'create'), $cache_location, $identifier_url, $cache_extension);
--
-- if ($file = $cache->load())
-- {
-- if (isset($file['headers']['content-type']))
-- {
-- header('Content-type:' . $file['headers']['content-type']);
-- }
-- else
-- {
-- header('Content-type: application/octet-stream');
-- }
-- header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
-- echo $file['body'];
-- exit;
-- }
--
-- die('Cached file for ' . $identifier_url . ' cannot be found.');
-- }
--
-- static function fix_protocol($url, $http = 1)
-- {
-- $url = SimplePie_Misc::normalize_url($url);
-- $parsed = SimplePie_Misc::parse_url($url);
-- if ($parsed['scheme'] !== '' && $parsed['scheme'] != 'http' && $parsed['scheme'] != 'https')
-- {
-- return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http);
-- }
--
-- if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url))
-- {
-- return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http);
-- }
--
-- if ($http == 2 && $parsed['scheme'] !== '')
-- {
-- return "feed:$url";
-- }
-- elseif ($http == 3 && strtolower($parsed['scheme']) == 'http')
-- {
-- return substr_replace($url, 'podcast', 0, 4);
-- }
-- elseif ($http == 4 && strtolower($parsed['scheme']) == 'http')
-- {
-- return substr_replace($url, 'itpc', 0, 4);
-- }
-- else
-- {
-- return $url;
-- }
-- }
--
-- static function parse_url($url)
-- {
-- static $cache = array();
-- if (isset($cache[$url]))
-- {
-- return $cache[$url];
-- }
-- elseif (preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/', $url, $match))
-- {
-- for ($i = count($match); $i <= 9; $i++)
-- {
-- $match[$i] = '';
-- }
-- return $cache[$url] = array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[7], 'fragment' => $match[9]);
-- }
-- else
-- {
-- return $cache[$url] = array('scheme' => '', 'authority' => '', 'path' => '', 'query' => '', 'fragment' => '');
-- }
-- }
--
-- static function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '')
-- {
-- $return = '';
-- if ($scheme !== '')
-- {
-- $return .= "$scheme:";
-- }
-- if ($authority !== '')
-- {
-- $return .= "//$authority";
-- }
-- if ($path !== '')
-- {
-- $return .= $path;
-- }
-- if ($query !== '')
-- {
-- $return .= "?$query";
-- }
-- if ($fragment !== '')
-- {
-- $return .= "#$fragment";
-- }
-- return $return;
-- }
--
-- static function normalize_url($url)
-- {
-- $url = preg_replace_callback('/%([0-9A-Fa-f]{2})/', array('SimplePie_Misc', 'percent_encoding_normalization'), $url);
-- $url = SimplePie_Misc::parse_url($url);
-- $url['scheme'] = strtolower($url['scheme']);
-- if ($url['authority'] !== '')
-- {
-- $url['authority'] = strtolower($url['authority']);
-- $url['path'] = SimplePie_Misc::remove_dot_segments($url['path']);
-- }
-- return SimplePie_Misc::compress_parse_url($url['scheme'], $url['authority'], $url['path'], $url['query'], $url['fragment']);
-- }
--
-- static function percent_encoding_normalization($match)
-- {
-- $integer = hexdec($match[1]);
-- if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer == 0x2D || $integer == 0x2E || $integer == 0x5F || $integer == 0x7E)
-- {
-- return chr($integer);
-- }
-- else
-- {
-- return strtoupper($match[0]);
-- }
-- }
--
-- /**
-- * Remove bad UTF-8 bytes
-- *
-- * PCRE Pattern to locate bad bytes in a UTF-8 string comes from W3C
-- * FAQ: Multilingual Forms (modified to include full ASCII range)
-- *
-- * @author Geoffrey Sneddon
-- * @see http://www.w3.org/International/questions/qa-forms-utf-8
-- * @param string $str String to remove bad UTF-8 bytes from
-- * @return string UTF-8 string
-- */
-- function utf8_bad_replace($str)
-- {
-- if (function_exists('iconv') && ($return = @iconv('UTF-8', 'UTF-8//IGNORE', $str)))
-- {
-- return $return;
-- }
-- elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($str, 'UTF-8', 'UTF-8')))
-- {
-- return $return;
-- }
-- elseif (preg_match_all('/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})+/', $str, $matches))
-- {
-- return implode("\xEF\xBF\xBD", $matches[0]);
-- }
-- elseif ($str !== '')
-- {
-- return "\xEF\xBF\xBD";
-- }
-- else
-- {
-- return '';
-- }
-- }
--
-- /**
-- * Converts a Windows-1252 encoded string to a UTF-8 encoded string
-- *
-- * @static
-- * @access public
-- * @param string $string Windows-1252 encoded string
-- * @return string UTF-8 encoded string
-- */
-- static function windows_1252_to_utf8($string)
-- {
-- static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF");
--
-- return strtr($string, $convert_table);
-- }
--
-- static function change_encoding($data, $input, $output)
-- {
-- $input = SimplePie_Misc::encoding($input);
-- $output = SimplePie_Misc::encoding($output);
--
-- // We fail to fail on non US-ASCII bytes
-- if ($input === 'US-ASCII')
-- {
-- static $non_ascii_octects = '';
-- if (!$non_ascii_octects)
-- {
-- for ($i = 0x80; $i <= 0xFF; $i++)
-- {
-- $non_ascii_octects .= chr($i);
-- }
-- }
-- $data = substr($data, 0, strcspn($data, $non_ascii_octects));
-- }
--
-- // This is first, as behaviour of this is completely predictable
-- if ($input === 'Windows-1252' && $output === 'UTF-8')
-- {
-- return SimplePie_Misc::windows_1252_to_utf8($data);
-- }
-- // This is second, as behaviour of this varies only with PHP version
-- elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($data, $output, $input)))
-- {
-- return $return;
-- }
-- // This is last, as behaviour of this varies with OS userland and PHP version
-- elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data)))
-- {
-- return $return;
-- }
-- // If we can't do anything, just fail
-- else
-- {
-- return false;
-- }
-- }
--
-- static function encoding($charset)
-- {
-- /* Character sets are case-insensitive, and also need some further
-- normalization in the real world (though we'll return them in the form given
-- in their registration). */
-- switch (strtolower(preg_replace('/[\x09-\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]/', '', $charset)))
-- {
-- case 'adobestandardencoding':
-- case 'csadobestandardencoding':
-- return 'Adobe-Standard-Encoding';
--
-- case 'adobesymbolencoding':
-- case 'cshppsmath':
-- return 'Adobe-Symbol-Encoding';
--
-- case 'ami1251':
-- case 'ami1251':
-- case 'amiga1251':
-- case 'amiga1251':
-- return 'Amiga-1251';
--
-- case 'ansix31101983':
-- case 'csat5001983':
-- case 'csiso99naplps':
-- case 'isoir99':
-- case 'naplps':
-- return 'ANSI_X3.110-1983';
--
-- case 'arabic7':
-- case 'asmo449':
-- case 'csiso89asmo449':
-- case 'isoir89':
-- case 'iso9036':
-- return 'ASMO_449';
--
-- case 'big5':
-- case 'csbig5':
-- case 'xxbig5':
-- return 'Big5';
--
-- case 'big5hkscs':
-- return 'Big5-HKSCS';
--
-- case 'bocu1':
-- case 'csbocu1':
-- return 'BOCU-1';
--
-- case 'brf':
-- case 'csbrf':
-- return 'BRF';
--
-- case 'bs4730':
-- case 'csiso4unitedkingdom':
-- case 'gb':
-- case 'isoir4':
-- case 'iso646gb':
-- case 'uk':
-- return 'BS_4730';
--
-- case 'bsviewdata':
-- case 'csiso47bsviewdata':
-- case 'isoir47':
-- return 'BS_viewdata';
--
-- case 'cesu8':
-- case 'cscesu8':
-- return 'CESU-8';
--
-- case 'ca':
-- case 'csa71':
-- case 'csaz243419851':
-- case 'csiso121canadian1':
-- case 'isoir121':
-- case 'iso646ca':
-- return 'CSA_Z243.4-1985-1';
--
-- case 'csa72':
-- case 'csaz243419852':
-- case 'csiso122canadian2':
-- case 'isoir122':
-- case 'iso646ca2':
-- return 'CSA_Z243.4-1985-2';
--
-- case 'csaz24341985gr':
-- case 'csiso123csaz24341985gr':
-- case 'isoir123':
-- return 'CSA_Z243.4-1985-gr';
--
-- case 'csiso139csn369103':
-- case 'csn369103':
-- case 'isoir139':
-- return 'CSN_369103';
--
-- case 'csdecmcs':
-- case 'dec':
-- case 'decmcs':
-- return 'DEC-MCS';
--
-- case 'csiso21german':
-- case 'de':
-- case 'din66003':
-- case 'isoir21':
-- case 'iso646de':
-- return 'DIN_66003';
--
-- case 'csdkus':
-- case 'dkus':
-- return 'dk-us';
--
-- case 'csiso646danish':
-- case 'dk':
-- case 'ds2089':
-- case 'ds2089':
-- case 'iso646dk':
-- return 'DS_2089';
--
-- case 'csibmebcdicatde':
-- case 'ebcdicatde':
-- return 'EBCDIC-AT-DE';
--
-- case 'csebcdicatdea':
-- case 'ebcdicatdea':
-- return 'EBCDIC-AT-DE-A';
--
-- case 'csebcdiccafr':
-- case 'ebcdiccafr':
-- return 'EBCDIC-CA-FR';
--
-- case 'csebcdicdkno':
-- case 'ebcdicdkno':
-- return 'EBCDIC-DK-NO';
--
-- case 'csebcdicdknoa':
-- case 'ebcdicdknoa':
-- return 'EBCDIC-DK-NO-A';
--
-- case 'csebcdices':
-- case 'ebcdices':
-- return 'EBCDIC-ES';
--
-- case 'csebcdicesa':
-- case 'ebcdicesa':
-- return 'EBCDIC-ES-A';
--
-- case 'csebcdicess':
-- case 'ebcdicess':
-- return 'EBCDIC-ES-S';
--
-- case 'csebcdicfise':
-- case 'ebcdicfise':
-- return 'EBCDIC-FI-SE';
--
-- case 'csebcdicfisea':
-- case 'ebcdicfisea':
-- return 'EBCDIC-FI-SE-A';
--
-- case 'csebcdicfr':
-- case 'ebcdicfr':
-- return 'EBCDIC-FR';
--
-- case 'csebcdicit':
-- case 'ebcdicit':
-- return 'EBCDIC-IT';
--
-- case 'csebcdicpt':
-- case 'ebcdicpt':
-- return 'EBCDIC-PT';
--
-- case 'csebcdicuk':
-- case 'ebcdicuk':
-- return 'EBCDIC-UK';
--
-- case 'csebcdicus':
-- case 'ebcdicus':
-- return 'EBCDIC-US';
--
-- case 'csiso111ecmacyrillic':
-- case 'ecmacyrillic':
-- case 'isoir111':
-- case 'koi8e':
-- return 'ECMA-cyrillic';
--
-- case 'csiso17spanish':
-- case 'es':
-- case 'isoir17':
-- case 'iso646es':
-- return 'ES';
--
-- case 'csiso85spanish2':
-- case 'es2':
-- case 'isoir85':
-- case 'iso646es2':
-- return 'ES2';
--
-- case 'cseucfixwidjapanese':
-- case 'extendedunixcodefixedwidthforjapanese':
-- return 'Extended_UNIX_Code_Fixed_Width_for_Japanese';
--
-- case 'cseucpkdfmtjapanese':
-- case 'eucjp':
-- case 'extendedunixcodepackedformatforjapanese':
-- return 'Extended_UNIX_Code_Packed_Format_for_Japanese';
--
-- case 'gb18030':
-- return 'GB18030';
--
-- case 'cp936':
-- case 'gbk':
-- case 'ms936':
-- case 'windows936':
-- case 'csgb2312':
-- case 'gb2312':
-- case 'chinese':
-- case 'csiso58gb231280':
-- case 'gb231280':
-- case 'isoir58':
-- return 'GBK';
--
-- case 'cn':
-- case 'csiso57gb1988':
-- case 'gb198880':
-- case 'isoir57':
-- case 'iso646cn':
-- return 'GB_1988-80';
--
-- case 'csiso153gost1976874':
-- case 'gost1976874':
-- case 'isoir153':
-- case 'stsev35888':
-- return 'GOST_19768-74';
--
-- case 'csiso150':
-- case 'csiso150greekccitt':
-- case 'greekccitt':
-- case 'isoir150':
-- return 'greek-ccitt';
--
-- case 'csiso88greek7':
-- case 'greek7':
-- case 'isoir88':
-- return 'greek7';
--
-- case 'csiso18greek7old':
-- case 'greek7old':
-- case 'isoir18':
-- return 'greek7-old';
--
-- case 'cshpdesktop':
-- case 'hpdesktop':
-- return 'HP-DeskTop';
--
-- case 'cshplegal':
-- case 'hplegal':
-- return 'HP-Legal';
--
-- case 'cshpmath8':
-- case 'hpmath8':
-- return 'HP-Math8';
--
-- case 'cshppifont':
-- case 'hppifont':
-- return 'HP-Pi-font';
--
-- case 'cshproman8':
-- case 'hproman8':
-- case 'r8':
-- case 'roman8':
-- return 'hp-roman8';
--
-- case 'hzgb2312':
-- return 'HZ-GB-2312';
--
-- case 'csibmsymbols':
-- case 'ibmsymbols':
-- return 'IBM-Symbols';
--
-- case 'csibmthai':
-- case 'ibmthai':
-- return 'IBM-Thai';
--
-- case 'ccsid00858':
-- case 'cp00858':
-- case 'ibm00858':
-- case 'pcmultilingual850euro':
-- return 'IBM00858';
--
-- case 'ccsid00924':
-- case 'cp00924':
-- case 'ebcdiclatin9euro':
-- case 'ibm00924':
-- return 'IBM00924';
--
-- case 'ccsid01140':
-- case 'cp01140':
-- case 'ebcdicus37euro':
-- case 'ibm01140':
-- return 'IBM01140';
--
-- case 'ccsid01141':
-- case 'cp01141':
-- case 'ebcdicde273euro':
-- case 'ibm01141':
-- return 'IBM01141';
--
-- case 'ccsid01142':
-- case 'cp01142':
-- case 'ebcdicdk277euro':
-- case 'ebcdicno277euro':
-- case 'ibm01142':
-- return 'IBM01142';
--
-- case 'ccsid01143':
-- case 'cp01143':
-- case 'ebcdicfi278euro':
-- case 'ebcdicse278euro':
-- case 'ibm01143':
-- return 'IBM01143';
--
-- case 'ccsid01144':
-- case 'cp01144':
-- case 'ebcdicit280euro':
-- case 'ibm01144':
-- return 'IBM01144';
--
-- case 'ccsid01145':
-- case 'cp01145':
-- case 'ebcdices284euro':
-- case 'ibm01145':
-- return 'IBM01145';
--
-- case 'ccsid01146':
-- case 'cp01146':
-- case 'ebcdicgb285euro':
-- case 'ibm01146':
-- return 'IBM01146';
--
-- case 'ccsid01147':
-- case 'cp01147':
-- case 'ebcdicfr297euro':
-- case 'ibm01147':
-- return 'IBM01147';
--
-- case 'ccsid01148':
-- case 'cp01148':
-- case 'ebcdicinternational500euro':
-- case 'ibm01148':
-- return 'IBM01148';
--
-- case 'ccsid01149':
-- case 'cp01149':
-- case 'ebcdicis871euro':
-- case 'ibm01149':
-- return 'IBM01149';
--
-- case 'cp037':
-- case 'csibm037':
-- case 'ebcdiccpca':
-- case 'ebcdiccpnl':
-- case 'ebcdiccpus':
-- case 'ebcdiccpwt':
-- case 'ibm037':
-- return 'IBM037';
--
-- case 'cp038':
-- case 'csibm038':
-- case 'ebcdicint':
-- case 'ibm038':
-- return 'IBM038';
--
-- case 'cp273':
-- case 'csibm273':
-- case 'ibm273':
-- return 'IBM273';
--
-- case 'cp274':
-- case 'csibm274':
-- case 'ebcdicbe':
-- case 'ibm274':
-- return 'IBM274';
--
-- case 'cp275':
-- case 'csibm275':
-- case 'ebcdicbr':
-- case 'ibm275':
-- return 'IBM275';
--
-- case 'csibm277':
-- case 'ebcdiccpdk':
-- case 'ebcdiccpno':
-- case 'ibm277':
-- return 'IBM277';
--
-- case 'cp278':
-- case 'csibm278':
-- case 'ebcdiccpfi':
-- case 'ebcdiccpse':
-- case 'ibm278':
-- return 'IBM278';
--
-- case 'cp280':
-- case 'csibm280':
-- case 'ebcdiccpit':
-- case 'ibm280':
-- return 'IBM280';
--
-- case 'cp281':
-- case 'csibm281':
-- case 'ebcdicjpe':
-- case 'ibm281':
-- return 'IBM281';
--
-- case 'cp284':
-- case 'csibm284':
-- case 'ebcdiccpes':
-- case 'ibm284':
-- return 'IBM284';
--
-- case 'cp285':
-- case 'csibm285':
-- case 'ebcdiccpgb':
-- case 'ibm285':
-- return 'IBM285';
--
-- case 'cp290':
-- case 'csibm290':
-- case 'ebcdicjpkana':
-- case 'ibm290':
-- return 'IBM290';
--
-- case 'cp297':
-- case 'csibm297':
-- case 'ebcdiccpfr':
-- case 'ibm297':
-- return 'IBM297';
--
-- case 'cp420':
-- case 'csibm420':
-- case 'ebcdiccpar1':
-- case 'ibm420':
-- return 'IBM420';
--
-- case 'cp423':
-- case 'csibm423':
-- case 'ebcdiccpgr':
-- case 'ibm423':
-- return 'IBM423';
--
-- case 'cp424':
-- case 'csibm424':
-- case 'ebcdiccphe':
-- case 'ibm424':
-- return 'IBM424';
--
-- case '437':
-- case 'cp437':
-- case 'cspc8codepage437':
-- case 'ibm437':
-- return 'IBM437';
--
-- case 'cp500':
-- case 'csibm500':
-- case 'ebcdiccpbe':
-- case 'ebcdiccpch':
-- case 'ibm500':
-- return 'IBM500';
--
-- case 'cp775':
-- case 'cspc775baltic':
-- case 'ibm775':
-- return 'IBM775';
--
-- case '850':
-- case 'cp850':
-- case 'cspc850multilingual':
-- case 'ibm850':
-- return 'IBM850';
--
-- case '851':
-- case 'cp851':
-- case 'csibm851':
-- case 'ibm851':
-- return 'IBM851';
--
-- case '852':
-- case 'cp852':
-- case 'cspcp852':
-- case 'ibm852':
-- return 'IBM852';
--
-- case '855':
-- case 'cp855':
-- case 'csibm855':
-- case 'ibm855':
-- return 'IBM855';
--
-- case '857':
-- case 'cp857':
-- case 'csibm857':
-- case 'ibm857':
-- return 'IBM857';
--
-- case '860':
-- case 'cp860':
-- case 'csibm860':
-- case 'ibm860':
-- return 'IBM860';
--
-- case '861':
-- case 'cpis':
-- case 'cp861':
-- case 'csibm861':
-- case 'ibm861':
-- return 'IBM861';
--
-- case '862':
-- case 'cp862':
-- case 'cspc862latinhebrew':
-- case 'ibm862':
-- return 'IBM862';
--
-- case '863':
-- case 'cp863':
-- case 'csibm863':
-- case 'ibm863':
-- return 'IBM863';
--
-- case 'cp864':
-- case 'csibm864':
-- case 'ibm864':
-- return 'IBM864';
--
-- case '865':
-- case 'cp865':
-- case 'csibm865':
-- case 'ibm865':
-- return 'IBM865';
--
-- case '866':
-- case 'cp866':
-- case 'csibm866':
-- case 'ibm866':
-- return 'IBM866';
--
-- case 'cpar':
-- case 'cp868':
-- case 'csibm868':
-- case 'ibm868':
-- return 'IBM868';
--
-- case '869':
-- case 'cpgr':
-- case 'cp869':
-- case 'csibm869':
-- case 'ibm869':
-- return 'IBM869';
--
-- case 'cp870':
-- case 'csibm870':
-- case 'ebcdiccproece':
-- case 'ebcdiccpyu':
-- case 'ibm870':
-- return 'IBM870';
--
-- case 'cp871':
-- case 'csibm871':
-- case 'ebcdiccpis':
-- case 'ibm871':
-- return 'IBM871';
--
-- case 'cp880':
-- case 'csibm880':
-- case 'ebcdiccyrillic':
-- case 'ibm880':
-- return 'IBM880';
--
-- case 'cp891':
-- case 'csibm891':
-- case 'ibm891':
-- return 'IBM891';
--
-- case 'cp903':
-- case 'csibm903':
-- case 'ibm903':
-- return 'IBM903';
--
-- case '904':
-- case 'cp904':
-- case 'csibbm904':
-- case 'ibm904':
-- return 'IBM904';
--
-- case 'cp905':
-- case 'csibm905':
-- case 'ebcdiccptr':
-- case 'ibm905':
-- return 'IBM905';
--
-- case 'cp918':
-- case 'csibm918':
-- case 'ebcdiccpar2':
-- case 'ibm918':
-- return 'IBM918';
--
-- case 'cp1026':
-- case 'csibm1026':
-- case 'ibm1026':
-- return 'IBM1026';
--
-- case 'ibm1047':
-- case 'ibm1047':
-- return 'IBM1047';
--
-- case 'csiso143iecp271':
-- case 'iecp271':
-- case 'isoir143':
-- return 'IEC_P27-1';
--
-- case 'csiso49inis':
-- case 'inis':
-- case 'isoir49':
-- return 'INIS';
--
-- case 'csiso50inis8':
-- case 'inis8':
-- case 'isoir50':
-- return 'INIS-8';
--
-- case 'csiso51iniscyrillic':
-- case 'iniscyrillic':
-- case 'isoir51':
-- return 'INIS-cyrillic';
--
-- case 'csinvariant':
-- case 'invariant':
-- return 'INVARIANT';
--
-- case 'iso2022cn':
-- return 'ISO-2022-CN';
--
-- case 'iso2022cnext':
-- return 'ISO-2022-CN-EXT';
--
-- case 'csiso2022jp':
-- case 'iso2022jp':
-- return 'ISO-2022-JP';
--
-- case 'csiso2022jp2':
-- case 'iso2022jp2':
-- return 'ISO-2022-JP-2';
--
-- case 'csiso2022kr':
-- case 'iso2022kr':
-- return 'ISO-2022-KR';
--
-- case 'cswindows30latin1':
-- case 'iso88591windows30latin1':
-- return 'ISO-8859-1-Windows-3.0-Latin-1';
--
-- case 'cswindows31latin1':
-- case 'iso88591windows31latin1':
-- return 'ISO-8859-1-Windows-3.1-Latin-1';
--
-- case 'csisolatin2':
-- case 'iso88592':
-- case 'isoir101':
-- case 'iso88592':
-- case 'iso885921987':
-- case 'l2':
-- case 'latin2':
-- return 'ISO-8859-2';
--
-- case 'cswindows31latin2':
-- case 'iso88592windowslatin2':
-- return 'ISO-8859-2-Windows-Latin-2';
--
-- case 'csisolatin3':
-- case 'iso88593':
-- case 'isoir109':
-- case 'iso88593':
-- case 'iso885931988':
-- case 'l3':
-- case 'latin3':
-- return 'ISO-8859-3';
--
-- case 'csisolatin4':
-- case 'iso88594':
-- case 'isoir110':
-- case 'iso88594':
-- case 'iso885941988':
-- case 'l4':
-- case 'latin4':
-- return 'ISO-8859-4';
--
-- case 'csisolatincyrillic':
-- case 'cyrillic':
-- case 'iso88595':
-- case 'isoir144':
-- case 'iso88595':
-- case 'iso885951988':
-- return 'ISO-8859-5';
--
-- case 'arabic':
-- case 'asmo708':
-- case 'csisolatinarabic':
-- case 'ecma114':
-- case 'iso88596':
-- case 'isoir127':
-- case 'iso88596':
-- case 'iso885961987':
-- return 'ISO-8859-6';
--
-- case 'csiso88596e':
-- case 'iso88596e':
-- case 'iso88596e':
-- return 'ISO-8859-6-E';
--
-- case 'csiso88596i':
-- case 'iso88596i':
-- case 'iso88596i':
-- return 'ISO-8859-6-I';
--
-- case 'csisolatingreek':
-- case 'ecma118':
-- case 'elot928':
-- case 'greek':
-- case 'greek8':
-- case 'iso88597':
-- case 'isoir126':
-- case 'iso88597':
-- case 'iso885971987':
-- return 'ISO-8859-7';
--
-- case 'csisolatinhebrew':
-- case 'hebrew':
-- case 'iso88598':
-- case 'isoir138':
-- case 'iso88598':
-- case 'iso885981988':
-- return 'ISO-8859-8';
--
-- case 'csiso88598e':
-- case 'iso88598e':
-- case 'iso88598e':
-- return 'ISO-8859-8-E';
--
-- case 'csiso88598i':
-- case 'iso88598i':
-- case 'iso88598i':
-- return 'ISO-8859-8-I';
--
-- case 'cswindows31latin5':
-- case 'iso88599windowslatin5':
-- return 'ISO-8859-9-Windows-Latin-5';
--
-- case 'csisolatin6':
-- case 'iso885910':
-- case 'isoir157':
-- case 'iso8859101992':
-- case 'l6':
-- case 'latin6':
-- return 'ISO-8859-10';
--
-- case 'iso885913':
-- return 'ISO-8859-13';
--
-- case 'iso885914':
-- case 'isoceltic':
-- case 'isoir199':
-- case 'iso885914':
-- case 'iso8859141998':
-- case 'l8':
-- case 'latin8':
-- return 'ISO-8859-14';
--
-- case 'iso885915':
-- case 'iso885915':
-- case 'latin9':
-- return 'ISO-8859-15';
--
-- case 'iso885916':
-- case 'isoir226':
-- case 'iso885916':
-- case 'iso8859162001':
-- case 'l10':
-- case 'latin10':
-- return 'ISO-8859-16';
--
-- case 'iso10646j1':
-- return 'ISO-10646-J-1';
--
-- case 'csunicode':
-- case 'iso10646ucs2':
-- return 'ISO-10646-UCS-2';
--
-- case 'csucs4':
-- case 'iso10646ucs4':
-- return 'ISO-10646-UCS-4';
--
-- case 'csunicodeascii':
-- case 'iso10646ucsbasic':
-- return 'ISO-10646-UCS-Basic';
--
-- case 'csunicodelatin1':
-- case 'iso10646':
-- case 'iso10646unicodelatin1':
-- return 'ISO-10646-Unicode-Latin1';
--
-- case 'csiso10646utf1':
-- case 'iso10646utf1':
-- return 'ISO-10646-UTF-1';
--
-- case 'csiso115481':
-- case 'iso115481':
-- case 'iso115481':
-- case 'isotr115481':
-- return 'ISO-11548-1';
--
-- case 'csiso90':
-- case 'isoir90':
-- return 'iso-ir-90';
--
-- case 'csunicodeibm1261':
-- case 'isounicodeibm1261':
-- return 'ISO-Unicode-IBM-1261';
--
-- case 'csunicodeibm1264':
-- case 'isounicodeibm1264':
-- return 'ISO-Unicode-IBM-1264';
--
-- case 'csunicodeibm1265':
-- case 'isounicodeibm1265':
-- return 'ISO-Unicode-IBM-1265';
--
-- case 'csunicodeibm1268':
-- case 'isounicodeibm1268':
-- return 'ISO-Unicode-IBM-1268';
--
-- case 'csunicodeibm1276':
-- case 'isounicodeibm1276':
-- return 'ISO-Unicode-IBM-1276';
--
-- case 'csiso646basic1983':
-- case 'iso646basic1983':
-- case 'ref':
-- return 'ISO_646.basic:1983';
--
-- case 'csiso2intlrefversion':
-- case 'irv':
-- case 'isoir2':
-- case 'iso646irv1983':
-- return 'ISO_646.irv:1983';
--
-- case 'csiso2033':
-- case 'e13b':
-- case 'isoir98':
-- case 'iso20331983':
-- return 'ISO_2033-1983';
--
-- case 'csiso5427cyrillic':
-- case 'isoir37':
-- case 'iso5427':
-- return 'ISO_5427';
--
-- case 'isoir54':
-- case 'iso5427cyrillic1981':
-- case 'iso54271981':
-- return 'ISO_5427:1981';
--
-- case 'csiso5428greek':
-- case 'isoir55':
-- case 'iso54281980':
-- return 'ISO_5428:1980';
--
-- case 'csiso6937add':
-- case 'isoir152':
-- case 'iso6937225':
-- return 'ISO_6937-2-25';
--
-- case 'csisotextcomm':
-- case 'isoir142':
-- case 'iso69372add':
-- return 'ISO_6937-2-add';
--
-- case 'csiso8859supp':
-- case 'isoir154':
-- case 'iso8859supp':
-- case 'latin125':
-- return 'ISO_8859-supp';
--
-- case 'csiso10367box':
-- case 'isoir155':
-- case 'iso10367box':
-- return 'ISO_10367-box';
--
-- case 'csiso15italian':
-- case 'isoir15':
-- case 'iso646it':
-- case 'it':
-- return 'IT';
--
-- case 'csiso13jisc6220jp':
-- case 'isoir13':
-- case 'jisc62201969':
-- case 'jisc62201969jp':
-- case 'katakana':
-- case 'x02017':
-- return 'JIS_C6220-1969-jp';
--
-- case 'csiso14jisc6220ro':
-- case 'isoir14':
-- case 'iso646jp':
-- case 'jisc62201969ro':
-- case 'jp':
-- return 'JIS_C6220-1969-ro';
--
-- case 'csiso42jisc62261978':
-- case 'isoir42':
-- case 'jisc62261978':
-- return 'JIS_C6226-1978';
--
-- case 'csiso87jisx0208':
-- case 'isoir87':
-- case 'jisc62261983':
-- case 'jisx02081983':
-- case 'x0208':
-- return 'JIS_C6226-1983';
--
-- case 'csiso91jisc62291984a':
-- case 'isoir91':
-- case 'jisc62291984a':
-- case 'jpocra':
-- return 'JIS_C6229-1984-a';
--
-- case 'csiso92jisc62991984b':
-- case 'isoir92':
-- case 'iso646jpocrb':
-- case 'jisc62291984b':
-- case 'jpocrb':
-- return 'JIS_C6229-1984-b';
--
-- case 'csiso93jis62291984badd':
-- case 'isoir93':
-- case 'jisc62291984badd':
-- case 'jpocrbadd':
-- return 'JIS_C6229-1984-b-add';
--
-- case 'csiso94jis62291984hand':
-- case 'isoir94':
-- case 'jisc62291984hand':
-- case 'jpocrhand':
-- return 'JIS_C6229-1984-hand';
--
-- case 'csiso95jis62291984handadd':
-- case 'isoir95':
-- case 'jisc62291984handadd':
-- case 'jpocrhandadd':
-- return 'JIS_C6229-1984-hand-add';
--
-- case 'csiso96jisc62291984kana':
-- case 'isoir96':
-- case 'jisc62291984kana':
-- return 'JIS_C6229-1984-kana';
--
-- case 'csjisencoding':
-- case 'jisencoding':
-- return 'JIS_Encoding';
--
-- case 'cshalfwidthkatakana':
-- case 'jisx0201':
-- case 'x0201':
-- return 'JIS_X0201';
--
-- case 'csiso159jisx02121990':
-- case 'isoir159':
-- case 'jisx02121990':
-- case 'x0212':
-- return 'JIS_X0212-1990';
--
-- case 'csiso141jusib1002':
-- case 'isoir141':
-- case 'iso646yu':
-- case 'js':
-- case 'jusib1002':
-- case 'yu':
-- return 'JUS_I.B1.002';
--
-- case 'csiso147macedonian':
-- case 'isoir147':
-- case 'jusib1003mac':
-- case 'macedonian':
-- return 'JUS_I.B1.003-mac';
--
-- case 'csiso146serbian':
-- case 'isoir146':
-- case 'jusib1003serb':
-- case 'serbian':
-- return 'JUS_I.B1.003-serb';
--
-- case 'koi7switched':
-- return 'KOI7-switched';
--
-- case 'cskoi8r':
-- case 'koi8r':
-- return 'KOI8-R';
--
-- case 'koi8u':
-- return 'KOI8-U';
--
-- case 'csksc5636':
-- case 'iso646kr':
-- case 'ksc5636':
-- return 'KSC5636';
--
-- case 'cskz1048':
-- case 'kz1048':
-- case 'rk1048':
-- case 'strk10482002':
-- return 'KZ-1048';
--
-- case 'csiso19latingreek':
-- case 'isoir19':
-- case 'latingreek':
-- return 'latin-greek';
--
-- case 'csiso27latingreek1':
-- case 'isoir27':
-- case 'latingreek1':
-- return 'Latin-greek-1';
--
-- case 'csiso158lap':
-- case 'isoir158':
-- case 'lap':
-- case 'latinlap':
-- return 'latin-lap';
--
-- case 'csmacintosh':
-- case 'mac':
-- case 'macintosh':
-- return 'macintosh';
--
-- case 'csmicrosoftpublishing':
-- case 'microsoftpublishing':
-- return 'Microsoft-Publishing';
--
-- case 'csmnem':
-- case 'mnem':
-- return 'MNEM';
--
-- case 'csmnemonic':
-- case 'mnemonic':
-- return 'MNEMONIC';
--
-- case 'csiso86hungarian':
-- case 'hu':
-- case 'isoir86':
-- case 'iso646hu':
-- case 'msz77953':
-- return 'MSZ_7795.3';
--
-- case 'csnatsdano':
-- case 'isoir91':
-- case 'natsdano':
-- return 'NATS-DANO';
--
-- case 'csnatsdanoadd':
-- case 'isoir92':
-- case 'natsdanoadd':
-- return 'NATS-DANO-ADD';
--
-- case 'csnatssefi':
-- case 'isoir81':
-- case 'natssefi':
-- return 'NATS-SEFI';
--
-- case 'csnatssefiadd':
-- case 'isoir82':
-- case 'natssefiadd':
-- return 'NATS-SEFI-ADD';
--
-- case 'csiso151cuba':
-- case 'cuba':
-- case 'isoir151':
-- case 'iso646cu':
-- case 'ncnc001081':
-- return 'NC_NC00-10:81';
--
-- case 'csiso69french':
-- case 'fr':
-- case 'isoir69':
-- case 'iso646fr':
-- case 'nfz62010':
-- return 'NF_Z_62-010';
--
-- case 'csiso25french':
-- case 'isoir25':
-- case 'iso646fr1':
-- case 'nfz620101973':
-- return 'NF_Z_62-010_(1973)';
--
-- case 'csiso60danishnorwegian':
-- case 'csiso60norwegian1':
-- case 'isoir60':
-- case 'iso646no':
-- case 'no':
-- case 'ns45511':
-- return 'NS_4551-1';
--
-- case 'csiso61norwegian2':
-- case 'isoir61':
-- case 'iso646no2':
-- case 'no2':
-- case 'ns45512':
-- return 'NS_4551-2';
--
-- case 'osdebcdicdf03irv':
-- return 'OSD_EBCDIC_DF03_IRV';
--
-- case 'osdebcdicdf041':
-- return 'OSD_EBCDIC_DF04_1';
--
-- case 'osdebcdicdf0415':
-- return 'OSD_EBCDIC_DF04_15';
--
-- case 'cspc8danishnorwegian':
-- case 'pc8danishnorwegian':
-- return 'PC8-Danish-Norwegian';
--
-- case 'cspc8turkish':
-- case 'pc8turkish':
-- return 'PC8-Turkish';
--
-- case 'csiso16portuguese':
-- case 'isoir16':
-- case 'iso646pt':
-- case 'pt':
-- return 'PT';
--
-- case 'csiso84portuguese2':
-- case 'isoir84':
-- case 'iso646pt2':
-- case 'pt2':
-- return 'PT2';
--
-- case 'cp154':
-- case 'csptcp154':
-- case 'cyrillicasian':
-- case 'pt154':
-- case 'ptcp154':
-- return 'PTCP154';
--
-- case 'scsu':
-- return 'SCSU';
--
-- case 'csiso10swedish':
-- case 'fi':
-- case 'isoir10':
-- case 'iso646fi':
-- case 'iso646se':
-- case 'se':
-- case 'sen850200b':
-- return 'SEN_850200_B';
--
-- case 'csiso11swedishfornames':
-- case 'isoir11':
-- case 'iso646se2':
-- case 'se2':
-- case 'sen850200c':
-- return 'SEN_850200_C';
--
-- case 'csshiftjis':
-- case 'mskanji':
-- case 'shiftjis':
-- return 'Shift_JIS';
--
-- case 'csiso102t617bit':
-- case 'isoir102':
-- case 't617bit':
-- return 'T.61-7bit';
--
-- case 'csiso103t618bit':
-- case 'isoir103':
-- case 't61':
-- case 't618bit':
-- return 'T.61-8bit';
--
-- case 'csiso128t101g2':
-- case 'isoir128':
-- case 't101g2':
-- return 'T.101-G2';
--
-- case 'cstscii':
-- case 'tscii':
-- return 'TSCII';
--
-- case 'csunicode11':
-- case 'unicode11':
-- return 'UNICODE-1-1';
--
-- case 'csunicode11utf7':
-- case 'unicode11utf7':
-- return 'UNICODE-1-1-UTF-7';
--
-- case 'csunknown8bit':
-- case 'unknown8bit':
-- return 'UNKNOWN-8BIT';
--
-- case 'ansix341968':
-- case 'ansix341986':
-- case 'ascii':
-- case 'cp367':
-- case 'csascii':
-- case 'ibm367':
-- case 'isoir6':
-- case 'iso646us':
-- case 'iso646irv1991':
-- case 'us':
-- case 'usascii':
-- return 'US-ASCII';
--
-- case 'csusdk':
-- case 'usdk':
-- return 'us-dk';
--
-- case 'utf7':
-- return 'UTF-7';
--
-- case 'utf8':
-- return 'UTF-8';
--
-- case 'utf16':
-- return 'UTF-16';
--
-- case 'utf16be':
-- return 'UTF-16BE';
--
-- case 'utf16le':
-- return 'UTF-16LE';
--
-- case 'utf32':
-- return 'UTF-32';
--
-- case 'utf32be':
-- return 'UTF-32BE';
--
-- case 'utf32le':
-- return 'UTF-32LE';
--
-- case 'csventurainternational':
-- case 'venturainternational':
-- return 'Ventura-International';
--
-- case 'csventuramath':
-- case 'venturamath':
-- return 'Ventura-Math';
--
-- case 'csventuraus':
-- case 'venturaus':
-- return 'Ventura-US';
--
-- case 'csiso70videotexsupp1':
-- case 'isoir70':
-- case 'videotexsuppl':
-- return 'videotex-suppl';
--
-- case 'csviqr':
-- case 'viqr':
-- return 'VIQR';
--
-- case 'csviscii':
-- case 'viscii':
-- return 'VISCII';
--
-- case 'cswindows31j':
-- case 'windows31j':
-- return 'Windows-31J';
--
-- case 'iso885911':
-- case 'tis620':
-- return 'Windows-874';
--
-- case 'cseuckr':
-- case 'euckr':
-- case 'windows949':
-- case 'csksc56011987':
-- case 'isoir149':
-- case 'korean':
-- case 'ksc5601':
-- case 'ksc56011987':
-- case 'ksc56011989':
-- return 'Windows-949';
--
-- case 'windows1250':
-- return 'windows-1250';
--
-- case 'windows1251':
-- return 'windows-1251';
--
-- case 'cp819':
-- case 'csisolatin1':
-- case 'ibm819':
-- case 'iso88591':
-- case 'isoir100':
-- case 'iso885911987':
-- case 'l1':
-- case 'latin1':
-- case 'windows1252':
-- return 'Windows-1252';
--
-- case 'windows1252':
-- return 'windows-1252';
--
-- case 'windows1253':
-- return 'windows-1253';
--
-- case 'csisolatin5':
-- case 'iso88599':
-- case 'isoir148':
-- case 'iso885991989':
-- case 'l5':
-- case 'latin5':
-- case 'windows1254':
-- return 'Windows-1254';
--
-- case 'windows1254':
-- return 'windows-1254';
--
-- case 'windows1255':
-- return 'windows-1255';
--
-- case 'windows1256':
-- return 'windows-1256';
--
-- case 'windows1257':
-- return 'windows-1257';
--
-- case 'windows1258':
-- return 'windows-1258';
--
-- default:
-- return $charset;
-- }
-- }
--
-- function get_curl_version()
-- {
-- if (is_array($curl = curl_version()))
-- {
-- $curl = $curl['version'];
-- }
-- elseif (substr($curl, 0, 5) == 'curl/')
-- {
-- $curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5));
-- }
-- elseif (substr($curl, 0, 8) == 'libcurl/')
-- {
-- $curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8));
-- }
-- else
-- {
-- $curl = 0;
-- }
-- return $curl;
-- }
--
-- function is_subclass_of($class1, $class2)
-- {
-- if (func_num_args() != 2)
-- {
-- trigger_error('Wrong parameter count for SimplePie_Misc::is_subclass_of()', E_USER_WARNING);
-- }
-- elseif (version_compare(PHP_VERSION, '5.0.3', '>=') || is_object($class1))
-- {
-- return is_subclass_of($class1, $class2);
-- }
-- elseif (is_string($class1) && is_string($class2))
-- {
-- if (class_exists($class1))
-- {
-- if (class_exists($class2))
-- {
-- $class2 = strtolower($class2);
-- while ($class1 = strtolower(get_parent_class($class1)))
-- {
-- if ($class1 == $class2)
-- {
-- return true;
-- }
-- }
-- }
-- }
-- else
-- {
-- trigger_error('Unknown class passed as parameter', E_USER_WARNNG);
-- }
-- }
-- return false;
-- }
--
-- /**
-- * Strip HTML comments
-- *
-- * @access public
-- * @param string $data Data to strip comments from
-- * @return string Comment stripped string
-- */
-- function strip_comments($data)
-- {
-- $output = '';
-- while (($start = strpos($data, '<!--')) !== false)
-- {
-- $output .= substr($data, 0, $start);
-- if (($end = strpos($data, '-->', $start)) !== false)
-- {
-- $data = substr_replace($data, '', 0, $end + 3);
-- }
-- else
-- {
-- $data = '';
-- }
-- }
-- return $output . $data;
-- }
--
-- function parse_date($dt)
-- {
-- $parser = SimplePie_Parse_Date::get();
-- return $parser->parse($dt);
-- }
--
-- /**
-- * Decode HTML entities
-- *
-- * @static
-- * @access public
-- * @param string $data Input data
-- * @return string Output data
-- */
-- function entities_decode($data)
-- {
-- $decoder = new SimplePie_Decode_HTML_Entities($data);
-- return $decoder->parse();
-- }
--
-- /**
-- * Remove RFC822 comments
-- *
-- * @access public
-- * @param string $data Data to strip comments from
-- * @return string Comment stripped string
-- */
-- function uncomment_rfc822($string)
-- {
-- $string = (string) $string;
-- $position = 0;
-- $length = strlen($string);
-- $depth = 0;
--
-- $output = '';
--
-- while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-- {
-- $output .= substr($string, $position, $pos - $position);
-- $position = $pos + 1;
-- if ($string[$pos - 1] !== '\\')
-- {
-- $depth++;
-- while ($depth && $position < $length)
-- {
-- $position += strcspn($string, '()', $position);
-- if ($string[$position - 1] === '\\')
-- {
-- $position++;
-- continue;
-- }
-- elseif (isset($string[$position]))
-- {
-- switch ($string[$position])
-- {
-- case '(':
-- $depth++;
-- break;
--
-- case ')':
-- $depth--;
-- break;
-- }
-- $position++;
-- }
-- else
-- {
-- break;
-- }
-- }
-- }
-- else
-- {
-- $output .= '(';
-- }
-- }
-- $output .= substr($string, $position);
--
-- return $output;
-- }
--
-- function parse_mime($mime)
-- {
-- if (($pos = strpos($mime, ';')) === false)
-- {
-- return trim($mime);
-- }
-- else
-- {
-- return trim(substr($mime, 0, $pos));
-- }
-- }
--
-- function htmlspecialchars_decode($string, $quote_style)
-- {
-- if (function_exists('htmlspecialchars_decode'))
-- {
-- return htmlspecialchars_decode($string, $quote_style);
-- }
-- else
-- {
-- return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style)));
-- }
-- }
--
-- function atom_03_construct_type($attribs)
-- {
-- if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) == 'base64'))
-- {
-- $mode = SIMPLEPIE_CONSTRUCT_BASE64;
-- }
-- else
-- {
-- $mode = SIMPLEPIE_CONSTRUCT_NONE;
-- }
-- if (isset($attribs['']['type']))
-- {
-- switch (strtolower(trim($attribs['']['type'])))
-- {
-- case 'text':
-- case 'text/plain':
-- return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
--
-- case 'html':
-- case 'text/html':
-- return SIMPLEPIE_CONSTRUCT_HTML | $mode;
--
-- case 'xhtml':
-- case 'application/xhtml+xml':
-- return SIMPLEPIE_CONSTRUCT_XHTML | $mode;
--
-- default:
-- return SIMPLEPIE_CONSTRUCT_NONE | $mode;
-- }
-- }
-- else
-- {
-- return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-- }
-- }
--
-- static function atom_10_construct_type($attribs)
-- {
-- if (isset($attribs['']['type']))
-- {
-- switch (strtolower(trim($attribs['']['type'])))
-- {
-- case 'text':
-- return SIMPLEPIE_CONSTRUCT_TEXT;
--
-- case 'html':
-- return SIMPLEPIE_CONSTRUCT_HTML;
--
-- case 'xhtml':
-- return SIMPLEPIE_CONSTRUCT_XHTML;
--
-- default:
-- return SIMPLEPIE_CONSTRUCT_NONE;
-- }
-- }
-- return SIMPLEPIE_CONSTRUCT_TEXT;
-- }
--
-- function atom_10_content_construct_type($attribs)
-- {
-- if (isset($attribs['']['type']))
-- {
-- $type = strtolower(trim($attribs['']['type']));
-- switch ($type)
-- {
-- case 'text':
-- return SIMPLEPIE_CONSTRUCT_TEXT;
--
-- case 'html':
-- return SIMPLEPIE_CONSTRUCT_HTML;
--
-- case 'xhtml':
-- return SIMPLEPIE_CONSTRUCT_XHTML;
-- }
-- if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) == 'text/')
-- {
-- return SIMPLEPIE_CONSTRUCT_NONE;
-- }
-- else
-- {
-- return SIMPLEPIE_CONSTRUCT_BASE64;
-- }
-- }
-- else
-- {
-- return SIMPLEPIE_CONSTRUCT_TEXT;
-- }
-- }
--
-- static function is_isegment_nz_nc($string)
-- {
-- return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
-- }
--
-- function space_seperated_tokens($string)
-- {
-- $space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
-- $string_length = strlen($string);
--
-- $position = strspn($string, $space_characters);
-- $tokens = array();
--
-- while ($position < $string_length)
-- {
-- $len = strcspn($string, $space_characters, $position);
-- $tokens[] = substr($string, $position, $len);
-- $position += $len;
-- $position += strspn($string, $space_characters, $position);
-- }
--
-- return $tokens;
-- }
--
-- function array_unique($array)
-- {
-- if (version_compare(PHP_VERSION, '5.2', '>='))
-- {
-- return array_unique($array);
-- }
-- else
-- {
-- $array = (array) $array;
-- $new_array = array();
-- $new_array_strings = array();
-- foreach ($array as $key => $value)
-- {
-- if (is_object($value))
-- {
-- if (method_exists($value, '__toString'))
-- {
-- $cmp = $value->__toString();
-- }
-- else
-- {
-- trigger_error('Object of class ' . get_class($value) . ' could not be converted to string', E_USER_ERROR);
-- }
-- }
-- elseif (is_array($value))
-- {
-- $cmp = (string) reset($value);
-- }
-- else
-- {
-- $cmp = (string) $value;
-- }
-- if (!in_array($cmp, $new_array_strings))
-- {
-- $new_array[$key] = $value;
-- $new_array_strings[] = $cmp;
-- }
-- }
-- return $new_array;
-- }
-- }
--
-- /**
-- * Converts a unicode codepoint to a UTF-8 character
-- *
-- * @static
-- * @access public
-- * @param int $codepoint Unicode codepoint
-- * @return string UTF-8 character
-- */
-- function codepoint_to_utf8($codepoint)
-- {
-- static $cache = array();
-- $codepoint = (int) $codepoint;
-- if (isset($cache[$codepoint]))
-- {
-- return $cache[$codepoint];
-- }
-- elseif ($codepoint < 0)
-- {
-- return $cache[$codepoint] = false;
-- }
-- else if ($codepoint <= 0x7f)
-- {
-- return $cache[$codepoint] = chr($codepoint);
-- }
-- else if ($codepoint <= 0x7ff)
-- {
-- return $cache[$codepoint] = chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f));
-- }
-- else if ($codepoint <= 0xffff)
-- {
-- return $cache[$codepoint] = chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-- }
-- else if ($codepoint <= 0x10ffff)
-- {
-- return $cache[$codepoint] = chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-- }
-- else
-- {
-- // U+FFFD REPLACEMENT CHARACTER
-- return $cache[$codepoint] = "\xEF\xBF\xBD";
-- }
-- }
--
-- /**
-- * Re-implementation of PHP 5's stripos()
-- *
-- * Returns the numeric position of the first occurrence of needle in the
-- * haystack string.
-- *
-- * @static
-- * @access string
-- * @param object $haystack
-- * @param string $needle Note that the needle may be a string of one or more
-- * characters. If needle is not a string, it is converted to an integer
-- * and applied as the ordinal value of a character.
-- * @param int $offset The optional offset parameter allows you to specify which
-- * character in haystack to start searching. The position returned is still
-- * relative to the beginning of haystack.
-- * @return bool If needle is not found, stripos() will return boolean false.
-- */
-- function stripos($haystack, $needle, $offset = 0)
-- {
-- if (function_exists('stripos'))
-- {
-- return stripos($haystack, $needle, $offset);
-- }
-- else
-- {
-- if (is_string($needle))
-- {
-- $needle = strtolower($needle);
-- }
-- elseif (is_int($needle) || is_bool($needle) || is_double($needle))
-- {
-- $needle = strtolower(chr($needle));
-- }
-- else
-- {
-- trigger_error('needle is not a string or an integer', E_USER_WARNING);
-- return false;
-- }
--
-- return strpos(strtolower($haystack), $needle, $offset);
-- }
-- }
--
-- /**
-- * Similar to parse_str()
-- *
-- * Returns an associative array of name/value pairs, where the value is an
-- * array of values that have used the same name
-- *
-- * @static
-- * @access string
-- * @param string $str The input string.
-- * @return array
-- */
-- function parse_str($str)
-- {
-- $return = array();
-- $str = explode('&', $str);
--
-- foreach ($str as $section)
-- {
-- if (strpos($section, '=') !== false)
-- {
-- list($name, $value) = explode('=', $section, 2);
-- $return[urldecode($name)][] = urldecode($value);
-- }
-- else
-- {
-- $return[urldecode($section)][] = null;
-- }
-- }
--
-- return $return;
-- }
--
-- /**
-- * Detect XML encoding, as per XML 1.0 Appendix F.1
-- *
-- * @todo Add support for EBCDIC
-- * @param string $data XML data
-- * @return array Possible encodings
-- */
-- static function xml_encoding($data)
-- {
-- // UTF-32 Big Endian BOM
-- if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-- {
-- $encoding[] = 'UTF-32BE';
-- }
-- // UTF-32 Little Endian BOM
-- elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-- {
-- $encoding[] = 'UTF-32LE';
-- }
-- // UTF-16 Big Endian BOM
-- elseif (substr($data, 0, 2) === "\xFE\xFF")
-- {
-- $encoding[] = 'UTF-16BE';
-- }
-- // UTF-16 Little Endian BOM
-- elseif (substr($data, 0, 2) === "\xFF\xFE")
-- {
-- $encoding[] = 'UTF-16LE';
-- }
-- // UTF-8 BOM
-- elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-- {
-- $encoding[] = 'UTF-8';
-- }
-- // UTF-32 Big Endian Without BOM
-- elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
-- {
-- if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
-- {
-- $parser = new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8'));
-- if ($parser->parse())
-- {
-- $encoding[] = $parser->encoding;
-- }
-- }
-- $encoding[] = 'UTF-32BE';
-- }
-- // UTF-32 Little Endian Without BOM
-- elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
-- {
-- if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
-- {
-- $parser = new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8'));
-- if ($parser->parse())
-- {
-- $encoding[] = $parser->encoding;
-- }
-- }
-- $encoding[] = 'UTF-32LE';
-- }
-- // UTF-16 Big Endian Without BOM
-- elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
-- {
-- if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
-- {
-- $parser = new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8'));
-- if ($parser->parse())
-- {
-- $encoding[] = $parser->encoding;
-- }
-- }
-- $encoding[] = 'UTF-16BE';
-- }
-- // UTF-16 Little Endian Without BOM
-- elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
-- {
-- if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
-- {
-- $parser = new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8'));
-- if ($parser->parse())
-- {
-- $encoding[] = $parser->encoding;
-- }
-- }
-- $encoding[] = 'UTF-16LE';
-- }
-- // US-ASCII (or superset)
-- elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
-- {
-- if ($pos = strpos($data, "\x3F\x3E"))
-- {
-- $parser = new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5));
-- if ($parser->parse())
-- {
-- $encoding[] = $parser->encoding;
-- }
-- }
-- $encoding[] = 'UTF-8';
-- }
-- // Fallback to UTF-8
-- else
-- {
-- $encoding[] = 'UTF-8';
-- }
-- return $encoding;
-- }
--}
--
--/**
-- * Decode HTML Entities
-- *
-- * This implements HTML5 as of revision 967 (2007-06-28)
-- *
-- * @package SimplePie
-- */
--class SimplePie_Decode_HTML_Entities
--{
-- /**
-- * Data to be parsed
-- *
-- * @access private
-- * @var string
-- */
-- var $data = '';
--
-- /**
-- * Currently consumed bytes
-- *
-- * @access private
-- * @var string
-- */
-- var $consumed = '';
--
-- /**
-- * Position of the current byte being parsed
-- *
-- * @access private
-- * @var int
-- */
-- var $position = 0;
--
-- /**
-- * Create an instance of the class with the input data
-- *
-- * @access public
-- * @param string $data Input data
-- */
-- function SimplePie_Decode_HTML_Entities($data)
-- {
-- $this->data = $data;
-- }
--
-- /**
-- * Parse the input data
-- *
-- * @access public
-- * @return string Output data
-- */
-- function parse()
-- {
-- while (($this->position = strpos($this->data, '&', $this->position)) !== false)
-- {
-- $this->consume();
-- $this->entity();
-- $this->consumed = '';
-- }
-- return $this->data;
-- }
--
-- /**
-- * Consume the next byte
-- *
-- * @access private
-- * @return mixed The next byte, or false, if there is no more data
-- */
-- function consume()
-- {
-- if (isset($this->data[$this->position]))
-- {
-- $this->consumed .= $this->data[$this->position];
-- return $this->data[$this->position++];
-- }
-- else
-- {
-- $this->consumed = false;
-- return false;
-- }
-- }
--
-- /**
-- * Consume a range of characters
-- *
-- * @access private
-- * @param string $chars Characters to consume
-- * @return mixed A series of characters that match the range, or false
-- */
-- function consume_range($chars)
-- {
-- if ($len = strspn($this->data, $chars, $this->position))
-- {
-- $data = substr($this->data, $this->position, $len);
-- $this->consumed .= $data;
-- $this->position += $len;
-- return $data;
-- }
-- else
-- {
-- $this->consumed = false;
-- return false;
-- }
-- }
--
-- /**
-- * Unconsume one byte
-- *
-- * @access private
-- */
-- function unconsume()
-- {
-- $this->consumed = substr($this->consumed, 0, -1);
-- $this->position--;
-- }
--
-- /**
-- * Decode an entity
-- *
-- * @access private
-- */
-- function entity()
-- {
-- switch ($this->consume())
-- {
-- case "\x09":
-- case "\x0A":
-- case "\x0B":
-- case "\x0B":
-- case "\x0C":
-- case "\x20":
-- case "\x3C":
-- case "\x26":
-- case false:
-- break;
--
-- case "\x23":
-- switch ($this->consume())
-- {
-- case "\x78":
-- case "\x58":
-- $range = '0123456789ABCDEFabcdef';
-- $hex = true;
-- break;
--
-- default:
-- $range = '0123456789';
-- $hex = false;
-- $this->unconsume();
-- break;
-- }
--
-- if ($codepoint = $this->consume_range($range))
-- {
-- static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8");
--
-- if ($hex)
-- {
-- $codepoint = hexdec($codepoint);
-- }
-- else
-- {
-- $codepoint = intval($codepoint);
-- }
--
-- if (isset($windows_1252_specials[$codepoint]))
-- {
-- $replacement = $windows_1252_specials[$codepoint];
-- }
-- else
-- {
-- $replacement = SimplePie_Misc::codepoint_to_utf8($codepoint);
-- }
--
-- if ($this->consume() != ';')
-- {
-- $this->unconsume();
-- }
--
-- $consumed_length = strlen($this->consumed);
-- $this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length);
-- $this->position += strlen($replacement) - $consumed_length;
-- }
-- break;
--
-- default:
-- static $entities = array('Aacute' => "\xC3\x81", 'aacute' => "\xC3\xA1", 'Aacute;' => "\xC3\x81", 'aacute;' => "\xC3\xA1", 'Acirc' => "\xC3\x82", 'acirc' => "\xC3\xA2", 'Acirc;' => "\xC3\x82", 'acirc;' => "\xC3\xA2", 'acute' => "\xC2\xB4", 'acute;' => "\xC2\xB4", 'AElig' => "\xC3\x86", 'aelig' => "\xC3\xA6", 'AElig;' => "\xC3\x86", 'aelig;' => "\xC3\xA6", 'Agrave' => "\xC3\x80", 'agrave' => "\xC3\xA0", 'Agrave;' => "\xC3\x80", 'agrave;' => "\xC3\xA0", 'alefsym;' => "\xE2\x84\xB5", 'Alpha;' => "\xCE\x91", 'alpha;' => "\xCE\xB1", 'AMP' => "\x26", 'amp' => "\x26", 'AMP;' => "\x26", 'amp;' => "\x26", 'and;' => "\xE2\x88\xA7", 'ang;' => "\xE2\x88\xA0", 'apos;' => "\x27", 'Aring' => "\xC3\x85", 'aring' => "\xC3\xA5", 'Aring;' => "\xC3\x85", 'aring;' => "\xC3\xA5", 'asymp;' => "\xE2\x89\x88", 'Atilde' => "\xC3\x83", 'atilde' => "\xC3\xA3", 'Atilde;' => "\xC3\x83", 'atilde;' => "\xC3\xA3", 'Auml' => "\xC3\x84", 'auml' => "\xC3\xA4", 'Auml;' => "\xC3\x84", 'auml;' => "\xC3\xA4", 'bdquo;' => "\xE2\x80\x9E", 'Beta;' => "\xCE\x92", 'beta;' => "\xCE\xB2", 'brvbar' => "\xC2\xA6", 'brvbar;' => "\xC2\xA6", 'bull;' => "\xE2\x80\xA2", 'cap;' => "\xE2\x88\xA9", 'Ccedil' => "\xC3\x87", 'ccedil' => "\xC3\xA7", 'Ccedil;' => "\xC3\x87", 'ccedil;' => "\xC3\xA7", 'cedil' => "\xC2\xB8", 'cedil;' => "\xC2\xB8", 'cent' => "\xC2\xA2", 'cent;' => "\xC2\xA2", 'Chi;' => "\xCE\xA7", 'chi;' => "\xCF\x87", 'circ;' => "\xCB\x86", 'clubs;' => "\xE2\x99\xA3", 'cong;' => "\xE2\x89\x85", 'COPY' => "\xC2\xA9", 'copy' => "\xC2\xA9", 'COPY;' => "\xC2\xA9", 'copy;' => "\xC2\xA9", 'crarr;' => "\xE2\x86\xB5", 'cup;' => "\xE2\x88\xAA", 'curren' => "\xC2\xA4", 'curren;' => "\xC2\xA4", 'Dagger;' => "\xE2\x80\xA1", 'dagger;' => "\xE2\x80\xA0", 'dArr;' => "\xE2\x87\x93", 'darr;' => "\xE2\x86\x93", 'deg' => "\xC2\xB0", 'deg;' => "\xC2\xB0", 'Delta;' => "\xCE\x94", 'delta;' => "\xCE\xB4", 'diams;' => "\xE2\x99\xA6", 'divide' => "\xC3\xB7", 'divide;' => "\xC3\xB7", 'Eacute' => "\xC3\x89", 'eacute' => "\xC3\xA9", 'Eacute;' => "\xC3\x89", 'eacute;' => "\xC3\xA9", 'Ecirc' => "\xC3\x8A", 'ecirc' => "\xC3\xAA", 'Ecirc;' => "\xC3\x8A", 'ecirc;' => "\xC3\xAA", 'Egrave' => "\xC3\x88", 'egrave' => "\xC3\xA8", 'Egrave;' => "\xC3\x88", 'egrave;' => "\xC3\xA8", 'empty;' => "\xE2\x88\x85", 'emsp;' => "\xE2\x80\x83", 'ensp;' => "\xE2\x80\x82", 'Epsilon;' => "\xCE\x95", 'epsilon;' => "\xCE\xB5", 'equiv;' => "\xE2\x89\xA1", 'Eta;' => "\xCE\x97", 'eta;' => "\xCE\xB7", 'ETH' => "\xC3\x90", 'eth' => "\xC3\xB0", 'ETH;' => "\xC3\x90", 'eth;' => "\xC3\xB0", 'Euml' => "\xC3\x8B", 'euml' => "\xC3\xAB", 'Euml;' => "\xC3\x8B", 'euml;' => "\xC3\xAB", 'euro;' => "\xE2\x82\xAC", 'exist;' => "\xE2\x88\x83", 'fnof;' => "\xC6\x92", 'forall;' => "\xE2\x88\x80", 'frac12' => "\xC2\xBD", 'frac12;' => "\xC2\xBD", 'frac14' => "\xC2\xBC", 'frac14;' => "\xC2\xBC", 'frac34' => "\xC2\xBE", 'frac34;' => "\xC2\xBE", 'frasl;' => "\xE2\x81\x84", 'Gamma;' => "\xCE\x93", 'gamma;' => "\xCE\xB3", 'ge;' => "\xE2\x89\xA5", 'GT' => "\x3E", 'gt' => "\x3E", 'GT;' => "\x3E", 'gt;' => "\x3E", 'hArr;' => "\xE2\x87\x94", 'harr;' => "\xE2\x86\x94", 'hearts;' => "\xE2\x99\xA5", 'hellip;' => "\xE2\x80\xA6", 'Iacute' => "\xC3\x8D", 'iacute' => "\xC3\xAD", 'Iacute;' => "\xC3\x8D", 'iacute;' => "\xC3\xAD", 'Icirc' => "\xC3\x8E", 'icirc' => "\xC3\xAE", 'Icirc;' => "\xC3\x8E", 'icirc;' => "\xC3\xAE", 'iexcl' => "\xC2\xA1", 'iexcl;' => "\xC2\xA1", 'Igrave' => "\xC3\x8C", 'igrave' => "\xC3\xAC", 'Igrave;' => "\xC3\x8C", 'igrave;' => "\xC3\xAC", 'image;' => "\xE2\x84\x91", 'infin;' => "\xE2\x88\x9E", 'int;' => "\xE2\x88\xAB", 'Iota;' => "\xCE\x99", 'iota;' => "\xCE\xB9", 'iquest' => "\xC2\xBF", 'iquest;' => "\xC2\xBF", 'isin;' => "\xE2\x88\x88", 'Iuml' => "\xC3\x8F", 'iuml' => "\xC3\xAF", 'Iuml;' => "\xC3\x8F", 'iuml;' => "\xC3\xAF", 'Kappa;' => "\xCE\x9A", 'kappa;' => "\xCE\xBA", 'Lambda;' => "\xCE\x9B", 'lambda;' => "\xCE\xBB", 'lang;' => "\xE3\x80\x88", 'laquo' => "\xC2\xAB", 'laquo;' => "\xC2\xAB", 'lArr;' => "\xE2\x87\x90", 'larr;' => "\xE2\x86\x90", 'lceil;' => "\xE2\x8C\x88", 'ldquo;' => "\xE2\x80\x9C", 'le;' => "\xE2\x89\xA4", 'lfloor;' => "\xE2\x8C\x8A", 'lowast;' => "\xE2\x88\x97", 'loz;' => "\xE2\x97\x8A", 'lrm;' => "\xE2\x80\x8E", 'lsaquo;' => "\xE2\x80\xB9", 'lsquo;' => "\xE2\x80\x98", 'LT' => "\x3C", 'lt' => "\x3C", 'LT;' => "\x3C", 'lt;' => "\x3C", 'macr' => "\xC2\xAF", 'macr;' => "\xC2\xAF", 'mdash;' => "\xE2\x80\x94", 'micro' => "\xC2\xB5", 'micro;' => "\xC2\xB5", 'middot' => "\xC2\xB7", 'middot;' => "\xC2\xB7", 'minus;' => "\xE2\x88\x92", 'Mu;' => "\xCE\x9C", 'mu;' => "\xCE\xBC", 'nabla;' => "\xE2\x88\x87", 'nbsp' => "\xC2\xA0", 'nbsp;' => "\xC2\xA0", 'ndash;' => "\xE2\x80\x93", 'ne;' => "\xE2\x89\xA0", 'ni;' => "\xE2\x88\x8B", 'not' => "\xC2\xAC", 'not;' => "\xC2\xAC", 'notin;' => "\xE2\x88\x89", 'nsub;' => "\xE2\x8A\x84", 'Ntilde' => "\xC3\x91", 'ntilde' => "\xC3\xB1", 'Ntilde;' => "\xC3\x91", 'ntilde;' => "\xC3\xB1", 'Nu;' => "\xCE\x9D", 'nu;' => "\xCE\xBD", 'Oacute' => "\xC3\x93", 'oacute' => "\xC3\xB3", 'Oacute;' => "\xC3\x93", 'oacute;' => "\xC3\xB3", 'Ocirc' => "\xC3\x94", 'ocirc' => "\xC3\xB4", 'Ocirc;' => "\xC3\x94", 'ocirc;' => "\xC3\xB4", 'OElig;' => "\xC5\x92", 'oelig;' => "\xC5\x93", 'Ograve' => "\xC3\x92", 'ograve' => "\xC3\xB2", 'Ograve;' => "\xC3\x92", 'ograve;' => "\xC3\xB2", 'oline;' => "\xE2\x80\xBE", 'Omega;' => "\xCE\xA9", 'omega;' => "\xCF\x89", 'Omicron;' => "\xCE\x9F", 'omicron;' => "\xCE\xBF", 'oplus;' => "\xE2\x8A\x95", 'or;' => "\xE2\x88\xA8", 'ordf' => "\xC2\xAA", 'ordf;' => "\xC2\xAA", 'ordm' => "\xC2\xBA", 'ordm;' => "\xC2\xBA", 'Oslash' => "\xC3\x98", 'oslash' => "\xC3\xB8", 'Oslash;' => "\xC3\x98", 'oslash;' => "\xC3\xB8", 'Otilde' => "\xC3\x95", 'otilde' => "\xC3\xB5", 'Otilde;' => "\xC3\x95", 'otilde;' => "\xC3\xB5", 'otimes;' => "\xE2\x8A\x97", 'Ouml' => "\xC3\x96", 'ouml' => "\xC3\xB6", 'Ouml;' => "\xC3\x96", 'ouml;' => "\xC3\xB6", 'para' => "\xC2\xB6", 'para;' => "\xC2\xB6", 'part;' => "\xE2\x88\x82", 'permil;' => "\xE2\x80\xB0", 'perp;' => "\xE2\x8A\xA5", 'Phi;' => "\xCE\xA6", 'phi;' => "\xCF\x86", 'Pi;' => "\xCE\xA0", 'pi;' => "\xCF\x80", 'piv;' => "\xCF\x96", 'plusmn' => "\xC2\xB1", 'plusmn;' => "\xC2\xB1", 'pound' => "\xC2\xA3", 'pound;' => "\xC2\xA3", 'Prime;' => "\xE2\x80\xB3", 'prime;' => "\xE2\x80\xB2", 'prod;' => "\xE2\x88\x8F", 'prop;' => "\xE2\x88\x9D", 'Psi;' => "\xCE\xA8", 'psi;' => "\xCF\x88", 'QUOT' => "\x22", 'quot' => "\x22", 'QUOT;' => "\x22", 'quot;' => "\x22", 'radic;' => "\xE2\x88\x9A", 'rang;' => "\xE3\x80\x89", 'raquo' => "\xC2\xBB", 'raquo;' => "\xC2\xBB", 'rArr;' => "\xE2\x87\x92", 'rarr;' => "\xE2\x86\x92", 'rceil;' => "\xE2\x8C\x89", 'rdquo;' => "\xE2\x80\x9D", 'real;' => "\xE2\x84\x9C", 'REG' => "\xC2\xAE", 'reg' => "\xC2\xAE", 'REG;' => "\xC2\xAE", 'reg;' => "\xC2\xAE", 'rfloor;' => "\xE2\x8C\x8B", 'Rho;' => "\xCE\xA1", 'rho;' => "\xCF\x81", 'rlm;' => "\xE2\x80\x8F", 'rsaquo;' => "\xE2\x80\xBA", 'rsquo;' => "\xE2\x80\x99", 'sbquo;' => "\xE2\x80\x9A", 'Scaron;' => "\xC5\xA0", 'scaron;' => "\xC5\xA1", 'sdot;' => "\xE2\x8B\x85", 'sect' => "\xC2\xA7", 'sect;' => "\xC2\xA7", 'shy' => "\xC2\xAD", 'shy;' => "\xC2\xAD", 'Sigma;' => "\xCE\xA3", 'sigma;' => "\xCF\x83", 'sigmaf;' => "\xCF\x82", 'sim;' => "\xE2\x88\xBC", 'spades;' => "\xE2\x99\xA0", 'sub;' => "\xE2\x8A\x82", 'sube;' => "\xE2\x8A\x86", 'sum;' => "\xE2\x88\x91", 'sup;' => "\xE2\x8A\x83", 'sup1' => "\xC2\xB9", 'sup1;' => "\xC2\xB9", 'sup2' => "\xC2\xB2", 'sup2;' => "\xC2\xB2", 'sup3' => "\xC2\xB3", 'sup3;' => "\xC2\xB3", 'supe;' => "\xE2\x8A\x87", 'szlig' => "\xC3\x9F", 'szlig;' => "\xC3\x9F", 'Tau;' => "\xCE\xA4", 'tau;' => "\xCF\x84", 'there4;' => "\xE2\x88\xB4", 'Theta;' => "\xCE\x98", 'theta;' => "\xCE\xB8", 'thetasym;' => "\xCF\x91", 'thinsp;' => "\xE2\x80\x89", 'THORN' => "\xC3\x9E", 'thorn' => "\xC3\xBE", 'THORN;' => "\xC3\x9E", 'thorn;' => "\xC3\xBE", 'tilde;' => "\xCB\x9C", 'times' => "\xC3\x97", 'times;' => "\xC3\x97", 'TRADE;' => "\xE2\x84\xA2", 'trade;' => "\xE2\x84\xA2", 'Uacute' => "\xC3\x9A", 'uacute' => "\xC3\xBA", 'Uacute;' => "\xC3\x9A", 'uacute;' => "\xC3\xBA", 'uArr;' => "\xE2\x87\x91", 'uarr;' => "\xE2\x86\x91", 'Ucirc' => "\xC3\x9B", 'ucirc' => "\xC3\xBB", 'Ucirc;' => "\xC3\x9B", 'ucirc;' => "\xC3\xBB", 'Ugrave' => "\xC3\x99", 'ugrave' => "\xC3\xB9", 'Ugrave;' => "\xC3\x99", 'ugrave;' => "\xC3\xB9", 'uml' => "\xC2\xA8", 'uml;' => "\xC2\xA8", 'upsih;' => "\xCF\x92", 'Upsilon;' => "\xCE\xA5", 'upsilon;' => "\xCF\x85", 'Uuml' => "\xC3\x9C", 'uuml' => "\xC3\xBC", 'Uuml;' => "\xC3\x9C", 'uuml;' => "\xC3\xBC", 'weierp;' => "\xE2\x84\x98", 'Xi;' => "\xCE\x9E", 'xi;' => "\xCE\xBE", 'Yacute' => "\xC3\x9D", 'yacute' => "\xC3\xBD", 'Yacute;' => "\xC3\x9D", 'yacute;' => "\xC3\xBD", 'yen' => "\xC2\xA5", 'yen;' => "\xC2\xA5", 'yuml' => "\xC3\xBF", 'Yuml;' => "\xC5\xB8", 'yuml;' => "\xC3\xBF", 'Zeta;' => "\xCE\x96", 'zeta;' => "\xCE\xB6", 'zwj;' => "\xE2\x80\x8D", 'zwnj;' => "\xE2\x80\x8C");
--
-- for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++)
-- {
-- $consumed = substr($this->consumed, 1);
-- if (isset($entities[$consumed]))
-- {
-- $match = $consumed;
-- }
-- }
--
-- if ($match !== null)
-- {
-- $this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
-- $this->position += strlen($entities[$match]) - strlen($consumed) - 1;
-- }
-- break;
-- }
-- }
--}
--
--/**
-- * Date Parser
-- *
-- * @package SimplePie
-- */
--class SimplePie_Parse_Date
--{
-- /**
-- * Input data
-- *
-- * @access protected
-- * @var string
-- */
-- var $date;
--
-- /**
-- * List of days, calendar day name => ordinal day number in the week
-- *
-- * @access protected
-- * @var array
-- */
-- var $day = array(
-- // English
-- 'mon' => 1,
-- 'monday' => 1,
-- 'tue' => 2,
-- 'tuesday' => 2,
-- 'wed' => 3,
-- 'wednesday' => 3,
-- 'thu' => 4,
-- 'thursday' => 4,
-- 'fri' => 5,
-- 'friday' => 5,
-- 'sat' => 6,
-- 'saturday' => 6,
-- 'sun' => 7,
-- 'sunday' => 7,
-- // Dutch
-- 'maandag' => 1,
-- 'dinsdag' => 2,
-- 'woensdag' => 3,
-- 'donderdag' => 4,
-- 'vrijdag' => 5,
-- 'zaterdag' => 6,
-- 'zondag' => 7,
-- // French
-- 'lundi' => 1,
-- 'mardi' => 2,
-- 'mercredi' => 3,
-- 'jeudi' => 4,
-- 'vendredi' => 5,
-- 'samedi' => 6,
-- 'dimanche' => 7,
-- // German
-- 'montag' => 1,
-- 'dienstag' => 2,
-- 'mittwoch' => 3,
-- 'donnerstag' => 4,
-- 'freitag' => 5,
-- 'samstag' => 6,
-- 'sonnabend' => 6,
-- 'sonntag' => 7,
-- // Italian
-- 'lunedì' => 1,
-- 'martedì' => 2,
-- 'mercoledì' => 3,
-- 'giovedì' => 4,
-- 'venerdì' => 5,
-- 'sabato' => 6,
-- 'domenica' => 7,
-- // Spanish
-- 'lunes' => 1,
-- 'martes' => 2,
-- 'miércoles' => 3,
-- 'jueves' => 4,
-- 'viernes' => 5,
-- 'sábado' => 6,
-- 'domingo' => 7,
-- // Finnish
-- 'maanantai' => 1,
-- 'tiistai' => 2,
-- 'keskiviikko' => 3,
-- 'torstai' => 4,
-- 'perjantai' => 5,
-- 'lauantai' => 6,
-- 'sunnuntai' => 7,
-- // Hungarian
-- 'hétfő' => 1,
-- 'kedd' => 2,
-- 'szerda' => 3,
-- 'csütörtok' => 4,
-- 'péntek' => 5,
-- 'szombat' => 6,
-- 'vasárnap' => 7,
-- // Greek
-- 'Δευ' => 1,
-- 'Τρι' => 2,
-- 'Τετ' => 3,
-- 'Πεμ' => 4,
-- 'Παρ' => 5,
-- 'Σαβ' => 6,
-- 'Κυρ' => 7,
-- );
--
-- /**
-- * List of months, calendar month name => calendar month number
-- *
-- * @access protected
-- * @var array
-- */
-- var $month = array(
-- // English
-- 'jan' => 1,
-- 'january' => 1,
-- 'feb' => 2,
-- 'february' => 2,
-- 'mar' => 3,
-- 'march' => 3,
-- 'apr' => 4,
-- 'april' => 4,
-- 'may' => 5,
-- // No long form of May
-- 'jun' => 6,
-- 'june' => 6,
-- 'jul' => 7,
-- 'july' => 7,
-- 'aug' => 8,
-- 'august' => 8,
-- 'sep' => 9,
-- 'september' => 8,
-- 'oct' => 10,
-- 'october' => 10,
-- 'nov' => 11,
-- 'november' => 11,
-- 'dec' => 12,
-- 'december' => 12,
-- // Dutch
-- 'januari' => 1,
-- 'februari' => 2,
-- 'maart' => 3,
-- 'april' => 4,
-- 'mei' => 5,
-- 'juni' => 6,
-- 'juli' => 7,
-- 'augustus' => 8,
-- 'september' => 9,
-- 'oktober' => 10,
-- 'november' => 11,
-- 'december' => 12,
-- // French
-- 'janvier' => 1,
-- 'février' => 2,
-- 'mars' => 3,
-- 'avril' => 4,
-- 'mai' => 5,
-- 'juin' => 6,
-- 'juillet' => 7,
-- 'août' => 8,
-- 'septembre' => 9,
-- 'octobre' => 10,
-- 'novembre' => 11,
-- 'décembre' => 12,
-- // German
-- 'januar' => 1,
-- 'februar' => 2,
-- 'märz' => 3,
-- 'april' => 4,
-- 'mai' => 5,
-- 'juni' => 6,
-- 'juli' => 7,
-- 'august' => 8,
-- 'september' => 9,
-- 'oktober' => 10,
-- 'november' => 11,
-- 'dezember' => 12,
-- // Italian
-- 'gennaio' => 1,
-- 'febbraio' => 2,
-- 'marzo' => 3,
-- 'aprile' => 4,
-- 'maggio' => 5,
-- 'giugno' => 6,
-- 'luglio' => 7,
-- 'agosto' => 8,
-- 'settembre' => 9,
-- 'ottobre' => 10,
-- 'novembre' => 11,
-- 'dicembre' => 12,
-- // Spanish
-- 'enero' => 1,
-- 'febrero' => 2,
-- 'marzo' => 3,
-- 'abril' => 4,
-- 'mayo' => 5,
-- 'junio' => 6,
-- 'julio' => 7,
-- 'agosto' => 8,
-- 'septiembre' => 9,
-- 'setiembre' => 9,
-- 'octubre' => 10,
-- 'noviembre' => 11,
-- 'diciembre' => 12,
-- // Finnish
-- 'tammikuu' => 1,
-- 'helmikuu' => 2,
-- 'maaliskuu' => 3,
-- 'huhtikuu' => 4,
-- 'toukokuu' => 5,
-- 'kesäkuu' => 6,
-- 'heinäkuu' => 7,
-- 'elokuu' => 8,
-- 'suuskuu' => 9,
-- 'lokakuu' => 10,
-- 'marras' => 11,
-- 'joulukuu' => 12,
-- // Hungarian
-- 'január' => 1,
-- 'február' => 2,
-- 'március' => 3,
-- 'április' => 4,
-- 'május' => 5,
-- 'június' => 6,
-- 'július' => 7,
-- 'augusztus' => 8,
-- 'szeptember' => 9,
-- 'október' => 10,
-- 'november' => 11,
-- 'december' => 12,
-- // Greek
-- 'Ιαν' => 1,
-- 'Φεβ' => 2,
-- 'Μάώ' => 3,
-- 'Μαώ' => 3,
-- 'Απρ' => 4,
-- 'Μάι' => 5,
-- 'Μαϊ' => 5,
-- 'Μαι' => 5,
-- 'Ιούν' => 6,
-- 'Ιον' => 6,
-- 'Ιούλ' => 7,
-- 'Ιολ' => 7,
-- 'Αύγ' => 8,
-- 'Αυγ' => 8,
-- 'Σεπ' => 9,
-- 'Οκτ' => 10,
-- 'Νοέ' => 11,
-- 'Δεκ' => 12,
-- );
--
-- /**
-- * List of timezones, abbreviation => offset from UTC
-- *
-- * @access protected
-- * @var array
-- */
-- var $timezone = array(
-- 'ACDT' => 37800,
-- 'ACIT' => 28800,
-- 'ACST' => 34200,
-- 'ACT' => -18000,
-- 'ACWDT' => 35100,
-- 'ACWST' => 31500,
-- 'AEDT' => 39600,
-- 'AEST' => 36000,
-- 'AFT' => 16200,
-- 'AKDT' => -28800,
-- 'AKST' => -32400,
-- 'AMDT' => 18000,
-- 'AMT' => -14400,
-- 'ANAST' => 46800,
-- 'ANAT' => 43200,
-- 'ART' => -10800,
-- 'AZOST' => -3600,
-- 'AZST' => 18000,
-- 'AZT' => 14400,
-- 'BIOT' => 21600,
-- 'BIT' => -43200,
-- 'BOT' => -14400,
-- 'BRST' => -7200,
-- 'BRT' => -10800,
-- 'BST' => 3600,
-- 'BTT' => 21600,
-- 'CAST' => 18000,
-- 'CAT' => 7200,
-- 'CCT' => 23400,
-- 'CDT' => -18000,
-- 'CEDT' => 7200,
-- 'CET' => 3600,
-- 'CGST' => -7200,
-- 'CGT' => -10800,
-- 'CHADT' => 49500,
-- 'CHAST' => 45900,
-- 'CIST' => -28800,
-- 'CKT' => -36000,
-- 'CLDT' => -10800,
-- 'CLST' => -14400,
-- 'COT' => -18000,
-- 'CST' => -21600,
-- 'CVT' => -3600,
-- 'CXT' => 25200,
-- 'DAVT' => 25200,
-- 'DTAT' => 36000,
-- 'EADT' => -18000,
-- 'EAST' => -21600,
-- 'EAT' => 10800,
-- 'ECT' => -18000,
-- 'EDT' => -14400,
-- 'EEST' => 10800,
-- 'EET' => 7200,
-- 'EGT' => -3600,
-- 'EKST' => 21600,
-- 'EST' => -18000,
-- 'FJT' => 43200,
-- 'FKDT' => -10800,
-- 'FKST' => -14400,
-- 'FNT' => -7200,
-- 'GALT' => -21600,
-- 'GEDT' => 14400,
-- 'GEST' => 10800,
-- 'GFT' => -10800,
-- 'GILT' => 43200,
-- 'GIT' => -32400,
-- 'GST' => 14400,
-- 'GST' => -7200,
-- 'GYT' => -14400,
-- 'HAA' => -10800,
-- 'HAC' => -18000,
-- 'HADT' => -32400,
-- 'HAE' => -14400,
-- 'HAP' => -25200,
-- 'HAR' => -21600,
-- 'HAST' => -36000,
-- 'HAT' => -9000,
-- 'HAY' => -28800,
-- 'HKST' => 28800,
-- 'HMT' => 18000,
-- 'HNA' => -14400,
-- 'HNC' => -21600,
-- 'HNE' => -18000,
-- 'HNP' => -28800,
-- 'HNR' => -25200,
-- 'HNT' => -12600,
-- 'HNY' => -32400,
-- 'IRDT' => 16200,
-- 'IRKST' => 32400,
-- 'IRKT' => 28800,
-- 'IRST' => 12600,
-- 'JFDT' => -10800,
-- 'JFST' => -14400,
-- 'JST' => 32400,
-- 'KGST' => 21600,
-- 'KGT' => 18000,
-- 'KOST' => 39600,
-- 'KOVST' => 28800,
-- 'KOVT' => 25200,
-- 'KRAST' => 28800,
-- 'KRAT' => 25200,
-- 'KST' => 32400,
-- 'LHDT' => 39600,
-- 'LHST' => 37800,
-- 'LINT' => 50400,
-- 'LKT' => 21600,
-- 'MAGST' => 43200,
-- 'MAGT' => 39600,
-- 'MAWT' => 21600,
-- 'MDT' => -21600,
-- 'MESZ' => 7200,
-- 'MEZ' => 3600,
-- 'MHT' => 43200,
-- 'MIT' => -34200,
-- 'MNST' => 32400,
-- 'MSDT' => 14400,
-- 'MSST' => 10800,
-- 'MST' => -25200,
-- 'MUT' => 14400,
-- 'MVT' => 18000,
-- 'MYT' => 28800,
-- 'NCT' => 39600,
-- 'NDT' => -9000,
-- 'NFT' => 41400,
-- 'NMIT' => 36000,
-- 'NOVST' => 25200,
-- 'NOVT' => 21600,
-- 'NPT' => 20700,
-- 'NRT' => 43200,
-- 'NST' => -12600,
-- 'NUT' => -39600,
-- 'NZDT' => 46800,
-- 'NZST' => 43200,
-- 'OMSST' => 25200,
-- 'OMST' => 21600,
-- 'PDT' => -25200,
-- 'PET' => -18000,
-- 'PETST' => 46800,
-- 'PETT' => 43200,
-- 'PGT' => 36000,
-- 'PHOT' => 46800,
-- 'PHT' => 28800,
-- 'PKT' => 18000,
-- 'PMDT' => -7200,
-- 'PMST' => -10800,
-- 'PONT' => 39600,
-- 'PST' => -28800,
-- 'PWT' => 32400,
-- 'PYST' => -10800,
-- 'PYT' => -14400,
-- 'RET' => 14400,
-- 'ROTT' => -10800,
-- 'SAMST' => 18000,
-- 'SAMT' => 14400,
-- 'SAST' => 7200,
-- 'SBT' => 39600,
-- 'SCDT' => 46800,
-- 'SCST' => 43200,
-- 'SCT' => 14400,
-- 'SEST' => 3600,
-- 'SGT' => 28800,
-- 'SIT' => 28800,
-- 'SRT' => -10800,
-- 'SST' => -39600,
-- 'SYST' => 10800,
-- 'SYT' => 7200,
-- 'TFT' => 18000,
-- 'THAT' => -36000,
-- 'TJT' => 18000,
-- 'TKT' => -36000,
-- 'TMT' => 18000,
-- 'TOT' => 46800,
-- 'TPT' => 32400,
-- 'TRUT' => 36000,
-- 'TVT' => 43200,
-- 'TWT' => 28800,
-- 'UYST' => -7200,
-- 'UYT' => -10800,
-- 'UZT' => 18000,
-- 'VET' => -14400,
-- 'VLAST' => 39600,
-- 'VLAT' => 36000,
-- 'VOST' => 21600,
-- 'VUT' => 39600,
-- 'WAST' => 7200,
-- 'WAT' => 3600,
-- 'WDT' => 32400,
-- 'WEST' => 3600,
-- 'WFT' => 43200,
-- 'WIB' => 25200,
-- 'WIT' => 32400,
-- 'WITA' => 28800,
-- 'WKST' => 18000,
-- 'WST' => 28800,
-- 'YAKST' => 36000,
-- 'YAKT' => 32400,
-- 'YAPT' => 36000,
-- 'YEKST' => 21600,
-- 'YEKT' => 18000,
-- );
--
-- /**
-- * Cached PCRE for SimplePie_Parse_Date::$day
-- *
-- * @access protected
-- * @var string
-- */
-- var $day_pcre;
--
-- /**
-- * Cached PCRE for SimplePie_Parse_Date::$month
-- *
-- * @access protected
-- * @var string
-- */
-- var $month_pcre;
--
-- /**
-- * Array of user-added callback methods
-- *
-- * @access private
-- * @var array
-- */
-- var $built_in = array();
--
-- /**
-- * Array of user-added callback methods
-- *
-- * @access private
-- * @var array
-- */
-- var $user = array();
--
-- /**
-- * Create new SimplePie_Parse_Date object, and set self::day_pcre,
-- * self::month_pcre, and self::built_in
-- *
-- * @access private
-- */
-- function SimplePie_Parse_Date()
-- {
-- $this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
-- $this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
--
-- static $cache;
-- if (!isset($cache[get_class($this)]))
-- {
-- if (extension_loaded('Reflection'))
-- {
-- $class = new ReflectionClass(get_class($this));
-- $methods = $class->getMethods();
-- $all_methods = array();
-- foreach ($methods as $method)
-- {
-- $all_methods[] = $method->getName();
-- }
-- }
-- else
-- {
-- $all_methods = get_class_methods($this);
-- }
--
-- foreach ($all_methods as $method)
-- {
-- if (strtolower(substr($method, 0, 5)) === 'date_')
-- {
-- $cache[get_class($this)][] = $method;
-- }
-- }
-- }
--
-- foreach ($cache[get_class($this)] as $method)
-- {
-- $this->built_in[] = $method;
-- }
-- }
--
-- /**
-- * Get the object
-- *
-- * @access public
-- */
-- static function get()
-- {
-- static $object;
-- if (!$object)
-- {
-- $object = new SimplePie_Parse_Date;
-- }
-- return $object;
-- }
--
-- /**
-- * Parse a date
-- *
-- * @final
-- * @access public
-- * @param string $date Date to parse
-- * @return int Timestamp corresponding to date string, or false on failure
-- */
-- function parse($date)
-- {
-- foreach ($this->user as $method)
-- {
-- if (($returned = call_user_func($method, $date)) !== false)
-- {
-- return $returned;
-- }
-- }
--
-- foreach ($this->built_in as $method)
-- {
-- if (($returned = call_user_func(array(&$this, $method), $date)) !== false)
-- {
-- return $returned;
-- }
-- }
--
-- return false;
-- }
--
-- /**
-- * Add a callback method to parse a date
-- *
-- * @final
-- * @access public
-- * @param callback $callback
-- */
-- function add_callback($callback)
-- {
-- if (is_callable($callback))
-- {
-- $this->user[] = $callback;
-- }
-- else
-- {
-- trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
-- }
-- }
--
-- /**
-- * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
-- * well as allowing any of upper or lower case "T", horizontal tabs, or
-- * spaces to be used as the time seperator (including more than one))
-- *
-- * @access protected
-- * @return int Timestamp
-- */
-- function date_w3cdtf($date)
-- {
-- static $pcre;
-- if (!$pcre)
-- {
-- $year = '([0-9]{4})';
-- $month = $day = $hour = $minute = $second = '([0-9]{2})';
-- $decimal = '([0-9]*)';
-- $zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
-- $pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
-- }
-- if (preg_match($pcre, $date, $match))
-- {
-- /*
-- Capturing subpatterns:
-- 1: Year
-- 2: Month
-- 3: Day
-- 4: Hour
-- 5: Minute
-- 6: Second
-- 7: Decimal fraction of a second
-- 8: Zulu
-- 9: Timezone ±
-- 10: Timezone hours
-- 11: Timezone minutes
-- */
--
-- // Fill in empty matches
-- for ($i = count($match); $i <= 3; $i++)
-- {
-- $match[$i] = '1';
-- }
--
-- for ($i = count($match); $i <= 7; $i++)
-- {
-- $match[$i] = '0';
-- }
--
-- // Numeric timezone
-- if (isset($match[9]) && $match[9] !== '')
-- {
-- $timezone = $match[10] * 3600;
-- $timezone += $match[11] * 60;
-- if ($match[9] === '-')
-- {
-- $timezone = 0 - $timezone;
-- }
-- }
-- else
-- {
-- $timezone = 0;
-- }
--
-- // Convert the number of seconds to an integer, taking decimals into account
-- $second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
--
-- return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Remove RFC822 comments
-- *
-- * @access protected
-- * @param string $data Data to strip comments from
-- * @return string Comment stripped string
-- */
-- function remove_rfc2822_comments($string)
-- {
-- $string = (string) $string;
-- $position = 0;
-- $length = strlen($string);
-- $depth = 0;
--
-- $output = '';
--
-- while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-- {
-- $output .= substr($string, $position, $pos - $position);
-- $position = $pos + 1;
-- if ($string[$pos - 1] !== '\\')
-- {
-- $depth++;
-- while ($depth && $position < $length)
-- {
-- $position += strcspn($string, '()', $position);
-- if ($string[$position - 1] === '\\')
-- {
-- $position++;
-- continue;
-- }
-- elseif (isset($string[$position]))
-- {
-- switch ($string[$position])
-- {
-- case '(':
-- $depth++;
-- break;
--
-- case ')':
-- $depth--;
-- break;
-- }
-- $position++;
-- }
-- else
-- {
-- break;
-- }
-- }
-- }
-- else
-- {
-- $output .= '(';
-- }
-- }
-- $output .= substr($string, $position);
--
-- return $output;
-- }
--
-- /**
-- * Parse RFC2822's date format
-- *
-- * @access protected
-- * @return int Timestamp
-- */
-- function date_rfc2822($date)
-- {
-- static $pcre;
-- if (!$pcre)
-- {
-- $wsp = '[\x09\x20]';
-- $fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
-- $optional_fws = $fws . '?';
-- $day_name = $this->day_pcre;
-- $month = $this->month_pcre;
-- $day = '([0-9]{1,2})';
-- $hour = $minute = $second = '([0-9]{2})';
-- $year = '([0-9]{2,4})';
-- $num_zone = '([+\-])([0-9]{2})([0-9]{2})';
-- $character_zone = '([A-Z]{1,5})';
-- $zone = '(?:' . $num_zone . '|' . $character_zone . ')';
-- $pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
-- }
-- if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
-- {
-- /*
-- Capturing subpatterns:
-- 1: Day name
-- 2: Day
-- 3: Month
-- 4: Year
-- 5: Hour
-- 6: Minute
-- 7: Second
-- 8: Timezone ±
-- 9: Timezone hours
-- 10: Timezone minutes
-- 11: Alphabetic timezone
-- */
--
-- // Find the month number
-- $month = $this->month[strtolower($match[3])];
--
-- // Numeric timezone
-- if ($match[8] !== '')
-- {
-- $timezone = $match[9] * 3600;
-- $timezone += $match[10] * 60;
-- if ($match[8] === '-')
-- {
-- $timezone = 0 - $timezone;
-- }
-- }
-- // Character timezone
-- elseif (isset($this->timezone[strtoupper($match[11])]))
-- {
-- $timezone = $this->timezone[strtoupper($match[11])];
-- }
-- // Assume everything else to be -0000
-- else
-- {
-- $timezone = 0;
-- }
--
-- // Deal with 2/3 digit years
-- if ($match[4] < 50)
-- {
-- $match[4] += 2000;
-- }
-- elseif ($match[4] < 1000)
-- {
-- $match[4] += 1900;
-- }
--
-- // Second is optional, if it is empty set it to zero
-- if ($match[7] !== '')
-- {
-- $second = $match[7];
-- }
-- else
-- {
-- $second = 0;
-- }
--
-- return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Parse RFC850's date format
-- *
-- * @access protected
-- * @return int Timestamp
-- */
-- function date_rfc850($date)
-- {
-- static $pcre;
-- if (!$pcre)
-- {
-- $space = '[\x09\x20]+';
-- $day_name = $this->day_pcre;
-- $month = $this->month_pcre;
-- $day = '([0-9]{1,2})';
-- $year = $hour = $minute = $second = '([0-9]{2})';
-- $zone = '([A-Z]{1,5})';
-- $pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
-- }
-- if (preg_match($pcre, $date, $match))
-- {
-- /*
-- Capturing subpatterns:
-- 1: Day name
-- 2: Day
-- 3: Month
-- 4: Year
-- 5: Hour
-- 6: Minute
-- 7: Second
-- 8: Timezone
-- */
--
-- // Month
-- $month = $this->month[strtolower($match[3])];
--
-- // Character timezone
-- if (isset($this->timezone[strtoupper($match[8])]))
-- {
-- $timezone = $this->timezone[strtoupper($match[8])];
-- }
-- // Assume everything else to be -0000
-- else
-- {
-- $timezone = 0;
-- }
--
-- // Deal with 2 digit year
-- if ($match[4] < 50)
-- {
-- $match[4] += 2000;
-- }
-- else
-- {
-- $match[4] += 1900;
-- }
--
-- return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Parse C99's asctime()'s date format
-- *
-- * @access protected
-- * @return int Timestamp
-- */
-- function date_asctime($date)
-- {
-- static $pcre;
-- if (!$pcre)
-- {
-- $space = '[\x09\x20]+';
-- $wday_name = $this->day_pcre;
-- $mon_name = $this->month_pcre;
-- $day = '([0-9]{1,2})';
-- $hour = $sec = $min = '([0-9]{2})';
-- $year = '([0-9]{4})';
-- $terminator = '\x0A?\x00?';
-- $pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
-- }
-- if (preg_match($pcre, $date, $match))
-- {
-- /*
-- Capturing subpatterns:
-- 1: Day name
-- 2: Month
-- 3: Day
-- 4: Hour
-- 5: Minute
-- 6: Second
-- 7: Year
-- */
--
-- $month = $this->month[strtolower($match[2])];
-- return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Parse dates using strtotime()
-- *
-- * @access protected
-- * @return int Timestamp
-- */
-- function date_strtotime($date)
-- {
-- $strtotime = strtotime($date);
-- if ($strtotime === -1 || $strtotime === false)
-- {
-- return false;
-- }
-- else
-- {
-- return $strtotime;
-- }
-- }
--}
--
--/**
-- * Content-type sniffing
-- *
-- * @package SimplePie
-- */
--class SimplePie_Content_Type_Sniffer
--{
-- /**
-- * File object
-- *
-- * @var SimplePie_File
-- * @access private
-- */
-- var $file;
--
-- /**
-- * Create an instance of the class with the input file
-- *
-- * @access public
-- * @param SimplePie_Content_Type_Sniffer $file Input file
-- */
-- function SimplePie_Content_Type_Sniffer($file)
-- {
-- $this->file = $file;
-- }
--
-- /**
-- * Get the Content-Type of the specified file
-- *
-- * @access public
-- * @return string Actual Content-Type
-- */
-- function get_type()
-- {
-- if (isset($this->file->headers['content-type']))
-- {
-- if (!isset($this->file->headers['content-encoding'])
-- && ($this->file->headers['content-type'] === 'text/plain'
-- || $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1'
-- || $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1'))
-- {
-- return $this->text_or_binary();
-- }
--
-- if (($pos = strpos($this->file->headers['content-type'], ';')) !== false)
-- {
-- $official = substr($this->file->headers['content-type'], 0, $pos);
-- }
-- else
-- {
-- $official = $this->file->headers['content-type'];
-- }
-- $official = strtolower($official);
--
-- if ($official === 'unknown/unknown'
-- || $official === 'application/unknown')
-- {
-- return $this->unknown();
-- }
-- elseif (substr($official, -4) === '+xml'
-- || $official === 'text/xml'
-- || $official === 'application/xml')
-- {
-- return $official;
-- }
-- elseif (substr($official, 0, 6) === 'image/')
-- {
-- if ($return = $this->image())
-- {
-- return $return;
-- }
-- else
-- {
-- return $official;
-- }
-- }
-- elseif ($official === 'text/html')
-- {
-- return $this->feed_or_html();
-- }
-- else
-- {
-- return $official;
-- }
-- }
-- else
-- {
-- return $this->unknown();
-- }
-- }
--
-- /**
-- * Sniff text or binary
-- *
-- * @access private
-- * @return string Actual Content-Type
-- */
-- function text_or_binary()
-- {
-- if (substr($this->file->body, 0, 2) === "\xFE\xFF"
-- || substr($this->file->body, 0, 2) === "\xFF\xFE"
-- || substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF"
-- || substr($this->file->body, 0, 3) === "\xEF\xBB\xBF")
-- {
-- return 'text/plain';
-- }
-- elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body))
-- {
-- return 'application/octect-stream';
-- }
-- else
-- {
-- return 'text/plain';
-- }
-- }
--
-- /**
-- * Sniff unknown
-- *
-- * @access private
-- * @return string Actual Content-Type
-- */
-- function unknown()
-- {
-- $ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20");
-- if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html'
-- || strtolower(substr($this->file->body, $ws, 5)) === '<html'
-- || strtolower(substr($this->file->body, $ws, 7)) === '<script')
-- {
-- return 'text/html';
-- }
-- elseif (substr($this->file->body, 0, 5) === '%PDF-')
-- {
-- return 'application/pdf';
-- }
-- elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-')
-- {
-- return 'application/postscript';
-- }
-- elseif (substr($this->file->body, 0, 6) === 'GIF87a'
-- || substr($this->file->body, 0, 6) === 'GIF89a')
-- {
-- return 'image/gif';
-- }
-- elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-- {
-- return 'image/png';
-- }
-- elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-- {
-- return 'image/jpeg';
-- }
-- elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-- {
-- return 'image/bmp';
-- }
-- else
-- {
-- return $this->text_or_binary();
-- }
-- }
--
-- /**
-- * Sniff images
-- *
-- * @access private
-- * @return string Actual Content-Type
-- */
-- function image()
-- {
-- if (substr($this->file->body, 0, 6) === 'GIF87a'
-- || substr($this->file->body, 0, 6) === 'GIF89a')
-- {
-- return 'image/gif';
-- }
-- elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-- {
-- return 'image/png';
-- }
-- elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-- {
-- return 'image/jpeg';
-- }
-- elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-- {
-- return 'image/bmp';
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- /**
-- * Sniff HTML
-- *
-- * @access private
-- * @return string Actual Content-Type
-- */
-- function feed_or_html()
-- {
-- $len = strlen($this->file->body);
-- $pos = strspn($this->file->body, "\x09\x0A\x0D\x20");
--
-- while ($pos < $len)
-- {
-- switch ($this->file->body[$pos])
-- {
-- case "\x09":
-- case "\x0A":
-- case "\x0D":
-- case "\x20":
-- $pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos);
-- continue 2;
--
-- case '<':
-- $pos++;
-- break;
--
-- default:
-- return 'text/html';
-- }
--
-- if (substr($this->file->body, $pos, 3) === '!--')
-- {
-- $pos += 3;
-- if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false)
-- {
-- $pos += 3;
-- }
-- else
-- {
-- return 'text/html';
-- }
-- }
-- elseif (substr($this->file->body, $pos, 1) === '!')
-- {
-- if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false)
-- {
-- $pos++;
-- }
-- else
-- {
-- return 'text/html';
-- }
-- }
-- elseif (substr($this->file->body, $pos, 1) === '?')
-- {
-- if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false)
-- {
-- $pos += 2;
-- }
-- else
-- {
-- return 'text/html';
-- }
-- }
-- elseif (substr($this->file->body, $pos, 3) === 'rss'
-- || substr($this->file->body, $pos, 7) === 'rdf:RDF')
-- {
-- return 'application/rss+xml';
-- }
-- elseif (substr($this->file->body, $pos, 4) === 'feed')
-- {
-- return 'application/atom+xml';
-- }
-- else
-- {
-- return 'text/html';
-- }
-- }
--
-- return 'text/html';
-- }
--}
--
--/**
-- * Parses the XML Declaration
-- *
-- * @package SimplePie
-- */
--class SimplePie_XML_Declaration_Parser
--{
-- /**
-- * XML Version
-- *
-- * @access public
-- * @var string
-- */
-- var $version = '1.0';
--
-- /**
-- * Encoding
-- *
-- * @access public
-- * @var string
-- */
-- var $encoding = 'UTF-8';
--
-- /**
-- * Standalone
-- *
-- * @access public
-- * @var bool
-- */
-- var $standalone = false;
--
-- /**
-- * Current state of the state machine
-- *
-- * @access private
-- * @var string
-- */
-- var $state = 'before_version_name';
--
-- /**
-- * Input data
-- *
-- * @access private
-- * @var string
-- */
-- var $data = '';
--
-- /**
-- * Input data length (to avoid calling strlen() everytime this is needed)
-- *
-- * @access private
-- * @var int
-- */
-- var $data_length = 0;
--
-- /**
-- * Current position of the pointer
-- *
-- * @var int
-- * @access private
-- */
-- var $position = 0;
--
-- /**
-- * Create an instance of the class with the input data
-- *
-- * @access public
-- * @param string $data Input data
-- */
-- function SimplePie_XML_Declaration_Parser($data)
-- {
-- $this->data = $data;
-- $this->data_length = strlen($this->data);
-- }
--
-- /**
-- * Parse the input data
-- *
-- * @access public
-- * @return bool true on success, false on failure
-- */
-- function parse()
-- {
-- while ($this->state && $this->state !== 'emit' && $this->has_data())
-- {
-- $state = $this->state;
-- $this->$state();
-- }
-- $this->data = '';
-- if ($this->state === 'emit')
-- {
-- return true;
-- }
-- else
-- {
-- $this->version = '';
-- $this->encoding = '';
-- $this->standalone = '';
-- return false;
-- }
-- }
--
-- /**
-- * Check whether there is data beyond the pointer
-- *
-- * @access private
-- * @return bool true if there is further data, false if not
-- */
-- function has_data()
-- {
-- return (bool) ($this->position < $this->data_length);
-- }
--
-- /**
-- * Advance past any whitespace
-- *
-- * @return int Number of whitespace characters passed
-- */
-- function skip_whitespace()
-- {
-- $whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position);
-- $this->position += $whitespace;
-- return $whitespace;
-- }
--
-- /**
-- * Read value
-- */
-- function get_value()
-- {
-- $quote = substr($this->data, $this->position, 1);
-- if ($quote === '"' || $quote === "'")
-- {
-- $this->position++;
-- $len = strcspn($this->data, $quote, $this->position);
-- if ($this->has_data())
-- {
-- $value = substr($this->data, $this->position, $len);
-- $this->position += $len + 1;
-- return $value;
-- }
-- }
-- return false;
-- }
--
-- function before_version_name()
-- {
-- if ($this->skip_whitespace())
-- {
-- $this->state = 'version_name';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function version_name()
-- {
-- if (substr($this->data, $this->position, 7) === 'version')
-- {
-- $this->position += 7;
-- $this->skip_whitespace();
-- $this->state = 'version_equals';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function version_equals()
-- {
-- if (substr($this->data, $this->position, 1) === '=')
-- {
-- $this->position++;
-- $this->skip_whitespace();
-- $this->state = 'version_value';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function version_value()
-- {
-- if ($this->version = $this->get_value())
-- {
-- $this->skip_whitespace();
-- if ($this->has_data())
-- {
-- $this->state = 'encoding_name';
-- }
-- else
-- {
-- $this->state = 'emit';
-- }
-- }
-- else
-- {
-- $this->state = 'standalone_name';
-- }
-- }
--
-- function encoding_name()
-- {
-- if (substr($this->data, $this->position, 8) === 'encoding')
-- {
-- $this->position += 8;
-- $this->skip_whitespace();
-- $this->state = 'encoding_equals';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function encoding_equals()
-- {
-- if (substr($this->data, $this->position, 1) === '=')
-- {
-- $this->position++;
-- $this->skip_whitespace();
-- $this->state = 'encoding_value';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function encoding_value()
-- {
-- if ($this->encoding = $this->get_value())
-- {
-- $this->skip_whitespace();
-- if ($this->has_data())
-- {
-- $this->state = 'standalone_name';
-- }
-- else
-- {
-- $this->state = 'emit';
-- }
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function standalone_name()
-- {
-- if (substr($this->data, $this->position, 10) === 'standalone')
-- {
-- $this->position += 10;
-- $this->skip_whitespace();
-- $this->state = 'standalone_equals';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function standalone_equals()
-- {
-- if (substr($this->data, $this->position, 1) === '=')
-- {
-- $this->position++;
-- $this->skip_whitespace();
-- $this->state = 'standalone_value';
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--
-- function standalone_value()
-- {
-- if ($standalone = $this->get_value())
-- {
-- switch ($standalone)
-- {
-- case 'yes':
-- $this->standalone = true;
-- break;
--
-- case 'no':
-- $this->standalone = false;
-- break;
--
-- default:
-- $this->state = false;
-- return;
-- }
--
-- $this->skip_whitespace();
-- if ($this->has_data())
-- {
-- $this->state = false;
-- }
-- else
-- {
-- $this->state = 'emit';
-- }
-- }
-- else
-- {
-- $this->state = false;
-- }
-- }
--}
--
--class SimplePie_Locator
--{
-- var $useragent;
-- var $timeout;
-- var $file;
-- var $local = array();
-- var $elsewhere = array();
-- var $file_class = 'SimplePie_File';
-- var $cached_entities = array();
-- var $http_base;
-- var $base;
-- var $base_location = 0;
-- var $checked_feeds = 0;
-- var $max_checked_feeds = 10;
-- var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer';
-- var $proxy;
--
-- function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10, $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer', $proxy = "")
-- {
-- $this->file =& $file;
-- $this->file_class = $file_class;
-- $this->useragent = $useragent;
-- $this->timeout = $timeout;
-- $this->max_checked_feeds = $max_checked_feeds;
-- $this->content_type_sniffer_class = $content_type_sniffer_class;
-- $this->proxy = $proxy;
-- }
--
-- function find($type = SIMPLEPIE_LOCATOR_ALL)
-- {
-- if ($this->is_feed($this->file))
-- {
-- return $this->file;
-- }
--
-- if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-- {
-- $sniffer = new $this->content_type_sniffer_class($this->file);
-- if ($sniffer->get_type() !== 'text/html')
-- {
-- return null;
-- }
-- }
--
-- if ($type & ~SIMPLEPIE_LOCATOR_NONE)
-- {
-- $this->get_base();
-- }
--
-- if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery())
-- {
-- return $working;
-- }
--
-- if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links())
-- {
-- if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
-- {
-- return $working;
-- }
--
-- if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
-- {
-- return $working;
-- }
--
-- if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
-- {
-- return $working;
-- }
--
-- if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
-- {
-- return $working;
-- }
-- }
-- return null;
-- }
--
-- function is_feed(&$file)
-- {
-- if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-- {
-- $sniffer = new $this->content_type_sniffer_class($file);
-- $sniffed = $sniffer->get_type();
-- if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml')))
-- {
-- return true;
-- }
-- else
-- {
-- return false;
-- }
-- }
-- elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
-- {
-- return true;
-- }
-- else
-- {
-- return false;
-- }
-- }
--
-- function get_base()
-- {
-- $this->http_base = $this->file->url;
-- $this->base = $this->http_base;
-- $elements = SimplePie_Misc::get_element('base', $this->file->body);
-- foreach ($elements as $element)
-- {
-- if ($element['attribs']['href']['data'] !== '')
-- {
-- $this->base = SimplePie_Misc::absolutize_url(trim($element['attribs']['href']['data']), $this->http_base);
-- $this->base_location = $element['offset'];
-- break;
-- }
-- }
-- }
--
-- function autodiscovery()
-- {
-- $links = array_merge(SimplePie_Misc::get_element('link', $this->file->body), SimplePie_Misc::get_element('a', $this->file->body), SimplePie_Misc::get_element('area', $this->file->body));
-- $done = array();
-- foreach ($links as $link)
-- {
-- if ($this->checked_feeds == $this->max_checked_feeds)
-- {
-- break;
-- }
-- if (isset($link['attribs']['href']['data']) && isset($link['attribs']['rel']['data']))
-- {
-- $rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data'])));
--
-- if ($this->base_location < $link['offset'])
-- {
-- $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base);
-- }
-- else
-- {
-- $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base);
-- }
--
-- if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml'))))
-- {
-- $this->checked_feeds++;
-- $feed = new $this->file_class($href, $this->timeout, 5, null, $this->useragent, false, $this->proxy);
-- if ($this->is_feed($feed))
-- {
-- return $feed;
-- }
-- }
-- $done[] = $href;
-- }
-- }
-- return null;
-- }
--
-- function get_links()
-- {
-- $links = SimplePie_Misc::get_element('a', $this->file->body);
-- foreach ($links as $link)
-- {
-- if (isset($link['attribs']['href']['data']))
-- {
-- $href = trim($link['attribs']['href']['data']);
-- $parsed = SimplePie_Misc::parse_url($href);
-- if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme']))
-- {
-- if ($this->base_location < $link['offset'])
-- {
-- $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base);
-- }
-- else
-- {
-- $href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base);
-- }
--
-- $current = SimplePie_Misc::parse_url($this->file->url);
--
-- if ($parsed['authority'] === '' || $parsed['authority'] == $current['authority'])
-- {
-- $this->local[] = $href;
-- }
-- else
-- {
-- $this->elsewhere[] = $href;
-- }
-- }
-- }
-- }
-- $this->local = array_unique($this->local);
-- $this->elsewhere = array_unique($this->elsewhere);
-- if (!empty($this->local) || !empty($this->elsewhere))
-- {
-- return true;
-- }
-- return null;
-- }
--
-- function extension(&$array)
-- {
-- foreach ($array as $key => $value)
-- {
-- if ($this->checked_feeds == $this->max_checked_feeds)
-- {
-- break;
-- }
-- if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml')))
-- {
-- $this->checked_feeds++;
-- $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent, false, $this->proxy);
-- if ($this->is_feed($feed))
-- {
-- return $feed;
-- }
-- else
-- {
-- unset($array[$key]);
-- }
-- }
-- }
-- return null;
-- }
--
-- function body(&$array)
-- {
-- foreach ($array as $key => $value)
-- {
-- if ($this->checked_feeds == $this->max_checked_feeds)
-- {
-- break;
-- }
-- if (preg_match('/(rss|rdf|atom|xml)/i', $value))
-- {
-- $this->checked_feeds++;
-- $feed = new $this->file_class($value, $this->timeout, 5, null, $this->useragent, false, $this->proxy);
-- if ($this->is_feed($feed))
-- {
-- return $feed;
-- }
-- else
-- {
-- unset($array[$key]);
-- }
-- }
-- }
-- return null;
-- }
--}
--
--class SimplePie_Parser
--{
-- var $error_code;
-- var $error_string;
-- var $current_line;
-- var $current_column;
-- var $current_byte;
-- var $separator = ' ';
-- var $feed = false;
-- var $namespace = array('');
-- var $element = array('');
-- var $xml_base = array('');
-- var $xml_base_explicit = array(false);
-- var $xml_lang = array('');
-- var $data = array();
-- var $datas = array(array());
-- var $current_xhtml_construct = -1;
-- var $encoding;
--
-- function parse(&$data, $encoding)
-- {
-- // Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
-- if (strtoupper($encoding) == 'US-ASCII')
-- {
-- $this->encoding = 'UTF-8';
-- }
-- else
-- {
-- $this->encoding = $encoding;
-- }
--
-- // Strip BOM:
-- // UTF-32 Big Endian BOM
-- if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-- {
-- $data = substr($data, 4);
-- }
-- // UTF-32 Little Endian BOM
-- elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-- {
-- $data = substr($data, 4);
-- }
-- // UTF-16 Big Endian BOM
-- elseif (substr($data, 0, 2) === "\xFE\xFF")
-- {
-- $data = substr($data, 2);
-- }
-- // UTF-16 Little Endian BOM
-- elseif (substr($data, 0, 2) === "\xFF\xFE")
-- {
-- $data = substr($data, 2);
-- }
-- // UTF-8 BOM
-- elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-- {
-- $data = substr($data, 3);
-- }
--
-- if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false)
-- {
-- $declaration = new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5));
-- if ($declaration->parse())
-- {
-- $data = substr($data, $pos + 2);
-- $data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data;
-- }
-- else
-- {
-- $this->error_string = 'SimplePie bug! Please report this!';
-- return false;
-- }
-- }
--
-- // Work around libxml bug
-- $data = str_replace('<', '<', $data);
-- $data = str_replace('>', '>', $data);
-- $data = str_replace('&', '&', $data);
-- $data = str_replace(''', ''', $data);
-- $data = str_replace('"', '"', $data);
--
-- $return = true;
--
-- // Create the parser
-- $xml = xml_parser_create_ns($this->encoding, $this->separator);
-- xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
-- xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0);
-- xml_set_object($xml, $this);
-- xml_set_character_data_handler($xml, 'cdata');
-- xml_set_element_handler($xml, 'tag_open', 'tag_close');
--
-- // Parse!
-- if (!xml_parse($xml, $data, true))
-- {
-- $this->error_code = xml_get_error_code($xml);
-- $this->error_string = xml_error_string($this->error_code);
-- $return = false;
-- }
-- $this->current_line = xml_get_current_line_number($xml);
-- $this->current_column = xml_get_current_column_number($xml);
-- $this->current_byte = xml_get_current_byte_index($xml);
-- xml_parser_free($xml);
-- return $return;
-- }
--
-- function get_error_code()
-- {
-- return $this->error_code;
-- }
--
-- function get_error_string()
-- {
-- return $this->error_string;
-- }
--
-- function get_current_line()
-- {
-- return $this->current_line;
-- }
--
-- function get_current_column()
-- {
-- return $this->current_column;
-- }
--
-- function get_current_byte()
-- {
-- return $this->current_byte;
-- }
--
-- function get_data()
-- {
-- return $this->data;
-- }
--
-- function tag_open($parser, $tag, $attributes)
-- {
-- if ($this->feed === 0)
-- {
-- return;
-- }
-- elseif ($this->feed == false)
-- {
-- if (in_array($tag, array(
-- SIMPLEPIE_NAMESPACE_ATOM_10 . $this->separator . 'feed',
-- SIMPLEPIE_NAMESPACE_ATOM_03 . $this->separator . 'feed',
-- 'rss',
-- SIMPLEPIE_NAMESPACE_RDF . $this->separator . 'RDF'
-- )))
-- {
-- $this->feed = 1;
-- }
-- }
-- else
-- {
-- $this->feed++;
-- }
--
-- list($this->namespace[], $this->element[]) = $this->split_ns($tag);
--
-- $attribs = array();
-- foreach ($attributes as $name => $value)
-- {
-- list($attrib_namespace, $attribute) = $this->split_ns($name);
-- $attribs[$attrib_namespace][$attribute] = $value;
-- }
--
-- if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base']))
-- {
-- $this->xml_base[] = SimplePie_Misc::absolutize_url($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base));
-- $this->xml_base_explicit[] = true;
-- }
-- else
-- {
-- $this->xml_base[] = end($this->xml_base);
-- $this->xml_base_explicit[] = end($this->xml_base_explicit);
-- }
--
-- if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang']))
-- {
-- $this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang'];
-- }
-- else
-- {
-- $this->xml_lang[] = end($this->xml_lang);
-- }
--
-- if ($this->current_xhtml_construct >= 0)
-- {
-- $this->current_xhtml_construct++;
-- if (end($this->namespace) == SIMPLEPIE_NAMESPACE_XHTML)
-- {
-- $this->data['data'] .= '<' . end($this->element);
-- if (isset($attribs['']))
-- {
-- foreach ($attribs[''] as $name => $value)
-- {
-- $this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"';
-- }
-- }
-- $this->data['data'] .= '>';
-- }
-- }
-- else
-- {
-- $this->datas[] =& $this->data;
-- $this->data =& $this->data['child'][end($this->namespace)][end($this->element)][];
-- $this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang));
-- if ((end($this->namespace) == SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] == 'xml')
-- || (end($this->namespace) == SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] == 'xhtml'))
-- {
-- $this->current_xhtml_construct = 0;
-- }
-- }
-- }
--
-- function cdata($parser, $cdata)
-- {
-- if ($this->current_xhtml_construct >= 0)
-- {
-- $this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding);
-- }
-- elseif ($this->feed > 1)
-- {
-- $this->data['data'] .= $cdata;
-- }
-- }
--
-- function tag_close($parser, $tag)
-- {
-- if (!$this->feed)
-- {
-- return;
-- }
--
-- if ($this->current_xhtml_construct >= 0)
-- {
-- $this->current_xhtml_construct--;
-- if (end($this->namespace) == SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param')))
-- {
-- $this->data['data'] .= '</' . end($this->element) . '>';
-- }
-- }
-- if ($this->current_xhtml_construct == -1)
-- {
-- $this->data =& $this->datas[$this->feed];
-- array_pop($this->datas);
-- }
--
-- array_pop($this->element);
-- array_pop($this->namespace);
-- array_pop($this->xml_base);
-- array_pop($this->xml_base_explicit);
-- array_pop($this->xml_lang);
-- $this->feed--;
-- }
--
-- function split_ns($string)
-- {
-- static $cache = array();
-- if (!isset($cache[$string]))
-- {
-- if ($pos = strpos($string, $this->separator))
-- {
-- static $separator_length;
-- if (!$separator_length)
-- {
-- $separator_length = strlen($this->separator);
-- }
-- $namespace = substr($string, 0, $pos);
-- $local_name = substr($string, $pos + $separator_length);
-- if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES)
-- {
-- $namespace = SIMPLEPIE_NAMESPACE_ITUNES;
-- }
--
-- // Normalize the Media RSS namespaces
-- if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG)
-- {
-- $namespace = SIMPLEPIE_NAMESPACE_MEDIARSS;
-- }
-- $cache[$string] = array($namespace, $local_name);
-- }
-- else
-- {
-- $cache[$string] = array('', $string);
-- }
-- }
-- return $cache[$string];
-- }
--}
--
--/**
-- * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
-- */
--class SimplePie_Sanitize
--{
-- // Private vars
-- var $base;
--
-- // Options
-- var $remove_div = true;
-- var $image_handler = '';
-- var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
-- var $encode_instead_of_strip = false;
-- var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
-- var $strip_comments = false;
-- var $output_encoding = 'UTF-8';
-- var $enable_cache = true;
-- var $cache_location = './cache';
-- var $cache_name_function = 'md5';
-- var $cache_class = 'SimplePie_Cache';
-- var $file_class = 'SimplePie_File';
-- var $timeout = 10;
-- var $useragent = '';
-- var $force_fsockopen = false;
-- var $proxy = "";
--
-- var $replace_url_attributes = array(
-- 'a' => 'href',
-- 'area' => 'href',
-- 'blockquote' => 'cite',
-- 'del' => 'cite',
-- 'form' => 'action',
-- 'img' => array('longdesc', 'src'),
-- 'input' => 'src',
-- 'ins' => 'cite',
-- 'q' => 'cite'
-- );
--
-- function remove_div($enable = true)
-- {
-- $this->remove_div = (bool) $enable;
-- }
--
-- function set_image_handler($page = false)
-- {
-- if ($page)
-- {
-- $this->image_handler = (string) $page;
-- }
-- else
-- {
-- $this->image_handler = false;
-- }
-- }
--
-- function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache')
-- {
-- if (isset($enable_cache))
-- {
-- $this->enable_cache = (bool) $enable_cache;
-- }
--
-- if ($cache_location)
-- {
-- $this->cache_location = (string) $cache_location;
-- }
--
-- if ($cache_name_function)
-- {
-- $this->cache_name_function = (string) $cache_name_function;
-- }
--
-- if ($cache_class)
-- {
-- $this->cache_class = (string) $cache_class;
-- }
-- }
--
-- function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false)
-- {
-- if ($file_class)
-- {
-- $this->file_class = (string) $file_class;
-- }
--
-- if ($timeout)
-- {
-- $this->timeout = (string) $timeout;
-- }
--
-- if ($useragent)
-- {
-- $this->useragent = (string) $useragent;
-- }
--
-- if ($force_fsockopen)
-- {
-- $this->force_fsockopen = (string) $force_fsockopen;
-- }
-- }
--
-- function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
-- {
-- if ($tags)
-- {
-- if (is_array($tags))
-- {
-- $this->strip_htmltags = $tags;
-- }
-- else
-- {
-- $this->strip_htmltags = explode(',', $tags);
-- }
-- }
-- else
-- {
-- $this->strip_htmltags = false;
-- }
-- }
--
-- function encode_instead_of_strip($encode = false)
-- {
-- $this->encode_instead_of_strip = (bool) $encode;
-- }
--
-- function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
-- {
-- if ($attribs)
-- {
-- if (is_array($attribs))
-- {
-- $this->strip_attributes = $attribs;
-- }
-- else
-- {
-- $this->strip_attributes = explode(',', $attribs);
-- }
-- }
-- else
-- {
-- $this->strip_attributes = false;
-- }
-- }
--
-- function strip_comments($strip = false)
-- {
-- $this->strip_comments = (bool) $strip;
-- }
--
-- function set_output_encoding($encoding = 'UTF-8')
-- {
-- $this->output_encoding = (string) $encoding;
-- }
--
-- /**
-- * Set element/attribute key/value pairs of HTML attributes
-- * containing URLs that need to be resolved relative to the feed
-- *
-- * @access public
-- * @since 1.0
-- * @param array $element_attribute Element/attribute key/value pairs
-- */
-- function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite'))
-- {
-- $this->replace_url_attributes = (array) $element_attribute;
-- }
--
-- function sanitize($data, $type, $base = '')
-- {
-- $data = trim($data);
-- if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
-- {
-- if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML)
-- {
-- if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
-- {
-- $type |= SIMPLEPIE_CONSTRUCT_HTML;
-- }
-- else
-- {
-- $type |= SIMPLEPIE_CONSTRUCT_TEXT;
-- }
-- }
--
-- if ($type & SIMPLEPIE_CONSTRUCT_BASE64)
-- {
-- $data = base64_decode($data);
-- }
--
-- if ($type & SIMPLEPIE_CONSTRUCT_XHTML)
-- {
-- if ($this->remove_div)
-- {
-- $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
-- $data = preg_replace('/<\/div>$/', '', $data);
-- }
-- else
-- {
-- $data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
-- }
-- }
--
-- if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
-- {
-- // Strip comments
-- if ($this->strip_comments)
-- {
-- $data = SimplePie_Misc::strip_comments($data);
-- }
--
-- // Strip out HTML tags and attributes that might cause various security problems.
-- // Based on recommendations by Mark Pilgrim at:
-- // http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
-- if ($this->strip_htmltags)
-- {
-- foreach ($this->strip_htmltags as $tag)
-- {
-- $pcre = "/<($tag)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$tag" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>|(\/)?>)/siU';
-- while (preg_match($pcre, $data))
-- {
-- $data = preg_replace_callback($pcre, array(&$this, 'do_strip_htmltags'), $data);
-- }
-- }
-- }
--
-- if ($this->strip_attributes)
-- {
-- foreach ($this->strip_attributes as $attrib)
-- {
-- $data = preg_replace('/(<[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*)' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . trim($attrib) . '(?:\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>/', '\1\2\3>', $data);
-- }
-- }
--
-- // Replace relative URLs
-- $this->base = $base;
-- foreach ($this->replace_url_attributes as $element => $attributes)
-- {
-- $data = $this->replace_urls($data, $element, $attributes);
-- }
--
-- // If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
-- if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
-- {
-- $images = SimplePie_Misc::get_element('img', $data);
-- foreach ($images as $img)
-- {
-- if (isset($img['attribs']['src']['data']))
-- {
-- $image_url = call_user_func($this->cache_name_function, $img['attribs']['src']['data']);
-- $cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $image_url, 'spi');
--
-- if ($cache->load())
-- {
-- $img['attribs']['src']['data'] = $this->image_handler . $image_url;
-- $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
-- }
-- else
-- {
-- $file = new $this->file_class($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen, $this->proxy);
-- $headers = $file->headers;
--
-- if ($file->success && ($file->status_code == 200 || ($file->status_code > 206 && $file->status_code < 300)))
-- {
-- if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
-- {
-- $img['attribs']['src']['data'] = $this->image_handler . $image_url;
-- $data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
-- }
-- else
-- {
-- trigger_error("$cache->name is not writeable", E_USER_WARNING);
-- }
-- }
-- }
-- }
-- }
-- }
--
-- // Having (possibly) taken stuff out, there may now be whitespace at the beginning/end of the data
-- $data = trim($data);
-- }
--
-- if ($type & SIMPLEPIE_CONSTRUCT_IRI)
-- {
-- $data = SimplePie_Misc::absolutize_url($data, $base);
-- }
--
-- if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
-- {
-- $data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
-- }
--
-- if ($this->output_encoding != 'UTF-8')
-- {
-- $data = SimplePie_Misc::change_encoding($data, 'UTF-8', $this->output_encoding);
-- }
-- }
-- return $data;
-- }
--
-- function replace_urls($data, $tag, $attributes)
-- {
-- if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
-- {
-- $elements = SimplePie_Misc::get_element($tag, $data);
-- foreach ($elements as $element)
-- {
-- if (is_array($attributes))
-- {
-- foreach ($attributes as $attribute)
-- {
-- if (isset($element['attribs'][$attribute]['data']))
-- {
-- $element['attribs'][$attribute]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attribute]['data'], $this->base);
-- $new_element = SimplePie_Misc::element_implode($element);
-- $data = str_replace($element['full'], $new_element, $data);
-- $element['full'] = $new_element;
-- }
-- }
-- }
-- elseif (isset($element['attribs'][$attributes]['data']))
-- {
-- $element['attribs'][$attributes]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attributes]['data'], $this->base);
-- $data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data);
-- }
-- }
-- }
-- return $data;
-- }
--
-- function do_strip_htmltags($match)
-- {
-- if ($this->encode_instead_of_strip)
-- {
-- if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-- {
-- $match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
-- $match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
-- return "<$match[1]$match[2]>$match[3]</$match[1]>";
-- }
-- else
-- {
-- return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
-- }
-- }
-- elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-- {
-- return $match[4];
-- }
-- else
-- {
-- return '';
-- }
-- }
--}
--
--?>
+++ /dev/null
-Author: Roland Mas <lolando@debian.org>
-Description: Use Snoopy as provided by the libphp-snoopy Debian package
-instead of shipping a local one.
-Index: src/plugins/cvstracker/bin/post.php
-===================================================================
---- src.orig/plugins/cvstracker/bin/post.php
-+++ src/plugins/cvstracker/bin/post.php
-@@ -32,7 +32,7 @@
- require dirname(__FILE__).'/../../env.inc.php';
- require_once $gfcommon.'include/pre.php';
- require_once ($gfcommon.'common/include/utils.php');
--require_once ($gfplugins.'cvstracker/common/Snoopy.class.php');
-+require_once ('/usr/share/php/libphp-snoopy/Snoopy.class.php');
-
- $cvs_binary_version = get_cvs_binary_version () ;
-
-Index: src/plugins/scmcvs/bin/aclcheck.php
-===================================================================
---- src.orig/plugins/scmcvs/bin/aclcheck.php
-+++ src/plugins/scmcvs/bin/aclcheck.php
-@@ -31,7 +31,7 @@
- require_once $gfcommon. 'include/pre.php';
- require_once $gfcommon.'include/utils.php';
- require_once $gfconfig.'plugins/scmcvs/config.php';
--require_once $gfplugins.'scmcvs/common/Snoopy.class.php';
-+require_once '/usr/share/php/libphp-snoopy/Snoopy.class.php';
-
- // Input cleansing
- $env_cvsroot = (string) $_ENV['CVSROOT'];
-Index: src/plugins/svntracker/bin/post.php
-===================================================================
---- src.orig/plugins/svntracker/bin/post.php
-+++ src/plugins/svntracker/bin/post.php
-@@ -31,7 +31,7 @@
-
- require_once dirname(__FILE__)."/../../env.inc.php";
- require_once $gfcommon.'include/pre.php';
--require $gfplugins.'svntracker/common/Snoopy.class.php';
-+require '/usr/share/php/libphp-snoopy/Snoopy.class.php';
-
- /**
- * It returns the usage and exit program
+++ /dev/null
-Index: src/etc/httpd.conf.d/vhost-main.inc
-===================================================================
---- src.orig/etc/httpd.conf.d/vhost-main.inc
-+++ src/etc/httpd.conf.d/vhost-main.inc
-@@ -34,7 +34,7 @@
- Alias /scripts/jquery-simpletreemenu/ {core/source_path}/lib/vendor/jquery-simpletreemenu/
- Alias /scripts/prototype/ {core/source_path}/lib/vendor/prototype/
- Alias /scripts/scriptaculous/ {core/source_path}/lib/vendor/scriptaculous/
--Alias /scripts/yui/ {core/source_path}/lib/vendor/yui/build/
-+Alias /scripts/yui/ {core/source_path}/lib/vendor/yui/
-
- # For FusionForge without DNS delegation, uncomment this
- # and remove 30-vhosts-projects.conf
+++ /dev/null
-Please fill files in dsf-po using @PACKAGE@ instead of package name
-and @FORGENAME@ instead of Forge Name
+++ /dev/null
-#!/usr/bin/make -f
-
-# GNU copyright 1997 to 1999 by Joey Hess (sample file)
-# Copyright 2000 to 2002 by Roland Mas and Christian Bayle for the Sourceforge package
-# Copyright 2002 to 2008 by Roland Mas and Christian Bayle for the Gforge package
-# Copyright 2008 to 2010 by Roland Mas and Christian Bayle for the FusionForge package
-
-OLDPACKAGE=gforge
-PACKAGE=fusionforge
-SRCPACKAGE=fusionforge
-FORGENAME=FusionForge
-
-# Identify this FusionForge version
-# keep type intact and change forge in derivates,
-# unless there are deep changes (type is used for
-# the Forge-Identification meta header)
-WHICH_TYPE=FusionForge
-WHICH_FORGE=FusionForge
-WHICH_VERSION:=$(shell dpkg-parsechangelog | sed -n '/^Version: /s///p')
-
-# Replace macros present in the files for forge's name
-SED_REPLACE=sed -e 's/@PACKAGE@/$(PACKAGE)/g' -e 's/@SRCPACKAGE@/$(SRCPACKAGE)/g' -e 's/@OLDPACKAGE@/$(OLDPACKAGE)/g' -e 's/@FORGENAME@/$(FORGENAME)/g'
-
-DH=dh --with quilt
-
-default:
- @echo $(PACKAGE)
-
-# The substitutions bellow can be quite tricky, so use 'debian/rules testpat' to check if it's OK
-ENABLED_PLUGINS:=$(shell sh $(CURDIR)/utils/list-enabled-plugins.sh || echo error)
-ifeq (${ENABLED_PLUGINS},error)
-$(error list-enabled-plugins.sh failed)
-endif
-
-PPOSTINST=$(foreach i,$(ENABLED_PLUGINS),debian/$(PACKAGE)-plugin-$i.postinst)
-PPRERM=$(foreach i,$(ENABLED_PLUGINS),debian/$(PACKAGE)-plugin-$i.prerm)
-
-CRONDFILES=$(patsubst packaging/cron.d/%,debian/$(OLDPACKAGE)-%.cron.d,$(wildcard packaging/cron.d/[a-z]*))
-PCRONDFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/cron.d/[a-z]*),debian/$(PACKAGE)-plugin-$i.cron.d))
-
-DIRSFILES=$(patsubst packaging/dirs/%,debian/$(OLDPACKAGE)-%.dirs,$(wildcard packaging/dirs/[a-z]*))
-PDIRSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/dirs/[a-z]*),debian/$(PACKAGE)-plugin-$i.dirs))
-
-LINKSFILES=$(patsubst packaging/links/%,debian/$(OLDPACKAGE)-%.links,$(wildcard packaging/links/[a-z]*))
-PLINKSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/links/[a-z]*),debian/$(PACKAGE)-plugin-$i.links))
-
-INSTALLFILES=$(patsubst packaging/install/%,debian/$(OLDPACKAGE)-%.install,$(wildcard packaging/install/[a-z]*))
-PINSTALLFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/install/[a-z]*),debian/$(PACKAGE)-plugin-$i.install))
-
-PTRIGGERSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/debian/[a-z]*.triggers),debian/$(PACKAGE)-plugin-$i.triggers))
-
-DOCSFILES=$(patsubst packaging/docs/%,debian/$(OLDPACKAGE)-%.docs,$(wildcard packaging/docs/[a-z]*)) \
- $(patsubst packaging/docs/%,debian/$(PACKAGE)-%.docs,$(wildcard packaging/docs/[a-z]*))
-PDOCSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/docs/[a-z]*),debian/$(PACKAGE)-plugin-$i.docs))
-
-PEXAMPLESSFILES=$(foreach i,$(ENABLED_PLUGINS),$(if $(wildcard plugins/$i/packaging/examples/[a-z]*),debian/$(PACKAGE)-plugin-$i.examples))
-READMEFILES=$(patsubst packaging/readme/%,debian/$(OLDPACKAGE)-%.README.Debian,$(wildcard packaging/readme/[a-z]*)) \
- $(patsubst packaging/readme/%,debian/$(PACKAGE)-%.README.Debian,$(wildcard packaging/readme/[a-z]*))
-
-POFILES=$(patsubst debian/dsf-po/%,debian/po/%,$(wildcard debian/dsf-po/*) debian/po/POTFILES.in)
-
-# Displays the variables to check if globbing and substitutions are correct
-testpat:
- @echo "ENABLED_PLUGINS=$(ENABLED_PLUGINS)"
- @echo ""
- @echo "PPOSTINST=$(PPOSTINST)"
- @echo "PPRERM=$(PPRERM)"
- @echo ""
- @echo "CRONDFILES=$(CRONDFILES)"
- @echo "DIRSFILES=$(DIRSFILES)"
- @echo "LINKSFILES=$(LINKSFILES)"
- @echo "INSTALLFILES=$(INSTALLFILES)"
- @echo "DOCSFILES=$(DOCSFILES)"
- @echo "READMEFILES=$(READMEFILES)"
- @echo ""
- @echo "PCRONDFILES=$(PCRONDFILES)"
- @echo "PDIRSFILES=$(PDIRSFILES)"
- @echo "PLINKSFILES=$(PLINKSFILES)"
- @echo "PINSTALLFILES=$(PINSTALLFILES)"
- @echo "PDOCSFILES=$(PDOCSFILES)"
- @echo "PEXAMPLESFILES=$(PEXAMPLESFILES)"
-
-remove-binary-files:
- sh $(CURDIR)/deb-specific/manage-uufiles.sh clean
-
-.PHONY: conffiles
-conffiles: $(PPOSTINST) $(PPRERM) $(CRONDFILES) $(DIRSFILES) $(LINKSFILES) $(INSTALLFILES) $(DOCSFILES) $(READMEFILES) $(PCRONDFILES) $(PDIRSFILES) $(PLINKSFILES) $(PINSTALLFILES) $(PDOCSFILES) $(PTRIGGERSFILES) $(PEXAMPLESFILES) debian/control
-
-# Construct the plugin's 'postinst' script out of a template in debian/dsf-in/plugin.postinst
-debian/$(PACKAGE)-plugin-%.postinst:
- PLUGLONGNAME="$$(cat '$(CURDIR)/plugins/$*/NAME')"; \
- test -n "$$PLUGLONGNAME" || exit 1; \
- srcf='$(CURDIR)/plugins/$*/debian/plugin-$*.postinst'; \
- test -e "$$srcf" || srcf='$(CURDIR)/debian/dsf-in/plugin.postinst'; \
- $(SED_REPLACE) \
- -e 's/@PLUGSHORTNAME@/$*/g' \
- -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" \
- "$$srcf" >$@ || (rm -f $@; exit 1)
-
-# Construct the plugin's 'prerm' script out of a template in debian/dsf-in/plugin.prerm
-debian/$(PACKAGE)-plugin-%.prerm:
- PLUGLONGNAME="$$(cat '$(CURDIR)/plugins/$*/NAME')"; \
- test -n "$$PLUGLONGNAME" || exit 1; \
- srcf='$(CURDIR)/plugins/$*/debian/plugin-$*.prerm'; \
- test -e "$$srcf" || srcf='$(CURDIR)/debian/dsf-in/plugin.prerm'; \
- $(SED_REPLACE) \
- -e 's/@PLUGSHORTNAME@/$*/g' \
- -e "s/@PLUGLONGNAME@/$$PLUGLONGNAME/g" \
- "$$srcf" >$@ || (rm -f $@; exit 1)
-
-# Perform substitutions in plugin's cron.d file
-debian/$(PACKAGE)-plugin-%.cron.d:
- $(SED_REPLACE) -e 's/\$$FFUSER/$(OLDPACKAGE)/g' $(CURDIR)/plugins/$*/packaging/cron.d/plugin-$* > $@
-
-# Add a prefix and perform substitutions on the main cron.d files
-debian/$(OLDPACKAGE)-%.cron.d:
- (cat $(CURDIR)/packaging/cron.d/00phpcron ; $(SED_REPLACE) -e 's/\$$FFUSER/$(OLDPACKAGE)/g' $(CURDIR)/packaging/cron.d/$*) | $(SED_REPLACE) > $@
-
-# Perform subsitutions on 'dirs', 'links', 'install', 'docs', 'triggers' files
-debian/$(PACKAGE)-plugin-%.dirs:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/dirs/plugin-$* > $@
-
-debian/$(OLDPACKAGE)-%.dirs:
- $(SED_REPLACE) $(CURDIR)/packaging/dirs/$* > $@
-
-debian/$(PACKAGE)-plugin-%.links:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/links/plugin-$* > $@
-
-debian/$(OLDPACKAGE)-%.links:
- $(SED_REPLACE) $(CURDIR)/packaging/links/$* > $@
-
-debian/$(PACKAGE)-plugin-%.install:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/install/plugin-$* > $@
-
-debian/$(PACKAGE)-plugin-%.triggers:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/debian/plugin-$*.triggers > $@
-
-debian/$(OLDPACKAGE)-%.install:
- $(SED_REPLACE) $(CURDIR)/packaging/install/$* > $@
-
-debian/$(PACKAGE)-plugin-%.docs:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/docs/plugin-$* > $@
-debian/$(OLDPACKAGE)-%.docs:
- $(SED_REPLACE) $(CURDIR)/packaging/docs/$* > $@
-debian/$(PACKAGE)-%.docs:
- $(SED_REPLACE) $(CURDIR)/packaging/docs/$* > $@
-
-debian/$(PACKAGE)-plugin-%.examples:
- $(SED_REPLACE) $(CURDIR)/plugins/$*/packaging/examples/plugin-$* > $@
-
-debian/$(OLDPACKAGE)-%.README.Debian:
- $(SED_REPLACE) $(CURDIR)/packaging/readme/$* > $@
-debian/$(PACKAGE)-%.README.Debian:
- $(SED_REPLACE) $(CURDIR)/packaging/readme/$* > $@
-
-# Construct the control file
-debian/control: $(wildcard packaging/control/*) $(wildcard plugins/*/packaging/control/[1-9][0-9][0-9]*) $(wildcard plugins/*/etc/*.ini)
- ls $(CURDIR)/packaging/control/[0-9][0-9][0-9]* | grep -v shortdesc | \
- while read file ; do \
- cat $${file}; \
- if [ -f $${file}.shortdesc ] ; then \
- cat $(CURDIR)/packaging/control/AAAdesc; \
- echo ' .'; \
- cat $${file}.shortdesc; \
- fi; \
- echo ''; \
- done | $(SED_REPLACE) > $@
- @echo Enabled plugins: $(ENABLED_PLUGINS)
- @echo Skipped plugins: $(shell sh $(CURDIR)/utils/list-enabled-plugins.sh --disabled)
- for plugin in $(ENABLED_PLUGINS) ; do \
- ls plugins/$$plugin/packaging/control/[1-9][0-9][0-9]plugin-$$plugin ; \
- done | \
- while read file ; do \
- cat $${file}; \
- if [ -f $${file}.shortdesc ] ; then \
- cat $(CURDIR)/packaging/control/AAAdesc; \
- echo ' .'; \
- cat $${file}.shortdesc; \
- fi; \
- echo ''; \
- done | $(SED_REPLACE) >> $@
-
-# Update the translation of package descriptions fields
-debian/po/templates.pot: $(wildcard debian/dsf-in/*.templates.dsfh-in) $(wildcard debian/dsf-helper/*.templates)
- @debconf-updatepo --podir=debian/dsf-po
-
-debian/po/%:
- cat $(patsubst debian/po/%, debian/dsf-po/%, $@) | $(SED_REPLACE) > $@
-
-override_dh_auto_build:
-
-build: remove-binary-files debian/po/templates.pot conffiles
- $(DH) $@
-
-# Build man pages from Docbook sources
- cat debian/dsf-in/common.manpages | $(SED_REPLACE) > debian/$(OLDPACKAGE)-common.manpages
- /usr/bin/docbook-to-man debian/cvssh.sgml > cvssh.1
-
-# Build README.Debian from template
- cat debian/README.Debian.tmpl | $(SED_REPLACE) > debian/README.Debian
-
-# Uudecode binary files
- sh $(CURDIR)/deb-specific/manage-uufiles.sh decode
-
-# Build gettext *.mo files
- utils/manage-translations.sh build
-
-# Build FHS-compatible Apache config files (generates contents of etc/httpd.conf.d-fhs/ etc.)
- utils/manage-apache-config.sh build
-
-# Update SQL for list of country codes
- utils/ffcountries.pl > 200403251.sql
-
-# Preprocess files with DSF-Helper
- perl $(CURDIR)/deb-specific/dsf-helper.pl
-
-clean: remove-binary-files
- $(DH) $@
-
- rm -f $(CURDIR)/debian/*.cron.d
- rm -f $(CURDIR)/debian/*.dirs
- rm -f $(CURDIR)/debian/*.links
- rm -f $(CURDIR)/debian/*.install
- rm -f $(CURDIR)/debian/*.docs
- rm -f $(CURDIR)/debian/*.examples
- rm -f $(CURDIR)/debian/*.README.Debian
- rm -f $(CURDIR)/debian/$(PACKAGE)-config.sgml
- rm -f $(CURDIR)/debian/$(OLDPACKAGE)-common.manpages
- rm -f cvssh.1 $(PACKAGE)-config.1 200403251.sql
- rm -f $(CURDIR)/debian/README.Debian
- rm -rf locales
-
- rm -f $(POFILES) $(PPOSTINST) $(PPRERM)
-
- perl $(CURDIR)/deb-specific/dsf-helper.pl --clean
-
- rm -f $(PPOSTINST)
- rm -f $(PPRERM)
- rm -fr $(CURDIR)/etc/httpd.conf.d-fhs/ $(CURDIR)/etc/httpd.conf.d-opt/ $(CURDIR)/etc/httpd.conf.d-usrlocal/
-
-install: build
- $(DH) $@
-
- sed \
- -e 's!@PKGNAME@!${WHICH_FORGE}!g' \
- -e 's!@PKGVERSION@!${WHICH_VERSION}!g' \
- -e 's!@PLUCKERNAME@!${WHICH_TYPE}!g' \
- <$(CURDIR)/deb-specific/pkginfo.inc.php \
- >$(CURDIR)/debian/$(OLDPACKAGE)-common/usr/share/$(OLDPACKAGE)/common/pkginfo.inc.php
-
-# Fix permissions
- chmod 755 $(CURDIR)/debian/*/*/*/*/bin/* $(CURDIR)/debian/*/*/*/*/cronjobs/* \
- $(CURDIR)/debian/*/bin/* $(CURDIR)/debian/*/usr/share/*/plugins/*/bin/* \
- $(CURDIR)/debian/*/usr/share/*/plugins/*/cronjobs/*
- chmod 644 $(CURDIR)/debian/$(OLDPACKAGE)-db-postgresql/usr/share/$(OLDPACKAGE)/cronjobs/*.inc
-
- chmod 755 $(CURDIR)/debian/$(OLDPACKAGE)-db-postgresql/usr/share/*/db/*.php
-
- rm $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/*/www/scm/viewvc/bin/cgi/viewvc-strace.sh
-
- find $(CURDIR)/debian/$(OLDPACKAGE)-common/usr/share/*/common/docman/engine/ -type f -name \*.php -not -name \*.inc.php -exec chmod 0755 {} \;
- find $(CURDIR)/debian/$(OLDPACKAGE)-common/usr/share/*/common/docman/engine/ -type f -name \*.sh -exec chmod 0755 {} \;
-
- rm -f $(CURDIR)/debian/$(PACKAGE)-plugin-scm*/usr/share/*/plugins/scm*/*/README
- chmod 755 $(CURDIR)/debian/$(PACKAGE)-plugin-scmcvs/usr/share/*/plugins/scmcvs/sbin/*
-
-# Rename config files
- mv $(CURDIR)/debian/$(OLDPACKAGE)-common/etc/$(PACKAGE)/config.ini-fhs $(CURDIR)/debian/$(OLDPACKAGE)-common/etc/$(PACKAGE)/config.ini
- mkdir -p $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d
- cp $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/$(OLDPACKAGE)/etc/httpd.conf.d-fhs/*.conf $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/
- cp $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/$(OLDPACKAGE)/etc/httpd.conf.d-fhs/*.inc $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/
- cp $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/$(OLDPACKAGE)/etc/httpd.conf-fhs $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf
-
-# Remove those that need to be generated at install time
- rm $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/secrets.inc
- rm $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/vhost-list.inc
- rm $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/vhost-main.inc
- rm $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/etc/$(OLDPACKAGE)/httpd.conf.d/vhost-projects.inc
-
-# Remove Windows files
- rm -rf $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/*/www/scm/viewvc/windows
-
-# Remove extra copies of the GNU GPLv2
- rm -f $(CURDIR)/debian/$(OLDPACKAGE)-web-apache2/usr/share/*/www/themes/*/COPYING
-
-# Remove Snoopy class from binary packages (provided by libphp-snoopy)
- find $(addprefix $(CURDIR)/debian/, $(shell dh_listpackages)) -name Snoopy.class.php | xargs -r rm
-
-# Remove NuSOAP class from binary packages (provided by libnusoap-php)
- find $(addprefix $(CURDIR)/debian/, $(shell dh_listpackages)) -name nusoap.php | xargs -r rm
-
-# Remove potential SCM artefacts from binary packages
- find $(addprefix $(CURDIR)/debian/, $(shell dh_listpackages)) -name .svn -or -name {arch} -or -name .arch-ids -or -name .bzr -or -name .cvsignore | xargs -r rm -rf
-
-# Also remove uuencoded files
- find $(addprefix $(CURDIR)/debian/, $(shell dh_listpackages)) -name \*.uu | xargs -r rm
-
-
-binary: install
-
-%:
- $(DH) $@
+++ /dev/null
-version=3
-
-https://fusionforge.org/frs/?group_id=6 https://fusionforge.org/frs/download.php/.*/fusionforge-([\d\.]*).tar.bz2