Re: Wine MinGW system libraries

2021-09-07 Thread Bastien Roucariès
Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :
> On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:
> > The basic problem is that applications can and often do ship with PE
> > builds of cross-platform libraries. These libraries can be ahead of
> > Wine's system libraries, behind them, or even built with custom patches.
> > Accordingly we really don't want to load "our" freetype in place of
> > "their" freetype, or "theirs" in place of "ours". But because of the way
> > the Win32 loader works, you can generally only have one DLL of a given
> > name loaded in a process, and further attempts to dlopen() [as it were]
> > "libfreetype-6.dll" will return the handle to the already loaded
> > library, potentially breaking either Wine or the application.
> 
> I don't know the details here, but my immediate thought when reading
> this is that you need some kind of namespace. I then found that linker
> namespaces are a thing, perhaps they would provide the solution for
> you. It sounds like the OpenGL shim loader solution listed on the
> glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
> feature would also work.
> 
> https://www.sourceware.org/glibc/wiki/LinkerNamespaces
I agree with pabs, implementing name space is a good solution
and will allow to be distrib friendly.

Moreover it will be best if marking a library as wine system one could be done 
post build. We will prefer to not modify upstream (like libpng) source. 

It is easier for us to apply small patch to upstream, or better in your case 
to add a post link linker script or even some compiler flag that will add some 
notes section to dll in order to mark it as use namespace system, or so on.

The problem on windows side is well known as dll hell

Renaming of the lib could be done post install. Moreover a crazy idea why not 
renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll (note the 
version is manadaroty) Therefore we could use  upstream source. Then add a 
small linker script that will rewrite the depends of  libpng-2.0.0.sll  to 
.sll file (aka binary sed s/.dll/.sll/g).

then add a small wraper (shim) like said pab that load the .sll library, the 
best pratice will be a command tool that take the name of the sll and create 
magically the dll

Therefore from distrib point of side we only changes the way we build the 
package, it could be automated, it is scalable and it does not need to patch 
package by package. Only to add some linker script magic

Bastien






Bug#993862: ITP: avocado -- Framework for automated testing

2021-09-07 Thread Anton Mikanovich
Package: wnpp
Severity: wishlist
Owner: Avocado Debian package maintainers 

* Package name: avocado
  Version : 91.0
  Upstream Author : Red Hat, Cleber Rosa 
* URL : https://github.com/avocado-framework/avocado
* License : GPLv2+
  Programming Lang: Python
  Description : Framework for automated testing

Avocado is a next generation testing framework inspired by Autotest and modern 
development tools such as git.

It is a set of tools and libraries to help with automated testing. One can call 
it a test framework with benefits. Native tests are written in Python and they 
follow the unittest pattern, but any executable can serve as a test.

The main features are:
 * Multiple result formats (human-readable/xUnit/JSON/TAP)
 * Job Replay to reproduce a given job
 * Job Diff to compare several aspects of two given jobs
 * Plugin system for framework extension
 * Utility libraries to perform basic operations like process execution, system 
information obtain, package management, etc
 * Good documentation available: 
https://avocado-framework.readthedocs.io/en/latest

Current packaging state can be found at 
https://github.com/avocado-framework/avocado/tree/master/contrib/packages/debian

We plan to maintain it and need a sponsor for the upload.



Re: Wine MinGW system libraries

2021-09-07 Thread Zebediah Figura

On 9/7/21 5:16 AM, Bastien Roucariès wrote:

Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :

On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:

The basic problem is that applications can and often do ship with PE
builds of cross-platform libraries. These libraries can be ahead of
Wine's system libraries, behind them, or even built with custom patches.
Accordingly we really don't want to load "our" freetype in place of
"their" freetype, or "theirs" in place of "ours". But because of the way
the Win32 loader works, you can generally only have one DLL of a given
name loaded in a process, and further attempts to dlopen() [as it were]
"libfreetype-6.dll" will return the handle to the already loaded
library, potentially breaking either Wine or the application.


