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

[android-toolchain] Provide path to autopoint #1026

Merged
merged 1 commit into from
Nov 15, 2017

Conversation

jonpryor
Copy link
Member

Context: https://devdiv.visualstudio.com/DevDiv/Default/_build/index?buildId=1138882&_a=summary
Context: #606 (comment)

We discovered 6 months ago 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.

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 autopoints 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$)

@grendello
Copy link
Contributor

Lgtm!

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 jonpryor merged commit 20c722a into dotnet:master Nov 15, 2017
jonpryor pushed a commit that referenced this pull request Aug 24, 2022
Fixes: #7234

Changes: dotnet/java-interop@a5756ca...e31d9c6

  * dotnet/java-interop@e31d9c62: Context: #7285 (comment) (#1029)
  * dotnet/java-interop@d3ea180c: [generator] Add support for `[ObsoletedOSPlatform]` (#1026)
  * dotnet/java-interop@6d1ae4ee: [generator] Remove [Obsolete] style compatibility hacks. (#1025)
  * dotnet/java-interop@440c05ee: [generator] Refactor logic for applying [Obsolete] attributes (#1024)
  * dotnet/java-interop@9b1d3ab7: [Localization] Import translated resx files (#1018)

`generator` can now emit `[ObsoletedOSPlatformAttribute]`.  Requires:

  - Update `Mono.Android.targets` to pass
    `lang-feature=obsoleted-platform-attributes` to `generator` when
    building for .NET 7+

  - Update `acceptable-breakages-vReference-net7.0.txt` to account
    for removing existing `[Obsolete]` attributes in favor of the new
    ones, for .NET 7+ only
jonathanpeppers pushed a commit that referenced this pull request Aug 24, 2022
Fixes: #7234

Changes: dotnet/java-interop@a5756ca...e31d9c6

  * dotnet/java-interop@e31d9c62: Context: #7285 (comment) (#1029)
  * dotnet/java-interop@d3ea180c: [generator] Add support for `[ObsoletedOSPlatform]` (#1026)
  * dotnet/java-interop@6d1ae4ee: [generator] Remove [Obsolete] style compatibility hacks. (#1025)
  * dotnet/java-interop@440c05ee: [generator] Refactor logic for applying [Obsolete] attributes (#1024)
  * dotnet/java-interop@9b1d3ab7: [Localization] Import translated resx files (#1018)

`generator` can now emit `[ObsoletedOSPlatformAttribute]`.  Requires:

  - Update `Mono.Android.targets` to pass
    `lang-feature=obsoleted-platform-attributes` to `generator` when
    building for .NET 7+

  - Update `acceptable-breakages-vReference-net7.0.txt` to account
    for removing existing `[Obsolete]` attributes in favor of the new
    ones, for .NET 7+ only
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants