bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#35640: Make USB modems just work on Guix


From: pelzflorian (Florian Pelz)
Subject: bug#35640: Make USB modems just work on Guix
Date: Wed, 22 May 2019 18:29:09 +0200
User-agent: NeoMutt/20180716

Thank you for your thorough review.  Find attached a new version of
the patch.  I can now modeswitch my USB modem by doing

./pre-inst-env guix install usb-modeswitch:dispatcher
sudo usb_modeswitch -c ~/.guix-profile/share/usb_modeswitch.d/12d1\:14fe -v 
0x12d1 -p 0x14fe

Tring to put the packages in gnu/packages/libusb.scm and not in their
own file gnu/packages/usb-modeswitch.scm again resulted in

[ 11%] LOAD     guix/scripts/search.scm
[ 11%] LOAD     guix/scripts/gc.scm
[ 11%] LOAD     guix/scripts/hash.scm
[ 11%] LOAD     guix/scripts/pack.scm
Backtrace:
In ice-9/boot-9.scm:
   222:29 19 (map1 (((guix utils)) ((guix store)) ((guix #) # (#)) …))
   222:29 18 (map1 (((guix store)) ((guix status) #:select (#)) (#) …))
   222:29 17 (map1 (((guix status) #:select (#)) ((guix grafts)) # …))
   222:29 16 (map1 (((guix grafts)) ((guix monads)) ((guix #)) (#) …))
   222:29 15 (map1 (((guix monads)) ((guix modules)) ((guix #)) (#) …))
   222:29 14 (map1 (((guix modules)) ((guix packages)) ((guix #)) # …))
   222:29 13 (map1 (((guix packages)) ((guix profiles)) ((guix #)) …))
   222:29 12 (map1 (((guix profiles)) ((guix describe)) ((guix #)) …))
   222:29 11 (map1 (((guix describe)) ((guix derivations)) ((# #)) …))
   222:29 10 (map1 (((guix derivations)) ((guix search-paths)) (#) …))
   222:29  9 (map1 (((guix search-paths)) ((guix build-system #)) # …))
   222:29  8 (map1 (((guix build-system gnu)) ((guix scripts #)) # …))
   222:29  7 (map1 (((guix scripts build)) ((guix self) #:select …) …))
   222:29  6 (map1 (((guix self) #:select (make-config.scm)) ((…)) …))
   222:29  5 (map1 (((gnu packages)) ((gnu packages bootstrap)) (…) …))
   222:29  4 (map1 (((gnu packages bootstrap)) ((gnu packages …) …) …))
   222:17  3 (map1 (((gnu packages compression) #:hide (zip)) ((…)) …))
  2830:10  2 (resolve-interface (gnu packages compression) #:select _ …)
   260:13  1 (for-each #<procedure 52470e0 at ice-9/boot-9.scm:2830…> …)
In unknown file:
           0 (scm-error misc-error #f "~A" ("no binding `zip' to h…") …)

ERROR: In procedure scm-error:
no binding `zip' to hide in module (gnu packages compression)

when running make.  Then I rebuilt and commented and uncommented and
moved some code and putting the code in gnu/packages/libusb.scm worked
again in ./pre-inst-env.  Later it failed again.  Danny speculated the
reason was a use-module cycle.  I would like confirmation that this is
what a use-module cycle looks like and that I should stop trying to
put usb-modeswitch back in gnu/packages/libusb.scm.


As for the packaging, I hope it is correct to still refer to %outputs
in the trivial-build-system for usb-modeswitch-data.

Should I also make the usb-modeswitch-data package install the license
file of usb-modeswitch-data?

Or should I use gnu-build-system instead of trivial-build-system?
trivial works now though.

The file dispatcher.c of usb-modeswitch is licensed bsd-2 and not
gpl2+.  Should I list both licenses or just gpl2+?

I have checked the license of the files of usb-modeswitch-data and
usb-modeswitch by going through each of them with the `less` program
and reading its header while assuming that no license header means the
file has the license described in the README file, by diff’ing the
license files with a license downloaded from gnu.org, and that nothing
looked like a program blob (there only are very small hex strings for
the messages USB_ModeSwitch sends like

MessageContent="55534243123456782400000080000612000024000000000000000000000000"

that seem harmless).  Is this the usual procedure?

Currently I also install the UDEV rule shipped with
usb-modeswitch-data; I hope this is correct.

Currently I install the usb_modeswitch_dispatcher that is needed by
the udev rule in a separate output called “dispatcher”.  I am unsure
if this usb_modeswitch_dispatcher would need the usb_modeswitch
program from the “out” output.  Is it OK when one output only works
when the “out” output is installed too?

What is still missing is adding a service type for usb-modeswitch that
extends the udev service type by the rules file and that calls the
usb-modeswitch dispatcher once every reboot.  I can try making one,
but I am not sure if this is the right approach.  I am also unsure if
this service should be part of %desktop-services; many modems need it
though and modem-manager-service-type.

Regards,
Florian

Attachment: 0001-gnu-Add-USB_ModeSwitch.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]