openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- 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
May 2015
- 1 participants
- 1756 discussions
Hello community,
here is the log from the commit of package libdrm for openSUSE:Factory checked in at 2015-05-02 21:26:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdrm (Old)
and /work/SRC/openSUSE:Factory/.libdrm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libdrm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libdrm/libdrm.changes 2015-04-10 09:45:50.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libdrm.new/libdrm.changes 2015-05-02 21:26:58.000000000 +0200
@@ -1,0 +2,8 @@
+Wed Apr 29 08:17:19 UTC 2015 - sndirsch(a)suse.com
+
+- U_nouveau-Do-not-add-most-bo-s-to-the-global-bo-list.patch
+ U_nouveau-make-nouveau-importing-global-buffers-comple.patch
+ * reverse apply these patches in order to fix a regression in
+ 2.4.60 triggered by new legacy tray in GNOME 3.16.0 (fdo#89842)
+
+-------------------------------------------------------------------
New:
----
U_nouveau-Do-not-add-most-bo-s-to-the-global-bo-list.patch
U_nouveau-make-nouveau-importing-global-buffers-comple.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libdrm.spec ++++++
--- /var/tmp/diff_new_pack.J2QBpv/_old 2015-05-02 21:26:58.000000000 +0200
+++ /var/tmp/diff_new_pack.J2QBpv/_new 2015-05-02 21:26:58.000000000 +0200
@@ -37,6 +37,8 @@
# Source URL: http://dri.freedesktop.org/libdrm/
Source: %{name}-%{version}.tar.bz2
Source2: baselibs.conf
+Patch0: U_nouveau-Do-not-add-most-bo-s-to-the-global-bo-list.patch
+Patch1: U_nouveau-make-nouveau-importing-global-buffers-comple.patch
# PATCH-FIX-UPSTREAM libdrm-implicit-defs.diff fdo#48599 -- Fix compiler warnings in tests/radeon/radeon_ttm.c
Patch2: u_Fix-compilation-on-systems-that-don-t-provide-O_CLOE.patch
@@ -170,6 +172,9 @@
%prep
%setup -q
+# reverse apply (fdo#89842)
+%patch0 -p1 -R
+%patch1 -p1 -R
%patch2 -p1
%build
++++++ U_nouveau-Do-not-add-most-bo-s-to-the-global-bo-list.patch ++++++
>From ba5a0b6274ad9c493ed3ddaf4e13559b9ff55ac1 Mon Sep 17 00:00:00 2001
From: Maarten Lankhorst <maarten.lankhorst(a)ubuntu.com>
Date: Thu, 26 Feb 2015 11:54:04 +0100
Subject: [PATCH] nouveau: Do not add most bo's to the global bo list.
Only add wrapped bo's and bo's that have been exported through flink or dma-buf.
This avoids a lock in the common case, and decreases traversal needed for importing
a dma-buf or flink.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst(a)ubuntu.com>
Tested-By: Emil Velikov <emil.l.velikov(a)gmail.com>
---
nouveau/nouveau.c | 46 ++++++++++++++++++++++------------------------
1 file changed, 22 insertions(+), 24 deletions(-)
diff --git a/nouveau/nouveau.c b/nouveau/nouveau.c
index 1c723b9..2d95b74 100644
--- a/nouveau/nouveau.c
+++ b/nouveau/nouveau.c
@@ -349,8 +349,8 @@ nouveau_bo_del(struct nouveau_bo *bo)
struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
struct drm_gem_close req = { bo->handle };
- pthread_mutex_lock(&nvdev->lock);
- if (nvbo->name) {
+ if (nvbo->head.next) {
+ pthread_mutex_lock(&nvdev->lock);
if (atomic_read(&nvbo->refcnt) == 0) {
DRMLISTDEL(&nvbo->head);
/*
@@ -365,8 +365,6 @@ nouveau_bo_del(struct nouveau_bo *bo)
}
pthread_mutex_unlock(&nvdev->lock);
} else {
- DRMLISTDEL(&nvbo->head);
- pthread_mutex_unlock(&nvdev->lock);
drmIoctl(bo->device->fd, DRM_IOCTL_GEM_CLOSE, &req);
}
if (bo->map)
@@ -379,7 +377,6 @@ nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, uint32_t align,
uint64_t size, union nouveau_bo_config *config,
struct nouveau_bo **pbo)
{
- struct nouveau_device_priv *nvdev = nouveau_device(dev);
struct nouveau_bo_priv *nvbo = calloc(1, sizeof(*nvbo));
struct nouveau_bo *bo = &nvbo->base;
int ret;
@@ -397,10 +394,6 @@ nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, uint32_t align,
return ret;
}
- pthread_mutex_lock(&nvdev->lock);
- DRMLISTADD(&nvbo->head, &nvdev->bo_list);
- pthread_mutex_unlock(&nvdev->lock);
-
*pbo = bo;
return 0;
}
@@ -457,6 +450,18 @@ nouveau_bo_wrap_locked(struct nouveau_device *dev, uint32_t handle,
return -ENOMEM;
}
+static void
+nouveau_bo_make_global(struct nouveau_bo_priv *nvbo)
+{
+ if (!nvbo->head.next) {
+ struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+ pthread_mutex_lock(&nvdev->lock);
+ if (!nvbo->head.next)
+ DRMLISTADD(&nvbo->head, &nvdev->bo_list);
+ pthread_mutex_unlock(&nvdev->lock);
+ }
+}
+
drm_public int
nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle,
struct nouveau_bo **pbo)
@@ -494,13 +499,16 @@ nouveau_bo_name_get(struct nouveau_bo *bo, uint32_t *name)
struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
*name = nvbo->name;
- if (!*name || *name == ~0U) {
+ if (!*name) {
int ret = drmIoctl(bo->device->fd, DRM_IOCTL_GEM_FLINK, &req);
+
if (ret) {
*name = 0;
return ret;
}
nvbo->name = *name = req.name;
+
+ nouveau_bo_make_global(nvbo);
}
return 0;
}
@@ -533,16 +541,6 @@ nouveau_bo_prime_handle_ref(struct nouveau_device *dev, int prime_fd,
ret = drmPrimeFDToHandle(dev->fd, prime_fd, &handle);
if (ret == 0) {
ret = nouveau_bo_wrap_locked(dev, handle, bo, 0);
- if (!ret) {
- struct nouveau_bo_priv *nvbo = nouveau_bo(*bo);
- if (!nvbo->name) {
- /*
- * XXX: Force locked DRM_IOCTL_GEM_CLOSE
- * to rule out race conditions
- */
- nvbo->name = ~0;
- }
- }
}
pthread_mutex_unlock(&nvdev->lock);
return ret;
@@ -557,8 +555,8 @@ nouveau_bo_set_prime(struct nouveau_bo *bo, int *prime_fd)
ret = drmPrimeHandleToFD(bo->device->fd, nvbo->base.handle, DRM_CLOEXEC, prime_fd);
if (ret)
return ret;
- if (!nvbo->name)
- nvbo->name = ~0;
+
+ nouveau_bo_make_global(nvbo);
return 0;
}
@@ -578,8 +576,8 @@ nouveau_bo_wait(struct nouveau_bo *bo, uint32_t access,
if (push && push->channel)
nouveau_pushbuf_kick(push, push->channel);
- if (!nvbo->name && !(nvbo->access & NOUVEAU_BO_WR) &&
- !( access & NOUVEAU_BO_WR))
+ if (!nvbo->head.next && !(nvbo->access & NOUVEAU_BO_WR) &&
+ !(access & NOUVEAU_BO_WR))
return 0;
req.handle = bo->handle;
--
1.8.4.5
++++++ U_nouveau-make-nouveau-importing-global-buffers-comple.patch ++++++
>From 5ea6f1c32628887c9df0c53bc8c199eb12633fec Mon Sep 17 00:00:00 2001
From: Maarten Lankhorst <maarten.lankhorst(a)ubuntu.com>
Date: Thu, 26 Feb 2015 11:54:03 +0100
Subject: [PATCH] nouveau: make nouveau importing global buffers completely
thread-safe, with tests
While I've closed off most races in a previous patch, a small race still existed
where importing then unreffing cound cause an invalid bo. Add a test for this case.
Racing sequence fixed:
- thread 1 releases bo, refcount drops to zero, blocks on acquiring nvdev->lock.
- thread 2 increases refcount to 1.
- thread 2 decreases refcount to zero, blocks on acquiring nvdev->lock.
At this point the 2 threads will clean up the same bo.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst(a)ubuntu.com>
Reviewed-By: Emil Velikov <emil.l.velikov(a)gmail.com>
---
configure.ac | 1 +
nouveau/nouveau.c | 69 ++++++++++----------
tests/Makefile.am | 4 ++
tests/nouveau/Makefile.am | 16 +++++
tests/nouveau/threaded.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 210 insertions(+), 37 deletions(-)
create mode 100644 tests/nouveau/Makefile.am
create mode 100644 tests/nouveau/threaded.c
diff --git a/configure.ac b/configure.ac
index 437f4da..106d970 100644
--- a/configure.ac
+++ b/configure.ac
@@ -454,6 +454,7 @@ AC_CONFIG_FILES([
tests/vbltest/Makefile
tests/exynos/Makefile
tests/tegra/Makefile
+ tests/nouveau/Makefile
man/Makefile
libdrm.pc])
AC_OUTPUT
diff --git a/nouveau/nouveau.c b/nouveau/nouveau.c
index c6c153a..1c723b9 100644
--- a/nouveau/nouveau.c
+++ b/nouveau/nouveau.c
@@ -351,29 +351,18 @@ nouveau_bo_del(struct nouveau_bo *bo)
pthread_mutex_lock(&nvdev->lock);
if (nvbo->name) {
- if (atomic_read(&nvbo->refcnt)) {
+ if (atomic_read(&nvbo->refcnt) == 0) {
+ DRMLISTDEL(&nvbo->head);
/*
- * bo has been revived by a race with
- * nouveau_bo_prime_handle_ref, or nouveau_bo_name_ref.
- *
- * In theory there's still a race possible with
- * nouveau_bo_wrap, but when using this function
- * the lifetime of the handle is probably already
- * handled in another way. If there are races
- * you're probably using nouveau_bo_wrap wrong.
+ * This bo has to be closed with the lock held because
+ * gem handles are not refcounted. If a shared bo is
+ * closed and re-opened in another thread a race
+ * against DRM_IOCTL_GEM_OPEN or drmPrimeFDToHandle
+ * might cause the bo to be closed accidentally while
+ * re-importing.
*/
- pthread_mutex_unlock(&nvdev->lock);
- return;
+ drmIoctl(bo->device->fd, DRM_IOCTL_GEM_CLOSE, &req);
}
- DRMLISTDEL(&nvbo->head);
- /*
- * This bo has to be closed with the lock held because gem
- * handles are not refcounted. If a shared bo is closed and
- * re-opened in another thread a race against
- * DRM_IOCTL_GEM_OPEN or drmPrimeFDToHandle might cause the
- * bo to be closed accidentally while re-importing.
- */
- drmIoctl(bo->device->fd, DRM_IOCTL_GEM_CLOSE, &req);
pthread_mutex_unlock(&nvdev->lock);
} else {
DRMLISTDEL(&nvbo->head);
@@ -418,7 +407,7 @@ nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, uint32_t align,
static int
nouveau_bo_wrap_locked(struct nouveau_device *dev, uint32_t handle,
- struct nouveau_bo **pbo)
+ struct nouveau_bo **pbo, int name)
{
struct nouveau_device_priv *nvdev = nouveau_device(dev);
struct drm_nouveau_gem_info req = { .handle = handle };
@@ -427,8 +416,24 @@ nouveau_bo_wrap_locked(struct nouveau_device *dev, uint32_t handle,
DRMLISTFOREACHENTRY(nvbo, &nvdev->bo_list, head) {
if (nvbo->base.handle == handle) {
- *pbo = NULL;
- nouveau_bo_ref(&nvbo->base, pbo);
+ if (atomic_inc_return(&nvbo->refcnt) == 1) {
+ /*
+ * Uh oh, this bo is dead and someone else
+ * will free it, but because refcnt is
+ * now non-zero fortunately they won't
+ * call the ioctl to close the bo.
+ *
+ * Remove this bo from the list so other
+ * calls to nouveau_bo_wrap_locked will
+ * see our replacement nvbo.
+ */
+ DRMLISTDEL(&nvbo->head);
+ if (!name)
+ name = nvbo->name;
+ break;
+ }
+
+ *pbo = &nvbo->base;
return 0;
}
}
@@ -443,6 +448,7 @@ nouveau_bo_wrap_locked(struct nouveau_device *dev, uint32_t handle,
atomic_set(&nvbo->refcnt, 1);
nvbo->base.device = dev;
abi16_bo_info(&nvbo->base, &req);
+ nvbo->name = name;
DRMLISTADD(&nvbo->head, &nvdev->bo_list);
*pbo = &nvbo->base;
return 0;
@@ -458,7 +464,7 @@ nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle,
struct nouveau_device_priv *nvdev = nouveau_device(dev);
int ret;
pthread_mutex_lock(&nvdev->lock);
- ret = nouveau_bo_wrap_locked(dev, handle, pbo);
+ ret = nouveau_bo_wrap_locked(dev, handle, pbo, 0);
pthread_mutex_unlock(&nvdev->lock);
return ret;
}
@@ -468,24 +474,13 @@ nouveau_bo_name_ref(struct nouveau_device *dev, uint32_t name,
struct nouveau_bo **pbo)
{
struct nouveau_device_priv *nvdev = nouveau_device(dev);
- struct nouveau_bo_priv *nvbo;
struct drm_gem_open req = { .name = name };
int ret;
pthread_mutex_lock(&nvdev->lock);
- DRMLISTFOREACHENTRY(nvbo, &nvdev->bo_list, head) {
- if (nvbo->name == name) {
- *pbo = NULL;
- nouveau_bo_ref(&nvbo->base, pbo);
- pthread_mutex_unlock(&nvdev->lock);
- return 0;
- }
- }
-
ret = drmIoctl(dev->fd, DRM_IOCTL_GEM_OPEN, &req);
if (ret == 0) {
- ret = nouveau_bo_wrap_locked(dev, req.handle, pbo);
- nouveau_bo((*pbo))->name = name;
+ ret = nouveau_bo_wrap_locked(dev, req.handle, pbo, name);
}
pthread_mutex_unlock(&nvdev->lock);
@@ -537,7 +532,7 @@ nouveau_bo_prime_handle_ref(struct nouveau_device *dev, int prime_fd,
pthread_mutex_lock(&nvdev->lock);
ret = drmPrimeFDToHandle(dev->fd, prime_fd, &handle);
if (ret == 0) {
- ret = nouveau_bo_wrap_locked(dev, handle, bo);
+ ret = nouveau_bo_wrap_locked(dev, handle, bo, 0);
if (!ret) {
struct nouveau_bo_priv *nvbo = nouveau_bo(*bo);
if (!nvbo->name) {
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d5269f9..94fcc08 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,6 +31,10 @@ check_PROGRAMS = \
dristat \
drmstat
+if HAVE_NOUVEAU
+SUBDIRS += nouveau
+endif
+
if HAVE_LIBUDEV
check_LTLIBRARIES = libdrmtest.la
diff --git a/tests/nouveau/Makefile.am b/tests/nouveau/Makefile.am
new file mode 100644
index 0000000..c4f6e29
--- /dev/null
+++ b/tests/nouveau/Makefile.am
@@ -0,0 +1,16 @@
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/include/drm \
+ -I$(top_srcdir)/nouveau \
+ -I$(top_srcdir)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+
+LDADD = \
+ ../../nouveau/libdrm_nouveau.la \
+ ../../libdrm.la \
+ -ldl -lpthread
+
+TESTS = threaded
+
+check_PROGRAMS = $(TESTS)
+
diff --git a/tests/nouveau/threaded.c b/tests/nouveau/threaded.c
new file mode 100644
index 0000000..281af46
--- /dev/null
+++ b/tests/nouveau/threaded.c
@@ -0,0 +1,156 @@
+/*
+ * Copyright © 2015 Canonical Ltd. (Maarten Lankhorst)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <sys/ioctl.h>
+#include <dlfcn.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <pthread.h>
+
+#include "xf86drm.h"
+#include "nouveau.h"
+
+static typeof(ioctl) *old_ioctl;
+static int failed;
+
+static int import_fd;
+
+int ioctl(int fd, unsigned long request, ...)
+{
+ va_list va;
+ int ret;
+ void *arg;
+
+ va_start(va, request);
+ arg = va_arg(va, void *);
+ ret = old_ioctl(fd, request, arg);
+ va_end(va);
+
+ if (ret < 0 && request == DRM_IOCTL_GEM_CLOSE && errno == EINVAL)
+ failed = 1;
+
+ return ret;
+}
+
+static void *
+openclose(void *dev)
+{
+ struct nouveau_device *nvdev = dev;
+ struct nouveau_bo *bo = NULL;
+ int i;
+
+ for (i = 0; i < 100000; ++i) {
+ if (!nouveau_bo_prime_handle_ref(nvdev, import_fd, &bo))
+ nouveau_bo_ref(NULL, &bo);
+ }
+ return NULL;
+}
+
+int main(int argc, char *argv[])
+{
+ drmVersionPtr version;
+ const char *device = NULL;
+ int err, fd, fd2;
+ struct nouveau_device *nvdev, *nvdev2;
+ struct nouveau_bo *bo;
+ pthread_t t1, t2;
+
+ old_ioctl = dlsym(RTLD_NEXT, "ioctl");
+
+ if (argc < 2) {
+ fd = drmOpenWithType("nouveau", NULL, DRM_NODE_RENDER);
+ if (fd >= 0)
+ fd2 = drmOpenWithType("nouveau", NULL, DRM_NODE_RENDER);
+ } else {
+ device = argv[1];
+
+ fd = open(device, O_RDWR);
+ if (fd >= 0)
+ fd2 = open(device, O_RDWR);
+ else
+ fd2 = fd = -errno;
+ }
+
+ if (fd < 0) {
+ fprintf(stderr, "Opening nouveau render node failed with %i\n", fd);
+ return device ? -fd : 77;
+ }
+
+ if (fd2 < 0) {
+ fprintf(stderr, "Opening second nouveau render node failed with %i\n", -errno);
+ return errno;
+ }
+
+ version = drmGetVersion(fd);
+ if (version) {
+ printf("Version: %d.%d.%d\n", version->version_major,
+ version->version_minor, version->version_patchlevel);
+ printf(" Name: %s\n", version->name);
+ printf(" Date: %s\n", version->date);
+ printf(" Description: %s\n", version->desc);
+
+ drmFreeVersion(version);
+ }
+
+ err = nouveau_device_wrap(fd, 0, &nvdev);
+ if (!err)
+ err = nouveau_device_wrap(fd2, 0, &nvdev2);
+ if (err < 0)
+ return 1;
+
+ err = nouveau_bo_new(nvdev2, NOUVEAU_BO_GART, 0, 4096, NULL, &bo);
+ if (!err)
+ err = nouveau_bo_set_prime(bo, &import_fd);
+
+ if (!err) {
+ pthread_create(&t1, NULL, openclose, nvdev);
+ pthread_create(&t2, NULL, openclose, nvdev);
+ }
+
+ pthread_join(t1, NULL);
+ pthread_join(t2, NULL);
+
+ close(import_fd);
+ nouveau_bo_ref(NULL, &bo);
+
+ nouveau_device_del(&nvdev2);
+ nouveau_device_del(&nvdev);
+ if (device) {
+ close(fd2);
+ close(fd);
+ } else {
+ drmClose(fd2);
+ drmClose(fd);
+ }
+
+ if (failed)
+ fprintf(stderr, "DRM_IOCTL_GEM_CLOSE failed with EINVAL,\n"
+ "race in opening/closing bo is likely.\n");
+
+ return failed;
+}
--
1.8.4.5
1
0
Hello community,
here is the log from the commit of package fonts-config for openSUSE:Factory checked in at 2015-05-02 21:25:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fonts-config (Old)
and /work/SRC/openSUSE:Factory/.fonts-config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fonts-config"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fonts-config/fonts-config.changes 2015-01-15 16:00:46.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fonts-config.new/fonts-config.changes 2015-05-02 21:25:50.000000000 +0200
@@ -1,0 +2,28 @@
+Fri Apr 24 08:20:24 UTC 2015 - pgajdos(a)suse.com
+
+- updated to 20150424:
+ * introduce --remove-user-setting option
+
+-------------------------------------------------------------------
+Thu Apr 23 12:02:33 UTC 2015 - pgajdos(a)suse.com
+
+- updated to 20150423:
+ * hide local system family preference list when user's one is
+ in action
+
+-------------------------------------------------------------------
+Tue Apr 21 13:34:43 UTC 2015 - pgajdos(a)suse.com
+
+- updated to 20150421:
+ * use mkpath instead of make_path [bnc#927968]
+ * behave better when
+ /usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+ not found
+
+-------------------------------------------------------------------
+Fri Apr 17 11:55:10 UTC 2015 - pgajdos(a)suse.com
+
+- updated to 20150417:
+ * added --user option
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fonts-config.spec ++++++
--- /var/tmp/diff_new_pack.rjYLfS/_old 2015-05-02 21:25:51.000000000 +0200
+++ /var/tmp/diff_new_pack.rjYLfS/_new 2015-05-02 21:25:51.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package fonts-config
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%define infinality_srcver 1-20130104_1
%define infinality_name fontconfig-infinality
Name: fonts-config
-Version: 20141207
+Version: 20150424
Release: 0
Summary: Configures Fonts for X Windows and other applications
License: GPL-2.0+ and MIT
++++++ 10-rendering-options.conf.template ++++++
--- /var/tmp/diff_new_pack.rjYLfS/_old 2015-05-02 21:25:51.000000000 +0200
+++ /var/tmp/diff_new_pack.rjYLfS/_new 2015-05-02 21:25:51.000000000 +0200
@@ -2,7 +2,7 @@
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<!-- DO NOT EDIT; this is a generated file -->
-<!-- modify /etc/sysconfig/fonts-config && run fonts-config instead -->
+<!-- modify _SYSCONFIG_FILE_PLACEHOLDER_ && run _FONTSCONFIG_RUN_PLACEHOLDER_ instead -->
<!-- using target="pattern", because we want to change pattern in 60-family-prefer.conf
regarding to this setting -->
@@ -58,5 +58,13 @@
_USE_EMBEDDED_BITMAPS_PLACEHOLDER_
+ <!-- Search for metric compatible families? -->
+ <match target="pattern" >
+ <edit name="search_metric_aliases" mode="assign">
+ <bool>_METRIC_ALIASES_PLACEHOLDER_</bool>
+ </edit>
+ </match>
+
+ _INCLUDE_USER_RENDERING_PLACEHOLDER_
</fontconfig>
++++++ 31-metric-aliases-bw.conf ++++++
--- /var/tmp/diff_new_pack.rjYLfS/_old 2015-05-02 21:25:51.000000000 +0200
+++ /var/tmp/diff_new_pack.rjYLfS/_new 2015-05-02 21:25:51.000000000 +0200
@@ -5,6 +5,9 @@
are not well hinted. Fall back to Liberation Sans instead, when
black and white rendering was chosen. -->
<match target="pattern">
+ <test name="search_metric_aliases">
+ <bool>true</bool>
+ </test>
<test name="force_bw">
<bool>true</bool>
</test>
@@ -18,12 +21,15 @@
</edit>
</match>
<match target="pattern">
+ <test name="search_metric_aliases">
+ <bool>true</bool>
+ </test>
<test name="force_bw">
<bool>true</bool>
</test>
<!-- Times represents group here as defined in
30-metric-aliases.conf -->
- <test name="family">
+ <test name="family">
<string>Times</string>
</test>
<edit name="family" mode="append" binding="same">
@@ -31,6 +37,9 @@
</edit>
</match>
<match target="pattern">
+ <test name="search_metric_aliases">
+ <bool>true</bool>
+ </test>
<test name="force_bw">
<bool>true</bool>
</test>
++++++ fonts-config ++++++
--- /var/tmp/diff_new_pack.rjYLfS/_old 2015-05-02 21:25:51.000000000 +0200
+++ /var/tmp/diff_new_pack.rjYLfS/_new 2015-05-02 21:25:51.000000000 +0200
@@ -129,6 +129,15 @@
Generate (or don't generate) font setup for Java.
+=item B<-u>, B<--user>
+
+run fontconfig setup for user. it reads ~/.config/fontconfig/fonts-config,
+which is user analogy of /etc/sysconfig/fonts-config.
+
+=item B<-U>, B<--remove-user-setting>
+
+remove user setting created by by B<--user>.
+
=item B<-f>, B<--force>
Force the update of all generated files even if it appears to be
@@ -316,16 +325,20 @@
use utf8;
use English;
use Getopt::Long;
+use File::Basename;
+use File::Path qw(mkpath);
use Env;
use strict;
my $script_start_time = time();
-my $version = 20141207;
+my $version = 20150424;
#
# OPTIONS
#
+my $OPT_USER = 0;
+my $OPT_REMOVE_USER_SETTING = 0;
my $OPT_FORCE = 0;
my $OPT_QUIET = 0;
my $OPT_VERBOSE = 0;
@@ -375,26 +388,36 @@
"GENERATE_JAVA_FONT_SETUP" , "OPT_JAVA",
);
-my %in_files = (
- "sysconfig file", "/etc/sysconfig/fonts-config",
- "rendering config template", "/usr/share/fonts-config/10-rendering-options.conf.template",
- "metric compatibility config", "/usr/share/fontconfig/conf.avail/30-metric-aliases.conf",
- "metric compatibility bw config", "/usr/share/fonts-config/conf.avail/31-metric-aliases-bw.conf",
+my $xdg_prefix = "$HOME/.config/";
+my %files = (
+ "sysconfig file", "/etc/sysconfig/fonts-config",
+ "user sysconfig file", "fontconfig/fonts-config",
+ "rendering config template", "/usr/share/fonts-config/10-rendering-options.conf.template",
+ "rendering config", "/etc/fonts/conf.d/10-rendering-options.conf",
+ "user rendering config", "fontconfig/rendering-options.conf",
+ "metric compatibility symlink", "/etc/fonts/conf.d/30-metric-aliases.conf",
+ "metric compatibility config", "/etc/fonts/conf.d/30-metric-aliases.conf",
+ "metric compatibility avail", "/usr/share/fontconfig/conf.avail/30-metric-aliases.conf",
+ "metric compatibility bw symlink", "/etc/fonts/conf.d/31-metric-aliases-bw.conf",
+ "local family list", "/etc/fonts/conf.d/58-family-prefer-local.conf",
+ "user family list", "fontconfig/family-prefer.conf",
"java fontconfig properties template", "/usr/share/fonts-config/fontconfig.SuSE.properties.template",
- );
-my %out_files = (
- "rendering config", "/etc/fonts/conf.d/10-rendering-options.conf",
- "local family list", "/etc/fonts/conf.d/58-family-prefer-local.conf",
- "metric compatibility symlink", "/etc/fonts/conf.d/30-metric-aliases.conf",
- "metric compatibility bw symlink", "/etc/fonts/conf.d/31-metric-aliases-bw.conf",
- "java fontconfig properties", "/usr/lib*/jvm/jre/lib/fontconfig.SuSE.properties",
- );
+ "java fontconfig properties", "/usr/lib*/jvm/jre/lib/fontconfig.SuSE.properties",
+ );
-get_option_defaults_from_sysconfig($in_files{"sysconfig file"});
+
+# read sysconfig and userconfig if --user was given
+get_option_defaults_from_sysconfig($files{'sysconfig file'});
+if (grep(/^--user$/, @ARGV)) {
+ # read variables on the top on the system ones
+ get_option_defaults_from_sysconfig($xdg_prefix.$files{'user sysconfig file'});
+}
# process command line options
my %opt;
unless (GetOptions(\%opt,
+ 'user|u', \$OPT_USER,
+ 'remove-user-setting|r', \$OPT_REMOVE_USER_SETTING,
'force|f', \$OPT_FORCE,
'quiet|q', \$OPT_QUIET,
'verbose|v', \$OPT_VERBOSE,
@@ -447,13 +470,9 @@
if ($OPT_INFO) {
# this is read by yast-fonts, so may be that
# change should be reflected in this yast module
- print "Input Files\n";
- for my $f (keys %in_files) {
- print " $f: $in_files{$f}\n"
- }
- print "Output Files\n";
- for my $f (keys %out_files) {
- print " $f: $out_files{$f}\n"
+ print "Involved Files\n";
+ for my $f (keys %files) {
+ print " $f: $files{$f}\n"
}
exit 0;
}
@@ -473,13 +492,30 @@
}
#
+# REMOVE USER SETTING
+#
+
+if ($OPT_REMOVE_USER_SETTING) {
+ my_remove_file($xdg_prefix.$files{'user sysconfig file'});
+ my_remove_file($xdg_prefix.$files{'user rendering config'});
+ my_remove_file($xdg_prefix.$files{'user family list'});
+ exit 0;
+}
+
+if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print $OPT_USER ? "USER mode ($USER)\n" : "SYSTEM mode\n";
+}
+
+#
# SYSCONFIG VARS -- debug output
#
no strict "vars";
no warnings;
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
- print "--- sysconfig options (read from $in_files{'sysconfig file'}):\n";
+ print "--- sysconfig options (read from $files{'sysconfig file'}".
+ ($OPT_USER ? ", $xdg_prefix$files{'user sysconfig file'}" : "").
+ "):\n";
for my $i (keys %sysconfig_options) {
if (defined eval ("\$$i")) {
printf "$i=%s\n", eval("\$$i");
@@ -494,8 +530,8 @@
# UID 0 CHECK
#
-if ($UID != 0 && $ENV{USER} !~ /root/) {
- print "*** error: you must be root to start $0\n";
+if (!$OPT_USER && $UID != 0 && $ENV{USER} !~ /root/) {
+ print "*** error: no root permissions; rerun with --user for user fontconfig setting\n";
exit 1;
}
@@ -503,7 +539,9 @@
# MKFONTSCALE, MKFONTSDIR
#
-mkfont_scale_dir();
+if (!$OPT_USER) {
+ mkfont_scale_dir();
+}
# The following two calls may change files in /etc/fonts, therefore
# they have to be called *before* fc-cache. If anything is
@@ -514,31 +552,37 @@
# FONTCONFIG RENDERING SETUP
#
-rendering_options();
-family_preference_config();
+rendering_options($OPT_USER);
+family_preference_config($OPT_USER);
#
# FONTCONFIG CACHE
#
-run_fccache ("");
-run_fccache ("32");
-run_fccache ("64");
+if (!$OPT_USER) {
+ run_fccache ("");
+ run_fccache ("32");
+ run_fccache ("64");
+}
#
# FONT DATABASE
#
-run_fp_rehash ();
+if (!$OPT_USER) {
+ run_fp_rehash ();
+}
# generate_java_font_setup uses fontconfig,
# therefore it has to be called *after* fc-cache
-if ($OPT_JAVA) {
+if (!$OPT_USER && $OPT_JAVA) {
generate_java_font_setup ();
}
-reload_xfs_config ();
+if (!$OPT_USER) {
+ reload_xfs_config ();
+}
exit 0;
@@ -549,6 +593,7 @@
sub usage {
print "Usage: fonts-config [option] ...\n";
+ print "-u, --user Run fontconfig setup for user.\n";
print "-f, --force Force the update of all generated files even\n";
print " if it appears unnecessary according to the time stamps\n";
print "-q, --quiet Work silently, unless an error occurs.\n";
@@ -616,11 +661,10 @@
eval("\$$sysconfig_options{$i}=0");
}
}
- return (0);
}
else {
- print "--- NOTE: $sysconfig_file doesn't exist, using builtin defaults.\n";
- return (1);
+ # VERBOSITY still not defined!
+ print "NOTE: $sysconfig_file doesn't exist, using builtin defaults.\n";
}
}
@@ -950,7 +994,6 @@
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
print "mkfontscale is not available or it failed ";
print "-> creating an empty fonts.scale file.\n";
- exit 1
}
$try_again = 1;
my_system ("echo 0 > $dir/fonts.scale");
@@ -1074,13 +1117,22 @@
#
sub rendering_options {
- my $suse_rendering_file = $out_files{"rendering config"};
- my $suse_rendering_template_file = $in_files{"rendering config template"};
+ my ($user) = @_;
+ my $suse_rendering_file;
+ my $suse_rendering_template_file = $files{'rendering config template'};
my $suse_rendering = "";
my $suse_rendering_template = "";
+ if (!$user) {
+ $suse_rendering_file = $files{'rendering config'};
+ }
+ else {
+ $suse_rendering_file = $xdg_prefix . $files{'user rendering config'};
+ my_make_path(dirname($suse_rendering_file));
+ }
+
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
- printf "--- Generating $suse_rendering_file ---\n";
+ printf "--- generating $suse_rendering_file ---\n";
}
if (-f "$suse_rendering_template_file") {
@@ -1169,6 +1221,27 @@
}
}
}
+ elsif ($ARG =~ /_SYSCONFIG_FILE_PLACEHOLDER_/) {
+ my $arg = ($user ? " -\\-user" : "");
+ $ARG =~ s/_SYSCONFIG_FILE_PLACEHOLDER_/$files{'sysconfig file'}/;
+ $ARG =~ s/_FONTSCONFIG_RUN_PLACEHOLDER_/$0$arg/;
+ $suse_rendering_template .= $ARG;
+ }
+ elsif ($ARG =~ /_METRIC_ALIASES_PLACEHOLDER_/) {
+ if ($OPT_SEARCH_METRIC_COMPATIBLE) {
+ $ARG =~ s/_METRIC_ALIASES_PLACEHOLDER_/true/;
+ } else {
+ $ARG =~ s/_METRIC_ALIASES_PLACEHOLDER_/false/;
+ }
+ $suse_rendering_template .= $ARG;
+ }
+ elsif ($ARG =~ /_INCLUDE_USER_RENDERING_PLACEHOLDER_/) {
+ if (!$user) {
+ # let user have a possibility to override system settings
+ $ARG =~ s@_INCLUDE_USER_RENDERING_PLACEHOLDER_@<include ignore_missing="yes" prefix="xdg">$files{'user rendering config'}</include>@;
+ $suse_rendering_template .= $ARG;
+ }
+ }
else {
$suse_rendering_template .= $ARG;
}
@@ -1213,7 +1286,7 @@
#
sub family_preference_list {
- my ($family, $prefered_families) = @_;
+ my ($family, $prefered_families, $user) = @_;
my $cfg;
my @families = split(/:/, $prefered_families);
@@ -1233,9 +1306,12 @@
$family =~ s/&/&/g;
if (! $OPT_FORCE_FPL) {
- $cfg .= " <alias>\n";
- $cfg .= " <family>$family</family>\n";
- $cfg .= " <prefer>\n";
+ $cfg .= "\t<alias>\n";
+ if (!$user) {
+ $cfg .= "\t\t<test name=\"user_preference_list\"><bool>false</bool></test>\n"
+ }
+ $cfg .= "\t\t<family>$family</family>\n";
+ $cfg .= "\t\t<prefer>\n";
for my $f (@families) {
$f =~ s/&/&/g;
$cfg .= " <family>$f</family>\n";
@@ -1243,12 +1319,12 @@
print "[$f] ";
}
}
- $cfg .= " </prefer>\n";
- $cfg .= " </alias>\n";
+ $cfg .= "\t\t</prefer>\n";
+ $cfg .= "\t</alias>\n";
} else {
- $cfg .= " <match>\n";
- $cfg .= " <test name=\"family\"><string>$family</string></test>\n";
- $cfg .= " <edit name=\"family\" mode=\"prepend_first\" binding=\"strong\">\n";
+ $cfg .= "\t<match>\n";
+ $cfg .= "\t\t<test name=\"family\"><string>$family</string></test>\n";
+ $cfg .= "\t\t<edit name=\"family\" mode=\"prepend_first\" binding=\"strong\">\n";
for my $f (@families) {
$f =~ s/&/&/g;
$cfg .= " <string>$f</string>\n";
@@ -1256,8 +1332,8 @@
print "[$f] ";
}
}
- $cfg .= " </edit>\n";
- $cfg .= " </match>\n";
+ $cfg .= "\t\t</edit>\n";
+ $cfg .= "\t</match>\n";
}
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
print "\n";
@@ -1266,37 +1342,112 @@
return $cfg;
}
+sub family_metric_compatibility {
+ my ($fontconfig_metric_conf, $user) = @_;
+ my $suse_metric = "";
+
+ if (-f "$fontconfig_metric_conf") {
+ open (CONF, "$fontconfig_metric_conf") || die "can't open file $fontconfig_metric_conf: $!";
+ binmode CONF, ":utf8";
+ while (<CONF>) {
+ $suse_metric .= $ARG;
+ if ($ARG =~ /<alias.*>/) {
+ $suse_metric .= "\t <test name=\"search_metric_aliases\"><bool>true</bool></test>\n"
+ } elsif ($ARG =~ /<!DOCTYPE.*>/) {
+ $suse_metric .= "\n";
+ $suse_metric .= "<!-- DO NOT EDIT; this is a generated file -->\n";
+ $suse_metric .= "<!-- modify $files{($user ? 'user syconfig file' : 'sysconfig file')} && run $0 instead -->\n";
+ $suse_metric .= "\n";
+ }
+ }
+ close (CONF);
+ } else {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- WARNING: $fontconfig_metric_conf doesn't exist!\n";
+ }
+ }
+
+ return $suse_metric;
+}
+
sub family_preference_config {
- my $suse_pref_file = $out_files{"local family list"};
- my $metric_file = $in_files{"metric compatibility config"};
- my $bw_metric_file = $in_files{"metric compatibility bw config"};
- my $metric_symlink = $out_files{"metric compatibility symlink"};
- my $bw_metric_symlink = $out_files{"metric compatibility bw symlink"};
+ my ($user) = @_;
+ my $suse_pref_file = $files{'local family list'};
+ my $suse_metric_file = $files{'metric compatibility config'};
+ my $metric_symlink = $files{'metric compatibility symlink'};
+ my $metric_avail = $files{'metric compatibility avail'};
+ my $suse_metric = "";
my $suse_pref = "";
my $edit_options;
+ if (!$user) {
+ $suse_pref_file = $files{'local family list'};
+ }
+ else {
+ $suse_pref_file = $xdg_prefix . $files{'user family list'};
+ my_make_path(dirname($suse_pref_file));
+ }
+
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
- printf "--- Generating $suse_pref_file ---\n";
+ printf "--- generating $suse_pref_file ---\n";
}
- if ($OPT_SEARCH_METRIC_COMPATIBLE) {
- my_symlink($metric_file, $metric_symlink);
- my_symlink($bw_metric_file, $bw_metric_symlink);
- } else {
- my_remove_symlink($metric_symlink);
- my_remove_symlink($bw_metric_symlink);
+ if (!$user)
+ {
+ if (-e $metric_avail) {
+ # replace fontconfig's /etc/fonts/conf.d/30-metric-aliases.conf
+ # by fonts-config's one
+
+ if (-l $metric_symlink) {
+ my_remove_symlink($metric_symlink);
+ }
+
+ $suse_metric .= family_metric_compatibility($metric_avail, $user);
+
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- writing $suse_metric_file ---\n";
+ print "---\n";
+ }
+ # same name as symlink from fontconfig
+ open (CONF, ">$suse_metric_file") || die "can't open file $suse_metric_file: $!";
+ print CONF $suse_metric;
+ close (CONF);
+ }
+ else {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- WARNING: $metric_avail not found, not writing $suse_metric_file ---\n";
+ print "---\n";
+ }
+ }
}
$suse_pref .= "<?xml version=\"1.0\"?>\n";
$suse_pref .= "<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n";
$suse_pref .= "\n";
$suse_pref .= "<!-- DO NOT EDIT; this is a generated file -->\n";
- $suse_pref .= "<!-- modify /etc/sysconfig/fonts-config && run fonts-config instead -->\n";
+ $suse_pref .= "<!-- modify $files{($user ? 'user sysconfig file' : 'sysconfig file')} && run $0" . ($user ? " -\\-user" : "") . " instead -->\n";
$suse_pref .= "\n";
$suse_pref .= "<fontconfig>\n";
- $suse_pref .= family_preference_list("sans-serif", $OPT_SANS_FAMILIES);
- $suse_pref .= family_preference_list("serif", $OPT_SERIF_FAMILIES);
- $suse_pref .= family_preference_list("monospace", $OPT_MONO_FAMILIES);
+ if (!$user) {
+ $suse_pref .= "\t<!-- Let user override here defined system setting. -->\n";
+ $suse_pref .= "\t<match target=\"pattern\">\n";
+ $suse_pref .= "\t\t<edit name=\"user_preference_list\" mode=\"assign\">\n";
+ $suse_pref .= "\t\t\t<bool>false</bool>\n";
+ $suse_pref .= "\t\t</edit>\n";
+ $suse_pref .= "\t</match>\n";
+ $suse_pref .= "\t<include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/family-prefer.conf</include>\n";
+ }
+ else {
+ $suse_pref .= "\t<match target=\"pattern\">\n";
+ $suse_pref .= "\t\t<edit name=\"user_preference_list\" mode=\"assign\">\n";
+ $suse_pref .= "\t\t\t<bool>true</bool>\n";
+ $suse_pref .= "\t\t</edit>\n";
+ $suse_pref .= "\t</match>\n";
+ }
+ $suse_pref .= "\n";
+ $suse_pref .= family_preference_list("sans-serif", $OPT_SANS_FAMILIES, $user);
+ $suse_pref .= family_preference_list("serif", $OPT_SERIF_FAMILIES, $user);
+ $suse_pref .= family_preference_list("monospace", $OPT_MONO_FAMILIES, $user);
$suse_pref .= "</fontconfig>\n";
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
@@ -1399,8 +1550,8 @@
#
sub generate_java_font_setup {
- my @fontconfig_SuSE_properties_globs = $out_files{"java fontconfig properties"};
- my $fontconfig_SuSE_properties_template_file = $in_files{"java fontconfig properties template"};
+ my @fontconfig_SuSE_properties_globs = $files{'java fontconfig properties'};
+ my $fontconfig_SuSE_properties_template_file = $files{'java fontconfig properties template'};
my $fontconfig_SuSE_properties_template = "";
my @sans_japanese_priority = ("MS Gothic",
"HGGothicB",
@@ -1494,10 +1645,10 @@
if ($VERBOSITY == $VERBOSITY_VERBOSE) {
- printf "Generating java font setup ...\n";
+ printf "generating java font setup ...\n";
}
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
- printf "--- Generating java font setup\n";
+ printf "--- generating java font setup\n";
}
my ($font, $file);
@@ -1704,7 +1855,16 @@
#
sub reload_xfs_config {
- my $pids = `ps -C xfs -o pid= | sed 's:[ \t]::g'`;
+ my $pids;
+
+ if (! -x '/usr/bin/ps') {
+ if ($VERBOSITY >= $VERBOSITY_VERBOSE) {
+ print "--- WARNING: ps command is missing, couldn't search for X Font Server pids\n";
+ }
+ return;
+ }
+
+ $pids = `/usr/bin/ps -C xfs -o pid= | sed 's:[ \t]::g'`;
$pids =~ s/\n//;
if ($pids) {
@@ -1765,8 +1925,8 @@
sub my_remove_symlink {
my ($link) = @_;
- if ($VERBOSITY >= $VERBOSITY_DEBUG) {
- print "--- remove symlink: $link .. ";
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- removing symlink: $link .. ";
}
if (! -l $link) {
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
@@ -1787,6 +1947,30 @@
}
}
+sub my_make_path {
+ my ($dir) = @_;
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- creating directory: $dir .. ";
+ }
+ if (-d $dir) {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "exists\n";
+ }
+ return;
+ }
+ mkpath($dir);
+ if (! -d $dir) {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "can not create\n";
+ }
+ exit 1;
+ }
+
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "created\n";
+ }
+}
+
sub search_executable {
for my $file (@_) {
if (-x $file) {
@@ -1796,9 +1980,28 @@
if ($VERBOSITY >= $VERBOSITY_DEBUG) {
print "--- WARNING: no executable from ";
print join(", ", @_);
- print "found\n";
+ print " found\n";
}
return "";
}
-
+sub my_remove_file {
+ my ($file) = @_;
+ if (-e $file) {
+ if(unlink $file) {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- $file deleted ";
+ }
+ }
+ else {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- WARNING: can not delete $file ";
+ }
+ }
+ }
+ else {
+ if ($VERBOSITY >= $VERBOSITY_DEBUG) {
+ print "--- WARNING: $file does not exist, can not delete";
+ }
+ }
+}
1
0
Hello community,
here is the log from the commit of package wine for openSUSE:Factory checked in at 2015-05-02 17:46:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wine (Old)
and /work/SRC/openSUSE:Factory/.wine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/wine/wine.changes 2015-04-18 10:41:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.wine.new/wine.changes 2015-05-02 17:46:35.000000000 +0200
@@ -1,0 +2,10 @@
+Fri May 1 13:15:59 UTC 2015 - meissner(a)suse.com
+
+- Updated to 1.7.42 development snapshot
+ - Support for dynamic timezone information.
+ - Initial desktop shell window support.
+ - Some more Direct2D support.
+ - Various bug fixes.
+- updated winetricks
+
+-------------------------------------------------------------------
Old:
----
wine-1.7.41.tar.bz2
wine-1.7.41.tar.bz2.sign
New:
----
wine-1.7.42.tar.bz2
wine-1.7.42.tar.bz2.sign
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wine.spec ++++++
--- /var/tmp/diff_new_pack.ybjEa3/_old 2015-05-02 17:46:36.000000000 +0200
+++ /var/tmp/diff_new_pack.ybjEa3/_new 2015-05-02 17:46:36.000000000 +0200
@@ -56,7 +56,7 @@
BuildRequires: update-desktop-files
BuildRequires: valgrind-devel
BuildRequires: xorg-x11-devel
-Version: 1.7.41
+Version: 1.7.42
Release: 0
Summary: An MS Windows Emulator
License: LGPL-2.1+
++++++ wine-1.7.41.tar.bz2 -> wine-1.7.42.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/wine/wine-1.7.41.tar.bz2 /work/SRC/openSUSE:Factory/.wine.new/wine-1.7.42.tar.bz2 differ: char 11, line 1
++++++ winetricks ++++++
--- /var/tmp/diff_new_pack.ybjEa3/_old 2015-05-02 17:46:37.000000000 +0200
+++ /var/tmp/diff_new_pack.ybjEa3/_new 2015-05-02 17:46:37.000000000 +0200
@@ -7270,8 +7270,9 @@
# 2014-05-21 sha1sum: d95d1a14ee264235b29e093105bd2baa8b06eb12
# 2014-11-22 sha1sum: 644d3228654ded798eabe40e7044b96b90e742f6
# 2015-03-30 sha1sum: 9f2d4d929e7210ae9fb633881127b21586ffd8ce
+ # 2015-04-27 sha1sum: 244e6a5c5fa2dd26c136bc5b402f6cad588763d7
- w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/late… 9f2d4d929e7210ae9fb633881127b21586ffd8ce
+ w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/late… 244e6a5c5fa2dd26c136bc5b402f6cad588763d7
cd "$W_CACHE"/shockwave
w_try "$WINE" msiexec /i sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q
}
1
0
Hello community,
here is the log from the commit of package rubygem-rb-kqueue for openSUSE:Factory checked in at 2015-05-02 17:46:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rb-kqueue (Old)
and /work/SRC/openSUSE:Factory/.rubygem-rb-kqueue.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rb-kqueue"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rb-kqueue/rubygem-rb-kqueue.changes 2014-11-13 09:17:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-rb-kqueue.new/rubygem-rb-kqueue.changes 2015-05-02 17:46:18.000000000 +0200
@@ -1,0 +2,6 @@
+Fri May 1 04:30:44 UTC 2015 - coolo(a)suse.com
+
+- updated to version 0.2.4
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
rb-kqueue-0.2.3.gem
New:
----
gem2rpm.yml
rb-kqueue-0.2.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-rb-kqueue.spec ++++++
--- /var/tmp/diff_new_pack.ADSvWy/_old 2015-05-02 17:46:19.000000000 +0200
+++ /var/tmp/diff_new_pack.ADSvWy/_new 2015-05-02 17:46:19.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-rb-kqueue
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,18 +15,27 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
+#
+# This file was generated with a gem2rpm.yml and not just plain gem2rpm.
+# All sections marked as MANUAL, license headers, summaries and descriptions
+# can be maintained in that file. Please consult this file before editing any
+# of those fields
+#
+
Name: rubygem-rb-kqueue
-Version: 0.2.3
+Version: 0.2.4
Release: 0
%define mod_name rb-kqueue
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
-BuildRequires: %{ruby}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{rubygem rdoc > 3.10}
+BuildRequires: %{ruby}
+BuildRequires: ruby-macros >= 5
Url: http://github.com/mat813/rb-kqueue
Source: http://rubygems.org/gems/%{mod_full_name}.gem
+Source1: gem2rpm.yml
Summary: A Ruby wrapper for BSD's kqueue, using FFI
License: MIT
Group: Development/Languages/Ruby
++++++ gem2rpm.yml ++++++
# ---
# ## used by gem2rpm
# :summary: this is a custom summary
# ## used by gem2rpm
# :description: |-
# this is a custom description
#
# it can be multiline
# ## used by gem2rpm
# :license: MIT or Ruby
# ## used by gem2rpm and gem_packages
# :version_suffix: -x_y
# ## used by gem2rpm and gem_packages
# :disable_docs: true
# ## used by gem2rpm
# :disable_automatic_rdoc_dep: true
# ## used by gem2rpm
# :preamble: |-
# BuildRequires: foobar
# Requires: foobar
# ## used by gem2rpm
# :patches:
# foo.patch: -p1
# bar.patch:
# ## used by gem2rpm
:sources:
# - foo.desktop
# - bar.desktop
# :gem_install_args: '....'
# ## used by gem2rpm
# :pre_install: |-
# %if 0%{?use_system_libev}
# export USE_VENDORED_LIBEV="no"
# %endif
# ## used by gem2rpm
# :post_install: |-
# # delete custom files here or do other fancy stuff
# install -D -m 0644 %{S:1} %{buildroot}%{_bindir}/gem2rpm-opensuse
# ## used by gem2rpm
# :testsuite_command: |-
# (pushd %{buildroot}%{gem_base}/gems/%{mod_full_name} && rake test)
# ## used by gem2rpm
# :filelist: |-
# /usr/bin/gem2rpm-opensuse
# ## used by gem2rpm
# :scripts:
# :post: |-
# /bin/echo foo
# ## used by gem_packages
# :main:
# :preamble: |-
# Requires: util-linux
# Recommends: pwgen
# :filelist: |-
# /usr/bin/gem2rpm-opensuse
# ## used by gem_packages
# :custom:
# apache:
# :preamble: |-
# Requires: .....
# :filelist: |-
# /etc/apache2/conf.d/passenger.conf
# :summary: Custom summary is optional
# :description: |-
# Custom description is optional
#
# bar
# :post: |-
# /bin/echo foo
#
++++++ rb-kqueue-0.2.3.gem -> rb-kqueue-0.2.4.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rb-kqueue/version.rb new/lib/rb-kqueue/version.rb
--- old/lib/rb-kqueue/version.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/rb-kqueue/version.rb 2015-05-01 01:07:17.000000000 +0200
@@ -0,0 +1,3 @@
+module KQueue
+ VERSION = [0, 2, 4]
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rb-kqueue/watcher/signal.rb new/lib/rb-kqueue/watcher/signal.rb
--- old/lib/rb-kqueue/watcher/signal.rb 2014-06-03 17:33:19.000000000 +0200
+++ new/lib/rb-kqueue/watcher/signal.rb 2015-05-01 01:07:17.000000000 +0200
@@ -19,9 +19,9 @@
def initialize(queue, signal, callback)
if signal.is_a?(String)
@name = signal
- @number = Signal.list[signal]
+ @number = ::Signal.list[signal]
else
- @name = Signal.list.find {|_, n| n == signal}.first
+ @name = ::Signal.list.find {|_, n| n == signal}.first
@number = signal
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rb-kqueue.rb new/lib/rb-kqueue.rb
--- old/lib/rb-kqueue.rb 2014-06-03 17:33:19.000000000 +0200
+++ new/lib/rb-kqueue.rb 2015-05-01 01:07:17.000000000 +0200
@@ -4,8 +4,11 @@
require 'rb-kqueue/watcher/file'
require 'rb-kqueue/watcher/read_write'
require 'rb-kqueue/watcher/process'
+require 'rb-kqueue/watcher/signal'
+require 'rb-kqueue/watcher/timer'
require 'rb-kqueue/event'
require 'rb-kqueue/queue'
+require 'rb-kqueue/version'
# The root module of the library, which is laid out as so:
#
@@ -13,8 +16,6 @@
# * {Watcher} -- A watcher for a single sort of event
# * {Event} -- A notification that an event has occurred
module KQueue
- VERSION = [0, 2, 3]
-
# Raise an exception for a native kqueue error.
#
# @param errno [Fixnum] The errno identifying the sort of error.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2014-06-03 17:33:19.000000000 +0200
+++ new/metadata 2015-05-01 01:07:17.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: rb-kqueue
version: !ruby/object:Gem::Version
- version: 0.2.3
+ version: 0.2.4
platform: ruby
authors:
- Mathieu Arnold
@@ -9,7 +9,7 @@
autorequire:
bindir: bin
cert_chain: []
-date: 2014-06-03 00:00:00.000000000 Z
+date: 2015-05-01 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: ffi
@@ -58,6 +58,7 @@
- lib/rb-kqueue/native.rb
- lib/rb-kqueue/native/flags.rb
- lib/rb-kqueue/queue.rb
+- lib/rb-kqueue/version.rb
- lib/rb-kqueue/watcher.rb
- lib/rb-kqueue/watcher/file.rb
- lib/rb-kqueue/watcher/process.rb
@@ -87,7 +88,7 @@
version: '0'
requirements: []
rubyforge_project:
-rubygems_version: 2.2.1
+rubygems_version: 2.2.2
signing_key:
specification_version: 4
summary: A Ruby wrapper for BSD's kqueue, using FFI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rb-kqueue.gemspec new/rb-kqueue.gemspec
--- old/rb-kqueue.gemspec 2014-06-03 17:33:19.000000000 +0200
+++ new/rb-kqueue.gemspec 2015-05-01 01:07:17.000000000 +0200
@@ -3,13 +3,15 @@
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
# -*- encoding: utf-8 -*-
+require File.expand_path('../lib/rb-kqueue/version', __FILE__)
+
Gem::Specification.new do |gem|
gem.name = %q{rb-kqueue}
- gem.version = "0.2.3"
+ gem.version = KQueue::VERSION.join(".")
gem.authors = ["Mathieu Arnold", "Nathan Weizenbaum"]
gem.email = %q{mat(a)mat.cc nex342(a)gmail.com}
- gem.date = %q{2014-06-03}
+ gem.date = %q{2015-05-01}
gem.description = %q{A Ruby wrapper for BSD's kqueue, using FFI}
gem.extra_rdoc_files = %w(README.md)
gem.licenses = ['MIT']
1
0
Hello community,
here is the log from the commit of package rubygem-cri for openSUSE:Factory checked in at 2015-05-02 17:46:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-cri (Old)
and /work/SRC/openSUSE:Factory/.rubygem-cri.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-cri"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-cri/rubygem-cri.changes 2014-12-21 12:04:07.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-cri.new/rubygem-cri.changes 2015-05-02 17:46:02.000000000 +0200
@@ -1,0 +2,18 @@
+Thu Apr 30 04:28:54 UTC 2015 - coolo(a)suse.com
+
+- updated to version 2.7.0
+ see installed NEWS.md
+
+ 2.7.0
+ -----
+
+ Features:
+
+ * Added support for hidden options (#43, #44) [Bart Mesuere]
+
+ Enhancements:
+
+ * Added option values to help output (#37, #40, #41)
+ * Made option descriptions wrap (#36, #45) [Bart Mesuere]
+
+-------------------------------------------------------------------
Old:
----
cri-2.6.1.gem
New:
----
cri-2.7.0.gem
gem2rpm.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-cri.spec ++++++
--- /var/tmp/diff_new_pack.q8y04x/_old 2015-05-02 17:46:03.000000000 +0200
+++ /var/tmp/diff_new_pack.q8y04x/_new 2015-05-02 17:46:03.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-cri
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,18 +15,27 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
+#
+# This file was generated with a gem2rpm.yml and not just plain gem2rpm.
+# All sections marked as MANUAL, license headers, summaries and descriptions
+# can be maintained in that file. Please consult this file before editing any
+# of those fields
+#
+
Name: rubygem-cri
-Version: 2.6.1
+Version: 2.7.0
Release: 0
%define mod_name cri
%define mod_full_name %{mod_name}-%{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-BuildRequires: ruby-macros >= 5
-BuildRequires: %{ruby}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{rubygem rdoc > 3.10}
+BuildRequires: %{ruby}
+BuildRequires: ruby-macros >= 5
Url: http://stoneship.org/software/cri/
Source: http://rubygems.org/gems/%{mod_full_name}.gem
+Source1: gem2rpm.yml
Summary: a library for building easy-to-use commandline tools
License: MIT
Group: Development/Languages/Ruby
@@ -41,7 +50,7 @@
%install
%gem_install \
- --doc-files="LICENSE" \
+ --doc-files="LICENSE NEWS.md" \
-f
%gem_packages
++++++ cri-2.6.1.gem -> cri-2.7.0.gem ++++++
++++ 3544 lines of diff (skipped)
++++++ gem2rpm.yml ++++++
# ---
# ## used by gem2rpm
# :summary: this is a custom summary
# ## used by gem2rpm
# :description: |-
# this is a custom description
#
# it can be multiline
# ## used by gem2rpm
# :license: MIT or Ruby
# ## used by gem2rpm and gem_packages
# :version_suffix: -x_y
# ## used by gem2rpm and gem_packages
# :disable_docs: true
# ## used by gem2rpm
# :disable_automatic_rdoc_dep: true
# ## used by gem2rpm
# :preamble: |-
# BuildRequires: foobar
# Requires: foobar
# ## used by gem2rpm
# :patches:
# foo.patch: -p1
# bar.patch:
# ## used by gem2rpm
:sources:
# - foo.desktop
# - bar.desktop
# :gem_install_args: '....'
# ## used by gem2rpm
# :pre_install: |-
# %if 0%{?use_system_libev}
# export USE_VENDORED_LIBEV="no"
# %endif
# ## used by gem2rpm
# :post_install: |-
# # delete custom files here or do other fancy stuff
# install -D -m 0644 %{S:1} %{buildroot}%{_bindir}/gem2rpm-opensuse
# ## used by gem2rpm
# :testsuite_command: |-
# (pushd %{buildroot}%{gem_base}/gems/%{mod_full_name} && rake test)
# ## used by gem2rpm
# :filelist: |-
# /usr/bin/gem2rpm-opensuse
# ## used by gem2rpm
# :scripts:
# :post: |-
# /bin/echo foo
# ## used by gem_packages
# :main:
# :preamble: |-
# Requires: util-linux
# Recommends: pwgen
# :filelist: |-
# /usr/bin/gem2rpm-opensuse
# ## used by gem_packages
# :custom:
# apache:
# :preamble: |-
# Requires: .....
# :filelist: |-
# /etc/apache2/conf.d/passenger.conf
# :summary: Custom summary is optional
# :description: |-
# Custom description is optional
#
# bar
# :post: |-
# /bin/echo foo
#
1
0
Hello community,
here is the log from the commit of package rubygem-spring for openSUSE:Factory checked in at 2015-05-02 17:45:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-spring (Old)
and /work/SRC/openSUSE:Factory/.rubygem-spring.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-spring"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-spring/rubygem-spring.changes 2015-04-10 09:53:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-spring.new/rubygem-spring.changes 2015-05-02 17:45:44.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Apr 30 04:30:55 UTC 2015 - coolo(a)suse.com
+
+- updated to version 1.3.5
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
spring-1.3.4.gem
New:
----
spring-1.3.5.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-spring.spec ++++++
--- /var/tmp/diff_new_pack.zYVc8N/_old 2015-05-02 17:45:45.000000000 +0200
+++ /var/tmp/diff_new_pack.zYVc8N/_new 2015-05-02 17:45:45.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-spring
-Version: 1.3.4
+Version: 1.3.5
Release: 0
%define mod_name spring
%define mod_full_name %{mod_name}-%{version}
++++++ spring-1.3.4.gem -> spring-1.3.5.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/spring/commands/rails.rb new/lib/spring/commands/rails.rb
--- old/lib/spring/commands/rails.rb 2015-04-06 18:48:55.000000000 +0200
+++ new/lib/spring/commands/rails.rb 2015-04-29 21:51:47.000000000 +0200
@@ -84,6 +84,20 @@
end
class RailsTest < Rails
+ def env(args)
+ environment = "test"
+
+ args.each.with_index do |arg, i|
+ if arg =~ /--environment=(\w+)/
+ environment = $1
+ elsif i > 0 && args[i - 1] == "-e"
+ environment = arg
+ end
+ end
+
+ environment
+ end
+
def command_name
"test"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/spring/version.rb new/lib/spring/version.rb
--- old/lib/spring/version.rb 2015-04-06 18:48:55.000000000 +0200
+++ new/lib/spring/version.rb 2015-04-29 21:51:47.000000000 +0200
@@ -1,3 +1,3 @@
module Spring
- VERSION = "1.3.4"
+ VERSION = "1.3.5"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-04-06 18:48:55.000000000 +0200
+++ new/metadata 2015-04-29 21:51:47.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: spring
version: !ruby/object:Gem::Version
- version: 1.3.4
+ version: 1.3.5
platform: ruby
authors:
- Jon Leighton
autorequire:
bindir: bin
cert_chain: []
-date: 2015-04-06 00:00:00.000000000 Z
+date: 2015-04-29 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: activesupport
1
0
Hello community,
here is the log from the commit of package perl-Devel-CheckBin for openSUSE:Factory checked in at 2015-05-02 17:45:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Devel-CheckBin (Old)
and /work/SRC/openSUSE:Factory/.perl-Devel-CheckBin.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Devel-CheckBin"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Devel-CheckBin/perl-Devel-CheckBin.changes 2014-09-30 19:42:07.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Devel-CheckBin.new/perl-Devel-CheckBin.changes 2015-05-02 17:45:28.000000000 +0200
@@ -1,0 +2,10 @@
+Thu Apr 30 05:49:02 UTC 2015 - coolo(a)suse.com
+
+- updated to 0.03
+ see /usr/share/doc/packages/perl-Devel-CheckBin/Changes
+
+ 0.03 2015-04-30T00:47:41Z
+
+ - re-packaging with EU::MM
+
+-------------------------------------------------------------------
Old:
----
Devel-CheckBin-0.02.tar.gz
New:
----
Devel-CheckBin-0.03.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Devel-CheckBin.spec ++++++
--- /var/tmp/diff_new_pack.7kO5mm/_old 2015-05-02 17:45:30.000000000 +0200
+++ /var/tmp/diff_new_pack.7kO5mm/_new 2015-05-02 17:45:30.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Devel-CheckBin
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,22 +17,20 @@
Name: perl-Devel-CheckBin
-Version: 0.02
+Version: 0.03
Release: 0
%define cpan_name Devel-CheckBin
-Summary: Check that a command is available
+Summary: Check That a Command Is Available
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Devel-CheckBin/
-Source: http://www.cpan.org/authors/id/T/TO/TOKUHIROM/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/T/TO/TOKUHIROM/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(CPAN::Meta)
-BuildRequires: perl(CPAN::Meta::Prereqs)
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.52
-BuildRequires: perl(Module::Build) >= 0.38
BuildRequires: perl(Test::More) >= 0.98
BuildRequires: perl(parent)
Requires: perl(ExtUtils::MakeMaker) >= 6.52
@@ -47,18 +45,19 @@
%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Build.PL installdirs=vendor
-./Build build flags=%{?_smp_mflags}
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+%{__make} %{?_smp_mflags}
%check
-./Build test
+%{__make} test
%install
-./Build install destdir=%{buildroot} create_packlist=0
+%perl_make_install
+%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes cpanfile LICENSE README.md
+%doc Changes LICENSE minil.toml README.md
%changelog
++++++ Devel-CheckBin-0.02.tar.gz -> Devel-CheckBin-0.03.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/Build.PL new/Devel-CheckBin-0.03/Build.PL
--- old/Devel-CheckBin-0.02/Build.PL 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/Build.PL 1970-01-01 01:00:00.000000000 +0100
@@ -1,69 +0,0 @@
-# =========================================================================
-# THIS FILE IS AUTOMATICALLY GENERATED BY MINILLA.
-# DO NOT EDIT DIRECTLY.
-# =========================================================================
-
-use 5.008_001;
-
-use strict;
-use warnings;
-use utf8;
-
-use Module::Build;
-use File::Basename;
-use File::Spec;
-use CPAN::Meta;
-use CPAN::Meta::Prereqs;
-
-my %args = (
- license => 'perl',
- dynamic_config => 0,
-
- configure_requires => {
- 'Module::Build' => 0.38,
- },
-
- name => 'Devel-CheckBin',
- module_name => 'Devel::CheckBin',
- allow_pureperl => 0,
-
- script_files => [glob('script/*'), glob('bin/*')],
- c_source => [qw()],
-
- test_files => ((-d '.git' || $ENV{RELEASE_TESTING}) && -d 'xt') ? 't/ xt/' : 't/',
- recursive_test_files => 1,
-);
-if (-d 'share') {
- $args{share_dir} = 'share';
-}
-
-my $builder = Module::Build->subclass(
- class => 'MyBuilder',
- code => q{
- sub ACTION_distmeta {
- die "Do not run distmeta. Install Minilla and `minil install` instead.\n";
- }
- sub ACTION_installdeps {
- die "Do not run installdeps. Run `cpanm --installdeps .` instead.\n";
- }
- }
-)->new(%args);
-$builder->create_build_script();
-
-my $mbmeta = CPAN::Meta->load_file('MYMETA.json');
-my $meta = CPAN::Meta->load_file('META.json');
-my $prereqs_hash = CPAN::Meta::Prereqs->new(
- $meta->prereqs
-)->with_merged_prereqs(
- CPAN::Meta::Prereqs->new($mbmeta->prereqs)
-)->as_string_hash;
-my $mymeta = CPAN::Meta->new(
- {
- %{$meta->as_struct},
- prereqs => $prereqs_hash
- }
-);
-print "Merging cpanfile prereqs to MYMETA.yml\n";
-$mymeta->save('MYMETA.yml', { version => 1.4 });
-print "Merging cpanfile prereqs to MYMETA.json\n";
-$mymeta->save('MYMETA.json', { version => 2 });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/Changes new/Devel-CheckBin-0.03/Changes
--- old/Devel-CheckBin-0.02/Changes 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/Changes 2015-04-30 02:47:48.000000000 +0200
@@ -1,5 +1,9 @@
Revision history for Perl extension Devel-CheckBin
+0.03 2015-04-30T00:47:41Z
+
+ - re-packaging with EU::MM
+
0.02 2013-08-14T03:17:03Z
- re-packaging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/MANIFEST new/Devel-CheckBin-0.03/MANIFEST
--- old/Devel-CheckBin-0.02/MANIFEST 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/MANIFEST 2015-04-30 02:47:48.000000000 +0200
@@ -1,10 +1,11 @@
-Build.PL
Changes
LICENSE
META.json
+Makefile.PL
README.md
cpanfile
lib/Devel/CheckBin.pm
+minil.toml
t/00_compile.t
t/01_can_run.t
t/02_can_run.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/META.json new/Devel-CheckBin-0.03/META.json
--- old/Devel-CheckBin-0.02/META.json 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/META.json 2015-04-30 02:47:48.000000000 +0200
@@ -4,8 +4,10 @@
"tokuhirom <tokuhirom(a)gmail.com>"
],
"dynamic_config" : 0,
- "generated_by" : "Minilla/v0.5.6",
- "license" : "perl_5",
+ "generated_by" : "Minilla/v2.4.0",
+ "license" : [
+ "perl_5"
+ ],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : "2"
@@ -19,21 +21,21 @@
"share",
"eg",
"examples",
- "author"
+ "author",
+ "builder"
]
},
"prereqs" : {
"configure" : {
"requires" : {
- "CPAN::Meta" : "0",
- "CPAN::Meta::Prereqs" : "0",
- "Module::Build" : "0.38"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
"requires" : {
"Test::CPAN::Meta" : "0",
- "Test::MinimumVersion" : "0.10108",
+ "Test::MinimumVersion::Fast" : "0.04",
+ "Test::PAUSE::Permissions" : "0.04",
"Test::Pod" : "1.41",
"Test::Spellunker" : "v0.2.7"
}
@@ -56,7 +58,7 @@
"provides" : {
"Devel::CheckBin" : {
"file" : "lib/Devel/CheckBin.pm",
- "version" : "0.02"
+ "version" : "0.03"
}
},
"release_status" : "stable",
@@ -70,5 +72,8 @@
"web" : "https://github.com/tokuhirom/Devel-CheckBin"
}
},
- "version" : "0.02"
+ "version" : "0.03",
+ "x_contributors" : [
+ "Graham Knop <haarg(a)haarg.org>"
+ ]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/META.yml new/Devel-CheckBin-0.03/META.yml
--- old/Devel-CheckBin-0.02/META.yml 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/META.yml 2015-04-30 02:47:48.000000000 +0200
@@ -3,18 +3,16 @@
author:
- 'tokuhirom <tokuhirom(a)gmail.com>'
build_requires:
- File::Temp: 0
- Test::More: 0.98
+ File::Temp: '0'
+ Test::More: '0.98'
configure_requires:
- CPAN::Meta: 0
- CPAN::Meta::Prereqs: 0
- Module::Build: 0.38
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Minilla/v0.5.6, CPAN::Meta::Converter version 2.131560'
+generated_by: 'Minilla/v2.4.0, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Devel-CheckBin
no_index:
directory:
@@ -25,17 +23,20 @@
- eg
- examples
- author
+ - builder
provides:
Devel::CheckBin:
file: lib/Devel/CheckBin.pm
- version: 0.02
+ version: '0.03'
requires:
- Exporter: 0
- ExtUtils::MakeMaker: 6.52
- parent: 0
- perl: 5.008001
+ Exporter: '0'
+ ExtUtils::MakeMaker: '6.52'
+ parent: '0'
+ perl: '5.008001'
resources:
bugtracker: https://github.com/tokuhirom/Devel-CheckBin/issues
homepage: https://github.com/tokuhirom/Devel-CheckBin
repository: git://github.com/tokuhirom/Devel-CheckBin.git
-version: 0.02
+version: '0.03'
+x_contributors:
+ - 'Graham Knop <haarg(a)haarg.org>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/Makefile.PL new/Devel-CheckBin-0.03/Makefile.PL
--- old/Devel-CheckBin-0.02/Makefile.PL 1970-01-01 01:00:00.000000000 +0100
+++ new/Devel-CheckBin-0.03/Makefile.PL 2015-04-30 02:47:48.000000000 +0200
@@ -0,0 +1,62 @@
+# =========================================================================
+# THIS FILE IS AUTOMATICALLY GENERATED BY MINILLA.
+# DO NOT EDIT DIRECTLY.
+# =========================================================================
+
+use 5.008_001;
+use strict;
+
+use ExtUtils::MakeMaker;
+
+
+my %WriteMakefileArgs = (
+ NAME => 'Devel::CheckBin',
+ DISTNAME => 'Devel-CheckBin',
+ VERSION => '0.03',
+ CONFIGURE_REQUIRES => {
+ "ExtUtils::MakeMaker" => 0
+}
+,
+ BUILD_REQUIRES => {}
+,
+ TEST_REQUIRES => {
+ "File::Temp" => 0,
+ "Test::More" => "0.98"
+}
+,
+ PREREQ_PM => {
+ "Exporter" => 0,
+ "ExtUtils::MakeMaker" => "6.52",
+ "parent" => 0,
+ "perl" => "5.008001"
+}
+,
+);
+
+my $full_prereqs = {
+ "Exporter" => 0,
+ "ExtUtils::MakeMaker" => "6.52",
+ "File::Temp" => 0,
+ "Test::More" => "0.98",
+ "parent" => 0,
+ "perl" => "5.008001"
+}
+;
+
+unless (eval { ExtUtils::MakeMaker->VERSION(6.63_03) }) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = $full_prereqs;
+}
+
+unless (eval { ExtUtils::MakeMaker->VERSION(6.52) }) {
+ delete $WriteMakefileArgs{CONFIGURE_REQUIRES};
+}
+
+unless (eval { ExtUtils::MakeMaker->VERSION(6.57_01) }) {
+ use File::Copy;
+ copy('META.yml', 'MYMETA.yml') or warn "META.yml: $!";
+ copy('META.json', 'MYMETA.json') or warn "META.json: $!";
+}
+
+WriteMakefile(%WriteMakefileArgs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/README.md new/Devel-CheckBin-0.03/README.md
--- old/Devel-CheckBin-0.02/README.md 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/README.md 2015-04-30 02:47:48.000000000 +0200
@@ -14,8 +14,6 @@
If you want to use this from Makefile.PL or Build.PL, do not simply copy the module into your distribution as this may cause problems when PAUSE and search.cpan.org index the distro. Instead, use the 'configure\_requires'.
-
-
# LICENSE
Copyright (C) tokuhirom
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/lib/Devel/CheckBin.pm new/Devel-CheckBin-0.03/lib/Devel/CheckBin.pm
--- old/Devel-CheckBin-0.02/lib/Devel/CheckBin.pm 2013-08-14 05:17:09.000000000 +0200
+++ new/Devel-CheckBin-0.03/lib/Devel/CheckBin.pm 2015-04-30 02:47:48.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
use 5.008001;
-our $VERSION = "0.02";
+our $VERSION = "0.03";
use parent qw(Exporter);
our @EXPORT = qw(can_run check_bin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Devel-CheckBin-0.02/minil.toml new/Devel-CheckBin-0.03/minil.toml
--- old/Devel-CheckBin-0.02/minil.toml 1970-01-01 01:00:00.000000000 +0100
+++ new/Devel-CheckBin-0.03/minil.toml 2015-04-30 02:47:48.000000000 +0200
@@ -0,0 +1 @@
+module_maker="ExtUtilsMakeMaker"
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
1
0
Hello community,
here is the log from the commit of package perl-PPI for openSUSE:Factory checked in at 2015-05-02 17:45:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-PPI (Old)
and /work/SRC/openSUSE:Factory/.perl-PPI.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-PPI"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-PPI/perl-PPI.changes 2014-09-22 18:50:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-PPI.new/perl-PPI.changes 2015-05-02 17:45:12.000000000 +0200
@@ -1,0 +2,41 @@
+Wed Apr 29 18:15:36 UTC 2015 - coolo(a)suse.com
+
+- ignore File::Spec - it's tricky
+
+-------------------------------------------------------------------
+Wed Apr 29 10:21:15 UTC 2015 - coolo(a)suse.com
+
+- updated to 1.220
+ see /usr/share/doc/packages/perl-PPI/Changes
+
+ 1.220 Tue 11 Nov 2014
+ Summary:
+ - incompatible behavior fixes on PPI::Statement::Sub->prototype
+ - improved parsing of various syntax elements
+ - code quality improvements
+ - various small documentation fixes
+
+ Details:
+ - {} is now recognized as anonymous hash constructor instead of a code
+ block after these operators: &&= //= || && // ? :
+ (GitHub #36) (MOREGAN)
+ - regex capture variables greater than $9 are now parsed completely,
+ instead of being parsed as single digit captures with numbers after
+ them (GitHub #38) (MOREGAN)
+ - DESTROY and AUTOLOAD subs are now parsed even without the sub
+ keyword (GitHub #39) (MOREGAN)
+ - PPI::Statement::Sub->prototype behavior now matches its
+ documentation, instead of returning the prototype string
+ unchanged and still including the parens (GitHub #56) (MOREGAN)
+ - PPI::Statement::Sub->prototype now returns undef on subs without a
+ prototype, instead of returning an empty string
+ (GitHub #56) (MOREGAN)
+ - list of keywords which are not parsed as packages when followed by
+ the Perl4 package separator ' has been increased
+ (GitHub #77) (MOREGAN)
+ - application of a number of Perl::Critic policies and documentation
+ fixes (GitHub #53) (MOREGAN, MITHALDU)
+ - automation of README.md generation for git (GitHub #86) (COWENS)
+ - various small documentation fixes (Github #96) (MOREGAN)
+
+-------------------------------------------------------------------
Old:
----
PPI-1.218.tar.gz
New:
----
PPI-1.220.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-PPI.spec ++++++
--- /var/tmp/diff_new_pack.QbeFgC/_old 2015-05-02 17:45:13.000000000 +0200
+++ /var/tmp/diff_new_pack.QbeFgC/_new 2015-05-02 17:45:13.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-PPI
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,15 @@
Name: perl-PPI
-Version: 1.218
+Version: 1.220
Release: 0
%define cpan_name PPI
Summary: Parse, Analyze and Manipulate Perl (without perl)
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/PPI/
-Source: http://www.cpan.org/authors/id/M/MI/MITHALDU/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/M/MI/MITHALDU/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
@@ -32,6 +33,7 @@
BuildRequires: perl(Class::Inspector) >= 1.22
BuildRequires: perl(Clone) >= 0.30
BuildRequires: perl(File::Remove) >= 1.42
+#BuildRequires: perl(File::Spec) >= 3.2701
BuildRequires: perl(IO::String) >= 1.07
BuildRequires: perl(List::MoreUtils) >= 0.16
BuildRequires: perl(List::Util) >= 1.20
@@ -43,6 +45,7 @@
BuildRequires: perl(Test::Object) >= 0.07
BuildRequires: perl(Test::SubCalls) >= 1.07
Requires: perl(Clone) >= 0.30
+#Requires: perl(File::Spec) >= 3.2701
Requires: perl(IO::String) >= 1.07
Requires: perl(List::MoreUtils) >= 0.16
Requires: perl(List::Util) >= 1.20
@@ -72,6 +75,6 @@
%files -f %{name}.files
%defattr(-,root,root,755)
-%doc Changes LICENSE README
+%doc Changes LICENSE README README.md
%changelog
++++++ PPI-1.218.tar.gz -> PPI-1.220.tar.gz ++++++
++++ 4202 lines of diff (skipped)
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
ignore_requires: File::Spec
1
0
Hello community,
here is the log from the commit of package perl-Net-SSLGlue for openSUSE:Factory checked in at 2015-05-02 17:44:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-SSLGlue (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-SSLGlue.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-SSLGlue"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-SSLGlue/perl-Net-SSLGlue.changes 2015-04-15 16:26:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Net-SSLGlue.new/perl-Net-SSLGlue.changes 2015-05-02 17:44:55.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Apr 29 10:18:10 UTC 2015 - coolo(a)suse.com
+
+- updated to 1.054
+ see /usr/share/doc/packages/perl-Net-SSLGlue/Changes
+
+ 1.054 2015/04/28
+ - if a version of libnet is detected which already supports TLS (i.e.
+ libnet 3.0+) warn and use this instead.
+
+-------------------------------------------------------------------
Old:
----
Net-SSLGlue-1.053.tar.gz
New:
----
Net-SSLGlue-1.054.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-SSLGlue.spec ++++++
--- /var/tmp/diff_new_pack.vLLAkl/_old 2015-05-02 17:44:59.000000000 +0200
+++ /var/tmp/diff_new_pack.vLLAkl/_new 2015-05-02 17:44:59.000000000 +0200
@@ -17,14 +17,15 @@
Name: perl-Net-SSLGlue
-Version: 1.053
+Version: 1.054
Release: 0
%define cpan_name Net-SSLGlue
-Summary: add/extend SSL support for common perl modules
+Summary: Add/Extend Ssl Support for Common Perl Modules
License: GPL-1.0+ or Artistic-1.0
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Net-SSLGlue/
-Source: http://www.cpan.org/authors/id/S/SU/SULLR/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/S/SU/SULLR/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
++++++ Net-SSLGlue-1.053.tar.gz -> Net-SSLGlue-1.054.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/Changes new/Net-SSLGlue-1.054/Changes
--- old/Net-SSLGlue-1.053/Changes 2014-05-29 16:58:33.000000000 +0200
+++ new/Net-SSLGlue-1.054/Changes 2015-04-28 08:53:18.000000000 +0200
@@ -1,3 +1,7 @@
+1.054 2015/04/28
+- if a version of libnet is detected which already supports TLS (i.e.
+ libnet 3.0+) warn and use this instead.
+
1.053 2014/05/28
- if current LWP is detected is use this mostly unpatched
- fix Net::SSLGlue::FTP to use the same hostname when verifying the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/MANIFEST new/Net-SSLGlue-1.054/MANIFEST
--- old/Net-SSLGlue-1.053/MANIFEST 2014-05-29 16:58:54.000000000 +0200
+++ new/Net-SSLGlue-1.054/MANIFEST 2015-04-28 09:24:49.000000000 +0200
@@ -22,4 +22,5 @@
t/external/03_lwp.t
t/external/04_pop3.t
t/external/05_ftp.t
-META.yml Module meta-data (added by MakeMaker)
+META.yml Module YAML meta-data (added by MakeMaker)
+META.json Module JSON meta-data (added by MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/META.json new/Net-SSLGlue-1.054/META.json
--- old/Net-SSLGlue-1.053/META.json 1970-01-01 01:00:00.000000000 +0100
+++ new/Net-SSLGlue-1.054/META.json 2015-04-28 09:24:49.000000000 +0200
@@ -0,0 +1,46 @@
+{
+ "abstract" : "unknown",
+ "author" : [
+ "unknown"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921",
+ "license" : [
+ "unknown"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Net-SSLGlue",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "IO::Socket::SSL" : "1.19"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "repository" : {
+ "url" : "https://github.com/noxxi/p5-net-sslglue"
+ }
+ },
+ "version" : "1.054"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/META.yml new/Net-SSLGlue-1.054/META.yml
--- old/Net-SSLGlue-1.053/META.yml 2014-05-29 16:58:54.000000000 +0200
+++ new/Net-SSLGlue-1.054/META.yml 2015-04-28 09:24:49.000000000 +0200
@@ -1,23 +1,24 @@
---- #YAML:1.0
-name: Net-SSLGlue
-version: 1.053
-abstract: ~
-author: []
-license: unknown
-distribution_type: module
-configure_requires:
- ExtUtils::MakeMaker: 0
+---
+abstract: unknown
+author:
+ - unknown
build_requires:
- ExtUtils::MakeMaker: 0
+ ExtUtils::MakeMaker: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.120921'
+license: unknown
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Net-SSLGlue
+no_index:
+ directory:
+ - t
+ - inc
requires:
- IO::Socket::SSL: 1.19
+ IO::Socket::SSL: 1.19
resources:
- repository: https://github.com/noxxi/p5-net-sslglue
-no_index:
- directory:
- - t
- - inc
-generated_by: ExtUtils::MakeMaker version 6.57_05
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ repository: https://github.com/noxxi/p5-net-sslglue
+version: 1.054
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue/FTP.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue/FTP.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue/FTP.pm 2014-05-29 16:58:33.000000000 +0200
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue/FTP.pm 2015-04-28 08:55:39.000000000 +0200
@@ -8,11 +8,20 @@
use Net::SSLGlue::Socket;
use Socket 'AF_INET';
-our $VERSION = 1.001;
+our $VERSION = 1.002;
BEGIN {
+ require Net::FTP;
+ if (defined &Net::FTP::starttls) {
+ warn "using SSL support of Net::FTP $Net::FTP::VERSION instead of SSLGlue";
+ goto DONE;
+ }
+
+ $Net::FTP::VERSION eq '2.77'
+ or warn "Not tested with Net::FTP version $Net::FTP::VERSION";
+
+ require Net::FTP::dataconn;
for my $class (qw(Net::FTP Net::FTP::dataconn)) {
- eval "require $class" or die "failed to load $class";
no strict 'refs';
my $fixed;
for( @{ "${class}::ISA" } ) {
@@ -24,13 +33,9 @@
die "cannot replace IO::Socket::INET with Net::SSLGlue::Socket in ${class}::ISA"
if ! $fixed;
}
- $Net::FTP::VERSION eq '2.77'
- or warn "Not tested with Net::FTP version $Net::FTP::VERSION";
-}
-# redefine Net::FTP::new so that it understands SSL => 1 and connects directly
-# with SSL to the server
-{
+ # redefine Net::FTP::new so that it understands SSL => 1 and connects directly
+ # with SSL to the server
no warnings 'redefine';
my $onew = Net::FTP->can('new');
*Net::FTP::new = sub {
@@ -53,68 +58,65 @@
${*$self}{net_ftp_tlsargs} = \%sslargs;
return $self;
};
-}
-# add starttls method to upgrade connection to SSL: AUTH TLS
-sub Net::FTP::starttls {
- my $self = shift;
- $self->is_ssl and croak("called starttls within SSL session");
- $self->_AUTH('TLS') == Net::FTP::CMD_OK or return;
-
- my $host = $self->host;
- # for name verification strip port from domain:port, ipv4:port, [ipv6]:port
- $host =~s{(?<!:):\d+$}{};
-
- my %args = (
- SSL_verify_mode => 1,
- SSL_verifycn_scheme => 'ftp',
- SSL_verifycn_name => $host,
- # reuse SSL session of control connection in data connections
- SSL_session_cache => Net::SSLGlue::FTP::SingleSessionCache->new,
- %{ ${*$self}{net_ftp_tlsargs}},
- @_
- );
+ # add starttls method to upgrade connection to SSL: AUTH TLS
+ *Net::FTP::starttls = sub {
+ my $self = shift;
+ $self->is_ssl and croak("called starttls within SSL session");
+ $self->_AUTH('TLS') == &Net::FTP::CMD_OK or return;
- $self->start_SSL(%args) or return;
- ${*$self}{net_ftp_tlsargs} = \%args;
- $self->prot('P');
- return 1;
-}
+ my $host = $self->host;
+ # for name verification strip port from domain:port, ipv4:port, [ipv6]:port
+ $host =~s{(?<!:):\d+$}{};
+
+ my %args = (
+ SSL_verify_mode => 1,
+ SSL_verifycn_scheme => 'ftp',
+ SSL_verifycn_name => $host,
+ # reuse SSL session of control connection in data connections
+ SSL_session_cache => Net::SSLGlue::FTP::SingleSessionCache->new,
+ %{ ${*$self}{net_ftp_tlsargs}},
+ @_
+ );
-# add prot method to set protection level (PROT C|P)
-sub Net::FTP::prot {
- my ($self,$type) = @_;
- $type eq 'C' or $type eq 'P' or croak("type must by C or P");
- $self->_PBSZ(0) or return;
- $self->_PROT($type) or return;
- ${*$self}{net_ftp_tlstype} = $type;
- return 1;
-}
+ $self->start_SSL(%args) or return;
+ ${*$self}{net_ftp_tlsargs} = \%args;
+ $self->prot('P');
+ return 1;
+ };
-# add stoptls method to downgrade connection from SSL: CCC
-sub Net::FTP::stoptls {
- my $self = shift;
- $self->is_ssl or croak("called stoptls outside SSL session");
- $self->_CCC() or return;
- $self->stop_SSL();
- return 1;
-}
+ # add prot method to set protection level (PROT C|P)
+ *Net::FTP::prot = sub {
+ my ($self,$type) = @_;
+ $type eq 'C' or $type eq 'P' or croak("type must by C or P");
+ $self->_PBSZ(0) or return;
+ $self->_PROT($type) or return;
+ ${*$self}{net_ftp_tlstype} = $type;
+ return 1;
+ };
-# add EPSV for new style passive mode (incl. IPv6)
-sub Net::FTP::epsv {
- my $self = shift;
- @_ and croak 'usage: $ftp->epsv()';
- delete ${*$self}{net_ftp_intern_port};
-
- $self->_EPSV && $self->message =~ m{\(([\x33-\x7e])\1\1(\d+)\1\)}
- ? ${*$self}{'net_ftp_pasv'} = [ $self->peerhost, $2 ]
- : undef;
-}
+ # add stoptls method to downgrade connection from SSL: CCC
+ *Net::FTP::stoptls = sub {
+ my $self = shift;
+ $self->is_ssl or croak("called stoptls outside SSL session");
+ $self->_CCC() or return;
+ $self->stop_SSL();
+ return 1;
+ };
-# redefine PASV so that it uses EPSV on IPv6
-# also net_ftp_pasv contains now the parsed [ip,port]
-{
- no warnings 'redefine';
+ # add EPSV for new style passive mode (incl. IPv6)
+ *Net::FTP::epsv = sub {
+ my $self = shift;
+ @_ and croak 'usage: $ftp->epsv()';
+ delete ${*$self}{net_ftp_intern_port};
+
+ $self->_EPSV && $self->message =~ m{\(([\x33-\x7e])\1\1(\d+)\1\)}
+ ? ${*$self}{'net_ftp_pasv'} = [ $self->peerhost, $2 ]
+ : undef;
+ };
+
+ # redefine PASV so that it uses EPSV on IPv6
+ # also net_ftp_pasv contains now the parsed [ip,port]
*Net::FTP::pasv = sub {
my $self = shift;
@_ and croak 'usage: $ftp->port()';
@@ -129,62 +131,56 @@
}
return;
};
-}
-# add EPRT for new style passive mode (incl. IPv6)
-sub Net::FTP::eprt {
- @_ == 1 || @_ == 2 or croak 'usage: $self->eprt([PORT])';
- return _eprt('EPRT',@_);
-}
+ # add EPRT for new style passive mode (incl. IPv6)
+ *Net::FTP::eprt = sub {
+ @_ == 1 || @_ == 2 or croak 'usage: $self->eprt([PORT])';
+ return _eprt('EPRT',@_);
+ };
-# redefine PORT to use EPRT for IPv6
-{
- no warnings 'redefine';
+ # redefine PORT to use EPRT for IPv6
*Net::FTP::port = sub {
@_ == 1 || @_ == 2 or croak 'usage: $self->port([PORT])';
return _eprt('PORT',@_);
};
-}
-sub _eprt {
- my ($cmd,$self,$port) = @_;
- delete ${*$self}{net_ftp_intern_port};
- unless ($port) {
- my $listen = ${*$self}{net_ftp_listen} ||= Net::SSLGlue::Socket->new(
- Listen => 1,
- Timeout => $self->timeout,
- LocalAddr => $self->sockhost,
- );
- ${*$self}{net_ftp_intern_port} = 1;
- my $fam = ($listen->sockdomain == AF_INET) ? 1:2;
- if ( $cmd eq 'EPRT' || $fam == 2 ) {
- $port = "|$fam|".$listen->sockhost."|".$listen->sockport."|";
- $cmd = 'EPRT';
- } else {
- my $p = $listen->sockport;
- $port = join(',',split(m{\.},$listen->sockhost),$p >> 8,$p & 0xff);
+ sub _eprt {
+ my ($cmd,$self,$port) = @_;
+ delete ${*$self}{net_ftp_intern_port};
+ unless ($port) {
+ my $listen = ${*$self}{net_ftp_listen} ||= Net::SSLGlue::Socket->new(
+ Listen => 1,
+ Timeout => $self->timeout,
+ LocalAddr => $self->sockhost,
+ );
+ ${*$self}{net_ftp_intern_port} = 1;
+ my $fam = ($listen->sockdomain == AF_INET) ? 1:2;
+ if ( $cmd eq 'EPRT' || $fam == 2 ) {
+ $port = "|$fam|".$listen->sockhost."|".$listen->sockport."|";
+ $cmd = 'EPRT';
+ } else {
+ my $p = $listen->sockport;
+ $port = join(',',split(m{\.},$listen->sockhost),$p >> 8,$p & 0xff);
+ }
}
+ my $ok = $cmd eq 'EPRT' ? $self->_EPRT($port) : $self->_PORT($port);
+ ${*$self}{net_ftp_port} = $port if $ok;
+ return $ok;
}
- my $ok = $cmd eq 'EPRT' ? $self->_EPRT($port) : $self->_PORT($port);
- ${*$self}{net_ftp_port} = $port if $ok;
- return $ok;
-}
-for my $cmd (qw(PBSZ PROT CCC EPRT EPSV)) {
- no strict 'refs';
- *{"Net::FTP::_$cmd"} = sub {
- shift->command("$cmd @_")->response() == Net::FTP::CMD_OK
+ for my $cmd (qw(PBSZ PROT CCC EPRT EPSV)) {
+ no strict 'refs';
+ *{"Net::FTP::_$cmd"} = sub {
+ shift->command("$cmd @_")->response() == &Net::FTP::CMD_OK
+ }
}
-}
-# redefine _dataconn to
-# - support IPv6
-# - upgrade data connection to SSL if PROT P
-{
- no warnings 'redefine';
+ # redefine _dataconn to
+ # - support IPv6
+ # - upgrade data connection to SSL if PROT P
*Net::FTP::_dataconn = sub {
my $self = shift;
my $pkg = "Net::FTP::" . $self->type;
@@ -223,6 +219,9 @@
${*$conn}{net_ftp_blksize} = ${*$self}{net_ftp_blksize};
return $conn;
};
+
+ DONE:
+ 1;
}
{
@@ -291,8 +290,7 @@
=item starttls
If the connection is not yet SSLified it will issue the "AUTH TLS" command and
-change the object, so that SSL will now be used. The usual C<SSL_*> parameter of
-L<IO::Socket::SSL> will be given.
+change the object, so that SSL will now be used.
=item peer_certificate ...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue/LDAP.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue/LDAP.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue/LDAP.pm 2012-01-31 07:50:58.000000000 +0100
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue/LDAP.pm 2015-04-28 08:22:42.000000000 +0200
@@ -12,16 +12,16 @@
# Net::LDAP::_SSL_context_init_args
my $old = defined &Net::LDAP::_SSL_context_init_args
- && \&Net::LDAP::_SSL_context_init_args
- || die "cannot find Net::LDAP::_SSL_context_init_args";
+ && \&Net::LDAP::_SSL_context_init_args
+ || die "cannot find Net::LDAP::_SSL_context_init_args";
no warnings 'redefine';
*Net::LDAP::_SSL_context_init_args = sub {
- my %arg = $old->(@_);
- $arg{SSL_verifycn_scheme} ||= 'ldap' if $arg{SSL_verify_mode};
- while ( my ($k,$v) = each %SSLopts ) {
- $arg{$k} = $v;
- }
- return %arg;
+ my %arg = $old->(@_);
+ $arg{SSL_verifycn_scheme} ||= 'ldap' if $arg{SSL_verify_mode};
+ while ( my ($k,$v) = each %SSLopts ) {
+ $arg{$k} = $v;
+ }
+ return %arg;
};
1;
@@ -32,10 +32,10 @@
=head1 SYNOPSIS
- use Net::SSLGlue::LDAP;
- local %Net::SSLGlue::LDAP = ( SSL_verifycn_name => $hostname_in_cert );
- my $ldap = Net::LDAP->new( $hostname, capath => ... );
- $ldap->start_tls;
+ use Net::SSLGlue::LDAP;
+ local %Net::SSLGlue::LDAP = ( SSL_verifycn_name => $hostname_in_cert );
+ my $ldap = Net::LDAP->new( $hostname, capath => ... );
+ $ldap->start_tls;
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue/LWP.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue/LWP.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue/LWP.pm 2014-05-20 23:36:08.000000000 +0200
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue/LWP.pm 2015-04-28 08:23:10.000000000 +0200
@@ -27,11 +27,11 @@
require Net::HTTPS;
if ( ( my $oc = $Net::HTTPS::SSL_SOCKET_CLASS ) ne $need ) {
- # was probably loaded before, change ISA
- grep { s{^\Q$oc\E$}{$need} } @Net::HTTPS::ISA
+ # was probably loaded before, change ISA
+ grep { s{^\Q$oc\E$}{$need} } @Net::HTTPS::ISA
}
die "cannot force $need into Net::HTTPS"
- if $Net::HTTPS::SSL_SOCKET_CLASS ne $need;
+ if $Net::HTTPS::SSL_SOCKET_CLASS ne $need;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue/POP3.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue/POP3.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue/POP3.pm 2013-08-01 22:56:47.000000000 +0200
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue/POP3.pm 2015-04-28 08:51:05.000000000 +0200
@@ -4,42 +4,55 @@
package Net::SSLGlue::POP3;
use IO::Socket::SSL 1.19;
use Net::POP3;
-our $VERSION = 0.91;
+our $VERSION = 0.911;
-##############################################################################
-# mix starttls method into Net::POP3 which on SSL handshake success
-# upgrades the class to Net::POP3::_SSLified
-##############################################################################
-sub Net::POP3::starttls {
+my $DONT;
+BEGIN {
+ if (defined &Net::POP3::starttls) {
+ warn "using SSL support of Net::POP3 $Net::POP3::VERSION instead of SSLGlue";
+ $DONT = 1;
+ goto DONE;
+ }
+
+ ##############################################################################
+ # mix starttls method into Net::POP3 which on SSL handshake success
+ # upgrades the class to Net::SSLGlue::POP3::_SSLified
+ ##############################################################################
+ *Net::POP3::starttls = sub {
my $self = shift;
$self->_STLS or return;
my $host = $self->host;
# for name verification strip port from domain:port, ipv4:port, [ipv6]:port
$host =~s{(?<!:):\d+$}{};
- Net::POP3::_SSLified->start_SSL( $self,
- SSL_verify_mode => 1,
- SSL_verifycn_scheme => 'pop3',
- SSL_verifycn_name => $host,
- @_
+ Net::SSLGlue::POP3::_SSLified->start_SSL( $self,
+ SSL_verify_mode => 1,
+ SSL_verifycn_scheme => 'pop3',
+ SSL_verifycn_name => $host,
+ @_
) or return;
-}
-sub Net::POP3::_STLS {
+ };
+
+ *Net::POP3::_STLS = sub {
shift->command("STLS")->response() == Net::POP3::CMD_OK
-}
+ };
-no warnings 'redefine';
-my $old_new = \&Net::POP3::new;
-*Net::POP3::new = sub {
+ no warnings 'redefine';
+ my $old_new = \&Net::POP3::new;
+ *Net::POP3::new = sub {
my $class = shift;
my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
if ( delete $arg{SSL} ) {
- $arg{Port} ||= 995;
- return Net::POP3::_SSLified->new(%arg);
+ $arg{Port} ||= 995;
+ return Net::SSLGlue::POP3::_SSLified->new(%arg);
} else {
- return $old_new->($class,%arg);
+ return $old_new->($class,%arg);
}
-};
+ };
+
+ DONE:
+ 1;
+}
##############################################################################
# Socket class derived from IO::Socket::SSL
@@ -47,25 +60,29 @@
##############################################################################
our %SSLopts;
{
- package Net::POP3::_SSL_Socket;
- our @ISA = 'IO::Socket::SSL';
- sub configure_SSL {
- my ($self,$arg_hash) = @_;
-
- # set per default strict certificate verification
- $arg_hash->{SSL_verify_mode} = 1
- if ! exists $arg_hash->{SSL_verify_mode};
- $arg_hash->{SSL_verifycn_scheme} = 'pop3'
- if ! exists $arg_hash->{SSL_verifycn_scheme};
- $arg_hash->{SSL_verifycn_name} = $self->host
- if ! exists $arg_hash->{SSL_verifycn_name};
-
- # force keys from %SSLopts
- while ( my ($k,$v) = each %SSLopts ) {
- $arg_hash->{$k} = $v;
- }
- return $self->SUPER::configure_SSL($arg_hash)
+ package Net::SSLGlue::POP3::_SSL_Socket;
+ goto DONE if $DONT;
+ our @ISA = 'IO::Socket::SSL';
+ *configure_SSL = sub {
+ my ($self,$arg_hash) = @_;
+
+ # set per default strict certificate verification
+ $arg_hash->{SSL_verify_mode} = 1
+ if ! exists $arg_hash->{SSL_verify_mode};
+ $arg_hash->{SSL_verifycn_scheme} = 'pop3'
+ if ! exists $arg_hash->{SSL_verifycn_scheme};
+ $arg_hash->{SSL_verifycn_name} = $self->host
+ if ! exists $arg_hash->{SSL_verifycn_name};
+
+ # force keys from %SSLopts
+ while ( my ($k,$v) = each %SSLopts ) {
+ $arg_hash->{$k} = $v;
}
+ return $self->SUPER::configure_SSL($arg_hash)
+ };
+
+ DONE:
+ 1;
}
@@ -74,45 +91,48 @@
# this talks SSL to the peer
##############################################################################
{
- package Net::POP3::_SSLified;
- use Carp 'croak';
+ package Net::SSLGlue::POP3::_SSLified;
+ use Carp 'croak';
+ goto DONE if $DONT;
+
+ # deriving does not work because we need to replace a superclass
+ # from Net::POP3, so just copy the class into the new one and then
+ # change it
+
+ # copy subs
+ for ( keys %{Net::POP3::} ) {
+ no strict 'refs';
+ *{$_} = \&{ "Net::POP3::$_" } if defined &{ "Net::POP3::$_" };
+ }
+
+ # copy + fix @ISA
+ our @ISA = @Net::POP3::ISA;
+ grep { s{^IO::Socket::INET$}{Net::SSLGlue::POP3::_SSL_Socket} } @ISA
+ or die "cannot find and replace IO::Socket::INET superclass";
+
+ # we are already sslified
+ no warnings 'redefine';
+ *starttls = sub { croak "have already TLS\n" };
- # deriving does not work because we need to replace a superclass
- # from Net::POP3, so just copy the class into the new one and then
- # change it
-
- # copy subs
- for ( keys %{Net::POP3::} ) {
- no strict 'refs';
- eval { *{$Net::POP3::{$_}} && *{$Net::POP3::{$_}}{CODE} } or next;
- *{$_} = \&{ "Net::POP3::$_" };
- }
+ my $old_new = \&new;
+ *new = sub {
+ my $class = shift;
+ my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
+ local %SSLopts;
+ $SSLopts{$_} = delete $arg{$_} for ( grep { /^SSL_/ } keys %arg );
+ return $old_new->($class,%arg);
+ };
+
+ # Net::Cmd getline uses select, but this is not sufficient with SSL
+ # note that this does no EBCDIC etc conversions
+ *getline = sub {
+ my $self = shift;
+ # skip Net::POP3 getline and go directly to IO::Socket::SSL
+ return $self->IO::Socket::SSL::getline(@_);
+ };
- # copy + fix @ISA
- our @ISA = @Net::POP3::ISA;
- grep { s{^IO::Socket::INET$}{Net::POP3::_SSL_Socket} } @ISA
- or die "cannot find and replace IO::Socket::INET superclass";
-
- # we are already sslified
- no warnings 'redefine';
- sub starttls { croak "have already TLS\n" }
-
- my $old_new = \&new;
- *Net::POP3::_SSLified::new = sub {
- my $class = shift;
- my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
- local %SSLopts;
- $SSLopts{$_} = delete $arg{$_} for ( grep { /^SSL_/ } keys %arg );
- return $old_new->($class,%arg);
- };
-
- # Net::Cmd getline uses select, but this is not sufficient with SSL
- # note that this does no EBCDIC etc conversions
- *Net::POP3::_SSLified::getline = sub {
- my $self = shift;
- # skip Net::POP3 getline and go directly to IO::Socket::SSL
- return $self->IO::Socket::SSL::getline(@_);
- };
+ DONE:
+ 1;
}
1;
@@ -123,14 +143,14 @@
=head1 SYNOPSIS
- use Net::SSLGlue::POP3;
- my $pop3s = Net::POP3->new( $host,
- SSL => 1,
- SSL_ca_path => ...
- );
+ use Net::SSLGlue::POP3;
+ my $pop3s = Net::POP3->new( $host,
+ SSL => 1,
+ SSL_ca_path => ...
+ );
- my $pop3 = Net::POP3->new( $host );
- $pop3->starttls( SSL_ca_path => ... );
+ my $pop3 = Net::POP3->new( $host );
+ $pop3->starttls( SSL_ca_path => ... );
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue/SMTP.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue/SMTP.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue/SMTP.pm 2012-01-30 12:17:27.000000000 +0100
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue/SMTP.pm 2015-04-28 08:51:05.000000000 +0200
@@ -4,52 +4,65 @@
package Net::SSLGlue::SMTP;
use IO::Socket::SSL 1.19;
use Net::SMTP;
-our $VERSION = 1.0;
+our $VERSION = 1.001;
-##############################################################################
-# mix starttls method into Net::SMTP which on SSL handshake success
-# upgrades the class to Net::SMTP::_SSLified
-##############################################################################
-sub Net::SMTP::starttls {
+my $DONT;
+BEGIN {
+ if (defined &Net::SMTP::starttls) {
+ warn "using SSL support of Net::SMTP $Net::SMTP::VERSION instead of SSLGlue";
+ $DONT = 1;
+ goto DONE;
+ }
+
+ ##############################################################################
+ # mix starttls method into Net::SMTP which on SSL handshake success
+ # upgrades the class to Net::SSLGlue::SMTP::_SSLified
+ ##############################################################################
+ *Net::SMTP::starttls = sub {
my $self = shift;
$self->_STARTTLS or return;
my $host = $self->host;
# for name verification strip port from domain:port, ipv4:port, [ipv6]:port
$host =~s{(?<!:):\d+$}{};
- Net::SMTP::_SSLified->start_SSL( $self,
- SSL_verify_mode => 1,
- SSL_verifycn_scheme => 'smtp',
- SSL_verifycn_name => $host,
- @_
+ Net::SSLGlue::SMTP::_SSLified->start_SSL( $self,
+ SSL_verify_mode => 1,
+ SSL_verifycn_scheme => 'smtp',
+ SSL_verifycn_name => $host,
+ @_
) or return;
# another hello after starttls to read new ESMTP capabilities
return $self->hello(${*$self}{net_smtp_hello_domain});
-}
-sub Net::SMTP::_STARTTLS {
+ };
+
+ *Net::SMTP::_STARTTLS = sub {
shift->command("STARTTLS")->response() == Net::SMTP::CMD_OK
-}
+ };
-no warnings 'redefine';
-my $old_new = \&Net::SMTP::new;
-*Net::SMTP::new = sub {
+ no warnings 'redefine';
+ my $old_new = \&Net::SMTP::new;
+ *Net::SMTP::new = sub {
my $class = shift;
my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
if ( delete $arg{SSL} ) {
- $arg{Port} ||= 465;
- return Net::SMTP::_SSLified->new(%arg);
+ $arg{Port} ||= 465;
+ return Net::SSLGlue::SMTP::_SSLified->new(%arg);
} else {
- return $old_new->($class,%arg);
+ return $old_new->($class,%arg);
}
-};
+ };
-my $old_hello = \&Net::SMTP::hello;
-*Net::SMTP::hello = sub {
+ my $old_hello = \&Net::SMTP::hello;
+ *Net::SMTP::hello = sub {
my ($self,$domain) = @_;
${*$self}{net_smtp_hello_domain} = $domain if $domain;
goto &$old_hello;
-};
+ };
+
+ DONE:
+ 1;
+}
##############################################################################
# Socket class derived from IO::Socket::SSL
@@ -57,63 +70,71 @@
##############################################################################
our %SSLopts;
{
- package Net::SMTP::_SSL_Socket;
- our @ISA = 'IO::Socket::SSL';
- sub configure_SSL {
- my ($self,$arg_hash) = @_;
-
- # set per default strict certificate verification
- $arg_hash->{SSL_verify_mode} = 1
- if ! exists $arg_hash->{SSL_verify_mode};
- $arg_hash->{SSL_verifycn_scheme} = 'smtp'
- if ! exists $arg_hash->{SSL_verifycn_scheme};
- $arg_hash->{SSL_verifycn_name} = $self->host
- if ! exists $arg_hash->{SSL_verifycn_name};
-
- # force keys from %SSLopts
- while ( my ($k,$v) = each %SSLopts ) {
- $arg_hash->{$k} = $v;
- }
- return $self->SUPER::configure_SSL($arg_hash)
+ package Net::SSLGlue::SMTP::_SSL_Socket;
+ goto DONE if $DONT;
+ our @ISA = 'IO::Socket::SSL';
+ *configure_SSL = sub {
+ my ($self,$arg_hash) = @_;
+
+ # set per default strict certificate verification
+ $arg_hash->{SSL_verify_mode} = 1
+ if ! exists $arg_hash->{SSL_verify_mode};
+ $arg_hash->{SSL_verifycn_scheme} = 'smtp'
+ if ! exists $arg_hash->{SSL_verifycn_scheme};
+ $arg_hash->{SSL_verifycn_name} = $self->host
+ if ! exists $arg_hash->{SSL_verifycn_name};
+
+ # force keys from %SSLopts
+ while ( my ($k,$v) = each %SSLopts ) {
+ $arg_hash->{$k} = $v;
}
+ return $self->SUPER::configure_SSL($arg_hash)
+ };
+
+ DONE:
+ 1;
}
##############################################################################
-# Net::SMTP derived from Net::SMTP::_SSL_Socket instead of IO::Socket::INET
+# Net::SMTP derived from Net::SSLGlue::SMTP::_SSL_Socket instead of IO::Socket::INET
# this talks SSL to the peer
##############################################################################
{
- package Net::SMTP::_SSLified;
- use Carp 'croak';
+ package Net::SSLGlue::SMTP::_SSLified;
+ use Carp 'croak';
+ goto DONE if $DONT;
+
+ # deriving does not work because we need to replace a superclass
+ # from Net::SMTP, so just copy the class into the new one and then
+ # change it
+
+ # copy subs
+ for ( keys %{Net::SMTP::} ) {
+ no strict 'refs';
+ *{$_} = \&{ "Net::SMTP::$_" } if defined &{ "Net::SMTP::$_" };
+ }
+
+ # copy + fix @ISA
+ our @ISA = @Net::SMTP::ISA;
+ grep { s{^IO::Socket::INET$}{Net::SSLGlue::SMTP::_SSL_Socket} } @ISA
+ or die "cannot find and replace IO::Socket::INET superclass";
+
+ # we are already sslified
+ no warnings 'redefine';
+ *starttls = sub { croak "have already TLS\n" };
- # deriving does not work because we need to replace a superclass
- # from Net::SMTP, so just copy the class into the new one and then
- # change it
-
- # copy subs
- for ( keys %{Net::SMTP::} ) {
- no strict 'refs';
- *{$_} = \&{ "Net::SMTP::$_" } if *{$Net::SMTP::{$_}}{CODE};
- }
+ my $old_new = \&new;
+ *new = sub {
+ my $class = shift;
+ my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
+ local %SSLopts;
+ $SSLopts{$_} = delete $arg{$_} for ( grep { /^SSL_/ } keys %arg );
+ return $old_new->($class,%arg);
+ };
- # copy + fix @ISA
- our @ISA = @Net::SMTP::ISA;
- grep { s{^IO::Socket::INET$}{Net::SMTP::_SSL_Socket} } @ISA
- or die "cannot find and replace IO::Socket::INET superclass";
-
- # we are already sslified
- no warnings 'redefine';
- sub starttls { croak "have already TLS\n" }
-
- my $old_new = \&new;
- *Net::SMTP::_SSLified::new = sub {
- my $class = shift;
- my %arg = @_ % 2 == 0 ? @_ : ( Host => shift,@_ );
- local %SSLopts;
- $SSLopts{$_} = delete $arg{$_} for ( grep { /^SSL_/ } keys %arg );
- return $old_new->($class,%arg);
- };
+ DONE:
+ 1;
}
1;
@@ -124,14 +145,14 @@
=head1 SYNOPSIS
- use Net::SSLGlue::SMTP;
- my $smtp_ssl = Net::SMTP->new( $host,
- SSL => 1,
- SSL_ca_path => ...
- );
+ use Net::SSLGlue::SMTP;
+ my $smtp_ssl = Net::SMTP->new( $host,
+ SSL => 1,
+ SSL_ca_path => ...
+ );
- my $smtp_plain = Net::SMTP->new( $host );
- $smtp_plain->starttls( SSL_ca_path => ... );
+ my $smtp_plain = Net::SMTP->new( $host );
+ $smtp_plain->starttls( SSL_ca_path => ... );
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/lib/Net/SSLGlue.pm new/Net-SSLGlue-1.054/lib/Net/SSLGlue.pm
--- old/Net-SSLGlue-1.053/lib/Net/SSLGlue.pm 2014-05-20 19:03:05.000000000 +0200
+++ new/Net-SSLGlue-1.054/lib/Net/SSLGlue.pm 2015-04-28 08:02:38.000000000 +0200
@@ -1,5 +1,5 @@
package Net::SSLGlue;
-our $VERSION = '1.053';
+our $VERSION = '1.054';
=head1 NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/t/external/03_lwp.t new/Net-SSLGlue-1.054/t/external/03_lwp.t
--- old/Net-SSLGlue-1.053/t/external/03_lwp.t 2014-05-28 22:45:12.000000000 +0200
+++ new/Net-SSLGlue-1.054/t/external/03_lwp.t 2015-04-28 08:57:38.000000000 +0200
@@ -15,7 +15,7 @@
use LWP::Simple;
my $goodhost = 'google.de';
-my $badhost = 'www.digitalmarketer.com';
+my $badhost = 'badcert.maulwuff.de';
my $capath = '/etc/ssl/certs/'; # unix?
-d $capath or do {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSLGlue-1.053/t/external/05_ftp.t new/Net-SSLGlue-1.054/t/external/05_ftp.t
--- old/Net-SSLGlue-1.053/t/external/05_ftp.t 2014-05-29 16:58:33.000000000 +0200
+++ new/Net-SSLGlue-1.054/t/external/05_ftp.t 2015-04-28 08:49:57.000000000 +0200
@@ -67,9 +67,9 @@
ok(~~$ftp->ls,"directory listing clear");
# then TLS upgrade inside plain connection
-$ftp = Net::FTP->new($server, Passive => 1, Debug => $debug);
+$ftp = Net::FTP->new($server, Passive => 1, Debug => $debug, %sslargs);
ok($ftp,"ftp plain connect $server");
-my $ok = $ftp->starttls(%sslargs);
+my $ok = $ftp->starttls();
ok($ok,"ssl upgrade");
$ftp->login("anonymous",'net-sslglue-ftp(a)test.perl')
or die "login to $server failed";
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
1
0
Hello community,
here is the log from the commit of package perl-Test-SharedFork for openSUSE:Factory checked in at 2015-05-02 17:44:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-SharedFork (Old)
and /work/SRC/openSUSE:Factory/.perl-Test-SharedFork.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-SharedFork"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test-SharedFork/perl-Test-SharedFork.changes 2015-04-15 16:27:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test-SharedFork.new/perl-Test-SharedFork.changes 2015-05-02 17:44:37.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Apr 29 10:30:05 UTC 2015 - coolo(a)suse.com
+
+- updated to 0.31
+ see /usr/share/doc/packages/perl-Test-SharedFork/Changes
+
+-------------------------------------------------------------------
Old:
----
Test-SharedFork-0.29.tar.gz
New:
----
Test-SharedFork-0.31.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test-SharedFork.spec ++++++
--- /var/tmp/diff_new_pack.t66MoA/_old 2015-05-02 17:44:37.000000000 +0200
+++ /var/tmp/diff_new_pack.t66MoA/_new 2015-05-02 17:44:37.000000000 +0200
@@ -17,14 +17,15 @@
Name: perl-Test-SharedFork
-Version: 0.29
+Version: 0.31
Release: 0
%define cpan_name Test-SharedFork
-Summary: fork test
+Summary: Fork Test
License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
Url: http://search.cpan.org/dist/Test-SharedFork/
-Source: http://www.cpan.org/authors/id/E/EX/EXODIST/%{cpan_name}-%{version}.tar.gz
+Source0: http://www.cpan.org/authors/id/E/EX/EXODIST/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
++++++ Test-SharedFork-0.29.tar.gz -> Test-SharedFork-0.31.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/Changes new/Test-SharedFork-0.31/Changes
--- old/Test-SharedFork-0.29/Changes 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/Changes 2015-04-28 22:26:13.000000000 +0200
@@ -1,6 +1,12 @@
Revision history for Perl module Test::SharedFork
-0.29 2014-09-20T04:21:14Z
+0.31 2015-04-28T20:25:31Z
+
+ - Fix test that accidentally got commited last release
+
+0.30 2015-04-28T20:19:58Z
+
+ - Minor changes to support newer Test::Stream versions
0.28 2014-07-04T07:37:50Z
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/META.json new/Test-SharedFork-0.31/META.json
--- old/Test-SharedFork-0.29/META.json 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/META.json 2015-04-28 22:26:13.000000000 +0200
@@ -4,7 +4,7 @@
"Tokuhiro Matsuno <tokuhirom slkjfd gmail.com>"
],
"dynamic_config" : 0,
- "generated_by" : "Minilla/v2.1.1",
+ "generated_by" : "Minilla/v2.4.0",
"license" : [
"perl_5"
],
@@ -28,7 +28,7 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.64"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
@@ -61,7 +61,7 @@
"provides" : {
"Test::SharedFork" : {
"file" : "lib/Test/SharedFork.pm",
- "version" : "0.29"
+ "version" : "0.31"
},
"Test::SharedFork::Array" : {
"file" : "lib/Test/SharedFork/Array.pm"
@@ -84,7 +84,7 @@
"web" : "https://github.com/tokuhirom/Test-SharedFork"
}
},
- "version" : "0.29",
+ "version" : "0.31",
"x_contributors" : [
"lestrrat <lestrrat+github(a)gmail.com>",
"Vyacheslav Matyukhin <me(a)berekuk.ru>",
@@ -95,6 +95,7 @@
"rwhitworth <me(a)ryanwhitworth.com>",
"Kenichi Ishigaki <ishigaki(a)cpan.org>",
"Tokuhiro Matsuno <tokuhirom(a)gmail.com>",
- "Chad Granum <chad.granum(a)dreamhost.com>"
+ "Chad Granum <chad.granum(a)dreamhost.com>",
+ "Chad Granum <exodist7(a)gmail.com>"
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/META.yml new/Test-SharedFork-0.31/META.yml
--- old/Test-SharedFork-0.29/META.yml 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/META.yml 2015-04-28 22:26:13.000000000 +0200
@@ -8,9 +8,9 @@
Test::Requires: '0'
Time::HiRes: '0'
configure_requires:
- ExtUtils::MakeMaker: '6.64'
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Minilla/v2.1.1, CPAN::Meta::Converter version 2.140640'
+generated_by: 'Minilla/v2.4.0, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -29,7 +29,7 @@
provides:
Test::SharedFork:
file: lib/Test/SharedFork.pm
- version: '0.29'
+ version: '0.31'
Test::SharedFork::Array:
file: lib/Test/SharedFork/Array.pm
Test::SharedFork::Scalar:
@@ -46,7 +46,7 @@
bugtracker: https://github.com/tokuhirom/Test-SharedFork/issues
homepage: https://github.com/tokuhirom/Test-SharedFork
repository: git://github.com/tokuhirom/Test-SharedFork.git
-version: '0.29'
+version: '0.31'
x_contributors:
- 'lestrrat <lestrrat+github(a)gmail.com>'
- 'Vyacheslav Matyukhin <me(a)berekuk.ru>'
@@ -58,3 +58,4 @@
- 'Kenichi Ishigaki <ishigaki(a)cpan.org>'
- 'Tokuhiro Matsuno <tokuhirom(a)gmail.com>'
- 'Chad Granum <chad.granum(a)dreamhost.com>'
+ - 'Chad Granum <exodist7(a)gmail.com>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/Makefile.PL new/Test-SharedFork-0.31/Makefile.PL
--- old/Test-SharedFork-0.29/Makefile.PL 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/Makefile.PL 2015-04-28 22:26:13.000000000 +0200
@@ -9,37 +9,61 @@
use ExtUtils::MakeMaker;
-use File::Copy;
-
-print "cp META.json MYMETA.json\n";
-copy("META.json","MYMETA.json") or die "Copy failed(META.json): $!";
+my %WriteMakefileArgs = (
+ NAME => 'Test::SharedFork',
+ DISTNAME => 'Test-SharedFork',
+ VERSION => '0.31',
+ CONFIGURE_REQUIRES => {
+ "ExtUtils::MakeMaker" => 0
+}
+,
+ BUILD_REQUIRES => {}
+,
+ TEST_REQUIRES => {
+ "App::Prove" => 0,
+ "Test::Builder::Tester" => 0,
+ "Test::Requires" => 0,
+ "Time::HiRes" => 0
+}
+,
+ PREREQ_PM => {
+ "File::Temp" => 0,
+ "Test::Builder" => "0.32",
+ "Test::Builder::Module" => 0,
+ "Test::More" => "0.88",
+ "perl" => "5.008_001"
+}
+,
+);
-if (-f 'META.yml') {
- print "cp META.yml MYMETA.yml\n";
- copy("META.yml","MYMETA.yml") or die "Copy failed(META.yml): $!";
-} else {
- print "There is no META.yml... You may install this module from the repository...\n";
+my $full_prereqs = {
+ "App::Prove" => 0,
+ "ExtUtils::MakeMaker" => 0,
+ "File::Temp" => 0,
+ "Test::Builder" => "0.32",
+ "Test::Builder::Module" => 0,
+ "Test::Builder::Tester" => 0,
+ "Test::More" => "0.88",
+ "Test::Requires" => 0,
+ "Time::HiRes" => 0,
+ "perl" => "5.008_001"
}
+;
-my %args;
-if ($ExtUtils::MakeMaker::VERSION >= 6.64) {
- # *_REQUIRES was supported.
+unless (eval { ExtUtils::MakeMaker->VERSION(6.63_03) }) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = $full_prereqs;
+}
- $args{CONFIGURE_REQUIRES} = {"ExtUtils::MakeMaker" => "6.64"};
- $args{BUILD_REQUIRES} = {};
- $args{TEST_REQUIRES} = {"App::Prove" => 0,"Test::Builder::Tester" => 0,"Test::Requires" => 0,"Time::HiRes" => 0};
- $args{PREREQ_PM} = {"File::Temp" => 0,"Test::Builder" => "0.32","Test::Builder::Module" => 0,"Test::More" => "0.88","perl" => "5.008_001"};
-} else {
- $args{PREREQ_PM} = {"App::Prove" => 0,"ExtUtils::MakeMaker" => "6.64","File::Temp" => 0,"Test::Builder" => "0.32","Test::Builder::Module" => 0,"Test::Builder::Tester" => 0,"Test::More" => "0.88","Test::Requires" => 0,"Time::HiRes" => 0,"perl" => "5.008_001"};
+unless (eval { ExtUtils::MakeMaker->VERSION(6.52) }) {
+ delete $WriteMakefileArgs{CONFIGURE_REQUIRES};
}
-if ($ExtUtils::MakeMaker::VERSION >= 6.57_01) {
- $args{NO_MYMETA} = 1;
+unless (eval { ExtUtils::MakeMaker->VERSION(6.57_01) }) {
+ use File::Copy;
+ copy('META.yml', 'MYMETA.yml') or warn "META.yml: $!";
+ copy('META.json', 'MYMETA.json') or warn "META.json: $!";
}
-WriteMakefile(
- NAME => 'Test::SharedFork',
- DISTNAME => 'Test-SharedFork',
- VERSION => '0.29',
- %args,
-);
+WriteMakefile(%WriteMakefileArgs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/lib/Test/SharedFork.pm new/Test-SharedFork-0.31/lib/Test/SharedFork.pm
--- old/Test-SharedFork-0.29/lib/Test/SharedFork.pm 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/lib/Test/SharedFork.pm 2015-04-28 22:26:13.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
use base 'Test::Builder::Module';
-our $VERSION = '0.29';
+our $VERSION = '0.31';
use Test::Builder 0.32; # 0.32 or later is needed
use Test::SharedFork::Scalar;
use Test::SharedFork::Array;
@@ -53,9 +53,15 @@
if ($builder->can("coordinate_forks")) {
# Use Test::Builder's implementation.
$builder->new->coordinate_forks(1);
- } elsif (Test::Stream->can('use_fork')) {
- my $stream = $builder->{stream} || Test::Stream->shared;
- $stream->use_fork;
+ } elsif($INC{'Test/Stream.pm'}) {
+ if (Test::Stream->can('use_fork')) {
+ my $stream = $builder->{stream} || Test::Stream->shared;
+ $stream->use_fork;
+ }
+ else {
+ my $hub = $builder->{stream} || Test::Stream->shared;
+ $hub->enable_concurrency(join => undef, wait => undef);
+ }
} else {
if ($builder->can('trace_test')) {
my $stream = $builder->stream;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-SharedFork-0.29/t/12_is_passing.t new/Test-SharedFork-0.31/t/12_is_passing.t
--- old/Test-SharedFork-0.29/t/12_is_passing.t 2014-09-20 06:21:56.000000000 +0200
+++ new/Test-SharedFork-0.31/t/12_is_passing.t 2015-04-28 22:26:13.000000000 +0200
@@ -39,7 +39,6 @@
do_in_fork(sub {
$builder->ok(0);
});
-
ok !$builder->is_passing, 'Test::Builder->is_passing should be falsy after a failing test';
do_in_fork(sub {
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module
1
0