bug#54111: guile bundles (a compiled version of) UnicodeData.txt and binaries

2022-03-14 Thread Timothy Sample
Hi Maxime,

Maxime Devos  writes:

> Ludovic Courtès schreef op ma 28-02-2022 om 12:45 [+0100]:
>
>> It might be easier to rewrite in Awk in build srfi-14.i.c
>> unconditionally no?
>
> I don't know any Awk and it seems to be quite different from languages
> I know, so for me doing that isn't easier.  But for someone who knows
> some Awk, sure!

Well, I don’t consider myself an Awk person, but I had to implement it
for Gash-Utils, so I know it well enough!  This may not be the most
idiomatic Awk program, but to my eyes it is no less readable than the
Perl version.

Note that this Awk script needs to be invoked using something like:

$ awk -f unidata_to_charset.awk < UnicodeData.txt > srfi-14.i.c

That is, the Perl version had the file names hard-coded, but the Awk
version reads from stdin and writes to stdout.  Also, the Awk version
does not shell out to 'indent' to post-process the file.  That was
basically a no-op in the Perl version, so I removed it.

There are a few differences in how the script is structured, and I had
to convert all the hex literals to decimal, but the logical behaviour
should be exactly the same.  I preserved all the comments and predicates
exactly from the Perl version.  There’s probably some differences in
error handling, but the input data is so simple that it shouldn’t
matter.

It runs with “gawk --posix”.  If I run “gawk --lint”, I get warnings,
but I’m pretty sure they are spurious (they may even be Gawk bugs, but I
would have to double check the relevant specs and docs).  If the lint
warnings are a problem, you can append the empty string to the argument
of the ‘hex’ function to make them go away.  Also, (as a bonus) as of
commit 62c56f9 the Gash-Utils version of Awk can run this script!  :)

Of course, to use this script as part of the Guile build, someone™ will
have to double check that we can legally redistribute the Unicode data
file (probably okay, but always good to check), and update the build
rules to generate the C file.  I can’t guarantee that I’ll get to it


-- Tim

# unidata_to_charset.awk --- Compute SRFI-14 charsets from UnicodeData.txt
#
# Copyright (C) 2009, 2010, 2022 Free Software Foundation, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

# Utilities
###

# Print MESSAGE to standard error, and exit with STATUS.
function die(status, message) {
print "unidata_to_charset.awk:", message | "cat 1>&2";
exit_status = status;
exit exit_status;
}

# Parse the string S as a hexadecimal number.  Note that R, C, and B are
# local variables that need not be set by callers.  Most Awk
# implementations have an 'strtonum' function that we could use, but it
# is not part of POSIX.
function hex(s, r, c, b) {
if (length(s) == 0) {
die(1, "Cannot parse empty string as hexadecimal.");
}
r = 0;
for (i = 1; i <= length(s); i++) {
c = substr(s, i, 1);
b = 0;
if  (c == "0") { b =  0; }
else if (c == "1") { b =  1; }
else if (c == "2") { b =  2; }
else if (c == "3") { b =  3; }
else if (c == "4") { b =  4; }
else if (c == "5") { b =  5; }
else if (c == "6") { b =  6; }
else if (c == "7") { b =  7; }
else if (c == "8") { b =  8; }
else if (c == "9") { b =  9; }
else if (c == "A") { b = 10; }
else if (c == "B") { b = 11; }
else if (c == "C") { b = 12; }
else if (c == "D") { b = 13; }
else if (c == "E") { b = 14; }
else if (c == "F") { b = 15; }
else { die(1, "Invalid hexadecimal character: " c); }
r *= 16;
r += b;
}
return r;
}

# Program initialization


