Mesa out of date (and move to libglvnd?)

2021-07-07 Thread John Kehayias
Hi everyone,

Mesa has fallen quite of date (latest upstream is 21.1.4, guix core-updates up 
to 20.2.6, or else 20.2.4 for everyone else). There is patch available here: 
https://issues.guix.gnu.org/49339 however it currently includes enabling 
libglvnd. I don't think that is necessary from my testing, but does raise the 
question of moving to libglvnd for packages requiring GL (which would be needed 
if Mesa has it enabled).

As far as I understand it, libglvnd is meant to be vendor neutral and provide 
GL for anything to link to, and then hands off to vendor specific GL. I have at 
tested building some packages when mesa has libglvnd enabled, like libepoxy and 
xorg-server. Both needed libglvnd as inputs, but otherwise build fine. I 
haven't tested running as I'm currently on a foreign distro. However, does seem 
like this would be a good idea, as it should alleviate dealing with vendor 
specific GL in building packages. libglvnd is new to me, but perhaps someone 
can weigh in on this issue?

Anyway, my main goal right now is to have Mesa updated in core-updates before 
the upcoming freeze. Mesa is already very out of date, and would then push it 
to another ~6 months for the next core-updates when it is already ~7 months out 
of date (and they make quick releases for fixes in drivers and software that 
uses Mesa).

I can update #49339 with a minimal Mesa version bump patch if that helps, just 
don't want it to get lost in the current shuffle.

Thanks!
John



Re: New Operating System and Kernel development

2021-07-07 Thread Gurjeet Singh
On Wed, Jul 7, 2021 at 5:33 AM Amar M. Singh  wrote:
>
>   appreciate feedback, in the end I hope to make something that is
>   usable and used rather than purely for amusement purposes :)

If you're interested in playing with some code/idea, even just for
your own amusement, don't let others' opinion stop you from doing
that. Success of any new work or idea are very slim, so if you try to
optimize for that, you might not get anything done at all.

Just my 2. bits.

Best regards,
--
Gurjeet Singh http://gurjeet.singh.im/



Re: New Operating System and Kernel development

2021-07-07 Thread stuebinm

Hi amar,

this is unrelated to GNU or Guix, but if you want to avoid C/C++ it may 
be worth taking a look at https://www.redox-os.org, which is written in 
Rust — of course there's also the GNU Hurd (and I'm sure many other 
projects), but this is the only one I'm aware of that has "avoid using 
C/C++" as one of its stated goals (apart from some more specific things 
like MirageOS, which uses OCaml a lot).


~stuebinm

On 07.07.21 17:01, guix-devel-requ...@gnu.org wrote:

Message: 5
Date: Wed, 07 Jul 2021 11:51:45 +
From: "Amar M. Singh" 
To: guix-devel@gnu.org
Subject: New Operating System and Kernel development
Message-ID: 
Content-Type: text/plain; charset="utf-8"

Hello all,

   Is there any research into new Operating Systems and kernel
   development? I'd like to announce 'heh' that I'm starting on just
   such a project :)

   I have a few ideas about what i want to build but that's getting far
   ahead of myself, I think I should build it to run on Qemu or Xen
   hypervisor. The most dreaded thing i want to avoid is C or C++.  The
   source code shall go on to https://codeberg.org/nly. And always
   appreciate feedback, in the end I hope to make something that is
   usable and used rather than purely for amusement purposes :)

   Thank you for reading so far,
   ~amar




Re: New Operating System and Kernel development

2021-07-07 Thread Pjotr Prins
Hi Amar,

Did you study Hurd and other micro-kernel approaches? Some people
working on that here (though not me).

Pj.

On Wed, Jul 07, 2021 at 11:51:45AM +, Amar M. Singh wrote:
> Hello all,
> 
>   Is there any research into new Operating Systems and kernel
>   development? I'd like to announce 'heh' that I'm starting on just
>   such a project :)
> 
>   I have a few ideas about what i want to build but that's getting far
>   ahead of myself, I think I should build it to run on Qemu or Xen
>   hypervisor. The most dreaded thing i want to avoid is C or C++.  The
>   source code shall go on to https://codeberg.org/nly. And always
>   appreciate feedback, in the end I hope to make something that is
>   usable and used rather than purely for amusement purposes :)
> 
>   Thank you for reading so far,
>   ~amar
> 



Re: Create branch for Haskell build changes and updates?

2021-07-07 Thread John Soo
Hey Guix,

I’m very happy to see some movement on haskell support.

We try to track the stack package set for a given ghc version. Updating to ghc 
8.10.4, then, means updating to stackage lts 18.1.

One other issue that should be addressed is that cabal-install will need to be 
updated to 3.x. I have tried but I don’t know how to build it.

I also nominate updating the ghc-profile-hook. It needs some work to be fully 
functional. Perhaps a search-path would be the way to go there?

Kindly,

John Soo



Re: Questions regarding Python packaging

2021-07-07 Thread Hartmut Goebel

Am 29.06.21 um 09:20 schrieb Lars-Dominik Braun:

AFAIK this might not be true if other build systems not using setuptools
at all might show up. And isn't this the main reason for all your work?

No, try


Sorry, I've been inprecise on this:

There might still be quite some packages out there importing plain, old 
distutils (and not setuptools) in their setup.py. These are what I meant 
with "other build systems not using setuptools". For these setup.py to 
understand the options we (and pip) need for installation, "import 
distutils" has to be hacked to actually become "import setuptools" - 
which is what setuptools-shim does


--
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |



Re: Create branch for Haskell build changes and updates?

2021-07-07 Thread John Kehayias
‐‐‐ Original Message ‐‐‐

On Wednesday, July 7th, 2021 at 1:47 AM, Xinglu Chen wrote:

> On Mon, Jul 05 2021, John Kehayias wrote:
>
> > Hello,
> >
> > There have been several recent bug reports and patches (list below)
> >
> > that could be addressed with some changes to haskell-build-system, the
> >
> > Hackage importer, and some package updates. Given the number of
> >
> > packages affected, it was discussed on #guix that it would be good to
> >
> > have a branch for these changes and to have Cuirass build the Haskell
> >
> > packages to look for breakage.
> >
> > How do we feel about this? I'm happy to help with some patches I've
> >
> > submitted and update some packages, though it would also be good to
> >
> > have someone experienced with Haskell packaging and/or Guix too. (I'm
> >
> > new to both, but I've had success with my patches at least, locally.)
> >
> > Here is a (partial) list of the most recent bugs and patches that
> >
> > would belong on this branch:
> >
> > -   https://issues.guix.gnu.org/48944 (build failure for new package,
> >
> > addressed by next patch)
> >
> > -   https://issues.guix.gnu.org/49199 (patch to add package-db to
> >
> > runhaskell to help with non-trivial configure stage; worked around in
> >
> > existing packages with a TODO marked to make this change actually)
> >
> > -   https://issues.guix.gnu.org/49418 (metadata revisions not imported,
> >
> > so e.g. dependency requirements out of date)
> >
> > -   https://issues.guix.gnu.org/49326 (bug with specifying ghc version
> >
> > for building)
> >
> > -   https://issues.guix.gnu.org/49320 (importer doesn't support some
> >
> > stages)
> >
> > -   https://issues.guix.gnu.org/48999 (local source for Haskell
> >
> > packages)
> >
> >
> > I'm not sure what we would want to include or not in such a branch,
> >
> > but I think it would make sense to put together the build-system and
> >
> > related changes at least. Some package updates (like a ghc version)
> >
> > would also affect a lot of packages, so might be good to do that
> >
> > together as well.
>
> Thank you for bringing this up! I posted a WIP patch for adding GHC
>
> 8.10 a while ago, but nobody showed any interest[1].
>
> I don’t have any experience with updating the Haskell toolchain in Guix,
>
> but I think it would be great to have a separate branch for updating the
>
> haskell-build-system and Haskell packages. :)
>
> [1]: https://yhetil.org/guix-devel/87o8cgfbg1@yoctocell.xyz/

I'm no expert in Haskell packages (every time I dive in anywhere it always 
seems a bit of a mess), but I'm happy to help out. Given the number of 
interdependent packages, probably makes sense to do this anytime needing to 
update a core package, GHC, etc.

Does any maintainer or someone with repository access want to set this up? 
Perhaps someone that has already handled Haskell updates?

We have several patches we can push right away and see how the updates go in 
the CI. Given the scope, I think it is difficult to do without a CI, though 
I've recompiled many a package with the patches I've submitted. I can help take 
charge (or do whatever) once a branch is set up, just let me know.



Re: Effectively force all GNOME users to locally compile ZFS?

2021-07-07 Thread Tobias Geerinckx-Rice

Mark H Weaver 写道:

Maxime Devos 写道:

Perhaps the "zfs" package can be split in an userspace package
(containing userspace binaries and libraries) and a 
kernelspace
component (containing the kernel module)? And let the 
kernelspace

component be unsubstitutable and the userspace component
substitutable?


