* Packaging Inferno @ 2018-10-05 8:11 Diego Nicola Barbato 2018-10-07 9:49 ` Efraim Flashner 2018-10-08 13:00 ` Ludovic Courtès 0 siblings, 2 replies; 12+ messages in thread From: Diego Nicola Barbato @ 2018-10-05 8:11 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 687 bytes --] Hello Guix, I have written a package definition for Inferno and I would like to know if it would make sense to add it to Guix. I am asking because I am not sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) and if it would be of any use to anyone. It builds reproducibly on my Laptop (x86_64-linux). I have not tried to build it on any of the other (supposedly) supported architectures. For now the recipe has to be passed to `guix build' or `guix package' using the `-f' option but I would be glad to add it to a module (e.g. (gnu packages virtualization), or a module of its own) and send a patch if it is decided that it belongs in Guix. Greetings, Diego [-- Attachment #2: inferno-trivial.scm --] [-- Type: application/octet-stream, Size: 8075 bytes --] (use-modules (ice-9 match) (guix packages) (guix git-download) (guix hg-download) (guix build-system trivial) ((guix licenses) #:prefix license:) (gnu packages base) (gnu packages bash) (gnu packages commencement) (gnu packages compression) (gnu packages gawk) (gnu packages xorg)) (let ((commit "62ae0f7") (revision "0")) (package (name "inferno") (version (git-version "4" revision commit)) (source (origin (method hg-fetch) (uri (hg-reference (url "https://bitbucket.org/inferno-os/inferno-os") (changeset commit))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "18irka9qad8m1r2m9f56glv9d0gwk4ai7n7i0mzbi47vcmm60hdd")) ;; Remove bundled proprietary fonts. (modules '((guix build utils))) (snippet '(begin (for-each delete-file-recursively '("fonts/lucidasans" "fonts/pelm" "fonts/lucida" "fonts/lucm")) #t)))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) ("coreutils" ,coreutils) ("grep" ,grep) ("sed" ,sed) ("awk" ,gawk) ("xz" ,xz) ("tar" ,tar) ("gcc-toolchain" ,gcc-toolchain) )) (inputs `(("libx11" ,libx11) ("xorgproto" ,xorgproto) ("libxext" ,libxext))) (arguments `(;; Force a 32-bit build targeting a similar architecture, i.e.: ;; armhf for armhf/aarch64, i686 for i686/x86_64. #:system ,@(match (%current-system) ((or "armhf-linux" "aarch64-linux") `("armhf-linux")) (_ `("i686-linux"))) #:modules ((guix build utils)) #:builder (begin (use-modules (guix build utils)) (let* ((out (assoc-ref %outputs "out")) (root (string-append out "/usr/inferno")) (bindir (string-append out "/bin")) (infwm-script (string-append bindir "/infwm")) (source (assoc-ref %build-inputs "source")) (bash (assoc-ref %build-inputs "bash")) (xz (assoc-ref %build-inputs "xz")) (tar (assoc-ref %build-inputs "tar")) (gcc-tc (assoc-ref %build-inputs "gcc-toolchain")) (cutils (assoc-ref %build-inputs "coreutils")) (grep (assoc-ref %build-inputs "grep")) (sed (assoc-ref %build-inputs "sed")) (awk (assoc-ref %build-inputs "awk")) (libx11 (assoc-ref %build-inputs "libx11")) (xorgproto (assoc-ref %build-inputs "xorgproto")) (libxext (assoc-ref %build-inputs "libxext")) (objtype ,@(match (%current-system) ((or "armhf-linux" "aarch64-linux") `("arm")) (_ `("386"))))) ;; set paths (set-path-environment-variable "PATH" '("bin") (list gcc-tc cutils grep sed awk xz tar)) (set-path-environment-variable "CPATH" '("include") (list gcc-tc libx11 xorgproto libxext)) (set-path-environment-variable "LIBRARY_PATH" '("lib") (list gcc-tc libx11 libxext)) ;; extract source (mkdir-p root) (invoke "tar" "xvf" source "-C" root "--strip=1" "-m") ;; build inside of root as the source tree doubles as ;; inferno's root file system and its path is baked into ;; the emu binary (with-directory-excursion root ;; substitute ocurrences of /bin/sh (for-each (lambda (file) (substitute* file (("/bin/sh") (string-append bash "/bin/sh")))) '("makemk.sh" "mkfiles/mkhost-Linux" "emu/Linux/mk-wrt" "utils/mk/Posix.c")) ;; configure (substitute* "mkconfig" (("ROOT=/usr/inferno") (string-append "ROOT=" root)) (("SYSHOST=Plan9") "SYSHOST=Linux") (("OBJTYPE=\\$objtype") (string-append "OBJTYPE=" objtype))) ;; substitute occurences of cc ;; TODO: verify this is not a problem on arm (substitute* "mkfiles/mkfile-Linux-386" (("cc -") ; don't match yacc "gcc -")) ;; Make build reproducible by ensuring timestamps ;; embedded into binaries are set to 0 (substitute* "emu/Linux/mkfile" (("^KERNDATE=.*$") "KERNDATE=0\n")) ;; build mk (invoke "./makemk.sh") ;; add mk's location to PATH (setenv "PATH" (string-append root "/Linux/" objtype "/bin:" (getenv "PATH"))) ;; build emu and .dis files using mk (invoke "mk" "-s" "nuke" "mkdirs" "install") ;; install infwm script (mkdir-p bindir) (with-output-to-file infwm-script (lambda () (display (string-append "#!" bash "/bin/sh\n" "exec " root "/Linux/" objtype "/bin/emu $* " "/dis/sh.dis -c \"" "bind -bc '#U*/tmp' /tmp; " ; bind the host's /tmp to inferno's /tmp "bind '#U*/home' /usr; " ; bind the host's /home to inferno's /usr "wm/wm wm/logon -u $USER" ; launch the window manager and login as $USER "\"\n")))) (chmod infwm-script #o755) ;; install a symlink to emu (symlink (string-append root "/Linux/" objtype "/bin/emu") (string-append bindir "/emu"))))))) (home-page "http://www.inferno-os.org") (synopsis "Compact operating system for building cross-platform distributed systems") (description "Inferno is a virtualised operating system that can run natively across a wide range of processor architectures or hosted on a wide range of operating systems. The principal components of the system are: @itemize @item The Inferno kernel which can run both native and hosted on a range of platforms and which presents the same interface to programs in both cases. @item The Dis virtual machine. @item Styx - the tiny broad-spectrum file service protocol. @item Limbo - a new simple, modular, concurrent programming language. @item Tk and Prefab - graphical user interface (GUI) primitives without a lot of goo. @item The portable cross-development suites that allow any native Inferno platform to be cross-compiled on any hosted system. @end itemize This package provides hosted Inferno.\n") (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux" "aarch64-linux")) (license license:gpl2+))) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-05 8:11 Packaging Inferno Diego Nicola Barbato @ 2018-10-07 9:49 ` Efraim Flashner 2018-10-11 13:30 ` Diego Nicola Barbato 2018-10-08 13:00 ` Ludovic Courtès 1 sibling, 1 reply; 12+ messages in thread From: Efraim Flashner @ 2018-10-07 9:49 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel [-- Attachment #1.1: Type: text/plain, Size: 1287 bytes --] On Fri, Oct 05, 2018 at 10:11:54AM +0200, Diego Nicola Barbato wrote: > Hello Guix, > > I have written a package definition for Inferno and I would like to know > if it would make sense to add it to Guix. I am asking because I am not > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) > and if it would be of any use to anyone. > > It builds reproducibly on my Laptop (x86_64-linux). I have not tried to > build it on any of the other (supposedly) supported architectures. > > For now the recipe has to be passed to `guix build' or `guix package' > using the `-f' option but I would be glad to add it to a module > (e.g. (gnu packages virtualization), or a module of its own) and send a > patch if it is decided that it belongs in Guix. > > Greetings, > > Diego > Not a big fan of using the trivial build system for something that ends up with this many lines, but I built it on my aarch64 board and here's the diff I came up with to make it work. I didn't look into the source at all other than making it build. -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #1.2: inferno-arm.diff --] [-- Type: text/plain, Size: 331 bytes --] 116a117,119 > ;; don't pass '-m32' unconditionally > (substitute* "makemk.sh" > (("-m32") "")) 126d128 < ;; TODO: verify this is not a problem on arm 129a132,133 > (substitute* "mkfiles/mkfile-Linux-arm" > (("arm-gcc") "gcc")) 182a187 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-07 9:49 ` Efraim Flashner @ 2018-10-11 13:30 ` Diego Nicola Barbato 2018-10-11 13:44 ` Efraim Flashner 0 siblings, 1 reply; 12+ messages in thread From: Diego Nicola Barbato @ 2018-10-11 13:30 UTC (permalink / raw) To: Efraim Flashner; +Cc: guix-devel Hello Efraim, Efraim Flashner <efraim@flashner.co.il> writes: > Not a big fan of using the trivial build system for something that ends > up with this many lines, but I built it on my aarch64 board and here's > the diff I came up with to make it work. Thanks for your feedback and especially for testing it on aarch64. I am currently rewriting the definition using the ‘gnu-build-system’. Since I am going to include your modifications, should I add a copyright line for you? (I am asking since I am relatively new to this and I am not sure how such things are handled correctly.) Greetings, Diego ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-11 13:30 ` Diego Nicola Barbato @ 2018-10-11 13:44 ` Efraim Flashner 0 siblings, 0 replies; 12+ messages in thread From: Efraim Flashner @ 2018-10-11 13:44 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1117 bytes --] On Thu, Oct 11, 2018 at 03:30:07PM +0200, Diego Nicola Barbato wrote: > Hello Efraim, > > Efraim Flashner <efraim@flashner.co.il> writes: > > > Not a big fan of using the trivial build system for something that ends > > up with this many lines, but I built it on my aarch64 board and here's > > the diff I came up with to make it work. > > Thanks for your feedback and especially for testing it on aarch64. I am > currently rewriting the definition using the ‘gnu-build-system’. > > Since I am going to include your modifications, should I add a copyright > line for you? (I am asking since I am relatively new to this and I am > not sure how such things are handled correctly.) > I may already have a copyright line in the file, I'm not sure. But either way I'm ok with no attribution, I see it more as "I've tested it out on my board(s)" and less of "I've contributed". -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-05 8:11 Packaging Inferno Diego Nicola Barbato 2018-10-07 9:49 ` Efraim Flashner @ 2018-10-08 13:00 ` Ludovic Courtès 2018-10-08 13:47 ` Nils Gillmann 1 sibling, 1 reply; 12+ messages in thread From: Ludovic Courtès @ 2018-10-08 13:00 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel Hello Diego, Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > I have written a package definition for Inferno and I would like to know > if it would make sense to add it to Guix. I am asking because I am not > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) > and if it would be of any use to anyone. Removing the proprietary(?) fonts like you did sounds like the right thing to do. As for trademarks, please see <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> to determine whether there’s a problem at all. Could you also check whether all the code is GPLv2+ like the ‘license’ field suggests? Do I get it right that the build result is a script that launches Inferno as a GNU/Linux process? It seems like it could be useful. Some comments about the package definition: > (build-system trivial-build-system) > (native-inputs `(("bash" ,bash) > ("coreutils" ,coreutils) > ("grep" ,grep) > ("sed" ,sed) > ("awk" ,gawk) > ("xz" ,xz) > ("tar" ,tar) > ("gcc-toolchain" ,gcc-toolchain) )) > (inputs `(("libx11" ,libx11) > ("xorgproto" ,xorgproto) > ("libxext" ,libxext))) Like Efraim wrote, I think using ‘gnu-build-system’ would allow you to simplify the package definition. > ;; build mk > (invoke "./makemk.sh") It would be ideal if we had a separate package for ‘mk’ (I suppose it can run on POSIX systems, right?). Once you’ve double-checked the licensing and trademark situation, I think you can go ahead and submit it as a patch (or two patches, with ‘mk’ separately). Thanks! Ludo’. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-08 13:00 ` Ludovic Courtès @ 2018-10-08 13:47 ` Nils Gillmann 2018-10-09 17:09 ` Diego Nicola Barbato 0 siblings, 1 reply; 12+ messages in thread From: Nils Gillmann @ 2018-10-08 13:47 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel, Diego Nicola Barbato Ludovic Courtès transcribed 1.9K bytes: > Hello Diego, > > Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > > > I have written a package definition for Inferno and I would like to know > > if it would make sense to add it to Guix. I am asking because I am not > > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) > > and if it would be of any use to anyone. > > Removing the proprietary(?) fonts like you did sounds like the right > thing to do. As for trademarks, please see > <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> > to determine whether there’s a problem at all. > > Could you also check whether all the code is GPLv2+ like the ‘license’ > field suggests? > > Do I get it right that the build result is a script that launches > Inferno as a GNU/Linux process? It seems like it could be useful. > > Some comments about the package definition: > > > (build-system trivial-build-system) > > (native-inputs `(("bash" ,bash) > > ("coreutils" ,coreutils) > > ("grep" ,grep) > > ("sed" ,sed) > > ("awk" ,gawk) > > ("xz" ,xz) > > ("tar" ,tar) > > ("gcc-toolchain" ,gcc-toolchain) )) > > (inputs `(("libx11" ,libx11) > > ("xorgproto" ,xorgproto) > > ("libxext" ,libxext))) > > Like Efraim wrote, I think using ‘gnu-build-system’ would allow you to > simplify the package definition. > > > ;; build mk > > (invoke "./makemk.sh") > > It would be ideal if we had a separate package for ‘mk’ (I suppose it > can run on POSIX systems, right?). I can finish my mk package and send it in. My mk is the canonical set of mk files as used by bmake. Sources are from http://crufty.net/help/sjg/mk-files.htm and/or places linked from there. If this matches the mk mentioned here, I can create this patch. > Once you’ve double-checked the licensing and trademark situation, I > think you can go ahead and submit it as a patch (or two patches, with > ‘mk’ separately). > > Thanks! > > Ludo’. > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-08 13:47 ` Nils Gillmann @ 2018-10-09 17:09 ` Diego Nicola Barbato 2018-10-09 17:55 ` Nils Gillmann 2018-10-16 12:03 ` Ludovic Courtès 0 siblings, 2 replies; 12+ messages in thread From: Diego Nicola Barbato @ 2018-10-09 17:09 UTC (permalink / raw) To: Ludovic Courtès, Nils Gillmann; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 4717 bytes --] Hello, Thank you for your feedback. Nils Gillmann <ng0@n0.is> writes: > Ludovic Courtès transcribed 1.9K bytes: >> Hello Diego, >> >> Diego Nicola Barbato <dnbarbato@posteo.de> skribis: >> >> > I have written a package definition for Inferno and I would like to know >> > if it would make sense to add it to Guix. I am asking because I am not >> > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) >> > and if it would be of any use to anyone. >> >> Removing the proprietary(?) fonts like you did sounds like the right @Ludo: The fonts I removed are copyright Bigelow & Holmes. They are licensed in a way that forbids them from being modified and distributed except as part of Inferno (or software derived from Inferno) [1]. >> thing to do. As for trademarks, please see >> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> >> to determine whether there’s a problem at all. @Ludo: Judging from the link there seems to be no problem with the trademarks after all. The bundled fonts (the ones I did not remove), however, are provided in a format native to Inferno (and Plan 9) and can not be rebuilt from source, which might be a problem according to this [2] thread. >> Could you also check whether all the code is GPLv2+ like the ‘license’ >> field suggests? @Ludo: According to the NOTICE files scattered through the source tree and the Inferno home page [3] different parts of Inferno are licensed under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02 and Freetype. Am I right to assume that I have to mention all of them in the ‘license’ field even though the NOTICE in the root of the source tree [4] says that the "collection" is governed by the GPLv2+? I could not find the Lucent Public License [5] in the (guix licenses) module. Should I add it or should I use ‘non-copyleft’? >> Do I get it right that the build result is a script that launches >> Inferno as a GNU/Linux process? It seems like it could be useful. @Ludo: That is right. I got the script from here [6]. It starts the window manager and logs in as the current user; it is supposed to provide a convenient entry point to start exploring the system. Alongside this script in %out/bin/ there is also a symlink to the emu binary which is installed by ‘mk install’ under %out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines). This directory contains several other executables. I am considering making some of them (like the Limbo compiler) available under %out/bin in the same way as emu. >> Some comments about the package definition: >> >> > (build-system trivial-build-system) >> > (native-inputs `(("bash" ,bash) >> > ("coreutils" ,coreutils) >> > ("grep" ,grep) >> > ("sed" ,sed) >> > ("awk" ,gawk) >> > ("xz" ,xz) >> > ("tar" ,tar) >> > ("gcc-toolchain" ,gcc-toolchain) )) >> > (inputs `(("libx11" ,libx11) >> > ("xorgproto" ,xorgproto) >> > ("libxext" ,libxext))) >> >> Like Efraim wrote, I think using ‘gnu-build-system’ would allow you to >> simplify the package definition. @Ludo: My first attempt at writing the package definition used ‘gnu-build-system’. I switched to ‘trivial-build-system’ when I realised that most phases in %standard-phases were ill suited for building inferno. I will try to rewrite the definition using ‘gnu-build-system’. >> > ;; build mk >> > (invoke "./makemk.sh") >> >> It would be ideal if we had a separate package for ‘mk’ (I suppose it >> can run on POSIX systems, right?). @Ludo: This is Plan 9's mk (their version of make), which, I believe, can run on POSIX systems. Though, if we were to add mk to Guix, i would rather package the one provided by Plan 9 from Userspace [7] since that project seems to be more active than Inferno. > I can finish my mk package and send it in. > My mk is the canonical set of mk files as used by bmake. > Sources are from http://crufty.net/help/sjg/mk-files.htm > and/or places linked from there. > > If this matches the mk mentioned here, I can create this patch. @Nils: Your mk package seems to be unrelated to Plan 9's mk. >> Once you’ve double-checked the licensing and trademark situation, I >> think you can go ahead and submit it as a patch (or two patches, with >> ‘mk’ separately). >> >> Thanks! >> >> Ludo’. >> Greetings, Diego [1]: [-- Attachment #2: LICENCE --] [-- Type: application/octet-stream, Size: 3757 bytes --] FONT LICENCE This applies only to those fonts that are copyright Bigelow & Holmes. You MAY NOT: - make an ADAPTATION of files that are copyright Bigelow & Holmes found in the Inferno distribution (``FONT SOFTWARE''). - distribute FONT SOFTWARE except as part of a larger software distribution incorporating the Inferno system software (and any adaptations of it YOU may make) provided that the distribution includes minimum sub-licence terms as specified below. The FONT SOFTWARE includes Fonts and Typefaces that are licensed from Bigelow & Holmes Inc ("B&H"). YOU must include the following licence terms when distributing the Fonts or Typefaces to any sublicensee and impose the same restrictions on them in respect of any sublicence that they may grant. 1. Licence and Title This FONT LICENCE conveys a limited right to use, reproduce and distribute the Fonts and Typefaces in accordance with the terms and conditions in this FONT LICENCE and the Inferno Binary and Limited Source Licence Agreement but does not convey title or any other licences or rights which are not expressly provided relating to the Typefaces or Fonts to YOU, sublicensees or any other end users. YOU acknowledge and agree that B&H owns all proprietary rights including without limitation all intellectual property rights in the Typefaces and Fonts and derivative works. 2. B&H Trade Mark Ownership YOU acknowledge that B&H owns the entire right, title and interest in the trade marks "Lucida and Bigelow & Holmes". 3. Notices 3.1 YOU agree that all advertising, promotion, marketing and distribution in connection with this FONT LICENCE shall acknowledge and use the trade marks of B&H in such a way as to protect such trade marks. 3.2 YOU may not identify the Typefaces and Fonts by any trade mark or trade name other than "Lucida". If YOU make any reference to any of the Typefaces or Fonts in sales literature, advertising, manuals and documentation, on equipment, visual displays, printed output and image carrier labels and outer containers, such references shall include the "Lucida" trade marks together with (i) the symbol ® and (ii) the phrase "Lucida is a registered trade mark of Bigelow & Holmes Inc". 3.3 YOU shall publish notices of B&H copyright and/or design patent rights on the Image Carrier labels and diskette, tape or cartridge containers in which the Typefaces and Fonts are packaged separately from the LICENSED SOFTWARE, and in the header of files containing Typefaces or Fonts. Such notices shall be inthe following form; "Lucida and Pellucida are registered trademarks of Bigelow & Holmes Inc. Lucida® digital fonts copyright © 1985, 1986 by Bigelow & Holmes Inc". 4. B&H Rights in the Typeface Designs 4.1 YOU shall produce machine readable Raster Fonts only from Fonts provided by B&H. 4.2 YOU may not modify the Fonts or Typefaces represented by the Fonts in Style (ie. the combination of typographic design characteristics that distinguish one typeface from another), design features or in any other respect, nor add additional characters without the prior written consent of B&H. 4.3 YOU may permit the LICENSED SOFTWARE to make automatic modifications of any Typeface or Font including scaling, rotating, condensation, extension, obliquing, reversal, tinting, shadowing, outlining, or other transformations which LICENSED SOFTWARE can perform automatically. 5. Protection Against Unauthorised Reproduction 5.1 YOU shall use due care in protecting the Typeface and Font digital data YOU received against unauthorised use or reproduction. 5.2 YOU shall notify VITA NUOVA promptly in writing of any known or suspected unauthorised reproduction, use or distribution of the Fonts or Typefaces by Sublicensees, end users or others. [-- Attachment #3: Type: text/plain, Size: 125 bytes --] [2]: https://lists.gnu.org/archive/html/bug-guix/2018-10/msg00010.html [3]: http://inferno-os.org/inferno/licence.html [4]: [-- Attachment #4: NOTICE --] [-- Type: application/octet-stream, Size: 1782 bytes --] This Inferno® distribution includes software from various sources and different portions are therefore subject to different licence terms. The most stringent is the GNU Public License (version 2), which governs the collection. Individual components might have their own NOTICE and licence files (LICENCE or COPYING) that cover their content. All of them allow modification and redistribution. They are all compatible with the GPLv2. The following copyright notice covers the contents of this distribution unless otherwise specified by a given file, directory, or directory tree: Inferno® Copyright © 1996-1999 Lucent Technologies Inc. All rights reserved. Inferno revisions Copyright © 1997-1999 Vita Nuova Limited. All rights reserved. Inferno revisions Copyright © 2000-2015 Vita Nuova Holdings Limited. All rights reserved. Inferno new material Copyright © 2000-2015 Vita Nuova Holdings Limited. All rights reserved. Inferno, Styx, Dis and Limbo are registered trademarks of Vita Nuova Holdings Limited in the USA and other countries. Plan 9 is a registered trademark of Lucent Technologies Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (`GPL') as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. [-- Attachment #5: Type: text/plain, Size: 167 bytes --] [5]: https://www.gnu.org/licenses/license-list.html#lucent102 [6]: https://www.ueber.net/who/mjl/inferno/getting-started.html [7]: https://9fans.github.io/plan9port/ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-09 17:09 ` Diego Nicola Barbato @ 2018-10-09 17:55 ` Nils Gillmann 2018-10-17 17:35 ` Diego Nicola Barbato 2018-10-16 12:03 ` Ludovic Courtès 1 sibling, 1 reply; 12+ messages in thread From: Nils Gillmann @ 2018-10-09 17:55 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel Diego Nicola Barbato transcribed 12K bytes: > Hello, > > Thank you for your feedback. > > Nils Gillmann <ng0@n0.is> writes: > > > Ludovic Courtès transcribed 1.9K bytes: > >> Hello Diego, > >> > >> Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > >> > >> > I have written a package definition for Inferno and I would like to know > >> > if it would make sense to add it to Guix. I am asking because I am not > >> > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) > >> > and if it would be of any use to anyone. > >> > >> Removing the proprietary(?) fonts like you did sounds like the right > > @Ludo: The fonts I removed are copyright Bigelow & Holmes. They are > licensed in a way that forbids them from being modified and distributed > except as part of Inferno (or software derived from Inferno) [1]. > > >> thing to do. As for trademarks, please see > >> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> > >> to determine whether there’s a problem at all. > > @Ludo: Judging from the link there seems to be no problem with the > trademarks after all. The bundled fonts (the ones I did not remove), > however, are provided in a format native to Inferno (and Plan 9) and can > not be rebuilt from source, which might be a problem according to this > [2] thread. > > >> Could you also check whether all the code is GPLv2+ like the ‘license’ > >> field suggests? > > @Ludo: According to the NOTICE files scattered through the source tree > and the Inferno home page [3] different parts of Inferno are licensed > under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02 > and Freetype. > Am I right to assume that I have to mention all of them in the ‘license’ > field even though the NOTICE in the root of the source tree [4] says > that the "collection" is governed by the GPLv2+? > I could not find the Lucent Public License [5] in the (guix licenses) > module. Should I add it or should I use ‘non-copyleft’? > > >> Do I get it right that the build result is a script that launches > >> Inferno as a GNU/Linux process? It seems like it could be useful. > > @Ludo: That is right. I got the script from here [6]. It starts the > window manager and logs in as the current user; it is supposed to > provide a convenient entry point to start exploring the system. > Alongside this script in %out/bin/ there is also a symlink to the emu > binary which is installed by ‘mk install’ under > %out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines). This > directory contains several other executables. I am considering making > some of them (like the Limbo compiler) available under %out/bin in the > same way as emu. > > >> Some comments about the package definition: > >> > >> > (build-system trivial-build-system) > >> > (native-inputs `(("bash" ,bash) > >> > ("coreutils" ,coreutils) > >> > ("grep" ,grep) > >> > ("sed" ,sed) > >> > ("awk" ,gawk) > >> > ("xz" ,xz) > >> > ("tar" ,tar) > >> > ("gcc-toolchain" ,gcc-toolchain) )) > >> > (inputs `(("libx11" ,libx11) > >> > ("xorgproto" ,xorgproto) > >> > ("libxext" ,libxext))) > >> > >> Like Efraim wrote, I think using ‘gnu-build-system’ would allow you to > >> simplify the package definition. > > @Ludo: My first attempt at writing the package definition used > ‘gnu-build-system’. I switched to ‘trivial-build-system’ when I realised > that most phases in %standard-phases were ill suited for building > inferno. I will try to rewrite the definition using ‘gnu-build-system’. > > >> > ;; build mk > >> > (invoke "./makemk.sh") > >> > >> It would be ideal if we had a separate package for ‘mk’ (I suppose it > >> can run on POSIX systems, right?). > > @Ludo: This is Plan 9's mk (their version of make), which, I believe, > can run on POSIX systems. Though, if we were to add mk to Guix, i would > rather package the one provided by Plan 9 from Userspace [7] since that > project seems to be more active than Inferno. > > > I can finish my mk package and send it in. > > My mk is the canonical set of mk files as used by bmake. > > Sources are from http://crufty.net/help/sjg/mk-files.htm > > and/or places linked from there. > > > > If this matches the mk mentioned here, I can create this patch. > > @Nils: Your mk package seems to be unrelated to Plan 9's mk. Aha! I have it in 9base, which I have also packaged. At least according to the README in the 9base/mk/ folder it should be compatible. Now I don't know if we want all of 9base... I would leave analyis of that to you. If 9base on its own does not work, I can extract mk or create a package which just builds mk and gets rid of the other files. https://git.suckless.org/9base I haven't checked but would assume that differences exist between 9base (altough it states plan9 + inferno os) and inferno os mk. > >> Once you’ve double-checked the licensing and trademark situation, I > >> think you can go ahead and submit it as a patch (or two patches, with > >> ‘mk’ separately). > >> > >> Thanks! > >> > >> Ludo’. > >> > > Greetings, > > Diego > > > [1]: > > [2]: https://lists.gnu.org/archive/html/bug-guix/2018-10/msg00010.html > [3]: http://inferno-os.org/inferno/licence.html > [4]: > > [5]: https://www.gnu.org/licenses/license-list.html#lucent102 > [6]: https://www.ueber.net/who/mjl/inferno/getting-started.html > [7]: https://9fans.github.io/plan9port/ ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-09 17:55 ` Nils Gillmann @ 2018-10-17 17:35 ` Diego Nicola Barbato 0 siblings, 0 replies; 12+ messages in thread From: Diego Nicola Barbato @ 2018-10-17 17:35 UTC (permalink / raw) To: Nils Gillmann; +Cc: guix-devel Hello Nils, Nils Gillmann <ng0@n0.is> writes: > Diego Nicola Barbato transcribed 12K bytes: >> Hello, >> >> Thank you for your feedback. >> >> Nils Gillmann <ng0@n0.is> writes: >> >> > Ludovic Courtès transcribed 1.9K bytes: >> >> Hello Diego, >> >> >> >> Diego Nicola Barbato <dnbarbato@posteo.de> skribis: [...snip...] >> >> > ;; build mk >> >> > (invoke "./makemk.sh") >> >> >> >> It would be ideal if we had a separate package for ‘mk’ (I suppose it >> >> can run on POSIX systems, right?). >> >> @Ludo: This is Plan 9's mk (their version of make), which, I believe, >> can run on POSIX systems. Though, if we were to add mk to Guix, i would >> rather package the one provided by Plan 9 from Userspace [7] since that >> project seems to be more active than Inferno. >> >> > I can finish my mk package and send it in. >> > My mk is the canonical set of mk files as used by bmake. >> > Sources are from http://crufty.net/help/sjg/mk-files.htm >> > and/or places linked from there. >> > >> > If this matches the mk mentioned here, I can create this patch. >> >> @Nils: Your mk package seems to be unrelated to Plan 9's mk. > > Aha! I have it in 9base, which I have also packaged. At least according > to the README in the 9base/mk/ folder it should be compatible. > > Now I don't know if we want all of 9base... I would leave analyis of > that to you. If 9base on its own does not work, I can extract mk or > create a package which just builds mk and gets rid of the other files. > > https://git.suckless.org/9base > > I haven't checked but would assume that differences exist between > 9base (altough it states plan9 + inferno os) and inferno os mk. AFAICT it should be possible to build inferno using 9base's mk. In fact I think 9base is better suited for this purpose than Plan 9 from Userspace (plan9port), which was where I suggested we should get mk from, since it is much smaller. I can not tell from the source if it will be necessary to extract mk, so I will try to build inferno using 9base's mk as soon as you send in your patch and get back to you should I encounter any problems caused by one of the other commands provided by 9base. Thanks! Diego ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-09 17:09 ` Diego Nicola Barbato 2018-10-09 17:55 ` Nils Gillmann @ 2018-10-16 12:03 ` Ludovic Courtès 2018-10-21 13:59 ` Diego Nicola Barbato 1 sibling, 1 reply; 12+ messages in thread From: Ludovic Courtès @ 2018-10-16 12:03 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel Hi Diego, Sorry for the delay! Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > Nils Gillmann <ng0@n0.is> writes: > >> Ludovic Courtès transcribed 1.9K bytes: >>> Hello Diego, >>> >>> Diego Nicola Barbato <dnbarbato@posteo.de> skribis: >>> >>> > I have written a package definition for Inferno and I would like to know >>> > if it would make sense to add it to Guix. I am asking because I am not >>> > sure if it is compatible with the FSDG (bundled fonts, trademarks, ...) >>> > and if it would be of any use to anyone. >>> >>> Removing the proprietary(?) fonts like you did sounds like the right > > @Ludo: The fonts I removed are copyright Bigelow & Holmes. They are > licensed in a way that forbids them from being modified and distributed > except as part of Inferno (or software derived from Inferno) [1]. OK, good. >>> thing to do. As for trademarks, please see >>> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> >>> to determine whether there’s a problem at all. > > @Ludo: Judging from the link there seems to be no problem with the > trademarks after all. The bundled fonts (the ones I did not remove), > however, are provided in a format native to Inferno (and Plan 9) and can > not be rebuilt from source, which might be a problem according to this > [2] thread. Sometimes TTF files are considered source, so it really depends. Unless there’s evidence that there exists another source for these fonts, I’d say we can assume it’s fine, possibly with a comment. Do you know whether other FSDG distros and Debian provide these fonts? >>> Could you also check whether all the code is GPLv2+ like the ‘license’ >>> field suggests? > > @Ludo: According to the NOTICE files scattered through the source tree > and the Inferno home page [3] different parts of Inferno are licensed > under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02 > and Freetype. > Am I right to assume that I have to mention all of them in the ‘license’ > field even though the NOTICE in the root of the source tree [4] says > that the "collection" is governed by the GPLv2+? Yes, but you can leave a comment explaining that the combined work is effectively GPLv2+. > I could not find the Lucent Public License [5] in the (guix licenses) > module. Should I add it or should I use ‘non-copyleft’? You can use ‘non-copyleft’ in that case, with a reference to <https://www.gnu.org/licenses/license-list.html#lucent102>. Note that the page above says that the Lucent PL is incompatible with the GPL. Are we combining GPL code with Lucent code here? >>> Do I get it right that the build result is a script that launches >>> Inferno as a GNU/Linux process? It seems like it could be useful. > > @Ludo: That is right. I got the script from here [6]. It starts the > window manager and logs in as the current user; it is supposed to > provide a convenient entry point to start exploring the system. > Alongside this script in %out/bin/ there is also a symlink to the emu > binary which is installed by ‘mk install’ under > %out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines). This > directory contains several other executables. I am considering making > some of them (like the Limbo compiler) available under %out/bin in the > same way as emu. Sounds good. Note that, if possible, we should stick to the usual file system layout (that is OUT/share, OUT/lib, OUT/bin, etc. and not OUT/usr.) Though if keeping the /usr/inferno layout style is really important, we can make an exception. > @Ludo: My first attempt at writing the package definition used > ‘gnu-build-system’. I switched to ‘trivial-build-system’ when I realised > that most phases in %standard-phases were ill suited for building > inferno. I will try to rewrite the definition using ‘gnu-build-system’. OK. Note that you can always remove the unnecessary phases. >>> > ;; build mk >>> > (invoke "./makemk.sh") >>> >>> It would be ideal if we had a separate package for ‘mk’ (I suppose it >>> can run on POSIX systems, right?). > > @Ludo: This is Plan 9's mk (their version of make), which, I believe, > can run on POSIX systems. Though, if we were to add mk to Guix, i would > rather package the one provided by Plan 9 from Userspace [7] since that > project seems to be more active than Inferno. OK. That can be done separately if you prefer, in which case just leave a TODO comment about the packaging of mk from Plan 9 from Userspace. Thanks for your reply! Ludo’. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-16 12:03 ` Ludovic Courtès @ 2018-10-21 13:59 ` Diego Nicola Barbato 2018-10-24 12:58 ` Ludovic Courtès 0 siblings, 1 reply; 12+ messages in thread From: Diego Nicola Barbato @ 2018-10-21 13:59 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Hello Ludo, I have sent a patch incorporating most of your feedback to guix-patches@gnu.org (bug#33080). ludo@gnu.org (Ludovic Courtès) writes: > Hi Diego, > > Sorry for the delay! No problem (my replies are not quite instantaneous either). > Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > >> Nils Gillmann <ng0@n0.is> writes: >> >>> Ludovic Courtès transcribed 1.9K bytes: >>>> Hello Diego, >>>> >>>> Diego Nicola Barbato <dnbarbato@posteo.de> skribis: [...snip...] >>>> thing to do. As for trademarks, please see >>>> <https://www.gnu.org/distros/free-system-distribution-guidelines.html#trademarks> >>>> to determine whether there’s a problem at all. >> >> @Ludo: Judging from the link there seems to be no problem with the >> trademarks after all. The bundled fonts (the ones I did not remove), >> however, are provided in a format native to Inferno (and Plan 9) and can >> not be rebuilt from source, which might be a problem according to this >> [2] thread. > > Sometimes TTF files are considered source, so it really depends. Unless > there’s evidence that there exists another source for these fonts, I’d > say we can assume it’s fine, possibly with a comment. I have found no evidence that there exists another source. > Do you know whether other FSDG distros and Debian provide these fonts? They do not provide these exact fonts but those from which some of these are derived (misc and jis are "based" on X fonts, vera is probably based on Bitstream Vera). It is harder to find the origin of the other fonts as there is little information about them (big5 was "provided by students at the University of Hong Kong" according to its README; courier, gb, and minitel do not contain any information). The remaining fonts just reuse "subfonts" from the other directories. >>>> Could you also check whether all the code is GPLv2+ like the ‘license’ >>>> field suggests? >> >> @Ludo: According to the NOTICE files scattered through the source tree >> and the Inferno home page [3] different parts of Inferno are licensed >> under GPLv2+, LGPLv2+, Expat (MIT-template), Lucent Public License 1.02 >> and Freetype. >> Am I right to assume that I have to mention all of them in the ‘license’ >> field even though the NOTICE in the root of the source tree [4] says >> that the "collection" is governed by the GPLv2+? > > Yes, but you can leave a comment explaining that the combined work is > effectively GPLv2+. > >> I could not find the Lucent Public License [5] in the (guix licenses) >> module. Should I add it or should I use ‘non-copyleft’? > > You can use ‘non-copyleft’ in that case, with a reference to > <https://www.gnu.org/licenses/license-list.html#lucent102>. > > Note that the page above says that the Lucent PL is incompatible with > the GPL. Are we combining GPL code with Lucent code here? AFAICT LPL code (libmp libsec) is combined with GPL code when building emu. There is some more LPL code in the os directory, which is only needed for building native inferno, and in the appl and module directories, which contain Limbo code which is run on inferno but not used to build it. The NOTICE says that all licenses are compatible with the GPLv2 but that is apparently incorrect. As I am not very familiar with software licenses I do not know what to do about this. According to the GPL FAQ [*] it is possible to add an exception when using incompatible libraries, but I am hesitant to suggest this in a bug report to upstream because I do not know if that applies here. Is this a blocker? >>>> Do I get it right that the build result is a script that launches >>>> Inferno as a GNU/Linux process? It seems like it could be useful. >> >> @Ludo: That is right. I got the script from here [6]. It starts the >> window manager and logs in as the current user; it is supposed to >> provide a convenient entry point to start exploring the system. >> Alongside this script in %out/bin/ there is also a symlink to the emu >> binary which is installed by ‘mk install’ under >> %out/usr/inferno/Linux/386/bin/ (Linux/arm/bin on arm machines). This >> directory contains several other executables. I am considering making >> some of them (like the Limbo compiler) available under %out/bin in the >> same way as emu. > > Sounds good. Note that, if possible, we should stick to the usual file > system layout (that is OUT/share, OUT/lib, OUT/bin, etc. and not > OUT/usr.) Though if keeping the /usr/inferno layout style is really > important, we can make an exception. The layout style is not important; I only used OUT/usr/inferno because /usr/inferno is the default in mkconfig. I have changed this to OUT/share/inferno, which matches what the Nix package [†] does. [...snip...] > Thanks for your reply! > > Ludo’. Thanks for the feedback! Diego [*]: https://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs [†]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/inferno/default.nix ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Packaging Inferno 2018-10-21 13:59 ` Diego Nicola Barbato @ 2018-10-24 12:58 ` Ludovic Courtès 0 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2018-10-24 12:58 UTC (permalink / raw) To: Diego Nicola Barbato; +Cc: guix-devel Hi Diego, Diego Nicola Barbato <dnbarbato@posteo.de> skribis: > I have sent a patch incorporating most of your feedback to > guix-patches@gnu.org (bug#33080). Thank you, and sorry that review takes some time. I guess that’s the price to pay when submitting non-trivial packages. ;-) >> Do you know whether other FSDG distros and Debian provide these fonts? > > They do not provide these exact fonts but those from which some of these > are derived (misc and jis are "based" on X fonts, vera is probably based > on Bitstream Vera). > It is harder to find the origin of the other fonts as there is little > information about them (big5 was "provided by students at the University > of Hong Kong" according to its README; courier, gb, and minitel do not > contain any information). The remaining fonts just reuse "subfonts" > from the other directories. OK. Courier is a standard PostScript font (with a free implementation by the URW++ foundry), so it’s probably fine. I don’t know about the others; it’s probably safe, but perhaps you could ask for advice on the GNU/Linux-libre mailing list? (See <https://lists.nongnu.org/mailman/listinfo/gnu-linux-libre>.) >> Note that the page above says that the Lucent PL is incompatible with >> the GPL. Are we combining GPL code with Lucent code here? > > AFAICT LPL code (libmp libsec) is combined with GPL code when building > emu. There is some more LPL code in the os directory, which is only > needed for building native inferno, and in the appl and module > directories, which contain Limbo code which is run on inferno but not > used to build it. > The NOTICE says that all licenses are compatible with the GPLv2 but that > is apparently incorrect. > As I am not very familiar with software licenses I do not know what to > do about this. According to the GPL FAQ [*] it is possible to add an > exception when using incompatible libraries, but I am hesitant to > suggest this in a bug report to upstream because I do not know if that > applies here. > > Is this a blocker? What you’re writing about libmp/libsec linked into ‘emu’ sounds like it could be a GPL violation. Again, to be sure, I’d suggest getting feedback from the GNU/Linux-libre mailing list (in a separate thread.) >> Sounds good. Note that, if possible, we should stick to the usual file >> system layout (that is OUT/share, OUT/lib, OUT/bin, etc. and not >> OUT/usr.) Though if keeping the /usr/inferno layout style is really >> important, we can make an exception. > > The layout style is not important; I only used OUT/usr/inferno because > /usr/inferno is the default in mkconfig. I have changed this to > OUT/share/inferno, which matches what the Nix package [†] does. Sounds good. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-10-24 12:59 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-10-05 8:11 Packaging Inferno Diego Nicola Barbato 2018-10-07 9:49 ` Efraim Flashner 2018-10-11 13:30 ` Diego Nicola Barbato 2018-10-11 13:44 ` Efraim Flashner 2018-10-08 13:00 ` Ludovic Courtès 2018-10-08 13:47 ` Nils Gillmann 2018-10-09 17:09 ` Diego Nicola Barbato 2018-10-09 17:55 ` Nils Gillmann 2018-10-17 17:35 ` Diego Nicola Barbato 2018-10-16 12:03 ` Ludovic Courtès 2018-10-21 13:59 ` Diego Nicola Barbato 2018-10-24 12:58 ` Ludovic Courtès
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.