Bug#951418: ITP: golang-gopkg-errgo.v2 -- Dependable Go errors with tracebacks, version 2

2020-02-16 Thread Anthony Fok
Package: wnpp
Severity: wishlist
Owner: Anthony Fok 

* Package name: golang-gopkg-errgo.v2
  Version : 2.1.0-1
  Upstream Author : Roger Peppe
* URL : https://github.com/go-errgo/errgo
* License : BSD-3-clause
  Programming Lang: Go
  Description : Dependable Go errors with tracebacks, version 2

 Package errgo provides some primitives for error creation and handling.
 .
 It provides primitives for wrapping and annotating errors
 without exposing implementation details unnecessarily.

Reason for packaging:
 Needed by golang-github-rogpeppe-go-internal, which in turn
 is needed by hugo 0.60.0+
 



Bug#951419: ITP: golang-github-rogpeppe-go-internal -- Selected Go-internal packages factored out from the standard library

2020-02-16 Thread Anthony Fok
Package: wnpp
Severity: wishlist
Owner: Anthony Fok 

* Package name: golang-github-rogpeppe-go-internal
  Version : 1.3.0-1
  Upstream Author : Roger Peppe
* URL : https://github.com/rogpeppe/go-internal
* License : BSD-3-clause
  Programming Lang: Go
  Description : Selected Go-internal packages factored out from the 
standard library

 This repository factors out an opinionated selection of internal
 packages and functionality from the Go standard library. Currently
 this consists mostly of packages and testing code from within the Go
 tool implementation.
 .
 Included are the following: 
 .
  * dirhash: calculate hashes over directory trees the same way
that the Go tool does.
  * goproxytest: a GOPROXY implementation designed for test use.
  * gotooltest: Use the Go tool inside test scripts (see testscript below).
  * imports: list of known architectures and OSs, and support for reading
import statements.
  * modfile: read and write go.mod files while preserving formatting
and comments.
  * module: module paths and versions.
  * par: do work in parallel.
  * semver: semantic version parsing.
  * testenv: information on the current testing environment.
  * testscript: script-based testing based on txtar files.
  * txtar: simple text-based file archives for testing.

Reason for packaging: Required by hugo 0.60.0+



Re: Is there still a point in installing libgcrypt to /lib instead of /usr/lib

2020-02-16 Thread Simon McVittie
On Sat, 15 Feb 2020 at 21:24:38 +0100, Michael Biebl wrote:
> While I think the underlying issue should be investigated (tbh the
> thought that dpkg get's confused / its db corrupted so does not properly
> clean up those old files is quite disconcerting), couldn't we just
> switch the order of /lib and /usr/lib and make /usr/lib the preferred path?

Maybe, but it could result in the opposite bug in some cases. Consider
the SONAME libfoo.so.0, and assume the multiarch tuple is MA.

1. libfoo.so.0.1.2 is in /lib/MA
2. maintainer moves libfoo.so.0.2.3 from /usr/lib/MA to /lib/MA because
   some early-boot service needs libfoo.so.0
3. somehow libfoo.so.0.1.2 is not deleted during the upgrade
4. ldconfig creates libfoo.so.0 -> libfoo.so.0.1.2 in /lib/MA
   and libfoo.so.0 -> libfoo.so.0.2.3 in /usr/lib/MA
(several years later)
5. now we have libfoo.so.0 -> libfoo.so.0.1.2 in /lib/MA and
   libfoo.so.0 -> libfoo.so.0.4.2 in /usr/lib/MA
6. we change ld.so.conf.d so that /usr/lib/MA is preferred over /lib/MA
7. programs that depend on libfoo0 (>= 0.4.2) get libfoo.so.0.1.2, and
   are broken, because symbols introduced since 0.1.2 are missing

However, in many cases we might dodge that bullet in practice because the
transition to multiarch happened between steps 4 and 5, and /usr/lib/MA
and /lib/MA are both preferred over /usr/lib and /lib. For example,
libdbus-1-3 transitioned from /usr/lib to /lib in 1.2.16-1, from /lib
to /lib/MA in 1.4.12-3, and from /lib/MA to /usr/lib/MA in 1.13.10-1;
so it might get a bug equivalent to #896019 if we don't reverse the
priorities of /lib/MA and /usr/lib/MA, but it can't have the bug I
describe above if we do reverse their priorities.

