Comments (4)
My thoughts:
I ran FreeBSD as my primary server operating system for a couple of years ~6 years ago, until I had to give it up due to hardware incompatibility.
The unnecessary use of Linux-isms in theoretically easily POSIX-portable utilities was incredibly frustrating, so I really empathize.
However, I've also had a number of cases where working with vanilla sh
is pure hell. Most of the time, though, bash
and sh
inter-operate great and there is no reason to dive fully into bash
.
There's also a complication that some dotnet
projects, like Roslyn, currently don't support building on FreeBSD and doing so isn't on the roadmap, so supporting a new platform is a new goal.
So here's what makes sense to me: all scripts that can easily use sh
instead of bash
should change their shebang line to do so. This should be accepted as PRs, but not driven by the project maintainers themselves, as many of the projects don't promise explicit BSD support.
If we come across something which is necessary, currently done in bash
, and hard to do in vanilla sh
-- tough luck. No one uses or knows tcsh
and it's just a step backwards. There are now many minimal bash-compatible shells, like dash, that are extremely lightweight and installing one of them should not be large burden. Most dotnet repos already have external dependencies and adding one for bash doesn't seem ridiculous to me.
from foundation.
Thanks for your feedback @agocke.
In general, choosing sh
over bash
if possible is considered an improvement and as I have understood, your point is it is not a major improvement (as even on FreeBSD 10.2, although the default shell is csh, bash
can be installed in parallel pretty easily).
Regarding building dotnet projects on FreeBSD:
- I was able to build Roslyn on FreeBSD last month: dotnet/roslyn#2844 (comment).
- CoreCLR already builds and FreeBSD bins are distributed via dnu.
- Here is a guide written yesterday (as part of https://github.com/dotnet/coreclr/issues/1633) for building CroreFX on FreeBSD 10.2: https://gist.github.com/jasonwilliams200OK/6efa7907e66275df2d24.
from foundation.
Seconding @agocke proposal. Having bash as a dependency isn't really that troublesome, as long as the shebang used managed to resolve it correctly (i.e., not /bin/bash
).
I assume FreeBSD support is not on the road-map for most dotnet/aspnet projects, but if we can make them more FreeBSD-friendly with near zero-cost PRs, maybe some day later, when we get closer to where we want to be, bigger changes can be warranted too and policies can be reconsidered.
Rome wasn't built in a day and all that yadda yadda. :)
from foundation.
I'm going to go ahead and close this issue on this repo. We should open issues where there are problematic scripts in the repo's that have them. That is where the work in each repo is tracked and where fixes can be made.
from foundation.
Related Issues (20)
- About still mentions CodePlex HOT 2
- Updates are not requested from local WSUS
- Links to .NET Foundation web site use HTTP instead of HTTPS
- Sourcelink location is confusing HOT 4
- Suggest: key F12 go to source code of dotnetcore rather then metadata HOT 1
- Missing logo for Steeltoe HOT 1
- Missing logo for Umbraco
- Missing logo for MVVM Light Toolkit
- No logo provided for Prism
- Clarify guidelines in regards to Options and Requirements
- Typos in CLA bot profile
- Add Akka.NET to the DNF project listing HOT 3
- Website down HOT 1
- Marten HOT 1
- Project Qualification Guidance HOT 4
- Modify CSP policy to allow embedding of youtube videos
- How can we embed images into the .NET foundation website?
- PRs to repos outside of dotnet/* pattern should not always thank for signing the CLA HOT 10
- File system watcher crash HOT 12
- not working "Linux Distribution" dropdown on http://www.microsoft.com/net/learn/get-started/linux
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from foundation.