Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@nosami
Copy link
Member

@nosami nosami commented Oct 2, 2018

make pkg

@akoeplinger
Copy link
Member

@monojenkins build pkg

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nosami btw do you think we can remove those two remaining patches as well now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. Not yet. I will try and get them upstreamed.

@akoeplinger
Copy link
Member

@monojenkins build pkg

8 similar comments
@akoeplinger
Copy link
Member

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 3, 2018

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 4, 2018

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 5, 2018

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 7, 2018

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 8, 2018

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 8, 2018

@monojenkins build pkg

@alexischr
Copy link
Contributor

@monojenkins build pkg

@dsyme
Copy link
Contributor

dsyme commented Oct 18, 2018

From discussing with @nosami

  • Most CI builds don't run the make pkg step
  • Actual Mono releases run "make pkg"
  • Mono CI can no longer run "make pkg" successfully

Hence the failures above. We need to dig into this

@dsyme
Copy link
Contributor

dsyme commented Oct 18, 2018

@monojenkins build pkg

@dsyme
Copy link
Contributor

dsyme commented Oct 18, 2018

@monojenkins build Linux x64 C++
@monojenkins build Linux x64 Interpreter

@akoeplinger
Copy link
Member

@dsyme you don't seem to be in the Microsoft/Xamarin/Mono GitHub orgs (at least not publicly) so the GitHub trigger won't work for you.

The failures from the previous build https://jenkins.mono-project.com/job/build-package-osx-mono-pullrequest/246 should still be accurate though since there wasn't another F# bump.

@nosami
Copy link
Member Author

nosami commented Oct 18, 2018

@akoeplinger The errors now seem to be an artifact of previous test runs. The error that we now see is

15:49:58 mkdir: @/external/bockbuild/scratch/fsharp.install@/external/bockbuild/stage/lib/mono/fsharp: Permission denied
15:49:58 
make[1]: *** [install-sdk-lib] Error 1
15:49:58 make: *** [install] Error 2
15:49:58 
15:49:58 fsharp->build_sh:

As far as I can tell, the permission error has been caused by an inadvertent sudo make install from a previous build. I think the bots need manual clean up.

@akoeplinger
Copy link
Member

akoeplinger commented Oct 18, 2018

Ok, I cleaned the bots, let's try another build.

@akoeplinger
Copy link
Member

@monojenkins build pkg

@nosami
Copy link
Member Author

nosami commented Oct 19, 2018

Same error after clean up. I have no idea where the 'Permission denied' is coming from.

@nosami
Copy link
Member Author

nosami commented Oct 19, 2018

I am assuming that there is some issue with the Jenkins bots somewhere. The same script builds on Travis.

I don't see sudo being used anywhere apart from sudo make install (which I patched out - It appears that the bots run make install to a custom folder). It's also used for restoring packages when the script is ran on linux.

@dsyme
Copy link
Contributor

dsyme commented Oct 19, 2018

Who can add me to those orgs? I should be in xamarin I thought

Can we get direct access to one of these build machines?

@akoeplinger
Copy link
Member

@dsyme yeah you are in the org but your membership is set to private (so the bot can't see it). Go to https://github.com/orgs/xamarin/people?utf8=%E2%9C%93&query=dsyme and flip it to "public"

@akoeplinger
Copy link
Member

@nosami yes, let's talk on Slack

@alexischr
Copy link
Contributor

It seemed like more uncleanable files from sudo make install

@alexischr
Copy link
Contributor

@monojenkins build pkg

@alexischr
Copy link
Contributor

@monojenkins build pkg

@alexischr
Copy link
Contributor

@directhex given our understanding of the problem now, do you think it's still necessary that both all and install are run on the build step? I may fix that up in a subsequent PR.

@directhex
Copy link
Contributor

@alexischr my strong preference is that they NOT be run on the same build step, tbh

@alexischr
Copy link
Contributor

It built!! @directhex sounds good, I am not even going to try here though. Merging!

@alexischr alexischr merged commit c16b4cf into mono:master Apr 10, 2019
@dsyme
Copy link
Contributor

dsyme commented Apr 10, 2019

🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉 🎉

🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾 🍾

@dsyme
Copy link
Contributor

dsyme commented Apr 10, 2019

Thank you so, so much to everyone who helped with this little piece of nightmare.

@auduchinok
Copy link

BTW, should we talk about bumping it to 4.6 already? :)