That's a very good idea if possible.


I suggested splitting *libvirt*, not ZFS.  How would splitting ZFS 
into two identically-licenced halves help?


Kind regards,

T G-R


signature.asc
Description: PGP signature


New Operating System and Kernel development

2021-07-07 Thread Amar M. Singh
Hello all,

  Is there any research into new Operating Systems and kernel
  development? I'd like to announce 'heh' that I'm starting on just
  such a project :)

  I have a few ideas about what i want to build but that's getting far
  ahead of myself, I think I should build it to run on Qemu or Xen
  hypervisor. The most dreaded thing i want to avoid is C or C++.  The
  source code shall go on to https://codeberg.org/nly. And always
  appreciate feedback, in the end I hope to make something that is
  usable and used rather than purely for amusement purposes :)

  Thank you for reading so far,
  ~amar



Re: Removing package input labels: last call!

2021-07-07 Thread Gabriel Wicki
Hi!

I hope I'm not too late!  I've given the patch a try and have a couple
of questions:

 - Since not all the inputs *have* to be converted to the new format:
   is this more some kind of syntactic sugar and less of a "we really
   want this to be the new standard" kind of improvement?
   Or is the goal to replace *all* input lists with the new style?

 - Regarding the speed of the transition: do I understand correctly that
   the script should be able to convert the vast majority of packages
   and that afterwards maybe other definitions will/might/could be
   translated by hand?
 - Follow up: is your intention to adjust the script to work with more
   and more package definitions or are you leaning into a more "let's
   have a sound script which is useful for many cases but leaves a
   biggish bunch of manual labor but at least it won't break a thing"
   kind of solution?

 - Is there a way to check the integrity of a package definition
   *without* building the whole thing?  I had some ideas (see below)
   for adding special cases to your `guix style` script but was unable
   to test whether they actually work (because compiling tonnes of
   codes unsurprisingly takes quite some time).


What I found:
 - Small things like libX11 vs libx11.  If I understood correctly the
   new patch series takes care of this case.

 - I think there's a whole class of cases where version-names and
   other package-definition specifics make the "does-the-package-name-
   match-the-label-exactly" algo fail:
- ,python-wrapper vs. "python"
- ,python-minimal-wrapper vs. "python"
- ,python2 vs. "python"
- ,python-cython vs. "cython"
- ,iproute2 vs. "iproute"
- etc

I've written some code and tested it with some specific package
definitions but since I was unable to test whether these substitutions
actually work for *all* package definitions I'll just leave these
remarks here :)


I hope this is somewhat help- or useful.

Gabriel



Re: Effectively force all GNOME users to locally compile ZFS?

2021-07-07 Thread Tobias Geerinckx-Rice

Hi Mark,

Something about this virt-manager reasoning strikes me as bogus, 
but it's complicated by how Guix works in practice…  I think any 
perceived (pseudo-)(cosplay-)(that includes me)‘legal’ issues are 
a distraction.


Mark H Weaver 写道:
For now, I think that commit 
61ccd756e5ff73b2f8dc3449df537f1c5adb5872
should be reverted until we can evaluate the situation more 
carefully.


I reverted it already.  Anything else is a waste of all our 
valuable time.


Thanks,

T G-R


signature.asc
Description: PGP signature


Re: Effectively force all GNOME users to locally compile ZFS?

2021-07-07 Thread Tobias Geerinckx-Rice

Ludovic Courtès 写道:
How about moving libvirt_storage_backend_zfs.so to a separate 
output?
Fortunately libvirt appears to be modularly well-designed, 
although I

haven't tried myself.


That wouldn’t really help, would it?


No.  I meant package.

I would rather have nothing depend on ZFS by default, but we 
could have

“libvirt-with-zfs” etc.


Who knows, but I'd rather just revert the commit and be done with 
it.  ‘Nothing depend on ZFS by default’ is clear and unambiguous. 
Thanks!


I agree that GNOME Boxes and libvirt should not depend on ZFS by 
default
because (1) ZFS is an optional feature and probably not widely 
used,


Yeah, this is still a bug, but it's up to the GNOME users to deal 
with :-)


Kind regards,

T G-R


signature.asc
Description: PGP signature


Re: Use of %texlive-revision and %texlive-tag in tex.scm

2021-07-07 Thread Bengt Richter
On +2021-07-06 15:28:43 -0300, Nathan Benedetto Proença wrote:
> Bengt Richter  writes:
> 
> > Hi Nathan,
> > Nice writeup!
> 
> Thank you!
> 
> > On +2021-07-05 11:03:46 -0300, Nathan Benedetto Proença wrote:
> >> Hello!
> >> 
> >> I am trying to upgrade the package texlive, first for me, but hopefully
> >> for a patch, and I have a question regarding Guix policies.
> >> 
> >> As you can see on
> >> 
> >>
> >> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/texlive.scm?id=f7692617b624a01615cf412773c4dad9a2deeb68
> >> 
> >> the file guix/build-system/texlive.scm exposes two variables:
> >> 
> >> (define %texlive-tag "texlive-2019.3")
> >> (define %texlive-revision 51265)
> >> 
> >> These variables are used throughout gnu/packages/tex.scm, as you can see
> >> on
> >> 
> >>
> >> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/tex.scm?id=f7692617b624a01615cf412773c4dad9a2deeb68
> >> 
> >> An example is the following code:
> >> 
> >>   (define hyph-utf8-scripts
> >> (origin
> >>   (method svn-fetch)
> >>   (uri (texlive-ref "generic" "hyph-utf8"))
> >>   (file-name (string-append "hyph-utf8-scripts-"
> >> (number->string %texlive-revision)
> >> "-checkout"))
> >>   (sha256
> >>(base32
> >> "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83"
> >> 
> >> Grep tells me there are 290+ occurrences of `%texlive-revision`.
> >> What is the purpose of these variables?
> >> 
> >> You see, they give me the impression that Guix is really concerned about
> >> upgrading *all* of texlive at once.
> >> These variables tell me I should go to the file texlive.scm and bump the
> >> tag and revision, and then handle all the broken hashes.
> >> 
> >> Hence, it seems to me that any attempt to upgrade the texlive package
> >> would have to be done in a separate branch, which would only be merged
> >> into master when all the packages are upgraded.
> >> 
> >> Is this the case?
> >> And if so, why?
> >> 
> >> I have the impression that if such "monolithic" upgrade is not a goal,
> >> and "partial" our "per-package" upgrades are desirable, there may be
> >> better solutions.
> >> 
> >> For example, we could add keyword arguments to texlive-ref and
> >> texlive-origin, so the code above becomes something like this
> >> 
> >>   (define hyph-utf8-scripts
> >> (origin
> >>   (method svn-fetch)
> >>   (uri (texlive-ref "generic" "hyph-utf8"
> >> #:texlive-tag "texlive-2019.3"
> >> #:texlive-revision 51265))
> >>   (file-name "hyph-utf8-scripts-51625-checkout")
> >>   (sha256
> >>(base32
> >> "0lk7shx768sxvgr85y8bnmmnj8x4bbkgpxrz3z8jp8avi33prw83"
> >> 
> >> This would work right now, and we could eventually remove every use of
> >> %texlive-revision and %texlive-tag, so they become implementation
> >> details of the build-system texlive.scm; a fallback version.
> >> And further down the road we may even decide to remove this fallback,
> >> and make developers be explicit about their tags and revisions; this
> >> could amount to a refactor which makes the keyword arguments into
> >> required arguments, for example.
> >> 
> >> I also like the second version of the code because the hash already
> >> pinpoints the tag and revision: both texlive-ref and texlive-origin use
> >> these variables to find the correct files to download.
> >> This just makes this dependency explicit.
> >> 
> >> In any case, as this may be a choice between shipping stable and
> >> up-to-date packages, and as I am new to contributing to Guix, I found
> >> fitting to ask.
> >> 
> >> Thanks in advance!
> >> Nathan
> >> 
> >
> > I am wondering about guaranteeing generic behaviour by
> > guaranteeing program source and toolchain source hash
> > equivalences vs ignoring sources and guaranteeing end
> > results by testing results.
> 
> It seems to me that you are talking about my email regarding using
> hashing in Scheme refactoring, right?
> This one:
> 
>  https://lists.gnu.org/archive/html/guix-devel/2021-07/msg00023.html
> 
> I will assume this is the case, even though I we can actually simply
> talk about what you wrote.
> 
> First thoughts: I think that what we really want to guarantee is
> "correctness", and that both hashes or tests are mere proxies for this.
> 
> I see them as useful in distinct moments of package development.
> 
> For example, lets say that I want to partially upgrade TeXLive (which I
> am already convinced is not a good idea, TBH, but serves as an
> example).
> To be able to do so, I may think that I want to refactor some function
> to pinpoint the version I will download.
> I can then make a single commit which updates the signature and all the
> call sites of the function.
> I can then actually upgrade the package I care about in a second commit,
> and do some "proper testing" in it, like producing some