Error is logged with severity: "INFO" and Info like log lines are logged with severity: ERROR"

What version of eunomia are you using?
eunomia version:
v0.0.4
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (kubectl version)?
kubectl version Output
```
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"211047e9a1922595eaa3a1127ed365e9299a6c23", GitTreeState:"clean", BuildDate:"2019-10-15T12:11:03Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.8-gke.12", GitCommit:"188432a69210ca32cafded81b4dd1c063720cac0", GitTreeState:"clean", BuildDate:"2019-11-07T19:27:01Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}
```

What did you do?
deployed gitops cr on the project namespace in a GKE cluster.
What did you expect to see?
Errors log lines having severity ERROR
Info like log lines with severity INFO
What did you see instead?
While examining GKE stackdriver logs from the POD I see the following:
Error log line with severity INFO
Info log lines with severity ERROR
It looks to me that all what goes out due to bash set -x is severity ERROR (as that goes to stderr I think) and all what just goes out to stdout gets INFO, even if it contains an ERROR msg actually. Can provide example log if you need it in private channel.

Can't this be reconfigured somehow in stackdriver? Personally, I wouldn't want to lose the ability of seeing the set -x log output from our scripts — it's a very useful debugging tool... Do you by chance have any ideas (even brainstorm-grade random ones) regarding what we could try to do to improve the situation in stackdriver, while ideally keeping as much insight into the scripts' work as possible?

I don't know of any easy way to fix this. The culprit is the 'set -x' here which sends all to stderr and GKE (and all systems in general) will treat this as ERR log level. I don't think there's a way to reconfigure this behaviour. Disabling set -x at some stage and leaving only the logging echo's for the important parts of the script should be enough in my view.


remove true form isError

Jira link (https://tools.hmcts.net/jira/browse/DTSPO-14630)
remove true from IsError
Change description
Checklist

[x] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)
[ ] Does this PR introduce a breaking change

it works locally as getting creds error but it is normal


Generate unique names

Gets rid of the ugly HookNames by generating stable, unique names based on the current stack trace. Uses V5 UUIDs via the uuid JS library. Still need to do some benchmarking to see if it has a performance impact.

I’m gonna merge this for now and I’ll address any other comments in a future PR

Another nice enhancement might be trying to parse function names out of the call stack and include them in the generated component name, so that when React says "I found this problem, please check the render method of ", the component name would suggest what it means.

Good ideas. A couple questions/thoughts:

What does “multiple delegation” mean?
I’m assuming “Integration tests” means using Enzyme once that’s ready?
I think (5) is a good idea, but after we test some more.
For (6), I was thinking about adding traced versions of the hooks themselves, so that they would use Elmish.withTrace. Maybe that can include tracing the stack.

Separately, now that we don’t need monad transformers, do you think that I should implement the Hook monad from scratch to get rid of the dependency on transformers?

By "multiple delegation" I mean a code arrangement where the actual call to useState happens with a different call stack than its definition would imply, by virtue of the function getting passed as a parameter, perhaps partially applied, and that happening multiple times. Something along these lines:
f x y = useState ...

g x = h (f x) z w

h u y = u y

Here, when useState is finally called, its call stack would include only h, even though it "looks" like it's defined at top level.
But don't read too much into this. I'm not sure this is even helpful. It was just one option of a spitballing session, with the overall goal being to test weird arrangements of call stack and make sure they all work "as intended", and perhaps in the process clarify the definition of "as intended".

By "integration tests", I'm not sure exactly what I mean, perhaps Enzyme, yes. But the two core properties that I'd like to achieve are:

Test the call stack shenanigans in a variety of "real"-ish scenarios (in a bundle, without a bundle, with minification, with optimizations, etc.). For this, as far as I understand at the moment, Enzyme wouldn't be enough, we'd have to set up a whole test project and run shell commands on it.
Have those tests run in CI to make sure they catch breakages due to either code changes or upstream changes (such as compiler codegen).

Got it, thanks for the explanation! Will think about tests a bit more.


Proposal fow new column (show/details view) to display relationships (hasMany)

Proposal for new column type for show/details view.
I use a backpack for the admin area so I would like to display as much as I can. I mainly use $this->crud->setFromDb(); but now i want to add more data. Let's take an example user. Users can have roles (1-n), these are advanced models - SchoolRoles in relation to School (1-1). So I am gonna display his roles in a nice way.

