Page MenuHomeFreeBSD

[NEW PORT] benchmarks/linux-vdbench: Command line disk I/O benchmark utility
ClosedPublic

Authored by loader on Sep 20 2018, 8:42 AM.

Details

Summary

This port is not allowed to build a package, so no poudriere tests
for this port. I just installed it on 12.0-ALPHA6 i386/amd64 manually
and ran linux-vdbench -t, it works.

Proposed commit log message:

[NEW PORT]: benchmarks/linux-vdbench: Command line disk I/O benchmark utility

Vdbench is a command line utility specifically created to help
engineers and customers generate disk I/O workloads to be used
for validating storage performance and storage data integrity.

WWW: http://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html

Reviewed_by: koobs, mat
Approved by: koobs (mentor)
Differential_Revision: D17255
Test Plan
  • portlint: OK (

WARN: /usr/ports/benchmarks/linux-vdbench/pkg-descr: includes lines that exceed 80 characters.
WARN: Makefile: "IGNORE" has to appear earlier.
0 fatal errors and 2 warnings found.
)

  • testport: OK (poudriere: 1200084, [i386, amd64], '_LICENSE_STATUS=accepted', tested)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

koobs requested changes to this revision.EditedSep 21 2018, 2:12 AM
koobs added a subscriber: bdrewery.

We must be able to QA ports with poudriere, even when they're RESTRICTED, whilst also retaining the ability for the 'package building for distribution' use-case to not violate license terms.

A quick search shows:

poudriere's pkgclean command supports this argument:

-R -- Clean RESTRICTED packages after building,

poudriere.conf has the following options:

# Cleanout the restricted packages # NO_RESTRICTED=yes

This feels like RESTRICTED ports are build/packages like any other, though I don't know if/how this works with IGNORE set or coupled with the conditional check for the non-existence of the distfile

See Also:

https://github.com/freebsd/poudriere/commit/ecd4df93e8383341a2909c6dd72018de124ff945
https://github.com/freebsd/poudriere/commit/fe70c5eeb63fc837cc4f86455ce805f3b2817d39
https://github.com/freebsd/poudriere/commit/0539ddf95d9dd59cbd3355dc80d27b6e7e9f8252

Pinging @bdrewery who may be able to provide more insight on what the default poudriere state (allowances) are and how to, if we cant already, best achieve the goal of ports QA as a maintainer , whilst RESTRICTED = true with as little fiddling as possible.

