openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2021
- 1 participants
- 1538 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package orthanc for openSUSE:Factory checked in at 2021-01-30 13:57:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orthanc (Old)
and /work/SRC/openSUSE:Factory/.orthanc.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orthanc"
Sat Jan 30 13:57:00 2021 rev:11 rq:867903 version:1.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/orthanc/orthanc.changes 2020-12-30 17:12:47.060688149 +0100
+++ /work/SRC/openSUSE:Factory/.orthanc.new.28504/orthanc.changes 2021-01-30 13:57:57.250415953 +0100
@@ -1,0 +2,42 @@
+Fri Jan 29 16:58:24 UTC 2021 - Axel Braun <axel.braun(a)gmx.de>
+
+- Version 1.9.0
+* Support of DICOM TLS
+* New configuration options related to DICOM networking:
+ - "DicomTlsEnabled" to enable DICOM TLS in Orthanc SCP
+ - "DicomTlsCertificate" to provide the TLS certificate to be used in both Orthanc SCU and SCP
+ - "DicomTlsPrivateKey" to provide the private key of the TLS certificate
+ - "DicomTlsTrustedCertificates" to provide the list of TLS certificates to be trusted by Orthanc
+ - "UseDicomTls" in "DicomModalities" to enable DICOM TLS in outgoing SCU on a per-modality basis
+ - "MaximumPduLength" to tune the maximum PDU length (Protocol Data Unit)
+ - "LocalAet" in "DicomModalities" to overwrite global "DicomAet" for SCU on a per-modality basis
+ - "AcceptedTransferSyntaxes" to set the transfer syntax UIDs accepted by Orthanc C-STORE SCP
+ - "H265TransferSyntaxAccepted" to enable/disable all the transfer syntaxes related to H.265
+ - "DicomAlwaysAllowFind" to disable verification of the remote modality in C-FIND SCP
+ - "DicomAlwaysAllowGet" to disable verification of the remote modality in C-GET SCP
+* New configuration option: "DicomScuPreferredTransferSyntax" to control transcoding in C-STORE SCU
+* New command-line option: "--openapi" to write the OpenAPI documentation of the REST API to a file
+* New metadata automatically computed at the series level: "RemoteAET"
+* The DICOM meta-header and the transfer syntax are displayed at the "Instance" level
+* API version upgraded to 10
+* "/tools/accepted-transfer-syntaxes": Get/set transfer syntaxes accepted by Orthanc C-STORE SCP
+* "/tools/unknown-sop-class-accepted": Get/set whether C-STORE SCP accepts unknown SOP class UID
+* "/modalities/{...}/query": New string argument "LocalAet"
+* "/tools/create-dicom": New flag "Force" to bypass consistency checks for the DICOM tags
+* BREAKING CHANGE: All the Lua callbacks "IsXXXTransferSyntaxAccepted()" and
+ "IsUnknownSopClassAccepted()" have been removed
+* New functions in the SDK:
+ - OrthancPluginCreateMemoryBuffer64()
+ - OrthancPluginRegisterStorageArea2()
+ - OrthancPluginCreateDicom2()
+* Refactoring and improvements to the cache of DICOM files (it can now hold many files)
+* New Prometheus metrics "orthanc_dicom_cache_count" and "orthanc_dicom_cache_size"
+* Fix upload of multiple DICOM files using one single POST call to "multipart/form-data"
+ Could be the final resolution of issue #21 (DICOM files missing after uploading with Firefox)
+* Partial fix of issue #48 (Windows service not stopped properly), cf. comments 4 and 5
+* Explicitly use little-endian to encode uncompressed file size with zlib compression
+* Upgraded dependencies for static builds (notably on Windows):
+ - dcmtk 3.6.6
+ - jsoncpp 1.9.4
+
+-------------------------------------------------------------------
Old:
----
Orthanc-1.8.2.tar.gz
New:
----
Orthanc-1.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ orthanc.spec ++++++
--- /var/tmp/diff_new_pack.njw4zl/_old 2021-01-30 13:57:58.278417687 +0100
+++ /var/tmp/diff_new_pack.njw4zl/_new 2021-01-30 13:57:58.282417694 +0100
@@ -1,8 +1,8 @@
#
# spec file for package orthanc
#
-# Copyright (c) 2020 SUSE LLC
-# Copyright (c) 2019-2020 Dr. Axel Braun
+# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2019-2021 Dr. Axel Braun
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
Name: orthanc
-Version: 1.8.2
+Version: 1.9.0
Release: 0
Summary: RESTful DICOM server for healthcare and medical research
License: GPL-3.0-or-later
++++++ Orthanc-1.8.2.tar.gz -> Orthanc-1.9.0.tar.gz ++++++
++++ 22553 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package orthanc-webviewer for openSUSE:Factory checked in at 2021-01-30 13:56:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/orthanc-webviewer (Old)
and /work/SRC/openSUSE:Factory/.orthanc-webviewer.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orthanc-webviewer"
Sat Jan 30 13:56:59 2021 rev:6 rq:867902 version:2.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/orthanc-webviewer/orthanc-webviewer.changes 2020-12-17 17:09:11.173963786 +0100
+++ /work/SRC/openSUSE:Factory/.orthanc-webviewer.new.28504/orthanc-webviewer.changes 2021-01-30 13:57:56.158414111 +0100
@@ -1,0 +2,5 @@
+Fri Jan 29 18:25:58 UTC 2021 - Axel Braun <axel.braun(a)gmx.de>
+
+- framework190.diff added for compatibility with framework 1.9.0
+
+-------------------------------------------------------------------
New:
----
framework190.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ orthanc-webviewer.spec ++++++
--- /var/tmp/diff_new_pack.3n6Jjs/_old 2021-01-30 13:57:56.810415211 +0100
+++ /var/tmp/diff_new_pack.3n6Jjs/_new 2021-01-30 13:57:56.810415211 +0100
@@ -1,7 +1,7 @@
#
# spec file for package orthanc-webviewer
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2019-2020 Dr. Axel Braun
#
# All modifications and additions to the file contributed by third parties
@@ -32,6 +32,7 @@
Source5: js-url-1.8.6.zip
Source11: orthanc-webviewer-readme.SUSE
Source12: webviewer.json
+Patch0: framework190.diff
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: googletest-devel
@@ -60,6 +61,8 @@
%prep
%setup -q -n OrthancWebViewer-%{version}
+%patch0 -p1
+
#OrthanPlugin may ask for additional files to be loaded
#Putting them into this folder prevents download of sources from the web
mkdir ThirdPartyDownloads
++++++ framework190.diff ++++++
--- OrthancWebViewer-2.7.orig/Plugin/Cache/CacheManager.cpp
+++ OrthancWebViewer-2.7/Plugin/Cache/CacheManager.cpp
@@ -475,7 +475,14 @@ namespace OrthancPlugins
bool ok;
try
{
+#if defined(ORTHANC_FRAMEWORK_VERSION_IS_ABOVE) && ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 9, 0)
+ std::unique_ptr<Orthanc::IMemoryBuffer> buffer(
+ pimpl_->storage_.Read(uuid, Orthanc::FileContentType_Unknown));
+ buffer->MoveToString(content);
+#else
pimpl_->storage_.Read(content, uuid, Orthanc::FileContentType_Unknown);
+#endif
+
ok = (content.size() == size);
}
catch (std::runtime_error&)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mftrace for openSUSE:Factory checked in at 2021-01-30 13:56:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mftrace (Old)
and /work/SRC/openSUSE:Factory/.mftrace.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mftrace"
Sat Jan 30 13:56:57 2021 rev:19 rq:867894 version:1.2.20
Changes:
--------
--- /work/SRC/openSUSE:Factory/mftrace/mftrace.changes 2018-10-31 13:21:49.319036007 +0100
+++ /work/SRC/openSUSE:Factory/.mftrace.new.28504/mftrace.changes 2021-01-30 13:57:54.994412149 +0100
@@ -1,0 +2,11 @@
+Tue Jan 05 04:24:13 UTC 2021 - Wang Jun <jgwang(a)suse.com>
+
+- Update to version 1.2.20
+ * Fix p.add_option() issue
+ * Fix parsing of italic correction
+ * Fix FTP_DIR.
+ * Migrate package to python3
+ * Add manpage for gf2pbm
+ * Quieten fontforge invocation
+
+-------------------------------------------------------------------
Old:
----
mftrace-1.2.18.tar.gz
New:
----
gf2pbm.1
mftrace-1.2.20.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mftrace.spec ++++++
--- /var/tmp/diff_new_pack.jK6oCz/_old 2021-01-30 13:57:55.690413322 +0100
+++ /var/tmp/diff_new_pack.jK6oCz/_new 2021-01-30 13:57:55.690413322 +0100
@@ -1,7 +1,7 @@
#
# spec file for package mftrace
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 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 @@
Name: mftrace
-Version: 1.2.18
+Version: 1.2.20
Release: 0
Summary: Scalable PostScript Fonts for MetaFont
License: GPL-2.0-only
Group: Productivity/Publishing/TeX/Utilities
-Url: http://lilypond.org/mftrace/
+URL: http://lilypond.org/mftrace/
Source0: http://lilypond.org/download/sources/mftrace/%{name}-%{version}.tar.gz
+Source1: gf2pbm.1
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: potrace
@@ -44,6 +45,7 @@
%setup -q
%build
+cp %{SOURCE1} .
autoreconf -fi
%configure \
--with-pic
@@ -56,7 +58,8 @@
%files
%defattr(-, root, root)
-%doc ChangeLog COPYING README.txt
+%license COPYING
+%doc ChangeLog README.txt
%{_bindir}/*
%{_datadir}/mftrace
%{_mandir}/man1/*
++++++ gf2pbm.1 ++++++
.TH gf2pbm 1 "February 11, 2002"
.SH NAME
gf2pbm \- convert a character from a GF font file to PBM format
.SH SYNOPSIS
.B gf2pbm
.RI [ options ] " GF-file"
.SH DESCRIPTION
This manual page documents briefly the
.B gf2pbm
command.
.B gf2pbm
is a program that converts a single character from a METAFONT-produced
GF font file to PBM format. It is used internally by
.BR mftrace (1)
to feed to
.BR autotrace (1)
to create a Postscript outline description of the character.
.SH OPTIONS
.TP
.B \-b
Dump a bitmap file.
.TP
.B \-s
Show glyph size.
.TP
.BI \-n " NUM"
Process glyph number
.IR NUM .
.TP
.BI \-o " FILE"
Output to
.I FILE
instead of
.IR stdout .
.TP
.B \-h
Show summary of options.
.TP
.B \-d
Display debugging information.
.SH "EXIT STATUS"
.B gf2pbm
exits with status 0 if successful, status 1 if the requested glyph did
not exist and status 2 if there was some other error.
.SH SEE ALSO
.BR mf (1),
.BR pktrace (1).
.br
.SH AUTHOR
.B gf2pbm
is based on Paul Vojta's Xdvi, and was munged by Han-Wen Nienhuys
<hanwen(a)xs4all.nl>. This manual page was written by Julian Gilbey
<jdg(a)debian.org>, for the Debian GNU/Linux system (but may be used by
others).
++++++ mftrace-1.2.18.tar.gz -> mftrace-1.2.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/GNUmakefile.in new/mftrace-1.2.20/GNUmakefile.in
--- old/mftrace-1.2.18/GNUmakefile.in 2011-12-06 01:54:20.000000000 +0100
+++ new/mftrace-1.2.20/GNUmakefile.in 2019-09-16 10:16:45.000000000 +0200
@@ -14,7 +14,7 @@
srcdir=@srcdir@
VPATH=$(srcdir)
NAME=mftrace
-MANPAGES=mftrace.1
+MANPAGES=mftrace.1 gf2pbm.1
VERSION=@VERSION@
distdir=$(NAME)-$(VERSION)
prefix=@prefix@
@@ -27,8 +27,8 @@
## up/download.
-FTP_DIR=hanwen@lilypond.org:www/download/sources/mftrace/
-WWW_DIR=hanwen@lilypond.org:www/mftrace/
+FTP_DIR=hanwen@gcp.lilypond.org:www/downloads/sources/mftrace/
+WWW_DIR=hanwen@gcp.lilypond.org:www/mftrace/
GIT_MASTER_SITE=git+ssh://git@github.com/hanwen/mftrace.git
all: compile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/README.texi new/mftrace-1.2.20/README.texi
--- old/mftrace-1.2.18/README.texi 2011-12-06 01:52:57.000000000 +0100
+++ new/mftrace-1.2.20/README.texi 2019-09-16 10:05:39.000000000 +0200
@@ -41,7 +41,7 @@
@section Download
@itemize
-@item @uref{http://lilypond.org/download/sources/mftrace/mftrace-@mftversion{}.tar.gz}
+@item @uref{http://lilypond.org/downloads/sources/mftrace/mftrace-@mftversion{}.tar.gz}
@item GIT at @uref{https://github.com/hanwen/mftrace}
@end itemize
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/README.txt new/mftrace-1.2.20/README.txt
--- old/mftrace-1.2.18/README.txt 2011-12-06 01:54:31.000000000 +0100
+++ new/mftrace-1.2.20/README.txt 2019-09-16 10:17:38.000000000 +0200
@@ -7,64 +7,59 @@
1.1 Introduction
================
-`mftrace' is a small Python program that lets you trace a TeX bitmap
+'mftrace' is a small Python program that lets you trace a TeX bitmap
font into a PFA or PFB font (A PostScript Type1 Scalable Font) or TTF
(TrueType) font. It is licensed under the GNU GPL.
Scalable fonts offer many advantages over bitmaps, as they allow
-documents to render correctly at many printer resolutions. Moreover,
+documents to render correctly at many printer resolutions. Moreover,
Ghostscript can generate much better PDF, if given scalable PostScript
fonts.
- Versions prior to 1.0.5 were called `pktrace'.
+ Versions prior to 1.0.5 were called 'pktrace'.
1.2 Download
============
- *
- `http://lilypond.org/download/sources/mftrace/mftrace-1.2.18.tar.gz'
-
- * GIT at `https://github.com/hanwen/mftrace'
+ *
+ <http://lilypond.org/downloads/sources/mftrace/mftrace-1.2.20.tar.gz>
+ * GIT at <https://github.com/hanwen/mftrace>
1.3 Required
============
-`mftrace' is a thin Python wrapper around some other programs that do
+'mftrace' is a thin Python wrapper around some other programs that do
the real work: a tracing program and t1asm. To run mftrace you need:
- * A tracing program: autotrace >= 0.30 (see
- `http://autotrace.sourceforge.net' or potrace (see
- `http://potrace.sourceforge.net').
+ * A tracing program: autotrace >= 0.30 (see
+ <http://autotrace.sourceforge.net> or potrace (see
+ <http://potrace.sourceforge.net>).
Potrace is recommended as it runs quicker than autotrace.
- * Python-2.2 or later. See `http://www.python.org/'
-
- * t1utils. See `http://www.lcdf.org/~eddietwo/type/'
-
+ * Python-2.2 or later. See <http://www.python.org/>
+ * t1utils. See <http://www.lcdf.org/~eddietwo/type/>
* TeX-your tex installation should include
* kpsewhich,
-
* MetaFont
1.4 Recommended
===============
* A recent version (040215 or newer) of FontForge
- (http://fontforge.sourceforge.net) Some of `mftrace'
+ (http://fontforge.sourceforge.net) Some of 'mftrace'
functionality requires FontForge to be present on user's system.
- This includes rounding to integer, simplifying and autohinting
- font outlines, as well as generating any output formats except
- PFA, PFB and AFM. You should not request any of these features
- using `mftrace' options if you don't like your font to be run
- through FontForge (note that in this case you also have to
- explicitly specify `--noround' to disable rounding to integer).
+ This includes rounding to integer, simplifying and autohinting font
+ outlines, as well as generating any output formats except PFA, PFB
+ and AFM. You should not request any of these features using
+ 'mftrace' options if you don't like your font to be run through
+ FontForge (note that in this case you also have to explicitly
+ specify '--noround' to disable rounding to integer).
- * Alternatively, you need GhostScript with its `printafm' utility,
- available somethere in your PATH. `mftrace' uses `printafm' to
+ * Alternatively, you need GhostScript with its 'printafm' utility,
+ available somethere in your PATH. 'mftrace' uses 'printafm' to
generate AFM files in case there is no need to process the font
with FontForge.
-
1.5 Red Hat
===========
@@ -72,6 +67,7 @@
rpmbuild -tb mftrace-VERSION.tar.gz
+
1.6 Debian GNU/Linux
====================
@@ -79,77 +75,73 @@
install all requirements by running (as root):
apt-get install mftrace
+
If you wish to also install the FontForge package to simplify and
autohint the font, then run the command
apt-get install fontforge
+
1.7 Install
===========
-Install the prerequite packages. Then run
+Install the prerequite packages. Then run
./configure
make install
- in the mftrace directory. Run as follows:
+
+ in the mftrace directory. Run as follows:
mftrace cmr10
+
1.8 Invoking mftrace.
=====================
Command line options:
-`--formats=LIST'
- A comma-separated list of formats to generate. Choices include:
- AFM, PFA, PFB, TTF and SVG. Default is to generate a PFA file.
- Note that `fontforge' (formerly called `pfaedit') needs to be
- installed in order to generate any format except PFA or PFB. For
- generating AFM you need either `fontforge' or `ghostscript'.
-
-`-e,--encoding=ENC'
- Use encoding file ENC. Encoding files used by `mftrace' are
- basically in the GhostScript/dvips format, but you may use a
- special `.notavail' glyph name in order to tell mftrace not to
- process a specific glyph. If this option is not specified,
- mftrace will try to determine the encoding file automatically,
- from the encoding specified in the TFM file.
-
-`--glyphs=LIST'
- Only process glyphs in LIST, which is a comma-delimited list of
+'--formats=LIST'
+ A comma-separated list of formats to generate. Choices include:
+ AFM, PFA, PFB, TTF and SVG. Default is to generate a PFA file.
+ Note that 'fontforge' (formerly called 'pfaedit') needs to be
+ installed in order to generate any format except PFA or PFB. For
+ generating AFM you need either 'fontforge' or 'ghostscript'.
+'-e,--encoding=ENC'
+ Use encoding file ENC. Encoding files used by 'mftrace' are
+ basically in the GhostScript/dvips format, but you may use a
+ special '.notavail' glyph name in order to tell mftrace not to
+ process a specific glyph. If this option is not specified, mftrace
+ will try to determine the encoding file automatically, from the
+ encoding specified in the TFM file.
+'--glyphs=LIST'
+ Only process glyphs in LIST, which is a comma-delimited list of
decimal numbers or ranges.
--glyphs 1-10,50,55,90-100
-
-`--gffile=NAME'
- = Take glyphs from file NAME.
-
-`--grid GRIDSIZE'
+'--gffile=NAME'
+ = Take glyphs from file NAME.
+'--grid GRIDSIZE'
Set reciprocal grid size in em units multiplied by ratio
- magnification/1000. For example `--grid 10 --magnification 1000'
+ magnification/1000. For example '--grid 10 --magnification 1000'
will round coordinates of control points to 1/10 of em unit.
- Useful simultaneously with `--noround' option. Default GRIDSIZE
- value is 1, i. e. round to integer.
-
-`-h,--help'
+ Useful simultaneously with '--noround' option. Default GRIDSIZE
+ value is 1, i. e. round to integer.
+'-h,--help'
help on options.
-
-`-k,--keep'
- Retain all temporary files in the directory `mftrace.dir/'. This
+'-k,--keep'
+ Retain all temporary files in the directory 'mftrace.dir/'. This
is useful for debugging problems.
-
-`--keep-trying'
- Try to continue if external programs called by mftrace fail. If
- METAFONT crashes with overflow errors, but nevertheless outputs a
- GF file, try to process its output as is (useful for some buggy
- fonts, see below). If potrace/autotrace fails to trace a specific
- character, first try it with a less smoothed curve, and if that
+'--keep-trying'
+ Try to continue if external programs called by mftrace fail. If
+ METAFONT crashes with overflow errors, but nevertheless outputs a
+ GF file, try to process its output as is (useful for some buggy
+ fonts, see below). If potrace/autotrace fails to trace a specific
+ character, first try it with a less smoothed curve, and if that
fails, skip the character.
- By default mftrace outputs `trace-bug-FONTNAME-NUMBER.pbm' and
+ By default mftrace outputs 'trace-bug-FONTNAME-NUMBER.pbm' and
stops the process with a request to file a bugreport.
-
-`--magnification'
- The magnification to use for the PFA file. The default is 1000. The
- larger the more precise the PFA file will be. However, when
+'--magnification'
+ The magnification to use for the PFA file. The default is 1000.
+ The larger the more precise the PFA file will be. However, when
magnification is too large METAFONT can crash with overflow errors.
Sadly, many MF fonts contain resolution checks
@@ -160,81 +152,72 @@
if dots_per_inch > (1500 / design_size):
...
-`--noround'
+'--noround'
Don't round coordinates of control points to integer values.
- Useful simultaneously with `--grid' option. Disabled by default.
+ Useful simultaneously with '--grid' option. Disabled by default.
-`-o,--output-base=FILE'
+'-o,--output-base=FILE'
Output to FILE.pfa or FILE.pfb.
-
-`--simplify'
- Pass the font through FontForge for automatic simplification and
+'--simplify'
+ Pass the font through FontForge for automatic simplification and
hinting.
-
-`--tfmfile=FILE'
+'--tfmfile=FILE'
Use FILE for the TFM file. This file is needed to determine at
what resolution to run MetaFont.
-
-`-V,--verbose'
- Be verbose: print all commands as they are invoked. This is useful
+'-V,--verbose'
+ Be verbose: print all commands as they are invoked. This is useful
for debugging.
-
-`-v,--version'
+'-v,--version'
Print version number
-
-`--dos-kpath'
+'--dos-kpath'
Try to kludge up the paths coming from MikTeX for a cygwin
- environment. If this doesn't work, specify `--tfmfile' and
- `--encoding' manually.
-
-`-w,--warranty'
+ environment. If this doesn't work, specify '--tfmfile' and
+ '--encoding' manually.
+'-w,--warranty'
show warranty and copyright
-
-`--potrace'
+'--potrace'
use Potrace (default).
-
-`--autotrace'
+'--autotrace'
use AutoTrace.
-`-D,--define=SYMBOL=VALUE'
- Set the font info SYMBOL to the given VALUE. For example
- `-DFamilyName=Foo' sets the font family name to `Foo'.
+'-D,--define=SYMBOL=VALUE'
+ Set the font info SYMBOL to the given VALUE. For example
+ '-DFamilyName=Foo' sets the font family name to 'Foo'.
Mftrace tries to fill in sensible values for the FontName,
- FamilyName, FullName and Weight fields. It does so by guessing
- values for the CM font series. For other fonts, it tries to read
- an AFM file (which is not likely to exist). Suggestions for a more
+ FamilyName, FullName and Weight fields. It does so by guessing
+ values for the CM font series. For other fonts, it tries to read
+ an AFM file (which is not likely to exist). Suggestions for a more
generic way to handle this are welcome.
-
Mftrace uses kpathsea for finding fonts, so any kpathsea variable can
-be used to fine-tune which files should be loaded. For example, you
-can set `MFINPUTS' to specify which paths to search for `.mf' files.
+be used to fine-tune which files should be loaded. For example, you can
+set 'MFINPUTS' to specify which paths to search for '.mf' files.
Additional options may be passed to the backend program (potrace or
-autotrace) with the `MFTRACE_BACKEND_OPTIONS' environment variable.
+autotrace) with the 'MFTRACE_BACKEND_OPTIONS' environment variable.
1.9 Discussion
==============
-Why use `mftrace' over textrace (http://textrace.sourceforge.net)?
-Textrace and mftrace are functionally similar. However, mftrace is
+Why use 'mftrace' over textrace (http://textrace.sourceforge.net)?
+Textrace and mftrace are functionally similar. However, mftrace is
quicker, more cleanly written and can be installed using standard
-methods. Additionally, textrace requires perl, ghostscript and dvips.
+methods. Additionally, textrace requires perl, ghostscript and dvips.
- How about MetaFog (http://www.truetex.com)? MetaFog operates
+ How about MetaFog (http://www.truetex.com)? MetaFog operates
directly on the curves that generate the bitmap font, its outlines will
-probably be smaller and better. However, MetaFog is a proprietary
+probably be smaller and better. However, MetaFog is a proprietary
product: its source code is not available, and it will only run on a
limited number of platforms.
- How about MetaType1 (ftp://bop.eps.gda.pl/pub/metatype1/)?
-MetaType1 is an approach that puts severe constraints on what may be
-done in a font program. It does not work for fonts containing overlaps
-and shaped pens.
+ How about MetaType1 (ftp://bop.eps.gda.pl/pub/metatype1/)? MetaType1
+is an approach that puts severe constraints on what may be done in a
+font program. It does not work for fonts containing overlaps and shaped
+pens.
How about FontForge (http://fontforge.sourceforge.net/) itself?
-FontForge is an interactive editor, but it can be scripted. Since it
+FontForge is an interactive editor, but it can be scripted. Since it
supports bitmap tracing and TeX bitmap fonts, it is possible to
duplicate the functionality of mftrace. However, out of the box,
FontForge does not recognize TeX encodings.
@@ -242,13 +225,12 @@
1.10 Bugs and todo
==================
- * Environment variables containing relative directories, such as
+ * Environment variables containing relative directories, such as
MFINPUTS or TFMINPUTS, are not handled correctly.
* Discuss fonts & copyright.
-
- * Submit `tfm.py' to www.python.org. `tfm.py' is a python module
- to parse Tex Font Metric file.
+ * Submit 'tfm.py' to www.python.org. 'tfm.py' is a python module to
+ parse Tex Font Metric file.
Should you encounter any bug or problem, then please send a bugreport
to Han-Wen Nienhuys <hanwen(a)xs4all.nl>.
@@ -262,14 +244,14 @@
============
Gf2pbm, the utility to convert a MetaFont GF file to a PBM file was
-based on Paul Vojta's Xdvi. The license notice is reproduced below.
+based on Paul Vojta's Xdvi. The license notice is reproduced below.
Thanks to all bughunters and contributors: Andrey V. Panov, Geoffrey
Alan Washburn, Julian Gilbey (http://www.maths.qmul.ac.uk/~jdg/)
Gu"nther Spahlinger, Richard Mahoney, Stanislav Brabec, and Thomas
Bushnell BSG.
- Copyright (c) 1990-1999 Paul Vojta
+ Copyright (c) 1990-1999 Paul Vojta
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@@ -285,12 +267,12 @@
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL PAUL VOJTA BE LIABLE FOR ANY
+ NONINFRINGEMENT. IN NO EVENT SHALL PAUL VOJTA BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- The rest of the package mftrace script itself is licensed under the
+ The rest of the package mftrace script itself is licensed under the
GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
1.13 See also
@@ -298,7 +280,6 @@
* Type1 font specification
(http://partners.adobe.com/asn/developer/pdfs/tn/T1Format.pdf)
-
* Supplement to the Type1 specification
(http://partners.adobe.com/asn/developer/pdfs/tn/5015.Type1_Supp.pdf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/afm.py new/mftrace-1.2.20/afm.py
--- old/mftrace-1.2.18/afm.py 2006-12-21 01:55:38.000000000 +0100
+++ new/mftrace-1.2.20/afm.py 2019-09-16 10:05:39.000000000 +0200
@@ -48,5 +48,5 @@
if __name__ == '__main__':
i = read_afm_file (sys.argv[1])
- print i, i.FullName, i.FontName
+ print(i, i.FullName, i.FontName)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/configure new/mftrace-1.2.20/configure
--- old/mftrace-1.2.18/configure 2011-12-06 01:49:10.000000000 +0100
+++ new/mftrace-1.2.20/configure 2019-09-16 10:14:24.000000000 +0200
@@ -1,11 +1,9 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68.
+# Generated by GNU Autoconf 2.69.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -134,6 +132,31 @@
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -167,7 +190,8 @@
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -212,21 +236,25 @@
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -328,6 +356,14 @@
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -449,6 +485,10 @@
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -483,16 +523,16 @@
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -504,28 +544,8 @@
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -1121,8 +1141,6 @@
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1348,9 +1366,9 @@
if $ac_init_version; then
cat <<\_ACEOF
configure
-generated by GNU Autoconf 2.68
+generated by GNU Autoconf 2.69
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1513,7 +1531,7 @@
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1863,8 +1881,8 @@
ac_config_headers="$ac_config_headers config.h:config.h.in"
-# Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
-set dummy ${PYTHON:-python}; ac_word=$2
+# Extract the first word of "${PYTHON3:-python3}", so it can be a program name with args.
+set dummy ${PYTHON3:-python3}; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PYTHON+:} false; then :
@@ -1881,7 +1899,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -1890,7 +1908,7 @@
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python"
+ test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="-echo no python3"
;;
esac
fi
@@ -1922,7 +1940,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_AUTOTRACE="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -1963,7 +1981,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_POTRACE="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -1988,7 +2006,7 @@
-export VERSION="1.2.18"
+export VERSION="1.2.20"
@@ -2015,7 +2033,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2055,7 +2073,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2108,7 +2126,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2149,7 +2167,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -2207,7 +2225,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2251,7 +2269,7 @@
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2697,8 +2715,7 @@
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -2938,7 +2955,7 @@
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -3004,7 +3021,7 @@
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -3816,16 +3833,16 @@
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -3885,28 +3902,16 @@
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -3928,7 +3933,7 @@
# values after options handling.
ac_log="
This file was extended by $as_me, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -3990,10 +3995,10 @@
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -4081,7 +4086,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/configure.in new/mftrace-1.2.20/configure.in
--- old/mftrace-1.2.18/configure.in 2011-12-06 01:48:57.000000000 +0100
+++ new/mftrace-1.2.20/configure.in 2019-09-16 10:14:11.000000000 +0200
@@ -1,12 +1,12 @@
AC_INIT(mftrace.py)
AC_CONFIG_HEADER(config.h:config.h.in)
-AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
+AC_PATH_PROG(PYTHON, ${PYTHON3:-python3}, -echo no python3)
AC_PATH_PROG(AUTOTRACE, autotrace, none)
AC_PATH_PROG(POTRACE, potrace, none)
AC_SUBST(PYTHON)
-export VERSION="1.2.18"
+export VERSION="1.2.20"
AC_SUBST(VERSION)
AC_SUBST(EXEEXT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/mftrace.py new/mftrace-1.2.20/mftrace.py
--- old/mftrace-1.2.18/mftrace.py 2011-03-12 16:00:52.000000000 +0100
+++ new/mftrace-1.2.20/mftrace.py 2019-09-16 10:11:14.000000000 +0200
@@ -21,7 +21,6 @@
# Copyright (c) 2001--2006 by
# Han-Wen Nienhuys, Jan Nieuwenhuizen
-import string
import os
import optparse
import sys
@@ -36,11 +35,11 @@
libdir = '@libdir@'
exec_prefix = '@exec_prefix@'
-def interpolate (str):
- str = string.replace (str, '{', '(')
- str = string.replace (str, '}', ')s')
- str = string.replace (str, '$', '%')
- return str
+def interpolate (strng):
+ strng = strng.replace ('{', '(')
+ strng = strng.replace ('}', ')s')
+ strng = strng.replace ('$', '%')
+ return strng
if prefix != '@' + 'prefix@':
exec_prefix = interpolate (exec_prefix) % vars ()
@@ -73,9 +72,9 @@
def _ (s):
return s
-def shell_escape_filename (str):
- str = re.sub ('([\'" ])', r'\\\1', str)
- return str
+def shell_escape_filename (strng):
+ strng = re.sub ('([\'" ])', r'\\\1', strng)
+ return strng
def identify (port):
port.write ('%s %s\n' % (program_name, program_version))
@@ -227,7 +226,7 @@
if options.dos_kpath:
orig = p
- p = string.lower (p)
+ p = p.lower ()
p = re.sub ('^([a-z]):', '/cygdrive/\\1', p)
p = re.sub ('\\\\', '/', p)
sys.stderr.write ("Got `%s' from kpsewhich, using `%s'\n" % (orig, p))
@@ -310,17 +309,17 @@
def read_encoding (file):
sys.stderr.write (_ ("Using encoding file: `%s'\n") % file)
- str = open (file).read ()
- str = re.sub ("%.*", '', str)
- str = re.sub ("[\n\t \f]+", ' ', str)
- m = re.search ('/([^ ]+) \[([^\]]+)\] def', str)
+ strng = open (file).read ()
+ strng = re.sub ("%.*", '', strng)
+ strng = re.sub ("[\n\t \f]+", ' ', strng)
+ m = re.search ('/([^ ]+) \[([^\]]+)\] def', strng)
if not m:
error ("Encoding file is invalid")
name = m.group (1)
cod = m.group (2)
cod = re.sub ('[ /]+', ' ', cod)
- cods = string.split (cod)
+ cods = cod.split ()
return (name, cods)
@@ -341,8 +340,8 @@
def autotrace_path_to_type1_ops (at_file, bitmap_metrics, tfm_wid, magnification):
inv_scale = 1000.0 / magnification
- (size_y, size_x, off_x, off_y) = map (lambda m, s = inv_scale: m * s,
- bitmap_metrics)
+ (size_y, size_x, off_x, off_y) = list(map (lambda m, s = inv_scale: m * s,
+ bitmap_metrics))
ls = open (at_file).readlines ()
bbox = (10000, 10000, -10000, -10000)
@@ -361,15 +360,15 @@
ell = ls[0]
ls = ls[1:]
- toks = string.split (ell)
+ toks = ell.split ()
if len (toks) < 1:
continue
cmd = toks[-1]
- args = map (lambda m, s = inv_scale: s * float (m),
- toks[:-1])
+ args = list(map (lambda m, s = inv_scale: s * float (m),
+ toks[:-1]))
if options.round_to_int:
- args = zip_to_pairs (map (round, args))
+ args = zip_to_pairs (list(map (round, args)))
else:
args = zip_to_pairs (args)
commands.append ((cmd, args))
@@ -402,15 +401,13 @@
a = na
c = expand[c]
if options.round_to_int:
- a = map (lambda x: '%d' % int (round (x)),
- unzip_pairs (a))
+ a = ['%d' % int (round (x)) for x in unzip_pairs (a)]
else:
- a = map (lambda x: '%d %d div' \
+ a = ['%d %d div' \
% (int (round (x * options.grid_scale/inv_scale)),
- int (round (options.grid_scale/inv_scale))),
- unzip_pairs (a))
+ int (round (options.grid_scale/inv_scale))) for x in unzip_pairs (a)]
- t1_outline = t1_outline + ' %s %s\n' % (string.join (a), c)
+ t1_outline = t1_outline + ' %s %s\n' % (' '.join (a), c)
t1_outline = t1_outline + ' endchar '
t1_outline = '{\n %s } |- \n' % t1_outline
@@ -421,9 +418,9 @@
def potrace_path_to_type1_ops (at_file, bitmap_metrics, tfm_wid, magnification):
inv_scale = 1000.0 / magnification
- (size_y, size_x, off_x, off_y) = map (lambda m,
+ (size_y, size_x, off_x, off_y) = list(map (lambda m,
s = inv_scale: m * s,
- bitmap_metrics)
+ bitmap_metrics))
ls = open (at_file).readlines ()
bbox = (10000, 10000, -10000, -10000)
@@ -442,13 +439,13 @@
if ell == 'fill\n':
continue
- toks = string.split (ell)
+ toks = ell.split ()
if len (toks) < 1:
continue
cmd = toks[-1]
- args = map (lambda m, s = inv_scale: s * float (m),
- toks[:-1])
+ args = list(map (lambda m, s = inv_scale: s * float (m),
+ toks[:-1]))
args = zip_to_pairs (args)
commands.append ((cmd, args))
@@ -461,8 +458,8 @@
z = (0.0, size_y - off_y - 1.0)
for (c, args) in commands:
- args = map (lambda x: (x[0] * (1.0 / options.grid_scale),
- x[1] * (1.0 / options.grid_scale)), args)
+ args = [(x[0] * (1.0 / options.grid_scale),
+ x[1] * (1.0 / options.grid_scale)) for x in args]
if c == 'moveto':
args = [(args[0][0] - z[0], args[0][1] - z[1])]
@@ -505,15 +502,13 @@
t1_outline += ' closepath '
if options.round_to_int:
- args = map (lambda x: '%d' % int (round (x)),
- unzip_pairs (args))
+ args = ['%d' % int (round (x)) for x in unzip_pairs (args)]
else:
- args = map (lambda x: '%d %d div' \
+ args = ['%d %d div' \
% (int (round (x*options.grid_scale/inv_scale)),
- int (round (options.grid_scale/inv_scale))),
- unzip_pairs (args))
+ int (round (options.grid_scale/inv_scale))) for x in unzip_pairs (args)]
- t1_outline = t1_outline + ' %s %s\n' % (string.join (args), c)
+ t1_outline = t1_outline + ' %s %s\n' % (' '.join (args), c)
t1_outline = t1_outline + ' endchar '
t1_outline = '{\n %s } |- \n' % t1_outline
@@ -521,8 +516,8 @@
return (bbox, t1_outline)
def read_gf_dims (name, c):
- str = popen ('%s/gf2pbm -n %d -s %s' % (bindir, c, name)).read ()
- m = re.search ('size: ([0-9]+)+x([0-9]+), offset: \(([0-9-]+),([0-9-]+)\)', str)
+ strng = popen ('%s/gf2pbm -n %d -s %s' % (bindir, c, name)).read ()
+ m = re.search ('size: ([0-9]+)+x([0-9]+), offset: \(([0-9-]+),([0-9-]+)\)', strng)
return tuple (map (int, m.groups ()))
@@ -588,14 +583,14 @@
to_type1 (t1os, font_bbox, fontname, encoding, magnification, fontinfo)
def ps_encode_encoding (encoding):
- str = ' %d array\n0 1 %d {1 index exch /.notdef put} for\n' \
+ strng = ' %d array\n0 1 %d {1 index exch /.notdef put} for\n' \
% (len (encoding), len (encoding)-1)
for i in range (0, len (encoding)):
if encoding[i] != ".notavail":
- str = str + 'dup %d /%s put\n' % (i, encoding[i])
+ strng = strng + 'dup %d /%s put\n' % (i, encoding[i])
- return str
+ return strng
def gen_unique_id (dict):
@@ -677,7 +672,7 @@
# need one extra entry for .notdef
'CharStringsLen': len (outlines) + 1,
- 'CharStrings': string.join (outlines),
+ 'CharStrings': ' '.join (outlines),
'CharBBox': '0 0 0 0',
}
@@ -705,7 +700,7 @@
return (llx, lly, urx, ury)
def get_binary (name):
- search_path = string.split (os.environ['PATH'], ':')
+ search_path = os.environ['PATH'].split (':')
for p in search_path:
nm = os.path.join (p, name)
if os.path.exists (nm):
@@ -721,11 +716,11 @@
stat = 1
if fontforge_cmd:
- stat = system ("%s -usage > pfv 2>&1 " % fontforge_cmd,
+ stat = system ("%s --help > pfv 2>&1 " % fontforge_cmd,
ignore_error = 1)
if stat != 0:
- warning ("Command `%s -usage' failed. Cannot simplify or convert to TTF.\n" % fontforge_cmd)
+ warning ("Command `%s --help' failed. Cannot simplify or convert to TTF.\n" % fontforge_cmd)
return ''
if fontforge_cmd == 'pfaedit' \
@@ -864,8 +859,8 @@
open ('to-ttf.pe', 'w').write (pe_script)
if options.verbose:
- print 'Fontforge script', pe_script
- system ("%s -script to-ttf.pe %s %s" % (ff_command,
+ print ('Fontforge script', pe_script)
+ system ("%s -quiet -script to-ttf.pe %s %s" % (ff_command,
shell_escape_filename (raw_name), shell_escape_filename (options.tfm_file)))
elif ff_needed and (options.simplify or options.round_to_int or 'ttf' in formats or 'svg' in formats):
error(_ ("fontforge is not installed; could not perform requested command"))
@@ -882,11 +877,11 @@
if get_binary("printafm"):
get_afm (t1_path, options.tfm_file, encoding, fontname + '.afm')
else:
- error(_ ("Neither fontforge nor ghostscript is not installed; could not perform requested command"))
+ error(_ ("Neither fontforge nor ghostscript is installed; could not perform requested command"))
def getenv (var, default):
- if os.environ.has_key (var):
+ if var in os.environ:
return os.environ[var]
else:
return default
@@ -974,7 +969,7 @@
action="store_true",
dest="keep_temp_dir",
help=_ ("Keep all output in directory %s.dir") % program_name)
- p.add_option ('','--magnification',
+ p.add_option ('--magnification',
dest="magnification",
metavar="MAG",
default=1000.0,
@@ -989,11 +984,12 @@
dest="formats",
default=[],
help=_("Which formats to generate (choices: AFM, PFA, PFB, TTF, SVG)"))
- p.add_option ('', '--simplify',
+ p.add_option ('--simplify',
action="store_true",
dest="simplify",
+ default=False,
help=_ ("Simplify using fontforge"))
- p.add_option ('', '--gffile',
+ p.add_option ('--gffile',
dest="gffile",
help= _("Use gf FILE instead of running Metafont"))
p.add_option ('-I', '--include',
@@ -1001,24 +997,23 @@
action="append",
default=[],
help=_("Add to path for searching files"))
- p.add_option ('','--glyphs',
+ p.add_option ('--glyphs',
default=[],
action="append",
dest="glyphs",
metavar="LIST",
help= _('Process only these glyphs. LIST is comma separated'))
- p.add_option ('', '--tfmfile',
+ p.add_option ('--tfmfile',
metavar='FILE',
action='store',
dest='tfm_file')
-
p.add_option ('-e', '--encoding',
metavar="FILE",
action='store',
dest="encoding_file",
default="",
help= _ ("Use encoding file FILE"))
- p.add_option ('','--keep-trying',
+ p.add_option ('--keep-trying',
dest='keep_trying',
default=False,
action="store_true",
@@ -1026,26 +1021,29 @@
p.add_option ('-w', '--warranty',
action="store_true",
help=_ ("show warranty and copyright"))
- p.add_option ('','--dos-kpath',
+ p.add_option ('--dos-kpath',
+ action='store_true',
dest="dos_kpath",
help=_("try to use Miktex kpsewhich"))
- p.add_option ('', '--potrace',
+ p.add_option ('--potrace',
+ action='store_true',
dest='potrace',
help=_ ("Use potrace"))
- p.add_option ('', '--autotrace',
+ p.add_option ('--autotrace',
+ action='store_true',
dest='autotrace',
help=_ ("Use autotrace"))
- p.add_option ('', '--no-afm',
+ p.add_option ('--no-afm',
action='store_false',
dest="read_afm",
default=True,
help=_("Don't read AFM file"))
- p.add_option ('','--noround',
- action="store_false",
+ p.add_option ('--noround',
+ action='store_false',
dest='round_to_int',
default=True,
- help= ("Do not round coordinates of control points to integer values (use with --grid)"))
- p.add_option ('','--grid',
+ help=_("Do not round coordinates of control points to integer values (use with --grid)"))
+ p.add_option ('--grid',
metavar='SCALE',
dest='grid_scale',
type='float',
@@ -1059,7 +1057,7 @@
global options
(options, files) = p.parse_args ()
-
+
if not files:
sys.stderr.write ('Need argument on command line \n')
p.print_help ()
@@ -1092,9 +1090,9 @@
glyph_range = []
for r in options.glyphs:
- glyph_subrange = map (int, string.split (r, '-'))
+ glyph_subrange = list(map (int, r.split('-')))
if len (glyph_subrange) == 2 and glyph_subrange[0] < glyph_subrange[1] + 1:
- glyph_range += range (glyph_subrange[0], glyph_subrange[1] + 1)
+ glyph_range += list(range(glyph_subrange[0], glyph_subrange[1] + 1))
else:
glyph_range.append (glyph_subrange[0])
@@ -1346,7 +1344,7 @@
if tfm_try:
options.tfm_file = tfm_try
- if not os.environ.has_key ("MFINPUTS"):
+ if "MFINPUTS" not in os.environ:
os.environ["MFINPUTS"] = os.getcwd () + ":"
## must change dir before calling mktextfm.
@@ -1377,7 +1375,7 @@
if not encoding_file:
codingfile = 'tex256.enc'
- if not coding_dict.has_key (metric.coding):
+ if metric.coding not in coding_dict:
sys.stderr.write ("Unknown encoding `%s'; assuming tex256.\n" % metric.coding)
else:
codingfile = coding_dict[metric.coding]
@@ -1389,7 +1387,7 @@
(enc_name, encoding) = read_encoding (encoding_file)
if not len (options.glyphs):
- options.glyphs = range (0, len (encoding))
+ options.glyphs = list(range(0, len (encoding)))
if not options.gffile:
# run mf
@@ -1415,11 +1413,15 @@
afmfile = ''
backend_options = getenv ('MFTRACE_BACKEND_OPTIONS', '')
def main ():
+ global temp_dir
+
files = parse_command_line ()
identify (sys.stderr)
for filename in files:
do_file (filename)
+ if temp_dir:
+ del temp_dir
sys.exit (exit_value)
if __name__ =='__main__':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/mftrace.spec new/mftrace-1.2.20/mftrace.spec
--- old/mftrace-1.2.18/mftrace.spec 2011-12-06 01:54:31.000000000 +0100
+++ new/mftrace-1.2.20/mftrace.spec 2019-09-16 10:17:37.000000000 +0200
@@ -1,7 +1,7 @@
#-*-RPM-SPEC-*-
Summary: Generate scalable fonts for TeX
Name: mftrace
-Version: 1.2.18
+Version: 1.2.20
Release: 1
URL: http://www.cs.uu.nl/~hanwen/mftrace
Source0: %{name}-%{version}.tar.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mftrace-1.2.18/tfm.py new/mftrace-1.2.20/tfm.py
--- old/mftrace-1.2.18/tfm.py 2006-12-21 01:55:38.000000000 +0100
+++ new/mftrace-1.2.20/tfm.py 2019-09-16 10:05:39.000000000 +0200
@@ -21,9 +21,9 @@
def compose_tfm_number (seq):
shift = (len (seq)-1)*8
- cs = 0L
+ cs = 0
for b in seq:
- cs = cs + (long (ord (b)) << shift)
+ cs = cs + (int (b) << shift)
shift = shift - 8
return cs
@@ -34,15 +34,15 @@
#
class Tfm_reader:
def get_string (self):
- b = ord (self.left[0])
- s =self.left[1:1 + b]
+ b = self.left[0]
+ s = (self.left[1:1 + b]).decode('ascii')
self.left = self.left[1+b:]
return s
def get_byte (self):
b = self.left [0]
self.left= self.left[1:]
- return ord(b)
+ return b
def extract_fixps (self, count):
fs = [0.0] * count
@@ -63,10 +63,9 @@
d = (b & 0x0f)
b = self.get_byte ()
-
- # huh? why >> 6 ?
- i = (b & 0xfc) >> 6
+ i = (b & 0xfc) >> 2
tag = (b & 0x3)
+
rem = self.get_byte ()
# rem is used as index for the ligature table.
@@ -83,7 +82,6 @@
return None
def __init__ (self, f):
- self.string = f
self.left = f
self.file_length = self.get_number (2);
@@ -159,7 +157,7 @@
return 0
tup = self.chars[code - self.start_code]
- return tup[0] <> 0
+ return tup[0] != 0
def get_char (self,code):
tup = self.chars[code - self.start_code]
@@ -176,10 +174,10 @@
def read_tfm_file (fn):
- reader =Tfm_reader (open (fn).read ())
+ reader =Tfm_reader (open (fn, 'rb').read ())
return reader.get_tfm ()
if __name__=='__main__':
t = read_tfm_file (sys.argv[1])
- print t, t.design_size, t.coding
+ print(t, t.design_size, t.coding)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package tntdb for openSUSE:Factory checked in at 2021-01-30 13:56:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tntdb (Old)
and /work/SRC/openSUSE:Factory/.tntdb.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tntdb"
Sat Jan 30 13:56:56 2021 rev:5 rq:867900 version:1.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/tntdb/tntdb.changes 2020-03-19 19:54:15.372277588 +0100
+++ /work/SRC/openSUSE:Factory/.tntdb.new.28504/tntdb.changes 2021-01-30 13:57:54.098410638 +0100
@@ -1,0 +2,10 @@
+Sat Jan 23 14:12:48 UTC 2021 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 1.4 (see
+ https://github.com/maekitalo/tntdb/compare/1.3...1.4
+ for a changelog)
+- Refreshed tntdb-1.3-avoid-version.patch as
+ tntdb-1.4-avoid-version.patch
+- Spec cleanup
+
+-------------------------------------------------------------------
Old:
----
tntdb-1.3-avoid-version.patch
tntdb-1.3.tar.gz
New:
----
tntdb-1.4-avoid-version.patch
tntdb-1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tntdb.spec ++++++
--- /var/tmp/diff_new_pack.p1OxrE/_old 2021-01-30 13:57:54.602411487 +0100
+++ /var/tmp/diff_new_pack.p1OxrE/_new 2021-01-30 13:57:54.606411495 +0100
@@ -1,7 +1,7 @@
#
# spec file for package tntdb
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,33 +16,30 @@
#
+%define sover 5
Name: tntdb
-Version: 1.3
+Version: 1.4
Release: 0
Summary: Library for simple database access
License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
URL: http://www.tntnet.org/index.html
Source0: http://www.tntnet.org/download/tntdb-%{version}.tar.gz
-Patch0: tntdb-1.3-avoid-version.patch
+Patch0: tntdb-1.4-avoid-version.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: doxygen
BuildRequires: findutils
BuildRequires: gcc-c++
-BuildRequires: glibc-devel
-BuildRequires: libcxxtools-devel
BuildRequires: libtool
-BuildRequires: lzo
-BuildRequires: lzo-devel
-BuildRequires: mysql-devel
-BuildRequires: postgresql-devel
+BuildRequires: pkgconfig(cxxtools)
+BuildRequires: pkgconfig(libmariadb)
+BuildRequires: pkgconfig(libpq)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(zlib)
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200
BuildRequires: postgresql-server-devel
%endif
-BuildRequires: sqlite-devel
-BuildRequires: zip
-BuildRequires: zlib-devel
%description
Tntdb is a library for simple database access.
@@ -63,12 +60,12 @@
This package contains documentation
-%package -n libtntdb4
+%package -n libtntdb%{sover}
Summary: Library for simple database access
Group: Development/Libraries/C and C++
Provides: tntdb
-%description -n libtntdb4
+%description -n libtntdb%{sover}
Tntdb is a library for simple database access.
The database independent layer offers easy to use methods for working with the database and also greatly simplifies resource-management. The classes hold reference-counted pointers to the actual implementation. They are copyable and assignable. The user can use the classes just like simple values. The resources they reference are freed, when the last reference is deleted. This happens normally just by leaving the scope. There is normally no reason to instantiate them dynamically on the heap.
@@ -78,7 +75,7 @@
%package -n libtntdb-devel
Summary: Development files for tntdb
Group: Development/Libraries/C and C++
-Requires: libtntdb4 = %{version}
+Requires: libtntdb%{sover} = %{version}
%description -n libtntdb-devel
Headers and so links for tntdb library.
@@ -112,8 +109,7 @@
Replication plugin for tntdb abstraction library.
%prep
-%setup -q -n tntdb-%{version}
-%patch0
+%autosetup -p1
%build
autoreconf -fi
@@ -123,20 +119,20 @@
--with-mysql \
--with-sqlite \
--with-doxygen
-make %{?_smp_mflags}
+%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
find %{buildroot} -name '*.a' -delete
-%post -n libtntdb4 -p /sbin/ldconfig
-%postun -n libtntdb4 -p /sbin/ldconfig
+%post -n libtntdb%{sover} -p /sbin/ldconfig
+%postun -n libtntdb%{sover} -p /sbin/ldconfig
%files doc
%doc %{_datadir}/doc/%{name}
-%files -n libtntdb4
+%files -n libtntdb%{sover}
%license COPYING
%{_libdir}/libtntdb.so.*
@@ -145,6 +141,7 @@
%{_includedir}/tntdb
%{_includedir}/tntdb.h
%{_libdir}/libtntdb.so
+%{_libdir}/pkgconfig/tntdb.pc
%files -n tntdb-mysql
%dir %{_libdir}/tntdb
++++++ tntdb-1.3-avoid-version.patch -> tntdb-1.4-avoid-version.patch ++++++
--- /work/SRC/openSUSE:Factory/tntdb/tntdb-1.3-avoid-version.patch 2015-05-19 23:38:22.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.tntdb.new.28504/tntdb-1.4-avoid-version.patch 2021-01-30 13:57:53.962410408 +0100
@@ -1,8 +1,8 @@
-Index: src/mysql/Makefile.am
+Index: tntdb-1.4/src/mysql/Makefile.am
===================================================================
---- src/mysql/Makefile.am.orig
-+++ src/mysql/Makefile.am
-@@ -9,7 +9,7 @@ if MAKE_MYSQL
+--- tntdb-1.4.orig/src/mysql/Makefile.am
++++ tntdb-1.4/src/mysql/Makefile.am
+@@ -7,7 +7,7 @@ if MAKE_MYSQL
driver_LTLIBRARIES = tntdb@abi_current@-mysql.la
tntdb@abi_current@_mysql_la_SOURCES = $(sources)
@@ -11,24 +11,24 @@
tntdb@abi_current@_mysql_la_LIBADD = $(top_builddir)/src/libtntdb.la
endif
-Index: src/oracle/Makefile.am
+Index: tntdb-1.4/src/oracle/Makefile.am
===================================================================
---- src/oracle/Makefile.am.orig
-+++ src/oracle/Makefile.am
-@@ -22,7 +22,7 @@ if MAKE_ORACLE
+--- tntdb-1.4.orig/src/oracle/Makefile.am
++++ tntdb-1.4/src/oracle/Makefile.am
+@@ -23,7 +23,7 @@ if MAKE_ORACLE
driver_LTLIBRARIES = tntdb@abi_current@-oracle.la
tntdb@abi_current@_oracle_la_SOURCES = $(sources)
-tntdb@abi_current@_oracle_la_LDFLAGS = -module -version-info @sonumber@ @SHARED_LIB_FLAG@
+tntdb@abi_current@_oracle_la_LDFLAGS = -module -avoid-version -version-info @sonumber@ @SHARED_LIB_FLAG@
- tntdb@abi_current@_oracle_la_LIBADD = $(top_builddir)/src/libtntdb.la -lclntsh
+ tntdb@abi_current@_oracle_la_LIBADD = $(top_builddir)/src/libtntdb.la @ORACLE_OCI_LDFLAGS@
endif
-Index: src/postgresql/Makefile.am
+Index: tntdb-1.4/src/postgresql/Makefile.am
===================================================================
---- src/postgresql/Makefile.am.orig
-+++ src/postgresql/Makefile.am
-@@ -9,7 +9,7 @@ if MAKE_POSTGRESQL
+--- tntdb-1.4.orig/src/postgresql/Makefile.am
++++ tntdb-1.4/src/postgresql/Makefile.am
+@@ -7,7 +7,7 @@ if MAKE_POSTGRESQL
driver_LTLIBRARIES = tntdb@abi_current@-postgresql.la
tntdb@abi_current@_postgresql_la_SOURCES = $(sources)
@@ -37,10 +37,10 @@
tntdb@abi_current@_postgresql_la_LIBADD = $(top_builddir)/src/libtntdb.la
endif
-Index: src/replicate/Makefile.am
+Index: tntdb-1.4/src/replicate/Makefile.am
===================================================================
---- src/replicate/Makefile.am.orig
-+++ src/replicate/Makefile.am
+--- tntdb-1.4.orig/src/replicate/Makefile.am
++++ tntdb-1.4/src/replicate/Makefile.am
@@ -7,7 +7,7 @@ if MAKE_REPLICATE
driver_LTLIBRARIES = tntdb@abi_current@-replicate.la
@@ -50,10 +50,10 @@
tntdb@abi_current@_replicate_la_LIBADD = $(top_builddir)/src/libtntdb.la
endif
-Index: src/sqlite/Makefile.am
+Index: tntdb-1.4/src/sqlite/Makefile.am
===================================================================
---- src/sqlite/Makefile.am.orig
-+++ src/sqlite/Makefile.am
+--- tntdb-1.4.orig/src/sqlite/Makefile.am
++++ tntdb-1.4/src/sqlite/Makefile.am
@@ -7,7 +7,7 @@ if MAKE_SQLITE
driver_LTLIBRARIES = tntdb@abi_current@-sqlite.la
++++++ tntdb-1.3.tar.gz -> tntdb-1.4.tar.gz ++++++
++++ 54193 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cxxtools for openSUSE:Factory checked in at 2021-01-30 13:56:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cxxtools (Old)
and /work/SRC/openSUSE:Factory/.cxxtools.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cxxtools"
Sat Jan 30 13:56:54 2021 rev:5 rq:867899 version:3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/cxxtools/cxxtools.changes 2020-01-31 23:59:12.863711411 +0100
+++ /work/SRC/openSUSE:Factory/.cxxtools.new.28504/cxxtools.changes 2021-01-30 13:57:53.226409168 +0100
@@ -1,0 +2,11 @@
+Sat Jan 23 13:52:33 UTC 2021 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 3.0 (see
+ https://github.com/maekitalo/cxxtools/compare/v2.2.1...V3.0 for
+ a changelog)
+- Drop cxxtools-2.2-iconvstream-return.diff (merged upstream)
+- Bump soversion to 10
+- Rename rpmlintrc source file as cxxtools-rpmlintrc
+- Spec cleanup
+
+-------------------------------------------------------------------
Old:
----
cxxtools-2.2-iconvstream-return.diff
rpmlintrc
v2.2.1.tar.gz
New:
----
cxxtools-3.0.tar.gz
cxxtools-rpmlintrc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cxxtools.spec ++++++
--- /var/tmp/diff_new_pack.68ITiW/_old 2021-01-30 13:57:53.774410092 +0100
+++ /var/tmp/diff_new_pack.68ITiW/_new 2021-01-30 13:57:53.774410092 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cxxtools
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,25 +17,21 @@
%define _lto_cflags %{nil}
-
-%define major 9
+%define major 10
Name: cxxtools
-Version: 2.2.1
+Version: 3.0
Release: 0
Summary: Collection of General-purpose C++ Classes
License: LGPL-2.1-only
Group: Development/Libraries/C and C++
URL: http://www.tntnet.org/cxxtools.html
-Source0: https://github.com/maekitalo/cxxtools/archive/v%{version}.tar.gz
-Source1: rpmlintrc
-# PATCH-FIX-UPSTREAM cxxtools-2.2-iconvstream-return.diff https://sourceforge.net/p/cxxtools/bugs/4/ tommi(a)tntnet.org -- fix "no return" warning
-Patch0: cxxtools-2.2-iconvstream-return.diff
+Source0: https://github.com/maekitalo/cxxtools/archive/V%{version}.tar.gz#/%{name}-%…
+Source99: cxxtools-rpmlintrc
BuildRequires: autoconf
-BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: libtool
-BuildRequires: pkg-config
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(openssl)
%description
Cxxtools is a collection of general-purpose C++ classes.
@@ -72,47 +68,47 @@
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
-%package -n libcxxtools-bin%major
+%package -n libcxxtools-bin%{major}
Summary: A C++ toolbox - binary RPC package
Group: System/Libraries
-%description -n libcxxtools-bin%major
+%description -n libcxxtools-bin%{major}
Cxxtools is a collection of general-purpose C++ classes. The library
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
-%package -n libcxxtools-http%major
+%package -n libcxxtools-http%{major}
Summary: A C++ toolbox - HTTP protocol implementation
Group: System/Libraries
-%description -n libcxxtools-http%major
+%description -n libcxxtools-http%{major}
Cxxtools is a collection of general-purpose C++ classes. The library
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
-%package -n libcxxtools-json%major
+%package -n libcxxtools-json%{major}
Summary: A C++ toolbox - JSON package
Group: System/Libraries
-%description -n libcxxtools-json%major
+%description -n libcxxtools-json%{major}
Cxxtools is a collection of general-purpose C++ classes. The library
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
-%package -n libcxxtools-unit%major
+%package -n libcxxtools-unit%{major}
Summary: A C++ toolbox - testing library
Group: System/Libraries
-%description -n libcxxtools-unit%major
+%description -n libcxxtools-unit%{major}
Cxxtools is a collection of general-purpose C++ classes. The library
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
-%package -n libcxxtools-xmlrpc%major
+%package -n libcxxtools-xmlrpc%{major}
Summary: A C++ toolbox - XMLRPC package
Group: System/Libraries
-%description -n libcxxtools-xmlrpc%major
+%description -n libcxxtools-xmlrpc%{major}
Cxxtools is a collection of general-purpose C++ classes. The library
includes classes for serialization, unicode text, multi threading,
networking, rpc, http client and server, xml, logging and many more.
@@ -120,12 +116,12 @@
%package devel
Summary: Cxxtools Development Files
Group: Development/Libraries/C and C++
-Requires: libcxxtools%major = %version
-Requires: libcxxtools-bin%major = %version
-Requires: libcxxtools-http%major = %version
-Requires: libcxxtools-json%major = %version
-Requires: libcxxtools-unit%major = %version
-Requires: libcxxtools-xmlrpc%major = %version
+Requires: libcxxtools%{major} = %{version}
+Requires: libcxxtools-bin%{major} = %{version}
+Requires: libcxxtools-http%{major} = %{version}
+Requires: libcxxtools-json%{major} = %{version}
+Requires: libcxxtools-unit%{major} = %{version}
+Requires: libcxxtools-xmlrpc%{major} = %{version}
# various home projects does use spurious lib prefix for devel files, lets be compatible
Provides: lib%{name}-devel = %{version}
@@ -156,11 +152,10 @@
- wrappers for atomic operations
%prep
-%setup -q
-%patch0 -p1
+%autosetup
%build
-./autogen.sh
+autoreconf -fiv
%configure \
--disable-static \
--with-iconvstream=yes \
@@ -168,7 +163,7 @@
--with-atomictype=pthread \
%endif
--with-pic
-make %{?_smp_mflags}
+%make_build
%install
%make_install
@@ -176,50 +171,45 @@
mkdir -p %{buildroot}/%{_datadir}/%{name}/
-%post -n libcxxtools%major -p /sbin/ldconfig
-%postun -n libcxxtools%major -p /sbin/ldconfig
-%post -n libcxxtools-bin%major -p /sbin/ldconfig
-%postun -n libcxxtools-bin%major -p /sbin/ldconfig
-%post -n libcxxtools-http%major -p /sbin/ldconfig
-%postun -n libcxxtools-http%major -p /sbin/ldconfig
-%post -n libcxxtools-json%major -p /sbin/ldconfig
-%postun -n libcxxtools-json%major -p /sbin/ldconfig
-%post -n libcxxtools-unit%major -p /sbin/ldconfig
-%postun -n libcxxtools-unit%major -p /sbin/ldconfig
-%post -n libcxxtools-xmlrpc%major -p /sbin/ldconfig
-%postun -n libcxxtools-xmlrpc%major -p /sbin/ldconfig
+%post -n libcxxtools%{major} -p /sbin/ldconfig
+%postun -n libcxxtools%{major} -p /sbin/ldconfig
+%post -n libcxxtools-bin%{major} -p /sbin/ldconfig
+%postun -n libcxxtools-bin%{major} -p /sbin/ldconfig
+%post -n libcxxtools-http%{major} -p /sbin/ldconfig
+%postun -n libcxxtools-http%{major} -p /sbin/ldconfig
+%post -n libcxxtools-json%{major} -p /sbin/ldconfig
+%postun -n libcxxtools-json%{major} -p /sbin/ldconfig
+%post -n libcxxtools-unit%{major} -p /sbin/ldconfig
+%postun -n libcxxtools-unit%{major} -p /sbin/ldconfig
+%post -n libcxxtools-xmlrpc%{major} -p /sbin/ldconfig
+%postun -n libcxxtools-xmlrpc%{major} -p /sbin/ldconfig
%files -n libcxxtools%{major}
-%defattr(-,root,root)
-%_libdir/libcxxtools.so.%{major}*
+%{_libdir}/libcxxtools.so.%{major}*
+
+%files -n libcxxtools-bin%{major}
+%{_libdir}/libcxxtools-bin.so.%{major}*
+
+%files -n libcxxtools-http%{major}
+%{_libdir}/libcxxtools-http.so.%{major}*
+
+%files -n libcxxtools-json%{major}
+%{_libdir}/libcxxtools-json.so.%{major}*
+
+%files -n libcxxtools-unit%{major}
+%{_libdir}/libcxxtools-unit.so.%{major}*
-%files -n libcxxtools-bin%major
-%defattr(-,root,root)
-%_libdir/libcxxtools-bin.so.%{major}*
-
-%files -n libcxxtools-http%major
-%defattr(-,root,root)
-%_libdir/libcxxtools-http.so.%{major}*
-
-%files -n libcxxtools-json%major
-%defattr(-,root,root)
-%_libdir/libcxxtools-json.so.%{major}*
-
-%files -n libcxxtools-unit%major
-%defattr(-,root,root)
-%_libdir/libcxxtools-unit.so.%{major}*
-
-%files -n libcxxtools-xmlrpc%major
-%defattr(-,root,root)
-%_libdir/libcxxtools-xmlrpc.so.%{major}*
+%files -n libcxxtools-xmlrpc%{major}
+%{_libdir}/libcxxtools-xmlrpc.so.%{major}*
%files devel
-%defattr(-,root,root)
%license COPYING
%doc AUTHORS ChangeLog README
%{_bindir}/cxxtools-config
+%{_bindir}/cxxtz
+%{_bindir}/siconvert
%{_includedir}/cxxtools/
-%{_libdir}/*.so
+%{_libdir}/libcxxtools*.so
%{_libdir}/pkgconfig/cxxtools*.pc
%changelog
++++++ cxxtools-rpmlintrc ++++++
addFilter("cxxtools-demo.*E: devel-file-in-non-devel-package")
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xreader for openSUSE:Factory checked in at 2021-01-30 13:56:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xreader (Old)
and /work/SRC/openSUSE:Factory/.xreader.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xreader"
Sat Jan 30 13:56:53 2021 rev:28 rq:867872 version:2.8.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/xreader/xreader.changes 2021-01-21 21:57:46.361866511 +0100
+++ /work/SRC/openSUSE:Factory/.xreader.new.28504/xreader.changes 2021-01-30 13:57:52.410407792 +0100
@@ -1,0 +2,5 @@
+Fri Jan 29 19:55:14 UTC 2021 - andy great <andythe_great(a)pm.me>
+
+- Re-enable build for extensions.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xreader.spec ++++++
--- /var/tmp/diff_new_pack.PZYdbY/_old 2021-01-30 13:57:53.022408824 +0100
+++ /var/tmp/diff_new_pack.PZYdbY/_new 2021-01-30 13:57:53.026408831 +0100
@@ -203,14 +203,14 @@
%build
%meson \
--Ddbus=false \
--Dintrospection=false \
--Ddjvu=false \
--Ddvi=false \
--Dt1lib=false \
--Dpixbuf=false \
--Dcomics=false \
--Dhelp_files=false \
+-Ddbus=true \
+-Dintrospection=true \
+-Ddjvu=true \
+-Ddvi=true \
+-Dt1lib=true \
+-Dpixbuf=true \
+-Dcomics=true \
+-Dhelp_files=true \
%meson_build
@@ -261,7 +261,7 @@
%dir %{_datadir}/appdata/
%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/icons/hicolor/*/*/*
-# %{_datadir}/help/C/%{name}
+%{_datadir}/help/C/%{name}
%{_mandir}/man?/*.?%{?ext_man}
# backends directory structure - backends go to their own packages
%dir %{_libdir}/%{name}/%{sover}/backends
@@ -279,15 +279,15 @@
%{_libdir}/libxreaderdocument.so.%{sover}*
%files -n %{typelib1}
-# %{_libdir}/girepository-1.0/XreaderDocument-1.5.typelib
+%{_libdir}/girepository-1.0/XreaderDocument-1.5.typelib
%files -n %{typelib2}
-# %{_libdir}/girepository-1.0/XreaderView-1.5.typelib
+%{_libdir}/girepository-1.0/XreaderView-1.5.typelib
%files devel
%{_includedir}/%{name}/
%{_libdir}/*.so
-# %{_datadir}/gir-1.0/*.gir
+%{_datadir}/gir-1.0/*.gir
%{_libdir}/pkgconfig/*.pc
%files -n xreader-plugin-epubdocument
@@ -311,19 +311,19 @@
%{_libdir}/%{name}/%{sover}/backends/xpsdocument.xreader-backend
%files -n xreader-plugin-comicsdocument
-# %{_libdir}/%{name}/%{sover}/backends/comicsdocument.xreader-backend
-# %{_libdir}/%{name}/%{sover}/backends/libcomicsdocument.so
+%{_libdir}/%{name}/%{sover}/backends/comicsdocument.xreader-backend
+%{_libdir}/%{name}/%{sover}/backends/libcomicsdocument.so
%files -n xreader-plugin-djvudocument
-# %{_libdir}/%{name}/%{sover}/backends/djvudocument.xreader-backend
-# %{_libdir}/%{name}/%{sover}/backends/libdjvudocument.so
+%{_libdir}/%{name}/%{sover}/backends/djvudocument.xreader-backend
+%{_libdir}/%{name}/%{sover}/backends/libdjvudocument.so
%files -n xreader-plugin-dvidocument
-# %{_libdir}/%{name}/%{sover}/backends/dvidocument.xreader-backend
-# %{_libdir}/%{name}/%{sover}/backends/libdvidocument.so
+%{_libdir}/%{name}/%{sover}/backends/dvidocument.xreader-backend
+%{_libdir}/%{name}/%{sover}/backends/libdvidocument.so
%files -n xreader-plugin-pixbufdocument
-# %{_libdir}/%{name}/%{sover}/backends/pixbufdocument.xreader-backend
-# %{_libdir}/%{name}/%{sover}/backends/libpixbufdocument.so
+%{_libdir}/%{name}/%{sover}/backends/pixbufdocument.xreader-backend
+%{_libdir}/%{name}/%{sover}/backends/libpixbufdocument.so
%changelog
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package vulkan-tools for openSUSE:Factory checked in at 2021-01-30 13:56:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vulkan-tools (Old)
and /work/SRC/openSUSE:Factory/.vulkan-tools.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vulkan-tools"
Sat Jan 30 13:56:51 2021 rev:27 rq:867836 version:1.2.166
Changes:
--------
--- /work/SRC/openSUSE:Factory/vulkan-tools/vulkan-tools.changes 2021-01-21 21:54:16.493768433 +0100
+++ /work/SRC/openSUSE:Factory/.vulkan-tools.new.28504/vulkan-tools.changes 2021-01-30 13:57:51.590406409 +0100
@@ -1,0 +2,8 @@
+Sat Jan 23 00:48:01 UTC 2021 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 1.2.166:
+ * build: Update known-good files for 1.2.166 header
+ * vkcube: Updated to support portability extension properly
+ * vkcube: portabilty extension as text so it builds on all platforms
+
+-------------------------------------------------------------------
Old:
----
v1.2.165.tar.gz
New:
----
v1.2.166.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vulkan-tools.spec ++++++
--- /var/tmp/diff_new_pack.9W0vt9/_old 2021-01-30 13:57:52.118407300 +0100
+++ /var/tmp/diff_new_pack.9W0vt9/_new 2021-01-30 13:57:52.118407300 +0100
@@ -17,7 +17,7 @@
Name: vulkan-tools
-Version: 1.2.165
+Version: 1.2.166
Release: 0
Summary: Diagnostic utilities for Vulkan
License: Apache-2.0
++++++ v1.2.165.tar.gz -> v1.2.166.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.2.165/build-android/vulkan-headers_revision_android new/Vulkan-Tools-1.2.166/build-android/vulkan-headers_revision_android
--- old/Vulkan-Tools-1.2.165/build-android/vulkan-headers_revision_android 2020-12-28 22:13:43.000000000 +0100
+++ new/Vulkan-Tools-1.2.166/build-android/vulkan-headers_revision_android 2021-01-13 18:49:52.000000000 +0100
@@ -1 +1 @@
-v1.2.165
+v1.2.166
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.2.165/cube/cube.c new/Vulkan-Tools-1.2.166/cube/cube.c
--- old/Vulkan-Tools-1.2.165/cube/cube.c 2020-12-28 22:13:43.000000000 +0100
+++ new/Vulkan-Tools-1.2.166/cube/cube.c 2021-01-13 18:49:52.000000000 +0100
@@ -343,7 +343,7 @@
bool use_staging_buffer;
bool separate_present_queue;
bool is_minimized;
- uint32_t gpu_number;
+ int32_t gpu_number;
bool VK_KHR_incremental_present_enabled;
@@ -1364,10 +1364,10 @@
.format = demo->format,
.components =
{
- .r = VK_COMPONENT_SWIZZLE_R,
- .g = VK_COMPONENT_SWIZZLE_G,
- .b = VK_COMPONENT_SWIZZLE_B,
- .a = VK_COMPONENT_SWIZZLE_A,
+ .r = VK_COMPONENT_SWIZZLE_IDENTITY,
+ .g = VK_COMPONENT_SWIZZLE_IDENTITY,
+ .b = VK_COMPONENT_SWIZZLE_IDENTITY,
+ .a = VK_COMPONENT_SWIZZLE_IDENTITY,
},
.subresourceRange =
{.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, .baseMipLevel = 0, .levelCount = 1, .baseArrayLayer = 0, .layerCount = 1},
@@ -1729,10 +1729,10 @@
.format = tex_format,
.components =
{
- VK_COMPONENT_SWIZZLE_R,
- VK_COMPONENT_SWIZZLE_G,
- VK_COMPONENT_SWIZZLE_B,
- VK_COMPONENT_SWIZZLE_A,
+ VK_COMPONENT_SWIZZLE_IDENTITY,
+ VK_COMPONENT_SWIZZLE_IDENTITY,
+ VK_COMPONENT_SWIZZLE_IDENTITY,
+ VK_COMPONENT_SWIZZLE_IDENTITY,
},
.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1},
.flags = 0,
@@ -3136,6 +3136,9 @@
demo->extension_names[demo->enabled_extension_count++] = VK_EXT_METAL_SURFACE_EXTENSION_NAME;
}
#endif
+ if (!strcmp(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, instance_extensions[i].extensionName)) {
+ demo->extension_names[demo->enabled_extension_count++] = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME;
+ }
if (!strcmp(VK_EXT_DEBUG_UTILS_EXTENSION_NAME, instance_extensions[i].extensionName)) {
if (demo->validate) {
demo->extension_names[demo->enabled_extension_count++] = VK_EXT_DEBUG_UTILS_EXTENSION_NAME;
@@ -3245,8 +3248,6 @@
inst_info.pNext = &dbg_messenger_create_info;
}
- uint32_t gpu_count;
-
err = vkCreateInstance(&inst_info, NULL, &demo->inst);
if (err == VK_ERROR_INCOMPATIBLE_DRIVER) {
ERR_EXIT(
@@ -3266,22 +3267,12 @@
"vkCreateInstance Failure");
}
- /* Make initial call to query gpu_count, then second call for gpu info*/
+ /* Make initial call to query gpu_count, then second call for gpu info */
+ uint32_t gpu_count = 0;
err = vkEnumeratePhysicalDevices(demo->inst, &gpu_count, NULL);
assert(!err);
- if (gpu_count > 0) {
- VkPhysicalDevice *physical_devices = malloc(sizeof(VkPhysicalDevice) * gpu_count);
- err = vkEnumeratePhysicalDevices(demo->inst, &gpu_count, physical_devices);
- assert(!err);
- if (demo->gpu_number > gpu_count - 1) {
- fprintf(stderr, "Gpu %u specified is not present, gpu count = %u\n", demo->gpu_number, gpu_count);
- fprintf(stderr, "Continuing with gpu 0\n");
- demo->gpu_number = 0;
- }
- demo->gpu = physical_devices[demo->gpu_number];
- free(physical_devices);
- } else {
+ if (gpu_count <= 0) {
ERR_EXIT(
"vkEnumeratePhysicalDevices reported zero accessible devices.\n\n"
"Do you have a compatible Vulkan installable client driver (ICD) installed?\n"
@@ -3289,6 +3280,57 @@
"vkEnumeratePhysicalDevices Failure");
}
+ VkPhysicalDevice *physical_devices = malloc(sizeof(VkPhysicalDevice) * gpu_count);
+ err = vkEnumeratePhysicalDevices(demo->inst, &gpu_count, physical_devices);
+ assert(!err);
+ if (demo->gpu_number >= 0 && !((uint32_t)demo->gpu_number < gpu_count)) {
+ fprintf(stderr, "GPU %d specified is not present, GPU count = %u\n", demo->gpu_number, gpu_count);
+ ERR_EXIT("Specified GPU number is not present", "User Error");
+ }
+
+ /* Try to auto select most suitable device */
+ if (demo->gpu_number == -1) {
+ uint32_t count_device_type[VK_PHYSICAL_DEVICE_TYPE_CPU + 1];
+ memset(count_device_type, 0, sizeof(count_device_type));
+
+ VkPhysicalDeviceProperties physicalDeviceProperties;
+ for (uint32_t i = 0; i < gpu_count; i++) {
+ vkGetPhysicalDeviceProperties(physical_devices[i], &physicalDeviceProperties);
+ assert(physicalDeviceProperties.deviceType <= VK_PHYSICAL_DEVICE_TYPE_CPU);
+ count_device_type[physicalDeviceProperties.deviceType]++;
+ }
+
+ VkPhysicalDeviceType search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU;
+ if (count_device_type[VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU]) {
+ search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU;
+ } else if (count_device_type[VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU]) {
+ search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
+ } else if (count_device_type[VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU]) {
+ search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
+ } else if (count_device_type[VK_PHYSICAL_DEVICE_TYPE_CPU]) {
+ search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_CPU;
+ } else if (count_device_type[VK_PHYSICAL_DEVICE_TYPE_OTHER]) {
+ search_for_device_type = VK_PHYSICAL_DEVICE_TYPE_OTHER;
+ }
+
+ for (uint32_t i = 0; i < gpu_count; i++) {
+ vkGetPhysicalDeviceProperties(physical_devices[i], &physicalDeviceProperties);
+ if (physicalDeviceProperties.deviceType == search_for_device_type) {
+ demo->gpu_number = i;
+ break;
+ }
+ }
+ }
+ assert(demo->gpu_number >= 0);
+ demo->gpu = physical_devices[demo->gpu_number];
+ {
+ VkPhysicalDeviceProperties physicalDeviceProperties;
+ vkGetPhysicalDeviceProperties(demo->gpu, &physicalDeviceProperties);
+ fprintf(stderr, "Selected GPU %d: %s, type: %u\n", demo->gpu_number, physicalDeviceProperties.deviceName,
+ physicalDeviceProperties.deviceType);
+ }
+ free(physical_devices);
+
/* Look for device extensions */
uint32_t device_extension_count = 0;
VkBool32 swapchainExtFound = 0;
@@ -3308,6 +3350,9 @@
swapchainExtFound = 1;
demo->extension_names[demo->enabled_extension_count++] = VK_KHR_SWAPCHAIN_EXTENSION_NAME;
}
+ if (!strcmp("VK_KHR_portability_subset", device_extensions[i].extensionName)) {
+ demo->extension_names[demo->enabled_extension_count++] = "VK_KHR_portability_subset";
+ }
assert(demo->enabled_extension_count < 64);
}
@@ -3810,8 +3855,8 @@
memset(demo, 0, sizeof(*demo));
demo->presentMode = VK_PRESENT_MODE_FIFO_KHR;
demo->frameCount = INT32_MAX;
- /* For cube demo we just grab the first physical device by default */
- demo->gpu_number = 0;
+ /* Autodetect suitable / best GPU by default */
+ demo->gpu_number = -1;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "--use_staging") == 0) {
@@ -3859,6 +3904,7 @@
}
if ((strcmp(argv[i], "--gpu_number") == 0) && (i < argc - 1)) {
demo->gpu_number = atoi(argv[i + 1]);
+ assert(demo->gpu_number >= 0);
i++;
continue;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.2.165/cube/cube.cpp new/Vulkan-Tools-1.2.166/cube/cube.cpp
--- old/Vulkan-Tools-1.2.165/cube/cube.cpp 2020-12-28 22:13:43.000000000 +0100
+++ new/Vulkan-Tools-1.2.166/cube/cube.cpp 2021-01-13 18:49:52.000000000 +0100
@@ -311,7 +311,7 @@
bool use_staging_buffer;
bool use_xlib;
bool separate_present_queue;
- uint32_t gpu_number;
+ int32_t gpu_number;
vk::Instance inst;
vk::PhysicalDevice gpu;
@@ -940,8 +940,8 @@
presentMode = vk::PresentModeKHR::eFifo;
frameCount = UINT32_MAX;
use_xlib = false;
- /* For cube demo we just grab the first physical device by default */
- gpu_number = 0;
+ /* Autodetect suitable / best GPU by default */
+ gpu_number = -1;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "--use_staging") == 0) {
@@ -976,6 +976,7 @@
}
if ((strcmp(argv[i], "--gpu_number") == 0) && (i < argc - 1)) {
gpu_number = atoi(argv[i + 1]);
+ assert(gpu_number >= 0);
i++;
continue;
}
@@ -988,7 +989,7 @@
<< "\t\tVK_PRESENT_MODE_IMMEDIATE_KHR = " << VK_PRESENT_MODE_IMMEDIATE_KHR << "\n"
<< "\t\tVK_PRESENT_MODE_MAILBOX_KHR = " << VK_PRESENT_MODE_MAILBOX_KHR << "\n"
<< "\t\tVK_PRESENT_MODE_FIFO_KHR = " << VK_PRESENT_MODE_FIFO_KHR << "\n"
- << "\t\tVK_PRESENT_MODE_FIFO_RELAXED_KHR = " << VK_PRESENT_MODE_FIFO_RELAXED_KHR;
+ << "\t\tVK_PRESENT_MODE_FIFO_RELAXED_KHR = " << VK_PRESENT_MODE_FIFO_RELAXED_KHR << "\n";
#if defined(_WIN32)
if (!suppress_popups) MessageBox(NULL, usage.str().c_str(), "Usage Error", MB_OK);
@@ -1110,6 +1111,9 @@
VERIFY(result == vk::Result::eSuccess);
for (uint32_t i = 0; i < instance_extension_count; i++) {
+ if (!strcmp(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, instance_extensions[i].extensionName)) {
+ extension_names[enabled_extension_count++] = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME;
+ }
if (!strcmp(VK_KHR_SURFACE_EXTENSION_NAME, instance_extensions[i].extensionName)) {
surfaceExtFound = 1;
extension_names[enabled_extension_count++] = VK_KHR_SURFACE_EXTENSION_NAME;
@@ -1149,7 +1153,6 @@
platformSurfaceExtFound = 1;
extension_names[enabled_extension_count++] = VK_EXT_METAL_SURFACE_EXTENSION_NAME;
}
-
#endif
assert(enabled_extension_count < 64);
}
@@ -1241,22 +1244,12 @@
"vkCreateInstance Failure");
}
- /* Make initial call to query gpu_count, then second call for gpu info*/
- uint32_t gpu_count;
+ /* Make initial call to query gpu_count, then second call for gpu info */
+ uint32_t gpu_count = 0;
result = inst.enumeratePhysicalDevices(&gpu_count, static_cast<vk::PhysicalDevice *>(nullptr));
VERIFY(result == vk::Result::eSuccess);
- if (gpu_count > 0) {
- std::unique_ptr<vk::PhysicalDevice[]> physical_devices(new vk::PhysicalDevice[gpu_count]);
- result = inst.enumeratePhysicalDevices(&gpu_count, physical_devices.get());
- VERIFY(result == vk::Result::eSuccess);
- if (gpu_number > gpu_count - 1) {
- fprintf(stderr, "Gpu %u specified is not present, gpu count = %u\n", gpu_number, gpu_count);
- fprintf(stderr, "Continuing with gpu 0\n");
- gpu_number = 0;
- }
- gpu = physical_devices[gpu_number];
- } else {
+ if (gpu_count <= 0) {
ERR_EXIT(
"vkEnumeratePhysicalDevices reported zero accessible devices.\n\n"
"Do you have a compatible Vulkan installable client driver (ICD) installed?\n"
@@ -1264,6 +1257,54 @@
"vkEnumeratePhysicalDevices Failure");
}
+ std::unique_ptr<vk::PhysicalDevice[]> physical_devices(new vk::PhysicalDevice[gpu_count]);
+ result = inst.enumeratePhysicalDevices(&gpu_count, physical_devices.get());
+ VERIFY(result == vk::Result::eSuccess);
+
+ if (gpu_number >= 0 && !((uint32_t)gpu_number < gpu_count)) {
+ fprintf(stderr, "GPU %d specified is not present, GPU count = %u\n", gpu_number, gpu_count);
+ ERR_EXIT("Specified GPU number is not present", "User Error");
+ }
+
+ /* Try to auto select most suitable device */
+ if (gpu_number == -1) {
+ uint32_t count_device_type[VK_PHYSICAL_DEVICE_TYPE_CPU + 1];
+ memset(count_device_type, 0, sizeof(count_device_type));
+
+ for (uint32_t i = 0; i < gpu_count; i++) {
+ const auto physicalDeviceProperties = physical_devices[i].getProperties();
+ assert(static_cast<int>(physicalDeviceProperties.deviceType) <= VK_PHYSICAL_DEVICE_TYPE_CPU);
+ count_device_type[static_cast<int>(physicalDeviceProperties.deviceType)]++;
+ }
+
+ const vk::PhysicalDeviceType device_type_preference[] = {
+ vk::PhysicalDeviceType::eDiscreteGpu, vk::PhysicalDeviceType::eIntegratedGpu, vk::PhysicalDeviceType::eVirtualGpu,
+ vk::PhysicalDeviceType::eCpu, vk::PhysicalDeviceType::eOther};
+ vk::PhysicalDeviceType search_for_device_type = vk::PhysicalDeviceType::eDiscreteGpu;
+ for (uint32_t i = 0; i < sizeof(device_type_preference) / sizeof(vk::PhysicalDeviceType); i++) {
+ if (count_device_type[static_cast<int>(device_type_preference[i])]) {
+ search_for_device_type = device_type_preference[i];
+ break;
+ }
+ }
+
+ for (uint32_t i = 0; i < gpu_count; i++) {
+ const auto physicalDeviceProperties = physical_devices[i].getProperties();
+ if (physicalDeviceProperties.deviceType == search_for_device_type) {
+ gpu_number = i;
+ break;
+ }
+ }
+ }
+ assert(gpu_number >= 0);
+ gpu = physical_devices[gpu_number];
+ {
+ auto physicalDeviceProperties = gpu.getProperties();
+ fprintf(stderr, "Selected GPU %d: %s, type: %s\n", gpu_number, physicalDeviceProperties.deviceName.data(),
+ to_string(physicalDeviceProperties.deviceType).c_str());
+ }
+ physical_devices.reset();
+
/* Look for device extensions */
uint32_t device_extension_count = 0;
vk::Bool32 swapchainExtFound = VK_FALSE;
@@ -1284,6 +1325,9 @@
swapchainExtFound = 1;
extension_names[enabled_extension_count++] = VK_KHR_SWAPCHAIN_EXTENSION_NAME;
}
+ if (!strcmp("VK_KHR_portability_subset", device_extensions[i].extensionName)) {
+ extension_names[enabled_extension_count++] = "VK_KHR_portability_subset";
+ }
assert(enabled_extension_count < 64);
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.2.165/scripts/known_good.json new/Vulkan-Tools-1.2.166/scripts/known_good.json
--- old/Vulkan-Tools-1.2.165/scripts/known_good.json 2020-12-28 22:13:43.000000000 +0100
+++ new/Vulkan-Tools-1.2.166/scripts/known_good.json 2021-01-13 18:49:52.000000000 +0100
@@ -6,7 +6,7 @@
"sub_dir" : "Vulkan-Headers",
"build_dir" : "Vulkan-Headers/build",
"install_dir" : "Vulkan-Headers/build/install",
- "commit" : "v1.2.165"
+ "commit" : "v1.2.166"
},
{
"name" : "MoltenVK",
@@ -30,7 +30,7 @@
"sub_dir" : "Vulkan-Loader",
"build_dir" : "Vulkan-Loader/build",
"install_dir" : "Vulkan-Loader/build/install",
- "commit" : "v1.2.165",
+ "commit" : "v1.2.166",
"deps" : [
{
"var_name" : "VULKAN_HEADERS_INSTALL_DIR",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.2.165/vulkaninfo/vulkaninfo.md new/Vulkan-Tools-1.2.166/vulkaninfo/vulkaninfo.md
--- old/Vulkan-Tools-1.2.165/vulkaninfo/vulkaninfo.md 2020-12-28 22:13:43.000000000 +0100
+++ new/Vulkan-Tools-1.2.166/vulkaninfo/vulkaninfo.md 2021-01-13 18:49:52.000000000 +0100
@@ -83,3 +83,15 @@
Note: In order to review and/or save the output produced when using Visual Studio execute `vulkaninfo` with the JSON option, you will have to redirect output to a file by modifying the command line arguments in the debug options.
Note: The Vulkan Info binary found in the Vulkan SDK is renamed to `vulkaninfoSDK.exe`. This was done to demark any Vulkan Info version installed by the Vulkan Runtime Package, which is from an IHV distribution. When using command line on Windows, the Vulkan info version used will be from the IHV distribution, not the SDK. To run the SDK version, either use the start menu shortcuts or navigate to the `VulkanSDK/Bin` directory and run `vulkaninfoSDK.exe` directly.
+
+### iOS Devices
+
+Vulkan Info is now avaialble for iOS devices, but must be built manually.
+
+The Vulkan Info project contains a folder at [vulkaninfo/ios](https://github.com/KhronosGroup/Vulkan-Tools/tree/master/vu… that contains an XCode project that will build Vulkan Info for iOS devices. In order to deploy to an iOS device, the developer must be a member of the [Apple Developer Program](https://developer.apple.com/programs/). In addition, Vulkan Info makes use of the [MoltenVK](https://github.com/KhronosGroup/MoltenVK) libraries, which is a seperate project from Vulkan-Tools and you will need to add the MoltenVK libraries to your XCode project manually. See the [LunarG Getting Started with the macOS SDK](https://vulkan.lunarg.com/doc/sdk/latest/mac/getting_started.html) guide for more information about using MoltenVK in the Vulkan SDK.
+
+When Vulkan Info is run on an iOS device, it will create the standard vulkaninfo.json file and also a portability.json file. An HTML file is also created, and is displayed in a webview on the iOS device when the application is run. These files are located on the iOS device, and are available via the [iOS application file sharing mechanism](https://support.apple.com/en-us/HT201301) via iTunes for Windows or macOS. You can also access these files using the macOS Finder or Windows Explorer when the device is attached to the host computer via a USB cable. Select the device, and navigate to the "vulkaninfo" folder to access these files. There is currently no supported means to access these files on an iOS device from a Linux host computer.
+
+
+
+
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hdf5 for openSUSE:Factory checked in at 2021-01-30 13:56:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hdf5 (Old)
and /work/SRC/openSUSE:Factory/.hdf5.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hdf5"
Sat Jan 30 13:56:49 2021 rev:72 rq:867822 version:1.10.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/hdf5/hdf5.changes 2020-11-29 12:23:48.745722062 +0100
+++ /work/SRC/openSUSE:Factory/.hdf5.new.28504/hdf5.changes 2021-01-30 13:57:50.546404649 +0100
@@ -1,0 +2,5 @@
+Fri Jan 29 22:05:44 UTC 2021 - Egbert Eich <eich(a)suse.com>
+
+- Fix update_so_version.sh, write so versions to file being included.
+
+-------------------------------------------------------------------
New:
----
so_versions
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hdf5.spec ++++++
--- /var/tmp/diff_new_pack.sSEwZT/_old 2021-01-30 13:57:51.250405836 +0100
+++ /var/tmp/diff_new_pack.sSEwZT/_new 2021-01-30 13:57:51.254405843 +0100
@@ -1,7 +1,7 @@
#
# spec file for package hdf5
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -412,14 +412,8 @@
%define vname %{pname}
%endif
-# TODO: The so numbers autodetected by update_so_version.sh
-# do not match the so numbers that are actually built.
-%define sonum 103
-%define sonum_CXX 103
-%define sonum_F 102
-%define sonum_HL 100
-%define sonum_HL_CXX 100
-%define sonum_HL_F 100
+# Run 'sh ./update_so_version.sh' when updating hdf5!
+%include %{_sourcedir}/so_versions
Name: %{package_name}
Version: %vers
@@ -429,7 +423,7 @@
Group: Productivity/Scientific/Other
URL: https://www.hdfgroup.org/HDF5/
Source0: https://www.hdfgroup.org/ftp/HDF5/releases/%{pname}-%{short_ver}/%{pname}-%…
-Source100: _multibuild
+Source100: so_versions
Source1000: update_so_version.sh
Patch0: hdf5-LD_LIBRARY_PATH.patch
# not really needed but we want to get noticed if hdf5 doesn' t know our host
++++++ so_versions ++++++
%define sonum 103
%define sonum_CXX 103
%define sonum_F 102
%define sonum_HL 100
%define sonum_HL_CXX 100
%define sonum_HL_F 100
++++++ update_so_version.sh ++++++
--- /var/tmp/diff_new_pack.sSEwZT/_old 2021-01-30 13:57:51.338405984 +0100
+++ /var/tmp/diff_new_pack.sSEwZT/_new 2021-01-30 13:57:51.342405991 +0100
@@ -6,15 +6,10 @@
exit 1
}
-dbg()
-{
- echo "dbg: $@" >&2
-}
-
cleanup()
{
- rm -f lt_vers.sh sonum_spec.sed
- rm -f hdf5.spec.tmp
+ rm -f ${spectmp}
+ rm -f ${shtmp}
}
## We are going to parse these variables from tarball:
@@ -24,47 +19,46 @@
# LT_HL_VERS_INTERFACE
# LT_HL_CXX_VERS_INTERFACE
# LT_HL_F_VERS_INTERFACE
-# LT_TOOLS_VERS_INTERFACE
cleanup
-VER="$(grep -m1 "^Version:" hdf5.spec)" || exit_error "can't grep version"
+spectmp=$(mktemp hdf-XXXX.spec)
+shtmp=$(mktemp lt-XXXX.sh)
+outtmp=$(mktemp so-XXXX)
+sed -e "s/@BUILD_FLAVOR@/standard/" hdf5.spec > ${spectmp}
+VER="$(rpmspec --define "_sourcedir $(pwd)" -P ${spectmp} | grep -m1 "^Version:")" || \
+ exit_error "can't grep version"
read x VER <<<$VER
-SRC="$(grep -m1 "^Source0:" hdf5.spec)" || exit_error "can't grep source"
+SRC="$(rpmspec --define "_sourcedir $(pwd)" -P ${spectmp} | grep -m1 "^Source0:")" || \
+ exit_error "can't grep source"
read x SRC <<<$SRC
SRC=$(basename "$SRC" | sed "s/%{version}/$VER/")
test -f "$SRC" || exit_error "tarball '$SRC' does not exist"
-dbg "inspecting $SRC"
tar --wildcards -x -O -f "$SRC" "*/config/lt_vers.am" \
| tr -d ' \t' \
- | grep "^LT_.*INTERFACE=" \
- > lt_vers.sh \
+ | grep -E "^LT_.*INTERFACE=|^LT_.*AGE=" \
+ > ${shtmp} \
|| exit_error "can't grep interface versions"
-# we expect exactly 7 variables
-. lt_vers.sh || exit_error "can't source lt_vers.sh"
-test $(wc -l < lt_vers.sh) -le "7" \
- || exit_error "more than 7 vars found, update this script!"
-
-for infix in "" _CXX _F _HL _HL_CXX _HL_F _TOOLS; do
- var="LT${infix}_VERS_INTERFACE"
- test "${!var}" -gt 0 || exit_error "$var='${!var}' bad or undefined"
- dbg "update $var=${!var}"
- def_sonum="sonum${infix}"
- # create sed scripts for spec file
- echo "s/^%define $def_sonum .*/%define $def_sonum ${!var}/" >> sonum_spec.sed
-done
+source ./${shtmp} || exit_error "can't source ${shtmp}"
-# update spec file if needed
-sed -f sonum_spec.sed hdf5.spec > hdf5.spec.tmp
-if diff -q hdf5.spec.tmp hdf5.spec &>/dev/null; then
- dbg "hdf5.spec was up-to-date"
-else
- mv hdf5.spec.tmp hdf5.spec
- echo "hdf5.spec updated" >&2
-fi
+for infix in "" _CXX _F _HL _HL_CXX _HL_F; do
+ current="LT${infix}_VERS_INTERFACE"
+ age="LT${infix}_VERS_AGE"
+ currv=$(eval "echo \$$current")
+ agev=$(eval "echo \$$age")
+ if [ -n "$currv" -a -n "$agev" ]; then
+ echo %define sonum${infix} $((currv - agev)) >> ${outtmp}
+ else
+ rm -f ${outtmp}
+ cleanup
+ exit 1
+ fi
+done
+[ -e ${outtmp} ] && mv ${outtmp} so_versions
+
cleanup
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package entr for openSUSE:Factory checked in at 2021-01-30 13:56:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/entr (Old)
and /work/SRC/openSUSE:Factory/.entr.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "entr"
Sat Jan 30 13:56:45 2021 rev:8 rq:867824 version:4.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/entr/entr.changes 2020-07-07 13:00:32.238169960 +0200
+++ /work/SRC/openSUSE:Factory/.entr.new.28504/entr.changes 2021-01-30 13:57:49.754403314 +0100
@@ -1,0 +2,9 @@
+Fri Jan 29 23:43:44 UTC 2021 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 4.7:
+ * Use system file descriptor limits when max_user_watches is not accessible
+ * Return the exit status of the child process when the '-z' option is used
+ * Handle SIGHUP so child process are terminated when a terminal is closed
+ * More accurately return shell exit code using '-s' option
+
+-------------------------------------------------------------------
Old:
----
entr-4.6.tar.gz
entr-4.6.tar.gz.sig
New:
----
entr-4.7.tar.gz
entr-4.7.tar.gz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ entr.spec ++++++
--- /var/tmp/diff_new_pack.fErHpA/_old 2021-01-30 13:57:50.274404191 +0100
+++ /var/tmp/diff_new_pack.fErHpA/_new 2021-01-30 13:57:50.278404198 +0100
@@ -1,7 +1,7 @@
#
# spec file for package entr
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2016 Daniel Lichtenberger
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: entr
-Version: 4.6
+Version: 4.7
Release: 0
Summary: A utility for running arbitrary commands when files change
License: ISC
++++++ entr-4.6.tar.gz -> entr-4.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/Makefile.bsd new/entr-4.7/Makefile.bsd
--- old/entr-4.6/Makefile.bsd 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/Makefile.bsd 2021-01-29 15:36:21.000000000 +0100
@@ -1,19 +1,10 @@
PREFIX ?= /usr/local
MANPREFIX ?= ${PREFIX}/man
-RELEASE = 4.6
+RELEASE = 4.7
CPPFLAGS += -DRELEASE=\"${RELEASE}\"
all: versioncheck entr
-env:
- @echo "CC = ${CC}"
- @echo "DESTDIR = ${DESTDIR}"
- @echo "EXTRA_SRC = ${EXTRA_SRC}"
- @echo "LDFLAGS = ${LDFLAGS}"
- @echo "MANPREFIX = ${MANPREFIX}"
- @echo "PREFIX = ${PREFIX}"
- @echo "SRC = ${SRC}"
-
test: entr_spec entr
@echo "Running unit tests"
@./entr_spec
@@ -50,4 +41,4 @@
versioncheck:
@head -n3 NEWS | egrep -q "^= Next Release: ${RELEASE}|^== ${RELEASE}: "
-.PHONY: all env test gcc-lint regress clean distclean install uninstall versioncheck
+.PHONY: all test gcc-lint regress clean distclean install uninstall versioncheck
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/NEWS new/entr-4.7/NEWS
--- old/entr-4.6/NEWS 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/NEWS 2021-01-29 15:36:21.000000000 +0100
@@ -1,5 +1,12 @@
= Release History
+== 4.7: January 29, 2021
+
+ - Use system file descriptor limits when max_user_watches is not accessible
+ - Return the exit status of the child process when the '-z' option is used
+ - Handle SIGHUP so child process are terminated when a terminal is closed
+ - More accurately return shell exit code using '-s' option
+
== 4.6: July 1, 2020
- Always call waitpid(2) to avoid dead processes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/README.md new/entr-4.7/README.md
--- old/entr-4.6/README.md 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/README.md 2021-01-29 15:36:21.000000000 +0100
@@ -44,7 +44,7 @@
Rebuild project if a source file is modified or added to the src/ directory:
- $ while true; do find . -name 'src/*.rb' | entr -d make; done
+ $ while sleep 0.1; do find src -name '*.rb' | entr -d make; done
Self-terminate after a file is updated
@@ -54,8 +54,7 @@
----
A release history as well as features in the upcoming release are covered in the
-[NEWS] file.
+[NEWS](NEWS) file.
[kqueue(2)]: http://man.openbsd.org/kqueue.2
[inotify(7)]: http://man.he.net/?section=all&topic=inotify
-[NEWS]: https://raw.githubusercontent.com/eradman/entr/master/NEWS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/entr.1 new/entr-4.7/entr.1
--- old/entr-4.6/entr.1 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/entr.1 2021-01-29 15:36:21.000000000 +0100
@@ -13,7 +13,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd April 17, 2020
+.Dd January 02, 2021
.Dt ENTR 1
.Os
.Sh NAME
@@ -21,7 +21,7 @@
.Nd run arbitrary commands when files change
.Sh SYNOPSIS
.Nm
-.Op Fl acdprs
+.Op Fl acdnprsz
.Ar utility
.Op Ar argument /_ ...
.Sh DESCRIPTION
@@ -141,19 +141,20 @@
will use
.Pa /bin/sh .
.Sh EXIT STATUS
-The
+If the
+.Fl z
+flag is set and the
+.Ar utility
+is successfully executed, the status of the child process is
+returned.
+Otherwise
.Nm
-utility exits with one of the following values:
+normally returns one of the following values:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It 0
Normal termination after receiving
.Dv SIGINT
-or the
-.Fl z
-flag was set and the
-.Ar utility
-was executed successfully
.It 1
No regular files were provided as input or an error occurred
.It 2
@@ -174,7 +175,7 @@
.Pp
Rebuild project if a source file is modified or added to the src/ directory:
.Pp
-.Dl $ while true; do ls src/*.rb | entr -d make; done
+.Dl $ while sleep 0.1; do ls src/*.rb | entr -d make; done
.Pp
Auto-reload a web server, or terminate if the server exits
.Pp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/entr.c new/entr-4.7/entr.c
--- old/entr-4.6/entr.c 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/entr.c 2021-01-29 15:36:21.000000000 +0100
@@ -72,6 +72,7 @@
WatchFile **files;
WatchFile *leading_edge;
int child_pid;
+int child_exitstatus;
int terminating;
int aggressive_opt;
@@ -105,6 +106,7 @@
int
main(int argc, char *argv[]) {
struct rlimit rl;
+ rlim_t max_watches;
int kq;
struct sigaction act;
int ttyfd;
@@ -147,6 +149,8 @@
err(1, "Failed to set SIGINT handler");
if (sigaction(SIGTERM, &act, NULL) != 0)
err(1, "Failed to set SIGTERM handler");
+ if (sigaction(SIGHUP, &act, NULL) != 0)
+ err(1, "Failed to set SIGHUP handler");
/* notification used to combine the one-shot and restart options */
act.sa_flags = 0;
@@ -155,14 +159,20 @@
err(1, "Failed to set SIGCHLD handler");
getrlimit(RLIMIT_NOFILE, &rl);
+
#if defined(_LINUX_PORT)
- rl.rlim_cur = (rlim_t)fs_sysctl(INOTIFY_MAX_USER_WATCHES);
-#else
+ max_watches = (rlim_t)fs_sysctl(INOTIFY_MAX_USER_WATCHES);
+ if(max_watches > 0) {
+ rl.rlim_cur = max_watches;
+ goto rlim_set;
+ }
+#endif
/* raise soft limit */
rl.rlim_cur = min((rlim_t)sysconf(_SC_OPEN_MAX), rl.rlim_max);
if (setrlimit(RLIMIT_NOFILE, &rl) != 0)
err(1, "setrlimit cannot set rlim_cur to %d", (int)rl.rlim_cur);
-#endif
+
+rlim_set:
/* prevent interactive utilities from paging output */
setenv("PAGER", "/bin/cat", 0);
@@ -218,7 +228,7 @@
void
usage() {
fprintf(stderr, "release: %s\n", RELEASE);
- fprintf(stderr, "usage: entr [-acdnprs] utility [argument [/_] ...] < filenames\n");
+ fprintf(stderr, "usage: entr [-acdnprsz] utility [argument [/_] ...] < filenames\n");
exit(1);
}
@@ -230,7 +240,8 @@
if (child_pid > 0) {
xkillpg(child_pid, SIGTERM);
- xwaitpid(child_pid, &status, 0);
+ if (xwaitpid(child_pid, &status, 0) > 0)
+ child_exitstatus = WEXITSTATUS(status);
child_pid = 0;
}
@@ -244,7 +255,7 @@
if (!noninteractive_opt)
xtcsetattr(0, TCSADRAIN, &canonical_tty);
terminate_utility();
- if (sig == SIGINT)
+ if ((sig == SIGINT || sig == SIGHUP))
exit(0);
else
raise(sig);
@@ -254,16 +265,14 @@
proc_exit(int sig) {
int status;
- xwaitpid(child_pid, &status, 0);
+ if (wait(&status) > 0)
+ child_exitstatus = WEXITSTATUS(status);
if ((oneshot_opt == 1) && (terminating == 0)) {
if ((shell_opt == 1) && (restart_opt == 0)) {
fprintf(stdout, "%s returned exit code %d\n",
- basename(getenv("SHELL")), WEXITSTATUS(status));
+ basename(getenv("SHELL")), child_exitstatus);
}
- if (WEXITSTATUS(status) == 99)
- exit(1);
- else
- exit(0);
+ exit(child_exitstatus);
}
}
@@ -460,18 +469,19 @@
else break;
}
if (ret != 0)
- err(99, "exec %s", new_argv[0]);
+ err(1, "exec %s", new_argv[0]);
}
child_pid = pid;
if (restart_opt == 0) {
- xwaitpid(pid, &status, 0);
+ if (xwaitpid(pid, &status, 0) > 0)
+ child_exitstatus = WEXITSTATUS(status);
if (shell_opt == 1)
fprintf(stdout, "%s returned exit code %d\n",
- basename(getenv("SHELL")), WEXITSTATUS(status));
+ basename(getenv("SHELL")), child_exitstatus);
if (oneshot_opt == 1)
- exit(0);
+ exit(child_exitstatus);
}
xfree(arg_buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/missing/kqueue_inotify.c new/entr-4.7/missing/kqueue_inotify.c
--- old/entr-4.6/missing/kqueue_inotify.c 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/missing/kqueue_inotify.c 2021-01-29 15:36:21.000000000 +0100
@@ -57,16 +57,21 @@
fs_sysctl(const int name) {
FILE *file;
char line[8];
- int value = 0;
+ int value;
switch(name) {
case INOTIFY_MAX_USER_WATCHES:
file = fopen("/proc/sys/fs/inotify/max_user_watches", "r");
- if (file == NULL || fgets(line, sizeof(line), file) == NULL)
- err(1, "max_user_watches");
- value = atoi(line);
- fclose(file);
+ if (file == NULL || fgets(line, sizeof(line), file) == NULL) {
+ /* failed to read max_user_watches; sometimes inaccessible on Android */
+ value = 0;
+ }
+ else
+ value = atoi(line);
+
+ if (file)
+ fclose(file);
break;
}
return value;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/entr-4.6/system_test.sh new/entr-4.7/system_test.sh
--- old/entr-4.6/system_test.sh 2020-07-01 17:33:17.000000000 +0200
+++ new/entr-4.7/system_test.sh 2021-01-29 15:36:21.000000000 +0100
@@ -93,7 +93,7 @@
# file system tests
-try "exec a command an exit using one-shot option"
+try "exec a command using one-shot option"
setup
ls $tmp/file* | ./entr -zp cat $tmp/file2 >$tmp/exec.out 2>$tmp/exec.err &
bgpid=$! ; zz
@@ -102,12 +102,18 @@
assert "$(cat $tmp/exec.err)" ""
assert "$(head -n1 $tmp/exec.out)" "$(printf '456\n')"
-try "fail to exec an command using one-shot option"
+try "fail to exec a command using one-shot option"
setup
ls $tmp/file* | ./entr -z /usr/bin/false_X >$tmp/exec.out 2>$tmp/exec.err &
bgpid=$! ; zz
wait $bgpid || assert "$?" "1"
+try "exec a command using one-shot option exit code from child"
+ setup
+ ls $tmp/file* | ./entr -z sh -c 'exit 4' &
+ bgpid=$! ; zz
+ wait $bgpid || assert "$?" "4"
+
try "restart a server when a file is modified using one-shot option"
setup
if [ $(uname) == 'Linux' ]; then
@@ -294,6 +300,19 @@
kill -INT $bgpid ; zz
assert "$(cat $tmp/exec.out)" "$(printf 'running\ncaught signal')"
+try "ensure that all shell subprocesses are terminated when terminal is closed"
+ setup
+ cat <<-SCRIPT > $tmp/go.sh
+ #!/bin/sh
+ trap 'echo "caught signal"; exit' TERM
+ echo "running"; sleep 10
+ SCRIPT
+ chmod +x $tmp/go.sh
+ ls $tmp/file2 | ./entr -r sh -c "$tmp/go.sh" 2> /dev/null > $tmp/exec.out &
+ bgpid=$! ; zz
+ kill -HUP $bgpid ; zz
+ assert "$(cat $tmp/exec.out)" "$(printf 'running\ncaught signal')"
+
try "exit with no action when restart and dirwatch flags are combined"
setup
echo "started." > $tmp/file1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kvm_stat for openSUSE:Factory checked in at 2021-01-30 13:56:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kvm_stat (Old)
and /work/SRC/openSUSE:Factory/.kvm_stat.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kvm_stat"
Sat Jan 30 13:56:44 2021 rev:17 rq:867817 version:MACRO
Changes:
--------
--- /work/SRC/openSUSE:Factory/kvm_stat/kvm_stat.changes 2021-01-28 21:22:31.243649080 +0100
+++ /work/SRC/openSUSE:Factory/.kvm_stat.new.28504/kvm_stat.changes 2021-01-30 13:57:48.726401580 +0100
@@ -1,0 +2,6 @@
+Thu Jan 28 14:59:15 UTC 2021 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Add a dummy -rebuild package: give OBS/Tumbleweed a hint to tell
+ when this package needs a rebuild (boo#1178493).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kvm_stat.spec ++++++
--- /var/tmp/diff_new_pack.0Ri8mc/_old 2021-01-30 13:57:49.454402808 +0100
+++ /var/tmp/diff_new_pack.0Ri8mc/_new 2021-01-30 13:57:49.458402814 +0100
@@ -55,6 +55,17 @@
%description
%{XXX}
+%package rebuild
+Summary: Empty package to ensure rebuilding kvm_stat in OBS
+Group: System/Monitoring
+%requires_eq kernel-source
+
+%description rebuild
+This is empty package that ensures kvm_stat is rebuilt every time
+kernel-default is rebuilt in OBS.
+
+There is no reason to install this package.
+
%prep
# copy necessary files from kernel-source
(tar -C /usr/src/linux -c COPYING tools scripts) | tar -x
@@ -106,4 +117,7 @@
%{_bindir}/kvm_stat
%{_mandir}/man1/kvm_stat*
+%files rebuild
+%license COPYING
+
%changelog
1
0