How to use it:
$this->crud->addColumn([
    'name' => 'schoolRoles',
    'type' => 'table_relationships',
    'columns' => [
        'id'          => 'Id',
        'role'        => 'Role name',
        'school.name' => [
            'label' => 'School name',
            'callback' => static function ($value, $model) {
                return new HtmlString('school_id) . '/show">' . $value . '');
            }
        ],
]]);

We can here use attributes directly, but also nested (in dot notation). Callbacks are helpful to display custom data, I just don't want to display all data from DB, but select columns, make them interactive, translate, etc.
I think we can also add support for attribute as sometimes it could be enough.
Or another approach could use subview - index limited only to the parent model (more complicated).
What do You think?

A new inspection was created.

The inspection completed: No new issues

Whooow! I think this is super-cool @mgralikowski ! Great job, really nice and clean!
I have very few (small) observations on the implementation itself (mainly naming and syntax stuff). Let me know if you agree with them or not, if you can do them or if we should. I'll make those comments inline.
But first let's determine what problem this solves, please, so we decide if it's better to have this inside the core package, or maybe as an add-on. When will this be useful? When will developer reach for this column type, instead of relationship column with the new wrapper attribute?
The way I see it, this column has one big feature on top of relationship+wrapper - it shows additional columns on the related item. Something you could also achieve with the relationship column by showing an accessor instead of a simple column (or something like that), but it wouldn't show nearly as nice. So that's the extra feature it brings to the table, right? (pun intended 😆 ) Ok then, so where would this useful? When you have an n-n relationship between X and Y, and you're viewing X but have no idea about Y, right? When one column about Y isn't nearly enough for you to understand what Y is about. But... When would this be needed? Usually (in my experience) there's one attribute for each Model that can be considered an identifiable attribute. Something that just by glancing you understand what it is... Or maybe this is only really useful for polymorphic relationships?
Not trying to distract from the column itself @mgralikowski - I think you did a great job. And I see how it makes sense inside your system with school roles. I'm just trying to gauge how likely it is for people to need this, if the use case is broad enough, so we know what to do with it.
Cheers!

This type is a combination of table and relationship types. I used table view as a framework. There is about visualization - relationship is ok for inline visualization and for a single attribute. This is more advanced and very easy to use - just define columns. I put here this PR just to get Your general opinion, and because it is positive, next week I will back here with a more complete and powerful solution.

Other example could be Order model. Order has many Item, Item has one Product. The result is:

No
Quantity
Item.Product
Actions

1
1
Book
[show, edit]

2
3
Pen
[show, edit]

3
1
Ruler
[show, edit]

Two years ago i dropped this package in favour of Laravel Nova, bevause they support nested data. In that project i use it for things like:
order detail:

crud table with articles
crud table with vats

client detail:

crud table with all shops
crud table with all buyers

If this package supports this, i would definitly use it for my next project. So fingers crossed!

Awesome feedback, super helpful @preliot - thanks!

Hey @mgralikowski ,
Just wanted to let you know we've started working on a solution for this, that can also include buttons (Show, Edit etc) for nested entries. We couldn't do it here, because as soon as you add Operations to it, this feature spirals out of control, and needs to be separated and well thought out.
So rather than merging this PR, we're going to:

Recommend using this add-on, that already exists to solve this issue in a similar way - https://github.com/izica/relations-widgets-for-backpack
Wait for "live components" in Backpack v7, which will have a solution to this. Subscribe to our blog digest to find out when it's in beta.

Sorry for delaying then closing this @mgralikowski . Please don't let this discourage you. I'm shutting down my own PRs too, regularly, it's just the way things go. If you (or anybody else) think I'm wrong here and it does make sense to merge, that it's important for us to do as it is here - let me know and we'll taken another look, re-open. I'm human, I make mistakes all the time.
Cheers!


cancelPayment does not transmit project name

the notifcation module can't update cancelled payments as the notification payload is missing the project name.
this fix adds it to the request payload in the extension module

Thank you for the fix @jvoges. I tried your fix in adyen sandbox env, but unfortunately the notifications still come without the project name. Does this fix work for you?
I'm currently trying to check with Adyen why is it so and will let you know once we have more information.

@lojzatran it looks like the Adyen doesn't send metadata with every notification call. I don't know yet, why...

We expect a fix from Adyen side to be rolled out in the upcoming weeks which should ensure that metadata is included on all the required notifications.

Hi @jvoges I am closing the PR since it does not fix the issue. Also, Adyen is still working on ensuring that metadata are always included on all the notifications but it will take time. Until it is ensured from Adyen side it is possible to work around the issue by incorporating commercetools project key in the Adyen notification/webhook URL and is possible since the release v9.8.0


Convert scipy coordinate system to opencv coordinate system

I'm using the following code to convert a quaternion to a rotation vector.
#convert to xyzw
rotation = R.from_quat([quaternion[1], quaternion[2], quaternion[3], quaternion[0]])
rotation_vector = np.array(rotation.as_rotvec()).reshape(3, 1)

Unfortunately, the axis is rotated in the wrong direction. How can I convert the Rotation vector in script format to OpenCV coordinate system?

I know this is an old issue, but I just run into a issue related to it when I tried to figure out which of the scipy function to use with opencv.
My little tests show that cv2.Rodrigues is identical to from_rotvec and as_rotvec:
from scipy.spatial.transform import Rotation
import cv2
import numpy as np

mat = np.array(
    [[ 0.60553959, -0.34852815,  0.71543688],
     [ 0.73940596, -0.08603654, -0.66773988],
     [ 0.29427986,  0.93334122,  0.20560526]]
)

print(np.squeeze(cv2.Rodrigues(mat)[0]))
print(Rotation.from_matrix(mat).as_rotvec())
print(Rotation.from_matrix(mat).as_mrp())

rotvec = np.array([1.38097297, 0.36325859, 0.9383707])

print(np.squeeze(cv2.Rodrigues(rotvec)[0]))
print(Rotation.from_rotvec(rotvec).as_matrix())
print(Rotation.from_mrp(rotvec).as_matrix())

Which prints:
[1.38097297 0.36325859 0.9383707 ]
[1.38097297 0.36325859 0.9383707 ]
[0.36789751 0.09677375 0.24998625]
[[ 0.60553959 -0.34852815  0.71543688]
 [ 0.73940596 -0.08603654 -0.66773988]
 [ 0.29427986  0.93334122  0.20560526]]
[[ 0.60553959 -0.34852815  0.71543688]
 [ 0.73940596 -0.08603654 -0.66773988]
 [ 0.29427986  0.93334122  0.20560526]]
[[ 0.47276553  0.73021084  0.49323918]
 [-0.20776487 -0.45159282  0.86769677]
 [ 0.85634486 -0.5126949  -0.06178536]]

Looks to me like the function works as expected, although I think it might make sense to add a note to the documentation regarding which to use. I am a bit tight on time, but if I don't forget can try to put together a pull request next week.


FIX-#4136: Fix exercise_3.ipynb example notebook

Signed-off-by: Alexander Myskov<EMAIL_ADDRESS>
What do these changes do?

[x] commit message follows format outlined here
[x] passes flake8 modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] passes black --check modin/ asv_bench/benchmarks scripts/doc_checker.py
[x] signed commit with git commit -s
[x] Resolves #4136
[ ] tests added and passing
[x] module layout described at docs/development/architecture.rst is up-to-date
[ ] added (Issue Number: PR title (PR Number)) and github username to release notes for next major release

Hi @modin-project/modin-core, please take a look at this PR.


Fluentd fails to rotate supervisor log on Windows

Describe the bug
I notice another rotate bug while implementing a fix for #3921.
Suppose we launch Fluentd as follows:
PS> fluentd -c fluent.conf -o log/test.log --log-rotate-size=2k

This is perfectly normal settings, but it ends up causing an internal error.
Here is the actual error message:
PS> bundle exec fluentd -c fluentd.conf -o test.log  --log-rotate-size=2k
...
log shifting failed. Permission denied @ rb_file_s_rename - (log/test-supervisor-0.log, log/test-supervisor-0.log.0)
log writing failed. closed stream

To Reproduce

Run the following command on Windows:PS> fluentd -c fluent.conf -o log/test.log --log-rotate-size=2k

Observe fluentd outputs error messages to console on rotation.

Expected behavior
No error
Your Environment
- Fluentd version: v1.15.2 (latest HEAD)
- TD Agent version: -
- Operating system: Windows Server 2019
- Kernel version: -

Your Configuration
<source>
  @type dummy
  tag test.log
</source>
<match>
  @type stdout
</match>

Your Error Log
See above.

Additional context
No response

I don't fully trace the root cause yet, but my strong suspicion is that
the supervisor actually has two separate logger instances (on the same file):

https://github.com/fluent/fluentd/blob/master/lib/fluent/supervisor.rb#L445-L453
https://github.com/fluent/fluentd/blob/master/lib/fluent/supervisor.rb#L771-L773

Since Windows locks files with an open handler by default
and there is no coordination between two loggers, they are
conflicting with each other.


UI testing when app requires OAuth2 login

