unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* jfs, jfsutils?
@ 2019-12-11 22:31 Michael Zucchi
  2019-12-11 22:38 ` Josh
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Michael Zucchi @ 2019-12-11 22:31 UTC (permalink / raw)
  To: help-guix


Morning,

I just built a new computer and thought i'd give guix a go but after 
finally getting everything working to the install stage ... I hit a 
personal showstopper - no jfs support whatsoever.  It's mostly an 
afterthought on every other distribution but this was a surprise.

Any reason for this or is it just that nobody thought of it?

Anyway, I just ended up installing slackware-current and have then 
installed guix atop that, to grab a few packages and to get more 
familiar with it.  I would probably have had to do that anyway as it was 
probably too much to learn at once but I currently have a lot of spare 
time to fill, so tried guix first.

Regards,
  Z

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-11 22:31 jfs, jfsutils? Michael Zucchi
@ 2019-12-11 22:38 ` Josh
  2019-12-11 23:49   ` Michael Zucchi
  2019-12-11 23:57 ` Tobias Geerinckx-Rice
  2019-12-13 14:33 ` Packing bcachefs " Joshua Branson
  2 siblings, 1 reply; 17+ messages in thread
From: Josh @ 2019-12-11 22:38 UTC (permalink / raw)
  To: help-guix

Could you catch me up on what "jfs" is?

On 12/11/19 5:31 PM, Michael Zucchi wrote:
>
> Morning,
>
> I just built a new computer and thought i'd give guix a go but after 
> finally getting everything working to the install stage ... I hit a 
> personal showstopper - no jfs support whatsoever.  It's mostly an 
> afterthought on every other distribution but this was a surprise.
>
> Any reason for this or is it just that nobody thought of it?
>
> Anyway, I just ended up installing slackware-current and have then 
> installed guix atop that, to grab a few packages and to get more 
> familiar with it.  I would probably have had to do that anyway as it 
> was probably too much to learn at once but I currently have a lot of 
> spare time to fill, so tried guix first.
>
> Regards,
>  Z
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-11 22:38 ` Josh
@ 2019-12-11 23:49   ` Michael Zucchi
  0 siblings, 0 replies; 17+ messages in thread
From: Michael Zucchi @ 2019-12-11 23:49 UTC (permalink / raw)
  To: help-guix


It's an acronym of Journaled File System.  It was written by IBM and has 
been in Linux since 2002.

On 12/12/19 9:08 am, Josh wrote:
> Could you catch me up on what "jfs" is?
>
> On 12/11/19 5:31 PM, Michael Zucchi wrote:
>>
>> Morning,
>>
>> I just built a new computer and thought i'd give guix a go but after 
>> finally getting everything working to the install stage ... I hit a 
>> personal showstopper - no jfs support whatsoever. It's mostly an 
>> afterthought on every other distribution but this was a surprise.
>>
>> Any reason for this or is it just that nobody thought of it?
>>
>> Anyway, I just ended up installing slackware-current and have then 
>> installed guix atop that, to grab a few packages and to get more 
>> familiar with it.  I would probably have had to do that anyway as it 
>> was probably too much to learn at once but I currently have a lot of 
>> spare time to fill, so tried guix first.
>>
>> Regards,
>>  Z
>>
>
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-11 22:31 jfs, jfsutils? Michael Zucchi
  2019-12-11 22:38 ` Josh
@ 2019-12-11 23:57 ` Tobias Geerinckx-Rice
  2019-12-12  1:41   ` Tobias Geerinckx-Rice
  2019-12-30 23:38   ` Michael Zucchi
  2019-12-13 14:33 ` Packing bcachefs " Joshua Branson
  2 siblings, 2 replies; 17+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-12-11 23:57 UTC (permalink / raw)
  To: help-guix

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

Michael,

Michael Zucchi 写道:
> I just built a new computer and thought i'd give guix a go

That's great to hear!  Welcome.

> but after
> finally getting everything working to the install stage ... I 
> hit a
> personal showstopper - no jfs support whatsoever.  It's mostly 
> an
> afterthought on every other distribution but this was a 
> surprise.
>
> Any reason for this or is it just that nobody thought of it?

s/thought/uses/

Nobody's going to add support for a file system they don't use, 
and nobody boots Guix from JFS.

…yet. :-)

> Anyway, I just ended up installing slackware-current and have 
> then
> installed guix atop that, to grab a few packages and to get more
> familiar with it.  I would probably have had to do that anyway 
> as it
> was probably too much to learn at once but I currently have a 
> lot of
> spare time to fill, so tried guix first.

Spare time sucks, consider contributing JFS support to Guix 
instead.

