openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- 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
September 2014
- 1 participants
- 1675 discussions
Hello community,
here is the log from the commit of package go-gozmq for openSUSE:Factory checked in at 2014-09-17 10:10:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go-gozmq (Old)
and /work/SRC/openSUSE:Factory/.go-gozmq.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go-gozmq"
Changes:
--------
--- /work/SRC/openSUSE:Factory/go-gozmq/go-gozmq.changes 2013-10-21 19:52:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.go-gozmq.new/go-gozmq.changes 2014-09-17 10:10:03.000000000 +0200
@@ -1,0 +2,32 @@
+Tue Sep 16 17:04:11 UTC 2014 - i(a)marguerite.su
+
+- add Requires: zeromq-devel
+ * gozmq needs -lzmq.
+
+-------------------------------------------------------------------
+Tue Sep 16 15:25:58 UTC 2014 - i(a)marguerite.su
+
+- the previous way to force building against specific zeromq
+ version is totally wrong:
+ * eg. gozmq depends zmq_2_2.go for zmq_3_x builds, and
+ zmq_2_2.go, zmq_3_x.go for zmq_4_x builds.
+ * so manually ran "go get --tags zmq_2/3/4_x \$BUILDFLAGS
+ \$IMPORTPATH" command to make sure the build is correct.
+- reenable tests. A correct build will pass tests.
+
+-------------------------------------------------------------------
+Sat Sep 6 09:02:01 UTC 2014 - i(a)marguerite.su
+
+- update version 0.0.0+git20140623.d1b01a2
+ * Generate SetTCPAcceptFilter(string)
+ * Generate SetROUTERMandatory(bool)
+ * Generate SetXPUBVerbose(bool)
+ * Generate MaxMsgSize()
+ * Generate DelayAttachOnConnect()
+ * Generate IPv4Only()
+ * Add SetTCPAcceptFilterNil
+ * Basic support for ZeroMQ 4.0.1
+- disable tests
+- Build against zeromq-4.x for openSUSE-13.2+
+
+-------------------------------------------------------------------
Old:
----
gozmq-0.0.0+git20130912.62f3d98.tar.bz2
New:
----
gozmq-0.0.0+git20140623.d1b01a2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go-gozmq.spec ++++++
--- /var/tmp/diff_new_pack.E3WFaB/_old 2014-09-17 10:10:04.000000000 +0200
+++ /var/tmp/diff_new_pack.E3WFaB/_new 2014-09-17 10:10:04.000000000 +0200
@@ -1,8 +1,8 @@
#
# spec file for package go-gozmq
#
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2011 Sascha Peilicke <saschpe(a)gmx.de>
-# Copyright (c) 2013 SUSE Linux Products GmbH
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,51 +18,57 @@
Name: go-gozmq
-Version: 0.0.0+git20130912.62f3d98
+Version: 0.0.0+git20140623.d1b01a2
Release: 0
Summary: Go bindings for ZeroMQ
-Group: Development/Languages/Other
License: Apache-2.0
-URL: http://github.com/alecthomas/gozmq
-Source0: gozmq-%{version}.tar.bz2
+Group: Development/Languages/Other
+Url: http://github.com/alecthomas/gozmq
+Source: gozmq-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: go-devel
BuildRequires: pkg-config
BuildRequires: zeromq-devel
-%if 0%{?suse_version} >= 1100
-Recommends: go-gozmq-doc
-Recommends: zeromq
-%endif
+Requires: zeromq-devel
%{go_provides}
%{go_requires}
+%{go_recommends}
%description
Go bindings for the ZeroMQ library.
-%package doc
-Summary: API documenation
-Group: Documentation/Other
-Requires: %{name} = %{version}
-
-%description doc
-API, examples and documentation.
+%godoc_package
%prep
%setup -q -n gozmq-%{version}
+
+# 12.3+ has zeromq 3.x and 12.2- has zeromq 2.1.
+# zmq_3_x_test.go used zeromq 3.x specific functions;
+# zmq_test.go used zeromq 2.x (but not 2.1 only)
+# specific functions.
%if 0%{?suse_version} >= 1230
-rm *2_*.go zmq.go zmq_test.go
+rm zmq_test.go
%else
-rm *3_*.go zmq.go zmq_test.go
+rm zmq_3_x_test.go zmq_test.go
%endif
# The following tests need access to a running zeromq:
rm gozmqgen/main_test.go
%build
%goprep github.com/alecthomas/gozmq
-#gofix github.com/alecthomas/gozmq
-#gobuild gozmqfix
-#_builddir/go/bin/gozmqfix .
-%gobuild .
+# manual build
+export IMPORTPATH="github.com/alecthomas/gozmq"
+export BUILDFLAGS="-s -v -p 4 -x"
+export GOPATH=%{_builddir}/go:%{_libdir}/go/contrib
+%if 0%{?suse_version} >= 1230
+%if 0%{?suse_version} > 1315
+go get --tags zmq_4_x $BUILDFLAGS $IMPORTPATH
+%else
+go get --tags zmq_3_x $BUILDFLAGS $IMPORTPATH
+%endif
+%else
+go get --tags zmq_2_1 $BUILDFLAGS $IMPORTPATH
+%endif
%install
%goinstall
@@ -73,7 +79,7 @@
%files
%defattr(-,root,root,-)
-%doc AUTHORS README.md examples
+%doc AUTHORS README.md
%{go_contribdir}/*
%files doc
++++++ gozmq-0.0.0+git20130912.62f3d98.tar.bz2 -> gozmq-0.0.0+git20140623.d1b01a2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/README.md new/gozmq-0.0.0+git20140623.d1b01a2/README.md
--- old/gozmq-0.0.0+git20130912.62f3d98/README.md 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/README.md 2014-09-06 10:59:35.000000000 +0200
@@ -1,4 +1,6 @@
-# Go (golang) Bindings for 0mq (zmq, zeromq)
+# _NOTE:_ These gozmq bindings are in maintenance mode. Only critical bugs will be fixed. Henceforth I would suggest using [@pebbe's](https://github.com/pebbe) actively maintained bindings for [zmq2](https://github.com/pebbe/zmq2), [zmq3](https://github.com/pebbe/zmq3) and [zmq4](https://github.com/pebbe/zmq4).
+
+## Go (golang) Bindings for 0mq (zmq, zeromq)
[![Build Status](https://travis-ci.org/alecthomas/gozmq.png)](https://travis-ci.org/…
@@ -23,25 +25,23 @@
## Installing
-GoZMQ currently supports ZMQ 2.1.x, 2.2.x and *basic* support for 3.x. Following are instructions on how to compile against these versions.
+GoZMQ currently supports ZMQ 2.1.x, 2.2.x, 3.x and 4.x. Following are instructions on how to compile against these versions.
-Install gozmq with:
+For ZeroMQ 2.2.x install with:
go get github.com/alecthomas/gozmq
-This implementation works currently against:: ZeroMQ 2.2.x
-
-### ZeroMQ 2.1.x
-
-If you're using ZeroMQ 2.1.x, install with:
+For 2.1.x install with:
go get -tags zmq_2_1 github.com/alecthomas/gozmq
-### ZeroMQ 3.x
-
-There is *basic* support for ZeroMQ 3.x. Install with:
+For 3.x install with:
go get -tags zmq_3_x github.com/alecthomas/gozmq
+
+For 4.x install with:
+
+ go get -tags zmq_4_x github.com/alecthomas/gozmq
### Troubleshooting
@@ -51,15 +51,15 @@
eg. If you installed zmq into `/opt/zmq` you might try:
- CGO_CFLAGS=-I/opt/zmq/include CGO_LDFLAGS=-L/opt/zmq/lib \
- go get github.com/alecthomas/gozmq
+ CGO_CFLAGS=-I/opt/zmq/include CGO_LDFLAGS=-L/opt/zmq/lib \
+ go get github.com/alecthomas/gozmq
#### Mismatch in version of ZMQ
If you get errors like this with 'go get' or 'go build':
1: error: 'ZMQ_FOO' undeclared (first use in this function)
-
+
There are two possibilities:
1. Your version of zmq is *very* old. In this case you will need to download and build zmq yourself.
@@ -155,119 +155,119 @@
```go
const (
- // NewSocket types
- PAIR = SocketType(C.ZMQ_PAIR)
- PUB = SocketType(C.ZMQ_PUB)
- SUB = SocketType(C.ZMQ_SUB)
- REQ = SocketType(C.ZMQ_REQ)
- REP = SocketType(C.ZMQ_REP)
- DEALER = SocketType(C.ZMQ_DEALER)
- ROUTER = SocketType(C.ZMQ_ROUTER)
- PULL = SocketType(C.ZMQ_PULL)
- PUSH = SocketType(C.ZMQ_PUSH)
- XPUB = SocketType(C.ZMQ_XPUB)
- XSUB = SocketType(C.ZMQ_XSUB)
-
- // Deprecated aliases
- XREQ = DEALER
- XREP = ROUTER
- UPSTREAM = PULL
- DOWNSTREAM = PUSH
-
- // NewSocket options
- AFFINITY = UInt64SocketOption(C.ZMQ_AFFINITY)
- IDENTITY = StringSocketOption(C.ZMQ_IDENTITY)
- SUBSCRIBE = StringSocketOption(C.ZMQ_SUBSCRIBE)
- UNSUBSCRIBE = StringSocketOption(C.ZMQ_UNSUBSCRIBE)
- RATE = Int64SocketOption(C.ZMQ_RATE)
- RECOVERY_IVL = Int64SocketOption(C.ZMQ_RECOVERY_IVL)
- SNDBUF = UInt64SocketOption(C.ZMQ_SNDBUF)
- RCVBUF = UInt64SocketOption(C.ZMQ_RCVBUF)
- FD = Int64SocketOption(C.ZMQ_FD)
- EVENTS = UInt64SocketOption(C.ZMQ_EVENTS)
- TYPE = UInt64SocketOption(C.ZMQ_TYPE)
- LINGER = IntSocketOption(C.ZMQ_LINGER)
- RECONNECT_IVL = IntSocketOption(C.ZMQ_RECONNECT_IVL)
- RECONNECT_IVL_MAX = IntSocketOption(C.ZMQ_RECONNECT_IVL_MAX)
- BACKLOG = IntSocketOption(C.ZMQ_BACKLOG)
+ // NewSocket types
+ PAIR = SocketType(C.ZMQ_PAIR)
+ PUB = SocketType(C.ZMQ_PUB)
+ SUB = SocketType(C.ZMQ_SUB)
+ REQ = SocketType(C.ZMQ_REQ)
+ REP = SocketType(C.ZMQ_REP)
+ DEALER = SocketType(C.ZMQ_DEALER)
+ ROUTER = SocketType(C.ZMQ_ROUTER)
+ PULL = SocketType(C.ZMQ_PULL)
+ PUSH = SocketType(C.ZMQ_PUSH)
+ XPUB = SocketType(C.ZMQ_XPUB)
+ XSUB = SocketType(C.ZMQ_XSUB)
+
+ // Deprecated aliases
+ XREQ = DEALER
+ XREP = ROUTER
+ UPSTREAM = PULL
+ DOWNSTREAM = PUSH
+
+ // NewSocket options
+ AFFINITY = UInt64SocketOption(C.ZMQ_AFFINITY)
+ IDENTITY = StringSocketOption(C.ZMQ_IDENTITY)
+ SUBSCRIBE = StringSocketOption(C.ZMQ_SUBSCRIBE)
+ UNSUBSCRIBE = StringSocketOption(C.ZMQ_UNSUBSCRIBE)
+ RATE = Int64SocketOption(C.ZMQ_RATE)
+ RECOVERY_IVL = Int64SocketOption(C.ZMQ_RECOVERY_IVL)
+ SNDBUF = UInt64SocketOption(C.ZMQ_SNDBUF)
+ RCVBUF = UInt64SocketOption(C.ZMQ_RCVBUF)
+ FD = Int64SocketOption(C.ZMQ_FD)
+ EVENTS = UInt64SocketOption(C.ZMQ_EVENTS)
+ TYPE = UInt64SocketOption(C.ZMQ_TYPE)
+ LINGER = IntSocketOption(C.ZMQ_LINGER)
+ RECONNECT_IVL = IntSocketOption(C.ZMQ_RECONNECT_IVL)
+ RECONNECT_IVL_MAX = IntSocketOption(C.ZMQ_RECONNECT_IVL_MAX)
+ BACKLOG = IntSocketOption(C.ZMQ_BACKLOG)
- // Send/recv options
- SNDMORE = SendRecvOption(C.ZMQ_SNDMORE)
+ // Send/recv options
+ SNDMORE = SendRecvOption(C.ZMQ_SNDMORE)
)
```
```go
const (
- POLLIN = PollEvents(C.ZMQ_POLLIN)
- POLLOUT = PollEvents(C.ZMQ_POLLOUT)
- POLLERR = PollEvents(C.ZMQ_POLLERR)
+ POLLIN = PollEvents(C.ZMQ_POLLIN)
+ POLLOUT = PollEvents(C.ZMQ_POLLOUT)
+ POLLERR = PollEvents(C.ZMQ_POLLERR)
)
```
```go
const (
- STREAMER = DeviceType(C.ZMQ_STREAMER)
- FORWARDER = DeviceType(C.ZMQ_FORWARDER)
- QUEUE = DeviceType(C.ZMQ_QUEUE)
+ STREAMER = DeviceType(C.ZMQ_STREAMER)
+ FORWARDER = DeviceType(C.ZMQ_FORWARDER)
+ QUEUE = DeviceType(C.ZMQ_QUEUE)
)
```
```go
const (
- RCVTIMEO = IntSocketOption(C.ZMQ_RCVTIMEO)
- SNDTIMEO = IntSocketOption(C.ZMQ_SNDTIMEO)
+ RCVTIMEO = IntSocketOption(C.ZMQ_RCVTIMEO)
+ SNDTIMEO = IntSocketOption(C.ZMQ_SNDTIMEO)
)
```
```go
const (
- RCVMORE = UInt64SocketOption(C.ZMQ_RCVMORE)
- RECOVERY_IVL_MSEC = Int64SocketOption(C.ZMQ_RECOVERY_IVL_MSEC)
- SWAP = Int64SocketOption(C.ZMQ_SWAP)
- MCAST_LOOP = Int64SocketOption(C.ZMQ_MCAST_LOOP)
- HWM = UInt64SocketOption(C.ZMQ_HWM)
- NOBLOCK = SendRecvOption(C.ZMQ_NOBLOCK)
+ RCVMORE = UInt64SocketOption(C.ZMQ_RCVMORE)
+ RECOVERY_IVL_MSEC = Int64SocketOption(C.ZMQ_RECOVERY_IVL_MSEC)
+ SWAP = Int64SocketOption(C.ZMQ_SWAP)
+ MCAST_LOOP = Int64SocketOption(C.ZMQ_MCAST_LOOP)
+ HWM = UInt64SocketOption(C.ZMQ_HWM)
+ NOBLOCK = SendRecvOption(C.ZMQ_NOBLOCK)
- // Forwards-compatible aliases:
- DONTWAIT = NOBLOCK
+ // Forwards-compatible aliases:
+ DONTWAIT = NOBLOCK
)
```
```go
const (
- RCVMORE = IntSocketOption(C.ZMQ_RCVMORE)
- SNDHWM = IntSocketOption(C.ZMQ_SNDHWM)
- RCVHWM = IntSocketOption(C.ZMQ_RCVHWM)
-
- // TODO Not documented in the man page...
- //LAST_ENDPOINT = UInt64SocketOption(C.ZMQ_LAST_ENDPOINT)
- FAIL_UNROUTABLE = BoolSocketOption(C.ZMQ_FAIL_UNROUTABLE)
- TCP_KEEPALIVE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE)
- TCP_KEEPALIVE_CNT = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_CNT)
- TCP_KEEPALIVE_IDLE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_IDLE)
- TCP_KEEPALIVE_INTVL = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_INTVL)
- TCP_ACCEPT_FILTER = StringSocketOption(C.ZMQ_TCP_ACCEPT_FILTER)
+ RCVMORE = IntSocketOption(C.ZMQ_RCVMORE)
+ SNDHWM = IntSocketOption(C.ZMQ_SNDHWM)
+ RCVHWM = IntSocketOption(C.ZMQ_RCVHWM)
+
+ // TODO Not documented in the man page...
+ //LAST_ENDPOINT = UInt64SocketOption(C.ZMQ_LAST_ENDPOINT)
+ FAIL_UNROUTABLE = BoolSocketOption(C.ZMQ_FAIL_UNROUTABLE)
+ TCP_KEEPALIVE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE)
+ TCP_KEEPALIVE_CNT = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_CNT)
+ TCP_KEEPALIVE_IDLE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_IDLE)
+ TCP_KEEPALIVE_INTVL = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_INTVL)
+ TCP_ACCEPT_FILTER = StringSocketOption(C.ZMQ_TCP_ACCEPT_FILTER)
- // Message options
- MORE = MessageOption(C.ZMQ_MORE)
+ // Message options
+ MORE = MessageOption(C.ZMQ_MORE)
- // Send/recv options
- DONTWAIT = SendRecvOption(C.ZMQ_DONTWAIT)
+ // Send/recv options
+ DONTWAIT = SendRecvOption(C.ZMQ_DONTWAIT)
- // Deprecated aliases
- NOBLOCK = DONTWAIT
+ // Deprecated aliases
+ NOBLOCK = DONTWAIT
)
```
```go
var (
- // Additional ZMQ errors
- ENOTSOCK error = zmqErrno(C.ENOTSOCK)
- EFSM error = zmqErrno(C.EFSM)
- EINVAL error = zmqErrno(C.EINVAL)
- ENOCOMPATPROTO error = zmqErrno(C.ENOCOMPATPROTO)
- ETERM error = zmqErrno(C.ETERM)
- EMTHREAD error = zmqErrno(C.EMTHREAD)
+ // Additional ZMQ errors
+ ENOTSOCK error = zmqErrno(C.ENOTSOCK)
+ EFSM error = zmqErrno(C.EFSM)
+ EINVAL error = zmqErrno(C.EINVAL)
+ ENOCOMPATPROTO error = zmqErrno(C.ENOCOMPATPROTO)
+ ETERM error = zmqErrno(C.ETERM)
+ EMTHREAD error = zmqErrno(C.EMTHREAD)
)
```
@@ -403,10 +403,10 @@
```go
type PollItem struct {
- Socket *Socket // socket to poll for events on
- Fd ZmqOsSocketType // fd to poll for events on as returned from os.File.Fd()
- Events PollEvents // event set to poll for
- REvents PollEvents // events that were present
+ Socket *Socket // socket to poll for events on
+ Fd ZmqOsSocketType // fd to poll for events on as returned from os.File.Fd()
+ Events PollEvents // event set to poll for
+ REvents PollEvents // events that were present
}
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/gozmqgen/main.go new/gozmq-0.0.0+git20140623.d1b01a2/gozmqgen/main.go
--- old/gozmq-0.0.0+git20130912.62f3d98/gozmqgen/main.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/gozmqgen/main.go 2014-09-06 10:59:35.000000000 +0200
@@ -22,7 +22,7 @@
}
var args = Args{
- zversion: "2.1,2.2,3.2",
+ zversion: "2.1,2.2,3.2,4.0",
pages: "getsockopt,setsockopt",
comment_width: 72,
templsource: "./gozmqgen/template.txt",
@@ -86,20 +86,34 @@
var (
gotypes = map[string]map[string]string{
- "binary data": map[string]string{"": "string"},
- "character string": map[string]string{"": "string"},
+ "binary data": map[string]string{
+ "": "string",
+ },
+ "binary data or Z85 text string": map[string]string{
+ "": "string",
+ },
+ "character string": map[string]string{
+ "": "string",
+ },
"int": map[string]string{
"": "int",
"boolean": "bool",
"milliseconds": "time.Duration",
},
- "int on POSIX systems, SOCKET on Windows": map[string]string{"": "int"},
+ "int on POSIX systems, SOCKET on Windows": map[string]string{
+ "": "int",
+ },
"int64_t": map[string]string{
"": "int64",
"boolean": "bool",
"milliseconds": "time.Duration",
},
- "uint32_t": map[string]string{"": "uint32"},
+ "NULL-terminated character string": map[string]string{
+ "": "string",
+ },
+ "uint32_t": map[string]string{
+ "": "uint32",
+ },
"uint64_t": map[string]string{
"": "uint64",
"boolean": "bool",
@@ -107,13 +121,15 @@
}
ztypes = map[string]map[string]string{
- "binary data": map[string]string{"": "String"},
- "character string": map[string]string{"": "String"},
- "int": map[string]string{"": "Int"},
+ "binary data": map[string]string{"": "String"},
+ "binary data or Z85 text string": map[string]string{"": "String"},
+ "character string": map[string]string{"": "String"},
+ "int": map[string]string{"": "Int"},
"int on POSIX systems, SOCKET on Windows": map[string]string{"": "Int"},
- "int64_t": map[string]string{"": "Int64"},
- "uint32_t": map[string]string{"": "UInt32"},
- "uint64_t": map[string]string{"": "UInt64"},
+ "int64_t": map[string]string{"": "Int64"},
+ "NULL-terminated character string": map[string]string{"": "String"},
+ "uint32_t": map[string]string{"": "UInt32"},
+ "uint64_t": map[string]string{"": "UInt64"},
}
lowtypes = map[string]string{
@@ -127,10 +143,11 @@
"buf": "Buf",
"Hwm": "HWM",
"hwm": "HWM",
- "Ipv4only": "IPV4Only",
+ "Ipv4only": "IPv4Only",
"more": "More",
"msg": "Msg",
"pub": "PUB",
+ "Router": "ROUTER",
"size": "Size",
"Tcp": "TCP",
"timeo": "Timeout",
@@ -163,21 +180,17 @@
// shortname : unit
fixedunits = map[string]string{
- "XPUB_VERBOSE": "boolean",
+ "DELAY_ATTACH_ON_CONNECT": "boolean",
+ "ROUTER_MANDATORY": "boolean",
+ "XPUB_VERBOSE": "boolean",
}
// version : shortname
ignore = map[string]map[string]bool{
"": map[string]bool{
- "DELAY_ATTACH_ON_CONNECT": true,
- "FD": true,
- "IPV4ONLY": true,
- "LAST_ENDPOINT": true,
- "MAXMSGSIZE": true,
- "MULTICAST_HOPS": true,
- "ROUTER_MANDATORY": true,
- "TCP_ACCEPT_FILTER": true,
- "XPUB_VERBOSE": true,
+ "FD": true,
+ "LAST_ENDPOINT": true,
+ "MULTICAST_HOPS": true,
},
"2.1": map[string]bool{
"RECOVERY_IVL": true,
@@ -195,8 +208,9 @@
buildtags = map[string]string{
"2.1": "zmq_2_1",
- "2.2": "!zmq_2_1,!zmq_3_x",
+ "2.2": "!zmq_2_1,!zmq_3_x,!zmq_4_x",
"3.2": "zmq_3_x",
+ "4.0": "zmq_4_x",
}
)
@@ -363,6 +377,9 @@
case "Option value unit":
option.unit = value
break
+ case "Option value size":
+ option.unit = "Z85"
+ break
}
if len(option.typ) > 0 && len(option.unit) > 0 {
if val, ok := fixedtypes[""][option.shortname]; ok {
@@ -375,6 +392,9 @@
} else {
option.lowtype = option.typ
}
+ if val, ok := fixedunits[option.shortname]; ok {
+ option.unit = val
+ }
gomap := gotypes[option.typ]
if val, ok := gomap[option.unit]; ok {
option.gotype = val
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmq_2_x.go new/gozmq-0.0.0+git20140623.d1b01a2/zmq_2_x.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmq_2_x.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmq_2_x.go 2014-09-06 10:59:35.000000000 +0200
@@ -1,4 +1,4 @@
-// +build !zmq_3_x
+// +build !zmq_3_x,!zmq_4_x
/*
Copyright 2010-2012 Alec Thomas
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmq_3_x.go new/gozmq-0.0.0+git20140623.d1b01a2/zmq_3_x.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmq_3_x.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmq_3_x.go 2014-09-06 10:59:35.000000000 +0200
@@ -1,4 +1,4 @@
-// +build zmq_3_x
+// +build zmq_3_x zmq_4_x
/*
Copyright 2010-2012 Alec Thomas
@@ -37,12 +37,17 @@
// TODO Not documented in the man page...
//LAST_ENDPOINT = UInt64SocketOption(C.ZMQ_LAST_ENDPOINT)
- FAIL_UNROUTABLE = BoolSocketOption(C.ZMQ_FAIL_UNROUTABLE)
- TCP_KEEPALIVE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE)
- TCP_KEEPALIVE_CNT = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_CNT)
- TCP_KEEPALIVE_IDLE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_IDLE)
- TCP_KEEPALIVE_INTVL = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_INTVL)
- TCP_ACCEPT_FILTER = StringSocketOption(C.ZMQ_TCP_ACCEPT_FILTER)
+ DELAY_ATTACH_ON_CONNECT = IntSocketOption(C.ZMQ_DELAY_ATTACH_ON_CONNECT)
+ FAIL_UNROUTABLE = BoolSocketOption(C.ZMQ_FAIL_UNROUTABLE)
+ IPV4ONLY = IntSocketOption(C.ZMQ_IPV4ONLY)
+ MAXMSGSIZE = Int64SocketOption(C.ZMQ_MAXMSGSIZE)
+ ROUTER_MANDATORY = IntSocketOption(C.ZMQ_ROUTER_MANDATORY)
+ TCP_KEEPALIVE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE)
+ TCP_KEEPALIVE_CNT = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_CNT)
+ TCP_KEEPALIVE_IDLE = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_IDLE)
+ TCP_KEEPALIVE_INTVL = IntSocketOption(C.ZMQ_TCP_KEEPALIVE_INTVL)
+ TCP_ACCEPT_FILTER = StringSocketOption(C.ZMQ_TCP_ACCEPT_FILTER)
+ XPUB_VERBOSE = IntSocketOption(C.ZMQ_XPUB_VERBOSE)
// Message options
MORE = MessageOption(C.ZMQ_MORE)
@@ -129,6 +134,10 @@
return rcv
}
+func (s *Socket) SetTCPAcceptFilterNil() error {
+ return s.SetSockOptStringNil(TCP_ACCEPT_FILTER)
+}
+
// Disconnect the socket from the address.
// int zmq_disconnect (void *s, const char *addr);
func (s *Socket) Disconnect(address string) error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmq_3_x_test.go new/gozmq-0.0.0+git20140623.d1b01a2/zmq_3_x_test.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmq_3_x_test.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmq_3_x_test.go 2014-09-06 10:59:35.000000000 +0200
@@ -1,4 +1,4 @@
-// +build zmq_3_x
+// +build zmq_3_x zmq_4_x
/*
Copyright 2010 Alec Thomas
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmq_4_x.go new/gozmq-0.0.0+git20140623.d1b01a2/zmq_4_x.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmq_4_x.go 1970-01-01 01:00:00.000000000 +0100
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmq_4_x.go 2014-09-06 10:59:35.000000000 +0200
@@ -0,0 +1,46 @@
+// +build zmq_4_x
+
+/*
+ Copyright 2010-2012 Alec Thomas
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package gozmq
+
+/*
+#cgo pkg-config: libzmq
+#include <zmq.h>
+#include <stdlib.h>
+#include <string.h>
+*/
+import "C"
+
+const (
+ IPV6 = IntSocketOption(C.ZMQ_IPV6)
+ IMMEDIATE = IntSocketOption(C.ZMQ_IMMEDIATE)
+ MECHANISM = IntSocketOption(C.ZMQ_MECHANISM)
+ PLAIN_SERVER = IntSocketOption(C.ZMQ_PLAIN_SERVER)
+ PLAIN_USERNAME = StringSocketOption(C.ZMQ_PLAIN_USERNAME)
+ PLAIN_PASSWORD = StringSocketOption(C.ZMQ_PLAIN_PASSWORD)
+ CURVE_PUBLICKEY = StringSocketOption(C.ZMQ_CURVE_PUBLICKEY)
+ CURVE_SECRETKEY = StringSocketOption(C.ZMQ_CURVE_SECRETKEY)
+ CURVE_SERVERKEY = StringSocketOption(C.ZMQ_CURVE_SERVERKEY)
+ ZAP_DOMAIN = StringSocketOption(C.ZMQ_ZAP_DOMAIN)
+ ROUTER_RAW = IntSocketOption(C.ZMQ_ROUTER_RAW)
+ PROBE_ROUTER = IntSocketOption(C.ZMQ_PROBE_ROUTER)
+ REQ_CORRELATE = IntSocketOption(C.ZMQ_REQ_CORRELATE)
+ REQ_RELAXED = IntSocketOption(C.ZMQ_REQ_RELAXED)
+ CURVE_SERVER = IntSocketOption(C.ZMQ_CURVE_SERVER)
+ CONFLATE = IntSocketOption(C.ZMQ_CONFLATE)
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_2_2.go new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_2_2.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_2_2.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_2_2.go 2014-09-06 10:59:35.000000000 +0200
@@ -1,4 +1,4 @@
-// +build !zmq_2_1,!zmq_3_x
+// +build !zmq_2_1,!zmq_3_x,!zmq_4_x
//
package gozmq
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_3_2.go new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_3_2.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_3_2.go 2013-10-18 15:11:48.000000000 +0200
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_3_2.go 2014-09-06 10:59:35.000000000 +0200
@@ -129,6 +129,14 @@
return s.GetSockOptInt(BACKLOG)
}
+// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
+//
+// See: http://api.zeromq.org/3.2:zmq-getsockopt#toc17
+//
+func (s *Socket) MaxMsgSize() (int64, error) {
+ return s.GetSockOptInt64(MAXMSGSIZE)
+}
+
// ZMQ_RCVTIMEO: Maximum time before a socket operation returns with EAGAIN.
//
// See: http://api.zeromq.org/3.2:zmq-getsockopt#toc19
@@ -147,6 +155,24 @@
return time.Duration(ms) * time.Millisecond, err
}
+// ZMQ_IPV4ONLY: Retrieve IPv4-only socket override status.
+//
+// See: http://api.zeromq.org/3.2:zmq-getsockopt#toc21
+//
+func (s *Socket) IPv4Only() (bool, error) {
+ value, err := s.GetSockOptInt(IPV4ONLY)
+ return value != 0, err
+}
+
+// ZMQ_DELAY_ATTACH_ON_CONNECT: Retrieve attach-on-connect value.
+//
+// See: http://api.zeromq.org/3.2:zmq-getsockopt#toc22
+//
+func (s *Socket) DelayAttachOnConnect() (bool, error) {
+ value, err := s.GetSockOptInt(DELAY_ATTACH_ON_CONNECT)
+ return value != 0, err
+}
+
// ZMQ_EVENTS: Retrieve socket event state.
//
// See: http://api.zeromq.org/3.2:zmq-getsockopt#toc24
@@ -301,6 +327,14 @@
return s.SetSockOptInt(BACKLOG, value)
}
+// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc17
+//
+func (s *Socket) SetMaxMsgSize(value int64) error {
+ return s.SetSockOptInt64(MAXMSGSIZE, value)
+}
+
// ZMQ_RCVTIMEO: Maximum time before a recv operation returns with EAGAIN.
//
// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc19
@@ -317,6 +351,50 @@
return s.SetSockOptInt(SNDTIMEO, int(value/time.Millisecond))
}
+// ZMQ_IPV4ONLY: Use IPv4-only sockets.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc21
+//
+func (s *Socket) SetIPv4Only(value bool) error {
+ if value {
+ return s.SetSockOptInt(IPV4ONLY, 1)
+ }
+ return s.SetSockOptInt(IPV4ONLY, 0)
+}
+
+// ZMQ_DELAY_ATTACH_ON_CONNECT: Accept messages only when connections are made.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc22
+//
+func (s *Socket) SetDelayAttachOnConnect(value bool) error {
+ if value {
+ return s.SetSockOptInt(DELAY_ATTACH_ON_CONNECT, 1)
+ }
+ return s.SetSockOptInt(DELAY_ATTACH_ON_CONNECT, 0)
+}
+
+// ZMQ_ROUTER_MANDATORY: accept only routable messages on ROUTER sockets.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc23
+//
+func (s *Socket) SetROUTERMandatory(value bool) error {
+ if value {
+ return s.SetSockOptInt(ROUTER_MANDATORY, 1)
+ }
+ return s.SetSockOptInt(ROUTER_MANDATORY, 0)
+}
+
+// ZMQ_XPUB_VERBOSE: provide all subscription messages on XPUB sockets.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc24
+//
+func (s *Socket) SetXPUBVerbose(value bool) error {
+ if value {
+ return s.SetSockOptInt(XPUB_VERBOSE, 1)
+ }
+ return s.SetSockOptInt(XPUB_VERBOSE, 0)
+}
+
// ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option.
//
// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc25
@@ -348,3 +426,11 @@
func (s *Socket) SetTCPKeepaliveIntvl(value int) error {
return s.SetSockOptInt(TCP_KEEPALIVE_INTVL, value)
}
+
+// ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections.
+//
+// See: http://api.zeromq.org/3.2:zmq-setsockopt#toc29
+//
+func (s *Socket) SetTCPAcceptFilter(value string) error {
+ return s.SetSockOptString(TCP_ACCEPT_FILTER, value)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_4_0.go new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_4_0.go
--- old/gozmq-0.0.0+git20130912.62f3d98/zmqgen_4_0.go 1970-01-01 01:00:00.000000000 +0100
+++ new/gozmq-0.0.0+git20140623.d1b01a2/zmqgen_4_0.go 2014-09-06 10:59:35.000000000 +0200
@@ -0,0 +1,627 @@
+// +build zmq_4_x
+//
+
+package gozmq
+
+import (
+ "time"
+)
+
+// This file was generated automatically. Changes made here will be lost.
+
+// Socket Option Getters
+
+// ZMQ_TYPE: Retrieve socket type.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc3
+//
+func (s *Socket) Type() (SocketType, error) {
+ value, err := s.GetSockOptUInt64(TYPE)
+ return SocketType(value), err
+}
+
+// ZMQ_RCVMORE: More message data parts to follow.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc4
+//
+func (s *Socket) RcvMore() (bool, error) {
+ value, err := s.GetSockOptInt(RCVMORE)
+ return value != 0, err
+}
+
+// ZMQ_SNDHWM: Retrieves high water mark for outbound messages.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc5
+//
+func (s *Socket) SndHWM() (int, error) {
+ return s.GetSockOptInt(SNDHWM)
+}
+
+// ZMQ_RCVHWM: Retrieve high water mark for inbound messages.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc6
+//
+func (s *Socket) RcvHWM() (int, error) {
+ return s.GetSockOptInt(RCVHWM)
+}
+
+// ZMQ_AFFINITY: Retrieve I/O thread affinity.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc7
+//
+func (s *Socket) Affinity() (uint64, error) {
+ return s.GetSockOptUInt64(AFFINITY)
+}
+
+// ZMQ_IDENTITY: Retrieve socket identity.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc8
+//
+func (s *Socket) Identity() (string, error) {
+ return s.GetSockOptString(IDENTITY)
+}
+
+// ZMQ_RATE: Retrieve multicast data rate.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc9
+//
+func (s *Socket) Rate() (int64, error) {
+ return s.GetSockOptInt64(RATE)
+}
+
+// ZMQ_RECOVERY_IVL: Get multicast recovery interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc10
+//
+func (s *Socket) RecoveryIvl() (time.Duration, error) {
+ ms, err := s.GetSockOptInt64(RECOVERY_IVL)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_SNDBUF: Retrieve kernel transmit buffer size.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc11
+//
+func (s *Socket) SndBuf() (uint64, error) {
+ return s.GetSockOptUInt64(SNDBUF)
+}
+
+// ZMQ_RCVBUF: Retrieve kernel receive buffer size.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc12
+//
+func (s *Socket) RcvBuf() (uint64, error) {
+ return s.GetSockOptUInt64(RCVBUF)
+}
+
+// ZMQ_LINGER: Retrieve linger period for socket shutdown.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc13
+//
+func (s *Socket) Linger() (time.Duration, error) {
+ ms, err := s.GetSockOptInt(LINGER)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_RECONNECT_IVL: Retrieve reconnection interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc14
+//
+func (s *Socket) ReconnectIvl() (time.Duration, error) {
+ ms, err := s.GetSockOptInt(RECONNECT_IVL)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc15
+//
+func (s *Socket) ReconnectIvlMax() (time.Duration, error) {
+ ms, err := s.GetSockOptInt(RECONNECT_IVL_MAX)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_BACKLOG: Retrieve maximum length of the queue of outstanding connections.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc16
+//
+func (s *Socket) Backlog() (int, error) {
+ return s.GetSockOptInt(BACKLOG)
+}
+
+// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc17
+//
+func (s *Socket) MaxMsgSize() (int64, error) {
+ return s.GetSockOptInt64(MAXMSGSIZE)
+}
+
+// ZMQ_RCVTIMEO: Maximum time before a socket operation returns with EAGAIN.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc19
+//
+func (s *Socket) RcvTimeout() (time.Duration, error) {
+ ms, err := s.GetSockOptInt(RCVTIMEO)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_SNDTIMEO: Maximum time before a socket operation returns with EAGAIN.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc20
+//
+func (s *Socket) SndTimeout() (time.Duration, error) {
+ ms, err := s.GetSockOptInt(SNDTIMEO)
+ return time.Duration(ms) * time.Millisecond, err
+}
+
+// ZMQ_IPV6: Retrieve IPv6 socket status.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc21
+//
+func (s *Socket) Ipv6() (bool, error) {
+ value, err := s.GetSockOptInt(IPV6)
+ return value != 0, err
+}
+
+// ZMQ_IPV4ONLY: Retrieve IPv4-only socket override status.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc22
+//
+func (s *Socket) IPv4Only() (bool, error) {
+ value, err := s.GetSockOptInt(IPV4ONLY)
+ return value != 0, err
+}
+
+// ZMQ_IMMEDIATE: Retrieve attach-on-connect value.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc23
+//
+func (s *Socket) Immediate() (bool, error) {
+ value, err := s.GetSockOptInt(IMMEDIATE)
+ return value != 0, err
+}
+
+// ZMQ_EVENTS: Retrieve socket event state.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc25
+//
+func (s *Socket) Events() (uint64, error) {
+ return s.GetSockOptUInt64(EVENTS)
+}
+
+// ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc27
+//
+func (s *Socket) TCPKeepalive() (int, error) {
+ return s.GetSockOptInt(TCP_KEEPALIVE)
+}
+
+// ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT(or TCP_KEEPALIVE on some OS).
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc28
+//
+func (s *Socket) TCPKeepaliveIdle() (int, error) {
+ return s.GetSockOptInt(TCP_KEEPALIVE_IDLE)
+}
+
+// ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc29
+//
+func (s *Socket) TCPKeepaliveCnt() (int, error) {
+ return s.GetSockOptInt(TCP_KEEPALIVE_CNT)
+}
+
+// ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc30
+//
+func (s *Socket) TCPKeepaliveIntvl() (int, error) {
+ return s.GetSockOptInt(TCP_KEEPALIVE_INTVL)
+}
+
+// ZMQ_MECHANISM: Retrieve current security mechanism.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc31
+//
+func (s *Socket) Mechanism() (int, error) {
+ return s.GetSockOptInt(MECHANISM)
+}
+
+// ZMQ_PLAIN_SERVER: Retrieve current PLAIN server role.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc32
+//
+func (s *Socket) PlainServer() (int, error) {
+ return s.GetSockOptInt(PLAIN_SERVER)
+}
+
+// ZMQ_PLAIN_USERNAME: Retrieve current PLAIN username.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc33
+//
+func (s *Socket) PlainUsername() (string, error) {
+ return s.GetSockOptString(PLAIN_USERNAME)
+}
+
+// ZMQ_PLAIN_PASSWORD: Retrieve current password.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc34
+//
+func (s *Socket) PlainPassword() (string, error) {
+ return s.GetSockOptString(PLAIN_PASSWORD)
+}
+
+// ZMQ_CURVE_PUBLICKEY: Retrieve current CURVE public key.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc35
+//
+func (s *Socket) CurvePublickey() (string, error) {
+ return s.GetSockOptString(CURVE_PUBLICKEY)
+}
+
+// ZMQ_CURVE_SECRETKEY: Retrieve current CURVE secret key.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc36
+//
+func (s *Socket) CurveSecretkey() (string, error) {
+ return s.GetSockOptString(CURVE_SECRETKEY)
+}
+
+// ZMQ_CURVE_SERVERKEY: Retrieve current CURVE server key.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc37
+//
+func (s *Socket) CurveServerkey() (string, error) {
+ return s.GetSockOptString(CURVE_SERVERKEY)
+}
+
+// ZMQ_ZAP_DOMAIN: Retrieve RFC 27 authentication domain.
+//
+// See: http://api.zeromq.org/4.0:zmq-getsockopt#toc38
+//
+func (s *Socket) ZapDomain() (string, error) {
+ return s.GetSockOptString(ZAP_DOMAIN)
+}
+
+// Socket Option Setters
+
+// ZMQ_SNDHWM: Set high water mark for outbound messages.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc3
+//
+func (s *Socket) SetSndHWM(value int) error {
+ return s.SetSockOptInt(SNDHWM, value)
+}
+
+// ZMQ_RCVHWM: Set high water mark for inbound messages.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc4
+//
+func (s *Socket) SetRcvHWM(value int) error {
+ return s.SetSockOptInt(RCVHWM, value)
+}
+
+// ZMQ_AFFINITY: Set I/O thread affinity.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc5
+//
+func (s *Socket) SetAffinity(value uint64) error {
+ return s.SetSockOptUInt64(AFFINITY, value)
+}
+
+// ZMQ_SUBSCRIBE: Establish message filter.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc6
+//
+func (s *Socket) SetSubscribe(value string) error {
+ return s.SetSockOptString(SUBSCRIBE, value)
+}
+
+// ZMQ_UNSUBSCRIBE: Remove message filter.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc7
+//
+func (s *Socket) SetUnsubscribe(value string) error {
+ return s.SetSockOptString(UNSUBSCRIBE, value)
+}
+
+// ZMQ_IDENTITY: Set socket identity.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc8
+//
+func (s *Socket) SetIdentity(value string) error {
+ return s.SetSockOptString(IDENTITY, value)
+}
+
+// ZMQ_RATE: Set multicast data rate.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc9
+//
+func (s *Socket) SetRate(value int64) error {
+ return s.SetSockOptInt64(RATE, value)
+}
+
+// ZMQ_RECOVERY_IVL: Set multicast recovery interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc10
+//
+func (s *Socket) SetRecoveryIvl(value time.Duration) error {
+ return s.SetSockOptInt64(RECOVERY_IVL, int64(value/time.Millisecond))
+}
+
+// ZMQ_SNDBUF: Set kernel transmit buffer size.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc11
+//
+func (s *Socket) SetSndBuf(value uint64) error {
+ return s.SetSockOptUInt64(SNDBUF, value)
+}
+
+// ZMQ_RCVBUF: Set kernel receive buffer size.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc12
+//
+func (s *Socket) SetRcvBuf(value uint64) error {
+ return s.SetSockOptUInt64(RCVBUF, value)
+}
+
+// ZMQ_LINGER: Set linger period for socket shutdown.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc13
+//
+func (s *Socket) SetLinger(value time.Duration) error {
+ return s.SetSockOptInt(LINGER, int(value/time.Millisecond))
+}
+
+// ZMQ_RECONNECT_IVL: Set reconnection interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc14
+//
+func (s *Socket) SetReconnectIvl(value time.Duration) error {
+ return s.SetSockOptInt(RECONNECT_IVL, int(value/time.Millisecond))
+}
+
+// ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc15
+//
+func (s *Socket) SetReconnectIvlMax(value time.Duration) error {
+ return s.SetSockOptInt(RECONNECT_IVL_MAX, int(value/time.Millisecond))
+}
+
+// ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc16
+//
+func (s *Socket) SetBacklog(value int) error {
+ return s.SetSockOptInt(BACKLOG, value)
+}
+
+// ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc17
+//
+func (s *Socket) SetMaxMsgSize(value int64) error {
+ return s.SetSockOptInt64(MAXMSGSIZE, value)
+}
+
+// ZMQ_RCVTIMEO: Maximum time before a recv operation returns with EAGAIN.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc19
+//
+func (s *Socket) SetRcvTimeout(value time.Duration) error {
+ return s.SetSockOptInt(RCVTIMEO, int(value/time.Millisecond))
+}
+
+// ZMQ_SNDTIMEO: Maximum time before a send operation returns with EAGAIN.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc20
+//
+func (s *Socket) SetSndTimeout(value time.Duration) error {
+ return s.SetSockOptInt(SNDTIMEO, int(value/time.Millisecond))
+}
+
+// ZMQ_IPV6: Enable IPv6 on socket.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc21
+//
+func (s *Socket) SetIpv6(value bool) error {
+ if value {
+ return s.SetSockOptInt(IPV6, 1)
+ }
+ return s.SetSockOptInt(IPV6, 0)
+}
+
+// ZMQ_IPV4ONLY: Use IPv4-only on socket.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc22
+//
+func (s *Socket) SetIPv4Only(value bool) error {
+ if value {
+ return s.SetSockOptInt(IPV4ONLY, 1)
+ }
+ return s.SetSockOptInt(IPV4ONLY, 0)
+}
+
+// ZMQ_IMMEDIATE: Queue messages only to completed connections.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc23
+//
+func (s *Socket) SetImmediate(value bool) error {
+ if value {
+ return s.SetSockOptInt(IMMEDIATE, 1)
+ }
+ return s.SetSockOptInt(IMMEDIATE, 0)
+}
+
+// ZMQ_ROUTER_MANDATORY: accept only routable messages on ROUTER sockets.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc24
+//
+func (s *Socket) SetROUTERMandatory(value bool) error {
+ if value {
+ return s.SetSockOptInt(ROUTER_MANDATORY, 1)
+ }
+ return s.SetSockOptInt(ROUTER_MANDATORY, 0)
+}
+
+// ZMQ_ROUTER_RAW: switch ROUTER socket to raw mode.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc25
+//
+func (s *Socket) SetROUTERRaw(value int) error {
+ return s.SetSockOptInt(ROUTER_RAW, value)
+}
+
+// ZMQ_PROBE_ROUTER: bootstrap connections to ROUTER sockets.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc26
+//
+func (s *Socket) SetProbeROUTER(value int) error {
+ return s.SetSockOptInt(PROBE_ROUTER, value)
+}
+
+// ZMQ_XPUB_VERBOSE: provide all subscription messages on XPUB sockets.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc27
+//
+func (s *Socket) SetXPUBVerbose(value bool) error {
+ if value {
+ return s.SetSockOptInt(XPUB_VERBOSE, 1)
+ }
+ return s.SetSockOptInt(XPUB_VERBOSE, 0)
+}
+
+// ZMQ_REQ_CORRELATE: match replies with requests.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc28
+//
+func (s *Socket) SetReqCorrelate(value int) error {
+ return s.SetSockOptInt(REQ_CORRELATE, value)
+}
+
+// ZMQ_REQ_RELAXED: relax strict alternation between request and reply.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc29
+//
+func (s *Socket) SetReqRelaxed(value int) error {
+ return s.SetSockOptInt(REQ_RELAXED, value)
+}
+
+// ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc30
+//
+func (s *Socket) SetTCPKeepalive(value int) error {
+ return s.SetSockOptInt(TCP_KEEPALIVE, value)
+}
+
+// ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT (or TCP_KEEPALIVE on some OS).
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc31
+//
+func (s *Socket) SetTCPKeepaliveIdle(value int) error {
+ return s.SetSockOptInt(TCP_KEEPALIVE_IDLE, value)
+}
+
+// ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc32
+//
+func (s *Socket) SetTCPKeepaliveCnt(value int) error {
+ return s.SetSockOptInt(TCP_KEEPALIVE_CNT, value)
+}
+
+// ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc33
+//
+func (s *Socket) SetTCPKeepaliveIntvl(value int) error {
+ return s.SetSockOptInt(TCP_KEEPALIVE_INTVL, value)
+}
+
+// ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc34
+//
+func (s *Socket) SetTCPAcceptFilter(value string) error {
+ return s.SetSockOptString(TCP_ACCEPT_FILTER, value)
+}
+
+// ZMQ_PLAIN_SERVER: Set PLAIN server role.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc35
+//
+func (s *Socket) SetPlainServer(value int) error {
+ return s.SetSockOptInt(PLAIN_SERVER, value)
+}
+
+// ZMQ_PLAIN_USERNAME: Set PLAIN security username.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc36
+//
+func (s *Socket) SetPlainUsername(value string) error {
+ return s.SetSockOptString(PLAIN_USERNAME, value)
+}
+
+// ZMQ_PLAIN_PASSWORD: Set PLAIN security password.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc37
+//
+func (s *Socket) SetPlainPassword(value string) error {
+ return s.SetSockOptString(PLAIN_PASSWORD, value)
+}
+
+// ZMQ_CURVE_SERVER: Set CURVE server role.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc38
+//
+func (s *Socket) SetCurveServer(value int) error {
+ return s.SetSockOptInt(CURVE_SERVER, value)
+}
+
+// ZMQ_CURVE_PUBLICKEY: Set CURVE public key.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc39
+//
+func (s *Socket) SetCurvePublickey(value string) error {
+ return s.SetSockOptString(CURVE_PUBLICKEY, value)
+}
+
+// ZMQ_CURVE_SECRETKEY: Set CURVE secret key.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc40
+//
+func (s *Socket) SetCurveSecretkey(value string) error {
+ return s.SetSockOptString(CURVE_SECRETKEY, value)
+}
+
+// ZMQ_CURVE_SERVERKEY: Set CURVE server key.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc41
+//
+func (s *Socket) SetCurveServerkey(value string) error {
+ return s.SetSockOptString(CURVE_SERVERKEY, value)
+}
+
+// ZMQ_ZAP_DOMAIN: Set RFC 27 authentication domain.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc42
+//
+func (s *Socket) SetZapDomain(value string) error {
+ return s.SetSockOptString(ZAP_DOMAIN, value)
+}
+
+// ZMQ_CONFLATE: Keep only last message.
+//
+// See: http://api.zeromq.org/4.0:zmq-setsockopt#toc43
+//
+func (s *Socket) SetConflate(value bool) error {
+ if value {
+ return s.SetSockOptInt(CONFLATE, 1)
+ }
+ return s.SetSockOptInt(CONFLATE, 0)
+}
--
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 go-go-gtk for openSUSE:Factory checked in at 2014-09-17 10:09:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go-go-gtk (Old)
and /work/SRC/openSUSE:Factory/.go-go-gtk.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go-go-gtk"
Changes:
--------
--- /work/SRC/openSUSE:Factory/go-go-gtk/go-go-gtk.changes 2013-08-13 15:47:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.go-go-gtk.new/go-go-gtk.changes 2014-09-17 10:09:47.000000000 +0200
@@ -1,0 +2,9 @@
+Mon Sep 15 07:06:20 UTC 2014 - i(a)marguerite.su
+
+- update version 0.0.0+git20140808
+- drop patch: g-thread-deprecated.patch
+ * upstream code change
+- add patch: g-thread-init.patch
+ * fix build error on SLE
+
+-------------------------------------------------------------------
Old:
----
g-thread-deprecated.patch
go-gtk-0.0.0+git20120304.tar.bz2
New:
----
g-thread-init.patch
go-gtk-0.0.0+git20140808.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go-go-gtk.spec ++++++
--- /var/tmp/diff_new_pack.IsTZ0P/_old 2014-09-17 10:09:50.000000000 +0200
+++ /var/tmp/diff_new_pack.IsTZ0P/_new 2014-09-17 10:09:50.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package go-go-gtk
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2011, Sascha Peilicke <saschpe(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -17,38 +17,29 @@
#
-
Name: go-go-gtk
-Version: 0.0.0+git20120304
+Version: 0.0.0+git20140808
Release: 0
Summary: Go bindings for GTK
License: BSD-3-Clause and LGPL-2.1+
Group: Development/Languages/Other
Url: http://github.com/mattn/go-gtk
-Source0: go-gtk-%{version}.tar.bz2
-Patch0: g-thread-deprecated.patch
+Source: go-gtk-%{version}.tar.bz2
+#PATCH-FIX-UPSTREAM fix g_thread_init undefined error on SLES
+Patch: g-thread-init.patch
BuildRequires: go-devel
-ExclusiveArch: %ix86 x86_64 %arm
-BuildRequires: pkgconfig(gtk+-2.0)
+BuildRequires: gtk2-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} && 0%{?suse_version} <= 1140
-BuildRequires: gtksourceview-devel
-%else
-%if 0%{?mandriva_version} && 0%{?mandriva_version} <= 201010
-BuildRequires: gtksourceview-devel
-%else
-%if 0%{?rhel_version} && 0%{?rhel_version} < 600
+%{go_requires}
+%{go_provides}
+%if 0%{?suse_version} <= 1140
BuildRequires: gtksourceview-devel
%else
BuildRequires: gtksourceview2-devel
%endif
-%endif
-%endif
-BuildRequires: pkgconfig(pango)
%if 0%{?suse_version} >= 1100
Recommends: go-go-gtk-doc
%endif
-%{go_provides}
%description
GTK bindingins for the Go programming language.
@@ -63,8 +54,8 @@
%prep
%setup -q -n go-gtk
-%if 0%{?suse_version} >= 1220
-%patch0 -p1
+%if 0%{?sles_version}
+%patch -p1
%endif
%build
++++++ g-thread-init.patch ++++++
Index: go-gtk/glib/glib.go
===================================================================
--- go-gtk.orig/glib/glib.go
+++ go-gtk/glib/glib.go
@@ -1,7 +1,7 @@
package glib
// #include "glib.go.h"
-// #cgo pkg-config: glib-2.0 gobject-2.0
+// #cgo pkg-config: glib-2.0 gobject-2.0 gthread-2.0
import "C"
import "unsafe"
import "reflect"
++++++ go-gtk-0.0.0+git20120304.tar.bz2 -> go-gtk-0.0.0+git20140808.tar.bz2 ++++++
++++ 24085 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 php5 for openSUSE:13.1:Update checked in at 2014-09-16 14:22:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/php5 (Old)
and /work/SRC/openSUSE:13.1:Update/.php5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.pqEY0M/_old 2014-09-16 14:22:35.000000000 +0200
+++ /var/tmp/diff_new_pack.pqEY0M/_new 2014-09-16 14:22:35.000000000 +0200
@@ -1 +1 @@
-<link package='php5.2913' cicount='copy' />
+<link package='php5.2999' cicount='copy' />
--
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 php5 for openSUSE:12.3:Update checked in at 2014-09-16 14:22:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/php5 (Old)
and /work/SRC/openSUSE:12.3:Update/.php5.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.aNE8Io/_old 2014-09-16 14:22:28.000000000 +0200
+++ /var/tmp/diff_new_pack.aNE8Io/_new 2014-09-16 14:22:28.000000000 +0200
@@ -1 +1 @@
-<link package='php5.2913' cicount='copy' />
+<link package='php5.2999' cicount='copy' />
--
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 php5.2999 for openSUSE:12.3:Update checked in at 2014-09-16 14:22:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/php5.2999 (Old)
and /work/SRC/openSUSE:12.3:Update/.php5.2999.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "php5.2999"
Changes:
--------
New Changes file:
--- /dev/null 2014-07-24 01:57:42.080040256 +0200
+++ /work/SRC/openSUSE:12.3:Update/.php5.2999.new/php5.changes 2014-09-16 14:22:27.000000000 +0200
@@ -0,0 +1,2737 @@
+-------------------------------------------------------------------
+Wed Sep 10 08:51:03 UTC 2014 - pgajdos(a)suse.com
+
+- security update:
+ * CVE-2014-5459 [bnc#893849]
+ * CVE-2014-3597 [bnc#893853]
+- added patches:
+ * php-CVE-2014-3597.patch
+
+-------------------------------------------------------------------
+Thu Jul 17 14:32:29 UTC 2014 - pgajdos(a)suse.com
+
+- security update:
+ * php-CVE-2014-4670.patch [bnc#886059]
+ * php-CVE-2014-4698.patch [bnc#886060]
+ * php-CVE-2014-4721.patch [bnc#885961]
+
+-------------------------------------------------------------------
+Tue Jul 1 07:15:31 UTC 2014 - pgajdos(a)suse.com
+
+- security update [bnc#884986], [bnc#884987], [bnc#884989],
+ [bnc#884990], [bnc#884991], [bnc#884992]
+- added patches:
+ * php-5.3.17-CVE-2014-0207.patch
+ * php-5.3.17-CVE-2014-3478.patch
+ * php-5.3.17-CVE-2014-3479.patch
+ * php-5.3.17-CVE-2014-3480.patch
+ * php-5.3.17-CVE-2014-3487.patch
+ * php-5.3.17-CVE-2014-3515.patch
+
+-------------------------------------------------------------------
+Tue Jun 17 15:00:13 UTC 2014 - pgajdos(a)suse.com
+
+- security update
+ * php-5.3.17-CVE-2014-4049.patch [bnc#882992]
+
+-------------------------------------------------------------------
+Tue Jun 3 08:38:03 UTC 2014 - pgajdos(a)suse.com
+
+- security update
+ * CVE-2014-0237 [bnc#880905]
+ * CVE-2014-0238 [bnc#880904]
+
+-------------------------------------------------------------------
+Fri May 9 07:45:19 UTC 2014 - pgajdos(a)suse.com
+
+- security update
+ * CVE-2014-2497.patch [bnc#868624]
+ * CVE-2014-0185.patch [bnc#875826]
+
+-------------------------------------------------------------------
+Fri Dec 13 10:34:36 UTC 2013 - pgajdos(a)suse.com
+
+- security update
+ * CVE-2013-6420.patch [bnc#854880]
+ * CVE-2013-6712.patch [bnc#853045]
+ * CVE-2013-4248.patch [bnc#837746]
+
+-------------------------------------------------------------------
+Thu Jul 4 09:45:33 UTC 2013 - pgajdos(a)suse.com
+
+- security update:
+ * CVE-2013-4635.patch [bnc#828020]
+ * CVE-2013-1635.patch [bnc#807707]
+ * CVE-2013-1643.patch [bnc#807707]
+ * CVE-2013-4113.patch [bnc#829207]
+
+-------------------------------------------------------------------
+Thu Oct 18 10:18:41 UTC 2012 - pgajdos(a)suse.com
+
+- fix CVE-2011-4153 CVE-2011-4153 [bnc#741859]
+
+-------------------------------------------------------------------
+Tue Oct 16 12:37:36 UTC 2012 - coolo(a)suse.com
+
+- add explicit buildrequire on libbz2-devel
+ (having to patch old .changes file to avoid "double entry")
+
+-------------------------------------------------------------------
+Thu Oct 11 09:16:27 UTC 2012 - pgajdos(a)suse.com
+
+- updated to 5.3.17:
+ * Fixed bug (segfault while build with zts and GOTO vm-kind)
+ * Fixed bug #62844 (parse_url() does not recognize //
+ * etc. see NEWS for details
+
+-------------------------------------------------------------------
+Mon Aug 27 14:47:48 UTC 2012 - pgajdos(a)suse.com
+
+- use FilesMatch with 'SetHandler' rather than 'AddHandler'
+ [bnc#775852]
+
+-------------------------------------------------------------------
+Mon Aug 27 14:44:27 UTC 2012 - pgajdos(a)suse.com
+
+- updated to 5.3.16:
+ * fixes over 20 bugs, see NEWS for more details
+
+-------------------------------------------------------------------
+Wed Jul 25 12:48:08 UTC 2012 - pgajdos(a)suse.com
+
+- updated to 5.3.15:
+ * fixes over 30 bugs and includes a fix for a security related
+ overflow issue in the stream implementation (CVE-2012-2688)
+ [bnc#772582] and open_basedir bypass, CVE-2012-3365 [bnc#772580]
+
+-------------------------------------------------------------------
+Mon Jun 18 17:08:57 UTC 2012 - pgajdos(a)suse.com
+
+- updated to 5.3.14:
+ * bug-fix release, see NEWS for details
+
+-------------------------------------------------------------------
+Fri May 25 15:10:26 UTC 2012 - pgajdos(a)suse.com
+
+- updated to 5.3.13: various security fixes,
+ CVE-2012-1823, CVE-2012-2311, CVE-2012-2335, CVE-2012-2336
+ * removed php-5.3.10-pcre_fullinfo.patch
+ * refreshed php-5.3.2-aconf26x.patch
+
+-------------------------------------------------------------------
+Thu Mar 8 19:40:22 UTC 2012 - coolo(a)suse.com
+
+- fix license to spdx.org format
+
+-------------------------------------------------------------------
+Tue Feb 28 09:08:30 UTC 2012 - pgajdos(a)suse.com
+
+- fixed build with new pcre (php bug 60986)
+
+-------------------------------------------------------------------
+Sat Feb 4 16:35:07 UTC 2012 - crrodriguez(a)opensuse.org
+
+- Build with -fpie
+
+-------------------------------------------------------------------
+Thu Feb 2 21:31:00 UTC 2012 - crrodriguez(a)opensuse.org
+
+- PHP 5.3.10, fixes CVE-2012-0830.
+
+-------------------------------------------------------------------
+Sat Jan 28 18:52:35 UTC 2012 - crrodriguez(a)opensuse.org
+
+- remove unapplied patches
+
+-------------------------------------------------------------------
+Wed Jan 18 15:17:02 UTC 2012 - pgajdos(a)suse.com
+
+- buildrequire libjpeg-devel
+
+-------------------------------------------------------------------
+Tue Jan 17 08:35:44 UTC 2012 - pgajdos(a)suse.com
+
+- remove apache module conflict with apache2-worker [bnc#728671]
+- amended README.SUSE instead
+
+-------------------------------------------------------------------
+Wed Jan 11 01:46:14 UTC 2012 - crrodriguez(a)opensuse.org
+
+- Update to version 5.3.9
+ * Drop already applied patches
+ * This update only contain minor bug fixes, it is a stop over
+ php 5.4.0 that should be out very soon.
+
+-------------------------------------------------------------------
+Mon Jan 2 16:52:43 UTC 2012 - pgajdos(a)suse.com
+
+- security update:
+ * CVE-2011-4885 [bnc#738221] -- added max_input_vars directive
+ to prevent attacks based on hash collisions
+
+-------------------------------------------------------------------
+Wed Dec 21 10:40:03 UTC 2011 - coolo(a)suse.com
+
+- add autoconf as buildrequire to avoid implicit dependency
+
+-------------------------------------------------------------------
+Tue Dec 20 12:06:57 UTC 2011 - pgajdos(a)suse.com
+
+- apache module conflicts with apache2-worker [bnc#728671]
+
+-------------------------------------------------------------------
+Fri Dec 16 13:31:56 UTC 2011 - pgajdos(a)suse.com
+
+- security update:
+ * CVE-2011-4566 [bnc#733590]
+ * CVE-2011-1466 [bnc#736169]
+
+-------------------------------------------------------------------
+Tue Dec 6 12:24:39 UTC 2011 - coolo(a)suse.com
+
+- fix license - there is no 3.1 version of php license
+
+-------------------------------------------------------------------
+Tue Nov 29 15:32:57 UTC 2011 - pgajdos(a)suse.com
+
+- build php against system's libcrypt, which drops
++++ 2540 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.3:Update/.php5.2999.new/php5.changes
New:
----
README.SUSE-pear
README.macros
install-pear-nozlib.phar
macros.php
php-5.2.9-BNC-457056.patch
php-5.3.0-bnc513080.patch
php-5.3.1-systzdata-v7.patch
php-5.3.17-CVE-2013-1635.patch
php-5.3.17-CVE-2013-1643.patch
php-5.3.17-CVE-2013-4113.patch
php-5.3.17-CVE-2013-4248.patch
php-5.3.17-CVE-2013-4635.patch
php-5.3.17-CVE-2013-6420.patch
php-5.3.17-CVE-2013-6712.patch
php-5.3.17-CVE-2014-0185.patch
php-5.3.17-CVE-2014-0207.patch
php-5.3.17-CVE-2014-0237.patch
php-5.3.17-CVE-2014-0238.patch
php-5.3.17-CVE-2014-2497.patch
php-5.3.17-CVE-2014-3478.patch
php-5.3.17-CVE-2014-3479.patch
php-5.3.17-CVE-2014-3480.patch
php-5.3.17-CVE-2014-3487.patch
php-5.3.17-CVE-2014-3515.patch
php-5.3.17-CVE-2014-4049.patch
php-5.3.17.tar.bz2
php-5.3.2-aconf26x.patch
php-5.3.2-ini.patch
php-5.3.2-no-build-date.patch
php-5.3.4-format-string-issues.patch
php-5.3.4-pts.patch
php-5.3.6-gcc_builtins.patch
php-5.3.6-ini-date.timezone.patch
php-5.3.8-CVE-2011-4153.patch
php-5.3.8-crypt-tests.patch
php-5.3.8-no-reentrant-crypt.patch
php-CVE-2014-3597.patch
php-CVE-2014-4670.patch
php-CVE-2014-4698.patch
php-CVE-2014-4721.patch
php-cloexec.patch
php-fpm.init
php-suse-addons.tar.bz2
php5-apache_sapi_install.patch
php5-missing-extdeps.patch
php5-openssl.patch
php5-php-config.patch
php5-phpize.patch
php5.changes
php5.spec
suhosin-0.9.33.tgz
suhosin-patch-5.3.3-0.9.10.patch.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ php5.spec ++++++
++++ 2020 lines (skipped)
++++++ README.SUSE-pear ++++++
Package php5-pear does not include Pear DB support
==================================================
Php5-pear package comes without Pear DB database
support, which was obsoleted by MDB2.
If you need Pear DB, please install it with:
#pear install --onlyreqdeps DB
This is the case of Squirrelmail which requires
Pear DB support. More information can be found
at bugzilla.novell.com, bug #178982.
++++++ README.macros ++++++
README for php-macros
Author: Christian Wittmer <chris(a)computersalat.de>
%php_gen_filelist generates an rpmlint happy filelist of your installed files
In most cases you only need to check the %doc part
sometimes there is a "Changes" or "ChangeLog",....
Requirements for %php_gen_filelist
You have to define following parts inside your spec file
Example:
Name: php5-pear-Date
%define pear_name Date
%define pear_sname date
BuildRequires: php-macros
Provides: php-pear-%{pear_name} pear-%{pear_name}
# Fix for renaming (package convention)
Provides: php5-pear-%{pear_sname} = %{version}
Provides: php-pear-%{pear_sname} = %{version}
Provides: pear-%{pear_sname} = %{version}
Obsoletes: php5-pear-%{pear_sname} < %{version}
Obsoletes: php-pear-%{pear_sname} < %{version}
Obsoletes: pear-%{pear_sname} < %{version}
%install
%{__mv} package*.xml %{pear_name}-%{version}
cd %{pear_name}-%{version}
PHP_PEAR_PHP_BIN="$(which php) -d memory_limit=50m"
%{__pear} -v \
-d doc_dir=/doc \
-d bin_dir=%{_bindir} \
-d data_dir=%{peardir}/data \
install --offline --nodeps -R "$RPM_BUILD_ROOT" package.xml
%{__install} -D -m 0644 package.xml $RPM_BUILD_ROOT%{php_pearxmldir}/%{pear_name}.xml
%{__rm} -rf $RPM_BUILD_ROOT/{doc,tmp}
%{__rm} -rf "$RPM_BUILD_ROOT"/%{peardir}/.{filemap,lock,registry,channels,depdb,depdblock}
%php_gen_filelist
%post
# on `rpm -ivh` PARAM is 1
# on `rpm -Uvh` PARAM is 2
if [ "$1" = "1" ]; then
%{__pear} install --nodeps --soft --force --register-only %{php_pearxmldir}/%{pear_name}.xml
fi
if [ "$1" = "2" ]; then
%{__pear} upgrade --offline --register-only %{php_pearxmldir}/%{pear_name}.xml
fi
%postun
# on `rpm -e` PARAM is 0
if [ "$1" = "0" ]; then
%{__pear} uninstall --nodeps --ignore-errors --register-only pear.php.net/%{pear_name}
fi
%clean
%{__rm} -rf %{buildroot}
%files -f %{name}.files
%defattr(-,root,root)
%doc Changes README
%changelog
#############################################################################
And here an Example of the generated filelist:
/usr/share/php5/PEAR/Date.php
%dir /usr/share/php5/PEAR/Date
/usr/share/php5/PEAR/Date/Calc.php
/usr/share/php5/PEAR/Date/Human.php
/usr/share/php5/PEAR/Date/Span.php
/usr/share/php5/PEAR/Date/TimeZone.php
%dir /usr/share/php5/PEAR/test
%dir /usr/share/php5/PEAR/test/Date
%dir /usr/share/php5/PEAR/test/Date/tests
/usr/share/php5/PEAR/test/Date/tests/test_date_methods_span.php
/usr/share/php5/PEAR/test/Date/tests/testunit_date_span.php
/usr/share/php5/PEAR/test/Date/tests/test_calc.php
/usr/share/php5/PEAR/test/Date/tests/calc.php
/usr/share/php5/PEAR/test/Date/tests/testunit_date.php
/usr/share/php5/PEAR/test/Date/tests/testunit.php
%dir /usr/share/php5/PEAR/test/Date/tests/bugs
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-727-1.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-727-2.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-727-3.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-727-4.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-674.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-9213.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-9414.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-8912.phpt
/usr/share/php5/PEAR/test/Date/tests/bugs/bug-967.phpt
/var/lib/pear/Date.xml
++++++ macros.php ++++++
# macros.php file
# macros for module building. handle with care.
#
# Interface versions exposed by PHP:
#
%php_core_api @PHP_APIVER@
%php_zend_api @PHP_ZENDVER@
# Useful php macros (from Christian Wittmer <chris(a)computersalat.de>)
#
%__php /usr/bin/php
%__phpize /usr/bin/phpize
%__php_config /usr/bin/php-config
%php_version %(%{__php_config} --version)
#
%__pear /usr/bin/pear
%php_peardir %(%{__pear} config-get php_dir)
%php_pearxmldir /var/lib/pear
# macro: php_pear_gen_filelist
# do the rpmlint happy filelist generation
# with %dir in front of directories
%php_pear_gen_filelist(n)\
FILES=%{name}.files\
# fgen_dir func\
# IN: dir\
fgen_dir(){\
%{__cat} >> $FILES << EOF\
%dir ${1}\
EOF\
}\
# fgen_file func\
# IN: file\
fgen_file(){\
%{__cat} >> $FILES << EOF\
${1}\
EOF\
}\
# check for files in %{php_peardir}\
RES=`find ${RPM_BUILD_ROOT}%{php_peardir} -maxdepth 1 -type f`\
if [ -n "$RES" ]; then\
for file in $RES; do\
fgen_file "%{php_peardir}/$(basename ${file})"\
done\
fi\
\
# get all dirs into array\
base_dir="${RPM_BUILD_ROOT}%{php_peardir}/"\
for dir in `find ${base_dir} -type d | sort`; do\
if [ "$dir" = "${base_dir}" ]; then\
continue\
else\
el=`echo $dir | %{__awk} -F"${base_dir}" '{print $2}'`\
all_dir=(${all_dir[@]} $el)\
fi\
done\
\
# build filelist\
for i in ${all_dir[@]}; do\
if [ -d ${base_dir}/${i} ]; then\
RES=`find "${base_dir}/${i}" -maxdepth 1 -type f`\
if [ -n "$RES" ]; then\
fgen_dir "%{php_peardir}/${i}"\
for file in $RES; do\
fgen_file "%{php_peardir}/${i}/$(basename ${file})"\
done\
else\
fgen_dir "%{php_peardir}/${i}"\
fi\
fi\
done\
# add xml file\
fgen_file "%php_pearxmldir/%{pear_name}.xml"\
#
++++++ php-5.2.9-BNC-457056.patch ++++++
Index: ext/xml/compat.c
===================================================================
--- ext/xml/compat.c.orig 2009-01-12 15:30:21.000000000 +0100
+++ ext/xml/compat.c 2009-03-14 18:32:40.000000000 +0100
@@ -482,9 +482,7 @@ XML_ParserCreate_MM(const XML_Char *enco
parser->parser->charset = XML_CHAR_ENCODING_NONE;
#endif
-#if LIBXML_VERSION >= 20703
xmlCtxtUseOptions(parser->parser, XML_PARSE_OLDSAX);
-#endif
parser->parser->replaceEntities = 1;
parser->parser->wellFormed = 0;
++++++ php-5.3.0-bnc513080.patch ++++++
Index: ext/exif/exif.c
===================================================================
--- ext/exif/exif.c.orig 2010-01-03 10:23:27.000000000 +0100
+++ ext/exif/exif.c 2010-08-03 06:31:20.024482000 +0200
@@ -66,7 +66,7 @@
#include "ext/standard/php_image.h"
#include "ext/standard/info.h"
-#if defined(PHP_WIN32) || (HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING))
+#if defined(PHP_WIN32) || (HAVE_MBSTRING)
#define EXIF_USE_MBSTRING 1
#else
#define EXIF_USE_MBSTRING 0
++++++ php-5.3.1-systzdata-v7.patch ++++++
++++ 619 lines (skipped)
++++++ php-5.3.17-CVE-2013-1635.patch ++++++
X-Git-Url: http://git.php.net/?p=php-src.git;a=blobdiff_plain;f=ext%2Fsoap%2Fsoap.c;h=…
Index: ext/soap/soap.c
===================================================================
--- ext/soap/soap.c
+++ ext/soap/soap.c
@@ -594,10 +594,40 @@ ZEND_INI_MH(OnUpdateCacheMode)
return SUCCESS;
}
+static PHP_INI_MH(OnUpdateCacheDir)
+{
+ /* Only do the open_basedir check at runtime */
+ if (stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) {
+ char *p;
+
+ if (memchr(new_value, '\0', new_value_length) != NULL) {
+ return FAILURE;
+ }
+
+ /* we do not use zend_memrchr() since path can contain ; itself */
+ if ((p = strchr(new_value, ';'))) {
+ char *p2;
+ p++;
+ if ((p2 = strchr(p, ';'))) {
+ p = p2 + 1;
+ }
+ } else {
+ p = new_value;
+ }
+
+ if (PG(open_basedir) && *p && php_check_open_basedir(p TSRMLS_CC)) {
+ return FAILURE;
+ }
+ }
+
+ OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);
+ return SUCCESS;
+}
+
PHP_INI_BEGIN()
STD_PHP_INI_ENTRY("soap.wsdl_cache_enabled", "1", PHP_INI_ALL, OnUpdateCacheEnabled,
cache_enabled, zend_soap_globals, soap_globals)
-STD_PHP_INI_ENTRY("soap.wsdl_cache_dir", "/tmp", PHP_INI_ALL, OnUpdateString,
+STD_PHP_INI_ENTRY("soap.wsdl_cache_dir", "/tmp", PHP_INI_ALL, OnUpdateCacheDir,
cache_dir, zend_soap_globals, soap_globals)
STD_PHP_INI_ENTRY("soap.wsdl_cache_ttl", "86400", PHP_INI_ALL, OnUpdateLong,
cache_ttl, zend_soap_globals, soap_globals)
++++++ php-5.3.17-CVE-2013-1643.patch ++++++
Index: ext/libxml/libxml.c
===================================================================
--- ext/libxml/libxml.c
+++ ext/libxml/libxml.c
@@ -261,6 +261,7 @@ static PHP_GINIT_FUNCTION(libxml)
libxml_globals->stream_context = NULL;
libxml_globals->error_buffer.c = NULL;
libxml_globals->error_list = NULL;
+ libxml_globals->entity_loader_disabled = 0;
}
/* Channel libxml file io layer through the PHP streams subsystem.
@@ -348,16 +349,15 @@ static int php_libxml_streams_IO_close(v
}
static xmlParserInputBufferPtr
-php_libxml_input_buffer_noload(const char *URI, xmlCharEncoding enc)
-{
- return NULL;
-}
-
-static xmlParserInputBufferPtr
php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
{
xmlParserInputBufferPtr ret;
void *context = NULL;
+ TSRMLS_FETCH();
+
+ if (LIBXML(entity_loader_disabled)) {
+ return NULL;
+ }
if (URI == NULL)
return(NULL);
@@ -834,28 +834,25 @@ static PHP_FUNCTION(libxml_clear_errors)
}
/* }}} */
+PHP_LIBXML_API zend_bool php_libxml_disable_entity_loader(zend_bool disable TSRMLS_DC)
+{
+ zend_bool old = LIBXML(entity_loader_disabled);
+
+ LIBXML(entity_loader_disabled) = disable;
+ return old;
+}
+
/* {{{ proto bool libxml_disable_entity_loader([boolean disable])
Disable/Enable ability to load external entities */
static PHP_FUNCTION(libxml_disable_entity_loader)
{
zend_bool disable = 1;
- xmlParserInputBufferCreateFilenameFunc old;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &disable) == FAILURE) {
return;
}
- if (disable == 0) {
- old = xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_create_filename);
- } else {
- old = xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_noload);
- }
-
- if (old == php_libxml_input_buffer_noload) {
- RETURN_TRUE;
- }
-
- RETURN_FALSE;
+ RETURN_BOOL(php_libxml_disable_entity_loader(disable TSRMLS_CC));
}
/* }}} */
Index: ext/libxml/php_libxml.h
===================================================================
--- ext/libxml/php_libxml.h
+++ ext/libxml/php_libxml.h
@@ -43,6 +43,7 @@ ZEND_BEGIN_MODULE_GLOBALS(libxml)
zval *stream_context;
smart_str error_buffer;
zend_llist *error_list;
+ zend_bool entity_loader_disabled;
ZEND_END_MODULE_GLOBALS(libxml)
typedef struct _libxml_doc_props {
@@ -93,6 +94,7 @@ PHP_LIBXML_API void php_libxml_ctx_error
PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC);
PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg TSRMLS_DC);
+PHP_LIBXML_API zend_bool php_libxml_disable_entity_loader(zend_bool disable TSRMLS_DC);
/* Init/shutdown functions*/
PHP_LIBXML_API void php_libxml_initialize(void);
Index: ext/soap/php_xml.c
===================================================================
--- ext/soap/php_xml.c
+++ ext/soap/php_xml.c
@@ -20,6 +20,7 @@
/* $Id$ */
#include "php_soap.h"
+#include "ext/libxml/php_libxml.h"
#include "libxml/parser.h"
#include "libxml/parserInternals.h"
@@ -91,13 +92,17 @@ xmlDocPtr soap_xmlParseFile(const char *
ctxt = xmlCreateFileParserCtxt(filename);
PG(allow_url_fopen) = old_allow_url_fopen;
if (ctxt) {
+ zend_bool old;
+
ctxt->keepBlanks = 0;
ctxt->sax->ignorableWhitespace = soap_ignorableWhitespace;
ctxt->sax->comment = soap_Comment;
ctxt->sax->warning = NULL;
ctxt->sax->error = NULL;
/*ctxt->sax->fatalError = NULL;*/
+ old = php_libxml_disable_entity_loader(1 TSRMLS_CC);
xmlParseDocument(ctxt);
+ php_libxml_disable_entity_loader(old TSRMLS_CC);
if (ctxt->wellFormed) {
ret = ctxt->myDoc;
if (ret->URL == NULL && ctxt->directory != NULL) {
@@ -128,11 +133,15 @@ xmlDocPtr soap_xmlParseMemory(const void
xmlParserCtxtPtr ctxt = NULL;
xmlDocPtr ret;
+ TSRMLS_FETCH();
+
/*
xmlInitParser();
*/
ctxt = xmlCreateMemoryParserCtxt(buf, buf_size);
if (ctxt) {
+ zend_bool old;
+
ctxt->sax->ignorableWhitespace = soap_ignorableWhitespace;
ctxt->sax->comment = soap_Comment;
ctxt->sax->warning = NULL;
@@ -141,7 +150,9 @@ xmlDocPtr soap_xmlParseMemory(const void
#if LIBXML_VERSION >= 20703
ctxt->options |= XML_PARSE_HUGE;
#endif
+ old = php_libxml_disable_entity_loader(1 TSRMLS_CC);
xmlParseDocument(ctxt);
+ php_libxml_disable_entity_loader(old TSRMLS_CC);
if (ctxt->wellFormed) {
ret = ctxt->myDoc;
if (ret->URL == NULL && ctxt->directory != NULL) {
++++++ php-5.3.17-CVE-2013-4113.patch ++++++
http://git.php.net/?p=php-src.git;a=commit;h=7d163e8a0880ae8af2dd869071393e…
--- ext/xml/xml.c
+++ ext/xml/xml.c
@@ -427,7 +427,7 @@ static void xml_parser_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
}
if (parser->ltags) {
int inx;
- for (inx = 0; inx < parser->level; inx++)
+ for (inx = 0; ((inx < parser->level) && (inx < XML_MAXLEVEL)); inx++)
efree(parser->ltags[ inx ]);
efree(parser->ltags);
}
@@ -905,45 +905,50 @@ void _xml_startElementHandler(void *userData, const XML_Char *name, const XML_Ch
}
if (parser->data) {
- zval *tag, *atr;
- int atcnt = 0;
+ if (parser->level <= XML_MAXLEVEL) {
+ zval *tag, *atr;
+ int atcnt = 0;
- MAKE_STD_ZVAL(tag);
- MAKE_STD_ZVAL(atr);
+ MAKE_STD_ZVAL(tag);
+ MAKE_STD_ZVAL(atr);
- array_init(tag);
- array_init(atr);
+ array_init(tag);
+ array_init(atr);
- _xml_add_to_info(parser,((char *) tag_name) + parser->toffset);
+ _xml_add_to_info(parser,((char *) tag_name) + parser->toffset);
- add_assoc_string(tag,"tag",((char *) tag_name) + parser->toffset,1); /* cast to avoid gcc-warning */
- add_assoc_string(tag,"type","open",1);
- add_assoc_long(tag,"level",parser->level);
+ add_assoc_string(tag,"tag",((char *) tag_name) + parser->toffset,1); /* cast to avoid gcc-warning */
+ add_assoc_string(tag,"type","open",1);
+ add_assoc_long(tag,"level",parser->level);
- parser->ltags[parser->level-1] = estrdup(tag_name);
- parser->lastwasopen = 1;
+ parser->ltags[parser->level-1] = estrdup(tag_name);
+ parser->lastwasopen = 1;
- attributes = (const XML_Char **) attrs;
+ attributes = (const XML_Char **) attrs;
- while (attributes && *attributes) {
- att = _xml_decode_tag(parser, attributes[0]);
- val = xml_utf8_decode(attributes[1], strlen(attributes[1]), &val_len, parser->target_encoding);
-
- add_assoc_stringl(atr,att,val,val_len,0);
+ while (attributes && *attributes) {
+ att = _xml_decode_tag(parser, attributes[0]);
+ val = xml_utf8_decode(attributes[1], strlen(attributes[1]), &val_len, parser->target_encoding);
- atcnt++;
- attributes += 2;
+ add_assoc_stringl(atr,att,val,val_len,0);
- efree(att);
- }
+ atcnt++;
+ attributes += 2;
- if (atcnt) {
- zend_hash_add(Z_ARRVAL_P(tag),"attributes",sizeof("attributes"),&atr,sizeof(zval*),NULL);
- } else {
- zval_ptr_dtor(&atr);
- }
+ efree(att);
+ }
+
+ if (atcnt) {
+ zend_hash_add(Z_ARRVAL_P(tag),"attributes",sizeof("attributes"),&atr,sizeof(zval*),NULL);
+ } else {
+ zval_ptr_dtor(&atr);
+ }
- zend_hash_next_index_insert(Z_ARRVAL_P(parser->data),&tag,sizeof(zval*),(void *) &parser->ctag);
+ zend_hash_next_index_insert(Z_ARRVAL_P(parser->data),&tag,sizeof(zval*),(void *) &parser->ctag);
+ } else if (parser->level == (XML_MAXLEVEL + 1)) {
+ TSRMLS_FETCH();
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Maximum depth exceeded - Results truncated");
+ }
}
efree(tag_name);
@@ -995,7 +1000,7 @@ void _xml_endElementHandler(void *userData, const XML_Char *name)
efree(tag_name);
- if (parser->ltags) {
+ if ((parser->ltags) && (parser->level <= XML_MAXLEVEL)) {
efree(parser->ltags[parser->level-1]);
}
@@ -1079,18 +1084,23 @@ void _xml_characterDataHandler(void *userData, const XML_Char *s, int len)
}
}
- MAKE_STD_ZVAL(tag);
-
- array_init(tag);
-
- _xml_add_to_info(parser,parser->ltags[parser->level-1] + parser->toffset);
+ if (parser->level <= XML_MAXLEVEL) {
+ MAKE_STD_ZVAL(tag);
- add_assoc_string(tag,"tag",parser->ltags[parser->level-1] + parser->toffset,1);
- add_assoc_string(tag,"value",decoded_value,0);
- add_assoc_string(tag,"type","cdata",1);
- add_assoc_long(tag,"level",parser->level);
+ array_init(tag);
- zend_hash_next_index_insert(Z_ARRVAL_P(parser->data),&tag,sizeof(zval*),NULL);
+ _xml_add_to_info(parser,parser->ltags[parser->level-1] + parser->toffset);
+
+ add_assoc_string(tag,"tag",parser->ltags[parser->level-1] + parser->toffset,1);
+ add_assoc_string(tag,"value",decoded_value,0);
+ add_assoc_string(tag,"type","cdata",1);
+ add_assoc_long(tag,"level",parser->level);
+
+ zend_hash_next_index_insert(Z_ARRVAL_P(parser->data),&tag,sizeof(zval*),NULL);
+ } else if (parser->level == (XML_MAXLEVEL + 1)) {
+ TSRMLS_FETCH();
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Maximum depth exceeded - Results truncated");
+ }
}
} else {
efree(decoded_value);
++++++ php-5.3.17-CVE-2013-4248.patch ++++++
http://git.php.net/?p=php-src.git;a=commitdiff;h=dcea4ec698dcae39b7bba6f6aa…
http://git.php.net/?p=php-src.git;a=commitdiff;h=c1c49d6e3983c9ce0b43ffe7bf…
Index: ext/openssl/openssl.c
===================================================================
--- ext/openssl/openssl.c.orig 2013-12-13 10:20:13.246036355 +0100
+++ ext/openssl/openssl.c 2013-12-13 10:20:57.912572160 +0100
@@ -1343,6 +1343,74 @@
}
/* }}} */
+/* Special handling of subjectAltName, see CVE-2013-4073
+ * Christian Heimes
+ */
+
+static int openssl_x509v3_subjectAltName(BIO *bio, X509_EXTENSION *extension)
+{
+ GENERAL_NAMES *names;
+ const X509V3_EXT_METHOD *method = NULL;
+ long i, length, num;
+ const unsigned char *p;
+
+ method = X509V3_EXT_get(extension);
+ if (method == NULL) {
+ return -1;
+ }
+
+ p = extension->value->data;
+ length = extension->value->length;
+ if (method->it) {
+ names = (GENERAL_NAMES*)(ASN1_item_d2i(NULL, &p, length,
+ ASN1_ITEM_ptr(method->it)));
+ } else {
+ names = (GENERAL_NAMES*)(method->d2i(NULL, &p, length));
+ }
+ if (names == NULL) {
+ return -1;
+ }
+
+ num = sk_GENERAL_NAME_num(names);
+ for (i = 0; i < num; i++) {
+ GENERAL_NAME *name;
+ ASN1_STRING *as;
+ name = sk_GENERAL_NAME_value(names, i);
+ switch (name->type) {
+ case GEN_EMAIL:
+ BIO_puts(bio, "email:");
+ as = name->d.rfc822Name;
+ BIO_write(bio, ASN1_STRING_data(as),
+ ASN1_STRING_length(as));
+ break;
+ case GEN_DNS:
+ BIO_puts(bio, "DNS:");
+ as = name->d.dNSName;
+ BIO_write(bio, ASN1_STRING_data(as),
+ ASN1_STRING_length(as));
+ break;
+ case GEN_URI:
+ BIO_puts(bio, "URI:");
+ as = name->d.uniformResourceIdentifier;
+ BIO_write(bio, ASN1_STRING_data(as),
+ ASN1_STRING_length(as));
+ break;
+ default:
+ /* use builtin print for GEN_OTHERNAME, GEN_X400,
+ * GEN_EDIPARTY, GEN_DIRNAME, GEN_IPADD and GEN_RID
+ */
+ GENERAL_NAME_print(bio, name);
+ }
+ /* trailing ', ' except for last element */
+ if (i < (num - 1)) {
+ BIO_puts(bio, ", ");
+ }
+ }
+ sk_GENERAL_NAME_pop_free(names, GENERAL_NAME_free);
+
+ return 0;
+}
+
/* {{{ proto array openssl_x509_parse(mixed x509 [, bool shortnames=true])
Returns an array of the fields/values of the CERT */
PHP_FUNCTION(openssl_x509_parse)
@@ -1439,15 +1507,30 @@
for (i = 0; i < X509_get_ext_count(cert); i++) {
+ int nid;
extension = X509_get_ext(cert, i);
- if (OBJ_obj2nid(X509_EXTENSION_get_object(extension)) != NID_undef) {
+ nid = OBJ_obj2nid(X509_EXTENSION_get_object(extension));
+ if (nid != NID_undef) {
extname = (char *)OBJ_nid2sn(OBJ_obj2nid(X509_EXTENSION_get_object(extension)));
} else {
OBJ_obj2txt(buf, sizeof(buf)-1, X509_EXTENSION_get_object(extension), 1);
extname = buf;
}
bio_out = BIO_new(BIO_s_mem());
- if (X509V3_EXT_print(bio_out, extension, 0, 0)) {
+ if (nid == NID_subject_alt_name) {
+ if (openssl_x509v3_subjectAltName(bio_out, extension) == 0) {
+ BIO_get_mem_ptr(bio_out, &bio_buf);
+ add_assoc_stringl(subitem, extname, bio_buf->data, bio_buf->length, 1);
+ } else {
+ zval_dtor(return_value);
+ if (certresource == -1 && cert) {
+ X509_free(cert);
+ }
+ BIO_free(bio_out);
+ RETURN_FALSE;
+ }
+ }
+ else if (X509V3_EXT_print(bio_out, extension, 0, 0)) {
BIO_get_mem_ptr(bio_out, &bio_buf);
add_assoc_stringl(subitem, extname, bio_buf->data, bio_buf->length, 1);
} else {
++++++ php-5.3.17-CVE-2013-4635.patch ++++++
http://git.php.net/?p=php-src.git;a=commit;h=4828f7343b3f31d914f4d4a5545865…
http://git.php.net/?p=php-src.git;a=commit;h=fc2a9d6e47ae23adb28122539b56df…
diff --git a/ext/calendar/jewish.c b/ext/calendar/jewish.c
index f4dc7c3..1e7a06c 100644
--- ext/calendar/jewish.c
+++ ext/calendar/jewish.c
@@ -272,6 +272,7 @@
#define HALAKIM_PER_METONIC_CYCLE (HALAKIM_PER_LUNAR_CYCLE * (12 * 19 + 7))
#define JEWISH_SDN_OFFSET 347997
+#define JEWISH_SDN_MAX 324542846L /* 12/13/887605, greater value raises interger overflow */
#define NEW_MOON_OF_CREATION 31524
#define SUNDAY 0
@@ -519,7 +520,7 @@ void SdnToJewish(
int tishri1After;
int yearLength;
- if (sdn <= JEWISH_SDN_OFFSET) {
+ if (sdn <= JEWISH_SDN_OFFSET || sdn > JEWISH_SDN_MAX) {
*pYear = 0;
*pMonth = 0;
*pDay = 0;
++++++ php-5.3.17-CVE-2013-6420.patch ++++++
https://bugzilla.redhat.com/attachment.cgi?id=831933&action=diff&context=pa…
--- ext/openssl/openssl.c 2013-11-28 13:03:15.000000000 +0100
+++ ext/openssl/openssl.c 2013-11-28 12:57:36.000000000 +0100
@@ -688,18 +688,28 @@
char * thestr;
long gmadjust = 0;
- if (timestr->length < 13) {
+ if (ASN1_STRING_type(timestr) != V_ASN1_UTCTIME) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal ASN1 data type for timestamp");
+ return (time_t)-1;
+ }
+
+ if (ASN1_STRING_length(timestr) != strlen(ASN1_STRING_data(timestr))) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal length in timestamp");
+ return (time_t)-1;
+ }
+
+ if (ASN1_STRING_length(timestr) < 13) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "extension author too lazy to parse %s correctly", timestr->data);
return (time_t)-1;
}
- strbuf = estrdup((char *)timestr->data);
+ strbuf = estrdup((char *)ASN1_STRING_data(timestr));
memset(&thetime, 0, sizeof(thetime));
/* we work backwards so that we can use atoi more easily */
- thestr = strbuf + timestr->length - 3;
+ thestr = strbuf + ASN1_STRING_length(timestr) - 3;
thetime.tm_sec = atoi(thestr);
*thestr = '\0';
++++++ php-5.3.17-CVE-2013-6712.patch ++++++
From: Remi Collet <remi(a)php.net>
Date: Wed, 27 Nov 2013 10:13:16 +0000 (+0100)
Subject: Fixed bug #66060 (Heap buffer over-read in DateInterval)
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=commitdiff_plain;h=12fe4e90be7bfa2…
Fixed bug #66060 (Heap buffer over-read in DateInterval)
---
--- ext/date/lib/parse_iso_intervals.re
+++ ext/date/lib/parse_iso_intervals.re
@@ -383,7 +383,7 @@ isoweek = year4 "-"? "W" weekofyear;
break;
}
ptr++;
- } while (*ptr);
+ } while (!s->errors->error_count && *ptr);
s->have_period = 1;
TIMELIB_DEINIT;
return TIMELIB_PERIOD;
++++++ php-5.3.17-CVE-2014-0185.patch ++++++
>From 1875b4648f138df77abcb513149a3340ade69a4c Mon Sep 17 00:00:00 2001
From: Stanislav Malyshev <stas(a)php.net>
Date: Tue, 15 Apr 2014 10:43:24 -0700
Subject: [PATCH] Fix bug #67060: use default mode of 660
---
sapi/fpm/fpm/fpm_unix.c | 2 +-
sapi/fpm/php-fpm.conf.in | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
--- sapi/fpm/fpm/fpm_unix.c
+++ sapi/fpm/fpm/fpm_unix.c
@@ -35,7 +35,7 @@ int fpm_unix_resolve_socket_premissions(struct fpm_worker_pool_s *wp) /* {{{ */
/* uninitialized */
wp->socket_uid = -1;
wp->socket_gid = -1;
- wp->socket_mode = 0666;
+ wp->socket_mode = 0660;
if (!c) {
return 0;
--- sapi/fpm/php-fpm.conf.in
+++ sapi/fpm/php-fpm.conf.in
@@ -166,10 +166,10 @@ listen = 127.0.0.1:9000
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
-; mode is set to 0666
+; mode is set to 0660
;listen.owner = @php_fpm_user@
;listen.group = @php_fpm_group@
-;listen.mode = 0666
+;listen.mode = 0660
; List of ipv4 addresses of FastCGI clients which are allowed to connect.
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
--
1.8.4
++++++ php-5.3.17-CVE-2014-0207.patch ++++++
From: Remi Collet <remi(a)php.net>
Date: Tue, 3 Jun 2014 09:05:00 +0000 (+0200)
Subject: Fix bug #67326 fileinfo: cdf_read_short_sector insufficient boundary check
X-Git-Tag: php-5.4.30RC1~33
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=commitdiff_plain;h=4fcb9a9d1b1063a…
Fix bug #67326 fileinfo: cdf_read_short_sector insufficient boundary check
Upstream fix https://github.com/file/file/commit/6d209c1c489457397a5763bca4b28e43aac9039…
Only revelant part applied
---
diff --git a/ext/fileinfo/libmagic/cdf.c b/ext/fileinfo/libmagic/cdf.c
index 4712e84..16649f1 100644
--- ext/fileinfo/libmagic/cdf.c
+++ ext/fileinfo/libmagic/cdf.c
@@ -365,10 +365,10 @@ cdf_read_short_sector(const cdf_stream_t *sst, void *buf, size_t offs,
size_t ss = CDF_SHORT_SEC_SIZE(h);
size_t pos = CDF_SHORT_SEC_POS(h, id);
assert(ss == len);
- if (pos > CDF_SEC_SIZE(h) * sst->sst_len) {
+ if (pos + len > CDF_SEC_SIZE(h) * sst->sst_len) {
DPRINTF(("Out of bounds read %" SIZE_T_FORMAT "u > %"
SIZE_T_FORMAT "u\n",
- pos, CDF_SEC_SIZE(h) * sst->sst_len));
+ pos + len, CDF_SEC_SIZE(h) * sst->sst_len));
return -1;
}
(void)memcpy(((char *)buf) + offs,
++++++ php-5.3.17-CVE-2014-0237.patch ++++++
http://git.php.net/?p=php-src.git;a=commit;h=68ce2d0ea6da79b12a365e375e1c2c…
--- ext/fileinfo/libmagic/cdf.c
+++ ext/fileinfo/libmagic/cdf.c
@@ -942,7 +942,7 @@ int
cdf_unpack_summary_info(const cdf_stream_t *sst, const cdf_header_t *h,
cdf_summary_info_header_t *ssi, cdf_property_info_t **info, size_t *count)
{
- size_t i, maxcount;
+ size_t maxcount;
const cdf_summary_info_header_t *si =
CAST(const cdf_summary_info_header_t *, sst->sst_tab);
const cdf_section_declaration_t *sd =
@@ -957,21 +957,13 @@ cdf_unpack_summary_info(const cdf_stream_t *sst, const cdf_header_t *h,
ssi->si_os = CDF_TOLE2(si->si_os);
ssi->si_class = si->si_class;
cdf_swap_class(&ssi->si_class);
- ssi->si_count = CDF_TOLE2(si->si_count);
+ ssi->si_count = CDF_TOLE4(si->si_count);
*count = 0;
maxcount = 0;
*info = NULL;
- for (i = 0; i < CDF_TOLE4(si->si_count); i++) {
- if (i >= CDF_LOOP_LIMIT) {
- DPRINTF(("Unpack summary info loop limit"));
- errno = EFTYPE;
- return -1;
- }
- if (cdf_read_property_info(sst, h, CDF_TOLE4(sd->sd_offset),
- info, count, &maxcount) == -1) {
+ if (cdf_read_property_info(sst, h, CDF_TOLE4(sd->sd_offset), info,
+ count, &maxcount) == -1)
return -1;
- }
- }
return 0;
}
++++++ php-5.3.17-CVE-2014-0238.patch ++++++
http://git.php.net/?p=php-src.git;a=commit;h=22736b7c56d678f142d5dd21f4996e…
--- ext/fileinfo/libmagic/cdf.c
+++ ext/fileinfo/libmagic/cdf.c
@@ -823,6 +823,10 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
i, inp[i].pi_id, inp[i].pi_type, q - p, offs));
if (inp[i].pi_type & CDF_VECTOR) {
nelements = CDF_GETUINT32(q, 1);
+ if (nelements == 0) {
+ DPRINTF(("CDF_VECTOR with nelements == 0\n"));
+ goto out;
+ }
o = 2;
} else {
nelements = 1;
@@ -897,7 +901,9 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
}
DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n",
nelements));
- for (j = 0; j < nelements; j++, i++) {
+ for (j = 0; j < nelements && i < sh.sh_properties;
+ j++, i++)
+ {
uint32_t l = CDF_GETUINT32(q, o);
inp[i].pi_str.s_len = l;
inp[i].pi_str.s_buf = (const char *)
++++++ php-5.3.17-CVE-2014-2497.patch ++++++
Description: Patch to fix PHP bug 66901.
Author: Andres Mejia <mejiaa(a)amazon.com>
Forwarded: no
Index: ext/gd/libgd/gdxpm.c
===================================================================
--- ext/gd/libgd/gdxpm.c.orig 2014-02-05 11:00:36.000000000 +0100
+++ ext/gd/libgd/gdxpm.c 2014-04-04 14:06:15.991206709 +0200
@@ -39,6 +39,14 @@
number = image.ncolors;
colors = (int *) safe_emalloc(number, sizeof(int), 0);
for (i = 0; i < number; i++) {
+ if (!image.colorTable[i].c_color)
+ {
+ /* unsupported color key or color key not defined */
+ gdImageDestroy(im);
+ gdFree(colors);
+ im = 0;
+ goto done;
+ }
switch (strlen (image.colorTable[i].c_color)) {
case 4:
buf[1] = '\0';
++++++ php-5.3.17-CVE-2014-3478.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Ffileinfo%2F…
diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c
index 21fea6b..01e4977 100644
--- ext/fileinfo/libmagic/softmagic.c
+++ ext/fileinfo/libmagic/softmagic.c
@@ -881,10 +881,18 @@ mconvert(struct magic_set *ms, struct magic *m, int flip)
return 1;
}
case FILE_PSTRING: {
- char *ptr1 = p->s, *ptr2 = ptr1 + file_pstring_length_size(m);
+ size_t sz = file_pstring_length_size(m);
+ char *ptr1 = p->s, *ptr2 = ptr1 + sz;
size_t len = file_pstring_get_length(m, ptr1);
- if (len >= sizeof(p->s))
- len = sizeof(p->s) - 1;
+ if (len >= sizeof(p->s)) {
+ /*
+ * The size of the pascal string length (sz)
+ * is 1, 2, or 4. We need at least 1 byte for NUL
+ * termination, but we've already truncated the
+ * string by p->s, so we need to deduct sz.
+ */
+ len = sizeof(p->s) - sz;
+ }
while (len--)
*ptr1++ = *ptr2++;
*ptr1 = '\0';
++++++ php-5.3.17-CVE-2014-3479.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Ffileinfo%2F…
Index: ext/fileinfo/libmagic/cdf.c
===================================================================
--- ext/fileinfo/libmagic/cdf.c.orig 2014-06-30 17:42:12.365215599 +0200
+++ ext/fileinfo/libmagic/cdf.c 2014-06-30 17:44:16.469213240 +0200
@@ -277,13 +277,15 @@
{
const char *b = (const char *)sst->sst_tab;
const char *e = ((const char *)p) + tail;
+ size_t ss = sst->sst_dirlen < h->h_min_size_standard_stream ?
+ CDF_SHORT_SEC_SIZE(h) : CDF_SEC_SIZE(h);
(void)&line;
- if (e >= b && (size_t)(e - b) < CDF_SEC_SIZE(h) * sst->sst_len)
+ if (e >= b && (size_t)(e - b) < ss * sst->sst_len)
return 0;
DPRINTF(("%d: offset begin %p end %p %" SIZE_T_FORMAT "u"
" >= %" SIZE_T_FORMAT "u [%" SIZE_T_FORMAT "u %"
SIZE_T_FORMAT "u]\n", line, b, e, (size_t)(e - b),
- CDF_SEC_SIZE(h) * sst->sst_len, CDF_SEC_SIZE(h), sst->sst_len));
+ ss * sst->sst_len, ss, sst->sst_len));
errno = EFTYPE;
return -1;
}
++++++ php-5.3.17-CVE-2014-3480.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Ffileinfo%2F…
diff --git a/ext/fileinfo/libmagic/cdf.c b/ext/fileinfo/libmagic/cdf.c
index c9a5d50..ee467a6 100644
--- ext/fileinfo/libmagic/cdf.c
+++ ext/fileinfo/libmagic/cdf.c
@@ -470,7 +470,8 @@ size_t
cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
{
size_t i, j;
- cdf_secid_t maxsector = (cdf_secid_t)(sat->sat_len * size);
+ cdf_secid_t maxsector = (cdf_secid_t)((sat->sat_len * size)
+ / sizeof(maxsector));
DPRINTF(("Chain:"));
for (j = i = 0; sid >= 0; i++, j++) {
@@ -480,8 +481,8 @@ cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
errno = EFTYPE;
return (size_t)-1;
}
- if (sid > maxsector) {
- DPRINTF(("Sector %d > %d\n", sid, maxsector));
+ if (sid >= maxsector) {
+ DPRINTF(("Sector %d >= %d\n", sid, maxsector));
errno = EFTYPE;
return (size_t)-1;
}
++++++ php-5.3.17-CVE-2014-3487.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Ffileinfo%2F…
diff --git a/ext/fileinfo/libmagic/cdf.c b/ext/fileinfo/libmagic/cdf.c
index ee467a6..429f3b9 100644
--- ext/fileinfo/libmagic/cdf.c
+++ ext/fileinfo/libmagic/cdf.c
@@ -812,7 +812,11 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
if (cdf_check_stream_offset(sst, h, e, 0, __LINE__) == -1)
goto out;
for (i = 0; i < sh.sh_properties; i++) {
- size_t ofs = CDF_GETUINT32(p, (i << 1) + 1);
+ size_t ofs, tail = (i << 1) + 1;
+ if (cdf_check_stream_offset(sst, h, p, tail * sizeof(uint32_t),
+ __LINE__) == -1)
+ goto out;
+ ofs = CDF_GETUINT32(p, tail);
q = (const uint8_t *)(const void *)
((const char *)(const void *)p + ofs
- 2 * sizeof(uint32_t));
++++++ php-5.3.17-CVE-2014-3515.patch ++++++
From: Stanislav Malyshev <stas(a)php.net>
Date: Sun, 22 Jun 2014 02:46:16 +0000 (-0700)
Subject: Fix bug #67492: unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion
X-Git-Tag: php-5.4.30~6
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=commitdiff_plain;h=88223c5245e9b47…
Fix bug #67492: unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion
---
Index: ext/spl/spl_array.c
===================================================================
--- ext/spl/spl_array.c.orig 2014-06-30 17:45:07.373212272 +0200
+++ ext/spl/spl_array.c 2014-06-30 17:49:00.493207840 +0200
@@ -1806,7 +1806,7 @@
++p;
ALLOC_INIT_ZVAL(pmembers);
- if (!php_var_unserialize(&pmembers, &p, s + buf_len, var_hash_p TSRMLS_CC)) {
+ if (!php_var_unserialize(&pmembers, &p, s + buf_len, var_hash_p TSRMLS_CC) || Z_TYPE_P(pmembers) != IS_ARRAY) {
zval_ptr_dtor(&pmembers);
goto outexcept;
}
Index: ext/spl/spl_observer.c
===================================================================
--- ext/spl/spl_observer.c.orig 2014-06-30 17:44:43.821212720 +0200
+++ ext/spl/spl_observer.c 2014-06-30 17:45:07.373212272 +0200
@@ -801,7 +801,7 @@
++p;
ALLOC_INIT_ZVAL(pmembers);
- if (!php_var_unserialize(&pmembers, &p, s + buf_len, &var_hash TSRMLS_CC)) {
+ if (!php_var_unserialize(&pmembers, &p, s + buf_len, &var_hash TSRMLS_CC) || Z_TYPE_P(pmembers) != IS_ARRAY) {
zval_ptr_dtor(&pmembers);
goto outexcept;
}
++++++ php-5.3.17-CVE-2014-4049.patch ++++++
>From 4f73394fdd95d3165b4391e1b0dedd57fced8c3b Mon Sep 17 00:00:00 2001
From: Sara Golemon <pollita(a)php.net>
Date: Tue, 10 Jun 2014 11:18:02 -0700
Subject: [PATCH] Fix potential segfault in dns_get_record()
If the remote sends us a packet with a malformed TXT record,
we could end up trying to over-consume the packet and wander
off into overruns.
---
ext/standard/dns.c | 4 ++++
1 file changed, 4 insertions(+)
--- ext/standard/dns.c
+++ ext/standard/dns.c
@@ -517,6 +517,10 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int
while (ll < dlen) {
n = cp[ll];
+ if ((ll + n) >= dlen) {
+ // Invalid chunk length, truncate
+ n = dlen - (ll + 1);
+ }
memcpy(tp + ll , cp + ll + 1, n);
add_next_index_stringl(entries, cp + ll + 1, n, 1);
ll = ll + n + 1;
--
1.9.3
++++++ php-5.3.2-aconf26x.patch ++++++
Index: scripts/phpize.m4
===================================================================
--- scripts/phpize.m4.orig
+++ scripts/phpize.m4
@@ -1,6 +1,6 @@
dnl This file becomes configure.in for self-contained extensions.
-divert(1)
+divert(1001)
AC_PREREQ(2.13)
AC_INIT(config.m4)
@@ -23,7 +23,8 @@ test -z "$CFLAGS" && auto_cflags=1
abs_srcdir=`(cd $srcdir && pwd)`
abs_builddir=`pwd`
-AC_PROG_CC([cc gcc])
+AC_PROG_CC_STDC
+AC_USE_SYSTEM_EXTENSIONS
PHP_DETECT_ICC
PHP_DETECT_SUNCC
AC_PROG_CC_C_O
Index: ext/standard/config.m4
===================================================================
--- ext/standard/config.m4.orig
+++ ext/standard/config.m4
@@ -1,6 +1,6 @@
dnl $Id$ -*- autoconf -*-
-divert(3)dnl
+divert(1003)dnl
dnl
dnl Check if flush should be called explicitly after buffered io
@@ -342,7 +342,7 @@ dnl
AC_CHECK_FUNCS(getcwd getwd asinh acosh atanh log1p hypot glob strfmon nice fpclass isinf isnan mempcpy strpncpy)
AC_FUNC_FNMATCH
-divert(5)dnl
+divert(1005)dnl
dnl
dnl Check if there is a support means of creating a new process
Index: configure.in
===================================================================
--- configure.in.orig
+++ configure.in
@@ -1,7 +1,7 @@
## $Id$ -*- autoconf -*-
dnl ## Process this file with autoconf to produce a configure script.
-divert(1)
+divert(1001)
dnl ## Diversion 1 is the autoconf + automake setup phase. We also
dnl ## set the PHP version, deal with platform-specific compile
@@ -125,12 +125,12 @@ rm -f libs/*
dnl Checks for programs.
dnl -------------------------------------------------------------------------
-AC_PROG_CC([cc gcc])
+AC_USE_SYSTEM_EXTENSIONS
PHP_DETECT_ICC
PHP_DETECT_SUNCC
AC_PROG_CC_C_O
dnl Change to AC_PROG_CC_STDC when we start requiring a post-2.13 autoconf
-dnl AC_PROG_CC_STDC
+AC_PROG_CC_STDC
AC_PROG_CPP
AC_AIX
AC_PROG_LN_S
@@ -290,7 +290,7 @@ sinclude(TSRM/threads.m4)
sinclude(TSRM/tsrm.m4)
-divert(2)
+divert(1002)
dnl ## Diversion 2 is where we set PHP-specific options and come up
dnl ## with reasonable default values for them. We check for pthreads here
@@ -329,7 +329,7 @@ if test "$enable_maintainer_zts" = "yes"
PTHREADS_FLAGS
fi
-divert(3)
+divert(1003)
dnl ## In diversion 3 we check for compile-time options to the PHP
dnl ## core and how to deal with different system dependencies.
@@ -683,7 +683,7 @@ if test "x$php_crypt_r" = "x1"; then
PHP_CRYPT_R_STYLE
fi
-divert(4)
+divert(1004)
dnl ## In diversion 4 we check user-configurable general settings.
@@ -924,7 +924,7 @@ else
AC_MSG_RESULT([using system default])
fi
-divert(5)
+divert(1005)
dnl ## In diversion 5 we check which extensions should be compiled.
dnl ## All of these are normally in the extension directories.
@@ -1351,7 +1351,8 @@ AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [],
undefine([AC_PROG_CXXCPP])
AC_DEFUN([AC_PROG_CXXCPP], [php_prog_cxxcpp=disabled])
])
-AC_PROG_LIBTOOL
+LT_INIT([disable-static pic-only dlopen])
+#AC_PROG_LIBTOOL
if test "$enable_debug" != "yes"; then
PHP_SET_LIBTOOL_VARIABLE([--silent])
Index: build/buildcheck.sh
===================================================================
--- build/buildcheck.sh.orig
+++ build/buildcheck.sh
@@ -51,7 +51,7 @@ if test "$1" = "2" -a "$2" -gt "59"; the
echo " On Debian/Ubuntu both autoconf2.13 and autoconf2.59 packages exist."
echo " Install autoconf2.13 and set the PHP_AUTOCONF env var to "
echo " autoconf2.13 and try again."
- exit 1
+# exit 1
else
echo "buildconf: autoconf version $ac_version (ok)"
fi
++++++ php-5.3.2-ini.patch ++++++
Index: php.ini-production
===================================================================
--- php.ini-production.orig 2010-06-24 02:15:12.000000000 +0200
+++ php.ini-production 2010-08-03 06:31:20.319461000 +0200
@@ -781,7 +781,7 @@ default_mimetype = "text/html"
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
-;include_path = ".:/php/includes"
+include_path = ".:/usr/share/php5:/usr/share/php5/PEAR"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
@@ -1189,7 +1189,7 @@ mysql.allow_local_infile = On
; Allow or prevent persistent links.
; http://php.net/mysql.allow-persistent
-mysql.allow_persistent = On
+mysql.allow_persistent = Off
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/mysql.cache_size
@@ -1252,7 +1252,7 @@ mysqli.max_persistent = -1
; Allow or prevent persistent links.
; http://php.net/mysqli.allow-persistent
-mysqli.allow_persistent = On
+mysqli.allow_persistent = Off
; Maximum number of links. -1 means no limit.
; http://php.net/mysqli.max-links
@@ -1474,7 +1474,7 @@ session.save_handler = files
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
-;session.save_path = "/tmp"
+session.save_path = "/var/lib/php5"
; Whether to use cookies.
; http://php.net/session.use-cookies
@@ -1590,14 +1590,14 @@ session.referer_check =
; How many bytes to read from the file.
; http://php.net/session.entropy-length
-session.entropy_length = 0
+session.entropy_length = 32
; Specified here to create the session id.
; http://php.net/session.entropy-file
; On systems that don't have /dev/urandom /dev/arandom can be used
; On windows, setting the entropy_length setting will activate the
; Windows random source (using the CryptoAPI)
-;session.entropy_file = /dev/urandom
+session.entropy_file = /dev/urandom
; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
@@ -1628,7 +1628,7 @@ session.use_trans_sid = 0
; the hash extension. A list of available hashes is returned by the hash_algos()
; function.
; http://php.net/session.hash-function
-session.hash_function = 0
+session.hash_function = sha256
; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
++++++ php-5.3.2-no-build-date.patch ++++++
--- ext/standard/info.c.orig
+++ ext/standard/info.c
@@ -697,7 +697,7 @@ PHPAPI void php_print_info(int flag TSRM
php_info_print_box_end();
php_info_print_table_start();
php_info_print_table_row(2, "System", php_uname );
- php_info_print_table_row(2, "Build Date", __DATE__ " " __TIME__ );
+ /* php_info_print_table_row(2, "Build Date", __DATE__ " " __TIME__ ); */
#ifdef COMPILER
php_info_print_table_row(2, "Compiler", COMPILER);
#endif
@@ -705,7 +705,7 @@ PHPAPI void php_print_info(int flag TSRM
php_info_print_table_row(2, "Architecture", ARCHITECTURE);
#endif
#ifdef CONFIGURE_COMMAND
- php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND );
+ /* php_info_print_table_row(2, "Configure Command", CONFIGURE_COMMAND ); */
#endif
if (sapi_module.pretty_name) {
--- sapi/fpm/fpm/fpm_main.c.orig
+++ sapi/fpm/fpm/fpm_main.c
@@ -1700,7 +1700,7 @@ int main(int argc, char *argv[])
#if ZEND_DEBUG
php_printf("PHP %s (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2009 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
#else
- php_printf("PHP %s (%s) (built: %s %s)\nCopyright (c) 1997-2009 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+ php_printf("PHP %s (%s)\nCopyright (c) 1997-2009 The PHP Group\n%s", PHP_VERSION, sapi_module.name, get_zend_version());
#endif
php_request_shutdown((void *) 0);
fcgi_shutdown();
--- configure.in.orig
+++ configure.in
@@ -1192,8 +1192,8 @@ fi
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
-
-PHP_BUILD_DATE=`date '+%Y-%m-%d'`
+#totally fake, not used anywhere in userspace
+PHP_BUILD_DATE="1970-01-01"
AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE",[PHP build date])
case $host_alias in
@@ -1204,7 +1204,8 @@ case $host_alias in
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[hardcode for each of the cross compiler host])
;;
*)
- PHP_UNAME=`uname -a | xargs`
+dnl Totally fake, it wasnt and will never be reliable anyway.
+ PHP_UNAME="Linux suse 2.6.36 #1 SMP 2011-02-21 10:34:10 +0100 x86_64 x86_64 x86_64 GNU/Linux"
AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
PHP_OS=`uname | xargs`
AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
++++++ php-5.3.4-format-string-issues.patch ++++++
--- main/snprintf.h.orig
+++ main/snprintf.h
@@ -83,7 +83,7 @@ PHPAPI int ap_php_vslprintf(char *buf, s
PHPAPI int ap_php_snprintf(char *, size_t, const char *, ...);
PHPAPI int ap_php_vsnprintf(char *, size_t, const char *, va_list ap);
PHPAPI int ap_php_vasprintf(char **buf, const char *format, va_list ap);
-PHPAPI int ap_php_asprintf(char **buf, const char *format, ...);
+PHPAPI int ap_php_asprintf(char **buf, const char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 2, 3);
PHPAPI int php_sprintf (char* s, const char* format, ...) PHP_ATTRIBUTE_FORMAT(printf, 2, 3);
PHPAPI char * php_gcvt(double value, int ndigit, char dec_point, char exponent, char *buf);
PHPAPI char * php_conv_fp(register char format, register double num,
--- main/main.c.orig
+++ main/main.c
@@ -898,7 +898,7 @@ PHPAPI void php_html_puts(const char *st
/* {{{ php_error_cb
extended error handling function */
-static void php_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args)
+static PHP_ATTRIBUTE_FORMAT(printf, 4, 0) void php_error_cb(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args)
{
char *buffer;
int buffer_len, display;
--- Zend/zend.h.orig
+++ Zend/zend.h
@@ -146,6 +146,14 @@ char *alloca ();
# define ZEND_ATTRIBUTE_MALLOC
#endif
+#if ZEND_GCC_VERSION >= 4003
+#define ZEND_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
+#define ZEND_ATTR_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
+#else
+#define ZEND_ATTR_ALLOC_SIZE(x)
+#define ZEND_ATTR_ALLOC_SIZE2(x,y)
+#endif
+
#if ZEND_GCC_VERSION >= 2007
# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
#else
--- Zend/zend_alloc.h.orig
+++ Zend/zend_alloc.h
@@ -54,14 +54,14 @@ BEGIN_EXTERN_C()
ZEND_API char *zend_strndup(const char *s, unsigned int length) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_safe_malloc(size_t nmemb, size_t size, size_t offset) ZEND_ATTRIBUTE_MALLOC;
+ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTR_ALLOC_SIZE(1);
+ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTR_ALLOC_SIZE2(1,2);
+ZEND_API void *_safe_malloc(size_t nmemb, size_t size, size_t offset) ZEND_ATTRIBUTE_MALLOC ZEND_ATTR_ALLOC_SIZE2(1,2);
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
-ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-ZEND_API void *_safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-ZEND_API void *_safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset);
+ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC ZEND_ATTR_ALLOC_SIZE2(1,2);
+ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTR_ALLOC_SIZE(2);
+ZEND_API void *_safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTR_ALLOC_SIZE2(2,3);
+ZEND_API void *_safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset) ZEND_ATTR_ALLOC_SIZE2(2,3);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
@@ -90,7 +90,7 @@ ZEND_API size_t _zend_mem_block_size(voi
#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define zend_mem_block_size_rel(ptr) _zend_mem_block_size((ptr) TSRMLS_CC ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
-inline static void * __zend_malloc(size_t len)
+inline static ZEND_ATTR_ALLOC_SIZE(1) void * __zend_malloc(size_t len)
{
void *tmp = malloc(len);
if (tmp) {
@@ -100,14 +100,14 @@ inline static void * __zend_malloc(size_
exit(1);
}
-inline static void * __zend_calloc(size_t nmemb, size_t len)
+inline static ZEND_ATTR_ALLOC_SIZE2(1,2) void * __zend_calloc(size_t nmemb, size_t len)
{
void *tmp = _safe_malloc(nmemb, len, 0);
memset(tmp, 0, nmemb * len);
return tmp;
}
-inline static void * __zend_realloc(void *p, size_t len)
+inline static ZEND_ATTR_ALLOC_SIZE(2) void * __zend_realloc(void *p, size_t len)
{
p = realloc(p, len);
if (p) {
--- sapi/cli/php_cli.c.orig
+++ sapi/cli/php_cli.c
@@ -826,8 +826,8 @@ int main(int argc, char *argv[])
}
request_started = 1;
- php_printf("PHP %s (%s) (built: %s %s) %s\nCopyright (c) 1997-2012 The PHP Group\n%s",
- PHP_VERSION, sapi_module.name, __DATE__, __TIME__,
+ php_printf("PHP %s (%s) %s\nCopyright (c) 1997-2012 The PHP Group\n%s",
+ PHP_VERSION, sapi_module.name,
#if ZEND_DEBUG && defined(HAVE_GCOV)
"(DEBUG GCOV)",
#elif ZEND_DEBUG
--- sapi/cgi/cgi_main.c.orig
+++ sapi/cgi/cgi_main.c
@@ -1935,7 +1935,7 @@ consult the installation file that came
#if ZEND_DEBUG
php_printf("PHP %s (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2012 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
#else
- php_printf("PHP %s (%s) (built: %s %s)\nCopyright (c) 1997-2012 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+ php_printf("PHP %s (%s)\nCopyright (c) 1997-2012 The PHP Group\n%s", PHP_VERSION, sapi_module.name, get_zend_version());
#endif
php_request_shutdown((void *) 0);
fcgi_shutdown();
++++++ php-5.3.4-pts.patch ++++++
--- ext/standard/proc_open.c.orig
+++ ext/standard/proc_open.c
@@ -62,7 +62,7 @@
* */
#ifdef PHP_CAN_SUPPORT_PROC_OPEN
-#if 0 && HAVE_PTSNAME && HAVE_GRANTPT && HAVE_UNLOCKPT && HAVE_SYS_IOCTL_H && HAVE_TERMIOS_H
+#if HAVE_PTSNAME && HAVE_GRANTPT && HAVE_UNLOCKPT && HAVE_SYS_IOCTL_H && HAVE_TERMIOS_H
# include <sys/ioctl.h>
# include <termios.h>
# define PHP_CAN_DO_PTS 1
++++++ php-5.3.6-gcc_builtins.patch ++++++
--- Zend/zend_alloc.c.orig
+++ Zend/zend_alloc.c
@@ -36,7 +36,7 @@
# include <wincrypt.h>
# include <process.h>
#endif
-
+#include <x86intrin.h>
#ifndef ZEND_MM_HEAP_PROTECTION
# define ZEND_MM_HEAP_PROTECTION ZEND_DEBUG
#endif
@@ -665,10 +665,7 @@ static inline unsigned int zend_mm_high_
__asm__("bsrl %1,%0\n\t" : "=r" (n) : "rm" (_size));
return n;
#elif defined(__GNUC__) && defined(__x86_64__)
- unsigned long n;
-
- __asm__("bsrq %1,%0\n\t" : "=r" (n) : "rm" (_size));
- return (unsigned int)n;
+ return __bsrq(_size);
#elif defined(_MSC_VER) && defined(_M_IX86)
__asm {
bsr eax, _size
@@ -691,10 +688,7 @@ static inline unsigned int zend_mm_low_b
__asm__("bsfl %1,%0\n\t" : "=r" (n) : "rm" (_size));
return n;
#elif defined(__GNUC__) && defined(__x86_64__)
- unsigned long n;
-
- __asm__("bsfq %1,%0\n\t" : "=r" (n) : "rm" (_size));
- return (unsigned int)n;
+ return __bsfq(_size);
#elif defined(_MSC_VER) && defined(_M_IX86)
__asm {
bsf eax, _size
++++++ php-5.3.6-ini-date.timezone.patch ++++++
Index: php.ini-production
===================================================================
--- php.ini-production.orig
+++ php.ini-production
@@ -993,7 +993,7 @@ default_socket_timeout = 60
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
-;date.timezone =
+date.timezone = 'UTC'
; http://php.net/date.default-latitude
;date.default_latitude = 31.7667
++++++ php-5.3.8-CVE-2011-4153.patch ++++++
http://svn.php.net/viewvc?view=revision&revision=319442
http://svn.php.net/viewvc?view=revision&revision=319453
#-0-
Zend/zend_builtin_functions.c
#-1-
ext/soap/php_sdl.c
#-2-
ext/standard/syslog.c
#-3-
N/A for 5.3.8
#-4-
N/A
#-5-
N/A
#-6-
ext/session/mod_files.c
ext/standard/file.c
Index: Zend/zend_builtin_functions.c
===================================================================
--- Zend/zend_builtin_functions.c.orig
+++ Zend/zend_builtin_functions.c
@@ -683,6 +683,9 @@ repeat:
}
c.flags = case_sensitive; /* non persistent */
c.name = zend_strndup(name, name_len);
+ if(c.name == NULL) {
+ RETURN_FALSE;
+ }
c.name_len = name_len+1;
c.module_number = PHP_USER_CONSTANT;
if (zend_register_constant(&c TSRMLS_CC) == SUCCESS) {
Index: ext/standard/syslog.c
===================================================================
--- ext/standard/syslog.c.orig
+++ ext/standard/syslog.c
@@ -234,6 +234,9 @@ PHP_FUNCTION(openlog)
free(BG(syslog_device));
}
BG(syslog_device) = zend_strndup(ident, ident_len);
+ if(BG(syslog_device) == NULL) {
+ RETURN_FALSE;
+ }
openlog(BG(syslog_device), option, facility);
RETURN_TRUE;
}
Index: ext/soap/php_sdl.c
===================================================================
--- ext/soap/php_sdl.c.orig
+++ ext/soap/php_sdl.c
@@ -147,6 +147,10 @@ encodePtr get_encoder(sdlPtr sdl, const
memcpy(new_enc, enc, sizeof(encode));
if (sdl->is_persistent) {
new_enc->details.ns = zend_strndup(ns, ns_len);
+ if (new_enc->details.ns == NULL) {
+ efree(nscat);
+ return NULL;
+ }
new_enc->details.type_str = strdup(new_enc->details.type_str);
} else {
new_enc->details.ns = estrndup(ns, ns_len);
Index: ext/standard/file.c
===================================================================
--- ext/standard/file.c.orig
+++ ext/standard/file.c
@@ -2612,10 +2612,15 @@ PHP_FUNCTION(fnmatch)
Returns directory path used for temporary files */
PHP_FUNCTION(sys_get_temp_dir)
{
+ char *tmp_dir;
if (zend_parse_parameters_none() == FAILURE) {
return;
}
- RETURN_STRING((char *)php_get_temporary_directory(), 1);
+ tmp_dir = (char *)php_get_temporary_directory();
+ if (tmp_dir == NULL) {
+ return;
+ }
+ RETURN_STRING(tmp_dir, 1);
}
/* }}} */
Index: ext/session/mod_files.c
===================================================================
--- ext/session/mod_files.c.orig
+++ ext/session/mod_files.c
@@ -273,6 +273,9 @@ PS_OPEN_FUNC(files)
if (*save_path == '\0') {
/* if save path is an empty string, determine the temporary dir */
save_path = php_get_temporary_directory();
+ if (save_path == NULL) {
+ return FAILURE;
+ }
if (PG(safe_mode) && (!php_checkuid(save_path, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
return FAILURE;
++++++ php-5.3.8-crypt-tests.patch ++++++
Index: ext/standard/config.m4
===================================================================
--- ext/standard/config.m4.orig
+++ ext/standard/config.m4
@@ -60,7 +60,14 @@ if test "$ac_cv_func_crypt" = "no"; then
AC_DEFINE(HAVE_CRYPT, 1, [ ])
])
fi
-
+
+if test "$ac_cv_func_crypt" = "no"; then
+ AC_CHECK_LIB(crypt, crypt_r, [
+ LIBS="-lcrypt $LIBS -lcrypt"
+ AC_DEFINE(HAVE_CRYPT_R, 1, [ ])
+ ])
+fi
+
AC_CACHE_CHECK(for standard DES crypt, ac_cv_crypt_des,[
AC_TRY_RUN([
#if HAVE_UNISTD_H
@@ -172,7 +179,7 @@ main() {
ac_cv_crypt_blowfish=no
])])
-AC_CACHE_CHECK(for SHA512 crypt, ac_cv_crypt_SHA512,[
+AC_CACHE_CHECK(for SHA512 crypt, ac_cv_crypt_sha512,[
AC_TRY_RUN([
#if HAVE_UNISTD_H
#include <unistd.h>
@@ -184,24 +191,22 @@ AC_TRY_RUN([
main() {
#if HAVE_CRYPT
- char salt[30], answer[80];
+ char salt[120];
- salt[0]='$'; salt[1]='6'; salt[2]='$'; salt[3]='$'; salt[4]='b'; salt[5]='a'; salt[6]='r'; salt[7]='\0';
- strcpy(answer, salt);
- strcpy(&answer[29],"$6$$QMXjqd7rHQZPQ1yHsXkQqC1FBzDiVfTHXL.LaeDAeVV.IzMaV9VU4MQ8kPuZa2SOP1A0RPm772EaFYjpEJtdu.");
- exit (strcmp((char *)crypt("foo",salt),answer));
+ strcpy(salt, "\$6\$rounds=5000\$usesomesillystri\$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21");
+ exit (strcmp((char *)crypt("rasmuslerdorf",salt),salt));
#else
exit(0);
#endif
}],[
- ac_cv_crypt_SHA512=yes
+ ac_cv_crypt_sha512=yes
],[
- ac_cv_crypt_SHA512=no
+ ac_cv_crypt_sha512=no
],[
- ac_cv_crypt_SHA512=no
+ ac_cv_crypt_sha512=no
])])
-AC_CACHE_CHECK(for SHA256 crypt, ac_cv_crypt_SHA256,[
+AC_CACHE_CHECK(for SHA256 crypt, ac_cv_crypt_sha256,[
AC_TRY_RUN([
#if HAVE_UNISTD_H
#include <unistd.h>
@@ -213,28 +218,31 @@ AC_TRY_RUN([
main() {
#if HAVE_CRYPT
- char salt[30], answer[80];
- salt[0]='$'; salt[1]='5'; salt[2]='$'; salt[3]='$'; salt[4]='s'; salt[5]='a'; salt[6]='l'; salt[7]='t'; salt[8]='s'; salt[9]='t'; salt[10]='r'; salt[11]='i'; salt[12]='n'; salt[13]='g'; salt[14]='\0';
- strcat(salt,"");
- strcpy(answer, salt);
- strcpy(&answer[29], "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5");
- exit (strcmp((char *)crypt("foo",salt),answer));
+ char salt[80];
+ strcpy(salt, "\$5\$rounds=5000\$usesomesillystri\$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6");
+ exit (strcmp((char *)crypt("rasmuslerdorf",salt),salt));
#else
exit(0);
#endif
}],[
- ac_cv_crypt_SHA256=yes
+ ac_cv_crypt_sha256=yes
],[
- ac_cv_crypt_SHA256=no
+ ac_cv_crypt_sha256=no
],[
- ac_cv_crypt_SHA256=no
+ ac_cv_crypt_sha256=no
])])
dnl
-dnl If one of them is missing, use our own implementation, portable code is then possible
+dnl If one of them or crypt_r() is missing, use our own implementation, portable code is then possible
dnl
-if test "$ac_cv_crypt_blowfish" = "no" || test "$ac_cv_crypt_des" = "no" || test "$ac_cv_crypt_ext_des" = "no" || test "x$php_crypt_r" = "x0"; then
+if test "$ac_cv_crypt_des" = "no" ||
+ /* test "$ac_cv_crypt_ext_des" = "no" ||*/
+ test "$ac_cv_crypt_md5" = "no" ||
+ test "$ac_cv_crypt_blowfish" = "no" ||
+ test "$ac_cv_crypt_sha512" = "no" ||
+ test "$ac_cv_crypt_sha256" = "no" ||
+ test "$ac_cv_lib_crypt_crypt_r" = "no"; then
dnl
dnl Check for __alignof__ support in the compiler
++++++ php-5.3.8-no-reentrant-crypt.patch ++++++
Index: ext/standard/crypt.c
===================================================================
--- ext/standard/crypt.c
+++ ext/standard/crypt.c
@@ -302,6 +302,8 @@ PHP_FUNCTION(crypt)
RETURN_STRING(crypt_res, 1);
}
}
+# else
+ RETURN_STRING(crypt(str, salt), 1);
# endif
#endif
}
++++++ php-CVE-2014-3597.patch ++++++
>From 2fefae47716d501aec41c1102f3fd4531f070b05 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi(a)php.net>
Date: Tue, 19 Aug 2014 08:33:49 +0200
Subject: [PATCH] Fixed Sec Bug #67717 segfault in dns_get_record CVE-2014-3597
Incomplete fix for CVE-2014-4049
Check possible buffer overflow
- pass real buffer end to dn_expand calls
- check buffer len before each read
---
ext/standard/dns.c | 84 ++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 60 insertions(+), 24 deletions(-)
Index: ext/standard/dns.c
===================================================================
--- ext/standard/dns.c.orig 2014-09-09 11:30:36.342448937 +0200
+++ ext/standard/dns.c 2014-09-09 11:44:59.066434153 +0200
@@ -412,8 +412,14 @@
#if HAVE_FULL_DNS_FUNCS
+#define CHECKCP(n) do { \
+ if (cp + n > end) { \
+ return NULL; \
+ } \
+} while (0)
+
/* {{{ php_parserr */
-static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int store, zval **subarray)
+static u_char *php_parserr(u_char *cp, u_char *end, querybuf *answer, int type_to_fetch, int store, zval **subarray)
{
u_short type, class, dlen;
u_long ttl;
@@ -425,16 +431,18 @@
*subarray = NULL;
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, sizeof(name) - 2);
+ n = dn_expand(answer->qb2, end, cp, name, sizeof(name) - 2);
if (n < 0) {
return NULL;
}
cp += n;
+ CHECKCP(10);
GETSHORT(type, cp);
GETSHORT(class, cp);
GETLONG(ttl, cp);
GETSHORT(dlen, cp);
+ CHECKCP(dlen);
if (type_to_fetch != T_ANY && type != type_to_fetch) {
cp += dlen;
return cp;
@@ -451,12 +459,14 @@
add_assoc_string(*subarray, "host", name, 1);
switch (type) {
case DNS_T_A:
+ CHECKCP(4);
add_assoc_string(*subarray, "type", "A", 1);
snprintf(name, sizeof(name), "%d.%d.%d.%d", cp[0], cp[1], cp[2], cp[3]);
add_assoc_string(*subarray, "ip", name, 1);
cp += dlen;
break;
case DNS_T_MX:
+ CHECKCP(2);
add_assoc_string(*subarray, "type", "MX", 1);
GETSHORT(n, cp);
add_assoc_long(*subarray, "pri", n);
@@ -475,7 +485,7 @@
if (type == DNS_T_PTR) {
add_assoc_string(*subarray, "type", "PTR", 1);
}
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2);
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2);
if (n < 0) {
return NULL;
}
@@ -485,18 +495,22 @@
case DNS_T_HINFO:
/* See RFC 1010 for values */
add_assoc_string(*subarray, "type", "HINFO", 1);
+ CHECKCP(1);
n = *cp & 0xFF;
cp++;
+ CHECKCP(n);
add_assoc_stringl(*subarray, "cpu", (char*)cp, n, 1);
cp += n;
+ CHECKCP(1);
n = *cp & 0xFF;
cp++;
+ CHECKCP(n);
add_assoc_stringl(*subarray, "os", (char*)cp, n, 1);
cp += n;
break;
case DNS_T_TXT:
{
- int ll = 0;
+ int l1 = 0, l2 = 0;
zval *entries = NULL;
add_assoc_string(*subarray, "type", "TXT", 1);
@@ -505,37 +519,41 @@
MAKE_STD_ZVAL(entries);
array_init(entries);
- while (ll < dlen) {
- n = cp[ll];
- if ((ll + n) >= dlen) {
+ while (l1 < dlen) {
+ n = cp[l1];
+ if ((l1 + n) >= dlen) {
// Invalid chunk length, truncate
- n = dlen - (ll + 1);
+ n = dlen - (l1 + 1);
}
- memcpy(tp + ll , cp + ll + 1, n);
- add_next_index_stringl(entries, cp + ll + 1, n, 1);
- ll = ll + n + 1;
+ if (n) {
+ memcpy(tp + l2 , cp + l1 + 1, n);
+ add_next_index_stringl(entries, cp + l1 + 1, n, 1);
+ }
+ l1 = l1 + n + 1;
+ l2 = l2 + n;
}
- tp[dlen] = '\0';
+ tp[l2] = '\0';
cp += dlen;
- add_assoc_stringl(*subarray, "txt", tp, dlen - 1, 0);
+ add_assoc_stringl(*subarray, "txt", tp, l2, 0);
add_assoc_zval(*subarray, "entries", entries);
}
break;
case DNS_T_SOA:
add_assoc_string(*subarray, "type", "SOA", 1);
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) -2);
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) -2);
if (n < 0) {
return NULL;
}
cp += n;
add_assoc_string(*subarray, "mname", name, 1);
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) -2);
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) -2);
if (n < 0) {
return NULL;
}
cp += n;
add_assoc_string(*subarray, "rname", name, 1);
+ CHECKCP(5*4);
GETLONG(n, cp);
add_assoc_long(*subarray, "serial", n);
GETLONG(n, cp);
@@ -549,6 +567,7 @@
break;
case DNS_T_AAAA:
tp = (u_char*)name;
+ CHECKCP(8*2);
for(i=0; i < 8; i++) {
GETSHORT(s, cp);
if (s != 0) {
@@ -583,6 +602,7 @@
case DNS_T_A6:
p = cp;
add_assoc_string(*subarray, "type", "A6", 1);
+ CHECKCP(1);
n = ((int)cp[0]) & 0xFF;
cp++;
add_assoc_long(*subarray, "masklen", n);
@@ -618,6 +638,7 @@
cp++;
}
for (i = (n + 8) / 16; i < 8; i++) {
+ CHECKCP(2);
GETSHORT(s, cp);
if (s != 0) {
if (tp > (u_char *)name) {
@@ -647,7 +668,7 @@
tp[0] = '\0';
add_assoc_string(*subarray, "ipv6", name, 1);
if (cp < p + dlen) {
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2);
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2);
if (n < 0) {
return NULL;
}
@@ -656,6 +677,7 @@
}
break;
case DNS_T_SRV:
+ CHECKCP(3*2);
add_assoc_string(*subarray, "type", "SRV", 1);
GETSHORT(n, cp);
add_assoc_long(*subarray, "pri", n);
@@ -663,7 +685,7 @@
add_assoc_long(*subarray, "weight", n);
GETSHORT(n, cp);
add_assoc_long(*subarray, "port", n);
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2);
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2);
if (n < 0) {
return NULL;
}
@@ -671,21 +693,35 @@
add_assoc_string(*subarray, "target", name, 1);
break;
case DNS_T_NAPTR:
+ CHECKCP(2*2);
add_assoc_string(*subarray, "type", "NAPTR", 1);
GETSHORT(n, cp);
add_assoc_long(*subarray, "order", n);
GETSHORT(n, cp);
add_assoc_long(*subarray, "pref", n);
+
+ CHECKCP(1);
n = (cp[0] & 0xFF);
- add_assoc_stringl(*subarray, "flags", (char*)++cp, n, 1);
+ cp++;
+ CHECKCP(n);
+ add_assoc_stringl(*subarray, "flags", (char*)cp, n, 1);
cp += n;
+
+ CHECKCP(1);
n = (cp[0] & 0xFF);
- add_assoc_stringl(*subarray, "services", (char*)++cp, n, 1);
+ cp++;
+ CHECKCP(n);
+ add_assoc_stringl(*subarray, "services", (char*)cp, n, 1);
cp += n;
+
+ CHECKCP(1);
n = (cp[0] & 0xFF);
- add_assoc_stringl(*subarray, "regex", (char*)++cp, n, 1);
+ cp++;
+ CHECKCP(n);
+ add_assoc_stringl(*subarray, "regex", (char*)cp, n, 1);
cp += n;
- n = dn_expand(answer->qb2, answer->qb2+65536, cp, name, (sizeof name) - 2);
+
+ n = dn_expand(answer->qb2, end, cp, name, (sizeof name) - 2);
if (n < 0) {
return NULL;
}
@@ -852,7 +888,7 @@
while (an-- && cp && cp < end) {
zval *retval;
- cp = php_parserr(cp, &answer, type_to_fetch, store_results, &retval);
+ cp = php_parserr(cp, end, &answer, type_to_fetch, store_results, &retval);
if (retval != NULL && store_results) {
add_next_index_zval(return_value, retval);
}
@@ -865,7 +901,7 @@
while (ns-- > 0 && cp && cp < end) {
zval *retval = NULL;
- cp = php_parserr(cp, &answer, DNS_T_ANY, authns != NULL, &retval);
+ cp = php_parserr(cp, end, &answer, DNS_T_ANY, authns != NULL, &retval);
if (retval != NULL) {
add_next_index_zval(authns, retval);
}
@@ -877,7 +913,7 @@
while (ar-- > 0 && cp && cp < end) {
zval *retval = NULL;
- cp = php_parserr(cp, &answer, DNS_T_ANY, 1, &retval);
+ cp = php_parserr(cp, end, &answer, DNS_T_ANY, 1, &retval);
if (retval != NULL) {
add_next_index_zval(addtl, retval);
}
++++++ php-CVE-2014-4670.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Fspl%2Fspl_d…
--- ext/spl/spl_dllist.c
+++ ext/spl/spl_dllist.c
@@ -43,12 +43,10 @@ PHPAPI zend_class_entry *spl_ce_SplStack;
#define SPL_LLIST_DELREF(elem) if(!--(elem)->rc) { \
efree(elem); \
- elem = NULL; \
}
#define SPL_LLIST_CHECK_DELREF(elem) if((elem) && !--(elem)->rc) { \
efree(elem); \
- elem = NULL; \
}
#define SPL_LLIST_ADDREF(elem) (elem)->rc++
@@ -916,6 +914,11 @@ SPL_METHOD(SplDoublyLinkedList, offsetUnset)
llist->dtor(element TSRMLS_CC);
}
+ if (intern->traverse_pointer == element) {
+ SPL_LLIST_DELREF(element);
+ intern->traverse_pointer = NULL;
+ }
+
zval_ptr_dtor((zval **)&element->data);
element->data = NULL;
++++++ php-CVE-2014-4698.patch ++++++
X-Git-Url: http://72.52.91.13:8000/?p=php-src.git;a=blobdiff_plain;f=ext%2Fspl%2Fspl_a…
Index: ext/spl/spl_array.c
===================================================================
--- ext/spl/spl_array.c.orig 2014-07-17 15:57:13.633410017 +0200
+++ ext/spl/spl_array.c 2014-07-17 15:57:13.649410017 +0200
@@ -1753,8 +1753,15 @@
{
const unsigned char *p, *s;
zval *pmembers, *pflags = NULL;
+ HashTable *aht;
long flags;
+ aht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
+ if (aht->nApplyCount > 0) {
+ zend_error(E_WARNING, "Modification of ArrayObject during sorting is prohibited");
+ return;
+ }
+
/* storage */
s = p = buf;
++++++ php-CVE-2014-4721.patch ++++++
https://bugs.php.net/patch-display.php?bug_id=67498&patch=bug67948-patch&re…
Index: ext/standard/info.c
===================================================================
--- ext/standard/info.c.orig 2014-07-17 14:31:18.229508033 +0200
+++ ext/standard/info.c 2014-07-17 14:31:18.373508031 +0200
@@ -972,16 +972,16 @@
php_info_print_table_start();
php_info_print_table_header(2, "Variable", "Value");
- if (zend_hash_find(&EG(symbol_table), "PHP_SELF", sizeof("PHP_SELF"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "PHP_SELF", sizeof("PHP_SELF"), (void **) &data) != FAILURE && Z_TYPE_PP(data) == IS_STRING) {
php_info_print_table_row(2, "PHP_SELF", Z_STRVAL_PP(data));
}
- if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_TYPE", sizeof("PHP_AUTH_TYPE"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_TYPE", sizeof("PHP_AUTH_TYPE"), (void **) &data) != FAILURE && Z_TYPE_PP(data) == IS_STRING) {
php_info_print_table_row(2, "PHP_AUTH_TYPE", Z_STRVAL_PP(data));
}
- if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_USER", sizeof("PHP_AUTH_USER"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_USER", sizeof("PHP_AUTH_USER"), (void **) &data) != FAILURE && Z_TYPE_PP(data) == IS_STRING) {
php_info_print_table_row(2, "PHP_AUTH_USER", Z_STRVAL_PP(data));
}
- if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE && Z_TYPE_PP(data) == IS_STRING) {
php_info_print_table_row(2, "PHP_AUTH_PW", Z_STRVAL_PP(data));
}
php_print_gpcse_array("_REQUEST", sizeof("_REQUEST")-1 TSRMLS_CC);
++++++ php-cloexec.patch ++++++
Index: ext/standard/exec.c
===================================================================
--- ext/standard/exec.c.orig 2010-03-12 11:28:59.000000000 +0100
+++ ext/standard/exec.c 2010-08-03 06:31:21.692327000 +0200
@@ -107,8 +107,12 @@ PHPAPI int php_exec(int type, char *cmd,
#ifdef PHP_WIN32
fp = VCWD_POPEN(cmd_p, "rb");
#else
+#if defined(__linux__) && __GLIBC_PREREQ(2, 9)
+ fp = VCWD_POPEN(cmd_p, "re");
+#else
fp = VCWD_POPEN(cmd_p, "r");
#endif
+#endif
if (!fp) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to fork [%s]", cmd);
goto err;
Index: ext/standard/file.c
===================================================================
--- ext/standard/file.c.orig 2010-05-02 22:11:22.000000000 +0200
+++ ext/standard/file.c 2010-08-03 06:31:21.701320000 +0200
@@ -957,6 +957,13 @@ PHP_FUNCTION(popen)
}
}
#endif
+#if defined(__linux__) && __GLIBC_PREREQ(2, 9)
+ char *e = memchr(posix_mode, 'e', mode_len);
+ if (e) {
+ memmove(e, e + 1, mode_len - (e - posix_mode));
+ }
+#endif
+
if (PG(safe_mode)){
b = strchr(command, ' ');
if (!b) {
Index: ext/standard/mail.c
===================================================================
--- ext/standard/mail.c.orig 2010-07-19 15:38:53.000000000 +0200
+++ ext/standard/mail.c 2010-08-03 06:31:21.709286000 +0200
@@ -294,8 +294,12 @@ PHPAPI int php_mail(char *to, char *subj
* (e.g. the shell can't be executed) we explicitely set it to 0 to be
* sure we don't catch any older errno value. */
errno = 0;
+#if defined(__linux__) && __GLIBC_PREREQ(2, 9)
+ sendmail = popen(sendmail_cmd, "we");
+#else
sendmail = popen(sendmail_cmd, "w");
#endif
+#endif
if (extra_cmd != NULL) {
efree (sendmail_cmd);
}
++++++ php-fpm.init ++++++
#!/bin/sh
#
# Template SUSE system startup script for example service/daemon php-fpm
# Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc.
#
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at
# your option) any later version.
#
# This library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
# USA.
#
# /etc/init.d/php-fpm
# and its symbolic link
# /(usr/)sbin/rcphp-fpm
#
# Template system startup script for some example service/daemon php-fpm
#
# LSB compatible service control script; see http://www.linuxbase.org/spec/
#
# Note: This template uses functions rc_XXX defined in /etc/rc.status on
# UnitedLinux/SUSE/Novell based Linux distributions. If you want to base your
# script on this template and ensure that it works on non UL based LSB
# compliant Linux distributions, you either have to provide the rc.status
# functions from UL or change the script to work without them.
# See skeleton.compat for a template that works with other distros as well.
#
### BEGIN INIT INFO
# Provides: php-fpm
# Required-Start: $remote_fs $network
# Should-Start: nginx lighttpd httpd
# Required-Stop: $network $remote_fs
# Should-Stop: nginx lighttpd httpd
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: php-fpm daemon
# Description: Start php-fpm to
# continued on second line by '#<TAB>'
# should contain enough info for the runlevel editor
# to give admin some idea what this service does and
# what it's needed for ...
# (The Short-Description should already be a good hint.)
### END INIT INFO
#
# Any extensions to the keywords given above should be preceeded by
# X-VendorTag- (X-UnitedLinux- X-SuSE- for us) according to LSB.
#
# Notes on Required-Start/Should-Start:
# * There are two different issues that are solved by Required-Start
# and Should-Start
# (a) Hard dependencies: This is used by the runlevel editor to determine
# which services absolutely need to be started to make the start of
# this service make sense. Example: nfsserver should have
# Required-Start: $portmap
# Also, required services are started before the dependent ones.
# The runlevel editor will warn about such missing hard dependencies
# and suggest enabling. During system startup, you may expect an error,
# if the dependency is not fulfilled.
# (b) Specifying the init script ordering, not real (hard) dependencies.
# This is needed by insserv to determine which service should be
# started first (and at a later stage what services can be started
# in parallel). The tag Should-Start: is used for this.
# It tells, that if a service is available, it should be started
# before. If not, never mind.
# * When specifying hard dependencies or ordering requirements, you can
# use names of services (contents of their Provides: section)
# or pseudo names starting with a $. The following ones are available
# according to LSB (1.1):
# $local_fs all local file systems are mounted
# (most services should need this!)
# $remote_fs all remote file systems are mounted
# (note that /usr may be remote, so
# many services should Require this!)
# $syslog system logging facility up
# $network low level networking (eth card, ...)
# $named hostname resolution available
# $netdaemons all network daemons are running
# The $netdaemons pseudo service has been removed in LSB 1.2.
# For now, we still offer it for backward compatibility.
# These are new (LSB 1.2):
# $time the system time has been set correctly
# $portmap SunRPC portmapping service available
# UnitedLinux extensions:
# $ALL indicates that a script should be inserted
# at the end
# * The services specified in the stop tags
# (Required-Stop/Should-Stop)
# specify which services need to be still running when this service
# is shut down. Often the entries there are just copies or a subset
# from the respective start tag.
# * Should-Start/Stop are now part of LSB as of 2.0,
# formerly SUSE/Unitedlinux used X-UnitedLinux-Should-Start/-Stop.
# insserv does support both variants.
# * X-UnitedLinux-Default-Enabled: yes/no is used at installation time
# (%fillup_and_insserv macro in %post of many RPMs) to specify whether
# a startup script should default to be enabled after installation.
# It's not used by insserv.
#
# Note on runlevels:
# 0 - halt/poweroff 6 - reboot
# 1 - single user 2 - multiuser without network exported
# 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm)
#
# Note on script names:
# http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html
# A registry has been set up to manage the init script namespace.
# http://www.lanana.org/
# Please use the names already registered or register one or use a
# vendor prefix.
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
PHPFPM_BIN=/usr/sbin/php-fpm
test -x $PHPFPM_BIN || { echo "$PHPFPM_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
FPM_CONFIG="--fpm-config /etc/php5/fpm/php-fpm.conf"
# Source LSB init functions
# providing start_daemon, killproc, pidofproc,
# log_success_msg, log_failure_msg and log_warning_msg.
# This is currently not used by UnitedLinux based distributions and
# not needed for init scripts for UnitedLinux only. If it is used,
# the functions from rc.status should not be sourced or used.
#. /lib/lsb/init-functions
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v be verbose in local rc status and clear it afterwards
# rc_status -v -r ditto and clear both the local and overall rc status
# rc_status -s display "skipped" and exit with status 3
# rc_status -u display "unused" and exit with status 3
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num>
# rc_reset clear both the local and overall rc status
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
. /etc/rc.status
# Reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - user had insufficient privileges
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.
case "$1" in
start)
echo -n "Starting php-fpm"
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
/sbin/startproc $PHPFPM_BIN $FPM_CONFIG
# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down php-fpm "
## Stop daemon with killproc(8) and if this fails
## killproc sets the return value according to LSB.
/sbin/killproc -QUIT $PHPFPM_BIN
# Remember status and be verbose
rc_status -v
;;
try-restart|condrestart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
if test "$1" = "condrestart"; then
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
fi
$0 status
if test $? = 0; then
$0 restart
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart the service if it
## is running.
echo -n "Reload service php-fpm"
## if it supports it:
/sbin/killproc -USR2 $PHPFPM_BIN
rc_status -v
## Otherwise:
#$0 try-restart
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
# If it supports signaling:
echo -n "Reload service php-fpm "
/sbin/killproc -USR2 $PHPFPM_BIN
rc_status -v
## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking for service php-fpm "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Return value is slightly different for the status command:
# 0 - service up and running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running (unused)
# 4 - service status unknown :-(
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
# NOTE: checkproc returns LSB compliant status values.
/sbin/checkproc $PHPFPM_BIN
# NOTE: rc_status knows that we called this init script with
# "status" option and adapts its messages accordingly.
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
exit 1
;;
esac
rc_exit
++++++ php5-apache_sapi_install.patch ++++++
# Do not attempt to modify apache configuration on module install
================================================================================
---
sapi/apache2handler/config.m4 | 9 ---------
1 file changed, 9 deletions(-)
Index: sapi/apache2handler/config.m4
===================================================================
--- sapi/apache2handler/config.m4.orig 2008-03-11 23:47:39.000000000 +0100
+++ sapi/apache2handler/config.m4 2010-08-03 06:31:18.512616000 +0200
@@ -68,18 +68,9 @@ if test "$PHP_APXS2" != "no"; then
fi
APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
- if test -z `$APXS -q SYSCONFDIR`; then
INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
$APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
-i -n php5"
- else
- APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
- INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
- \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
- $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
- -S SYSCONFDIR='$APXS_SYSCONFDIR' \
- -i -a -n php5"
- fi
case $host_alias in
*aix*)
++++++ php5-missing-extdeps.patch ++++++
--- ext/soap/soap.c.orig
+++ ext/soap/soap.c
@@ -439,7 +439,7 @@ unsigned char arginfo_soapclient___soapc
# define arginfo_soapserver_setobject NULL
# define arginfo_soapserver_addfunction NULL
# define arginfo_soapserver_getfunctions NULL
-# defina arginfo_soapserver_handle NULL
+# define arginfo_soapserver_handle NULL
# define arginfo_soapserver_fault NULL
# define arginfo_soapserver_addsoapheader NULL
@@ -516,10 +516,18 @@ static const zend_function_entry soap_he
PHP_FE_END
};
-zend_module_entry soap_module_entry = {
-#ifdef STANDARD_MODULE_HEADER
- STANDARD_MODULE_HEADER,
+/* {{{ soap dependencies */
+static const zend_module_dep soap_module_deps[] = {
+ ZEND_MOD_REQUIRED("standard")
+#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
+ ZEND_MOD_REQUIRED("session")
#endif
+ {NULL, NULL, NULL}
+};
+
+zend_module_entry soap_module_entry = {
+ STANDARD_MODULE_HEADER_EX, NULL,
+ soap_module_deps,
"soap",
soap_functions,
PHP_MINIT(soap),
--- ext/wddx/wddx.c.orig
+++ ext/wddx/wddx.c
@@ -154,10 +154,21 @@ ZEND_GET_MODULE(wddx)
#endif /* COMPILE_DL_WDDX */
/* }}} */
+/* {{{ wddx dependencies */
+static const zend_module_dep wddx_module_deps[] = {
+ ZEND_MOD_REQUIRED("standard")
+ ZEND_MOD_REQUIRED("xml")
+ ZEND_MOD_REQUIRED("date")
+#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
+ ZEND_MOD_REQUIRED("session")
+#endif
+ {NULL, NULL, NULL}
+};
/* {{{ wddx_module_entry
*/
zend_module_entry wddx_module_entry = {
- STANDARD_MODULE_HEADER,
+ STANDARD_MODULE_HEADER_EX, NULL,
+ wddx_module_deps,
"wddx",
wddx_functions,
PHP_MINIT(wddx),
--- ext/filter/filter.c.orig
+++ ext/filter/filter.c
@@ -132,12 +132,17 @@ static const zend_function_entry filter_
};
/* }}} */
+/* {{{ filter dependencies */
+static const zend_module_dep filter_module_deps[] = {
+ ZEND_MOD_REQUIRED("standard")
+ ZEND_MOD_REQUIRED("pcre")
+ {NULL, NULL, NULL}
+};
/* {{{ filter_module_entry
*/
zend_module_entry filter_module_entry = {
-#if ZEND_MODULE_API_NO >= 20010901
- STANDARD_MODULE_HEADER,
-#endif
+ STANDARD_MODULE_HEADER_EX, NULL,
+ filter_module_deps,
"filter",
filter_functions,
PHP_MINIT(filter),
--- ext/mbstring/mbstring.c.orig
+++ ext/mbstring/mbstring.c
@@ -561,9 +561,19 @@ const zend_function_entry mbstring_funct
};
/* }}} */
+/* {{{ mbstring dependencies */
+static const zend_module_dep mbstring_module_deps[] = {
+ ZEND_MOD_REQUIRED("standard")
+#if (HAVE_PCRE || HAVE_BUNDLED_PCRE) && !HAVE_ONIG
+ ZEND_MOD_REQUIRED("pcre")
+#endif
+ {NULL, NULL, NULL}
+};
+
/* {{{ zend_module_entry mbstring_module_entry */
zend_module_entry mbstring_module_entry = {
- STANDARD_MODULE_HEADER,
+ STANDARD_MODULE_HEADER_EX, NULL,
+ mbstring_module_deps,
"mbstring",
mbstring_functions,
PHP_MINIT(mbstring),
++++++ php5-openssl.patch ++++++
--- ext/openssl/openssl.c.orig
+++ ext/openssl/openssl.c
@@ -47,6 +47,7 @@
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/pkcs12.h>
+#include <openssl/engine.h>
/* Common */
#include <time.h>
@@ -979,10 +980,16 @@ PHP_MINIT_FUNCTION(openssl)
le_x509 = zend_register_list_destructors_ex(php_x509_free, NULL, "OpenSSL X.509", module_number);
le_csr = zend_register_list_destructors_ex(php_csr_free, NULL, "OpenSSL X.509 CSR", module_number);
+ OPENSSL_config(NULL);
SSL_library_init();
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();
OpenSSL_add_all_algorithms();
+/* Load all bundled ENGINEs into memory and make them visible */
+ ENGINE_load_builtin_engines();
+ /* Register all of them for every algorithm they collectively implement */
+ ENGINE_register_all_complete();
+
ERR_load_ERR_strings();
ERR_load_crypto_strings();
--- ext/openssl/xp_ssl.c.orig
+++ ext/openssl/xp_ssl.c
@@ -376,7 +376,9 @@ static inline int php_openssl_setup_cryp
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed to create an SSL context");
return -1;
}
-
+#ifdef SSL_MODE_RELEASE_BUFFERS
+ SSL_CTX_set_mode(sslsock->ctx, SSL_MODE_RELEASE_BUFFERS);
+#endif
SSL_CTX_set_options(sslsock->ctx, SSL_OP_ALL);
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL
++++++ php5-php-config.patch ++++++
---
scripts/php-config.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: scripts/php-config.in
===================================================================
--- scripts/php-config.in.orig 2007-08-24 13:44:10.000000000 +0200
+++ scripts/php-config.in 2010-08-03 06:31:18.786529000 +0200
@@ -5,7 +5,7 @@ prefix="@prefix@"
exec_prefix="@exec_prefix@"
version="@PHP_VERSION@"
vernum="@PHP_VERSION_ID@"
-include_dir="@includedir@/php"
+include_dir="@includedir@/php5"
includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib"
ldflags="@PHP_LDFLAGS@"
libs="@EXTRA_LIBS@"
++++++ php5-phpize.patch ++++++
---
scripts/Makefile.frag | 4 ++--
scripts/phpize.in | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
Index: scripts/Makefile.frag
===================================================================
--- scripts/Makefile.frag.orig 2010-07-13 19:24:13.000000000 +0200
+++ scripts/Makefile.frag 2010-08-03 06:31:18.109614000 +0200
@@ -3,8 +3,8 @@
# Build environment install
#
-phpincludedir = $(includedir)/php
-phpbuilddir = $(libdir)/build
+phpincludedir = $(includedir)/php5
+phpbuilddir = $(datadir)/build
BUILD_FILES = \
scripts/phpize.m4 \
Index: scripts/phpize.in
===================================================================
--- scripts/phpize.in.orig 2009-06-24 09:42:33.000000000 +0200
+++ scripts/phpize.in 2010-08-03 06:31:18.115618000 +0200
@@ -3,8 +3,8 @@
# Variable declaration
prefix='@prefix@'
exec_prefix="`eval echo @exec_prefix@`"
-phpdir="`eval echo @libdir@`/build"
-includedir="`eval echo @includedir@`/php"
+phpdir="`eval echo @datadir@`/build"
+includedir="`eval echo @includedir@`/php5"
builddir="`pwd`"
SED="@SED@"
++++++ suhosin-patch-5.3.3-0.9.10.patch.gz ++++++
++++ 5803 lines (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 kbd.2994 for openSUSE:13.1:Update checked in at 2014-09-16 14:22:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/kbd.2994 (Old)
and /work/SRC/openSUSE:13.1:Update/.kbd.2994.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kbd.2994"
Changes:
--------
New Changes file:
--- /dev/null 2014-07-24 01:57:42.080040256 +0200
+++ /work/SRC/openSUSE:13.1:Update/.kbd.2994.new/kbd.changes 2014-09-16 14:22:10.000000000 +0200
@@ -0,0 +1,1547 @@
+-------------------------------------------------------------------
+Sat Sep 6 22:49:34 UTC 2014 - jw(a)owncloud.com
+
+- added /usr/bin/kbd, a simple userfriedly keymap switcher.
+ From https://github.com/jnweiger/kbd-wrapper
+
+-------------------------------------------------------------------
+Thu Apr 4 15:57:45 UTC 2013 - meissner(a)suse.com
+
+- disable vlock build, which is in vlock package.
+
+-------------------------------------------------------------------
+Thu Apr 4 01:34:32 UTC 2013 - crrodriguez(a)opensuse.org
+
+- Remove sysvinit support, init scripts from this package
+ are masked by systemd and only serve for confusion.
+
+-------------------------------------------------------------------
+Wed Apr 3 19:06:41 CEST 2013 - sbrabec(a)suse.cz
+
+- sysconfig.keyboard: Updated description of KBD_NUMLOCK
+ (bnc#746595#c74).
+
+-------------------------------------------------------------------
+Wed Dec 5 20:45:40 UTC 2012 - dap.darkness(a)gmail.com
+
+- Update to version 1.15.5:
+ * Fix msgstr in es.po and update translations.
+ * Update changelog and increase version (1.15.5wip).
+ * po: Update vi.po from translationproject.org.
+ * Fix various vlock build errors.
+ * Fix loadkeys.analyze lex handling.
+ * Ignore config.cache files.
+- Applied into upstream kbd-1.15.3-po-es.patch was deleted.
+
+-------------------------------------------------------------------
+Mon Dec 3 18:58:13 UTC 2012 - dap.darkness(a)gmail.com
+
+- Update to version 1.15.4:
+ * vlock: New utility which locks one or more virtual consoles.
+ * loadkeys: Change the handling of -C option.
+ * loadkeys: Fix -d option.
+ * Add dvorak-es keymap.
+ * Add dvorak-uk keymap (Joe MacMahon).
+ * Add dvorak-sv-a1 and dvorak-sv-a5 keymaps.
+ * Add ruwin_alt_sh-UTF-8 keymap (Dmitriy Perlow).
+- kbd-1.15.3-po-es.patch was fixed.
+- Applied into upstream patches were deleted.
+- Fixed up via spec-cleaner.
+- Clean-section was removed.
+- Macro warnings were fixed via '%' deleting.
+
+-------------------------------------------------------------------
+Fri Apr 20 15:40:30 UTC 2012 - rschweikert(a)suse.com
+
+- Place binaries into /usr tree (UsrMerge project)
+
+-------------------------------------------------------------------
+Tue Dec 20 17:35:35 CET 2011 - sbrabec(a)suse.cz
+
+- Enable resizecons on x86_64 (bnc#737631).
+
+-------------------------------------------------------------------
+Wed Nov 30 14:24:18 UTC 2011 - coolo(a)suse.com
+
+- add automake as buildrequire to avoid implicit dependency
+
+-------------------------------------------------------------------
+Wed Oct 5 13:37:08 UTC 2011 - lnussel(a)suse.de
+
+- fix loadkeys -C option (bnc#720486)
+
+-------------------------------------------------------------------
+Fri Sep 30 15:28:41 UTC 2011 - uli(a)suse.com
+
+- cross-build fix: use %__cc, %configure macros
+- configure: explicitly set bindir
+
+-------------------------------------------------------------------
+Wed Sep 14 15:58:43 CEST 2011 - sbrabec(a)suse.cz
+
+- Update to version 1.15.3:
+ * kbdinfo: New utility to obtain information about console.
+ * setvtrgb: New utility to set the virtual terminal RGB colors.
+ * loadkeys: Add LOADKEYS_KEYMAP_PATH env variable.
+ * loadkeys: Fix some memory leaks.
+ * loadkeys: Do not set prefer_unicode for iso-8859-1.
+ * loadkeys -a: Switch to ASCII mode.
+ * loadkeys: Fix "compose as usual" for Unicode diacritics.
+ * Add dvorak-ru keymap.
+ * Add LatGrkCyr fonts.
+
+-------------------------------------------------------------------
+Mon Mar 21 14:07:36 CET 2011 - werner(a)suse.de
+
+- If /usr is located in a separate partition, the locale command fails.
+- Ignore /var/run/keymap in sinlge user mode otherwise key mapping
+ could be wrong if booted cold into sinlge user mode
+
+-------------------------------------------------------------------
+Thu Feb 17 12:39:06 CET 2011 - werner(a)suse.de
+
+- Tag boot script as interactive as systemd uses it
+
+-------------------------------------------------------------------
+Wed Jan 12 14:22:09 UTC 2011 - lnussel(a)suse.de
+
+- use /etc/defkeymap.name if possible to avoid find call
+- move some code that is only needed for start to actual start section
+ (bnc#463801)
+- Fixed symlink vulnerability of the init script
+ (bnc#663898, CVE-2011-0460).
+
+-------------------------------------------------------------------
+Tue Sep 7 14:48:34 CEST 2010 - anicka(a)suse.cz
+
+- build optional binaries (bnc#637453)
+
+-------------------------------------------------------------------
+Mon Sep 6 17:27:40 CEST 2010 - anicka(a)suse.cz
+
+- update to 1.15.2
+ * Use automake to build translations.
+ * loadkeys -u: Switch to Unicode mode, if necessary
+ * Never handle plain ASCII characters as Unicode
+ * Enable UNUMBERs in compose definitions
+ * Use automake.
+ * Add --enable-strip configure option.
+ * unicode_start: Without any arguments utility will only set
+ unicode mode.
+ * Add qwerty/cz.map keymap.
+- remove upstreamed and obsolete patches (-remove-kbio, -Makefile,
+ -2d01989f, -no-strip)
+- retain original behavior of unicode_start script
+- remove manpages for programs that are not installed
+
+-------------------------------------------------------------------
+Thu May 27 02:18:05 CEST 2010 - sndirsch(a)suse.de
+
+- added dummy keyboard mappings for chinese/taiwanese (bnc #603950)
+
+-------------------------------------------------------------------
+Mon Mar 29 17:31:11 CEST 2010 - anicka(a)suse.cz
+
+- add lt.std map (bnc#569554)
+
+-------------------------------------------------------------------
+Fri Feb 19 14:39:29 CET 2010 - anicka(a)suse.cz
+
+- respect KBD_TTY="" set in sysconfig (bnc#405658)
+
+-------------------------------------------------------------------
+Tue Feb 16 11:14:18 PST 2010 - vuntz(a)opensuse.org
+
+- Add kbd-1.12-chvt-userwait.patch, taken from Gentoo to add a
+ --userwait option to chvt. This can be used to avoid situation
+ where chvt can hang forever waiting for the vt switch: the wait
+ is done in userspace, and has a timeout of 5 seconds. (bnc#575123)
+
+-------------------------------------------------------------------
+Thu Feb 4 12:22:49 UTC 2010 - jengelh(a)medozas.de
+
+- remove inclusion of kbio.h on SPARC, this has been removed
+ in the kernel
+
+-------------------------------------------------------------------
+Sun Jan 10 01:45:25 UTC 2010 - jw(a)novell.com
+
+- added guess_encoding, an old script of mine, that tests
+ if a tty is in utf8 mode or not.
+ (Also helpful with text files in unknown encoding.)
+
+-------------------------------------------------------------------
+Mon Nov 2 13:48:13 CET 2009 - mmarek(a)suse.cz
+
+- do not include '.' in the repacked tarball (bnc#544975).
+
+-------------------------------------------------------------------
+Thu Oct 1 15:09:51 CEST 2009 - mmarek(a)suse.cz
+
+- Add real Tajik keymap.
+- remove slovak keymaps from suse-add.tar.bz2 that are already
+ upstream.
+
+-------------------------------------------------------------------
+Fri Sep 4 15:22:07 CEST 2009 - mmarek(a)suse.cz
+
+- added symlink tj.map.gz -> ruwin_alt-UTF-8.map.gz until there is
+ a real Tajik map.
+
+-------------------------------------------------------------------
+Tue May 19 16:25:37 CEST 2009 - mmarek(a)suse.cz
+
+- remove testutf8 (replace with a script that returns 2 in any
+ terminal), it's a hack that has a number of problems (bnc#436378,
+ bnc#334889). Users who don't want utf8 should adjust their locale
+ setting accordingly.
++++ 1350 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:13.1:Update/.kbd.2994.new/kbd.changes
New:
----
README.SuSE
convert-kbd-mac.sed
fbtest.8
fbtest.c
guess_encoding.pl
kbd-1.15.2-chvt-userwait.patch
kbd-1.15.2-docu-X11R6-xorg.patch
kbd-1.15.2-dumpkeys-C-opt.patch
kbd-1.15.2-dumpkeys-ppc.patch
kbd-1.15.2-prtscr_no_sigquit.patch
kbd-1.15.2-setfont-no-cruft.patch
kbd-1.15.2-sv-latin1-keycode10.patch
kbd-1.15.2-unicode_scripts.patch
kbd-1.15.5-repack.tar.bz2
kbd-1.15.5.tar.gz
kbd.changes
kbd.fillup
kbd.fillup.nonpc
kbd.pl
kbd.spec
kbd_fonts.tar.bz2
repack_kbd.sh
suse-add.tar.bz2
sysconfig.console
sysconfig.keyboard
testutf8
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kbd.spec ++++++
#
# spec file for package kbd
#
# Copyright (c) 2014 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: kbd
Version: 1.15.5
Release: 0
Summary: Keyboard and Font Utilities
License: GPL-2.0+
Group: System/Console
# git: git://git.altlinux.org/people/legion/packages/kbd.git
Url: ftp://ftp.altlinux.org/pub/people/legion/kbd/
%if 0
Source: %{name}-%{version}.tar.gz
%else
Source: %{name}-%{version}-repack.tar.bz2
%endif
Source1: kbd_fonts.tar.bz2
Source2: suse-add.tar.bz2
Source3: README.SuSE
Source5: kbd.fillup
Source6: kbd.fillup.nonpc
Source8: sysconfig.console
Source9: sysconfig.keyboard
Source10: testutf8
Source11: fbtest.c
Source12: fbtest.8
Source13: guess_encoding.pl
Source14: kbd.pl
Source42: convert-kbd-mac.sed
Source43: repack_kbd.sh
Patch0: kbd-1.15.2-prtscr_no_sigquit.patch
Patch1: kbd-1.15.2-dumpkeys-ppc.patch
Patch2: kbd-1.15.2-unicode_scripts.patch
Patch3: kbd-1.15.2-docu-X11R6-xorg.patch
Patch4: kbd-1.15.2-sv-latin1-keycode10.patch
Patch5: kbd-1.15.2-setfont-no-cruft.patch
Patch6: kbd-1.15.2-dumpkeys-C-opt.patch
Patch8: kbd-1.15.2-chvt-userwait.patch
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: pam-devel
Requires(pre): %fillup_prereq
Recommends: fbset
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Load and save keyboard mappings. This is needed if you are not using
the US keyboard map. This package also contains utilities for changing
your console fonts. If you install this package, YaST includes an extra
menu to allow you to choose between the different fonts. This package
also includes fonts from the kbd_fonts.tar.gz package (by Paul
Gortmaker) on Sunsite.
Authors:
--------
Andries Brouwer <aeb(a)cwi.nl>
Alexey Gladkov <gladkov.alexey(a)gmail.com>
%define kbd /usr/share/kbd
%prep
%setup -q -a 1 -a 2 -n kbd-%{version}
%patch0 -p1
%patch1 -p1
%patch2
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6
%patch8 -p1
%build
for i in `find data/keymaps/mac -type f` ; do
sed -i -f %{SOURCE42} $i
done
# workaround ambiguous keymap names
pushd data/keymaps/i386
# bnc#48301
test -f qwerty/se-latin1.map || cp qwerty/sv-latin1.map qwerty/se-latin1.map
# bnc#435121
test -f olpc/es-olpc.map || mv olpc/es.map olpc/es-olpc.map
popd
%configure \
--datadir=%{kbd} \
--enable-nls \
--localedir=/usr/share/locale \
--enable-optional-progs \
--disable-vlock
make CFLAGS="%{optflags}"
gcc %{optflags} -o fbtest $RPM_SOURCE_DIR/fbtest.c
# fix lat2-16.psfu (bnc#340579)
font=data/consolefonts/lat2a-16.psfu
./src/psfxtable -i $font -it data/unimaps/lat2u.uni \
-o t.psfu
mv t.psfu $font
make
%install
mkdir -p %{buildroot}%{_sbindir}
DOC=%{buildroot}%{_defaultdocdir}/kbd
KBD=%{kbd}
K=%{buildroot}$KBD
mkdir -p $K/consolefonts
# First install the fonts from the vfont package
# (allowing kbd to overwrite some of them)
mkdir -p $DOC/fonts
install -m 644 fonts/README $DOC/fonts/README.fonts
install -m 644 fonts/vfont-4.36/README $DOC/fonts/README.vfont-4.36
install -m 644 fonts/vfont-5.10/README $DOC/fonts/README.vfont-5.10
install -m 644 fonts/vfont-5.10/SCRIPT $DOC/fonts/SCRIPT.vfont-5.10
rm -f fonts/vfont-5.10/SCRIPT fonts/*/README
install -m 644 fonts/*/* $K/consolefonts/
# Now call kbd install
echo "# Now call kbd install DESTDIR=%{buildroot} DATA_DIR=%{kbd} MAN_DIR=%{_mandir}"
make DESTDIR=%{buildroot} DATA_DIR=%{kbd} MAN_DIR=%{_mandir} install
# ln -s iso01-12x22.psfu $K/consolefonts/suse12x22.psfu
install -m 644 data/consolefonts/README* $DOC/fonts/
mkdir -p $DOC/doc/
install -m 644 doc/keysyms.h.info doc/kbd.FAQ.txt doc/kbd.FAQ*.html doc/README* doc/TODO $DOC/doc/
install -m 644 doc/as400.kbd doc/console.docs doc/repeat/set_kbd_repeat-2 $DOC/doc/
echo "See /usr/share/i18/charmaps for a description of char maps" >$DOC/doc/README.charmaps
install -m 644 COPYING ChangeLog CREDITS README $DOC/
install -m 644 %{SOURCE3} $DOC/
rm -f $K/consolefonts/README* $K/consolefonts/ERRORS.gz
if ls $K/consolefonts/Agafari-* > /dev/null 2>&1; then
echo "";
echo "ERROR: Ethiopian Agafari fonts are for noncommercial distribution only."
echo "please run repack_kbd.sh";
echo "";
exit 1
fi
ln -sf us.map.gz $K/keymaps/i386/qwerty/khmer.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/korean.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/arabic.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/chinese.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/taiwanese.map.gz
# Compatability links; don't know what the first three are good for.
# The others are for yast/langselection and should be removed as soon as
# yast knows about it.
#ln -sf de-latin1-nodeadkeys.map.gz \
# $K/keymaps/i386/qwertz/de-lat1-nd.map.gz
#ln -sf ru1.map.gz $K/keymaps/i386/qwerty/russian.map.gz
#ln -sf sg-latin1-lk450.map.gz \
# $K/keymaps/i386/qwertz/sg-l1-lk450.map.gz
# The next two links are for yast-language choise; should be obsolete
# with the next yast version (on 6.1)
#ln -sf lat1-16.psfu.gz $K/consolefonts/lat1u-16.psf.gz
#ln -sf lat2-16.psfu.gz $K/consolefonts/lat2u-16.psf.gz
#
# This is for stupid default font search
rm -f $K/consolefonts/default8x16.gz
ln -sf default8x16.psfu.gz $K/consolefonts/default8x16.gz
#
rm -f $K/keymaps/i386/qwerty/*~ $K/keymaps/i386/qwerty/*,v
#
# this is until the Cyr* font are not part of the package
rm -f $K/consolefonts/Cyr_a8x14.gz
ln -sf Cyr_a8x14.psfu.gz $K/consolefonts/Cyr_a8x14.gz
rm -f $K/consolefonts/Cyr_a8x16.gz
ln -sf Cyr_a8x16.psfu.gz $K/consolefonts/Cyr_a8x16.gz
rm -f $K/consolefonts/Cyr_a8x8.gz
ln -sf Cyr_a8x8.psfu.gz $K/consolefonts/Cyr_a8x8.gz
#
find $K -name \*.orig | xargs -r rm -vf
# add some missing maps to mac and remap french board
(
cd $K/keymaps/mac/all
pwd
#ln -s mac-fr-latin1.map.gz mac-fr_CH-latin1.map.gz
#ln -s mac-fr-latin1.map.gz mac-fr.map.gz
for i in \
mac-es.map.gz \
mac-it.map.gz \
mac-pt-latin1.map.gz \
mac-br-abnt2.map.gz \
mac-gr.map.gz \
mac-dk-latin1.map.gz \
mac-no-latin1.map.gz \
mac-fi-latin1.map.gz \
mac-cz-us-qwertz.map.gz \
mac-hu.map.gz \
mac-Pl02.map.gz \
mac-ru1.map.gz \
mac-jp106.map.gz
do test -f $i || ln -sv mac-us.map.gz $i
done
)
FILLUP_DIR=%{buildroot}%{_localstatedir}/adm/fillup-templates
mkdir -p $FILLUP_DIR
install -m 644 %{SOURCE8} $FILLUP_DIR/sysconfig.console
install -m 644 %{SOURCE9} $FILLUP_DIR/sysconfig.keyboard
%ifarch %ix86 alpha ia64 x86_64
cat %{SOURCE5} >> $FILLUP_DIR/sysconfig.keyboard
%else
cat %{SOURCE6} >> $FILLUP_DIR/sysconfig.keyboard
%endif
#mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
#touch $RPM_BUILD_ROOT/etc/sysconfig/console
%ifnarch %ix86
%ifnarch x86_64
rm -f %{buildroot}/%{_mandir}/man8/resizecons.8*
%endif
%endif
%ifarch %sparc m68k
rm -f %{buildroot}/%{_mandir}/man8/getkeycodes.8*
rm -f %{buildroot}/%{_mandir}/man8/setkeycodes.8*
%endif
install -m 755 %_sourcedir/testutf8 %{buildroot}/%{_bindir}
install -m 755 fbtest %{buildroot}/%{_sbindir}
install -m 644 %{SOURCE12} %{buildroot}/%{_mandir}/man8/
install -m 755 %{SOURCE13} %{buildroot}/%{_bindir}/guess_encoding
install -m 755 %{SOURCE14} %{buildroot}/%{_bindir}/kbd
#UsrMerge
mkdir -p %{buildroot}/bin
mkdir -p %{buildroot}/sbin
ln -s %{_bindir}/chvt %{buildroot}/bin
ln -s %{_bindir}/clrunimap %{buildroot}/bin
ln -s %{_bindir}/deallocvt %{buildroot}/bin
ln -s %{_bindir}/dumpkeys %{buildroot}/bin
ln -s %{_bindir}/fgconsole %{buildroot}/bin
ln -s %{_bindir}/getunimap %{buildroot}/bin
ln -s %{_bindir}/guess_encoding %{buildroot}/bin
ln -s %{_bindir}/kbd_mode %{buildroot}/bin
ln -s %{_bindir}/kbdinfo %{buildroot}/bin
ln -s %{_bindir}/kbdrate %{buildroot}/bin
ln -s %{_bindir}/loadkeys %{buildroot}/bin
ln -s %{_bindir}/loadunimap %{buildroot}/bin
ln -s %{_bindir}/mapscrn %{buildroot}/bin
ln -s %{_bindir}/openvt %{buildroot}/bin
ln -s %{_bindir}/outpsfheader %{buildroot}/bin
ln -s %{_bindir}/psfaddtable %{buildroot}/bin
ln -s %{_bindir}/psfgettable %{buildroot}/bin
ln -s %{_bindir}/psfstriptable %{buildroot}/bin
ln -s %{_bindir}/psfxtable %{buildroot}/bin
ln -s %{_bindir}/screendump %{buildroot}/bin
ln -s %{_bindir}/setfont %{buildroot}/bin
ln -s %{_bindir}/setleds %{buildroot}/bin
ln -s %{_bindir}/setlogcons %{buildroot}/bin
ln -s %{_bindir}/setmetamode %{buildroot}/bin
ln -s %{_bindir}/setpalette %{buildroot}/bin
ln -s %{_bindir}/setvesablank %{buildroot}/bin
ln -s %{_bindir}/setvtrgb %{buildroot}/bin
ln -s %{_bindir}/showconsolefont %{buildroot}/bin
ln -s %{_bindir}/showkey %{buildroot}/bin
ln -s %{_bindir}/spawn_console %{buildroot}/bin
ln -s %{_bindir}/spawn_login %{buildroot}/bin
ln -s %{_bindir}/testutf8 %{buildroot}/bin
ln -s %{_bindir}/unicode_start %{buildroot}/bin
ln -s %{_bindir}/unicode_stop %{buildroot}/bin
ln -s %{_sbindir}/fbtest %{buildroot}/sbin
%ifnarch %sparc m68k
ln -s %{_bindir}/getkeycodes %{buildroot}/bin
ln -s %{_bindir}/setkeycodes %{buildroot}/bin
%endif
%ifarch %ix86
ln -s %{_bindir}/resizecons %{buildroot}/bin
%endif
%ifarch x86_64
ln -s %{_bindir}/resizecons %{buildroot}/bin
%endif
#EndUsrMerge
%find_lang %{name}
%post
%{fillup_only -n console}
%{fillup_only -n keyboard}
#echo "Please read the docu about the new COMPOSETABLE rc.config variable."
#echo "See /etc/sysconfig/console, /etc/sysconfig/keyboard"
#echo "and {_docdir}/kbd/README.SuSE."
%files -f %{name}.lang
%defattr(-,root,root)
#config(noreplace) /etc/sysconfig/console
%doc %{_defaultdocdir}/kbd
#doc COPYING CHANGES README CREDITS
%{_localstatedir}/adm/fillup-templates/sysconfig.console
%{_localstatedir}/adm/fillup-templates/sysconfig.keyboard
%{kbd}
#UsrMerge
/sbin/fbtest
/bin/chvt
/bin/openvt
/bin/deallocvt
/bin/dumpkeys
%ifnarch %sparc m68k
/bin/getkeycodes
/bin/setkeycodes
%endif
/bin/fgconsole
/bin/kbd_mode
/bin/kbdinfo
/bin/loadkeys
/bin/loadunimap
/bin/mapscrn
/bin/psfaddtable
/bin/psfgettable
/bin/psfstriptable
/bin/psfxtable
%ifarch %ix86
/bin/resizecons
%endif
%ifarch x86_64
/bin/resizecons
%endif
/bin/setfont
/bin/setleds
/bin/setmetamode
/bin/setvtrgb
/bin/showconsolefont
/bin/showkey
/bin/unicode_start
/bin/unicode_stop
/bin/kbdrate
/bin/testutf8
/bin/guess_encoding
/bin/clrunimap
/bin/getunimap
/bin/outpsfheader
/bin/screendump
/bin/setlogcons
/bin/setpalette
/bin/setvesablank
/bin/spawn_console
/bin/spawn_login
#EndUsrMerge
%{_sbindir}/fbtest
%{_bindir}/chvt
%{_bindir}/openvt
%{_bindir}/deallocvt
%{_bindir}/dumpkeys
%ifnarch %sparc m68k
%{_bindir}/getkeycodes
%{_bindir}/setkeycodes
%endif
%{_bindir}/fgconsole
%{_bindir}/kbd_mode
%{_bindir}/kbdinfo
%{_bindir}/loadkeys
%{_bindir}/loadunimap
%{_bindir}/mapscrn
%{_bindir}/psfaddtable
%{_bindir}/psfgettable
%{_bindir}/psfstriptable
%{_bindir}/psfxtable
%ifarch %ix86
%{_bindir}/resizecons
%endif
%ifarch x86_64
%{_bindir}/resizecons
%endif
%{_bindir}/setfont
%{_bindir}/setleds
%{_bindir}/setmetamode
%{_bindir}/setvtrgb
%{_bindir}/showconsolefont
%{_bindir}/showkey
%{_bindir}/unicode_start
%{_bindir}/unicode_stop
%{_bindir}/kbdrate
%{_bindir}/testutf8
%{_bindir}/guess_encoding
%{_bindir}/kbd
%{_bindir}/clrunimap
%{_bindir}/getunimap
%{_bindir}/outpsfheader
%{_bindir}/screendump
%{_bindir}/setlogcons
%{_bindir}/setpalette
%{_bindir}/setvesablank
%{_bindir}/spawn_console
%{_bindir}/spawn_login
%doc %{_mandir}/man1/*
%doc %{_mandir}/man5/keymaps.5.gz
%ifnarch %sparc m68k
%doc %{_mandir}/man8/getkeycodes.8.gz
%doc %{_mandir}/man8/setkeycodes.8.gz
%endif
%doc %{_mandir}/man8/showconsolefont.8.gz
%doc %{_mandir}/man8/loadunimap.8.gz
%doc %{_mandir}/man8/mapscrn.8.gz
%ifarch %ix86
%doc %{_mandir}/man8/resizecons.8.gz
%endif
%ifarch x86_64
%doc %{_mandir}/man8/resizecons.8.gz
%endif
%doc %{_mandir}/man8/setfont.8.gz
%doc %{_mandir}/man8/fbtest.8.gz
%doc %{_mandir}/man8/kbdrate.8.gz
%doc %{_mandir}/man8/clrunimap.8.gz
%doc %{_mandir}/man8/getunimap.8.gz
%doc %{_mandir}/man8/mk_modmap.8.gz
%doc %{_mandir}/man8/setlogcons.8.gz
%doc %{_mandir}/man8/setvesablank.8.gz
%doc %{_mandir}/man8/setvtrgb.8.gz
%doc %{_mandir}/man8/vcstime.8.gz
%changelog
++++++ README.SuSE ++++++
Release info on the kbd utils
=============================
Fri Feb 27 18:39:59 CET 2004, jw
SuSE upgraded the kbd utils to 1.12 for the release of SuSE Linux 9.1.
The choose-tty patch has been accepted upstream. Note that we used -c
for selecting the console device, now it is -C
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
SuSE upgraded the kbd utils to 1.08 for the release of SuSE Linux 9.0.
Some of our patches to 1.06 have been integrated.
Most of the changes from us to 1.03wip (SL 7.1 and 7.0) and 1.05 (SL 7.2,
7.3) have been incorporated, so we can finally go with an almost unpatched
kbd again.
Since 1.03a, there is support for fonts that have a width larger than
8 pixels. This will only work with framebuffer support on most architectures
though. Some fonts with 12x22 size are available as well, check
/usr/share/kbd/consolefonts/.
You probably want to use higher resolutions with such a large font, like
1152x858. If you use fbset don't forget to set -vyres to a large value,
otherwise your framebuffer's speed will be lower than it could.
setfont has been patched to allow specifing the tty with -c where the
changes should be applied to. This is used in the setup scripts.
Your SuSE team <feedback(a)suse.de>
New handling of composition of characters
=========================================
Most of the fonts have much more characters than you can reach directly
through the keyboard. To access all of them you may use showconsolefont,
deduce the decimal code and enter it by holding down <alt> and entering
the code via the keypad. There's a much better way, though:
Most characters may be entered via composition. Many characters are just
consisting of a standard character with some sort of accent or change.
Such characters can be composed by composition. Just press the <compose>
key, let it go again, enter the accent and then the letter.
Some examples: (Assuming Iso-Latin-1/9 character set:)
<compose> " a => �
<compose> , c => �
<compose> | S => $
Support for composition is unfortunately not contained in most keymaps.
Most lack two things:
(a) The <compose> key is not mapped
(b) The compose tables are not included
In previous versions of SuSE Linux, some keytables have been hacked to
include support for the <compose> key and to include compose tables.
This has now been replaced by a more general solution:
The kbd setup scripts uses another /etc/sysconfig/keyboard variable to
determine which compose tables should be loaded and whether the compose key
should be mapped: COMPOSETABLE.
For all words listed there, loadkeys will be called with the argument
compose.word. (Except for clear which sets a flag to clear the compose
table.) Look at the compose.* files in /usr/share/kbd/keymaps/include/:
(a) You find there two files for having the <compose> key mapped.
(b) You find there compose tables which are suitable for different
character sets.
ad (a): winkeys: The compose key will be mapped on the W*n menu key
shiftctrl: The compose key will be mapped to Shift Ctrl.
You can use both, if you like.
ad (b): latin, latinX, latin1.add, 8859_X: Contains the compose
combinations suitable for the respective character set.
Many people will want to use latin1 or latin1.add. Just
using latin is also sort of an acceptable compromise for
many Latin character sets.
YOU MAY ONLY USE ONE OF THOSE.
If you want the combination of more than one table, you
have to create a file which includes what you want.
Example: (/etc/sysconfig/keyboard)
COMPOSETABLE="clear winkeys shiftctrl latin1.add"
Please keep in mind, that all these settings only affect the console,
i.e. text mode.
Your SuSE team <feedback(a)suse.de>
++++++ convert-kbd-mac.sed ++++++
# vim: syntax=sed
s#keycode[[:blank:]]*122[[:blank:]]*=[[:blank:]]*#keycode 59 = #;t 1;
s#keycode[[:blank:]]*121[[:blank:]]*=[[:blank:]]*#keycode 109 = #;t 1;
s#keycode[[:blank:]]*120[[:blank:]]*=[[:blank:]]*#keycode 60 = #;t 1;
s#keycode[[:blank:]]*119[[:blank:]]*=[[:blank:]]*#keycode 107 = #;t 1;
s#keycode[[:blank:]]*118[[:blank:]]*=[[:blank:]]*#keycode 62 = #;t 1;
s#keycode[[:blank:]]*117[[:blank:]]*=[[:blank:]]*#keycode 111 = #;t 1;
s#keycode[[:blank:]]*116[[:blank:]]*=[[:blank:]]*#keycode 104 = #;t 1;
s#keycode[[:blank:]]*115[[:blank:]]*=[[:blank:]]*#keycode 102 = #;t 1;
s#keycode[[:blank:]]*114[[:blank:]]*=[[:blank:]]*#keycode 110 = #;t 1;
s#keycode[[:blank:]]*113[[:blank:]]*=[[:blank:]]*#keycode 101 = #;t 1;
s#keycode[[:blank:]]*111[[:blank:]]*=[[:blank:]]*#keycode 88 = #;t 1;
s#keycode[[:blank:]]*109[[:blank:]]*=[[:blank:]]*#keycode 68 = #;t 1;
s#keycode[[:blank:]]*107[[:blank:]]*=[[:blank:]]*#keycode 70 = #;t 1;
s#keycode[[:blank:]]*103[[:blank:]]*=[[:blank:]]*#keycode 87 = #;t 1;
s#keycode[[:blank:]]*101[[:blank:]]*=[[:blank:]]*#keycode 67 = #;t 1;
s#keycode[[:blank:]]*100[[:blank:]]*=[[:blank:]]*#keycode 66 = #;t 1;
s#keycode[[:blank:]]*99[[:blank:]]*=[[:blank:]]*#keycode 61 = #;t 1;
s#keycode[[:blank:]]*98[[:blank:]]*=[[:blank:]]*#keycode 65 = #;t 1;
s#keycode[[:blank:]]*97[[:blank:]]*=[[:blank:]]*#keycode 64 = #;t 1;
s#keycode[[:blank:]]*96[[:blank:]]*=[[:blank:]]*#keycode 63 = #;t 1;
s#keycode[[:blank:]]*92[[:blank:]]*=[[:blank:]]*#keycode 73 = #;t 1;
s#keycode[[:blank:]]*91[[:blank:]]*=[[:blank:]]*#keycode 72 = #;t 1;
s#keycode[[:blank:]]*89[[:blank:]]*=[[:blank:]]*#keycode 71 = #;t 1;
s#keycode[[:blank:]]*88[[:blank:]]*=[[:blank:]]*#keycode 77 = #;t 1;
s#keycode[[:blank:]]*87[[:blank:]]*=[[:blank:]]*#keycode 76 = #;t 1;
s#keycode[[:blank:]]*86[[:blank:]]*=[[:blank:]]*#keycode 75 = #;t 1;
s#keycode[[:blank:]]*85[[:blank:]]*=[[:blank:]]*#keycode 81 = #;t 1;
s#keycode[[:blank:]]*84[[:blank:]]*=[[:blank:]]*#keycode 80 = #;t 1;
s#keycode[[:blank:]]*83[[:blank:]]*=[[:blank:]]*#keycode 79 = #;t 1;
s#keycode[[:blank:]]*82[[:blank:]]*=[[:blank:]]*#keycode 82 = #;t 1;
s#keycode[[:blank:]]*81[[:blank:]]*=[[:blank:]]*#keycode 117 = #;t 1;
s#keycode[[:blank:]]*78[[:blank:]]*=[[:blank:]]*#keycode 74 = #;t 1;
s#keycode[[:blank:]]*76[[:blank:]]*=[[:blank:]]*#keycode 96 = #;t 1;
s#keycode[[:blank:]]*75[[:blank:]]*=[[:blank:]]*#keycode 98 = #;t 1;
s#keycode[[:blank:]]*71[[:blank:]]*=[[:blank:]]*#keycode 69 = #;t 1;
s#keycode[[:blank:]]*69[[:blank:]]*=[[:blank:]]*#keycode 78 = #;t 1;
s#keycode[[:blank:]]*67[[:blank:]]*=[[:blank:]]*#keycode 55 = #;t 1;
s#keycode[[:blank:]]*65[[:blank:]]*=[[:blank:]]*#keycode 83 = #;t 1;
s#keycode[[:blank:]]*62[[:blank:]]*=[[:blank:]]*#keycode 103 = #;t 1;
s#keycode[[:blank:]]*61[[:blank:]]*=[[:blank:]]*#keycode 108 = #;t 1;
s#keycode[[:blank:]]*60[[:blank:]]*=[[:blank:]]*#keycode 106 = #;t 1;
s#keycode[[:blank:]]*59[[:blank:]]*=[[:blank:]]*#keycode 105 = #;t 1;
s#keycode[[:blank:]]*58[[:blank:]]*=[[:blank:]]*#keycode 56 = #;t 1;
s#keycode[[:blank:]]*57[[:blank:]]*=[[:blank:]]*#keycode 58 = #;t 1;
s#keycode[[:blank:]]*56[[:blank:]]*=[[:blank:]]*#keycode 42 = #;t 1;
s#keycode[[:blank:]]*55[[:blank:]]*=[[:blank:]]*#keycode 125 = #;t 1;
s#keycode[[:blank:]]*54[[:blank:]]*=[[:blank:]]*#keycode 29 = #;t 1;
s#keycode[[:blank:]]*53[[:blank:]]*=[[:blank:]]*#keycode 1 = #;t 1;
s#keycode[[:blank:]]*51[[:blank:]]*=[[:blank:]]*#keycode 14 = #;t 1;
s#keycode[[:blank:]]*50[[:blank:]]*=[[:blank:]]*#keycode 41 = #;t 1;
s#keycode[[:blank:]]*49[[:blank:]]*=[[:blank:]]*#keycode 57 = #;t 1;
s#keycode[[:blank:]]*48[[:blank:]]*=[[:blank:]]*#keycode 15 = #;t 1;
s#keycode[[:blank:]]*47[[:blank:]]*=[[:blank:]]*#keycode 52 = #;t 1;
s#keycode[[:blank:]]*46[[:blank:]]*=[[:blank:]]*#keycode 50 = #;t 1;
s#keycode[[:blank:]]*45[[:blank:]]*=[[:blank:]]*#keycode 49 = #;t 1;
s#keycode[[:blank:]]*44[[:blank:]]*=[[:blank:]]*#keycode 53 = #;t 1;
s#keycode[[:blank:]]*43[[:blank:]]*=[[:blank:]]*#keycode 51 = #;t 1;
s#keycode[[:blank:]]*42[[:blank:]]*=[[:blank:]]*#keycode 43 = #;t 1;
s#keycode[[:blank:]]*41[[:blank:]]*=[[:blank:]]*#keycode 39 = #;t 1;
s#keycode[[:blank:]]*40[[:blank:]]*=[[:blank:]]*#keycode 37 = #;t 1;
s#keycode[[:blank:]]*39[[:blank:]]*=[[:blank:]]*#keycode 40 = #;t 1;
s#keycode[[:blank:]]*38[[:blank:]]*=[[:blank:]]*#keycode 36 = #;t 1;
s#keycode[[:blank:]]*37[[:blank:]]*=[[:blank:]]*#keycode 38 = #;t 1;
s#keycode[[:blank:]]*36[[:blank:]]*=[[:blank:]]*#keycode 28 = #;t 1;
s#keycode[[:blank:]]*35[[:blank:]]*=[[:blank:]]*#keycode 25 = #;t 1;
s#keycode[[:blank:]]*34[[:blank:]]*=[[:blank:]]*#keycode 23 = #;t 1;
s#keycode[[:blank:]]*33[[:blank:]]*=[[:blank:]]*#keycode 26 = #;t 1;
s#keycode[[:blank:]]*32[[:blank:]]*=[[:blank:]]*#keycode 22 = #;t 1;
s#keycode[[:blank:]]*31[[:blank:]]*=[[:blank:]]*#keycode 24 = #;t 1;
s#keycode[[:blank:]]*30[[:blank:]]*=[[:blank:]]*#keycode 27 = #;t 1;
s#keycode[[:blank:]]*29[[:blank:]]*=[[:blank:]]*#keycode 11 = #;t 1;
s#keycode[[:blank:]]*28[[:blank:]]*=[[:blank:]]*#keycode 9 = #;t 1;
s#keycode[[:blank:]]*27[[:blank:]]*=[[:blank:]]*#keycode 12 = #;t 1;
s#keycode[[:blank:]]*26[[:blank:]]*=[[:blank:]]*#keycode 8 = #;t 1;
s#keycode[[:blank:]]*25[[:blank:]]*=[[:blank:]]*#keycode 10 = #;t 1;
s#keycode[[:blank:]]*24[[:blank:]]*=[[:blank:]]*#keycode 13 = #;t 1;
s#keycode[[:blank:]]*23[[:blank:]]*=[[:blank:]]*#keycode 6 = #;t 1;
s#keycode[[:blank:]]*22[[:blank:]]*=[[:blank:]]*#keycode 7 = #;t 1;
s#keycode[[:blank:]]*21[[:blank:]]*=[[:blank:]]*#keycode 5 = #;t 1;
s#keycode[[:blank:]]*20[[:blank:]]*=[[:blank:]]*#keycode 4 = #;t 1;
s#keycode[[:blank:]]*19[[:blank:]]*=[[:blank:]]*#keycode 3 = #;t 1;
s#keycode[[:blank:]]*18[[:blank:]]*=[[:blank:]]*#keycode 2 = #;t 1;
s#keycode[[:blank:]]*17[[:blank:]]*=[[:blank:]]*#keycode 20 = #;t 1;
s#keycode[[:blank:]]*16[[:blank:]]*=[[:blank:]]*#keycode 21 = #;t 1;
s#keycode[[:blank:]]*15[[:blank:]]*=[[:blank:]]*#keycode 19 = #;t 1;
s#keycode[[:blank:]]*14[[:blank:]]*=[[:blank:]]*#keycode 18 = #;t 1;
s#keycode[[:blank:]]*13[[:blank:]]*=[[:blank:]]*#keycode 17 = #;t 1;
s#keycode[[:blank:]]*12[[:blank:]]*=[[:blank:]]*#keycode 16 = #;t 1;
s#keycode[[:blank:]]*11[[:blank:]]*=[[:blank:]]*#keycode 48 = #;t 1;
s#keycode[[:blank:]]*10[[:blank:]]*=[[:blank:]]*#keycode 86 = #;t 1;
s#keycode[[:blank:]]*9[[:blank:]]*=[[:blank:]]*#keycode 47 = #;t 1;
s#keycode[[:blank:]]*8[[:blank:]]*=[[:blank:]]*#keycode 46 = #;t 1;
s#keycode[[:blank:]]*7[[:blank:]]*=[[:blank:]]*#keycode 45 = #;t 1;
s#keycode[[:blank:]]*6[[:blank:]]*=[[:blank:]]*#keycode 44 = #;t 1;
s#keycode[[:blank:]]*5[[:blank:]]*=[[:blank:]]*#keycode 34 = #;t 1;
s#keycode[[:blank:]]*4[[:blank:]]*=[[:blank:]]*#keycode 35 = #;t 1;
s#keycode[[:blank:]]*3[[:blank:]]*=[[:blank:]]*#keycode 33 = #;t 1;
s#keycode[[:blank:]]*2[[:blank:]]*=[[:blank:]]*#keycode 32 = #;t 1;
s#keycode[[:blank:]]*1[[:blank:]]*=[[:blank:]]*#keycode 31 = #;t 1;
s#keycode[[:blank:]]*0[[:blank:]]*=[[:blank:]]*#keycode 30 = #;t 1;
:1;
++++++ fbtest.8 ++++++
'\" -*- coding: UTF-8 -*-
.\"
.\" Copyright 2008 Werner Fink, 2008 SUSE LINUX Products GmbH, Germany.
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
.TH FBTEST 8 "May 6, 2008" "0.42" "International Support"
.SH NAME
fbtest \- test if a virtual console is mapped to a frame buffer devive
.SH SYNOPSIS
.B fbtest
.RB [ \-f \ \fI<fb_device>\fR]
.RB [ \-C \ \fI<vc_device>\fR]
.br
.B fbtest
.B \-\-help
.SH DESCRIPTION
The program
.BR fbtest (8)
is used to test if a virtual console, e.g.
.I /dev/tty1
is mapped on a frame buffer device.
.SH OPTIONS
.TP
.BR \-f ,\ \-\-fb = \fI<fb_device>\fR
This option specifies an other frame buffer device than
the default
.IR /dev/fb0 .
.TP
.BR \-C ,\ \-\-vc = \fI<vc_device>\fR
This option specifies an other virtual console than the default
.IR /dev/tty1 .
.SH EXIT STATUS
.IP \fB0\fR 5
The virtual console is mapped onto a frame buffer device.
.IP \fB1\fR 5
The virtual console is
.B not
mapped onto a frame buffer device.
.PP
.SH FILES
.I /dev/fb0
.br
.I /dev/tty<1...63>
.SH SEE ALSO
.BR fbset (8).
++++++ fbtest.c ++++++
/*
* fbtest(.c)
*
* Copyright 2008 Werner Fink, 2008 SUSE LINUX Products GmbH, Germany.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <fcntl.h>
#include <getopt.h>
#include <unistd.h>
#include <linux/fb.h>
static struct option options[] = {
{ "fb", required_argument, 0, 'f'},
{ "vc", required_argument, 0, 'C'},
{ "help", no_argument, 0, 'h'},
{ (const char*)0, 0, (int*)0, 0}
};
int main(int argc, char * argv[])
{
struct fb_con2fbmap map = {1, -1};
const char *base = basename(argv[0]);
const char * fb = (char*)0;
const char * vc = (char*)0;
struct stat st;
int c, fd;
opterr = 0;
while ((c = getopt_long(argc, argv, "hf:C:", options, (int *)0)) != -1) {
switch (c) {
case 'f':
fb = optarg;
break;
case 'C':
vc = optarg;
break;
case 'h':
fprintf(stderr, "%s: Usage:\n %s [-f <fb_device>] [-C <vc_device>]\n", base, base);
fprintf(stderr, "Valid options are:\n");
fprintf(stderr, " -f <fb_device> The frame buffer device (default /dev/fb0)\n");
fprintf(stderr, " -C <vc_device> The virtual console device (default /dev/tty1)\n");
return 0;
case '?':
fprintf(stdout, "%s: Invalid option for help use:\n %s --help\n", base, base);
return 1;
break;
default:
break;
}
}
if (fb == (char*)0) {
fb = "/dev/fb/0";
if (stat(fb, &st) < 0) {
if (errno != ENOENT && errno != ENOTDIR) {
fprintf(stderr, "%s: %s: %m\n", base, fb);
return 1;
}
fb = "/dev/fb0";
if (stat(fb, &st) < 0) {
fprintf(stderr, "%s: %s: %m\n", base, fb);
return 1;
}
}
}
if (vc == (char*)0)
vc = "/dev/tty1";
if (stat(vc, &st) < 0) {
fprintf(stderr, "%s: %s: %m\n", base, vc);
return 1;
}
if (major(st.st_rdev) != (dev_t)4) {
errno = ECANCELED;
fprintf(stderr, "%s: %s: %m\n", base, vc);
return 1;
}
if ((fd = open(fb, O_RDONLY|O_NOCTTY)) < 0) {
if (errno != ENODEV)
fprintf(stderr, "%s: %s: %m\n", base, fb);
return 1;
}
map.console = (typeof(map.console))minor(st.st_rdev);
map.framebuffer = (typeof(map.framebuffer))-1;
if (ioctl(fd, FBIOGET_CON2FBMAP, &map) < 0) {
fprintf(stderr, "%s: %s: %m\n", base, fb);
return 1;
}
return map.framebuffer > FB_MAX;
}
++++++ guess_encoding.pl ++++++
#! /usr/bin/perl -w
#
# encoding.pl -- guess charset encoding
#
# (C) 2007, jw(a)suse.de, Novell Inc.
# Distribute under GPLv2
#
# 2006-12-05, jw, V0.1 -- only framework.
# 2007-01-23, jw, V0.2 -- utf8 and latin1 for ttys.
# 2007-02-08, jw, V0.3 -- utf8 and latin1 for files.
use Data::Dumper;
use POSIX;
use IO::Handle;
my $version = '0.3';
my $verbose = 0;
my $stdin = 0;
while (defined (my $arg = shift))
{
if ($arg !~ m{^-.}) { unshift @ARGV, $arg; last }
elsif ($arg =~ m{^(-h|--help|-\?)}) { exit usage(); }
elsif ($arg =~ m{^--?v}) { $verbose++; }
elsif ($arg =~ m{^--?q}) { $verbose = 0; }
else { exit usage("unknown option $arg"); }
}
if (!@ARGV and -t STDIN and -t STDERR)
{
my $r = probe_tty();
print "$r\n";
exit 0;
}
for my $file (@ARGV)
{
my $fd;
open $fd, ($file eq '-') ? '<&=STDIN' : "<$file" or die "open($file) failed: $!";
probe_file($fd, $file);
close $fd;
}
exit 0;
########################################################################
sub usage
{
my ($msg) = @_;
print STDERR qq{$0 V$version usage:
encoding [options] [file]
valid options are:
-h Print this online help
-v Be more verbose. Default $verbose
-q Be quiet
- Read from stdin.
Without any parameters, the terminal (if any) is probed,
using stdin and stderr.
Files are searched for characters outside the ascii range.
Those characters are tested for their likeliness in
various encodings.
Thus an illegal mix of encodings can be detected.
If not verbose, only one single word is printed to stdout:
The name of the most likely encoding.
};
print STDERR "\nERROR: $msg\n" if $msg;
return 0;
}
sub sysread_tout
{
my ($FILE, $len, $tout) = @_;
my $r = '';
while ($len > 0)
{
my $rout;
my $rin = '';
vec($rin,fileno($FILE), 1) = 1;
my ($n, $t) = select($rout = $rin, undef, undef, $tout);
$tout = $t if defined $t;
last unless $n;
my $buf = '';
last if sysread($FILE, $buf, 1) <= 0;
$r .= $buf;
$len--;
}
return $r;
}
sub tty_raw
{
my ($FILE) = @_;
my $t = POSIX::Termios->new;
my $o = POSIX::Termios->new;
$t->getattr(fileno $FILE);
$o->getattr(fileno $FILE);
$t->setlflag(0); # -echo, -icanon
$t->setcc(POSIX::VMIN, 1);
$t->setcc(POSIX::VTIME, 0);
tty_set($FILE, $t);
return $o;
}
sub tty_set
{
my ($FILE, $t) = @_;
$t->setattr(fileno $FILE, POSIX::TCSANOW) or die "TCSANOW failed: $!\n";
}
sub get_cursor_pos
{
my ($hint) = @_;
# 1 may be an ansi term?
# testing device status report 6, as seen in vttest.
my $t = tty_raw(STDIN);
while (length(sysread_tout(STDIN, 1, 0.1))) { }
syswrite(STDOUT, "\33[6n", 4);
my $r = sysread_tout(STDIN, 10, 0.1);
tty_set(STDIN, $t);
return { x => $2 - 1, y => $1 - 1, hint => 'DC6' } if $r =~ m{^\33\[(\d+);(\d+)R};
return undef;
}
sub probe_tty
{
#
# we can use STDIN and STDERR.
# 0) first, see, if the terminal can report cursor positions.
syswrite(STDOUT, "\r", 1);
my $o = get_cursor_pos();
print ", x=$o->{x}\n" if $verbose > 1;
# - if not, abort.
die "get_cursor_pos failed.\n" unless defined $o;
# - if it can, store the current position
if ($o->{x} != 0)
{
warn "strace (or other) output interferes or\n" if $o->{x} >= 20;
die "carriage return does not work.\n";
}
# 1) write a single byte ascii character, 'X' and check,
# if it advances by one.
syswrite(STDOUT, "\rX", 2);
my $p = get_cursor_pos($o->{hint});
print ", x=$p->{x}\n" if $verbose;
# - If not, it is probably in microsoft-multibyte encoding,
# and requires '\0' prefixing. check this, report and abort.
die "multi-byte mode" if $p->{x} != 1;
# 2)Then try non-ascii characters, e.g. a-umlaut.
# 2a) send its latin1 code, and see what happens,
syswrite(STDOUT, "\r1\34434", 5); # 1, a-umlaut-latin1, 3, 4
$p = get_cursor_pos($o->{hint});
print ", x=$p->{x}\n" if $verbose;
die "no report" unless defined $p;
# - no advance indicates that the terminal is not in latin1 mode
# or a lousy font is used.
# - advance by 2 indicates a defect in the tty-emulator.
die "latin1 a-umlaut caused confusion." if $p->{x} > 4 or $p->{x} < 2;
# in utf8, our \344 consumes another char, thus the '3' is not printed.
# we don't know what the font does then.
my $maybe = 'utf8' if $p->{x} == 2 or $p->{x} == 3;
$maybe = 'latin1' if $p->{x} == 4;
print "maybe $maybe\n" if $verbose;
# - advance by 1 says nothing, may be latin1.
# 2b) send its utf8 code.
syswrite(STDOUT, "\r1\303\24434", 6); # 1, a-umlaut-utf8, 3, 4
$p = get_cursor_pos($o->{hint});
print ", x=$p->{x}\n" if $verbose;
die "no report" unless defined $p;
# - no advance indicates that a lousy font is used.
# - advance by one indicates that the terminal is in utf8 mode.
# - advance by two indicates that the terminal is in latin1 mode.
syswrite(STDOUT, "\r \r", 8) unless $verbose; # clear scratch area
if ($p->{x} == 4)
{
return 'utf8' if $maybe eq 'utf8';
return 'possibly utf8';
}
return 'latin1' if $maybe eq 'latin1';
return 'possibly latin1';
}
##
## if utf8_valid is positive, then it can only be utf-8.
## (if also utf8_invalid and/or latin1_typ are positive, then it is a mixture)
## if only utf8_invalid or latin1_typ are positive, then it is latin1.
## if all 3 are zero, it is plain ascii.
##
## FIXME: should take an optional length parameter to limit runtime.
##
sub probe_file
{
my ($fd, $name) = @_;
print "probing $name\n" if $verbose;
my %typ_latin = map { $_ => 1 } qw(169 171 174 176 177 178 179 181
185 187 191 192 193 194 195 196 197 199 200 201 202 203 204 205 206 207 208 209
210 211 212 213 214 215 216 217 218 219 220
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
246 249 250 251 252 253 189 164);
# when running incremental, $fd is probably not seekable.
# so we need to buffer characters to be re-read after a lookahead.
# http://de.wikipedia.org/wiki/UTF-8#Kodierung
my $utf8_valid = 0; # parser happy.
my $utf8_invalid = 0; # something wrong.
my $latin1_typ = 0; # valid chars in 128..255 range followed by a ascii byte
my $ascii = 0; # char in 10..127 range
my $utf8_size = 0; # how many bytes belong to this utf-8 char.
my $utf8_len = 0; # how many more bytes belong to this utf-8 char.
my $utf8_start = 0; # ord of utf_8 start char.
while (defined(my $c = getc($fd)))
{
my $v = ord($c);
if ($utf8_len)
{
if (($v & 0xc0) == 0x80) # 10xx xxxx
{
# printf "0 %02x\n", $v;
unless (--$utf8_len)
{
$utf8_valid++;
$utf8_size = 0;
}
}
else
{
# printf "0x %02x %02x '$c' $utf8_size-$utf8_len\n", $utf8_start, $v;
if (($utf8_size - $utf8_len) == 1 and $typ_latin{$utf8_start})
{
if ($v > 7 && $v < 128)
{
$latin1_typ++;
$ascii++;
}
elsif ($typ_latin{$v})
{
$latin1_typ += 2;
}
else
{
$utf8_invalid++;
}
}
else
{
$utf8_invalid++;
}
$utf8_len = $utf8_size = $utf8_start = 0;
}
}
elsif ($v > 7 && $v < 128)
{
$ascii++;
next;
}
elsif (($v & 0xe0) == 0xc0) # 110x xxxx
{
$utf8_start = $v;
$utf8_size = 2;
$utf8_len = 1;
# printf "1 %02x\n", $v;
}
elsif (($v & 0xf0) == 0xe0) # 1110 xxxx
{
$utf8_start = $v;
$utf8_size = 3;
$utf8_len = 2;
# printf "2 %02x\n", $v;
}
elsif (($v & 0xf8) == 0xf0) # 1111 0xxx
{
$utf8_start = $v;
$utf8_size = 4;
$utf8_len = 3;
# printf "3 %02x\n", $v;
}
elsif ($typ_latin{$v})
{
$latin1_typ++;
}
else
{
$utf8_invalid++;
# printf "x %02x\n", $v;
}
}
print "$name: utf8_valid=$utf8_valid utf8_invalid=$utf8_invalid latin1_typ=$latin1_typ ascii=$ascii\n";
}
++++++ kbd-1.15.2-chvt-userwait.patch ++++++
chvt: add --userwait option
From: Daniel Drake <d.drake(a)mmm.com>
At http://bugs.gentoo.org/159729 we see chvt hanging in some scenario's. As
the solution to this is not immediately obvious, add a --userwait option
which repeatedly tries changing the terminal until the change has taken place.
Index: kbd-1.14.1/man/man1/chvt.1
===================================================================
--- kbd-1.14.1.orig/man/man1/chvt.1
+++ kbd-1.14.1/man/man1/chvt.1
@@ -4,6 +4,9 @@
chvt \- change foreground virtual terminal
.SH SYNOPSIS
.B chvt
+[
+.B --userwait
+]
.I N
.SH DESCRIPTION
The command
@@ -21,3 +24,10 @@ The key combination
(with
.I N
in the range 1-12) usually has a similar effect.
+.LP
+The
+.B --userwait
+option causes the system to loop in userspace waiting for the new terminal
+to become active, as opposed to the kernel-side
+.I VT_WAITACTIVE
+ioctl.
Index: kbd-1.14.1/src/chvt.c
===================================================================
--- kbd-1.14.1.orig/src/chvt.c
+++ kbd-1.14.1/src/chvt.c
@@ -7,13 +7,43 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <getopt.h>
+#include <unistd.h>
#include "getfd.h"
#include "nls.h"
#include "version.h"
+#define USER_WAIT_SLEEP_US 100000
+#define USER_WAIT_MAX_ITERATIONS 50
+
+static int fd;
+
+static void chvt(int num)
+{
+ if (ioctl(fd,VT_ACTIVATE,num)) {
+ perror("VT_ACTIVATE");
+ exit(1);
+ }
+}
+
+static int fgconsole(void)
+{
+ struct vt_stat vtstat;
+ if (ioctl(fd, VT_GETSTATE, &vtstat)) {
+ perror("VT_GETSTATE");
+ exit(1);
+ }
+ return vtstat.v_active;
+}
+
int
main(int argc, char *argv[]) {
- int fd, num;
+ int c, num;
+ int user_wait = 0;
+ const struct option long_opts[] = {
+ { "version", no_argument, NULL, 'V' },
+ { "userwait", no_argument, NULL, 'u' },
+ };
set_progname(argv[0]);
@@ -21,22 +51,46 @@ main(int argc, char *argv[]) {
bindtextdomain(PACKAGE_NAME, LOCALEDIR);
textdomain(PACKAGE_NAME);
- if (argc == 2 && !strcmp(argv[1], "-V"))
- print_version_and_exit();
+ while ((c = getopt_long(argc, argv, "Vu", long_opts, NULL)) != -1) {
+ switch (c) {
+ case 'V':
+ print_version_and_exit();
+ case 'u':
+ user_wait = 1;
+ break;
+ }
+ }
- if (argc != 2) {
- fprintf(stderr, _("usage: chvt N\n"));
+ if (optind >= argc) {
+ fprintf(stderr, _("usage: chvt [--userwait] N\n"));
exit(1);
}
+
fd = getfd(NULL);
- num = atoi(argv[1]);
- if (ioctl(fd,VT_ACTIVATE,num)) {
- perror("chvt: VT_ACTIVATE");
- exit(1);
- }
- if (ioctl(fd,VT_WAITACTIVE,num)) {
- perror("VT_WAITACTIVE");
- exit(1);
+ num = atoi(argv[optind++]);
+ chvt(num);
+
+ if (user_wait) {
+ int active = 0;
+ int i;
+ for (i = 0; i < USER_WAIT_MAX_ITERATIONS; i++) {
+ if (fgconsole() == num) {
+ active = 1;
+ break;
+ }
+
+ chvt(num);
+ usleep(USER_WAIT_SLEEP_US);
+ }
+ if (!active) {
+ fprintf(stderr, _("VT change timed out\n"));
+ exit(1);
+ }
+ } else {
+ if (ioctl(fd,VT_WAITACTIVE,num)) {
+ perror("VT_WAITACTIVE");
+ exit(1);
+ }
}
exit(0);
}
++++++ kbd-1.15.2-docu-X11R6-xorg.patch ++++++
--- kbd-1.12/doc/kbd.FAQ-15.html.orig 2003-09-24 23:01:40.000000000 +0200
+++ kbd-1.12/doc/kbd.FAQ-15.html 2006-08-11 12:10:06.000000000 +0200
@@ -188,7 +188,7 @@
<P>XFree86 also supports Slow Keys, Repeat Keys, Bounce Keys and an
audible bell. <CODE>xkbcomp</CODE> can be used to generate a <CODE>.xkm</CODE> file
to enable these. The appropriate <CODE>xkbcomp</CODE> commands are listed in
-<CODE>/usr/X11R6/lib/X11/xkb/compat/accessx</CODE>.
+<CODE>/usr/{X11R6/lib,share}/X11/xkb/compat/accessx</CODE>.
Unfortunately, the exact process is still undocumented.
<P>
<HR>
--- kbd-1.12/doc/kbd.FAQ.txt.orig 1999-10-08 22:46:24.000000000 +0200
+++ kbd-1.12/doc/kbd.FAQ.txt 2006-08-11 12:10:16.000000000 +0200
@@ -1253,7 +1253,7 @@
1. The Linux keyboard driver mechanism, used in conjunction with
loadkeys.
2. The X mechanism - see X386keybd(1), later XFree86kbd(1). Under
- X11R6: edit /usr/X11R6/lib/X11/locale/iso8859-1/Compose.
+ X11R6: edit /usr/{X11R6/lib,/usr/share}/X11/locale/iso8859-1/Compose.
See also Andrew D. Balsa's comments at
http://wauug.erols.com/~balsa/linux/deadkeys/index.html.
--- kbd-1.12/doc/kbd.FAQ-8.html.orig 2003-09-24 23:01:40.000000000 +0200
+++ kbd-1.12/doc/kbd.FAQ-8.html 2006-08-11 12:09:53.000000000 +0200
@@ -154,7 +154,7 @@
<OL>
<LI>The Linux keyboard driver mechanism, used in conjunction with loadkeys.</LI>
<LI>The X mechanism - see X386keybd(1), later XFree86kbd(1).
-Under X11R6: edit <CODE>/usr/X11R6/lib/X11/locale/iso8859-1/Compose</CODE>.<P>See also Andrew D. Balsa's comments at
+Under X11R6: edit <CODE>/usr/{X11R6/lib,share}/X11/locale/iso8859-1/Compose</CODE>.<P>See also Andrew D. Balsa's comments at
<A HREF="http://wauug.erols.com/~balsa/linux/deadkeys/index.html">http://wauug.erols.com/~balsa/linux/deadkeys/index.html</A>.
</LI>
<LI>The emacs mechanism obtained by loading "iso-insert.el" or
++++++ kbd-1.15.2-dumpkeys-C-opt.patch ++++++
Index: man/man1/dumpkeys.1.in
===================================================================
--- man/man1/dumpkeys.1.in.orig
+++ man/man1/dumpkeys.1.in
@@ -4,6 +4,7 @@
dumpkeys \- dump keyboard translation tables
.SH SYNOPSIS
.B dumpkeys
+.RI [ \-C\ '<vc>' | \-\-console='<vc>' ]
[
.B \-hilfn
.BI \-c charset
@@ -197,6 +198,12 @@ This option produces an output line `cha
loadkeys how to interpret the keymap. (For example, "division" is
0xf7 in iso-8859-1 but 0xba in iso-8859-8.)
.LP
+The affected console device can be specified using the
+.I -C
+(or
+.I --console
+) option. This option supports exactly one device name.
+.LP
.SH FILES
.PD 0
.TP 20
Index: src/dumpkeys.c
===================================================================
--- src/dumpkeys.c.orig
+++ src/dumpkeys.c
@@ -31,6 +31,7 @@
static int fd;
static int verbose;
static int nr_keys = 0; /* probably 112, 128, 256 or 512 */
+static char * console;
int keymap_index[MAX_NR_KEYMAPS]; /* inverse of good_keymap */
int good_keymap[MAX_NR_KEYMAPS], keymapnr, allocct;
@@ -582,6 +583,8 @@ valid options are:\n\
--funcs-only display only the function key strings\n\
--keys-only display only key bindings\n\
--compose-only display only compose key combinations\n\
+ -C <vc>\n\
+ --console=<vc> Indicate the virtual console device to be used.\n\
-c --charset="));
list_charsets(stderr);
fprintf(stderr, _("\
@@ -593,7 +596,7 @@ valid options are:\n\
int
main (int argc, char *argv[]) {
- const char *short_opts = "hilvsnf1S:c:V";
+ const char *short_opts = "hilvsnf1S:c:C:V";
const struct option long_opts[] = {
{ "help", no_argument, NULL, 'h' },
{ "short-info", no_argument, NULL, 'i' },
@@ -606,6 +609,7 @@ main (int argc, char *argv[]) {
{ "keys-only", no_argument, NULL, 'k' },
{ "compose-only",no_argument, NULL, 'd' },
{ "charset", required_argument, NULL, 'c' },
+ { "console", required_argument, NULL, 'C' },
{ "verbose", no_argument, NULL, 'v' },
{ "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
@@ -665,6 +669,9 @@ main (int argc, char *argv[]) {
usage();
printf("charset \"%s\"\n", optarg);
break;
+ case 'C':
+ console = optarg;
+ break;
case 'V':
print_version_and_exit();
case 'h':
@@ -676,7 +683,7 @@ main (int argc, char *argv[]) {
if (optind < argc)
usage();
- fd = getfd(NULL);
+ fd = getfd(console);
find_nr_keys();
++++++ kbd-1.15.2-dumpkeys-ppc.patch ++++++
XXX: this has been reverted upstream with the comment:
Revert "[SYSTEM] Apply patch from SUSE."
This is an old mistake. No, 0 is not a valid keycode.
It is used by the kernel for bookkeeping purposes.
It must not be used as keycode.
Andries
This reverts commit 49ce531d1c70017113540318b24b9d645d170773.
Signed-off-by: Andries Brouwer <Andries.Brouwer(a)cwi.nl>
Signed-off-by: Alexey Gladkov <legion(a)altlinux.org>
---
src/dumpkeys.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
Index: kbd-1.15.2/src/dumpkeys.c
===================================================================
--- kbd-1.15.2.orig/src/dumpkeys.c
+++ kbd-1.15.2/src/dumpkeys.c
@@ -165,6 +165,10 @@ valid_type(int t) {
ke.kb_index = 0;
ke.kb_table = 0;
ke.kb_value = K(t, 0);
+#if defined(__mc68000__) || defined(__powerpc__)
+ /* Keycode 0 is a valid keycode, do not clobber it. */
+ ioctl(fd, KDGKBENT, (unsigned long)&ke);
+#endif
status = (ioctl(fd, KDSKBENT, (unsigned long)&ke) == 0);
return status;
}
@@ -269,8 +273,13 @@ static void
show_short_info(void) {
int i;
+#if !defined(__mc68000__) && !defined(__powerpc__)
printf(_("keycode range supported by kernel: 1 - %d\n"),
nr_keys - 1);
+#else
+ printf(_("keycode range supported by kernel: 0 - %d\n"),
+ NR_KEYS - 1);
+#endif
printf(_("max number of actions bindable to a key: %d\n"),
MAX_NR_KEYMAPS);
get_keymaps();
@@ -383,7 +392,11 @@ dump_keys(char table_shape, char numeric
for (j = 0; j < MAX_NR_KEYMAPS; j++) {
int ja = (j | M_ALT);
if (j != ja && keymap_index[j] >= 0 && keymap_index[ja] >= 0)
+#if !defined(__mc68000__) && !defined(__powerpc__)
for (i = 1; i < nr_keys; i++) {
+#else
+ for (i = 0; i < nr_keys; i++) {
+#endif
int buf0, buf1, type;
buf0 = get_bind(i, j);
@@ -411,7 +424,11 @@ dump_keys(char table_shape, char numeric
not_alt_is_meta:
no_shorthands:
+#if !defined(__mc68000__) && !defined(__powerpc__)
for (i = 1; i < nr_keys; i++) {
+#else
+ for (i = 0; i < nr_keys; i++) {
+#endif
for (j = 0; j < keymapnr; j++)
buf[j] = get_bind(i, good_keymap[j]);
if (buf[0] == -1)
++++++ kbd-1.15.2-prtscr_no_sigquit.patch ++++++
XXX: reverted upstream
---
data/keymaps/i386/azerty/fr-latin9.map | 1 +
data/keymaps/i386/fgGIod/tr_f-latin5.map | 1 +
data/keymaps/i386/qwerty/bg-cp1251.map | 1 +
data/keymaps/i386/qwerty/bg_bds-cp1251.map | 1 +
data/keymaps/i386/qwerty/br-abnt.map | 1 +
data/keymaps/i386/qwerty/by.map | 1 +
data/keymaps/i386/qwerty/cz-cp1250.map | 1 +
data/keymaps/i386/qwerty/cz-lat2-prog.map | 1 +
data/keymaps/i386/qwerty/cz-lat2.map | 1 +
data/keymaps/i386/qwerty/cz.map | 8 ++++----
data/keymaps/i386/qwerty/defkeymap.map | 1 +
data/keymaps/i386/qwerty/defkeymap_V1.0.map | 1 +
data/keymaps/i386/qwerty/lt.baltic.map | 1 +
data/keymaps/i386/qwerty/lt.l4.map | 1 +
data/keymaps/i386/qwerty/lt.map | 1 +
data/keymaps/i386/qwerty/pl2.map | 1 +
data/keymaps/i386/qwerty/sk-prog-qwerty.map | 1 +
data/keymaps/i386/qwerty/ua-utf-ws.map | 1 +
data/keymaps/i386/qwerty/ua-utf.map | 1 +
data/keymaps/i386/qwerty/ua-ws.map | 1 +
data/keymaps/i386/qwerty/ua.map | 1 +
data/keymaps/i386/qwerty/us-acentos.map | 1 +
data/keymaps/i386/qwertz/cz-us-qwertz.map | 1 +
data/keymaps/i386/qwertz/sk-prog-qwertz.map | 1 +
24 files changed, 27 insertions(+), 4 deletions(-)
Index: kbd-1.15.2/data/keymaps/i386/azerty/fr-latin9.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/azerty/fr-latin9.map
+++ kbd-1.15.2/data/keymaps/i386/azerty/fr-latin9.map
@@ -418,6 +418,7 @@ keycode 100 = AltGr
# La touche Ctrl+Pause = Attn = 101 a un code pour elle-m�me
#
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Home
Index: kbd-1.15.2/data/keymaps/i386/fgGIod/tr_f-latin5.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/fgGIod/tr_f-latin5.map
+++ kbd-1.15.2/data/keymaps/i386/fgGIod/tr_f-latin5.map
@@ -217,6 +217,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/bg-cp1251.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/bg-cp1251.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/bg-cp1251.map
@@ -312,6 +312,7 @@ keycode 99 = Control_backslash
altgr alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/bg_bds-cp1251.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/bg_bds-cp1251.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/bg_bds-cp1251.map
@@ -638,6 +638,7 @@ keycode 98 = KP_Divide
keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/br-abnt.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/br-abnt.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/br-abnt.map
@@ -197,6 +197,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/by.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/by.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/by.map
@@ -529,6 +529,7 @@ keycode 99 = VoidSymbol Control_backsl
Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
keycode 100 = Alt
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up Up Up \
KeyboardSignal Up Up \
Index: kbd-1.15.2/data/keymaps/i386/qwerty/cz-cp1250.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/cz-cp1250.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/cz-cp1250.map
@@ -138,6 +138,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/cz-lat2-prog.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/cz-lat2-prog.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/cz-lat2-prog.map
@@ -141,6 +141,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
Index: kbd-1.15.2/data/keymaps/i386/qwerty/cz-lat2.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/cz-lat2.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/cz-lat2.map
@@ -138,6 +138,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
Index: kbd-1.15.2/data/keymaps/i386/qwerty/cz.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/cz.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/cz.map
@@ -1086,13 +1086,13 @@ keycode 99 = dead_acute dead_acute
keycode 100 = AltGr
#
#keycode 101 = Break
-keycode 101 = Break Break VoidSymbol VoidSymbol VoidSymbol \
- VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
+keycode 101 = Break Break VoidSymbol VoidSymbol Control_c \
+ Control_c VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol \
- Break Break VoidSymbol VoidSymbol VoidSymbol \
- VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
+ Break Break VoidSymbol VoidSymbol Control_c \
+ Control_c VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol \
VoidSymbol
Index: kbd-1.15.2/data/keymaps/i386/qwerty/defkeymap.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/defkeymap.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/defkeymap.map
@@ -222,6 +222,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/defkeymap_V1.0.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/defkeymap_V1.0.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/defkeymap_V1.0.map
@@ -185,6 +185,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/lt.baltic.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/lt.baltic.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/lt.baltic.map
@@ -171,6 +171,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/lt.l4.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/lt.l4.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/lt.l4.map
@@ -463,6 +463,7 @@ keycode 99 = VoidSymbol # 99=Print-Scr
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break # 101=Control-Pause
+ control keycode 101 = Control_c
string F102 = "\033[7$"
keycode 102 = Find # =Home
shift keycode 102 = F102
Index: kbd-1.15.2/data/keymaps/i386/qwerty/lt.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/lt.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/lt.map
@@ -462,6 +462,7 @@ keycode 99 = VoidSymbol # 99=Print-Scr
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break # 101=Control-Pause
+ control keycode 101 = Control_c
string F102 = "\033[7$"
keycode 102 = Find # =Home
shift keycode 102 = F102
Index: kbd-1.15.2/data/keymaps/i386/qwerty/pl2.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/pl2.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/pl2.map
@@ -242,6 +242,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/sk-prog-qwerty.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/sk-prog-qwerty.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/sk-prog-qwerty.map
@@ -122,6 +122,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/ua-utf-ws.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/ua-utf-ws.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/ua-utf-ws.map
@@ -1526,6 +1526,7 @@ ctrll keycode 100 = CtrlR_Lock
ctrlr keycode 100 = CtrlR_Lock
ctrll ctrlr keycode 100 = CtrlR_Lock
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/ua-utf.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/ua-utf.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/ua-utf.map
@@ -1516,6 +1516,7 @@ ctrll keycode 100 = CtrlR_Lock
ctrlr keycode 100 = CtrlR_Lock
ctrll ctrlr keycode 100 = CtrlR_Lock
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/ua-ws.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/ua-ws.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/ua-ws.map
@@ -1521,6 +1521,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = Alt
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/ua.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/ua.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/ua.map
@@ -1515,6 +1515,7 @@ ctrll keycode 100 = CtrlR_Lock
ctrlr keycode 100 = CtrlR_Lock
ctrll ctrlr keycode 100 = CtrlR_Lock
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwerty/us-acentos.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwerty/us-acentos.map
+++ kbd-1.15.2/data/keymaps/i386/qwerty/us-acentos.map
@@ -194,6 +194,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
Index: kbd-1.15.2/data/keymaps/i386/qwertz/cz-us-qwertz.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwertz/cz-us-qwertz.map
+++ kbd-1.15.2/data/keymaps/i386/qwertz/cz-us-qwertz.map
@@ -135,6 +135,7 @@ control keycode 99 = Control_backslash
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
Index: kbd-1.15.2/data/keymaps/i386/qwertz/sk-prog-qwertz.map
===================================================================
--- kbd-1.15.2.orig/data/keymaps/i386/qwertz/sk-prog-qwertz.map
+++ kbd-1.15.2/data/keymaps/i386/qwertz/sk-prog-qwertz.map
@@ -122,6 +122,7 @@ keycode 99 = VoidSymbol
alt keycode 99 = Control_backslash
keycode 100 = AltGr
keycode 101 = Break
+ control keycode 101 = Control_c
keycode 102 = Find
keycode 103 = Up
keycode 104 = Prior
++++++ kbd-1.15.2-setfont-no-cruft.patch ++++++
--- kbd-1.14.1wip/src/kdfontop.c.orig 2008-03-03 23:47:18.160420000 +0100
+++ kbd-1.14.1wip/src/kdfontop.c 2008-03-03 23:52:32.918345000 +0100
@@ -268,6 +268,23 @@
return 0;
}
+#if 1
+ // We no longer try PIO_FONT* calls.
+ // A former patch even added a possible 5 seconds delay loop here, in an attempt to
+ // gain victory over kdm. We no do this fight, as it can only result in races.
+ // https://bugzilla.novell.com/show_bug.cgi?id=302010
+ //
+ // Two effects:
+ // a) Without the delay loop, we are fast enough to run early.
+ // Moving setfont calls to an earlier point most likly
+ // avoids the race.
+ // b) Without the old compat calls, it should be easier to
+ // fix this in kernel side.
+ //
+ fprintf(stderr, "%s: putfont: %d,%dx%d: failed: %d\n", progname, count, width, height, i);
+ perror("putfont: KDFONTOP");
+ return -1;
+#else
/* Second attempt: PIO_FONTX */
cfd.charcount = count;
cfd.charheight = height;
@@ -302,4 +319,5 @@
return -1;
}
return 0;
+#endif
}
++++++ kbd-1.15.2-sv-latin1-keycode10.patch ++++++
--- kbd-1.12/data/keymaps/i386/qwerty/sv-latin1.map.orig 2007-07-17 12:33:52.000000000 +0200
+++ kbd-1.12/data/keymaps/i386/qwerty/sv-latin1.map 2007-07-17 12:36:34.855389000 +0200
@@ -42,6 +42,7 @@
alt keycode 9 = Meta_eight
keycode 10 = nine parenright bracketright
alt keycode 10 = Meta_nine
+ control altgr keycode 10 = Control_bracketright
keycode 11 = zero equal braceright
alt keycode 11 = Meta_zero
keycode 12 = plus question backslash
++++++ kbd-1.15.2-unicode_scripts.patch ++++++
--- src/unicode_start
+++ src/unicode_start
@@ -72,6 +72,17 @@
# have a Unicode map attached, or explicitly specified, e.g.,
# by giving `def.uni' as a second argument.
+DEFAULT_UNICODE_FONT='LatArCyrHeb-16'
+# Also drdos8x16 is a good candidate.
+
+# Fonts with 512 glyphs like LatArCyrHeb-16 make it impossible to use bold
+# on the console, which makes YaST2 unusable. To be able to use bold,
+# only fonts with 256 glyphs can be used. Therefore we prefer
+# the font specified in /etc/sysconfig/console. This should be OK because
+# the default font written to /etc/sysconfig/console by YaST2
+# is currently always a font with 256 glyphs and a Unicode map
+# which is suitable for the language used during the installation.
+
case "$#" in
2)
setfont "$1" -u "$2"
@@ -80,6 +91,24 @@
setfont "$1"
;;
0)
+ if [ -f /etc/sysconfig/console ] ; then
+ . /etc/sysconfig/console
+ fi
+ if [ -n "$CONSOLE_FONT" ] ; then
+ SETFONT_ARGS="$CONSOLE_FONT"
+ if [ -n "$CONSOLE_UNICODEMAP" ] ; then
+ SETFONT_ARGS="$SETFONT_ARGS -u $CONSOLE_UNICODEMAP"
+ fi
+ if [ -n "$CONSOLE_SCREENMAP" ] ; then
+ SETFONT_ARGS="$SETFONT_ARGS -m $CONSOLE_SCREENMAP"
+ fi
+ setfont $SETFONT_ARGS
+ if [ -n "$CONSOLE_MAGIC" -a "$CONSOLE_MAGIC" != "none" ] ; then
+ echo -en "\033$CONSOLE_MAGIC"
+ fi
+ else
+ setfont $DEFAULT_UNICODE_FONT
+ fi
;;
*)
echo "usage: unicode_start [font [unicode map]]"
++++++ kbd.fillup ++++++
#
# Compose tables to be loaded.
# Compose tables are good for producing characters, which can not
# be directly input from your keyboard, such as characters with
# accents, currency signs, ...
# Please read /usr/share/doc/packages/kbd/README.SuSE for an
# explanation.
# You may leave this variable empty (default compose table from kernel
# or KEYTABLE will be used then -- most keyboard maps don't have a
# compose table, though)
# More than one compose table can be given. For a selection of possible
# tables see /usr/share/kbd/keymaps/include/compose.*
# You can give more than one compose table, but only the last one will
# determine the compose combinations.
# The word "clear" has a special meaning:
# Your compose table will be cleared, before more compose symbols are
# added.
# The files compose.winkeys and shiftctrl may be used to map the
# <compose> key to the W*n menu key and Shift-Ctrl, respectively,
# on a PC keyboard.
# A typical setting for Latin1 users (with a PC keyboard) may be
# COMPOSETABLE="clear winkeys shiftctrl latin1.add"
# For latin2, this would be
# COMPOSETABLE="clear winkeys shiftctrl latin2"
# A typical setting for sb. with a character set, where a matching
# compose table is missing (but with a PC keyboard), would be
# COMPOSETABLE="winkeys shiftctrl"
#
COMPOSETABLE="clear winkeys shiftctrl latin1.add"
++++++ kbd.fillup.nonpc ++++++
#
# Compose tables to be loaded.
# Compose tables are good for producing characters, which can not
# be directly input from your keyboard, such as characters with
# accents, currency signs, ...
# Please read /usr/share/doc/packages/kbd/README.SuSE for an
# explanation.
# You may leave this variable empty (default compose table from kernel
# or KEYTABLE will be used then -- most don't have one, though)
# More than one compose table can be given. For a selection of possible
# tables see /usr/share/kbd/keymaps/include/compose.*
# You can give more than one compose table, but only the last one will
# determine the compose combinations.
# The word "clear" has a special meaning:
# Your compose table will be cleared, before more compose symbols are
# added.
# The files compose.winkeys and shiftctrl may be used to map the
# <compose> key to the W*n menu key and Shift-Ctrl, respectively,
# on a PC keyboard.
# A typical setting for Latin1 users (with a PC keyboard) may be
# COMPOSETABLE="clear winkeys shiftctrl latin1.add"
# For latin2, this would be
# COMPOSETABLE="clear winkeys shiftctrl latin2"
# A typical setting for sb. with a character set, where a matching
# compose table is missing (but with a PC keyboard), would be
# COMPOSETABLE="winkeys shiftctrl"
# For non-PC keyboards, don't use winkeys and shiftctrl ...
#
COMPOSETABLE="clear latin1.add"
++++++ kbd.pl ++++++
#! /usr/bin/perl -w
#
# simple script to switch the keyboard language
# (c) 2014 jw(a)owncloud.om
my $sysconffile = '/etc/sysconfig/keyboard';
my $mapdir = '/usr/share/kbd/keymaps/i386';
my $version = '1.0';
my $what = shift || '-h';
my $v = slurp_sysconf($sysconffile);
my $m = find_maps();
my $l = {
'english' => 'us.map',
'german' => 'de-latin1-nodeadkeys.map',
'french' => 'fr-latin1.map',
'spanish' => 'es.map',
'italian' => 'it.map',
'dutch' => 'nl.map',
};
for my $k (keys %$l)
{
# zap non-installed languages from our pretty printed list.
delete $l->{$k} unless $m->{$l->{$k}} or $m->{"$l->{$k}.gz"};
}
if ($what eq '-h')
{
print qq{kbd Version $version
Usage: $0 [option] [mapping]
Available options are:
-l list typical language mappings.
-a list all maps
-h print this usage
Specify as a mapping either a language name (seen with -l)
or a mapping name (seen with -a). For a mapping name, add a .map suffix.
Current keymap: $v->{KEYTABLE}
};
exit 0;
}
if ($what eq '-l')
{
for my $k (sort keys %$l)
{
printf "%-10s %s\n", $k, $l->{$k};
}
exit 0;
}
if ($what eq '-a' || $what eq '-m')
{
my @k = map { $1 if /(.*).map(.gz)?$/ } sort keys %$m;
print "current keymap: $v->{KEYTABLE}\n";
print "available keymaps: @k\n";
print "\n\nuse '$0 MAPNAME' to change.\n";
exit 0;
}
$what = $l->{$what} if $l->{$what};
$what = "$what.gz" if $m->{"$what.gz"};
$what = "$what.map" if $m->{"$what.map"};
$what = "$what.map.gz" if $m->{"$what.map.gz"};
die "$what: keymap not found.\n Try $0 -h\n" unless $m->{$what};
write_sysconf($sysconffile, { 'KEYTABLE' => $what } );
# system("kbd_mode -u"); # switch to unicode. Should be the default anyway.
system("loadkeys $what"); # now set the keymap.
# FIXME: is that all?
# mayb also do: systemctl restart kbd.service
exit 0;
###################################################################
sub find_maps
{
my $maps;
opendir DIR, $mapdir or die "$0: cannot readdir $mapdir: !$\n";
my @d = grep { -d "$mapdir/$_" && !/^\./ } readdir DIR;
closedir DIR;
for my $d (@d)
{
opendir DIR, "$mapdir/$d" or die "$0: cannot readdir $mapdir/$d: !$\n";
my @f = grep { /\.map(.gz)?$/ } readdir DIR;
closedir DIR;
for my $f (@f)
{
$maps->{$f} = "$d/$f";
}
}
return $maps;
}
sub slurp_sysconf
{
my ($file) = @_;
my $vals;
open my $fd, "<", $file or die "$0: cannot read config file $file: $!\n";
while (defined(my $line = <$fd>))
{
chomp $line;
$vals->{$1} = $2 if $line =~ m{^([A-Z_]+)\s*=\s*"(.*)"};
}
close $fd;
return $vals;
}
sub write_sysconf
{
my ($file, $vals) = @_;
my @sysconf = ();
open my $fd, "<", $file or die "$0: cannot read config file $file: $!\n";
while (defined(my $line = <$fd>))
{
chomp $line;
push @sysconf, $line;
}
close $fd;
open $fd, ">", $file or die "$0: cannot write config file $file: $!\n";
for my $line (@sysconf)
{
if ($line =~ m{^([A-Z_]+)\s*=\s*"(.*)"})
{
my ($keyword,$value) = ($1,$2);
if (defined $vals->{$keyword})
{
$line =~ s{\Q$value\E}{$vals->{$keyword}};
}
}
print $fd "$line\n";
}
close $fd or die "$0: could not write config file $file: $!\n";
}
++++++ repack_kbd.sh ++++++
#! /bin/bash
#
# repackage kbd source tar ball,
# to remove fonts that forbid commercial distribution.
#
# 2005-07-11, jw(a)suse.de
tmpdir=`mktemp -d`
in="$1"
name="${in%.tar.*}"
# recent gnu tar can autodetect gzip / bzip2
if ! tar xf "$in" -C $tmpdir; then
rm -rf $tmpdir
exit 1
fi
echo removing files...
find $tmpdir -iname \*agafari\* | tee /dev/tty | xargs rm
tar jcf $name-repack.tar.bz2 -C $tmpdir $name
rm -rf $tmpdir
++++++ sysconfig.console ++++++
## Path: Hardware/Console
## Description: Text console settings (see also Hardware/Keyboard)
## Type: string
## Default: ""
## ServiceRestart: kbd
#
# Console settings.
# Note: The KBD_TTY setting from Hardware/Keyboard (sysconfig/keyboard)
# also applies for the settings here.
#
# Load this console font on bootup:
# (/usr/share/kbd/consolefonts/)
#
CONSOLE_FONT=""
## Type: string
## Default: ""
#
# Some fonts come without a unicode map.
# (.psfu fonts supposedly have it, others often not.)
# You can then specify the unicode mapping of your font
# explicitly. (/usr/share/kbd/unimaps/)
# Normally not needed.
#
CONSOLE_UNICODEMAP=""
## Type: string
## Default: ""
#
# Most programs output 8 bit characters, so you need a table to
# translate those characters into unicode. That one can be specified
# here. (/usr/share/kbd/consoletrans/)
# (Note: If your console is in utf-8 mode you don't need this.)
# If your code does not use a unicode mapping at all (because you
# e.g. explicitly specified UNICODEMAP="none") you may circumvent
# the translation via unicode, but load a map which directly maps
# 8 bit output of your program to a font position.
#
CONSOLE_SCREENMAP=""
## Type: string
## Default: ""
#
# for some fonts the console has to be initialized with CONSOLE_MAGIC.
# CONSOLE_MAGIC can be empty or have the values "(B", ")B", "(K" or ")K".
# Normally not needed (automatically handled by setfont).
#
CONSOLE_MAGIC=""
++++++ sysconfig.keyboard ++++++
## Path: Hardware/Keyboard
## Description: Keyboard settings
## Type: string
## Default: ""
## ServiceRestart: kbd
#
# Keyboard settings for the text console
#
# Keyboard mapping
# (/usr/share/kbd/keymaps/)
# e.g. KEYTABLE="de-latin1-nodeadkeys", "us" or empty for US settings
#
KEYTABLE=""
## Type: integer
## Default:
#
# Keyboard delay time in ms (250, 500, 750, 1000)
KBD_DELAY=""
## Type: string(2.0,2.1,2.3,2.5,2.7,3.0,3.3,3.7,4.0,4.3,4.6,5.0,5.5,6.0,6.7,7.5,8.0,8.6,9.2,10.0,10.9,12.0,13.3,15.0,16.0,17.1,18.5,20.0,21.8,24.0,26.7,30.0)
## Default:
#
# Keyboard repeat rate (2.0 - 30.0)
KBD_RATE=""
## Type: list(bios,yes,no)
## Default: bios
#
# NumLock on? ("yes" or "no" or empty or "bios" for BIOS setting)
# This setting may interfere with GNOME /desktop/gnome/peripherals/keyboard/remember_numlock_state GConf key.
KBD_NUMLOCK="bios"
## Type: yesno
## Default: no
#
# ScrollLock on? ("yes" or "no")
KBD_SCRLOCK="no"
## Type: yesno
## Default: no
#
# CapsLock on? ("yes" or "no")
KBD_CAPSLOCK="no"
## Type: yesno
## Default: no
#
# Disable CAPS LOCK and make it a normal Shift key?
# (Ctrl Caps Lock will still toggle Caps Lock functionality)
# Note that you need to tweak the xkb maps or use xmodmap
# if you want to do the same under X-Windows. In ~/.Xmodmap:
# keycode 0x42 = Shift_L Shift_L
#
KBD_DISABLE_CAPS_LOCK="no"
## Type: string
## Default:
#
# ttys for the above settings
# Example: "tty1 tty2"
# "" for tty's 1-6
#
KBD_TTY=""
++++++ testutf8 ++++++
#!/bin/sh
# testutf8 will be soon removed completely, it's kept only not to break
# /etc/profile currently
if tty -s; then
exit 2
else
exit 0
fi
--
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 python-django for openSUSE:13.1:Update checked in at 2014-09-16 14:21:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/python-django (Old)
and /work/SRC/openSUSE:13.1:Update/.python-django.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.R7pGo9/_old 2014-09-16 14:21:56.000000000 +0200
+++ /var/tmp/diff_new_pack.R7pGo9/_new 2014-09-16 14:21:56.000000000 +0200
@@ -1 +1 @@
-<link package='python-django.2189' cicount='copy' />
+<link package='python-django.2992' cicount='copy' />
--
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 python-django for openSUSE:12.3:Update checked in at 2014-09-16 14:21:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/python-django (Old)
and /work/SRC/openSUSE:12.3:Update/.python-django.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.QpsIjB/_old 2014-09-16 14:21:53.000000000 +0200
+++ /var/tmp/diff_new_pack.QpsIjB/_new 2014-09-16 14:21:53.000000000 +0200
@@ -1 +1 @@
-<link package='python-django.2018' cicount='copy' />
+<link package='python-django.2992' cicount='copy' />
--
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 python-django.2992 for openSUSE:12.3:Update checked in at 2014-09-16 14:21:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/python-django.2992 (Old)
and /work/SRC/openSUSE:12.3:Update/.python-django.2992.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django.2992"
Changes:
--------
New Changes file:
--- /dev/null 2014-07-24 01:57:42.080040256 +0200
+++ /work/SRC/openSUSE:12.3:Update/.python-django.2992.new/python-django.changes 2014-09-16 14:21:52.000000000 +0200
@@ -0,0 +1,292 @@
+-------------------------------------------------------------------
+Mon Sep 8 14:27:15 UTC 2014 - bwiedemann(a)suse.com
+
+- Update to version 1.4.15
+ + Prevented reverse() from generating URLs pointing to other hosts
+ to prevent phishing attacks (bnc#893087, CVE-2014-0480)
+ + Removed O(n) algorithm when uploading duplicate file names
+ to fix file upload denial of service (bnc#893088, CVE-2014-0481)
+ + Modified RemoteUserMiddleware to logout on REMOTE_USE change
+ to prevent session hijacking (bnc#893089, CVE-2014-0482)
+ + Prevented data leakage in contrib.admin via query string manipulation
+ (bnc#893090, CVE-2014-0483)
+ + Fixed: Caches may incorrectly be allowed to store and serve private data
+ (bnc#877993, CVE-2014-1418)
+ + Fixed: Malformed redirect URLs from user input not correctly validated
+ (bnc#878641, CVE-2014-3730)
+ + Fixed queries that may return unexpected results on MySQL
+ due to typecasting (bnc#874956, CVE-2014-0474)
+ + Prevented leaking the CSRF token through caching
+ (bnc#874955, CVE-2014-0473)
+ + Fixed a remote code execution vulnerabilty in URL reversing
+ (bnc#874950, CVE-2014-0472)
+
+-------------------------------------------------------------------
+Tue Sep 17 15:26:40 UTC 2013 - speilicke(a)suse.com
+
+- Update to version 1.4.8 (bnc#840832, bnc#840832, CVE-2013-1443):
+ + Fixed denial-of-service via large passwords
+- Changes from version 1.4.7:
+ + Fixed directory traversal with ssi template tag
+- Changes from version 1.4.6:
+ + Fixed Cross-site scripting (XSS) in admin interface
+ + Fixed Possible XSS via is_safe_url
+
+-------------------------------------------------------------------
+Mon Jul 8 21:42:07 UTC 2013 - alexandre(a)exatati.com.br
+
+- Update to 1.4.5:
+ - Security release.
+ - Fix bnc#807175 / bnc#787521 / CVE-2012-4520 / CVE-2013-0305 /
+ CVE-2013-0306 and CVE-2013-1665.
+
+-------------------------------------------------------------------
+Tue Dec 11 12:27:50 UTC 2012 - alexandre(a)exatati.com.br
+
+- Update to 1.4.3:
+ - Security release:
+ - Host header poisoning
+ - Redirect poisoning
+ - Please check release notes for details:
+ https://www.djangoproject.com/weblog/2012/dec/10/security
+
+-------------------------------------------------------------------
+Sat Oct 20 13:41:10 UTC 2012 - saschpe(a)suse.de
+
+- Add a symlink from /usr/bin/django-admin.py to /usr/bin/django-admin
+
+-------------------------------------------------------------------
+Wed Oct 17 22:51:36 UTC 2012 - alexandre(a)exatati.com.br
+
+- Update to 1.4.2:
+ - Security release:
+ - Host header poisoning
+ - Please check release notes for details:
+ https://www.djangoproject.com/weblog/2012/oct/17/security
+
+-------------------------------------------------------------------
+Mon Jul 30 21:38:31 UTC 2012 - alexandre(a)exatati.com.br
+
+- Update to 1.4.1:
+ - Security release:
+ - Cross-site scripting in authentication views
+ - Denial-of-service in image validation
+ - Denial-of-service via get_image_dimensions()
+ - Please check release notes for details:
+ https://www.djangoproject.com/weblog/2012/jul/30/security-releases-issued
+
+-------------------------------------------------------------------
+Tue Jun 19 11:27:33 UTC 2012 - saschpe(a)suse.de
+
+- Add patch to support CSRF_COOKIE_HTTPONLY config
+
+-------------------------------------------------------------------
+Fri Mar 23 18:39:40 UTC 2012 - alexandre(a)exatati.com.br
+
+- Update to 1.4:
+ - Please read the release notes
+ https://docs.djangoproject.com/en/dev/releases/1.4
+- Removed Patch2, it was merged on upstream,
+
+-------------------------------------------------------------------
+Thu Nov 24 12:30:40 UTC 2011 - saschpe(a)suse.de
+
+- Set license to SDPX style (BSD-3-Clause)
+- Package AUTHORS, LICENE and README files
+- No CFLAGS for noarch package
+- Drop runtime dependency on gettext-tools
+
+-------------------------------------------------------------------
+Sat Sep 10 12:05:07 UTC 2011 - alexandre(a)exatati.com.br
+
+- Update to 1.3.1 to fix security issues, please read
+ https://www.djangoproject.com/weblog/2011/sep/09/security-releases-issued.
+
+-------------------------------------------------------------------
+Thu Mar 31 15:09:16 UTC 2011 - alexandre(a)exatati.com.br
+
+- Fix build on SLES_9.
+
+-------------------------------------------------------------------
+Wed Mar 23 11:39:53 UTC 2011 - alexandre(a)exatati.com.br
+
+- Update to 1.3 final;
+- Refresh patch empty-ip-2.diff.
+
+-------------------------------------------------------------------
+Fri Mar 18 03:45:45 UTC 2011 - alexandre(a)exatati.com.br
+
+- Update to 1.3-rc1;
+- Regenerated spec file with py2pack;
+- No more need to fix wrong line endings;
+- Refresh patch empty-ip-2.diff with -p0.
+
+-------------------------------------------------------------------
+Thu Mar 3 09:32:52 UTC 2011 - saschpe(a)suse.de
+
+- Spec file cleanup:
+ * Removed empty lines, package authors from description
+ * Cleanup duplicates
+ * Corrected wrong file endings
+ * Added zero-length rpmlint filter
+- Added AUTHORS, LICENSE and doc files
+
+-------------------------------------------------------------------
+Wed Feb 9 03:37:29 UTC 2011 - alexandre(a)exatati.com.br
+
+- Update to 1.2.5:
+ - This is a security update that fix:
+ - Flaw in CSRF handling;
+ - Potential XSS in file field rendering.
+
+-------------------------------------------------------------------
+Thu Dec 23 10:20:03 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2.4:
+ - Information leakage in Django administrative interface;
+ - Denial-of-service attack in password-reset mechanism.
+- This is a mandatory security update.
+
+-------------------------------------------------------------------
+Sat Sep 11 11:46:41 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2.3:
+ - The patch applied for the security issue covered in Django
+ 1.2.2 caused issues with non-ASCII responses using CSRF
+ tokens. This has been remedied;
+ - The patch also caused issues with some forms, most notably
+ the user-editing forms in the Django administrative interface.
+ This has been remedied.
+ - The packaging manifest did not contain the full list of
+ required files. This has been remedied.
+
+-------------------------------------------------------------------
+Thu Sep 9 01:06:43 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2.2.
+- This is a ciritical security update fixing a default XSS bug!
+
+-------------------------------------------------------------------
+Fri Jul 9 11:27:26 UTC 2010 - jfunk(a)funktronics.ca
+
+- Added patch to fix upstream bug 5622: Empty ipaddress raises an error
+
+-------------------------------------------------------------------
+Mon May 17 21:14:11 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2.1.
+
+-------------------------------------------------------------------
+Mon May 17 18:35:20 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2.
+
+-------------------------------------------------------------------
+Thu May 6 13:46:03 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 1.2-rc-1.
+
+-------------------------------------------------------------------
+Mon Apr 5 02:21:44 UTC 2010 - alexandre(a)exatati.com.br
+
+- Spec file cleaned with spec-cleaner;
+- Minor manual adjusts on spec file.
+
+-------------------------------------------------------------------
+Thu Mar 18 17:47:12 UTC 2010 - alexandre(a)exatati.com.br
+
++++ 95 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.3:Update/.python-django.2992.new/python-django.changes
New:
----
Django-1.2-completion-only-for-bash.patch
Django-1.4-CSRF_COOKIE_HTTPONLY-support.patch
Django-1.4.15.tar.gz
python-django-rpmlintrc
python-django.changes
python-django.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django.spec ++++++
#
# spec file for package python-django
#
# Copyright (c) 2014 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
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python-django
Version: 1.4.15
Release: 0
Summary: A high-level Python Web framework
License: BSD-3-Clause
Group: Development/Languages/Python
Url: http://www.djangoproject.com
# https://www.djangoproject.com/download/1.4.15/tarball/
Source: Django-%{version}.tar.gz
Source1: python-django-rpmlintrc
# PATCH-FIX-UPSTREAM Django-1.2-completion-only-for-bash.patch
Patch1: Django-1.2-completion-only-for-bash.patch
# PATCH-FIX-UPSTREAM - see https://github.com/django/django/pull/150/files
Patch2: Django-1.4-CSRF_COOKIE_HTTPONLY-support.patch
BuildRequires: python-devel
Requires: python-xml
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#Requires: gettext-tools
%if 0%{?suse_version}
%py_requires
%if 0%{?suse_version} > 1110
BuildArch: noarch
%endif
%endif
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%description
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
%prep
%setup -q -n Django-%{version}
%patch1
%patch2
%build
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
install -D -m 0755 extras/django_bash_completion %{buildroot}%{_sysconfdir}/bash_completion.d/django_bash_completion.sh
ln -s %{_bindir}/django-admin.py %{buildroot}%{_bindir}/django-admin
%files
%defattr(-,root,root,-)
%doc AUTHORS LICENSE README
%{_bindir}/django-admin*
%{python_sitelib}/*
%{_sysconfdir}/bash_completion.d/django_bash_completion.sh
%changelog
++++++ Django-1.2-completion-only-for-bash.patch ++++++
Index: extras/django_bash_completion
===================================================================
--- extras/django_bash_completion.orig
+++ extras/django_bash_completion
@@ -31,6 +31,8 @@
#
# To uninstall, just remove the line from your .bash_profile and .bashrc.
+test -z "$BASH_VERSION" && return
+
_django_completion()
{
COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \
++++++ Django-1.4-CSRF_COOKIE_HTTPONLY-support.patch ++++++
Index: django/conf/global_settings.py
===================================================================
--- django/conf/global_settings.py.orig
+++ django/conf/global_settings.py
@@ -535,6 +535,7 @@ CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SECURE = False
+CSRF_COOKIE_HTTPONLY = False
############
# MESSAGES #
Index: django/middleware/csrf.py
===================================================================
--- django/middleware/csrf.py.orig
+++ django/middleware/csrf.py
@@ -208,7 +208,8 @@ class CsrfViewMiddleware(object):
max_age = 60 * 60 * 24 * 7 * 52,
domain=settings.CSRF_COOKIE_DOMAIN,
path=settings.CSRF_COOKIE_PATH,
- secure=settings.CSRF_COOKIE_SECURE
+ secure=settings.CSRF_COOKIE_SECURE,
+ httponly=settings.CSRF_COOKIE_HTTPONLY
)
# Content varies with the CSRF cookie, so set the Vary header.
patch_vary_headers(response, ('Cookie',))
Index: docs/ref/contrib/csrf.txt
===================================================================
--- docs/ref/contrib/csrf.txt.orig
+++ docs/ref/contrib/csrf.txt
@@ -543,6 +543,17 @@ Whether to use a secure cookie for the C
the cookie will be marked as "secure," which means browsers may ensure that the
cookie is only sent under an HTTPS connection.
+CSRF_COOKIE_HTTPONLY
+------------------
+
+.. versionadded:: 1.5
+
+Default: ``False``
+
+Whether to use HttpOnly flag on the CSRF cookie. If this is set to
+``True``, client-side JavaScript will not to be able to access the
+session cookie.
+
CSRF_FAILURE_VIEW
-----------------
Index: docs/ref/settings.txt
===================================================================
--- docs/ref/settings.txt.orig
+++ docs/ref/settings.txt
@@ -362,6 +362,19 @@ Whether to use a secure cookie for the C
the cookie will be marked as "secure," which means browsers may ensure that the
cookie is only sent under an HTTPS connection.
+.. setting:: CSRF_COOKIE_HTTPONLY
+
+CSRF_COOKIE_HTTPONLY
+------------------
+
+.. versionadded:: 1.5
+
+Default: ``False``
+
+Whether to use HttpOnly flag on the CSRF cookie. If this is set to
+``True``, client-side JavaScript will not to be able to access the
+session cookie. See :setting:`SESSION_COOKIE_HTTPONLY`.
+
.. setting:: CSRF_FAILURE_VIEW
CSRF_FAILURE_VIEW
Index: tests/regressiontests/csrf_tests/tests.py
===================================================================
--- tests/regressiontests/csrf_tests/tests.py.orig
+++ tests/regressiontests/csrf_tests/tests.py
@@ -101,7 +101,8 @@ class CsrfViewMiddlewareTest(TestCase):
with self.settings(CSRF_COOKIE_NAME='myname',
CSRF_COOKIE_DOMAIN='.example.com',
CSRF_COOKIE_PATH='/test/',
- CSRF_COOKIE_SECURE=True):
+ CSRF_COOKIE_SECURE=True,
+ CSRF_COOKIE_HTTPONLY=True):
# token_view calls get_token() indirectly
CsrfViewMiddleware().process_view(req, token_view, (), {})
resp = token_view(req)
@@ -110,6 +111,7 @@ class CsrfViewMiddlewareTest(TestCase):
self.assertNotEqual(csrf_cookie, False)
self.assertEqual(csrf_cookie['domain'], '.example.com')
self.assertEqual(csrf_cookie['secure'], True)
+ self.assertEqual(csrf_cookie['httponly'], True)
self.assertEqual(csrf_cookie['path'], '/test/')
self.assertTrue('Cookie' in resp2.get('Vary',''))
++++++ python-django-rpmlintrc ++++++
addFilter("file-not-in-%lang")
addFilter("zero-length")
--
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 perl-Algorithm-C3 for openSUSE:Factory checked in at 2014-09-15 17:41:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Algorithm-C3 (Old)
and /work/SRC/openSUSE:Factory/.perl-Algorithm-C3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Algorithm-C3"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Algorithm-C3/perl-Algorithm-C3.changes 2014-03-09 18:33:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Algorithm-C3.new/perl-Algorithm-C3.changes 2014-09-15 18:25:21.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Sep 15 12:52:31 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.10
+ - declare minimum version of perl as 5.6 in metadata
+
+-------------------------------------------------------------------
Old:
----
Algorithm-C3-0.09.tar.gz
New:
----
Algorithm-C3-0.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Algorithm-C3.spec ++++++
--- /var/tmp/diff_new_pack.mbE0oh/_old 2014-09-15 18:25:23.000000000 +0200
+++ /var/tmp/diff_new_pack.mbE0oh/_new 2014-09-15 18:25:23.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Algorithm-C3
-Version: 0.09
+Version: 0.10
Release: 0
%define cpan_name Algorithm-C3
Summary: A module for merging hierarchies using the C3 algorithm
++++++ Algorithm-C3-0.09.tar.gz -> Algorithm-C3-0.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.09/Changes new/Algorithm-C3-0.10/Changes
--- old/Algorithm-C3-0.09/Changes 2014-03-02 00:02:57.000000000 +0100
+++ new/Algorithm-C3-0.10/Changes 2014-08-16 02:20:02.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for Perl extension Algorithm-C3.
+0.10 - 2014-08-15
+ - declare minimum version of perl as 5.6 in metadata
+
0.09 - 2014-03-01
- convert to use ExtUtils::MakeMaker using distar
- include repo and bugtracker metadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.09/META.json new/Algorithm-C3-0.10/META.json
--- old/Algorithm-C3-0.09/META.json 2014-03-02 00:03:08.000000000 +0100
+++ new/Algorithm-C3-0.10/META.json 2014-08-16 02:20:23.000000000 +0200
@@ -5,7 +5,7 @@
"Brandon L. Black <blblack(a)gmail.com>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.88, CPAN::Meta::Converter version 2.133380",
+ "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520",
"license" : [
"perl_5"
],
@@ -33,7 +33,8 @@
},
"runtime" : {
"requires" : {
- "Carp" : "0.01"
+ "Carp" : "0.01",
+ "perl" : "5.006"
}
}
},
@@ -49,5 +50,5 @@
"web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Algorithm-C3.git"
}
},
- "version" : "0.09"
+ "version" : "0.10"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.09/META.yml new/Algorithm-C3-0.10/META.yml
--- old/Algorithm-C3-0.09/META.yml 2014-03-02 00:03:08.000000000 +0100
+++ new/Algorithm-C3-0.10/META.yml 2014-08-16 02:20:23.000000000 +0200
@@ -8,7 +8,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.88, CPAN::Meta::Converter version 2.133380'
+generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -20,7 +20,8 @@
- inc
requires:
Carp: '0.01'
+ perl: '5.006'
resources:
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-C3
repository: git://git.shadowcat.co.uk/gitmo/Algorithm-C3.git
-version: '0.09'
+version: '0.10'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.09/Makefile.PL new/Algorithm-C3-0.10/Makefile.PL
--- old/Algorithm-C3-0.09/Makefile.PL 2014-03-02 00:01:25.000000000 +0100
+++ new/Algorithm-C3-0.10/Makefile.PL 2014-08-04 09:42:38.000000000 +0200
@@ -19,6 +19,7 @@
'Carp' => 0.01,
($mymeta_works ? () : (%BUILD_DEPS)),
},
+ MIN_PERL_VERSION => 5.006,
$mymeta_works ? (BUILD_REQUIRES => \%BUILD_DEPS) : (),
($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.09/lib/Algorithm/C3.pm new/Algorithm-C3-0.10/lib/Algorithm/C3.pm
--- old/Algorithm-C3-0.09/lib/Algorithm/C3.pm 2014-03-02 00:01:25.000000000 +0100
+++ new/Algorithm-C3-0.10/lib/Algorithm/C3.pm 2014-08-16 02:19:42.000000000 +0200
@@ -6,7 +6,7 @@
use Carp 'confess';
-our $VERSION = '0.09';
+our $VERSION = '0.10';
sub merge {
my ($root, $parent_fetcher, $cache) = @_;
--
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 perl-Module-Build-Tiny for openSUSE:Factory checked in at 2014-09-15 17:41:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-Build-Tiny (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-Build-Tiny.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Module-Build-Tiny"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-Build-Tiny/perl-Module-Build-Tiny.changes 2014-07-21 10:35:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Module-Build-Tiny.new/perl-Module-Build-Tiny.changes 2014-09-15 18:25:19.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 15 12:52:32 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.038
+ Scrub PERL_MB_OPT in tests too
+ Scrub environment variable in tests
+
+-------------------------------------------------------------------
Old:
----
Module-Build-Tiny-0.036.tar.gz
New:
----
Module-Build-Tiny-0.038.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Module-Build-Tiny.spec ++++++
--- /var/tmp/diff_new_pack.2EsSdI/_old 2014-09-15 18:25:21.000000000 +0200
+++ /var/tmp/diff_new_pack.2EsSdI/_new 2014-09-15 18:25:21.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Module-Build-Tiny
-Version: 0.036
+Version: 0.038
Release: 0
%define cpan_name Module-Build-Tiny
Summary: A tiny replacement for Module::Build
@@ -33,7 +33,6 @@
BuildRequires: perl(ExtUtils::CBuilder)
BuildRequires: perl(ExtUtils::Config) >= 0.003
BuildRequires: perl(ExtUtils::Helpers) >= 0.020
-BuildRequires: perl(ExtUtils::Install)
BuildRequires: perl(ExtUtils::InstallPaths) >= 0.002
BuildRequires: perl(ExtUtils::ParseXS)
BuildRequires: perl(Getopt::Long) >= 2.36
@@ -45,7 +44,6 @@
Requires: perl(ExtUtils::CBuilder)
Requires: perl(ExtUtils::Config) >= 0.003
Requires: perl(ExtUtils::Helpers) >= 0.020
-Requires: perl(ExtUtils::Install)
Requires: perl(ExtUtils::InstallPaths) >= 0.002
Requires: perl(ExtUtils::ParseXS)
Requires: perl(Getopt::Long) >= 2.36
++++++ Module-Build-Tiny-0.036.tar.gz -> Module-Build-Tiny-0.038.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/Changes new/Module-Build-Tiny-0.038/Changes
--- old/Module-Build-Tiny-0.036/Changes 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/Changes 2014-09-06 11:28:46.000000000 +0200
@@ -1,5 +1,11 @@
Revision history for Module::Build::Tiny
+0.038 2014-09-06 11:28:23+02:00 Europe/Amsterdam
+ Scrub PERL_MB_OPT in tests too
+
+0.037 2014-07-27 16:14:54+02:00 Europe/Amsterdam
+ Scrub environment variable in tests
+
0.036 2014-05-02 14:51:02CEST+0200 Europe/Amsterdam
Add --jobs argument to MBT
Add xs directory to include list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/LICENSE new/Module-Build-Tiny-0.038/LICENSE
--- old/Module-Build-Tiny-0.036/LICENSE 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/LICENSE 2014-09-06 11:28:46.000000000 +0200
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/MANIFEST new/Module-Build-Tiny-0.038/MANIFEST
--- old/Module-Build-Tiny-0.036/MANIFEST 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/MANIFEST 2014-09-06 11:28:46.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.011.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.019.
Build.PL
Changes
INSTALL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/META.json new/Module-Build-Tiny-0.038/META.json
--- old/Module-Build-Tiny-0.036/META.json 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/META.json 2014-09-06 11:28:46.000000000 +0200
@@ -5,7 +5,7 @@
"David Golden <dagolden(a)cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.011, CPAN::Meta::Converter version 2.132830",
+ "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -88,7 +88,8 @@
"Test::More" : "0.88",
"XSLoader" : "0",
"blib" : "0",
- "lib" : "0"
+ "lib" : "0",
+ "perl" : "5.006"
},
"suggests" : {
"File::ShareDir" : "1.000"
@@ -98,7 +99,7 @@
"provides" : {
"Module::Build::Tiny" : {
"file" : "lib/Module/Build/Tiny.pm",
- "version" : "0.036"
+ "version" : "0.038"
}
},
"release_status" : "stable",
@@ -113,6 +114,6 @@
"web" : "https://github.com/Leont/module-build-tiny"
}
},
- "version" : "0.036"
+ "version" : "0.038"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/META.yml new/Module-Build-Tiny-0.038/META.yml
--- old/Module-Build-Tiny-0.036/META.yml 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/META.yml 2014-09-06 11:28:46.000000000 +0200
@@ -4,75 +4,76 @@
- 'Leon Timmermans <leont(a)cpan.org>'
- 'David Golden <dagolden(a)cpan.org>'
build_requires:
- Carp: 0
- Cwd: 0
- Data::Dumper: 0
- File::Spec: 0
- File::Temp: 0
- IO::File: 0
- IO::Handle: 0
- IPC::Open2: 0
- IPC::Open3: 0
- Test::More: 0.88
- XSLoader: 0
- blib: 0
- lib: 0
+ Carp: '0'
+ Cwd: '0'
+ Data::Dumper: '0'
+ File::Spec: '0'
+ File::Temp: '0'
+ IO::File: '0'
+ IO::Handle: '0'
+ IPC::Open2: '0'
+ IPC::Open3: '0'
+ Test::More: '0.88'
+ XSLoader: '0'
+ blib: '0'
+ lib: '0'
+ perl: '5.006'
configure_requires:
- CPAN::Meta: 0
- DynaLoader: 0
- Exporter: 5.57
- ExtUtils::CBuilder: 0
- ExtUtils::Config: 0.003
- ExtUtils::Helpers: 0.020
- ExtUtils::Install: 0
- ExtUtils::InstallPaths: 0.002
- ExtUtils::ParseXS: 0
- File::Basename: 0
- File::Find: 0
- File::Path: 0
- File::Spec::Functions: 0
- Getopt::Long: 2.36
- JSON::PP: 2
- Pod::Man: 0
- TAP::Harness::Env: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ CPAN::Meta: '0'
+ DynaLoader: '0'
+ Exporter: '5.57'
+ ExtUtils::CBuilder: '0'
+ ExtUtils::Config: '0.003'
+ ExtUtils::Helpers: '0.020'
+ ExtUtils::Install: '0'
+ ExtUtils::InstallPaths: '0.002'
+ ExtUtils::ParseXS: '0'
+ File::Basename: '0'
+ File::Find: '0'
+ File::Path: '0'
+ File::Spec::Functions: '0'
+ Getopt::Long: '2.36'
+ JSON::PP: '2'
+ Pod::Man: '0'
+ TAP::Harness::Env: '0'
+ perl: '5.006'
+ strict: '0'
+ warnings: '0'
conflicts:
local::lib: '< 1.006008'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.011, CPAN::Meta::Converter version 2.132830'
+generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Module-Build-Tiny
provides:
Module::Build::Tiny:
file: lib/Module/Build/Tiny.pm
- version: 0.036
+ version: '0.038'
requires:
- CPAN::Meta: 0
- DynaLoader: 0
- Exporter: 5.57
- ExtUtils::CBuilder: 0
- ExtUtils::Config: 0.003
- ExtUtils::Helpers: 0.020
- ExtUtils::Install: 0
- ExtUtils::InstallPaths: 0.002
- ExtUtils::ParseXS: 0
- File::Basename: 0
- File::Find: 0
- File::Path: 0
- File::Spec::Functions: 0
- Getopt::Long: 2.36
- JSON::PP: 2
- Pod::Man: 0
- TAP::Harness::Env: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ CPAN::Meta: '0'
+ DynaLoader: '0'
+ Exporter: '5.57'
+ ExtUtils::CBuilder: '0'
+ ExtUtils::Config: '0.003'
+ ExtUtils::Helpers: '0.020'
+ ExtUtils::Install: '0'
+ ExtUtils::InstallPaths: '0.002'
+ ExtUtils::ParseXS: '0'
+ File::Basename: '0'
+ File::Find: '0'
+ File::Path: '0'
+ File::Spec::Functions: '0'
+ Getopt::Long: '2.36'
+ JSON::PP: '2'
+ Pod::Man: '0'
+ TAP::Harness::Env: '0'
+ perl: '5.006'
+ strict: '0'
+ warnings: '0'
resources:
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Module-Build-Tiny
repository: git://github.com/Leont/module-build-tiny.git
-version: 0.036
+version: '0.038'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/README new/Module-Build-Tiny-0.038/README
--- old/Module-Build-Tiny-0.036/README 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/README 2014-09-06 11:28:46.000000000 +0200
@@ -1,7 +1,7 @@
This archive contains the distribution Module-Build-Tiny,
-version 0.036:
+version 0.038:
A tiny replacement for Module::Build
@@ -11,5 +11,5 @@
the same terms as the Perl 5 programming language system itself.
-This README file was generated by Dist::Zilla::Plugin::Readme v5.011.
+This README file was generated by Dist::Zilla::Plugin::Readme v5.019.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/lib/Module/Build/Tiny.pm new/Module-Build-Tiny-0.038/lib/Module/Build/Tiny.pm
--- old/Module-Build-Tiny-0.036/lib/Module/Build/Tiny.pm 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/lib/Module/Build/Tiny.pm 2014-09-06 11:28:46.000000000 +0200
@@ -1,5 +1,5 @@
package Module::Build::Tiny;
-$Module::Build::Tiny::VERSION = '0.036';
+$Module::Build::Tiny::VERSION = '0.038';
use strict;
use warnings;
use Exporter 5.57 'import';
@@ -166,7 +166,7 @@
=head1 VERSION
-version 0.036
+version 0.038
=head1 SYNOPSIS
@@ -276,7 +276,7 @@
=item * .modulebuildrc
-Module::Build::Tiny does not support .modulebuildrc files. In particular, this means that versions of local::lib older than 1.006008 may break. Upgrading it resolves this issue.
+Module::Build::Tiny does not support .modulebuildrc files. In particular, this means that versions of local::lib older than 1.006008 may break with C<ERROR: Can't create /usr/local/somepath>. If the output of C<perl -Mlocal::lib> contains C<MODULEBUILDRC> but not C<PERL_MB_OPT >, you will need to upgrade it to resolve this issue.
=back
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/t/00-compile.t new/Module-Build-Tiny-0.038/t/00-compile.t
--- old/Module-Build-Tiny-0.036/t/00-compile.t 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/t/00-compile.t 2014-09-06 11:28:46.000000000 +0200
@@ -1,7 +1,8 @@
+use 5.006;
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.036
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.040
use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
@@ -15,17 +16,18 @@
# no fake home requested
-my $inc_switch = q[-Mblib];
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
use File::Spec;
use IPC::Open3;
use IO::Handle;
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
my @warnings;
for my $lib (@module_files)
{
# see L<perlfaq8/How can I capture STDERR from an external command?>
- open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
my $stderr = IO::Handle->new;
my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/t/release-pod-syntax.t new/Module-Build-Tiny-0.038/t/release-pod-syntax.t
--- old/Module-Build-Tiny-0.036/t/release-pod-syntax.t 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/t/release-pod-syntax.t 2014-09-06 11:28:46.000000000 +0200
@@ -9,8 +9,6 @@
# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Build-Tiny-0.036/t/simple.t new/Module-Build-Tiny-0.038/t/simple.t
--- old/Module-Build-Tiny-0.036/t/simple.t 2014-05-02 14:51:28.000000000 +0200
+++ new/Module-Build-Tiny-0.038/t/simple.t 2014-09-06 11:28:46.000000000 +0200
@@ -10,6 +10,9 @@
use DistGen qw/undent/;
use XSLoader;
+local $ENV{PERL_INSTALL_QUIET};
+local $ENV{PERL_MB_OPT};
+
#--------------------------------------------------------------------------#
# fixtures
#--------------------------------------------------------------------------#
--
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 perl-MooseX-Declare for openSUSE:Factory checked in at 2014-09-15 17:41:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MooseX-Declare (Old)
and /work/SRC/openSUSE:Factory/.perl-MooseX-Declare.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MooseX-Declare"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-MooseX-Declare/perl-MooseX-Declare.changes 2014-03-11 07:23:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-MooseX-Declare.new/perl-MooseX-Declare.changes 2014-09-15 18:25:18.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Sep 15 12:52:35 UTC 2014 - coolo(a)suse.com
+
+- updated to 0.39
+ - line numbers in shipped code are now almost the same (within 1) as
+ the repository source, for easier debugging
+ - pod fixes (Frank Wiegand, RT#51722)
+
+-------------------------------------------------------------------
Old:
----
MooseX-Declare-0.38.tar.gz
New:
----
MooseX-Declare-0.39.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-MooseX-Declare.spec ++++++
--- /var/tmp/diff_new_pack.Mgx4JQ/_old 2014-09-15 18:25:19.000000000 +0200
+++ /var/tmp/diff_new_pack.Mgx4JQ/_new 2014-09-15 18:25:19.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-MooseX-Declare
-Version: 0.38
+Version: 0.39
Release: 0
%define cpan_name MooseX-Declare
Summary: Declarative syntax for Moose
@@ -32,7 +32,7 @@
BuildRequires: perl(Devel::Declare) >= 0.005011
BuildRequires: perl(Devel::Declare::Context::Simple)
BuildRequires: perl(List::MoreUtils)
-BuildRequires: perl(Module::Build::Tiny) >= 0.030
+BuildRequires: perl(Module::Build::Tiny) >= 0.037
BuildRequires: perl(Module::Runtime)
BuildRequires: perl(Moose) >= 0.90
BuildRequires: perl(Moose::Meta::Class)
@@ -100,6 +100,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes CONTRIBUTING LICENSE README README.md TODO weaver.ini
+%doc Changes CONTRIBUTING LICENSE README TODO weaver.ini
%changelog
++++++ MooseX-Declare-0.38.tar.gz -> MooseX-Declare-0.39.tar.gz ++++++
++++ 6250 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 perl-Module-CPANfile for openSUSE:Factory checked in at 2014-09-15 17:41:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-CPANfile (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-CPANfile.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Module-CPANfile"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-CPANfile/perl-Module-CPANfile.changes 2014-02-27 00:06:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Module-CPANfile.new/perl-Module-CPANfile.changes 2014-09-15 18:25:17.000000000 +0200
@@ -1,0 +2,26 @@
+Mon Sep 15 12:52:31 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.1000
+ - Make it non-development release
+
+ 1.0905 2013-12-09 16:26:08 PST
+ - Support mirror syntax (masaki) #22
+
+ 1.0904 2013-09-21 07:56:31 JST
+ - Removed git/ref accessor from Requirement
+ - Added $requirement->has_options
+
+ 1.0903 2013-09-20 15:36:30 JST
+ - Added $cpanfile->merged_requirements to get the CPAN::Meta::Requirements for all prereqs
+
+ 1.0902 2013-09-20 13:45:15 JST
+ - s/rev/ref/ for git options
+
+ 1.0901 2013-09-19 18:59:55 JST
+ - Remove unused code
+
+ 1.0900 2013-09-19 18:45:59 JST
+ - Experimental support for git URL specification
+ - Complete rewrite of internal to preserve original prereq statement as much as possible
+
+-------------------------------------------------------------------
Old:
----
Module-CPANfile-1.0002.tar.gz
New:
----
Module-CPANfile-1.1000.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Module-CPANfile.spec ++++++
--- /var/tmp/diff_new_pack.GJ4fBu/_old 2014-09-15 18:25:18.000000000 +0200
+++ /var/tmp/diff_new_pack.GJ4fBu/_new 2014-09-15 18:25:18.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Module-CPANfile
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 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: perl-Module-CPANfile
-Version: 1.0002
+Version: 1.1000
Release: 0
%define cpan_name Module-CPANfile
Summary: Parse cpanfile
@@ -32,13 +32,10 @@
BuildRequires: perl(CPAN::Meta) >= 2.12091
BuildRequires: perl(CPAN::Meta::Prereqs) >= 2.12091
BuildRequires: perl(Test::More) >= 0.88
-#BuildRequires: perl(CPAN::Meta::Feature)
-#BuildRequires: perl(Module::CPANfile)
-#BuildRequires: perl(Module::CPANfile::Environment)
-#BuildRequires: perl(Module::CPANfile::Result)
-#BuildRequires: perl(t::Utils)
+BuildRequires: perl(parent)
Requires: perl(CPAN::Meta) >= 2.12091
Requires: perl(CPAN::Meta::Prereqs) >= 2.12091
+Requires: perl(parent)
%{perl_requires}
%description
++++++ Module-CPANfile-1.0002.tar.gz -> Module-CPANfile-1.1000.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/Changes new/Module-CPANfile-1.1000/Changes
--- old/Module-CPANfile-1.0002/Changes 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/Changes 2014-08-29 06:48:18.000000000 +0200
@@ -1,5 +1,28 @@
Revision history for Module::Install::CPANfile
+1.1000 2014-08-29 13:48:13 JST
+ - Make it non-development release
+
+1.0905 2013-12-09 16:26:08 PST
+ - Support mirror syntax (masaki) #22
+
+1.0904 2013-09-21 07:56:31 JST
+ - Removed git/ref accessor from Requirement
+ - Added $requirement->has_options
+
+1.0903 2013-09-20 15:36:30 JST
+ - Added $cpanfile->merged_requirements to get the CPAN::Meta::Requirements for all prereqs
+
+1.0902 2013-09-20 13:45:15 JST
+ - s/rev/ref/ for git options
+
+1.0901 2013-09-19 18:59:55 JST
+ - Remove unused code
+
+1.0900 2013-09-19 18:45:59 JST
+ - Experimental support for git URL specification
+ - Complete rewrite of internal to preserve original prereq statement as much as possible
+
1.0002 2013-09-06 12:26:11 PDT
- Add cpanfile-dump utility (xdg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/LICENSE new/Module-CPANfile-1.1000/LICENSE
--- old/Module-CPANfile-1.0002/LICENSE 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/LICENSE 2014-08-29 06:48:18.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Tatsuhiko Miyagawa.
+This software is copyright (c) 2014 by Tatsuhiko Miyagawa.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by Tatsuhiko Miyagawa.
+This software is Copyright (c) 2014 by Tatsuhiko Miyagawa.
This is free software, licensed under:
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by Tatsuhiko Miyagawa.
+This software is Copyright (c) 2014 by Tatsuhiko Miyagawa.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/MANIFEST new/Module-CPANfile-1.1000/MANIFEST
--- old/Module-CPANfile-1.0002/MANIFEST 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/MANIFEST 2014-08-29 06:48:18.000000000 +0200
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Changes
LICENSE
MANIFEST
@@ -9,7 +10,9 @@
dist.ini
lib/Module/CPANfile.pm
lib/Module/CPANfile/Environment.pm
-lib/Module/CPANfile/Result.pm
+lib/Module/CPANfile/Prereq.pm
+lib/Module/CPANfile/Prereqs.pm
+lib/Module/CPANfile/Requirement.pm
lib/cpanfile-faq.pod
lib/cpanfile.pod
script/cpanfile-dump
@@ -18,5 +21,7 @@
t/feature.t
t/from_prereqs.t
t/merge.t
+t/mirror.t
t/parse.t
t/release-pod-syntax.t
+t/requirement.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/META.json new/Module-CPANfile-1.1000/META.json
--- old/Module-CPANfile-1.0002/META.json 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/META.json 2014-08-29 06:48:18.000000000 +0200
@@ -4,7 +4,7 @@
"Tatsuhiko Miyagawa"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Milla version v1.0.4, Dist::Zilla version 4.300037, CPAN::Meta::Converter version 2.132140",
+ "generated_by" : "Dist::Milla version v1.0.5, Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -26,7 +26,7 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
@@ -40,7 +40,8 @@
},
"requires" : {
"CPAN::Meta" : "2.12091",
- "CPAN::Meta::Prereqs" : "2.12091"
+ "CPAN::Meta::Prereqs" : "2.12091",
+ "parent" : "0"
}
},
"test" : {
@@ -61,11 +62,13 @@
"web" : "https://github.com/miyagawa/cpanfile"
}
},
- "version" : "1.0002",
+ "version" : "1.1000",
"x_contributors" : [
"Atsushi Kato <ktat(a)cpan.org>",
"David Golden <dagolden(a)cpan.org>",
"David Steinbrunner <dsteinbrunner(a)pobox.com>",
+ "Gregory Oschwald <oschwald(a)gmail.com>",
+ "Kenichi Ishigaki <ishigaki(a)cpan.org>",
"Masahiro Honma <hiratara(a)cpan.org>",
"Michiel Beijen <michiel.beijen(a)gmail.com>",
"grtodd <gtodd(a)iciti.ca>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/META.yml new/Module-CPANfile-1.1000/META.yml
--- old/Module-CPANfile-1.0002/META.yml 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/META.yml 2014-08-29 06:48:18.000000000 +0200
@@ -3,15 +3,15 @@
author:
- 'Tatsuhiko Miyagawa'
build_requires:
- Test::More: 0.88
+ Test::More: '0.88'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Milla version v1.0.4, Dist::Zilla version 4.300037, CPAN::Meta::Converter version 2.132140'
+generated_by: 'Dist::Milla version v1.0.5, Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Module-CPANfile
no_index:
directory:
@@ -22,19 +22,22 @@
- eg
- examples
recommends:
- Pod::Usage: 0
+ Pod::Usage: '0'
requires:
- CPAN::Meta: 2.12091
- CPAN::Meta::Prereqs: 2.12091
+ CPAN::Meta: '2.12091'
+ CPAN::Meta::Prereqs: '2.12091'
+ parent: '0'
resources:
bugtracker: https://github.com/miyagawa/cpanfile/issues
homepage: https://github.com/miyagawa/cpanfile
repository: https://github.com/miyagawa/cpanfile.git
-version: 1.0002
+version: '1.1000'
x_contributors:
- 'Atsushi Kato <ktat(a)cpan.org>'
- 'David Golden <dagolden(a)cpan.org>'
- 'David Steinbrunner <dsteinbrunner(a)pobox.com>'
+ - 'Gregory Oschwald <oschwald(a)gmail.com>'
+ - 'Kenichi Ishigaki <ishigaki(a)cpan.org>'
- 'Masahiro Honma <hiratara(a)cpan.org>'
- 'Michiel Beijen <michiel.beijen(a)gmail.com>'
- 'grtodd <gtodd(a)iciti.ca>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/Makefile.PL new/Module-CPANfile-1.1000/Makefile.PL
--- old/Module-CPANfile-1.0002/Makefile.PL 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/Makefile.PL 2014-08-29 06:48:18.000000000 +0200
@@ -1,19 +1,19 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
use strict;
use warnings;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
my %WriteMakefileArgs = (
"ABSTRACT" => "Parse cpanfile",
"AUTHOR" => "Tatsuhiko Miyagawa",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "Module-CPANfile",
"EXE_FILES" => [
@@ -24,42 +24,31 @@
"NAME" => "Module::CPANfile",
"PREREQ_PM" => {
"CPAN::Meta" => "2.12091",
- "CPAN::Meta::Prereqs" => "2.12091"
+ "CPAN::Meta::Prereqs" => "2.12091",
+ "parent" => 0
},
"TEST_REQUIRES" => {
"Test::More" => "0.88"
},
- "VERSION" => "1.0002",
+ "VERSION" => "1.1000",
"test" => {
"TESTS" => "t/*.t"
}
);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
- my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
- my $br = $WriteMakefileArgs{BUILD_REQUIRES};
- for my $mod ( keys %$tr ) {
- if ( exists $br->{$mod} ) {
- $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
- }
- else {
- $br->{$mod} = $tr->{$mod};
- }
- }
-}
+my %FallbackPrereqs = (
+ "CPAN::Meta" => "2.12091",
+ "CPAN::Meta::Prereqs" => "2.12091",
+ "Test::More" => "0.88",
+ "parent" => 0
+);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/README new/Module-CPANfile-1.1000/README
--- old/Module-CPANfile-1.0002/README 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/README 2014-08-29 06:48:18.000000000 +0200
@@ -67,7 +67,7 @@
# read MYMETA's prereqs and print cpanfile representation of it
my $meta = CPAN::Meta->load_file('MYMETA.json');
my $file = Module::CPANfile->from_prereqs($meta->prereqs);
- print $file->to_sring;
+ print $file->to_string;
By default, it omits the phase where there're no modules registered.
If you pass the argument of a true value, it will print them as
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/cpanfile new/Module-CPANfile-1.1000/cpanfile
--- old/Module-CPANfile-1.0002/cpanfile 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/cpanfile 2014-08-29 06:48:18.000000000 +0200
@@ -1,5 +1,6 @@
requires 'CPAN::Meta', 2.12091;
requires 'CPAN::Meta::Prereqs', 2.12091;
+requires 'parent';
recommends 'Pod::Usage';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile/Environment.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile/Environment.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile/Environment.pm 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile/Environment.pm 2014-08-29 06:48:18.000000000 +0200
@@ -1,13 +1,14 @@
package Module::CPANfile::Environment;
use strict;
use warnings;
-use Module::CPANfile::Result;
+use Module::CPANfile::Prereqs;
use Carp ();
my @bindings = qw(
on requires recommends suggests conflicts
feature
osname
+ mirror
configure_requires build_requires test_requires author_requires
);
@@ -16,48 +17,156 @@
sub new {
my($class, $file) = @_;
bless {
- file => $file,
+ file => $file,
+ phase => 'runtime', # default phase
+ feature => undef,
+ features => {},
+ prereqs => Module::CPANfile::Prereqs->new,
+ mirrors => [],
}, $class;
}
sub bind {
- my $class = shift;
+ my $self = shift;
my $pkg = caller;
- my $result = Module::CPANfile::Result->new;
for my $binding (@bindings) {
no strict 'refs';
- *{"$pkg\::$binding"} = sub { $result->$binding(@_) };
+ *{"$pkg\::$binding"} = sub { $self->$binding(@_) };
}
-
- return $result;
}
sub parse {
my($self, $code) = @_;
- my($res, $err);
-
+ my $err;
{
local $@;
$file_id++;
- $res = eval <<EVAL;
+ $self->_evaluate(<<EVAL);
package Module::CPANfile::Sandbox$file_id;
no warnings;
-my \$_result;
-BEGIN { \$_result = Module::CPANfile::Environment->bind }
+BEGIN { \$_environment->bind }
# line 1 "$self->{file}"
$code;
-
-\$_result;
EVAL
$err = $@;
}
if ($err) { die "Parsing $self->{file} failed: $err" };
- return $res;
+ return 1;
+}
+
+sub _evaluate {
+ my $_environment = $_[0];
+ eval $_[1];
+}
+
+sub prereqs { $_[0]->{prereqs} }
+
+sub mirrors { $_[0]->{mirrors} }
+
+# DSL goes from here
+
+sub on {
+ my($self, $phase, $code) = @_;
+ local $self->{phase} = $phase;
+ $code->();
+}
+
+sub feature {
+ my($self, $identifier, $description, $code) = @_;
+
+ # shortcut: feature identifier => sub { ... }
+ if (@_ == 3 && ref($description) eq 'CODE') {
+ $code = $description;
+ $description = $identifier;
+ }
+
+ unless (ref $description eq '' && ref $code eq 'CODE') {
+ Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }");
+ }
+
+ local $self->{feature} = $identifier;
+ $self->prereqs->add_feature($identifier, $description);
+
+ $code->();
+}
+
+sub osname { die "TODO" }
+
+sub mirror {
+ my($self, $url) = @_;
+ push @{$self->{mirrors}}, $url;
+}
+
+sub requirement_for {
+ my($self, $module, @args) = @_;
+
+ my $requirement = 0;
+ $requirement = shift @args if @args % 2;
+
+ return Module::CPANfile::Requirement->new(
+ name => $module,
+ version => $requirement,
+ @args,
+ );
+}
+
+sub requires {
+ my $self = shift;
+ $self->add_prereq(requires => @_);
+}
+
+sub recommends {
+ my $self = shift;
+ $self->add_prereq(recommends => @_);
+}
+
+sub suggests {
+ my $self = shift;
+ $self->add_prereq(suggests => @_);
+}
+
+sub conflicts {
+ my $self = shift;
+ $self->add_prereq(conflicts => @_);
+}
+
+sub add_prereq {
+ my($self, $type, $module, @args) = @_;
+
+ $self->prereqs->add_prereq(
+ feature => $self->{feature},
+ phase => $self->{phase},
+ type => $type,
+ module => $module,
+ requirement => $self->requirement_for($module, @args),
+ );
+}
+
+# Module::Install compatible shortcuts
+
+sub configure_requires {
+ my($self, @args) = @_;
+ $self->on(configure => sub { $self->requires(@args) });
+}
+
+sub build_requires {
+ my($self, @args) = @_;
+ $self->on(build => sub { $self->requires(@args) });
+}
+
+sub test_requires {
+ my($self, @args) = @_;
+ $self->on(test => sub { $self->requires(@args) });
+}
+
+sub author_requires {
+ my($self, @args) = @_;
+ $self->on(develop => sub { $self->requires(@args) });
}
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile/Prereq.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile/Prereq.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile/Prereq.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile/Prereq.pm 2014-08-29 06:48:18.000000000 +0200
@@ -0,0 +1,21 @@
+package Module::CPANfile::Prereq;
+use strict;
+
+sub new {
+ my($class, %options) = @_;
+ bless \%options, $class;
+}
+
+sub feature { $_[0]->{feature} }
+sub phase { $_[0]->{phase} }
+sub type { $_[0]->{type} }
+sub module { $_[0]->{module} }
+sub requirement { $_[0]->{requirement} }
+
+sub match_feature {
+ my($self, $identifier) = @_;
+ no warnings 'uninitialized';
+ $self->feature eq $identifier;
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile/Prereqs.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile/Prereqs.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile/Prereqs.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile/Prereqs.pm 2014-08-29 06:48:18.000000000 +0200
@@ -0,0 +1,117 @@
+package Module::CPANfile::Prereqs;
+use strict;
+use Carp ();
+use CPAN::Meta::Feature;
+use Module::CPANfile::Prereq;
+
+sub from_cpan_meta {
+ my($class, $prereqs) = @_;
+
+ my $self = $class->new;
+
+ for my $phase (keys %$prereqs) {
+ for my $type (keys %{ $prereqs->{$phase} }) {
+ while (my($module, $requirement) = each %{ $prereqs->{$phase}{$type} }) {
+ $self->add_prereq(
+ phase => $phase,
+ type => $type,
+ module => $module,
+ requirement => Module::CPANfile::Requirement->new(name => $module, version => $requirement),
+ );
+ }
+ }
+ }
+
+ $self;
+}
+
+sub new {
+ my $class = shift;
+ bless {
+ prereqs => [],
+ features => {},
+ }, $class;
+}
+
+sub add_feature {
+ my($self, $identifier, $description) = @_;
+ $self->{features}{$identifier} = { description => $description };
+}
+
+sub add_prereq {
+ my($self, %args) = @_;
+ $self->add( Module::CPANfile::Prereq->new(%args) );
+}
+
+sub add {
+ my($self, $prereq) = @_;
+ push @{$self->{prereqs}}, $prereq;
+}
+
+sub as_cpan_meta {
+ my $self = shift;
+ $self->{cpanmeta} ||= $self->build_cpan_meta;
+}
+
+sub build_cpan_meta {
+ my($self, $identifier) = @_;
+
+ my $prereq_spec = {};
+ $self->prereq_each($identifier, sub {
+ my $prereq = shift;
+ $prereq_spec->{$prereq->phase}{$prereq->type}{$prereq->module} = $prereq->requirement->version;
+ });
+
+ CPAN::Meta::Prereqs->new($prereq_spec);
+}
+
+sub prereq_each {
+ my($self, $identifier, $code) = @_;
+
+ for my $prereq (@{$self->{prereqs}}) {
+ next unless $prereq->match_feature($identifier);
+ $code->($prereq);
+ }
+}
+
+sub merged_requirements {
+ my $self = shift;
+
+ my $reqs = CPAN::Meta::Requirements->new;
+ for my $prereq (@{$self->{prereqs}}) {
+ $reqs->add_string_requirement($prereq->module, $prereq->requirement->version);
+ }
+
+ $reqs;
+}
+
+sub find {
+ my($self, $module) = @_;
+
+ for my $prereq (@{$self->{prereqs}}) {
+ return $prereq if $prereq->module eq $module;
+ }
+
+ return;
+}
+
+sub identifiers {
+ my $self = shift;
+ keys %{$self->{features}};
+}
+
+sub feature {
+ my($self, $identifier) = @_;
+
+ my $data = $self->{features}{$identifier}
+ or Carp::croak("Unknown feature '$identifier'");
+
+ my $prereqs = $self->build_cpan_meta($identifier);
+
+ CPAN::Meta::Feature->new($identifier, {
+ description => $data->{description},
+ prereqs => $prereqs->as_string_hash,
+ });
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile/Requirement.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile/Requirement.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile/Requirement.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile/Requirement.pm 2014-08-29 06:48:18.000000000 +0200
@@ -0,0 +1,25 @@
+package Module::CPANfile::Requirement;
+use strict;
+
+sub new {
+ my ($class, %args) = @_;
+
+ $args{version} ||= 0;
+
+ bless +{
+ name => delete $args{name},
+ version => delete $args{version},
+ options => \%args,
+ }, $class;
+}
+
+sub name { $_[0]->{name} }
+sub version { $_[0]->{version} }
+
+sub options { $_[0]->{options} }
+
+sub has_options {
+ keys %{$_[0]->{options}} > 0;
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile/Result.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile/Result.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile/Result.pm 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile/Result.pm 1970-01-01 01:00:00.000000000 +0100
@@ -1,93 +0,0 @@
-package Module::CPANfile::Result;
-use strict;
-
-sub from_prereqs {
- my($class, $spec) = @_;
- bless {
- phase => 'runtime',
- spec => $spec,
- }, $class;
-}
-
-sub new {
- bless {
- phase => 'runtime', # default phase
- features => {},
- feature => undef,
- spec => {},
- }, shift;
-}
-
-sub on {
- my($self, $phase, $code) = @_;
- local $self->{phase} = $phase;
- $code->()
-}
-
-sub feature {
- my($self, $identifier, $description, $code) = @_;
-
- # shortcut: feature identifier => sub { ... }
- if (@_ == 3 && ref($description) eq 'CODE') {
- $code = $description;
- $description = $identifier;
- }
-
- unless (ref $description eq '' && ref $code eq 'CODE') {
- Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }");
- }
-
- local $self->{feature} = $self->{features}{$identifier}
- = { identifier => $identifier, description => $description, spec => {} };
- $code->();
-}
-
-sub osname { die "TODO" }
-
-sub requires {
- my($self, $module, $requirement) = @_;
- ($self->{feature} ? $self->{feature}{spec} : $self->{spec})
- ->{$self->{phase}}{requires}{$module} = $requirement || 0;
-}
-
-sub recommends {
- my($self, $module, $requirement) = @_;
- ($self->{feature} ? $self->{feature}{spec} : $self->{spec})
- ->{$self->{phase}}{recommends}{$module} = $requirement || 0;
-}
-
-sub suggests {
- my($self, $module, $requirement) = @_;
- ($self->{feature} ? $self->{feature}{spec} : $self->{spec})
- ->{$self->{phase}}{suggests}{$module} = $requirement || 0;
-}
-
-sub conflicts {
- my($self, $module, $requirement) = @_;
- ($self->{feature} ? $self->{feature}{spec} : $self->{spec})
- ->{$self->{phase}}{conflicts}{$module} = $requirement || 0;
-}
-
-# Module::Install compatible shortcuts
-
-sub configure_requires {
- my($self, @args) = @_;
- $self->on(configure => sub { $self->requires(@args) });
-}
-
-sub build_requires {
- my($self, @args) = @_;
- $self->on(build => sub { $self->requires(@args) });
-}
-
-sub test_requires {
- my($self, @args) = @_;
- $self->on(test => sub { $self->requires(@args) });
-}
-
-sub author_requires {
- my($self, @args) = @_;
- $self->on(develop => sub { $self->requires(@args) });
-}
-
-1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/Module/CPANfile.pm new/Module-CPANfile-1.1000/lib/Module/CPANfile.pm
--- old/Module-CPANfile-1.0002/lib/Module/CPANfile.pm 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/lib/Module/CPANfile.pm 2014-08-29 06:48:18.000000000 +0200
@@ -4,9 +4,9 @@
use Cwd;
use Carp ();
use Module::CPANfile::Environment;
-use Module::CPANfile::Result;
+use Module::CPANfile::Requirement;
-our $VERSION = '1.0002';
+our $VERSION = '1.1000';
sub new {
my($class, $file) = @_;
@@ -37,42 +37,46 @@
};
my $env = Module::CPANfile::Environment->new($file);
- $self->{result} = $env->parse($code) or die $@;
+ $env->parse($code) or die $@;
+
+ $self->{_mirrors} = $env->mirrors;
+ $self->{_prereqs} = $env->prereqs;
}
sub from_prereqs {
my($proto, $prereqs) = @_;
my $self = $proto->new;
- $self->{result} = Module::CPANfile::Result->from_prereqs($prereqs);
+ $self->{_prereqs} = Module::CPANfile::Prereqs->from_cpan_meta($prereqs);
$self;
}
+sub mirrors {
+ my $self = shift;
+ $self->{_mirrors} || [];
+}
+
sub features {
my $self = shift;
- map $self->feature($_), keys %{$self->{result}{features}};
+ map $self->feature($_), $self->{_prereqs}->identifiers;
}
sub feature {
my($self, $identifier) = @_;
-
- my $data = $self->{result}{features}{$identifier}
- or Carp::croak("Unknown feature '$identifier'");
-
- require CPAN::Meta::Feature;
- CPAN::Meta::Feature->new($data->{identifier}, {
- description => $data->{description},
- prereqs => $data->{spec},
- });
+ $self->{_prereqs}->feature($identifier);
}
sub prereq { shift->prereqs }
sub prereqs {
my $self = shift;
- require CPAN::Meta::Prereqs;
- CPAN::Meta::Prereqs->new($self->prereq_specs);
+ $self->{_prereqs}->as_cpan_meta;
+}
+
+sub merged_requirements {
+ my $self = shift;
+ $self->{_prereqs}->merged_requirements;
}
sub effective_prereqs {
@@ -91,7 +95,18 @@
sub prereq_specs {
my $self = shift;
- $self->{result}{spec};
+ $self->prereqs->as_string_hash;
+}
+
+sub prereq_for_module {
+ my($self, $module) = @_;
+ $self->{_prereqs}->find($module);
+}
+
+sub options_for_module {
+ my($self, $module) = @_;
+ my $prereq = $self->prereq_for_module($module) or return;
+ $prereq->requirement->options;
}
sub merge_meta {
@@ -120,12 +135,14 @@
sub to_string {
my($self, $include_empty) = @_;
- my $prereqs = $self->{result}{spec};
+ my $mirrors = $self->mirrors;
+ my $prereqs = $self->prereq_specs;
my $code = '';
- $code .= $self->_dump_prereqs($self->{result}{spec}, $include_empty);
+ $code .= $self->_dump_mirrors($mirrors);
+ $code .= $self->_dump_prereqs($prereqs, $include_empty);
- for my $feature (values %{$self->{result}{features}}) {
+ for my $feature ($self->features) {
$code .= sprintf "feature %s, %s => sub {\n", _dump($feature->{identifier}), _dump($feature->{description});
$code .= $self->_dump_prereqs($feature->{spec}, $include_empty, 4);
$code .= "}\n\n";
@@ -135,6 +152,19 @@
$code;
}
+sub _dump_mirrors {
+ my($self, $mirrors) = @_;
+
+ my $code = "";
+
+ for my $url (@$mirrors) {
+ $code .= "mirror '$url';\n";
+ }
+
+ $code =~ s/\n+$/\n/s;
+ $code;
+}
+
sub _dump_prereqs {
my($self, $prereqs, $include_empty, $base_indent) = @_;
@@ -250,7 +280,7 @@
# read MYMETA's prereqs and print cpanfile representation of it
my $meta = CPAN::Meta->load_file('MYMETA.json');
my $file = Module::CPANfile->from_prereqs($meta->prereqs);
- print $file->to_sring;
+ print $file->to_string;
By default, it omits the phase where there're no modules
registered. If you pass the argument of a true value, it will print
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/cpanfile-faq.pod new/Module-CPANfile-1.1000/lib/cpanfile-faq.pod
--- old/Module-CPANfile-1.0002/lib/cpanfile-faq.pod 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/lib/cpanfile-faq.pod 2014-08-29 06:48:18.000000000 +0200
@@ -112,12 +112,17 @@
L<Module::Build::Pluggable::CPANfile> merges C<cpanfile> dependencies
from C<Build.PL> when dumping out MYMETA information.
+However you're recommended to switch to an authoring system that emits
+C<Build.PL> with parsed CPANfile information, like L<Dist::Zilla>
+mentioned above.
+
=item ExtUtils::MakeMaker
-L<ExtUtils::MakeMaker> has no direct support for cpanfile yet, but you
-could use L<Module::CPANfile>'s C<merge_meta> method to update
-C<MYMETA.json> files with the contents in C<cpanfile>, or convert the
-structure to appropriate options with L<PREREQ_PM> and C<META_MERGE>
-for C<WriteMakefile>.
+L<ExtUtils::MakeMaker::CPANfile> merges C<cpanfile> prerequisites
+when dumping C<MYMETA> files upon installation.
+
+However you're recommended to switch to an authoring system that emits
+C<Makefile.PL> with parsed CPANfile information, like L<Dist::Zilla>
+mentioned above.
=back
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/lib/cpanfile.pod new/Module-CPANfile-1.1000/lib/cpanfile.pod
--- old/Module-CPANfile-1.0002/lib/cpanfile.pod 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/lib/cpanfile.pod 2014-08-29 06:48:18.000000000 +0200
@@ -4,8 +4,8 @@
=head1 SYNOPSIS
- requires 'Catalyst', '5.8000'; # 5.8000 or newer
- requires 'Catalyst::View::JSON', '>= 0.30, < 0.40';
+ requires 'Plack', '1.0'; # 1.0 or newer
+ requires 'JSON', '>= 2.00, < 2.80';
recommends 'JSON::XS', '2.0';
conflicts 'JSON', '< 1.0';
@@ -25,7 +25,7 @@
=head1 VERSION
-This doucment describes cpanfile format version 1.0.
+This document describes cpanfile format version 1.0.
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/script/cpanfile-dump new/Module-CPANfile-1.1000/script/cpanfile-dump
--- old/Module-CPANfile-1.0002/script/cpanfile-dump 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/script/cpanfile-dump 2014-08-29 06:48:18.000000000 +0200
@@ -76,7 +76,8 @@
This script reads prereqs from a F<cpanfile> and dumps a raw list of
them to standard output. This is useful for piping these as input to
-another program such as C<cpan>, C<cpanm> or C<cpanp>.
+another program that doesn't support reading cpanfile directly,
+i.e. C<cpan> or C<cpanp>.
By default, it prints configure, build, test and runtime requirements and
recommendations. Command line options can be used to modify the default
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/t/mirror.t new/Module-CPANfile-1.1000/t/mirror.t
--- old/Module-CPANfile-1.0002/t/mirror.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-CPANfile-1.1000/t/mirror.t 2014-08-29 06:48:18.000000000 +0200
@@ -0,0 +1,38 @@
+use strict;
+use Module::CPANfile;
+use Test::More;
+use t::Utils;
+
+{
+ my $r = write_cpanfile(<<FILE);
+mirror 'http://www.cpan.org';
+mirror 'http://backpan.cpan.org';
+
+requires 'DBI';
+requires 'Plack', '0.9970';
+
+on 'test' => sub {
+ requires 'Test::More';
+};
+FILE
+
+ my $file = Module::CPANfile->load;
+
+ my $prereq = $file->prereq;
+ is_deeply $prereq->as_string_hash, {
+ test => {
+ requires => { 'Test::More' => 0 },
+ },
+ runtime => {
+ requires => { 'Plack' => '0.9970', 'DBI' => 0 },
+ },
+ };
+
+ my $mirrors = $file->mirrors;
+ is_deeply $mirrors, [ 'http://www.cpan.org', 'http://backpan.cpan.org' ];
+
+ like $file->to_string, qr{mirror 'http://www.cpan.org';};
+ like $file->to_string, qr{mirror 'http://backpan.cpan.org';};
+}
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/t/release-pod-syntax.t new/Module-CPANfile-1.1000/t/release-pod-syntax.t
--- old/Module-CPANfile-1.0002/t/release-pod-syntax.t 2013-09-06 21:26:13.000000000 +0200
+++ new/Module-CPANfile-1.1000/t/release-pod-syntax.t 2014-08-29 06:48:18.000000000 +0200
@@ -7,9 +7,8 @@
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-CPANfile-1.0002/t/requirement.t new/Module-CPANfile-1.1000/t/requirement.t
--- old/Module-CPANfile-1.0002/t/requirement.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-CPANfile-1.1000/t/requirement.t 2014-08-29 06:48:18.000000000 +0200
@@ -0,0 +1,81 @@
+use strict;
+use Module::CPANfile;
+use Test::More;
+use t::Utils;
+
+subtest 'full set' => sub {
+ my $r = write_cpanfile(<<FILE);
+requires 'Plack', '0.9970',
+ git => 'git://github.com/plack/Plack.git', ref => '0.9970';
+FILE
+
+ my $file = Module::CPANfile->load;
+ is_deeply $file->prereq_specs, {
+ runtime => {
+ requires => { 'Plack' => '0.9970' },
+ },
+ };
+
+ my $req = $file->prereqs->requirements_for(runtime => 'requires');
+ is $req->requirements_for_module('Plack'), '0.9970';
+
+ is_deeply $file->options_for_module('Plack'), {
+ git => 'git://github.com/plack/Plack.git',
+ ref => '0.9970',
+ };
+};
+
+subtest 'drop version' => sub {
+ my $r = write_cpanfile(<<FILE);
+requires 'Plack', # drop version
+ git => 'git://github.com/plack/Plack.git', ref => '0.9970';
+FILE
+
+ my $file = Module::CPANfile->load;
+ is_deeply $file->prereq_specs, {
+ runtime => {
+ requires => { 'Plack' => 0 },
+ },
+ };
+
+ is_deeply $file->options_for_module('Plack'), {
+ git => 'git://github.com/plack/Plack.git',
+ ref => '0.9970',
+ };
+};
+
+subtest 'no ref' => sub {
+ my $r = write_cpanfile(<<FILE);
+requires 'Plack', '0.9970', git => 'git://github.com/plack/Plack.git';
+FILE
+
+ my $file = Module::CPANfile->load;
+ is_deeply $file->prereq_specs, {
+ runtime => {
+ requires => { 'Plack' => '0.9970' },
+ },
+ };
+
+ is_deeply $file->options_for_module('Plack'), {
+ git => 'git://github.com/plack/Plack.git',
+ };
+};
+
+subtest 'name and git' => sub {
+ my $r = write_cpanfile(<<FILE);
+requires 'Plack', git => 'git://github.com/plack/Plack.git';
+FILE
+
+ my $file = Module::CPANfile->load;
+ is_deeply $file->prereq_specs, {
+ runtime => {
+ requires => { 'Plack' => 0 },
+ },
+ };
+
+ is_deeply $file->options_for_module('Plack'), {
+ git => 'git://github.com/plack/Plack.git',
+ };
+};
+
+done_testing;
--
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 perl-Unicode-Stringprep for openSUSE:Factory checked in at 2014-09-15 17:41:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Unicode-Stringprep (Old)
and /work/SRC/openSUSE:Factory/.perl-Unicode-Stringprep.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Unicode-Stringprep"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Unicode-Stringprep/perl-Unicode-Stringprep.changes 2014-07-26 09:42:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Unicode-Stringprep.new/perl-Unicode-Stringprep.changes 2014-09-15 18:25:16.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 15 12:52:32 UTC 2014 - coolo(a)suse.com
+
+- updated to 1.105
+ - FIXES: #98106: [PATCH] Silence "Redundant argument in sprintf"
+ warnings (reported by fraserbn(a)*****.com)
+
+-------------------------------------------------------------------
Old:
----
Unicode-Stringprep-1.104.tar.gz
New:
----
Unicode-Stringprep-1.105.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Unicode-Stringprep.spec ++++++
--- /var/tmp/diff_new_pack.ZPWmIL/_old 2014-09-15 18:25:17.000000000 +0200
+++ /var/tmp/diff_new_pack.ZPWmIL/_new 2014-09-15 18:25:17.000000000 +0200
@@ -17,7 +17,7 @@
Name: perl-Unicode-Stringprep
-Version: 1.104
+Version: 1.105
Release: 0
%define cpan_name Unicode-Stringprep
Summary: Preparation of Internationalized Strings (S<RFC 3454>)
@@ -29,7 +29,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Module::Build) >= 0.38
+BuildRequires: perl(Module::Build) >= 0.42
BuildRequires: perl(Test::NoWarnings)
BuildRequires: perl(Unicode::Normalize) >= 1
Requires: perl(Unicode::Normalize) >= 1
++++++ Unicode-Stringprep-1.104.tar.gz -> Unicode-Stringprep-1.105.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/Changes new/Unicode-Stringprep-1.105/Changes
--- old/Unicode-Stringprep-1.104/Changes 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/Changes 2014-09-03 20:29:18.000000000 +0200
@@ -1,5 +1,9 @@
Revision history for Perl extension Unicode::Stringprep
+1.105 (2014-09-03)
+ - FIXES: #98106: [PATCH] Silence "Redundant argument in sprintf"
+ warnings (reported by fraserbn(a)*****.com)
+
1.104 (2011-12-08)
- FIXES: #72615 faulty data in Build.PL causes a lack of
meta files, which breaks carton.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/LICENSE new/Unicode-Stringprep-1.105/LICENSE
--- old/Unicode-Stringprep-1.104/LICENSE 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/LICENSE 2014-09-03 20:29:18.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2011 by Claus Färber <CFAERBER(a)cpan.org>.
+This software is copyright (c) 2014 by Claus Färber <CFAERBER(a)cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2011 by Claus Färber <CFAERBER(a)cpan.org>.
+This software is Copyright (c) 2014 by Claus Färber <CFAERBER(a)cpan.org>.
This is free software, licensed under:
@@ -22,7 +22,7 @@
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2011 by Claus Färber <CFAERBER(a)cpan.org>.
+This software is Copyright (c) 2014 by Claus Färber <CFAERBER(a)cpan.org>.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/META.json new/Unicode-Stringprep-1.105/META.json
--- old/Unicode-Stringprep-1.104/META.json 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/META.json 2014-09-03 20:29:18.000000000 +0200
@@ -4,7 +4,7 @@
"Claus Färber <CFAERBER(a)cpan.org>"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112621",
+ "generated_by" : "Module::Build version 0.4208",
"license" : [
"perl_5"
],
@@ -21,13 +21,13 @@
"prereqs" : {
"build" : {
"requires" : {
- "Test::More" : 0,
- "Test::NoWarnings" : 0
+ "Test::More" : "0",
+ "Test::NoWarnings" : "0"
}
},
"configure" : {
"requires" : {
- "Module::Build" : "0.38"
+ "Module::Build" : "0.42"
}
},
"runtime" : {
@@ -37,33 +37,11 @@
}
}
},
- "provides" : {
- "Unicode::Stringprep" : {
- "file" : "lib/Unicode/Stringprep.pm",
- "version" : "1.104"
- },
- "Unicode::Stringprep::BiDi" : {
- "file" : "lib/Unicode/Stringprep/BiDi.pm",
- "version" : "1.10"
- },
- "Unicode::Stringprep::Mapping" : {
- "file" : "lib/Unicode/Stringprep/Mapping.pm",
- "version" : "1.10"
- },
- "Unicode::Stringprep::Prohibited" : {
- "file" : "lib/Unicode/Stringprep/Prohibited.pm",
- "version" : "1.10"
- },
- "Unicode::Stringprep::Unassigned" : {
- "file" : "lib/Unicode/Stringprep/Unassigned.pm",
- "version" : "1.10"
- }
- },
"release_status" : "stable",
"resources" : {
"license" : [
"http://dev.perl.org/licenses/"
]
},
- "version" : "1.104"
+ "version" : "1.105"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/META.yml new/Unicode-Stringprep-1.105/META.yml
--- old/Unicode-Stringprep-1.104/META.yml 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/META.yml 2014-09-03 20:29:18.000000000 +0200
@@ -6,9 +6,9 @@
Test::More: 0
Test::NoWarnings: 0
configure_requires:
- Module::Build: 0.38
+ Module::Build: 0.42
dynamic_config: 1
-generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.112621'
+generated_by: 'Module::Build version 0.4208, CPAN::Meta::Converter version 2.120630'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -17,25 +17,9 @@
no_index:
directory:
- eg
-provides:
- Unicode::Stringprep:
- file: lib/Unicode/Stringprep.pm
- version: 1.104
- Unicode::Stringprep::BiDi:
- file: lib/Unicode/Stringprep/BiDi.pm
- version: 1.10
- Unicode::Stringprep::Mapping:
- file: lib/Unicode/Stringprep/Mapping.pm
- version: 1.10
- Unicode::Stringprep::Prohibited:
- file: lib/Unicode/Stringprep/Prohibited.pm
- version: 1.10
- Unicode::Stringprep::Unassigned:
- file: lib/Unicode/Stringprep/Unassigned.pm
- version: 1.10
requires:
Unicode::Normalize: 1
perl: 5.008003
resources:
license: http://dev.perl.org/licenses/
-version: 1.104
+version: 1.105
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/Makefile.PL new/Unicode-Stringprep-1.105/Makefile.PL
--- old/Unicode-Stringprep-1.104/Makefile.PL 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/Makefile.PL 2014-09-03 20:29:18.000000000 +0200
@@ -1,17 +1,17 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.3800
+# Note: this file was auto-generated by Module::Build::Compat version 0.4208
require 5.008003;
use ExtUtils::MakeMaker;
WriteMakefile
(
- 'PL_FILES' => {},
- 'INSTALLDIRS' => 'site',
- 'NAME' => 'Unicode::Stringprep',
- 'EXE_FILES' => [],
- 'VERSION_FROM' => 'lib/Unicode/Stringprep.pm',
- 'PREREQ_PM' => {
- 'Test::More' => 0,
- 'Test::NoWarnings' => 0,
- 'Unicode::Normalize' => 1
- }
- )
+ 'PL_FILES' => {},
+ 'INSTALLDIRS' => 'site',
+ 'NAME' => 'Unicode::Stringprep',
+ 'EXE_FILES' => [],
+ 'VERSION_FROM' => 'lib/Unicode/Stringprep.pm',
+ 'PREREQ_PM' => {
+ 'Test::More' => 0,
+ 'Test::NoWarnings' => 0,
+ 'Unicode::Normalize' => 1
+ }
+)
;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/SIGNATURE new/Unicode-Stringprep-1.105/SIGNATURE
--- old/Unicode-Stringprep-1.104/SIGNATURE 2011-12-08 22:45:49.000000000 +0100
+++ new/Unicode-Stringprep-1.105/SIGNATURE 2014-09-03 20:29:20.000000000 +0200
@@ -1,5 +1,5 @@
This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.66.
+signed via the Module::Signature module, version 0.73.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
@@ -12,20 +12,20 @@
not run its Makefile.PL or Build.PL.
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
+Hash: SHA256
SHA1 6701a8831679bf0bef1a00ee92e3c8227d6ac1af Build.PL
-SHA1 56997ad02c8bb6444b2d82a457217867145a0b77 Changes
-SHA1 be42753051b0a286712b2df238e1654a883be73b LICENSE
+SHA1 735d6d420fc01bdadf56e2886a7b6a964afca400 Changes
+SHA1 f50df6f14ea5f27d9f62c654348eaeee2d223131 LICENSE
SHA1 5947211a7123cedadfe1fe4d58b0274a32045212 MANIFEST
-SHA1 2e87438f9a4c4b36a9adbd6e01ade962b4fce8d2 META.json
-SHA1 7e555241921865cf50a930ea467f4997ee792433 META.yml
-SHA1 ff5e339153c6a8874192cd2f10020ce759166622 Makefile.PL
+SHA1 be4125ecef7d2c4e575a442f8e6e1a551b8fdb21 META.json
+SHA1 f3b1ddfdf65be2c74504e31404dda1519cc5672d META.yml
+SHA1 ebe4edbe94c1302f5b43b9484d48125af7b656f0 Makefile.PL
SHA1 76b5306b21e526d332660e5ca9ad9a5f77eacaea README
SHA1 f6829baa052c940d0bd9ccecff132671f97395b3 eg/Nameprep.pm
SHA1 85a3ac0c5d7af229a576358a738c1bc0ddf03848 eg/Readme-Examples.pod
SHA1 43f88ca4db5e7eb71e2e01f068dac3006530d093 eg/SASLprep.pm
-SHA1 a011532784b72ad3e6ab57435338c83358dcdd79 lib/Unicode/Stringprep.pm
+SHA1 35915154aa7a03fa41fd2652b04f606b6967acdb lib/Unicode/Stringprep.pm
SHA1 06b50c467935acee6dce848b6a7a236d0c702bfb lib/Unicode/Stringprep/BiDi.pm
SHA1 2c2b5f45dec9a663690a614c3a7cbc324368f346 lib/Unicode/Stringprep/Mapping.pm
SHA1 321adeb3c3cc69b7d34bbce5a6ed9d0a7f01b96d lib/Unicode/Stringprep/Prohibited.pm
@@ -46,9 +46,12 @@
SHA1 f5053025cd885fb2828897100235fbb1eb57c9df t/saslprep.t
SHA1 34c09f6db7be90d9c8ebd3be1d10979d2af901b8 t/saslprep_bytes.t
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (Darwin)
-iEYEARECAAYFAk7hMAsACgkQSKUOY2OWgPDM0wCfQx/XtQQibl1/fEBzJ5OMzDZP
-9ZgAnj3cSv+BJtRW4l71JGahNRymsZEB
-=u6Vt
+iQEcBAEBCAAGBQJUB13+AAoJEIS+srvgrWBm9FMH/RaWfLktxmETvsO63nEh4P3x
+6cBAizjxghFDGIfX4u5iZNoj+h+Pp6ya9ZMe80r46TivJg7fEc4M9HhHGwczQhtb
+wNs5pwxk6D9qlXoFspiHpp3SfEtHz9auPzg+iBY9ILE+60xSMwLdq9i09juR2sin
+krSS9yj+01yX6zpcP8s6Nni9jvO3dKk1ZQEugcKEclA7JLB/MOilJMmHDUO6V9wa
+jiIquX0lrNHLLxaVQ0FKV9K1zItjqGkBwSfG7of4SnMd3kJKkrrfEs+NHJS2Zwim
+cHly3QuLFj9rKwaSjdDVsdFl5Tv5IwWCKAEZjLHaXxWv5ep/PRV08my1L2YAzBs=
+=K+s1
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Unicode-Stringprep-1.104/lib/Unicode/Stringprep.pm new/Unicode-Stringprep-1.105/lib/Unicode/Stringprep.pm
--- old/Unicode-Stringprep-1.104/lib/Unicode/Stringprep.pm 2011-12-08 22:45:47.000000000 +0100
+++ new/Unicode-Stringprep-1.105/lib/Unicode/Stringprep.pm 2014-09-03 20:29:18.000000000 +0200
@@ -6,7 +6,7 @@
use utf8;
use warnings;
-our $VERSION = "1.104";
+our $VERSION = "1.105";
$VERSION = eval $VERSION;
require Exporter;
@@ -139,10 +139,9 @@
return undef if !@set;
return '['.join('', map {
- sprintf( $_->[0] >= $_->[1]
- ? "\\x{%X}"
- : "\\x{%X}-\\x{%X}",
- @{$_})
+ $_->[0] >= $_->[1]
+ ? sprintf("\\x{%X}", $_->[0])
+ : sprintf("\\x{%X}-\\x{%X}", @{$_}[0,1])
} @set ).']';
}
--
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 mercurial for openSUSE:Factory checked in at 2014-09-15 17:41:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mercurial (Old)
and /work/SRC/openSUSE:Factory/.mercurial.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mercurial"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mercurial/mercurial.changes 2014-08-01 07:08:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mercurial.new/mercurial.changes 2014-09-15 18:25:14.000000000 +0200
@@ -1,0 +2,105 @@
+Mon Sep 15 10:31:08 UTC 2014 - develop7(a)develop7.info
+
+- update to v3.1.1
+
+ Changes in v3.1:
+ * backout: accept '--edit' like other commands creating new changeset
+ * bash_completion: add -l|--list support for shelve
+ * bookmarks: avoid deleting primary bookmarks on rebase
+ * bookmarks: improve the bookmark help (issue4244)
+ * branch: add debug message for branch cache write failure
+ * bugzilla: stop trying to cache setup across hook invocation
+ * build: initial support for in-tree autobuilding recipes
+ * buildrpm: include release version in .tar.gz name
+ * bundle2: add pushkey support
+ * bundle2: fix bundle2 pulling all revs on empty pulls
+ * commit: make commit message shown in text editor customizable by template
+ * config: allow 'user' in .hgrc ui section (issue3169)
+ * convert: detect removal of ".gitmodules" at git source revisions correctly
+ * convert: drastically speed up git conversions
+ * convert: mercurial source: convert global tags only - not local tags
+ * convert: only consider shamap revisions converted if they still exists
+ * convert: update the transplant, rebase and graft references in 'extra'
+ * diff: add nobinary config to suppress git-style binary diffs
+ * discovery: if a push would create a new head, mention the bookmark name if any
+ * filemerge: add internal:tagmerge merge tool
+ * filemerge: use 'basic' as the default of '[ui] mergemarkers' for safety
+ * filemerge: use non-minimal conflict marker regions (BC)
+ * gpg: accept '--edit' like other commands creating new changeset
+ * graft: customize graft conflict markers (BC)
+ * help: always show command help with -h (issue4240)
+ * help: suggest keyword search when no topic is found
+ * histedit: respect revsetalias entries (issue4311)
+ * import: add --partial flag to create a changeset despite failed hunks
+ * largefiles: avoid unnecessary creation of .hg/largefiles when opening lfdirstate
+ * largefiles: include largefiles when doing log on a directory (issue4241)
+ * largefiles: show also how many data entities are outgoing at "hg outgoing"
+ * largefiles: use "normallookup", if "mtime" of standin is unset
+ * log: allow revset for --follow to be lazily evaluated
+ * log: do not use exact matcher for --patch --follow without file (issue4319)
+ * log: make --patch --follow work inside a subdirectory
+ * make: add a basic osx mpkg target
+ * merge: add conflict marker formatter (BC)
+ * merge: define conflict marker labels in filemerge()
+ * mergetools.hgrc: add minimal configuration for editmerge
+ * packaging: move output directory from build/ to packages/
+ * pager: add attend-<command> option
+ * patchbomb: includes series information in the header
+ * pull: when remote supports it, pull phase data alongside changesets
+ * purge: add options for deleting only files or only directories
+ * push: use bundle2 to push phases when available
+ * qfold: allow to specify '--message/'--logfile' and '--edit' at the same time
+ * qimport: record imported revs incrementally (issue3874)
+ * qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
+ * rebase: specify custom conflict marker labels for rebase (BC)
+ * resolve: abort when not applicable (BC)
+ * resolve: don't abort resolve -l even when no merge is in progress
+ * resolve: print message when no unresolved files remain (issue4214)
+ * resolve: print warning when no work performed (issue4208)
+ * revset: maintain ordering when subtracting from a baseset (issue4289)
+ * revset: optimize baseset.sub (issue4313)
+ * setup: fixed for Pythons which don't have a CFLAGS
+ * setup: make Xcode 5.1 check less specific
+ * shelve: accept '--edit' like other commands creating new changeset
+ * strip: drop -b/--backup option (BC)
+ * strip: remove bookmarks after strip succeed (issue4295)
+ * templatefilter: add splitlines function
+ * templatekw: add 'currentbookmark' keyword to show current bookmark easily
+ * templatekw: add 'subrepos' keyword to show updated subrepositories
+ * templater: introduce startswith function
+ * templater: introduce word function
+ * templates: escape NUL bytes in jsonescape (issue4303)
+ * update: introduce --tool for controlling the merge tool
+ * update: show message when a bookmark is activated by update
+ * update: specify custom conflict markers for update (BC)
+ * update: when deactivating a bookmark, print a message
+ * version: show enabled extensions (issue4209)
+ * version: don't traceback if no extensions to list (issue4312)
+ * vim: use try catch in vim plugin to avoid conflicts
+
+ Changes in v3.1.1:
+ * changectx: ancestor should only prefer merge.preferancestor if it is a revision
+ * color: pass on key error for win32 (issue4298)
+ * config: exit non zero on non-existent config option (issue4247)
+ * context: call normal on the right object
+ * debugobsolete: catch ValueError that may be raised by obsstore.create
+ * discovery: prevent crash on unknown remote heads with old repo (issue4337)
+ * graft: fix collision detection with origin revisions that are missing
+ * help: add pad function to template help
+ * help: only call doc() when it is callable
+ * hgweb: avoid config object race with hgwebdir (issue4326)
+ * histedit: preserve initial author on fold (issue4296)
+ * import: show warning message for merge changesets
+ * incoming: don't request heads that already are common
+ * largefiles: don't override matchandpats for always matchers (issue4334)
+ * largefiles: drop setting lfstatus in overridelog (issue4334)
+ * largefiles: in overridelog, use non-lf matcher for patch generation (issue4334)
+ * log: use correct phase info for parent field (issue4347)
+ * merge: show the scary multiple ancestor hint for merges only, not for updates
+ * obsstore.create: add a simple safeguard against cyclic markers
+ * repoview: filter tags to non-existent nodes from blockers (issue4328)
+ * repoview: fix typo in repoview.changelog
+ * revset: bookmark revset interprets 'literal:' prefix correctly (issue4329)
+ * unbundle: don't advance bookmarks (issue4322) (BC)
+
+-------------------------------------------------------------------
Old:
----
mercurial-3.0.2.tar.gz
New:
----
mercurial-3.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mercurial.spec ++++++
--- /var/tmp/diff_new_pack.G2KNqY/_old 2014-09-15 18:25:15.000000000 +0200
+++ /var/tmp/diff_new_pack.G2KNqY/_new 2014-09-15 18:25:15.000000000 +0200
@@ -17,7 +17,7 @@
Name: mercurial
-Version: 3.0.2
+Version: 3.1.1
Release: 0
Summary: Scalable Distributed SCM
License: GPL-2.0+
++++++ mercurial-3.0.2.tar.gz -> mercurial-3.1.1.tar.gz ++++++
++++ 35502 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 python-alembic for openSUSE:Factory checked in at 2014-09-15 17:41:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-alembic (Old)
and /work/SRC/openSUSE:Factory/.python-alembic.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-alembic"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-alembic/python-alembic.changes 2014-07-26 09:42:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-alembic.new/python-alembic.changes 2014-09-15 18:25:12.000000000 +0200
@@ -1,0 +2,48 @@
+Mon Sep 15 05:25:46 UTC 2014 - tbechtold(a)suse.com
+
+- update to version 0.6.7:
+ * See
+ + http://alembic.readthedocs.org/en/latest/changelog.html#change-0.6.6
+ + http://alembic.readthedocs.org/en/latest/changelog.html#change-0.6.7
+ * Fixed bug in MSSQL dialect where "rename table" wasn't using
+ ``sp_rename()`` as is required on SQL Server. Pull request courtesy
+ * Added support for functional indexes when using the
+ :meth:`.Operations.create_index` directive. Within the list of columns,
+ the SQLAlchemy ``text()`` construct can be sent, embedding a literal
+ SQL expression; the :meth:`.Operations.create_index` will perform some
+ hackery behind the scenes to get the :class:`.Index` construct to cooperate.
+ This works around some current limitations in :class:`.Index`
+ which should be resolved on the SQLAlchemy side at some point.
+ * A file named ``__init__.py`` in the ``versions/`` directory is now
+ ignored by Alembic when the collection of version files is retrieved.
+ Pull request courtesy Michael Floering.
+ * Fixed Py3K bug where an attempt would be made to sort None against
+ string values when autogenerate would detect tables across multiple
+ schemas, including the default schema. Pull request courtesy
+ paradoxxxzero.
+ * Autogenerate render will render the arguments within a Table construct
+ using ``*[...]`` when the number of columns/elements is greater than
+ 255. Pull request courtesy Ryan P. Kelly.
+ * Fixed bug where foreign key constraints would fail to render in
+ autogenerate when a schema name was present. Pull request courtesy
+ Andreas Zeidler.
+ * Some deep-in-the-weeds fixes to try to get "server default" comparison
+ working better across platforms and expressions, in particular on
+ the Postgresql backend, mostly dealing with quoting/not quoting of various
+ expressions at the appropriate time and on a per-backend basis.
+ Repaired and tested support for such defaults as Postgresql interval
+ and array defaults.
+ * When a run of Alembic command line fails due to ``CommandError``,
+ the output now prefixes the string with ``"FAILED:"``, and the error
+ is also written to the log output using ``log.error()``.
+ * Liberalized even more the check for MySQL indexes that shouldn't be
+ counted in autogenerate as "drops"; this time it's been reported
+ that an implicitly created index might be named the same as a composite
+ foreign key constraint, and not the actual columns, so we now skip those
+ when detected as well.
+ * Added a new accessor :attr:`.MigrationContext.config`, when used
+ in conjunction with a :class:`.EnvironmentContext` and
+ :class:`.Config`, this config will be returned. Patch
+ courtesy Marc Abramowitz.
+
+-------------------------------------------------------------------
Old:
----
alembic-0.6.5.tar.gz
New:
----
alembic-0.6.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-alembic.spec ++++++
--- /var/tmp/diff_new_pack.ogadJG/_old 2014-09-15 18:25:13.000000000 +0200
+++ /var/tmp/diff_new_pack.ogadJG/_new 2014-09-15 18:25:13.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-alembic
-Version: 0.6.5
+Version: 0.6.7
Release: 0
Url: http://bitbucket.org/zzzeek/alembic
Summary: A database migration tool for SQLAlchemy
++++++ alembic-0.6.5.tar.gz -> alembic-0.6.7.tar.gz ++++++
++++ 10828 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 python-WebOb for openSUSE:Factory checked in at 2014-09-15 17:41:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-WebOb (Old)
and /work/SRC/openSUSE:Factory/.python-WebOb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-WebOb"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-WebOb/python-WebOb.changes 2014-02-21 06:57:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-WebOb.new/python-WebOb.changes 2014-09-15 18:25:11.000000000 +0200
@@ -1,0 +2,60 @@
+Mon Sep 15 05:01:59 UTC 2014 - tbechtold(a)suse.com
+
+- update to version 1.4:
+ * Remove ``webob.__version__``, the version number had not been kept in sync
+ with the official pkg version. To obtain the WebOb version number, use
+ ``pkg_resources.get_distribution('webob').version`` instead.
+ * Fix a bug in ``EmptyResponse`` that prevents it from setting self.close as
+ appropriate due to testing truthiness of object rather than if it is
+ something other than ``None``.
+ * Fix a bug in ``SignedSerializer`` preventing secrets from containing
+ higher-order characters. See https://github.com/Pylons/webob/issues/136
+ * Use the ``hmac.compare_digest`` method when available for constant-time
+ comparisons.
+ * Fix a bug in ``SignedCookieProfile`` whereby we didn't keep the original
+ serializer around, this would cause us to have ``SignedSerializer`` be added
+ on top of a ``SignedSerializer`` which would cause it to be run twice when
+ attempting to verify a cookie. See https://github.com/Pylons/webob/pull/127
+ * Backwards Incompatible change: When ``CookieProfile.get_value`` and
+ ``SignedCookieProfile.get_value`` fails to deserialize a badly encoded
+ value, we now return ``None`` as if the cookie was never set in the first
+ place instead of allowing a ``ValueError`` to be raised to the calling code.
+ See https://github.com/Pylons/webob/pull/126
+ * Added a read-only ``domain`` property to ``BaseRequest``. This property
+ returns the domain portion of the host value. For example, if the
+ environment contains an ``HTTP_HOST`` value of ``foo.example.com:8000``,
+ ``request.domain`` will return ``foo.example.com``.
+ * Added five new APIs: ``webob.cookies.CookieProfile``,
+ ``webob.cookies.SignedCookieProfile``, ``webob.cookies.JSONSerializer`` and
+ ``webob.cookies.SignedSerializer``, and ``webob.cookies.make_cookie``. These
+ APIs are convenience APIs for generating and parsing cookie headers as well
+ as dealing with signing cookies.
+ * Cookies generated via webob.cookies quoted characters in cookie values that
+ did not need to be quoted per RFC 6265. The following characters are no
+ longer quoted in cookie values: ``~/=<>()[]{}?@`` . The full set of
+ non-letter-or-digit unquoted cookie value characters is now
+ ``!#$%&'*+-.^_`|~/: =<>()[]{}?@``. See
+ http://tools.ietf.org/html/rfc6265#section-4.1.1 for more information.
+ * Cookie names are now restricted to the set of characters expected by RFC
+ 6265. Previously they could contain unsupported characters such as ``/``.
+ * Older versions of Webob escaped the doublequote to ``\"`` and the backslash
+ to ``\\`` when quoting cookie values. Now, instead, cookie serialization
+ generates ``\042`` for the doublequote and ``\134`` for the backslash. This
+ is what is expected as per RFC 6265. Note that old cookie values that do
+ have the older style quoting in them will still be unquoted correctly,
+ however.
+ * Added support for draft status code 451 ("Unavailable for Legal Reasons").
+ See http://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00
+ * Added status codes 428, 429, 431 and 511 to ``util.status_reasons`` (they
+ were already present in a previous release as ``webob.exc`` exceptions).
+ * MIMEAccept happily parsed malformed wildcard strings like "image/pn*" at
+ parse time, but then threw an AssertionError during matching. See
+ https://github.com/Pylons/webob/pull/83 .
+ * Preserve document ordering of GET and POST request data when POST data
+ passed to Request.blank is a MultiDict.
+ See https://github.com/Pylons/webob/pull/96
+ * Allow query strings attached to PATCH requests to populate request.params.
+ See https://github.com/Pylons/webob/pull/106
+ * Added Python 3.3 trove classifier.
+
+-------------------------------------------------------------------
Old:
----
WebOb-1.2.3.tar.gz
New:
----
WebOb-1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-WebOb.spec ++++++
--- /var/tmp/diff_new_pack.jWCm7y/_old 2014-09-15 18:25:12.000000000 +0200
+++ /var/tmp/diff_new_pack.jWCm7y/_new 2014-09-15 18:25:12.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-WebOb
-Version: 1.2.3
+Version: 1.4
Release: 0
Summary: WSGI request and response object
License: MIT
@@ -77,6 +77,6 @@
%files doc
%defattr(-,root,root,-)
-%doc news build/sphinx/html
+%doc build/sphinx/html
%changelog
++++++ WebOb-1.2.3.tar.gz -> WebOb-1.4.tar.gz ++++++
++++ 2495 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 python-WSME for openSUSE:Factory checked in at 2014-09-15 17:41:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-WSME (Old)
and /work/SRC/openSUSE:Factory/.python-WSME.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-WSME"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-WSME/python-WSME.changes 2014-02-26 06:55:11.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-WSME.new/python-WSME.changes 2014-09-15 18:25:09.000000000 +0200
@@ -1,0 +2,14 @@
+Mon Sep 15 04:56:46 UTC 2014 - tbechtold(a)suse.com
+
+- Update to version 0.6.1:
+ * one more update for 0.6.1 change list
+ * Fix error: variable 'kw' referenced before assignment
+ * Fix pep8 errors
+ * Update change list for 0.6.1 release
+ * Fix default handling for zero values
+ * Fixing spelling mistakes
+ * A proper check of UuidType
+ * pecan: cleanup, use global vars and staticmethod
+ * args_from_args() to work with an instance of UserType
+
+-------------------------------------------------------------------
Old:
----
WSME-0.6.tar.gz
New:
----
WSME-0.6.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-WSME.spec ++++++
--- /var/tmp/diff_new_pack.SLjumA/_old 2014-09-15 18:25:10.000000000 +0200
+++ /var/tmp/diff_new_pack.SLjumA/_new 2014-09-15 18:25:10.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-WSME
-Version: 0.6
+Version: 0.6.1
Release: 0
Summary: Web Services Made Easy
License: MIT
++++++ WSME-0.6.tar.gz -> WSME-0.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/ChangeLog new/WSME-0.6.1/ChangeLog
--- old/WSME-0.6/ChangeLog 2014-02-06 15:49:32.000000000 +0100
+++ new/WSME-0.6.1/ChangeLog 2014-05-02 15:27:16.000000000 +0200
@@ -1,6 +1,19 @@
CHANGES
=======
+0.6.1
+-----
+
+* one more update for 0.6.1 change list
+* Fix error: variable 'kw' referenced before assignment
+* Fix pep8 errors
+* Update change list for 0.6.1 release
+* Fix default handling for zero values
+* Fixing spelling mistakes
+* A proper check of UuidType
+* pecan: cleanup, use global vars and staticmethod
+* args_from_args() to work with an instance of UserType
+
0.6
---
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/PKG-INFO new/WSME-0.6.1/PKG-INFO
--- old/WSME-0.6/PKG-INFO 2014-02-06 15:49:32.000000000 +0100
+++ new/WSME-0.6.1/PKG-INFO 2014-05-02 15:27:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: WSME
-Version: 0.6
+Version: 0.6.1
Summary: Simplify the writing of REST APIs, and extend them with additional protocols.
Home-page: UNKNOWN
Author: "Christophe de Vienne"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/WSME.egg-info/PKG-INFO new/WSME-0.6.1/WSME.egg-info/PKG-INFO
--- old/WSME-0.6/WSME.egg-info/PKG-INFO 2014-02-06 15:49:32.000000000 +0100
+++ new/WSME-0.6.1/WSME.egg-info/PKG-INFO 2014-05-02 15:27:16.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: WSME
-Version: 0.6
+Version: 0.6.1
Summary: Simplify the writing of REST APIs, and extend them with additional protocols.
Home-page: UNKNOWN
Author: "Christophe de Vienne"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/WSME.egg-info/SOURCES.txt new/WSME-0.6.1/WSME.egg-info/SOURCES.txt
--- old/WSME-0.6/WSME.egg-info/SOURCES.txt 2014-02-06 15:49:32.000000000 +0100
+++ new/WSME-0.6.1/WSME.egg-info/SOURCES.txt 2014-05-02 15:27:16.000000000 +0200
@@ -54,6 +54,7 @@
tests/pecantest/test/tests/__init__.py
tests/pecantest/test/tests/config.py
tests/pecantest/test/tests/test_ws.py
+tests/rest/test_args.py
tests/sphinxexample/conf.py
tests/sphinxexample/document.rst
tests/sphinxexample/index.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/doc/changes.rst new/WSME-0.6.1/doc/changes.rst
--- old/WSME-0.6/doc/changes.rst 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/doc/changes.rst 2014-05-02 15:27:08.000000000 +0200
@@ -1,6 +1,30 @@
Changes
=======
+0.6.1
+-----
+
+* Fix error: variable 'kw' referenced before assignment
+* Fix default handling for zero values
+* Fixing spelling mistakes
+* A proper check of UuidType
+* pecan: cleanup, use global vars and staticmethod
+* args_from_args() to work with an instance of UserType
+
+0.6
+---
+
+* Add 'readonly' parameter to wsattr
+* Fix typos in documents and comments
+* Support dynamic types
+* Support building wheels (PEP-427)
+* Fix a typo in the types documentation
+* Add IntegerType and some classes for validation
+* Use assertRaises() for negative tests
+* Remove the duplicated error message from Enum
+* Drop description from 403 flask test case
+* Fix SyntaxWarning under Python 3
+
0.5b6 (2013-10-16)
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/doc/types.rst new/WSME-0.6.1/doc/types.rst
--- old/WSME-0.6/doc/types.rst 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/doc/types.rst 2014-05-02 15:27:07.000000000 +0200
@@ -59,8 +59,8 @@
def getlist(self):
return ['a', 'b', 'c']
- - Dictionnaries -- Statically typed mapping are allowed. When exposing
- a dictionnary datatype, you can specify the key and value types,
+ - Dictionaries -- Statically typed mapping are allowed. When exposing
+ a dictionary datatype, you can specify the key and value types,
with a restriction on the key value that must be a 'pod' type.
Example::
@@ -80,7 +80,7 @@
or needs to validate data integrity.
To define a user type, you just have to inherit from
-:class:`wsme.types.UserType` and instanciate your new class. This instance
+:class:`wsme.types.UserType` and instantiate your new class. This instance
will be your new type and can be used as @\ :class:`wsme.expose` or
@\ :class:`wsme.validate` parameters.
@@ -171,7 +171,7 @@
- The class must have a default constructor --
Since instances of the type will be created by the protocols when
- used as input types, they must be instanciable without any argument.
+ used as input types, they must be instantiable without any argument.
- Complex types are registered automatically
(and thus inspected) as soon a they are used in expose or validate,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/tests/rest/test_args.py new/WSME-0.6.1/tests/rest/test_args.py
--- old/WSME-0.6/tests/rest/test_args.py 1970-01-01 01:00:00.000000000 +0100
+++ new/WSME-0.6.1/tests/rest/test_args.py 2014-05-02 15:27:07.000000000 +0200
@@ -0,0 +1,20 @@
+import mock
+import unittest
+
+from wsme import exc
+from wsme.rest import args
+from wsme.rest import json
+
+
+class TestArgs(unittest.TestCase):
+
+ def test_args_from_body(self):
+
+ funcdef = mock.MagicMock()
+ body = mock.MagicMock()
+ mimetype = "application/json"
+ funcdef.ignore_extra_args = True
+ json.parse = mock.MagicMock()
+ json.parse.side_effect = (exc.UnknownArgument(""))
+ resp = args.args_from_body(funcdef, body, mimetype)
+ self.assertEqual(resp, ((), {}))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/rest/args.py new/WSME-0.6.1/wsme/rest/args.py
--- old/WSME-0.6/wsme/rest/args.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/rest/args.py 2014-05-02 15:27:07.000000000 +0200
@@ -18,7 +18,7 @@
@generic
def from_param(datatype, value):
- return datatype(value) if value else None
+ return datatype(value) if value is not None else None
@from_param.when_object(datetime.date)
@@ -171,10 +171,14 @@
try:
newargs.append(from_param(argdef.datatype, arg))
except Exception:
+ if isinstance(argdef.datatype, UserType):
+ datatype_name = argdef.datatype.name
+ else:
+ datatype_name = argdef.datatype.__name__
raise InvalidInput(
argdef.name,
arg,
- "unable to convert to %s" % argdef.datatype.__name__)
+ "unable to convert to %s" % datatype_name)
newkwargs = {}
for argname, value in kwargs.items():
newkwargs[argname] = from_param(
@@ -228,6 +232,7 @@
except UnknownArgument:
if not funcdef.ignore_extra_args:
raise
+ kw = {}
return (), kw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/rest/json.py new/WSME-0.6.1/wsme/rest/json.py
--- old/WSME-0.6/wsme/rest/json.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/rest/json.py 2014-05-02 15:27:07.000000000 +0200
@@ -262,8 +262,6 @@
def encode_sample_result(datatype, value, format=False):
r = tojson(datatype, value)
- #if self.nest_result:
- #r = {'result': r}
content = json.dumps(r, ensure_ascii=False, indent=4 if format else 0,
sort_keys=format)
return ('javascript', content)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/tests/test_protocols_commons.py new/WSME-0.6.1/wsme/tests/test_protocols_commons.py
--- old/WSME-0.6/wsme/tests/test_protocols_commons.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/tests/test_protocols_commons.py 2014-05-02 15:27:07.000000000 +0200
@@ -3,7 +3,9 @@
import datetime
import unittest
-from wsme.rest.args import from_param, from_params
+from wsme.api import FunctionArgument, FunctionDefinition
+from wsme.rest.args import from_param, from_params, args_from_args
+from wsme.exc import InvalidInput
from wsme.types import UserType, Unset, ArrayType, DictType
@@ -52,3 +54,53 @@
def test_from_params_dict_unset(self):
assert from_params(DictType(int, str), {}, 'a', set()) is Unset
+
+ def test_args_from_args_usertype(self):
+
+ class FakeType(UserType):
+ name = 'fake-type'
+ basetype = int
+
+ fake_type = FakeType()
+ fd = FunctionDefinition(FunctionDefinition)
+ fd.arguments.append(FunctionArgument('fake-arg', fake_type, True, 0))
+
+ new_args = args_from_args(fd, [1], {})
+ self.assertEqual([1], new_args[0])
+
+ # can't convert str to int
+ try:
+ args_from_args(fd, ['invalid-argument'], {})
+ except InvalidInput as e:
+ assert fake_type.name in str(e)
+ else:
+ self.fail('Should have thrown an InvalidInput')
+
+
+class ArgTypeConversion(unittest.TestCase):
+
+ def test_int_zero(self):
+ self.assertEqual(0, from_param(int, 0))
+ self.assertEqual(0, from_param(int, '0'))
+
+ def test_int_nonzero(self):
+ self.assertEqual(1, from_param(int, 1))
+ self.assertEqual(1, from_param(int, '1'))
+
+ def test_int_none(self):
+ self.assertEqual(None, from_param(int, None))
+
+ def test_float_zero(self):
+ self.assertEqual(0.0, from_param(float, 0))
+ self.assertEqual(0.0, from_param(float, 0.0))
+ self.assertEqual(0.0, from_param(float, '0'))
+ self.assertEqual(0.0, from_param(float, '0.0'))
+
+ def test_float_nonzero(self):
+ self.assertEqual(1.0, from_param(float, 1))
+ self.assertEqual(1.0, from_param(float, 1.0))
+ self.assertEqual(1.0, from_param(float, '1'))
+ self.assertEqual(1.0, from_param(float, '1.0'))
+
+ def test_float_none(self):
+ self.assertEqual(None, from_param(float, None))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/tests/test_restjson.py new/WSME-0.6.1/wsme/tests/test_restjson.py
--- old/WSME-0.6/wsme/tests/test_restjson.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/tests/test_restjson.py 2014-05-02 15:27:07.000000000 +0200
@@ -330,14 +330,6 @@
)
assert r[0] == 'javascript', r[0]
assert r[1] == '''2'''
- #self.root.protocols[0].nest_result = True
- #r = wsme.rest.json.encode_sample_result(
- #int, 2, True
- #)
- #assert r[0] == 'javascript', r[0]
- #assert r[1] == '''{
- #"result": 2
-#}'''
def test_PUT(self):
data = {"id": 1, "name": u("test")}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/tests/test_types.py new/WSME-0.6.1/wsme/tests/test_types.py
--- old/WSME-0.6/wsme/tests/test_types.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/tests/test_types.py 2014-05-02 15:27:07.000000000 +0200
@@ -345,8 +345,10 @@
def test_validate_uuid_type(self):
v = types.UuidType()
- v.validate('6a0a707c-45ef-4758-b533-e55adddba8ce')
- v.validate('6a0a707c45ef4758b533e55adddba8ce')
+ self.assertEqual(v.validate('6a0a707c-45ef-4758-b533-e55adddba8ce'),
+ '6a0a707c-45ef-4758-b533-e55adddba8ce')
+ self.assertEqual(v.validate('6a0a707c45ef4758b533e55adddba8ce'),
+ '6a0a707c-45ef-4758-b533-e55adddba8ce')
self.assertRaises(ValueError, v.validate, '')
self.assertRaises(ValueError, v.validate, 'foo')
self.assertRaises(ValueError, v.validate,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsme/types.py new/WSME-0.6.1/wsme/types.py
--- old/WSME-0.6/wsme/types.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsme/types.py 2014-05-02 15:27:07.000000000 +0200
@@ -69,7 +69,7 @@
class DictType(object):
def __init__(self, key_type, value_type):
if key_type not in pod_types:
- raise ValueError("Dictionnaries key can only be a pod type")
+ raise ValueError("Dictionaries key can only be a pod type")
self.key_type = key_type
if iscomplex(value_type):
self._value_type = weakref.ref(value_type)
@@ -270,7 +270,7 @@
@staticmethod
def validate(value):
try:
- uuid.UUID(value)
+ return six.text_type((uuid.UUID(value)))
except (TypeError, ValueError, AttributeError):
error = 'Value should be UUID format'
raise ValueError(error)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsmeext/pecan.py new/WSME-0.6.1/wsmeext/pecan.py
--- old/WSME-0.6/wsmeext/pecan.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsmeext/pecan.py 2014-05-02 15:27:07.000000000 +0200
@@ -15,10 +15,12 @@
class JSonRenderer(object):
- def __init__(self, path, extra_vars):
+ @staticmethod
+ def __init__(path, extra_vars):
pass
- def render(self, template_path, namespace):
+ @staticmethod
+ def render(template_path, namespace):
if 'faultcode' in namespace:
return wsme.rest.json.encode_error(None, namespace)
return wsme.rest.json.encode_result(
@@ -28,10 +30,12 @@
class XMLRenderer(object):
- def __init__(self, path, extra_vars):
+ @staticmethod
+ def __init__(path, extra_vars):
pass
- def render(self, template_path, namespace):
+ @staticmethod
+ def render(template_path, namespace):
if 'faultcode' in namespace:
return wsme.rest.xml.encode_error(None, namespace)
return wsme.rest.xml.encode_result(
@@ -42,22 +46,23 @@
pecan.templating._builtin_renderers['wsmejson'] = JSonRenderer
pecan.templating._builtin_renderers['wsmexml'] = XMLRenderer
+pecan_json_decorate = pecan.expose(
+ template='wsmejson:',
+ content_type='application/json',
+ generic=False)
+pecan_xml_decorate = pecan.expose(
+ template='wsmexml:',
+ content_type='application/xml',
+ generic=False
+)
+pecan_text_xml_decorate = pecan.expose(
+ template='wsmexml:',
+ content_type='text/xml',
+ generic=False
+)
+
def wsexpose(*args, **kwargs):
- pecan_json_decorate = pecan.expose(
- template='wsmejson:',
- content_type='application/json',
- generic=False)
- pecan_xml_decorate = pecan.expose(
- template='wsmexml:',
- content_type='application/xml',
- generic=False
- )
- pecan_text_xml_decorate = pecan.expose(
- template='wsmexml:',
- content_type='text/xml',
- generic=False
- )
sig = wsme.signature(*args, **kwargs)
def decorate(f):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsmeext/soap/protocol.py new/WSME-0.6.1/wsmeext/soap/protocol.py
--- old/WSME-0.6/wsmeext/soap/protocol.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsmeext/soap/protocol.py 2014-05-02 15:27:07.000000000 +0200
@@ -56,7 +56,6 @@
int: 'xs:int',
float: "xs:float",
bool: "xs:boolean",
- #unsigned: "xs:unsignedInt",
datetime.datetime: "xs:dateTime",
datetime.date: "xs:date",
datetime.time: "xs:time",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsmeext/sqlalchemy/types.py new/WSME-0.6.1/wsmeext/sqlalchemy/types.py
--- old/WSME-0.6/wsmeext/sqlalchemy/types.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsmeext/sqlalchemy/types.py 2014-05-02 15:27:07.000000000 +0200
@@ -125,9 +125,9 @@
for attr in self._wsme_attributes:
if not isinstance(attr, wsattr):
continue
- if attrs and not attr.isrelation and not attr.name in attrs:
+ if attrs and not attr.isrelation and attr.name not in attrs:
continue
- if attr.isrelation and not attr.name in eagerload:
+ if attr.isrelation and attr.name not in eagerload:
continue
value = getattr(instance, attr.saname)
if attr.isrelation:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/WSME-0.6/wsmeext/tests/test_soap.py new/WSME-0.6.1/wsmeext/tests/test_soap.py
--- old/WSME-0.6/wsmeext/tests/test_soap.py 2014-02-06 15:49:22.000000000 +0100
+++ new/WSME-0.6.1/wsmeext/tests/test_soap.py 2014-05-02 15:27:07.000000000 +0200
@@ -258,7 +258,7 @@
return [fromsuds(dt[0], item) for item in value.item]
if wsme.types.isarray(dt):
return [fromsuds(dt.item_type, item) for item in value.item]
- if wsme.types.isusertype(dt) and not dt in fromsuds_types:
+ if wsme.types.isusertype(dt) and dt not in fromsuds_types:
dt = dt.basetype
if dt in fromsuds_types:
print(dt, value)
@@ -390,12 +390,7 @@
return self._sudsclient
def test_wsdl(self):
- #assert res.body.find('NestedOuter_Array') != -1
- #assert 'returntypesGettext' in res.body
- #assert 'returntypesGettextResponse' in res.body
-#
c = self.sudsclient
- print(c)
assert c.wsdl.tns[1] == tns, c.wsdl.tns
sd = c.sd[0]
--
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 phpMyAdmin for openSUSE:Factory checked in at 2014-09-15 17:41:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/phpMyAdmin (Old)
and /work/SRC/openSUSE:Factory/.phpMyAdmin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "phpMyAdmin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/phpMyAdmin/phpMyAdmin.changes 2014-09-06 17:02:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.phpMyAdmin.new/phpMyAdmin.changes 2014-09-15 18:25:08.000000000 +0200
@@ -1,0 +2,10 @@
+Sun Sep 14 21:10:17 UTC 2014 - chris(a)computersalat.de
+
+- fix for bnc#896635
+ * update to 4.2.8.1 (2014-09-13)
+ * PMASA-2014-10 (CVE-2014-6300, CWE-661 CWE-352)
+ http://www.phpmyadmin.net/home_page/security/PMASA-2014-10.php
+ - sf#4530 [security] DOM based XSS that results to a CSRF
+ that creates a ROOT account in certain conditions
+
+-------------------------------------------------------------------
Old:
----
phpMyAdmin-4.2.8-all-languages.tar.bz2
New:
----
phpMyAdmin-4.2.8.1-all-languages.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ phpMyAdmin.spec ++++++
--- /var/tmp/diff_new_pack.rZF6aR/_old 2014-09-15 18:25:09.000000000 +0200
+++ /var/tmp/diff_new_pack.rZF6aR/_new 2014-09-15 18:25:09.000000000 +0200
@@ -34,7 +34,7 @@
Summary: Administration of MySQL over the web
License: GPL-2.0+
Group: Productivity/Networking/Web/Frontends
-Version: 4.2.8
+Version: 4.2.8.1
Release: 0
Url: http://www.phpMyAdmin.net
Source0: http://sourceforge.net/projects/phpmyadmin/files/%{name}-%{version}-all-lan…
++++++ phpMyAdmin-4.2.8-all-languages.tar.bz2 -> phpMyAdmin-4.2.8.1-all-languages.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/phpMyAdmin/phpMyAdmin-4.2.8-all-languages.tar.bz2 /work/SRC/openSUSE:Factory/.phpMyAdmin.new/phpMyAdmin-4.2.8.1-all-languages.tar.bz2 differ: char 11, 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 tvbrowser for openSUSE:Factory checked in at 2014-09-15 17:41:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tvbrowser (Old)
and /work/SRC/openSUSE:Factory/.tvbrowser.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tvbrowser"
Changes:
--------
--- /work/SRC/openSUSE:Factory/tvbrowser/tvbrowser.changes 2014-07-04 09:34:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tvbrowser.new/tvbrowser.changes 2014-09-15 18:25:05.000000000 +0200
@@ -1,0 +2,8 @@
+Sat Sep 13 18:46:11 UTC 2014 - ecsos(a)schirra.net
+
+- Update to version 3.4.0.1
+ Fix for TV-Browser might not start because of a configuration fault
+ in the change of the channel charing of Comedy Central (de),
+ VIVA (de) and Nickelodeon (de).
+
+-------------------------------------------------------------------
Old:
----
tvbrowser_3.4_src.zip
New:
----
tvbrowser_3.4.0.1_src.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tvbrowser.spec ++++++
--- /var/tmp/diff_new_pack.SsvV1P/_old 2014-09-15 18:25:07.000000000 +0200
+++ /var/tmp/diff_new_pack.SsvV1P/_new 2014-09-15 18:25:07.000000000 +0200
@@ -20,7 +20,7 @@
Summary: Digital TV guide
License: GPL-3.0+
Group: Productivity/Multimedia/Other
-Version: 3.4
+Version: 3.4.0.1
Release: 0
Requires: java >= 1.6
Url: http://tv-browser.org
--
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 python-cliff for openSUSE:Factory checked in at 2014-09-15 17:41:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cliff (Old)
and /work/SRC/openSUSE:Factory/.python-cliff.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cliff"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cliff/python-cliff.changes 2014-06-30 21:50:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-cliff.new/python-cliff.changes 2014-09-15 18:25:03.000000000 +0200
@@ -1,0 +2,20 @@
+Sat Sep 13 16:47:41 UTC 2014 - tbechtold(a)suse.com
+
+- update to 1.7.0:
+ * Add release notes for 1.7.0
+ * Fix stable integration tests
+ * Updated from global requirements
+ * Clean up default tox environment list
+ * Do not allow wheels for stable tests
+ * Set the main logger name to match the application
+ * CSV formatter should use system-dependent line ending
+ * Make show option compatible with Python 2.6
+ * Use six.add_metaclass instead of __metaclass__
+ * fixed typos found by RETF rules
+ * The --variable option to shell format is redundant
+ * Expose load_commands publicly
+ * Fix wrong method name assert_called_once
+ * Updated from global requirements
+ * Fix pep8 failures on rule E265
+
+-------------------------------------------------------------------
Old:
----
cliff-1.6.1.tar.gz
New:
----
cliff-1.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cliff.spec ++++++
--- /var/tmp/diff_new_pack.hvkShz/_old 2014-09-15 18:25:05.000000000 +0200
+++ /var/tmp/diff_new_pack.hvkShz/_new 2014-09-15 18:25:05.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-cliff
-Version: 1.6.1
+Version: 1.7.0
Release: 0
Url: https://github.com/dreamhost/cliff
Summary: Command Line Interface Formulation Framework
@@ -32,21 +32,21 @@
BuildRequires: python-PrettyTable
BuildRequires: python-Sphinx
BuildRequires: python-cmd2
-BuildRequires: python-coverage
-BuildRequires: python-mock >= 1.0.1
+BuildRequires: python-coverage >= 3.6
+BuildRequires: python-mock >= 1.0
BuildRequires: python-nose
BuildRequires: python-pbr
BuildRequires: python-pyparsing >= 2.0.1
BuildRequires: python-six
BuildRequires: python-stevedore
-Requires: python-PrettyTable >= 0.6
+Requires: python-PrettyTable >= 0.7
%if 0%{?suse_version} <= 1110
Requires: python-argparse
%endif
Requires: python-cmd2 >= 0.6.7
Requires: python-pyparsing >= 2.0.1
-Requires: python-six
-Requires: python-stevedore
+Requires: python-six >= 1.7.0
+Requires: python-stevedore >= 0.14
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%py_requires
@@ -65,6 +65,10 @@
Requires: %{name} = %{version}
%description doc
+cliff is a framework for building command line programs. It uses
+setuptools entry points to provide subcommands, output formatters, and
+other extensions.
+
This package contains documentation files for %{name}.
%prep
++++++ cliff-1.6.1.tar.gz -> cliff-1.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/AUTHORS new/cliff-1.7.0/AUTHORS
--- old/cliff-1.6.1/AUTHORS 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/AUTHORS 2014-09-08 16:54:18.000000000 +0200
@@ -1 +1,28 @@
-
+Andrea Frittoli <andrea.frittoli(a)hp.com>
+ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Christian Berendt <berendt(a)b1-systems.de>
+Christophe CHAUVET <christophe.chauvet(a)gmail.com>
+Clint Byrum <clint(a)fewbar.com>
+Dean Troyer <dtroyer(a)gmail.com>
+Dirk Mueller <dirk(a)dmllr.de>
+Dirk Mueller <dirk@dmllr>
+Doug Hellmann <doug.hellmann(a)dreamhost.com>
+Doug Hellmann <doug.hellmann(a)gmail.com>
+Doug Hellmann <doug(a)doughellmann.com>
+Duncan McGreggor <duncan(a)dreamhost.com>
+Feodor Tersin <ftersin(a)cloudscaling.com>
+Ilya Shakhat <ishakhat(a)mirantis.com>
+Jamie Lennox <jamielennox(a)redhat.com>
+Joe Server <jserver(a)broadway.com>
+Jonathan LaCour <jonathan(a)cleverdevil.org>
+Mark McClain <mark.mcclain(a)dreamhost.com>
+Matt Joyce <matt.joyce(a)cloudscaling.com>
+Monty Taylor <mordred(a)inaugust.com>
+Qiu Yu <qiuyu(a)ebaysf.com>
+Ryan Petrello <lists(a)ryanpetrello.com>
+Sascha Peilicke <saschpe(a)gmx.de>
+Terry Howe <terrylhowe(a)gmail.com>
+Tomaz Muraus <tomaz(a)tomaz.me>
+heavenshell <heavenshell.jp(a)gmail.com>
+markmcclain <mark(a)four-m.org>
+qneill <quentin.neill(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/ChangeLog new/cliff-1.7.0/ChangeLog
--- old/cliff-1.6.1/ChangeLog 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/ChangeLog 2014-09-08 16:54:18.000000000 +0200
@@ -1,6 +1,25 @@
CHANGES
=======
+1.7.0
+-----
+
+* Add release notes for 1.7.0
+* Fix stable integration tests
+* Updated from global requirements
+* Clean up default tox environment list
+* Do not allow wheels for stable tests
+* Set the main logger name to match the application
+* CSV formatter should use system-dependent line ending
+* Make show option compatible with Python 2.6
+* Use six.add_metaclass instead of __metaclass__
+* fixed typos found by RETF rules
+* The --variable option to shell format is redundant
+* Expose load_commands publicly
+* Fix wrong method name assert_called_once
+* Updated from global requirements
+* Fix pep8 failures on rule E265
+
1.6.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/PKG-INFO new/cliff-1.7.0/PKG-INFO
--- old/cliff-1.6.1/PKG-INFO 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/PKG-INFO 2014-09-08 16:54:19.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: cliff
-Version: 1.6.1
+Version: 1.7.0
Summary: Command Line Interface Formulation Framework
Home-page: https://launchpad.net/python-cliff
Author: Doug Hellmann
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/app.py new/cliff-1.7.0/cliff/app.py
--- old/cliff-1.6.1/cliff/app.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/app.py 2014-09-08 16:53:54.000000000 +0200
@@ -33,9 +33,6 @@
logging.getLogger('cliff').addHandler(NullHandler())
-LOG = logging.getLogger(__name__)
-
-
class App(object):
"""Application base class.
@@ -57,6 +54,7 @@
"""
NAME = os.path.splitext(os.path.basename(sys.argv[0]))[0]
+ LOG = logging.getLogger(NAME)
CONSOLE_MESSAGE_FORMAT = '%(message)s'
LOG_FILE_MESSAGE_FORMAT = \
@@ -205,10 +203,10 @@
else:
debug = True
if debug:
- LOG.exception(err)
+ self.LOG.exception(err)
raise
else:
- LOG.error(err)
+ self.LOG.error(err)
return 1
result = 1
if self.interactive_mode:
@@ -265,7 +263,7 @@
if self.options.debug:
raise
else:
- LOG.error(err)
+ self.LOG.error(err)
return 2
cmd_factory, cmd_name, sub_argv = subcommand
cmd = cmd_factory(self, self.options)
@@ -282,16 +280,16 @@
result = cmd.run(parsed_args)
except Exception as err:
if self.options.debug:
- LOG.exception(err)
+ self.LOG.exception(err)
else:
- LOG.error(err)
+ self.LOG.error(err)
try:
self.clean_up(cmd, result, err)
except Exception as err2:
if self.options.debug:
- LOG.exception(err2)
+ self.LOG.exception(err2)
else:
- LOG.error('Could not clean up: %s', err2)
+ self.LOG.error('Could not clean up: %s', err2)
if self.options.debug:
raise
else:
@@ -299,7 +297,7 @@
self.clean_up(cmd, result, None)
except Exception as err3:
if self.options.debug:
- LOG.exception(err3)
+ self.LOG.exception(err3)
else:
- LOG.error('Could not clean up: %s', err3)
+ self.LOG.error('Could not clean up: %s', err3)
return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/command.py new/cliff-1.7.0/cliff/command.py
--- old/cliff-1.6.1/cliff/command.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/command.py 2014-09-08 16:53:54.000000000 +0200
@@ -3,15 +3,16 @@
import argparse
import inspect
+import six
+
+(a)six.add_metaclass(abc.ABCMeta)
class Command(object):
"""Base class for command plugins.
:param app: Application instance invoking the command.
:paramtype app: cliff.app.App
"""
- __metaclass__ = abc.ABCMeta
-
def __init__(self, app, app_args):
self.app = app
self.app_args = app_args
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/commandmanager.py new/cliff-1.7.0/cliff/commandmanager.py
--- old/cliff-1.6.1/cliff/commandmanager.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/commandmanager.py 2014-09-08 16:53:54.000000000 +0200
@@ -28,7 +28,7 @@
for the plugins to be loaded. For example,
``'cliff.formatter.list'``.
:param convert_underscores: Whether cliff should convert underscores to
- to spaces in entry_point commands.
+ spaces in entry_point commands.
"""
def __init__(self, namespace, convert_underscores=True):
self.commands = {}
@@ -37,7 +37,12 @@
self._load_commands()
def _load_commands(self):
- for ep in pkg_resources.iter_entry_points(self.namespace):
+ # NOTE(jamielennox): kept for compatability.
+ self.load_commands(self.namespace)
+
+ def load_commands(self, namespace):
+ """Load all the commands from an entrypoint"""
+ for ep in pkg_resources.iter_entry_points(namespace):
LOG.debug('found command %r', ep.name)
cmd_name = (ep.name.replace('_', ' ')
if self.convert_underscores
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/display.py new/cliff-1.7.0/cliff/display.py
--- old/cliff-1.6.1/cliff/display.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/display.py 2014-09-08 16:53:54.000000000 +0200
@@ -1,8 +1,19 @@
"""Application base class for displaying data.
"""
import abc
+
+try:
+ from itertools import compress
+except ImportError:
+ # for py26 compat
+ from itertools import izip
+
+ def compress(data, selectors):
+ return (d for d, s in izip(data, selectors) if s)
+
import logging
+import six
import stevedore
from .command import Command
@@ -11,10 +22,10 @@
LOG = logging.getLogger(__name__)
+(a)six.add_metaclass(abc.ABCMeta)
class DisplayCommandBase(Command):
"""Command base class for displaying data about a single object.
"""
- __metaclass__ = abc.ABCMeta
def __init__(self, app, app_args):
super(DisplayCommandBase, self).__init__(app, app_args)
@@ -80,3 +91,7 @@
column_names, data = self.take_action(parsed_args)
self.produce_output(parsed_args, column_names, data)
return 0
+
+ @staticmethod
+ def _compress_iterable(iterable, selectors):
+ return compress(iterable, selectors)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/formatters/base.py new/cliff-1.7.0/cliff/formatters/base.py
--- old/cliff-1.6.1/cliff/formatters/base.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/formatters/base.py 2014-09-08 16:53:54.000000000 +0200
@@ -3,9 +3,11 @@
import abc
+import six
+
+(a)six.add_metaclass(abc.ABCMeta)
class Formatter(object):
- __metaclass__ = abc.ABCMeta
@abc.abstractmethod
def add_argument_group(self, parser):
@@ -15,10 +17,10 @@
"""
+(a)six.add_metaclass(abc.ABCMeta)
class ListFormatter(Formatter):
"""Base class for formatters that know how to deal with multiple objects.
"""
- __metaclass__ = abc.ABCMeta
@abc.abstractmethod
def emit_list(self, column_names, data, stdout, parsed_args):
@@ -32,10 +34,10 @@
"""
+(a)six.add_metaclass(abc.ABCMeta)
class SingleFormatter(Formatter):
"""Base class for formatters that work with single objects.
"""
- __metaclass__ = abc.ABCMeta
@abc.abstractmethod
def emit_one(self, column_names, data, stdout, parsed_args):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/formatters/commaseparated.py new/cliff-1.7.0/cliff/formatters/commaseparated.py
--- old/cliff-1.6.1/cliff/formatters/commaseparated.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/formatters/commaseparated.py 2014-09-08 16:53:54.000000000 +0200
@@ -2,6 +2,7 @@
"""
import csv
+import os
from .base import ListFormatter
@@ -28,6 +29,7 @@
def emit_list(self, column_names, data, stdout, parsed_args):
writer = csv.writer(stdout,
quoting=self.QUOTE_MODES[parsed_args.quote_mode],
+ lineterminator=os.linesep,
)
writer.writerow(column_names)
for row in data:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/formatters/shell.py new/cliff-1.7.0/cliff/formatters/shell.py
--- old/cliff-1.6.1/cliff/formatters/shell.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/formatters/shell.py 2014-09-08 16:53:54.000000000 +0200
@@ -3,6 +3,7 @@
from .base import SingleFormatter
+import argparse
import six
@@ -19,7 +20,7 @@
default=[],
dest='variables',
metavar='VARIABLE',
- help='specify the variable(s) to include, can be repeated',
+ help=argparse.SUPPRESS,
)
group.add_argument(
'--prefix',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/interactive.py new/cliff-1.7.0/cliff/interactive.py
--- old/cliff-1.6.1/cliff/interactive.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/interactive.py 2014-09-08 16:53:54.000000000 +0200
@@ -39,7 +39,7 @@
cmd2.Cmd.__init__(self, 'tab', stdin=stdin, stdout=stdout)
def default(self, line):
- # Tie in the the default command processor to
+ # Tie in the default command processor to
# dispatch commands known to the command manager.
# We send the message through our parent app,
# since it already has the logic for executing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/lister.py new/cliff-1.7.0/cliff/lister.py
--- old/cliff-1.6.1/cliff/lister.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/lister.py 2014-09-08 16:53:54.000000000 +0200
@@ -1,28 +1,20 @@
"""Application base class for providing a list of data as output.
"""
import abc
-
-try:
- from itertools import compress
-except ImportError:
- # for py26 compat
- from itertools import izip
-
- def compress(data, selectors):
- return (d for d, s in izip(data, selectors) if s)
-
import logging
+import six
+
from .display import DisplayCommandBase
LOG = logging.getLogger(__name__)
+(a)six.add_metaclass(abc.ABCMeta)
class Lister(DisplayCommandBase):
"""Command base class for providing a list of data as output.
"""
- __metaclass__ = abc.ABCMeta
@property
def formatter_namespace(self):
@@ -56,7 +48,7 @@
# of data that the user has expressed interest in
# seeing. We have to convert the compress() output to a
# list so the table formatter can ask for its length.
- data_gen = (list(compress(row, selector))
+ data_gen = (list(self._compress_iterable(row, selector))
for row in data)
self.formatter.emit_list(columns_to_include,
data_gen,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/show.py new/cliff-1.7.0/cliff/show.py
--- old/cliff-1.6.1/cliff/show.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/show.py 2014-09-08 16:53:54.000000000 +0200
@@ -1,19 +1,20 @@
"""Application base class for displaying data about a single object.
"""
import abc
-import itertools
import logging
+import six
+
from .display import DisplayCommandBase
LOG = logging.getLogger(__name__)
+(a)six.add_metaclass(abc.ABCMeta)
class ShowOne(DisplayCommandBase):
"""Command base class for displaying data about a single object.
"""
- __metaclass__ = abc.ABCMeta
@property
def formatter_namespace(self):
@@ -38,7 +39,7 @@
# Set up argument to compress()
selector = [(c in columns_to_include)
for c in column_names]
- data = list(itertools.compress(data, selector))
+ data = list(self._compress_iterable(data, selector))
self.formatter.emit_one(columns_to_include,
data,
self.app.stdout,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/tests/test_app.py new/cliff-1.7.0/cliff/tests/test_app.py
--- old/cliff-1.6.1/cliff/tests/test_app.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/tests/test_app.py 2014-09-08 16:53:54.000000000 +0200
@@ -106,7 +106,7 @@
else:
assert False, 'Should have had an exception'
- app.clean_up.assert_called_once()
+ assert app.clean_up.called
call_args = app.clean_up.call_args_list[0]
assert call_args == mock.call(mock.ANY, 1, mock.ANY)
args, kwargs = call_args
@@ -123,7 +123,7 @@
)
app.run(['error'])
- app.clean_up.assert_called_once()
+ assert app.clean_up.called
call_args = app.clean_up.call_args_list[0]
assert call_args == mock.call(mock.ANY, 1, mock.ANY)
args, kwargs = call_args
@@ -150,7 +150,7 @@
else:
assert False, 'Should have had an exception'
- app.clean_up.assert_called_once()
+ assert app.clean_up.called
call_args = app.clean_up.call_args_list[0]
assert call_args == mock.call(mock.ANY, 1, mock.ANY)
args, kwargs = call_args
@@ -167,7 +167,7 @@
)
app.run(['mock'])
- app.clean_up.assert_called_once()
+ assert app.clean_up.called
call_args = app.clean_up.call_args_list[0]
assert call_args == mock.call(mock.ANY, 0, None)
@@ -181,7 +181,7 @@
)
app.run(['--debug', 'mock'])
- app.clean_up.assert_called_once()
+ assert app.clean_up.called
call_args = app.clean_up.call_args_list[0]
assert call_args == mock.call(mock.ANY, 0, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/tests/test_commandmanager.py new/cliff-1.7.0/cliff/tests/test_commandmanager.py
--- old/cliff-1.6.1/cliff/tests/test_commandmanager.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/tests/test_commandmanager.py 2014-09-08 16:53:54.000000000 +0200
@@ -2,24 +2,7 @@
import mock
from cliff.commandmanager import CommandManager
-
-
-class TestCommand(object):
- @classmethod
- def load(cls):
- return cls
-
- def __init__(self):
- return
-
-
-class TestCommandManager(CommandManager):
- def _load_commands(self):
- self.commands = {
- 'one': TestCommand,
- 'two words': TestCommand,
- 'three word command': TestCommand,
- }
+from cliff.tests import utils
def test_lookup_and_find():
@@ -28,7 +11,7 @@
assert cmd
assert name == ' '.join(argv)
assert not remaining
- mgr = TestCommandManager('test')
+ mgr = utils.TestCommandManager(utils.TEST_NAMESPACE)
for expected in [['one'],
['two', 'words'],
['three', 'word', 'command'],
@@ -42,7 +25,7 @@
cmd, name, remaining = mgr.find_command(argv)
assert cmd
assert remaining == ['--opt']
- mgr = TestCommandManager('test')
+ mgr = utils.TestCommandManager(utils.TEST_NAMESPACE)
for expected in [['one', '--opt'],
['two', 'words', '--opt'],
['three', 'word', 'command', '--opt'],
@@ -52,7 +35,7 @@
def test_find_invalid_command():
- mgr = TestCommandManager('test')
+ mgr = utils.TestCommandManager(utils.TEST_NAMESPACE)
def check_one(argv):
try:
@@ -68,7 +51,7 @@
def test_find_unknown_command():
- mgr = TestCommandManager('test')
+ mgr = utils.TestCommandManager(utils.TEST_NAMESPACE)
try:
mgr.find_command(['a', 'b'])
except ValueError as err:
@@ -78,7 +61,7 @@
def test_add_command():
- mgr = TestCommandManager('test')
+ mgr = utils.TestCommandManager(utils.TEST_NAMESPACE)
mock_cmd = mock.Mock()
mgr.add_command('mock', mock_cmd)
found_cmd, name, args = mgr.find_command(['mock'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/tests/test_help.py new/cliff-1.7.0/cliff/tests/test_help.py
--- old/cliff-1.6.1/cliff/tests/test_help.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/tests/test_help.py 2014-09-08 16:53:54.000000000 +0200
@@ -6,39 +6,8 @@
import mock
from cliff.app import App
-from cliff.command import Command
-from cliff.commandmanager import CommandManager
from cliff.help import HelpCommand
-
-
-class TestParser(object):
-
- def print_help(self, stdout):
- stdout.write('TestParser')
-
-
-class TestCommand(Command):
-
- @classmethod
- def load(cls):
- return cls
-
- def get_parser(self, ignore):
- # Make it look like this class is the parser
- # so parse_args() is called.
- return TestParser()
-
- def take_action(self, args):
- return
-
-
-class TestCommandManager(CommandManager):
- def _load_commands(self):
- self.commands = {
- 'one': TestCommand,
- 'two words': TestCommand,
- 'three word command': TestCommand,
- }
+from cliff.tests import utils
def test_show_help_for_command():
@@ -46,7 +15,9 @@
# do commands know too much about apps by using them to get to the
# command manager?
stdout = StringIO()
- app = App('testing', '1', TestCommandManager('cliff.test'), stdout=stdout)
+ app = App('testing', '1',
+ utils.TestCommandManager(utils.TEST_NAMESPACE),
+ stdout=stdout)
app.NAME = 'test'
help_cmd = HelpCommand(app, mock.Mock())
parser = help_cmd.get_parser('test')
@@ -63,7 +34,9 @@
# do commands know too much about apps by using them to get to the
# command manager?
stdout = StringIO()
- app = App('testing', '1', TestCommandManager('cliff.test'), stdout=stdout)
+ app = App('testing', '1',
+ utils.TestCommandManager(utils.TEST_NAMESPACE),
+ stdout=stdout)
app.NAME = 'test'
help_cmd = HelpCommand(app, mock.Mock())
parser = help_cmd.get_parser('test')
@@ -83,7 +56,9 @@
# do commands know too much about apps by using them to get to the
# command manager?
stdout = StringIO()
- app = App('testing', '1', TestCommandManager('cliff.test'), stdout=stdout)
+ app = App('testing', '1',
+ utils.TestCommandManager(utils.TEST_NAMESPACE),
+ stdout=stdout)
app.NAME = 'test'
help_cmd = HelpCommand(app, mock.Mock())
parser = help_cmd.get_parser('test')
@@ -103,7 +78,9 @@
# do commands know too much about apps by using them to get to the
# command manager?
stdout = StringIO()
- app = App('testing', '1', TestCommandManager('cliff.test'), stdout=stdout)
+ app = App('testing', '1',
+ utils.TestCommandManager(utils.TEST_NAMESPACE),
+ stdout=stdout)
app.NAME = 'test'
help_cmd = HelpCommand(app, mock.Mock())
parser = help_cmd.get_parser('test')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/tests/test_show.py new/cliff-1.7.0/cliff/tests/test_show.py
--- old/cliff-1.6.1/cliff/tests/test_show.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/cliff/tests/test_show.py 2014-09-08 16:53:54.000000000 +0200
@@ -1,5 +1,7 @@
#!/usr/bin/env python
+import weakref
+
from cliff.show import ShowOne
import mock
@@ -9,15 +11,16 @@
def __init__(self):
self.args = []
+ self.obj = weakref.proxy(self)
- def emit_list(self, columns, data, stdout, args):
+ def emit_one(self, columns, data, stdout, args):
self.args.append((columns, data))
class ExerciseShowOne(ShowOne):
- def load_formatter_plugins(self):
- self.formatters = {
+ def _load_formatter_plugins(self):
+ return {
'test': FauxFormatter(),
}
return
@@ -29,21 +32,22 @@
)
-# def test_formatter_args():
-# app = mock.Mock()
-# test_lister = ExerciseLister(app, [])
-
-# parsed_args = mock.Mock()
-# parsed_args.columns = ('Col1', 'Col2')
-# parsed_args.formatter = 'test'
-
-# test_lister.run(parsed_args)
-# f = test_lister.formatters['test']
-# assert len(f.args) == 1
-# args = f.args[0]
-# assert args[0] == list(parsed_args.columns)
-# data = list(args[1])
-# assert data == [['a', 'A'], ['b', 'B']]
+def test_formatter_args():
+ app = mock.Mock()
+ test_show = ExerciseShowOne(app, [])
+
+ parsed_args = mock.Mock()
+ parsed_args.columns = ('Col1', 'Col2')
+ parsed_args.formatter = 'test'
+
+ test_show.run(parsed_args)
+ f = test_show._formatter_plugins['test']
+ assert len(f.args) == 1
+ args = f.args[0]
+ assert args[0] == list(parsed_args.columns)
+ data = list(args[1])
+ assert data == [('a', 'A'), ('b', 'B')]
+
def test_dict2columns():
app = mock.Mock()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff/tests/utils.py new/cliff-1.7.0/cliff/tests/utils.py
--- old/cliff-1.6.1/cliff/tests/utils.py 1970-01-01 01:00:00.000000000 +0100
+++ new/cliff-1.7.0/cliff/tests/utils.py 2014-09-08 16:53:54.000000000 +0200
@@ -0,0 +1,30 @@
+
+from cliff.command import Command
+from cliff.commandmanager import CommandManager
+
+TEST_NAMESPACE = 'cliff.test'
+
+
+class TestParser(object):
+
+ def print_help(self, stdout):
+ stdout.write('TestParser')
+
+
+class TestCommand(Command):
+
+ def get_parser(self, ignore):
+ # Make it look like this class is the parser
+ # so parse_args() is called.
+ return TestParser()
+
+ def take_action(self, args):
+ return
+
+
+class TestCommandManager(CommandManager):
+
+ def load_commands(self, namespace):
+ if namespace == TEST_NAMESPACE:
+ for key in ('one', 'two words', 'three word command'):
+ self.add_command(key, TestCommand)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff.egg-info/PKG-INFO new/cliff-1.7.0/cliff.egg-info/PKG-INFO
--- old/cliff-1.6.1/cliff.egg-info/PKG-INFO 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/cliff.egg-info/PKG-INFO 2014-09-08 16:54:18.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: cliff
-Version: 1.6.1
+Version: 1.7.0
Summary: Command Line Interface Formulation Framework
Home-page: https://launchpad.net/python-cliff
Author: Doug Hellmann
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff.egg-info/SOURCES.txt new/cliff-1.7.0/cliff.egg-info/SOURCES.txt
--- old/cliff-1.6.1/cliff.egg-info/SOURCES.txt 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/cliff.egg-info/SOURCES.txt 2014-09-08 16:54:19.000000000 +0200
@@ -46,6 +46,7 @@
cliff/tests/test_help.py
cliff/tests/test_lister.py
cliff/tests/test_show.py
+cliff/tests/utils.py
demoapp/README.rst
demoapp/setup.py
demoapp/cliffdemo/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff.egg-info/entry_points.txt new/cliff-1.7.0/cliff.egg-info/entry_points.txt
--- old/cliff-1.6.1/cliff.egg-info/entry_points.txt 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/cliff.egg-info/entry_points.txt 2014-09-08 16:54:18.000000000 +0200
@@ -1,13 +1,13 @@
[cliff.formatter.completion]
-none = cliff.complete:CompleteNoCode
bash = cliff.complete:CompleteBash
+none = cliff.complete:CompleteNoCode
[cliff.formatter.list]
-table = cliff.formatters.table:TableFormatter
csv = cliff.formatters.commaseparated:CSVLister
+table = cliff.formatters.table:TableFormatter
[cliff.formatter.show]
-table = cliff.formatters.table:TableFormatter
shell = cliff.formatters.shell:ShellFormatter
+table = cliff.formatters.table:TableFormatter
value = cliff.formatters.value:ValueFormatter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/cliff.egg-info/requires.txt new/cliff-1.7.0/cliff.egg-info/requires.txt
--- old/cliff-1.6.1/cliff.egg-info/requires.txt 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/cliff.egg-info/requires.txt 2014-09-08 16:54:18.000000000 +0200
@@ -1,5 +1,6 @@
+argparse
cmd2>=0.6.7
PrettyTable>=0.7,<0.8
pyparsing>=2.0.1
-six>=1.4.1
-stevedore>=0.12
\ No newline at end of file
+six>=1.7.0
+stevedore>=0.14
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/docs/source/conf.py new/cliff-1.7.0/docs/source/conf.py
--- old/cliff-1.6.1/docs/source/conf.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/docs/source/conf.py 2014-09-08 16:53:54.000000000 +0200
@@ -18,12 +18,12 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
+# sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
+# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
@@ -37,7 +37,7 @@
source_suffix = '.rst'
# The encoding of source files.
-#source_encoding = 'utf-8-sig'
+# source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
@@ -59,13 +59,13 @@
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
-#language = None
+# language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
-#today = ''
+# today = ''
# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
+# today_fmt = '%B %d, %Y'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
@@ -73,24 +73,24 @@
# The reST default role (used for this markup: `text`) to use for all
# documents.
-#default_role = None
+# default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
+# add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
-#add_module_names = True
+# add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
-#show_authors = False
+# show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
+# modindex_common_prefix = []
# -- Options for HTML output -------------------------------------------------
@@ -102,26 +102,26 @@
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
-#html_theme_options = {}
+# html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+# html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
-#html_title = None
+# html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
+# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
-#html_logo = None
+# html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
-#html_favicon = None
+# html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
@@ -130,44 +130,44 @@
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
+# html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
-#html_use_smartypants = True
+# html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
+# html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
-#html_additional_pages = {}
+# html_additional_pages = {}
# If false, no module index is generated.
-#html_domain_indices = True
+# html_domain_indices = True
# If false, no index is generated.
-#html_use_index = True
+# html_use_index = True
# If true, the index is split into individual pages for each letter.
-#html_split_index = False
+# html_split_index = False
# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
+# html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
+# html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
+# html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
+# html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
+# html_file_suffix = None
# Output file base name for HTML help builder.
htmlhelp_basename = 'cliffdoc'
@@ -177,13 +177,13 @@
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
- #'papersize': 'letterpaper',
+ # 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
- #'pointsize': '10pt',
+ # 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
- #'preamble': '',
+ # 'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples
@@ -196,23 +196,23 @@
# The name of an image file (relative to this directory) to place at the top of
# the title page.
-#latex_logo = None
+# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
-#latex_use_parts = False
+# latex_use_parts = False
# If true, show page references after internal links.
-#latex_show_pagerefs = False
+# latex_show_pagerefs = False
# If true, show URL addresses after external links.
-#latex_show_urls = False
+# latex_show_urls = False
# Documents to append as an appendix to all manuals.
-#latex_appendices = []
+# latex_appendices = []
# If false, no module index is generated.
-#latex_domain_indices = True
+# latex_domain_indices = True
# -- Options for manual page output ------------------------------------------
@@ -225,7 +225,7 @@
]
# If true, show URL addresses after external links.
-#man_show_urls = False
+# man_show_urls = False
# -- Options for Texinfo output ----------------------------------------------
@@ -240,10 +240,10 @@
]
# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
+# texinfo_appendices = []
# If false, no module index is generated.
-#texinfo_domain_indices = True
+# texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
+# texinfo_show_urls = 'footnote'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/docs/source/history.rst new/cliff-1.7.0/docs/source/history.rst
--- old/cliff-1.6.1/docs/source/history.rst 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/docs/source/history.rst 2014-09-08 16:53:54.000000000 +0200
@@ -2,13 +2,50 @@
Release History
=================
-dev
+1.7.0
+-----
-- Change the formatters attribute of display commands to reflect the
- fact that it is meant to be an implementation detail of the base
- class, and not used or modified by outsiders.
+* Updated dependencies from OpenStack global requirements
+* Clean up default tox environment list
+* Do not allow wheels for stable tests
+* Set the main logger name to match the application
+* CSV formatter should use system-dependent line ending
+* Make show option compatible with Python 2.6
+* Use six.add_metaclass instead of __metaclass__
+* fixed typos found by RETF rules
+* The --variable option to shell format is redundant
+* Expose load_commands publicly
+* Fix wrong method name assert_called_once
+* Fix pep8 failures on rule E265
+
+1.6.1
+-----
+
+* Remove PrettyTable from documentation requirements
+* Fix a bug in ShellFormatter's escaping of double quotes in strings
+* Import run_cross_tests.sh from oslo-incubator
+* add doc requirements to venv
+
+1.6.0
+-----
+
+* Add max-width support for table formatter
+* Add value only output formattter
+* Update readme with links to bug tracker and source
+* Move pep8 dependency into pep8 tox test
+* Fix doc build with Python 2.6.x
+* Fix interactive mode with command line args
+* Update .gitreview after repo rename
+* Escape double quotes in shell formatter
+* Add unit test for shell formatter
+* Rename private attribute to avoid conflict
+* Sync with global requirements
+* Add integration tests with known consumers
+* update history for previous change
+* Make the formatters a private part of the command
1.5.2
+-----
- Fix the arguments passed to commands when they are instantiated to
pull out help. See https://github.com/dreamhost/cliff/issues/52 for
@@ -18,32 +55,38 @@
- Use pbr for packaging.
1.4.5
+-----
- Update the pyparsing dependency to a version that supports both
Python 2 and Python 3.
- Add PyPy testing.
1.4.4
+-----
- Provide better error handling for unknown commands run from the
command line. (Contributed by Christophe Chauvet.)
1.4.3
+-----
- More stdout encoding issues with Python 2.6.
1.4.2
+-----
- Fix an issue with unicode output under Python 2.6. See
https://github.com/dreamhost/cliff/pull/40 for details.
1.4.1
+-----
- Add ``dict2columns`` method to ``ShowOne``. (Contributed by Dean
Troyer)
- Pin the requirement for cmd2 more tightly.
1.4
+---
- Store a reference to the InteractiveApp on the App while in
interactive mode to allow commands to update the interactive
@@ -53,6 +96,7 @@
breaks updates in some cases, so just fail if it isn't there.
1.3.3
+-----
- Restore compatibility with prettytable < 0.7.2 by forcing no
output if there is no data (instead of printing an empty
@@ -60,6 +104,7 @@
- Update to allow cmd2 version 0.6.5.1. Contributed by Dirk Mueller.
1.3.2
+-----
- Add ``convert_underscores`` parameter to ``CommandManager`` ``__init__``
method to allow underscores to be used in command names. This optional
@@ -72,6 +117,7 @@
.. _flake8: https://pypi.python.org/pypi/flake8
1.3.1
+-----
- Sort list of commands in interactive help mode. (contributed by
Ilya Shakhat)
@@ -80,6 +126,7 @@
the Python version.
1.3
+---
- Allow user to pass ``argparse_kwargs`` argument to the
``build_option_parser`` method. This argument can contain extra
@@ -88,11 +135,13 @@
- Updated documentation to include dependency on distribute.
1.2.1
+-----
- Fix problem with documentation packaging.
- Fix problem with missing ``izip`` import in ``lister.py``.
1.2
+---
- Fix problem with interactive mode ``help`` command.
- Disable logging by default but add a ``--log-file`` option to
@@ -101,16 +150,19 @@
OpenStack Quantum)
1.1.2
+-----
- Fix a packaging problem introduced in version 1.1.
1.1
+---
- Move tablib support (JSON, YAML, and HTML formatters) to a
separate project to comply with Ubuntu packaging requirements. See
https://github.com/dreamhost/cliff-tablib
1.0
+---
- Add trailing newlines after output from tablib-based formatters
(JSON, YAML, and HTML). Contributed by Matt Joyce.
@@ -123,40 +175,47 @@
instead of :func:`get_data`.
0.7
+---
- - Clean up interactive mode flag settting.
+ - Clean up interactive mode flag setting.
- Add support for Python 2.6, contributed by heavenshell.
- Fix multi-word commands in interactive mode.
0.6
+---
- Pass the non-global argument list to :func:`initialize_app` to be
used in initialization work.
0.5.1
+-----
- Remove pinned version requirement for PrettyTable until the
OpenStack clients catch up to the API change.
0.5
+---
- Asking for help about a command by prefix lists all matching
commands.
- Add formatters for HTML, JSON, and YAML.
0.4
+---
- Add shell formatter for single objects.
- Add interactive mode.
- Expand documentation.
0.3
+---
- Add ShowOne base class for commands that show details about single
objects.
- Fix a problem with Lister when there is no data to be printed.
0.2
+---
- Incorporate changes from dtroyer to replace use of optparse in App
with argparse.
@@ -164,6 +223,7 @@
subcommands.
0.1
+---
- Initial public release.
- Included App, CommandManager, Lister, csv and table formatters, a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/integration-tests/neutronclient-stable.sh new/cliff-1.7.0/integration-tests/neutronclient-stable.sh
--- old/cliff-1.6.1/integration-tests/neutronclient-stable.sh 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/integration-tests/neutronclient-stable.sh 2014-09-08 16:53:54.000000000 +0200
@@ -6,7 +6,7 @@
# Manually download the source from PyPI and build it with the --editable flag.
# This gives us access to run the tests.
-pip install --pre --no-deps --no-install --no-clean python-neutronclient
+pip install --pre --no-deps --no-install --no-clean --no-use-wheel python-neutronclient
# This is where the source will end up after pip is done downloading and building it
srcdir=$envdir/build/python-neutronclient/
@@ -18,5 +18,9 @@
# Install the test requirements
pip install --no-clean -r $srcdir/test-requirements.txt
+# Force a known hash seed value to avoid sorting errors from tox
+# giving us a random one.
+export PYTHONHASHSEED=0
+
# Run testr
python setup.py testr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/integration-tests/openstackclient-stable.sh new/cliff-1.7.0/integration-tests/openstackclient-stable.sh
--- old/cliff-1.6.1/integration-tests/openstackclient-stable.sh 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/integration-tests/openstackclient-stable.sh 2014-09-08 16:53:54.000000000 +0200
@@ -6,7 +6,7 @@
# Manually download the source from PyPI and build it with the --editable flag.
# This gives us access to run the tests.
-pip install --pre --no-deps --no-install --no-clean python-openstackclient
+pip install --pre --no-deps --no-install --no-clean --no-use-wheel python-openstackclient
# This is where the source will end up after pip is done downloading and building it
srcdir=$envdir/build/python-openstackclient/
@@ -18,5 +18,9 @@
# Install the test requirements
pip install --no-clean -r $srcdir/test-requirements.txt
+# Force a known hash seed value to avoid sorting errors from tox
+# giving us a random one.
+export PYTHONHASHSEED=0
+
# Run testr
python setup.py testr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/integration-tests/openstackclient-tip.sh new/cliff-1.7.0/integration-tests/openstackclient-tip.sh
--- old/cliff-1.6.1/integration-tests/openstackclient-tip.sh 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/integration-tests/openstackclient-tip.sh 2014-09-08 16:53:54.000000000 +0200
@@ -11,4 +11,8 @@
pip install -r test-requirements.txt
+# Force a known hash seed value to avoid sorting errors from tox
+# giving us a random one.
+export PYTHONHASHSEED=0
+
python setup.py testr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/requirements.txt new/cliff-1.7.0/requirements.txt
--- old/cliff-1.6.1/requirements.txt 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/requirements.txt 2014-09-08 16:53:54.000000000 +0200
@@ -2,5 +2,5 @@
cmd2>=0.6.7
PrettyTable>=0.7,<0.8
pyparsing>=2.0.1
-six>=1.4.1
-stevedore>=0.12
+six>=1.7.0
+stevedore>=0.14
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/setup.cfg new/cliff-1.7.0/setup.cfg
--- old/cliff-1.6.1/setup.cfg 2014-04-08 15:09:53.000000000 +0200
+++ new/cliff-1.7.0/setup.cfg 2014-09-08 16:54:19.000000000 +0200
@@ -43,7 +43,7 @@
source-dir = docs/source
[egg_info]
-tag_build =
tag_date = 0
+tag_build =
tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/setup.py new/cliff-1.7.0/setup.py
--- old/cliff-1.6.1/setup.py 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/setup.py 2014-09-08 16:53:54.000000000 +0200
@@ -1,11 +1,27 @@
#!/usr/bin/env python
+# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
# In python < 2.7.4, a lazy loading of package `pbr` will break
# setuptools if some other modules registered functions in `atexit`.
# solution from: http://bugs.python.org/issue15881#msg170215
try:
- import multiprocessing # flake8: noqa
+ import multiprocessing # noqa
except ImportError:
pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cliff-1.6.1/tox.ini new/cliff-1.7.0/tox.ini
--- old/cliff-1.6.1/tox.ini 2014-04-08 15:09:38.000000000 +0200
+++ new/cliff-1.7.0/tox.ini 2014-09-08 16:53:54.000000000 +0200
@@ -1,5 +1,5 @@
[tox]
-envlist = py26,py27,py32,py33,pypy,pep8
+envlist = py33,py26,py27,pypy,pep8
[testenv]
distribute = False
--
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 nuoveXT2-icon-theme for openSUSE:Factory checked in at 2014-09-15 17:41:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nuoveXT2-icon-theme (Old)
and /work/SRC/openSUSE:Factory/.nuoveXT2-icon-theme.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nuoveXT2-icon-theme"
Changes:
--------
--- /work/SRC/openSUSE:Factory/nuoveXT2-icon-theme/nuoveXT2-icon-theme.changes 2012-09-14 12:31:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.nuoveXT2-icon-theme.new/nuoveXT2-icon-theme.changes 2014-09-15 18:25:01.000000000 +0200
@@ -1,0 +2,10 @@
+Sat Sep 13 08:29:29 UTC 2014 - trcs(a)gmx.com
+
+- new upstream version 0.5.1
+ * add .gitignore file
+ * support automake newer than 1.11
+ * fixed invalid names for placeholder file: .gitignore ->
+ placeholder
+ * spec file cleanup
+
+-------------------------------------------------------------------
Old:
----
lxde-icon-theme-0.5.0.tar.bz2
New:
----
lxde-icon-theme-0.5.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nuoveXT2-icon-theme.spec ++++++
--- /var/tmp/diff_new_pack.d2yZex/_old 2014-09-15 18:25:03.000000000 +0200
+++ /var/tmp/diff_new_pack.d2yZex/_new 2014-09-15 18:25:03.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package nuoveXT2-icon-theme
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 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,16 +17,16 @@
Name: nuoveXT2-icon-theme
-Version: 0.5.0
+Version: 0.5.1
Release: 0
-Source0: lxde-icon-theme-%version.tar.bz2
-Source1: tango-volume.tar.bz2
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: fdupes
Summary: This package provides the default LXDE icon theme
License: GPL-3.0
Group: System/GUI/Other
Url: http://www.lxde.org
+Source0: lxde-icon-theme-%{version}.tar.xz
+Source1: tango-volume.tar.bz2
+BuildRequires: fdupes
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
@@ -35,24 +35,21 @@
LXDE project decided to maintain it and keep working on it
%prep
-%setup -q -n lxde-icon-theme-%version
+%setup -q -n lxde-icon-theme-%{version}
%build
-export CFLAGS="$RPM_OPT_FLAGS"
-export CXXFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="%{optflags}"
+export CXXFLAGS="%{optflags}"
%configure
-%__make %{?jobs:-j%{jobs}}
+make %{?_smp_mflags}
%install
-%makeinstall
-tar -xjvf %SOURCE1 -C %buildroot/%_datadir/icons/nuoveXT2/
+make DESTDIR=%{buildroot} install %{?_smp_mflags}
+tar -xjvf %{SOURCE1} -C %{buildroot}/%{_datadir}/icons/nuoveXT2/
%fdupes -s %{buildroot}
-%clean
-rm -rf %buildroot
-
%files
%defattr(-,root,root,755)
-%_datadir/icons/nuoveXT2
+%{_datadir}/icons/nuoveXT2
%changelog
--
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 lxmenu-data for openSUSE:Factory checked in at 2014-09-15 17:41:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lxmenu-data (Old)
and /work/SRC/openSUSE:Factory/.lxmenu-data.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxmenu-data"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lxmenu-data/lxmenu-data.changes 2014-05-15 21:31:35.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lxmenu-data.new/lxmenu-data.changes 2014-09-15 18:25:00.000000000 +0200
@@ -1,0 +2,25 @@
+Sat Sep 13 07:46:43 UTC 2014 - trcs(a)gmx.com
+
+- new upstream version 0.1.4
+ * rename lxde-science.directory into lxde-science-math.directory
+
+-------------------------------------------------------------------
+Mon Sep 8 15:23:42 UTC 2014 - trcs(a)gmx.com
+
+- new upstream version 0.1.3
+ * add missing lxde-science.directory.in into
+ desktop-directories/Makefile.am
+ * add .gitignore file and remove autogenerated po/Makefile.in.in
+ file
+ * autogen.sh: do not do configure until $DOCONGIGURE is set to
+ non-empty
+ * generate po/LINGUAS on the fly
+ * fix autogen.sh and rename configure.in to configure.ac
+ * Python 3 compatibility
+ * update AUTHORS and COPYING
+ * configure by default
+ * allow autogen.sh from out of tree
+ * fix build with automake > 1.11
+ * translation updates
+
+-------------------------------------------------------------------
Old:
----
lxmenu-data-0.1.2.tar.bz2
New:
----
lxmenu-data-0.1.4.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxmenu-data.spec ++++++
--- /var/tmp/diff_new_pack.f8IFja/_old 2014-09-15 18:25:01.000000000 +0200
+++ /var/tmp/diff_new_pack.f8IFja/_new 2014-09-15 18:25:01.000000000 +0200
@@ -17,10 +17,10 @@
Name: lxmenu-data
-Version: 0.1.2
+Version: 0.1.4
Release: 0
Url: http://www.lxde.org
-Source0: %{name}-%{version}.tar.bz2
+Source0: %{name}-%{version}.tar.xz
# PATCH-FEATURE-OPENSUSE lxmenu-data-0.1.1-menu-customization.patch -- Guido Berhörster guido+opensuse.org(a)berhoerster.name
# Clean up lxde menu and improve user experience
Patch0: %name-0.1.1-menu-customization.patch
--
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 aranym for openSUSE:Factory checked in at 2014-09-15 17:41:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aranym (Old)
and /work/SRC/openSUSE:Factory/.aranym.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aranym"
Changes:
--------
--- /work/SRC/openSUSE:Factory/aranym/aranym.changes 2014-04-25 16:08:38.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.aranym.new/aranym.changes 2014-09-15 18:24:58.000000000 +0200
@@ -1,0 +2,5 @@
+Sun Sep 14 08:22:17 UTC 2014 - schwab(a)linux-m68k.org
+
+- ramdisk.patch: Always load ramdisk to end of memory chunk
+
+-------------------------------------------------------------------
New:
----
ramdisk.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aranym.spec ++++++
--- /var/tmp/diff_new_pack.HFVGHk/_old 2014-09-15 18:25:00.000000000 +0200
+++ /var/tmp/diff_new_pack.HFVGHk/_new 2014-09-15 18:25:00.000000000 +0200
@@ -36,6 +36,7 @@
Release: 0
Source: %{name}-%{version}.tar.gz
Source1: afros812.zip
+Patch1: ramdisk.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -68,6 +69,7 @@
%prep
%setup -q -n %{name}-%{version} -a 1
+%patch1 -p1
# Don't remove -g from CFLAGS
sed -i -e 's,/-g,/-:,' configure.ac configure
++++++ ramdisk.patch ++++++
>From e8c0b10c096cec2ffefc2830fc6af9618173fd98 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab(a)linux-m68k.org>
Date: Mon, 21 Apr 2014 15:37:00 +0200
Subject: [PATCH] Always load ramdisk to end of memory chunk
---
ChangeLog | 3 +++
src/bootos_linux.cpp | 13 ++-----------
2 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/src/bootos_linux.cpp b/src/bootos_linux.cpp
index 8bd25ad..ecd2b6c 100644
--- a/src/bootos_linux.cpp
+++ b/src/bootos_linux.cpp
@@ -516,8 +516,8 @@ int LinuxBootOs::checkKernel(void)
rd_len = ramdisk_length - RAMDISK_FS_START;
if (FastRAMSize > rd_offset + rd_len) {
/* Load in FastRAM */
- rd_start = FastRAMBase + rd_offset;
- memcpy(FastRAMBaseHost + rd_offset, (unsigned char *)ramdisk + RAMDISK_FS_START, rd_len);
+ rd_start = FastRAMBase + FastRAMSize - rd_len;
+ memcpy(FastRAMBaseHost + rd_start - FastRAMBase, (unsigned char *)ramdisk + RAMDISK_FS_START, rd_len);
} else {
/* Load in ST-RAM */
rd_start = RAMSize - rd_len;
@@ -527,15 +527,6 @@ int LinuxBootOs::checkKernel(void)
bi.ramdisk.addr = SDL_SwapBE32(rd_start);
bi.ramdisk.size = SDL_SwapBE32(rd_len);
D(bug("lilo: Ramdisk at 0x%08x in RAM, length=0x%08x", rd_start, rd_len));
-
-#if 0
- for (i=0; i<16; i++) {
- uint32 *tmp;
-
- tmp = (uint32 *)((unsigned char *)FastRAMBaseHost + rd_offset + 512);
- D(bug("lilo: ramdisk[%d]=0x%08x",i, SDL_SwapBE32(tmp[i])));
- }
-#endif
} else {
bi.ramdisk.addr = 0;
bi.ramdisk.size = 0;
--
2.1.0
--
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 python-boto for openSUSE:Factory checked in at 2014-09-15 17:41:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-boto (Old)
and /work/SRC/openSUSE:Factory/.python-boto.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-boto"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-boto/python-boto-doc.changes 2014-05-16 07:56:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-boto.new/python-boto-doc.changes 2014-09-15 18:24:56.000000000 +0200
@@ -1,0 +2,6 @@
+Sat Sep 13 17:13:34 UTC 2014 - tbechtold(a)suse.com
+
+- update to 2.32.1
+- Add BotoCheatSheet.pdf
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/python-boto/python-boto.changes 2014-06-17 11:23:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-boto.new/python-boto.changes 2014-09-15 18:24:56.000000000 +0200
@@ -1,0 +2,98 @@
+Sat Sep 13 17:13:17 UTC 2014 - tbechtold(a)suse.com
+
+- update to 2.32.1:
+ + DynamoDB (issue 2441, commit 0ef0466, issue 2473, commit 102c3b6, issue 2453)
+ + CloudWatch Logs (issue 2448, commit 23cbcd1)
+ + Support (issue 2406, commit 7b489a0)
+ + Elastic Beanstalk (issue 2372, commit d45d00e)
+ + CloudSearch (issue 2439, commit 25416f9, issue 2432, commit b17f2d9)
+ + STS (issue 2435, commit 1c1239b)
+ + SimpleDB (issue 2403, commit 604318d)
+ + EC2 (issue 2424, commit 5e5dc4c)
+ + VPC (issue 2399, commit 356da91)
+ + OpsWorks (issue 2402, commit 68d15a5)
+ + CloudWatch (issue 2400, commit a4d0a7a)
+ + SWF (issue 2397, commit 6db918e)
+ + MWS (issue 2385, commit 5347fbd)
+ + ELB (issue 2384, commit 4dcc9be)
+ + Elastic Transcoder (issue 2382, commit 40c5e35)
+ + EMR (issue 2381, commit edf4020)
+ + Route53 (issue 2359, commit 15514f7)
+ + Glacier (issue 2357, commit a41042e)
+ + RedShift (issue 2362, commit b8888cc)
+ + CloudFront (issue 2355, commit f2f54b1)
+ + ECS (issue 2364, commit ab84969)
+ + Fix pylintrc to run with pylint/python 3. (issue 2366, commit 6292ab2)
+ + SNS (issue 2365, commit 170f735)
+ + AutoScaling (issue 2393, commit 6a78057)
+ + Direct Connect (issue 2361, commit 8488d94)
+ + CloudFormation (issue 2373, commit 9872f27)
+ + IAM (issue 2358, commit 29ad3e3)
+ + ElastiCache (issue 2356, commit 2880f91)
+ + SES (issue 2354, commit 1db129e)
+ + Fix S3 integration test on Py3. (issue 2466, commit f3eb4cd)
+ + Use unittest.mock if exists. (issue 2451, commit cc58978)
+ + Add tests/compat.py for test-only imports. (issue 2442, commit 556f3cf)
+ + Add backward-compatible support for Python 3.3+ (S3, SQS, Kinesis, CloudTrail). (issue 2344, issue 677, commit b503f4b)
+ + Add marker param to describe all ELBs. (issue 2433, commit 49af8b6)
+ + Update .travis.yml to add pypy. (issue 2440, commit 4b8667c)
+ + Add ‘include_all_instances’ support to ‘get_all_instance_status’. (issue 2446, issue 2230, commit 5949012)
+ + Support security tokens in configuration file profiles. (issue 2445, commit a16bcfd)
+ + Singapore, Sydney and Tokyo are missing in Kinesis Region. (issue 2434, commit 723290d)
+ + Add support for VPC connection peering. (issue 2438, commit 63c78a8)
+ + Add seperate doc requirements. (issue 2412, commit 2922d89)
+ + Route53 support IP health checks (issue 2195, commit 319d44e)
+ + IPv6 support when making connections (issue 2380, commit 1e70179)
+ + Support SNS message attributes (issue 2360, commit ec106bd)
+ + Add “attributes” argument to boto.dynamodb2.table.Table.batch_get. (issue 2276, commit fe67f43)
+ + Add documentation for top-level S3 module. (issue 2379, commit db77546)
+ + Prevent an infinite loop. (issue 2465, commit 71b795a)
+ + Updated documentation for copy_image. (issue 2471, commit f9f683a)
+ + Fixed #2464 added keyword “detailed” to docs. (issue 2467, issue 2464, commit eb26fdc)
+ + Retry installation commands on Travis CI. (issue 2457, commit a9e8057)
+ + Fix for run_instances() network_interfaces argument documentation. (issue 2461, commit 798fd70)
+ + pyami module: tidy up to meet PEP8 better. (issue 2460, commit e5a23ed)
+ + Updating documentation on cloudsearch regions. (issue 2455, commit de284a4)
+ + Fixing lost errors bug in cloudsearch2 commit implementation. (issue 2408, commit fedb937)
+ + Import json from boto.compat for several modules. (issue 2450, commit 55e716b)
+ + Relocate MWS requirements checks; closes #2304, #2314. (issue 2314, issue 2304, commit 6a8f98b)
+ + Added support for creating EMR clusters with a ServiceRole. (issue 2389, commit 7693956)
+ + Doc fix: doc_service instead of service on Deleting. (issue 2419, commit f7b7980)
+ + Fix dummy value typo on aws_access_key_id. (issue 2418, commit fc2a212)
+ + Fix typo; add test. (issue 2447, commit effa8a8)
+ + Fix CloudWatch Logs docstring. (issue 2444, commit d4a2b02)
+ + Fix S3 mock encoding bug (issue 2443, commit 8dca89b)
+ + Skip the ETag header check in responce while using SSE-C encrpytion of S3. (issue 2368, commit 907fc6d)
+ + Fix Beanstalk exception handling. (issue 2431, commit 40f4b5d)
+ + EC2 UserData encoding fix (Full version of #1698). (issue 2396, issue 1698, commit 78300f1)
+ + Fetch S3 key storage class on-demand. (issue 2404, commit 8c4cc67)
+ + Added documentation for /manage/cmdshell.py. (issue 2395, commit 5a28d1c)
+ + Remove redundant lines in auth.py. (issue 2374, commit 317e322)
+ + Fix SWF continue_as_new_workflow_execution start_to_close_timeout. (issue 2378, commit 5101b06)
+ + Fix StringIO imports and invocations. (issue 2390, commit 03952c7)
+ + Fixed wrong call of urlparse. (issue 2387, commit 4935f67)
+ + Update documentation on Valid Values for ses:SetIdentityNotificationTopic. (issue 2367, commit 3f5de0d)
+ + Correct list_saml_providers to return all items. (issue 2338, commit 9e9427f)
+ + Fixing ELB unit tests. Also did some PEP8 cleanup on ELB code. (issue 2352, commit 5220621)
+ + Documentation updates. (issue 2353, commit c9233d4)
+ + Add support for Amazon CloudWatch Logs. (commit 125c94d)
+ + Add EC2 T2 instance types (commit 544f8925cb)
+ + Add new regions for CloudTrail and Kinesis (commit 4d67e19914)
+ + Fixed some code formatting and typo in SQS tutorial docs. (issue 2332, commit 08c8fed)
+ + Documentation update – Child workflows and poll API. (issue 2333, issue 2063, issue 2064, commit 4835676)
+ + DOC Tutorial update for metrics and use of dimensions property. (issue 2340, issue 2336, commit 45fda90)
+ + Let people know only EC2 supported for cloudwatch. (issue 2341, commit 98f03e2)
+ + Add namespace to AccessControlPolicy xml representation. (issue 2342, commit ce07446)
+ + Make ip_addr optional in Route53 HealthCheck. (issue 2345, commit 79c35ca)
+ + Add S3 SigV4 Presigning. (issue 2349, commit 125c4ce)
+ + Add missing route53 autodoc. (issue 2343, commit 6472811)
+ + Adds scan_index_forward and limit to DynamoDB table query count. (issue 2184, commit 4b6d222)
+ + Add method TaggedEC2Object.add_tags(). (issue 2259, commit eea5467)
+ + Add network interface lookup to EC2. Add update/attach/detach methods to NetworkInterface object. (issue 2311, commit 4d44530)
+ + Parse date/time in a locale independent manner. (issue 2317, issue 2271, commit 3b715e5)
+ + Add documentation for delete_hosted_zone. (issue 2316, commit a0fdd39)
+ + s/existance/existence/ (issue 2315, commit b8dfa1c)
+ + Add multipart upload section to the S3 tutorial. (issue 2308, commit 99953d4)
+ + Only attempt shared creds load if path is a file. (issue 2305, commit 0bffa3b)
+
+-------------------------------------------------------------------
Old:
----
boto-2.29.1.tar.gz
New:
----
boto-2.32.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-boto-doc.spec ++++++
--- /var/tmp/diff_new_pack.nuRNxo/_old 2014-09-15 18:24:58.000000000 +0200
+++ /var/tmp/diff_new_pack.nuRNxo/_new 2014-09-15 18:24:58.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-boto-doc
-Version: 2.29.1
+Version: 2.32.1
Release: 0
Url: http://code.google.com/p/boto/
Summary: Amazon Web Services Library
@@ -51,5 +51,6 @@
%files
%defattr(-,root,root,-)
%doc docs/build/html
+%doc docs/BotoCheatSheet.pdf
%changelog
++++++ python-boto.spec ++++++
--- /var/tmp/diff_new_pack.nuRNxo/_old 2014-09-15 18:24:58.000000000 +0200
+++ /var/tmp/diff_new_pack.nuRNxo/_new 2014-09-15 18:24:58.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-boto
-Version: 2.29.1
+Version: 2.32.1
Release: 0
Url: http://code.google.com/p/boto/
Summary: Amazon Web Services Library
@@ -40,14 +40,56 @@
%description
An integrated interface to current and future infrastructural services offered
-by Amazon Web Services. Currently, this includes:
+by Amazon Web Services. At the moment, boto supports:
- * Simple Storage Service (S3)
- * Simple Queue Service (SQS)
- * Elastic Compute Cloud (EC2)
- * Mechanical Turk
- * SimpleDB
- * CloudFront
+ * Compute
+ - Amazon Elastic Compute Cloud (EC2)
+ - Amazon Elastic Map Reduce (EMR)
+ - AutoScaling
+ - Amazon Kinesis
+ * Content Delivery
+ - Amazon CloudFront
+ * Database
+ - Amazon Relational Data Service (RDS)
+ - Amazon DynamoDB
+ - Amazon SimpleDB
+ - Amazon ElastiCache
+ - Amazon Redshift
+ * Deployment and Management
+ - AWS Elastic Beanstalk
+ - AWS CloudFormation
+ - AWS Data Pipeline
+ - AWS Opsworks
+ - AWS CloudTrail
+ * Identity & Access
+ - AWS Identity and Access Management (IAM)
+ * Application Services
+ - Amazon CloudSearch
+ - Amazon Elastic Transcoder
+ - Amazon Simple Workflow Service (SWF)
+ - Amazon Simple Queue Service (SQS)
+ - Amazon Simple Notification Server (SNS)
+ - Amazon Simple Email Service (SES)
+ * Monitoring
+ - Amazon CloudWatch (EC2 Only)
+ - Amazon CloudWatch Logs
+ * Networking
+ - Amazon Route53
+ - Amazon Virtual Private Cloud (VPC)
+ - Elastic Load Balancing (ELB)
+ - AWS Direct Connect
+ * Payments and Billing
+ - Amazon Flexible Payment Service (FPS)
+ * Storage
+ - Amazon Simple Storage Service (S3)
+ - Amazon Glacier
+ - Amazon Elastic Block Store (EBS)
+ - Google Cloud Storage
+ * Workforce
+ - Amazon Mechanical Turk
+ * Other
+ - Marketplace Web Services
+ - AWS Support
%prep
%setup -q -n boto-%{version}
++++++ boto-2.29.1.tar.gz -> boto-2.32.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-boto/boto-2.29.1.tar.gz /work/SRC/openSUSE:Factory/.python-boto.new/boto-2.32.1.tar.gz differ: char 5, 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