Handling OAuth2 Google Login in Xamarin UI Tests?
It would be fantastic if this page included a 'Related Link' to help developers implement UI tests that successfully can login to an app, even when an oauth2 identity provider login (with Google, for instance) is required.
If there is any information on how best to handle this situation, I would greatly  appreciate it. Please let me know if my question needs any sort of clarification.
Thanks so much for your hard work!

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: aa8bb9e0-5898-0d11-0213-fd4d8c8d0297
Version Independent ID: 2f46e1f7-164f-2f32-70c0-f28919d16c5c
Content: AuthenticateUsers with an Identity Provider - Xamarin
Content Source: docs/xamarin-forms/data-cloud/authentication/oauth.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

It looks like the page on which this issue was opened no longer exists, so I'll close the issue here. In addition, UITest is looked after by the AppCenter team (https://docs.microsoft.com/appcenter/test-cloud/frameworks/uitest/), so the question is best raised there.


execute whoami.exe failed

attempt to execute whoami.exe, but no output:
> .\RunPE.exe C:\Windows\System32\whoami.exe
[*] Running: C:\Windows\System32\whoami.exe with no args
[*] Mapping PE into memory
[*] Mapped PE Base Address: 0x1060000
[*] No more blocks to map
[*] Mapped PE EntryPoint: 0x106D2B0
[+] Finished mapping PE file

[*] Original module: RunPE.exe
[*] Original module: ntdll.dll
[*] Original module: MSCOREE.DLL
[*] Original module: KERNEL32.dll
[*] Original module: KERNELBASE.dll
[*] Original module: ADVAPI32.dll
[*] Original module: msvcrt.dll
[*] Original module: sechost.dll
[*] Original module: RPCRT4.dll
[*] Original module: mscoreei.dll
[*] Original module: SHLWAPI.dll
[*] Original module: kernel.appcore.dll
[*] Original module: VERSION.dll
[*] Original module: clr.dll
[*] Original module: USER32.dll
[*] Original module: win32u.dll
[*] Original module: VCRUNTIME140_CLR0400.dll
[*] Original module: ucrtbase_clr0400.dll
[*] Original module: GDI32.dll
[*] Original module: gdi32full.dll
[*] Original module: msvcp_win.dll
[*] Original module: ucrtbase.dll
[*] Original module: IMM32.DLL
[*] Original module: mscorlib.ni.dll
[*] Original module: ole32.dll
[*] Original module: combase.dll
[*] Original module: bcryptPrimitives.dll
[*] Original module: clrjit.dll
[*] Original module: System.ni.dll
[*] Original module: System.Core.ni.dll
[*] Original module: psapi.dll
[+] Loaded ADVAPI32.dll
[+] Patching ADVAPI32.dll!LookupPrivilegeDisplayNameW, to: 0x7FFF2A606E80
[+] Patching ADVAPI32.dll!LookupPrivilegeNameW, to: 0x7FFF2A6071D0
[+] Patching ADVAPI32.dll!GetSidIdentifierAuthority, to: 0x7FFF2A5DB9E0
[+] Patching ADVAPI32.dll!LookupAccountSidW, to: 0x7FFF2A5D66F0
[+] Patching ADVAPI32.dll!GetLengthSid, to: 0x7FFF2A5D6870
[+] Patching ADVAPI32.dll!OpenProcessToken, to: 0x7FFF2A5D6940
[+] Patching ADVAPI32.dll!IsValidSid, to: 0x7FFF2A5D6C30
[+] Patching ADVAPI32.dll!CopySid, to: 0x7FFF2A5D6AD0
[+] Patching ADVAPI32.dll!GetSidSubAuthority, to: 0x7FFF2A5D6EC0
[+] Patching ADVAPI32.dll!GetSidSubAuthorityCount, to: 0x7FFF2A5D6E50
[+] Patching ADVAPI32.dll!AdjustTokenPrivileges, to: 0x7FFF2A5D77B0
[+] Patching ADVAPI32.dll!LookupPrivilegeValueW, to: 0x7FFF2A5CF980
[+] Patching ADVAPI32.dll!GetTokenInformation, to: 0x7FFF2A5D5F70
[+] Patching ADVAPI32.dll!InitializeSid, to: 0x7FFF2A5DAEB0
[+] Patching ADVAPI32.dll!EqualSid, to: 0x7FFF2A5D7BE0
[*] End of functions for ADVAPI32.dll

[+] Loaded KERNEL32.dll
[+] Patching KERNEL32.dll!CloseHandle, to: 0x7FFF2ACD48E0
[+] Patching KERNEL32.dll!LocalFree, to: 0x7FFF2ACC7B60
[+] Patching KERNEL32.dll!SetLastError, to: 0x7FFF2ACC5CB0
[+] Patching KERNEL32.dll!FileTimeToSystemTime, to: 0x7FFF2ACD5050
[+] Patching KERNEL32.dll!GetTimeFormatW, to: 0x7FFF2ACCF1C0
[+] Patching KERNEL32.dll!GetModuleFileNameW, to: 0x7FFF2ACCDF20
[+] Patching KERNEL32.dll!HeapSize, to: 0x7FFF2B7A56D0
[+] Patching KERNEL32.dll!HeapReAlloc, to: 0x7FFF2B7AC9A0
[+] Patching KERNEL32.dll!HeapAlloc, to: 0x7FFF2B7A6C80
[+] Patching KERNEL32.dll!HeapValidate, to: 0x7FFF2ACCC0F0
[+] Patching KERNEL32.dll!HeapFree, to: 0x7FFF2ACC5570
[+] Patching KERNEL32.dll!GetProcessHeap, to: 0x7FFF2ACC5BB0
[+] Patching KERNEL32.dll!GetConsoleOutputCP, to: 0x7FFF2ACD5300
[+] Patching KERNEL32.dll!HeapSetInformation, to: 0x7FFF2ACD03E0
[+] Patching KERNEL32.dll!WriteConsoleW, to: 0x7FFF2ACD53C0
[+] Patching KERNEL32.dll!CompareStringA, to: 0x7FFF2ACCD620
[+] Patching KERNEL32.dll!GetThreadLocale, to: 0x7FFF2ACCA0F0
[+] Patching KERNEL32.dll!CompareStringW, to: 0x7FFF2ACCC6A0
[+] Patching KERNEL32.dll!lstrlenW, to: 0x7FFF2ACC7000
[+] Patching KERNEL32.dll!GetStdHandle, to: 0x7FFF2ACCD490
[+] Patching KERNEL32.dll!GetConsoleMode, to: 0x7FFF2ACD52F0
[+] Patching KERNEL32.dll!GetFileType, to: 0x7FFF2ACD4DB0
[+] Patching KERNEL32.dll!WideCharToMultiByte, to: 0x7FFF2ACC5B30
[+] Patching KERNEL32.dll!FormatMessageW, to: 0x7FFF2ACCC890
[+] Patching KERNEL32.dll!TerminateProcess, to: 0x7FFF2ACD0760
[+] Patching KERNEL32.dll!UnhandledExceptionFilter, to: 0x7FFF2ACEB9D0
[+] Patching KERNEL32.dll!GetTickCount, to: 0x7FFF2ACC5640
[+] Patching KERNEL32.dll!GetSystemTimeAsFileTime, to: 0x7FFF2ACC7B80
[+] Patching KERNEL32.dll!GetCurrentThreadId, to: 0x7FFF2ACC5550
[+] Patching KERNEL32.dll!GetCurrentProcessId, to: 0x7FFF2ACD4890
[+] Patching KERNEL32.dll!QueryPerformanceCounter, to: 0x7FFF2ACC5C10
[+] Patching KERNEL32.dll!GetModuleHandleW, to: 0x7FFF2ACCD130
[+] Patching KERNEL32.dll!SetUnhandledExceptionFilter, to: 0x7FFF2ACCFE00
[+] Patching KERNEL32.dll!SleepConditionVariableSRW, to: 0x7FFF2943AB40
[+] Patching KERNEL32.dll!WakeAllConditionVariable, to: 0x7FFF2B7DD3D0
[+] Patching KERNEL32.dll!AcquireSRWLockExclusive, to: 0x7FFF2B7ADC30
[+] Patching KERNEL32.dll!ReleaseSRWLockExclusive, to: 0x7FFF2B7B0B10
[+] Patching KERNEL32.dll!Sleep, to: 0x7FFF2ACCADA0
[+] Patching KERNEL32.dll!GetCurrentProcess, to: 0x7FFF2ACD4880
[+] Patching KERNEL32.dll!SetThreadUILanguage, to: 0x7FFF2ACCC610
[+] Patching KERNEL32.dll!GetLastError, to: 0x7FFF2ACC5BF0
[+] Patching KERNEL32.dll!ExitProcess, to: 0x7FFF2ACCE0A0
[*] End of functions for KERNEL32.dll

[+] Loaded msvcrt.dll
[+] Patching msvcrt.dll!fprintf, to: 0x7FFF2AC574B0
[+] Patching msvcrt.dll!fflush, to: 0x7FFF2AC572B0
[+] Patching msvcrt.dll!wcstok, to: 0x7FFF2AC6E4F0
[+] Patching msvcrt.dll!_get_osfhandle, to: 0x7FFF2AC2C990
[+] Patching msvcrt.dll!_fileno, to: 0x7FFF2AC57000
[+] Patching msvcrt.dll!wcstoul, to: 0x7FFF2AC15570
[+] Patching msvcrt.dll!wcstol, to: 0x7FFF2AC154F0
[+] Patching msvcrt.dll!wcstod, to: 0x7FFF2AC14EB0
[+] Patching msvcrt.dll!_errno, to: 0x7FFF2AC17D60
[+] Patching msvcrt.dll!_memicmp, to: 0x7FFF2AC6A500
[+] Patching msvcrt.dll!?terminate@@YAXXZ, to: 0x7FFF2AC1AE00
[+] Patching msvcrt.dll!??1type_info@@UEAA@XZ, to: 0x7FFF2AC24040
[+] Patching msvcrt.dll!_onexit, to: 0x7FFF2AC3A990
[+] Patching msvcrt.dll!__dllonexit, to: 0x7FFF2AC3A8B0
[+] Patching msvcrt.dll!_unlock, to: 0x7FFF2AC4B280
[+] Patching msvcrt.dll!_lock, to: 0x7FFF2AC4B040
[+] Patching msvcrt.dll!_commode, to: 0x7FFF2ACA56D8
[+] Patching msvcrt.dll!_fmode, to: 0x7FFF2ACA467C
[+] Patching msvcrt.dll!__C_specific_handler, to: 0x7FFF2AC37F60
[+] Patching msvcrt.dll!_initterm, to: 0x7FFF2AC4A510
[+] Patching msvcrt.dll!__setusermatherr, to: 0x7FFF2AC78160
[+] Patching msvcrt.dll!_cexit, to: 0x7FFF2AC4A210
[+] Patching msvcrt.dll!_exit, to: 0x7FFF2AC4A0D0
[+] Patching msvcrt.dll!exit, to: 0x7FFF2AC4A7D0
[+] Patching msvcrt.dll!__set_app_type, to: 0x7FFF2AC3B130
[+] Patching msvcrt.dll!__wgetmainargs, to: 0x7FFF2AC17A50
[+] Patching msvcrt.dll!_amsg_exit, to: 0x7FFF2AC4A190
[+] Patching msvcrt.dll!_XcptFilter, to: 0x7FFF2AC37D70
[+] Patching msvcrt.dll!_CxxThrowException, to: 0x7FFF2AC1AE80
[+] Patching msvcrt.dll!_callnewh, to: 0x7FFF2AC29280
[+] Patching msvcrt.dll!??0exception@@QEAA@AEBQEBDH@Z, to: 0x7FFF2AC1A6C0
[+] Patching msvcrt.dll!malloc, to: 0x7FFF2AC29CD0
[+] Patching msvcrt.dll!free, to: 0x7FFF2AC29C80
[+] Patching msvcrt.dll!memmove_s, to: 0x7FFF2AC6CF70
[+] Patching msvcrt.dll!??0exception@@QEAA@AEBV0@@Z, to: 0x7FFF2AC1A6E0
[+] Patching msvcrt.dll!??0exception@@QEAA@AEBQEBD@Z, to: 0x7FFF2AC1A640
[+] Patching msvcrt.dll!??0exception@@QEAA@XZ, to: 0x7FFF2AC1A770
[+] Patching msvcrt.dll!??1exception@@UEAA@XZ, to: 0x7FFF2AC1A7D0
[+] Patching msvcrt.dll!?what@exception@@UEBAPEBDXZ, to: 0x7FFF2AC1AA90
[+] Patching msvcrt.dll!memcpy_s, to: 0x7FFF2AC6CED0
[+] Patching msvcrt.dll!_ultow, to: 0x7FFF2AC12E10
[+] Patching msvcrt.dll!_vsnwprintf, to: 0x7FFF2AC5AD20
[+] Patching msvcrt.dll!__CxxFrameHandler3, to: 0x7FFF2AC1B560
[+] Patching msvcrt.dll!__iob_func, to: 0x7FFF2AC4CF40
[+] Patching msvcrt.dll!memset, to: 0x7FFF2AC84680
[*] End of functions for msvcrt.dll

[+] Loaded ntdll.dll
[+] Patching ntdll.dll!RtlVerifyVersionInfo, to: 0x7FFF2B809AE0
[+] Patching ntdll.dll!RtlCaptureContext, to: 0x7FFF2B82FEA0
[+] Patching ntdll.dll!RtlLookupFunctionEntry, to: 0x7FFF2B7B3E50
[+] Patching ntdll.dll!VerSetConditionMask, to: 0x7FFF2B7FF670
[+] Patching ntdll.dll!RtlVirtualUnwind, to: 0x7FFF2B7B20B0
[*] End of functions for ntdll.dll

