Re: freerdp (master) & guacamole 1.3.0 - [Was: Using Packages to add a ports dependencies]

2021-01-09 Thread Stuart Henderson
On 2021/01/09 12:41, Steve Williams wrote:
> I have a "work in progress" port for freerdp.  There has been a problem with
> the most recent release version connecting to older systems (Server 2012,
> XP, etc) with the glyph cache.  I noticed in the freerdp main tree, they
> have disabled the glyph caching, marked it as broken and "won't fix".  So I
> modified my port to check the main branch (not a release) of freerdp.
> [1], [2], [3]

That's nothing new in freerdp, the glyph cache has been disabled by
default for ages - the commit you showed is from 2016. That's just
guacamole using an inadvisable setting in their default config.

> The patches I have (pertaining to a very strange timer implementation) still
> applied and I now have a (hacked) port of freerdp.  xfreerdp even works (at
> a basic level) to Windows XP and Windows 7.
> 
> Along with this, I have a guacamole port running leveraging the freerdp
> build and guacamole connects to the Windows XP and Windows 7 system as well
> (by default, not having to disable the glyph cache in guacamole).
> 
> The freerdp port is all hacked, returning non-error values instead of error
> values in the freerdp timer code (and diagnostic messages)... It's partly to
> see exactly where the timer code is used.

2.0rc2 added dynamic resizing,
https://github.com/FreeRDP/FreeRDP/commit/80dab90f1a13551009821440710e90676759952d

A subsequent commit was added which introduces use of WaitableTimer to avoid
sending resize during negotiation or too frequently, to avoid a 2012r2 problem.
https://github.com/FreeRDP/FreeRDP/commit/ce89a9096e4450b79e835f24d0d0d73d7e3206cf

If the timer is broken the resize is never sent, you can see this by
changing the window size. It's also checked in the regression tests.

I'm not sure if there's anything else in the main loop hanging off that
timer, I haven't noticed anything (I have not looked beyond 2.2.0 though),
and quite possibly not because the broken diff several people have sent
out (to init the timer fd and do nothing else with it) does _mostly_ work.

> Now I need to dive into the freerdp timer code and decide the best approach.
> 
> It's interesting working on this stuff :)
> 
> Thanks again,
> Steve Williams
> 
> [1] https://issues.apache.org/jira/browse/GUACAMOLE-1191
> [2] https://github.com/FreeRDP/FreeRDP/issues/6505#issuecomment-705732350
> [3] 
> https://github.com/FreeRDP/FreeRDP/commit/5a2c24974953f044ac35ddf47bf8637bc41df02d
> 



freerdp (master) & guacamole 1.3.0 - [Was: Using Packages to add a ports dependencies]

2021-01-09 Thread Steve Williams

On 09/01/2021 3:03 a.m., Stefan Hagen wrote:

Stuart Henderson wrote:

On 2021/01/08 14:49, Steve Williams wrote:

I want to work on a port that is a pet project (guacamole/xfreerdp).
There are a bunch of dependencies on the port  and I was wondering if
there is an easy way to either

1) Tell the ports system to use packages to fulfill any dependencies

See Stuard's response. If you want to make it permanent, you can
echo "FETCH_PACKAGES=" >> /etc/mk.conf


2) generate a list of dependencies that can be fed to pkg_add

Read ports(7)
$ make print-build-depends
$ make print-run-depends


I have been manually adding the packages based on the dependencies in
the ports Makefile, but after doing this manual process a bunch of
times (yes, I finally made a shell script), I was wondering if there
was an easier way.

If you install a package, dependencies are installed as well. If you
deinstall the package, you can deinstall unused dependencies with
"pkg_delete -a". Be aware that manually installing dependencies marks
them as manually installed and pkg_delete -a won't automatically delete
them.

Best Regards,
Stefan

Hi

Thanks for the pointers and for all the work on the ports 
infrastructure.  It's pretty amazing.


I was able to get my development system upgraded and all the packages 
installed.


I have a "work in progress" port for freerdp.  There has been a problem 
with the most recent release version connecting to older systems (Server 
2012, XP, etc) with the glyph cache.  I noticed in the freerdp main 
tree, they have disabled the glyph caching, marked it as broken and 
"won't fix".  So I modified my port to check the main branch (not a 
release) of freerdp.

[1], [2], [3]

The patches I have (pertaining to a very strange timer implementation) 
still applied and I now have a (hacked) port of freerdp.  xfreerdp even 
works (at a basic level) to Windows XP and Windows 7.


Along with this, I have a guacamole port running leveraging the freerdp 
build and guacamole connects to the Windows XP and Windows 7 system as 
well (by default, not having to disable the glyph cache in guacamole).


The freerdp port is all hacked, returning non-error values instead of 
error values in the freerdp timer code (and diagnostic messages)... It's 
partly to see exactly where the timer code is used.


Now I need to dive into the freerdp timer code and decide the best approach.

It's interesting working on this stuff :)

Thanks again,
Steve Williams

[1] https://issues.apache.org/jira/browse/GUACAMOLE-1191
[2] https://github.com/FreeRDP/FreeRDP/issues/6505#issuecomment-705732350
[3] 
https://github.com/FreeRDP/FreeRDP/commit/5a2c24974953f044ac35ddf47bf8637bc41df02d