Assuming it's a pretty conventional Linux file system:

- Guix's Linux-Libre kernel already builds the module 
  (CONFIG_JFS_FS=m)
- it just needs to be added to the initramfs when booting from JFS
- jfsutils needs to be packaged for Guix and a static fsck added 
  to the initramfs
- some code must be added to (gnu build file-systems) to read JFS 
  labels & UUIDs: Guix does not use C tools to do this like other 
  distributions.

If you're completely new to Guix that might sound daunting, but 
it's honestly not that hard and you should get plenty of help on 
the mailing list and/or on IRC.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-11 23:57 ` Tobias Geerinckx-Rice
@ 2019-12-12  1:41   ` Tobias Geerinckx-Rice
  2019-12-12  3:18     ` Michael Zucchi
  2019-12-30 23:38   ` Michael Zucchi
  1 sibling, 1 reply; 17+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-12-12  1:41 UTC (permalink / raw)
  To: help-guix; +Cc: Michael Zucchi

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]

Michael & me,

Tobias Geerinckx-Rice 写道:
> - jfsutils needs to be packaged for Guix

I wrote a quick but working package[0].

> - and a static fsck added to the initramfs

I didn't have time for this yet.

Kind regards,

T G-R

[0]: https://issues.guix.gnu.org/issue/38572

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-12  1:41   ` Tobias Geerinckx-Rice
@ 2019-12-12  3:18     ` Michael Zucchi
  2019-12-13 14:31       ` Joshua Branson
  2019-12-13 16:07       ` Tobias Geerinckx-Rice
  0 siblings, 2 replies; 17+ messages in thread
From: Michael Zucchi @ 2019-12-12  3:18 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, help-guix

[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]

Hi Tobias,

On 12/12/19 12:11 pm, Tobias Geerinckx-Rice wrote:
> Michael & me,
>
> Tobias Geerinckx-Rice 写道:
>> - jfsutils needs to be packaged for Guix
>
> I wrote a quick but working package[0].
>
>> - and a static fsck added to the initramfs
>
> I didn't have time for this yet.
>

Ok so it seems you're half done already, but I've been plodding away 
(and didn't check my email on my old computer) and have both building.

I'm not really sure where to put it or how to compile each part (it just 
build jfsutils, not jfs_fsck/static) and I used the slackware patches, 
but attached is what i have at the moment.  I used jfs_fsck for the 
static fsck because that's the default name but it could be fsck.jfs.

I started with a definitions of e2fsprogs and it's related functions 
from a linux.scm i found in /gnu/store and based it on that.

I've a number of built package 'attempts' building up - should I just 
run guix gc to clear them out or will that delete stuff i'm just going 
to need again?

Cheers,
  Z

(I presume attachments work ok on this list.)



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: jfsutils.scm --]
[-- Type: text/x-scheme; name="jfsutils.scm", Size: 2609 bytes --]

(define-module (jfsutils)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system trivial)
  #:use-module (guix download)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix utils))

(define-public jfsutils
  (package
    (name "jfsutils")
    (version "1.1.15")
    (source (origin
              (method url-fetch)
              (uri (string-append
		    "http://jfs.sourceforge.net/project/pub/jfsutils-"
		    version ".tar.gz"))
              (sha256
               (base32
                "0kbsy2sk1jv4m82rxyl25gwrlkzvl3hzdga9gshkxkhm83v1aji4"))
	      (patches (search-patches "jfsutils.patch"))))
    (build-system gnu-build-system)
    (inputs `(("util-linux" ,util-linux)))
    (home-page "http://jfs.sourceforge.net/")
    (synopsis "IBM JFS file system tools")
    (description "This package provides commands to create and check JFS
file systems.")
    ;; COPYING is gpl3, the headers are gpl2+?
    (license gpl3))
)

(define jfsutils/static
  (static-package
   (package (inherit jfsutils)
	    (inputs `())
	    (native-inputs
	     `(("util-linux:static" ,util-linux "static")
	       ("util-linux" ,util-linux)))
            (arguments
             ;; Force static linkage
             (substitute-keyword-arguments (package-arguments jfsutils)
               ((#:configure-flags _)
                '(list "LDFLAGS=-static")))))))

(define-public jfs_fsck/static
  (package
    (name "jfs_fsck-static")
    (version (package-version jfsutils))
    (build-system trivial-build-system)
    (source #f)
    (inputs
     `(("jfsutils" ,jfsutils/static)))
    (arguments
     `(#:modules ((guix build utils))
       #:builder
       (begin
         (use-modules (guix build utils)
                      (ice-9 ftw)
                      (srfi srfi-26))

         (let ((jfs_fsck (string-append (assoc-ref %build-inputs "jfsutils")
                                      "/sbin/jfs_fsck"))
               (bin    (string-append (assoc-ref %outputs "out") "/sbin")))
           (mkdir-p bin)
           (with-directory-excursion bin
             (copy-file jfs_fsck "jfs_fsck")
             (remove-store-references "jfs_fsck")
             (chmod "jfs_fsck" #o555))
           #t))))
    (home-page (package-home-page jfsutils))
    (synopsis "Statically-linked jfs_fsck command from jfsutils")
    (description "This package provides statically-linked jfs_fsck command taken
from the jfsutils package.  It is meant to be used in initrds.")
    (license (package-license jfsutils))))


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: jfsutils.patch --]
[-- Type: text/x-patch; name="jfsutils.patch", Size: 618 bytes --]

--- ./libfs/devices.c.orig	2009-03-23 10:37:05.000000000 -0500
+++ ./libfs/devices.c	2018-09-18 18:51:00.699063404 -0500
@@ -40,6 +40,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
+#include <sys/sysmacros.h>
 #if defined(__DragonFly__)
 #include <machine/param.h>
 #include <sys/diskslice.h>
--- ./libfs/devices.h.orig	2005-11-22 14:43:55.000000000 -0600
+++ ./libfs/devices.h	2018-09-19 01:55:37.960336102 -0500
@@ -40,6 +40,8 @@
 #define ERROR_INVALID_PARAMETER	87
 #define ERROR_DISK_FULL		112
 
+#include <inttypes.h>
+
 struct stat;
 
 int ujfs_get_dev_size(FILE *, int64_t * size);

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-12  3:18     ` Michael Zucchi
@ 2019-12-13 14:31       ` Joshua Branson
  2019-12-13 16:07       ` Tobias Geerinckx-Rice
  1 sibling, 0 replies; 17+ messages in thread
From: Joshua Branson @ 2019-12-13 14:31 UTC (permalink / raw)
  To: help-guix

Michael Zucchi <notzed@gmail.com> writes:

> Hi Tobias,
>
> On 12/12/19 12:11 pm, Tobias Geerinckx-Rice wrote:
>> Michael & me,
>>
>> Tobias Geerinckx-Rice 写道:
>>> - jfsutils needs to be packaged for Guix
>>
>> I wrote a quick but working package[0].
>>
>>> - and a static fsck added to the initramfs
>>
>> I didn't have time for this yet.
>>
>
> Ok so it seems you're half done already, but I've been plodding away
> (and didn't check my email on my old computer) and have both building.
>
> I'm not really sure where to put it or how to compile each part (it
> just build jfsutils, not jfs_fsck/static) and I used the slackware
> patches, but attached is what i have at the moment.  I used jfs_fsck
> for the static fsck because that's the default name but it could be
> fsck.jfs.
>
> I started with a definitions of e2fsprogs and it's related functions
> from a linux.scm i found in /gnu/store and based it on that.
>
> I've a number of built package 'attempts' building up - should I just
> run guix gc to clear them out or will that delete stuff i'm just going
> to need again?

I'm not entirely certain...but you would always build them again...

>
> Cheers,
>  Z
>
> (I presume attachments work ok on this list.)
>
>
>
>

-- 
Joshua Branson
Sent from Emacs and Gnus

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Packing bcachefs Re: jfs, jfsutils?
  2019-12-11 22:31 jfs, jfsutils? Michael Zucchi
  2019-12-11 22:38 ` Josh
  2019-12-11 23:57 ` Tobias Geerinckx-Rice
@ 2019-12-13 14:33 ` Joshua Branson
  2019-12-13 15:32   ` Packaging bcachefs Tobias Geerinckx-Rice
  2 siblings, 1 reply; 17+ messages in thread
From: Joshua Branson @ 2019-12-13 14:33 UTC (permalink / raw)
  To: help-guix

Michael Zucchi <notzed@gmail.com> writes:

> Morning,
>
> I just built a new computer and thought i'd give guix a go but after
> finally getting everything working to the install stage ... I hit a
> personal showstopper - no jfs support whatsoever.  It's mostly an
> afterthought on every other distribution but this was a surprise.
>

It would be kind of cool to package bcachefs...but it might be a little
too premature for that.

>
> Regards,
>  Z
>

--
Joshua Branson
Sent from Emacs and Gnus

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Packaging bcachefs
  2019-12-13 14:33 ` Packing bcachefs " Joshua Branson
@ 2019-12-13 15:32   ` Tobias Geerinckx-Rice
  0 siblings, 0 replies; 17+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-12-13 15:32 UTC (permalink / raw)
  To: help-guix, Joshua Branson


[-- Attachment #1.1: Type: text/plain, Size: 1351 bytes --]

Joshua,

Joshua Branson 写道:
> It would be kind of cool to package bcachefs...but it might be a 
> little
> too premature for that.

I've been using bcachefs on Guix System for a bit over 3 months 
now, without any issues that weren't self-inflicted.  The other 
way 'round (/gnu/store on bcachefs) is currently not possible.

Of course you need a kustom kernel, but it should be trivial to 
apply the ~300 bcachefs patches (upstream/v5.3..bcachefs/master) 
on top of Linux-Libre.  I'd share my recipe but it's
a) not -Libre, even though I don't use & want any of the blobs, 
and
b) such an unholy union of other dodgy patches that it would make 
the bcachefs graft look much more difficult than it is.

I've attached my bcachefs-tools package below.  It works fine, I 
just need to finish the boring bits.  Now that I have a reason 
I'll probably do so and submit it soon.

To boot Guix System on bcachefs, we're missing the same thing as 
for JFS: Guile code to read its label & UUID.  But there's one big 
problem: GRUB can't read it.  At all[0].

Either we wait until GRUB grows bcachefs support, or somebody 
(:-)) needs to finally make Guix support kernels + initrds copied 
to a separate /boot partition.

Kind regards,

T G-R

[0]: 
https://lists.gnu.org/archive/html/bug-grub/2019-03/msg00000.html


[-- Attachment #1.2: 0001-XXX-gnu-Add-bcachefs-tools.patch --]
[-- Type: text/x-patch, Size: 3583 bytes --]

From f22d6bdfbf0f31c19936b817f8ffec7d4613650a Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Sun, 8 Dec 2019 00:40:28 +0100
Subject: [PATCH 1/4] XXX gnu: Add bcachefs-tools.

* gnu/packages/file-systems.scm (bcachefs-tools): New public variable.
---
 gnu/packages/file-systems.scm | 55 ++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 1594cac846..744bcf2b52 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -34,11 +34,13 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages onc-rpc)
@@ -47,8 +49,59 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
   #:use-module (gnu packages xml))
 
+(define-public bcachefs-tools
+  (let ((commit "f712a866a474d70bfbe3a43aad2b04ceec13ddd3")
+        (revision "0"))
+    (package
+      (name "bcachefs-tools")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://evilpiepirate.org/git/bcachefs-tools.git")
+               (commit commit)))
+         (sha256
+          (base32 "01zwcqdw6kwdyji7c4307dzgiv67jjmjxpavxx2fq4661v3r7pfn"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+               "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
+               "CC=gcc"
+               "PYTEST=pytest")
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)          ; no configure switch
+           #:tests? #f)))               ; XXX 6 valgrind tests fail
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+
+         ;; libbcachefs/bkey_methods.c:84:41: error: initializer element is not constant
+         ("gcc" ,gcc-8)
+
+         ;; For tests.
+         ("python-pytest" ,python-pytest)
+         ("valgrind" ,valgrind)))
+      (inputs
+       `(("keyutils" ,keyutils)
+         ("libaio" ,libaio)
+         ("libscrypt" ,libscrypt)
+         ("libsodium" ,libsodium)
+         ("liburcu" ,liburcu)
+         ("util-linux" ,util-linux)     ; lib{blkid,uuid}
+         ("lz4" ,lz4)
+         ("zlib" ,zlib)
+         ("zstd:lib" ,zstd "lib")))
+      (home-page "https://bcachefs.org/")
+      (synopsis "")
+      (description
+       "")
+      (license license:gpl2+))))
+
 (define-public httpfs2
   (package
     (name "httpfs2")
-- 
2.23.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-12  3:18     ` Michael Zucchi
  2019-12-13 14:31       ` Joshua Branson
@ 2019-12-13 16:07       ` Tobias Geerinckx-Rice
  2019-12-13 16:23         ` Tobias Geerinckx-Rice
  2019-12-14  1:15         ` Michael Zucchi
  1 sibling, 2 replies; 17+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-12-13 16:07 UTC (permalink / raw)
  To: Michael Zucchi; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 2875 bytes --]