BEGIN {
# The columns are separated by semicolons.
FS = ";";

# This will help us handle errors.
exit_status = 0;

# List of charsets.
all_charsets_count = 0;
all_charsets[all_charsets_count++] = "lower_case";
all_charsets[all_charsets_count++] = "upper_case";
all_charsets[all_charsets_count++] = "title_case";
all_charsets[all_charsets_count++] = "letter";
all_charsets[all_charsets_count++] = "digit";
all_charsets[all_charsets_count++] = "hex_digit";
all_charsets[all_charsets_count++] = "letter_plus_digit";
all_charsets[all_charsets_count++] = "graphic";
 

bug#54385: xscreensaver seems to be missing xscreensaver-demo

2022-03-14 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

Hi Christine,

Note that the name of this tool has changed upstream[0], but we're still 
on an older version for now.  Building it:


Warning: GTK version 2.24.33 was found, but at least one supporting
 library (gdk-pixbuf-xlib-2.0) was not, so GTK can't be 
used.

 Perhaps some of the development packages are not installed?

Warning: The GTK libraries do not seem to be available; the
 `xscreensaver-demo' program requires them.

Where gdk-pixbuf-xlib is of course ‘a deprecated library’ and ‘[n]o 
newly written code should ever use this library’ so that'll be fun to 
maintain the coming years.


Our gdk-pixbuf package still mentions gdk-pixbuf-xlib-2.0.pc in an 
obsolete comment but doesn't actually install it.


Oh:

  NEWS: - Split the gdk-pixbuf-xlib library to a separate repository

The repository is archived and read-only:

  https://gitlab.gnome.org/Archive/gdk-pixbuf-xlib

Oh that is going to be *super* fun to maintain.

At this point I'd usually go ahead and package the beast, but I don't 
use xscreensaver.  How important is this binary?  (-demo sounds 
unimportant, -settings very, but it's presumably the same thing.)


In any case an update to xscreensaver would seem prudent first.

Kind regards,

T G-R

Sent from a Web browser.  Excuse or enjoy my brevity.

[0]: https://www.jwz.org/xscreensaver/changelog.html





bug#54387: Error when trying to upgrade guix

2022-03-14 Thread jbranso--- via Bug reports for GNU Guix
Howdy Guix!

Sorry for resending, I do not think the first email had a subject or from.  
Thanks!


When I try switch guix generations I get the following error:


/s/h/j/p/gnu/guix-config [master] λ guix system switch-generation 2
guix system: warning: unrecognized boot parameters at 
'/var/guix/profiles/system/parameters'
Backtrace:
In ice-9/boot-9.scm:
  1752:10 16 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
  15 (apply-smob/0 #)
In ice-9/boot-9.scm:
724:2 14 (call-with-prompt _ _ #)
In ice-9/eval.scm:
619:8 13 (_ #(#(#)))
In guix/ui.scm:
   2209:7 12 (run-guix . _)
  2172:10 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 10 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/status.scm:
822:3  9 (_)
802:4  8 (call-with-status-report _ _)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/store.scm:
   658:37  6 (thunk)
In guix/scripts/system.scm:
   375:10  5 (switch-to-system-generation # "2")
   382:16  4 (reinstall-bootloader # 2)
In ice-9/boot-9.scm:
  1747:15  3 (with-exception-handler # _ #:unwind? _ #:unwind-for-type _)
In gnu/system.scm:
   469:15  2 (read-boot-parameters-file "/var/guix/profiles/system")
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure struct-vtable: Wrong type argument in position 1 (expecting 
struct): #f


Here is what is inside that file /var/guix/profiles/system/parameters.

/s/h/j/p/gnu/guix-config [master] λ cat 
/su:root@localhost:/var/guix/profiles/system/parameters
(boot-parameters (version 1) (label "GNU with Linux-Libre 5.15.26") 
(root-device "/dev/mapper/cryptroot") (kernel 
"/gnu/store/70qfrg1iqcia8sr1f19sq1dnsgmf4vxf-linux-libre-5.15.26/bzImage") 
(kernel-arguments ("modprobe.blacklist=pcspkr" 
"modprobe.blacklist=usbmouse,usbkbd" "quiet")) (initrd 
"/gnu/store/j2bk2h3x60w41xgwdihqwd9467l20pb4-raw-initrd/initrd.cpio.gz") 
(bootloader-name grub) (bootloader-menu-entries ((menu-entry (version 0) (label 
"Debian 10") (device #f) (device-mount-point #f) (linux 
"/boot/vmlinuz-4.19.0-8-amd64") (linux-arguments ("root=/dev/sda3" "quiet")) 
(initrd "/boot/initrd.img-4.19.0-8-amd64" (locale "en_US.utf8") (store 
(device #f) (mount-point "/") (directory-prefix #f) (crypto-devices ((uuid dce 
#vu8(215 141 34 77 75 90 65 110 175 239 60 231 124 75 213 172))
/s/h/j/p/gnu/guix-config [master] λ


Here is the config generated by the auto-installer.  I believe I am using the
latest installer...corresponding to Guix 1.3

;; This is an operating system configuration generated
;; by the graphical installer.

(use-modules (gnu))
(use-service-modules desktop networking ssh xorg)

(operating-system
  (locale "en_US.utf8")
  (timezone "America/Indiana/Indianapolis")
  (keyboard-layout (keyboard-layout "us" "dvorak"))
  (host-name "barnabas")
  (users (cons* (user-account
  (name "joshua")
  (comment "Joshua Allen Branson")
  (group "users")
  (home-directory "/home/joshua")
  (supplementary-groups
'("wheel" "netdev" "audio" "video")))
%base-user-accounts))
  (packages
(append
  (list (specification->package "nss-certs"))
  %base-packages))
  (services
(append
  (list (service network-manager-service-type)
(service wpa-supplicant-service-type))
  %base-services))
  (bootloader
(bootloader-configuration
  (bootloader grub-bootloader)
  (target "/dev/sda")
  (keyboard-layout keyboard-layout)))
  (mapped-devices
(list (mapped-device
(source
  (uuid "d78d224d-4b5a-416e-afef-3ce77c4bd5ac"))
(target "cryptroot")
(type luks-device-mapping
  (file-systems
(cons* (file-system
 (mount-point "/")
 (device "/dev/mapper/cryptroot")
 (type "ext4")
 (dependencies mapped-devices))
   %base-file-systems)))



I also am using a librebooted Thinkpad T400.  Thanks!





bug#54385: xscreensaver seems to be missing xscreensaver-demo

2022-03-14 Thread Christine Lemmer-Webber
Not sure why but the latest xscreensaver package no longer includes the
xscreensaver-demo executable afaict?