@dsyme
Copy link
Contributor

dsyme commented Apr 10, 2019

@auduchinok First we drink all that champagne I just posted

@alexischr
Copy link
Contributor

@monojenkins backport to 2019-02

@alexischr
Copy link
Contributor

@monojenkins backport to 2018-10

@monojenkins
Copy link
Contributor

@alexischr backporting to 2019-02 failed, the patch results in conflicts:

Applying: attempt F# update
Applying: Revert "attempt F# update"
Applying: revert and integrate
Using index info to reconstruct a base tree...
M	packaging/MacSDK/fsharp.py
.git/rebase-apply/patch:96: space before tab in indent.
 	@echo "Installing $(ASSEMBLY)"
.git/rebase-apply/patch:102: space before tab in indent.
 	@mkdir -p $(DESTDIR)$(monodir)/fsharp
.git/rebase-apply/patch:104: space before tab in indent.
 	@if test "x$(DELAY_SIGN)" = "x1"; then \
.git/rebase-apply/patch:105: space before tab in indent.
 	    echo "Signing $(outdir)$(ASSEMBLY) with Mono key"; \
.git/rebase-apply/patch:124: trailing whitespace.
 
warning: squelched 1 whitespace error
warning: 6 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Removing packaging/MacSDK/patches/fsharp-string-switchName.patch
Removing packaging/MacSDK/patches/fsharp-path-overloads.patch
Removing packaging/MacSDK/patches/fsharp-debug-pinvoke-fix.patch
Auto-merging packaging/MacSDK/fsharp.py
CONFLICT (content): Merge conflict in packaging/MacSDK/fsharp.py
error: Failed to merge in the changes.
Patch failed at 0003 revert and integrate

Please backport manually!

@monojenkins
Copy link
Contributor

@alexischr backporting to 2018-10 failed, the patch results in conflicts:

Applying: attempt F# update
Using index info to reconstruct a base tree...
M	packaging/MacSDK/fsharp.py
.git/rebase-apply/patch:96: space before tab in indent.
 	@echo "Installing $(ASSEMBLY)"
.git/rebase-apply/patch:102: space before tab in indent.
 	@mkdir -p $(DESTDIR)$(monodir)/fsharp
.git/rebase-apply/patch:104: space before tab in indent.
 	@if test "x$(DELAY_SIGN)" = "x1"; then \
.git/rebase-apply/patch:105: space before tab in indent.
 	    echo "Signing $(outdir)$(ASSEMBLY) with Mono key"; \
.git/rebase-apply/patch:124: trailing whitespace.
 
warning: squelched 1 whitespace error
warning: 6 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Removing packaging/MacSDK/patches/fsharp-string-switchName.patch
Removing packaging/MacSDK/patches/fsharp-path-overloads.patch
Removing packaging/MacSDK/patches/fsharp-debug-pinvoke-fix.patch
Auto-merging packaging/MacSDK/fsharp.py
CONFLICT (content): Merge conflict in packaging/MacSDK/fsharp.py
error: Failed to merge in the changes.
Patch failed at 0001 attempt F# update

Please backport manually!

@alexischr
Copy link
Contributor

I'll do the backporting manually. And yeah we should get started on 4.6 right away :)

@nosami nosami deleted the fsharp-4.5 branch April 11, 2019 13:07
@auduchinok
Copy link

@alexischr Thank you again!
And just to get some insight on Mono release process: what Mono versions this change should be expected to get to and when to expect that to happen?

alexischr pushed a commit that referenced this pull request Apr 15, 2019
* Use a custom prefix instead of trying to infer it, which doesn't work under bockbuild.

The following line is problematic in the scope of building the Mac SDK package (using bockbuild):

https://github.com/fsharp/fsharp/blob/ccfccbacfdb16b2ab143cf83f5ece20f738fd864/mono/config.make#L5

It's problematic because where `mono` lives in this case would be something like `/macsdk-staging-dir/bin/mono` which is not the actual prefix (prefix here being the final destination, `/Library/Frameworks/Mono.framework/...`) but a staging area that bockbuild uses (this is how we build on system prefixes without installing on CI)