I don't know the details here, but my immediate thought when reading
this is that you need some kind of namespace. I then found that linker
namespaces are a thing, perhaps they would provide the solution for
you. It sounds like the OpenGL shim loader solution listed on the
glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
feature would also work.

https://www.sourceware.org/glibc/wiki/LinkerNamespaces

I agree with pabs, implementing name space is a good solution
and will allow to be distrib friendly.

Moreover it will be best if marking a library as wine system one could be done
post build. We will prefer to not modify upstream (like libpng) source.

It is easier for us to apply small patch to upstream, or better in your case
to add a post link linker script or even some compiler flag that will add some
notes section to dll in order to mark it as use namespace system, or so on.

The problem on windows side is well known as dll hell

Renaming of the lib could be done post install. Moreover a crazy idea why not
renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll (note the
version is manadaroty) Therefore we could use  upstream source. Then add a
small linker script that will rewrite the depends of  libpng-2.0.0.sll  to
.sll file (aka binary sed s/.dll/.sll/g).

then add a small wraper (shim) like said pab that load the .sll library, the
best pratice will be a command tool that take the name of the sll and create
magically the dll

Therefore from distrib point of side we only changes the way we build the
package, it could be automated, it is scalable and it does not need to patch
package by package. Only to add some linker script magic


The problem isn't particularly about detecting what is and isn't a 
system library; I think we can come up with a reliable heuristic for 
that, without even needing linker namespaces or anything.


The outstanding problem seems to be more about potentially breaking 
applications because they see two identically named DLLs loaded in the 
same process. Applications can and do trawl the internal loader state, 
although the Win32 loader also exposes some APIs so they don't even have to.


It may also be that the aforementioned heuristic is too hacky to be 
accepted upstream into Wine.




Re: Debian Reunion Hamburg 2021

2021-09-07 Thread Holger Levsen
hi,

On Wed, Sep 01, 2021 at 03:18:21PM +, Holger Levsen wrote:
> I'm glad to finally be able to send out this invitation for the "Debian 
> Reunion
> Hamburg 2021" taking place at the venue of the 2018 & 2019 MiniDebConfs!
> 
> The event will run from Monday, Sep 27 2021 until Friday Oct 1 2021, with
> Sunday, Sep 26 2021 as arrival day. IOW, Debian people meet again in Hamburg.
> The exact format is less defined and structured than previous years, probably
> we will just be hacking from Monday to Wednesday, have talks on Thursday and
> a nice day trip on Friday.
> 
> Please read https://wiki.debian.org/DebianEvents/de/2021/DebianReunionHamburg
> if you intend to attend, especially
> https://wiki.debian.org/DebianEvents/de/2021/DebianReunionHamburg#Dates_and_format_of_the_event
> https://wiki.debian.org/DebianEvents/de/2021/DebianReunionHamburg#Covid_things
> https://wiki.debian.org/DebianEvents/de/2021/DebianReunionHamburg#Call_for_papers
> https://wiki.debian.org/DebianEvents/de/2021/DebianReunionHamburg#Registration
> (registration is mandatory for this event!)
> 
> Probably having some video coverage would be very nice to have, though due to
> this very late announcement I'm not sure we'll really have talks and the need
> for video. The event is in 3.5 weeks and will take place, either as a very
> small hack meeting, or somewhat bigger. We certainly want videoing if we have
> talks - and if you could help with this that would be very great!
> 
> Last and definitly not least, financial sponsors for the event would be great.
> If you can support the "Debian Reunion Hamburg 2021", please contact me
> directly!
> 
> 
> Now, late, after weeks of wondering if and how to do this event, I'm finally
> and very much looking forward to it, to meet some Debian folks at least & for
> some shared Debian hacking. Definitly not the 2021 event I had in mind after
> the 2019 one, but something I feel I can responsibly do & enjoy.
> 
> So, hoping to see some of you soon & most of you later! ;-) Sad but true, and
> at least something for some people. We should all do more *local* events. And
> more *online* events too, eg I think this is a great idea too:
> https://wiki.debian.org/DebianEvents/internet/2021/MiniDebConfOnlineBookworm
> 
> See you!

