bug#54111: guile bundles (a compiled version of) UnicodeData.txt and binaries
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
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
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
Not sure why but the latest xscreensaver package no longer includes the xscreensaver-demo executable afaict?