For the F# build, bockbuild expects things to end up  in `/fsharp-staging-dir/$(prefix)` (because that's what most `make install`s do when given `DESTDIR=/fsharp-staging-dir/`). If things end up in _any other_ directory in `/fsharp-staging-dir/`  (like `/fsharp-staging-dir/macsdk-staging-dir` in our case) that would cause us to miss packaging those files (this has happened before, with packages that have broken or different use of `DESTDIR`). So there is an added write-protection for anywhere in `/fsharp-staging-dir` that *isn't*  `/fsharp-staging-dir/$(prefix)` , because a write-protection error, while obtuse, is much preferable to missing the fact that some files are not packaged (as would have happened here)

So the fix is to stop trying to infer the prefix, and return to providing it explicitly to the build system (this used to be the case via the `configure` step)

* Also, if we are doing an override of the 'make' command, we need to take care of passing DESTDIR ourselves too

* Since now we perform 'make install' on the make step, make the 'install' step into a no-operation.

* Look for sn where mono is, not in the final destination (which again, may not be the same)
@alexischr
Copy link
Contributor

@monojenkins backport to 2019-04

@monojenkins
Copy link
Contributor

@alexischr backporting to 2019-04 failed, the patch results in conflicts:

Applying: attempt F# update
Using index info to reconstruct a base tree...
M	packaging/MacSDK/fsharp.py
.git/rebase-apply/patch:96: space before tab in indent.
 	@echo "Installing $(ASSEMBLY)"
.git/rebase-apply/patch:102: space before tab in indent.
 	@mkdir -p $(DESTDIR)$(monodir)/fsharp
.git/rebase-apply/patch:104: space before tab in indent.
 	@if test "x$(DELAY_SIGN)" = "x1"; then \
.git/rebase-apply/patch:105: space before tab in indent.
 	    echo "Signing $(outdir)$(ASSEMBLY) with Mono key"; \
.git/rebase-apply/patch:124: trailing whitespace.
 
warning: squelched 1 whitespace error
warning: 6 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Removing packaging/MacSDK/patches/fsharp-string-switchName.patch
Removing packaging/MacSDK/patches/fsharp-path-overloads.patch
Removing packaging/MacSDK/patches/fsharp-debug-pinvoke-fix.patch
Auto-merging packaging/MacSDK/fsharp.py
CONFLICT (content): Merge conflict in packaging/MacSDK/fsharp.py
error: Failed to merge in the changes.
Patch failed at 0001 attempt F# update

Please backport manually!

@alexischr
Copy link
Contributor

@auduchinok I am attempting backports from master to 6.0 and 6.2 (see PRs referring to this one). Otherwise this will make the next bi-monthly branch (6.4).

These are unreleased/unstable Mono versions and have not finished being integrated with Xamarin products, but 6.0 is on preview as a standalone Mac package: https://www.mono-project.com/download/preview/ . If this merges on 6.0, we can update the 6.0 preview to include it. Do note - this package is not guaranteed or even expected to work with any releases of Visual Studio for Mac.

As we were not targeting this for a specific Mono/Xamarin release (and this is a big change), I did not end up backporting to stable branches.

alexischr pushed a commit that referenced this pull request Apr 15, 2019
* Use a custom prefix instead of trying to infer it, which doesn't work under bockbuild.

The following line is problematic in the scope of building the Mac SDK package (using bockbuild):

https://github.com/fsharp/fsharp/blob/ccfccbacfdb16b2ab143cf83f5ece20f738fd864/mono/config.make#L5

It's problematic because where `mono` lives in this case would be something like `/macsdk-staging-dir/bin/mono` which is not the actual prefix (prefix here being the final destination, `/Library/Frameworks/Mono.framework/...`) but a staging area that bockbuild uses (this is how we build on system prefixes without installing on CI)

For the F# build, bockbuild expects things to end up  in `/fsharp-staging-dir/$(prefix)` (because that's what most `make install`s do when given `DESTDIR=/fsharp-staging-dir/`). If things end up in _any other_ directory in `/fsharp-staging-dir/`  (like `/fsharp-staging-dir/macsdk-staging-dir` in our case) that would cause us to miss packaging those files (this has happened before, with packages that have broken or different use of `DESTDIR`). So there is an added write-protection for anywhere in `/fsharp-staging-dir` that *isn't*  `/fsharp-staging-dir/$(prefix)` , because a write-protection error, while obtuse, is much preferable to missing the fact that some files are not packaged (as would have happened here)

