Re: extracting pkg-message for FreshPorts

From: Ronald Klop <ronald-lists_at_klop.ws>
Date: Wed, 11 Aug 2021 12:49:46 UTC
 
Van: Dan Langille <dan@langille.org>
Datum: woensdag, 11 augustus 2021 01:33
Aan: freebsd-ports <freebsd-ports@freebsd.org>
Onderwerp: Re: extracting pkg-message for FreshPorts
> 
> Dan Langille wrote on 8/9/21 9:57 PM:
> 
> [snip]
> > 5 - needs to build
> >
> > [dan@empty:/usr/ports/x11/nvidia-driver-390] $ make -V PKGMESSAGE
> > /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> >
> > [dan@empty:/usr/ports/x11/nvidia-driver-390] $ sudo make configure > -DNO_DIALOG
> > ===> Skipping 'config' as NO_DIALOG is defined
> > ===>  License NVIDIA accepted by the user
> >
> [snip]
> > ===> Configuring for pkgconf-1.7.4,1
> > configure: loading site script /usr/ports/Templates/config.site
> > checking for gcc... cc
> >
> > This does a lot of building. A lot.  That's not good.
> 
> Some followup. The above installed 134 ports and worked:
> 
> [dan@empty:/usr/ports/x11/nvidia-driver-390] $ ls -l /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> -rw-r--r--  1 root  wheel  1808 Aug 10 22:31 /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> 
> > Is there a better way?
> Yes, there is.  make apply-slist
> 
>  From IRC came that suggestion, which, oddly enough, I was originally using before heading down this rabbit hole.
> 
> [root@empty /usr/ports/x11/nvidia-driver-390]# make apply-slist
> /bin/sh: cannot create /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message: No such file or directory
> *** Error code 2
> 
> Stop.
> make: stopped in /usr/ports/x11/nvidia-driver-390
> [root@empty /usr/ports/x11/nvidia-driver-390]#
> 
> 
> Nope. That won't work.
> 
> The next suggestion was: make extract apply-slist
> 
> [root@empty /usr/ports/x11/nvidia-driver-390]# make extract apply-slist
> ===> Building/installing dialog4ports as it is required for the config dialog
> ===>  Cleaning for dialog4ports-0.1.6
> ===>  License BSD2CLAUSE accepted by the user
> ===>   dialog4ports-0.1.6 depends on file: /usr/local/sbin/pkg - found
> => dialog4ports-0.1.6.tar.gz doesn't seem to exist in /var/ports/distfiles/.
> => Attempting to fetch https://files.etoilebsd.net/dialog4ports/dialog4ports-0.1.6.tar.gz
> dialog4ports-0.1.6.tar.gz                               10 kB  161 MBps    00s
> ....
> boom dialog box.
> 
> [root@empty /usr/ports/x11/nvidia-driver-390]# make extract apply-slist -DNO_DIALOG
> ===> Skipping 'config' as NO_DIALOG is defined
> ===>  License NVIDIA accepted by the user
> ===>   nvidia-driver-390-390.144 depends on file: /usr/local/sbin/pkg - found
> => NVIDIA-FreeBSD-x86_64-390.144.tar.gz doesn't seem to exist in /var/ports/distfiles/.
> => Attempting to fetch https://jp.download.nvidia.com/XFree86/FreeBSD-x86_64/390.144/NVIDIA-FreeBSD-x86_64-390.144.tar.gz
> NVIDIA-FreeBSD-x86_64-390.144.tar.gz                    62 MB   13 MBps    05s
> ===> Fetching all distfiles required by nvidia-driver-390-390.144 for building
> ===>  Extracting for nvidia-driver-390-390.144
> => SHA256 Checksum OK for NVIDIA-FreeBSD-x86_64-390.144.tar.gz.
> [root@empty /usr/ports/x11/nvidia-driver-390]# make -V PKGMESSAGE
> /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> [root@empty /usr/ports/x11/nvidia-driver-390]# ls -l /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> -rw-r--r--  1 root  wheel  1808 Aug 10 23:24 /var/ports/usr/ports/x11/nvidia-driver-390/work/pkg-message
> [root@empty /usr/ports/x11/nvidia-driver-390]#
> 
> Success.
> 
> This approach also works for all the previous example where PKG_MESSAGE refers to something in the /work* directory
> 
> Thank you for coming to my TED talk.
> 
> -- 
> Dan Langille - dan@langille.org
> https://langille.org/
> 
> 
> 


Hi,

Thanks for the TED talk. I just learned about -DNO_DIALOG after quite some years.
 :-)