Michael,

Michael Zucchi 写道:
> Ok so it seems you're half done already, but I've been plodding 
> away 
> (and didn't check my email on my old computer) and have both 
> building.

That's great!  Shame about the duplicated effort, but such things 
happen.

> I'm not really sure where to put it or how to compile each part 
> (it just

file-systems.scm if possible.  linux.scm is already a bloated 
grab-bag.

For now, you can test each package at a time by adding the 
variable (e.g ‘jfs_fsck/static’) as the last line of your current 
.scm file.  This will make the file ‘evaluate to jfs_fsck/static’, 
so you can:

  $ guix build -f thefile.scm

You'll have to change that last line every time you want to change 
the package being built.

You'll need a Guix git checkout to get much further.  If you 
haven't yet done so, read ‘Building from Git’ in the manual and 
bootstrap yourself some Guix.

Then you can copy your 3 package expressions to file-systems.scm, 
keeping it in alphabetical order or at least not making things 
worse.  After making some small adjustments like adding a license: 
prefix, you can build your packages with:

  ~/guix$ ./pre-inst-env guix build jfsutils

> build jfsutils, not jfs_fsck/static) and I used the slackware 
> patches,
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Typo that should be the other way 'round?

Are you sure that LDFLAGS=-static is needed when using 
static-package?  Here's my aborted static version:

++(define-public jfsutils/static
++  (static-package
++   (package
++     (inherit jfsutils)
++     (name "jfsutils-static")
++     (inputs
++      `(("util-linux" ,util-linux)
++        ("util-linux:static" ,util-linux "static"))))))

I got my patches from Debian, but they do the same job.  There 
were others[0] but they weren't vital or relevant to Guix.

> but attached is what i have at the moment.  I used jfs_fsck for 
> the 
> static fsck because that's the default name but it could be 
> fsck.jfs.
>
> I started with a definitions of e2fsprogs and it's related 
> functions 
> from a linux.scm i found in /gnu/store and based it on that.
>
> I've a number of built package 'attempts' building up - should I 
> just 
> run guix gc to clear them out or will that delete stuff i'm just 
> going 
> to need again?

It will by default remove the ‘build’ dependencies, yes.

I advise against GC'ing unless you desperately need space, and it 
won't come from a handful of relatively tiny stale JFSutils.  Guix 
also deduplicates the store by default.  At file level, even.

> (I presume attachments work ok on this list.)

Sure.

;; COPYING is gpl3, the headers are gpl2+?

That's interesting.  Where'd you find gpl2+?

Kind regards,

T G-R

[0]: https://sources.debian.org/patches/jfsutils/1.1.15-4/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-13 16:07       ` Tobias Geerinckx-Rice
@ 2019-12-13 16:23         ` Tobias Geerinckx-Rice
  2019-12-14  1:15         ` Michael Zucchi
  1 sibling, 0 replies; 17+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-12-13 16:23 UTC (permalink / raw)
  To: Michael Zucchi; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 504 bytes --]

Tobias Geerinckx-Rice 写道:
> Michael Zucchi 写道:
>> it just build jfsutils, not jfs_fsck/static)
>               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Typo that should be the other way 'round?

…or if you mean that you're unsure how to build a non-exported 
variable (without define-public):

  ~/guix$ ./pre-inst-env guix build -e \
              '(@@ (gnu packages file-systems) jfs_fsck/static)'

Note that this takes the variable, not the package, name.

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-13 16:07       ` Tobias Geerinckx-Rice
  2019-12-13 16:23         ` Tobias Geerinckx-Rice
@ 2019-12-14  1:15         ` Michael Zucchi
  1 sibling, 0 replies; 17+ messages in thread
From: Michael Zucchi @ 2019-12-14  1:15 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: help-guix


Hi Tobias,

On 14/12/19 2:37 am, Tobias Geerinckx-Rice wrote:
>
> Michael Zucchi 写道:

>> I'm not really sure where to put it or how to compile each part (it just
>
> file-systems.scm if possible.  linux.scm is already a bloated grab-bag.
>
> For now, you can test each package at a time by adding the variable 
> (e.g ‘jfs_fsck/static’) as the last line of your current .scm file.  
> This will make the file ‘evaluate to jfs_fsck/static’, so you can:
>
>  $ guix build -f thefile.scm
>
> You'll have to change that last line every time you want to change the 
> package being built.
>
Ok cool.  Yeah I was doing that for testing but it seemed clunky.
> You'll need a Guix git checkout to get much further.  If you haven't 
> yet done so, read ‘Building from Git’ in the manual and bootstrap 
> yourself some Guix.
>
Actually before I downloaded the binary I tried that (and creating 
slackware packages of the many dependencies), but although everything 
compiled ok it just crashed with an obtuse stack trace whenever I tried 
doing anything.  Maybe I missed something along the way, but I can't 
remember the details now.  It was a frustrating introduction.

No doubt it will be easier within a guix environment.

>
>> build jfsutils, not jfs_fsck/static) and I used the slackware patches,
>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Typo that should be the other way 'round?
>
Oh I just meant that the .scm file only compiles one part of the 
package, but that's covered by your directions above (to add the desired 
name to the end of the file) - which I was doing anyway while developing it.

> Are you sure that LDFLAGS=-static is needed when using 
> static-package?  Here's my aborted static version:
>
> ++(define-public jfsutils/static
> ++  (static-package
> ++   (package
> ++     (inherit jfsutils)
> ++     (name "jfsutils-static")
> ++     (inputs
> ++      `(("util-linux" ,util-linux)
> ++        ("util-linux:static" ,util-linux "static"))))))
>
> I got my patches from Debian, but they do the same job.  There were 
> others[0] but they weren't vital or relevant to Guix.
>
Looks like you're right.  While I was writing the description I didn't 
know about 'outputs' of packages or the 'static' output of util-linux 
and it wasn't building a static binary by default, so the -static flag 
was to force it - and expose the missing build requirement.