smcv



Re: Is there still a point in installing libgcrypt to /lib instead of /usr/lib

2020-02-16 Thread Simon McVittie
On Sat, 15 Feb 2020 at 23:21:35 +0100, Guillem Jover wrote:
> Doing a proper /usr-merged migration is what we should have done from
> the beginning. I've been doing that with all the library packages I
> maintain that were under /lib. That includes acl, attr, libaio, libbsd
> and libmd, and I know others have been doing this too, so there's
> plenty of precedent with this.

To be clear, what Guillem means by "a proper /usr-merged migration"
here is changing individual library packages, so that the path to their
libraries that exists in the data.tar.* and in the dpkg database changes
from for example /lib/MA/libfoo.so.0 to /usr/lib/MA/libfoo.so.0. This is
not the same thing that a lot of other people mean by "the /usr merge".

I think we have consensus that consolidating all static OS files into /usr
(removing the distinction between /usr and the static parts of the root
filesystem) is the route that Debian is taking. I think we do not have
consensus on how that is to be achieved.

I would be grateful if people who advocate transitioning individual
packages, and people who consider the approach taken by usrmerge and
debootstrap to be sufficient, could refer to their preferred route in a
way that makes it clear which one they are advocating. Saying we should
do a transition "properly" is tautologous - of course we should! - but
when people disagree about what the proper way to do it is, it becomes an
ambiguous recommendation that doesn't guide anyone to do the right thing.

The approach that transitions individual packages solves some bugs
(notably, if you ask dpkg which package owns /usr/lib/MA/libfoo.so.0,
you get the right answer, which has a lot of desirable consequences). It
also appears to *cause* some bugs. The ones I know about are:

* packages that hard-code paths into /lib stop working on systems that
  have *not* undergone the usrmerge-style /usr merge, because
  /lib/MA/libfoo.so.0 no longer exists (for example see #950715
  involving libgcc.so.1 and the gold linker);
* there is a class of bugs on systems that have *not* undergone the
  usrmerge-style /usr merge, involving old libraries lingering in /lib/MA
  (see #949395 for a summary of the instances that I know about), which
  are very hard to debug because they are unreproducible, to do with the
  state of an individual system, and are related to upgrades that happened
  years in the past and whose logs expired long ago;
* when paths migrate between package names and between paths at the same
  time, there can be undetected file conflicts on systems that *have*
  undergone the usrmerge-style /usr merge (for example see #950624,
  again in libgcc.so.1)

The term "/usr merge" or "merged /usr" more commonly refers to making
/usr/lib and /lib, /usr/bin and /bin, etc., *equivalent* (with symlinks
/lib -> usr/lib, etc.), as implemented by the usrmerge package and
debootstrap --merged-usr.

In many other distributions, for example Fedora, there was a flag day at
which merged /usr became mandatory. This makes various classes of bugs
like #949395 and #950715 cease to exist: for example, it doesn't matter
if /lib/MA/libfoo.so.0 is hard-coded somewhere, because that path still
exists (realpath would resolve it to /usr/lib/MA/libfoo.so.0).
(However, this can't solve everything: #950624 would still have been a
bug if we had had a merged /usr flag-day.)

In Debian we have (as usual) made life more difficult for ourselves by the
/usr merge being optional, which means that in any transition or upgrade
scenario, maintainers have to consider two cases: one where the system
has undergone the /usr merge, and one where it has not. For example,
#950624 only happens on systems that have undergone the /usr merge,
while #950715 and #949395 only happen on systems that have not. Testing
on any single system cannot detect all of these: to detect all the bugs,
we have to try both configurations.

smcv



Re: Y2038 - best way forward in Debian?

2020-02-16 Thread Adrian Bunk
On Fri, Feb 14, 2020 at 10:56:47AM -0600, John Goerzen wrote:
> 
> The thing that we have to remember is that an operating system is a
> platform for running software.  This problem is rather thorny, because:
> 
> 1) Some software is provided in only binary form and cannot be
> recompiled
> 
> 2) Some software can be recompiled but makes assumptions about the size
> of variables, may use int instead of time_t, and other assorted
> messiness

Cleanest would be to run such legacy programs inside some virtualization 
that also provides a virtual time long before 2038, using the last 
Debian release with the old architecture.