[+] Loaded USER32.dll
[+] Patching USER32.dll!LoadStringW, to: 0x7FFF2AE77FD0
[+] Patching USER32.dll!CharLowerW, to: 0x7FFF2AE81D60
[+] Patching USER32.dll!CharUpperW, to: 0x7FFF2AE76B50
[*] End of functions for USER32.dll

[+] Loaded WS2_32.dll
[*] End of functions for WS2_32.dll

[+] Loaded SHLWAPI.dll
[+] Patching SHLWAPI.dll!StrStrW, to: 0x7FFF2B52F8E0
[+] Patching SHLWAPI.dll!StrStrIW, to: 0x7FFF2B526A50
[+] Patching SHLWAPI.dll!StrChrW, to: 0x7FFF2B5262A0
[+] Patching SHLWAPI.dll!StrChrIW, to: 0x7FFF2B527FB0
[*] End of functions for SHLWAPI.dll

[+] Loaded VERSION.dll
[+] Patching VERSION.dll!VerQueryValueW, to: 0x7FFF207F1050
[+] Patching VERSION.dll!GetFileVersionInfoExW, to: 0x7FFF207F1070
[+] Patching VERSION.dll!GetFileVersionInfoSizeExW, to: 0x7FFF207F1090
[*] End of functions for VERSION.dll

[+] Loaded AUTHZ.dll
[+] Patching AUTHZ.dll!FreeClaimDefinitions, to: 0x7FFF27CE1130
[+] Patching AUTHZ.dll!InitializeClaimDictionary, to: 0x7FFF27CE13B0
[+] Patching AUTHZ.dll!GetClaimDefinitions, to: 0x7FFF27CE1200
[+] Patching AUTHZ.dll!FreeClaimDictionary, to: 0x7FFF27CE11E0
[*] End of functions for AUTHZ.dll

[+] Loaded SspiCli.dll
[+] Patching SspiCli.dll!LsaConnectUntrusted, to: 0x7FFF28D8A6A0
[+] Patching SspiCli.dll!LsaLookupAuthenticationPackage, to: 0x7FFF28D83B80
[+] Patching SspiCli.dll!LsaCallAuthenticationPackage, to: 0x7FFF28D83A20
[+] Patching SspiCli.dll!GetUserNameExW, to: 0x7FFF28D88020
[*] End of functions for SspiCli.dll

[+] Loaded wkscli.dll
[+] Patching wkscli.dll!NetGetJoinInformation, to: 0x7FFF280B16F0
[*] End of functions for wkscli.dll

[+] Loaded netutils.dll
[+] Patching netutils.dll!NetApiBufferFree, to: 0x7FFF283F1060
[*] End of functions for netutils.dll

[*] End of DLLs
[+] Finished resolving imports

[*] PEB Base Address: 0xAC1000
[*] PEB RTL_USER_PROCESS_PARAMETERS Struct Pointer Address: 0xAC1020
[*] PEB RTL_USER_PROCESS_PARAMETERS Struct Pointer: 0xD021F0
[*] CommandLine String Pointer Pointer: 0x13640296
[*] CommandLine String Pointer: 0x13641904
[*] Image String Pointer Pointer: 0x13640280
[*] Image String Pointer: 0x13641784
[*] Length Pointer: 0x13640288
[*] Length Value: 0xB8 (184)
[*] MaxLength Pointer: 0x13640290
[*] MaxLength Value: 0xBA (186)
[*] Current args read from PEB: "C:\Users\Thin0\source\repos\RunPE\RunPE\bin\Debug\RunPE.exe" C:\Windows\System32\whoami.exe
[*] Current image read from PEB: C:\Users\Thin0\source\repos\RunPE\RunPE\bin\Debug\RunPE.exe
[*] Patching CommandLine string pointer...
[+] Patched pointer at 0xD02268 to 0xDC61A0
[*] Patching Image string pointer...
[+] Patched pointer at 0xD02258 to 0xDC5FC0
[*] Patching Length...
[*] Patching MaximumLength...
[*] PEB Base Address: 0xAC1000
[*] PEB RTL_USER_PROCESS_PARAMETERS Struct Pointer Address: 0xAC1020
[*] PEB RTL_USER_PROCESS_PARAMETERS Struct Pointer: 0xD021F0
[*] CommandLine String Pointer Pointer: 0x13640296
[*] CommandLine String Pointer: 0x14442912
[*] Image String Pointer Pointer: 0x13640280
[*] Image String Pointer: 0x14442432
[*] Length Pointer: 0x13640288
[*] Length Value: 0x21 (33)
[*] MaxLength Pointer: 0x13640290
[*] MaxLength Value: 0x21 (33)
[*] New args read from PEB: "C:\Windows\System32\whoami.exe"
[*] New image read from PEB: C:\Windows\System32\whoami.exe
[*] New length read from PEB: 33
[*] New maxlength read from PEB: 33
[+] Finished Patching PEB

[+] Patching GetCommandLine API Call...
[*] String bytes: 22 0 43 0 3A 0 5C 0 55 0 73 0 65 0 72 0 73 0 5C 0 54 0 68 0 69 0 6E 0 30 0 5C 0 73 0 6F 0 75 0 72 0 63 0 65 0 5C 0 72 0 65 0 70 0 6F 0 73 0 5C 0 52 0 75 0 6E 0 50 0 45 0 5C 0 52 0 75 0 6E 0 50 0 45 0 5C 0 62 0 69 0 6E 0 5C 0 44 0
[*] String encoding determined to be: System.Text.UTF8Encoding
[*] Old GetCommandLine return value: 0xD028B0
[*] New String Address: 0xDC54D0
[*] Patching kernelbase!GetCommandLineW
[*] PatchBytes: 0x48 0xB8 0xD0 0x54 0xDC 0x0 0x0 0x0 0x0 0x0 0xC3
[*] PatchBytes Len: 11
[*] kernelbase!GetCommandLineW API function at: 0x7FFF29447B40
[*] Original bytes: 0x48 0x8B 0x5 0x91 0x43 0x21 0x0 0xC3 0xCC 0xCC 0xCC
[*] Changed protections on kernelbase!GetCommandLineW to RW
[+] Patched function kernelbase!GetCommandLineW
[*] Reverted memory protections on kernelbase!GetCommandLineW
[*] New GetCommandLine return value: 0xDC54D0
[*] Patched CommandLine string from GetCommandLine API call: "C:\Windows\System32\whoami.exe"
[+] Finished Patching API Calls

