Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[README] Document "autopoint in $PATH" requirement #606

Closed
wants to merge 1 commit into from

Conversation

jonpryor
Copy link
Member

@jonpryor jonpryor commented May 25, 2017

We recently discovered that a mono bump was failing to build
because:

  1. The Jenkins machine building the PR has Homebrew 1.2.1 installed.

  2. The Jenkins machine attempting to build the PR has never built
    MXE before, as MXE is only required for full builds in which the
    mono runtime has changed.

  3. The MXE build failed, because autopoint wasn't in $PATH:

    Executing: make MXE_TARGETS="i686-w64-mingw32.static" gcc cmake zlib pthreads dlfcn-win32 mman-win32 PREFIX="/Users/builder/android-toolchain /mxe"
    Missing requirement: autopoint
    

The result is a very sad panda.

We (hopefully) fixed this issue by force-linking gettext:

$ brew link --force gettext

Document this new requirement so that we don't forget about it.

We [recently discovered][0] that a mono bump was failing to build
because:

 1. The Jenkins machine building the PR has Homebrew 1.2.1 installed.

 2. The Jenkins machine attempting to build the PR has never built
    MXE before, as MXE is only required for *full* builds in which the
    mono runtime has changed.

 3. The MXE build failed, because `autopoint` wasn't in `$PATH`:

        Executing: make MXE_TARGETS="i686-w64-mingw32.static" gcc cmake zlib pthreads dlfcn-win32 mman-win32 PREFIX="/Users/builder/android-toolchain /mxe"
        Missing requirement: autopoint

The result is a very sad panda.

We (hopefully) fixed this issue by force-linking `gettext`:

	$ brew link --force gettext

Document this new requirement so that we don't forget about it.

[0]: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/966
@jonpryor
Copy link
Member Author

After private discussion, @grendello would prefer that we not merge this PR, as -- admittedly -- requiring that the developer place autopoint into $PATH is ugly and arguably "wrong."

To fix this, however, we'd have to update the make prepare and related targets to create an additional .props file with e.g. a $(BuildPath) MSBuild property. We can then fix the original reported build problem with:

PATH=$(BuildPath) make MXE_TARGETS=...

If we ensure that $(BuildPath) contains autopoint, this should fix the original problem.