Incidentally the e2fsprogs in linux.scm doesn't make the /static build 
public, does it matter?

Also, should it be '(inputs' or '(native-inputs', since it's static it 
has no runtime dependencies?  Is that what they're for?

>
> ;; COPYING is gpl3, the headers are gpl2+?
>
> That's interesting.  Where'd you find gpl2+?
>
I just wasn't sure as the headers in all the .c files are gpl2+ and 
COPYING is gpl3 - but nothing in the archive (or home page - that i 
could find) actually refers to that file or any specific version. But on 
reflection gpl3 should be correct based on COPYING.

Ok well thanks for all the pointers.

I'm currently distracted with some other stuff (all sort of hacking and 
other things) but when I get back to it I guess i'll get a guix 
bootstrapped, add the functions, and then keep poking towards the goal 
of a system image.  I've already noticed gnu/build/file-systems.scm 
needs some additions for example.  I don't particularly like lisps - 
last time i touched any was writing gnome-doc.el about 20 years ago! -  
so I should also brush up on scheme and familiarise myself with the 
guile repl.

Cheers,
  Z

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-11 23:57 ` Tobias Geerinckx-Rice
  2019-12-12  1:41   ` Tobias Geerinckx-Rice
@ 2019-12-30 23:38   ` Michael Zucchi
  2019-12-31  0:42     ` Josh Marshall
  1 sibling, 1 reply; 17+ messages in thread