So the fix is to stop trying to infer the prefix, and return to providing it explicitly to the build system (this used to be the case via the `configure` step)

* Also, if we are doing an override of the 'make' command, we need to take care of passing DESTDIR ourselves too

* Since now we perform 'make install' on the make step, make the 'install' step into a no-operation.

* Look for sn where mono is, not in the final destination (which again, may not be the same)
alexischr added a commit that referenced this pull request Apr 16, 2019
* Use a custom prefix instead of trying to infer it, which doesn't work under bockbuild.

The following line is problematic in the scope of building the Mac SDK package (using bockbuild):

https://github.com/fsharp/fsharp/blob/ccfccbacfdb16b2ab143cf83f5ece20f738fd864/mono/config.make#L5

It's problematic because where `mono` lives in this case would be something like `/macsdk-staging-dir/bin/mono` which is not the actual prefix (prefix here being the final destination, `/Library/Frameworks/Mono.framework/...`) but a staging area that bockbuild uses (this is how we build on system prefixes without installing on CI)

For the F# build, bockbuild expects things to end up  in `/fsharp-staging-dir/$(prefix)` (because that's what most `make install`s do when given `DESTDIR=/fsharp-staging-dir/`). If things end up in _any other_ directory in `/fsharp-staging-dir/`  (like `/fsharp-staging-dir/macsdk-staging-dir` in our case) that would cause us to miss packaging those files (this has happened before, with packages that have broken or different use of `DESTDIR`). So there is an added write-protection for anywhere in `/fsharp-staging-dir` that *isn't*  `/fsharp-staging-dir/$(prefix)` , because a write-protection error, while obtuse, is much preferable to missing the fact that some files are not packaged (as would have happened here)

So the fix is to stop trying to infer the prefix, and return to providing it explicitly to the build system (this used to be the case via the `configure` step)

* Also, if we are doing an override of the 'make' command, we need to take care of passing DESTDIR ourselves too

* Since now we perform 'make install' on the make step, make the 'install' step into a no-operation.

* Look for sn where mono is, not in the final destination (which again, may not be the same)
@auduchinok
Copy link

Thanks. I was naively expecting we could get it in a 5.x release. 🙂

alexischr pushed a commit that referenced this pull request Apr 17, 2019
* Use a custom prefix instead of trying to infer it, which doesn't work under bockbuild.

The following line is problematic in the scope of building the Mac SDK package (using bockbuild):

https://github.com/fsharp/fsharp/blob/ccfccbacfdb16b2ab143cf83f5ece20f738fd864/mono/config.make#L5

It's problematic because where `mono` lives in this case would be something like `/macsdk-staging-dir/bin/mono` which is not the actual prefix (prefix here being the final destination, `/Library/Frameworks/Mono.framework/...`) but a staging area that bockbuild uses (this is how we build on system prefixes without installing on CI)

For the F# build, bockbuild expects things to end up  in `/fsharp-staging-dir/$(prefix)` (because that's what most `make install`s do when given `DESTDIR=/fsharp-staging-dir/`). If things end up in _any other_ directory in `/fsharp-staging-dir/`  (like `/fsharp-staging-dir/macsdk-staging-dir` in our case) that would cause us to miss packaging those files (this has happened before, with packages that have broken or different use of `DESTDIR`). So there is an added write-protection for anywhere in `/fsharp-staging-dir` that *isn't*  `/fsharp-staging-dir/$(prefix)` , because a write-protection error, while obtuse, is much preferable to missing the fact that some files are not packaged (as would have happened here)

So the fix is to stop trying to infer the prefix, and return to providing it explicitly to the build system (this used to be the case via the `configure` step)

* Also, if we are doing an override of the 'make' command, we need to take care of passing DESTDIR ourselves too

* Since now we perform 'make install' on the make step, make the 'install' step into a no-operation.

* Look for sn where mono is, not in the final destination (which again, may not be the same)
@directhex
Copy link
Contributor

RPMs are done. Debs are blocked by #14103

@marek-safar marek-safar added this to the 2019-02 (6.0.xx) milestone Apr 23, 2019
@auduchinok auduchinok mentioned this pull request Sep 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants