<mark_weaver>if your advice is to always wait for ruben to run his script, then he's going to have to be more prompt about it.
<mark_weaver>to be clear, even if users ask guix for the source code, they would still normally download the end result of the script from hydra.
<jxself>Back when LibreWRT was trying to become an FSF-endorsed distro we had a question about the firmware building process and what the FSF's opinion was. The build system is just a bunch of scripts that download things from various places, applies any desired patches, makes a cross-compiler, and proceeds to make the firmware image for the target router.
<jxself>The upstream (OpenWRT) of course had their build system grab the kernel from kernel.org. The question that was submitted to the FSF was if it was sufficient to modify the build system such that it also grabbed the Linux-libre deblobbing scripts during the build process, then deblobbed the kernel source on the user's computer, or if the build scripts needed to instead download an already-cleaned kernel and use that instead.
<jxself>Brett's response was that we needed to have people download the already-cleaned stuff, so that they were being steered to and downloading non-free software, and that's what happened in the end.
<mark_weaver>but the other problem is that if everyone is trusting Alexandre's or Ruben's computers to do that job, then it makes it extremely useful for the NSA (or whoever) to attack those computers.
<jxself>And telling people to download non-free software is the answer to that?
<jxself>And so when someone told guix to install icecat this other recipe would be invoked to grab Rubén's script and download the source code themselves from mozilla.org.
<jxself>That seems very similiar to the situation I emailed to the FSF some years back about the LibreWRT build system where people building firmware would grab the kernel from kernel.org and then clean it on their computer.
<jxself>So, while Rubén merely publishing his script isn't the same as telling people to download non-free software because the general public doesn't have to use it in order to get icecat. They have already-cleaned tarballs to use instead.
<jxself>But in the case you've described it seems different because that then does become necessary.
<mark_weaver>the normal (and recommended) setup is that you download substitutes from hydra.gnu.org, and that includes the results of ruben's script, if the user asks for the icecat source code.
<mark_weaver>but yes, for those who don't want to trust hydra, we provide the ability to do the job on their own computer. just like ruben and alexandre provide the means for people to run the scripts themselves.
<jxself>But substitutes are not enabled by default, and it's really the source code that needs to be free. The binary follows that if all goes well.
<jxself>Yes, they provide the means for those that are interested but it's not a precondition to get the software.
<mark_weaver>if you ask guix for the source code, you get the output of ruben's script
<mark_weaver>would it satisfy you if substitutes were enabled by default? that's probably going to happen anyway.
<jxself>I could have made the same argument to the FSF. "When people build a kernel they merely get the output of the Linux-libre deblobbing script."
<jxself>But, since Brett said it wasn't okay, we didn't go in that direction.
<jxself>It seems that it's the FSF this needs to be taken up with really. ;)
<jxself>And if he says that your plan's okay I'd like to know what's different about this case and LibreWRT's case.
<jxself>Surely he'll be able to explain that, he always seems to do such a great job explaining stuff. :)
<mark_weaver>I think the difference is that if you looked at the LibreWRT source code before that change was made, you'd see non-free software, whereas in our case, if you look at the source code of any package, you'll see only free code.
<jxself>I don't understand why that difference would exist.
<jxself>The LibreWRT build scripts are all free software.
<mark_weaver>I'm not talking about the build scripts, I'm talking about the source code for the packages it contains.
<jxself>The only non-free stuff that would have been downloaded is from kernel.org, and only after going through the whole make menuconfig thing to select what router you were compiling for and what packages you wanted included in the firmware image. From that point on it's all automatic.
<mark_weaver>before they made the switch to downloading linux-libre, if you wanted to look at the source code of their kernel, you'd probably see non-free code, yes?
<rekado_>How can I force a rebuild of a package that I already installed?
<mark_weaver>rekado: delete it using "guix gc --delete /gnu/store/...." and then build it again.
<mark_weaver>note that "guix gc --delete" will refuse to delete it if there are any references to it, so you'll also have to delete any profiles that include it, and any other store directories that refer to it.
<mark_weaver>another trick, if you're working on your own package recipe, is to change the package in some trivial way that will change the generated derivation.
<rekado_>hmm, I cannot seem to remove any package from my profile.
<rekado_>will try older versions of guix; currently all I get is a backtrace :(
<rekado_>sent a bug report to the list. This is very odd.