aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
AgeCommit message (Expand)Author
2024-08-31gnu: ranger: Fix build....宋文武
2024-08-31gnu: opendoas: Add libxcrypt dependency....宋文武
2024-08-31gnu: pies: Add libxcrypt dependency....宋文武
2024-08-31gnu: gnurobots: Add libxcrypt dependency....宋文武
2024-08-31gnu: opensmtpd: Add libxcrypt dependency....宋文武
2024-08-31gnu: pounce: Add libxcrypt dependency....宋文武
2024-08-31gnu: gsequencer: Add libxcrypt dependency....宋文武
2024-08-31gnu: squid: Add libxcrypt dependency....宋文武
2024-08-31gnu: passwdqc: Add libxcrypt dependency....宋文武
2024-08-31gnu: swi-prolog: Add libxcrypt dependency....宋文武
2024-08-31gnu: policycoreutils: Add libxcrypt dependency....宋文武
2024-08-31gnu: lsh: Add libxcrypt dependency....宋文武
2024-08-31gnu: texmacs: Add libxcrypt dependency....宋文武
2024-08-31gnu: xtrlock: Add libxcrypt dependency....宋文武
2024-08-31gnu: xscreensaver: Add libxcrypt dependency....宋文武
2024-08-31gnu: alpine: Add libxcrypt dependency....宋文武
2024-08-31gnu: dovecot: Add libxcrypt dependency....宋文武
2024-08-31gnu: exim: Add libxcrypt dependency....宋文武
2024-08-31gnu: frrouting: Add libxcrypt dependency....宋文武
2024-08-31gnu: dante: Add libxcrypt dependency....宋文武
2024-08-31gnu: whois: Add libxcrypt dependency....宋文武
2024-08-31gnu: heimdal: Add libxcrypt dependency....宋文武
2024-08-31gnu: sawfish: Add libxcrypt dependency....宋文武
2024-08-31gnu: dropbear: Add libxcrypt dependency....宋文武
2024-08-31gnu: adanaxisgpl: Add libxcrypt dependency....宋文武
2024-08-31gnu: fdisk: Add libxcrypt dependency....宋文武
2024-08-31gnu: picolisp: Add libxcrypt dependency....宋文武
2024-08-31gnu: slim: Add libxcrypt dependency....宋文武
2024-08-31gnu: libarea: Fix build....Guillaume Le Vaillant
2024-08-31gnu: txr: Add missing input....Guillaume Le Vaillant
2024-08-31gnu: grass: Fix build....Guillaume Le Vaillant
2024-08-31gnu: python-magic: Adjust test suite....Ludovic Courtès
2024-08-31gnu: dico: Add libxcrypt dependency....Ludovic Courtès
2024-08-31gnu: guile-commonmark: Run tests under C.UTF-8....Ludovic Courtès
2024-08-31gnu: findutils-boot0: Fix build on armhf-linux....Efraim Flashner
2024-08-31gnu: psm: Allow compilation with glibc 2.39....Ludovic Courtès
2024-08-31gnu: Add glibc-locales-2.35....Josselin Poiret
2024-08-31gnu: make-glibc-locales: Modernize....Josselin Poiret
2024-08-31gnu: glibc-2.35: Disable C++ compiler for build....Josselin Poiret
2024-08-31gnu: glibc-2.35: Use CVE-2023-4911 again....Josselin Poiret
2024-08-31gnu: glibc/fixed: Remove variable....Josselin Poiret
2024-08-31gnu: cl-moptilities: Fix build....Guillaume Le Vaillant
2024-08-31gnu: cl-cluffer: Fix build....Guillaume Le Vaillant
2024-08-31gnu: stumpwm: Fix build....Guillaume Le Vaillant
2024-08-31gnu: python-3.10: Ungraft removing bundled cacert.pem....Josselin Poiret
2024-08-31gnu: nss-certs: Ungraft update to 3.99....Josselin Poiret
2024-08-31gnu: nss: Ungraft update to 3.99....Josselin Poiret
2024-08-31gnu: python-certifi: Ungraft....Josselin Poiret
2024-08-31gnu: python-pip: Ungraft....Josselin Poiret
2024-08-31gnu: glibc: Update patches following upstream's master branch....Josselin Poiret
set-grid-field entry-grid 2 3 GRID-ELEMENT-COMPONENT password-visible-cb #:pad-left 1) (set-grid-field button-grid 0 0 GRID-ELEMENT-COMPONENT ok-button) (add-component-callback entry-name (lambda () (set-entry-text entry-home-directory (string-append "/home/" (entry-value entry-name))) (when (string-null? (entry-value entry-real-name)) (set-entry-text entry-real-name (string-titlecase (entry-value entry-name)))))) (add-component-callback password-visible-cb (lambda () (set-entry-flags entry-password FLAG-PASSWORD FLAG-ROLE-TOGGLE))) (add-components-to-form form label-name label-real-name label-home-directory label-password entry-name entry-real-name entry-home-directory entry-password password-visible-cb ok-button) (make-wrapped-grid-window (vertically-stacked-grid GRID-ELEMENT-SUBGRID entry-grid GRID-ELEMENT-SUBGRID button-grid) title) (let ((error-empty-field-page (lambda () (run-error-page (G_ "Empty inputs are not allowed.") (G_ "Empty input")))) (error-root-page (lambda () (run-error-page (G_ "Root account is automatically created.") (G_ "Root account"))))) (receive (exit-reason argument) (run-form form) (dynamic-wind (const #t) (lambda () (when (eq? exit-reason 'exit-component) (cond ((components=? argument ok-button) (let ((name (entry-value entry-name)) (real-name (entry-value entry-real-name)) (home-directory (entry-value entry-home-directory)) (password (entry-value entry-password))) (cond ;; Empty field. ((or (string=? name "") (string=? home-directory "")) (error-empty-field-page) (run-user-add-page)) ;; Reject root account. ((root-account? name) (error-root-page) (run-user-add-page)) (else (let ((password (confirm-password password))) (if password (user (name name) (real-name real-name) (home-directory home-directory) (password (make-secret password))) (run-user-add-page #:name name #:real-name real-name #:home-directory home-directory)))))))))) (lambda () (destroy-form-and-pop form))))))) (define* (confirm-password password #:optional (try-again (const #f))) "Ask the user to confirm PASSWORD, a possibly empty string. Call TRY-AGAIN, a thunk, if the confirmation doesn't match PASSWORD, and return its result." (define confirmation (run-input-page (G_ "Please confirm the password.") (G_ "Password confirmation required") #:allow-empty-input? #t #:input-visibility-checkbox? #t)) (if (string=? password confirmation) password (begin (run-error-page (G_ "Password mismatch, please try again.") (G_ "Password error")) (try-again)))) (define (run-root-password-page) (define password ;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the ;; system administrator account. (run-input-page (G_ "Please choose a password for the system \ administrator (\"root\").") (G_ "System administrator password") #:input-visibility-checkbox? #t)) (confirm-password password run-root-password-page)) (define (run-user-page) (define (run users) (let* ((listbox (make-listbox -1 -1 10 (logior FLAG-SCROLL FLAG-BORDER))) (info-textbox (make-reflowed-textbox -1 -1 (G_ "Please add at least one user to system\ using the 'Add' button.") 40 #:flags FLAG-BORDER)) (add-button (make-compact-button -1 -1 (G_ "Add"))) (del-button (make-compact-button -1 -1 (G_ "Delete"))) (listbox-button-grid (apply vertically-stacked-grid GRID-ELEMENT-COMPONENT add-button `(,@(if (null? users) '() (list GRID-ELEMENT-COMPONENT del-button))))) (ok-button (make-button -1 -1 (G_ "OK"))) (exit-button (make-button -1 -1 (G_ "Exit"))) (title (G_ "User creation")) (grid (vertically-stacked-grid GRID-ELEMENT-COMPONENT info-textbox GRID-ELEMENT-SUBGRID (horizontal-stacked-grid GRID-ELEMENT-COMPONENT listbox GRID-ELEMENT-SUBGRID listbox-button-grid) GRID-ELEMENT-SUBGRID (horizontal-stacked-grid GRID-ELEMENT-COMPONENT ok-button GRID-ELEMENT-COMPONENT exit-button))) (sorted-users (sort users (lambda (a b) (string<= (user-name a) (user-name b))))) (listbox-elements (map (lambda (user) `((key . ,(append-entry-to-listbox listbox (user-name user))) (user . ,user))) sorted-users)) (form (make-form))) (add-form-to-grid grid form #t) (make-wrapped-grid-window grid title) (if (null? users) (set-current-component form add-button) (set-current-component form ok-button)) (receive (exit-reason argument) (run-form-with-clients form '(add-users)) (dynamic-wind (const #t) (lambda () (match exit-reason ('exit-component (cond ((components=? argument add-button) (run (cons (run-user-add-page) users))) ((components=? argument del-button) (let* ((current-user-key (current-listbox-entry listbox)) (users (map (cut assoc-ref <> 'user) (remove (lambda (element) (equal? (assoc-ref element 'key) current-user-key)) listbox-elements)))) (run users))) ((components=? argument ok-button) (when (null? users) (run-error-page (G_ "Please create at least one user.") (G_ "No user")) (run users)) (reverse users)) ((components=? argument exit-button) (abort-to-prompt 'installer-step 'abort)))) ('exit-fd-ready ;; Read the complete user list at once. (match argument ((('user ('name names) ('real-name real-names) ('home-directory homes) ('password passwords)) ..1) (map (lambda (name real-name home password) (user (name name) (real-name real-name) (home-directory home) (password (make-secret password)))) names real-names homes passwords)))))) (lambda () (destroy-form-and-pop form)))))) ;; Add a "root" user simply to convey the root password. (cons (user (name "root") (home-directory "/root") (password (make-secret (run-root-password-page)))) (run '())))