there have been very few registrations so far, so I'm in contact with the
venue discussing what to do. If you are still pondering whether to come 
or not, please register yourself, now!, even as 'maybe attending' so that we 
can better evaluate the situation.


-- 
cheers,
Holger

 ⢀⣴⠾⠻⢶⣦⠀
 ⣾⠁⢠⠒⠀⣿⡁  holger@(debian|reproducible-builds|layer-acht).org
 ⢿⡄⠘⠷⠚⠋⠀  OpenPGP: B8BF54137B09D35CF026FE9D 091AB856069AAA1C
 ⠈⠳⣄

The corona crisis is peanuts compared to the global climate disaster.


signature.asc
Description: PGP signature


Bug#993864: ITP: taskserver -- taskwarrior synchronisation server

2021-09-07 Thread Sergio de Almeida Cipriano Junior
Package: wnpp
Severity: wishlist
Owner: Sergio de Almeida Cipriano Junior 
X-Debbugs-Cc: debian-devel@lists.debian.org, sergios...@protonmail.com

* Package name: taskserver
  Version : 1.1.0
  Upstream Author : Göteborg Bit Factory 
* URL : https://github.com/GothenburgBitFactory/taskserver
* License : MIT
  Programming Lang: C++
  Description : taskwarrior synchronisation server

Taskserver is a daemon or service that will allow you to share tasks among
different client applications, primarily Taskwarrior.


Re: Wine MinGW system libraries

2021-09-07 Thread Bastien ROUCARIES
I disagree.

Le mar. 7 sept. 2021 à 17:48, Zebediah Figura  a
écrit :

> On 9/7/21 5:16 AM, Bastien Roucariès wrote:
> > Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :
> >> On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:
> >>> The basic problem is that applications can and often do ship with PE
> >>> builds of cross-platform libraries. These libraries can be ahead of
> >>> Wine's system libraries, behind them, or even built with custom
> patches.
> >>> Accordingly we really don't want to load "our" freetype in place of
> >>> "their" freetype, or "theirs" in place of "ours". But because of the
> way
> >>> the Win32 loader works, you can generally only have one DLL of a given
> >>> name loaded in a process, and further attempts to dlopen() [as it were]
> >>> "libfreetype-6.dll" will return the handle to the already loaded
> >>> library, potentially breaking either Wine or the application.
> >>
> >> I don't know the details here, but my immediate thought when reading
> >> this is that you need some kind of namespace. I then found that linker
> >> namespaces are a thing, perhaps they would provide the solution for
> >> you. It sounds like the OpenGL shim loader solution listed on the
> >> glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
> >> feature would also work.
> >>
> >> https://www.sourceware.org/glibc/wiki/LinkerNamespaces
> > I agree with pabs, implementing name space is a good solution
> > and will allow to be distrib friendly.
> >
> > Moreover it will be best if marking a library as wine system one could
> be done
> > post build. We will prefer to not modify upstream (like libpng) source.
> >
> > It is easier for us to apply small patch to upstream, or better in your
> case
> > to add a post link linker script or even some compiler flag that will
> add some
> > notes section to dll in order to mark it as use namespace system, or so
> on.
> >
> > The problem on windows side is well known as dll hell
> >
> > Renaming of the lib could be done post install. Moreover a crazy idea
> why not
> > renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll
> (note the
> > version is manadaroty) Therefore we could use  upstream source. Then add
> a
> > small linker script that will rewrite the depends of  libpng-2.0.0.sll
> to
> > .sll file (aka binary sed s/.dll/.sll/g).
> >
> > then add a small wraper (shim) like said pab that load the .sll library,
> the
> > best pratice will be a command tool that take the name of the sll and
> create
> > magically the dll
> >
> > Therefore from distrib point of side we only changes the way we build the
> > package, it could be automated, it is scalable and it does not need to
> patch
> > package by package. Only to add some linker script magic
>
> The problem isn't particularly about detecting what is and isn't a
> system library; I think we can come up with a reliable heuristic for
> that, without even needing linker namespaces or anything.
>
> The outstanding problem seems to be more about potentially breaking
> applications because they see two identically named DLLs loaded in the
> same process. Applications can and do trawl the internal loader state,
> although the Win32 loader also exposes some APIs so they don't even have
> to.
>
> It may also be that the aforementioned heuristic is too hacky to be
> accepted upstream into Wine.
>
I do not propose to change the loader, i propose to change the link or post
link stage of system library. You could rename the lib and change the
dépend to new name after build. So you will have an unique name per system
lib without changing the way you build these lib.

It is équivalent to use a namespace resolved at late build time.


Re: Wine MinGW system libraries

2021-09-07 Thread Bastien ROUCARIES
Le mar. 7 sept. 2021 à 19:05, Bastien ROUCARIES 
a écrit :

> I disagree.
>
> Le mar. 7 sept. 2021 à 17:48, Zebediah Figura  a
> écrit :
>
>> On 9/7/21 5:16 AM, Bastien Roucariès wrote:
>> > Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :
>> >> On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:
>> >>> The basic problem is that applications can and often do ship with PE
>> >>> builds of cross-platform libraries. These libraries can be ahead of
>> >>> Wine's system libraries, behind them, or even built with custom
>> patches.
>> >>> Accordingly we really don't want to load "our" freetype in place of
>> >>> "their" freetype, or "theirs" in place of "ours". But because of the
>> way
>> >>> the Win32 loader works, you can generally only have one DLL of a given
>> >>> name loaded in a process, and further attempts to dlopen() [as it
>> were]
>> >>> "libfreetype-6.dll" will return the handle to the already loaded
>> >>> library, potentially breaking either Wine or the application.
>> >>
>> >> I don't know the details here, but my immediate thought when reading
>> >> this is that you need some kind of namespace. I then found that linker
>> >> namespaces are a thing, perhaps they would provide the solution for
>> >> you. It sounds like the OpenGL shim loader solution listed on the
>> >> glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
>> >> feature would also work.
>> >>
>> >> https://www.sourceware.org/glibc/wiki/LinkerNamespaces
>> > I agree with pabs, implementing name space is a good solution
>> > and will allow to be distrib friendly.
>> >
>> > Moreover it will be best if marking a library as wine system one could
>> be done
>> > post build. We will prefer to not modify upstream (like libpng) source.
>> >
>> > It is easier for us to apply small patch to upstream, or better in your
>> case
>> > to add a post link linker script or even some compiler flag that will
>> add some
>> > notes section to dll in order to mark it as use namespace system, or so
>> on.
>> >
>> > The problem on windows side is well known as dll hell
>> >
>> > Renaming of the lib could be done post install. Moreover a crazy idea
>> why not
>> > renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll
>> (note the
>> > version is manadaroty) Therefore we could use  upstream source. Then
>> add a
>> > small linker script that will rewrite the depends of  libpng-2.0.0.sll
>> to
>> > .sll file (aka binary sed s/.dll/.sll/g).
>> >
>> > then add a small wraper (shim) like said pab that load the .sll
>> library, the
>> > best pratice will be a command tool that take the name of the sll and
>> create
>> > magically the dll
>> >
>> > Therefore from distrib point of side we only changes the way we build
>> the
>> > package, it could be automated, it is scalable and it does not need to
>> patch
>> > package by package. Only to add some linker script magic
>>
>> The problem isn't particularly about detecting what is and isn't a
>> system library; I think we can come up with a reliable heuristic for
>> that, without even needing linker namespaces or anything.
>>
>> The outstanding problem seems to be more about potentially breaking
>> applications because they see two identically named DLLs loaded in the
>> same process. Applications can and do trawl the internal loader state,
>> although the Win32 loader also exposes some APIs so they don't even have
>> to.
>>
>> It may also be that the aforementioned heuristic is too hacky to be
>> accepted upstream into Wine.
>>
> I do not propose to change the loader, i propose to change the link or
> post link stage of system library. You could rename the lib and change the
> dépend to new name after build. So you will have an unique name per system
> lib without changing the way you build these lib.
>
> It is équivalent to use a namespace resolved at late build time.
>
And it is already coded :)

