Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg

2025-03-25 Thread Ludovic Courtès
Hi Simon,

Simon Tournier  skribis:

>>>   1. Drop the section of « Issue Tracker Migration Path ».
>>
>> To be clear, are you suggesting to not use Codeberg for bug reports at
>> all?
>
> To be clear, yes.

OK.  So postponing bug/issue tracker migration to Jan. 2026 as the GCD
now states (based on what you proposed¹) doesn’t address your concerns?
Or perhaps I misinterpreted your proposal?

¹ https://issues.guix.gnu.org/76503#115-lineno87

>> We could change it to “Migrating repositories and patches to Codeberg”;
>> that has less appeal to me, because I’m confident that (1) this would
>> lead to confusion, and (2) we’d miss out on cross-referencing and other
>> niceties.
>
> Cross-referencing fully locked in the Codeberg web-interface, right?
>
> Which niceties do you speak about?

Off the top of my head:

  • notifications (subscribe/unsubscribe to individual issues, ping
individual people or team);

  • automatically notify the right people on PRs via ‘CODEOWNERS’;

  • cross-referencing (see when someone refers to an issue/PR from
another issue/PR/commit; close issues when a commit messages says
so);

  • tagging, classification;

  • ability to use PR/issue templates to guide people and ease
onboarding;

  • API access allowing bots to comment on PRs for instance (fresh from
the oven: Cuirass now sends comments indivicating build status on
PRs).

Many of these features may seem anecdotal, but IME they really help with
triage and with getting the attention of the right people, which I think
is critical for a project the size of Guix.

(All this information is available to all the user interfaces, not just
the web interface.)

> For instance, I cannot promote Free Software and advocate at length
> about user-autonomy.

[...]

> Because we have to be very clear: the migration from emails to Codeberg
> isn’t only the technical migration of the workflow.  It’s much deeper:
> it’s a “philosophical” migration.

As you know, I very much understand these issues, I know why I chose
Debbugs at a time when Git{Hub,Lab} were already popular; they are
discussed (on your request) in the GCD.  To me, it’s a compromise.

In an ideal world, we would self-host, which would address some of these
concerns.  It doesn’t seem viable at this point, but if/when somebody
steps up, this remains open.

>> We could also set up our own thing; I’ll inquire to see if there are
>> tools to do that for regular users.
>
> This is what I have in mind.  Please note I’m not considering this as
> blocking or something we must have on Day-1.

I did inquire on Mastodon: nobody came up with the ready-to-use tool to
do backup.  We could use the HTTP API, which exposes everything, to
approximate it, but it’d be an approximation.

>> On experience: collectively, we have experience with Codeberg and with
>> other forges; many of us frequently interact with this kind of forge.
>
> Who is the ’collective’?  How many of the current people with write
> access on Savannah have an account in Codeberg?  And how many concretely
> did at least one review (with comments) and merged a PR?

It’s a small but strictly-positive number.  But probably 100% of us have
experience with similar forges, many of us using them daily, that’s what
I meant; we cannot pretend that we’re all discovering this.

> Somehow, you developed a experience.  Who Deliberation members might
> report a minimal experience?

Not sure what you mean.

> It’s not to make the decision bigger than it is.  If I ask to the Ludo
> from one year ago (before investing time with Codeberg and propose to
> switch to the Guix-Science channel), do you want yo migrate?  What would
> have been your answer?  Probably the same as I am doing now: Euh, yes
> why not but hmm I am not sure, well I do not know.

You’re right: I’ve long been reluctant to forges of that kind, as I
wrote before.  It’s been a process for me: that of seeing the
unsustainable situation Guix is in, looking at other projects do it
(check out Nixpkgs or Brew or whatever!), getting first-hand experience
with GitLab and Codeberg and how it leads to a smooth and approachable
workflow.

I understand it’s hard to “transfer” experience, and that’s why I was
hoping active contributors would give it a try to at least get a taste
of it.

Thanks for your feedback,
Ludo’.



Re: bug#76503: [GCD] Migrating repositories, issues, and patches to Codeberg

2025-03-25 Thread Ludovic Courtès
Hi,

Simon Tournier  skribis:

> I’m just discovering the Forgejo instance of sourceware:
>
> https://forge.sourceware.org/explore/organizations
>
> Here, mirror of GCC, Glibc and others are already hosted.
>
> Therefore, it would make sense to check their willing and capacity to
> backup Guix; I have in mind to ask for hosting read-only copies of all
> the PRs, i.e., a plan B for the history of all the PRs.

Sure, sounds like a good idea.

Ludo’.



Re: [PATCH 0/2] ffmpeg-7: Update to 7.1.1.

2025-03-25 Thread 45mg
Hi Guix,

So around 3 weeks ago, I sent a patch to bump ffmpeg-7 to the latest
version, 7.1.1 [1]:

45mg <45mg.wri...@gmail.com> writes:

> ffmpeg-7 is currently FFmpeg 7.0.2, which was released on 2024-08-03 -
> 7 months ago. It's probably time for an update.
>
> Version 7.1 adds AAC USAC and VVC support. I also updated mpv to benefit
> from this.
>
> When are we planning to make ffmpeg-7 the default ffmpeg? The current
> default (6.1.1) was released on 2023-12-31 - over a year ago.
>
> 45mg (2):
>   gnu: ffmpeg-7: Update to 7.1.1.
>   gnu: mpv: Use ffmpeg-7.
(ignore the second patch, its inclusion doesn't really make any sense
tbh)

It would, of course, cause a lot of rebuilds, and I don't really know
how we handle that issue (maybe apply it to core-updates?).

I didn't get a response there; probably in large part because nobody
even got X-Debbugs-CC'ed for that patch series. So I thought I'd
reiterate my original points for a wider audience here:

> ffmpeg-7 is currently FFmpeg 7.0.2, which was released on 2024-08-03 -
> 7 months ago. It's probably time for an update.

> When are we planning to make ffmpeg-7 the default ffmpeg? The current
> default (6.1.1) was released on 2023-12-31 - over a year ago.


[1] https://yhetil.org/guix/cover.1741088958.git.45mg.wri...@gmail.com/



Re: chez scheme can't load system shared library

2025-03-25 Thread Pan Xie

Hi Felix Lechner,


Thanks for your response. Unfortunately, it does not work:


`LD_LIBRARY_PATH' is empty in my shell:

$ echo $LD_LIBRARY_PATH


scheme can't start up with LD_LIBRARY_PATH set:

$ LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH scheme
Segmentation fault (core dumped)

$ LD_LIBRARY_PATH='/usr/lib' scheme
Segmentation fault (core dumped)


`scheme' is the binary executable file of chez scheme.  Chez scheme 
built directly from source code (no guix) can startup with above command 
line.



Regards,

Pan


On 3/25/25 11:51 AM, Felix Lechner wrote:

Hi Xie Pan,

On Tue, Mar 25 2025, Pan Xie wrote:


*this* chez scheme can not load system shared library correctly:

I have never used Chez Scheme but suspect you have to set
LD_LIBRARY_PATH.  In Bash, it might look like something like this:

   $ LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH chez-scheme-executable

Guix refers to prerequisites by absolute paths into the store whenever
possible, including for shared libraries.  Installing prerequisites into
a profile, as you seem to have done, and then finding them in /usr/lib
is known as "propagating" a prerequisite.  It can be convenient, but
people generally consider it subobtimal, because it tends to restrict
the versions usable at the same time (although shared libraries employ a
lesser versioning scheme of their own).

I hope I was of help.  Please stick around for answers from more
competent contributors.

Kind regards
Felix





Re: Trying out Codeberg

2025-03-25 Thread Simon Tournier
Hi,

On Thu, 13 Mar 2025 at 10:36, Adrien 'neox' Bourmault  wrote:

>   the default CI recipes/code depends on
> docker.io images

Well, Cuirass (one CI tool used by the Guix project) is able to work
with Forgejo.

>  nodeJS and npm. Also, the javascript generated by
> Forgejo is minified, without a clear license header, making LibreJS
> blocking it by default (and preventing people from being able to trust
> it right away).

Yeah, that’s annoying but the license header is fixable, no?

Cheers,
simon



Re: Thoughtful updates to TexLive

2025-03-25 Thread Development of GNU Guix and the GNU System distribution.
Hello,

Andreas Enge  writes:

> So maybe once the fix for issue 75893 is pushed and the modular texlive
> updated to version 2025, it will finally be time to retire the
> monolithic package.

Modular TeX Live 2025 is on its way!

> Well, I do not know how complicated it will be to update the modular
> texlive, with package additions, maybe removals, and updates of the
> collections and schemes.

The upgrade process is explained at length in the comments of the
"tex.scm" module in case anyone is curious about it.

> How do you keep track of the changes between one version and another
> one?

I don’t keep track of anything. I let the importer tell me what packages
disappeared, and what are the new ones.

> And does it make sense to follow the yearly release schedule? Texlive
> has a Mastodon account, and they regularly post updates of single
> packages.

Currently, the `texlive' importer and updater is only able to handle
"yearly" releases, but it is possible to specify manually any SVN
revision for the TeX Live packages.

I think this granularity is sufficient, in particular when we consider
the sheer number of rebuilds changes to TeX Live packages usually
entail.

Regards,
-- 
Nicolas Goaziou





Re: chez scheme can't load system shared library

2025-03-25 Thread Pan Xie

Hello Sebastian


Based on your suggestion, now I figure out that I have to install guix 
openssl, even though I already I have openssl libraries installed in 
"/usr/lib".



The following works for me now:


$ guix install openssl

$ LD_LIBRARY_PATH=~/.guix-profile/lib scheme

(load-shared-object "libssl.so")


Thanks

Pan


On 3/25/25 6:25 PM, Sebastian Dümcke wrote:
Not sure how to answer to a particular meesage from the digest emals I 
am receiving. Hope this finds the right person and thus not upset anyone.


Hi Pan,

you need to set LD_LIBRARY_PATH to your profile library path (and then 
load without absolute path in chez). The following works for me:


> guix shell -CP coreutils-minimal chez-scheme openssl
> ls ~/.guix-profile/lib
csv10.1.0 engines-3 libcrypto.so libcrypto.so.3 libssl.so libssl.so.3 
ossl-modules pkgconfig

> LD_LIBRARY_PATH=~/.guix-profile/lib scheme
(load-shared-object "libssl.so")

Best
Sebastian





Re: Scaling issues with forges Was: Trying out Codeberg

2025-03-25 Thread Simon Tournier
Hi,

On Tue, 11 Mar 2025 at 13:12, Suhail Singh  wrote:

> Are the relevent portions of your .emacs or init.el accessible
> somewhere?

https://gitlab.com/zimoun/my-conf

Cheers,
simon



Wireshark with capabilities

2025-03-25 Thread Rutherther


Hello all,

recently I wanted to run Wireshark without using sudo (given that I am
on wayland it's a bit more involved to get apps run as other user,
though it is possible with root). Dumpcap is needed to have cap_net_raw
and cap_net_admin=eip so that it can work properly.

I faced two issues regarding this:
1. Wireshark references dumpcap directly from its output
2. dumpcap is wrapped with some qt wrapper stuff that's not
important for it as it is not a gui program like wireshark itself is.

I solved both issues, but not really ideally, I patched wireshark so
that it refers to /run/privileged/bin/dumpcap directly and unhwrapped
dumpcap by copying the .dumpcap-real to dumpcap.

I am now wondering what would be more idiomatic way to solve this.
Should we patch wireshark to first look into PATH and only then try
dumpcap from the output directory? This still keeps wireshark not
dependent on having its bin folder in PATH, but on the other hand,
it might happen that dumpcap from the system will be preferred, which
might in some cases be undesirable.

And regarding the undesired wrapping, shouldn't the qt build system have
a way to say which binaries should not be wrapped? I see that it is
currently possible to tell to not wrap specific outputs, but no way to
not wrap specific binaries. Unwrapping after it's wrapped feels more
like a hack.

I am attaching my current solution:
---
(define wireshark-patched
  (package/inherit wireshark
  (source (origin
(inherit (package-source wireshark))
(patches (cons*
  (local-file "patches/wireshark.patch")
  (origin-patches (package-source 
wireshark))
  (arguments
   (substitute-keyword-arguments (package-arguments wireshark)
 ((#:phases original-phases)
  #~(modify-phases #$original-phases
  (add-after 'qt-wrap 'unwrap-dumpcap
(lambda _
  (delete-file (string-append #$output 
"/bin/dumpcap"))
  (copy-file
   (string-append #$output "/bin/.dumpcap-real")
   (string-append #$output "/bin/dumpcap"))
---

Here is the patch:
---
>From cb326bf97c99ff73a0a8689304e3ad47aa59139f Mon Sep 17 00:00:00 2001
From: Rutherther 
Date: Sat, 15 Feb 2025 11:39:38 +0100
Subject: [PATCH] Point dumpcap to privileged bin

---
 capture/capture_sync.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/capture/capture_sync.c b/capture/capture_sync.c
index 946dc810db..2cc3d6f705 100644
--- a/capture/capture_sync.c
+++ b/capture/capture_sync.c
@@ -244,7 +244,7 @@ init_pipe_args(int *argc) {
 char **argv;

 /* Find the absolute path of the dumpcap executable. */
-exename = get_executable_path("dumpcap");
+exename = "/run/privileged/bin/dumpcap";
 if (exename == NULL) {
 return NULL;
 }
@@ -270,9 +270,6 @@ init_pipe_args(int *argc) {
 }
 }

-/* sync_pipe_add_arg strdupes exename, so we should free our copy */
-g_free(exename);
-
 return argv;
 }

--

Privileged programs then looks like this
---
 (privileged-programs
  (cons*
   (privileged-program
(program
 (file-append wireshark-patched "/bin/dumpcap"))
(capabilities "cap_net_raw,cap_net_admin=eip"))
   %default-privileged-programs))
---

Regards,
Rutherther



Re: Thoughtful updates to TexLive

2025-03-25 Thread Efraim Flashner
On Tue, Mar 25, 2025 at 12:51:24PM +0100, Andreas Enge wrote:
> Hello,
> 
> Am Thu, Mar 20, 2025 at 07:09:46PM +0100 schrieb Nicolas Goaziou:
> > > This looks a lot like https://issues.guix.gnu.org/75893 .
> > > I should test with your fix on the tex-team branch.
> > I would indeed appreciate some feedback!
> 
> as mentioned in the issue, your fix appears to work very well.
> 
> I have just pushed the 2025 update to the monolithic texlive.
> This is the first time that the temxf tarball is bigger than 4GB
> (the previous one was already bigger than 4*10^9, but still smaller
> than 4*2^30). Unless I have made a mistake, I think this has had some
> incidence: As usual, I had done a "guix download" from a local file,
> but "guix shell -D texlive" has still downloaded the tarball again.
> I wonder if there is a bug somewhere in the Guix code for files bigger
> than 4GB. And I also wonder what will happen on 32 bit systems...

Will probably run into something like this:
https://issues.guix.gnu.org/65714

The last time I looked at the built monolithic texlive I saw there were
almost 2GB of PDFs and other files which could be removed or moved to
another output.  It might be worth checking that out here too.

> So maybe once the fix for issue 75893 is pushed and the modular texlive
> updated to version 2025, it will finally be time to retire the
> monolithic package.
> 
> Well, I do not know how complicated it will be to update the modular
> texlive, with package additions, maybe removals, and updates of the
> collections and schemes. How do you keep track of the changes between
> one version and another one? And does it make sense to follow the yearly
> release schedule? Texlive has a Mastodon account, and they regularly
> post updates of single packages.
> 
> Andreas
> 
> 

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: [GCD deliberation] Set search paths without program wrappers

2025-03-25 Thread 宋文武
Janneke Nieuwenhuizen  writes:

> [...]
>> And when the executable's `/proc/self/exe` matches `GUIX_INTERPRETER_FILE`,
>> we can get the script file name from `GUIX_MAIN_SCRIPT_FILE`.  Alternatively,
>> we can try to construct the script file name from command line arguments, but
>> that won't work when you run a script using a relative file name and its
>> current working directory changed before we figure out the script file name.
>
> Would this work with `guix pack' tarball archives, esp. think
> cross-built `guix pack' archives for MinGW?

I think this should work for `guix pack' when the target is a linux
system, MingGW won't work with '/proc/self/exe', but maybe we can find
something similiar.

I'll keep this in mind and do some tests later, thanks!