[*] kernelbase!ExitThread API function at: 0x7FFF2B7DCEF0
[*] Patching kernelbase!TerminateProcess, redirecting flow to kernelbase!ExitThread
[*] Patching kernelbase!TerminateProcess
[*] PatchBytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] PatchBytes Len: 19
[*] kernelbase!TerminateProcess API function at: 0x7FFF2944B320
[*] Original bytes: 0x48 0x89 0x5C 0x24 0x8 0x57 0x48 0x83 0xEC 0x20 0x8B 0xFA 0x48 0x8B 0xD9 0x48 0x85 0xC9 0xF
[*] Changed protections on kernelbase!TerminateProcess to RW
[+] Patched function kernelbase!TerminateProcess
[*] Reverted memory protections on kernelbase!TerminateProcess
[*] Patching mscoree!CorExitProcess, redirecting flow to kernelbase!ExitThread
[*] Patching mscoree!CorExitProcess
[*] PatchBytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] PatchBytes Len: 19
[*] mscoree!CorExitProcess API function at: 0x7FFF01DD7450
[*] Original bytes: 0x40 0x53 0x48 0x83 0xEC 0x20 0x48 0x83 0x64 0x24 0x38 0x0 0x8B 0xD9 0x48 0x8D 0x4C 0x24 0x38
[*] Changed protections on mscoree!CorExitProcess to RW
[+] Patched function mscoree!CorExitProcess
[*] Reverted memory protections on mscoree!CorExitProcess
[*] Patching ntdll!NtTerminateProcess, redirecting flow to kernelbase!ExitThread
[*] Patching ntdll!NtTerminateProcess
[*] PatchBytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] PatchBytes Len: 19
[*] ntdll!NtTerminateProcess API function at: 0x7FFF2B82C310
[*] Original bytes: 0x4C 0x8B 0xD1 0xB8 0x2C 0x0 0x0 0x0 0xF6 0x4 0x25 0x8 0x3 0xFE 0x7F 0x1 0x75 0x3 0xF
[*] Changed protections on ntdll!NtTerminateProcess to RW
[+] Patched function ntdll!NtTerminateProcess
[*] Reverted memory protections on ntdll!NtTerminateProcess
[*] Patching ntdll!RtlExitUserProcess, redirecting flow to kernelbase!ExitThread
[*] Patching ntdll!RtlExitUserProcess
[*] PatchBytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] PatchBytes Len: 19
[*] ntdll!RtlExitUserProcess API function at: 0x7FFF2B7F3BD0
[*] Original bytes: 0x40 0x53 0x48 0x83 0xEC 0x20 0x8B 0xD9 0xE8 0x33 0xD4 0x1 0x0 0x65 0x48 0x8B 0x4 0x25 0x30
[*] Changed protections on ntdll!RtlExitUserProcess to RW
[+] Patched function ntdll!RtlExitUserProcess
[*] Reverted memory protections on ntdll!RtlExitUserProcess
[+] Exit functions patched

[*] Creating STDOut Pipes to redirect to
[+] Created File Descriptor pipes:
        [*] Read: 0x2F0
        [*] Write: 0x2F4
[*] Creating STDIn Pipes to redirect to
[+] Created File Descriptor pipes:
        [*] Read: 0x2F8
        [*] Write: 0x2FC
[+] SetStdHandle STDOUT to 0x2F4
[+] SetStdHandle STDERROR to 0x2F4
[+] SetStdHandle STDIN to 0x2FC

[*] Performing extra environmental patches
[*] Patching the main module base address in the PEB to 0x1060000
[*] Address of main module base address in PEB: 0xAC1010
[*] Main module base address read from PEB: 0x8C0000
[-] Unable to change memory protections to RW for modification on address: 0xAC1010
[-] Unable to patch main module base address in PEB at: 0xAC1010

[*] Patching kernelbase!GetModuleHandleW to return base address of loaded PE if called with NULL
[*] New func at: 0x1080000
[*] Patching kernelbase!GetModuleHandleW
[*] PatchBytes: 0x48 0xB8 0x0 0x0 0x8 0x1 0x0 0x0 0x0 0x0 0xFF 0xE0
[*] PatchBytes Len: 12
[*] kernelbase!GetModuleHandleW API function at: 0x7FFF294008C0
[*] Original bytes: 0x48 0x89 0x5C 0x24 0x10 0x57 0x48 0x83 0xEC 0x30 0x33 0xDB
[*] Changed protections on kernelbase!GetModuleHandleW to RW
[+] Patched function kernelbase!GetModuleHandleW
[*] Reverted memory protections on kernelbase!GetModuleHandleW

[*] Executing loaded PE

 [*] Reverting patch to kernelbase!TerminateProcess
[*] Patching kernelbase!TerminateProcess
[*] PatchBytes: 0x48 0x89 0x5C 0x24 0x8 0x57 0x48 0x83 0xEC 0x20 0x8B 0xFA 0x48 0x8B 0xD9 0x48 0x85 0xC9 0xF
[*] PatchBytes Len: 19
[*] kernelbase!TerminateProcess API function at: 0x7FFF2944B320
[*] Original bytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] Changed protections on kernelbase!TerminateProcess to RW
[+] Patched function kernelbase!TerminateProcess
[*] Reverted memory protections on kernelbase!TerminateProcess
[*] Reverting patch to mscoree!CorExitProcess
[*] Patching mscoree!CorExitProcess
[*] PatchBytes: 0x40 0x53 0x48 0x83 0xEC 0x20 0x48 0x83 0x64 0x24 0x38 0x0 0x8B 0xD9 0x48 0x8D 0x4C 0x24 0x38
[*] PatchBytes Len: 19
[*] mscoree!CorExitProcess API function at: 0x7FFF01DD7450
[*] Original bytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] Changed protections on mscoree!CorExitProcess to RW
[+] Patched function mscoree!CorExitProcess
[*] Reverted memory protections on mscoree!CorExitProcess
[*] Reverting patch to ntdll!NtTerminateProcess
[*] Patching ntdll!NtTerminateProcess
[*] PatchBytes: 0x4C 0x8B 0xD1 0xB8 0x2C 0x0 0x0 0x0 0xF6 0x4 0x25 0x8 0x3 0xFE 0x7F 0x1 0x75 0x3 0xF
[*] PatchBytes Len: 19
[*] ntdll!NtTerminateProcess API function at: 0x7FFF2B82C310
[*] Original bytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] Changed protections on ntdll!NtTerminateProcess to RW
[+] Patched function ntdll!NtTerminateProcess
[*] Reverted memory protections on ntdll!NtTerminateProcess
[*] Reverting patch to ntdll!RtlExitUserProcess
[*] Patching ntdll!RtlExitUserProcess
[*] PatchBytes: 0x40 0x53 0x48 0x83 0xEC 0x20 0x8B 0xD9 0xE8 0x33 0xD4 0x1 0x0 0x65 0x48 0x8B 0x4 0x25 0x30
[*] PatchBytes Len: 19
[*] ntdll!RtlExitUserProcess API function at: 0x7FFF2B7F3BD0
[*] Original bytes: 0x48 0xC7 0xC1 0x0 0x0 0x0 0x0 0x48 0xB8 0xF0 0xCE 0x7D 0x2B 0xFF 0x7F 0x0 0x0 0x50 0xC3
[*] Changed protections on ntdll!RtlExitUserProcess to RW
[+] Patched function ntdll!RtlExitUserProcess
[*] Reverted memory protections on ntdll!RtlExitUserProcess
[+] Exit patches reverted

