openSUSE Commits
Threads by month
- ----- 2024 -----
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
February 2015
- 1 participants
- 1390 discussions
Hello community,
here is the log from the commit of package strongswan for openSUSE:Factory checked in at 2015-02-27 10:59:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/strongswan (Old)
and /work/SRC/openSUSE:Factory/.strongswan.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "strongswan"
Changes:
--------
--- /work/SRC/openSUSE:Factory/strongswan/strongswan.changes 2014-11-26 10:33:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.strongswan.new/strongswan.changes 2015-02-27 11:00:10.000000000 +0100
@@ -1,0 +2,99 @@
+Mon Jan 5 14:38:46 UTC 2015 - mt(a)suse.de
+
+- Updated to strongSwan 5.2.2 providing the following changes:
+ Changes in version 5.2.2:
+ * Fixed a denial-of-service vulnerability triggered by an IKEv2 Key Exchange
+ payload that contains the Diffie-Hellman group 1025. This identifier was
+ used internally for DH groups with custom generator and prime. Because
+ these arguments are missing when creating DH objects based on the KE
+ payload an invalid pointer dereference occurred. This allowed an attacker
+ to crash the IKE daemon with a single IKE_SA_INIT message containing such
+ a KE payload. The vulnerability has been registered as CVE-2014-9221.
+ * The left/rightid options in ipsec.conf, or any other identity in
+ strongSwan, now accept prefixes to enforce an explicit type, such as
+ email: or fqdn:. Note that no conversion is done for the remaining string,
+ refer to ipsec.conf(5) for details.
+ * The post-quantum Bimodal Lattice Signature Scheme (BLISS) can be used as
+ an IKEv2 public key authentication method. The pki tool offers full
+ support for the generation of BLISS key pairs and certificates.
+ * Fixed mapping of integrity algorithms negotiated for AH via IKEv1.
+ This could cause interoperability issues when connecting to older versions
+ of charon.
+ Changes in version 5.2.1:
+ * The new charon-systemd IKE daemon implements an IKE daemon tailored for
+ use with systemd. It avoids the dependency on ipsec starter and uses
+ swanctl as configuration backend, building a simple and lightweight
+ solution. It supports native systemd journal logging.
+ * Support for IKEv2 fragmentation as per RFC 7383 has been added. Like IKEv1
+ fragmentation it can be enabled by setting fragmentation=yes in ipsec.conf.
+ * Support of the TCG TNC IF-M Attribute Segmentation specification proposal.
+ All attributes can be segmented. Additionally TCG/SWID Tag, TCG/SWID Tag ID
+ and IETF/Installed Packages attributes can be processed incrementally on a
+ per segment basis.
+ * The new ext-auth plugin calls an external script to implement custom IKE_SA
+ authorization logic, courtesy of Vyronas Tsingaras.
+ * For the vici plugin a ruby gem has been added to allow ruby applications to
+ control or monitor the IKE daemon. The vici documentation has been updated
+ to include a description of the available operations and some simple
+ examples using both the libvici C interface and the ruby gem.
+ Changes in version 5.2.0:
+ * strongSwan has been ported to the Windows platform. Using a MinGW toolchain,
+ many parts of the strongSwan codebase run natively on Windows 7 / 2008 R2
+ and newer releases. charon-svc implements a Windows IKE service based on
+ libcharon, the kernel-iph and kernel-wfp plugins act as networking and IPsec
+ backend on the Windows platform. socket-win provides a native IKE socket
+ implementation, while winhttp fetches CRL and OCSP information using the
+ WinHTTP API.
+ * The new vici plugin provides a Versatile IKE Configuration Interface for
+ charon. Using the stable IPC interface, external applications can configure,
+ control and monitor the IKE daemon. Instead of scripting the ipsec tool
+ and generating ipsec.conf, third party applications can use the new interface
+ for more control and better reliability.
+ * Built upon the libvici client library, swanctl implements the first user of
+ the VICI interface. Together with a swanctl.conf configuration file,
+ connections can be defined, loaded and managed. swanctl provides a portable,
+ complete IKE configuration and control interface for the command line.
+ The first six swanctl example scenarios have been added.
+ * The SWID IMV implements a JSON-based REST API which allows the exchange
+ of SWID tags and Software IDs with the strongTNC policy manager.
+ * The SWID IMC can extract all installed packages from the dpkg (Debian,
+ Ubuntu, Linux Mint etc.), rpm (Fedora, RedHat, OpenSUSE, etc.), or
+ pacman (Arch Linux, Manjaro, etc.) package managers, respectively, using
+ the swidGenerator (https://github.com/strongswan/swidGenerator) which
+ generates SWID tags according to the new ISO/IEC 19770-2:2014 standard.
+ * All IMVs now share the access requestor ID, device ID and product info
+ of an access requestor via a common imv_session object.
+ * The Attestation IMC/IMV pair supports the IMA-NG measurement format
+ introduced with the Linux 3.13 kernel.
+ * The aikgen tool generates an Attestation Identity Key bound to a TPM.
+ * Implemented the PT-EAP transport protocol (RFC 7171) for Trusted Network
+ Connect.
+ * The ipsec.conf replay_window option defines connection specific IPsec
+ replay windows. Original patch courtesy of Zheng Zhong and Christophe
+ Gouault from 6Wind.
+- Adjusted file lists and removed obsolete patches
+ [- 0005-restore-registration-algorithm-order.bug897512.patch,
+ - 0006-strongswan-5.1.2-5.2.1_modp_custom.CVE-2014-9221.patch]
+- Adopted/Merged fipscheck patches
+ [* strongswan_fipscheck.patch, strongswan_fipsfilter.patch]
+
+-------------------------------------------------------------------
+Wed Dec 17 10:15:23 UTC 2014 - mt(a)suse.de
+
+- Disallow brainpool elliptic curve groups in fips mode (bnc#856322).
+ [* strongswan_fipsfilter.patch]
+
+-------------------------------------------------------------------
+Thu Dec 11 10:21:01 UTC 2014 - mt(a)suse.de
+
+- Applied an upstream fix for a denial-of-service vulnerability,
+ which can be triggered by an IKEv2 Key Exchange payload, that
+ contains the Diffie-Hellman group 1025 (bsc#910491,CVE-2014-9221).
+ [+ 0006-strongswan-5.1.2-5.2.1_modp_custom.CVE-2014-9221.patch]
+- Adjusted whilelist of approved algorithms in fips mode (bsc#856322).
+ [* strongswan_fipsfilter.patch]
+- Renamed patch file to match it's patch number:
+ [- 0001-restore-registration-algorithm-order.bug897512.patch,
+ + 0005-restore-registration-algorithm-order.bug897512.patch]
+
+-------------------------------------------------------------------
Old:
----
0001-restore-registration-algorithm-order.bug897512.patch
strongswan-5.1.3-rpmlintrc
strongswan-5.1.3.tar.bz2
strongswan-5.1.3.tar.bz2.sig
New:
----
strongswan-5.2.2-rpmlintrc
strongswan-5.2.2.tar.bz2
strongswan-5.2.2.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ strongswan.spec ++++++
--- /var/tmp/diff_new_pack.wkO8yA/_old 2015-02-27 11:00:12.000000000 +0100
+++ /var/tmp/diff_new_pack.wkO8yA/_new 2015-02-27 11:00:12.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package strongswan
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: strongswan
-Version: 5.1.3
+Version: 5.2.2
Release: 0
%define upstream_version %{version}
%define strongswan_docdir %{_docdir}/%{name}
@@ -82,7 +82,6 @@
Patch3: %{name}_fipscheck.patch
Patch4: %{name}_fipsfilter.patch
%endif
-Patch5: 0001-restore-registration-algorithm-order.bug897512.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: bison
BuildRequires: curl-devel
@@ -293,7 +292,6 @@
%patch3 -p0
%patch4 -p1
%endif
-%patch5 -p1
sed -e 's|@libexecdir@|%_libexecdir|g' \
< $RPM_SOURCE_DIR/strongswan.init.in \
> strongswan.init
@@ -643,10 +641,11 @@
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/charon.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/charon-logging.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/imcv.conf
+%config(noreplace) %attr(600,root,root) %{strongswan_configs}/pki.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/pool.conf
+%config(noreplace) %attr(600,root,root) %{strongswan_configs}/scepclient.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/starter.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/tnc.conf
-%config(noreplace) %attr(600,root,root) %{strongswan_configs}/tools.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/charon/addrblock.conf
%config(noreplace) %attr(600,root,root) %{strongswan_configs}/charon/aes.conf
%if %{with afalg}
@@ -949,10 +948,11 @@
%{strongswan_templates}/config/strongswan.d/charon-logging.conf
%{strongswan_templates}/config/strongswan.d/charon.conf
%{strongswan_templates}/config/strongswan.d/imcv.conf
+%{strongswan_templates}/config/strongswan.d/pki.conf
%{strongswan_templates}/config/strongswan.d/pool.conf
+%{strongswan_templates}/config/strongswan.d/scepclient.conf
%{strongswan_templates}/config/strongswan.d/starter.conf
%{strongswan_templates}/config/strongswan.d/tnc.conf
-%{strongswan_templates}/config/strongswan.d/tools.conf
%{strongswan_templates}/database/imv/data.sql
%{strongswan_templates}/database/imv/tables.sql
@@ -982,6 +982,7 @@
%dir %{strongswan_templates}/database
%dir %{strongswan_templates}/database/sql
%{strongswan_templates}/config/plugins/mysql.conf
+%{strongswan_templates}/database/imv/tables-mysql.sql
%{strongswan_templates}/database/sql/mysql.sql
%endif
++++++ strongswan-5.1.3-rpmlintrc -> strongswan-5.2.2-rpmlintrc ++++++
++++++ strongswan-5.1.3.tar.bz2 -> strongswan-5.2.2.tar.bz2 ++++++
++++ 249224 lines of diff (skipped)
++++++ strongswan_fipscheck.patch ++++++
--- /var/tmp/diff_new_pack.wkO8yA/_old 2015-02-27 11:00:18.000000000 +0100
+++ /var/tmp/diff_new_pack.wkO8yA/_new 2015-02-27 11:00:18.000000000 +0100
@@ -1,6 +1,6 @@
--- src/ipsec/_ipsec.in
-+++ src/ipsec/_ipsec.in 2014/11/07 11:28:25
-@@ -44,6 +44,26 @@ export IPSEC_DIR IPSEC_BINDIR IPSEC_SBIN
++++ src/ipsec/_ipsec.in
+@@ -44,6 +44,26 @@ export IPSEC_DIR IPSEC_BINDIR IPSEC_SBINDIR IPSEC_CONFDIR IPSEC_PIDDIR IPSEC_SCR
IPSEC_DISTRO="Institute for Internet Technologies and Applications\nUniversity of Applied Sciences Rapperswil, Switzerland"
@@ -26,8 +26,8 @@
+
case "$1" in
'')
- echo "Usage: $IPSEC_SCRIPT command argument ..."
-@@ -166,6 +186,7 @@ rereadall|purgeocsp|listcounters|resetco
+ echo "$IPSEC_SCRIPT command [arguments]"
+@@ -155,6 +175,7 @@ rereadall|purgeocsp|listcounters|resetcounters)
shift
if [ -e $IPSEC_CHARON_PID ]
then
@@ -35,7 +35,7 @@
$IPSEC_STROKE "$op" "$@"
rc="$?"
fi
-@@ -175,6 +196,7 @@ purgeike|purgecrls|purgecerts)
+@@ -164,6 +185,7 @@ purgeike|purgecrls|purgecerts)
rc=7
if [ -e $IPSEC_CHARON_PID ]
then
@@ -43,7 +43,7 @@
$IPSEC_STROKE "$1"
rc="$?"
fi
-@@ -208,6 +230,7 @@ route|unroute)
+@@ -197,6 +219,7 @@ route|unroute)
fi
if [ -e $IPSEC_CHARON_PID ]
then
@@ -51,7 +51,7 @@
$IPSEC_STROKE "$op" "$1"
rc="$?"
fi
-@@ -217,6 +240,7 @@ secrets)
+@@ -206,6 +229,7 @@ secrets)
rc=7
if [ -e $IPSEC_CHARON_PID ]
then
@@ -59,7 +59,7 @@
$IPSEC_STROKE rereadsecrets
rc="$?"
fi
-@@ -224,6 +248,7 @@ secrets)
+@@ -213,6 +237,7 @@ secrets)
;;
start)
shift
@@ -67,7 +67,7 @@
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/ipsec
fi
-@@ -297,6 +322,7 @@ up)
+@@ -286,6 +311,7 @@ up)
rc=7
if [ -e $IPSEC_CHARON_PID ]
then
@@ -75,7 +75,7 @@
$IPSEC_STROKE up "$1"
rc="$?"
fi
-@@ -332,6 +358,11 @@ esac
+@@ -325,6 +351,11 @@ esac
cmd="$1"
shift
++++++ strongswan_fipsfilter.patch ++++++
--- /var/tmp/diff_new_pack.wkO8yA/_old 2015-02-27 11:00:18.000000000 +0100
+++ /var/tmp/diff_new_pack.wkO8yA/_new 2015-02-27 11:00:18.000000000 +0100
@@ -1,5 +1,12 @@
+From 8f3f1bd6907df8221a93c849ed4b43474444e13b Mon Sep 17 00:00:00 2001
+From: Marius Tomaschewski <mt(a)suse.de>
+Date: Mon, 5 Jan 2015 14:57:39 +0100
+Subject: [PATCH] strongswan: filter algorithms for fips mode
+
+References: fate#316931,bnc#856322
+
diff --git a/src/libcharon/config/proposal.c b/src/libcharon/config/proposal.c
-index 2ecdb4f..85767ab 100644
+index e59dcd9..f07f4a2 100644
--- a/src/libcharon/config/proposal.c
+++ b/src/libcharon/config/proposal.c
@@ -26,6 +26,11 @@
@@ -14,7 +21,7 @@
ENUM(protocol_id_names, PROTO_NONE, PROTO_IPCOMP,
"PROTO_NONE",
-@@ -185,6 +190,130 @@ METHOD(proposal_t, strip_dh, void,
+@@ -185,6 +190,122 @@ METHOD(proposal_t, strip_dh, void,
enumerator->destroy(enumerator);
}
@@ -104,24 +111,16 @@
+ case DIFFIE_HELLMAN_GROUP:
+ switch (alg)
+ {
-+ case MODP_1024_BIT:
-+ case MODP_1536_BIT:
+ case MODP_2048_BIT:
+ case MODP_3072_BIT:
+ case MODP_4096_BIT:
+ case MODP_8192_BIT:
-+ case MODP_1024_160:
+ case MODP_2048_224:
+ case MODP_2048_256:
-+ case ECP_192_BIT:
+ case ECP_224_BIT:
+ case ECP_256_BIT:
+ case ECP_384_BIT:
+ case ECP_521_BIT:
-+ case ECP_224_BP:
-+ case ECP_256_BP:
-+ case ECP_384_BP:
-+ case ECP_512_BP:
+ return TRUE;
+ default:
+ break;
@@ -145,7 +144,7 @@
/**
* Select a matching proposal from this and other, insert into selected.
*/
-@@ -500,6 +629,11 @@ static bool add_string_algo(private_proposal_t *this, const char *alg)
+@@ -502,6 +623,11 @@ static bool add_string_algo(private_proposal_t *this, const char *alg)
return FALSE;
}
@@ -157,63 +156,69 @@
add_algorithm(this, token->type, token->algorithm, token->keysize);
return TRUE;
-@@ -639,6 +773,8 @@ static void proposal_add_supported_ike(private_proposal_t *this)
- enumerator = lib->crypto->create_crypter_enumerator(lib->crypto);
- while (enumerator->enumerate(enumerator, &encryption, &plugin_name))
- {
-+ if (!fips_filter(PROTO_IKE, ENCRYPTION_ALGORITHM, encryption))
-+ continue;
- switch (encryption)
+@@ -643,6 +769,9 @@ static bool proposal_add_supported_ike(private_proposal_t *this, bool aead)
+ enumerator = lib->crypto->create_aead_enumerator(lib->crypto);
+ while (enumerator->enumerate(enumerator, &encryption, &plugin_name))
{
- case ENCR_AES_CBC:
-@@ -665,6 +801,9 @@ static void proposal_add_supported_ike(private_proposal_t *this)
- enumerator = lib->crypto->create_aead_enumerator(lib->crypto);
- while (enumerator->enumerate(enumerator, &encryption, &plugin_name))
- {
-+ if (!fips_filter(PROTO_IKE, ENCRYPTION_ALGORITHM, encryption))
-+ continue;
++ if (!fips_filter(PROTO_IKE, ENCRYPTION_ALGORITHM, encryption))
++ continue;
+
- switch (encryption)
+ switch (encryption)
+ {
+ case ENCR_AES_CCM_ICV8:
+@@ -675,6 +804,9 @@ static bool proposal_add_supported_ike(private_proposal_t *this, bool aead)
+ enumerator = lib->crypto->create_crypter_enumerator(lib->crypto);
+ while (enumerator->enumerate(enumerator, &encryption, &plugin_name))
{
- case ENCR_AES_CCM_ICV8:
-@@ -690,6 +829,8 @@ static void proposal_add_supported_ike(private_proposal_t *this)
- enumerator = lib->crypto->create_signer_enumerator(lib->crypto);
- while (enumerator->enumerate(enumerator, &integrity, &plugin_name))
- {
-+ if (!fips_filter(PROTO_IKE, INTEGRITY_ALGORITHM, integrity))
-+ continue;
- switch (integrity)
++ if (!fips_filter(PROTO_IKE, ENCRYPTION_ALGORITHM, encryption))
++ continue;
++
+ switch (encryption)
+ {
+ case ENCR_AES_CBC:
+@@ -706,6 +838,9 @@ static bool proposal_add_supported_ike(private_proposal_t *this, bool aead)
+ enumerator = lib->crypto->create_signer_enumerator(lib->crypto);
+ while (enumerator->enumerate(enumerator, &integrity, &plugin_name))
{
- case AUTH_HMAC_SHA1_96:
-@@ -710,6 +851,8 @@ static void proposal_add_supported_ike(private_proposal_t *this)
++ if (!fips_filter(PROTO_IKE, INTEGRITY_ALGORITHM, integrity))
++ continue;
++
+ switch (integrity)
+ {
+ case AUTH_HMAC_SHA1_96:
+@@ -727,6 +862,9 @@ static bool proposal_add_supported_ike(private_proposal_t *this, bool aead)
enumerator = lib->crypto->create_prf_enumerator(lib->crypto);
while (enumerator->enumerate(enumerator, &prf, &plugin_name))
{
+ if (!fips_filter(PROTO_IKE, PSEUDO_RANDOM_FUNCTION, prf))
+ continue;
++
switch (prf)
{
case PRF_HMAC_SHA1:
-@@ -730,6 +873,8 @@ static void proposal_add_supported_ike(private_proposal_t *this)
+@@ -747,6 +885,9 @@ static bool proposal_add_supported_ike(private_proposal_t *this, bool aead)
enumerator = lib->crypto->create_dh_enumerator(lib->crypto);
while (enumerator->enumerate(enumerator, &group, &plugin_name))
{
+ if (!fips_filter(PROTO_IKE, DIFFIE_HELLMAN_GROUP, group))
+ continue;
++
switch (group)
{
case MODP_NULL:
-@@ -776,31 +921,35 @@ proposal_t *proposal_create_default(protocol_id_t protocol)
+@@ -795,6 +936,10 @@ proposal_t *proposal_create_default(protocol_id_t protocol)
{
private_proposal_t *this = (private_proposal_t*)proposal_create(protocol, 0);
+#define fips_add_algorithm(this, type, alg, len) \
+ if (fips_filter(this->protocol, type, alg)) \
+ add_algorithm(this, type, alg, len);
++
switch (protocol)
{
case PROTO_IKE:
- proposal_add_supported_ike(this);
+@@ -805,25 +950,28 @@ proposal_t *proposal_create_default(protocol_id_t protocol)
+ }
break;
case PROTO_ESP:
- add_algorithm(this, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 128);
@@ -248,7 +253,12 @@
default:
break;
}
++
+#undef fips_add_algorithm
++
return &this->public;
}
+--
+2.2.1
+
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package chromium for openSUSE:Factory checked in at 2015-02-27 10:59:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chromium (Old)
and /work/SRC/openSUSE:Factory/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium"
Changes:
--------
--- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2015-02-16 21:47:10.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.chromium.new/chromium.changes 2015-02-27 10:59:57.000000000 +0100
@@ -1,0 +2,16 @@
+Mon Feb 23 16:06:08 UTC 2015 - meissner(a)suse.com
+
+- uses around 5.8GB for building, assign like 6GB in _constraints
+
+-------------------------------------------------------------------
+Fri Feb 20 17:47:30 UTC 2015 - tittiatcoke(a)gmail.com
+
+- Update to Chromium 40.0.2214.115
+ * Bugfixes
+
+-------------------------------------------------------------------
+Tue Feb 18 12:47:30 UTC 2015 - tittiatcoke(a)gmail.com
+
+- Utilize the _service file to download the chromium tarball
+
+-------------------------------------------------------------------
Old:
----
chromium-40.0.2214.111.tar.xz
New:
----
_service
chromium-40.0.2214.115.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ chromium.spec ++++++
--- /var/tmp/diff_new_pack.tKxqlP/_old 2015-02-27 11:00:08.000000000 +0100
+++ /var/tmp/diff_new_pack.tKxqlP/_new 2015-02-27 11:00:08.000000000 +0100
@@ -20,7 +20,7 @@
%define chromium_system_libs 0
Name: chromium
-Version: 40.0.2214.111
+Version: 40.0.2214.115
Release: 0
Summary: Google's opens source browser project
License: BSD-3-Clause and LGPL-2.1+
++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.tKxqlP/_old 2015-02-27 11:00:08.000000000 +0100
+++ /var/tmp/diff_new_pack.tKxqlP/_new 2015-02-27 11:00:08.000000000 +0100
@@ -1,6 +1,8 @@
<?xml version="1.0"?>
<constraints>
<hardware>
+ <disk> <size unit="M">6000</size> </disk>
+
<memory>
<size unit="M">4000</size>
</memory>
++++++ _service ++++++
<services>
<service name="download_files" mode="localonly"/>
</services>
++++++ chromium-40.0.2214.111.tar.xz -> chromium-40.0.2214.115.tar.xz ++++++
/work/SRC/openSUSE:Factory/chromium/chromium-40.0.2214.111.tar.xz /work/SRC/openSUSE:Factory/.chromium.new/chromium-40.0.2214.115.tar.xz differ: char 27, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package qiv for openSUSE:Factory checked in at 2015-02-27 10:59:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qiv (Old)
and /work/SRC/openSUSE:Factory/.qiv.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qiv"
Changes:
--------
--- /work/SRC/openSUSE:Factory/qiv/qiv.changes 2014-12-16 14:47:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.qiv.new/qiv.changes 2015-02-27 10:59:44.000000000 +0100
@@ -1,0 +2,64 @@
+Sat Feb 21 14:15:02 UTC 2015 - benoit.monin(a)gmx.fr
+
+- update to version 2.3.1:
+ * add libXext to libraries for linking in Makefile
+- additionnal changes from version 2.3.0:
+ * unicode fix for gps2url.py
+ * Some cleanup in the debian subdir
+ * Add desktop integration. Add gps2url.py script
+ * browse option now starts with first picture on command line
+ * fix direction of scrollwheel for next/previous image
+ * center mouse cursor position in magnifying window
+ * external script gps2url.py to extract GPS coordinates from an
+ image and call firefox with google maps url
+ * integration into qiv-command.example
+ * update COPYING and optimize libmagic calls
+ * improve display of exif GPS tags
+ * new option --vikeys to allow for vi-style movement
+ * disable screensaver and DPMS during slideshow
+ * improvements to qiv-command.example
+ * fix possible segfaults when dealing with corrupt embedded color
+ profiles
+ * do not segfault when "browse" option is called without a
+ further argument
+ * fix magnifying window. Zoom factor of magnifying window can be
+ changed by +/- keys
+ * fix missing #ifdef HAVE_EXIF for exif header file
+ * get rid of XID collision
+ * code cleanup, mostly exif
+ * Make conditional rotate leave images that fit alone
+ * Add --followlinks option to all symlinks to dirs
+ * Fixed inconsistency with rotate option, add conditional
+ rotation
+ * Add runtime option to display Exif information
+ * Add runtime option to toggle grab mode
+ * Add support for embedded color profiles in tiff
+ * Better fullscreen handling with multi monitors
+ Xinerama is no longer needed
+ * Notice when a mouse click makes the display-text disappear
+ * Center display-text on the preferred xinerama screen
+ * Simplify image-move checking code and allow it to move an image
+ farther
+ * Replace GDK_<keyname> with GDK_KEY_<keyname>
+ * Add support for embedded color profiles in jpg
+ * replace gdk_window_set_icon with gdk_window_set_icon_list
+ * add color profile support via lcms2
+ * when using "--watch" option, make sure pic is not reloaded
+ while still written
+- drop patches merged upstream:
+ * magic-optimization.patch
+ * update-copying.patch
+- drop qiv-2.2.4-fix-bashisms.patch:
+ shebang of qiv-command.example has been changed to /bin/bash
+- remove libXinerama-devel from BuildRequires: not needed anymore
+- add new build dependencies:
+ * libjpeg8-devel
+ * liblcms2-devel
+ * libtiff-devel
+ * update-desktop-files
+- remove exec bit from contrib scripts to avoid additional
+ dependencies
+- install icon and desktop file
+- install contrib scripts with the documentation
+
+-------------------------------------------------------------------
Old:
----
magic-optimization.patch
qiv-2.2.4-fix-bashisms.patch
qiv-2.2.4.tgz
update-copying.patch
New:
----
qiv-2.3.1.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qiv.spec ++++++
--- /var/tmp/diff_new_pack.nEl81A/_old 2015-02-27 10:59:46.000000000 +0100
+++ /var/tmp/diff_new_pack.nEl81A/_new 2015-02-27 10:59:46.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package qiv
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,22 +17,22 @@
Name: qiv
-Version: 2.2.4
+Version: 2.3.1
Release: 0
Summary: Probably the fastest and simplest image viewer on the planet
License: GPL-2.0+
Group: Productivity/Graphics/Viewers
Url: http://spiegl.de/qiv/
Source0: http://spiegl.de/qiv/download/qiv-%{version}.tgz
-Patch0: magic-optimization.patch
-Patch1: update-copying.patch
-Patch2: qiv-2.2.4-fix-bashisms.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: file-devel
BuildRequires: gtk2-devel
BuildRequires: imlib2-devel
-BuildRequires: libXinerama-devel
BuildRequires: libexif-devel
+BuildRequires: libjpeg8-devel
+BuildRequires: liblcms2-devel
+BuildRequires: libtiff-devel
+BuildRequires: update-desktop-files
# imlib itself only recommends that but we actually need them to
# load images
Requires: imlib2-loaders
@@ -76,27 +76,30 @@
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
sed -i 's/-O2/$(RPM_OPT_FLAGS)/' Makefile
+# Remove exec bit from contrib scripts to avoid additional dependencies
+chmod -x contrib/*
+
%build
make %{?_smp_mflags}
%install
install -Dpm 755 qiv $RPM_BUILD_ROOT%{_bindir}/qiv
install -Dpm 644 qiv.1 $RPM_BUILD_ROOT%{_mandir}/man1/qiv.1
-mkdir examples
-mv qiv-command.example examples/qiv-command.example
+install -Dpm 0644 qiv.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/qiv.png
+install -Dpm 0644 qiv.desktop $RPM_BUILD_ROOT%{_datadir}/applications/qiv.desktop
+%suse_update_desktop_file qiv
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
-%doc README README.COPYING README.TODO examples
+%doc README README.COPYING README.TODO contrib
%{_bindir}/qiv
%{_mandir}/man1/qiv.1*
+%{_datadir}/pixmaps/qiv.png
+%{_datadir}/applications/qiv.desktop
%changelog
++++++ qiv-2.2.4.tgz -> qiv-2.3.1.tgz ++++++
++++ 3335 lines of diff (skipped)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gri for openSUSE:Factory checked in at 2015-02-27 10:59:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gri (Old)
and /work/SRC/openSUSE:Factory/.gri.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gri"
Changes:
--------
--- /work/SRC/openSUSE:Factory/gri/gri.changes 2012-08-04 09:12:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gri.new/gri.changes 2015-02-27 10:59:42.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Feb 24 18:58:37 UTC 2015 - dimstar(a)opensuse.org
+
+- Add gri-texinfo-5.0.patch: Fix build with texinfo 5.0.
+
+-------------------------------------------------------------------
New:
----
gri-texinfo-5.0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gri.spec ++++++
--- /var/tmp/diff_new_pack.drZGwD/_old 2015-02-27 10:59:44.000000000 +0100
+++ /var/tmp/diff_new_pack.drZGwD/_new 2015-02-27 10:59:44.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gri
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,6 +25,7 @@
Url: http://gri.sourceforge.net
Source: %{name}-%{version}.tar.bz2
Patch0: gfi-2.2.23-perl.patch
+Patch1: gri-texinfo-5.0.patch
BuildRequires: ImageMagick
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -58,6 +59,7 @@
%prep
%setup -q
%patch0
+%patch1 -p1
%build
%configure
++++++ gri-texinfo-5.0.patch ++++++
Index: gri-2.12.23/doc/gri.texi
===================================================================
--- gri-2.12.23.orig/doc/gri.texi
+++ gri-2.12.23/doc/gri.texi
@@ -18486,7 +18486,7 @@ Versions exist for MSDOS, windows, and L
(Actually, the windows version is just the MSDOS version, which can be
run inside an msdos window within windows-95, windows-NT, etc.)
-@subsubsection MSDOS Operating System
+@subsection MSDOS Operating System
@cindex compilation under MSDOS
@cindex MSDOS compilation
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xtrabackup for openSUSE:Factory checked in at 2015-02-27 10:59:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xtrabackup (Old)
and /work/SRC/openSUSE:Factory/.xtrabackup.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xtrabackup"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xtrabackup/xtrabackup.changes 2015-01-23 15:47:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xtrabackup.new/xtrabackup.changes 2015-02-27 10:59:41.000000000 +0100
@@ -1,0 +2,21 @@
+Wed Feb 25 08:31:57 UTC 2015 - astieger(a)suse.com
+
+- Percona XtraBackup 2.2.9:
+ * Percona XtraBackup was vulnerable to MITM attack which could
+ allow exfiltration of MySQL configuration information via
+ --version-check option. [boo#919298] CVE-2015-1027 lp#1408375.
+ The openSUSE package has the version check disabled by default.
+ * xtrabackup_galera_info file isn't overwritten during the Galera
+ auto-recovery. lp#1418584.
+ * Percona XtraBackup now sets the maximum supported session value
+ for lock_wait_timeout variable to prevent unnecessary timeouts
+ when the global value is changed from the default. lp#1410339.
+ * New option --backup-locks, enabled by default, has been
+ implemented to control if backup locks will be used even if
+ they are supported by the server. To disable backup locks
+ innobackupex should be run with innobackupex --no-backup-locks
+ option. lp#1418820.
+- Add percona-xtrabackup-2.2.9-nodoc.patch to make build work
+ without documentation directories deleted by spec file
+
+-------------------------------------------------------------------
Old:
----
percona-xtrabackup-2.2.8-nodoc.tar.xz
New:
----
percona-xtrabackup-2.2.9-nodoc.patch
percona-xtrabackup-2.2.9-nodoc.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xtrabackup.spec ++++++
--- /var/tmp/diff_new_pack.EV8U5Z/_old 2015-02-27 10:59:42.000000000 +0100
+++ /var/tmp/diff_new_pack.EV8U5Z/_new 2015-02-27 10:59:42.000000000 +0100
@@ -17,7 +17,7 @@
Name: xtrabackup
-Version: 2.2.8
+Version: 2.2.9
Release: 0
Summary: Online backup for MySQL / InnoDB
License: GPL-2.0
@@ -29,6 +29,7 @@
Source4: xtrabackup-nodoc.sh
Patch1: percona-xtrabackup-2.2.x-srv_buf_size.patch
Patch2: percona-xtrabackup-2.2.x-disable-default-version-check.patch
+Patch3: percona-xtrabackup-2.2.9-nodoc.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
@@ -88,6 +89,7 @@
%{__find} storage/innobase/xtrabackup -maxdepth 1 -type d -iname "doc*" -print && exit 1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%build
set -ue
++++++ percona-xtrabackup-2.2.9-nodoc.patch ++++++
From: Andreas Stieger <astieger(a)suse.com>
Date: Wed, 25 Feb 2015 09:30:48 +0100
Upstream: no
openSUSE's spec file deletes doc directories due to licencing/trademark.
Make the build work.
Index: percona-xtrabackup-2.2.9/storage/innobase/xtrabackup/CMakeLists.txt
===================================================================
--- percona-xtrabackup-2.2.9.orig/storage/innobase/xtrabackup/CMakeLists.txt
+++ percona-xtrabackup-2.2.9/storage/innobase/xtrabackup/CMakeLists.txt
@@ -25,4 +25,3 @@ INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DI
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test)
-ADD_SUBDIRECTORY(doc/source)
++++++ percona-xtrabackup-2.2.8-nodoc.tar.xz -> percona-xtrabackup-2.2.9-nodoc.tar.xz ++++++
/work/SRC/openSUSE:Factory/xtrabackup/percona-xtrabackup-2.2.8-nodoc.tar.xz /work/SRC/openSUSE:Factory/.xtrabackup.new/percona-xtrabackup-2.2.9-nodoc.tar.xz differ: char 26, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
27 Feb '15
Hello community,
here is the log from the commit of package rubygem-gettext_i18n_rails_js for openSUSE:Factory checked in at 2015-02-27 10:59:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-gettext_i18n_rails_js (Old)
and /work/SRC/openSUSE:Factory/.rubygem-gettext_i18n_rails_js.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-gettext_i18n_rails_js"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-gettext_i18n_rails_js/rubygem-gettext_i18n_rails_js.changes 2015-02-25 02:18:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-gettext_i18n_rails_js.new/rubygem-gettext_i18n_rails_js.changes 2015-02-27 10:59:39.000000000 +0100
@@ -1,0 +2,5 @@
+Wed Feb 25 05:30:45 UTC 2015 - coolo(a)suse.com
+
+- updated to version 1.0.1
+
+-------------------------------------------------------------------
Old:
----
gettext_i18n_rails_js-1.0.0.gem
New:
----
gettext_i18n_rails_js-1.0.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-gettext_i18n_rails_js.spec ++++++
--- /var/tmp/diff_new_pack.qEr0Xi/_old 2015-02-27 10:59:40.000000000 +0100
+++ /var/tmp/diff_new_pack.qEr0Xi/_new 2015-02-27 10:59:40.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-gettext_i18n_rails_js
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,14 +24,14 @@
#
Name: rubygem-gettext_i18n_rails_js
-Version: 1.0.0
+Version: 1.0.1
Release: 0
%define mod_name gettext_i18n_rails_js
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
BuildRequires: %{ruby >= 1.9.3}
BuildRequires: %{rubygem gem2rpm}
+BuildRequires: ruby-macros >= 5
Url: https://github.com/webhippie/gettext_i18n_rails_js
Source: http://rubygems.org/gems/%{mod_full_name}.gem
Source1: gem2rpm.yml
@@ -51,7 +51,7 @@
%install
%gem_install \
- --doc-files="CHANGELOG.md README.md LICENSE" \
+ --doc-files="CHANGELOG.md LICENSE README.md" \
-f
%gem_packages
++++++ gettext_i18n_rails_js-1.0.0.gem -> gettext_i18n_rails_js-1.0.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100
+++ new/CHANGELOG.md 2015-02-24 20:48:08.000000000 +0100
@@ -1,6 +1,10 @@
# Changelog
-## [0.1.0](https://github.com/webhippie/gettext_i18n_rails_js/releases/tag/v0.1… - 2015-02-24
+## [1.0.1](https://github.com/webhippie/gettext_i18n_rails_js/releases/tag/v1.0… - 2015-02-24
+
+* Added missing javascripts to the gemspec
+
+## [1.0.0](https://github.com/webhippie/gettext_i18n_rails_js/releases/tag/v1.0… - 2015-02-24
* Transfer from github.com/nubis/gettext_i18n_rails_js
* Added TravisCI, Rubocop and Coveralls
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/assets/javascripts/gettext/all.js new/lib/assets/javascripts/gettext/all.js
--- old/lib/assets/javascripts/gettext/all.js 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/assets/javascripts/gettext/all.js 2015-02-24 20:48:08.000000000 +0100
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2012-2015 Dropmysite.com <https://dropmyemail.com>
+// Copyright (c) 2015 Webhippie <http://www.webhippie.de>
+//
+// 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.
+//
+
+//= require gettext/jed
+//= require_self
+
+(function() {
+ var locales = locales || {};
+ var locale = document.getElementsByTagName('html')[0].lang;
+
+ if(!locale) {
+ console.warn('No locale found as an html attribute, using default.');
+ return;
+ }
+
+ var i18n = new Jed(locales[locale] || {});
+
+ window.__ = function() {
+ return i18n.gettext.apply(i18n, arguments);
+ };
+
+ window.n__ = function() {
+ return i18n.ngettext.apply(i18n, arguments);
+ };
+
+ window.s__ = function(key) {
+ return window.__(key).split('|').pop();
+ };
+
+ window.gettext = window.__;
+ window.ngettext = window.n__;
+ window.sgettext = window.s__;
+
+ window.i18n = i18n;
+})();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/gettext_i18n_rails_js/version.rb new/lib/gettext_i18n_rails_js/version.rb
--- old/lib/gettext_i18n_rails_js/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/gettext_i18n_rails_js/version.rb 2015-02-24 20:48:08.000000000 +0100
@@ -27,7 +27,7 @@
class Version
MAJOR = 1
MINOR = 0
- PATCH = 0
+ PATCH = 1
PRE = nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 1970-01-01 01:00:00.000000000 +0100
+++ new/metadata 2015-02-24 20:48:08.000000000 +0100
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: gettext_i18n_rails_js
version: !ruby/object:Gem::Version
- version: 1.0.0
+ version: 1.0.1
platform: ruby
authors:
- Thomas Boerger
@@ -15,112 +15,112 @@
name: bundler
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
name: rake
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
name: yard
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
name: rspec
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
type: :development
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
- !ruby/object:Gem::Dependency
name: rails
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 3.2.0
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 3.2.0
- !ruby/object:Gem::Dependency
name: gettext
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 3.0.2
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 3.0.2
- !ruby/object:Gem::Dependency
name: gettext_i18n_rails
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.7.1
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.7.1
- !ruby/object:Gem::Dependency
name: po_to_json
requirement: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.1.0
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 0.1.0
description: |2
@@ -136,24 +136,26 @@
extra_rdoc_files: []
files:
- CHANGELOG.md
-- README.md
- LICENSE
-- lib/tasks/gettext_i18n_rails_js_tasks.rake
+- README.md
+- lib/assets/javascripts/gettext/all.js
- lib/gettext_i18n_rails_js.rb
-- lib/gettext_i18n_rails_js/version.rb
- lib/gettext_i18n_rails_js/engine.rb
+- lib/gettext_i18n_rails_js/parser.rb
- lib/gettext_i18n_rails_js/parser/base.rb
- lib/gettext_i18n_rails_js/parser/handlebars.rb
- lib/gettext_i18n_rails_js/parser/javascript.rb
-- lib/gettext_i18n_rails_js/parser.rb
-- spec/spec_helper.rb
+- lib/gettext_i18n_rails_js/version.rb
+- lib/tasks/gettext_i18n_rails_js_tasks.rake
- spec/fixtures/example.coffee
-- spec/fixtures/example.js
- spec/fixtures/example.handlebars
-- spec/support/with_file.rb
-- spec/gettext_i18n_rails_js_spec.rb
+- spec/fixtures/example.js
- spec/gettext_i18n_rails_js/parser/handlebars_spec.rb
- spec/gettext_i18n_rails_js/parser/javascript_spec.rb
+- spec/gettext_i18n_rails_js_spec.rb
+- spec/spec_helper.rb
+- spec/support/with_file.rb
+- vendor/assets/javascripts/gettext/jed.js
homepage: https://github.com/webhippie/gettext_i18n_rails_js
licenses:
- MIT
@@ -164,28 +166,28 @@
- lib
required_ruby_version: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: 1.9.3
required_rubygems_version: !ruby/object:Gem::Requirement
requirements:
- - - '>='
+ - - ">="
- !ruby/object:Gem::Version
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.0.3
+rubygems_version: 2.4.5
signing_key:
specification_version: 4
summary: Extends gettext_i18n_rails making your .po files available to client side
javascript as JSON
test_files:
-- spec/spec_helper.rb
- spec/fixtures/example.coffee
-- spec/fixtures/example.js
- spec/fixtures/example.handlebars
-- spec/support/with_file.rb
-- spec/gettext_i18n_rails_js_spec.rb
+- spec/fixtures/example.js
- spec/gettext_i18n_rails_js/parser/handlebars_spec.rb
- spec/gettext_i18n_rails_js/parser/javascript_spec.rb
+- spec/gettext_i18n_rails_js_spec.rb
+- spec/spec_helper.rb
+- spec/support/with_file.rb
has_rdoc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/assets/javascripts/gettext/jed.js new/vendor/assets/javascripts/gettext/jed.js
--- old/vendor/assets/javascripts/gettext/jed.js 1970-01-01 01:00:00.000000000 +0100
+++ new/vendor/assets/javascripts/gettext/jed.js 2015-02-24 20:48:08.000000000 +0100
@@ -0,0 +1,1022 @@
+/**
+ * @preserve jed.js https://github.com/SlexAxton/Jed
+ */
+/*
+-----------
+A gettext compatible i18n library for modern JavaScript Applications
+
+by Alex Sexton - AlexSexton [at] gmail - @SlexAxton
+WTFPL license for use
+Dojo CLA for contributions
+
+Jed offers the entire applicable GNU gettext spec'd set of
+functions, but also offers some nicer wrappers around them.
+The api for gettext was written for a language with no function
+overloading, so Jed allows a little more of that.
+
+Many thanks to Joshua I. Miller - unrtst(a)cpan.org - who wrote
+gettext.js back in 2008. I was able to vet a lot of my ideas
+against his. I also made sure Jed passed against his tests
+in order to offer easy upgrades -- jsgettext.berlios.de
+*/
+(function (root, undef) {
+
+ // Set up some underscore-style functions, if you already have
+ // underscore, feel free to delete this section, and use it
+ // directly, however, the amount of functions used doesn't
+ // warrant having underscore as a full dependency.
+ // Underscore 1.3.0 was used to port and is licensed
+ // under the MIT License by Jeremy Ashkenas.
+ var ArrayProto = Array.prototype,
+ ObjProto = Object.prototype,
+ slice = ArrayProto.slice,
+ hasOwnProp = ObjProto.hasOwnProperty,
+ nativeForEach = ArrayProto.forEach,
+ breaker = {};
+
+ // We're not using the OOP style _ so we don't need the
+ // extra level of indirection. This still means that you
+ // sub out for real `_` though.
+ var _ = {
+ forEach : function( obj, iterator, context ) {
+ var i, l, key;
+ if ( obj === null ) {
+ return;
+ }
+
+ if ( nativeForEach && obj.forEach === nativeForEach ) {
+ obj.forEach( iterator, context );
+ }
+ else if ( obj.length === +obj.length ) {
+ for ( i = 0, l = obj.length; i < l; i++ ) {
+ if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {
+ return;
+ }
+ }
+ }
+ else {
+ for ( key in obj) {
+ if ( hasOwnProp.call( obj, key ) ) {
+ if ( iterator.call (context, obj[key], key, obj ) === breaker ) {
+ return;
+ }
+ }
+ }
+ }
+ },
+ extend : function( obj ) {
+ this.forEach( slice.call( arguments, 1 ), function ( source ) {
+ for ( var prop in source ) {
+ obj[prop] = source[prop];
+ }
+ });
+ return obj;
+ }
+ };
+ // END Miniature underscore impl
+
+ // Jed is a constructor function
+ var Jed = function ( options ) {
+ // Some minimal defaults
+ this.defaults = {
+ "locale_data" : {
+ "messages" : {
+ "" : {
+ "domain" : "messages",
+ "lang" : "en",
+ "plural_forms" : "nplurals=2; plural=(n != 1);"
+ }
+ // There are no default keys, though
+ }
+ },
+ // The default domain if one is missing
+ "domain" : "messages",
+ // enable debug mode to log untranslated strings to the console
+ "debug" : false
+ };
+
+ // Mix in the sent options with the default options
+ this.options = _.extend( {}, this.defaults, options );
+ this.textdomain( this.options.domain );
+
+ if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {
+ throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');
+ }
+ };
+
+ // The gettext spec sets this character as the default
+ // delimiter for context lookups.
+ // e.g.: context\u0004key
+ // If your translation company uses something different,
+ // just change this at any time and it will use that instead.
+ Jed.context_delimiter = String.fromCharCode( 4 );
+
+ function getPluralFormFunc ( plural_form_string ) {
+ return Jed.PF.compile( plural_form_string || "nplurals=2; plural=(n != 1);");
+ }
+
+ function Chain( key, i18n ){
+ this._key = key;
+ this._i18n = i18n;
+ }
+
+ // Create a chainable api for adding args prettily
+ _.extend( Chain.prototype, {
+ onDomain : function ( domain ) {
+ this._domain = domain;
+ return this;
+ },
+ withContext : function ( context ) {
+ this._context = context;
+ return this;
+ },
+ ifPlural : function ( num, pkey ) {
+ this._val = num;
+ this._pkey = pkey;
+ return this;
+ },
+ fetch : function ( sArr ) {
+ if ( {}.toString.call( sArr ) != '[object Array]' ) {
+ sArr = [].slice.call(arguments, 0);
+ }
+ return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(
+ this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),
+ sArr
+ );
+ }
+ });
+
+ // Add functions to the Jed prototype.
+ // These will be the functions on the object that's returned
+ // from creating a `new Jed()`
+ // These seem redundant, but they gzip pretty well.
+ _.extend( Jed.prototype, {
+ // The sexier api start point
+ translate : function ( key ) {
+ return new Chain( key, this );
+ },
+
+ textdomain : function ( domain ) {
+ if ( ! domain ) {
+ return this._textdomain;
+ }
+ this._textdomain = domain;
+ },
+
+ gettext : function ( key ) {
+ return this.dcnpgettext.call( this, undef, undef, key );
+ },
+
+ dgettext : function ( domain, key ) {
+ return this.dcnpgettext.call( this, domain, undef, key );
+ },
+
+ dcgettext : function ( domain , key /*, category */ ) {
+ // Ignores the category anyways
+ return this.dcnpgettext.call( this, domain, undef, key );
+ },
+
+ ngettext : function ( skey, pkey, val ) {
+ return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );
+ },
+
+ dngettext : function ( domain, skey, pkey, val ) {
+ return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );
+ },
+
+ dcngettext : function ( domain, skey, pkey, val/*, category */) {
+ return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );
+ },
+
+ pgettext : function ( context, key ) {
+ return this.dcnpgettext.call( this, undef, context, key );
+ },
+
+ dpgettext : function ( domain, context, key ) {
+ return this.dcnpgettext.call( this, domain, context, key );
+ },
+
+ dcpgettext : function ( domain, context, key/*, category */) {
+ return this.dcnpgettext.call( this, domain, context, key );
+ },
+
+ npgettext : function ( context, skey, pkey, val ) {
+ return this.dcnpgettext.call( this, undef, context, skey, pkey, val );
+ },
+
+ dnpgettext : function ( domain, context, skey, pkey, val ) {
+ return this.dcnpgettext.call( this, domain, context, skey, pkey, val );
+ },
+
+ // The most fully qualified gettext function. It has every option.
+ // Since it has every option, we can use it from every other method.
+ // This is the bread and butter.
+ // Technically there should be one more argument in this function for 'Category',
+ // but since we never use it, we might as well not waste the bytes to define it.
+ dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {
+ // Set some defaults
+
+ plural_key = plural_key || singular_key;
+
+ // Use the global domain default if one
+ // isn't explicitly passed in
+ domain = domain || this._textdomain;
+
+ var fallback;
+
+ // Handle special cases
+
+ // No options found
+ if ( ! this.options ) {
+ // There's likely something wrong, but we'll return the correct key for english
+ // We do this by instantiating a brand new Jed instance with the default set
+ // for everything that could be broken.
+ fallback = new Jed();
+ return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );
+ }
+
+ // No translation data provided
+ if ( ! this.options.locale_data ) {
+ throw new Error('No locale data provided.');
+ }
+
+ if ( ! this.options.locale_data[ domain ] ) {
+ throw new Error('Domain `' + domain + '` was not found.');
+ }
+
+ if ( ! this.options.locale_data[ domain ][ "" ] ) {
+ throw new Error('No locale meta information provided.');
+ }
+
+ // Make sure we have a truthy key. Otherwise we might start looking
+ // into the empty string key, which is the options for the locale
+ // data.
+ if ( ! singular_key ) {
+ throw new Error('No translation key found.');
+ }
+
+ var key = context ? context + Jed.context_delimiter + singular_key : singular_key,
+ locale_data = this.options.locale_data,
+ dict = locale_data[ domain ],
+ defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[""],
+ pluralForms = dict[""].plural_forms || dict[""]["Plural-Forms"] || dict[""]["plural-forms"] || defaultConf.plural_forms || defaultConf["Plural-Forms"] || defaultConf["plural-forms"],
+ val_list,
+ res;
+
+ var val_idx;
+ if (val === undefined) {
+ // No value passed in; assume singular key lookup.
+ val_idx = 0;
+
+ } else {
+ // Value has been passed in; use plural-forms calculations.
+
+ // Handle invalid numbers, but try casting strings for good measure
+ if ( typeof val != 'number' ) {
+ val = parseInt( val, 10 );
+
+ if ( isNaN( val ) ) {
+ throw new Error('The number that was passed in is not a number.');
+ }
+ }
+
+ val_idx = getPluralFormFunc(pluralForms)(val);
+ }
+
+ // Throw an error if a domain isn't found
+ if ( ! dict ) {
+ throw new Error('No domain named `' + domain + '` could be found.');
+ }
+
+ val_list = dict[ key ];
+
+ // If there is no match, then revert back to
+ // english style singular/plural with the keys passed in.
+ if ( ! val_list || val_idx > val_list.length ) {
+ if (this.options.missing_key_callback) {
+ this.options.missing_key_callback(key, domain);
+ }
+ res = [ singular_key, plural_key ];
+
+ // collect untranslated strings
+ if (this.options.debug===true) {
+ console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);
+ }
+ return res[ getPluralFormFunc()( val ) ];
+ }
+
+ res = val_list[ val_idx ];
+
+ // This includes empty strings on purpose
+ if ( ! res ) {
+ res = [ singular_key, plural_key ];
+ return res[ getPluralFormFunc()( val ) ];
+ }
+ return res;
+ }
+ });
+
+
+ // We add in sprintf capabilities for post translation value interolation
+ // This is not internally used, so you can remove it if you have this
+ // available somewhere else, or want to use a different system.
+
+ // We _slightly_ modify the normal sprintf behavior to more gracefully handle
+ // undefined values.
+
+ /**
+ sprintf() for JavaScript 0.7-beta1
+ http://www.diveintojavascript.com/projects/javascript-sprintf
+
+ Copyright (c) Alexandru Marasteanu <alexaholic [at) gmail (dot] 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 sprintf() for JavaScript 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 Alexandru Marasteanu 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.
+ */
+ var sprintf = (function() {
+ function get_type(variable) {
+ return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
+ }
+ function str_repeat(input, multiplier) {
+ for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
+ return output.join('');
+ }
+
+ var str_format = function() {
+ if (!str_format.cache.hasOwnProperty(arguments[0])) {
+ str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
+ }
+ return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
+ };
+
+ str_format.format = function(parse_tree, argv) {
+ var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
+ for (i = 0; i < tree_length; i++) {
+ node_type = get_type(parse_tree[i]);
+ if (node_type === 'string') {
+ output.push(parse_tree[i]);
+ }
+ else if (node_type === 'array') {
+ match = parse_tree[i]; // convenience purposes only
+ if (match[2]) { // keyword argument
+ arg = argv[cursor];
+ for (k = 0; k < match[2].length; k++) {
+ if (!arg.hasOwnProperty(match[2][k])) {
+ throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
+ }
+ arg = arg[match[2][k]];
+ }
+ }
+ else if (match[1]) { // positional argument (explicit)
+ arg = argv[match[1]];
+ }
+ else { // positional argument (implicit)
+ arg = argv[cursor++];
+ }
+
+ if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
+ throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
+ }
+
+ // Jed EDIT
+ if ( typeof arg == 'undefined' || arg === null ) {
+ arg = '';
+ }
+ // Jed EDIT
+
+ switch (match[8]) {
+ case 'b': arg = arg.toString(2); break;
+ case 'c': arg = String.fromCharCode(arg); break;
+ case 'd': arg = parseInt(arg, 10); break;
+ case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
+ case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
+ case 'o': arg = arg.toString(8); break;
+ case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
+ case 'u': arg = Math.abs(arg); break;
+ case 'x': arg = arg.toString(16); break;
+ case 'X': arg = arg.toString(16).toUpperCase(); break;
+ }
+ arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
+ pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
+ pad_length = match[6] - String(arg).length;
+ pad = match[6] ? str_repeat(pad_character, pad_length) : '';
+ output.push(match[5] ? arg + pad : pad + arg);
+ }
+ }
+ return output.join('');
+ };
+
+ str_format.cache = {};
+
+ str_format.parse = function(fmt) {
+ var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
+ while (_fmt) {
+ if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
+ parse_tree.push(match[0]);
+ }
+ else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
+ parse_tree.push('%');
+ }
+ else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
+ if (match[2]) {
+ arg_names |= 1;
+ var field_list = [], replacement_field = match[2], field_match = [];
+ if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
+ if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ }
+ else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ }
+ else {
+ throw('[sprintf] huh?');
+ }
+ }
+ }
+ else {
+ throw('[sprintf] huh?');
+ }
+ match[2] = field_list;
+ }
+ else {
+ arg_names |= 2;
+ }
+ if (arg_names === 3) {
+ throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
+ }
+ parse_tree.push(match);
+ }
+ else {
+ throw('[sprintf] huh?');
+ }
+ _fmt = _fmt.substring(match[0].length);
+ }
+ return parse_tree;
+ };
+
+ return str_format;
+ })();
+
+ var vsprintf = function(fmt, argv) {
+ argv.unshift(fmt);
+ return sprintf.apply(null, argv);
+ };
+
+ Jed.parse_plural = function ( plural_forms, n ) {
+ plural_forms = plural_forms.replace(/n/g, n);
+ return Jed.parse_expression(plural_forms);
+ };
+
+ Jed.sprintf = function ( fmt, args ) {
+ if ( {}.toString.call( args ) == '[object Array]' ) {
+ return vsprintf( fmt, [].slice.call(args) );
+ }
+ return sprintf.apply(this, [].slice.call(arguments) );
+ };
+
+ Jed.prototype.sprintf = function () {
+ return Jed.sprintf.apply(this, arguments);
+ };
+ // END sprintf Implementation
+
+ // Start the Plural forms section
+ // This is a full plural form expression parser. It is used to avoid
+ // running 'eval' or 'new Function' directly against the plural
+ // forms.
+ //
+ // This can be important if you get translations done through a 3rd
+ // party vendor. I encourage you to use this instead, however, I
+ // also will provide a 'precompiler' that you can use at build time
+ // to output valid/safe function representations of the plural form
+ // expressions. This means you can build this code out for the most
+ // part.
+ Jed.PF = {};
+
+ Jed.PF.parse = function ( p ) {
+ var plural_str = Jed.PF.extractPluralExpr( p );
+ return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);
+ };
+
+ Jed.PF.compile = function ( p ) {
+ // Handle trues and falses as 0 and 1
+ function imply( val ) {
+ return (val === true ? 1 : val ? val : 0);
+ }
+
+ var ast = Jed.PF.parse( p );
+ return function ( n ) {
+ return imply( Jed.PF.interpreter( ast )( n ) );
+ };
+ };
+
+ Jed.PF.interpreter = function ( ast ) {
+ return function ( n ) {
+ var res;
+ switch ( ast.type ) {
+ case 'GROUP':
+ return Jed.PF.interpreter( ast.expr )( n );
+ case 'TERNARY':
+ if ( Jed.PF.interpreter( ast.expr )( n ) ) {
+ return Jed.PF.interpreter( ast.truthy )( n );
+ }
+ return Jed.PF.interpreter( ast.falsey )( n );
+ case 'OR':
+ return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );
+ case 'AND':
+ return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );
+ case 'LT':
+ return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );
+ case 'GT':
+ return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );
+ case 'LTE':
+ return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );
+ case 'GTE':
+ return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );
+ case 'EQ':
+ return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );
+ case 'NEQ':
+ return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );
+ case 'MOD':
+ return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );
+ case 'VAR':
+ return n;
+ case 'NUM':
+ return ast.val;
+ default:
+ throw new Error("Invalid Token found.");
+ }
+ };
+ };
+
+ Jed.PF.extractPluralExpr = function ( p ) {
+ // trim first
+ p = p.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+
+ if (! /;\s*$/.test(p)) {
+ p = p.concat(';');
+ }
+
+ var nplurals_re = /nplurals\=(\d+);/,
+ plural_re = /plural\=(.*);/,
+ nplurals_matches = p.match( nplurals_re ),
+ res = {},
+ plural_matches;
+
+ // Find the nplurals number
+ if ( nplurals_matches.length > 1 ) {
+ res.nplurals = nplurals_matches[1];
+ }
+ else {
+ throw new Error('nplurals not found in plural_forms string: ' + p );
+ }
+
+ // remove that data to get to the formula
+ p = p.replace( nplurals_re, "" );
+ plural_matches = p.match( plural_re );
+
+ if (!( plural_matches && plural_matches.length > 1 ) ) {
+ throw new Error('`plural` expression not found: ' + p);
+ }
+ return plural_matches[ 1 ];
+ };
+
+ /* Jison generated parser */
+ Jed.PF.parser = (function(){
+
+var parser = {trace: function trace() { },
+yy: {},
+symbols_: {"error":2,"expressions":3,"e":4,"EOF":5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,"n":19,"NUMBER":20,"$accept":0,"$end":1},
+terminals_: {2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},
+productions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],
+performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+var $0 = $$.length - 1;
+switch (yystate) {
+case 1: return { type : 'GROUP', expr: $$[$0-1] };
+break;
+case 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };
+break;
+case 3:this.$ = { type: "OR", left: $$[$0-2], right: $$[$0] };
+break;
+case 4:this.$ = { type: "AND", left: $$[$0-2], right: $$[$0] };
+break;
+case 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };
+break;
+case 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };
+break;
+case 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };
+break;
+case 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };
+break;
+case 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };
+break;
+case 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };
+break;
+case 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };
+break;
+case 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };
+break;
+case 13:this.$ = { type: 'VAR' };
+break;
+case 14:this.$ = { type: 'NUM', val: Number(yytext) };
+break;
+}
+},
+table: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],
+defaultActions: {6:[2,1]},
+parseError: function parseError(str, hash) {
+ throw new Error(str);
+},
+parse: function parse(input) {
+ var self = this,
+ stack = [0],
+ vstack = [null], // semantic value stack
+ lstack = [], // location stack
+ table = this.table,
+ yytext = '',
+ yylineno = 0,
+ yyleng = 0,
+ recovering = 0,
+ TERROR = 2,
+ EOF = 1;
+
+ //this.reductionCount = this.shiftCount = 0;
+
+ this.lexer.setInput(input);
+ this.lexer.yy = this.yy;
+ this.yy.lexer = this.lexer;
+ if (typeof this.lexer.yylloc == 'undefined')
+ this.lexer.yylloc = {};
+ var yyloc = this.lexer.yylloc;
+ lstack.push(yyloc);
+
+ if (typeof this.yy.parseError === 'function')
+ this.parseError = this.yy.parseError;
+
+ function popStack (n) {
+ stack.length = stack.length - 2*n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+
+ function lex() {
+ var token;
+ token = self.lexer.lex() || 1; // $end = 1
+ // if token isn't its numeric value, convert
+ if (typeof token !== 'number') {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+
+ var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;
+ while (true) {
+ // retreive state number from top of stack
+ state = stack[stack.length-1];
+
+ // use default actions if available
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol == null)
+ symbol = lex();
+ // read action for current state and first input
+ action = table[state] && table[state][symbol];
+ }
+
+ // handle parse error
+ _handle_error:
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
+
+ if (!recovering) {
+ // Report error
+ expected = [];
+ for (p in table[state]) if (this.terminals_[p] && p > 2) {
+ expected.push("'"+this.terminals_[p]+"'");
+ }
+ var errStr = '';
+ if (this.lexer.showPosition) {
+ errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'";
+ } else {
+ errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
+ (symbol == 1 /*EOF*/ ? "end of input" :
+ ("'"+(this.terminals_[symbol] || symbol)+"'"));
+ }
+ this.parseError(errStr,
+ {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+ }
+
+ // just recovered from another error
+ if (recovering == 3) {
+ if (symbol == EOF) {
+ throw new Error(errStr || 'Parsing halted.');
+ }
+
+ // discard current lookahead and grab another
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ symbol = lex();
+ }
+
+ // try to recover from error
+ while (1) {
+ // check for error recovery rule in this state
+ if ((TERROR.toString()) in table[state]) {
+ break;
+ }
+ if (state == 0) {
+ throw new Error(errStr || 'Parsing halted.');
+ }
+ popStack(1);
+ state = stack[stack.length-1];
+ }
+
+ preErrorSymbol = symbol; // save the lookahead token
+ symbol = TERROR; // insert generic error symbol as new lookahead
+ state = stack[stack.length-1];
+ action = table[state] && table[state][TERROR];
+ recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
+ }
+
+ // this shouldn't happen, unless resolve defaults are off
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
+ }
+
+ switch (action[0]) {
+
+ case 1: // shift
+ //this.shiftCount++;
+
+ stack.push(symbol);
+ vstack.push(this.lexer.yytext);
+ lstack.push(this.lexer.yylloc);
+ stack.push(action[1]); // push state
+ symbol = null;
+ if (!preErrorSymbol) { // normal execution/no error
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ if (recovering > 0)
+ recovering--;
+ } else { // error just occurred, resume old lookahead f/ before error
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+
+ case 2: // reduce
+ //this.reductionCount++;
+
+ len = this.productions_[action[1]][1];
+
+ // perform semantic action
+ yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
+ // default location, uses first token for firsts, last for lasts
+ yyval._$ = {
+ first_line: lstack[lstack.length-(len||1)].first_line,
+ last_line: lstack[lstack.length-1].last_line,
+ first_column: lstack[lstack.length-(len||1)].first_column,
+ last_column: lstack[lstack.length-1].last_column
+ };
+ r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+
+ if (typeof r !== 'undefined') {
+ return r;
+ }
+
+ // pop off stack
+ if (len) {
+ stack = stack.slice(0,-1*len*2);
+ vstack = vstack.slice(0, -1*len);
+ lstack = lstack.slice(0, -1*len);
+ }
+
+ stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ // goto new state = table[STATE][NONTERMINAL]
+ newState = table[stack[stack.length-2]][stack[stack.length-1]];
+ stack.push(newState);
+ break;
+
+ case 3: // accept
+ return true;
+ }
+
+ }
+
+ return true;
+}};/* Jison generated lexer */
+var lexer = (function(){
+
+var lexer = ({EOF:1,
+parseError:function parseError(str, hash) {
+ if (this.yy.parseError) {
+ this.yy.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+setInput:function (input) {
+ this._input = input;
+ this._more = this._less = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+ return this;
+ },
+input:function () {
+ var ch = this._input[0];
+ this.yytext+=ch;
+ this.yyleng++;
+ this.match+=ch;
+ this.matched+=ch;
+ var lines = ch.match(/\n/);
+ if (lines) this.yylineno++;
+ this._input = this._input.slice(1);
+ return ch;
+ },
+unput:function (ch) {
+ this._input = ch + this._input;
+ return this;
+ },
+more:function () {
+ this._more = true;
+ return this;
+ },
+pastInput:function () {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+ },
+upcomingInput:function () {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20-next.length);
+ }
+ return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+ },
+showPosition:function () {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c+"^";
+ },
+next:function () {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) this.done = true;
+
+ var token,
+ match,
+ col,
+ lines;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i=0;i < rules.length; i++) {
+ match = this._input.match(this.rules[rules[i]]);
+ if (match) {
+ lines = match[0].match(/\n.*/g);
+ if (lines) this.yylineno += lines.length;
+ this.yylloc = {first_line: this.yylloc.last_line,
+ last_line: this.yylineno+1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ this._more = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);
+ if (token) return token;
+ else return;
+ }
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+ {text: "", token: null, line: this.yylineno});
+ }
+ },
+lex:function lex() {
+ var r = this.next();
+ if (typeof r !== 'undefined') {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+begin:function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+popState:function popState() {
+ return this.conditionStack.pop();
+ },
+_currentRules:function _currentRules() {
+ return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+ },
+topState:function () {
+ return this.conditionStack[this.conditionStack.length-2];
+ },
+pushState:function begin(condition) {
+ this.begin(condition);
+ }});
+lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+var YYSTATE=YY_START;
+switch($avoiding_name_collisions) {
+case 0:/* skip whitespace */
+break;
+case 1:return 20
+break;
+case 2:return 19
+break;
+case 3:return 8
+break;
+case 4:return 9
+break;
+case 5:return 6
+break;
+case 6:return 7
+break;
+case 7:return 11
+break;
+case 8:return 13
+break;
+case 9:return 10
+break;
+case 10:return 12
+break;
+case 11:return 14
+break;
+case 12:return 15
+break;
+case 13:return 16
+break;
+case 14:return 17
+break;
+case 15:return 18
+break;
+case 16:return 5
+break;
+case 17:return 'INVALID'
+break;
+}
+};
+lexer.rules = [/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./];
+lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"inclusive":true}};return lexer;})()
+parser.lexer = lexer;
+return parser;
+})();
+// End parser
+
+ // Handle node, amd, and global systems
+ if (typeof exports !== 'undefined') {
+ if (typeof module !== 'undefined' && module.exports) {
+ exports = module.exports = Jed;
+ }
+ exports.Jed = Jed;
+ }
+ else {
+ if (typeof define === 'function' && define.amd) {
+ define(function() {
+ return Jed;
+ });
+ }
+ // Leak a global regardless of module system
+ root['Jed'] = Jed;
+ }
+
+})(this);
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package yafc for openSUSE:Factory checked in at 2015-02-27 10:59:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yafc (Old)
and /work/SRC/openSUSE:Factory/.yafc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yafc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/yafc/yafc.changes 2012-01-04 07:33:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yafc.new/yafc.changes 2015-02-27 10:59:38.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 24 20:05:41 UTC 2015 - dimstar(a)opensuse.org
+
+- Add makeinfo BuildRequires: actually allow to FILL the .info page.
+- Add yafc-texinfo-5.0.patch: Fix build with makeinfo 5.0.
+
+-------------------------------------------------------------------
New:
----
yafc-texinfo-5.0.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yafc.spec ++++++
--- /var/tmp/diff_new_pack.CjVS5s/_old 2015-02-27 10:59:39.000000000 +0100
+++ /var/tmp/diff_new_pack.CjVS5s/_new 2015-02-27 10:59:39.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package yafc
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,8 +15,10 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: yafc
BuildRequires: krb5-devel
+BuildRequires: makeinfo
BuildRequires: openssl-devel
BuildRequires: readline-devel
Summary: Yet Another FTP Client
@@ -34,6 +36,7 @@
Patch2: remove_bsd_code.diff
Patch3: yafc-krb5.diff
Patch4: disable_date_time.diff
+Patch5: yafc-texinfo-5.0.patch
%description
Yafc is an OpenSource console mode FTP client. It has support for
@@ -54,6 +57,7 @@
%patch2
%patch3
%patch4 -p1
+%patch5 -p1
%build
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" ./configure --prefix=%{prefix} --infodir=%{_infodir} --mandir=%{_mandir}
++++++ yafc-texinfo-5.0.patch ++++++
Index: yafc-1.1.1/doc/yafc_bookmark.texi
===================================================================
--- yafc-1.1.1.orig/doc/yafc_bookmark.texi
+++ yafc-1.1.1/doc/yafc_bookmark.texi
@@ -32,7 +32,7 @@ keyword.
@c ======================================================
@node Bookmark keywords, Bookmark examples, , Bookmarks
-@subsection Bookmark keywords
+@section Bookmark keywords
@table @samp
Index: yafc-1.1.1/doc/yafc_intro.texi
===================================================================
--- yafc-1.1.1.orig/doc/yafc_intro.texi
+++ yafc-1.1.1/doc/yafc_intro.texi
@@ -21,7 +21,7 @@ to improve this manual, please send a me
@c -----------------------------------------------------
@node Bugs, Obtaining Yafc, , Overview
-@subsection Bugs
+@section Bugs
Please report bugs to @email{yafc-devel@@lists.sourceforge.net}.
Before reporting a bug, please verify you're using the latest version
@@ -34,7 +34,7 @@ example for me to reproduce (use the @co
@c -----------------------------------------------------
@node Obtaining Yafc, Motivation, Bugs, Overview
-@subsection Obtaining Yafc
+@section Obtaining Yafc
@table @asis
@@ -48,7 +48,7 @@ example for me to reproduce (use the @co
@c -----------------------------------------------------
@node Motivation, , Obtaining Yafc, Overview
-@subsection Motivation
+@section Motivation
Yafc was created because I needed a good ftp client.
The standard BSD ftp client lacks tab completion, something I've
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ibus-libzhuyin for openSUSE:Factory checked in at 2015-02-27 10:59:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ibus-libzhuyin (Old)
and /work/SRC/openSUSE:Factory/.ibus-libzhuyin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ibus-libzhuyin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ibus-libzhuyin/ibus-libzhuyin.changes 2014-11-26 10:33:03.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ibus-libzhuyin.new/ibus-libzhuyin.changes 2015-02-27 10:59:37.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Feb 25 06:57:23 UTC 2015 - hillwood(a)linuxfans.org
+
+- Use opencc 1.0.2
+ * add ibus-libzhuyin-opencc-1_0_2-build.patch
+
+-------------------------------------------------------------------
New:
----
ibus-libzhuyin-opencc-1_0_2-build.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ibus-libzhuyin.spec ++++++
--- /var/tmp/diff_new_pack.RCN7Nx/_old 2015-02-27 10:59:38.000000000 +0100
+++ /var/tmp/diff_new_pack.RCN7Nx/_new 2015-02-27 10:59:38.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package ibus-libzhuyin
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,13 +24,15 @@
Group: System/I18n/Chinese
Url: https://github.com/libzhuyin/ibus-libzhuyin
Source: %{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM ibus-libzhuyin-opencc-1_0_2-build.patch hillwood(a)opensuse.org Use -- opencc 1.0.2
+Patch0: ibus-libzhuyin-opencc-1_0_2-build.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: gnome-common
BuildRequires: ibus-devel
BuildRequires: intltool
BuildRequires: libzhuyin-devel
-BuildRequires: opencc-devel
+BuildRequires: opencc-devel >= 1.0.2
Provides: locale(ibus:zh_TW;zh_HK)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -39,6 +41,7 @@
%prep
%setup -q
+%patch0 -p1
%build
./autogen.sh
++++++ ibus-libzhuyin-opencc-1_0_2-build.patch ++++++
Index: ibus-libzhuyin-1.6.99.20140929/src/ZYTradSimpConverter.cc
===================================================================
--- ibus-libzhuyin-1.6.99.20140929.orig/src/ZYTradSimpConverter.cc
+++ ibus-libzhuyin-1.6.99.20140929/src/ZYTradSimpConverter.cc
@@ -33,7 +33,6 @@
namespace ZY {
class opencc {
- static const int BUFFER_SIZE = 64;
public:
opencc (void)
{
@@ -48,30 +47,14 @@ public:
void convert (const gchar *in, String &out)
{
- glong n_char;
- gunichar *in_ucs4 = g_utf8_to_ucs4_fast (in, -1, &n_char);
-
- ucs4_t *pinbuf = (ucs4_t *)in_ucs4;
- size_t inbuf_left = n_char;
- while (inbuf_left != 0) {
- ucs4_t *poutbuf = (ucs4_t *)m_buffer;
- size_t outbuf_left = BUFFER_SIZE;
- size_t retval = opencc_convert(m_cc, &pinbuf, &inbuf_left, &poutbuf, &outbuf_left);
- if (retval == (size_t) -1) {
- /* append left chars in pinbuf */
- g_warning ("opencc_convert return failed");
- out << (gunichar *) pinbuf;
- break;
- }
- *poutbuf = L'\0';
- out << m_buffer;
- }
- g_free (in_ucs4);
+ char * converted = opencc_convert_utf8 (m_cc, in, -1);
+ g_assert (converted != NULL);
+ out = converted;
+ opencc_convert_utf8_free (converted);
}
private:
opencc_t m_cc;
- gunichar m_buffer[BUFFER_SIZE + 1];
};
void
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cfengine for openSUSE:Factory checked in at 2015-02-27 10:59:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cfengine (Old)
and /work/SRC/openSUSE:Factory/.cfengine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cfengine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cfengine/cfengine.changes 2015-02-06 22:37:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cfengine.new/cfengine.changes 2015-02-27 10:59:35.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Feb 24 18:18:21 UTC 2015 - dimstar(a)opensuse.org
+
+- Remove install-info calls in post/postun: there is no info page
+ being installed.
+- rop texlive BuildRequires (there is no info page, and even if,
+ makeinfo would be sufficien).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cfengine.spec ++++++
--- /var/tmp/diff_new_pack.Lketz1/_old 2015-02-27 10:59:37.000000000 +0100
+++ /var/tmp/diff_new_pack.Lketz1/_new 2015-02-27 10:59:37.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cfengine
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -127,11 +127,6 @@
%endif
%endif
-%if 0%{?suse_version}
-PreReq: %install_info_prereq
-BuildRequires: texlive
-%endif
-
%if %have_systemd
BuildRequires: systemd
%{?systemd_requires}
@@ -351,9 +346,6 @@
%post
%service_add_post cf-execd.service cf-monitord.service cf-serverd.service
-%if 0%{?suse_version} > 1010
-%install_info --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
-%endif
/sbin/ldconfig
if [ $1 -lt 2 ]; then
# first install, generate key pair
@@ -365,9 +357,6 @@
%postun
%service_del_postun cf-execd.service cf-monitord.service cf-serverd.service
-%if 0%{?suse_version} > 1010
-%install_info_delete --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
-%endif
if [ $1 -eq 0 ]; then
# clean up inputs cache dir on removal
rm -rf %{basedir}/inputs/*
@@ -392,14 +381,10 @@
%endif
%post
-%if 0%{?suse_version} > 1010
-%install_info --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
-%endif
/sbin/ldconfig
%postun
%if 0%{?suse_version} > 1010
-%install_info_delete --name=%{name} --info-dir=%{_infodir} %{_infodir}/cf3-reference.info.gz
%insserv_cleanup
for i in execd monitord serverd; do
%restart_on_update cf-${i}
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package xulrunner for openSUSE:Factory checked in at 2015-02-27 10:59:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xulrunner (Old)
and /work/SRC/openSUSE:Factory/.xulrunner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xulrunner"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xulrunner/xulrunner.changes 2015-01-20 12:32:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.xulrunner.new/xulrunner.changes 2015-02-27 10:59:28.000000000 +0100
@@ -1,0 +2,16 @@
+Thu Feb 19 22:56:55 UTC 2015 - wr(a)rosenauer.org
+
+- update to 31.5.0 (bnc#917597)
+ * MFSA 2015-11/CVE-2015-0836
+ Miscellaneous memory safety hazards
+ * MFSA 2015-12/CVE-2015-0833 (bmo#945192)
+ Invoking Mozilla updater will load locally stored DLL files
+ (Windows only)
+ * MFSA 2015-16/CVE-2015-0831 (bmo#1130514)
+ Use-after-free in IndexedDB
+ * MFSA 2015-19/CVE-2015-0827 (bmo#1117304)
+ Out-of-bounds read and write while rendering SVG content
+ * MFSA 2015-24/CVE-2015-0822 (bmo#1110557)
+ Reading of local files through manipulation of form autocomplete
+
+-------------------------------------------------------------------
Old:
----
l10n-31.4.0.tar.xz
xulrunner-31.4.0-source.tar.xz
New:
----
l10n-31.5.0.tar.xz
xulrunner-31.5.0-source.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xulrunner.spec ++++++
--- /var/tmp/diff_new_pack.DW6Xjo/_old 2015-02-27 10:59:35.000000000 +0100
+++ /var/tmp/diff_new_pack.DW6Xjo/_new 2015-02-27 10:59:35.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xulrunner
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# 2006-2015 Wolfgang Rosenauer
#
# All modifications and additions to the file contributed by third parties
@@ -17,10 +17,10 @@
#
-%define version_internal 31.4.0
+%define version_internal 31.5.0
%define apiversion 31
-%define uaweight 3140000
-%define releasedate 2015010900
+%define uaweight 3150000
+%define releasedate 2015021900
%define shared_js 0
%define has_system_nspr 1
%define has_system_nss 1
++++++ compare-locales.tar.xz ++++++
++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.DW6Xjo/_old 2015-02-27 10:59:35.000000000 +0100
+++ /var/tmp/diff_new_pack.DW6Xjo/_new 2015-02-27 10:59:35.000000000 +0100
@@ -2,8 +2,8 @@
CHANNEL="esr31"
BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_31_4_0esr_RELEASE"
-VERSION="31.4.0"
+RELEASE_TAG="FIREFOX_31_5_0esr_RELEASE"
+VERSION="31.5.0"
# mozilla
if [ -d mozilla ]; then
++++++ l10n-31.4.0.tar.xz -> l10n-31.5.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/xulrunner/l10n-31.4.0.tar.xz /work/SRC/openSUSE:Factory/.xulrunner.new/l10n-31.5.0.tar.xz differ: char 26, line 1
++++++ source-stamp.txt ++++++
--- /var/tmp/diff_new_pack.DW6Xjo/_old 2015-02-27 10:59:35.000000000 +0100
+++ /var/tmp/diff_new_pack.DW6Xjo/_new 2015-02-27 10:59:35.000000000 +0100
@@ -1,2 +1,2 @@
-REV=60d7a6f78402
+REV=ebb632066641
REPO=http://hg.mozilla.org/releases/mozilla-esr31
++++++ xulrunner-31.4.0-source.tar.xz -> xulrunner-31.5.0-source.tar.xz ++++++
/work/SRC/openSUSE:Factory/xulrunner/xulrunner-31.4.0-source.tar.xz /work/SRC/openSUSE:Factory/.xulrunner.new/xulrunner-31.5.0-source.tar.xz differ: char 26, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0