bug#43986: core-updates' grep and coreutils fail strerror_r and perror2 tests in gnulib-tests on armhf-on-aarch64

2020-10-20 Thread Danny Milosavljevic
and diffutils, while trying to prepare the guix environment for grep.


pgpFLswkFOvtq.pgp
Description: OpenPGP digital signature


bug#29333: potential dependency bug in packages

2020-10-20 Thread zimoun
Dear,

Thank you for the bug report.

Since we are not able to reproduce because of lack of information –no
minimal operating system configuration file which demonstrates the
problem– and it is now more than 2 years old, I am closing.

Feel free to reopen it if it is still an issue for you.


All the best,
simon

--






bug#44096: failed to build wesnot

2020-10-20 Thread Adam Kandur via Bug reports for GNU Guix

log attached


nam4c9d1faq8rqm7syaqn470nbmzq9-wesnoth-1.14.14.drv.bz2
Description: application/bzip


bug#44096: failed to build wesnoth

2020-10-20 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

Adam,

This is probably not a bug:

Adam Kandur via Bug reports for GNU Guix 写道:

c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
make[2]: *** [src/CMakeFiles/wesnoth-core.dir/build.make:183:
src/CMakeFiles/wesnoth-core.dir/gettext_boost.cpp.o] Error 4
make[2]: Leaving directory 
'/tmp/guix-build-wesnoth-1.14.14.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:402: 
src/CMakeFiles/wesnoth-core.dir/all] Error 2

make[1]: *** Waiting for unfinished jobs


...which often happens when you run out of RAM, or due to other 
system-level failure.


Take a look in your dmesg for any out-of-memory (OOM) or other 
errors at that time.


Kind regards,

T G-R


signature.asc
Description: PGP signature


bug#44090: Packaging a python library that is implemented with rust

2020-10-20 Thread Leo Prikler
Hello Hamzeh,

I think part of the issue here, is that the build system for etebase-py 
tries to also build etebase-rs, which you have already packaged.  There
are two ways you could continue here:

1. Patch the build system of etebase-py, so that it works with your
already built etebase-rs.

2. Pull in the etebase-rs source as input to etebase-py and build
everything as one package.

I am not sure, which option makes more sense here.  I do lean a bit
more towards #1, but others may weigh in on this as well.  I'm pretty
sure you can disregard setuptools-rust if you choose #1.  If you do #2,
you might have to mix some of the rust-build-system phases into python-
etebase.

Regards, Leo






bug#44097: Gnucash not reproducible

2020-10-20 Thread Marinus Savoritias

The command that i am using to install gnucash is this:

guix install --fallback --rounds=3 --cores=1 --max-jobs=1 --keep-failed 
gnucash


And the output is this:

-output ‘/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug’ 
of ‘/gnu/store/0ri0xdaqb03mk33ii2irwp8ps1vaih0q-gnucash-3.8.drv’ differs 
from 
‘/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug-check’ 
from previous round

build of /gnu/store/0ri0xdaqb03mk33ii2irwp8ps1vaih0q-gnucash-3.8.drv failed
View build log at 
'/var/log/guix/drvs/0r/i0xdaqb03mk33ii2irwp8ps1vaih0q-gnucash-3.8.drv.bz2'.

note: keeping build directory `/tmp/guix-build-gnucash-3.8.drv-0'
guix install: error: build of 
`/gnu/store/0ri0xdaqb03mk33ii2irwp8ps1vaih0q-gnucash-3.8.drv' failed


Diff gives this:

diff /gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug 
/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug-check
Common subdirectories: 
/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug/lib and 
/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug-check/lib
Only in 
/gnu/store/i5g5scdn9ic90lq4qfrhjlb8gpkijxpv-gnucash-3.8-debug-check: share


Marinus Savoritias






bug#43850: cuirass: inconsistent SQL queries execution time.

2020-10-20 Thread Mathieu Othacehe


Hello,

> this should improve the situation, even if I still observe some
> inconsistent execution duration.

I tried to use the two following pragma:

--8<---cut here---start->8---
PRAGMA synchronous = OFF
PRAGMA mmap_size = 10737418240
--8<---cut here---end--->8---

hoping that mmaping the Cuirass database and disabling synchronisation
would help, but there were still inconsistent duration.

I have now copied the database to a tmpfs mounted directory to make sure
that those inconsistent duration are only caused by the I/O pressure on
berlin.

Thanks,

Mathieu





bug#44096: failed to build wesnoth

2020-10-20 Thread Tobias Geerinckx-Rice via Bug reports for GNU Guix

By the way, this common message from GCC is not ideal for us:


Adam Kandur via Bug reports for GNU Guix 写道:

c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.


People are impatient and read only ‘Please submit a full bug 
report’ or, if they do read on, could be forgiven for missing a 
different gnu.org subdomain or thinking ‘I already know how to 
report Guix bugs, thanks’.


Oh well.

Kind regards,

T G-R