https://pypi.org/project/machomachomangler/

>
>


Bug#993881: ITP: obs-move-transition -- plugin for OBS Studio to improve switching scenes

2021-09-07 Thread Joao Eriberto Mota Filho
Package: wnpp
Severity: wishlist
Owner: Joao Eriberto Mota Filho 
X-Debbugs-Cc: debian-devel@lists.debian.org

* Package name: obs-move-transition
  Version : 2.5.0
  Upstream Author : Exeldro 
* URL : https://obsproject.com/forum/resources/move-transition.913/
* License : GPL-2
  Programming Lang: C
  Description : plugin for OBS Studio to improve switching scenes

 This plugin moves sources to a new position during a scene transition,
 adding nice effects. If the 2 scenes contain a source with similar name
 (configured with settings) it will do the move the position and size
 between the 2 positions.
 .
 This filter can be added to a scene or a source to override the move
 transition for a source of the scene or the source global.
 .
 To use Move Transition, find for "Move" in "Scene Transitions" dock.
 This plugin is supported by OBS Studio 25 or above.



Re: Wine MinGW system libraries

2021-09-07 Thread Zebediah Figura

On 9/7/21 12:05 PM, Bastien ROUCARIES wrote:

I disagree.

Le mar. 7 sept. 2021 à 17:48, Zebediah Figura  a
écrit :


On 9/7/21 5:16 AM, Bastien Roucariès wrote:

Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :

On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:

The basic problem is that applications can and often do ship with PE
builds of cross-platform libraries. These libraries can be ahead of
Wine's system libraries, behind them, or even built with custom

patches.

Accordingly we really don't want to load "our" freetype in place of
"their" freetype, or "theirs" in place of "ours". But because of the

way

the Win32 loader works, you can generally only have one DLL of a given
name loaded in a process, and further attempts to dlopen() [as it were]
"libfreetype-6.dll" will return the handle to the already loaded
library, potentially breaking either Wine or the application.


I don't know the details here, but my immediate thought when reading
this is that you need some kind of namespace. I then found that linker
namespaces are a thing, perhaps they would provide the solution for
you. It sounds like the OpenGL shim loader solution listed on the
glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
feature would also work.

https://www.sourceware.org/glibc/wiki/LinkerNamespaces

I agree with pabs, implementing name space is a good solution
and will allow to be distrib friendly.

Moreover it will be best if marking a library as wine system one could

be done

post build. We will prefer to not modify upstream (like libpng) source.

It is easier for us to apply small patch to upstream, or better in your

case

to add a post link linker script or even some compiler flag that will

add some

notes section to dll in order to mark it as use namespace system, or so

on.


The problem on windows side is well known as dll hell

Renaming of the lib could be done post install. Moreover a crazy idea

why not

renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll

(note the

version is manadaroty) Therefore we could use  upstream source. Then add

a

small linker script that will rewrite the depends of  libpng-2.0.0.sll

to

.sll file (aka binary sed s/.dll/.sll/g).

then add a small wraper (shim) like said pab that load the .sll library,

the

best pratice will be a command tool that take the name of the sll and

create

magically the dll

Therefore from distrib point of side we only changes the way we build the
package, it could be automated, it is scalable and it does not need to

patch

package by package. Only to add some linker script magic


The problem isn't particularly about detecting what is and isn't a
system library; I think we can come up with a reliable heuristic for
that, without even needing linker namespaces or anything.

The outstanding problem seems to be more about potentially breaking
applications because they see two identically named DLLs loaded in the
same process. Applications can and do trawl the internal loader state,
although the Win32 loader also exposes some APIs so they don't even have
to.

