Re: [PATCHv2] lint: add 'source' checker.

2015-01-15 Thread Ludovic Courtès
Cyril Roelandt  skribis:

> * guix/scripts/lint.scm (validate-uri?): New procedure.
>   (%checkers): Add 'home-page' checker
  ^
Typo.

> +(define (check-source package)
> +  "Emit a warning if PACKAGE has an invalid 'source' field, or if that
> +'source' is not reachable."
> +  (let ((origin (package-source package)))
> +(when (and origin
> +   (eqv? (origin-method origin) url-fetch))
> +  (let* ((strings (origin-uri origin))
> + (uris (if (list? strings)
> +   (map string->uri strings)
> +   (list (string->uri strings)
> +   (for-each
> + (match-lambda
> +  ((? uri? uri)
> +   (validate-uri uri package 'source))
> +  (_ (error "internal linter error")))

Just:

  (for-each (cut validate-uri <> package 'source) ...)

> + (concatenate (map (lambda (uri)
> + (maybe-expand-mirrors uri %mirrors))
> +   uris)))

Here:

  (append-map (cut maybe-expand-mirrors <> %mirrors) uris)

OK to push with these changes, thank you!

The next step is to improve ‘probe-uri’ to handle FTP.

Ludo’.



Re: gobject-introspection typelibs and shared libraries

2015-01-15 Thread Ludovic Courtès
Federico Beffa  skribis:

> A different look at aesthetics: Back in the mid '90, when Linux was
> still an underground curiosity, many UNIX admins were starting to
> install GNU user-land applications. To avoid name clashes with the
> vendor versions of programs they were prefixing all GNU applications
> with a 'g'. So, the GNU version of 'ls' was named 'gls', 'awk' ->
> 'gawk', ...  Now on GNU/Linux systems there's no need for such
> prefixing and, for consistency and to send a message, you may just
> name the C compiler with the traditional name 'cc' which means: Hey,
> this is the official system C compiler and of course, it's the GNU
> one.

Yeah, and I see that GCC installs ‘c++’.

If there’s consensus to install the symlink, that’s fine with me (if we
take that route, I would also suggest submitting a patch upstream so GCC
installs the symlink.)

It’s a rebuild-the-world change, though, so it would be for the next
‘core-updates’ cycle.  In the meantime, it’s ‘gcc’.

WDYT?

Thanks,
Ludo’.



Re: [PATCH] gnu: Add IPython

2015-01-15 Thread Ludovic Courtès
Federico Beffa  skribis:

> From 9e2cf5788e613e28086c4c5430d5820e912ab840 Mon Sep 17 00:00:00 2001
> From: Federico Beffa 
> Date: Fri, 19 Dec 2014 17:29:39 +0100
> Subject: [PATCH] gnu: Add IPython.
>
> * gnu/packages/python.scm (python-ipython, python2-ipython): New variable.

LGTM, thanks!

Ludo’.



Re: [PATCH]: Add CUPS.

2015-01-15 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> From a78114013bdbbff310014815cb47abd38bb0c59c Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Wed, 14 Jan 2015 14:47:37 +0100
> Subject: [PATCH 1/2] gnu: Add IJS
>
> * gnu/packages/ghostscript.scm (ijs): New variable.

[...]

> +(define-public ijs
> +  (package
> +   (name "ijs")
> +   (version "9.14.0")
> +   (source (origin
> +(method url-fetch)
> +(uri (string-append "mirror://gnu/ghostscript/gnu-ghostscript-"
> +version ".tar.xz"))
> +(sha256 (base32
> + 
> "0q4jj41p0qbr4mgcc9q78f5zs8cm1g57wgryhsm2yq4lfslm3ib1"
> +   (build-system gnu-build-system)
> +   (native-inputs
> +`(("libtool",libtool "bin")
> +  ("libtool",libtool "out")
> +  ("automake"   ,automake)
> +  ("autoconf"   ,autoconf)))

I’m surprised ,(autoconf-wrapper) isn’t needed rather than ,autoconf
(the former has shebangs of generated files patched appropriately.)  But
if it works this way, OK to push.

> From 72a50808f1b2d3f391b5da688bfe0b841d95af30 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Mon, 5 Jan 2015 13:56:51 +0100
> Subject: [PATCH 2/2] gnu: Add CUPS.
>
> * gnu/packages/cups.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

LGTM.

Thank you!

Ludo’.



[PATCH] gnu: Add IPython

2015-01-15 Thread Federico Beffa
Please find attached a patch for ipython.

Regards,
Fede
From 9e2cf5788e613e28086c4c5430d5820e912ab840 Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Fri, 19 Dec 2014 17:29:39 +0100
Subject: [PATCH] gnu: Add IPython.

* gnu/packages/python.scm (python-ipython, python2-ipython): New variable.
---
 gnu/packages/python.scm | 85 +
 1 file changed, 85 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f81ab69..ad41973 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -2688,3 +2688,88 @@ PNG, PostScript, PDF, and SVG file output.")
 (define-public python2-cairocffi
   (package-with-python2 python-cairocffi))
 
+(define-public python-ipython
+  (package
+(name "python-ipython")
+(version "2.3.1")
+(source
+ (origin
+  (method url-fetch)
+  (uri (string-append "https://pypi.python.org/packages/source/i/";
+  "ipython/ipython-" version ".tar.gz"))
+  (sha256
+   (base32 "1764gi5m3ff481rjk336cw6i2h4zlc0nxam9rc5m8m7yl9m4d61y"
+(build-system python-build-system)
+(outputs '("out" "doc"))
+;; FIXME: add optional dependencies when available: pyzmq, tornado, ...
+(inputs
+ `(("readline" ,readline)
+   ("python-matplotlib" ,python-matplotlib)
+   ("python-numpy" ,python-numpy-bootstrap)
+   ("python-numpydoc" ,python-numpydoc)
+   ("python-nose" ,python-nose)))
+(native-inputs
+ `(("pkg-config" ,pkg-config)
+   ("python-sphinx" ,python-sphinx)
+   ("texlive" ,texlive)
+   ("texinfo" ,texinfo)
+   ("python-setuptools" ,python-setuptools)))
+(arguments
+ `(#:phases 
+   (alist-cons-after
+'install 'install-doc
+(lambda* (#:key inputs outputs #:allow-other-keys)
+  (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (html (string-append doc "/html"))
+ (man1 (string-append data "/man/man1"))
+ (info (string-append data "/info"))
+ (examples (string-append doc "/examples")))
+(setenv "LANG" "en_US.UTF-8")
+(with-directory-excursion "docs"
+  ;; FIXME: html and pdf fail to build without optional pyzmq
+  ;(system* "make" "html")
+  ;(system* "make" "pdf" "PAPER=a4")
+  (system* "make" "info"))
+(copy-recursively "docs/man" man1)
+(copy-recursively "examples" examples)
+;; (copy-recursively "docs/build/html" html)
+;; (copy-file "docs/build/latex/ipython.pdf"
+;;(string-append doc "/ipython.pdf"))
+(mkdir-p info)
+(copy-file "docs/build/texinfo/ipython.info"
+   (string-append info "/ipython.info"))
+(copy-file "COPYING.rst" (string-append doc "/COPYING.rst"
+;; Tests can only be run after the library has been installed and not
+;; within the source directory.
+(alist-cons-after
+ 'install 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+   ;; The test procedure appears to miss the fact that some optional
+   ;; dependencies are missing.
+   ;; (with-directory-excursion "/tmp"
+   ;;   (zero? (system* (string-append (assoc-ref outputs "out")
+   ;;  "/bin/iptest"
+   #t)
+ (alist-delete 
+  'check 
+  %standard-phases)
+(home-page "http://ipython.org";)
+(synopsis "IPython is a tool for interactive computing in Python")
+(description
+ "IPython provides a rich architecture for interactive computing with:
+Powerful interactive shells, a browser-based notebook, support for interactive
+data visualization, embeddable interpreters and tools for parallel
+computing.")
+(license bsd-3)))
+
+(define-public python2-ipython
+  (let ((ipython (package-with-python2 python-ipython)))
+(package (inherit ipython)
+  ;; Make sure we use custom python2-NAME packages.
+  (inputs 
+   `(("python2-numpydoc" ,python2-numpydoc)
+ ("python2-matplotlib" ,python2-matplotlib)
+ ,@(alist-delete "python-numpydoc"
+ (alist-delete "python-matplotlib"
+   (package-inputs ipython
-- 
1.8.4



Re: Invalid nar signature

2015-01-15 Thread Thompson, David
On Thu, Jan 15, 2015 at 11:22 AM, Ludovic Courtès  wrote:
> "Thompson, David"  skribis:
>
>> On Thu, Jan 15, 2015 at 4:51 AM, Ludovic Courtès  wrote:
>>> (web server http) does not use threads so it should be OK.  But we’ll
>>> see that afterwards.  :-)
>>
>> Ah, okay.  Even so, requiring a single-threaded application in order
>> to use compressed/decompressed ports makes hacking on 'guix publish'
>> inconvenient, as it eliminates use of the REPL.
>
> Agreed.  We’ll probably need libbz2 bindings at some point.

I was about to go down that road last night. ;)

- Dave



Re: [PATCH]: Add CUPS.

2015-01-15 Thread Ricardo Wurmus
> It might be clearer and also easier (because all of %standard-phases
> would be readily usable) to make ijs a separate package, similar to the
> libtool/libltdl split.  WDYT?

Agreed.  I made it a separate package.

>> From 8e671fdd888bf9548bf52acf8789500c90d4b072 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Wed, 7 Jan 2015 17:49:00 +0100
>> Subject: [PATCH 1/3] gnu: Add QPDF.
>>
>> * gnu/packages/pdf.scm (qpdf): New variable.
>
> LGTM.

Thanks, I applied this patch in master.

>> From d42e6a3233b7c5142d1c91d8c2b1c751b74bd444 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus 
>> Date: Mon, 5 Jan 2015 13:56:51 +0100
>> Subject: [PATCH 3/3] gnu: Add CUPS.
>>
>> * gnu/packages/cups.scm: New file.
>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
>
> [...]
>
>> + "--with-gnu-ld"
>
> I suspect this is not needed; ./configure should be able to determine it
> automatically.
>
>> + "--disable-static"
>
> Why?  By default we let packages provide both .so and .a files.

Okay, removed those two.

>> +   #:phases
>> +   (alist-cons-before
>> +'configure
>> +'patch-target-dirs
>> +(lambda _
>> +  (let ((out (assoc-ref %outputs "out")))
>> +;; install backends, banners and filters to cups-filters output
>> +;; directory, not the cups server directory
>> +(substitute* "Makefile.in"
>> +  (("CUPS_DATADIR = @CUPS_DATADIR@")
>> +   (string-append "CUPS_DATADIR = " out "/share/cups"))
>> +  (("pkgcupsserverrootdir = \\$\\(CUPS_SERVERROOT\\)")
>> +   (string-append "pkgcupsserverrootdir = " out))
>> +  (("pkgbackenddir = \\$\\(CUPS_SERVERBIN\\)/backend")
>> +   (string-append "pkgbackenddir = "
>> +  out
>> +  "/backend"))
>> +  (("pkgfilterdir = \\$\\(CUPS_SERVERBIN\\)/filter")
>> +   (string-append "pkgfilterdir = "
>> +  out
>> +  "/filter")
>
> Could you make this phase a ‘snippet’, by using a literal “$(prefix)” or
> “@prefix” instead of ‘out’?

This is now a snippet using $(PREFIX).

>> +;; see COPYING for details
>> +(license (list license:gpl2
>> +   license:gpl2+
>> +   license:gpl3
>> +   license:gpl3+
>> +   license:lgpl2.0+
>> +   license:expat
>
> Could you augment the comment to mention what this license list means?
> Each filter has its own license, or something like that?

Done.  The exact license mapping is a bit complicated, so the comment
still isn't quite as helpful as it probably could be.

>> +(define-public cups-minimal
>> +  (package
>> +(name "cups-minimal")
>
> Could you add a comment with the explanation that you gave in this
> message as to why it is needed?

Done.

>> +(define-public cups
>> +  (package
>> +(name "cups")
>
> I think this should inherit from ‘cups-minimal’, and just change the
> ‘name’ and ‘arguments’ fields.  WDYT?


"cups" now inherits from "cups-minimal".

>> +(synopsis "CUPS printing system")
>
> What about “The Common Unix Printing System”?
>
>> +(description
>> + "CUPS printing system provides a portable printing layer for UNIX®
>> +operating systems.  It has been developed by Apple Inc. to promote a 
>> standard
>> +printing solution for all UNIX vendors and users.  CUPS provides the System 
>> V
>> +and Berkeley command-line interfaces.")
>
> What about this (based on README.txt):
>
>   CUPS is a printing system that uses the Internet Printing Protocol
>   (IPP).  It provides System V and BSD command-line interfaces, as well
>   as a Web interface and a C programming interface to manage printers
>   and print jobs.  It supports printing to both local (parallel, serial,
>   USB) and networked printers, and printers can be shared from one
>   computer to another.  Internally, CUPS uses PostScript Printer
>   Description (PPD) files to describe printer capabilities and features
>   and a wide variety of generic and device-specific programs to convert
>   and print many types of files.

I updated both synopsis and description.

Attached are the two remaining patches.

-- Ricardo


>From a78114013bdbbff310014815cb47abd38bb0c59c Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Wed, 14 Jan 2015 14:47:37 +0100
Subject: [PATCH 1/2] gnu: Add IJS

* gnu/packages/ghostscript.scm (ijs): New variable.
---
 gnu/packages/ghostscript.scm | 46 
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 405b4e7..3100f8a 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge 
 ;;; Copyright © 2014 Mark H Weaver 
+;;; Copyright © 2015 Ricardo Wu

Re: Invalid nar signature

2015-01-15 Thread Ludovic Courtès
"Thompson, David"  skribis:

> On Thu, Jan 15, 2015 at 4:51 AM, Ludovic Courtès  wrote:
>> David Thompson  skribis:
>>
>>> Despite that, I tried to compress the nar with bzip2 just for fun, but I
>>> ran into another problem:
>>>
>>>   warning: call to primitive-fork while multiple threads are running;
>>>further behavior unspecified.  See "Processes" in the
>>>manual, for more information.
>>>
>>> I'm running a REPL server in addition to the web server, but I imagine
>>> the web server also spawns additional threads to handle requests, so
>>> either way 'filtered-output-port' won't work here.
>>
>> (web server http) does not use threads so it should be OK.  But we’ll
>> see that afterwards.  :-)
>
> Ah, okay.  Even so, requiring a single-threaded application in order
> to use compressed/decompressed ports makes hacking on 'guix publish'
> inconvenient, as it eliminates use of the REPL.

Agreed.  We’ll probably need libbz2 bindings at some point.

Ludo’.



Re: Invalid nar signature

2015-01-15 Thread Thompson, David
On Thu, Jan 15, 2015 at 4:51 AM, Ludovic Courtès  wrote:
> David Thompson  skribis:
>
>> Despite that, I tried to compress the nar with bzip2 just for fun, but I
>> ran into another problem:
>>
>>   warning: call to primitive-fork while multiple threads are running;
>>further behavior unspecified.  See "Processes" in the
>>manual, for more information.
>>
>> I'm running a REPL server in addition to the web server, but I imagine
>> the web server also spawns additional threads to handle requests, so
>> either way 'filtered-output-port' won't work here.
>
> (web server http) does not use threads so it should be OK.  But we’ll
> see that afterwards.  :-)

Ah, okay.  Even so, requiring a single-threaded application in order
to use compressed/decompressed ports makes hacking on 'guix publish'
inconvenient, as it eliminates use of the REPL.  But sure, we'll deal
with this afterwards.

- Dave



Re: [PATCH] gnu: Add ninja.

2015-01-15 Thread 宋文武
Mark H Weaver  writes:

> l...@gnu.org (Ludovic Courtès) writes:
>
>> 宋文武  skribis:
>>
>>> * gnu/packages/ninja.scm: New file.
>>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
>>
>> [...]
>>
>>> +  'check
>>> +  (lambda _
>>> +(and (zero? (system "./configure.py"))
>>> + (zero? (system "./ninja ninja_test"))
>>> + ;; SubprocessTest.InterruptChild fail when using 
>>> 'system*'.
>>> + ;; SubprocessTest.SetWithLots was skipped.
>>> + ;; XXX: Raise [ulimit -n] well above 1025 to make this 
>>> test go.
>>
>> Does it mean that the test is currently failing?
>
> This test failed during the core-updates x86_64 build on Hydra.  We get:
>
>   [166/183] SubprocessTest.InterruptChild
>   *** Failure in src/subprocess_test.cc:83
>   ExitInterrupted == subproc->Finish()
>
> In the hopes that it might be a transient failure, I restarted the
> build, but the second time it failed in the same place.  See:
>
>   http://hydra.gnu.org/build/201077/nixlog/1/raw
>   http://hydra.gnu.org/build/201077/nixlog/2/raw
>
> It seems that using 'system' instead of 'system*' wasn't enough to make
> it work reliably.  Can you take another look?
OK, I pushed a patch to disable the test.
>
> Thanks for your contributions!
>
>   Mark



Re: Invalid nar signature

2015-01-15 Thread Ludovic Courtès
David Thompson  skribis:

> Ludovic Courtès  writes:

[...]

>>   2. strace the substituter and/or ‘guix publish’ to see exactly what
>>  happens on the wire.  Is the end-of-file marker string sent?  Is it
>>  received?  etc.
>
> Here's a snippet of the strace output:
>
>   
> http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0
>   94.1% of 127.5 KiB) = 104
>   read(10, "vector tox-max-status-message-le"..., 7728) = 117
>   read(10, ""..., 7611) = 1448
>   read(10, "t-last-online (unwrap-tox tox) f"..., 6163) = 1448
>   read(10, "tox tox) nospam))\n\n(define/unwra"..., 4715) = 1448
>   read(10, " friend-number group-number)))\n\n"..., 3267) = 1448
>   read(10, ")))\n(if (negative? result)\n "..., 1819) = 1819
>   
> http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0
>  100.0% of 127.5 KiB) = 104
>   
> http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0
>  100.0% of 127.5 KiB) = 104
>   brk(0x41875000) = 0x41875000
>   mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
> = 0x7f3d2aaaf000
>   mremap(0x7f3d2aaaf000, 135168, 266240, MREMAP_MAYMOVE) = 0x7f3d2aa6e000
>   mremap(0x7f3d2aa6e000, 266240, 528384, MREMAP_MAYMOVE) = 0x7f3d2a9ed000
>   mremap(0x7f3d2a9ed000, 528384, 430080, MREMAP_MAYMOVE) = 0x7f3d2a9ed000
>   munmap(0x7f3d2a9ed000, 430080)  = 0
>   
> http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0
>  100.0% of 127.5 KiB) = 104
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US.UTF-8/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US.utf8/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en.UTF-8/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en.utf8/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   
> open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en/LC_MESSAGES/guix.mo",
>  O_RDONLY) = -1 ENOENT (No such file or directory)
>   write(2, "guix substitute-binary: error: i"..., 62guix substitute-binary: 
> error: invalid nar end-of-file marker
>   ) = 62
>   exit_group(1)   = ?
>   +++ exited with 1 +++

Normally, when the error happens, the substituter has already created at
least one file in the target directory,
/gnu/store/iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0.

Could you apply the patch below, and then run:

  rm -rf foo
  ./pre-inst-env guix substitute-binary --substitute \
/gnu/store/iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0 \
$PWD/foo > stdout
  ls -lRa foo > ls-R

and then send ‘stdout’ and ‘ls-R’?

Could you also check if the files in ‘foo’ look corrupt or anything?

diff --git a/guix/serialization.scm b/guix/serialization.scm
index 64eacf9..d3bdea3 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -292,19 +292,21 @@ Restore it as FILE."
 (define (read-eof-marker)
   (match (read-string port)
 (")" #t)
-(x (raise
+(x
+ (pk 'bad-eof x)
+ (raise
 (condition
  (&message (message "invalid nar end-of-file marker"))
  (&nar-read-error (port port) (file file) (token x)))
 
 (match (list (read-string port) (read-string port) (read-string port))
   (("(" "type" "regular")
-   (call-with-output-file file (cut read-contents port <>))
+   (call-with-output-file (pk 'reg file) (cut read-contents port <>))
(read-eof-marker))
   (("(" "type" "symlink")
(match (list (read-string port) (read-string port))
  (("target" target)
-  (symlink target file)
+  (symlink target (pk 'symlink file))
   (read-eof-marker))
  (x (raise
  (condition
@@ -312,7 +314,7 @@ Restore it as FILE."
   (&nar-read-error (port port) (file file) (token x)))
   (("(" "type" "directory")
(let ((dir file))
- (mkdir dir)
+ (mkdir (pk 'dir dir))
  (let loop ((prefix (read-string port)))
(match prefix
  ("entry"


> Despite that, I tried to compress the nar with bzip2 just for fun, but I
> ran into another problem:
>
>   warning: call to primitive-fork while multiple threads are running;
>further behavior unspecified.  See "Processes" in the
>manual, fo

Re: gobject-introspection typelibs and shared libraries

2015-01-15 Thread Federico Beffa
On Wed, Jan 14, 2015 at 9:43 PM, Ludovic Courtès  wrote:
>>> So far we’ve resisted the temptation, and it’s rarely been an issue.
>>> :-)
>>
>> Could you elaborate on the down sides? (I'm not trying to insist, but to 
>> learn.)
>
> Basically it’s good to stick to what GCC does, and GCC does not install
> ‘cc’.  There’s a subjective aesthetic downside: it’s good to spread the
> ‘g’.  And also, it turns out to work for 99% of the packages.

OK, I thought you were referring to technical reasons...

A different look at aesthetics: Back in the mid '90, when Linux was
still an underground curiosity, many UNIX admins were starting to
install GNU user-land applications. To avoid name clashes with the
vendor versions of programs they were prefixing all GNU applications
with a 'g'. So, the GNU version of 'ls' was named 'gls', 'awk' ->
'gawk', ...  Now on GNU/Linux systems there's no need for such
prefixing and, for consistency and to send a message, you may just
name the C compiler with the traditional name 'cc' which means: Hey,
this is the official system C compiler and of course, it's the GNU
one.

Regards,
Fede



Re: wip-gobject-introspection

2015-01-15 Thread Federico Beffa
On Wed, Jan 14, 2015 at 9:51 PM, Ludovic Courtès  wrote:
> Given that core-updates will soon be fully built (hopefully within 24h)
> and ready to be merged, I would prefer to wait until that is done, and
> then rebase wip-gobject-introspection on it and get it built.
>
> How does that sound?

Sounds good to me. Just be warned that there may be other packages to
update/adjust.

Regards,
Fede