[*] Reverting patch to kernelbase!GetModuleHandleW
[*] Patching kernelbase!GetModuleHandleW
[*] PatchBytes: 0x48 0x89 0x5C 0x24 0x10 0x57 0x48 0x83 0xEC 0x30 0x33 0xDB
[*] PatchBytes Len: 12
[*] kernelbase!GetModuleHandleW API function at: 0x7FFF294008C0
[*] Original bytes: 0x48 0xB8 0x0 0x0 0x8 0x1 0x0 0x0 0x0 0x0 0xFF 0xE0
[*] Changed protections on kernelbase!GetModuleHandleW to RW
[+] Patched function kernelbase!GetModuleHandleW
[*] Reverted memory protections on kernelbase!GetModuleHandleW
[+] Extra API patches reverted

[*] Reverting patch to main module base address in PEB at: 0x11276304
[-] Unable to change memory protections to RW for modification on address: 0xAC1010
[-] Unable to revert patch to main module base address in PEB at: 0x11276304
[*] Reset StdError, StdOut, StdIn
[+] SetStdHandle STDOUT to 0x54
[+] SetStdHandle STDERROR to 0x58
[+] SetStdHandle STDIN to 0x4C
[*] Closing StdOut pipes
[+] CloseHandle write
[+] CloseHandle read
[-] Unable to read from 'subprocess' pipe
[*] Closing StdIn pipes
[+] CloseHandle write
[+] CloseHandle read
[*] Closing StdOut pipes
[+] CloseHandle write
[+] CloseHandle read
[*] Closing StdIn pipes
[+] CloseHandle write
[+] CloseHandle read
[*] Reverting patch to kernelbase!GetCommandLineW
[*] Patching kernelbase!GetCommandLineW
[*] PatchBytes: 0x48 0x8B 0x5 0x91 0x43 0x21 0x0 0xC3 0xCC 0xCC 0xCC
[*] PatchBytes Len: 11
[*] kernelbase!GetCommandLineW API function at: 0x7FFF29447B40
[*] Original bytes: 0x48 0xB8 0xD0 0x54 0xDC 0x0 0x0 0x0 0x0 0x0 0xC3
[*] Changed protections on kernelbase!GetCommandLineW to RW
[+] Patched function kernelbase!GetCommandLineW
[*] Reverted memory protections on kernelbase!GetCommandLineW
[*] Reverting patch to command line string pointer
[+] Patched pointer at 0xD02268 to 0xD028B0
[*] Reverting patch to image string pointer
[+] Patched pointer at 0xD02258 to 0xD02838
[*] Reverting patch to command line string length
[*] Patching command line string max length
[+] Args reverted

[*] Zeroing out and freeing loaded PE image at 0x1060000 with size: 0x16000
[*] PE artifacts cleared from memory

[*] Cleaning up loaded DLLs
[*] Freeing WS2_32.dll at 0x7FFF2B580000
[*] Freeing AUTHZ.dll at 0x7FFF27CC0000
[*] Freeing SspiCli.dll at 0x7FFF28D80000
[*] Freeing wkscli.dll at 0x7FFF280B0000
[*] Freeing netutils.dll at 0x7FFF283F0000
[*] Freeing clbcatq.dll at 0x7FFF2A280000
[+] Loaded DLLs cleaned up

[*] Retrieving the 'subprocess' stdout & stderr

------------------------ EXE OUTPUT -------------------------

--------------------- END OF EXE OUTPUT ---------------------

[+] End of RunPE

This is a known issue for some really old binaries like whoami.exe and ipconfig.exe. that we haven't been able to get to the bottom of. It appears to be binaries which use _iob to get stdio data.
Most other old binaries still work and anything we've tried that is 'new', i.e. offensive tooling we've compiled ourselves, has worked. We'll take a look at this again but it's a bit of a rabbit hole.


Useful error message for no hosts returned from config file

If no hosts are returned from the config file, Aerys currently fails with [2017-07-25 12:05:12] critical TypeError: Expected an array of Hosts as second parameter, but array also contains integer in /home/kelunik/GitHub/kelunik/chat/vendor/amphp/aerys/lib/functions.php:541, which is not really a helpful error message.

Have you considered that configuration would be much more developer-friendly if you used value objects (i.e. with actual classes) for configuration instead of arrays? Configuration options would be clearly documented in the code, the risk of typos in the names of optional fields would be eliminated, developers would get auto-completion in their IDEs when writing configuration, and errors/exceptions thrown as a result of misconfiguration would be thrown where the developer made the mistake, instead of later on in some distant piece of code, as has happened here.

@joshdifabio I guess you're talking about AERYS_OPTIONS. That's not what this issue is about. It's about the new config returning Host|Host[] instead of relying on magic to register hosts.

I think the issue you've raised is a symptom of the approach you guys have taken to configuration with Aerys, which is why I made the suggestion.
As far as I understand it, Aerys's Host objects are simply configuration, so I think something like this:
function initServer(PsrLogger $logger, ServerConfiguration $configuration): Server

would be better than the current:
function initServer(PsrLogger $logger, array $hosts, array $options = []): Server

For all the reasons I mentioned previously. Plus a lot of what initServer() does is validate the provided arguments and specify default values (e.g. debug=false), which could be moved to configuration objects.
Just a suggestion.


rustup

@bors r+

:pushpin: Commit dd3b8e8b1bfe1bad169cb0050d60b3c4bb9c2a7a has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit dd3b8e8b1bfe1bad169cb0050d60b3c4bb9c2a7a with merge 530abacbf762d27eba20c730b422ca1537e46c68...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing 530abacbf762d27eba20c730b422ca1537e46c68 to master...


ghc: depends on libncursesw.so.5

Last 15 lines from /home/whitj15/.cache/Homebrew/Logs/ghc/05.configure:
2016-03-03 21:30:44 +0000

./configure
--prefix=/home/whitj15/tmp/ghc20160303-14946-1q1emq2/ghc-7.10.3/binary
--with-gmp-includes=/toolbox/NGS/.linuxbrew_amd/Cellar/ghc/7.10.3b/libexec/integer-gmp/include
--with-gmp-libraries=/toolbox/NGS/.linuxbrew_amd/Cellar/ghc/7.10.3b/libexec/integer-gmp/lib
--with-ld=ld
--with-gcc=/toolbox/NGS/.linuxbrew_amd/bin/gcc-5

configure: WARNING: unrecognized options: --with-ld
checking for path to top of build tree... /home/whitj15/tmp/ghc--binary20160303-14946-1wk487s/ghc-7.6.3
ghc/stage2/build/tmp/ghc-stage2: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
Can't work out build platform

Logs are here... https://gist.github.com/jwhite007/d42b1a46ec51fefdfe1a

error while loading shared libraries: libncursesw.so.5
Does brew install ncurses resolve this issue?

I have ncurses installed; however, the version is 6 and not 5.

brew upgrade r

... is also looking for libncursesw.so.5.

Hmm. This is a challenge. ghc uses some binaries to bootstrap, and it looks as though those binaries depend on libncursesw.so.5. As a workaround, can you tell me whether the following symlink gets it working?
ln -s libncursesw.so.6 `brew --prefix`/lib/libncursesw.so.5

Please open a separate ticket for the R issue and report brew gist-logs r.

The symlink trick works... no errors issued upon "brew install ghc." Are there any deleterious effects of doing this?

It should be just fine. A reasonable fix would be in the ghc formula create the libncursesw.so.5 symlink in lib in install and then remove it at the end after it's compiled. I think it's just a build time dependency, not a run time dep. I'll have to check that. Please do submit a pull request to do that if you like.

@jwhite007 Are you able/interested in submitting a pull request to fix this issue? Add to def install something like the following (untested)
ln_s Formula["ncurses"].lib/"libncursesw.so.6", lib/"libncursesw.so.5" if OS.linux?

and then at the end of def install
rm lib/"libncursesw.so.5" if OS.linux?

Also please add a comment to the code that explains (in one line) why this hack is necessary.

Yes, I'll work on this. Suffering from the flu at the moment. I'll try to get to it tomorrow.

Get better first! Good luck with it.

After reading with understanding I have found that similar problem is visible in gnupg2. Shall I administer the same cure?

This particular fix is only necessary in the formula of ghc because it uses precompiled executables to bootstrap which depend on libncursesw.so.5. For gnupg2, brew reinstall readline gnupg2 should fix it. You'll need to reinstall anything that depends on ncurses. See brew uses --installed ncurses

Seems like doing the trick. Thanks!

Any hope of a bottled ghc ? This will circumvent the issue, unless installed from source

ghc is not labelled as being cellar :any, meaning that it will only work if it's installed in a particular directory that it was built for, such as /home/linuxbrew/.linuxbrew. So, no, I guess not. The logic that tests whether a bottle is relocatable or not is automated and sometimes wrong. So, I suggest building a bottle in one HOMEBREW_PREFIX, installing it in a different HOMEBREW_PREFIX and reporting back whether that bottle works for you.

Just wanted to add the comment that preforming
brew install r --without-x11
Also lacks libncursesw.so.5 and symlinking it to libncursesw.so.6  did the trick for me

Thanks for the report, @kimleeng. You can if you like open a new issue over at https://github.com/Homebrew/homebrew-science/issues
Be sure to include a link to this issue if you do.

I'm still planning on contributing to this as you, Shaun, suggested above, and I'd like to make the proper edits to the rb; however, my company is in the process of moving right now, and it's been just shy of a shit storm. I've got several impending project deadlines, but after the dust settles, I'll start contributing more to linuxbrew.

I believe this particular bug is fixed by 5503308, but future contributions are more than welcome, James! Good luck with the move.


Add integration instructions for Swift Package Manager

https://hack.in.backtrace.io/T15182
We expect to release this feature May 2, 2023
Question: what's up with this syntax?
:::note Make sure to specify use_frameworks! in your Podfile. ::: That doesn't seem to resolve?
Description
Added support for SPM - swift Package Manager - to backtrace-cocoa. The customer has new way to integrate backtrace-cocoa, and this change details them.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation fix (typos, incorrect content, missing content, etc.)

Checklist

[x] I have read the contributing document.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Hey - I like the tabs for obj-c and swift. Such tabs could be used here for Xcode, Package.swift and CocoaPods. Can that be done?

@rick-bt ~ Re: the syntax used for the notes uses Docusaurus Markdown, so something like:
:::note
Relevant information for you.
:::

will render as:

Docusaurus markdown is also used to generate the tabs.

The mighty Docusaurus goes Roar!


Patch for IPv6 native clusters (airflow binds to ipv4 only by default)

What issues does your PR fix?
-fixes IPv6 native clusters cannot be reached on IPv4 addresses.
What does your PR do?
This PR makes the following changes...
Adds --hostname [::] to the exec airflow webserver command so that it binds to ipv6 as well as ipv4.
Checklist
For all Pull Requests

[x] Commits are signed off
[x] Commits have semantic messages
[x] Documentation updated
[x] Passes ct linting

For releasing ONLY

[ ] Chart.yaml version bumped
[ ] CHANGELOG.md updated

@thesuperzapper @gsemet Any chance we can get a review for this simple change? It's mission critical for an OpenMetadata dependency to support this.

@xorl thanks for raising this, but it turns out you can set this already with the AIRFLOW__WEBSERVER__WEB_SERVER_HOST config, so we don't need to expose a new value for it.
For example, you might set the following values:
airflow:
  config:
    AIRFLOW__WEBSERVER__WEB_SERVER_HOST: "[::]"


non free file forms-post.html

We've came across this working on the Debian package of httpbin (which is coming up, soon): /httpbin/templates/forms-post.html is under the W3C Document License which isn't FOSS free ("no right to create modifications or derivatives") and therefore we had to strip it off from the upstream tarball we use. Maybe you would like to exchange that with something else?

BTW, towards httpbin/license/UTF-8-demo.txt no licensing statement at all could be found, so we've had to extract that either (nitpicky, I know, but this is how it works ...). I've contacted Markus Kuhn if he would like to add a license statement.

I'm not even sure why /forms/post is there but yes, I'm open to a replacement.

@johnsheehan probably because someone wanted to test something like using BeautifulSoup + an HTTP Agent and someone said "sure why not".

We've got Httpbin already in Debian now: https://tracker.debian.org/pkg/httpbin (very new, package tracker page not yet populated)


Web Interface: Remember selections between validations / sessions

Remember selected profile/schema and selected validation rules
"The fact that every time you have to remember to change the XSD to use sometimes bring you to use the wrong XSD"

Getting fixed in #79


Caution: StyleFix breaks BrowserSync stream reloading

StyleFix converts <link ... /> into <style ... /> , and this breaks BrowserSync automatic style refresh. As a result, BrowserSync stylesheet reloading doesn't work, one needs to fully reload the page.
This is probably a wont-fix, but still good to know for some people.

Yeah, I can’t think of a way around this. I guess it could be possible to retain compatibility if we kept the original link around as well but disabled it and had a mutation observer for changes to its href (if that’s how Browsersync does its refresh)?

I just looked a bit deeper, and seems BrowserSync does analyze <style> too, but for some reason ignores my converted styles.. Here is the code:
https://github.com/BrowserSync/browser-sync/blob/92bf7d84894e9171ed8e313909d473bbd6c7368d/packages/browser-sync-client/vendor/Reloader.ts#L392