openSUSE Commits
Threads by month
- ----- 2024 -----
- 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 2020
- 1 participants
- 4645 discussions
Hello community,
here is the log from the commit of package golang-org-x-sys for openSUSE:Factory checked in at 2020-05-01 11:13:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/golang-org-x-sys (Old)
and /work/SRC/openSUSE:Factory/.golang-org-x-sys.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "golang-org-x-sys"
Fri May 1 11:13:34 2020 rev:2 rq:799186 version:0.0.0+git20200420.1957bb5
Changes:
--------
--- /work/SRC/openSUSE:Factory/golang-org-x-sys/golang-org-x-sys.changes 2018-02-09 15:46:12.258282033 +0100
+++ /work/SRC/openSUSE:Factory/.golang-org-x-sys.new.2738/golang-org-x-sys.changes 2020-05-01 11:13:43.135895169 +0200
@@ -1,0 +2,547 @@
+Mon Apr 27 17:08:46 UTC 2020 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- Update to version 0.0.0+git20200420.1957bb5:
+ * unix: add SockaddrUnix tests on linux
+ * Revert "unix: add openat2 for linux"
+ * unix: update Dockerfile to Go 1.14.2
+ * unix: fix name of generated zerrors_*.go in README
+ * unix: add nexthop types and consts
+ * unix: add openat2 for linux
+ * unix: update Dockerfile to Linux 5.6, and Go 1.13.9
+ * unix: add fs-verity consts and types
+ * unix: allocate signalNameMap with enough space
+ * unix: add readv/writev for illumos
+ * gitignore: remove obsolete reference to .hgignore in comment
+ * unix: regenerate all definitions on FreeBSD 12.1 on {386,amd64,arm64}
+ * unix: add disk ioctl constants for FreeBSD
+ * unix: only declare PtraceGetFsBase() on x86-based platforms
+ * unix: implement L2TPIP socket address on Linux
+ * unix: update BPF consts on linux
+ * cpu: add mips64x feature detection
+ * unix: merge duplicate code in ztypes_linux_*.go
+ * unix: merge duplicate code in zsyscall_linux_*.go
+ * unix: merge duplicate code in zerrors_linux_*.go
+ * unix: add tool for merging duplicate code
+ * unix: add adjtimex return constants
+ * unix: mark capget/capset as non-blocking
+ * unix: gofmt after CL 218799
+ * unix: add RTMGRP_* consts from rtnetlink.h
+ * unix: add InotifyInit for mips64
+ * unix: update Dockerfile to Linux 5.5, glibc 2.31, Go 1.13.7
+ * unix: use pipe2 syscall on OpenBSD
+ * unix: add new setfsuid/setfsgid wrappers
+ * unix: correct PtraceIoDesc and define PtraceIoDesc per GOARCH on freebsd
+ * unix: test (*FdSet).Clear in TestFdSet
+ * Revert "unix: fix Setfsuid and Setfsgid return values"
+ * unix: fix Setfsuid and Setfsgid return values
+ * cpu: don't read ARM64 registers on Android
+ * windows: add missing network-related constants
+ * unix: add missing chtmpdir in TestPpoll on openbsd
+ * unix: add SysctlClockinfo on dragonfly and freebsd
+ * unix: add Inet4Pktinfo type on solaris
+ * unix: test UtimesNanoAt on *bsd and solaris
+ * unix: don't zero out extra registers on riscv64 syscalls
+ * unix: add flags argument in //sys comments for Fstatvfs1 and Statvfs1 on netbsd
+ * unix: add Dup3 on netbsd and openbsd
+ * unix: correct build tag to define Getdirentries for darwin/arm with Go 1.11
+ * windows: added SO_RCVTIMEO and IPPROTO_ICMP constants
+ * unix: compare Stat_t members in TestFstatat
+ * unix: unify definition of func fcntl
+ * unix: use correct file name in comment
+ * unix: add Readv/Writev family of syscalls for linux
+ * windows: fix recvfrom and sendto data types
+ * unix: add PrctlRetInt, a Prctl variant that returns (int, error)
+ * unix: move functions Ptrace{Get|Set}RegSetArm64 to a separate file
+ * unix: replace readlink in mkall.sh with portable shell commands
+ * unix: add functions PtraceGetRegSetArm64 and PtraceSetRegSetArm64
+ * unix: add Statvfs and Fstatvfs on NetBSD
+ * cpu: support reading arm64 CPU feature registers
+ * windows: add Recvfrom and Sendto implementations
+ * unix: add new fscrypt declarations from Linux v5.4
+ * unix/linux: bump Linux and Go versions to latest stable releases
+ * unix: check number of ready file descriptors in TestPselect
+ * unix: don't fail TestSelect on EINTR from Select
+ * windows: add Get*PreferredUILanguages
+ * unix: use same TestSelect on all Unices
+ * unix: fix EINTR check in TestPselect
+ * unix: regenerate zerrors for AIX
+ * windows: revert security_windows.go change of CL 202177
+ * unix: don't fail TestPselect on EINTR from Pselect
+ * unix: fix EINTR check in TestClockNanosleep
+ * unix: don't fail TestClockNanosleep on EINTR from ClockNanosleep
+ * unix: fix EpollEvent padding on mips64{,le}
+ * unix: check correct CPU for being enabled in old mask in TestSchedSetaffinity
+ * cpu: don't redeclare doinit on ppc64le
+ * unix: accept time.Now()±1 as valid in TestTime
+ * cpu: add basic support for GOARCH=riscv64
+ * cpu: move empty doinit to own file
+ * unix: skip TestPselect on EINTR
+ * unix: test returned fd in TestEpoll
+ * windows: add empty.s to fix build with Go 1.11 and earlier
+ * unix: add TestEpoll on linux
+ * unix: add methods to manipulate *FdSet
+ * windows: add EnumProcesses function
+ * windows/registry: make '-gcflags=all=-d=checkptr' flag work
+ * unix: add devlink Linux generic netlink API constants
+ * unix: add missing HCI_CHANNEL_LOGGING constant
+ * windows/registry: remove TestWalkFullRegistry due to false assumptions
+ * unix: don't use non-existing uint128 type on freebsd/arm64
+ * windows/registry: allow for non-null terminated strings
+ * unix: make convertFromDirents11 checkptr safe
+ * unix: remove un-used ptrSize
+ * unix: regenerate darwin libc trampolines after CL 202837
+ * unix: __sysctl is sysctl on darwin
+ * unix: comply with -d=checkptr in Test_anyToSockaddr
+ * windows: respect permission bits on file opening
+ * unix: don't use 32-bit aligned access for cmsgAlignOf on dragonfly after ABI change
+ * windows, unix: fix wrong unsafe.Pointer alignment in syscall
+ * unix: avoid "just past the end" pointers in UnixRights
+ * windows: add GetDiskFreeSpaceEx function
+ * unix: update rtnetlink constants
+ * unix: add new func PtraceInterrupt on Linux
+ * windows: fix ShellExecute return condition
+ * windows: use go:linkname instead of assembly
+ * windows: add module handle functions
+ * unix: add new func PtraceSeize on Linux
+ * unix: add Klogset and related SYSLOG_ACTION_ constants
+ * windows/mkwinsyscall: import mksyscall_windows.go from go repo
+ * windows/svc: use CloseServiceHandle for service handles
+ * unix: avoid __getdirentries64 on darwin
+ * unix: update openbsd/{386,amd64.arm} MAP_* consts
+ * windows: add LockFileEx, UnlockFileEx system calls
+ * cpu: support ARM feature detection on Linux
+ * windows: revert breaking API changes from CL 196798, add new accessor funcs
+ * unix: add NFDBITS const on Linux, update TestSelect
+ * unix: fix Select to return number of ready fds on Solaris
+ * unix: re-generate Select on dragonfly
+ * windows: use pseudo handle constants to implement GetCurrentProcess
+ * unix: fix Select to return number of ready fds on Darwin and *BSD
+ * windows: make SID.String() conform to the String interface
+ * windows: do not return invalid error for psuedo-handle functions
+ * windows: use correct type for security attributes' descriptor member
+ * windows: support SECURITY_DESCRIPTOR and ACL for secured objects
+ * unix: add KEYCTL_RESTRICT_KEYRING capabilities
+ * windows: do not corrupt stack with larger boolean return value
+ * unix: redefine TIPC_WAIT_FOREVER as a uint32 value
+ * windows: add various functions for shutting down and logging out
+ * unix: update Dockerfile to Linux 5.3 and use ubuntu 19.04 base image
+ * unix: add IfaCacheinfo on linux
+ * unix: sort Linux-specific includes in linux/types.go and mkerrors.sh
+ * cpu: remove encoding/binary dependency
+ * unix: add Msghdr.SetIovlen for solaris/amd64
+ * unix: add Msghdr.SetIovlen
+ * unix: disable sysctl on iOS
+ * cpu: add a space before build tag comment
+ * unix: implement AF_TIPC sockets on Linux
+ * unix/linux: upgrade Docker build container to Go 1.13
+ * unix: add IoctlRetInt for Linux
+ * unix: fix coredump bit on aix/ppc64
+ * windows: open process tokens with duplicate access
+ * unix: unify Ioctl* functions
+ * windows: add mutex management functions
+ * unix: use bits.OnesCount64 instead of local copy
+ * windows: add Windows directory accessors
+ * windows: allow re-enabling priority boost
+ * windows: allow retrieving true version with RtlGetNtVersionNumbers
+ * unix/linux: update Dockerfile to glibc 2.30
+ * unix: disable ptrace on iOS
+ * unix: fix epoll_event padding on riscv64
+ * windows: add support for automatic delayed start in windows service
+ * unix: remove nacl build tag from dirent code
+ * unix: fix several staticcheck issues
+ * windows: add CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT
+ * unix: add riscv64 tag to endian_little.go
+ * unix: add constants and types to work with Linux loop devices
+ * unix: update Dockerfile to Linux 5.2 and Go 1.13beta1
+ * unix: add missing dirent* helper functions on aix
+ * unix: don't use syscall.ParseDirent
+ * unix: add Getdents on dragonfly
+ * unix: use ParseDirent in testGetdirentries
+ * unix: fix nil pointer dereference in Getdirentries on 32-bit freebsd 12
+ * unix: add missing import in readdirent_getdirentries.go
+ * unix: fix Getdirentries emulation using Getdents on netbsd, openbsd
+ * unix: add test for Getdirentries
+ * unix: merge implementation for ReadDirent
+ * unix: add support to get/set Linux capabilities
+ * unix: correctly rename Val member in Sigset_t on freebsd
+ * unix: add ptrace support for FreeBSD
+ * unix: add AT_SYMLINK_FOLLOW const on openbsd
+ * unix: add AT_SYMLINK_FOLLOW const on netbsd
+ * windows: make CoTaskMemFree public
+ * unix: remove net dependency
+ * windows: allow determining real version number
+ * unix: fix Getdirentries emulation using Getdents on netbsd, openbsd
+ * unix: change the mksysnum master to point to stable/11 on freebsd
+ * windows: rename some arguments to follow MSDN
+ * windows: allow looking up well-known folder paths
+ * windows: add OpenThread function
+ * windows: add GetProcessId function
+ * unix: fix Getdirentries on 32-bit freebsd 12
+ * windows: expose GetCurrentProcessId function
+ * windows: allow determining if manager is locked
+ * windows: correct types and error values of internal GUID handling
+ * windows: add Thread32{First,Next} funcions
+ * windows: properly plumb sidtype into service creation
+ * windows: add GUID handling functions
+ * windows: add accessor for duration since boot
+ * windows: add constants for access rights
+ * windows: make it easier to iterate over groups and privileges
+ * windows: delete mkerrors.go
+ * unix: provide linux/riscv64 assembly for syscalls
+ * unix: fix TestFchmodat on illumos
+ * Revert "windows: make zsyscall_windows.go generatable on non-WSL env"
+ * windows: make zsyscall_windows.go generatable on non-WSL env
+ * windows: add GenerateConsoleCtrlEvent function
+ * plan9: modify mkall.sh to support zsyscall*.go files generation
+ * cpu: add missing linkname for libc_getsystemcfg on aix/ppc64
+ * windows: add SetInformationJobObject functions
++++ 350 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/golang-org-x-sys/golang-org-x-sys.changes
++++ and /work/SRC/openSUSE:Factory/.golang-org-x-sys.new.2738/golang-org-x-sys.changes
Old:
----
sys-0.0.0+git20180202.37707fd.tar.xz
New:
----
sys-0.0.0+git20200420.1957bb5.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ golang-org-x-sys.spec ++++++
--- /var/tmp/diff_new_pack.HLPuDc/_old 2020-05-01 11:13:45.463900232 +0200
+++ /var/tmp/diff_new_pack.HLPuDc/_new 2020-05-01 11:13:45.467900240 +0200
@@ -1,7 +1,7 @@
#
-# spec file for package golang-org-x
+# spec file for package golang-org-x-sys
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -24,12 +24,12 @@
%global import_path golang.org/x/sys
Name: golang-org-x-%{repo}
-Version: 0.0.0+git20180202.37707fd
+Version: 0.0.0+git20200420.1957bb5
Release: 0
Summary: Go packages for low-level interaction with the operating system
License: BSD-3-Clause
Group: Development/Languages/Golang
-Url: https://%{provider_prefix}
+URL: https://%{provider_prefix}
Source0: %{repo}-%{version}.tar.xz
Source1: rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -57,7 +57,8 @@
%gofilelist
%files -f file.lst
-%defattr(-,root,root,-)
-%doc README.md LICENSE PATENTS AUTHORS CONTRIBUTORS CONTRIBUTING.md
+%license LICENSE
+%{_bindir}/*
+%doc README.md PATENTS AUTHORS CONTRIBUTORS CONTRIBUTING.md
%changelog
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.HLPuDc/_old 2020-05-01 11:13:45.507900327 +0200
+++ /var/tmp/diff_new_pack.HLPuDc/_new 2020-05-01 11:13:45.507900327 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/golang/sys</param>
- <param name="changesrevision">37707fdb30a5b38865cfb95e5aab41707daec7fd</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">1957bb5e6d1f523308b49060df02171d06ddfc77</param></service></servicedata>
\ No newline at end of file
++++++ sys-0.0.0+git20180202.37707fd.tar.xz -> sys-0.0.0+git20200420.1957bb5.tar.xz ++++++
++++ 181025 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package xfce4-panel for openSUSE:Factory checked in at 2020-05-01 11:13:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xfce4-panel (Old)
and /work/SRC/openSUSE:Factory/.xfce4-panel.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfce4-panel"
Fri May 1 11:13:19 2020 rev:72 rq:799157 version:4.14.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/xfce4-panel/xfce4-panel.changes 2020-03-23 12:53:00.052048362 +0100
+++ /work/SRC/openSUSE:Factory/.xfce4-panel.new.2738/xfce4-panel.changes 2020-05-01 11:13:31.351869541 +0200
@@ -1,0 +2,12 @@
+Wed Apr 29 09:02:26 UTC 2020 - Marcel Kuehlhorn <tux93(a)opensuse.org>
+
+- Update to 4.14.4
+ * Fix panel build with vala 0.48 (bxo#16426)
+ * Fix memory leak in panel plugin wrapper (bxo#16640)
+ * tasklist: Fix crash middle-click-closing grouped windows
+ (bxo#16410)
+ * panel: Make sure "span monitors" is conditionally sensitive
+ (bxo#15169)
+ * Translation Updates
+
+-------------------------------------------------------------------
Old:
----
xfce4-panel-4.14.3.tar.bz2
New:
----
xfce4-panel-4.14.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfce4-panel.spec ++++++
--- /var/tmp/diff_new_pack.9wCahv/_old 2020-05-01 11:13:33.479874169 +0200
+++ /var/tmp/diff_new_pack.9wCahv/_new 2020-05-01 11:13:33.479874169 +0200
@@ -21,7 +21,7 @@
%define libname_gtk3 libxfce4panel-2_0-4
Name: xfce4-panel
-Version: 4.14.3
+Version: 4.14.4
Release: 0
Summary: Panel for the Xfce Desktop Environment
License: GPL-2.0-or-later AND LGPL-2.1-or-later
++++++ xfce4-panel-4.14.3.tar.bz2 -> xfce4-panel-4.14.4.tar.bz2 ++++++
++++ 3112 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package nfoview for openSUSE:Factory checked in at 2020-05-01 11:13:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nfoview (Old)
and /work/SRC/openSUSE:Factory/.nfoview.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nfoview"
Fri May 1 11:13:15 2020 rev:7 rq:799147 version:1.28
Changes:
--------
--- /work/SRC/openSUSE:Factory/nfoview/nfoview.changes 2020-04-25 20:30:15.554261438 +0200
+++ /work/SRC/openSUSE:Factory/.nfoview.new.2738/nfoview.changes 2020-05-01 11:13:17.919840330 +0200
@@ -1,0 +2,10 @@
+Thu Apr 30 07:59:19 UTC 2020 - Paolo Stivanin <info(a)paolostivanin.com>
+
+- Update to 1.28:
+ * Switch default font from Terminus to Cascadia Code as Terminus is
+ most commonly a bitmap font, which no longer work with Pango 1.44:
+ https://gitlab.gnome.org/GNOME/pango/issues/386
+ * Always fall back on the platform default monospace font
+ * Add Dutch translation (Heimen Stoffels)
+
+-------------------------------------------------------------------
Old:
----
nfoview-1.27.1.tar.gz
New:
----
nfoview-1.28.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nfoview.spec ++++++
--- /var/tmp/diff_new_pack.Jhmd4O/_old 2020-05-01 11:13:18.815842279 +0200
+++ /var/tmp/diff_new_pack.Jhmd4O/_new 2020-05-01 11:13:18.819842288 +0200
@@ -17,7 +17,7 @@
Name: nfoview
-Version: 1.27.1
+Version: 1.28
Release: 0
Summary: Simple Viewer for NFO Files
License: GPL-3.0-or-later
++++++ nfoview-1.27.1.tar.gz -> nfoview-1.28.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/NEWS.md new/nfoview-1.28/NEWS.md
--- old/nfoview-1.27.1/NEWS.md 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/NEWS.md 2020-04-28 22:30:38.000000000 +0200
@@ -1,3 +1,12 @@
+2020-04-28: NFO Viewer 1.28
+===========================
+
+* Switch default font from Terminus to Cascadia Code as Terminus is
+ most commonly a bitmap font, which no longer work with Pango 1.44:
+ <https://gitlab.gnome.org/GNOME/pango/issues/386>
+* Always fall back on the platform default monospace font
+* Add Dutch translation (Heimen Stoffels)
+
2020-04-10: NFO Viewer 1.27.1
=============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/README.md new/nfoview-1.28/README.md
--- old/nfoview-1.27.1/README.md 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/README.md 2020-04-28 22:30:38.000000000 +0200
@@ -36,11 +36,17 @@
#### Source
-NFO Viewer requires Python ≥ 3.2, PyGObject ≥ 3.0.0 and GTK ≥ 3.12.
-Additionally, during installation you need gettext. On Debian/Ubuntu you
-can install these with the following command.
+NFO Viewer requires Python ≥ 3.2, PyGObject ≥ 3.0.0 and GTK ≥ 3.12. You
+also need a font that supports the kinds of glyphs commonly used in NFO
+files: Cascadia Code is a good choice and used by NFO Viewer by default,
+if available. During installation you will also need gettext. On
+Debian/Ubuntu you can install these with the following command.
- sudo apt install python3 python3-gi gir1.2-gtk-3.0 gettext
+ sudo apt install fonts-cascadia-code \
+ gettext \
+ gir1.2-gtk-3.0 \
+ python3 \
+ python3-gi
Then, to install NFO Viewer, run command
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/TODO.md new/nfoview-1.28/TODO.md
--- old/nfoview-1.27.1/TODO.md 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/TODO.md 2020-04-28 22:30:38.000000000 +0200
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/data/io.otsaloma.nfoview.appdata.xml.in new/nfoview-1.28/data/io.otsaloma.nfoview.appdata.xml.in
--- old/nfoview-1.27.1/data/io.otsaloma.nfoview.appdata.xml.in 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/data/io.otsaloma.nfoview.appdata.xml.in 2020-04-28 22:30:38.000000000 +0200
@@ -21,7 +21,7 @@
<url type="translate">https://www.transifex.com/otsaloma/nfoview/</url>
<launchable type="desktop-id">io.otsaloma.nfoview.desktop</launchable>
<releases>
- <release version="1.27.1" date="2020-04-10"/>
+ <release version="1.28" date="2020-04-28"/>
</releases>
<mimetypes>
<mimetype>text/x-nfo</mimetype>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/nfoview/__init__.py new/nfoview-1.28/nfoview/__init__.py
--- old/nfoview-1.27.1/nfoview/__init__.py 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/nfoview/__init__.py 2020-04-28 22:30:38.000000000 +0200
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-__version__ = "1.27.1"
+__version__ = "1.28"
import sys
import warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/nfoview/config.py new/nfoview-1.28/nfoview/config.py
--- old/nfoview-1.27.1/nfoview/config.py 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/nfoview/config.py 2020-04-28 22:30:38.000000000 +0200
@@ -18,14 +18,13 @@
import nfoview
import os
import re
-import sys
__all__ = ("ConfigurationStore",)
DEFAULTS = {
"background_color": "#ffffff",
"color_scheme": "default",
- "font": "Consolas 10" if sys.platform == "win32" else "Terminus 12",
+ "font": "Cascadia Code 10",
"foreground_color": "#2e3436",
"link_color": "#2a76c6",
"pixels_above_lines": 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/nfoview/util.py new/nfoview-1.28/nfoview/util.py
--- old/nfoview-1.27.1/nfoview/util.py 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/nfoview/util.py 2020-04-28 22:30:38.000000000 +0200
@@ -43,7 +43,7 @@
.nfoview-text-view, .nfoview-text-view text {{
background-color: {bg};
color: {fg};
- font-family: {family};
+ font-family: {family}, monospace;
font-size: {size}{unit};
font-weight: {weight};
}}""".format(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/po/nl.po new/nfoview-1.28/po/nl.po
--- old/nfoview-1.27.1/po/nl.po 1970-01-01 01:00:00.000000000 +0100
+++ new/nfoview-1.28/po/nl.po 2020-04-28 22:30:38.000000000 +0200
@@ -0,0 +1,206 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Heimen Stoffels <vistausss(a)outlook.com>, 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: nfoview\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-04-10 22:25+0300\n"
+"PO-Revision-Date: 2020-04-11 17:24+0000\n"
+"Last-Translator: Heimen Stoffels <vistausss(a)outlook.com>\n"
+"Language-Team: Dutch (http://www.transifex.com/otsaloma/nfoview/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: nfoview/about.py:31
+msgid "About NFO Viewer"
+msgstr "Over NFO-weergave"
+
+#: nfoview/about.py:34 data/io.otsaloma.nfoview.appdata.xml.in:7
+msgid "Viewer for NFO files"
+msgstr "Bekijk NFO-bestanden"
+
+#. TRANSLATORS: The application name "NFO Viewer" has been intentionally
+#. marked as translatable. If you manage to translate the name in a
+#. fluent manner, without changing the meaning, you may use that
+#. translation at your discretion.
+#: nfoview/about.py:42 nfoview/window.py:82
+#: data/io.otsaloma.nfoview.appdata.xml.in:6
+#: data/io.otsaloma.nfoview.desktop.in:4
+msgid "NFO Viewer"
+msgstr "NFO-weergave"
+
+#. TRANSLATORS: This is a special message that shouldn't be translated
+#. literally. It is used in the about dialog to give credits to the
+#. translators. Thus, you should translate it to your name and email
+#. address. You can also include other translators who have contributed
+#. to this translation; in that case, please write them on separate
+#. lines seperated by newlines (\n).
+#: nfoview/about.py:49
+msgid "translator-credits"
+msgstr "Heimen Stoffels <vistausss(a)outlook.com>"
+
+#: nfoview/about.py:52
+msgid "NFO Viewer Website"
+msgstr "Website"
+
+#: nfoview/export.py:35
+msgid "Export Image"
+msgstr "Afbeelding exporteren"
+
+#: nfoview/export.py:39 nfoview/export.py:42 nfoview/open.py:39
+#: nfoview/open.py:42
+msgid "_Cancel"
+msgstr "_Annuleren"
+
+#: nfoview/export.py:40 nfoview/export.py:43
+msgid "_Save"
+msgstr "Op_slaan"
+
+#: nfoview/open.py:35
+msgid "Open"
+msgstr "Openen"
+
+#: nfoview/open.py:40 nfoview/open.py:43
+msgid "_Open"
+msgstr "_Openen"
+
+#: nfoview/open.py:47
+msgid "All files"
+msgstr "Alle bestanden"
+
+#: nfoview/open.py:51
+msgid "NFO files (*.nfo)"
+msgstr "NFO-bestanden (*.nfo)"
+
+#: nfoview/schemes.py:46
+msgid "Black on white"
+msgstr "Zwart op wit"
+
+#: nfoview/schemes.py:56
+msgid "Custom"
+msgstr "Aangepast"
+
+#: nfoview/schemes.py:66
+msgid "Dark grey on light grey"
+msgstr "Donkergrijs op lichtgrijs"
+
+#: nfoview/schemes.py:79
+msgid "System theme"
+msgstr "Systeemthema"
+
+#: nfoview/schemes.py:89
+msgid "Grey on black"
+msgstr "Grijs op zwart"
+
+#: nfoview/schemes.py:99
+msgid "Light grey on dark grey"
+msgstr "Lichtgrijs op donkergrijs"
+
+#: nfoview/schemes.py:109
+msgid "White on black"
+msgstr "Wit op zwart"
+
+#: data/menu.ui:6
+msgid "_Open…"
+msgstr "_Openen..."
+
+#: data/menu.ui:10
+msgid "_Export Image…"
+msgstr "Afbeelding _exporteren..."
+
+#: data/menu.ui:16
+msgid "C_opy"
+msgstr "K_opiëren"
+
+#: data/menu.ui:20
+msgid "_Select All"
+msgstr "Alles _selecteren"
+
+#: data/menu.ui:24
+msgid "_Wrap Lines"
+msgstr "_Regels omslaan"
+
+#: data/menu.ui:30
+msgid "_Preferences"
+msgstr "_Instellingen"
+
+#: data/menu.ui:34
+msgid "_About"
+msgstr "_Over"
+
+#: data/menu.ui:40
+msgid "_Close"
+msgstr "_Sluiten"
+
+#: data/menu.ui:44
+msgid "_Quit"
+msgstr "_Afsluiten"
+
+#: data/preferences-dialog.ui:51
+msgid "Text"
+msgstr "Tekst"
+
+#: data/preferences-dialog.ui:75
+msgid "_Font:"
+msgstr "_Lettertype:"
+
+#: data/preferences-dialog.ui:89
+msgid "Li_ne-spacing:"
+msgstr "Regelafsta_nd:"
+
+#: data/preferences-dialog.ui:153
+msgid "Colors"
+msgstr "Thema"
+
+#: data/preferences-dialog.ui:176
+msgid "_Schemes:"
+msgstr "_Schema's:"
+
+#: data/preferences-dialog.ui:190
+msgid "Fo_reground:"
+msgstr "Voo_rgrond:"
+
+#: data/preferences-dialog.ui:204
+msgid "Bac_kground:"
+msgstr "A_chtergrond:"
+
+#: data/preferences-dialog.ui:218
+msgid "_Link:"
+msgstr "_Link:"
+
+#: data/preferences-dialog.ui:232
+msgid "_Visited link:"
+msgstr "Be_zochte link:"
+
+#: data/preferences-dialog.ui:332
+msgid "Preferences"
+msgstr "Instellingen"
+
+#: data/io.otsaloma.nfoview.appdata.xml.in:9
+msgid ""
+"NFO Viewer is a simple viewer for NFO files, which are \"ASCII\" art in the "
+"CP437 codepage. The advantages of using NFO Viewer instead of a text editor "
+"are preset font and encoding settings, automatic window size and clickable "
+"hyperlinks."
+msgstr "Met NFO-weergave bekijk je eenvoudig NFO-bestanden, welke zijn opgemaakt in 'ASCII' in de CP437-codepagina. NFO-weergave heeft een aantal voordelen t.o.v. een tekstbewerker: lettertype- en versleutelingsinstellingen, automatische venstergrootte en aanklikbare links."
+
+#: data/io.otsaloma.nfoview.appdata.xml.in:34
+msgid "Main window"
+msgstr "Hoofdvenster"
+
+#: data/io.otsaloma.nfoview.desktop.in:5
+msgid "View NFO files"
+msgstr "Bekijk NFO-bestanden"
+
+#. TRANSLATORS: Search terms to find this application. Do NOT translate or
+#. localize the semicolons! The list MUST also end with a semicolon!
+#: data/io.otsaloma.nfoview.desktop.in:11
+msgid "information;"
+msgstr "informatie;"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nfoview-1.27.1/win32/nfoview.iss new/nfoview-1.28/win32/nfoview.iss
--- old/nfoview-1.27.1/win32/nfoview.iss 2020-04-10 21:30:02.000000000 +0200
+++ new/nfoview-1.28/win32/nfoview.iss 2020-04-28 22:30:38.000000000 +0200
@@ -3,14 +3,14 @@
[Setup]
AppId=io.otsaloma.nfoview
AppName=NFO Viewer
-AppVerName=NFO Viewer 1.27.1
+AppVerName=NFO Viewer 1.28
AppPublisher=Osmo Salomaa
AppPublisherURL=https://otsaloma.io/nfoview/
DefaultDirName={pf}\NFO Viewer
DefaultGroupName=NFO Viewer
AllowNoIcons=yes
OutputDir=".."
-OutputBaseFilename=nfoview-1.27.1-win32
+OutputBaseFilename=nfoview-1.28-win32
Compression=lzma
SolidCompression=yes
1
0
Hello community,
here is the log from the commit of package python-daemonize for openSUSE:Factory checked in at 2020-05-01 11:13:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-daemonize (Old)
and /work/SRC/openSUSE:Factory/.python-daemonize.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-daemonize"
Fri May 1 11:13:10 2020 rev:5 rq:799146 version:2.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-daemonize/python-daemonize.changes 2019-03-10 09:35:44.004171097 +0100
+++ /work/SRC/openSUSE:Factory/.python-daemonize.new.2738/python-daemonize.changes 2020-05-01 11:13:13.319830327 +0200
@@ -1,0 +2,6 @@
+Thu Apr 30 07:54:44 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Add patch to fix test running without python2:
+ * no-python2.patch
+
+-------------------------------------------------------------------
New:
----
no-python2.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-daemonize.spec ++++++
--- /var/tmp/diff_new_pack.kwsPts/_old 2020-05-01 11:13:14.415832710 +0200
+++ /var/tmp/diff_new_pack.kwsPts/_new 2020-05-01 11:13:14.415832710 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-daemonize
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -22,9 +22,9 @@
Release: 0
Summary: Python module to launch code as a daemon process
License: MIT
-Group: Development/Languages/Python
URL: https://github.com/thesharp/daemonize
Source: https://github.com/thesharp/daemonize/archive/v%{version}.tar.gz
+Patch0: no-python2.patch
BuildRequires: %{python_module nose}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -39,6 +39,7 @@
%prep
%setup -q -n daemonize-%{version}
+%patch0 -p1
%build
%python_build
++++++ no-python2.patch ++++++
Index: daemonize-2.5.0/tests/test.py
===================================================================
--- daemonize-2.5.0.orig/tests/test.py
+++ daemonize-2.5.0/tests/test.py
@@ -3,6 +3,7 @@ import os
import pwd
import grp
import subprocess
+import sys
from tempfile import mkstemp
from time import sleep
@@ -18,7 +19,7 @@ else:
class DaemonizeTest(unittest.TestCase):
def setUp(self):
self.pidfile = mkstemp()[1]
- os.system("python tests/daemon_sigterm.py %s" % self.pidfile)
+ os.system("%s tests/daemon_sigterm.py %s" % (sys.executable, self.pidfile))
sleep(.1)
def tearDown(self):
@@ -43,7 +44,7 @@ class LockingTest(unittest.TestCase):
def setUp(self):
self.pidfile = mkstemp()[1]
print("First daemonize process started")
- os.system("python tests/daemon_sigterm.py %s" % self.pidfile)
+ os.system("%s tests/daemon_sigterm.py %s" % (sys.executable, self.pidfile))
sleep(.1)
def tearDown(self):
@@ -53,7 +54,7 @@ class LockingTest(unittest.TestCase):
def test_locking(self):
sleep(10)
print("Attempting to start second daemonize process")
- proc = subprocess.call(["python", "tests/daemon_sigterm.py", self.pidfile])
+ proc = subprocess.call([sys.executable, "tests/daemon_sigterm.py", self.pidfile])
self.assertEqual(proc, 1)
@@ -61,7 +62,7 @@ class KeepFDsTest(unittest.TestCase):
def setUp(self):
self.pidfile = mkstemp()[1]
self.logfile = mkstemp()[1]
- os.system("python tests/daemon_keep_fds.py %s %s" % (self.pidfile, self.logfile))
+ os.system("%s tests/daemon_keep_fds.py %s %s" % (sys.executable, self.pidfile, self.logfile))
sleep(1)
def tearDown(self):
@@ -90,7 +91,7 @@ class UidGidTest(unittest.TestCase):
os.chown(self.logfile, NOBODY_UID, NOBODY_GID)
- os.system("python tests/daemon_uid_gid.py %s %s" % (self.pidfile, self.logfile))
+ os.system("%s tests/daemon_uid_gid.py %s %s" % (sys.executable, self.pidfile, self.logfile))
sleep(1)
with open(self.logfile, "r") as f:
@@ -104,7 +105,7 @@ class UidGidTest(unittest.TestCase):
os.chown(self.pidfile, NOBODY_UID, NOBODY_GID)
- os.system("python tests/daemon_uid_gid_action.py %s %s" % (self.pidfile, self.logfile))
+ os.system("%s tests/daemon_uid_gid_action.py %s %s" % (sys.executable, self.pidfile, self.logfile))
sleep(1)
with open(self.logfile, "r") as f:
@@ -120,7 +121,7 @@ Stopping daemon.
"""
self.pidfile = mkstemp()[1]
self.logfile = mkstemp()[1]
- os.system("python tests/daemon_privileged_action.py %s %s" % (self.pidfile, self.logfile))
+ os.system("%s tests/daemon_privileged_action.py %s %s" % (sys.executable, self.pidfile, self.logfile))
sleep(.1)
def tearDown(self):
@@ -139,7 +140,7 @@ class ChdirTest(unittest.TestCase):
self.target = mkstemp()[1]
base, file = split(self.target)
- os.system("python tests/daemon_chdir.py %s %s %s" % (self.pidfile, base, file))
+ os.system("%s tests/daemon_chdir.py %s %s %s" % (sys.executable, self.pidfile, base, file))
sleep(1)
def tearDown(self):
1
0
Hello community,
here is the log from the commit of package python-glean for openSUSE:Factory checked in at 2020-05-01 11:13:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-glean (Old)
and /work/SRC/openSUSE:Factory/.python-glean.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-glean"
Fri May 1 11:13:05 2020 rev:5 rq:799141 version:1.15.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-glean/python-glean.changes 2019-10-05 16:22:10.645144715 +0200
+++ /work/SRC/openSUSE:Factory/.python-glean.new.2738/python-glean.changes 2020-05-01 11:13:08.831820566 +0200
@@ -1,0 +2,5 @@
+Thu Apr 30 07:48:04 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Fix build without python2
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-glean.spec ++++++
--- /var/tmp/diff_new_pack.IcBkao/_old 2020-05-01 11:13:09.771822611 +0200
+++ /var/tmp/diff_new_pack.IcBkao/_new 2020-05-01 11:13:09.775822619 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-glean
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
Summary: Program to write static config from config-drive
License: Apache-2.0
Group: Development/Languages/Python
-Url: http://www.openstack.org/
+URL: http://www.openstack.org/
Source: https://files.pythonhosted.org/packages/source/g/glean/glean-%{version}.tar…
BuildRequires: %{python_module pbr}
BuildRequires: %{python_module setuptools}
@@ -62,6 +62,7 @@
%check
%{python_expand rm -rf .testrepository
+export PYTHON=$python
$python setup.py test
}
1
0
Hello community,
here is the log from the commit of package python-jsonrpclib-pelix for openSUSE:Factory checked in at 2020-05-01 11:12:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jsonrpclib-pelix (Old)
and /work/SRC/openSUSE:Factory/.python-jsonrpclib-pelix.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jsonrpclib-pelix"
Fri May 1 11:12:59 2020 rev:3 rq:799140 version:0.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jsonrpclib-pelix/python-jsonrpclib-pelix.changes 2019-04-02 09:22:00.180694585 +0200
+++ /work/SRC/openSUSE:Factory/.python-jsonrpclib-pelix.new.2738/python-jsonrpclib-pelix.changes 2020-05-01 11:13:03.979810014 +0200
@@ -1,0 +2,11 @@
+Thu Apr 30 07:42:48 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Fix build without python2
+
+-------------------------------------------------------------------
+Thu Apr 30 07:34:43 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Update to 0.4.1:
+ * Fixed a size computation issue in the request handler (see #42)
+
+-------------------------------------------------------------------
Old:
----
v0.4.0.tar.gz
New:
----
v0.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jsonrpclib-pelix.spec ++++++
--- /var/tmp/diff_new_pack.HWBSXu/_old 2020-05-01 11:13:05.919814233 +0200
+++ /var/tmp/diff_new_pack.HWBSXu/_new 2020-05-01 11:13:05.919814233 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-jsonrpclib-pelix
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,12 +18,11 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-jsonrpclib-pelix
-Version: 0.4.0
+Version: 0.4.1
Release: 0
Summary: JSPN-RPC over HTTP Library for Pelix Remote Services
License: Apache-2.0
-Group: Development/Libraries/Python
-Url: https://github.com/tcalmant/jsonrpclib/
+URL: https://github.com/tcalmant/jsonrpclib/
Source: https://github.com/tcalmant/jsonrpclib/archive/v%{version}.tar.gz
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
@@ -37,6 +36,7 @@
%prep
%setup -q -n jsonrpclib-%{version}
+sed -i -e 's:python$:python3:' tests/cgi-bin/cgi_server.py
%build
%python_build
++++++ v0.4.0.tar.gz -> v0.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/README.md new/jsonrpclib-0.4.1/README.md
--- old/jsonrpclib-0.4.0/README.md 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/README.md 2020-04-12 16:36:53.000000000 +0200
@@ -95,6 +95,21 @@
python setup.py install
```
+## A note on logging
+
+`jsonrpclib-pelix` uses the `logging` module from the standard Python
+library to trace warnings and errors, but doesn't set it up.
+As a result, you have to configure the Python logging to print out traces.
+
+The easiest way to do it is to add those lines at the beginning of your code:
+```python
+import logging
+logging.basiConfig()
+```
+
+More information can be found in the
+[`logging` documentation page](https://docs.python.org/3/library/logging.html).
+
## `SimpleJSONRPCServer`
This is identical in usage (or should be) to the `SimpleXMLRPCServer` in the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/docs/license.rst new/jsonrpclib-0.4.1/docs/license.rst
--- old/jsonrpclib-0.4.0/docs/license.rst 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/docs/license.rst 2020-04-12 16:36:53.000000000 +0200
@@ -10,7 +10,7 @@
This snippet is added to the module-level documentation::
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/docs/server.rst new/jsonrpclib-0.4.1/docs/server.rst
--- old/jsonrpclib-0.4.0/docs/server.rst 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/docs/server.rst 2020-04-12 16:36:53.000000000 +0200
@@ -39,6 +39,24 @@
server.serve_forever()
+A note on logging
+=================
+
+``jsonrpclib-pelix`` uses the ``logging`` module from the standard Python
+library to trace warnings and errors, but doesn't set it up.
+As a result, you have to configure the Python logging to print out traces.
+
+The easiest way to do it is to add those lines at the beginning of your code:
+
+.. code-block:: python
+
+ import logging
+ logging.basicConfig()
+
+More information can be found in the
+`logging documentation page <https://docs.python.org/3/library/logging.html>`_.
+
+
Notification Thread Pool
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/SimpleJSONRPCServer.py new/jsonrpclib-0.4.1/jsonrpclib/SimpleJSONRPCServer.py
--- old/jsonrpclib-0.4.0/jsonrpclib/SimpleJSONRPCServer.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/SimpleJSONRPCServer.py 2020-04-12 16:36:53.000000000 +0200
@@ -5,13 +5,13 @@
CGI request handler.
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -81,7 +81,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
@@ -442,7 +442,7 @@
if not raw_chunk:
break
chunks.append(utils.from_bytes(raw_chunk))
- size_remaining -= len(chunks[-1])
+ size_remaining -= len(raw_chunk)
data = ''.join(chunks)
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/__init__.py new/jsonrpclib-0.4.1/jsonrpclib/__init__.py
--- old/jsonrpclib-0.4.0/jsonrpclib/__init__.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/__init__.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
Aliases to ease access to jsonrpclib classes
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/config.py new/jsonrpclib-0.4.1/jsonrpclib/config.py
--- old/jsonrpclib-0.4.0/jsonrpclib/config.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/config.py 2020-04-12 16:36:53.000000000 +0200
@@ -3,13 +3,13 @@
"""
The configuration module.
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/history.py new/jsonrpclib-0.4.1/jsonrpclib/history.py
--- old/jsonrpclib-0.4.0/jsonrpclib/history.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/history.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
The history module.
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@
"""
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/jsonclass.py new/jsonrpclib-0.4.1/jsonrpclib/jsonclass.py
--- old/jsonrpclib-0.4.0/jsonrpclib/jsonclass.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/jsonclass.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
The serialization module
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/jsonrpc.py new/jsonrpclib-0.4.1/jsonrpclib/jsonrpc.py
--- old/jsonrpclib-0.4.0/jsonrpclib/jsonrpc.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/jsonrpc.py 2020-04-12 16:36:53.000000000 +0200
@@ -36,13 +36,13 @@
See https://github.com/tcalmant/jsonrpclib for more info.
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -100,7 +100,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/threadpool.py new/jsonrpclib-0.4.1/jsonrpclib/threadpool.py
--- old/jsonrpclib-0.4.0/jsonrpclib/threadpool.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/threadpool.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
Cached thread pool, inspired from Pelix/iPOPO Thread Pool
:author: Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -41,7 +41,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/jsonrpclib/utils.py new/jsonrpclib-0.4.1/jsonrpclib/utils.py
--- old/jsonrpclib-0.4.0/jsonrpclib/utils.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/jsonrpclib/utils.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
Utility methods, for compatibility between Python version
:author: Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -30,7 +30,7 @@
# ------------------------------------------------------------------------------
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jsonrpclib-0.4.0/setup.py new/jsonrpclib-0.4.1/setup.py
--- old/jsonrpclib-0.4.0/setup.py 2019-01-13 19:12:05.000000000 +0100
+++ new/jsonrpclib-0.4.1/setup.py 2020-04-12 16:36:53.000000000 +0200
@@ -4,13 +4,13 @@
Installation script
:authors: Josh Marshall, Thomas Calmant
-:copyright: Copyright 2019, Thomas Calmant
+:copyright: Copyright 2020, Thomas Calmant
:license: Apache License 2.0
-:version: 0.4.0
+:version: 0.4.1
..
- Copyright 2019 Thomas Calmant
+ Copyright 2020 Thomas Calmant
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@
"""
# Module version
-__version_info__ = (0, 4, 0)
+__version_info__ = (0, 4, 1)
__version__ = ".".join(str(x) for x in __version_info__)
# Documentation strings format
1
0
Hello community,
here is the log from the commit of package python-positional for openSUSE:Factory checked in at 2020-05-01 11:12:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-positional (Old)
and /work/SRC/openSUSE:Factory/.python-positional.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-positional"
Fri May 1 11:12:51 2020 rev:6 rq:799135 version:1.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-positional/python-positional.changes 2019-04-14 12:22:39.667778325 +0200
+++ /work/SRC/openSUSE:Factory/.python-positional.new.2738/python-positional.changes 2020-05-01 11:12:59.439800141 +0200
@@ -1,0 +2,5 @@
+Thu Apr 30 07:33:20 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Fix build without python2
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-positional.spec ++++++
--- /var/tmp/diff_new_pack.KjWUUZ/_old 2020-05-01 11:13:00.571802603 +0200
+++ /var/tmp/diff_new_pack.KjWUUZ/_new 2020-05-01 11:13:00.575802611 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-positional
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,15 +27,16 @@
Source: https://files.pythonhosted.org/packages/source/p/positional/positional-%{ve…
BuildRequires: %{python_module pbr}
BuildRequires: %{python_module setuptools}
+BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Requires: python-wrapt
+BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module testrepository >= 0.0.18}
BuildRequires: %{python_module testresources >= 0.2.4}
BuildRequires: %{python_module testtools >= 1.4.0}
BuildRequires: %{python_module wrapt}
# /SECTION
-Requires: python-wrapt
-BuildArch: noarch
%python_subpackages
%description
@@ -51,9 +52,12 @@
%install
%python_install
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch}
+export PYTHONDONTWRITEBYTECODE=1
+%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib}
+export PYTHON=$python
[ -d .testrepository/ ] && rm -r .testrepository/
$python -B setup.py test
}
1
0
Hello community,
here is the log from the commit of package python-python-cjson for openSUSE:Factory checked in at 2020-05-01 11:12:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-cjson (Old)
and /work/SRC/openSUSE:Factory/.python-python-cjson.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-cjson"
Fri May 1 11:12:42 2020 rev:3 rq:799132 version:1.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-python-cjson/python-python-cjson.changes 2019-06-19 21:03:07.938226926 +0200
+++ /work/SRC/openSUSE:Factory/.python-python-cjson.new.2738/python-python-cjson.changes 2020-05-01 11:12:52.331784683 +0200
@@ -1,0 +2,5 @@
+Thu Apr 30 07:26:40 UTC 2020 - Tomáš Chvátal <tchvatal(a)suse.com>
+
+- Fix build without python2
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-cjson.spec ++++++
--- /var/tmp/diff_new_pack.Kh1yjM/_old 2020-05-01 11:12:53.799787875 +0200
+++ /var/tmp/diff_new_pack.Kh1yjM/_new 2020-05-01 11:12:53.799787875 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-python-cjson
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,14 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%bcond_without python2
Name: python-python-cjson
Version: 1.2.1
Release: 0
Summary: C-accelerated JSON encoder/decoder for Python
License: LGPL-2.0-or-later
Group: Development/Languages/Python
-Url: https://github.com/AGProjects/python-cjson
+URL: https://github.com/AGProjects/python-cjson
Source: https://files.pythonhosted.org/packages/source/p/python-cjson/python-cjson-…
# https://github.com/AGProjects/python-cjson/issues/6
Patch0: py3.patch
@@ -46,8 +47,10 @@
%prep
%setup -q -n python-cjson-%{version}
+%if %{with python2}
cp cjson.c cjson%{python2_bin_suffix}.c
cp jsontest.py jsontest%{python2_bin_suffix}.py
+%endif
%patch0 -p1
cp cjson.c cjson%{python3_bin_suffix}.c
@@ -59,9 +62,11 @@
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
+%if %{with python2}
rm cjson.c
ln -s cjson%{python2_bin_suffix}.c cjson.c
%python2_build
+%endif
rm cjson.c
ln -s cjson%{python3_bin_suffix}.c cjson.c
%python3_build
1
0
Hello community,
here is the log from the commit of package opam for openSUSE:Factory checked in at 2020-05-01 11:12:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opam (Old)
and /work/SRC/openSUSE:Factory/.opam.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opam"
Fri May 1 11:12:36 2020 rev:7 rq:799124 version:2.0.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/opam/opam.changes 2020-03-09 15:23:01.108188001 +0100
+++ /work/SRC/openSUSE:Factory/.opam.new.2738/opam.changes 2020-05-01 11:12:43.471765415 +0200
@@ -1,0 +2,6 @@
+Sun Apr 12 12:12:12 UTC 2020 - ohering(a)suse.de
+
+- Update to 2.0.7, via _service file
+ See included CHANGES for details
+
+-------------------------------------------------------------------
Old:
----
opam-2.0.6.tar.xz
New:
----
opam-2.0.7.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opam.spec ++++++
--- /var/tmp/diff_new_pack.yQ3Dqm/_old 2020-05-01 11:12:45.139769042 +0200
+++ /var/tmp/diff_new_pack.yQ3Dqm/_new 2020-05-01 11:12:45.143769051 +0200
@@ -17,7 +17,7 @@
Name: opam
-Version: 2.0.6
+Version: 2.0.7
Release: 0
Summary: Source-based package manager for OCaml
License: LGPL-2.1-only WITH OCaml-LGPL-linking-exception
++++++ _service ++++++
--- /var/tmp/diff_new_pack.yQ3Dqm/_old 2020-05-01 11:12:45.175769120 +0200
+++ /var/tmp/diff_new_pack.yQ3Dqm/_new 2020-05-01 11:12:45.175769120 +0200
@@ -1,11 +1,13 @@
<services>
<service mode="disabled" name="tar_scm">
- <!-- 2.0.6 -->
- <param name="revision">4ec3c603db4653c974753651c0cfc143388bfcb1</param>
+ <param name="filename">opam</param>
+ <param name="revision">4c1704d6a1a879625a132fbe4f1bb207965700b0</param>
<param name="scm">git</param>
<param name="submodules">disable</param>
<param name="url">https://github.com/ocaml/opam.git</param>
<param name="versionformat">@PARENT_TAG@</param>
+ <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param>
+ <param name="versionrewrite-replacement">\1</param>
</service>
<service mode="disabled" name="recompress">
<param name="compression">xz</param>
++++++ opam-2.0.6.tar.xz -> opam-2.0.7.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/CHANGES new/opam-2.0.7/CHANGES
--- old/opam-2.0.6/CHANGES 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/CHANGES 2020-04-20 21:59:26.000000000 +0200
@@ -3,6 +3,13 @@
are not marked).
+2.0.7:
+* Properly escape Windows paths on manpages [#4129 @AltGr @rjbou]
+* Fix opam installer opam file [#4058 @rjbou]
+* Fix various warnings [#4132 @rjbou @AltGr - fix 4100]
+* Fix dune 2.5.0 promote-install-files duplication [#4132 @rjbou ]
+* opam exec: display command not found message [#4133 @rjbou - fix #4131]
+
2.0.6:
* Don't remove git cache objects that may be used [#3831 @AltGr]
* Don't include .gitattributes in index.tar.gz [#3873 @dra27]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/Makefile new/opam-2.0.7/Makefile
--- old/opam-2.0.6/Makefile 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/Makefile 2020-04-20 21:59:26.000000000 +0200
@@ -21,7 +21,7 @@
ALWAYS:
@
-DUNE_PROMOTE_ARG := $(shell dune build --help=plain 2>/dev/null | sed -ne 's/.*\(--promote-install-files\).*/ \1/p')
+DUNE_PROMOTE_ARG := $(shell dune build --help=plain 2>/dev/null | sed -ne 's/^[[:space:]]*\(--promote-install-files\)[[:space:]]*$$/ \1/p')
DUNE_DEP = $(DUNE_EXE)
JBUILDER_ARGS ?=
DUNE_ARGS ?= $(JBUILDER_ARGS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/configure new/opam-2.0.7/configure
--- old/opam-2.0.6/configure 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/configure 2020-04-20 21:59:26.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opam 2.0.6.
+# Generated by GNU Autoconf 2.69 for opam 2.0.7.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -578,8 +578,8 @@
# Identity of this package.
PACKAGE_NAME='opam'
PACKAGE_TARNAME='opam'
-PACKAGE_VERSION='2.0.6'
-PACKAGE_STRING='opam 2.0.6'
+PACKAGE_VERSION='2.0.7'
+PACKAGE_STRING='opam 2.0.7'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1265,7 +1265,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures opam 2.0.6 to adapt to many kinds of systems.
+\`configure' configures opam 2.0.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1327,7 +1327,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of opam 2.0.6:";;
+ short | recursive ) echo "Configuration of opam 2.0.7:";;
esac
cat <<\_ACEOF
@@ -1431,7 +1431,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-opam configure 2.0.6
+opam configure 2.0.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1526,7 +1526,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by opam $as_me 2.0.6, which was
+It was created by opam $as_me 2.0.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3973,13 +3973,11 @@
fi
-if test "x${CI}" != "x"; then :
-
- CONF_OCAMLFLAGS="-warn-error A-3"
+CONF_OCAMLFLAGS="-w -67"
-else
+if test "x${CI}" != "x"; then :
- CONF_OCAMLFLAGS=
+ CONF_OCAMLFLAGS="${CONF_OCAMLFLAGS} -w -67"
fi
if test "x${CI}" != "x" -o "x${enable_developer_mode}" = "xyes"; then :
@@ -6085,7 +6083,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by opam $as_me 2.0.6, which was
+This file was extended by opam $as_me 2.0.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6138,7 +6136,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-opam config.status 2.0.6
+opam config.status 2.0.7
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/configure.ac new/opam-2.0.7/configure.ac
--- old/opam-2.0.6/configure.ac 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/configure.ac 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
dnl The line below must be formatted AC_INIT(opam,VERSION) with no extra spaces
-AC_INIT(opam,2.0.6)
+AC_INIT(opam,2.0.7)
AC_COPYRIGHT(Copyright 2012-2017 OcamlPro SAS)
AC_CONFIG_MACRO_DIR([m4])
@@ -131,11 +131,11 @@
AS_IF([test "x${with_mccs}" = "xno"], [AC_SUBST(MCCS_ENABLED,false)], [AC_SUBST(MCCS_ENABLED,true)])
+CONF_OCAMLFLAGS="-w -67"
+
AS_IF([test "x${CI}" != "x"], [
- CONF_OCAMLFLAGS="-warn-error A-3"
-],[
- CONF_OCAMLFLAGS=
-])
+ CONF_OCAMLFLAGS="${CONF_OCAMLFLAGS} -w -67"
+],[])
AS_IF([test "x${CI}" != "x" -o "x${enable_developer_mode}" = "xyes"],[
AS_IF([test "x${CCOMP_TYPE}" = "xmsvc"],[
CONF_CFLAGS="\"/WX\""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-client.opam new/opam-2.0.7/opam-client.opam
--- old/opam-2.0.6/opam-client.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-client.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -21,8 +21,8 @@
[make "%{name}%.install"]
]
depends: [
- "opam-state" {= "2.0.6"}
- "opam-solver" {= "2.0.6"}
+ "opam-state" {= "2.0.7"}
+ "opam-solver" {= "2.0.7"}
"re" {>= "1.7.2"}
"cmdliner" {>= "0.9.8"}
"dune" {build & >= "1.2.1"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-core.opam new/opam-2.0.7/opam-core.opam
--- old/opam-2.0.6/opam-core.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-core.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-devel.opam new/opam-2.0.7/opam-devel.opam
--- old/opam-2.0.6/opam-devel.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-devel.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -22,7 +22,7 @@
]
build-test: [make "tests"]
depends: [
- "opam-client" {= "2.0.6"}
+ "opam-client" {= "2.0.7"}
"cmdliner" {>= "0.9.8"}
"dune" {build & >= "1.2.1"}
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-format.opam new/opam-2.0.7/opam-format.opam
--- old/opam-2.0.6/opam-format.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-format.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -21,7 +21,7 @@
[make "%{name}%.install"]
]
depends: [
- "opam-core" {= "2.0.6"}
+ "opam-core" {= "2.0.7"}
"opam-file-format" {>= "2.0.0~rc2"}
"dune" {build & >= "1.2.1"}
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-installer.opam new/opam-2.0.7/opam-installer.opam
--- old/opam-2.0.6/opam-installer.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-installer.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -18,10 +18,10 @@
dev-repo: "https://github.com/ocaml/opam.git"
build: [
["./configure" "--disable-checks" "--prefix" prefix]
- [make "DUNE_ARGS=-p %{name}%" "%{name}%.install"]
+ [make "%{name}%.install"]
]
depends: [
- "opam-format" {= "2.0.6"}
+ "opam-format" {= "2.0.7"}
"cmdliner" {>= "0.9.8"}
"dune" {build & >= "1.2.1"}
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-repository.opam new/opam-2.0.7/opam-repository.opam
--- old/opam-2.0.6/opam-repository.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-repository.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -21,7 +21,7 @@
[make "%{name}%.install"]
]
depends: [
- "opam-format" {= "2.0.6"}
+ "opam-format" {= "2.0.7"}
"dune" {build & >= "1.2.1"}
]
available: ocaml-version >= "4.02.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-solver.opam new/opam-2.0.7/opam-solver.opam
--- old/opam-2.0.6/opam-solver.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-solver.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -21,7 +21,7 @@
[make "%{name}%.install"]
]
depends: [
- "opam-format" {= "2.0.6"}
+ "opam-format" {= "2.0.7"}
"mccs" {>= "1.1+9"}
"dose3" {>= "5"}
"cudf" {>= "0.7"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/opam-state.opam new/opam-2.0.7/opam-state.opam
--- old/opam-2.0.6/opam-state.opam 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/opam-state.opam 2020-04-20 21:59:26.000000000 +0200
@@ -1,5 +1,5 @@
opam-version: "1.2"
-version: "2.0.6"
+version: "2.0.7"
maintainer: "opam-devel(a)lists.ocaml.org"
authors: [
"Vincent Bernardoff <vb(a)luminar.eu.org>"
@@ -21,7 +21,7 @@
[make "%{name}%.install"]
]
depends: [
- "opam-repository" {= "2.0.6"}
+ "opam-repository" {= "2.0.7"}
"dune" {build & >= "1.2.1"}
]
available: ocaml-version >= "4.02.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/shell/bundle.sh new/opam-2.0.7/shell/bundle.sh
--- old/opam-2.0.6/shell/bundle.sh 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/shell/bundle.sh 2020-04-20 21:59:26.000000000 +0200
@@ -2,7 +2,7 @@
set -ue
OCAMLV=4.04.1
-OPAMV=2.0.6
+OPAMV=2.0.7
OPAM_REPO=https://opam.ocaml.org/2.0
DEBUG=
MAKESELF=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/client/opamAdminCommand.ml new/opam-2.0.7/src/client/opamAdminCommand.ml
--- old/opam-2.0.6/src/client/opamAdminCommand.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/client/opamAdminCommand.ml 2020-04-20 21:59:26.000000000 +0200
@@ -19,12 +19,14 @@
let admin_command_man = [
`S "DESCRIPTION";
- `P "This command can perform various actions on repositories in the opam \
- format. It is expected to be run from the root of a repository, i.e. a \
- directory containing a 'repo' file and a subdirectory 'packages/' \
- holding package definition within subdirectories. A 'compilers/' \
- subdirectory (opam repository format version < 2) will also be used by \
- the $(b,upgrade-format) subcommand."
+ `P (Printf.sprintf
+ "This command can perform various actions on repositories in the opam \
+ format. It is expected to be run from the root of a repository, i.e. a \
+ directory containing a 'repo' file and a subdirectory 'packages%s' \
+ holding package definition within subdirectories. A 'compilers%s' \
+ subdirectory (opam repository format version < 2) will also be used by \
+ the $(b,upgrade-format) subcommand."
+ OpamArg.dir_sep OpamArg.dir_sep)
]
let index_command_doc =
@@ -189,8 +191,10 @@
let link_arg =
Arg.(value & opt (some OpamArg.dirname) None &
info ["link"] ~docv:"DIR" ~doc:
- "Create reverse symbolic links to the archives within $(i,DIR), in \
- the form $(b,DIR/PKG.VERSION/FILENAME).")
+ (Printf.sprintf
+ "Create reverse symbolic links to the archives within $(i,DIR), in \
+ the form $(b,DIR%sPKG.VERSION%sFILENAME)."
+ OpamArg.dir_sep OpamArg.dir_sep))
in
let jobs_arg =
Arg.(value & opt OpamArg.positive_integer 8 &
@@ -264,7 +268,7 @@
"This command scans through package definitions, and add hashes as \
requested (fetching the archives if required). A cache is generated \
in %s for subsequent runs."
- (OpamFilename.Dir.to_string cache_dir |> Cmdliner.Manpage.escape));
+ (OpamArg.escape_path (OpamFilename.Dir.to_string cache_dir)));
]
in
let hash_kinds = [`MD5; `SHA256; `SHA512] in
@@ -456,18 +460,21 @@
let doc = upgrade_command_doc in
let man = [
`S "DESCRIPTION";
- `P "This command reads repositories from earlier opam versions, and \
- converts them to repositories suitable for the current opam version. \
- Packages might be created or renamed, and any compilers defined in the \
- old format ('compilers/' directory) will be turned into packages, \
- using a pre-defined hierarchy that assumes OCaml compilers."
+ `P (Printf.sprintf
+ "This command reads repositories from earlier opam versions, and \
+ converts them to repositories suitable for the current opam version. \
+ Packages might be created or renamed, and any compilers defined in the \
+ old format ('compilers%s' directory) will be turned into packages, \
+ using a pre-defined hierarchy that assumes OCaml compilers."
+ OpamArg.dir_sep)
]
in
let clear_cache_arg =
let doc =
- "Instead of running the upgrade, clear the cache of archive hashes (held \
- in ~/.cache), that is used to avoid re-downloading files to obtain \
- their hashes at every run."
+ Printf.sprintf
+ "Instead of running the upgrade, clear the cache of archive hashes (held \
+ in ~%s.cache), that is used to avoid re-downloading files to obtain \
+ their hashes at every run." OpamArg.dir_sep
in
Arg.(value & flag & info ["clear-cache"] ~doc)
in
@@ -680,14 +687,17 @@
Arg.string
let env_arg =
- Arg.(value & opt (list string) [] & info ["environment"] ~doc:
- "Use the given opam environment, in the form of a list \
- comma-separated 'var=value' bindings, when resolving variables. \
- This is used e.g. when computing available packages: if undefined, \
- availability of packages is not taken into account. Note that, \
- unless overridden, variables like 'root' or 'opam-version' may be \
- taken from the current opam installation. What is defined in \
- $(i,~/.opam/config) is always ignored.")
+ Arg.(value & opt (list string) [] & info ["environment"] ~doc:(
+ Printf.sprintf
+ "Use the given opam environment, in the form of a list of \
+ comma-separated 'var=value' bindings, when resolving variables. This \
+ is used e.g. when computing available packages: if undefined, \
+ availability of packages will be assumed as soon as it can not be \
+ resolved purely from globally defined variables. Note that, unless \
+ overridden, variables like 'root' or 'opam-version' may be taken \
+ from the current opam installation. What is defined in \
+ $(i,~%s.opam%sconfig) is always ignored."
+ OpamArg.dir_sep OpamArg.dir_sep))
let state_selection_arg =
let docs = OpamArg.package_selection_section in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/client/opamArg.ml new/opam-2.0.7/src/client/opamArg.ml
--- old/opam-2.0.6/src/client/opamArg.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/client/opamArg.ml 2020-04-20 21:59:26.000000000 +0200
@@ -391,6 +391,18 @@
]
(* Converters *)
+
+(* Windows directory separator need to be escaped for manpage *)
+let dir_sep, escape_path =
+ match Filename.dir_sep with
+ | "\\" ->
+ let esc = "\\\\" in
+ esc,
+ fun p ->
+ OpamStd.List.concat_map esc (fun x -> x)
+ (OpamStd.String.split_delim p '\\')
+ | ds -> ds, fun x -> x
+
let pr_str = Format.pp_print_string
let repository_name =
@@ -423,7 +435,7 @@
let dirname =
let parse str = `Ok (OpamFilename.Dir.of_string str) in
- let print ppf dir = pr_str ppf (OpamFilename.prettify_dir dir) in
+ let print ppf dir = pr_str ppf (escape_path (OpamFilename.prettify_dir dir)) in
parse, print
let existing_filename_dirname_or_dash =
@@ -829,8 +841,11 @@
let dot_profile_flag =
mk_opt ["dot-profile"]
- "FILENAME" "Name of the configuration file to update instead of \
- $(i,~/.profile) or $(i,~/.zshrc) based on shell detection."
+ "FILENAME"
+ (Printf.sprintf
+ "Name of the configuration file to update instead of \
+ $(i,~%s.profile) or $(i,~%s.zshrc) based on shell detection."
+ dir_sep dir_sep)
(Arg.some filename) None
let repo_kind_flag =
@@ -869,16 +884,18 @@
let atom_or_local_list =
arg_list "PACKAGES"
- "List of package names, with an optional version or constraint, e.g `pkg', \
- `pkg.1.0' or `pkg>=0.5' ; or files or directory names containing package \
- description, with explicit directory (e.g. `./foo.opam' or `.')"
+ (Printf.sprintf
+ "List of package names, with an optional version or constraint, e.g `pkg', \
+ `pkg.1.0' or `pkg>=0.5' ; or files or directory names containing package \
+ description, with explicit directory (e.g. `.%sfoo.opam' or `.')" dir_sep)
atom_or_local
let atom_or_dir_list =
arg_list "PACKAGES"
- "List of package names, with an optional version or constraint, e.g `pkg', \
- `pkg.1.0' or `pkg>=0.5' ; or directory names containing package \
- description, with explicit directory (e.g. `./srcdir' or `.')"
+ (Printf.sprintf
+ "List of package names, with an optional version or constraint, e.g `pkg', \
+ `pkg.1.0' or `pkg>=0.5' ; or directory names containing package \
+ description, with explicit directory (e.g. `.%ssrcdir' or `.')" dir_sep)
atom_or_dir
let nonempty_atom_list =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/client/opamArg.mli new/opam-2.0.7/src/client/opamArg.mli
--- old/opam-2.0.6/src/client/opamArg.mli 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/client/opamArg.mli 2020-04-20 21:59:26.000000000 +0200
@@ -27,6 +27,13 @@
string list -> string -> string ->
'a Arg.converter -> 'a list Term.t
+(* Escaped Windows directory separator. To use instead of [Filename.dir_sep] for
+ manpage strings *)
+val dir_sep: string
+
+(* Escape Windows path *)
+val escape_path: string -> string
+
(** {2 Flags} *)
(** --short *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/client/opamCommands.ml new/opam-2.0.7/src/client/opamCommands.ml
--- old/opam-2.0.6/src/client/opamCommands.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/client/opamCommands.ml 2020-04-20 21:59:26.000000000 +0200
@@ -75,8 +75,10 @@
let global_options =
let no_self_upgrade =
mk_flag ~section:global_option_section ["no-self-upgrade"]
- "Opam will replace itself with a newer binary found \
- at $(b,OPAMROOT/opam) if present. This disables this behaviour." in
+ (Printf.sprintf
+ "Opam will replace itself with a newer binary found \
+ at $(b,OPAMROOT%sopam) if present. This disables this behaviour."
+ OpamArg.dir_sep) in
let self_upgrade no_self_upgrade options =
let self_upgrade_status =
if OpamStd.Config.env_string "NOSELFUPGRADE" =
@@ -169,25 +171,31 @@
let man = [
`S "DESCRIPTION";
`P "Initialise the opam state, or update opam init options";
- `P "The $(b,init) command initialises a local \"opam root\" (by default, \
- $(i,~/.opam/)) that holds opam's data and packages. This is a \
- necessary step for normal operation of opam. The initial software \
- repositories are fetched, and an initial 'switch' can also be \
- installed, according to the configuration and options. These can be \
- afterwards configured using $(b,opam switch) and $(b,opam \
- repository).";
- `P "The initial repository and defaults can be set through a \
- configuration file found at $(i,~/.opamrc) or $(i,/etc/opamrc).";
+ `P (Printf.sprintf
+ "The $(b,init) command initialises a local \"opam root\" (by default, \
+ $(i,~%s.opam%s)) that holds opam's data and packages. This is a \
+ necessary step for normal operation of opam. The initial software \
+ repositories are fetched, and an initial 'switch' can also be \
+ installed, according to the configuration and options. These can be \
+ afterwards configured using $(b,opam switch) and $(b,opam \
+ repository)."
+ OpamArg.dir_sep OpamArg.dir_sep);
+ `P (Printf.sprintf
+ "The initial repository and defaults can be set through a \
+ configuration file found at $(i,~%s.opamrc) or $(i,/etc/opamrc)."
+ OpamArg.dir_sep);
`P "Additionally, this command allows one to customise some aspects of opam's \
shell integration, when run initially (avoiding the interactive \
dialog), but also at any later time.";
`S "ARGUMENTS";
`S "OPTIONS";
`S "CONFIGURATION FILE";
- `P "Any field from the built-in initial configuration can be overridden \
- through $(i,~/.opamrc), $(i,/etc/opamrc), or a file supplied with \
- $(i,--config). The default configuration for this version of opam \
- can be obtained using $(b,--show-default-opamrc).";
+ `P (Printf.sprintf
+ "Any field from the built-in initial configuration can be overridden \
+ through $(i,~%s.opamrc), $(i,/etc/opamrc), or a file supplied with \
+ $(i,--config). The default configuration for this version of opam \
+ can be obtained using $(b,--show-default-opamrc)."
+ OpamArg.dir_sep);
`S OpamArg.build_option_section;
] in
let compiler =
@@ -265,8 +273,9 @@
in
let no_config_file =
mk_flag ["no-opamrc"]
- "Don't read `/etc/opamrc' or `~/.opamrc': use the default settings and \
- the files specified through $(b,--config) only"
+ (Printf.sprintf
+ "Don't read `/etc/opamrc' or `~%s.opamrc': use the default settings and \
+ the files specified through $(b,--config) only" OpamArg.dir_sep)
in
let reinit =
mk_flag ["reinit"]
@@ -1941,16 +1950,17 @@
switch set) to set the currently active switch. Without argument, \
lists installed switches, with one switch argument, defaults to \
$(b,set).";
- `P ("Switch handles $(i,SWITCH) can be either a plain name, for switches \
- that will be held inside $(i,~/.opam), or a directory name, which in \
- that case is the directory where the switch prefix will be installed, as "
- ^ OpamSwitch.external_dirname ^
- ". Opam will automatically select a switch by that name found in the \
+ `P (Printf.sprintf
+ "Switch handles $(i,SWITCH) can be either a plain name, for switches \
+ that will be held inside $(i,~%s.opam), or a directory name, which in \
+ that case is the directory where the switch prefix will be installed, as \
+ %s. Opam will automatically select a switch by that name found in the \
current directory or its parents, unless $(i,OPAMSWITCH) is set or \
$(b,--switch) is specified. When creating a directory switch, if \
package definitions are found locally, the user is automatically \
prompted to install them after the switch is created unless \
- $(b,--no-install) is specified.");
+ $(b,--no-install) is specified."
+ OpamArg.dir_sep OpamSwitch.external_dirname);
`P "$(b,opam switch set) sets the default switch globally, but it is also \
possible to select a switch in a given shell session, using the \
environment. For that, use $(i,eval \\$(opam env \
@@ -2887,8 +2897,10 @@
in
let download_cache =
mk_flag ["c"; "download-cache"]
- "Clear the cache of downloaded files (\\$OPAMROOT/download-cache), as \
- well as the obsolete \\$OPAMROOT/archives, if that exists."
+ (Printf.sprintf
+ "Clear the cache of downloaded files (\\$OPAMROOT%sdownload-cache), as \
+ well as the obsolete \\$OPAMROOT%sarchives, if that exists."
+ OpamArg.dir_sep OpamArg.dir_sep)
in
let repos =
mk_flag ["unused-repositories"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/client/opamConfigCommand.ml new/opam-2.0.7/src/client/opamConfigCommand.ml
--- old/opam-2.0.6/src/client/opamConfigCommand.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/client/opamConfigCommand.ml 2020-04-20 21:59:26.000000000 +0200
@@ -392,4 +392,6 @@
in
match OpamSystem.resolve_command ~env cmd with
| Some cmd -> raise (OpamStd.Sys.Exec (cmd, args, env))
- | None -> raise (OpamStd.Sys.Exit 127)
+ | None ->
+ OpamConsole.error "Command not found '%s'" cmd;
+ raise (OpamStd.Sys.Exit 127)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamCompat.ml new/opam-2.0.7/src/core/opamCompat.ml
--- old/opam-2.0.6/src/core/opamCompat.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamCompat.ml 2020-04-20 21:59:26.000000000 +0200
@@ -109,3 +109,7 @@
""
end
#endif
+
+#if OCAML_VERSION < (4, 7, 0)
+module Stdlib = Pervasives
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamCompat.mli new/opam-2.0.7/src/core/opamCompat.mli
--- old/opam-2.0.6/src/core/opamCompat.mli 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamCompat.mli 2020-04-20 21:59:26.000000000 +0200
@@ -89,3 +89,7 @@
val extension : string -> string
end
#endif
+
+#if OCAML_VERSION < (4, 7, 0)
+module Stdlib = Pervasives
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamFilename.ml new/opam-2.0.7/src/core/opamFilename.ml
--- old/opam-2.0.6/src/core/opamFilename.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamFilename.ml 2020-04-20 21:59:26.000000000 +0200
@@ -374,6 +374,7 @@
let with_flock flag ?dontblock file f =
let lock = OpamSystem.flock flag ?dontblock (to_string file) in
try
+ let open OpamCompat in
let (fd, ch) =
match OpamSystem.get_lock_fd lock with
| exception Not_found ->
@@ -383,14 +384,14 @@
else
"/dev/null"
in
- let ch = Pervasives.open_out null in
+ let ch = Stdlib.open_out null in
Unix.descr_of_out_channel ch, Some ch
| fd ->
fd, None
in
let r = f fd in
OpamSystem.funlock lock;
- OpamStd.Option.iter Pervasives.close_out ch;
+ OpamStd.Option.iter Stdlib.close_out ch;
r
with e ->
OpamStd.Exn.finalise e @@ fun () ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamProcess.ml new/opam-2.0.7/src/core/opamProcess.ml
--- old/opam-2.0.6/src/core/opamProcess.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamProcess.ml 2020-04-20 21:59:26.000000000 +0200
@@ -379,10 +379,11 @@
if isset_verbose_f () then
stop_verbose_f ()
else if p.p_verbose then
- (verbose_print_cmd p;
+ (let open OpamCompat in
+ verbose_print_cmd p;
List.iter verbose_print_out stdout;
List.iter verbose_print_out stderr;
- flush Pervasives.stdout);
+ flush Stdlib.stdout);
let info =
make_info ?code ?signal
~cmd:p.p_name ~args:p.p_args ~cwd:p.p_cwd ~metadata:p.p_metadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamStd.ml new/opam-2.0.7/src/core/opamStd.ml
--- old/opam-2.0.6/src/core/opamStd.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamStd.ml 2020-04-20 21:59:26.000000000 +0200
@@ -838,7 +838,7 @@
let registered_at_exit = ref []
let at_exit f =
- Pervasives.at_exit f;
+ Stdlib.at_exit f;
registered_at_exit := f :: !registered_at_exit
let exec_at_exit () =
List.iter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamStd.mli new/opam-2.0.7/src/core/opamStd.mli
--- old/opam-2.0.6/src/core/opamStd.mli 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamStd.mli 2020-04-20 21:59:26.000000000 +0200
@@ -409,7 +409,7 @@
(** {3 Exit handling} *)
- (** Like Pervasives.at_exit but with the possibility to call manually
+ (** Like Stdlib.at_exit but with the possibility to call manually
(eg. before exec()) *)
val at_exit: (unit -> unit) -> unit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/core/opamVersionCompare.mli new/opam-2.0.7/src/core/opamVersionCompare.mli
--- old/opam-2.0.6/src/core/opamVersionCompare.mli 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/core/opamVersionCompare.mli 2020-04-20 21:59:26.000000000 +0200
@@ -36,5 +36,5 @@
(** [compare x y] returns 0 if x is eqivalent to y, -1 if x is smaller
than y, and 1 if x is greater than y. This is consistent with
- [Pervasives.compare]. *)
+ [Stdlib.compare]. *)
val compare : string -> string -> int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/opam-2.0.6/src/format/opamFormula.ml new/opam-2.0.7/src/format/opamFormula.ml
--- old/opam-2.0.6/src/format/opamFormula.ml 2020-01-15 16:31:02.000000000 +0100
+++ new/opam-2.0.7/src/format/opamFormula.ml 2020-04-20 21:59:26.000000000 +0200
@@ -538,7 +538,6 @@
| _ :: r -> Some (ors (aux2 r))
let formula_of_version_set set subset =
- let module S = OpamPackage.Version.Set in
match
gen_formula
(OpamPackage.Version.Set.elements set)
1
0
Hello community,
here is the log from the commit of package libhtp for openSUSE:Factory checked in at 2020-05-01 11:12:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libhtp (Old)
and /work/SRC/openSUSE:Factory/.libhtp.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libhtp"
Fri May 1 11:12:33 2020 rev:4 rq:799119 version:0.5.33
Changes:
--------
--- /work/SRC/openSUSE:Factory/libhtp/libhtp.changes 2019-12-17 16:55:03.581350693 +0100
+++ /work/SRC/openSUSE:Factory/.libhtp.new.2738/libhtp.changes 2020-05-01 11:12:34.823746607 +0200
@@ -1,0 +2,8 @@
+Wed Apr 29 18:33:00 UTC 2020 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 0.5.33
+ * compression bomb protection
+ * memory handling issue found by Oss-Fuzz
+ * improve handling of anomalies in traffic
+
+-------------------------------------------------------------------
Old:
----
libhtp-0.5.32.tar.gz
New:
----
libhtp-0.5.33.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libhtp.spec ++++++
--- /var/tmp/diff_new_pack.Ih0Qep/_old 2020-05-01 11:12:35.739748600 +0200
+++ /var/tmp/diff_new_pack.Ih0Qep/_new 2020-05-01 11:12:35.739748600 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libhtp
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# 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 sover 2
%define lname %{name}%{sover}
Name: libhtp
-Version: 0.5.32
+Version: 0.5.33
Release: 0
Summary: HTTP normalizer and parser
License: BSD-3-Clause
++++++ libhtp-0.5.32.tar.gz -> libhtp-0.5.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/ChangeLog new/libhtp-0.5.33/ChangeLog
--- old/libhtp-0.5.32/ChangeLog 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/ChangeLog 2020-04-27 15:30:04.000000000 +0200
@@ -1,3 +1,12 @@
+0.5.33 (27 April 2020)
+----------------------
+
+- compression bomb protection
+
+- memory handling issue found by Oss-Fuzz
+
+- improve handling of anomalies in traffic
+
0.5.32 (13 December 2019)
--------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/VERSION new/libhtp-0.5.33/VERSION
--- old/libhtp-0.5.32/VERSION 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/VERSION 2020-04-27 15:30:04.000000000 +0200
@@ -1,2 +1,2 @@
# This file is intended to be sourced by sh
-PKG_VERSION=0.5.32
+PKG_VERSION=0.5.33
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/configure.ac new/libhtp-0.5.33/configure.ac
--- old/libhtp-0.5.32/configure.ac 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/configure.ac 2020-04-27 15:30:04.000000000 +0200
@@ -155,6 +155,24 @@
sinclude(m4/lib-prefix.m4)
AM_ICONV
+# iconvctl is not standard, it is defined only in GNU libiconv
+AC_MSG_CHECKING(for iconvctl)
+TMPLIBS="${LIBS}"
+LIBS="${LIBS} ${LIBICONV}"
+
+AC_TRY_LINK([#include <stdlib.h>
+ #include <iconv.h>],
+ [int iconv_param = 0;
+ iconv_t cd = iconv_open("","");
+ iconvctl(cd, ICONV_SET_DISCARD_ILSEQ, &iconv_param);
+ iconv_close(cd);],
+ [ac_cv_func_iconvctl=yes])
+AC_MSG_RESULT($ac_cv_func_iconvctl)
+if test "$ac_cv_func_iconvctl" == yes; then
+ AC_DEFINE(HAVE_ICONVCTL,1,"Define to 1 if you have the `iconvctl' function.")
+fi
+LIBS="${TMPLIBS}"
+
dnl -----------------------------------------------
dnl Check and enable the GCC opts we want to use.
dnl We may need to add more checks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_config.c new/libhtp-0.5.33/htp/htp_config.c
--- old/libhtp-0.5.32/htp/htp_config.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_config.c 2020-04-27 15:30:04.000000000 +0200
@@ -160,6 +160,7 @@
cfg->response_decompression_layer_limit = 2; // 2 layers seem fairly common
cfg->lzma_memlimit = HTP_LZMA_MEMLIMIT;
cfg->compression_bomb_limit = HTP_COMPRESSION_BOMB_LIMIT;
+ cfg->compression_time_limit = HTP_COMPRESSION_TIME_LIMIT_USEC;
// Default settings for URL-encoded data.
@@ -523,6 +524,16 @@
}
}
+void htp_config_set_compression_time_limit(htp_cfg_t *cfg, size_t useclimit) {
+ if (cfg == NULL) return;
+ // max limit is one second
+ if (useclimit >= 1000000) {
+ cfg->compression_time_limit = 1000000;
+ } else {
+ cfg->compression_time_limit = useclimit;
+ }
+}
+
void htp_config_set_log_level(htp_cfg_t *cfg, enum htp_log_level_t log_level) {
if (cfg == NULL) return;
cfg->log_level = log_level;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_config.h new/libhtp-0.5.33/htp/htp_config.h
--- old/libhtp-0.5.32/htp/htp_config.h 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_config.h 2020-04-27 15:30:04.000000000 +0200
@@ -443,6 +443,14 @@
void htp_config_set_compression_bomb_limit(htp_cfg_t *cfg, size_t bomblimit);
/**
+ * Configures the maximum compression bomb time LibHTP will decompress.
+ *
+ * @param[in] cfg
+ * @param[in] useclimit
+ */
+void htp_config_set_compression_time_limit(htp_cfg_t *cfg, size_t useclimit);
+
+/**
* Configures the desired log level.
*
* @param[in] cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_config_private.h new/libhtp-0.5.33/htp/htp_config_private.h
--- old/libhtp-0.5.32/htp/htp_config_private.h 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_config_private.h 2020-04-27 15:30:04.000000000 +0200
@@ -348,6 +348,9 @@
/** max output size for a compression bomb. */
int32_t compression_bomb_limit;
+
+ /** max time for a decompression bomb. */
+ int32_t compression_time_limit;
};
#ifdef __cplusplus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_decompressors.h new/libhtp-0.5.33/htp/htp_decompressors.h
--- old/libhtp-0.5.32/htp/htp_decompressors.h 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_decompressors.h 2020-04-27 15:30:04.000000000 +0200
@@ -59,6 +59,9 @@
htp_status_t (*callback)(htp_tx_data_t *);
void (*destroy)(htp_decompressor_t *);
struct htp_decompressor_t *next;
+ struct timeval time_before;
+ int32_t time_spent;
+ uint32_t nb_callbacks;
};
struct htp_decompressor_gzip_t {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_private.h new/libhtp-0.5.33/htp/htp_private.h
--- old/libhtp-0.5.32/htp/htp_private.h 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_private.h 2020-04-27 15:30:04.000000000 +0200
@@ -83,6 +83,10 @@
//deflate max ratio is about 1000
#define HTP_COMPRESSION_BOMB_RATIO 2048
#define HTP_COMPRESSION_BOMB_LIMIT 1048576
+// 0.1 second
+#define HTP_COMPRESSION_TIME_LIMIT_USEC 100000
+// test time for compression every 256 callbacks
+#define HTP_COMPRESSION_TIME_FREQ_TEST 256
#define HTP_FIELD_LIMIT_HARD 18000
#define HTP_FIELD_LIMIT_SOFT 9000
@@ -157,7 +161,7 @@
int htp_connp_is_line_folded(unsigned char *data, size_t len);
int htp_is_folding_char(int c);
-int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len);
+int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len, int next_no_lf);
int htp_connp_is_line_ignorable(htp_connp_t *connp, unsigned char *data, size_t len);
int htp_parse_uri(bstr *input, htp_uri_t **uri);
@@ -167,8 +171,6 @@
int htp_parse_uri_hostport(htp_connp_t *connp, bstr *input, htp_uri_t *uri);
int htp_normalize_parsed_uri(htp_tx_t *tx, htp_uri_t *parsed_uri_incomplete, htp_uri_t *parsed_uri);
bstr *htp_normalize_hostname_inplace(bstr *input);
-void htp_replace_hostname(htp_connp_t *connp, htp_uri_t *parsed_uri, bstr *hostname);
-int htp_is_uri_unreserved(unsigned char c);
int htp_decode_path_inplace(htp_tx_t *tx, bstr *path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_request.c new/libhtp-0.5.33/htp/htp_request.c
--- old/libhtp-0.5.32/htp/htp_request.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_request.c 2020-04-27 15:30:04.000000000 +0200
@@ -647,7 +647,7 @@
#endif
// Should we terminate headers?
- if (htp_connp_is_line_terminator(connp, data, len)) {
+ if (htp_connp_is_line_terminator(connp, data, len, 0)) {
// Parse previous header, if any.
if (connp->in_header != NULL) {
if (connp->cfg->process_request_header(connp, bstr_ptr(connp->in_header),
@@ -816,6 +816,10 @@
htp_status_t htp_connp_REQ_LINE(htp_connp_t *connp) {
for (;;) {
// Get one byte
+ IN_PEEK_NEXT(connp);
+ if (connp->in_status == HTP_STREAM_CLOSED && connp->in_next_byte == -1) {
+ return htp_connp_REQ_LINE_complete(connp);
+ }
IN_COPY_BYTE_OR_RETURN(connp);
// Have we reached the end of the line?
@@ -869,7 +873,12 @@
while ((pos < len) && (!htp_is_space(data[pos])))
pos++;
- if (pos > mstart) {
+ if (pos <= mstart) {
+ //empty whitespace line
+ htp_status_t rc = htp_tx_req_process_body_data_ex(connp->in_tx, data, len);
+ htp_connp_req_clear_buffer(connp);
+ return rc;
+ } else {
int methodi = HTP_M_UNKNOWN;
bstr *method = bstr_dup_mem(data + mstart, pos - mstart);
if (method) {
@@ -882,9 +891,8 @@
htp_status_t rc = htp_tx_req_process_body_data_ex(connp->in_tx, data, len);
htp_connp_req_clear_buffer(connp);
return rc;
- }
+ } // else continue
}
- //else
//unread last end of line so that REQ_LINE works
if (connp->in_current_read_offset < (int64_t)len) {
connp->in_current_read_offset=0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_response.c new/libhtp-0.5.33/htp/htp_response.c
--- old/libhtp-0.5.32/htp/htp_response.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_response.c 2020-04-27 15:30:04.000000000 +0200
@@ -826,8 +826,13 @@
fprint_raw_data(stderr, __func__, data, len);
#endif
+ int next_no_lf = 0;
+ if (connp->out_current_read_offset < connp->out_current_len &&
+ connp->out_current_data[connp->out_current_read_offset] != LF) {
+ next_no_lf = 1;
+ }
// Should we terminate headers?
- if (htp_connp_is_line_terminator(connp, data, len)) {
+ if (htp_connp_is_line_terminator(connp, data, len, next_no_lf)) {
// Parse previous header, if any.
if (connp->out_header != NULL) {
if (connp->cfg->process_response_header(connp, bstr_ptr(connp->out_header),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_transaction.c new/libhtp-0.5.33/htp/htp_transaction.c
--- old/libhtp-0.5.32/htp/htp_transaction.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_transaction.c 2020-04-27 15:30:04.000000000 +0200
@@ -776,6 +776,19 @@
htp_connp_destroy_decompressors(tx->connp);
}
+static htp_status_t htp_timer_track(int32_t *time_spent, struct timeval * after, struct timeval *before) {
+ if (after->tv_sec < before->tv_sec) {
+ return HTP_ERROR;
+ } else if (after->tv_sec == before->tv_sec) {
+ if (after->tv_usec < before->tv_usec) {
+ return HTP_ERROR;
+ }
+ *time_spent += after->tv_usec - before->tv_usec;
+ } else {
+ *time_spent += (after->tv_sec - before->tv_sec) * 1000000 + after->tv_usec - before->tv_usec;
+ }
+ return HTP_OK;
+}
static htp_status_t htp_tx_res_process_body_data_decompressor_callback(htp_tx_data_t *d) {
if (d == NULL) return HTP_ERROR;
@@ -789,6 +802,23 @@
// Invoke all callbacks.
htp_status_t rc = htp_res_run_hook_body_data(d->tx->connp, d);
if (rc != HTP_OK) return HTP_ERROR;
+ d->tx->connp->out_decompressor->nb_callbacks++;
+ if (d->tx->connp->out_decompressor->nb_callbacks % HTP_COMPRESSION_TIME_FREQ_TEST == 0) {
+ struct timeval after;
+ gettimeofday(&after, NULL);
+ // sanity check for race condition if system time changed
+ if ( htp_timer_track(&d->tx->connp->out_decompressor->time_spent, &after, &d->tx->connp->out_decompressor->time_before) == HTP_OK) {
+ // updates last tracked time
+ d->tx->connp->out_decompressor->time_before = after;
+ if (d->tx->connp->out_decompressor->time_spent > d->tx->connp->cfg->compression_time_limit ) {
+ htp_log(d->tx->connp, HTP_LOG_MARK, HTP_LOG_ERROR, 0,
+ "Compression bomb: spent %"PRId64" us decompressing",
+ d->tx->connp->out_decompressor->time_spent);
+ return HTP_ERROR;
+ }
+ }
+
+ }
if (d->tx->response_entity_len > d->tx->connp->cfg->compression_bomb_limit &&
d->tx->response_entity_len > HTP_COMPRESSION_BOMB_RATIO * d->tx->response_message_len) {
htp_log(d->tx->connp, HTP_LOG_MARK, HTP_LOG_ERROR, 0,
@@ -834,8 +864,21 @@
if (tx->connp->out_decompressor == NULL || tx->connp->out_decompressor->decompress == NULL)
return HTP_ERROR;
+ struct timeval after;
+ gettimeofday(&tx->connp->out_decompressor->time_before, NULL);
// Send data buffer to the decompressor.
+ tx->connp->out_decompressor->nb_callbacks=0;
tx->connp->out_decompressor->decompress(tx->connp->out_decompressor, &d);
+ gettimeofday(&after, NULL);
+ // sanity check for race condition if system time changed
+ if ( htp_timer_track(&tx->connp->out_decompressor->time_spent, &after, &tx->connp->out_decompressor->time_before) == HTP_OK) {
+ if ( tx->connp->out_decompressor->time_spent > tx->connp->cfg->compression_time_limit ) {
+ htp_log(tx->connp, HTP_LOG_MARK, HTP_LOG_ERROR, 0,
+ "Compression bomb: spent %"PRId64" us decompressing",
+ tx->connp->out_decompressor->time_spent);
+ return HTP_ERROR;
+ }
+ }
if (data == NULL) {
// Shut down the decompressor, if we used one.
@@ -1350,10 +1393,6 @@
* or a overly long request */
if (tx->request_method == HTP_M_UNKNOWN && tx->request_uri == NULL && tx->connp->in_state == htp_connp_REQ_LINE) {
htp_log(tx->connp, HTP_LOG_MARK, HTP_LOG_WARNING, 0, "Request line incomplete");
-
- if (htp_connp_REQ_LINE_complete(tx->connp) != HTP_OK) {
- return HTP_ERROR;
- }
}
return HTP_OK;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_transcoder.c new/libhtp-0.5.33/htp/htp_transcoder.c
--- old/libhtp-0.5.32/htp/htp_transcoder.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_transcoder.c 2020-04-27 15:30:04.000000000 +0200
@@ -64,7 +64,7 @@
return HTP_ERROR;
}
- #if (_LIBICONV_VERSION >= 0x0108)
+ #if (_LIBICONV_VERSION >= 0x0108 && HAVE_ICONVCTL)
int iconv_param = 0;
iconvctl(cd, ICONV_SET_TRANSLITERATE, &iconv_param);
iconv_param = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libhtp-0.5.32/htp/htp_util.c new/libhtp-0.5.33/htp/htp_util.c
--- old/libhtp-0.5.32/htp/htp_util.c 2019-12-13 10:30:17.000000000 +0100
+++ new/libhtp-0.5.33/htp/htp_util.c 2020-04-27 15:30:04.000000000 +0200
@@ -464,7 +464,7 @@
* @param[in] len
* @return 0 or 1
*/
-int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len) {
+int htp_connp_is_line_terminator(htp_connp_t *connp, unsigned char *data, size_t len, int next_no_lf) {
// Is this the end of request headers?
switch (connp->cfg->server_personality) {
case HTP_SERVER_IIS_5_1:
@@ -481,10 +481,7 @@
}
// Only space is terminator if terminator does not follow right away
if (len == 2 && htp_is_lws(data[0]) && data[1] == LF) {
- if (connp->out_current_read_offset < connp->out_current_len &&
- connp->out_current_data[connp->out_current_read_offset] != LF) {
- return 1;
- }
+ return next_no_lf;
}
break;
}
@@ -501,7 +498,7 @@
* @return 0 or 1
*/
int htp_connp_is_line_ignorable(htp_connp_t *connp, unsigned char *data, size_t len) {
- return htp_connp_is_line_terminator(connp, data, len);
+ return htp_connp_is_line_terminator(connp, data, len, 0);
}
static htp_status_t htp_parse_port(unsigned char *data, size_t len, int *port, int *invalid) {
@@ -1860,136 +1857,6 @@
return hostname;
}
-#if 0
-
-/**
- * Replace the URI in the structure with the one provided as the parameter
- * to this function (which will typically be supplied in a Host header).
- *
- * @param[in] connp
- * @param[in] parsed_uri
- * @param[in] hostname
- */
-void htp_replace_hostname(htp_connp_t *connp, htp_uri_t *parsed_uri, bstr *hostname) {
- if (hostname == NULL) return;
-
- bstr *new_hostname = NULL;
-
- int colon = bstr_chr(hostname, ':');
- if (colon == -1) {
- // Hostname alone (no port information)
- new_hostname = bstr_dup(hostname);
- if (new_hostname == NULL) return;
- htp_normalize_hostname_inplace(new_hostname);
-
- if (parsed_uri->hostname != NULL) bstr_free(parsed_uri->hostname);
- parsed_uri->hostname = new_hostname;
- } else {
- // Hostname and port
- new_hostname = bstr_dup_ex(hostname, 0, colon);
- if (new_hostname == NULL) return;
- // TODO Handle whitespace around hostname
- htp_normalize_hostname_inplace(new_hostname);
-
- if (parsed_uri->hostname != NULL) bstr_free(parsed_uri->hostname);
- parsed_uri->hostname = new_hostname;
- parsed_uri->port_number = 0;
-
- // Port
- int port = htp_parse_positive_integer_whitespace((unsigned char *) bstr_ptr(hostname) + colon + 1,
- bstr_len(hostname) - colon - 1, 10);
- if (port < 0) {
- // Failed to parse port
- htp_log(connp, HTP_LOG_MARK, HTP_LOG_ERROR, 0, "Invalid server port information in request");
- } else if ((port > 0) && (port < 65536)) {
- // Valid port
- if ((connp->conn->server_port != 0) && (port != connp->conn->server_port)) {
- // Port was specified in connection and is different from the TCP port
- htp_log(connp, HTP_LOG_MARK, HTP_LOG_ERROR, 0, "Request server port=%d number differs from the actual TCP port=%d", port, connp->conn->server_port);
- } else {
- parsed_uri->port_number = port;
- }
- }
- }
-}
-
-/**
- * Is URI character reserved?
- *
- * @param[in] c
- * @return 1 if it is, 0 if it isn't
- */
-int htp_is_uri_unreserved(unsigned char c) {
- if (((c >= 0x41) && (c <= 0x5a)) ||
- ((c >= 0x61) && (c <= 0x7a)) ||
- ((c >= 0x30) && (c <= 0x39)) ||
- (c == 0x2d) || (c == 0x2e) ||
- (c == 0x5f) || (c == 0x7e)) {
- return 1;
- } else {
- return 0;
- }
-}
-
-/**
- * Decode a URL-encoded string, leaving the reserved
- * characters and invalid encodings alone.
- *
- * @param[in] s
- */
-void htp_uriencoding_normalize_inplace(bstr *s) {
- if (s == NULL) return;
-
- unsigned char *data = bstr_ptr(s);
- if (data == NULL) return;
- size_t len = bstr_len(s);
-
- size_t rpos = 0;
- size_t wpos = 0;
-
- while (rpos < len) {
- if (data[rpos] == '%') {
- if (rpos + 2 < len) {
- if (isxdigit(data[rpos + 1]) && (isxdigit(data[rpos + 2]))) {
- unsigned char c = x2c(&data[rpos + 1]);
-
- if (htp_is_uri_unreserved(c)) {
- // Leave reserved characters encoded, but convert
- // the hexadecimal digits to uppercase
- data[wpos++] = data[rpos++];
- data[wpos++] = toupper(data[rpos++]);
- data[wpos++] = toupper(data[rpos++]);
- } else {
- // Decode unreserved character
- data[wpos++] = c;
- rpos += 3;
- }
- } else {
- // Invalid URL encoding: invalid hex digits
-
- // Copy over what's there
- data[wpos++] = data[rpos++];
- data[wpos++] = toupper(data[rpos++]);
- data[wpos++] = toupper(data[rpos++]);
- }
- } else {
- // Invalid URL encoding: string too short
-
- // Copy over what's there
- data[wpos++] = data[rpos++];
- while (rpos < len) {
- data[wpos++] = toupper(data[rpos++]);
- }
- }
- } else {
- data[wpos++] = data[rpos++];
- }
- }
-
- bstr_adjust_len(s, wpos);
-}
-#endif
-
/**
* Normalize URL path. This function implements the remove dot segments algorithm
* specified in RFC 3986, section 5.2.4.
@@ -2360,21 +2227,6 @@
if (uri->query != NULL) {
bstr_add_c_noex(r, "?");
bstr_add_noex(r, uri->query);
-
- /*
- bstr *query = bstr_dup(uri->query);
- if (query == NULL) {
- bstr_free(r);
- return NULL;
- }
-
- htp_uriencoding_normalize_inplace(query);
-
- bstr_add_c_noex(r, "?");
- bstr_add_noex(r, query);
-
- bstr_free(query);
- */
}
if (uri->fragment != NULL) {
1
0