signature.asc
Description: PGP signature


bug#44097: Gnucash not reproducible

2020-10-20 Thread zimoun
Dear,

On Tue, 20 Oct 2020 at 12:53, Marinus Savoritias
 wrote:
>
> The command that i am using to install gnucash is this:
>
> guix install --fallback --rounds=3 --cores=1 --max-jobs=1 --keep-failed
> gnucash

Which Guix version are you using (guix describe)?  And which architecture?
Because I am not able to reproduce.

--8<---cut here---start->8---
guix build gnucash
guix build gnucash --no-grafts --check
[...]
successfully built /gnu/store/9swxd2l6f91fhqhjx9sfyh4shndiwzs3-gnucash-3.8.drv
successfully built /gnu/store/9swxd2l6f91fhqhjx9sfyh4shndiwzs3-gnucash-3.8.drv
successfully built /gnu/store/9swxd2l6f91fhqhjx9sfyh4shndiwzs3-gnucash-3.8.drv
/gnu/store/z5jqanqq7xk6mkwh5f6pd8hv6xl5lbl5-gnucash-3.8-debug
/gnu/store/cr2gams99qiv1iqh9qy88f40kys6q3wp-gnucash-3.8-doc
/gnu/store/d5g6ww6m26sxk688hz6h0s3zpvkpgh0a-gnucash-3.8
--8<---cut here---end--->8---


All the best,
simon





bug#43890: ‘package-input-rewriting/spec’ can introduce unnecessary variants

2020-10-20 Thread Ludovic Courtès
Ludovic Courtès  skribis:

> Consider this example:
>
> $ guix describe
> Generacio 162 Oct 01 2020 00:23:38(nuna)
>   guix 7607ace
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: 7607ace5091aea0157ba5c8a508129cc5fc4f931
> $ guix build inkscape --no-grafts -d
> /gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
> $ guix build inkscape --no-grafts -d --with-graft=glib=glib-networking
> /gnu/store/zd8mm3w6x9c97anfaly77fz28s5y3i5h-inkscape-1.0.1.drv
> $ guix build inkscape --no-grafts -d --with-graft=libreoffice=abiword
> /gnu/store/arjs5hb4wmy6dh5d3y8bbs808ki9abf8-inkscape-1.0.1.drv
>
> The last one is fine: it has no effect.
>
> The second one is problematic: since we’re using ‘--no-grafts’, the
> ‘--with-graft’ option should have absolutely no effect; yet, it yields a
> different derivation.

Fixed in 8db4ebb0cd9bfdcf1aea63eb8d20eb6af0c87c93.  \o/

It makes ‘--with-debug-info’ more practical.

The difficulty is to find out where the difference is and what piece of
code introduced a non-eq?-but-equal package.  Likewise, the test suite
catches corner cases that can take a while to address.

Related to that, commit 6b4663363c061071c10209f71aed1017a241af6c deletes
duplicates in ‘bag->derivation’, which should make the whole thing less
sensitive to the introduction of non-eq?-but-equal packages in the
graph.

Ludo’.





bug#44098: [freecad-0.18.4] Compilation failed

2020-10-20 Thread Ekaitz Zarraga
Hi,

I had errors compiling freecad.

I'm in this commit of guix:
6ea61b4818b355cab66e4f0931ce0314368e4abb

Errors are not clear in the build output.
I've found error messages around the following issues:

- In configure step: mpi.h, shiboken2, pyside2 and pysidetools2 are not found
- The pyside related errors produce some error later in compilation step: 
/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/sh: 
PYSIDE2RCCBINARY-NOTFOUND: command not found

I can't see the real reason for the compilation to stop because the log 
messages are huge and mixed.

Can you reproduce the issues?

Thanks,
Ekaitz






bug#44101: Unable to use /dev/disk/by-id/ symlinks with u-boot and guix system reconfigure

2020-10-20 Thread Vagrant Cascadian
It appears that:

  b97b423e3f61c80d5877dadc95b3f316cd61788f bootloader: Fix u-boot
  installation.

Breaks using a /dev/disk/by-id/ symlink in the bootloader target field
on systems using u-boot with "guix system reconfigure".

Frustratingly, It claims to succeed with bootloader installation, but
does not actually install u-boot to the device... when updating to the
new version of u-boot, I had to manually install the new version.


Using a raw device (e.g. /dev/mmcblk1) still works, but those devices
are not necessarily enumerated in a consistent order and so cannot be
used in a config.scm with guix system reliably.


Reverting that patch fixes using the /dev/disk symlink, though probably
breaks other use-cases.


I'm writing this from memory now, but I can also boot the machines at a
later point and get the exact configurations, if needed.


live well,
  vagrant


signature.asc
Description: PGP signature


bug#43448: FreeCAD fails to compile

2020-10-20 Thread Malte Frank Gerdes
zimoun  writes:

> Dear,
>
> On Wed, 16 Sep 2020 at 13:58, Malte Frank Gerdes  
> wrote:
>
>> it seems that FreeCAD fails to compile because it can't find the mpi
>> library even though it's in the inputs. Same is true for
>> python-pyside-2, python-pyside-2-tools and python-shiboken-2.
>
> [...]
>
>> MPI just generates a warning
>>
>> -- Checking for one of the modules 'ompi-cxx'
>> CMake Warning at CMakeLists.txt:745 (message):
>>   mpi.h was not found.  Check for error above.
>>
>> but the build fails with no direct error message (i didn't find one),
>> and tried to link against mpi (that's why i'm guessing it has something
>> to do with it).
>
> Thank you for your feedback and pointing this out.
>
>>From the Guix Data Service [1], something wrong is happening to
> FreeCAD.  The last substituable FreeCAD v1.8.0 is given by the commit
> 9bc516bada71e1437d73971584bff5e72e053dbe:
>
>guix time-machine –commit=9bc516bada71e1437d73971584bff5e72e053dbe \
> -- weather freecad
>
> All the best,
> simon
>
> [1] 
> 

Many apologies, i completely missed your answer! :/

The same thing got reported as #44098, is it possible to merge those
issues?

I'm currently looking into the freecad source to find out what's
happening.


Malte





bug#43448: FreeCAD fails to compile

2020-10-20 Thread zimoun
Dear,

On Tue, 20 Oct 2020 at 19:09, Malte Frank Gerdes
 wrote:

> Many apologies, i completely missed your answer! :/

Hum? 4 days do seem not missed. :-D


> The same thing got reported as #44098, is it possible to merge those
> issues?

Please give a look at:



Basically, you need to send to  the message containing:

merge 43448 44098
thanks

(I never know if the order matters even if the doc says "reflexive,
transitive and symmetric". :-))

All the best,
simon





bug#43448: FreeCAD fails to compile

2020-10-20 Thread Malte Frank Gerdes
zimoun  writes:

> Dear,
>
> On Tue, 20 Oct 2020 at 19:09, Malte Frank Gerdes
>  wrote:
>
>> Many apologies, i completely missed your answer! :/
>
> Hum? 4 days do seem not missed. :-D
Ehhm, you're right i haven't noticed the date. It just feels like it was
a long long itme ago :-P


>> The same thing got reported as #44098, is it possible to merge those
>> issues?
>
> Please give a look at:
>
> 
>
> Basically, you need to send to  the message 
> containing:
>
> merge 43448 44098
> thanks
>
> (I never know if the order matters even if the doc says "reflexive,
> transitive and symmetric". :-))
Then let's see if it works :-)


> All the best,
> simon


Malte





bug#44104: guix publish should publish public key

2020-10-20 Thread Amar M. Singh
Guix Publish should also give you the key for the server.

 "Hi, Guix Publish speaking. Here is the authorization key"

Thanks,

Right now this is what i'm trying to work around.





bug#43448: FreeCAD fails to compile

2020-10-20 Thread Malte Frank Gerdes
This patch defines the include paths for shiboken2, pyside2 and includes
the locations of the pyside2-tools binaries.

There's now another error:

--8<---cut here---start->8---
[ 69%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/WidgetFactory.cpp.o
cd /tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui && 
/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin/c++  
-DBOOST_ALL_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK 
-DBOOST_REGEX_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_THREAD_DYN_LINK 
-DBUILD_ADDONMGR -DCMAKE_BUILD_TYPE=\"RelWithDebInfo\" -DFreeCADGui_EXPORTS 
-DHAVE_CONFIG_H -DHAVE_PYSIDE2 -DHAVE_SHIBOKEN2 -DHAVE_TBB 
-DOCC_CONVERT_SIGNALS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG 
-DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_UITOOLS_LIB 
-DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_XML_LIB -DSPNAV_FOUND -D_OCC64 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src 
-I/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src 
-I/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src/Gui 
-I/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src/Gui/Quarter 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui 
-I/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src/Gui/.. 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/.. 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/Language 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/propertyeditor 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/TaskView 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/Quarter 
-I/tmp/guix-build-freecad-0.18.4.drv-0/build/src/Gui/DAGView 
-I/gnu/store/azmwdwavv9r08zvzp200y8c6hkm0dsrr-eigen-3.3.7/include/eigen3 
-I/gnu/store/q9rm8h9imazsq2c4qiv2yjpvlvliywqb-python-3.8.2/include/python3.8 
-I/gnu/store/hcpcfn6b25ja5hdlvcw3flnapzhi7k3i-python-pyside-2-5.14.2.3/include/QtCore
 
-I/gnu/store/hcpcfn6b25ja5hdlvcw3flnapzhi7k3i-python-pyside-2-5.14.2.3/include/QtGui
 
-I/gnu/store/hcpcfn6b25ja5hdlvcw3flnapzhi7k3i-python-pyside-2-5.14.2.3/include/QtWidgets
 -isystem /gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtCore 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/lib/qt5/mkspecs/linux-g++
 -isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtWidgets 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtGui 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtOpenGL 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtPrintSupport
 -isystem /gnu/store/kvn3ip3aziw15yn2jv6ka7s1x1v2y7p4-qtsvg-5.14.2/include/qt5 
-isystem 
/gnu/store/kvn3ip3aziw15yn2jv6ka7s1x1v2y7p4-qtsvg-5.14.2/include/qt5/QtSvg 
-isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtNetwork 
-isystem /gnu/store/yqrjvsn778ydl6pc1p463alljhczxw8i-qttools-5.14.2/include/qt5 
-isystem 
/gnu/store/yqrjvsn778ydl6pc1p463alljhczxw8i-qttools-5.14.2/include/qt5/QtUiTools
 -isystem 
/gnu/store/wajjrym3vyidi21zjcs6r8ad9xgxfj3k-qtx11extras-5.14.2/include/qt5 
-isystem 
/gnu/store/wajjrym3vyidi21zjcs6r8ad9xgxfj3k-qtx11extras-5.14.2/include/qt5/QtX11Extras
 -isystem 
/gnu/store/kg1bc1ghars6qnw6zlc4igml2nqfbiy7-qtbase-5.14.2/include/qt5/QtXml  
-Wall -Wextra -Wno-write-strings  -std=c++11 -D_OCC64 -O2 -g -DNDEBUG -fPIC   
-pthread -fPIC -o CMakeFiles/FreeCADGui.dir/WidgetFactory.cpp.o -c 
/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src/Gui/WidgetFactory.cpp
/tmp/guix-build-freecad-0.18.4.drv-0/freecad-0.18.4-checkout/src/Gui/WidgetFactory.cpp:79:11:
 fatal error: basewrapper.h: No such file or directory
 # include 
   ^~~
compilation terminated.
make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/build.make:4659: 
src/Gui/CMakeFiles/FreeCADGui.dir/WidgetFactory.cpp.o] Error 1
make -f src/Mod/Inspection/App/CMakeFiles/Inspection.dir/build.make 
src/Mod/Inspection/App/CMakeFiles/Inspection.dir/depend
make[2]: *** Waiting for unfinished jobs
make[2]: Entering directory '/tmp/guix-build-freecad-0.18.4.drv-0/build'
--8<---cut here---end--->8---

This is what needs to be looked into next.


Malte

diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 2a7dfe470f..3c1f6a98f3 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2481,7 +2481,19 @@ full programmatic control over your models.")
(list
 "-DBUILD_QT5=ON"
 (string-append "-DCMAKE_INSTALL_LIBDIR="
-   (assoc-ref %outputs "out") "/lib"))
+   (assoc-ref %outputs "out") "/lib")
+(string-append "-DPYSIDE2UICBINARY="
+   (assoc-ref %build-inputs "python-pyside-

bug#43893: [PATCH v3] maint: update-guix-package: Prevent accidentally breaking guix pull.

2020-10-20 Thread Ludovic Courtès
Hi Maxim,

Maxim Cournoyer  skribis:

>  (define (main . args)
>(match args
>  ((commit version)
> - (with-store store
> -   (let* ((source   (add-to-store store
> -  "guix-checkout" ;dummy name
> -  #t "sha256" %top-srcdir
> -  #:select? version-controlled?))
> -  (hash (query-path-hash store source))
> + (with-directory-excursion %top-srcdir
> +   (or (getenv "GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT")
> +   (commit-already-pushed? (find-origin-remote) commit)
> +   (leave (G_ "Commit ~a is not pushed upstream.  Aborting.~%") 
> commit))
> +   (let* ((hash (with-temporary-git-worktree commit
> +(nix-base32-string->bytevector
> + (string-trim-both
> +  (with-output-to-string
> + (lambda ()
> +   (guix-hash "-rx" ".")))
>(location (package-definition-location))
>(old-hash (content-hash-value
> -  (origin-hash (package-source guix)
> + (origin-hash (package-source guix)
>   (edit-expression location
>(update-definition commit hash
>   #:old-hash old-hash
> - #:version version))
> -
> - ;; Re-add SOURCE to the store, but this time under the real name 
> used
> - ;; in the 'origin'.  This allows us to build the package without
> - ;; having to make a real checkout; thus, it also works when working
> - ;; on a private branch.
> - (reload-module
> -  (resolve-module '(gnu packages package-management)))
> -
> - (let* ((source (add-to-store store
> -  (origin-file-name (package-source 
> guix))
> -  #t "sha256" source))
> -(root   (store-path-package-name source)))
> -
> -   ;; Add an indirect GC root for SOURCE in the current directory.
> -   (false-if-exception (delete-file root))
> -   (symlink source root)
> -   (add-indirect-root store
> -  (string-append (getcwd) "/" root))
> -
> -   (format #t "source code for commit ~a: ~a (GC root: ~a)~%"
> -   commit source root)

I realize it was maybe enough to wrap this whole portion (starting from
“Re-add SOURCE”) in (unless (getenv
"GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT") …)?  Running ‘guix build guix’
would have forced the source derivation to be built.

Anyhow, thanks for working on it!

Ludo’, who’s always wary of shelling out.





bug#43984: `--with-graft=...` doesn't work with packages of different length name/version

2020-10-20 Thread Ludovic Courtès
Hi,

pkill9  skribis:

>> All I’m saying is that nothing can be done when the new name is longer
>> than the old one: we just cannot graft.
>
> If a symlink is used though, it wouldn't matter if the new name is
> longer, the symlink would point to the new package, and the name of the
> symlink would match the length of the old package.

But who would refer to that symlink?  The thing on which the graft is
applied can only refer to the store item that has the right length.

Ludo’.





bug#43984: `--with-graft=...` doesn't work with packages of different length name/version

2020-10-20 Thread Mark H Weaver
Hi Ludovic,

Ludovic Courtès  writes:

> pkill9  skribis:
>
>>> All I’m saying is that nothing can be done when the new name is longer
>>> than the old one: we just cannot graft.
>>
>> If a symlink is used though, it wouldn't matter if the new name is
>> longer, the symlink would point to the new package, and the name of the
>> symlink would match the length of the old package.
>
> But who would refer to that symlink?  The thing on which the graft is
> applied can only refer to the store item that has the right length.

If I understand correctly, pkill9's idea is that intermediate symlink(s)
(presumably one for each output of the replacement package) would have
the same length as the original store item, but could point to a
replacement store item of greater length.

For example, whereas now we must *build* our replacement libx11 with
munged version number "1.6.A", under pkill9's approach we could instead
build it with normal version number "1.6.10", and only the intermediate
symlink(s) would have their names munged to fit within the original
length limit.  The grafting process would then rewrite the original
store references to point to the symlink(s).

An advantage to this approach is that the replacement packages would no
longer need to have their version numbers munged, which would be more
aesthetically pleasing and perhaps less confusing for users.  The lack
of munging might also make the replacement package more attractive for
_direct_ usage as a package input by non-core packages that need the
newer version of the replaced package for other reasons.

Disadvantages include potentially slower file system lookups in the
replaced packages, and added complexity in Guix.

I don't have an opinion on this, but I wanted to at least try to clarify
the idea that pkill9 is proposing.

 Regards,
   Mark





bug#43893: [PATCH v3] maint: update-guix-package: Prevent accidentally breaking guix pull.

2020-10-20 Thread Maxim Cournoyer
Hello Ludovic,

Ludovic Courtès  writes:

> Hi Maxim,
>
> Maxim Cournoyer  skribis:
>
>>  (define (main . args)
>>(match args
>>  ((commit version)
>> - (with-store store
>> -   (let* ((source   (add-to-store store
>> -  "guix-checkout" ;dummy name
>> -  #t "sha256" %top-srcdir
>> -  #:select? version-controlled?))
>> -  (hash (query-path-hash store source))
>> + (with-directory-excursion %top-srcdir
>> +   (or (getenv "GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT")
>> +   (commit-already-pushed? (find-origin-remote) commit)
>> +   (leave (G_ "Commit ~a is not pushed upstream.  Aborting.~%") 
>> commit))
>> +   (let* ((hash (with-temporary-git-worktree commit
>> +(nix-base32-string->bytevector
>> + (string-trim-both
>> +  (with-output-to-string
>> +(lambda ()
>> +  (guix-hash "-rx" ".")))
>>(location (package-definition-location))
>>(old-hash (content-hash-value
>> -  (origin-hash (package-source guix)
>> + (origin-hash (package-source guix)
>>   (edit-expression location
>>(update-definition commit hash
>>   #:old-hash old-hash
>> - #:version version))
>> -
>> - ;; Re-add SOURCE to the store, but this time under the real name 
>> used
>> - ;; in the 'origin'.  This allows us to build the package without
>> - ;; having to make a real checkout; thus, it also works when working
>> - ;; on a private branch.
>> - (reload-module
>> -  (resolve-module '(gnu packages package-management)))
>> -
>> - (let* ((source (add-to-store store
>> -  (origin-file-name (package-source 
>> guix))
>> -  #t "sha256" source))
>> -(root   (store-path-package-name source)))
>> -
>> -   ;; Add an indirect GC root for SOURCE in the current directory.
>> -   (false-if-exception (delete-file root))
>> -   (symlink source root)
>> -   (add-indirect-root store
>> -  (string-append (getcwd) "/" root))
>> -
>> -   (format #t "source code for commit ~a: ~a (GC root: ~a)~%"
>> -   commit source root)
>
> I realize it was maybe enough to wrap this whole portion (starting from
> “Re-add SOURCE”) in (unless (getenv
> "GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT") …)?  Running ‘guix build guix’
> would have forced the source derivation to be built.
>
> Anyhow, thanks for working on it!

Sorry, I'm a bit lost.  Are you suggesting that we should restore the
code following the ;; Re-add SOURCE [...], but wrapped with unless to
make it conditional to GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT being
defined?  That part depends on SOURCE, a store file name, which we don't
have anymore since we no longer add the sources to the store to compute
the hash.

We could add the sources to the store from the clean checkout, but I
thought one great thing about the patch was that it removed interactions
with the store, allowing for the source derivations to happen normally
when testing with 'guix build guix' (previously you'd have had to 'guix
build guix --check', as the store had silently been pre-populated with
the sources).  I see value in using the usual mechanism to get the
source rather than a side-channel, optimization hack, as it will help
ensuring correctness.

Perhaps I misunderstood your point?

Thank you,

Maxim





bug#44081: qtbase strips debug info from the debug output

2020-10-20 Thread Maxim Cournoyer
Hello,

Malte Frank Gerdes  writes:

> Hi,
>
> i'm trying to get debug symbols for qt related packages. I noticed that
> those inherit from qtsvg which itself inherits from qtbase. The
> behaviour that i see is: before the stripping phase all objects have
> debugging info and afterwards even the separate debug files don't have
> them anymore.

You want to use the staging branch of Guix, as it already includes a
debug output for qtbase and related packages (which inherits from its
definition).

Possibly what was missing from your experiment was the
"--force-debug-info" configure option that prevents the Qt build system
from stripping the debug symbols (the otherwise default behavior).  You
can inspect commit ab6fe9d3620 to see how it was done.

Hope that helps,

Maxim





bug#44081: qtbase strips debug info from the debug output

2020-10-20 Thread Maxim Cournoyer
Maxim Cournoyer  writes:

> Hello,
>
> Malte Frank Gerdes  writes:
>
>> Hi,
>>
>> i'm trying to get debug symbols for qt related packages. I noticed that
>> those inherit from qtsvg which itself inherits from qtbase. The
>> behaviour that i see is: before the stripping phase all objects have
>> debugging info and afterwards even the separate debug files don't have
>> them anymore.
>
> You want to use the staging branch of Guix, as it already includes a
> debug output for qtbase and related packages (which inherits from its
> definition).
>
> Possibly what was missing from your experiment was the
> "--force-debug-info" configure option that prevents the Qt build system
> from stripping the debug symbols (the otherwise default behavior).  You
> can inspect commit ab6fe9d3620 to see how it was done.
>
> Hope that helps,
>
> Maxim





bug#43783: ssh-copy-id: line 254: /dev/null`: Permission denied

2020-10-20 Thread Maxim Cournoyer
Hello,

Nathan Dehnel  writes:

> ssh-copy-id errors out and then does not install the key
>
> bash-5.0$ ssh-copy-id pi@raspberrypi
> /home/nathan/.guix-profile/bin/ssh-copy-id: INFO: attempting to log in with
> the new key(s), to filter out any that are already installed
> /home/nathan/.guix-profile/bin/ssh-copy-id: INFO: 2 key(s) remain to be
> installed -- if you are prompted now it is to install the new keys
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 251: warning:
> here-document at line 251 delimited by end-of-file (wanted `EOF')
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 250: warning:
> here-document at line 250 delimited by end-of-file (wanted `EOF')
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 254: /dev/null`:
> Permission denied
> /home/nathan/.guix-profile/bin/ssh-copy-id: line 260: EOF: command not found
> pi@raspberrypi's password:
>
> Number of key(s) added: 2
>
> Now try logging into the machine, with:   "ssh 'pi@raspberrypi'"
> and check to make sure that only the key(s) you wanted were added.

Could this be specific to the raspberrypi?  I cannot reproduce such
problem using a remote Guix System.  But I just tried using a Buildroot
target I had on hand, and I could reproduce something similar:

--8<---cut here---start->8---
$ ssh-copy-id target
/home/maxim/.guix-profile/bin/ssh-copy-id: INFO: attempting to log in with the 
new key(s), to filter out any that are already installed
/home/maxim/.guix-profile/bin/ssh-copy-id: INFO: 1 key(s) remain to be 
installed -- if you are prompted now it is to install the new keys
/home/maxim/.guix-profile/bin/ssh-copy-id: line 251: warning: here-document at 
line 251 delimited by end-of-file (wanted `EOF')
/home/maxim/.guix-profile/bin/ssh-copy-id: line 250: warning: here-document at 
line 250 delimited by end-of-file (wanted `EOF')
mkdir: cannot create directory ‘/etc/dropbear’: Permission denied
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: Permanently added '10.42.0.243' (ECDSA) to the list of known hosts.
root@10.42.0.243's password: 
-sh: ssh-rsa: not found
--8<---cut here---end--->8---

I think it probably has to do with the script not finding the tools it
expects on the minimal (embedded) environments of the
Rasperrypi/Buildroot.  I'll try to have a closer look soon.

Thanks,

Maxim





bug#42115: ruby-bond fails its test suite, breaking ruby-iruby

2020-10-20 Thread Maxim Cournoyer
Hello,

Maxim Cournoyer  writes:

> Hello,
>
> The test suite of the ruby-bond package fails with 14 errors like the 
> following:
>
> Mocha::NotInitializedError: Mocha methods cannot be used outside the context 
> of a test
> /tmp/guix-build-ruby-bond-0.5.1.drv-0/gem/test/bond_test.rb:9:in 
> `block (3 levels) in ': start - prints error if readline 
> doesn't have all required methods
> 
> /gnu/store/9dshwx1qqrdyhsj2galh70g5l427p6f9-ruby-mocha-on-bacon-0.2.3/lib/ruby/vendor_ruby/gems/mocha-on-bacon-0.2.3/lib/mocha-on-bacon.rb:54:in
>  `it'
> /tmp/guix-build-ruby-bond-0.5.1.drv-0/gem/test/bond_test.rb:10:in 
> `block (2 levels) in '
> 
> /gnu/store/ch5i4pvyx1mfywpnby5xd7w0qs9qnvsm-ruby-bacon-bits-0.1.0/lib/ruby/vendor_ruby/gems/bacon-bits-0.1.0/lib/bacon/bits.rb:20:in
>  `describe'
> /tmp/guix-build-ruby-bond-0.5.1.drv-0/gem/test/bond_test.rb:4:in 
> `block in '
> /tmp/guix-build-ruby-bond-0.5.1.drv-0/gem/test/bond_test.rb:3:in 
> `'
> 
> /gnu/store/cnwb1jaj8imfqwkw047jc20kh7vw3lwk-ruby-bacon-1.2.0/bin/.real/bacon:23:in
>  `load'
> 
> /gnu/store/cnwb1jaj8imfqwkw047jc20kh7vw3lwk-ruby-bacon-1.2.0/bin/.real/bacon:23:in
> `
>
> 230 tests, 476 assertions, 0 failures, 14 errors
>
> Tested with commit 8fdd0da49c81366a2061da35739cede3df107e15, but occurs
> on master as well.
>
> Maxim

Mitigated in commit 18a29cb361.

Closing,

Maxim





bug#41932: make check failures

2020-10-20 Thread Maxim Cournoyer
Hello!

Ludovic Courtès  writes:

> Hi Simen,
>
> Thanks for your report.  Some explanations follow:
>
> Simen Endsjø  skribis:
>
>> test-name: channel-news, one entry
>> location: /home/simendsjo/code/guix/tests/channels.scm:318
>> source:
>> + (test-assert
>> +   "channel-news, one entry"
>> +   (with-temporary-git-repository
>> + directory
>> + `((add ".guix-channel"
>> +,(object->string
>> +   '(channel (version 0) (news-file "news.scm"
>> +   (commit "first commit")
>> +   (add "src/a.txt" "A")
>> +   (commit "second commit")
>> +   (tag "tag-for-first-news-entry")
>> +   (add "news.scm"
>> +,(lambda (repository)
>> +   (let ((previous
>> +   (reference-name->oid repository "HEAD")))
>> + (object->string
>> +   `(channel-news
>> +  (version 0)
>> +  (entry (commit ,(oid->string previous))
>> + (title (en "New file!") (eo "Nova
>> dosiero!"))
>> + (body (en "Yeah, a.txt."
>> +   (commit "third commit")
>> +   (add "src/b.txt" "B")
>> +   (commit "fourth commit")
>> +   (add "news.scm"
>> +,(lambda (repository)
>> +   (let ((second
>> +   (commit-id
>> + (find-commit repository "second commit")))
>> + (previous
>> +   (reference-name->oid repository "HEAD")))
>> + (object->string
>> +   `(channel-news
>> +  (version 0)
>> +  (entry (commit ,(oid->string previous))
>> + (title (en "Another file!"))
>> + (body (en "Yeah, b.txt.")))
>> +  (entry (tag "tag-for-first-news-entry")
>> + (title (en "Old news.") (eo
>> "Malnova?oj."))
>
> Seems you’re missing a UTF-8 locale, which causes this test to fail.
>
>> test-name: signed commits, SHA1 signature
>> location: /home/simendsjo/code/guix/tests/git-authenticate.scm:60
>> source:
>> + (test-assert
>> +   "signed commits, SHA1 signature"
>> +   (with-fresh-gnupg-setup
>> + (list %ed25519-public-key-file
>> +   %ed25519-secret-key-file)
>> + (call-with-output-file
>> +   (string-append (getenv "GNUPGHOME") "/gpg.conf")
>> +   (lambda (port) (display "digest-algo sha1" port)))
>> + (with-temporary-git-repository
>> +   directory
>> +   `((add "a.txt" "A")
>> + (add "signer.key"
>> +  ,(call-with-input-file
>> + %ed25519-public-key-file
>> + get-string-all))
>> + (add ".guix-authorizations"
>> +  ,(object->string
>> + `(authorizations
>> +(version 0)
>> +((,(key-fingerprint %ed25519-public-key-file)
>> +  (name "Charlie"))
>> + (commit
>> +   "first commit"
>> +   (signer
>> + ,(key-fingerprint %ed25519-public-key-file
>> +   (with-repository
>> + directory
>> + repository
>> + (let ((commit (find-commit repository "first")))
>> +   (guard (c ((unsigned-commit-error? c)
>> +  (oid=? (git-authentication-error-commit c)
>> + (commit-id commit
>> +  (authenticate-commits
>> +repository
>> +(list commit)
>> +#:keyring-reference
>> +"master")
>> +  'failed))
>> actual-value: #f
>> actual-error:
>> + (%exception
>> +   #<&invoke-error program: "gpg" arguments: ("--import"
>> "/home/simendsjo/code/guix/tests/ed25519.key") exit-status: 127
>> term-signal: #f stop-signal: #f>)
>> result: FAIL
>
> Looks like ‘gpg’ is missing from $PATH.  The test should have been
> skipped, but there was a typo; fixed now.
>
>> + set -e
>> + guix environment --version
>> guix environment (GNU Guix) 1.0.1.18382-e418c
>> Copyright (C) 2020 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> 
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> + guile -c '((@@ (guix scripts environment)
>> assert-container-features))'
>> Backtrace:
>> In ice-9/boot-9.scm:
>>  1736:10  8 (with-exception-handler _ _ #:unwind? _ # _)
>> In unknown file:
>>   7 (apply-smob/0 #)
>> In ice-9/boot-9.scm:
>>718:2  6 (call-with-prompt _ _ #> default-prompt-handle?>)
>> In ice-9/eval.scm:
>>619:8  5 (_ #(#(#)))
>> In ice-9/command-line.scm:
>>   185:18  4 (_ #)
>> In unknown file:
>>   3 (eval ((@@ (guix scripts environment) #)) #> (?>)
>> In ice-9/eval.scm:
>>   182:19  2 (proc #f)
>>   142:16  1 (compile-top-call #f (5 (gu

bug#41525: CVE-2020-12762: json-c

2020-10-20 Thread Maxim Cournoyer
Hello,

Lars-Dominik Braun  writes:

> Hi,
>
> our package json-c is vulnerable to CVE-2020-12762[1]. Be careful when
> applying the “fix”, since it broke a lot of packages on Ubuntu and
> Gentoo[2] in the past week.
>
> Lars
>
> [1] https://nvd.nist.gov/vuln/detail/CVE-2020-12762
> [2] https://bugs.gentoo.org/722150

Thanks for the report!

This was fixed by Efraim on the 6th of August, with commit
10b40489742bdaa0d193c00dff1446b11c081f6a.

Closing,

Maxim





bug#44104: [patch] guix/scripts/publish: share signing key

2020-10-20 Thread Amar M. Singh

Add procedure (render-signing-key) and use it to serve the signing key.

Cheers

>From 554416649b7400d0bbe440016c6a6a7fed0d870a Mon Sep 17 00:00:00 2001
From: Amar Singh 
Date: Wed, 21 Oct 2020 02:02:02 +0530
Subject: [PATCH] guix publish: We provide signing key. Knock yourselves out!

Best in industry.

Signed-off-by: Amar Singh 
---
 guix/scripts/publish.scm | 18 +-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm
index 4eaf961ab2..19df6d50ff 100644
--- a/guix/scripts/publish.scm
+++ b/guix/scripts/publish.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 David Thompson 
+;;; Copyright (C) 2020 by Amar M. Singh 
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès 
 ;;;
 ;;; This file is part of GNU Guix.
@@ -686,6 +687,13 @@ to compress or decompress the log file; just return it as-is."
 (values (response-headers log) log)
 (not-found request
 
+(define (render-signing-key)
+  "Render signing key."
+  (let ((file "/etc/guix/signing-key.pub"))
+(values `((content-type . (text/plain (charset . "UTF-8")))
+  (x-raw-file . ,file))
+file)))
+
 (define (render-home-page request)
   "Render the home page."
   (values `((content-type . (text/html (charset . "UTF-8"
@@ -699,7 +707,12 @@ to compress or decompress the log file; just return it as-is."
(a (@ (href
   "https://guix.gnu.org/manual/en/html_node/Invoking-guix-publish.html";))
   (tt "guix publish"))
-   " speaking.  Welcome!")))
+   " speaking.  Welcome!")
+(p "Here is the "
+   (a (@ (href
+  "signing-key.pub"))
+  (tt "signing key"))
+   " for this server. Knock yourselves out!")))
  port)
 
 (define (extract-narinfo-hash str)
@@ -918,6 +931,9 @@ methods, return the applicable compression."
   ;; /
   ((or () ("index.html"))
(render-home-page request))
+  ;; guix signing-key
+  (("signing-key.pub")
+   (render-signing-key))
   ;; /.narinfo
   (((= extract-narinfo-hash (? string? hash)))
(if cache
-- 
2.28.0