Page MenuHomeFreeBSD

Remove remnants of NO_STAGE
ClosedPublic

Authored by ak on Sep 12 2014, 9:34 PM.
Tags
None
Referenced Files
Unknown Object (File)
Nov 16 2024, 11:41 AM
Unknown Object (File)
Nov 14 2024, 12:52 PM
Unknown Object (File)
Nov 13 2024, 7:04 PM
Unknown Object (File)
Oct 30 2024, 4:04 PM
Unknown Object (File)
Oct 30 2024, 3:12 PM
Unknown Object (File)
Oct 21 2024, 10:28 AM
Unknown Object (File)
Oct 2 2024, 8:28 PM
Unknown Object (File)
Jan 11 2024, 9:54 AM
Subscribers

Details

Reviewers
ak
Group Reviewers
portmgr
Summary

Remove last remnants of NO_STAGE.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

ak retitled this revision from to Remove remnants of NO_STAGE.
ak updated this object.
ak edited the test plan for this revision. (Show Details)
ak added a reviewer: portmgr.
ak set the repository for this revision to rP FreeBSD ports repository.

I'd rather keep the BROKEN bit. Vendors and users using custom ports will need to know their port is broken if they import it from the year period when we had NO_STAGE in there. If it predates that period, oh well. If someone restores an unstaged port and somehow manages to commit it, we still want it to be BROKEN.

I'm sure others will disagree though.

And in fact, I've imported many deleted ports from the past year into my own ports tree and have not yet had time to stage them. I'm sure I'll forget about the requirement before I find time to build packages again. If this were removed I will be very surprised. It's essentially a POLA argument for me.

I do think we should keep those remnant for around a year which is the reason I have added them when dropping support.

My reasoning was that corresponding bits were removed from bpm, so even if user will keep private port, it will fails anyway with easily recognized error.
Ok then, can I remove NO_STAGE condition from devel/ice ?

In D773#9, @ak wrote:

My reasoning was that corresponding bits were removed from bpm, so even if user will keep private port, it will fails anyway with easily recognized error.
Ok then, can I remove NO_STAGE condition from devel/ice ?

Many ports will build and install just fine without STAGEDIR set. Do it from a real server (not poudriere) and you won't even know there is an issue until it's already splatted files all over /.

Many ports will build and install just fine without STAGEDIR set. Do it from a real server (not poudriere) and you won't even know there is an issue until it's already splatted files all over /.

Hmm, I was under impression, that package is always created before installation.
But it seems that pkg register is used instead. IMO, it's bad optimization.

Hmm, I was under impression, that package is always created before installation.
But it seems that pkg register is used instead. IMO, it's bad optimization.

No, pkg register also fails with error 74.
Did you mean that bad port can install/remove files to host's fs before pkg invocation?
Yes, NO_STAGE can prevents this from happening in some cases. There is no guarantees that
private port has NO_STAGE at all, though.

No, I mean what I said. The ports framework will call 'make install' for whatever installer target is set for the port. If the port ignores DESTDIR then it will splatter files over PREFIX. *Then* the framework tries to package it and the user is alerted. It's too late for the files touched on their system though.

In D773#12, @ak wrote:

Hmm, I was under impression, that package is always created before installation.
But it seems that pkg register is used instead. IMO, it's bad optimization.

No, pkg register also fails with error 74.
Did you mean that bad port can install/remove files to host's fs before pkg invocation?
Yes, NO_STAGE can prevents this from happening in some cases. There is no guarantees that
private port has NO_STAGE at all, though.

Yup, I have dozens from 2007 at work that don't have it.

There's no harm in keeping the check for a year. It's safer than not for users who may have grabbed a port in the last year, or try to restore something.

No, I mean what I said. The ports framework will call 'make install' for whatever installer target is set for the port. If the port ignores DESTDIR then it will splatter files over PREFIX. *Then* the framework tries to package it and the user is alerted. It's too late for the files touched on their system though.

That's what I've tried to say. The port can touch host's fs before invocation of package manager. The only way to prevent this is to never build on the host's fs.

Yup, I have dozens from 2007 at work that don't have it.
There's no harm in keeping the check for a year. It's safer than not for users who may have > grabbed a port in the last year, or try to restore something.

I agree, if it helps to prevent mess in some cases, it should stay. Maybe even longer than year.

More modest version of patch. Don't remove asserts from bsd.port.mk/bsd.sanity.mk

ak added a reviewer: ak.
This revision is now accepted and ready to land.Oct 7 2014, 4:43 PM