benchmarks/linux-vdbench/Makefile
4 ↗(On Diff #48253)

It looks like the canonical version scheme upstream uses is X.Y.Z so use that as the PORTVERSION. [1]

You'll need to set DISTVERSION as well.

[1] Eg: Vdbench (5.04.07) via https://www.oracle.com/technetwork/server-storage/vdbench-downloads-1901681.html

15 ↗(On Diff #48253)

Prefer https URL's when they are available. This one is available under https

25 ↗(On Diff #48253)

Prefer https URL's when they are available. This one is available under https

30 ↗(On Diff #48253)

LICENSE_PERMS values above already specifies this. From Porters Handbook - 5.7.2 [1]:

no-dist-mirror

Redistribution of the distribution files is prohibited. This is equivalent to setting RESTRICTED

no-dist-sell

Selling of distribution files is prohibited. This is equivalent to setting NO_CDROM.

no-pkg-mirror

Free redistribution of package is prohibited. Equivalent to setting NO_PACKAGE.

no-pkg-sell

Selling of package is prohibited. This is equivalent to setting NO_CDROM

[1] https://www.freebsd.org/doc/en/books/porters-handbook/book.html#licenses

34 ↗(On Diff #48253)

Use ${DISTFILES} here, it is the already derived/calculated distribution filename based on the above DISTNAME/etc variables and defaults to ${DISTNAME}${EXTRACT_SUFX} already (see bsd.port.mk)

46–54 ↗(On Diff #48253)

Try using USES=shebangfix and SHEBANG_* variables for this block

This revision now requires changes to proceed.Sep 21 2018, 2:12 AM

PORTVERSION=5.04.07, s|http|https|, s|${DISTNAME}${EXTRACT_SUFX}|${DISTFILES}|, USES=shebangfix

loader edited the test plan for this revision. (Show Details)

We must be able to QA ports with poudriere, even when they're RESTRICTED, whilst also retaining the ability for the 'package building for distribution' use-case to no violate license terms.

A quick search shows:

poudriere's pkgclean command supports this argument:

-R -- Clean RESTRICTED packages after building,

poudriere.conf has the following options:

# Cleanout the restricted packages # NO_RESTRICTED=yes

This feels like RESTRICTED ports are build/packages like any other, though I don't know if/how this works with IGNORE set or coupled with the conditional check for the non-existence of the distfile

See Also:

https://github.com/freebsd/poudriere/commit/ecd4df93e8383341a2909c6dd72018de124ff945
https://github.com/freebsd/poudriere/commit/fe70c5eeb63fc837cc4f86455ce805f3b2817d39
https://github.com/freebsd/poudriere/commit/0539ddf95d9dd59cbd3355dc80d27b6e7e9f8252

Pinging @bdrewery who may be able to provide more insight on what the default poudriere state (allowances) are and how to, if we cant already, best achieve the goal of ports QA as a maintainer , whilst RESTRICTED = true with as little fiddling as possible.

Thank you so much @koobs, I wasn't aware of this. Yes, poudriere does build packages for RESTRICTED ports.

I just ran poudriere to build it with _LICENSE_STATUS=accepted option in make.conf and it worked.
it was blocked by LICENSE_PERMS= no-auto-accept:

[00:03:03] [01] [00:00:00] Finished benchmarks/linux-vdbench | linux-vdbench-5.04.07: Ignored:
License OTN needs confirmation, but BATCH is defined

https://svnweb.freebsd.org/ports/head/Mk/bsd.licenses.mk?revision=476184&view=markup#l574

benchmarks/linux-vdbench/Makefile
30 ↗(On Diff #48253)

LEGALint compares the RESTRICTED= with the string in /usr/ports/LEGAL.

# /usr/ports/Tools/scripts/LEGALlint
... ...
211 (benchmarks/linux-vdbench): reason mismatch
... ...
loader marked an inline comment as not done.Sep 21 2018, 7:47 AM
loader added inline comments.
benchmarks/linux-vdbench/Makefile
30 ↗(On Diff #48253)

Should I change RESTRICTED= to LEGAL_TEXT= ?

There should probably be a DOCS and an EXAMPLES option guarding the docs, and examples.

benchmarks/linux-vdbench/Makefile
15 ↗(On Diff #48296)

LICENSE_TEXT is supposed to be the text of the license. So, this should either be some text saying that the license is readable there, or maybe the license should be added to the files directory which is probably a better idea.

16 ↗(On Diff #48296)

also known as none.

22–24 ↗(On Diff #48296)

I think this is USES=uniquefiles:dirs.

28 ↗(On Diff #48296)

Wrong place in the Makefile. See Chapter 15. Order of Variables in Port Makefiles.

29 ↗(On Diff #48296)

Remove, you are using the LICENSE framework.

79 ↗(On Diff #48296)

Use ${RLN}

loader marked an inline comment as not done.

OPTIONS_DEFINE=DOCS EXAMPLES, files/LICENSE, LICENSE_PERMS=none, S|${LN}|${RLN}|, ONLY_FOR_ARCHS= order, delete RESTRICTED=

Thanks @mat.

Should I add LEGAL_TEXT= Redistribution is not permitted to pass the /usr/ports/Tools/scripts/LEGALlint check?

loader retitled this revision from benchmarks/linux-vdbench: Command line disk I/O benchmark utility to [NEW PORT] benchmarks/linux-vdbench: Command line disk I/O benchmark utility.Sep 26 2018, 4:28 AM
benchmarks/linux-vdbench/Makefile
19 ↗(On Diff #48305)

Minor nits:

  • Capitalise messages
  • Does this actually mean, and should this be Linux compatibility layer only supports i386/amd64 ?

Update ONLY_FOR_ARCHS_REASON message

This revision is now accepted and ready to land.Sep 26 2018, 5:36 AM
This revision was automatically updated to reflect the committed changes.