(A problem which can't easily be replicated anymore, as I force-linked the bots it was happening on...)

@jonpryor jonpryor added the do-not-merge PR should not be merged. label Nov 7, 2017
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Nov 14, 2017
Context: https://devdiv.visualstudio.com/DevDiv/Default/_build/index?buildId=1138882&_a=summary
Context: dotnet#606 (comment)

We [discovered 6 months ago][0] that a mono bump was failing to build
because:

[0]: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/966

 1. The Jenkins machine building the PR has Homebrew 1.2.1 installed.

 2. The Jenkins machine attempting to build the PR has never built
    MXE before, as MXE is only required for *full* builds in which the
    mono runtime has changed.

 3. The MXE build failed, because `autopoint` wasn't in `$PATH`:

        Executing: make MXE_TARGETS="i686-w64-mingw32.static" gcc cmake zlib pthreads dlfcn-win32 mman-win32 PREFIX="/Users/builder/android-toolchain /mxe"
        Missing requirement: autopoint

The result is a very sad panda.

This *could* be fixed by force-linking the `gettext` package:

	$ brew link --force gettext

However, this is considered to be overkill, as there may be multiple
other `autopoint`s in `$PATH`. (Presumably there's *some* reason why
Brew 1.2 doesn't install `autopoint` into `$PATH`...)

This same issue also reappeared while attempting to build
xamarin-android within VSTS, as the VSTS bots similarly haven't run
`brew link --force gettext` either.

Fix this issue by overriding `$PATH` when building MXE so that it
contains the path to `autopoint`, as returned by:

	dirname $(brew list gettext | grep autopoint$)
@jonpryor
Copy link
Member Author

Superseded by PR #1026.

@jonpryor jonpryor closed this Nov 14, 2017
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Nov 14, 2017
Context: https://devdiv.visualstudio.com/DevDiv/Default/_build/index?buildId=1138882&_a=summary
Context: dotnet#606 (comment)

We [discovered 6 months ago][0] that a mono bump was failing to build
because:

[0]: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/966

 1. The Jenkins machine building the PR has Homebrew 1.2.1 installed.

 2. The Jenkins machine attempting to build the PR has never built
    MXE before, as MXE is only required for *full* builds in which the
    mono runtime has changed.

 3. The MXE build failed, because `autopoint` wasn't in `$PATH`:

        Executing: make MXE_TARGETS="i686-w64-mingw32.static" gcc cmake zlib pthreads dlfcn-win32 mman-win32 PREFIX="/Users/builder/android-toolchain /mxe"
        Missing requirement: autopoint

The result is a very sad panda.

This *could* be fixed by force-linking the `gettext` package:

	$ brew link --force gettext

However, this is considered to be overkill, as there may be multiple
other `autopoint`s in `$PATH`. (Presumably there's *some* reason why
Brew 1.2 doesn't install `autopoint` into `$PATH`...)

This same issue also reappeared while attempting to build
xamarin-android within VSTS, as the VSTS bots similarly haven't run
`brew link --force gettext` either.

Fix this issue by overriding `$PATH` when building MXE so that it
contains the path to `autopoint`, as returned by:

	dirname $(brew list gettext | grep autopoint$)
jonpryor added a commit that referenced this pull request Nov 15, 2017
Context: https://devdiv.visualstudio.com/DevDiv/Default/_build/index?buildId=1138882&_a=summary
Context: #606 (comment)

We [discovered 6 months ago][0] that a mono bump was failing to build
because:

[0]: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/966

 1. The Jenkins machine building the PR has Homebrew 1.2.1 installed.

 2. The Jenkins machine attempting to build the PR has never built
    MXE before, as MXE is only required for *full* builds in which the
    mono runtime has changed.

 3. The MXE build failed, because `autopoint` wasn't in `$PATH`:

        Executing: make MXE_TARGETS="i686-w64-mingw32.static" gcc cmake zlib pthreads dlfcn-win32 mman-win32 PREFIX="/Users/builder/android-toolchain /mxe"
        Missing requirement: autopoint

The result is a very sad panda.

This *could* be fixed by force-linking the `gettext` package:

	$ brew link --force gettext

However, this is considered to be overkill, as there may be multiple
other `autopoint`s in `$PATH`. (Presumably there's *some* reason why
Brew 1.2 doesn't install `autopoint` into `$PATH`...)

This same issue also reappeared while attempting to build
xamarin-android within VSTS, as the VSTS bots similarly haven't run
`brew link --force gettext` either.

Fix this issue by overriding `$PATH` when building MXE so that it
contains the path to `autopoint`, as returned by:

	dirname $(brew list gettext | grep autopoint$)
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Mar 20, 2020
Changes: dotnet/java-interop@cedf4d0...f7ea4ed

  * dotnet/java-interop@f7ea4ed: [Xamarin.Android.Tools.Bytecode-Tests] Remove obsolete files (dotnet#603)
  * dotnet/java-interop@e070ce3: [build] Remove <Imports/> now covered by Directory.Build.props (dotnet#607)
  * dotnet/java-interop@e7c5f54: [generator] Add netcoreapp3.1 support (dotnet#606)
  * dotnet/java-interop@95f698b: [build] Build additional `$(TargetFramework)` values. (dotnet#605)
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Mar 20, 2020
Changes: dotnet/java-interop@cedf4d0...1a086ff

  * dotnet/java-interop@1a086ff: [Java.Interop.Tools.JavaCallableWrappers] Fix IsValidIdentifier() (dotnet#610)
  * dotnet/java-interop@f7ea4ed: [Xamarin.Android.Tools.Bytecode-Tests] Remove obsolete files (dotnet#603)
  * dotnet/java-interop@e070ce3: [build] Remove <Imports/> now covered by Directory.Build.props (dotnet#607)
  * dotnet/java-interop@e7c5f54: [generator] Add netcoreapp3.1 support (dotnet#606)
  * dotnet/java-interop@95f698b: [build] Build additional `$(TargetFramework)` values. (dotnet#605)
jonpryor added a commit that referenced this pull request Mar 21, 2020
Changes: dotnet/java-interop@cedf4d0...1a086ff

  * dotnet/java-interop@1a086ff: [Java.Interop.Tools.JavaCallableWrappers] Fix IsValidIdentifier() (#610)
  * dotnet/java-interop@f7ea4ed: [Xamarin.Android.Tools.Bytecode-Tests] Remove obsolete files (#603)
  * dotnet/java-interop@e070ce3: [build] Remove <Imports/> now covered by Directory.Build.props (#607)
  * dotnet/java-interop@e7c5f54: [generator] Add netcoreapp3.1 support (#606)
  * dotnet/java-interop@95f698b: [build] Build additional `$(TargetFramework)` values. (#605)
@github-actions github-actions bot locked and limited conversation to collaborators Feb 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
do-not-merge PR should not be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants