* 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).