Re: Package a second port (gitlab-ee instead of gitlab-ce)
Am 12.04.2024 um 09:17 schrieb Gleb Popov: - GL_PROJECT= gitlab-foos + GL_PROJECT= gitlab part makes it use a completely different distfile. The problem is best solved by using FLAVORS, I guess. See https://docs.freebsd.org/en/books/porters-handbook/book/#flavors thanks a lot for this. I have here a first draft. The idea is to rename www/gitlab-ce to www/gitlab and apply this: https://gitlab.fechner.net/mfechner/Gitlab/-/commit/c6e569cdcd2862fdffa05a73c9ebd8a5a78fa7a7 (if I rebase, the branch is here: https://gitlab.fechner.net/mfechner/Gitlab/-/commits/gitlab-ee) But if I execute poudriere with e.g.: poudriere bulk -t -p gitlab -j 132amd64 www/gitlab It is only building a package for the CE version and not for the EE version. Does the FreeBSD cluster would generate both package or must I modify there something else? Thanks a lot. Gruß Matthias -- "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." -- Rich Cook
Re: In some places, WITH_${feature}_PORTS doesn't work
Mathieu Arnold wrote on 2024/04/12 15:53: > No, no, you should not do that, :) It is difficult to prioritize when there are two methods, WITH_*_PORTS and WITHOUT_*_PORTS. Perhaps we have experienced even something like "Order allow,deny Allow from ... Deny from ..." :) I wondered if a new variable had arisen to resolve that.
Confused by what make package should do
The porters handbook says: > Make sure that make package can be run as a normal user (that is, not > as root) However, the default `PREFIX` is /usr/local, and a non-root user cannot install to this folder. Adjusting the PREFIX kind of fixes it (partially) but not fully, so I don't know if there's a problem with my port or what. Before I proceed should `make package`, with no prefix adjustment work for non-root users? Because I don't understand how it can. Any comments appreciated, thanks!
Re: Why is the BSD 1-Clause License not supported "out of the box" on FreeBSD?
On Thu, Apr 11, 2024 at 11:48:16PM -0700, Chris wrote: > I'm doing a full sweep of ports missing LICENSE and I continue > to have to jump through additional hurdles to represent the > BSD 1-Clause License in ports that use it. This has been puzzling > be for some time. So I'm asking. Why isn't it represented in > Mk/bsdlicenses.db.mk along with all the other BSD/MIT licenses? > Is there something in it that doesn't agree with the Foundations > policies? I've read the License Guide[1]. It's listed as OSI > approved[2] and it has an SPDX-License-Identifier[3]. Is this an > appropriate place to ask this question? Or is this something I > need to direct to core@ ? It's uncommon (being AFACT an overly verbose version of MIT) so no one added it? Why not submit a patch instead of assuming a conspiracy? -- Brooks
Re: Why is the BSD 1-Clause License not supported "out of the box" on FreeBSD?
On 2024-04-12 09:25, Brooks Davis wrote: On Thu, Apr 11, 2024 at 11:48:16PM -0700, Chris wrote: I'm doing a full sweep of ports missing LICENSE and I continue to have to jump through additional hurdles to represent the BSD 1-Clause License in ports that use it. This has been puzzling be for some time. So I'm asking. Why isn't it represented in Mk/bsdlicenses.db.mk along with all the other BSD/MIT licenses? Is there something in it that doesn't agree with the Foundations policies? I've read the License Guide[1]. It's listed as OSI approved[2] and it has an SPDX-License-Identifier[3]. Is this an appropriate place to ask this question? Or is this something I need to direct to core@ ? It's uncommon (being AFACT an overly verbose version of MIT) so no one added it? It appears to be terse as compared to 2,3-clause && MIT. Why not submit a patch instead of assuming a conspiracy? Conspiracy? I don't follow. I'm just curious. As every other n-clause version is in the bsdlicenses.db.mk file. It just figured, there must be something wrong with the one-clause. I guess I'll whip up a patch. Thanks for taking the time to reply, Brooks. -- Brooks -- --Chris Hutchinson
Re: Package a second port (gitlab-ee instead of gitlab-ce)
On Fri, Apr 12, 2024 at 10:56 AM Matthias Fechner wrote: > > https://gitlab.fechner.net/mfechner/Gitlab/-/commit/c6e569cdcd2862fdffa05a73c9ebd8a5a78fa7a7 The ${FLAVOR:U...} expression looks a bit weird to me. You have FLAVOR?= ... in your Makefile, so this var can't really be undefined > But if I execute poudriere with e.g.: > poudriere bulk -t -p gitlab -j 132amd64 www/gitlab > > It is only building a package for the CE version and not for the EE version. > Does the FreeBSD cluster would generate both package or must I modify there > something else? Yes, see man 8 poudriere, the FLAVORS section. When running poud bulk -a, all flavors are built. Otherwise, the behavior is controlled by FLAVOR_DEFAULT_ALL option in the poudriere.conf
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 7:22 PM Matthew Phillips wrote: > > The porters handbook says: > > > Make sure that make package can be run as a normal user (that is, not > > as root) > > However, the default `PREFIX` is /usr/local, and a non-root user cannot > install to this folder. `make package` only creates the .pkg file. It is `make install` that performs the installation.
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 07:49:02PM +0300, Gleb Popov wrote: > On Fri, Apr 12, 2024 at 7:22 PM Matthew Phillips > wrote: > > > > The porters handbook says: > > > > > Make sure that make package can be run as a normal user (that is, not > > > as root) > > > > However, the default `PREFIX` is /usr/local, and a non-root user cannot > > install to this folder. > > `make package` only creates the .pkg file. It is `make install` that > performs the installation. > It definitely is attempting to install in the port I'm working on. The port's Makefile does not do so when just running `make`. Do you have any idea why make package would be trying to install? I also tested against a number of existing ports and it tries to install things and fails with a normal user. For example in hexchat I get this error: ===> Switching to root credentials to create /var/db/ports/irc_hexchat su: Sorry ===> Cannot create /var/db/ports/irc_hexchat, check permissions
Re: Confused by what make package should do
Matthew Phillips: > It definitely is attempting to install in the port I'm working on. The > port's Makefile does not do so when just running `make`. Do you have any > idea why make package would be trying to install? is it trying to install the port itself, or its dependencies? it will always try to install the dependencies before building the port, but you can pre-install these (as root) before running 'make package', after which 'make package' shouldn't require any privileges to run. (i am fairly sure i've done it this way in the past, although tbh it's been a while since i tested it.) signature.asc Description: PGP signature
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 06:22:17PM +0100, Lexi Winter wrote: > Matthew Phillips: > > It definitely is attempting to install in the port I'm working on. The > > port's Makefile does not do so when just running `make`. Do you have any > > idea why make package would be trying to install? > > is it trying to install the port itself, or its dependencies? > > it will always try to install the dependencies before building the port, > but you can pre-install these (as root) before running 'make package', > after which 'make package' shouldn't require any privileges to run. > > (i am fairly sure i've done it this way in the past, although tbh it's > been a while since i tested it.) It's trying to install the port itself. To /usr/local/bin specifically. It seems like it's running `make install` on the ports Makefile.
Re: Confused by what make package should do
On 2024/04/12 13:28, Matthew Phillips wrote: It's trying to install the port itself. To /usr/local/bin specifically. It seems like it's running `make install` on the ports Makefile. From man ports(7): "package Make a binary package for the port. The port will be installed if it has not already been." I think you want "make build", also documented in that man page.
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 03:06:16PM -0400, Kurt Hackenberg wrote: > On 2024/04/12 13:28, Matthew Phillips wrote: > > > It's trying to install the port itself. To /usr/local/bin specifically. > > It seems like it's running `make install` on the ports Makefile. > > From man ports(7): "package Make a binary package for the port. The port > will be installed if it has not already been." > > I think you want "make build", also documented in that man page. > > Thank you Kurt. Does that mean that the porters handbook is wrong (says it should be able to be run without root)? If so I can send a patch to reword that. Should the advice to be to run `make build` instead then?
Re: Confused by what make package should do
On 2024/04/12 15:16, Matthew Phillips wrote: From man ports(7): "package Make a binary package for the port. The port will be installed if it has not already been." I think you want "make build", also documented in that man page. Thank you Kurt. Does that mean that the porters handbook is wrong (says it should be able to be run without root)? If so I can send a patch to reword that. Should the advice to be to run `make build` instead then? I don't know. You could read the Makefiles, and you could look for a knowledgeable person (which is not me) to ask about the intent.
Re: Confused by what make package should do
Kurt Hackenberg writes: > Matthew Phillips writes: > > It's trying to install the port itself. To /usr/local/bin specifically. > > It seems like it's running `make install` on the ports Makefile. > From man ports(7): "package Make a binary package for the port. The > port will be installed if it has not already been." This is both true, in that the `package` target implies the `stage` target with does run `make install` in $WRKSRC, and highly misleading, because the `stage` target does not install the port to your machine, which would require superuser privileges, but to a staging directory, which does not. The `install` target, which implies the `package` target, uses `pkg add` to install the package to your machine. Provided all prerequesites are already installed (use `make missing` to check), you should be able to run `make package` as an unprivileged user. I do it all the time. Note that if the port (or a missing dependency) has options, the ports framework will attempt to perform the `config` target, which requires superuser privileges (in order to store the selected configuration in `/var/db/ports`). You can disable that by defining the BATCH variable either in your environment (`export BATCH=`) or on the command line (`make BATCH= missing`, `make BATCH= package`). In that case you will have to either already have run `make config` or set the options you want to set in `/etc/make.conf` or on the command line, if you're not ok with the defaults. DES -- Dag-Erling Smørgrav - d...@freebsd.org
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 09:30:14PM +0200, Dag-Erling Smørgrav wrote: > Kurt Hackenberg writes: > > Matthew Phillips writes: > > > It's trying to install the port itself. To /usr/local/bin specifically. > > > It seems like it's running `make install` on the ports Makefile. > > From man ports(7): "package Make a binary package for the port. The > > port will be installed if it has not already been." > > This is both true, in that the `package` target implies the `stage` > target with does run `make install` in $WRKSRC, and highly misleading, > because the `stage` target does not install the port to your machine, > which would require superuser privileges, but to a staging directory, > which does not. The `install` target, which implies the `package` > target, uses `pkg add` to install the package to your machine. Thank you! This is the missing piece I didn't understand. It's starting to come together for me. So now I think it's a problem with the port's Makefile `install` target. The install target does this: install -m 755 snac $(PREFIX)/bin/snac So I think what I need to do is patch the Makefile to include DESTDIR like so: install -m 755 snac $(DESTDIR)$(PREFIX)/bin/snac Does that sound right?
Re: Confused by what make package should do
On 2024-04-12 12:50, Matthew Phillips wrote: On Fri, Apr 12, 2024 at 09:30:14PM +0200, Dag-Erling Smørgrav wrote: Kurt Hackenberg writes: > Matthew Phillips writes: > > It's trying to install the port itself. To /usr/local/bin specifically. > > It seems like it's running `make install` on the ports Makefile. > From man ports(7): "package Make a binary package for the port. The > port will be installed if it has not already been." This is both true, in that the `package` target implies the `stage` target with does run `make install` in $WRKSRC, and highly misleading, because the `stage` target does not install the port to your machine, which would require superuser privileges, but to a staging directory, which does not. The `install` target, which implies the `package` target, uses `pkg add` to install the package to your machine. Thank you! This is the missing piece I didn't understand. It's starting to come together for me. So now I think it's a problem with the port's Makefile `install` target. The install target does this: install -m 755 snac $(PREFIX)/bin/snac So I think what I need to do is patch the Makefile to include DESTDIR like so: install -m 755 snac $(DESTDIR)$(PREFIX)/bin/snac Those should be curly braces, not parentheses, fe; ${DESTDIR} Does that sound right? -- --Chris Hutchinson
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 12:57:41PM -0700, Chris wrote: > On 2024-04-12 12:50, Matthew Phillips wrote: > > On Fri, Apr 12, 2024 at 09:30:14PM +0200, Dag-Erling Smørgrav wrote: > > > Kurt Hackenberg writes: > > > > Matthew Phillips writes: > > > > > It's trying to install the port itself. To /usr/local/bin > > > > > specifically. > > > > > It seems like it's running `make install` on the ports Makefile. > > > > From man ports(7): "package Make a binary package for the port. The > > > > port will be installed if it has not already been." > > > > > > This is both true, in that the `package` target implies the `stage` > > > target with does run `make install` in $WRKSRC, and highly misleading, > > > because the `stage` target does not install the port to your machine, > > > which would require superuser privileges, but to a staging directory, > > > which does not. The `install` target, which implies the `package` > > > target, uses `pkg add` to install the package to your machine. > > > > Thank you! This is the missing piece I didn't understand. It's starting > > to come together for me. > > > > So now I think it's a problem with the port's Makefile `install` target. > > The install target does this: > > > > install -m 755 snac $(PREFIX)/bin/snac > > > > So I think what I need to do is patch the Makefile to include DESTDIR > > like so: > > > > install -m 755 snac $(DESTDIR)$(PREFIX)/bin/snac > Those should be curly braces, not parentheses, fe; > ${DESTDIR} This is inside of the project's Makefile, not the port Makefile. I'm patching it to account for DESTDIR because PREFIX is /usr/local.
Re: Confused by what make package should do
On Fri, Apr 12, 2024 at 10:50 PM Matthew Phillips wrote: > install -m 755 snac $(DESTDIR)$(PREFIX)/bin/snac > > Does that sound right? Sounds right to me.
Re: Confused by what make package should do
On 2024-04-12 13:03, Matthew Phillips wrote: On Fri, Apr 12, 2024 at 12:57:41PM -0700, Chris wrote: On 2024-04-12 12:50, Matthew Phillips wrote: > On Fri, Apr 12, 2024 at 09:30:14PM +0200, Dag-Erling Smørgrav wrote: > > Kurt Hackenberg writes: > > > Matthew Phillips writes: > > > > It's trying to install the port itself. To /usr/local/bin specifically. > > > > It seems like it's running `make install` on the ports Makefile. > > > From man ports(7): "package Make a binary package for the port. The > > > port will be installed if it has not already been." > > > > This is both true, in that the `package` target implies the `stage` > > target with does run `make install` in $WRKSRC, and highly misleading, > > because the `stage` target does not install the port to your machine, > > which would require superuser privileges, but to a staging directory, > > which does not. The `install` target, which implies the `package` > > target, uses `pkg add` to install the package to your machine. > > Thank you! This is the missing piece I didn't understand. It's starting > to come together for me. > > So now I think it's a problem with the port's Makefile `install` target. > The install target does this: > > install -m 755 snac $(PREFIX)/bin/snac > > So I think what I need to do is patch the Makefile to include DESTDIR > like so: > > install -m 755 snac $(DESTDIR)$(PREFIX)/bin/snac Those should be curly braces, not parentheses, fe; ${DESTDIR} This is inside of the project's Makefile, not the port Makefile. I'm patching it to account for DESTDIR because PREFIX is /usr/local. Sorry. You're correct. I assumed it was part of a pre/post.install block in the port Makefile. I'll shut up now. :) -- --Chris Hutchinson
Unmaintained FreeBSD ports which are out of date
Dear port maintainers, The portscout new distfile checker has detected that one or more unmaintained ports appears to be out of date. Please take the opportunity to check each of the ports listed below, and if possible and appropriate, submit/commit an update. Please consider also adopting this port. If any ports have already been updated, you can safely ignore the entry. An e-mail will not be sent again for any of the port/version combinations below. Full details can be found at the following URL: http://portscout.freebsd.org/po...@freebsd.org.html Port| Current version | New version +-+ cad/ifcopenshell| 0.6.0 | blenderbim-240412 +-+ sysutils/rshim-user-space | 2.0.9 | rshim-2.0.26 +-+ If any of the above results are invalid, please check the following page for details on how to improve portscout's detection and selection of distfiles on a per-port basis: http://portscout.freebsd.org/info/portscout-portconfig.txt Reported by:portscout!