It may also be that the aforementioned heuristic is too hacky to be
accepted upstream into Wine.


I do not propose to change the loader, i propose to change the link or post
link stage of system library. You could rename the lib and change the
dépend to new name after build. So you will have an unique name per system
lib without changing the way you build these lib.

It is équivalent to use a namespace resolved at late build time.



Ah, so what you're proposing is that we do some sort of objcopy-like 
patching at runtime, e.g. when copying the dependency into the prefix.


It probably won't be easy, but it might be more feasible than modifying 
the loader. I'll look into it...




Bug#993897: ITP: obs-ptz -- Plugin for OBS Studio to add a PTZ Camera control dock.

2021-09-07 Thread Daniel Lenharo de Souza
Package: wnpp
Severity: wishlist
Owner: Daniel Lenharo de Souza 
X-Debbugs-Cc: debian-devel@lists.debian.org, lenh...@debian.org

* Package name: obs-ptz
  Version : 0.7.0
  Upstream Author : Grant Likely 
* URL : https://github.com/glikely/obs-ptz
* License : GPL2
  Programming Lang: C++
  Description : Plugin for OBS Studio to add a PTZ Camera control dock.

This plugin adds a PTZ camera control panel to OBS that can control multiple
cameras, and can automatically change selected camera based on the currently
active preview or program scene.
.
The plugin supports the VISCA serial, VISCA-over-IP, and PELCO-P protocols,
with plans to add support for other camera control protocols in the future.

Features:

Pan, Tilt, and Zoom controls
Save and recall camera presets
Control any number of cameras
Auto select active camera based on active scene
Supported protocols
VISCA
VISCA-over-IP
Pelco-P



Re: Wine MinGW system libraries

2021-09-07 Thread Paul Wise
On Tue, 2021-09-07 at 10:48 -0500, Zebediah Figura wrote:

> The outstanding problem seems to be more about potentially breaking 
> applications because they see two identically named DLLs loaded in the 
> same process. Applications can and do trawl the internal loader state, 
> although the Win32 loader also exposes some APIs so they don't even have to.

I might be wrong but I got the impression that runtime linker
namespaces & LD_AUDIT are designed to solve this exact issue.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part


Re: Wine MinGW system libraries

2021-09-07 Thread Bastien ROUCARIES
Le mar. 7 sept. 2021 à 23:01, Paul Wise  a écrit :
>
> On Tue, 2021-09-07 at 10:48 -0500, Zebediah Figura wrote:
>
> > The outstanding problem seems to be more about potentially breaking
> > applications because they see two identically named DLLs loaded in the
> > same process. Applications can and do trawl the internal loader state,
> > although the Win32 loader also exposes some APIs so they don't even have to.
>
> I might be wrong but I got the impression that runtime linker
> namespaces & LD_AUDIT are designed to solve this exact issue.
Yes but it does not work for PE because win native application do
messy stuff with lib loader...

see dll hell for instance.

Spec was wrong for the beginning for PE. And wine does not use the ELF
loader but a homemade PE in order to be bug to bug compatible with
windows.

In the long term implementing a LT_AUDIT in the wine loader will be
worthless, but in the short term elfpatch like approach could work.
Python use it.

Bastien
>
> --
> bye,
> pabs
>
> https://wiki.debian.org/PaulWise



Re: Wine MinGW system libraries

2021-09-07 Thread Bastien ROUCARIES
Le mar. 7 sept. 2021 à 21:16, Zebediah Figura
 a écrit :