From: Michael Zucchi @ 2019-12-30 23:38 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, help-guix

On 12/12/19 10:27 am, Tobias Geerinckx-Rice wrote:
>
> If you're completely new to Guix that might sound daunting, but it's 
> honestly not that hard and you should get plenty of help on the 
> mailing list and/or on IRC.
>

Sorry Tobias, but I haven't been able to progress any further on this.  
As far as I can tell the guix boostrap process doesn't support 
amd64-only systems so although I can compile it, it doesn't pass 'make 
check' and so I didn't try further.  32-bit executables are disabled in 
my kernel and bootstrap.scm just assumes they work based on the 
architecture.

I asked on IRC but I'm in the 'wrong' timezone to get any useful 
responses and a query to the mailing list went unanswered.

Also, sort of related and I know it's not guix's fault but it's somewhat 
difficult to find anything useful about guix using any search engine.

Regards,
  Z

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-30 23:38   ` Michael Zucchi
@ 2019-12-31  0:42     ` Josh Marshall
  2019-12-31  6:26       ` Michael Zucchi
  0 siblings, 1 reply; 17+ messages in thread
From: Josh Marshall @ 2019-12-31  0:42 UTC (permalink / raw)
  To: Michael Zucchi; +Cc: help-guix

I would expect guix to bootstrap and run on x86_64.  I thought it worked on
my systems.  I'd be interested to hear more about this.

On Mon, Dec 30, 2019, 18:38 Michael Zucchi <notzed@gmail.com> wrote:

> On 12/12/19 10:27 am, Tobias Geerinckx-Rice wrote:
> >
> > If you're completely new to Guix that might sound daunting, but it's
> > honestly not that hard and you should get plenty of help on the
> > mailing list and/or on IRC.
> >
>
> Sorry Tobias, but I haven't been able to progress any further on this.
> As far as I can tell the guix boostrap process doesn't support
> amd64-only systems so although I can compile it, it doesn't pass 'make
> check' and so I didn't try further.  32-bit executables are disabled in
> my kernel and bootstrap.scm just assumes they work based on the
> architecture.
>
> I asked on IRC but I'm in the 'wrong' timezone to get any useful
> responses and a query to the mailing list went unanswered.
>
> Also, sort of related and I know it's not guix's fault but it's somewhat
> difficult to find anything useful about guix using any search engine.
>
> Regards,
>   Z
>
>
>
>
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-31  0:42     ` Josh Marshall
@ 2019-12-31  6:26       ` Michael Zucchi
  2020-01-05 19:04         ` Gábor Boskovits
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Zucchi @ 2019-12-31  6:26 UTC (permalink / raw)
  To: Josh Marshall; +Cc: help-guix


