Skip to content

Strong name the releases please #738

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

Closed
jherby2k opened this issue Oct 17, 2018 · 25 comments · Fixed by #1130
Closed

Strong name the releases please #738

jherby2k opened this issue Oct 17, 2018 · 25 comments · Fixed by #1130
Milestone

Comments

@jherby2k
Copy link

jherby2k commented Oct 17, 2018

I see #308 was closed with a suggestion to use StrongNamer. Which is fine, but...

Microsoft's new library guidance (out yesterday!) specifically recommends you strong-name sign your open-source libraries, and just provide the private key in the repo: https://docs.microsoft.com/en-ca/dotnet/standard/library-guidance/strong-naming.

Its worth mentioning that of the dozen-odd nuget packages I'm referencing, this is the only one that isn't signed.

@antonfirsov
Copy link
Member

antonfirsov commented Oct 17, 2018

I'm not saying we are happy about this, but that Microsoft recommendation is a game changer. We should definitely do this now, maybe for RC1 already.

@JimBobSquarePants
Copy link
Member

Yeah, the tide has definitely turned. RC1 shall be strong named.

@tocsoft tocsoft added this to the 1.0.0-rc1 milestone Oct 18, 2018
@etomm
Copy link

etomm commented Nov 14, 2018

Why you should not be happy I really don't understand. StrongNaming is a safety mechanism and it's a must have. I am waiting for it too.

@JimBobSquarePants
Copy link
Member

That’s utter bollocks. Strong naming should never be used for security. MS literally warn you not to in their documentation.

@astrowalker
Copy link

@JimBobSquarePants , could you please pass a link and a quote. Thank you in advance.

@JimBobSquarePants
Copy link
Member

https://docs.microsoft.com/en-us/dotnet/framework/app-domains/strong-named-assemblies

Do not rely on strong names for security. They provide a unique identity only.

@etomm
Copy link

etomm commented Nov 14, 2018

@JimBobSquarePants I didn't mean safety in the mean of security. I was merely meaning exactly what Microsoft means when they speak about unique identity. Maybe I wrote it too short :)

@jherby2k
Copy link
Author

jherby2k commented Nov 14, 2018 via email

@brutaldev
Copy link

brutaldev commented Dec 6, 2019

In the meantime you can use my Strong-Name Signer tool to do it for you: https://github.com/brutaldev/StrongNameSigner/

@jakubmisek
Copy link

In the meantime you can use my Strong-Name Signer tool to do it for you: https://github.com/brutaldev/StrongNameSigner/

it works for executable projects right? not the libraries

@brutaldev
Copy link

@jakubmisek It works against compiled assemblies (managed executables are also assemblies). You can point it at your "packages" directory and let it sign anything that isn't already signed as well as fixing references to any unsigned dependencies.

@jakubmisek
Copy link

@brutaldev right, so I cannot provide a library depending on ImageSharp because I would have to instruct users of my library to use StrongNameSigner

@brutaldev
Copy link

@jakubmisek That really depends. Any project that is strong-name signed is required to only reference other strongly-named assembles. If you provide a NuGet package that is signed you wouldn't be able to reference a non-signed package like ImageSharp anyway. What the tool provides is the ability for people that have strong-named projects to use non-signed libraries but signing those incompatible assemblies for you pre-build so you don't get unsigned assembly error messages.

@majdisorder
Copy link

majdisorder commented Jan 17, 2020

Couldn't get it to work at first glance using @brutaldev's solution. I'll revisit this when I have a bit more time. Pointers are welcome.

I can't seem to find a ballpark date for the RC. I found this: https://myget.org/gallery/imagesharp-latency but it seems unofficial and it's over two years old.

Can we expect an RC soon, or should I forge ahead trying to self sign? I'm in the middle of a POC and don't want to waste time unnecessarily (don't we all :) ).

@jakubmisek
Copy link

@dimi3tron we'll probably fork, sign the build and upload signed nugets by ourselves ... this is ridiculous :)

@majdisorder
Copy link

@jakubmisek sounds like a safe bet.

I see you're peachpie contributor, so I hope you're planning to include the fork in the next release because that is exactly what I need them for.

@JimBobSquarePants
Copy link
Member

There’s a dated RC1 milestone in the repo. Please read before calling things ridiculous.

@antonfirsov
Copy link
Member

antonfirsov commented Jan 17, 2020

@jakubmisek @dimi3tron there is an ongoing repository+package structure consolidation (#1002), which will be finished soon. After that, strong naming gets high priority.

@jakubmisek
Copy link

@JimBobSquarePants @antonfirsov thank you! looking forward to it :)
"Ridiculous" is the library cannot be used on .NET Framework for 3 years already while the fix is a single line of XML .. I won't be crying over it anymore :)

@PureKrome
Copy link
Contributor

Ridiculous is the fact that MS are still fricking thrashing this legacy "strong-naming" crap around in 2020. This 💩 should have long been turfed when .NET core was born.

"Line in the sand" and all...

Sorry @JimBobSquarePants and krew for having to put up with this crap, still 😢

@JimBobSquarePants
Copy link
Member

If we implement the shared-infrastructure props as defined here, I see no reason why we cannot start signing our nightlies before the RC1 release.

#867 (comment)

@antonfirsov
Copy link
Member

antonfirsov commented Feb 9, 2020

@JimBobSquarePants I don't think #867 is a blocker, since everything is in the ImageSharp repo now. We can add the necessary changes at ImageSharp's props/targets/csproj level, and consolidate later, probably when adapting stuff to Drawing. (We have a bunch of stuff to move to the shared infra anyways.)

I would prioritize this, and stress to do it in the next few weeks, but not sure if I personally have the time because of the memory refactor.

@bfistein
Copy link

May I ask how this will work for OSS projects in relation to your upcoming license change? NuGet only supports one license AFAIK, so I assume your package will be licensed under GPL. Is the intention for projects with a dependency on ImageSharp to use a previous version under Apache 2.0 and sign it themselves? Or do you have another solution in mind?

@SimonCropp
Copy link
Contributor

SimonCropp commented Feb 17, 2020

@bfistein

NuGet only supports one license AFAIK,

NuGet supports SPDX, which allows for compound expression https://docs.microsoft.com/en-us/dotnet/core/tools/csproj#packagelicenseexpression

@antonfirsov
Copy link
Member

antonfirsov commented Feb 27, 2020

The strong naming fix is on the way!

Re licensing:
@SimonCropp the how does SPDX work with the licensing model we plan to introduce?

#1024 TLDR:

license := 
    if "Has subscription" => Commercial
    else if "OSS project with ImageSharp dependency taken before RC1" => Apache 2.0
    otherwise => AGPLv3**

** probably with an additional exception clause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.