>
> On 9/7/21 12:05 PM, Bastien ROUCARIES wrote:
> > I disagree.
> >
> > Le mar. 7 sept. 2021 à 17:48, Zebediah Figura  a
> > écrit :
> >
> >> On 9/7/21 5:16 AM, Bastien Roucariès wrote:
> >>> Le mardi 7 septembre 2021, 00:44:31 UTC Paul Wise a écrit :
>  On Mon, Sep 6, 2021 at 9:54 PM Zebediah Figura wrote:
> > The basic problem is that applications can and often do ship with PE
> > builds of cross-platform libraries. These libraries can be ahead of
> > Wine's system libraries, behind them, or even built with custom
> >> patches.
> > Accordingly we really don't want to load "our" freetype in place of
> > "their" freetype, or "theirs" in place of "ours". But because of the
> >> way
> > the Win32 loader works, you can generally only have one DLL of a given
> > name loaded in a process, and further attempts to dlopen() [as it were]
> > "libfreetype-6.dll" will return the handle to the already loaded
> > library, potentially breaking either Wine or the application.
> 
>  I don't know the details here, but my immediate thought when reading
>  this is that you need some kind of namespace. I then found that linker
>  namespaces are a thing, perhaps they would provide the solution for
>  you. It sounds like the OpenGL shim loader solution listed on the
>  glibc wiki might work for your use-case. Or perhaps the LD_AUDIT
>  feature would also work.
> 
>  https://www.sourceware.org/glibc/wiki/LinkerNamespaces
> >>> I agree with pabs, implementing name space is a good solution
> >>> and will allow to be distrib friendly.
> >>>
> >>> Moreover it will be best if marking a library as wine system one could
> >> be done
> >>> post build. We will prefer to not modify upstream (like libpng) source.
> >>>
> >>> It is easier for us to apply small patch to upstream, or better in your
> >> case
> >>> to add a post link linker script or even some compiler flag that will
> >> add some
> >>> notes section to dll in order to mark it as use namespace system, or so
> >> on.
> >>>
> >>> The problem on windows side is well known as dll hell
> >>>
> >>> Renaming of the lib could be done post install. Moreover a crazy idea
> >> why not
> >>> renaming system dll instead of libpng-2.0.0.dll as libpng-2.0.0.sll
> >> (note the
> >>> version is manadaroty) Therefore we could use  upstream source. Then add
> >> a
> >>> small linker script that will rewrite the depends of  libpng-2.0.0.sll
> >> to
> >>> .sll file (aka binary sed s/.dll/.sll/g).
> >>>
> >>> then add a small wraper (shim) like said pab that load the .sll library,
> >> the
> >>> best pratice will be a command tool that take the name of the sll and
> >> create
> >>> magically the dll
> >>>
> >>> Therefore from distrib point of side we only changes the way we build the
> >>> package, it could be automated, it is scalable and it does not need to
> >> patch
> >>> package by package. Only to add some linker script magic
> >>
> >> The problem isn't particularly about detecting what is and isn't a
> >> system library; I think we can come up with a reliable heuristic for
> >> that, without even needing linker namespaces or anything.
> >>
> >> The outstanding problem seems to be more about potentially breaking
> >> applications because they see two identically named DLLs loaded in the
> >> same process. Applications can and do trawl the internal loader state,
> >> although the Win32 loader also exposes some APIs so they don't even have
> >> to.
> >>
> >> It may also be that the aforementioned heuristic is too hacky to be
> >> accepted upstream into Wine.
> >>
> > I do not propose to change the loader, i propose to change the link or post
> > link stage of system library. You could rename the lib and change the
> > dépend to new name after build. So you will have an unique name per system
> > lib without changing the way you build these lib.
> >
> > It is équivalent to use a namespace resolved at late build time.
> >
>
> Ah, so what you're proposing is that we do some sort of objcopy-like
> patching at runtime, e.g. when copying the dependency into the prefix.
>
> It probably won't be easy, but it might be more feasible than modifying
> the loader. I'll look into it...
Yes sort of obcopy patching under linux it is called patchelf...

If it work, it could be latter done in memory like paul wise suggest
implementing namespace and LT_AUDIT (but it is a long term goal)
1. capture library loading
2. do the patching at loading time (using the same code then patchelf
for pe replacing file read/write by mmap operation)

And voila

bastien



Re: Require packages to build without any configured DNS

