Bug 275500 - [NEW PORT] sysutils/reproduce: AppJail image builder
Summary: [NEW PORT] sysutils/reproduce: AppJail image builder
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Joel Bodenmann
URL: https://github.com/DtxdF/reproduce
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-03 11:22 UTC by Jesús Daniel Colmenares Oviedo
Modified: 2023-12-28 11:36 UTC (History)
2 users (show)

See Also:


Attachments
reproduce-0.2.0.patch (2.67 KB, patch)
2023-12-03 11:22 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff
reproduce-0.2.1.patch (2.64 KB, patch)
2023-12-07 09:28 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff
reproduce-0.2.1.patch (3.00 KB, patch)
2023-12-09 23:03 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff
reproduce-0.2.1.patch (2.90 KB, patch)
2023-12-10 22:14 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff
reproduce-0.3.0.patch (2.90 KB, patch)
2023-12-16 06:52 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff
reproduce-0.3.0.patch (3.11 KB, patch)
2023-12-20 19:52 UTC, Jesús Daniel Colmenares Oviedo
DtxdF: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jesús Daniel Colmenares Oviedo 2023-12-03 11:22:05 UTC
Created attachment 246742 [details]
reproduce-0.2.0.patch

Description:

AppJail Reproduce is a small open source BSD-3 licensed tool for
automating the creation of images using Makejails, scripts and
simple text files, providing a common workflow and simplifying many
things.

WWW: https://github.com/DtxdF/reproduce

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS APPJAIL_STABLE tested)
Comment 1 Jesús Daniel Colmenares Oviedo 2023-12-07 09:28:55 UTC
Created attachment 246844 [details]
reproduce-0.2.1.patch

Description:

* Update Reproduce to 0.2.1.
* Update COMMENT.

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS APPJAIL_STABLE tested)
Comment 2 Jesús Daniel Colmenares Oviedo 2023-12-09 23:03:52 UTC
Created attachment 246943 [details]
reproduce-0.2.1.patch

Description:

* Add reproduce to sysutils/Makefile.

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS APPJAIL_STABLE tested)
Comment 3 Joel Bodenmann freebsd_committer freebsd_triage 2023-12-10 19:36:50 UTC
Hi,

Could you please change the option to choose between stable & development to be a flavor instead?
Comment 4 Jesús Daniel Colmenares Oviedo 2023-12-10 19:53:05 UTC
(In reply to Joel Bodenmann from comment #3)

Hi Joel,

No problem, give me a moment and I will make that change.
Comment 5 Jesús Daniel Colmenares Oviedo 2023-12-10 22:14:10 UTC
Created attachment 246960 [details]
reproduce-0.2.1.patch

Description:

* Add FLAVORS.

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS tested)
Comment 6 Jesús Daniel Colmenares Oviedo 2023-12-10 22:23:42 UTC
(In reply to Joel Bodenmann from comment #3)

Since -devel versions mean that a port is synchronized with upstream and in this case the -devel flavor does not represent that, should the -devel flavor be renamed or is it ok to use it as is?

What I mean is that in this case, at least for this port, -devel represents that it uses appjail-devel, but it does not mean that it is synchronized with upstream.
Comment 7 Jesús Daniel Colmenares Oviedo 2023-12-16 06:52:02 UTC
Created attachment 247079 [details]
reproduce-0.3.0.patch

Description:

* Update Reproduce to 0.3.0.

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS tested)
Comment 8 Daniel Engberg freebsd_committer freebsd_triage 2023-12-17 21:56:57 UTC
We actually use -devel for both use cases so I think that's fine, ports-mgmt/poudriere-devel for example is for example very rarely bleeding edge despite being a -devel port.
Comment 9 Jesús Daniel Colmenares Oviedo 2023-12-18 07:20:50 UTC
(In reply to Daniel Engberg from comment #8)

Thanks Daniel, this clarifies my question.
Comment 10 Joel Bodenmann freebsd_committer freebsd_triage 2023-12-20 13:25:07 UTC
I had another look at this and discussed with with a few more developers.
The "problem" we face here is that this is not really an option - hence I asked you previously to convert it to a flavor. However, a flavor is also not really suitable here because now we create two binary packages which are essentially the same - the only difference is a runtime dependency.

While the ports framework does currently not provide a more suitable mechanism to handle this, my recommendation would be to simply remove the runtime dependency to sysutils/appjail entirely and instead placing a pkg-message instructing the user to install either sysutils/appjail or sysutils/appjail-devel (make sure the message only shows up during install, not update).


What is your opinion on this?
Comment 11 Jesús Daniel Colmenares Oviedo 2023-12-20 19:11:57 UTC
(In reply to Joel Bodenmann from comment #10)

Hi Joel,

No problem, I did something similar with the VHS port and Reproduce already checks if AppJail is installed or not, and if not, it shows the commands to install it [1]. Of course, I will add pkg-message.

[1] https://github.com/DtxdF/reproduce/blob/main/reproduce.sh#L115
Comment 12 Jesús Daniel Colmenares Oviedo 2023-12-20 19:52:37 UTC
Created attachment 247175 [details]
reproduce-0.3.0.patch

Description:

* Remove FLAVORS.
* Remove *_RUN_DEPENDS.
* Remove *_CONFLICTS_INSTALL.
* Add pkg-message.

QA:

* portlint: OK (looks fine.)
* testport: OK (poudriere: 14.0-RELEASE, amd64, DOCS tested)
Comment 13 Jesús Daniel Colmenares Oviedo 2023-12-20 19:54:23 UTC
(In reply to Jesús Daniel Colmenares Oviedo from comment #12)

```
# pkg info -D reproduce
reproduce-0.3.0:
On install:
sysutils/reproduce needs sysutils/appjail or sysutils/appjail-devel
to work properly, please install one of them.
# appjail-reproduce -b hello
[ error ] Cannot find appjail, please install it using 'pkg-install(8)':
[ error ]
[ error ] # pkg install -y appjail # or
[ error ] # pkg install -y appjail-devel
```
Comment 14 commit-hook freebsd_committer freebsd_triage 2023-12-28 11:36:23 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7c8c130d28262a4ccecb146b3fe31c1dfe2e88da

commit 7c8c130d28262a4ccecb146b3fe31c1dfe2e88da
Author:     Jesús Daniel Colmenares Oviedo <DtxdF@disroot.org>
AuthorDate: 2023-12-20 19:32:53 +0000
Commit:     Joel Bodenmann <jbo@FreeBSD.org>
CommitDate: 2023-12-28 11:33:15 +0000

    sysutils/reproduce: New port

    AppJail Reproduce is a small open source BSD-3 licensed tool for
    automating the creation of images using Makejails, scripts and
    simple text files, providing a common workflow and simplifying many
    things.

    PR:                     275500
    Approved by:            tcberner (mentor)
    Differential Revision:  https://reviews.freebsd.org/D43151

 sysutils/Makefile                    |  1 +
 sysutils/reproduce/Makefile (new)    | 27 +++++++++++++++++++++++++++
 sysutils/reproduce/distinfo (new)    |  3 +++
 sysutils/reproduce/pkg-descr (new)   |  4 ++++
 sysutils/reproduce/pkg-message (new) |  8 ++++++++
 5 files changed, 43 insertions(+)
Comment 15 Joel Bodenmann freebsd_committer freebsd_triage 2023-12-28 11:36:46 UTC
Committed - Thanks!