Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package procenv for openSUSE:Factory checked in at 2021-06-28 15:33:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/procenv (Old) and /work/SRC/openSUSE:Factory/.procenv.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "procenv" Mon Jun 28 15:33:38 2021 rev:6 rq:902713 version:0.58 Changes: -------- --- /work/SRC/openSUSE:Factory/procenv/procenv.changes 2021-06-21 20:36:12.418663624 +0200 +++ /work/SRC/openSUSE:Factory/.procenv.new.2625/procenv.changes 2021-06-28 15:34:01.887215562 +0200 @@ -1,0 +2,8 @@ +Mon Jun 28 06:59:36 UTC 2021 - Michael Vetter <[email protected]> + +- Update to 0.58: + * darwin: Support --libs. + * darwin: Support AF_LINK for --network. + * docs: Remove TOC. + +------------------------------------------------------------------- Old: ---- procenv-0.57.tar.gz New: ---- procenv-0.58.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ procenv.spec ++++++ --- /var/tmp/diff_new_pack.QKhj04/_old 2021-06-28 15:34:02.403216196 +0200 +++ /var/tmp/diff_new_pack.QKhj04/_new 2021-06-28 15:34:02.407216200 +0200 @@ -18,7 +18,7 @@ Name: procenv -Version: 0.57 +Version: 0.58 Release: 0 Summary: Process Environment Dump Tool License: GPL-3.0-or-later ++++++ procenv-0.57.tar.gz -> procenv-0.58.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/NEWS new/procenv-0.58/NEWS --- old/procenv-0.57/NEWS 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/NEWS 2021-06-25 20:59:13.000000000 +0200 @@ -1,3 +1,9 @@ +0.58 2021-06-25 + + * darwin: Support `--libs`. + * darwin: Support `AF_LINK` for `--network`. + * docs: Remove TOC. + 0.57 2021-06-19 * Add macports installation instructions (thanks Haren). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/README.md new/procenv-0.58/README.md --- old/procenv-0.57/README.md 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/README.md 2021-06-25 20:59:13.000000000 +0200 @@ -6,33 +6,6 @@ # `procenv` -* [Demo](#demo) -* [Overview](#overview) -* [Install](#install) - * [CentOS](#centos) - * [Debian and Ubuntu](#debian-and-ubuntu) - * [Fedora](#fedora) - * [FreeBSD](#freebsd) - * [Gentoo](#gentoo) - * [macOS](#macos) - * [SUSE](#suse) - * [Build from source](#build-from-source) -* [Results](#results) - * [Debian build environment](#debian-build-environment) - * [`buildd` environment](#buildd-environment) - * [Debian `autopkgtest` (DEP-8) environment](#debian-autopkgtest-dep-8-environment) - * [Fedora build environment](#fedora-build-environment) - * [Gentoo build environment](#gentoo-build-environment) - * [MacPorts build environment](#macports-build-environment) - * [Open Build Service (OBS) build environment](#open-build-service-obs-build-environment) - * [Semaphore-CI build environment](#semaphore-ci-build-environment) - * [Travis-CI build environment](#travis-ci-build-environment) - * [Ubuntu build environment](#ubuntu-build-environment) -* [Porting](#porting) -* [References](#references) -* [Author](#author) -* [Home Page](#home-page) - ## Demo [](https://asciinema.org/a/118278?autoplay=1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/configure new/procenv-0.58/configure --- old/procenv-0.57/configure 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/configure 2021-06-25 20:59:13.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for procenv 0.57. +# Generated by GNU Autoconf 2.69 for procenv 0.58. # # Report bugs to <[email protected]>. # @@ -582,8 +582,8 @@ # Identity of this package. PACKAGE_NAME='procenv' PACKAGE_TARNAME='procenv' -PACKAGE_VERSION='0.57' -PACKAGE_STRING='procenv 0.57' +PACKAGE_VERSION='0.58' +PACKAGE_STRING='procenv 0.58' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='https://github.com/jamesodhunt/procenv' @@ -1336,7 +1336,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 procenv 0.57 to adapt to many kinds of systems. +\`configure' configures procenv 0.58 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1408,7 +1408,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of procenv 0.57:";; + short | recursive ) echo "Configuration of procenv 0.58:";; esac cat <<\_ACEOF @@ -1525,7 +1525,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -procenv configure 0.57 +procenv configure 0.58 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1950,7 +1950,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by procenv $as_me 0.57, which was +It was created by procenv $as_me 0.58, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2335,7 +2335,7 @@ -PROCENV_VERSION=0.57 +PROCENV_VERSION=0.58 # Expand $ac_aux_dir to an absolute path. @@ -6083,7 +6083,7 @@ # Define the identity of the package. PACKAGE='procenv' - VERSION='0.57' + VERSION='0.58' cat >>confdefs.h <<_ACEOF @@ -7167,7 +7167,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by procenv $as_me 0.57, which was +This file was extended by procenv $as_me 0.58, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -7234,7 +7234,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -procenv config.status 0.57 +procenv config.status 0.58 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/procenv-0.57/configure.ac new/procenv-0.58/configure.ac --- old/procenv-0.57/configure.ac 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/configure.ac 2021-06-25 20:59:13.000000000 +0200 @@ -1,7 +1,7 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -m4_define([procenv_version], [0.57]) +m4_define([procenv_version], [0.58]) AC_INIT(procenv,[procenv_version],[[email protected]],,[https://github.com/jamesodhunt/procenv]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/procenv.spec new/procenv-0.58/procenv.spec --- old/procenv-0.57/procenv.spec 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/procenv.spec 2021-06-25 20:59:13.000000000 +0200 @@ -1,12 +1,12 @@ Name: procenv -Version: 0.57 +Version: 0.58 Release: 1%{?dist} Summary: Utility to show process environment Group: Applications/System License: GPLv3+ URL: https://github.com/jamesodhunt/procenv -Source0: https://github.com/jamesodhunt/procenv/archive/0.57.tar.gz +Source0: https://github.com/jamesodhunt/procenv/archive/0.58.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # fixme: should be autoconf >= 2.68, but Fedora packages or alien'ed dpkg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/darwin/platform-darwin.h new/procenv-0.58/src/platform/darwin/platform-darwin.h --- old/procenv-0.57/src/platform/darwin/platform-darwin.h 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/darwin/platform-darwin.h 2021-06-25 20:59:13.000000000 +0200 @@ -23,7 +23,15 @@ #include "util.h" #include <mach/mach.h> +#include <mach-o/dyld.h> +#include <dlfcn.h> +#include <libgen.h> #define mib_len(mib) ((sizeof (mib) / sizeof(*mib)) - 1) +#define mach_header_size(h) \ + (((h)->magic == MH_MAGIC_64 || (h)->magic == MH_CIGAM_64) \ + ? sizeof(struct mach_header_64) \ + : sizeof(struct mach_header)) + #endif /* _PROCENV_PLATFORM_DARWIN_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/darwin/platform.c new/procenv-0.58/src/platform/darwin/platform.c --- old/procenv-0.57/src/platform/darwin/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/darwin/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -331,6 +331,143 @@ /*------------------------------*/ } +static char * +get_macho_version(uint32_t version) +{ + char *str = NULL; + + if (version == (uint32_t)-1) { + appendf(&str, "(%s)", UNKNOWN_STR); + } else { + /* Top 2 bytes (bits 16-31) */ + uint32_t major = version >> 16; + + /* 2nd byte (bits 9-15) */ + uint32_t minor = (version >> 8) & 0xff; + + /* 1st byte (bits 0->8) */ + uint32_t patch = version & 0xff; + + appendf(&str, "%u.%u.%u", major, minor, patch); + } + + return str; +} + +static void +handle_load_cmds(const struct mach_header *header) +{ + if (! header) return; + + uint32_t cmds = header->ncmds; + + if (cmds == 0) return; + + /* The commands immediately follow the mach header, + * but the size of the header varies depending on the platform! + */ + uintptr_t cmds_addr = (uintptr_t)header + mach_header_size(header); + + uintptr_t p = cmds_addr; + + for (uint32_t i = 0; i < cmds; i++) + { + struct load_command *lc = (struct load_command *)p; + + /* We only need to consider a subset of load commands + * to determine which shared libraries are loaded. + */ + bool consider = lc->cmd == LC_ID_DYLIB || + lc->cmd == LC_LOAD_DYLIB || + lc->cmd == LC_LOAD_WEAK_DYLIB || + lc->cmd == LC_REEXPORT_DYLIB || + lc->cmd == LC_LOAD_UPWARD_DYLIB || + lc->cmd == LC_LAZY_LOAD_DYLIB; + + if (consider) { + struct dylib_command *dl = (struct dylib_command *)lc; + + struct dylib dylib = dl->dylib; + + // Determine shared library path + char *path = (char *)lc + dylib.name.offset; + + char *tmp = strdup (path); + char *name = basename (tmp); + + object_open (false); + section_open (name); + + free (tmp); + + void *addr = dlopen(path, RTLD_LAZY); + if (addr) { + entry ("address", "%p", addr); + dlclose (addr); + } + + entry ("path", "%s", path); + + /*------------------------------*/ + + section_open ("versions"); + + char *current_version = get_macho_version(dylib.current_version); + char *compat_version = get_macho_version(dylib.compatibility_version); + + if (current_version) { + entry ("current", "%s", current_version); + free (current_version); + } + + if (compat_version) { + entry ("compatibility", "%s", compat_version); + free (compat_version); + } + + section_close (); + + /*------------------------------*/ + + section_close (); + object_close (false); + } + + p += lc->cmdsize; + } +} + +static void +show_libs_darwin(void) +{ + /* First, determine the OSX name for this binary */ + int ret; + char path[PATH_MAX]; + uint32_t size = (uint32_t)sizeof(path); + + ret = _NSGetExecutablePath(path, &size); + if (ret != 0) return; + + int count = _dyld_image_count(); + + /* Now, look for the image relating to this program */ + for (int i = 0; i < count; i++) { + const char *name = _dyld_get_image_name(i); + + if (!name) { + continue; + } + + /* Only show dependencies for _ourself_ */ + if (! strcmp(name, path)) { + const struct mach_header *header = _dyld_get_image_header(i); + + handle_load_cmds(header); + break; + } + } +} + /* Darwin lacks: * * - cpusets and cpu affinities. @@ -355,6 +492,7 @@ .show_mounts = show_mounts_darwin, .show_rlimits = show_rlimits_generic, .show_timezone = show_timezone_generic, + .show_libs = show_libs_darwin, .handle_memory = show_memory_darwin, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/freebsd/platform.c new/procenv-0.58/src/platform/freebsd/platform.c --- old/procenv-0.57/src/platform/freebsd/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/freebsd/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -556,6 +556,7 @@ .show_mounts = show_mounts_freebsd, .show_rlimits = show_rlimits_generic, .show_timezone = show_timezone_generic, + .show_libs = show_libs_generic, .handle_memory = show_memory_generic, .handle_proc_branch = handle_proc_branch_freebsd, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/hurd/platform.c new/procenv-0.58/src/platform/hurd/platform.c --- old/procenv-0.57/src/platform/hurd/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/hurd/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -90,4 +90,5 @@ .show_fds = show_fds_generic, .show_mounts = show_mounts_generic_linux, .show_rlimits = show_rlimits_generic, + .show_libs = show_libs_generic, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/linux/platform.c new/procenv-0.58/src/platform/linux/platform.c --- old/procenv-0.57/src/platform/linux/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/linux/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -2222,6 +2222,7 @@ .show_semaphores = show_semaphores_linux, .show_shared_mem = show_shared_mem_linux, .show_timezone = show_timezone_generic, + .show_libs = show_libs_generic, .handle_memory = show_memory_generic, .handle_numa_memory = handle_numa_memory_linux, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/netbsd/platform.c new/procenv-0.58/src/platform/netbsd/platform.c --- old/procenv-0.57/src/platform/netbsd/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/netbsd/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -235,6 +235,7 @@ .show_mounts = show_mounts_netbsd, .show_rlimits = show_rlimits_generic, .show_timezone = show_timezone_generic, + .show_libs = show_libs_generic, .handle_proc_branch = handle_proc_branch_netbsd, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/openbsd/platform.c new/procenv-0.58/src/platform/openbsd/platform.c --- old/procenv-0.57/src/platform/openbsd/platform.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/openbsd/platform.c 2021-06-25 20:59:13.000000000 +0200 @@ -198,6 +198,7 @@ .show_mounts = show_mounts_openbsd, .show_rlimits = show_rlimits_generic, .show_timezone = show_timezone_generic, + .show_libs = show_libs_generic, .handle_proc_branch = handle_proc_branch_openbsd, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/platform-generic.c new/procenv-0.58/src/platform/platform-generic.c --- old/procenv-0.57/src/platform/platform-generic.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/platform-generic.c 2021-06-25 20:59:13.000000000 +0200 @@ -1105,3 +1105,51 @@ } #endif + +#if ! defined (PROCENV_PLATFORM_ANDROID) && ! defined (PROCENV_PLATFORM_DARWIN) + +static int +libs_callback (struct dl_phdr_info *info, size_t size, void *data) +{ + const char *name; + const char *path; + + assert (info); + + if (! info->dlpi_name || ! *info->dlpi_name) + return 0; + + path = info->dlpi_name; + assert (path); + + name = strrchr (path, '/'); + + if (name) { + /* Jump over slash */ + name++; + } else { + /* BSD libraries don't show the path */ + name = path; + } + + object_open (false); + + section_open (name); + + entry ("path", "%s", path); + entry ("address", "%p", (void *)info->dlpi_addr); + + section_close (); + + object_close (false); + + return 0; +} + +void +show_libs_generic(void) +{ + dl_iterate_phdr (libs_callback, NULL); +} + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform/platform-generic.h new/procenv-0.58/src/platform/platform-generic.h --- old/procenv-0.57/src/platform/platform-generic.h 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform/platform-generic.h 2021-06-25 20:59:13.000000000 +0200 @@ -80,4 +80,10 @@ #endif +#if ! defined (PROCENV_PLATFORM_ANDROID) && ! defined (PROCENV_PLATFORM_DARWIN) + +void show_libs_generic(void); + +#endif + #endif /* _PROCENV_PLATFORM_GENERIC_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/platform.h new/procenv-0.58/src/platform.h --- old/procenv-0.57/src/platform.h 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/platform.h 2021-06-25 20:59:13.000000000 +0200 @@ -156,6 +156,7 @@ void (*show_semaphores) (void); void (*show_shared_mem) (void); void (*show_timezone) (void); + void (*show_libs) (void); void (*handle_memory) (void); void (*handle_numa_memory) (void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/procenv.c new/procenv-0.58/src/procenv.c --- old/procenv-0.57/src/procenv.c 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/procenv.c 2021-06-25 20:59:13.000000000 +0200 @@ -2234,7 +2234,7 @@ break; #endif -#if defined (PROCENV_PLATFORM_BSD) +#if defined (PROCENV_PLATFORM_BSD) || defined (PROCENV_PLATFORM_DARWIN) case AF_LINK: return "AF_LINK"; break; @@ -2846,46 +2846,6 @@ return UNKNOWN_STR; } -#if ! defined (PROCENV_PLATFORM_ANDROID) && ! defined (PROCENV_PLATFORM_DARWIN) -static int -libs_callback (struct dl_phdr_info *info, size_t size, void *data) -{ - const char *name; - const char *path; - - assert (info); - - if (! info->dlpi_name || ! *info->dlpi_name) - return 0; - - path = info->dlpi_name; - assert (path); - - name = strrchr (path, '/'); - - if (name) { - /* Jump over slash */ - name++; - } else { - /* BSD libraries don't show the path */ - name = path; - } - - object_open (false); - - section_open (name); - - entry ("path", "%s", path); - entry ("address", "%p", (void *)info->dlpi_addr); - - section_close (); - - object_close (false); - - return 0; -} -#endif - void show_libs (void) { @@ -2893,9 +2853,8 @@ container_open ("libraries"); -#if ! defined (PROCENV_PLATFORM_ANDROID) && ! defined (PROCENV_PLATFORM_DARWIN) - dl_iterate_phdr (libs_callback, NULL); -#endif + if (ops->show_libs) + ops->show_libs(); container_close (); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/procenv-0.57/src/procenv.h new/procenv-0.58/src/procenv.h --- old/procenv-0.57/src/procenv.h 2021-06-19 13:06:46.000000000 +0200 +++ new/procenv-0.58/src/procenv.h 2021-06-25 20:59:13.000000000 +0200 @@ -172,8 +172,14 @@ * - Added more details to --memory and new capabilities to --capabilities. * VERSION 20: * - More --memory details for Darwin. + * VERSION 21: + * - Added `CLOCK_BOOTTIME_ALARM`, `CLOCK_PROCESS_CPUTIME_ID` + * and `CLOCK_REALTIME_ALARM` to --clocks output and supported --timezone + * on Darwin. + * VERSION 22: + * - Supported --libs on Darwin. **/ -#define PROCENV_FORMAT_VERSION 20 +#define PROCENV_FORMAT_VERSION 22 #if defined (PROCENV_PLATFORM_LINUX) || defined (PROCENV_PLATFORM_HURD)