2021-09-07 Thread Don Armstrong
On Mon, 06 Sep 2021, Mattia Rizzolo wrote:
> It must be noted that no actual network operation happen, so this
> doesn't fall into the "no network activity" bucket.
> 
> This is the bug that was filed against dnspython: 
> https://bugs.debian.org/989171
> 
> Do anybody on the list have any opinion on where is the bug, on
> dnspython, or on the build environment?

Do you know why dnspython doesn't just fall back to socket.getaddrinfo
if it can't parse /etc/resolv.conf [or maybe why python applications
using dnspython don't fall back to that if dnspython fails?]

That seems like the right default unless you really, really need to talk
to a full-fledged DNS server directly.


-- 
Don Armstrong  https://www.donarmstrong.com

He quite enjoyed the time by himself in the mornings. The day was too
early to have started going really wrong.
  -- Terry Pratchet _Only You Can Save Mankind_ p133



Bug#993906: ITP: sqlmodel -- SQL databases in Python, designed for simplicity, compatibility, and robustness

2021-09-07 Thread Sandro Tosi
Package: wnpp
Severity: wishlist
Owner: Sandro Tosi 
X-Debbugs-Cc: debian-devel@lists.debian.org, mo...@debian.org

* Package name: sqlmodel
  Version : 0.0.4
  Upstream Author : Sebastián Ramírez
* URL : https://github.com/tiangolo/sqlmodel
* License : MIT
  Programming Lang: Python
  Description : SQL databases in Python, designed for simplicity, 
compatibility, and robustness

 SQLModel is a library for interacting with SQL databases from Python code, with
 Python objects. It is designed to be intuitive, easy to use, highly compatible,
 and robust.
 .
 SQLModel is based on Python type annotations, and powered by Pydantic and
 SQLAlchemy.
 .
 The key features are:
 .
  * Intuitive to write: Great editor support. Completion everywhere. Less time
debugging. Designed to be easy to use and learn. Less time reading docs.
  * Easy to use: It has sensible defaults and does a lot of work underneath to
simplify the code you write.
  * Compatible: It is designed to be compatible with FastAPI, Pydantic, and
SQLAlchemy.
  * Extensible: You have all the power of SQLAlchemy and Pydantic underneath.
  * Short: Minimize code duplication. A single type annotation does a lot of
work. No need to duplicate models in SQLAlchemy and Pydantic.

 SQLModel is designed to simplify interacting with SQL databases in FastAPI
 applications, it was created by the same author.
 .
 It combines SQLAlchemy and Pydantic and tries to simplify the code you write as
 much as possible, allowing you to reduce the code duplication to a minimum, but
 while getting the best developer experience possible.
 .
 SQLModel is, in fact, a thin layer on top of Pydantic and SQLAlchemy, carefully
 designed to be compatible with both.


Bug#993914: ITP: gpufetch -- Simple yet fancy GPU architecture fetching tool

2021-09-07 Thread clay stan
Package: wnpp
Severity: wishlist
Owner: clay stan 
X-Debbugs-Cc: debian-devel@lists.debian.org

* Package name: gpufetch
  Version : 0.10
  Upstream Author : Dr-Noob
* URL : https://github.com/Dr-Noob/gpufetch
  License : MIT



Bug#993914: ITP: gpufetch -- Simple yet fancy GPU architecture fetching tool

2021-09-07 Thread Boyuan Yang
X-Debbugs-Cc: debian-devel@lists.debian.org

Hi,

在 2021-09-08星期三的 14:26 +0800,clay stan写道:
> Package: wnpp
> Severity: wishlist
> Owner: clay stan 
> X-Debbugs-Cc: debian-devel@lists.debian.org
> 
> * Package name    : gpufetch
>   Version : 0.10
>   Upstream Author : Dr-Noob
> * URL : https://github.com/Dr-Noob/gpufetch
>   License : MIT

The project homepage says that it needs cuda C compiler, which is non-free.
How are you going to solve this problem?

Thanks,
Boyuan Yang


signature.asc
Description: This is a digitally signed message part