> 3) Some software is going to break now, due to forward-looking time
> calculations, and for others, it may be fine (or nearly so) even past
> 2038 due to timekeeping being only ancillary to its purpose.  For
> instance, I have some old games that are binary-only and really don't
> care what time it is.
>...

How confident are you that they work fine with negative time_t values?
Functions like time(2) return (time_t)-1 on error.

> John

cu
Adrian



Bug#951450: ITP: magit-todos -- show source file TODOs in Magit

2020-02-16 Thread Lev Lamberov
Package: wnpp
Owner: Lev Lamberov 
Severity: wishlist

* Package name: magit-todos
  Version : 1.5.1
  Upstream Author : Adam Porter 
* URL or Web page : http://github.com/alphapapa/magit-todos
* License : GPL-3+
  Programming Lang: Emacs Lisp
  Description : show source file TODOs in Magit

This package displays keyword entries from source code comments and Org
files in the Magit status buffer. Activating an item jumps to it in its
file. By default, it uses keywords from `hl-todo', minus a few (like
"NOTE").



Onnq IMO

2020-02-16 Thread Ron Gallagher



Sent from Ron’s  iPhone


Re: moving mg from salsa to github?

2020-02-16 Thread Henrique de Moraes Holschuh
On Sat, 15 Feb 2020, Harald Dunkel wrote:
> I am maintainer for mg, currently on salsa. Problem is, upstream
> doesn't release tar balls anymore, but moved the code to github.
> No tags.
> 
> How can I tell Salsa? Should I drop the upstream and pristine-tar
> branches on Salsa and integrate the repository on github? Would
> you suggest to move the debian part to github instead?

intel-microcode went through this same problem, although it had nothing
to do with salsa.  Suddenly:

1. I had a debian-side upstream branch with full upstream history based
on tarballs that I had built based on tarball-only releases over the
years (make that a decade).

2. I had a new upstream-side upstream branch that would soon accumulate
history, based on their brand new github repo.

And they were two entirely separate trees, of course.  No common origin
commit.

I fixed that using a carefully planned, manually adjusted merge (read
the MERGE STRATEGIES part of the manpage for "git merge", especially the
"ours" and "theirs" of the recursive merge).

That gave me an unified tree that would allow git to do the right thing
as far as future merges, diffs and cherry-picks were concerned.

Obviously, I ensured everything relevant from *both* side of the merges
was present on the merge commit result (and dropped whatever I didn't
want).  The result tree contents MUST be semanthically compatible with
the history it creates, or things will go sour really fast.

>From them on, I just merge from github upstream on a topic branch,
adjust whatever is needed, and then merge the topic branch to master.

Please look at the intel-microcode's history *graph* to undestand what I
mean.  It is on salsa:
https://salsa.debian.org/hmh/intel-microcode

As for tarballs, it really depends.  I'd either generate those using git
based on the upstream's upstream branch, or use the ones from a tagged
github release from upstream, if one exists.

-- 
  Henrique Holschuh



Bug#951459: ITP: sip5 -- Python bindings generator for C/C++ libraries

2020-02-16 Thread Dmitry Shachnev
Package: wnpp
Severity: wishlist
Owner: Dmitry Shachnev 

* Package name: sip5
  Version : 5.1.0
  Upstream Author : Riverbank Computing Limited 
* URL : https://riverbankcomputing.com/software/sip/intro
* License : SIP
  Programming Lang: C, Python
  Description : Python bindings generator for C/C++ libraries

SIP is a collection of tools that makes it very easy to create Python bindings
for C and C++ libraries.  It was originally developed in 1998 to create PyQt,
the Python bindings for the Qt toolkit, but can be used to create bindings for
any C or C++ library.  For example it is also used to generate wxPython, the
Python bindings for wxWidgets.

SIP comprises a set of build tools and a sip module. The build tools process a
set of specification files and generates C or C++ code which is then compiled
to create the bindings extension module.  Several extension modules may be
installed in the same Python package.  Extension modules can be built so that
they are are independent of the version of Python being used.  In other words a
wheel created from them can be installed with any version of Python starting
with v3.5.

sip4 already exists in Debian, this is an ITP for the next version, sip5.

--
Dmitry Shachnev


signature.asc
Description: PGP signature