Well it failed in 'make check' so I stopped going further as I didn't 
want some other fault causing a mess.

The critical detail is that my kernel has "CONFIG_IA32_EMULATION" turned 
off.

In my original query I included some output from tests/challenge.log:

...
warning: authentication and authorization of substitutes disabled!
@ build-started 
/home/notzed/src/guix/test-tmp/store/wr9c2ddgxlgifni61caxd2ain8b7rqv5-guile-bootstrap-2.0.drv 
- x86_64-linux 
/home/notzed/src/guix/test-tmp/var/log/guix/drvs/wr//9c2ddgxlgifni61caxd2ain8b7rqv5-guile-bootstrap-2.0.drv.bz2 
8592
while setting up the build environment: executing 
`/home/notzed/src/guix/test-tmp/store/f0ips0sdyhnhlfdqayvcbddqlijk7iid-bash': 
Exec format error
...

gnu/packages/bootstrap.scm:128 uses the 'i686-linux' directory for 
'x86_64-linux' architecture, and gnu/packages/bootstrap/i686-linux has 
32-bit binaries (obviously!).

I tried adding a x86_64 block to %bootstrap-executables and creating 
softlinks in gnu/packages/bootstrap/x86_64 but most tests want to 
download them from git.savannah.gnu.org, and tests/derivations.scm still 
tries to run the 32-bit binaries anyway.

  Z

On 31/12/19 11:12 am, Josh Marshall wrote:
> I would expect guix to bootstrap and run on x86_64.  I thought it 
> worked on my systems.  I'd be interested to hear more about this.
>
> On Mon, Dec 30, 2019, 18:38 Michael Zucchi <notzed@gmail.com 
> <mailto:notzed@gmail.com>> wrote:
>
>     On 12/12/19 10:27 am, Tobias Geerinckx-Rice wrote:
>     >
>     > If you're completely new to Guix that might sound daunting, but
>     it's
>     > honestly not that hard and you should get plenty of help on the
>     > mailing list and/or on IRC.
>     >
>
>     Sorry Tobias, but I haven't been able to progress any further on
>     this.
>     As far as I can tell the guix boostrap process doesn't support
>     amd64-only systems so although I can compile it, it doesn't pass
>     'make
>     check' and so I didn't try further.  32-bit executables are
>     disabled in
>     my kernel and bootstrap.scm just assumes they work based on the
>     architecture.
>
>     I asked on IRC but I'm in the 'wrong' timezone to get any useful
>     responses and a query to the mailing list went unanswered.
>
>     Also, sort of related and I know it's not guix's fault but it's
>     somewhat
>     difficult to find anything useful about guix using any search engine.
>
>     Regards,
>       Z
>
>
>
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2019-12-31  6:26       ` Michael Zucchi
@ 2020-01-05 19:04         ` Gábor Boskovits
  2020-01-06  7:20           ` Michael Zucchi
  0 siblings, 1 reply; 17+ messages in thread
From: Gábor Boskovits @ 2020-01-05 19:04 UTC (permalink / raw)
  To: Michael Zucchi; +Cc: help-guix

Hello,

Michael Zucchi <notzed@gmail.com> ezt írta (időpont: 2019. dec. 31., K, 7:27):
>
>
> Well it failed in 'make check' so I stopped going further as I didn't
> want some other fault causing a mess.
>
> The critical detail is that my kernel has "CONFIG_IA32_EMULATION" turned
> off.
>
> In my original query I included some output from tests/challenge.log:
>
> ...
> warning: authentication and authorization of substitutes disabled!
> @ build-started
> /home/notzed/src/guix/test-tmp/store/wr9c2ddgxlgifni61caxd2ain8b7rqv5-guile-bootstrap-2.0.drv
> - x86_64-linux
> /home/notzed/src/guix/test-tmp/var/log/guix/drvs/wr//9c2ddgxlgifni61caxd2ain8b7rqv5-guile-bootstrap-2.0.drv.bz2
> 8592
> while setting up the build environment: executing
> `/home/notzed/src/guix/test-tmp/store/f0ips0sdyhnhlfdqayvcbddqlijk7iid-bash':
> Exec format error
> ...
>
> gnu/packages/bootstrap.scm:128 uses the 'i686-linux' directory for
> 'x86_64-linux' architecture, and gnu/packages/bootstrap/i686-linux has
> 32-bit binaries (obviously!).
>
> I tried adding a x86_64 block to %bootstrap-executables and creating
> softlinks in gnu/packages/bootstrap/x86_64 but most tests want to
> download them from git.savannah.gnu.org, and tests/derivations.scm still
> tries to run the 32-bit binaries anyway.
>
>   Z
>
> On 31/12/19 11:12 am, Josh Marshall wrote:
> > I would expect guix to bootstrap and run on x86_64.  I thought it
> > worked on my systems.  I'd be interested to hear more about this.
> >
> > On Mon, Dec 30, 2019, 18:38 Michael Zucchi <notzed@gmail.com
> > <mailto:notzed@gmail.com>> wrote:
> >
> >     On 12/12/19 10:27 am, Tobias Geerinckx-Rice wrote:
> >     >
> >     > If you're completely new to Guix that might sound daunting, but
> >     it's
> >     > honestly not that hard and you should get plenty of help on the
> >     > mailing list and/or on IRC.
> >     >
> >
> >     Sorry Tobias, but I haven't been able to progress any further on
> >     this.
> >     As far as I can tell the guix boostrap process doesn't support
> >     amd64-only systems so although I can compile it, it doesn't pass
> >     'make
> >     check' and so I didn't try further.  32-bit executables are
> >     disabled in
> >     my kernel and bootstrap.scm just assumes they work based on the
> >     architecture.

I believe this is related to the method guix is bootstrapped on x86_64
currently.
As far as I know there is a minimal bootstrap seed which is 32 bits,
and the final
bootstrap is cross-compiled to x86_64. The problem is that for the
sake of simplicity
the current bootstrap binaries were created with 32 bits in mind. I am
sure that they
would appreciate any help to get x86_64 bootstrapped directly. Does
that make sense?

> >
> >     I asked on IRC but I'm in the 'wrong' timezone to get any useful
> >     responses and a query to the mailing list went unanswered.
> >
> >     Also, sort of related and I know it's not guix's fault but it's
> >     somewhat
> >     difficult to find anything useful about guix using any search engine.
> >
> >     Regards,
> >       Z
> >
> >
> >
> >
>

Best regards,
g_bor
-- 
OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: jfs, jfsutils?
  2020-01-05 19:04         ` Gábor Boskovits
@ 2020-01-06  7:20           ` Michael Zucchi
  0 siblings, 0 replies; 17+ messages in thread
From: Michael Zucchi @ 2020-01-06  7:20 UTC (permalink / raw)
  To: Gábor Boskovits; +Cc: help-guix

On 6/1/20 5:34 am, Gábor Boskovits wrote:
>>>    32-bit executables are
>>>      disabled in
>>>      my kernel and bootstrap.scm just assumes they work based on the
>>>      architecture.
> I believe this is related to the method guix is bootstrapped on x86_64
> currently.
> As far as I know there is a minimal bootstrap seed which is 32 bits,
> and the final
> bootstrap is cross-compiled to x86_64. The problem is that for the
> sake of simplicity
> the current bootstrap binaries were created with 32 bits in mind. I am
> sure that they
> would appreciate any help to get x86_64 bootstrapped directly. Does
> that make sense?
>

Yep sure that matches my take on it.  I'm willing to help if anyone has 
any ideas.

Last week I tried editing bootstrap.scm to add and use a 64-bit section 
with my own files and checksums via my own server, but I couldn't get it 
to work so I just gave up.  It downloaded them ok but the checksum 
failed - despite them being correct as far as i could tell.  I didn't 
make static binaries though so maybe that's related.  It took so long to 
try out each iteration I also lost interest.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-01-06  7:21 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-11 22:31 jfs, jfsutils? Michael Zucchi
2019-12-11 22:38 ` Josh
2019-12-11 23:49   ` Michael Zucchi
2019-12-11 23:57 ` Tobias Geerinckx-Rice
2019-12-12  1:41   ` Tobias Geerinckx-Rice
2019-12-12  3:18     ` Michael Zucchi
2019-12-13 14:31       ` Joshua Branson
2019-12-13 16:07       ` Tobias Geerinckx-Rice
2019-12-13 16:23         ` Tobias Geerinckx-Rice
2019-12-14  1:15         ` Michael Zucchi
2019-12-30 23:38   ` Michael Zucchi
2019-12-31  0:42     ` Josh Marshall
2019-12-31  6:26       ` Michael Zucchi
2020-01-05 19:04         ` Gábor Boskovits
2020-01-06  7:20           ` Michael Zucchi
2019-12-13 14:33 ` Packing bcachefs " Joshua Branson
2019-12-13 15:32   ` Packaging bcachefs Tobias Geerinckx-Rice

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).