Re: [DNG] That one unsupported app: was Predictable Network Interface Names - Stupid or good idea?

2016-01-11 Thread Jude Nelson
>
> OpenBSD's overall stance on virtualization makes it a poor choice for a
> desktop OS unfortunately. I partially understand the reasoning, however,
> given the limits of software support on the *BSDs in general, and OpenBSD
> in particular, the lack of virtualization options effectively makes it
> unusable for a substantial number of users.
>

Looks like this might change in the next release.  Link:
http://undeadly.org/cgi?action=article&sid=20151122214050


> The situation on FreeBSD seems a little better though, and I've seriously
> considered making that switch.
>
>
>
>
>
>
> On Sun, Jan 10, 2016 at 6:10 PM, Steve Litt 
> wrote:
>
>> On Sun, 10 Jan 2016 21:55:48 +
>> Dave Turner  wrote:
>>
>> > Slackware is hard work when you have been used to the ease of debian
>> > for so many years...
>> > Eventually it all worked OK until one particular bit of music
>> > composition software I like to use could only be found in
>> > Slackbuilds, and it would not install even after I did some editing
>> > of the scripts. I gave up and installed devuan again.
>>
>> Devuan is an excellent distro and I applaud you for installing it.
>>
>> If you ever find that one app that you can't install on Devuan, just
>> run a VM or container that *does* do that app right, and run that one
>> app there.
>>
>> The entire reason why I didn't migrate to OpenBSD and happily stay
>> there in September 2014 is because OpenBSD has no functional and
>> working Qemu, and shows little motivation to change that. So I'd have
>> to permanently live without those couple programs I needed. Normal
>> Linuxes enable you to run other distros in VMs or containers, so choose
>> the best one, even if it won't do your favorite program.
>>
>> SteveT
>>
>> Steve Litt
>> January 2016 featured book: Twenty Eight Tales of Troubleshooting
>> http://www.troubleshooters.com/28
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] That one unsupported app: was Predictable Network Interface Names - Stupid or good idea?

2016-01-11 Thread Jude Nelson
On Mon, Jan 11, 2016 at 2:18 AM, Dave Turner <
dave_t_tur...@barradas.free-online.co.uk> wrote:

> All the BSDs have the packages I want and need, except working WiFi for
> laptops!
> My main desktop is an old Intel iMac. FreeBSD and PC-BSD would not install.
> I could not get sound to work on NetBSD and OpenBSD.
> So the old iMac runs debian jessie systemd and all.
>
> My old laptop is now running devuan again, but this time as the Dom0 for a
> xen hypervisor that will run NetBSD. My hope is that xen will pass on the
> WiFi connection so that I have a NetBSD laptop with working WiFi. We'll see!
> So far I'm not sure the xen part is quite as it should be, I need to spend
> some more time with the docs.
>
> DaveT
>
>
>
>
>
> On 11/01/16 00:15, Stephanie Daugherty wrote:
>
> OpenBSD's overall stance on virtualization makes it a poor choice for a
> desktop OS unfortunately. I partially understand the reasoning, however,
> given the limits of software support on the *BSDs in general, and OpenBSD
> in particular, the lack of virtualization options effectively makes it
> unusable for a substantial number of users.
>
> The situation on FreeBSD seems a little better though, and I've seriously
> considered making that switch.
>
>
>
>
>
>
> On Sun, Jan 10, 2016 at 6:10 PM, Steve Litt 
> wrote:
>
>> On Sun, 10 Jan 2016 21:55:48 +
>> Dave Turner  wrote:
>>
>> > Slackware is hard work when you have been used to the ease of debian
>> > for so many years...
>> > Eventually it all worked OK until one particular bit of music
>> > composition software I like to use could only be found in
>> > Slackbuilds, and it would not install even after I did some editing
>> > of the scripts. I gave up and installed devuan again.
>>
>> Devuan is an excellent distro and I applaud you for installing it.
>>
>> If you ever find that one app that you can't install on Devuan, just
>> run a VM or container that *does* do that app right, and run that one
>> app there.
>>
>> The entire reason why I didn't migrate to OpenBSD and happily stay
>> there in September 2014 is because OpenBSD has no functional and
>> working Qemu, and shows little motivation to change that. So I'd have
>> to permanently live without those couple programs I needed. Normal
>> Linuxes enable you to run other distros in VMs or containers, so choose
>> the best one, even if it won't do your favorite program.
>>
>> SteveT
>>
>> Steve Litt
>> January 2016 featured book: Twenty Eight Tales of Troubleshooting
>> http://www.troubleshooters.com/28
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>
>
>
> ___
> Dng mailing 
> list...@lists.dyne.orghttps://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Predictable Network Interface Names - Stupid or good idea?

2016-01-09 Thread Jude Nelson
> Isn't the initial identification of network adapters and assignment
originally handled by the Kernel or is this another urban myth that I have
mistakenly hung on to?

Yes--network interfaces are given a monotonically-increasing sequence
number as they are enumerated (e.g. the X in ethX and wlanX).  However, X
isn't guaranteed to refer to the same NIC across boots.

> I've only run into mac duplication a couple of times in my life thus far.

That's why vdev also accepts a sysfs device path, which is guaranteed to
persist across boots provided that the device remains on the same bus :)

-Jude




On Sat, Jan 9, 2016 at 3:30 PM, Hendrik Boom  wrote:

> On Sat, Jan 09, 2016 at 09:19:33PM +0100, Anto wrote:
> >
> > On 09/01/16 19:44, shraptor wrote:
> > >On 2016-01-09 19:17, Anto wrote:
> > >
> > >>On the topic. It would be quite interesting how vdev will be (or is)
> > >>managing this network interface naming assignment. Do you have any
> > >>comment on this, Jude?
> > >
> > >vdev uses by default old naming convention but has a file
> > >called /etc/vdev/ifnames.conf where you can set names arbitrarily.
> > >
> > >Example ifnames.conf that is auto-generated at compile time
> > >(only covered up my mac addresses)
> > >
> > ># Format:
> > ># PERSISTENT_INTERFACE_NAME mac|devpath MATCH_ARGUMENT
> > >#   * PERSISTENT_INTERFACE_NAME is the persistent name of the
> > >network interface
> > >#   * If the second argument is "mac", then MATCH_ARGUMENT is the
> > >colon-separated MAC address
> > >#   * If the second argument is "devpath", then MATCH_ARGUMENT is
> > >the device path to the NIC in sysfs
> > >#
> > ># Example: a wireless USB dongle, to be named "wlan-edimax"
> > >#
> > ># Using the "mac" match:
> > ># wlan-edimax mac 80:1F:02:D3:B2:83
> > >#
> > ># Using the "devpath" match:
> > ># wlan-edimax devpath
> > >/devices/pci:00/:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0
> > >
> > >eth0 mac XX:XX:XX:XX:XX:XX
> > >wlan0 mac XX:XX:XX:XX:XX:XX
> >
> > Thanks shraptor,
> >
> > It looks good to me.
> >
> > I have been trying to do the same on udev to have persistent
> > interface name according to the MAC address, e.g. by following the
> > tips on
> http://wiki.networksecuritytoolkit.org/nstwiki/index.php/Network_Setup_Tips
> ,
> > but no joy so far. Perhaps it always fails because I am using eudev
> > instead of systemd-udev. So I just use the workaround to have
> > net.ifnames=0 on my kernel command line until we have vdev package
> > on Devuan repository.
>
> And when the vdev package lands on the Devuan repository couold we please
> have a jessie package or backport for it?  Even though jessie is
> supposed to be stable?
>
> -- hendrik
>
> >
> > Cheers,
> >
> > Anto
> > ___
> > Dng mailing list
> > Dng@lists.dyne.org
> > https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Error building vdev

2015-12-26 Thread Jude Nelson
The vdev_subprocess error comes from trying to build vdevfs, an optional
add-on to vdev that is still under development and has not bee sync'ed with
some recent changes to the rest of the codebase.  You can avoid building it
with no loss of functionality.

The only things you'll need to build to get a functioning system are:

make -C vdevd  # builds the daemon
make -C hwdb   # builds the hardware database
make -C example  # builds the sample config files
make -C example initramfs   # builds an initramfs with vdev (use at your
own risk; you'll need to ensure that the resulting initramfs loads the
proper modules)

-Jude


On Sat, Dec 26, 2015 at 7:48 AM, aitor_czr  wrote:

> On 12/26/2015 04:21 AM, Daniel Reurich 
>  wrote:
>
> On the other hand, i packaged succesfully **libfskit** and **libpstat**.> 
> Anybody knows where can i find a stable branch of **libpthread** ?
>
> I thought libpthread was a part of glibc.
>
> regards,
>   Daniel.
>
>
> You are right Daniel, i just downloaded the sources of glibc and it
> includes libpthread.
>
> Thanks,
>
>Aitor.
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] OT: Degree?

2015-11-12 Thread Jude Nelson
> 2) Which companies (just for examples) don't require it?

Forgot to mention--my local LUG was often attended by people from local
software development firms, ISPs, and IT departments.  If you're not a
member of a LUG yet (or some other computer-related club), signing up for
one and getting to know these people is a good way to get a professional
network started :)  They can also help guide you on your future career
choices, and even help you get jobs with them.

On Thu, Nov 12, 2015 at 2:49 PM, Jude Nelson  wrote:

> Hi Mitt,
>
> Questions:
>> 1) Are there many people without degrees in the industry?
>>
>
> Most software engineers I know have at least a minor in computer science,
> but have at least a BS or BA in some engineering discipline if they don't
> have a BS/BA in computer science.  I have met a few really proficient
> self-taught developers, but they are the exception, and they almost always
> had a leg-up from someone else.  Every large company I have worked for
> required a degree from its software engineers.
>
>
>> 2) Which companies (just for examples) don't require it?
>>
>
> Anyone you can convince to hire you :)  I'd go for start-ups and smaller
> shops, since the hiring processes there probably won't be so impersonal as
> to automatically ignore your application simply for lack of a degree.
> Smaller shops will ask to see a portfolio of previous work (like the stuff
> on your github), or ask you to do a small week-long project with some of
> the other employees in order to judge how proficient you are when you're in
> your element.
>
>
>> 3) Are there any hobbyists around here, that earn some money from
>> coding?
>>
>> From what I've heard, universities here teach something that is
>> obsolete and is not used anymore, or simply don't teach what we do
>> here (Unix, administration, hardware...).
>>
>
> I've had experiences writing software both with and without a formal
> education.  I'm of the opinion that if you go to university in order to
> acquire a formal background in computer science, then it's worth every
> penny.  This is because a formal background helps you understand both
> theory and practice from first principles.  Once you can understand it from
> first principles, it becomes a lot easier to pick up new skills, and makes
> it possible to design long-lasting low-maintenance software that won't need
> to be rewritten from scratch every few years.  It also gives you the
> ability to look at trends in the industry and tell the difference between
> what's fundamentally new, what's a passing fad, and what's snake-oil.  Of
> course, the mileage you get out of it depends on how thorough you were in
> making sure you understand all the material.
>
> If you instead want to focus more on learning specific skills, you might
> want to consider going to a community college and getting your associate
> degree.  It's a lot less expensive than university, and faculty usually
> come from an industrial background and can share their real-world
> experiences with you.  There will almost always be more hands-on courses
> available than at university, such as on things like systems
> administration, Unix, mobile app development, game development, and
> preparation classes for particular certifications.  One nice thing about
> community college is that if you decide later that you want to go on to
> university, most universities will accept some/all of the credits you
> earned at your community college (but double-check this first!).  For
> example, both of my parents and my brother got their bachelor degrees by
> doing two years at community college and two years at university.
>
> If you do go the university route, you should go to a non-profit,
> regionally-accredited one [1], and if at all possible, you should
> physically attend (even if it means a long commute).  Also, you'd be amazed
> at how many scholarships go unclaimed each year.
>
> -Jude
>
> [1] https://en.wikipedia.org/wiki/Regional_accreditation
>
>
>> Thanks for any kind of information,
>>
>> Mitt
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] OT: Degree?

2015-11-12 Thread Jude Nelson
Hi Mitt,

Questions:
> 1) Are there many people without degrees in the industry?
>

Most software engineers I know have at least a minor in computer science,
but have at least a BS or BA in some engineering discipline if they don't
have a BS/BA in computer science.  I have met a few really proficient
self-taught developers, but they are the exception, and they almost always
had a leg-up from someone else.  Every large company I have worked for
required a degree from its software engineers.


> 2) Which companies (just for examples) don't require it?
>

Anyone you can convince to hire you :)  I'd go for start-ups and smaller
shops, since the hiring processes there probably won't be so impersonal as
to automatically ignore your application simply for lack of a degree.
Smaller shops will ask to see a portfolio of previous work (like the stuff
on your github), or ask you to do a small week-long project with some of
the other employees in order to judge how proficient you are when you're in
your element.


> 3) Are there any hobbyists around here, that earn some money from
> coding?
>
> From what I've heard, universities here teach something that is
> obsolete and is not used anymore, or simply don't teach what we do
> here (Unix, administration, hardware...).
>

I've had experiences writing software both with and without a formal
education.  I'm of the opinion that if you go to university in order to
acquire a formal background in computer science, then it's worth every
penny.  This is because a formal background helps you understand both
theory and practice from first principles.  Once you can understand it from
first principles, it becomes a lot easier to pick up new skills, and makes
it possible to design long-lasting low-maintenance software that won't need
to be rewritten from scratch every few years.  It also gives you the
ability to look at trends in the industry and tell the difference between
what's fundamentally new, what's a passing fad, and what's snake-oil.  Of
course, the mileage you get out of it depends on how thorough you were in
making sure you understand all the material.

If you instead want to focus more on learning specific skills, you might
want to consider going to a community college and getting your associate
degree.  It's a lot less expensive than university, and faculty usually
come from an industrial background and can share their real-world
experiences with you.  There will almost always be more hands-on courses
available than at university, such as on things like systems
administration, Unix, mobile app development, game development, and
preparation classes for particular certifications.  One nice thing about
community college is that if you decide later that you want to go on to
university, most universities will accept some/all of the credits you
earned at your community college (but double-check this first!).  For
example, both of my parents and my brother got their bachelor degrees by
doing two years at community college and two years at university.

If you do go the university route, you should go to a non-profit,
regionally-accredited one [1], and if at all possible, you should
physically attend (even if it means a long commute).  Also, you'd be amazed
at how many scholarships go unclaimed each year.

-Jude

[1] https://en.wikipedia.org/wiki/Regional_accreditation


> Thanks for any kind of information,
>
> Mitt
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Packaging vdev

2015-11-10 Thread Jude Nelson
Hi aitor_czr,

On Tue, Nov 10, 2015 at 7:25 AM, aitor_czr  wrote:

> I uploaded fskit to gitlab:
>
> https://git.devuan.org/aitor_czr/fskit/tree/gbp-master
>

That's a very outdated version of fskit.  The latest one (the one
consistent with vdev) is in github:  https://github.com/jcnelson/fskit


>
>
> I didn't see the dpkg template in 'contrib/debian'. That blindness !!
>
> Now, i see some significant differences between this template and mine. In
> my opinion:
>
> 1.- '/usr/lib/libfskit.so' and 'usr/lib/libfskit_fuse.so' dinamical
> libraries must be included in the respective *-dev.install files, instead
> of 'libfskit.install' and 'libfskit-fuse.install'.
>
> 2.- libfskit depends on libfskit-fuse and not the other way around,
> because libfskit-fuse is the backend (I did it so in Netman).
>
> Isn't it?
>

It's the other way around:  libfskit-fuse depends on libfskit.  But unless
you're packaging vdevfs along with vdevd, you don't need libfskit at all :)

HTH,
Jude


>
>
> Aitor.
>
> On 11/08/2015 02:38 PM, shraptor 
>   wrote:
>
> Sorry read a little bit fast there, thought you was building vdev but
> you are working on fskit
>
>
> anyway default is */usr/local/lib/**
> Defaults can be overridden in buildconf.mk
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Is Jude Nelson OK?

2015-10-28 Thread Jude Nelson
I'm alive, barely.  Not only am I working on my thesis, but also I work at
a start-up based on my thesis's technology, and I've had to spend the past
few weeks preparing for a conference at which I'm presenting this week.  I
haven't even had time to answer emails :(

Shraptor: I've seen your emails and Github reports--I think you've
discovered the source of the ID_INPUT bug.  The udev-compat.sh script walks
the metadata stored in /dev/metadata/dev/$DEVICE, and uses it to generate
the udev labels and tags.  The stat_input helper in /lib/vdev should print
out VDEV_INPUT=1 when given the path to the device file to your mouse, and
VDEV_INPUT=1 should be present in
/dev/metadata/dev/$MOUSE_DEVICE/properties.  udev-compat.sh reads the
properties file and translates VDEV_INPUT=1 into E:ID_INPUT=1 in
/run/udev/data/$MOUSE_DEVICE_ID.  The fact that this isn't happening
consistently suggests either a race condition, or a bug in udev-compat.sh
that causes the udev file (in /run/udev) to get overwritten somehow.

Example of what should happen with character device 13,82
(/dev/input/event18 on my laptop)

$ /lib/vdev/stat_input /dev/input/event18
VDEV_INPUT=1
VDEV_INPUT_MOUSE=1
VDEV_INPUT_CLASS=mouse
VDEV_PROPERTIES="VDEV_INPUT VDEV_INPUT_MOUSE VDEV_INPUT_CLASS "

$ stat /dev/input/event18
  File: '/dev/input/event18'
  Size: 0 Blocks: 0  IO Block: 4096   character special file
Device: fh/15d Inode: 38955   Links: 1 Device type: d,52
Access: (0660/crw-rw)  Uid: (0/root)   Gid: (  149/   input)
Access: 2015-09-04 17:57:47.982595330 -0400
Modify: 2015-09-04 17:57:47.982595330 -0400
Change: 2015-09-04 17:57:48.058595332 -0400
 Birth: -

$ cat /run/udev/data/c13:82
I:6426
E:ID_PATH=platform-i8042-serio-2
E:ID_PATH_TAG=platform-i8042-serio-2
E:ID_INPUT=1
E:ID_INPUT_MOUSE=1
E:ID_INPUT_CLASS=mouse

If the file is getting overwritten somehow, one way to get a trace of it
happening is to use inotifywatch(1) to watch /run/udev/data/ to see what
files get created, written, and unlinked when you plug your mouse in.

Apologies for disappearing for the past two weeks.  Getting ready for this
next conference took a lot more time than I hoped it would :/
-Jude

On Wed, Oct 28, 2015 at 10:47 AM, aitor_czr  wrote:

> I had a look at vdev...
>
> Impresive.
>
> I will try to debianize it.
>
> Aitor.
>
> On 26/10/15 13:00, Jaromilwrote:
>
> > On Mon, 2015-10-26 at 10:46 +0100, shraptor wrote:
>
> > > Maybe he is just swamped with work.
>
> > > He said he follows what's happening and that there are still some> 
> > > hiccups to work out. He also wrote that he finds less and less time> time 
> > > to work on vdev this academic year.
>
> Of course this is it. a Ph.D. can be very demanding especially in
> writing phase and especially if full-time and including a tuition
> contract.
>
> Lets allow people involved to find their own pace as Devuan is still
> based on voluntary effort and everyone involved feels enough the urge as
> well the peer pressure.
>
> The current development phase is aligning for a beta release, there is a
> lot of work going on on many levels, not only technical, but less
> urgency for vdev anyway, which won't be substituting udev right away.
> It is indeed good to have it packaged, so more people can try and
> perhaps it will attract more contributors.
>
> So in case of vdev I have no worries, as Jude is well dedicated and
> understand the huge importance of what he is doing, with your help of
> course, and also vdev is a concrete outcome of his Ph.D. thesis, so
> there is an incentive also in that context to carry it on.
>
> In any case, good that we care about each other. After all it's been one
> year now we are sitting around this camp, warming canned beans in pans
> over the fire and doing our best to re-build a new town :^) and its
> coming along.
>
> ciao
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] vdev status update: eventfs

2015-09-23 Thread Jude Nelson
Hi shraptor,

On Wed, Sep 23, 2015 at 1:30 PM, shraptor  wrote:

> On 2015-09-23 17:14, Jude Nelson wrote:
>
>> @shraptor
>>
>>>  So how to get eventfs going with vdev.
>>> ./eventfs /run/udev
>>> or where should eventfs be mounted?
>>> Eventfs mounting will not be handled by vdev, right?
>>>
>>
>> Vdev won't set up eventfs.  I'll ship a sysv init script with it that
>> will mount it automatically (probably shortly after init starts, since
>> libudev-compat programs will need it relatively early in the boot
>> process).
>>
>
> Is it a hard dependency on eventfs?
>

Vdev does not need eventfs.  Libudev-compat benefits from using it, but
does not need it for correct operation.  It's a soft dependency.

Or will some functionality work without eventfs?
>

Yes--it will remain possible to use libudev-compat without eventfs.


>
> Is it the same data as was made availible in /run/udev before??
>

No, eventfs will handle the contents of /dev/metadata/udev/events and
/dev/events.  If you look in /dev/metadata/udev/events, you'll see that
libudev-compat processes will have created a bunch of directories
there--one for each struct udev_monitor--into which vdev's udev-compat.sh
helper writes device events.  Currently, there is no straightforward and
automatic way to clean this directory out, but doing so is nevertheless
necessary since the directories for a process's struct udev_monitor
instances will persist after the process dies (I've written a script to
clean the dead directories out periodically, but it's not perfect).  By
having libudev-compat clients write to eventfs, we can ensure that these
directories are automatically removed after the process that created them
dies.

-Jude


>
>
>
>> I was planning on having it mounted on /run/events, in order to make
>> it available as a generic IPC system for other programs to use for
>> their own purposes.  Eventfs isn't specific to vdev; I'm hoping to
>> use it as a partial alternative to dbus.  I'm open to alternative
>> mount points, though.
>>
>> @jaromil
>>
>>>  Amazing news. noone here doubts you are continuing to build up on
>>>
>> the
>>
>>> solid foundations you laid, I am sure vdev will become a relevant
>>> component for many mission-critical GNU/Linux system installations.
>>>
>>
>> Please do not hesitate to ask for anything you need in terms of
>>> infrastructure and funding we can contribute from our donation pot.
>>>
>>
>> Thank you for your generous offer!  I think I'm fine for now insofar
>> as development infrastructure, but one thing that will be particularly
>> tricky is creating the packaging scripts needed to replace udev
>> automatically, but without rendering the host unbootable if something
>> goes wrong.
>>
>> Thanks,
>> Jude
>>
>> On Tue, Sep 22, 2015 at 6:20 AM, vmlinux  wrote:
>>
>> Great news! Thank you for all your efforts!
>>>
>>> On September 21, 2015 9:44:12 PM CDT, Jude Nelson
>>>  wrote:
>>>
>>> ::I'm pleased to announce the availability of eventfs
>>>
>>> --
>>> Sent from a Mobile device.
>>>
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] vdev status update: eventfs

2015-09-23 Thread Jude Nelson
@shraptor
> So how to get eventfs going with vdev.
> ./eventfs /run/udev
> or where should eventfs be mounted?
> Eventfs mounting will not be handled by vdev, right?

Vdev won't set up eventfs.  I'll ship a sysv init script with it that will
mount it automatically (probably shortly after init starts, since
libudev-compat programs will need it relatively early in the boot process).

I was planning on having it mounted on /run/events, in order to make it
available as a generic IPC system for other programs to use for their own
purposes.  Eventfs isn't specific to vdev; I'm hoping to use it as a
partial alternative to dbus.  I'm open to alternative mount points, though.

@jaromil
> Amazing news. noone here doubts you are continuing to build up on the
> solid foundations you laid, I am sure vdev will become a relevant
> component for many mission-critical GNU/Linux system installations.

> Please do not hesitate to ask for anything you need in terms of
> infrastructure and funding we can contribute from our donation pot.

Thank you for your generous offer!  I think I'm fine for now insofar as
development infrastructure, but one thing that will be particularly tricky
is creating the packaging scripts needed to replace udev automatically, but
without rendering the host unbootable if something goes wrong.

Thanks,
Jude

On Tue, Sep 22, 2015 at 6:20 AM, vmlinux  wrote:

> Great news! Thank you for all your efforts!
>
> On September 21, 2015 9:44:12 PM CDT, Jude Nelson 
> wrote:
>
> ::I'm pleased to announce the availability of eventfs
>
> --
> Sent from a Mobile device.
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] vdev status update: eventfs

2015-09-21 Thread Jude Nelson
Hey everyone,

I promise, I'm not dead :)  I've been working on vdev off and on over the
past couple months as time permitted, but I haven't had anything
interesting to report here (mostly bug fixes, which are tracked on the
project's Github [1]).  This past week I've been able to spend more time on
vdev, now that my major event for $WORK has come and gone.

I'm pleased to announce the availability of eventfs [2], the final piece of
software required to replace udev.  Eventfs is a specialized userspace
filesystem that replaces the udev-to-libudev event multicast protocol,
which is currently based on netlink but will soon be based on kdbus.
Eventfs fulfills an equivalent role, but it does so in a portable manner in
userspace, and it abstracts dealing with message multicast groups as
dealing with files and directories with a few extra rules [3].

I'm going to migrate my production machine to using eventfs with
libudev-compat this weekend.  Once I'm satisfied that it works as expected,
I'll begin packaging all of vdev's components for Devuan.

Questions, comments, and feedback are all welcome :)

Thanks,
Jude

[1] https://github.com/jcnelson/vdev
[2] https://github.com/jcnelson/eventfs
[3] https://github.com/jcnelson/eventfs/blob/master/README.md
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] What's /dev/bus/usb?

2015-08-27 Thread Jude Nelson
/dev/bus/usb/* are USB devices, organized by the kernel-assigned USB bus
number and USB device number (i.e.
/dev/bus/usb/$USB_BUS_ID/$USB_DEVICE_ID).  This includes not only USB
devices like mice and Web cameras, but also USB hubs and controllers.

Vdev creates the /dev/bus/usb/* device files as well.

-Jude

On Thu, Aug 27, 2015 at 9:43 AM, Steve Litt 
wrote:

> Hi all,
>
> What's /dev/bus/usb? On Wheezy, this is where you must aim your
> inotifywait command to detect insertion and removal of flash drives.
>
> Is /dev/bus/usb used on Devuan?
>
> Is /dev/bus/usb a udev thang, and if so, does vdev continue the
> tradition?
>
> Thanks,
>
> SteveT
>
> Steve Litt
> August 2015 featured book: Troubleshooting: Just the Facts
> http://www.troubleshooters.com/tjust
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Can dracut use vdev?

2015-08-12 Thread Jude Nelson
Hi Steve,

I've never tried it with dracut; all of my efforts have been getting it to
work with Debian's initramfs tools.  I don't know how tightly coupled
dracut is to udev, but it's worth investigating at some point :)

-Jude

On Wed, Aug 12, 2015 at 8:41 AM, Steve Litt 
wrote:

> Hi all,
>
> Is there anyone here using dracut on a system that uses vdev instead of
> udev? Does it work OK?
>
> Thanks,
>
> SteveT
>
> Steve Litt
> August 2015 featured book: Troubleshooting: Just the Facts
> http://www.troubleshooters.com/tjust
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Congratulations to the Devuan team

2015-08-12 Thread Jude Nelson
Thank you everyone for your kind words about vdev!

I apologize for not posting much about it for the past few weeks.  I had
been on vacation earlier, and now almost all of my spare time between
getting back and September 12 is taken up by finishing up my PhD thesis and
gearing up for a conference that the start-up I'm working for is organizing
[1].  I've mostly been working behind the scenes with a few people from
this list on finding and fixing bugs in vdev.

Once September 12 comes and goes, I'll be able to devote more time towards
getting a package ready and finishing up a few remaining chores on the vdev
issue tracker.  Then I can create a versioned branch that will evolve into
the first stable release :).

Thank you all for your patience!
-Jude

[1] If anyone's interested, the conference details are here:
http://blockstack.org/summit

On Wed, Aug 12, 2015 at 10:30 PM, Robert Storey 
wrote:

> About vdev...
>
> It looks like it's almost ready for prime time, but that further testing
> is needed to work out any bugs. So I'd like to throw out a little
> suggestion to expedite that.
>
> Could someone come up with a package so that we can install vdev on
> Debian? In my case, I'm currently using antiX as my stable operating
> system. I would be willing to install vdev on it and put it through its
> paces, reporting back any suspected bugs I encounter.
>
> Barring a specific package, then maybe some published instructions and a
> download for installing it on Debian.
>
> It sounds to me like vdev could be a game changer, so I'm enthused about
> installing it and doing what I can to make it a new standard.
>
> As I've mentioned before, I do occasionally write for DistroWatch, so if I
> can get a positive experience with vdev, I'd do an article on that.
> Hopefully, this would encourage others to download and install vdev,
> helping to move along its widespread adoption.
>
> Kudos to all the Devuan developers.
>
>  - Robert
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] automount, mount, and USB sticks

2015-07-28 Thread Jude Nelson
On Tue, Jul 28, 2015 at 11:09 PM, James Powell 
wrote:

>  Eventually, and I kinda realized this, work may be needed to write a
> udisks replacement for vdev that can work off vdev without loosing
> functionality to udisks using applications and file managers, especially
> for non-Linux systems.
>
> Nothing fancy, but as long as it works and allows for some level of
> control for admins, I don't have a problem with it.
>
> Thoughts?
>

If all udisks2 needs from the device manager is libudev (or libgudev), then
we should be good to go as-is.  Libgudev should work unmodified with
libudev-compat.

However, replacing udisks[2] with a suite of simple setuid or setgid
programs that implement the equivalent functionality might be a better
long-term solution.  It would be much easier to hook into a GUI, for
example, and if done right, it would remove the need for polkit and dbus
integration.

-Jude

 --
> From: Hendrik Boom 
> Sent: ‎7/‎28/‎2015 7:45 PM
> To: dng@lists.dyne.org
> Subject: Re: [DNG] automount, mount, and USB sticks
>
>  On Tue, Jul 28, 2015 at 01:08:26PM -0700, Gregory Nowak wrote:
> > On Tue, Jul 28, 2015 at 03:17:11PM -0400, Hendrik Boom wrote:
> > > Of course I have to guess whether the device has
> > > been plugged in as /dev/sdb, or /dev/sde, or whatever.  In case of
> > > (frequent) doubt, I switch to a root console with control-alt-F1 and a
> > > login, unplug the device, and plug it in again.  It will the tell me
> > > after a while, that a new device has been inserted, and tell me what
> > > /dev/sd* name it has dynamically installed.  I end up, as root,
> > > mounting the device with root as the owner.  It's usually a USB stick
> > > with one of the ubiquitous Microsoft file systems used on USB sticks,
> > > and all the files can be read or writen by root only.
> >
> > There is a much easier way. Instead of switching consoles and
> > guessing, just plug the device in, and look at the last screen full of
> > the output from dmesg.
>
> Yes, that would have been easier.
>
> > Also, if you're mounting on your own laptop, it
> > will usually have one hd, /dev/sda. When you plug in a usb device, it
> > will probably have /dev/sdb. If you unplug it, and plug in the same
> > device, or plug in another stick, it will probably have /dev/sdb
> > still.
>
> For whatever reason, there was a time when it kept picking new letters
> if I umounted the stick, took it ouot, and put another in.  Maybe there
> was a bug somewhere then?  But I could not rely on it always being
> /dev/sdb.
>
> > So, you could just put a line in /etc/fstab which will allow a
> > normal user to mount /dev/sdb1 for example to whatever directory you
> > want. All you would have to do as a normal user is to type:
> > mount /dev/sdb1
> > after plugging in the drive, and you should be able to find its'
> > contents under whatever directory you specified in fstab.
>
> Truth is, I no longer trust it to be consistent.
>
> -- hendrik
>
> >
> > Greg
> >
> >
> > --
> > web site: http://www.gregn.net
> > gpg public key: http://www.gregn.net/pubkey.asc
> > skype: gregn1
> > (authorization required, add me to your contacts list first)
> > If we haven't been in touch before, e-mail me before adding me to your
> contacts.
> >
> > --
> > Free domains: http://www.eu.org/ or mail dns-mana...@eu.org
> > ___
> > Dng mailing list
> > Dng@lists.dyne.org
> > https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] A better default windows manager

2015-07-25 Thread Jude Nelson
On Sat, Jul 25, 2015 at 2:41 PM, Hendrik Boom 
wrote:

> On Sat, Jul 25, 2015 at 12:47:13PM -0500, T.J. Duchene wrote:
> >
> >
> > On 7/25/2015 9:54 AM, Steve Litt wrote:
> > >
> > >I've heard that wayland will require systemd.
> > >
> > >SteveT
> > >
> > >
> > I have to apologize, Steve.
> >
> > When I refer to "Wayland" I am referring to the Linux project, which
> > as far as I know does NOT have anything to do with systemd.   It's
> > just easier to call it "Wayland" so everyone know what I am talking
> > about.
> >
> > Weston is the Linux implementation of Wayland.  Wayland itself is
> > nothing more than a display protocol, which has nothing more to do
> > with systemd than X11 does.
>
> So is it Weston that does or does not involve systemd?
> And which is it, finally?
>

Weston does not require systemd, but it does offer optional integration
with logind.  It will rely on XDG environment variables if logind is not
running.

Related, Weston depends on dbus by default.  Unsurprisingly, the dbus
integration code was added by an individual who is both a core systemd
developer and core kdbus developer.  However, it can be disabled at
compile-time.

Like T.J. said, X11 is to X.org just as Wayland is to Weston.  Wayland does
not depend on systemd or dbus anymore than HTTP does.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] The figure of commits behind the upstream on github

2015-07-23 Thread Jude Nelson
Hi Anto,

[snip]

> does anybody have any suggestion how to easily find out that our fork
> repositories need updating without keep checking the upstream repositories?
>

You're going to have to pull changes upstream periodically.  That's just
the way git is designed--if you're not hosting the repository that the
original project developers push to, then you're by definition going to be
pulling from their repository.

However, from your description, it sounds like you could make your workflow
a little bit easier:
1. fork the original repository
2. add the original repository as a remote for pulls (i.e. git add remote
...)
3. make your changes and push them to your forked repository
4. pull from the original repository (i.e. git pull )
5. resolve merge conflicts
6. repeat steps 3-6 periodically

If your changes are unlikely to be in conflict by pushes to the original,
you might consider creating a cron job to periodically run steps 3 through
6 for you, and have it email you when there are merge conflicts (step 5)
that can't be automatically resolved.

HTH,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] GTK (was Will there be a MirDevuan "WTF"?)

2015-07-23 Thread Jude Nelson
On Thu, Jul 23, 2015 at 10:30 PM, T.J. Duchene 
wrote:

> On Thursday, July 23, 2015 08:22:55 PM Hendrik Boom wrote:
> > On Fri, Jul 24, 2015 at 12:12:01AM +0200, Teodoro Santoni wrote:
> > > ... but, yeah, it's outside the scope of Devuan. D-Bus just sucks and
> is
> > > documented on a random basis, when you compare it to the rest of
> > > GNU/Fedora
> > > it's... like GTK: it sucks, there are alternatives but it's a PITA to
> port
> > > away 'cause a lot of big codebases uses them as foundation.
> >
> > So there are alternatives to GTK:  Do any suck less?  What are they?
> >
> What's wrong with GTK?  I don't care for it, but it is not any worse than
> Microsoft's UI.
>
> There are lots of alternatives.  wxWidgets and Qt are the most common
> suggestions, but there are far more esoteric ones.  If you are aiming for
> widest portability support, Qt is probably your best bet.
>

Doesn't wxWidgets use GTK on GNU/Linux?


>
> I don't care for it myself - because it is C++.


Minor correction:  GTK is written in C, and relies on GLib, which is also
written C.  However, it's open to debate as to how similar/different
C-plus-GLib is to C++ in practice.

Cheers,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Will there be a MirDevuan "WTF"?

2015-07-22 Thread Jude Nelson
>
>
> If I was able to understand correctly, vdev works with dbus.


Vdev does not use dbus.  No idea how or why you came to this conclusion.
Search the code if you don't believe me.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] vdev status update: performance, bugfixes, and udev events

2015-07-07 Thread Jude Nelson
Hey everyone,

I have the latest news for vdev:

* [EXPERIMENTAL] Vdevd now has actions and helpers that will cause it to
generate and propagate device events to libudev-compat clients.
Libudev-compat clients should receive hotplug events as they would have
with libudev, and they should be able to enumerate devices.  This means
that it should be possible now to run X11 with vdevd and libudev-compat,
without needing an xorg.conf.  To do so, you'll need to symlink vdev's
/dev/metadata/udev to /run/udev.

* Hardware database access performance has been significantly improved, and
made more accurate (i.e. it should now match all prefixes against the
device modalias, not just the longest one).  By "significant", I mean by an
order of magnitude.

* As an optimization, vdevd can now run specially-crafted helper scripts as
"daemonlets."  Instead of fork()/exec()'ing a shell for each action, vdevd
will instead fork() an action's command once and feed it a sequence of
device requests, encoded as a list of environment variables.  When running
as a daemonlet, the command will be expected to run a loop that will parse
the request from vdevd, call the command's main body of code, and report
back the "exit" status.  The heavyweight scripts (i.e. the ones that
benefit from this) have all been turned into daemonlets in this round of
commits.  This leads to around 25% performance improvement (on average) for
each command.

* vdevd now benchmarks its actions, and writes performance information to
its logfile at the end of coldplug processing.  Just to give a reference
frame:  vdevd currently takes about 9 seconds to cold-process all of my
laptop's hardware (i.e. it's slower than udev, but not that much slower).

* libvdev is no longer a build target.  Its code will instead be statically
linked to vdevd and vdevfs. This is to make installation and deployment
easier.  There's no real loss to doing so--the library isn't that big in
the first place, and the only programs that will ever use it are vdevd and
vdevfs (note that libvdev is not at all related to libudev).

* Bugfixes:
-- the pre-seed script that runs before coldplug device processing can now
create device nodes, and signal to vdevd to run the associated helper
scripts anyway.
-- the pre-seed script will select the first free loop device (with losetup
-f) for the hardware database.
-- [NEEDS CONFIRMATION] the ifname.sh script should select the correct
config file now.  I'm still chasing down a "Device or resource busy" bug in
renaming interface names, so please keep your eye out for it.
-- [NEEDS CONFIRMATION] the disk.sh helper should now generate /dev/disk
for USB disks.

Thanks to everyone who helped me test vdevd so far!
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] [Dng] vdev status update: device properties and udev compatibility

2015-06-29 Thread Jude Nelson
Hi Isaac,

On Mon, Jun 29, 2015 at 10:12 AM, Isaac Dunham  wrote:

> On Fri, Jun 26, 2015 at 04:40:33PM +0200, Didier Kryn wrote:
> > Le 25/06/2015 07:04, Jude Nelson a écrit :
> > >  In time, it will also work the busybox tools, but I am still working
> on
> > >getting busybox's blkid to work here (specifically, we need the "-p"
> flag
> > >to work in order to get low-level partition table information and
> > >filesystem metadata).
> >
> > Contrary to the other options, which only deal with formatting the
> > output, option -p cannot be emulated with a wrapper script. Have you any
> > idea of how to proceed. I am only a consumer of Busybox and have never
> tried
> > to dig into the source. Are you, or anybody in this list, able to submit
> a
> > patch to busybox blkid?
>
> What information fields from -p are needed?
>

For libudev compatibility, we will need:
* usage (e.g. filesystem, crypto_LUKS, etc.)
* filesystem type
* filesystem UUID
* subvolume UUID (where applicable)
* partition table type (e.g. dos, GPT, etc.)
* partition table UUID
* partition table entry scheme
* partition table entry type
* partition table entry size
* partition table entry offset
* partition table entry UUID
* partition table entry number
* parent disk device

Examples:

# blkid -p -o export /dev/sda
DEVNAME=/dev/sda
PTUUID=0003da58
PTTYPE=dos

# blkid -p -o export /dev/sda1
DEVNAME=/dev/sda1
UUID=67378bcc-ba07-4074-9a7e-9daef3537ad5
VERSION=1.0
TYPE=ext4
USAGE=filesystem
PART_ENTRY_SCHEME=dos
PART_ENTRY_UUID=0003da58-01
PART_ENTRY_TYPE=0x83
PART_ENTRY_NUMBER=1
PART_ENTRY_OFFSET=2048
PART_ENTRY_SIZE=195309568
PART_ENTRY_DISK=8:0

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Packages aren't the only path to alternate inits

2015-06-26 Thread Jude Nelson
Has anyone taken a look at pleaserun?  Link:
https://github.com/jordansissel/pleaserun.  It's made by the same person
who wrote fpm (Jordan Sissel).  It lets you generate init scripts for a
plethora of different inits, given only the installed location of the
binary.

-Jude

On Thu, Jun 25, 2015 at 7:50 PM, Florian 
wrote:

> On Thu, 18 Jun 2015 16:58:59 +0200
> Mat  wrote:
>
>
> > So in general I think that this approach - moving init system specific
> > things out of the main package and providing one package per init
> > system
> > - is a good way of supporting multiple init systems.
> >
> > For instance:
> > openssh-server - the ssh daemon, stripped of its startup
> > script openssh-server-sysv- the traditional sysvinit startup
> > scripts openssh-server-run - startup scripts for runit
> > openssh-server-epoch   - startup scripts for epoch
> > openssh-server-openrc  - startup scripts for OpenRC
> > openssh-server-systemd - why not?
> > etc..
>
>
> Hello diversity!
>
> It's quite for a while that I'm reading this formidable list, now it's
> time to spend my actual two cents: Since I've read the following mail
> from the "epoch feature request" thread...
>
> On Wed, 17 Jun 2015 11:25:28 -0400
> Steve Litt  wrote:
>
> > Here is the sum and total of information that could ever be needed for
> > an Epoch Object (service, thing, whatever):
> >
> (...)
> >
> > Most of the preceding can safely be left to its default and remain
> > unmentioned. Some of it is defined by the LSB header. My point is, by
> > the time all is said and done, an Epoch object is pretty darn simple,
> > pretty much like a systemd unit file (which is probably what we
> > *should* kidnap as our source of conversion data).
>
>
> ...I wonder, if it is necessary to create that many (daemon*initsys)
> packages, as Mat (and others?) proposed - or if it was possible to
> create some standardized per-daemon config file, to be parsed by
> init-system-specific scripts into suitable configurations / init-
> scripts.
>
> On the long run, these "universal" definitions could be maintained with
> their respective daemon, while the particular parser-scripts might
> become part of the init-systems, possibly as an extra package.
>
> This should provide a simple way of solving package dependencies, while
> bringing greatest flexibility, if these init-system-specific scripts
> were invokable in some interactive mode, asking the user (or a higher-
> level configuration tool) which daemons to take care of.
>
> Disclaimer: I'm more of an advanced user than a developer, but willing
> to get my hands dirty if this idea should prove to make sense for at
> least a subset of the existing (and upcoming:) init-systems, perhaps
> even including systemd.
>
> Regards,
>
> Florian
>
>
> --
> "A specialist is a barbarian whose ignorance is not well-rounded."
>  Stanislaw Lem, His master's voice
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] [Dng] vdev status update: device properties and udev compatibility

2015-06-26 Thread Jude Nelson
Hi Didier,

On Fri, Jun 26, 2015 at 10:40 AM, Didier Kryn  wrote:

> Le 25/06/2015 07:04, Jude Nelson a écrit :
>
>>   In time, it will also work the busybox tools, but I am still working on
>> getting busybox's blkid to work here (specifically, we need the "-p" flag
>> to work in order to get low-level partition table information and
>> filesystem metadata).
>>
>
> Cheers Jude. The amount of work already done is impressive!
>
> I vave a question specifically about Busyboxe's blkid.
>
> Contrary to the other options, which only deal with formatting the
> output, option -p cannot be emulated with a wrapper script. Have you any
> idea of how to proceed. I am only a consumer of Busybox and have never
> tried to dig into the source. Are you, or anybody in this list, able to
> submit a patch to busybox blkid?


I'll see what I can do, but in the mean time, I'll have vdev try to
continue without the information given by -p.

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] [Dng] vdev status update: device properties and udev compatibility

2015-06-24 Thread Jude Nelson
Hey everyone,

After a longer-than-expected development cycle, I have the latest news for
vdev.

The TL;DR is that vdev has gained enough infrastructure to generate the
information that normally gets put in /run/udev.  This is important for
most libudev clients, because this information gets used to detect and
enumerate hardware.  It's the way the X server detects input devices via
udev, for example.

This is still being heavily tested, and is not complete, but I am please to
report that:

* vdev now tracks device properties and device tags, under
/dev/metadata/$DEVPATH/properties and /dev/metadata/$DEVPATH/tags/,
respectively.  They are added by shell library subroutines available to
vdev's helpers (in subr.sh).

* vdev now uses the same hardware database as udev to report human-curated
hardware properties (such as human-readable vendor strings).  To keep
things simple, vdev comes with a script that generates a squashfs
filesystem image from the *.hwdb files installed to /lib/udev/hwdb.d and
/etc/udev/hwdb.d.  This is our alternative to systemd's/udevd's mmap()-able
on-disk hwdb trie.  The filesystem image itself gets mounted to
/dev/metadata/hwdb by the pre-seed script, and vdev now comes with a helper
tool (hwdb.sh) that can use a combination of a modalias string, a devpath,
a subsystem path, and some sysfs information to look up the device
properties.

* vdev now comes with a "udev-compat.sh" helper script that reads vdev's
/dev/metadata/ directory and hardware database in order to generate
/dev/metadata/udev, which is meant to be symlinked to /run/udev.  This lets
the udev_enumerate API detect and enumerate devices by tags and
properties.  It is important to emphasize that this helper is logically
isolated from the rest of vdev--vdev gets along just fine without it (since
all udev-isms are contained by this helper), so if you don't need
/run/udev, you can safely disable this helper script.

* Disk property detection has been significantly improved, and is much
closer to how udev does it (including adding support for querying a disk's
parent device's properties, which is necessary to handle partitions
properly).  Thanks to Didier for working with me on this!  In time, it will
also work the busybox tools, but I am still working on getting busybox's
blkid to work here (specifically, we need the "-p" flag to work in order to
get low-level partition table information and filesystem metadata).

There is of course more work to be done on this, but the next big milestone
(my next goal) will be to boot to X with vdevd, without having to generate
an xorg.conf.  I have not tried this yet, and I do not expect it to work as
of the latest commit, but I believe that all the necessary infrastructure
is in place to begin the painstaking process of ensuring that vdev detects
enough of the host's devices' properties for commonly-used libudev clients
work as they did with udev.  This will confirm that we generate enough of
/run/udev/ for alpha.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] We Must be Prepared ....

2015-06-23 Thread Jude Nelson
Looks like Linus weighed in.  I found the whole conversation thread
interesting.

http://lkml.iu.edu/hypermail/linux/kernel/1506.2/05492.html

-Jude

On Sat, Jun 20, 2015 at 5:28 PM, KatolaZ  wrote:

> On Sat, Jun 20, 2015 at 08:15:01PM +0200, Didier Kryn wrote:
>
> [cut]
>
> >
> > I think a new generation of programmers has been comitted to
> > maintain and evolve
> > Linux. They have strong technical skills but haven't been taught
> > well enough - or not at
> > all - the philosohy of UNIX. They have fun with Linux; they love
> > writing daemons and
> > using the IPC toolbox and they happily write daemons to replace the
> > security features
> > provided by good old file-permissions. They just don't realize the
> > damage they are
> > causing. They are professionals and they don't care the DIY guy who
> > isn't as skilled as
> > them.
> >
>
> Or...we are just blind cavemen, trying do keep alive a zombie that
> lives only in our memories and has evolved into something else, while
> we were busy flaming about the last flavours of Ubuntu?
>
> I just think it's not a matter of skill (unix has never ever been just
> a matter of skill), but rather a problem of bad attitude towards other
> peers, their work and their contributions. And good attitude towards
> peers is what has allowed the community around Linux to come along in
> these years. Without good attitude, what was once a community will
> slowly -but inexorably- become just a chit-chatty crowd, in which
> speaking louder than your peers would be far more important than
> having anything interesting to say at all.
>
> Well, I'd better stop here, and avoid the usual boring "auntie's
> rant"...
>
> HND
>
> KatolaZ
>
> --
> [ Enzo Nicosia aka KatolaZ --- GLUG Catania -- Freaknet Medialab ]
> [ me [at] katolaz.homeunix.net -- http://katolaz.homeunix.net -- ]
> [ GNU/Linux User:#325780/ICQ UIN: #258332181/GPG key ID 0B5F062F ]
> [ Fingerprint: 8E59 D6AA 445E FDB4 A153 3D5A 5F20 B3AE 0B5F 062F ]
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] We Must be Prepared ....

2015-06-19 Thread Jude Nelson
Whelp, looks like kdbus in systemd is no longer optional (but to be fair,
its use can be disabled at runtime, and won't be used anyway if kdbus isn't
present in the kernel).

Announcement:
http://lists.freedesktop.org/archives/systemd-devel/2015-June/033170.html

-Jude

On Fri, Jun 19, 2015 at 10:06 AM, Clarke Sideroad  wrote:

> On 06/19/2015 02:59 AM, Arnt Gulbrandsen wrote:
>
>> Clarke Sideroad writes:
>>
>>> I hoping the Kernel Developers as a combined whole would see the
>>> bigger Linux picture well beyond the desktop.
>>> I can't see the Kernel being made to swallow something that would
>>> poison the whole multifaceted structure in the way that the various
>>> distros swallowed the, "just another init, what's all the fuss
>>> about?", ever expanding systemd.
>>>
>>
>> Can you imagine the kernel supporting anything that is a problem for its
>> biggest user? http://bit.ly/1ocxYwI
>>
>>
> Android initially just grabbed kernel and forked off.
>
> I suppose you are right the Kernel Developers did go through the hassle of
> luring Google back into the fold and the relationship gets positive press
> for both. In that light it does seem unlikely that they would forego all
> that, just to please the Poetterites.
>
> Clarke
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] We Must be Prepared ....

2015-06-18 Thread Jude Nelson
I'm not worried.  Linus won't accept kdbus until he thinks it's in a
position where it will be stable and easily supported for the foreseeable
future.  Watching kdbus get refactored a few times over this past year, I'd
wager a guess that they're going to end up keeping as much of dbus in
userspace as possible, and only add the parts that absolutely must run in
kernel space to the kernel (as kdbus).  Thus far, this has been limited to
the memfd API, which is needed for zero-copy memory transfers.  They'll
probably also end up adding a specialized kdbusfs (akin to devpts) that
offers namespaced and permissioned access to dbus endpoints, represented as
a hierarchy of character device files.

Remember, kdbus isn't dbus, anymore than a UNIX domain socket is dbus.  The
reason they're working on kdbus at all is because they have discovered that
it's costly to pipe a lot of data between dbus endpoints, and it's hard to
control capabilities, visibility, and access to them (since there are
usecases where endpoints may not trust each other).  Arguably, these
problems can be addressed by using a combination of existing IPC
mechanisms, but the argument that Greg KH and company put forth over and
over again is that there's too much legacy code using dbus at this point
(namely, from the IVI community and desktop communities) that we can't just
tell them to refactor everything.  It might be true--I don't know how big
the IVI codebases are, for example.  However, I don't really sympathize
with the desktop communities--they built dbus to their specifications from
their experiences with DCOP and Bonobo, and still managed to get it wrong.

My $0.02.
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] [Dng] Hal and Vdev

2015-06-16 Thread Jude Nelson
Hi Isaac,

On Wed, Jun 17, 2015 at 12:49 AM, Isaac Dunham  wrote:

> On Tue, Jun 16, 2015 at 02:55:09PM -0400, Jude Nelson wrote:
> > Hi Isaac,
> >
> > On Mon, Jun 15, 2015 at 11:40 PM, Isaac Dunham 
> wrote:
> > > I've looked at https://github.com/cshorler/hal-flash, and here's what
> > > I can make out:
> > > - This version uses dbus to connect to udisks2 for everything it
> > > doesn't stub out. I guess glib is used extensively.
> > > - Answers the following "property strings" for devices in
> > >  libhal_device_get_property_string():
> > >system.hardware.serial, storage.bus, storage.serial
> > >  In libhal_device_get_property_uint64(), only storage.size is answered.
> > >  In libhal_manager_find_device_string_match(), a query  about
> > >  key "storage.drive_type", value "disk", returns a list of hard drives.
> > > storage.bus seems to be more-or-less "ata", NULL, or ...
> > > something else, I don't know what.
> > > I'm not sure if storage.size is free space or total size, but it's
> > > an unsigned 64-bit value.
> > >
> > > The system serial numbers are stored in
> > >  /sys/devices/virtual/dmi/id/*_serial
> > > but are chmod 0400 (readable only to root).
> > >
> > > libhal_device_get_property_{int,double}() are stubs.
> > >
> >
> > Very interesting.  I'm currently in the process of getting vdevd to parse
> > the udev hardware database and generate /run/udev, so we should soon have
> > the necessary machinery to define an action that makes vdevd write those
> > fields somewhere where a stub libhal library can find them.  I'll look
> more
> > into this, if I can figure out the exact fields the stub libhal will need
> > (it seems that they all come from sysfs?).
>
> storage.serial won't, as far as I can tell; it comes from ata_id or the
> equivalent tool.
>

I already have that, then.  I forked ata_id some time ago to create
stat_ata (installed to /lib/vdev/stat_ata), and vdevd's helper scripts
already use it to query (S)ATA disks to generate their persistent symlinks.

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] [Dng] Hal and Vdev

2015-06-16 Thread Jude Nelson
Hi Isaac,

On Mon, Jun 15, 2015 at 11:40 PM, Isaac Dunham  wrote:

> On Mon, Jun 15, 2015 at 08:18:18PM -0400, JeremyBekka C wrote:
> > > Hi Jeremy,
> >
> > > I have a question about the deprecated program hal. We like to stream
> > > videos from Amazon.com but we need hal installed in order to make it
> work.
> > > The Hal Debian wiki says that it is being deprecated and it is being
> > > replaced by udev (https://wiki.debian.org/hal). Since vdev is being
> > > written to replace udev, are there any plans to incorperate hal's
> functions
> > > into vdev or keep maintaining it seperaratly?
> > >
> >
> > Do you know what specific functions of hal you need?  Hal's functionality
> > got split between udisks/udisks2, upower, and udev some time ago.  Things
> > like device plug state, device properties, and device capabilities are
> now
> > tracked by udev (in /run/udev) and accessed by libudev, for example.  My
> > goal for vdev is to be compatible with udev, so if you can use udev
> today,
> > you should be able to use vdev when it's ready.
> >
> > Thanks,
> > Jude
>
> Hal is used "for DRM", which in the context of Flash and the period
> of development almost certainly is "Digital 'Rights' Management".
> I would presume from the fact that one can load the flashplayer
> without it that the library is dlopen'd.
>
> I've looked at https://github.com/cshorler/hal-flash, and here's what
> I can make out:
> - This version uses dbus to connect to udisks2 for everything it
> doesn't stub out. I guess glib is used extensively.
> - Answers the following "property strings" for devices in
>  libhal_device_get_property_string():
>system.hardware.serial, storage.bus, storage.serial
>  In libhal_device_get_property_uint64(), only storage.size is answered.
>  In libhal_manager_find_device_string_match(), a query  about
>  key "storage.drive_type", value "disk", returns a list of hard drives.
> storage.bus seems to be more-or-less "ata", NULL, or ...
> something else, I don't know what.
> I'm not sure if storage.size is free space or total size, but it's
> an unsigned 64-bit value.
>
> The system serial numbers are stored in
>  /sys/devices/virtual/dmi/id/*_serial
> but are chmod 0400 (readable only to root).
>
> libhal_device_get_property_{int,double}() are stubs.
>

Very interesting.  I'm currently in the process of getting vdevd to parse
the udev hardware database and generate /run/udev, so we should soon have
the necessary machinery to define an action that makes vdevd write those
fields somewhere where a stub libhal library can find them.  I'll look more
into this, if I can figure out the exact fields the stub libhal will need
(it seems that they all come from sysfs?).

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Hal and Vdev

2015-06-15 Thread Jude Nelson
Hi Jeremy,

On Mon, Jun 15, 2015 at 8:18 PM, JeremyBekka C 
wrote:

> Hi Jeremy,
>
> I have a question about the deprecated program hal. We like to stream
>> videos from Amazon.com but we need hal installed in order to make it work.
>> The Hal Debian wiki says that it is being deprecated and it is being
>> replaced by udev (https://wiki.debian.org/hal). Since vdev is being
>> written to replace udev, are there any plans to incorperate hal's functions
>> into vdev or keep maintaining it seperaratly?
>>
>
> Do you know what specific functions of hal you need?  Hal's functionality
> got split between udisks/udisks2, upower, and udev some time ago.  Things
> like device plug state, device properties, and device capabilities are now
> tracked by udev (in /run/udev) and accessed by libudev, for example.  My
> goal for vdev is to be compatible with udev, so if you can use udev today,
> you should be able to use vdev when it's ready.
>
> Thanks,
> Jude
>
>
> As James Powwle pointed out, I need the function of hal that deals with
> DRM on the Amazon videos. Since I have udev installed and Amazon videos do
> not play without hal, does that must mean that udev is not responsible for
> DRM? If so, then I misunderstood the point of the hal wiki because I
> thought the functions of hal were included in udev. This would then seem to
> indicate to me that udisks/udisks2 or upower should have taken over the DRM
> function of hal, but that does not seem to be the case.
>
> My question is then, would it be possible to get the DRM functionality of
> hal in vdev or one of the other programs? If so, how could that be
> accomplished? I would like to not have to depend on a deprecated program if
> I don't need to.
>

I don't know enough yet about why Amazon's DRM regime requires libhal and
hal.  A bit of googling on the train this morning suggests that Adobe flash
player (the old unsupported one) needs it for some reason.  I'm not sure
why, though--I looked at the symbol table and linkage tables of the
libflashplayer.so library, and didn't see any references to libhal or even
dbus.

Again, my main goal with vdev is udev compatibility, not necessarily hal
compatibility.  If the requisite functions from hal made it into udev, then
it would be something I would work on as part of vdev's release.  If not,
then it's outside my scope, and would be a separate project.

In the mean time, it looks like someone else has done the legwork to make
hal installable without breaking the things that replaced it:
https://launchpad.net/~mjblenner/+archive/ubuntu/ppa-hal

Hope this helps,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Jenkins build failures on build002

2015-06-15 Thread Jude Nelson
Thanks!  Re-queuing it for build now...

-Jude

On Mon, Jun 15, 2015 at 3:17 PM, Franco Lanza  wrote:

> Anyway, it was a logrotate not running cleanly and a /var/log fill-up
> the root fs. Now it's fixed
>
> --
>
> Franco (nextime) Lanza
> Lonate Pozzolo (VA) - Italy
> SIP://c...@casa.nexlab.it
> web: http://www.nexlab.net
>
> NO TCPA: http://www.no1984.org
> you can download my public key at:
> http://danex.nexlab.it/nextime.asc || Key Servers
> Key ID = D6132D50
> Key fingerprint = 66ED 5211 9D59 DA53 1DF7  4189 DFED F580 D613 2D50
> ---
> echo
> 16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D212153574F444E49572045535520454D20454B414D204F54204847554F4E452059415020544F4E4E4143205345544147204C4C4942snlbxq
> | dc
> ---
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] Jenkins build failures on build002

2015-06-15 Thread Jude Nelson
Hey everyone,

I thought this was an intermittent problem, but repeated trials have
convinced me otherwise.

Jenkins appears to be failing to set up its build directories for i386 and
amd64 when I queue the dbus packages for building.  The last console log
for amd64, for example, is here:
https://ci.devuan.org/job/dbus-binaries/35/architecture=amd64,label=amd64/console.
In all cases, autobuild queued my build requests on host build002, so maybe
something's wrong with that particular host?  The arm64, armhf, and armel
packages succeeded in that build.

For testing purposes, is there a way I can tag a package to build on a
particular host?  Also, is there a way I can tag a package to build for a
particular architecture?

For future reference, I'm not sure where to report errors like on GitLab.
Is there a preferred issue tracker for Jenkins-related bugs?

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Hal and Vdev

2015-06-14 Thread Jude Nelson
Hi Jeremy,

I have a question about the deprecated program hal. We like to stream
> videos from Amazon.com but we need hal installed in order to make it work.
> The Hal Debian wiki says that it is being deprecated and it is being
> replaced by udev (https://wiki.debian.org/hal). Since vdev is being
> written to replace udev, are there any plans to incorperate hal's functions
> into vdev or keep maintaining it seperaratly?
>

Do you know what specific functions of hal you need?  Hal's functionality
got split between udisks/udisks2, upower, and udev some time ago.  Things
like device plug state, device properties, and device capabilities are now
tracked by udev (in /run/udev) and accessed by libudev, for example.  My
goal for vdev is to be compatible with udev, so if you can use udev today,
you should be able to use vdev when it's ready.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Readiness notification

2015-06-14 Thread Jude Nelson
My take-away from this and the related threads is that a daemon author
would ideally provide options to have it:
* Either write log messages to stderr or syslog, but write the same data
regardless;
* Either stay running in the foreground, or auto-background itself once
it's ready to begin taking requests;
* Write a PID file only at the user's request--that is, only if a path is
given.

I figure it's up to the user to select the combination of options suitable
to address the task at hand, and it's up to the distro to select the
sensible defaults.

-Jude

On Sat, Jun 13, 2015 at 2:37 PM, Laurent Bercot 
wrote:

> On 13/06/2015 08:40, Didier Kryn wrote:
>
>> Yes, daemon writers are good-willing developpers; they want their
>> software to serve as many users as possible; and users install
>> distros. This gives power to the distros. But if someone provides
>> them with a KISS readyness-signaling method, along with a systemd
>> wrapper, then they can satisfy RedHat's requests at no cost.
>>
>
>  And there you go:
>  http://skarnet.org/software/sdnotify-wrapper.c
>
>  Untested with a real systemd, because I'm not going to install a
> real systemd anywhere - but I've listened to a socket on the other
> end of NOTIFY_SOCKET and it appears to work. Bug-reports welcome.
>
>
>  The question now is who will develop, maintain and package this
>> wrapper? Will Devuan be the official developper of
>> "Systemd-Readyness-Wrapper", or can anyone convince Openssh or who
>> else to take the job? Or are the daemon's developper powerfull enough
>> to tell RH "do it yourself."?
>>
>
>  I'm willing to maintain this for the time being; as long as systemd
> does not gratuitously break compatibility with itself, it should not
> be too hard. The goal is to encourage daemon developers to stop using
> the sd_notify() interface and just write a newline somewhere; the
> wrapper is just there to make this simple behaviour work with systemd,
> nothing more.
>
>  I firmly believe it should *not* be packaged by Devuan. The wrapper is
> meant to only be used on systemd installations, which is exactly what
> Devuan is not. Devuan can advertise such a wrapper, advocate its use,
> but I don't think it makes sense for it to be a part of the Devuan
> distribution.
>
>  I'm providing a single C file for now. I can turn it into a complete
> package tarball with configure/make/make install if there's interest.
> I'm not going to make distribution-specific packages, though; that's
> the job of distribution maintainers.
>
>  Enjoy!
>
> --
>  Laurent
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] One issue with ongoing depoetterization

2015-06-12 Thread Jude Nelson
Hi Steve,

So, if we code up a dummy sd_notify to interface replace the one from
> systemd, we can make ongoing future depoetterization easier, and very
> possibly give ourselves a better, easier to administer init.
>

If you're referring to this API [1], it doesn't look too bad.  In most
cases, it looks like we should be able to create a library that simply
wrote the relevant information to a well-known location in the filesystem
(such as "/run/srv/$SERVICE/...").  Other processes interested in the state
of $SERVICE would just read it directly, and use inotify(2) to watch for
state changes.  Tooting my own horn here, but if we mounted runfs [2] on
/run/srv/, we could also be guaranteed that /run/srv/$SERVICE/...
automatically disappears if $SERVICE dies unexpectedly.

Thanks,
Jude

[1] http://www.freedesktop.org/software/systemd/man/sd_notify.html
[2] https://github.com/jcnelson/runfs
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Systemd sneaks in was file download zone

2015-06-11 Thread Jude Nelson
Hi Clarke,

Can you:
* give us a listing of which systemd packages are installed (something like
"aptitude search systemd | egrep ^i")?
* use "apt-cache rdepends" to show us which packages depend on them?

Thanks,
Jude

On Thu, Jun 11, 2015 at 1:48 PM, Clarke Sideroad 
wrote:

> On 06/11/2015 11:04 AM, Steve Litt wrote:
>
>> On Thu, 11 Jun 2015 08:35:34 -0400
>> Clarke Sideroad  wrote:
>>
>>  It seems my fresh netboot install this morning has swallowed and
>>> installed systemd.
>>> It was an "expert" 64bit install of "jessie" with XFCE and
>>> subsequently firmware-linux-non-free had been installed for the
>>> embeded video and then the fglrx-driver installed.   Not sure where
>>> it picked up the systemd along that path.
>>>
>>> Removing it and its namesake friends took out Network Manager,
>>> PulseAudio, CUPS and a bunch of assorted other bits
>>> I installed WICD to send this and will now put the furniture back in
>>> place.
>>>
>>> Warning: You will probably be seeing more of this kind of info from
>>> simple folks like me, now that testing is easier with a netboot iso.
>>>
>>> Clarke
>>>
>> Hi Clarke,
>>
>> First, from what I understand, the microsecond you get Devuan Alpha 2
>> installed, go into /etc/apt/sources.list and comment out the two from
>> debian, leaving only the ones from devuan. I think that will help some.
>>
>> Second, my understanding is that NetworkManager and PulseAudio are so
>> thoroughly infested with systemd that it's better to purge them from
>> your system, like you'd throw a bedbug-ridden mattress into the
>> dumpster. No use having that stuff hanging around. I **love** what
>> they've done with Wicd, putting it on the menu right there in front of
>> your face. Nice!
>>
>> Third, what leads you to the conclusion that your system installed
>> systemd? On my VM-hosted Alpha-2 with LXDE, I have a whole bunch of
>> files and directories with "systemd" in their names, but I think it has
>> nothing to do with my bootup.
>>
>> To prove I was initting with sysvinit, I wrote the following
>> shellscript called /root/testdaemon.sh:
>>
>> 
>> #!/bin/sh
>> while true; do
>>date >> /tmp/junk.log
>>sleep 5
>> done
>> 
>>
>> The preceding program, when run, appends the time to /tmp/junk.log
>> every five seconds, a thing you can see with the following command:
>>
>> tail -f /tmp/junk.log
>>
>> Then I put the following line right at the bottom of my /etc/inittab:
>>
>> SV:12345:respawn:/root/testdaemon.sh
>>
>> After I rebooted, /tmp/junk.log kept being appended, meaning that
>> inittab was being read, meaning that sysvinit is doing the initting.
>>
>>
>>  Hi Steve,
>
> These were fresh UEFI hard drive installs not a VM.
> From what I can see systemd is being installed with the base installation
> in both jessie and ceres.
> No debian in my sources.list only deb and deb-src devuan was in there,
> either for jessie or ceres depending on the installation choice.
> I noticed Sysvinit was being installed during the second install phase,
> but on the boot I have systemd.
> Maybe it is the init chooser that is defaulting to systemd.
>
> To confirm the installation of systemd, I checked by doing a search with
> Synaptic and sure enough the slimy thing was there with a green box next to
> it.
>
> I hope to mess with this later but it has swallowed too much of my time
> already today.
> I nuked the install and have returned to my hacked Debian version.
>
> Clarke
>
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] vdev compatibility

2015-06-08 Thread Jude Nelson
Hi David,

On Mon, Jun 8, 2015 at 12:46 PM, David Hare  wrote:

>
> Question for Jude:
>
> I use the live-boot tools a lot and make live-images. The live-boot
> scripts, which go in initramfs, rely a lot on udev and commands like "blkid
> -o udev"..
>
> Will vdev, when ready, have compatibility for such cases?
>

The "-o udev" directive tells blkid to format its output in a way that udev
can import it with an IMPORT{} directive in a rule.  It should work
regardless of whether or not udev is installed.

I'm not familiar with the live-boot scripts, but in preparing initramfs
boot scripts for testing vdev, the only changes I've had to make are
starting vdev in place of udev, and mounting vanilla tmpfs on /dev instead
of devtmpfs.  I'd imagine that it will be similar with live-boot scripts,
but I'll have to take a closer look.  I'm happy to work with you and others
on ensuring that you can use vdev in place of udev wherever possible :)


> Thanks for all your good work. I'm actually using eudev at the moment
> (works fine in the "live" scripts) but look forward to trying vdev as soon
> as possible.
>

My pleasure!

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] libudev-compat update

2015-06-08 Thread Jude Nelson
Hi Jack,

On Mon, Jun 8, 2015 at 5:46 AM, Jack L. Frost  wrote:

> On Mon, Jun 08, 2015 at 01:31:40AM -0400, Jude Nelson wrote:
> > Hey everyone,
> >
> > I've just pushed my first stab at libudev-compat to the vdev repository.
> > It took a while to work out how to remove the need for udev to send
> libudev
> > clients device events, but I think I've figured out something that works.
>
> Is evdev supposed to work with this eventually?
>

Yes.  In fact, my goal for alpha is to be able to use libudev-compat in
conjunction with vdev to run X.org without an xorg.conf.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] libudev-compat update

2015-06-07 Thread Jude Nelson
Hey everyone,

I've just pushed my first stab at libudev-compat to the vdev repository.
It took a while to work out how to remove the need for udev to send libudev
clients device events, but I think I've figured out something that works.

Instead of sending events via a netlink multicast group, the device manager
is expected to atomically put a serialized struct udev_device message into
a set of process-specific directories (i.e. as strings that can be parsed
by udev_device_new_from_nulstr()).  Libudev-compat clients create these
directories when they create struct udev_monitor instances, so the device
manager need only write the event file somewhere privately, hard-link it
into each such directory (ensuring "atomic send" semantics), and then
unlink it.  This means that pretty much any program you want can trivially
send device messages to other programs as long as it can write to their
directories, and inspect or even re-order pending messages.

Instead of a netlink socket, a struct udev_monitor in libudev-compat
contains an epoll handle, an inotify handle, and a socket pair.  The epoll
handle is used to indicate the readiness of the inotify handle, the "sink"
end of the socket pair, or both, and is the pollable handle returned by
udev_monitor_get_fd().  Libudev-compat ensures that a struct udev_monitor's
handle will poll as ready-to-read if and only if there is at least one
unprocessed device event.

The inotify handle is set up to watch the process-specific directory for
IN_CREATE events, in a one-shot fashion (the directory itself is created as
part of udev_monitor_new()).  When a client program receives a device event
with udev_monitor_receive_device(), libudev-compat resets the one-shot
inotify handle, scans the directory, and sends as many files' contents as
it can as messages to the "source" end of the monitor's socket pair.
Libudev-compat filters unwanted devices on the socket pair using a BPF
program in the same way that libudev does for netlinks sockets (i.e. the
logic is the same in both libraries).  Devices events are sent in
lexicographic order by name, and are consumed from the "sink" end of the
socket pair.

Because we're not using netlink anymore, we have to preserve multicast
semantics across fork() as well--that is, if the process fork()'s and the
device manager subsequently sends a device event, both the parent and child
must receive it.  To do so, libudev-compat maintains a global table of all
existing monitors, which it does as part of udev_monitor_new() and
udev_monitor_unref().  Upon fork(), as part of a pthread_atfork() handler,
the libudev-compat child creates a new events directory, and re-targets all
of its monitors' inotify handles to watch it instead.  It also closes and
re-opens each monitor's socket pairs, so it will not accidentally consume
its parent's buffered device events.  This ensures that the next time the
child calls udev_monitor_receive_device(), it will look in its own
directory, and it will receive and consume events independently of its
parent, as desired.

I have lightly tested libudev-compat's ability to do all of the above with
a helper program for vdev (vdevd/helpers/LINUX/event-put.c), and with a
test program that can be compiled with the "test" target in libudev-compat/
(i.e. "cd libudev-compat && make test").  It appears to work so far, but I
invite the community to review the code and try it themselves.

What I need to do next is create vdev scripts that will cause it to send
off events to libudev-compat clients, using event-put.  To do so, I'll also
need to add helper scripts to generate and maintain /run/udev/, since the
struct udev_device's that libudev-compat clients will expect to receive
must include all of the metadata udev would generate for them.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] straw poll, non-free firmware for installers

2015-06-03 Thread Jude Nelson
On Wed, Jun 3, 2015 at 9:29 PM, Daniel Reurich 
wrote:

> Ok,
>
> That was interesting
>
> Here's my thinking on the how and the why.
>
> definition of terms:
> user = the person using the installer to install Devuan.
> module = linux kernel module.
> hardware = reference to the particular chipset(s) in scope, be they SoC or
> plug in cards or devices.
> firmware = non-free binary blob that is required to be loaded by the
> standard kernel module for the hardware in scope in order for the hardware
> to operate.
> essential: required for proper operation.
>
>
> How:
> 
>
> I will build a (udeb) package called firmware-reqd that:
>
> 1) Will provide an early detection of a select list of common essential
> hardware that:
>   a) requires a non-free firmware blob
>   b) is essential to make the system use-able enough to complete the
> installation to a bootable state.
>
> 2) Upon detection of said hardware, I will provide a prompt informing the
> user about the specific piece(s) of hardware detected that require non-free
> firmware to and give them the option to load that firmware and continue the
> installation or abort it at that point.
>
> 3) Only firmware meeting the above criteria will be included in the iso,
> but not used or loaded unless the operator specifically chooses to do so.
>
> 4) The choice to use non-free firmware will naturally lead to the question
> about whether the related firmware deb packages should be installed during
> the install.  I could provide an option here, defaulting to yes but
> allowing deselection for those who may want to leverage the non-free
> firmware only during install but not on the running system.
>
> Note: When non-free firmware udebs are installed by debconf my
> understanding is that each of them will present the user a license upon
> which is also required to be accepted before that udeb is installed.
>
> 
>
> Why this approach:
>
> I agree in principle about using strictly free/libre open source software,
> and where I have the choice I personaly will select hardware that aligns
> with those principles.
>
> However, I would not want my choices to become the tool that would punish
> those less informed, or unable to make the sacrifices required to comply
> entirely with that principle. To do so would be ungracious and unrealistic,
> and boils down to elitism and puritanism.
>
> Nevertheless, to silently let the installation of non-free firmware be
> done without recognition and challenge is not right either.  So I see the
> most gracious approach is to inform the users and grant them the
> opportunity to choose how they would like to proceed.  It gives opportunity
> for those who for conscience sake would refuse non-free firmware to do so,
> whilst not enforcing that choice an all users.
>
> I think that this is a reasonable approach, and once the above proposed
> package is ready, it is my intention to have it included in the official
> installer images we ship.  Anyone that strongly objects can re-build their
> own installers without the non-free firmware packages added.
>
>
I like this approach as well as Nextime's.  I generally favor approaches
that help the users make informed decisions, but otherwise don't get in
their way of them doing what they want with their computers.

I can help out with steps 1 and 2, if you're interested.  There's lots of
overlap with my work on vdev.

Thank you for all the hard work you've put into getting the Devuan
installer ready!
-Jude


>
>
>
>
> On 03/06/15 20:37, Daniel Reurich wrote:
>
>> Hi,
>>
>> I'd like a straw poll on whether we should include non-free firmware in
>> our installers by default.
>>
>> It's a deviation from Debians traditional position, but a pragmatic one
>> that shows we care about the end users.
>>
>> Keen for feedback.
>>
>>
>>
>
> --
> Daniel Reurich
> Centurion Computer Technology (2005) Ltd.
> 021 797 722
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] straw poll, non-free firmware for installers

2015-06-03 Thread Jude Nelson
On Wed, Jun 3, 2015 at 12:15 PM, Franco Lanza  wrote:

>
> On Wed, Jun 03, 2015 at 08:37:22PM +1200, Daniel Reurich wrote:
> >
> > Hi,
> >
> > I'd like a straw poll on whether we should include non-free firmware in
> our
> > installers by default.
> >
> > It's a deviation from Debians traditional position, but a pragmatic one
> that
> > shows we care about the end users.
> >
> > Keen for feedback.
>
> Maybe we can think about having 2 images for every iso/installer, the
> default onw as usual without any non-free package, and another one,
> under a non-free directory structure with some large readme, with
> non-free drivers bundled. This should not be a so huge additional
> effort, and will give even more freedom of choice.
>

+1


>
> --
>
> Franco (nextime) Lanza
> Lonate Pozzolo (VA) - Italy
> SIP://c...@casa.nexlab.it
> web: http://www.nexlab.net
>
> NO TCPA: http://www.no1984.org
> you can download my public key at:
> http://danex.nexlab.it/nextime.asc || Key Servers
> Key ID = D6132D50
> Key fingerprint = 66ED 5211 9D59 DA53 1DF7  4189 DFED F580 D613 2D50
> ---
> echo
> 16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D212153574F444E49572045535520454D20454B414D204F54204847554F4E452059415020544F4E4E4143205345544147204C4C4942snlbxq
> | dc
> ---
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] New systemd release notes regarding udev.

2015-06-01 Thread Jude Nelson
Hi Jim,


> It seems udev is getting split up between several projects within systemd
> and GNOME. It seems gudev is being handed off in the future to GNOME and
> parts of udev are being pushed deeper into systemd.
>
>
gudev splitting off isn't a problem; in fact, I applaud the decision.


> I'm not surprised at this, since kdbus didn't get pushed into the kernel
> mainline, but it does show evidence of the callousness being presented to
> the Linux ecosystem. If they don't get their way one way, they try to get
> their way another.
>
> I am wondering how much longer eudev can remain tied to systemd-udev,
> unless it becomes completely independent. We still are waiting on the
> progress of vdev, patiently. So until then, it seems to be wait and see yet
> again.
>

vdev will ship with libudev-compat, which is ABI-compatible with the public
API of libudev 219.  I'm afraid I couldn't manage ABI compatibility with
the private API, but AFAIK only udev and systemd were its clients anyway.
Also, vanilla libudev 219 doesn't overlap that much with systemd, so we can
easily build our own and ship that in place of libudev 220+ in the
near-term.

libudev-compat is still a work in progress, but it's my last major blocker,
and I hope to have something testable by early next week.  The key
challenge has been in removing the need for the udev-controlled netlink
multicast group to deliver events while continuing to provide the same
semantics at comparable performance.  While my approach almost certainly
won't be as fast as netlink-based libudev, it should:
* be fast enough for our purposes (will provide actual performance data
when I have them);
* be easier to troubleshoot (i.e. the admin can read, inject, reorder,
copy, and remove device events without having to instrument the device
manager, the kernel, or the libudev client);
* be agnostic to which device manager (if any) is running;
* let the admin control which root-context events get propagated to
containerized libudev clients (something udev and libudev *cannot* do, due
to their reliance on netlink).

You don't have to wait up for me, though--Devuan's udev and eudev are ready
to use now :)  Developing vdev and libudev-compat is one of several
contingency plans for the scenario where udev and libudev become
intractably dependent on systemd.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Lennart reacts to the release of Devuan

2015-05-31 Thread Jude Nelson
On Sun, May 31, 2015 at 2:16 AM, Yves  wrote:

> Frankly, I find this video simply inappropriate, unnecessary and
> inflammatory.
> Just my 2 cents.
>
> If you do not like his code.
> Just make do without the code.
>
> Damn I find this distasteful!!
>

Agreed.


>
>
>
>
> On 31 May 2015 1:51:01 PM ACST, Init Freedom 
> wrote:
>>
>> https://www.youtube.com/watch?v=_cdEFF-ttLw
>>
>> May the source be with you, gents.
>>
>> --
>>
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] OT: separate GUI from commands

2015-05-31 Thread Jude Nelson
Hi Jonathan,

>
> Yes I know, I was trolling.  But it was a friendly troll.  See, I included
> a hash at the end of my email.  Here is my Proof-of-Troll(tm) that matches
> that hash:
>
> echo "Sorry but I couldn't resist trolling you here. :) Still intrigued by
> your file-system based widget idea, though." | sha256sum
>
>
Haha, good one!


> In retrospect I should have been more detailed that the troll was playing
> dumb about Visual Basic, but if you switch the order
> of my two categories you can see the strong evidence. :)
>
>
>  If anything, I think it validates the case for a system like shui.  The
> fact that different applications in different problem domains independently
> gain built-in support for scripting suggests that there's a
> naturally-occurring need to be able to interact with applications
> programmatically as well as interactively.  So, why not design applications
> with this need in mind from the get-go?
>
>
> I think because you would need to have all the applications use the same
> language.
>

Not necessarily.  See below.


>
> For example, if I use the 'lg' console in Gnome Shell (which is
> essentially just a poor man's HTML5 devtools) I can get access
> to javascript objects that represent the various elements of the DE.  But
> when I say 'element' I only mean the x11 windows
> and the pre-fabbed Gnome widgets and stuff.  For example, I can't inspect
> the "Save" button in Thunderbird and change its
> attribute "display" to "none".  That makes 'lg' so limited that I can
> safely say I've never used it in all the time I've used Gnome.
>

Funny you bring up GNOME as a related example.  A few GNOME developers on
Twitter just spent the last few days hating on the very idea of a
scriptable UI (and the Devuan community in general), all in response to
this very email thread.


> I use the devtools in Chrome and Firefox all the time, however.  I do this
> because most of the time I can inspect every element
> that makes up the web page or app I happen to be viewing.  (I can also get
> FPS, profile, and all kinds of other invaluable
> instant feedback.)  Exceptions are of course webgl and HTML5 canvas
> (because those contents are just pixels), but I don't run into those so
> often in my normal browsing.
>
> This is already slow with all apps on the web (well, most) using the same
> language (and being optimized on the fly on modern
> browsers).  Seems like for this to be workable on the desktop you'd need
> wrappers for various languages which would add even more overhead.
>
> But it's quite possible I've misunderstood the upshot of the system you're
> describing.
>

The design is still pretty rough in my head (I brought it up because it was
related to Hendrik's original post, and it seemed like a good time to get
feedback), but I don't think shui needs to have the same design as a Web
browser.  It wouldn't track nearly as much information, for example.  All
it would need to do is render the application's UI and run helper programs
as subprocesses to handle UI events.  It's not a perfect fit for every
graphical application, but my goal would be to make it easier to make
applications whose behaviors can be systemically extended and automated by
the user.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] automounting in a window manager

2015-05-30 Thread Jude Nelson
Hi Robert,


> It says, among other things, that udev can be configured to handle
> automounting. That's nice, but since systemd has polluted udev beyond
> repair, I'm wondering if Devuan can be set up to handle it better, perhaps
> with vdev. Or is there a better way?
>
>
Have you considered pmount(1)?  Or, were you looking for something more
automated?

Related to vdev, one feature in my pipeline is to create a "vdevd-user"
daemon to replace udisks/udisks2 and upower.  It would behave almost the
same as the system-wide vdevd, but with the following key differences:
* it would get started as part of a user's login session,
* it would run under the user's permissions,
* it would watch the contents of /dev/ with inotify (Linux) or kqueue
(BSD), instead of listen to the kernel for hotplug events.

The system vdevd would populate /dev/ per usual, and your vdevd-user
instance would run your user-defined actions when device files and metadata
appear or disappear.  One such action could be to run pmount(1) to mount
(or umount) removable media.  Another action might be to change your CPU
performance profile and backlight on your laptop if your AC power state
changes (NB: while there are no device files for ACPI devices, vdevd
receives events about them and records them to /dev/metadata/, which
vdevd-user could watch and act on).

It's worth pointing out that vdevd-user could easily work with udevd, mdev,
or a static dev as well--the device manager only needs to create the
requisite files for vdevd-user to consume.  There's no need for a dedicated
dbus interface, client library, or init system.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] OT: separate GUI from commands

2015-05-28 Thread Jude Nelson
Hi Jonathan,

Shell-based command access to software like Powerpoint would indeed be
> great.  But I wonder if we can raise the bar a bit
> and consider an approach that could serve the largest audience.
> Especially users who themselves aren't developers or
> programmers.
>
> It seems to me such a system must be characterized by the following two
> properties:
> * basic - the language itself should be simple enough that the user
> doesn't have to spend too much time on boilerplate and
> learning eccentricities of the language.  (And the environment should be
> able to generate as much of the boilerplate on its own,
> especially for common patterns.)
>

What language would you propose?  If I create shui, I'd make it
language-agnostic so users can select whatever language(s) they want.  My
example with shell scripts was just to illustrate the possibility :)


> * visual - we know the user is already interacting with a graphical
> system.  So it makes sense that the command-based
> system should include graphical modes of interaction and visualize as much
> as it can.  (For example, letting the user choose
> from a set of familiar widgets rather than making them memorize a baroque
> naming system.)  It should look as familiar as it
> can without sacrificing power, letting the user see as much of the data
> flow without having to create the entire mental model
> on their own.
>

Yeah, a RAD tool would be a natural extension of the idea!


> Just imagine the possibilities if Powerpoint gave you access to an
> environment like that!
>

It didn't occur to me when I wrote my original email, but it turns out
Powerpoint can be scripted with VBA.  So can Libreoffice (it supports
Javascript and Python as well as Libreoffice Basic).  There are others,
like Blender, GIMP, KDE (i.e. SuperKaramba, Plasma, Kross), GNOME 3, the
NetBSD kernel (Lua), the Linux kernel (ePBF), and so on, that I had
forgotten to list.

If anything, I think it validates the case for a system like shui.  The
fact that different applications in different problem domains independently
gain built-in support for scripting suggests that there's a
naturally-occurring need to be able to interact with applications
programmatically as well as interactively.  So, why not design applications
with this need in mind from the get-go?

-Jude

PS  Not sure why, but your email hit my (Gmail's) spam filter.  Just
thought you should know :)
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] OT: separate GUI from commands (was: Re: The more things change, the more they remain the same

2015-05-27 Thread Jude Nelson
Hi Steve, excellent feedback as always :)

On Wed, May 27, 2015 at 4:41 PM, Steve Litt 
wrote:

> On Wed, 27 May 2015 14:27:17 -0400
> Jude Nelson  wrote:
>
>
> > I've been thinking about the general form of this problem (and a
> > general solution) for months, and I think I'm almost ready to provide
> > a formal design document.
> >
> > [The Problem]
> > Many programs couple the business logic to the presentation logic.
> > The code that drives the UI is too intermingled with the code that
> > provides the application's core functionality to use them separately,
> > or develop on them independently.
>
> Hi Jude,
>
> Be careful what you wish for. MVC was created to solve this problem,
> and it looks to me like, in the hands of most developers, like MVC
> makes an unfathomable Easter Egg Hunt where a reasonably simple
> algorithm can't go six lines without the need to go look something up
> somewhere else. And yet, in the hands of most practitioners, my
> observation is they *still* manage to intersperse program logic, data
> and UI.
>
> Separation is good, but not all ideas for separation are good.
>

Yeah, MVC can get out of hand if used improperly.  However, that's can be
because sometimes MVC isn't the right factoring in the first place, but
(for Web applications in particular) a lot of development frameworks force
developers to try to shoehorn their applications into it nevertheless.

I should point out, I don't see shui as an MVC-like framework.  I see shui
as way to compose unrelated individual programs that each implement a
single UI element to create complex graphical applications, in the same
spirit as using the shell to compose unrelated individual programs that
each implement a data stream filter to create a pipeline that accomplishes
a complex data transformation.  I'd use the shell with zenity to accomplish
what I'm proposing with shui, except that I additionally want to expose the
structure of the UI as a first-class aspect of the application as well.
This is because I want to let the user arrange the UI elements of an
application however they see fit without having to touch any code (i.e.
they can create and preserve whatever workflow they want irrespective of
the developer's intentions), and I want the user to be free to borrow UI
elements from one application and put them in others (i.e. we can never
lose features; only disable them).


>
> [clip]
>
> > [Motivation]
> > I was watching my SO create a (long) Powerpoint presentation the
> > other day, and she wanted to add a "fade in" animation to each bullet
> > point on each slide.  Powerpoint (and every office suite I'm familiar
> > with) makes you do this by hand, bullet-point by bullet-point, with a
> > mouse.  The UNIX hacker in me saw this, and wondered why it's not
> > possible to simply open a shell and run something like "for
> > ppt_bullet in $(ppt-ls "bullets"); do ppt-animate "fade-in"
> > "$ppt_bullet"; done".  This would have saved an hour of tedious,
> > repetitive effort.
> >
> > The reason this isn't possible is because Powerpoint (and every other
> > office suite) does not offer a command-oriented UI.  What could
> > Powerpoint have done?  One option is to add a program-specific
> > command-language (like how vim and emacs do).  However, I don't think
> > this the answer either, for two reasons:
> > (1) The UI (the command-language in this case) is still tightly
> > coupled to the program, and has rules and semantics that are only
> > applicable to the program.
>
> I think #1 above is a *good* thing. There's a reason it's called a
> *domain* specific language. It's the functions of this program's
> "business logic", and nothing more.
>
>
Yes, domain-specific languages have their place.  However, all
Turing-complete languages are equivalently powerful.  So, there had better
be a compelling reason to spend time designing a domain-specific language
that you then expect users to go learn just to use your program properly,
as opposed to embedding support for a more general language that the user
already knows (or can easily learn through 3rd party resources) and
shipping a library for that language that exposes your domain-specific
functionality.

It's a bit of digression, but the point I'm arguing is that unless the
programming paradigm itself is so specific to your problem domain that you
need a whole new programming language to describe its system of logical
axioms (this is rarely the case), I think developers and users are better
off with the latter option since it doesn't re-invent the wheel and doesn't
waste th

Re: [Dng] OT: separate GUI from commands (was: Re: The more things change, the more they remain the same

2015-05-27 Thread Jude Nelson
Hi Hendrik,

On Wed, May 27, 2015 at 12:35 PM, Hendrik Boom 
wrote:

> On Wed, May 27, 2015 at 02:27:17PM -0400, Jude Nelson wrote:
> > Hi Hendrik,
> >
> ... (much snipped)  (I'm sorry, I hadn't meant to take you away from
> vdev for the amount of time it took to write this lengthy and
> interesting reply)
>
> >
> > An interesting consequence of structuring applications this way is that
> you
> > can trivially solve both network transparency and application
> distribution:
> >  simply put the application on an NFS mount (or some network filesystem),
> > and run the interpreter on the local client.  The application stores
> > runtime state as files within its directory hierarchy, so they get
> > automatically written to the NFS server.  Users could run remote
> > applications locally simply by mounting the remote volume and running the
> > interpreter on them in-place.
>
> >
> > I was considering building such an interpreter as well as and a suite of
> > applications for Devuan at some point, after finishing vdev.  I was
> > thinking of calling it "shui"--both from the concept of "feng shui" (the
> > idea of harmonizing everyone with their environment), as well as serving
> as
> > an acronym for "SHell-oriented User Interface".
>
> Sounds interesting.  But for applications like ordinary text editing,
> it might become a little slow if you end up running a shell script
> with every character typed.  The idea did seem to work somewhat for
> the ancient mail handler MH (if I recall correctly).
>
> But as for the file system ... I wonder if the completely virtual file
> system in something like Inferno could help things along -- put more
> of the primitive operations into the file itself.  Or have I
> misunderstood Inferno?
>
> Of course, taking this to its logical conclusion would move the
> file system rather seriously in the direction of a typed persistent
> objects system, with methods and so forth.   A very different beast
> from what we're used to.
>

These are excellent points.  I should clarify, shui itself would be
designed as an aggregate of programmable widgets.  Each one would know how
to render itself, and how to interpret a particular directory and run its
scripts.  One such widget would be a text area with the capabilities you
originally described.  The value shui provides is that it would make it
very easy for users to swap out parts of the text editor they didn't want,
or mix and match components without having to become developers and without
having to re-compile the application.

I don't think we'd need a typed persistent object system at the end of the
day, since unless all application developers agreed to it, there wouldn't
be a unified type system in the first place.  Flat files of bytes should be
just fine for the purpose of developing applications--if the application
needs an advanced type system, it can implement it itself.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] OT: separate GUI from commands (was: Re: The more things change, the more they remain the same

2015-05-27 Thread Jude Nelson
Hi Hendrik,

On Wed, May 27, 2015 at 6:12 AM, Hendrik Boom 
wrote:

> On Wed, May 27, 2015 at 03:32:00PM +0200, Laurent Bercot wrote:
>
> >  As a rule of thumb, developers should always use the smallest possible
> > amount of dependencies for a project, and clearly separate layers - e.g.
> > if a project comes with an engine and a GUI, then the engine should come
> > as a command-line tool in its own package with no dependencies on
> graphical
> > stuff, which would be the role of the GUI package. But I'm a dinosaur AND
> > a fan of minimalism, so I don't expect many people to think like me.
>
> I mean this as a serious question, not as a piece of sarcasm,
> though it could easily be misconstrued as such.
>
> I am testing the limits of the advice to separate interaction from
> command line, though.  Sometimes limit testing leads to discoveries.
>
> I'm in the process of writing (yet) a(nother) editor and output formatter,
> and on reading this, I started to wonder -- just how could one separate
> a command-line version from the UI?  I can see that the output
> formatter can be so separated (and very usefully), but the actual
> editing?
>
> Brainstorming welcome.
>

I've been thinking about the general form of this problem (and a general
solution) for months, and I think I'm almost ready to provide a formal
design document.

[The Problem]
Many programs couple the business logic to the presentation logic.  The
code that drives the UI is too intermingled with the code that provides the
application's core functionality to use them separately, or develop on them
independently.  However, we would like to be able to do this in order to
allow the user to apply existing tools and skills in one domain without
affecting the other domain, and allow developers to innovate in one domain
without affecting the other.  This should be possible, since rendering a UI
is usually (but not always) a separate, orthogonal concern from performing
the desired functionality.

[Motivation]
I was watching my SO create a (long) Powerpoint presentation the other day,
and she wanted to add a "fade in" animation to each bullet point on each
slide.  Powerpoint (and every office suite I'm familiar with) makes you do
this by hand, bullet-point by bullet-point, with a mouse.  The UNIX hacker
in me saw this, and wondered why it's not possible to simply open a shell
and run something like "for ppt_bullet in $(ppt-ls "bullets"); do
ppt-animate "fade-in" "$ppt_bullet"; done".  This would have saved an hour
of tedious, repetitive effort.

The reason this isn't possible is because Powerpoint (and every other
office suite) does not offer a command-oriented UI.  What could Powerpoint
have done?  One option is to add a program-specific command-language (like
how vim and emacs do).  However, I don't think this the answer either, for
two reasons:
(1) The UI (the command-language in this case) is still tightly coupled to
the program, and has rules and semantics that are only applicable to the
program.
(2) Without careful design, the user can't bring to bear existing knowledge
or existing tools to address problems.  This is a general gripe I have
against vim and emacs too--if you're going to offer a Turing-complete
command language, why not offer one that is widely-used already and lets
people use external tools?

What I would like the most is if Powerpoint were somehow designed so that
its runtime state was exposed to the system shell, so I could operate on it
directly.  Powerpoint wouldn't need to ship with its own custom language,
and I could use whatever tools I wanted.

[Related Work]
This is something that Smalltalk/SQUEAK got right, as well as SecondLife
(but to a lesser extent).  In these environments, a UI element is fully
scriptable by the user, and can access functionality in other UI elements
and store persistent state within them.  As a user, I can easily add my own
functional overlays on top of the application, as well as my own custom UIs
that extend the functionality of the application on-the-fly.  If Powerpoint
were written as a SQUEAK application, I might have been able to write and
attach a button on-the-fly that iterated through each bullet point and
added an animation.

This is something that RESTful Web services sometimes get right as well.
The business logic in a RESTful Web service is meant to be decoupled from
the CSS/HTML/Javascript UI, so you should be able to use use any
HTTP-speaking client to interact with the business logic on the remote
servers.  For example, this lets Web front-end developers create mash-ups
of multiple services, and it lets devops and back-end developers write
scripts with curl to interact with services.  The downside is that you're
limited by the availability and expressiveness of the RESTful API (which
you do not control).

Applescript, ActiveScript, and nowadays Powershell try to do something like
this, but they fall short architecturally in that they can't access and
operate on all of the application's

Re: [Dng] vdev status update (May 25 2015)

2015-05-27 Thread Jude Nelson
Hi Anto,

On Wed, May 27, 2015 at 6:19 AM, Anto  wrote:

>
>
> On 25/05/15 18:29, Jude Nelson wrote:
>
>> Hey everyone,
>>
>> I have the latest news for vdev:
>>
>>  .
> 
> .
>
>> Thoughts and feedback to the above welcome :)
>> -Jude
>>
>>
> Thanks a lot Jude for all your efforts.
>
> Since you put a big fat warning "**CURRENTLY BROKEN.  DO NOT ATTEMPT.  WE
> ARE MIGRATING TO .DEB PACKAGES.**" on
> https://github.com/jcnelson/vdev/blob/master/how-to-test.md#appendix-b-booting-with-vdevd
> about 13 days ago, I have been waiting for your update on the deb build
> package script so I can continue testing. How far are we on that? Please do
> not assume that I am pushing you.
>
> If that would be quite far due to higher priorities on other parts of vdev
> development, how about if you included test cases for any parts of vdev
> that still need testing?
>
> For instance, a simple list like below would help novice testers like me
> (and hopefully help speeding up vdev development as it looks getting more
> complex):
>
> 1. Test Case A Title
> Test Unit: vdev function X
> Expected Result:  test pass>
> Test Result: Pass or Fail
> Test Log: 
>
> 2. Test Case B Title
> Test Unit: vdev function B
> Expected Result:  test pass>
> Test Result: Pass or Fail
> Test Log: 
>
> And so on.
>
> I think that will also help you shifting your priorities in putting your
> efforts on each parts of vdev development.
>
> Cheers,
>
> Anto
>
>
What you're asking for is a black-box test suite.  In most software
systems, this is highly desirable, and is usually added into the CI so the
CI can verify that all tests pass before generating a package.

Unfortunately, systems like udev and vdev are exceptions--their "expected
results" are tightly-coupled to the underlying hardware.  There's no way to
categorically describe the expected results without also describing all the
relevant aspects of the underlying hardware as well, and there are as many
different hardware configurations as there are users (so each user has a
different expected result).  The best I can do is verify that vdev produces
a /dev that has the same files that udev would have created on the same
hardware.

I'm still figuring out the packaging.  My goal is to add Makefile targets
to use fpm to generate packages (for testing and cross-distro
compatibility), and then worry about adding the Devuan-specific control
files to get vdev hooked into the CI system (ideally, I'd find a way to get
fpm to generate those for me too).

-Jude


> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] vdev status update (May 25 2015)

2015-05-25 Thread Jude Nelson
Hi Hendrik,

On Mon, May 25, 2015 at 2:25 PM, Hendrik Boom 
wrote:

> On Mon, May 25, 2015 at 12:29:12PM -0400, Jude Nelson wrote:
> ...
> > What I'm working on going is the following:
> > * fork runfs to create eventfs, a RAM-backed userspace filesystem that
> > looks and smells like tmpfs, but is designed such that (1) files and
> > directories share fate with the process that creates them, and (2) the
> > filesystem remembers the order in which files in a directory are created.
> > We'd use it to implement reliable one-writer many-reader uevent packet
> > multicast.  Specifically, the eventfs would work like a tmpfs, but with
> the
> > following different behaviors:
> > -- a directory and its children only exist if the process that created it
> > is still running.  Once the process dies, the directory and its children
> > are automatically removed.
> > -- each directory contains an eventfs-managed "head" symlink that points
> to
> > the newest-created regular file child
> > -- each directory contains an eventfs-managed "tail" symlink that points
> to
> > the oldest-created regular file child
> > -- unlink()-ing "head" really unlinks the file that "head" points to, and
> > causes "head" to point to the next-newest regular file child
> > -- unlink()-ing "tail" really unlinks the file that "tail" points to, and
> > causes "tail" to point to the next-oldest regular file
>
> Just wondering what happens if process A creates a directory in
> eventfs, process B makes it its working directory, and then process A
> dies.  Does process B end up with a nonexistent working directory?
> umount won't let me do this.  WOuld this be different?
>

The directory would continue to exist as long as there was at least one
open handle to it, but subsequent path resolutions on it or any of its
descendants would fail.  The effect is basically the same as "rm -rf"-ing
the process's working directory.

Also, like with any other filesystem, you would be unable to unmount it
until all handles were closed.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] vdev status update (May 25 2015)

2015-05-25 Thread Jude Nelson
Hey everyone,

I have the latest news for vdev:

* Added support for /dev/snd/by-id symlinks (thanks Jack L. Frost aka
openfbt!)

* Merged support for static linking vdev, building a libvdev.a archive
file, and building vdev with non-GNU libc (thanks Didier Kryn!)

* Added support for optionally running device helper scripts, even if the
device still exists.  This is because sometimes other programs can create
device nodes independently of vdev, but not set them up appropriately.  By
default, vdev will assume that a device is already set up if its device
file(s) exists already, and will not run any of its helper scripts.  While
this means that scripts do not need to be idempotent by design (i.e.
they're run at most once), it also means that any program that creates a
device file is expected to set it up as well.  This is inappropriate, since
managing device policies (i.e. permissions and persistent symlinks) is the
job of the device manager, not tools that happen to create device files.

To address this, vdev action files now support an "if_exists" directive,
that can be set to:
-- "run", as in, run the action's commands even if the device exists;
-- "mask", as in, don't run the action's commands, but don't report an
error that the device exists
-- "error", as in, stop running actions for this device (even if there are
still some to be processed), and log an error.

The absence of an "if_exists" directive causes vdev to try to run all
action commands for a device if the device does not exist, but report an
error if it does exist.

Thanks Scooby for the suggestion!

* [WIP] I'm making progress on libudev-compat, an ABI-compatible libudev
replacement that does not depend on udevd (or netlink or systemd or kdbus).

A bit of background:  libudev defines an opaque "struct udev_monitor" that
contains a client-accessible pollable file descriptor, an API for defining
device event filters, and a method ("udev_monitor_receive_device") for
receiving "struct udev_device" instances generated from hotplug events.
Clients get the file descriptor and poll() on it, and then receive "struct
udev_device" instances from the associated monitor.  The way it works under
the hood today is the pollable file descriptor is a non-blocking raw
netlink socket that listens to udevd's multicast group (btw, this is one of
the reasons why udev can't run in a container); the filtering API
implements code to build and attach a BPF filter to the socket that
implements the client's filter preferences; and
"udev_monitor_receive_device" receives the next serialized "struct
udev_device" message from udevd's multicast group and returns it to the
client.

What I'm working on going is the following:
* fork runfs to create eventfs, a RAM-backed userspace filesystem that
looks and smells like tmpfs, but is designed such that (1) files and
directories share fate with the process that creates them, and (2) the
filesystem remembers the order in which files in a directory are created.
We'd use it to implement reliable one-writer many-reader uevent packet
multicast.  Specifically, the eventfs would work like a tmpfs, but with the
following different behaviors:
-- a directory and its children only exist if the process that created it
is still running.  Once the process dies, the directory and its children
are automatically removed.
-- each directory contains an eventfs-managed "head" symlink that points to
the newest-created regular file child
-- each directory contains an eventfs-managed "tail" symlink that points to
the oldest-created regular file child
-- unlink()-ing "head" really unlinks the file that "head" points to, and
causes "head" to point to the next-newest regular file child
-- unlink()-ing "tail" really unlinks the file that "tail" points to, and
causes "tail" to point to the next-oldest regular file

* We will mount eventfs on /dev/events/.

* libudev-compat creates the directory /dev/events/libudev-$PID/ when the
client starts, effectively giving it an in-order queue of device events.
Because directories share fate with the processes that create them in
/dev/events, the client doesn't need to remove /dev/events/libudev-$PID/
when it exits (i.e. you can kill -9 it without polluting your filesystem
tree).

* create a tool called "event-put" that writes a device uevent packet to
/dev/events/$PID_OF_DEVICE_MANAGER/$SEQNUM, hard-links it to each
/dev/events/libudev-*/$SEQNUM, and then unlinks
/dev/events/$PID_OF_DEVICE_MANAGER/$SEQNUM.  This implements a zero-copy
uevent multicast--the packet is written once (as a file), but each
libudev-compat client receives a reference to it (as a hard-link).

* I'll implement "struct udev_monitor" as follows:
-- the pollable file descriptor will be an inotify watch handle on
/dev/events/libudev-$PID/, and it watches for IN_CREATE.  As a consequence,
the file descriptor will have data available whenever event-put adds a new
uevent to be processed.  This means clients can continue to poll on this
file descripto

Re: [Dng] Suggestion for vdev

2015-05-21 Thread Jude Nelson
Hi James,

Apologies for the late reply--things have been busy at work lately.

I'd be happy to add an OpenRC init script :)  I opened an issue for it
here: https://github.com/jcnelson/vdev/issues/27

Also, a BSD-style init script would be nice at some point (
https://github.com/jcnelson/vdev/issues/28).

-Jude

On Wed, May 20, 2015 at 9:05 PM, James Powell  wrote:

> Jude, when vdev gets mature enough, could you submit an init script to the
> OpenRC project, please?
>
> Thanks,
> Jim
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] A novice attempt to speed up Devuan development

2015-05-16 Thread Jude Nelson
Hi Jaret,

On Sat, May 16, 2015 at 11:28 PM, Jaret Cantu  wrote:

> Just pushed eudev to the Devuan git.
>
> https://git.devuan.org/jaretcantu/eudev
>
> I used eudev version 1.9 since it is based on systemd 215.  That is the
> udev/systemd version used by Jessie, so it just seemed to make a lot more
> sense.
>
> I'm using it right now (and I'm pretty sure I've committed all of the
> manual changes I had to make on account of whoopsies), and the only
> difference I see in before-and-after "ls -Rl /dev"s is two extra pts.
>
> I uploaded all of the git-buildpackage stuff, too, so it should be easy to
> recreate.
>
> Probably some systemd scraps that I didn't properly scrub. I was not
> terribly diligent with checking for all of the unnecessary dependencies.
>
> I think you need a kernel with FHANDLE, too, for eudev to work properly. I
> got error messages until I recompiled my kernel.
>

This is WONDERFUL news!  I'm so glad you were able to get this to work!  As
you say, it's not easy to separate systemd from udev.  Hats off to you :D

Best,
Jude


> On 05/07/2015 02:47 PM, Anto wrote:
>
>>
>>
>> On 07/05/15 18:00, Anto wrote:
>>
>>>
>>> On 07/05/15 17:32, Svante Signell wrote:
>>>
 On Thu, 2015-05-07 at 16:53 +0200, Anto wrote:

  update-initramfs: deferring update (trigger activated)
> update-rc.d: warning: start and stop actions are no longer supported;
> falling back to defaults
>
 No idea about this one.

  insserv: script eudev: service udev already provided!
> insserv: exiting now!
> update-rc.d: error: insserv rejected the script header
> dpkg: error processing package eudev (--install):
>subprocess installed post-installation script returned error exit
> status 1
>
 This is probably due to that the eudev.postinst? and udev.postinst
 scripts differs. Check these scripts in debian/ and compare with the one
 from udev.

 HTH

>>>
>>> Thanks for the hints. I just put back the previous disk image and I am
>>> looking at them now.
>>>
>>>
>> I think I don't want to fiddle around any further and I just want to
>> forget having eudev package.
>>
>> My last attempt just now was to try to match the environment used by the
>> build script on
>> https://git.devuan.org/pkgs-utopia-substitution/devuan-eudev, to avoid
>> any unnecessary changes. That is by using Debian wheezy install with kernel
>> 3.2, udev 175-7.2 and eudev-2.1.1.tar.gz. I also tried eudev-2.1.tar.gz.
>> But those did not even pass the configure script, because the include
>> directory was not found. I am not sure what kind of setup was used when the
>> build script was being developed. Anyway, I am done with this :)
>>
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$ dpkg-buildpackage
>> -us -uc
>> dpkg-buildpackage: source package eudev
>> dpkg-buildpackage: source version 1:2.1.1-1
>> .
>> 
>> .
>> checking for unistd.h... (cached) yes
>> checking linux/btrfs.h usability... no
>> checking linux/btrfs.h presence... no
>> checking for linux/btrfs.h... no
>> configure: error: *** KERNEL header not found
>> make: *** [build-deb/config.status] Error 1
>> dpkg-buildpackage: error: debian/rules build gave error exit status 2
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$ dpkg --list | grep
>> linux
>> ii  console-setup-linux 1.88  all Linux specific
>> part of console-setup
>> ii  doc-linux-text 2008.08-1 all Linux HOWTOs and
>> FAQs in ASCII format
>> ii  libselinux1:amd64 2.1.9-5   amd64 SELinux runtime
>> shared libraries
>> ii  libselinux1-dev 2.1.9-5   amd64 SELinux
>> development headers
>> ii  linux-base 3.5   all  Linux image
>> base package
>> ii  linux-headers-3.2.0-4-amd64 3.2.68-1+deb7u1 amd64Header files
>> for Linux 3.2.0-4-amd64
>> ii  linux-headers-3.2.0-4-common 3.2.68-1+deb7u1 amd64Common
>> header files for Linux 3.2.0-4
>> ii  linux-image-3.2.0-4-amd64 3.2.68-1+deb7u1 amd64Linux 3.2 for
>> 64-bit PCs
>> ii  linux-image-amd64 3.2+46amd64 Linux for
>> 64-bit PCs (meta-package)
>> ii  linux-kbuild-3.2 3.2.17-1  amd64 Kbuild
>> infrastructure for Linux 3.2
>> ii  linux-libc-dev:amd64 3.2.68-1+deb7u1 amd64Linux support
>> headers for userspace development
>> ii  util-linux 2.20.1-5.3amd64 Miscellaneous system
>> utilities
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$ dpkg --search
>> btrfs.h
>> linux-headers-3.2.0-4-common:
>> /usr/src/linux-headers-3.2.0-4-common/include/trace/events/btrfs.h
>> linux-headers-3.2.0-4-common-rt:
>> /usr/src/linux-headers-3.2.0-4-common-rt/include/trace/events/btrfs.h
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devuan$
>> anto@d945gclf:~/packages/eudev/eudev-2.1.1-1+devu

Re: [Dng] [dng] vdev status update (2015-05-03)

2015-05-14 Thread Jude Nelson
Hi Steve,

On Thu, May 14, 2015 at 11:03 AM, Steve Litt 
wrote:

> On Wed, 13 May 2015 23:24:42 -0400
> Jude Nelson  wrote:
>
> > Hey everyone,
> >
> > I have the latest news for vdev:
> >
> > * vdev now creates symlinks for:
> > -- /dev/v4l/by-path
> > -- /dev/disk/by-partuuid
> > -- /dev/disk/by-partlabel
>
> Thank you Jude. It's astounding what you've been able to accomplish.
>

Thanks!  Fortunately, it's not as bad as it looks--it's mostly a matter of
reading the udev rules files and writing a script that does the same thing
:)


>
>
> > * the initramfs hook conditionally pulls in iproute2, lvm, dmsetup,
> > blkid, etc.
>
> I can think of few things more brain taxing than writing a program to
> tweak a RAM filesystem and accompanying init script that will be used
> on the *next* boot. Troubleshooting and experimentation must be a slow
> process, with boots intervening. Even on a VM on a fast host.
>

Yeah, it can get pretty tedious.  Fortunately, I'm using a minimal QEMU
image, so reboots happen pretty fast (i.e. the working set fits entirely in
my disk cache).

I have developed a new-found appreciation for the people who designed
Debian's initramfs system.  Despite the tediousness of building cpio
images, Debian's initramfs-tools package is surprisingly flexible and
well-documented.  There are a couple little things it could make the
process less painful, though; I'm in the process of getting together some
patches to send to Debian, if they're interested.


> >
> >
> > [For Next Time]
> >
> > * The next immediate objective is to package vdevd for Devuan, to
> > make it easier to test (in particular, easier to get a working
> > initramfs).
>
> Could you please make sure that there's a way for us Qemu users to use
> it? I don't know whether I'm the only one, but Vagrant errors out on my
> Debian Wheezy machine. So I'm still using the Valentine edition.
>

Absolutely!  I intend to make the first iteration of packages available as
direct downloads (will post hashes to the ML), and will continue to do so
until I can figure out how to hook the vdev repository into Devuan's CI
system.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] A novice attempt to speed up Devuan development

2015-05-14 Thread Jude Nelson
Following up to what T.J. said...

On Thu, May 14, 2015 at 1:15 PM, T.J. Duchene  wrote:

>
> > I think the fact that I pointed out clearly shows that there is very good
> > technical reason to exclude udev, unless you are willing to be the
> maintainer
> > of udev outside systemd source tree in Devuan.
>
> [T.J. ] Please understand that I very much respect your position, and I
> agree with you that a "put up or shut up" attitude can be warranted in many
> instances.   However, I do not believe that this is one of them.  The
> shortest and most reasonable route to release a stable 1.0 of Devuan is to
> use udev for the present.  THAT in and of itself trumps your concerns in my
> opinion.  I will admit that I find Jude's proposal intriguing - but it is
> hardly ready for use.  Eudev might make a good replacement, but udev is
> still the best candidate in terms of people using it if you follow the
> principle that "eyes make bugs shallow".
>

I thought it was already settled and decided by the VUA that Devuan Jessie
will use udev.  I agree with this stance, for the same reason as T.J.
points out--udev is production-ready, whereas vdev is not.  It's the
pragmatic thing to do--I only have a handful of hours per week to work on
vdev, so it makes no sense to hold up the release waiting for it.

However, I think the plan is to offer vdev as a udev alternative in at
least ascii, so users who want to try it out will be able to do so with
minimal effort.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update (2015-05-03)

2015-05-14 Thread Jude Nelson
Hi James,
On Thu, May 14, 2015 at 12:04 AM, James Powell 
wrote:

>  Thanks Jude.
>
> The Slackware package is delayed, but only due to the lack of a Slackware
> style script. I might try to ask one of the Slackware team for assistance
> when I resume work. However, the package is fairly much completed in terms
> of installation points and directory setup.
>

Hey, that's pretty cool!  First the AUR packages (from Jack Frost aka
openfbt), now Slackware.

I'm not a Slackware or Arch user, but please let me know if there's
anything I can do to make packaging easier?  I don't want to make things
needlessly difficult :)

-Jude


> Sent from my Windows Phone
>  ------
> From: Jude Nelson 
> Sent: 5/13/2015 8:24 PM
> To: dng@lists.dyne.org
> Subject: [Dng] [dng] vdev status update (2015-05-03)
>
>  Hey everyone,
>
>  I have the latest news for vdev:
>
> * vdev now creates symlinks for:
> -- /dev/v4l/by-path
> -- /dev/disk/by-partuuid
> -- /dev/disk/by-partlabel
>
>  Thank you Scooby for helping me confirm this!
>
>  * vdev now sets the proper ownership and permissions for:
>  -- /dev/mISDNtimer
> -- /dev/mwave
> -- /dev/parport[0-9]
> -- /dev/printer
> -- /dev/ppdev
> -- /dev/lp[0-9]
> -- /dev/irlpt[0-9]
> -- /dev/sch[0-9]
> -- /dev/pktcdvd[0-9]
> -- /dev/qft[0-9]
> -- /dev/zqft[0-9]
> -- /dev/nqft[0-9]
> -- /dev/nzqft[0-9]
> -- /dev/rawqft[0-9]
> -- /dev/nraqft[0-9]
> -- /dev/rawctl
> -- /dev/aoe
> -- /dev/lirc[0-9]
> -- /dev/legousbtower
> -- /dev/sonypi
> -- /dev/mmtimer
> -- /dev/sgi_*
> -- /dev/z90crypt
>
>  * Didier Kryn has gotten vdevd and vdevfs to statically link and compile
> with musl libc.  I'm looking forward to merging his contributions :)
>
>  * the build system has been refactored to use Makefiles more
> appropriately:
> -- every generated file gets written to a separate build/ directory
> -- every generated file is created by a non-phony target (i.e. nothing
> happens by side-effect)
> -- global buildconf.mk for setting variables
> Thanks to Didier again for the suggestion!
>
>  * the initramfs hook conditionally pulls in iproute2, lvm, dmsetup,
> blkid, etc.  Moreover, vdev's helpers conditionally use these programs if
> they are present.  This means that vdev doesn't strictly depend on them
> anymore, which is good if you're not using mapped devices or logical
> volumes.  Thanks to Anto for the suggestion!
>
> * the initramfs hook pulls in the correct GNU libc files now, so chown(1)
> will work correctly in the initramfs.  Thanks to Scooby, Isaac Dunham, Tom
> H for their help!
>
>
> [For Next Time]
>
>  * The next immediate objective is to package vdevd for Devuan, to make
> it easier to test (in particular, easier to get a working initramfs).  I'm
> currently dissecting udev's packaging and reading through Isaac's mdev
> scripts to see what to expect and what we can recycle.  I've never packaged
> something this complex before.  Thanks to Scooby, Anto, Tom H, and others
> for all their help on getting me this far!
>
>  * Symlinks and permissions for RAID devices (/dev/md[0-9] and friends).
> I don't run a RAID myself, so I'll need to go set one up in QEMU.  If
> someone wants to test vdev with a RAID, let me know, and I'll try to write
> a helper script to play around with sooner rather than later.
>
>  * In some distros and configurations, a separate device manager (like
> mdev) can populate just enough of /dev to mount root, but not try to set up
> any symlinks.  Vdevd must have a way for the admin to tell it to run helper
> scripts for the device even if its device node was already created
> (indicating that it has been set up), so the symlinks and permissions still
> get set appropriately.  Thanks to Scooby for reporting this!
>
>  Thanks,
> -Jude
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Systemd discussions at LinuxQuestions.

2015-05-14 Thread Jude Nelson
Hi James,

On Wed, May 13, 2015 at 11:58 PM, James Powell 
wrote:

>  I agree T. J.
>
> The problem is too much "thinking" about problems, rather than offering a
> clear solution other than scrapping the fore and replacing it entirely
> seems to be the source of the problem.
>
> One argument I stand by adamantly is that while sysvinit was imperfect in
> design, it left room to allow the tree to branch in various ways with the
> applied tools. OpenRC is a prime example of taking sysvinit and expanding
> upon it in a way that allows for diversity just like daemontools, bsd-style
> scripting, and other service supervisors do brilliantly. Sysvinit doesn't
> have to be the workhorse, but it can be the harness providing the standard
> functions of startup and shutdown for the workhorse of your choosing.
>
> However few people are willing to step outside their boxes and look for
> ways to improve systems without resulting to rampant progressivism with new
> software than isn't even finished in it's goals.
>
> In the late 90s Dan Bernstein's daemontools could have ended the
> overreliance on sysvinit, but few embraced it.
>
> Now we see the rush to "do" when something comes along to create a rift.
> No ill will to anyone, but if anyone had have "done" years ago, there might
> be less a need to "do" now.
>

It's not clear to me how much really needed doing in the first place.  The
people who actually needed djb's daemontools went ahead and used them.  The
people who actually needed to contain processes in cgroups did so, and they
did so with vserver and openvz before cgroups existed.  The people who
actually wanted service socket activation used xinted.  The people who
actually needed to start services in parallel either hacked their init
scripts to do so, or wrote Makefiles that started/stopped groups of
services in parallel while enforcing inter-service dependencies as
dependencies between targets.

I think the sudden rush to Fix-All-The-Things we're seeing (the "rampant
progressivism" as you call it) is part of human nature.  I have this pet
theory that people tend to progress through three stages of understanding
when applying themselves to a new field:
(1) they know little or nothing about it, and they know it.
(2) they learn more than they thought there was to know about it, and
(wrongly) believe that they know mostly everything about it.
(3) they reach the field's state-of-the-art and see the boundary between
what is known and unknown, and acquire the humility that comes from
understanding that no matter how much they think they know, there's a lot
more that they don't.

At any given point, there are way more people in stage #1 than stage #2,
and way more people in stage #2 than in stage #3.

The people who are comfortable using the tools I mentioned above tend to be
at stage #3 in the field of building and using UNIX-like operating
systems.  This is because in addition to knowing what tools are available,
they know the trade-offs between them and how to select them to find the
best solution to a particular problem.  They also know when and when not to
create new tools, and they know how to define their scope.  There's no
desire on their end to sacrifice flexibility for convenience--they've dealt
with enough problems to appreciate that having lots of small
interchangeable and composable tools is critical to being able to tackle a
wide variety of them.

Unfortunately, this doesn't do people in stages #1 and #2 any favors.  The
value proposition of systemd is that it automates a common set of stage #3
problem-solving strategies that a stage #1 or #2 user is likely to
encounter, but without requiring the user to have a stage #3 level of
understanding.  I think it's the stage #2 people who appreciate this that
become the loud-mouthed zealots we're all so fond of.  They're the ones who
want to Fix-All-The-Things--they know that there are some hard stage
#3-level problems out there, but they mistakenly believe that they (or
their favorite tool) will know how to fix them.  It's not that they're Bad
People (quite the opposite, they tend to be Concerned Citizens); the
problem is that they know enough to act on the problems they see, but not
enough to know that their solutions aren't always appropriate or desirable.

As a result, enterprising developers who can capitalize on (or even create)
the concerns of the stage #2 people tend to get their software adopted and
stand to gain power, influence, and money from the community.  When stage
#3 people object (as you have), the stage #2 people crowd them out as
"haters", "luddites", "elitists", or "trolls", and the stage #1 people tend
to go along with the stage #2 people since they can't tell stage #2 and
stage #3 people apart, and there are more stage #2 people.  I see all the
noise about systemd as just the latest instance of this phenomenon in my
field.

Just my $0.02.
-Jude


>
> Sent from my Windows Phone
>  --
> From: T.J. Duchene 
> Sent

[Dng] [dng] vdev status update (2015-05-03)

2015-05-13 Thread Jude Nelson
Hey everyone,

I have the latest news for vdev:

* vdev now creates symlinks for:
-- /dev/v4l/by-path
-- /dev/disk/by-partuuid
-- /dev/disk/by-partlabel

Thank you Scooby for helping me confirm this!

* vdev now sets the proper ownership and permissions for:
-- /dev/mISDNtimer
-- /dev/mwave
-- /dev/parport[0-9]
-- /dev/printer
-- /dev/ppdev
-- /dev/lp[0-9]
-- /dev/irlpt[0-9]
-- /dev/sch[0-9]
-- /dev/pktcdvd[0-9]
-- /dev/qft[0-9]
-- /dev/zqft[0-9]
-- /dev/nqft[0-9]
-- /dev/nzqft[0-9]
-- /dev/rawqft[0-9]
-- /dev/nraqft[0-9]
-- /dev/rawctl
-- /dev/aoe
-- /dev/lirc[0-9]
-- /dev/legousbtower
-- /dev/sonypi
-- /dev/mmtimer
-- /dev/sgi_*
-- /dev/z90crypt

* Didier Kryn has gotten vdevd and vdevfs to statically link and compile
with musl libc.  I'm looking forward to merging his contributions :)

* the build system has been refactored to use Makefiles more appropriately:
-- every generated file gets written to a separate build/ directory
-- every generated file is created by a non-phony target (i.e. nothing
happens by side-effect)
-- global buildconf.mk for setting variables
Thanks to Didier again for the suggestion!

* the initramfs hook conditionally pulls in iproute2, lvm, dmsetup, blkid,
etc.  Moreover, vdev's helpers conditionally use these programs if they are
present.  This means that vdev doesn't strictly depend on them anymore,
which is good if you're not using mapped devices or logical volumes.
Thanks to Anto for the suggestion!

* the initramfs hook pulls in the correct GNU libc files now, so chown(1)
will work correctly in the initramfs.  Thanks to Scooby, Isaac Dunham, Tom
H for their help!


[For Next Time]

* The next immediate objective is to package vdevd for Devuan, to make it
easier to test (in particular, easier to get a working initramfs).  I'm
currently dissecting udev's packaging and reading through Isaac's mdev
scripts to see what to expect and what we can recycle.  I've never packaged
something this complex before.  Thanks to Scooby, Anto, Tom H, and others
for all their help on getting me this far!

* Symlinks and permissions for RAID devices (/dev/md[0-9] and friends).  I
don't run a RAID myself, so I'll need to go set one up in QEMU.  If someone
wants to test vdev with a RAID, let me know, and I'll try to write a helper
script to play around with sooner rather than later.

* In some distros and configurations, a separate device manager (like mdev)
can populate just enough of /dev to mount root, but not try to set up any
symlinks.  Vdevd must have a way for the admin to tell it to run helper
scripts for the device even if its device node was already created
(indicating that it has been set up), so the symlinks and permissions still
get set appropriately.  Thanks to Scooby for reporting this!

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status updates

2015-05-13 Thread Jude Nelson
On Wed, May 13, 2015 at 7:42 AM, Jack L. Frost  wrote:

> On Tue, Apr 28, 2015 at 08:03:02PM -0400, Jude Nelson wrote:
> > Hey everyone,
> >
> > I have the latest news for vdev:
>
> Hi. I dunno if it's very relevant to this particular mailing list, but
> still.
> I've packaged vdev and all its dependencies for Arch:
>
> https://aur.archlinux.org/packages/vdev-git
> https://aur.archlinux.org/packages/fskit-git
> https://aur.archlinux.org/packages/libpstat-git


Hey, this is pretty cool!  Thanks for taking the time to do this :D

I'm working on Debian packages at the moment.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Which source version fo systemd are you stripping code from?

2015-05-07 Thread Jude Nelson
> Since I have time on my hands, I would like to give a try stripping
> the bare minimum of necessary functions from systemd. I know the task
> is complex. If I fail, it will not be the end of the universe.
>
> Which systemd source version are you using? I am assuming it should be
> version: 215-17 from Debian Jessie.
>
>
I'm basing libudev-compat on libudev 219.  Also, some of vdev's helper
programs (i.e. the ones that begin with "stat_") are derived from code in
udev 219.

It probably doesn't matter what version you go with unless you need a
specific feature or want to avoid a specific bug.  Why not just go with the
latest?  Stable releases of systemd are pretty frequent.

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Which package generates /lib/systemd and /etc/systemd files?

2015-05-05 Thread Jude Nelson
Hi Jaret,


> It would probably help to have some ground rules on how Devuan handles
> packages which provide systemd support.  I know Devuan says "Nope!" when it
> comes to anything that would introduce systemd/init system dependencies,
> but does it ever get more elaborate than that? If it is already in a wiki
> or README on git, I've missed it.
>
> I can think of two ways these dependencies would come up in packages that
> would need to be addressed:
>
> * Configurable systemd support:
>
> All Devuan packages should be configured NOT to depend on systemd,
> whenever possible. This prevents init-system creep. This doesn't stop one
> from using systemd and a package that has potential systemd support (like
> xfce); however, said package on Devuan would not get any of the additional
> benefits from systemd, such as... um, binary logging?
>
> I would recommend against maintaining a separate, systemd-configured
> repository; that would just be mainline Debian.
>
>
I think the plan is to address needless dependencies and lock-in in a more
general way, via the constitution (
https://git.devuan.org/devuan/devuan-project/wikis/DevuanConstitution).
Sections 2.2 and 9.10 are meant to alleviate this problem--not just for
systemd, but for all software package suites that get included.


>
> * Hard systemd requirements:
>
> I believe this is where gnome3 and similar software falls; the project has
> a hard runtime and/or buildtime dependency on systemd. The only way to
> offer these packages on a non-systemd Devuan is to patch out the systemd
> from the source.  Fortunately, FreeBSD already has to do this, right?  Just
> raid their patches.
>

+1


>
> This can become a maintenance burden, which is why it is cool to have a
> second option on how Devuan can handle these packages: *don't*.
>
>
>
> Now, this handling of systemd-dependent packages still means that systemd
> can be offered, but only as an init.  (An init system only be used to
> initialize a system? What madness is this!)  And the only way that systemd
> will ever make it onto your system is with an explicit apt-get install
> since no other packages depend on it.
>
> But IMHO, I think it would be wiser to offer uselessd instead of systemd:
>
> http://uselessd.darknedgy.net/


You may be interested to know that uselessd is effectively dead in the
water.  The original uselessd author has since given up (
https://forums.darknedgy.net/viewtopic.php?id=4963).  Someone else seems to
have taken over, but I haven't heard anything about its subsequent progress
(last repository commit is January 6:
https://bitbucket.org/Tarnyko/uselessd).


>
>
> Thataway, our (e)udev offering would be less muddled. Also, hilarity.
>

Already working on it :)


>
> Besides, going with uselessd instead would make a systemd-ish Devuan
> different than just Debian with poorer systemd integration.  It would kinda
> be like libav over ffmpeg; on this distro, systemd would just be considered
> a "deprecated" version of uselessd (what with its text logs and lack of
> gluttony against fellow software projects), even though both projects (in
> both cases) are considered currently active.
>
>
I'm personally not opposed to someone taking up maintenance of uselessd and
packaging it in a way that it conforms to Devuan's constitution :)  The
problem is, we'd need to find someone with the time, skill, and willpower
to do it.  That person is not me.  I barely have enough time to work on
vdev as it is :(

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Which package generates /lib/systemd and /etc/systemd files?

2015-05-05 Thread Jude Nelson
On Tue, May 5, 2015 at 1:41 PM, shraptor shraptor 
wrote:

> But I guess there is no obstacle to for instance run vdev with systemd,
> huh?
>

There shouldn't be.  However, someone will have to write a .service file
for it.

-Jude


>
> On Tue, May 5, 2015 at 7:33 PM, Jaromil  wrote:
>
>>
>> dear Noel,
>>
>> I'm happy that you are back, we really miss DWN, but I'm also sorry to
>> contradict you on this one.
>>
>> On Tue, 05 May 2015, Noel Torres wrote:
>> > As a resume: If you want a systemd-free system, Devuan is your
>> > distribution, and will always be. But if you want a system designed to
>> > be unable to run systemd, please leave us. This is not the place for
>> > such an anti-freedom POV.
>>
>> perhaps we could say it was to simplify the transition, but in operating
>> on packages so far we have removed systemd and the possibility to run it
>> on Devuan, which is now as far as that of running sysvinit on Debian for
>> normal users. This is more of a consequence of how Debian imposed
>> systemd than a deliberate choice from our side. I personally agree with
>> your line about init-freedom, but less agree with the line of telling
>> people this is not their place especially if they look for a
>> systemd-free system for whatever reason they have.
>>
>> At the inception of Devuan we have analysed the tradeoff of keeping
>> systemd optional and thought it was too much work in a direction we
>> weren't interested: we recommend Debian as the system of choice for
>> those wanting to have systemd crippl*cough*cough*manage their computers.
>>
>> As simple as this, the result is that there is no option to have systemd
>> in Devuan now and the simpliest way to have it would be anyway to use
>> Debian. I'm not sure it will be ever a priority to get systemd back as
>> optional for Devuan. Perhaps init-freedom is really realized by a
>> plurality of distributions and if there is a merit for Devan is still
>> that of preserving this freedom by providing an OS that is open to every
>> init system *but systemd* since the latter does exclude anyone else by
>> an enormous network of dependencies. In the future we'll invest efforts
>> in supporting sysvinit and more init systems our there (OpenRC, DMD
>> etc.) thus we'll be a bit more "universal" than Debian.
>>
>> Again personally I think that is an arrogant move today for any OS to
>> declare itself "universal" as init-freedom and more freedom in the
>> future is really realized by a plurality of distributions, a lesson we
>> learn from this fork perhaps.
>>
>> ciao
>>
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] About (k)dbus in LKML

2015-04-30 Thread Jude Nelson
Hi James,

On Thu, Apr 30, 2015 at 4:26 AM, James Powell  wrote:

> The discussion has not been favorable towards the adoption from current
> reading on LKML. Past tests have not proven reliability, nor any
> significant increase of speed of messaging across the IPC. Linus seems to
> be of no love for it.
>
> IMO from the collective discussion, kdbus doesn't seem to be really well
> designed, fast, or reliable compared to traditional D-Bus and only has a
> small if minimal gain over traditional D-Bus near negligible. In short, one
> could wonder if this effort was a complete waste of time, or a convoluted
> effort to introduce a proprietary IPC in the kernel that can only be used
> by system so they can kill off netlink support in udev in favor of kdbus.
> My pick is the latter as we all know how the systemd kabal thinks, and we
> all can make an educated guess as to where Greg Kroah-Hartman's
> true loyalties lie.
>

The D-Bus implementation you're using isn't really fast or reliable in the
first place :P  Linus's benchmarks suggest that the reason the D-Bus
implementation is so slow is because it suffers
performance-death-by-a-thousand-cuts.  There are a bunch of needless
malloc()s, copies, locks, etc. per call that aren't costly by themselves,
but they add up.  What remains to be seen is how a *well-written* userspace
D-Bus performs, or even a D-Bus that uses memfds or page-spicing for large
messages.

Also, netlink isn't going anywhere.  Linus does not break userspace, and
other device managers (including vdev) and hotplug programs all rely on
netlink to receive device events.


> The native IPC for Linux has been reliable, though it's not exactly fast
> by all means, but in terms of working, it works, does it's job well, and
> has a proven track record.
>

Shared memory is pretty damn fast--close to as fast as theoretically
possible.  Once set up, there is literally zero overhead (no context
swtiches, no MMU reprogramming, no TLB flushes, etc.) since the pages of
RAM are mapped in both the producers and consumer's page tables.

Also, according to Kay Sievers himself, the humble pipe is faster than
kdbus for messages smaller than 32K on an x86_64 system.  This is even
without vmsplice(2).

All it needs are new protocols worked in to help it out by introducing new
> methods of using the IPC while maintaining legacy pathways. Oddly enough
> another IPC, Plumper from 9P has been available for some time now, but has
> never been attempted at a port.
>
>
IIRC 9P gets used today in libvirt and qemu for sharing folders.  Also,
it's "plumber" :)


> I, and possibly others, can only hope Linus actually and ultimately says
> "no" to kdbus and sees the purpose behind kdbus not being a successor
> to D-Bus but a proprietary IPC that can be used by system for udev, and
> only for that purpose.
>

It doesn't really matter to us whether or not kdbus gets accepted.
Obviously, Linus won't accept it if he feels that it'll be a maintenance
hassle, since once it's in the kernel, its interface is not allowed to
change.

Gazing into my cracked and cloudy crystal ball, what'll probably happen is
the policy and marshaling logic will be kept in userspace, and the kernel
will get a patch that adds the minimal set of primitives needed to address
the actual shortcomings with the D-Bus design (but not problems with the
current implementation).  This includes memfd and file descriptor sealing
today.  Maybe down the road send(2) and write(2) will get a new flag to
atomically check if the receiver is still connected and abort if not, and
maybe read(2) and recv(2) will an option to atomically check the sender's
credentials before receiving data.  I get the impression from the
discussion that these are all the D-Bus developers really need the kernel
to do for them, but I could be wrong.


>
> Though should it become part of the mainline, we all know Lennart will
> waste no time in dropping netlink support in udev just to get his way.
>

He's already said as much.


>
>
If that becomes the case, eudev can hopefully make an effort to keep
> netlink alive in a separate tree while backporting code in from
> system-udev, but who knows how long that will last. However, Linus did make
> a stern warning that if they did anything to break the userspace (and
> breaking netlink in udev would do just that), they could have any number of
> penalties from more developers from systemd banned from kernel
> developments, to as well as possibly code excised from the kernel.
>

No doubt that eudev will continue regardless of systemd-udev.  Plus, we'll
have vdev soon enough too (which addresses problems that neither udev nor
eudev handle).

-Jude


Date: Tue, 28 Apr 2015 23:00:55 +1000
> From: ad_u...@runbox.com
> To: dng@lists.dyne.org
> Subject: [Dng] About (k)dbus in LKML
>
>
> https://news.ycombinator.com/item?id=9450806
>
> Hot discussion about merging kdbus in kernel.
>
> TL;DR: The people who talk about how kdbus improves performance are just
> ful

Re: [Dng] [dng] vdev status updates

2015-04-29 Thread Jude Nelson
On Wed, Apr 29, 2015 at 5:46 PM, Didier Kryn  wrote:

>
>
> Le 29/04/2015 22:34, Hendrik Boom a écrit :
>
>> On Wed, Apr 29, 2015 at 10:47:27AM -0400, Steve Litt wrote:
>>
>>> I'm under the impression you can do most or all of what needs to be
>>> done in the actual init, rather than the initramfs. This gets a little
>>> complicated now that Linux has been "improved" by having /sbin
>>> and /bin be symlinks to /usr/bin, which might not be mounted in early
>>> boot, but aside from that, I think once you have possession of /bin
>>> and /sbin, then assuming that /etc is not a mountpoint, I think most
>>> other stuff can be delayed til the real init, always assuming that it's
>>> easier to put stuff in the on-disk init than in initramfs.
>>>
>> Is that Linux that has been "improved" by turning /sbin and /bin into
>> symlinks?  Or is it Debian?  Or the systemd collection of distros?
>>
>> -- hendrik
>>
>>  Here's the story I read about /usr, and it sounds like the truth:
>
> When people built the first Unix machine, the first disk, containing
> /bin went full but they needed to add more files to /bin . They decided to
> put them on the second disk which contained user data and was therefore
> mounted at /usr. Hence /usr/bin. It was a technical workaround for
> disk-size limitation.
>
> Nowadays some distros got rid of /usr but still make it a symlink to /
> because of softwares that rely on it. If Debian is now doing sort of the
> opposite, it must be some trick. I've nothing against; as long as you keep
> /usr, use it at your will; it's all about convenience tricks.


Even these days, in some UNIXes (OpenBSD comes to mind), /bin and /sbin
differ from /usr/bin and /usr/sbin in that they only contain
statically-linked programs.  This is useful for doing things like upgrading
the rest of the system, so you have a way to recover from catastrophic
errors (like /usr or /lib becoming unusable).

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status updates

2015-04-28 Thread Jude Nelson
Hi Isaac,

[Snip]

>
> Theoretically, it *should* work if /etc/{passwd,group} are present in the
> initramfs, with those paths. It's possible to mistakenly copy them to /
> instead of /etc, but I assume that you've already checked that.
>
> Detail that shouldn't make a difference but might:
> static or non-static busybox?
>

Not sure; will find out and let you know if it makes a difference.


>
> A couple shots in the dark:
> -check that you're using properly spelled usernames/groups, and that
> $IFS isn't something weird.
>

Did the former, but not yet the latter.


> -double-check that you have a non-empty passwd/groups file, containing
> the same users/groups and world-readable.
>

Does it have to be world-readable even if the chown(2) happens from a
process with uid=0?  I verified that they're non-empty, and verified that I
was unable to (as root) use busybox chown from the initramfs shell.


>
> To debug it:
> -Add ltrace (with dependencies) and a *non-static* busybox to your
> initramfs and try running
>  ltrace busybox chown USER:GROUP FILE
>
> This shows you the functions that are called, so you can check if they
> return success.
>

I will add ltrace (and ldd) to my initramfs and try this out :)


>
> > * As Anto's experience shows, getting a working initramfs is tedious to
> do
> > and easy to get wrong.  This is not only because there are multiple init
> > systems that vdevd will need to work with (e.g. sysv-rc, file-rc, openrc,
> > etc.), but also init scripts and initramfs scripts that come from
> packages
> > that depend on udev are (unsurprisingly) tightly coupled to udev.  This
> > makes it difficult to install vdevd on a running Debian system without
> > removing udev (which is in itself undesirable, since it will take a large
> > swath of packages out with it), since I have to pretty much fork both
> sets
> > of scripts and try to mash them up into a custom initramfs without
> altering
> > /usr/share/initramfs-tools.  This is effectively what my (extremely
> kludgy)
> > initramfs Makefile does.
>
> Check what I did with mdev (in hooks/ directory of github.com/idunham/mdev
> );
> I did *not* find that initramfs-tools was at all tightly coupled with udev,
> to the point that dropping the correct scripts into
> /usr/share/initramfs-tools and convincing dpkg that it didn't need udev
> was quite adequate.


Thanks for the link!  It's good to get feedback from someone who's packaged
a device manager before :)

Regarding setting up the initramfs, my experience is a bit more involved.
I had to patch initramfs-tool's init script so it wouldn't try to mount
devtmpfs, and wouldn't try to pull in udev config files or migrate udev's
info from /run.  This is because to the best of my knowledge, the only
reason devtmpfs needs to be mounted at all is because udev no longer
creates device files on its own (it only changes ownership and adds
symlinks).  However, using devtmpfs will be problematic for libudev-compat,
which relies on inotify(2) to detect device changes (i.e. a device file
that shows up in devtmpfs from the kernel does not generate an inotify
event).


> However, you *will* need to take care that there is only one script moving
> /dev to the target filesystem, or you will almost certainly get a failed
> boot.
>
> Also, I cannot comment on whether LVM et al. are tightly coupled with udev.
>

I'm still looking into this, but so far it seems that the dmsetup and
cryptsetup hooks both pull udev-specific files in for their own
consumption.  Also, the initramfs functions library, as well as the nfs,
cryptoroot, and lvm2 local-* scripts explicitly depend on udevadm to run
what is basically a poll loop to wait for udev to find the relevant
devices.  It's not clear to me yet whether or not this is a consequence of
udev daemonizing before it finishes processing coldplugged devices
(introducing the need to run "udevadm settle" over and over), or a
consequence of some interplay between the udev-isms that have worked their
way into lvm and dmsetup.  Either way, some refactoring and encapsulation
may be in order.


>
> > What I'm going to make my next priority is making a .deb for vdevd that
> > automatically generates the initramfs in a "safe" manner.  I'd need to do
> > this in a way that disables, but does not remove the udev scripts.  This
> is
> > easier said than done due to tight integration with udev, but I don't
> think
> > it's insurmountable.
> >
> > What we'll need is a well-written .deb post-install script that:
> > * sets up config files needed to generate persistent device names
>
> Install config files, marked as such.
>

It's more involved than that--the /etc/vdev/ifnames.conf file needs to be
generated from the host's network interfaces, for example (like the
/etc/udev/rules.d directory).  But obviously surmountable :)


> > * installs our versions of the initramfs scripts for things like lvm,
> > suspend/resume, etc.
> > * disables the udev versions, but does not uninstall them
>
> It wi

Re: [Dng] A systemd-free Valentine image: Was: Re: ... devuan image

2015-04-28 Thread Jude Nelson
Hi Svante,

On Tue, Apr 28, 2015 at 2:53 AM, Svante Signell 
wrote:

> On Mon, 2015-04-27 at 13:49 -0400, Haines Brown wrote:
> > I'm running debian wheezy on a 32-bit machine. Given the appearance of
> > Jessie last Saturday, it seemed time to try out devuan. Because I don't
> > know what to do with the qcow2 files of the current builds, I went back
> > to the Valentine ISO.
>
> Just FYI: I have an almost systemd-free Valentine image by now in
> qemu :)
>
> # cat /etc/apt/preferences.d/systemd
> Package: systemd
> Pin: release o=Debian
> Pin-Priority: -1
>
> # cat /etc/apt/sources.list
> deb http://packages.devuan.org/merged ascii main contrib non-free
> deb http://packages.devuan.org/merged jessie main contrib non-free
> deb http://angband.pl/debian nosystemd main
> (deb-src entries omitted)
>
> # dpkg -l xfce4
> ii  xfce4   4.10.1   all  Meta-package for the Xfce
>
> # dpkg -l |grep 215-17
> ii  libgudev-1.0-0:i386  215-17
> i386 GObject-based wrapper library for libudev
> ii  libudev1:i386215-17
> i386 libudev shared library
> ii  udev 215-17
> i386 /dev/ and hotplug management daemon
>
> The last two will be replaced by vdev when Jude is finished :)
>
> The only question right now is:
> # apt-get remove libgudev-1.0
> The following packages will be REMOVED:
> colord gstreamer1.0-plugins-good libgudev-1.0-0 quodlibet
> task-xfce-desktop thunar thunar-archive-plugin thunar-media-tags-plugin
> thunar-volman udisks2 upower xfburn xfce4 xfce4-goodies
> xfce4-places-plugin xfce4-power-manager
> 0 upgraded, 0 newly installed, 16 to remove and 0 not upgraded.
> After this operation, 16.1 MB disk space will be freed.
> Do you want to continue? [Y/n] n
>
> Jude?
>

Getting there...  I'm hopeful that libgudev-1.0 will "just build" against
libudev-compat, since libudev-compat strives to be ABI-compatible with
libudev.

Also, please see
https://lists.dyne.org/lurker/message/20150429.000302.88924987.en.html :)

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] [dng] vdev status updates

2015-04-28 Thread Jude Nelson
Hey everyone,

Sorry for being incommunicado these past two weeks--I was working on a
conference paper that was due last Friday.  Thank you all for being patient!

I have the latest news for vdev:

[Status updates]

* Support for booting from LVM2 volumes has been added.  vdevd will create
all /dev/VG/LV links, /dev/mapper/ symlinks, and
/dev/disk/by-id/lvm-pv-uuid-XXX links.  I have successfully used vdev to
boot the Devuan QEMU image from April 24--the one with root and swap on LVM.

* Support for /dev/input/by-id has been added, but needs testing.  In
particular, I'm not sure what kinds of devices other than USB input devices
go here.  I think maybe old serial and MIDI joysticks might go here, but I
do not have any to test on (let alone a computer with a COM or MIDI port).
If you're not seeing a device symlink that should be here, please let me
know.

* vdevd's helper scripts now set device ownership and permissions
correctly, instead of defaulting to root.root and 0600.

[Development]

* Under the hood, I've refactored vdev's subr.sh shell library, such that
each vdev-specific method is appropriately prefixed (with "vdev_").

* With Scooby's help, I'm getting a list going for package dependencies
going for vdevd's helper scripts, to make it easier to package vdev.  The
list is in pkg/dependencies.txt.

[Integration Testing]

* Scooby, Tom H, and Anto have been hitting vdev hard, and Scooby has been
able to boot to desktop with vdevd (but first by writing an xorg.conf).
Their reports have been instrumental in closing the functionality gap
between vdevd and udevd.  Thank you to everyone who participated!

* On initramfs testing:  Anto has helped me uncover some problems with my
very early, very hack-ish makefile for generating initramfs images.  I
think the latest commit should fix at least some of the problems (but not
all of them), but I have not had time to look into whether or not the
process works for file-rc.

[TODO]

* I still need to figure out how to generate /dev/disk/by-partuuid and
/dev/v4l/by-path, and possibly others.

* Packaging.  I'm working on a way to automatically build a .deb for vdevd
that will, among other things, safely generate and install an initramfs
without having to hack the initramfs tools (as is the case today).  Please
see [Help Wanted].

* libudev-compat.  No ETA on this, but I'm going to try to make some
progress on it next week.  Fortunately, a lot of programs can be compiled
without libudev, so it's not as high of a priority right now.

[Help Wanted]

* Astute readers may notice that one method in vdev/helpers/LINUX/subr.sh
is called vdev_chown.  This is because for whatever reason, Debian's
busybox chown does not accept usernames and group names when running in the
initramfs.  I have tried:
-- copying over /etc/passwd, /etc/passwd-, /etc/group, /etc/group- to the
initramfs.
-- using GNU chown.
-- strace-ing both GNU chown and busybox to confirm that they access
/etc/passwd and /etc/group.

It does not appear to be specific to busybox chown; busybox ls doesn't
resolve UIDs and GIDs to usernames and groups either, for example.  Anyone
familiar with busybox on this list want to weigh in?  The vdev_chown shell
method is clearly a hack and I'd love to be rid of it, but until I figure
out why busybox chown is misbehaving, it's necessary to set device file
ownership in the initramfs (i.e. I think it's less evil than using opaque
UIDs and GIDs in vdevd's helper scripts).

* As Anto's experience shows, getting a working initramfs is tedious to do
and easy to get wrong.  This is not only because there are multiple init
systems that vdevd will need to work with (e.g. sysv-rc, file-rc, openrc,
etc.), but also init scripts and initramfs scripts that come from packages
that depend on udev are (unsurprisingly) tightly coupled to udev.  This
makes it difficult to install vdevd on a running Debian system without
removing udev (which is in itself undesirable, since it will take a large
swath of packages out with it), since I have to pretty much fork both sets
of scripts and try to mash them up into a custom initramfs without altering
/usr/share/initramfs-tools.  This is effectively what my (extremely kludgy)
initramfs Makefile does.

What I'm going to make my next priority is making a .deb for vdevd that
automatically generates the initramfs in a "safe" manner.  I'd need to do
this in a way that disables, but does not remove the udev scripts.  This is
easier said than done due to tight integration with udev, but I don't think
it's insurmountable.

What we'll need is a well-written .deb post-install script that:
* sets up config files needed to generate persistent device names
* installs our versions of the initramfs scripts for things like lvm,
suspend/resume, etc.
* disables the udev versions, but does not uninstall them
* safely builds the initramfs from our scripts.
* (long-term) does the above in a way that is agnostic to the device
manager, since there are real-world use-cases for

Re: [Dng] Fwd: [dng] vdev status update

2015-04-19 Thread Jude Nelson
Hi Anto,


>
> I am confused now about your comment that we can "install any/all device
> managers and pick one that gets started at boot-time via the alternatives
> system".
>
> I initially thought that vdev requires udev or any other device managers
> to work. But since you added the command to disable udev on
> https://github.com/jcnelson/vdev/blob/master/INSTALL.md, I followed that
> and I got the impression that vdev will replace udev.


That is not my intention when it comes to packaging vdev.  Devuan is all
about preserving the user's freedom to run the software they want, so the
ultimate goal is to make it possible for multiple different device managers
to coexist.

However, this is somewhat difficult to do this right now, especially when
it comes to testing vdev.  That's why the INSTALL document and the
installation scripts attempt to disable udev.


>
> However, either any of those has no affect at the moment as vdev's init
> still fails to mount the root file system, so it does not touch /sbin/init
> yet.


> Yes. Perhaps it is better to start with vdev for amd64 first. I think that
> would speed up differentiating Devuan from Debian, so that will not be only
> for me. Probably not for the initial release of Devuan, but later on after
> vdev is stable.
>
> In regards to the deb package of vdev, I have to test it on a real test PC
> to be safe, instead of on my "current test machine" which is the PC that I
> am using for writing this email.
>

Once I have a deb ready, it will automatically generate the initramfs and
do something more sane with the initscripts than the Makefile.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Boot sequence: was vdev status update

2015-04-18 Thread Jude Nelson
Hi Steve,

On Sat, Apr 18, 2015 at 12:02 PM, Steve Litt 
wrote:

> On Sat, 18 Apr 2015 00:08:54 -0400
> Jude Nelson  wrote:
>
>
> > The init program in example/initramfs/init goes into
> > /usr/share/initramfs-tools/init, not /sbin/init :)  The initramfs's
> > init script is fundamentally different from the init program
> > in /sbin.  That also explains your inability to reboot.
> >
> > Basically, when the bootloader loads the initramfs, the kernel mounts
> > it as the root device and starts /sbin/init.  /sbin/init, in turn,
> > runs the script at /init (which you can see from the initramfs shell
> > with "ls /"), which is copied into the initramfs image by the
> > update-initramfs and mkinitramfs tools from the
> > file /usr/share/initramfs-tools/init.
>

I had misspoken here--as Laurent and Isaac pointed out, the kernel will
load /init as PID 1 in the initramfs.  This script in turn exec's the
"real" init process from the root device (/sbin/init).

I'm sorry if I caused confusion--I will be more careful in the future to
fact-check myself.

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Fwd: [dng] vdev status update

2015-04-18 Thread Jude Nelson
Hi Anto,

On Sat, Apr 18, 2015 at 2:19 PM, Anto  wrote:

> On 18/04/15 19:46, Anto wrote:
>
>>
>> Hello Jude,
>>
>> I have tried a lot other combinations but the problem remains, that is
>> the init fails to mount the root partition.
>>
>> I am not sure why as I can manually mount any disks that are available on
>> /dev at (initramfs) prompt. I had to do that in order to be able to copy
>> any logs into the disks or edit /etc/runlevel.conf to restore it. I also
>> tried to add kernel boot options "root=/dev/sda1 init=/sbin/init", but that
>> still does not help.
>>
>> The first error on initramfs.debug is "/init: line 1: mount_top: not
>> found". Please have a look on that initramfs.debug and its corresponding
>> dmesg output on
>> https://minifora.eu/public/devuan/vdev/initramfs_debug_logs.tar.gz.
>>
>> Cheers,
>>
>> Anto
>>
>>
> Hello Jude,
>
> Sorry for keep sending emails instead of sending them at once. I just
> thought it will be good to have comparison of the logs with the successful
> boot using udev. Please have a look on same set of the logs with udev on
> https://minifora.eu/public/devuan/vdev/udev_initramfs_debug_logs.tar.gz.


No worries :)  I'm sorry I didn't get a chance to look at this today (I've
been out of town all day).  I'm going to try again tomorrow.

Would it be easier for you if I just went ahead and created an amd64 deb
for vdev?  I would have to make it conflict with udev for now(*) since it
would need to prevent udev from running, but it seems like this is
acceptable for your current test machine.

Thanks,
Jude

(*) The tentative plan for the future would be to let you install any/all
device managers and pick the one that gets started at boot-time via the
alternatives system.
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Fwd: [dng] vdev status update

2015-04-17 Thread Jude Nelson
Hi Anto,

[snip]


> 1. compile and install vdev
> 2. copy vdev's initrd into /boot
> 3. rename /sbin/init to /sbin/init.novdev

4. copy vdev's init file into /sbin
>

The init program in example/initramfs/init goes into
/usr/share/initramfs-tools/init, not /sbin/init :)  The initramfs's init
script is fundamentally different from the init program in /sbin.  That
also explains your inability to reboot.

Basically, when the bootloader loads the initramfs, the kernel mounts it as
the root device and starts /sbin/init.  /sbin/init, in turn, runs the
script at /init (which you can see from the initramfs shell with "ls /"),
which is copied into the initramfs image by the update-initramfs and
mkinitramfs tools from the file /usr/share/initramfs-tools/init.


> 5. manually set the vdev's initrd and init.vdev in grub.cfg
> 6. manually add /etc/init.d/vdev into runlevel.conf (and keep
> /etc/init.d/udev)
> first, I tried to put vdev before udev, then the other way around
> 7. reboot my PC using vdev's initrd and init
>
> There are some progress on the boot messages, but I still ended up on
> (initramfs) prompt. As before, I can only use my keyboard using kernel
> 3.2.0, so I could capture the vdev_debugging that you asked before. Please
> download that from
> https://minifora.eu/public/devuan/vdev/vdev_debug_logs.tar.gz. That file
> also contain the copy of /var/log/messages, but I just took the messages
> since I started to keep rebooting my PC.
>
> I think something still do not work properly on the vdev's init as I got
> message saying "/sbin/init: 30: .: Can't open /conf/arch.conf" at boot and
> when I did reboot as below.
>
> root@hp8530w:~# reboot
>
> Broadcast message from root@hp8530w (pts/1) (Fri Apr 17 18:28:56 2015):
>
> The system is going down for reboot NOW!
> Loading, please wait...
> mount: sysfs already mounted or /sys busy
> mount: according to mtab, sysfs is already mounted on /sys
> mount: proc already mounted
> /sbin/init: 30: .: Can't open /conf/arch.conf
> root@hp8530w:~#
> root@hp8530w:~# reboot
> WARNING: could not determine runlevel - doing soft reboot
>   (it's better to use shutdown instead of reboot from the command line)
> Loading, please wait...
> mkdir: cannot create directory `/var/lock': File exists
> mount: sysfs already mounted or /sys busy
> mount: according to mtab, sysfs is already mounted on /sys
> mount: proc already mounted
> /sbin/init: 30: .: Can't open /conf/arch.conf
> root@hp8530w:~#
>
> I am still using file-rc instead of sysv-rc, but I didn't clean up
> /etc/rc?.d directories. I tried to use sysv-rc, but my mouse and keyboard
> are not being detected when using kernel 3.18.11. They are only being
> detected on kernel 3.2.0 from wheezy repository. I think there is something
> wrong with my kernel config but I will investigate that later.
>

Not sure yet what could be the cause of your keyboard and mouse not
working.  Let's see what happens after you fix steps 3 and 4--it could be a
side-effect of the init program being broken, since the init program should
also run the console setup scripts.

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Wana give a try to vdev

2015-04-17 Thread Jude Nelson
Hi Didier,

[Snip]


>  Hello Jude.
>
> Here is a brief summary of what I did up to now. The goal was to
> install a minimal rootfs in flash memory of an embeded Powerpc (MVME3100)
> to use as a sandbox.
>
> 1) I compiled a kernel with the following boot parameters:
> console=ttyS0,9600 root=/dev/mtdblock1 rootfstype=jffs2
>
> 2) The filesystem contains busybox-1.20.2 statically linked with musl,
> which I had done a while ago.
>
> 3) vdevd:
>
> I first tried to compile vdev natively on Debian Wheezy, but could not
> link it statically as I wanted. This is actually a classical problem with
> glibc everytime network functions are used. Actually the offending
> functions are getpwnam_r() and the like. I guess this is related with NIS
> compatibility built in the glibc.


The functions that call getpwnam_r() and getgrnam_r() in libvdev are only
used by vdevfs.  It looks like this is going to be the case for the
foreseeable future.  I just pushed code that moves them into vdevfs, so you
shouldn't see those errors again when statically linking with glibc.
Thanks for trying that out!


> I decided to link against musl libc. To save time I just downloaded a
> ready-made image of sabotage-linux for powerpc and compiled vdev in a
> sabotage chroot.
>

Good to know!  I hadn't tried it with musl yet, but I'm glad to hear that
it works with it.


>
> I have now my minimal OS working. init is a little script doing the
> necessary mounts, including /dev on tmpfs and creating a few device files
> (console, ttyS0, null, zero). The script starts an interactive session and
> I could try to run vdevd by hand:
>
> / # vdevd /dev
> 00487:268746168: [  vdev.c:0425] vdev_init: ERROR:
> vdev_config_load('(null)') rc = -14
> 00487:268746168: [  main.c:0042] main: ERROR: vdev_init rc = -14
> / #
>
> AFIU, I am only missing a config file... :-)


Yup, missing a config file :)

If you run "make -C example" on the host, the Makefile will generate all
the host-tailored vdev config files you'll need (such as persistent
interface naming rules).  They will be generated in example/build/etc/vdev
(which can just be copied into /etc).

Once you have your config files generated, you'll need to add "-c
/path/to/config/file" as an argument.  I just pushed code to vdevd that
makes it look in /etc/vdev/vdevd.conf, if "-c" is not given (and if
/etc/vdev/vdevd.conf doesn't exist, vdevd should fail with ENOENT instead
of EFAULT).

Also, if you want more verbose debugging output from vdevd, you can pass
"-v" or "-v2" :)

Thank you for giving vdev a try, despite it's pre-alpha-ness :)

-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Fwd: [dng] vdev status update

2015-04-17 Thread Jude Nelson
Hi Anto,

I push code to both github and git.devuan.org.  Either one works :)

Thanks,
-Jude

On Fri, Apr 17, 2015 at 9:40 AM, Anto  wrote:

> On 17/04/15 06:00, Jude Nelson wrote:
>
>> Hi Anto,
>>
>> I just committed preliminary support for using vdevd with devtmpfs.
>> vdevd should automatically detect whether or not devtmpfs is mounted on
>> /dev, and nevertheless run device setup scripts (by using its own device
>> metadata tree in /dev/vdev/ to see whether or not the device was actually
>> processed).
>>
>> NB for developers:  this problem isn't specific to Linux--I expect to
>> encounter it with FreeBSD as well, since it has a full-blown in-kernel
>> devfs.  vdevd will keep track of "OS quirks" in the future--one of which is
>> the "Device Already Exists" quirk, whereby vdevd simply expects the OS to
>> provide the device file (regardless of the mechanism).  The Linux-specific
>> vdevd back-end now checks to see if vdevd will create files on a devtmpfs
>> filesystem, and enables that quirk if so.
>>
>> Funny, undocumented (!!) discovery:  the devtmpfs filesystem type (see
>> statfs(2)) is the same (!!) as the tmpfs filesystem type, despite being a
>> fundamentally different filesystem.  I'm surprised that this wasn't caught
>> during the devtmpfs code review--guess I'll have to file a bug report.
>> Anyway, if you find yourself wondering why vdev has to detect devtmpfs by
>> parsing /proc/mounts and verifying that the realpath of the mountpoint is
>> the same as or is a subdirectory of a devtmpfs mountpoint, that's why--we
>> (currently) can't rely on the f_fsid in statfs(2) or statvfs(2).
>>
>> Thanks,
>> Jude
>>
>>
> Hello Jude,
>
> Before I start pulling your latest commit, could you please let me know
> from which source should I pull that? Should it be from
> https://git.devuan.org/pkgs-utopia-substitution/vdev or
> https://github.com/jcnelson/vdev? So far I have been using the one on
> github.com.
>
> Cheers,
>
> Anto
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Fwd: [dng] vdev status update

2015-04-16 Thread Jude Nelson
Hi Anto,

I just committed preliminary support for using vdevd with devtmpfs.  vdevd
should automatically detect whether or not devtmpfs is mounted on /dev, and
nevertheless run device setup scripts (by using its own device metadata
tree in /dev/vdev/ to see whether or not the device was actually
processed).

NB for developers:  this problem isn't specific to Linux--I expect to
encounter it with FreeBSD as well, since it has a full-blown in-kernel
devfs.  vdevd will keep track of "OS quirks" in the future--one of which is
the "Device Already Exists" quirk, whereby vdevd simply expects the OS to
provide the device file (regardless of the mechanism).  The Linux-specific
vdevd back-end now checks to see if vdevd will create files on a devtmpfs
filesystem, and enables that quirk if so.

Funny, undocumented (!!) discovery:  the devtmpfs filesystem type (see
statfs(2)) is the same (!!) as the tmpfs filesystem type, despite being a
fundamentally different filesystem.  I'm surprised that this wasn't caught
during the devtmpfs code review--guess I'll have to file a bug report.
Anyway, if you find yourself wondering why vdev has to detect devtmpfs by
parsing /proc/mounts and verifying that the realpath of the mountpoint is
the same as or is a subdirectory of a devtmpfs mountpoint, that's why--we
(currently) can't rely on the f_fsid in statfs(2) or statvfs(2).

Thanks,
Jude

On Thu, Apr 16, 2015 at 8:28 PM, Jude Nelson  wrote:

> Hi Anto,
>
> [snip]
>
>> I am not really sure if I understood what you explained. I don't think I
>> have devtmpfs on my PC when I use the working initrd. The one mounted on
>> /dev with the type of devtmpfs is udev. Here are the output of mount and
>> the content of my fstab.
>>
>> root@hp8530w:~# uname -a
>> Linux hp8530w 3.18.11-1v1-hp8530w #1 SMP Wed Apr 15 00:49:22 CEST 2015
>> x86_64 GNU/Linux
>> root@hp8530w:~#
>> root@hp8530w:~# mount
>> sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
>> proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
>> udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_
>> inodes=492536,mode=755)
>> devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,
>> gid=5,mode=620,ptmxmode=000)
>> tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,
>> size=401084k,mode=755)
>> /dev/disk/by-uuid/c0e1e620-5636-48f2-90dd-4d246d58b815 on / type ext4
>> (rw,relatime,errors=remount-ro,data=ordered)
>> tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,
>> relatime,size=5120k)
>> tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,
>> relatime,size=1641020k)
>> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
>> /dev/sda2 on /home type ext4 (rw,relatime,data=ordered)
>> root@hp8530w:~#
>>
>
> You have devtmpfs mounted.  It's this line here:
>
> > udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_
> inodes=492536,mode=755)
>
> If you run "mount" while in the initramfs, you might see devtmpfs as
> well.  If so, then please make sure that you're using vdev's initramfs
> "init" script in example/initramfs/init, instead of the one in
> /usr/share/initramfs-tools/init.  Vdev's init does not mount devtmpfs, but
> initramfs-tool's init does.  Devtmpfs cannot be mounted on /dev while vdev
> is running (but I'll fix this soon).
>
>
>> root@hp8530w:~# cat /etc/fstab
>> # /etc/fstab: static file system information.
>> #
>> # Use 'blkid' to print the universally unique identifier for a
>> # device; this may be used with UUID= as a more robust way to name devices
>> # that works even if disks are added and removed. See fstab(5).
>> #
>> #   
>> # / was on /dev/sda1 during installation
>> UUID=c0e1e620-5636-48f2-90dd-4d246d58b815 /   ext4
>> errors=remount-ro 0   1
>> # /home was on /dev/sda2 during installation
>> UUID=5be7af77-0d10-4685-989f-1004b1eabec8 /home   ext4 defaults
>>   0   2
>> # swap was on /dev/sda3 during installation
>> UUID=3a37a27d-84cc-4d06-9920-5419bb4ccbae noneswap sw
>>   0   0
>> # /dev/sr0/media/cdrom0   udf,iso9660 user,noauto 0   0
>> /dev/cdrom1/media/cdrom0   udf,iso9660 user,noauto 0   0
>> # /dev/cdrom/media/cdrom0   udf,iso9660 user,noauto 0   0
>> root@hp8530w:~#
>
>
> This is more evidence to me that the reason you got dropped into a shell
> in the initramfs was because vdev saw the /dev/sd* device files from
> devtmpfs, and (incorrectly) thought that they had already been processed
> and thus didn't go on to generate 
> /de

Re: [Dng] Fwd: [dng] vdev status update

2015-04-16 Thread Jude Nelson
Hi Anto,

Sorry for the late reply; I had been super busy with work over the last 24
hours.

On Wed, Apr 15, 2015 at 2:43 PM, Anto  wrote:

> On 15/04/15 05:20, Jude Nelson wrote:
>
>> Hi Anto,
>>
>>
>> Don't you want to know my setup?
>>
>> Yes, eventually :) Â However, I don't want to waste your time either, at
>> least until I am more confident that the vdev installation process works
>> correctly.
>> Â
>>
>> Maybe there are some packages required by your vdev, but I don't
>> have them installed on my PC. Or maybe the kernel 3.18.10 that I
>> use require different treatment, so I need to use different kernel
>> version to test your vdev. I think knowing that could help you
>> troubleshoot the problem. I am really not sure the requirements to
>> properly test your vdev at this stage. So perhaps having the same
>> setup as your development environment could avoid any unnecessary
>> issues.
>>
>>
>> Well, there is one thing, if you're not too busy and it's not too
>> inconvenient for you.  Vdev logs its early boot messages to
>> /run/vdev/vdevd.boot.log.  If you could capture that file and send it to
>> me, that would not only help me understand your setup, but also why vdev is
>> misbehaving.
>>
>> Better yet, from the initramfs shell, if you could run "vdevd -v2 -f -c
>> /etc/vdev/vdevd.conf --once /dev > /tmp/vdev-debugging.log" and send me the
>> contents of /tmp/vdev-debugging.log, that will not only populate /dev
>> (assuming vdevd works correctly on that invocation), but also generate a
>> lot of extra debugging information in /tmp/vdev-debugging.log that would
>> help me diagnose the problem.
>>
>> No worries if you're too busy or have better things to do, though :)
>>
>> Thanks again,
>> Jude
>>
>
> Hello Jude,
>
> Let's just say that I am doing this egoistically all for myself. :) So I
> will devote my time to test your vdev as much as I can.
>
> Unfortunately, I cannot get the debugging log that you are after. Using
> kernel 3.18.10 and 3.18.11, the keyboard was not being detected after it
> got to the (initramfs) prompt, so I could not type anything. I managed to
> execute the debugging command using kernel 3.2.0, but it didn't seem to
> write the log to the /tmp directory. I think that is due the disk was not
> detected. I could only capture the last messages using the camera of my old
> mobile phone, so the quality is not good. Please have a look on
> https://minifora.eu/public/devuan/vdev/vdev_debugging_15Apr15_3.jpg.
>

Thanks for sending me the picture :)

The "rc = -17" error code means that the device exists (i.e. it's
-EEXIST).  If you look in /dev from the initramfs, you should see a bunch
of device files.

The "rc = -2" at the end is a minor bug--vdevd didn't create /dev/pts/ptmx,
so it couldn't look up any metadata under /dev/vdev for it (i.e. rc == -2
is -ENOENT).  That by itself shouldn't prevent root from mounting, though.

Do you have devtmpfs mounted on /dev?  That could be the reason it doesn't
boot.  At this time, if a device file exists that vdevd did not create,
vdevd won't run any helper scripts for it when it processes it.  If your
root partition device file exists (e.g. /dev/sda1) since e.g. devtmpfs
created it, and your /etc/fstab identifies your root device partition using
a persistent path (e.g. /dev/disk/by-uuid/... or the like), vdevd won't
generate the persistent path, since that's done by the helper scripts for
/dev/sda1.  As such, the script routines that parse /etc/fstab won't find
the root device, and the initramfs init will abort and drop you into a
shell.

For those who don't know, devtmpfs is basically a no-frills devfs that
modern udev now requires to be mounted to work correctly (i.e. devtmpfs
makes the device files these days, not udev).  vdevd is currently not
compatible with devtmpfs, since it expects to create all the device files
itself.  I'll update the Linux port to check of devtmpfs is mounted before
running, so vdevd will still run the helper scripts even if devtmpfs
created the device files already.


> I am not sure if this would be relevant. I am using file-rc instead of
> sysv-rc, so I didn't actually have any /etc/rc?.d directories. After the
> installation of the "example", /etc/rcS.d directory and S02vdev link under
> it got created. It could possibly be a problem later on, but I think I will
> worry about that (add it into /etc/runlevel.conf) after the boot process
> can reach it.
>

That is relevant!  I had assumed in the Makefile that the user is using
sysv-rc, 

Re: [Dng] Fwd: [dng] vdev status update

2015-04-14 Thread Jude Nelson
Hi Anto,

>
> Don't you want to know my setup?


Yes, eventually :)  However, I don't want to waste your time either, at
least until I am more confident that the vdev installation process works
correctly.


> Maybe there are some packages required by your vdev, but I don't have them
> installed on my PC. Or maybe the kernel 3.18.10 that I use require
> different treatment, so I need to use different kernel version to test your
> vdev. I think knowing that could help you troubleshoot the problem. I am
> really not sure the requirements to properly test your vdev at this stage.
> So perhaps having the same setup as your development environment could
> avoid any unnecessary issues.
>

Well, there is one thing, if you're not too busy and it's not too
inconvenient for you.  Vdev logs its early boot messages to
/run/vdev/vdevd.boot.log.  If you could capture that file and send it to
me, that would not only help me understand your setup, but also why vdev is
misbehaving.

Better yet, from the initramfs shell, if you could run "vdevd -v2 -f -c
/etc/vdev/vdevd.conf --once /dev > /tmp/vdev-debugging.log" and send me the
contents of /tmp/vdev-debugging.log, that will not only populate /dev
(assuming vdevd works correctly on that invocation), but also generate a
lot of extra debugging information in /tmp/vdev-debugging.log that would
help me diagnose the problem.

No worries if you're too busy or have better things to do, though :)

Thanks again,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Fwd: [dng] vdev status update

2015-04-14 Thread Jude Nelson
Hey Anto,

On Tue, Apr 14, 2015 at 3:38 PM, Anto  wrote:

> On 14/04/15 21:18, Anto wrote:
>
>>
>> Hello Jude,
>>
>> I have just done the following:
>>
>> - remove /etc/vdev
>> - |git pull https://github.com/jcnelson/vdev|- remove /etc/vdev
>> - make clean
>> - compile and install libvdev, vdevd and example (step 1)
>> - for step 2, I need to use root account as otherwise I got the following
>> errors:
>>
>> cp -a ./initramfs//* ./build/initramfs/
>> ../tools//initramfs/mkinitramfs -t ./build/initramfs/ -o
>> ./initrd.img-`uname -r`
>> /dev/sda1: Permission denied
>> /usr/sbin/iucode_tool: cpuid kernel driver unavailable, cannot scan
>> system processor signatures
>> make[1]: Leaving directory `/usr/src/vdev/example'
>>
>> - copy initrd from example directory to /boot
>> - boot using the previous grub.cfg
>> - reboot my PC to use the initrd of vdev
>>
>> There is no ERROR about missing vdev config but my PC still ends up at
>> (iniramfs) prompt.
>>
>> Cheers,
>>
>> Anto
>>
>>
Thanks for giving it a try again!  I'm going to try to reproduce it on my
VM and I'll get back to you (could be a few days, though).


>
> Perhaps I was not quite clear on my previous email. There is indeed no
> error messages about missing vdev config. But at the beginning of boot, I
> still get the following messages:
>
> Loading, please wait...
> /init: line 175: resolve_device: not found
>

I'm not sure what this is, but let me see if I can reproduce it on my VM.

Thanks,
Jude


>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] Fwd: [dng] vdev status update

2015-04-14 Thread Jude Nelson
It just occurred to me that my reply wasn't CC'ed to the ML.

-- Forwarded message ------
From: Jude Nelson 
Date: Tue, Apr 14, 2015 at 2:12 PM
Subject: Re: [Dng] [dng] vdev status update
To: Anto 


Hi Anto, thank you for giving that a try!


> I am not sure if at this stage, it is worth it to report the problems that
> I have just experienced.
>

Actually, every bit of feedback helps :)


>
> I followed your 3 steps instruction to have vdev on the PC that I am
> currently using for writing this email (HP EliteBook 8530w), and
> surprisingly it does not work (yet) :)


> Before anyone ask: no, this is not a "production" PC as I have been
> beating it up so bad in the last 3 years since I got it used from the
> company I work for.
>
> In the grub.cfg, I used the same set of files as the ones from the running
> kernel generated by update-initramfs, except the initrd that I took from
> the "example" directory under vdev source directory.
>
> It booted the initrd, but just ended up on the (initramfs) prompt. It is
> hard to get the error messages during boot. I tried to record them using my
> mobile phone and the messages at the beginning are the following:
>
> Loading, please wait...
> /init:  line 175:  resolve_device:  not found
> 00071:859055872:  [  vdev.c:0425]  vdev_init:  ERROR:
> vdev_config_load('/etc/vdev/vdevd.conf')  rc = -2
> 00071:859055872:  [ main.c:0042]  main:  ERROR:  vdev_init rc = -2
>
> 
>

It looks like the config file didn't get installed to the right place.
Upon further inspection, it looks like I forgot to have the Makefile
install the vdev init script as well (I had installed it manually in my
VM).  I'll add "create a generic device manager init script that works with
udev, vdev, mdev, and static /dev" to my TODO list :)

I pushed a fix to both git.devuan.org and github.com, if you're anxious to
try it again (I tested it insofar as ensuring that it generates /etc/vdev
properly, and it installs the vdev init script and removes the udev script
links from /etc/rcS.d).  I haven't tested it on my VM yet, though.

Thanks again for giving this a go!

-Jude


> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update

2015-04-14 Thread Jude Nelson
Hi Anto,

Thanks a lot for all your efforts on this.
>

My pleasure :)


>
> It looks like we are getting closer now, or at least to be able to compile
> vdev as a deb package. And it seems the only package that needs to be
> re-compile is initramfs. Do you think it is reasonable now to start
> packaging vdev?
>

There are still a few things to be done before I'd recommend using it
regularly (i.e. outside of a VM):
* finish the remaining device scripts (in particular, scripts for setting
up LVM).
* integrate vdev, mdev, udev, static /dev, and other device management
strategies into Devuan's alternatives system.
* fork Debian's initramfs-tools to use the alternatives system to figure
out which device manager's files (if any) to include in the initramfs.
* finish designing, writing and testing libudev-compat with applications
that depend on libudev0 or libudev1 (this one's pretty open-ended still).


>
> or did anybody try it already?
>

I'm using it as the device manager in my copy of the alpha Vagrant image,
and others have tested it locally (but not for booting, AFAIK).  I'm
working on getting it to boot the the qcow2 image, which boots from LVM.

Thanks,
-Jude


> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] [dng] vdev status update

2015-04-14 Thread Jude Nelson
Hey everyone,

I didn't have much time to work on vdev this weekend, but I did manage to
make the vdev installation process easier.  The build process automatically
generates the host-specific /etc files for you (i.e. including rules for
persistent interface names), as well as an initramfs with vdev installed so
you can use it to boot.  I've added preliminary instructions on how to
install vdev to
https://git.devuan.org/pkgs-utopia-substitution/vdev/blob/master/INSTALL.md.

DISCLAIMER: the above process has only been lightly tested.  I apologize in
advance if you encounter bugs.  Please do not try this on a production
system, and please read *all* of the instructions before attempting to
install (since it will mess with your initramfs).

I hope to do more next weekend, but it's currently a very busy time of year
for me right now (I have a work-related deadline at the end of April that I
have to meet).

Thanks,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] two lists and developer disconnect (was: Re: dev-list)

2015-04-09 Thread Jude Nelson
Hi Johnathan,

I should clarify what I had meant to say earlier in context--I believe I
misspoke (serves me right to post with low blood sugar).

On Thu, Apr 9, 2015 at 4:57 PM, Jude Nelson  wrote:
>
> The ML structure will neither fix nor prevent bad behavior.  However, it
>> can mitigate its effect on the project.  For this reason, I support
>> Hendrik's idea of having a -tech mailing list for technical topics only
>> (but that both users and developers can join).  I also support having a few
>> guidelines on more specialized mailing lists (should they be created) that
>> describe what behavior is appropriate on them, as well as having a
>> publicly-visible process in place for how to deal with people who abuse
>> their list membership.
>>
>>
It was wrong of me to suggest that being off-topic in and of itself evil;
that was not the intent of this paragraph.  Sometimes, I use the phrase
"bad behavior" in a general way to simply mean "behavior that is
inconsistent with what is expected".  In this case, it was not meant to be
a statement about the quality of the content or the character of the
poster, but rather about the context in which the post occurs.  Not the
best choice of words, I must admit.

What I was trying to say is that no matter what ML structure Devuan goes
with, it's not going to eliminate the fundamental problems with mailing
lists (i.e. people can post off-topic, people can misspeak, people can come
off as insensitive without meaning to, etc.).  But, by grouping threads by
topic (i.e. having separate MLs), we can mitigate some of the frustrations
felt by some subscribers by helping them find only the emails that they
want to read, since certain subjects lend themselves better to the
sensibilities of the reader.

I've said more than I wanted to say on the ML topic--I'm fine with whatever
Devuan chooses to do, but if I had to express a preference, it would be for
a separate -tech ML.

Thanks,
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] two lists and developer disconnect (was: Re: dev-list)

2015-04-09 Thread Jude Nelson
Hi Jonathan,

On Thu, Apr 9, 2015 at 4:23 PM, Jonathan Wilkes  wrote:

> Hi Jude,
> I wrote an email about some GUI features I'd like to see in the default DE
> for Devuan.  Jaromil wrote a thoughtful response.  As a result I'm willing
> to use the first stable release (and possibly beta release) and give
> feedback and/or bug reports.
>
> If that's the kind of thing that belongs on a "tech" list, then what's the
> purpose of this list?
>

You've hit the nail on the head as to why I also recommended "having a few
guidelines on more specialized mailing lists."  If Devuan goes towards
multiple mailing lists, the guidelines should make it clear on the signup
page which ML is appropriate for which topic (much like how a forum is
organized by category).


>
> Also-- are the VUAs arguing for more lists actually arguing that more
> abstraction doesn't come with the cost of adding more complexity?
> (Especially given that there's already an invite-only dev list, so
> guaranteeing that any additional dev list would be a misnomer.)
>

Not sure what you mean?  I don't know anything more than you do about the
private dev list (I'm not a VUA).


>
> Also-- what is the cost of advocating on _this_ list for more empathy and
> less meanness?
>

Very little :)  That's not the problem here, though (excluding trolls).
The problem is that it's getting harder and harder to wade through the
volume of uncategorized email to find only the tiny subset of them you're
interested in reading.  It's no one's fault that it's come to this,
really--it's the expected emergent behavior of having a lot of enthusiastic
people on a single mailing list.  The conventional way to manage the volume
of emails is to organize groups of conversations by topic somehow, to make
it easier to find what you're looking for.

-Jude


> -Jonathan
>
>
>
>   On Thursday, April 9, 2015 2:10 PM, Jude Nelson 
> wrote:
>
>
> It has been suggested several times now that the reason Debian developers
> supposedly suffer a disconnect from Debian users is because there are
> dedicated -dev and -user mailing lists, where -dev is moderated to be
> development topics only.  It has been suggested that because developers can
> simply ignore -user, they get disconnected from their needs.
>
> I don't think either of these conclusions are true.  First, even if a DD
> isn't subscribed to any public Debian mailing list, (s)he still receives
> bug reports, feature requests, and direct emails from users.  Moreover, the
> first two are public record.  Wanting to ignore unrelated conversations is
> not a sign of disconnect.
>
> Second, disconnect can happen regardless of the ML structure--anyone can
> whitelist/blacklist email addresses belonging to people they don't want to
> listen to, and anyone can simply ignore an email message.
>
> Third, the biggest sources of toxicity in user/developer relations in
> Debian that I have seen are narcissism and the lack of empathy.  I have
> seen prominent developers dismissing valid, constructive criticism with "if
> you don't like it, fork it--it's open source after all" and "Linux is not
> about choice."  I have also seen long-time Debian users bad-mouthing
> developers for not going through great lengths to support their pet
> use-case--nevermind the fact that the use-case applies only to them and is
> greatly outside the scope of the program.
>
> The ML structure will neither fix nor prevent bad behavior.  However, it
> can mitigate its effect on the project.  For this reason, I support
> Hendrik's idea of having a -tech mailing list for technical topics only
> (but that both users and developers can join).  I also support having a few
> guidelines on more specialized mailing lists (should they be created) that
> describe what behavior is appropriate on them, as well as having a
> publicly-visible process in place for how to deal with people who abuse
> their list membership.
>
> Thanks,
> -Jude
>
> On Thu, Apr 9, 2015 at 12:15 AM, Martijn Dekkers <
> devuan-li...@dekkers.org.uk> wrote:
>
>
> We do not need another list.
>
>
> That's pretty arrogant. Can you back that up with some actual reasons,
> like others in this discussion are doing? Or is this simply a case of
> "because I said so"
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] two lists and developer disconnect (was: Re: dev-list)

2015-04-09 Thread Jude Nelson
It has been suggested several times now that the reason Debian developers
supposedly suffer a disconnect from Debian users is because there are
dedicated -dev and -user mailing lists, where -dev is moderated to be
development topics only.  It has been suggested that because developers can
simply ignore -user, they get disconnected from their needs.

I don't think either of these conclusions are true.  First, even if a DD
isn't subscribed to any public Debian mailing list, (s)he still receives
bug reports, feature requests, and direct emails from users.  Moreover, the
first two are public record.  Wanting to ignore unrelated conversations is
not a sign of disconnect.

Second, disconnect can happen regardless of the ML structure--anyone can
whitelist/blacklist email addresses belonging to people they don't want to
listen to, and anyone can simply ignore an email message.

Third, the biggest sources of toxicity in user/developer relations in
Debian that I have seen are narcissism and the lack of empathy.  I have
seen prominent developers dismissing valid, constructive criticism with "if
you don't like it, fork it--it's open source after all" and "Linux is not
about choice."  I have also seen long-time Debian users bad-mouthing
developers for not going through great lengths to support their pet
use-case--nevermind the fact that the use-case applies only to them and is
greatly outside the scope of the program.

The ML structure will neither fix nor prevent bad behavior.  However, it
can mitigate its effect on the project.  For this reason, I support
Hendrik's idea of having a -tech mailing list for technical topics only
(but that both users and developers can join).  I also support having a few
guidelines on more specialized mailing lists (should they be created) that
describe what behavior is appropriate on them, as well as having a
publicly-visible process in place for how to deal with people who abuse
their list membership.

Thanks,
-Jude

On Thu, Apr 9, 2015 at 12:15 AM, Martijn Dekkers <
devuan-li...@dekkers.org.uk> wrote:

>
> We do not need another list.
>>
>
> That's pretty arrogant. Can you back that up with some actual reasons,
> like others in this discussion are doing? Or is this simply a case of
> "because I said so"
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update

2015-04-09 Thread Jude Nelson
Hi Isaac,

On Wed, Apr 8, 2015 at 7:04 PM, Isaac Dunham  wrote:

> On Tue, Apr 07, 2015 at 05:22:55PM -0400, Jude Nelson wrote:
> > > > > "report every kind of device, since it listens to the kernel's
> driver
> > > core
> > > > > (i.e. libudev learns about network interfaces, buses, power
> supplies,
> > > > > etc.--stuff for which there are no device files"
> > >
> > > Currently, it doesn't *report* devices; that takes something longer
> term,
> > > like inotify, polling a netlink socket, or listening to a daemon.
> > >
> > > It also has no clue about events or hardware that could not have a
> > > corresponding device, since it uses block/char and major:minor to find
> > > the hardware.
> > >
> > > I have a general idea of how to get information like this, by recursing
> > > through /sys or /dev, and I know of some code I could use as a starting
> > > point, but I don't know what the ideal format is.
> > > If someone points me at a program they'd like to use without libudev
> > > (preferably C with minimal dependencies) that doesn't cover a lot of
> > > ground (ie, it's clear what functionality udev provides, and I wouldn't
> > > need to duplicate much of libudev to get it working), that would be a
> > > good starting point for expanding libsysdev.
> > >
> >
> > You might find something useful in vdev_linux_sysfs_register_devices()
> and
> > vdev_linux_sysfs_find_devices() functions in vdevd/os/linux.c.  They're
> > both involved in generating the initial coldplug device listing.  They
> only
> > need libc to work, and libvdev/sglib.h for basic data structures.
>
> I know how to get the devices that show up in /dev;
> I'm not sure about getting the sysfs entries that *don't* show up there.
> I'm also not sure how anything beyond this is used.
>

Ah, my bad for misinterpreting your request.

I found the sysfs rules overview from kernel.org helpful when I was working
on this [1].  Basically, all devices (even ones without a major/minor
number) are enumerated under /sys/devices/; the other directories under
/sys/ all contain symlinks to device directories in /sys/devices/.  Each
device in /sys/devices/ has a "uevent" file that, when read, produces the
payload of the netlink packet that the driver core would have sent when the
device was added (note that some of them will be empty).

The kernel organizes devices into a tree internally, which gets exported
via sysfs.  Each device has a globally-unique DEVPATH, which is the path to
the device's directory under /sys/devices (except, DEVPATH omits the /sys
prefix).  Moreover, each device has a SUBSYSTEM that identifies the
device's parent node in the device tree (which may or may not be a device
itself).  For example, PCI slot :ff:02.2 on my laptop has a DEVPATH
of /devices/pci:ff/:ff:02.2.  If you look in
/sys/devices/pci:ff/:ff:02.2/, you'll see a symlink called
"subsystem" that contains a symlink to the device's subsystem's device--in
this case, "../../../bus/pci" (the basename of the path in "subystem" is
the device's subsystem name--in this case, "pci").

The contents of the DEVPATH directory in sysfs include device-specific
attributes--usually stuff like serial numbers, vendor strings,
power-related data, etc.

Is this the information you were looking for?

[1] https://www.kernel.org/doc/Documentation/sysfs-rules.txt


> > > > > To avoid the troublesome corner case where a libudev client
> crashes and
> > > > >> potentially leaves behind a directory in /dev/uevents/, I would
> > > recommend
> > > > >> mounting runfs [1] on /dev/uevents.  Runfs is a special FUSE
> > > filesystem I
> > > > >> wrote a while back that ensures that the files created in it by a
> > > > >> particular process get automatically unlinked when that process
> dies
> > > (it
> > > > >> was originally meant for holding PID files).
> > > Hmm...
> > > Do we need to have a subdirectory of the mountpoint?
> > > Could you just use ACLs if you need to make a limited subset available?
> > > I get the impression that we can do this for mdev via a script along
> > > these lines:
> >
> >
> > > FILENAME=`env | sha512sum | cut -d' ' -f1`
> > > for f in /dev/uevents/*
> > > do env >"$f"/$FILENAME
> > > done
> > >
> > > but it would be *nicer* if we only needed to write one file.
> > >
>

Re: [Dng] Would like to help with Devuan

2015-04-08 Thread Jude Nelson
Welcome aboard, Jeremy!

The easiest way to help out is to use Devuan regularly, and keep track of
the things about it that bother you.  Then, try to figure out how to fix
them, and share your fixes--be they new program configurations, shell
scripts, Python scripts or C programs.  If you ever get stuck, feel free to
email the list and we can help you :)

-Jude

On Wed, Apr 8, 2015 at 8:40 AM, KatolaZ  wrote:

> On Tue, Apr 07, 2015 at 10:07:13PM -0400, JeremyBekka C wrote:
>
> [cut]
>
> >
> >  I know that I have a lot to learn, especially after reading the
> technical
> > posts here about the development of Devuan, but I am motivated and want
> to
> > learn. There is so much out there to read that I am overwhelmed sometimes
> > and don't really know where to start. There are so many man pages that I
> > really don't know which ones are the most important ones to read first.
> So,
> > I am wondering if I could get some tips on what I need to learn and how I
> > can go about getting the proper training to be of service here in the
> > Devuan community. I would like to be able to help detect and fix bugs,
> and
> > maybe become a package manager someday.
> >
> >
>
> Welcome Jeremy,
>
> as other have already said, there is probably no standard recipe to
> get there :) IMHO, the manpages that you must to read first are those
> of the programs that you need right now, the programming language to
> learn first is the one that you need right now, the tools to use first
> are those that you need right now, and so on. That's because studying
> something that you need or would very much like to know is much easier
> than just reading anything at random.
>
> Having said that, if you don't feel a compulsive need to know anything
> in particular, then you should probably start from the core utils:
>
> $ info coreutils
>
> and when you have gone through them you can start wandering at random,
> e.g.:
>
> $ man `ls /bin /sbin | shuf | head -1`
>
> and when you are done with those, try:
>
> $ man `ls /usr/bin /usr/sbin | shuf | head -1`
>
> But remember: manpages are there to be read when you need them, not to
> be memorised :)
>
> Concerning programming languages, I agree that C should be the first
> choice, together with shell scripting and then one of either Perl or
> Python. But again, if you can't find a way of using them, or you don't
> feel the need to use them for something in particular, then you will
> just learn and forget almost everything.
>
> My2Cents
>
> KatolaZ
>
> --
> [ Enzo Nicosia aka KatolaZ --- GLUG Catania -- Freaknet Medialab ]
> [ me [at] katolaz.homeunix.net -- http://katolaz.homeunix.net -- ]
> [ GNU/Linux User:#325780/ICQ UIN: #258332181/GPG key ID 0B5F062F ]
> [ Fingerprint: 8E59 D6AA 445E FDB4 A153 3D5A 5F20 B3AE 0B5F 062F ]
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] dev-list

2015-04-07 Thread Jude Nelson
> suggest that Pottering is evil,
>

Definitely looking forward to this stopping.  Seriously, it's not Lennart's
fault that Debian decided to switch to systemd.  If you want to blame
anyone for this, blame the CTTE, the DDs who voted against init freedom in
the GR, and the systemd fanbois who poisoned the well on the discussion.

Neither Lennart, Red Hat, nor systemd drove me to Devuan.  The Debian
leadership and the greater Debian community did.

-Jude


>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update

2015-04-07 Thread Jude Nelson
Hi Isaac,

[snip]

> >
> > libsysdev is meant to help clients pull information from sysfs.  I don't
> > think it is supposed to help clients run privileged ioctls (Isaac, please
> > correct me if I'm wrong!).
>
> Not at present.
> It basically maps a device to a sysfs directory and possibly gets a
> *little* more info from that (currently just PCI IDs).
>
> You cannot make a library do anything privileged without either
> helper programs or a helper daemon.
> Personally, I'm inclined to think it would be nicer to use helpers...
> but there are limitations to both approaches.
>
> I suppose it would be *possible* to make it configureable which it does.
>

Certainly :)  I'd like to support that in libudev-compat as an option at
some point.


>
> > > Can libsysdev do this part quoted below?
> > >
> > > "report every kind of device, since it listens to the kernel's driver
> core
> > > (i.e. libudev learns about network interfaces, buses, power supplies,
> > > etc.--stuff for which there are no device files"
>
> Currently, it doesn't *report* devices; that takes something longer term,
> like inotify, polling a netlink socket, or listening to a daemon.
>
> It also has no clue about events or hardware that could not have a
> corresponding device, since it uses block/char and major:minor to find
> the hardware.
>
> I have a general idea of how to get information like this, by recursing
> through /sys or /dev, and I know of some code I could use as a starting
> point, but I don't know what the ideal format is.
> If someone points me at a program they'd like to use without libudev
> (preferably C with minimal dependencies) that doesn't cover a lot of
> ground (ie, it's clear what functionality udev provides, and I wouldn't
> need to duplicate much of libudev to get it working), that would be a
> good starting point for expanding libsysdev.
>

You might find something useful in vdev_linux_sysfs_register_devices() and
vdev_linux_sysfs_find_devices() functions in vdevd/os/linux.c.  They're
both involved in generating the initial coldplug device listing.  They only
need libc to work, and libvdev/sglib.h for basic data structures.


>
> > > Is vdev and libsysdev tested together?
> > >
> >
> > They're currently not used together.  Libsysdev is meant to help programs
> > that only need libudev for a few things (like querying sysfs) do so
> without
> > linking against libudev.
> >
>
> > > To avoid the troublesome corner case where a libudev client crashes and
> > >> potentially leaves behind a directory in /dev/uevents/, I would
> recommend
> > >> mounting runfs [1] on /dev/uevents.  Runfs is a special FUSE
> filesystem I
> > >> wrote a while back that ensures that the files created in it by a
> > >> particular process get automatically unlinked when that process dies
> (it
> > >> was originally meant for holding PID files).
> Hmm...
> Do we need to have a subdirectory of the mountpoint?
> Could you just use ACLs if you need to make a limited subset available?
> I get the impression that we can do this for mdev via a script along
> these lines:


> FILENAME=`env | sha512sum | cut -d' ' -f1`
> for f in /dev/uevents/*
> do env >"$f"/$FILENAME
> done
>
> but it would be *nicer* if we only needed to write one file.
>

I agree that one file per event is ideal (or even a circular logfile of
events, if we could guarantee only one writer).  However, I'm not sure yet
what a fine-grained ACL for device events would look like.  My motivation
for per-client directories is that unprivileged clients can be made to see
only its own events and no one else's by default (i.e. by chmod'ing the
directory to 0700), and that they make it easy reason about sending
post-processed events only to the clients you want--just change the list of
directories to iterate over in that for-loop :)


> Also, wouldn't mounting that with runfs result in records of uevents
> getting erased if they're written by a helper rather than a daemon?
>

Yes; good catch.  There are a couple straightforward ways to address this:
 (1) have a separate, unprivileged device-event-log daemon curate
/dev/uevents/ and have the helper scripts forward device events to it, or
(2) fork and/or patch runfs to allow files to persist if they're generated
by a certain whitelist of programs (i.e. all programs in a particular set
of directories, like /lib/vdev/), but disappear otherwise once the creating
process dies.


>
> Thanks,
> Isaac Dunham
>

Thanks for your feedback!
-Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update

2015-04-07 Thread Jude Nelson
Hi Scooby,

[Snip]

>
>
>> However, this has proven to be a somewhat challenging problem, for a
>> couple reasons.  First, inotify(2) does not work on pseudo-filesystems like
>> sysfs or devtmpfs, so we can't just watch /sys for changes, and we can't
>> use devtmpfs for /dev.  This means that systems using libudev-compat will
>> require a "vanilla" tmpfs for /dev (or nothing at all), so it can detect
>> when devices are added or removed.  Second, only block and character
>> devices show up in /dev.  However, udevd reports every kind of device,
>> since it listens to the kernel's driver core (i.e. libudev learns about
>> network interfaces, buses, power supplies, etc.--stuff for which there are
>> no device files).  Clients will expect this behavior, so it's not enough to
>> simply look up a new block/character device's sysfs data.
>>
>
> Is this "listen to  kernel driver core" something you don't want to do? If
> so is it because one of the project goals
> is to support several platforms i.e BSD?
>
> Or is it to keep it modular and not so interdependent?
>

Libudev clients expect to receive "post-processed" driver events from udev
via a dedicated netlink multicast group (defined as UDEV_MONITOR_UDEV in
libudev-monitor.c).  Nothing stops libudev clients from opening their own
netlink socket and listening directly to messages in the
NETLINK_KOBJECT_UEVENT multicast group, but the advantage of listening to
udevd is that udevd takes care of parsing the uevent packet, looking up
extra metadata from sysfs and the hardware database, querying the device
(!!), and filling in a "struct udev_device" instance with all the
information it gathers.

The reason why libudev doesn't just do all of the above is because querying
the device is often a privileged operation, since it usually entails doing
specialized ioctls.  This is why udevd (and vdevd and mdev) need to run as
root--the helper programs they run need to have sufficient privileges.
This isn't an option for libudev clients, though, which is why they need to
get device information from a device manager.  My plan is to make vdevd
make this information available via the filesystem (for portability and
better access control), and patch libudev so clients can retrieve it.

Over in systemd-land, I'm pretty sure the plan going forward is to replace
netlink with kdbus to do the same task.


>
>
>> My tentative solution is to require the device manager (whatever it
>> happens to be) to take one extra step in addition to adding/removing device
>> files: record driver core uevents in a well-defined location in /dev (let's
>> say /dev/uevents/), so libudev clients can discover them (with inotify(2)),
>> read them, and send them off to their applications.  This can be done
>> without loss of generality in udev, vdev, and mdev, and I can make a script
>> that takes the appropriate action with mknod (so those with a static /dev
>> can alias "mknod" to the script, if desired).
>>
>
> So you want to split up the "listen to kernel driver core uevents" part
> and vdev right?
>

> Trying to figure this out
>

> I saw you mentioning Isaac Dunham's libsysdev in another message.
> It is a replacement for libudev, right?
>

libsysdev is meant to help clients pull information from sysfs.  I don't
think it is supposed to help clients run privileged ioctls (Isaac, please
correct me if I'm wrong!).


> Can libsysdev do this part quoted below?
>
> "report every kind of device, since it listens to the kernel's driver core
> (i.e. libudev learns about network interfaces, buses, power supplies,
> etc.--stuff for which there are no device files"
>
> Is vdev and libsysdev tested together?
>

They're currently not used together.  Libsysdev is meant to help programs
that only need libudev for a few things (like querying sysfs) do so without
linking against libudev.


>
>>
>>
> To avoid the troublesome corner case where a libudev client crashes and
>> potentially leaves behind a directory in /dev/uevents/, I would recommend
>> mounting runfs [1] on /dev/uevents.  Runfs is a special FUSE filesystem I
>> wrote a while back that ensures that the files created in it by a
>> particular process get automatically unlinked when that process dies (it
>> was originally meant for holding PID files).
>>
>
>
> I tried runfs on my system that is using aufs and couldn't get it to run
> I got something like "Transport endpoint is not connected"
> This is not a problem for me since dev/ won't be persistent between boots
> so can run without runfs.
>

Interesting.  Were you able to get runfs to run somewhere else, i.e. on a
temporary directory?  Was there something else mounted there already that
crashed earlier?

If you run runfs with -f, it will run in the foreground, and that can tell
you if something is amiss (you can also run it in valgrind this way).
Runfs takes the standard FUSE options (-f for foreground, -s for
single-threaded, -o $FUSE_OPTION for FUSE-specific options, -d for FUSE
debugging output).


> bes

[Dng] [dng] vdev status update

2015-04-06 Thread Jude Nelson
Hey everyone,

Scooby, John Carline, lepoitr, and others (who wish to remain anonymous)
have been sending me logs filesystem listings from running vdev locally.  I
very much appreciate it--it helped me discover and fix bugs relating to
persistent paths for disk devices, seeding /dev with initial device files,
and adding support for Virtualbox USB devices.  Thank you to everyone who
helped me with this!

We are getting close to feature-parity with udev insofar as generating the
proper device paths.  However, there are still a few kinds of device paths
that are not yet handled (that I know of).  They are:

* /dev/input/by-id/*
* /dev/disk/by-partuuid/*
* /dev/md/*
* LVM volume group and logical volume paths (i.e.
/dev/$VOLUME_GROUP/$LOGICAL_VOLUME)

Lack of LVM VG/LV paths is probably a deal-breaker for many people on this
list; I'll make it my next priority.

I've also been modifying libudev 219 so clients do not need udevd to be
running to receive device events.  I mentioned last week that the strategy
I would take is watching /dev for device files to get added/removed, and
synthesizing the appropriate driver core uevent from the added/removed file
(i.e. by looking up the associated uevent in /sys).

However, this has proven to be a somewhat challenging problem, for a couple
reasons.  First, inotify(2) does not work on pseudo-filesystems like sysfs
or devtmpfs, so we can't just watch /sys for changes, and we can't use
devtmpfs for /dev.  This means that systems using libudev-compat will
require a "vanilla" tmpfs for /dev (or nothing at all), so it can detect
when devices are added or removed.  Second, only block and character
devices show up in /dev.  However, udevd reports every kind of device,
since it listens to the kernel's driver core (i.e. libudev learns about
network interfaces, buses, power supplies, etc.--stuff for which there are
no device files).  Clients will expect this behavior, so it's not enough to
simply look up a new block/character device's sysfs data.

My tentative solution is to require the device manager (whatever it happens
to be) to take one extra step in addition to adding/removing device files:
record driver core uevents in a well-defined location in /dev (let's say
/dev/uevents/), so libudev clients can discover them (with inotify(2)),
read them, and send them off to their applications.  This can be done
without loss of generality in udev, vdev, and mdev, and I can make a script
that takes the appropriate action with mknod (so those with a static /dev
can alias "mknod" to the script, if desired).

The device manager would treat /dev/uevents/ as an "IPC" area.  A libudev
client would create a directory /dev/uevents/$PID/ upon initialization, and
the device manager would write the uevent to each directory in
/dev/uevents/ to a file named by the hash of the uevent's contents.  Once
the libudev client consumed the file, it would unlink it.

For example, the PCI slot :ff:02.2 on my laptop generates the uevent
packet containing:

"""
PCI_CLASS=6
PCI_ID=8086:2D13
PCI_SUBSYS_ID=17AA:2196
PCI_SLOT_NAME=:ff:02.3
"""

The device manager would take the SHA256 of this string
(57d39e74f7638f6c78c1fb86d81d2f203852b609f501df216abe4b45339d636f), and
write the contents of this packet to the file
/dev/uevents/*/57d39e74f7638f6c78c1fb86d81d2f203852b609f501df216abe4b45339d636f
(i.e. one copy in each libudev client's /dev/uevents/ directory).  Then,
each libudev client would get woken up through inotify(2), would read the
new file, forward the device event packet to the client, and unlink it.

To avoid the troublesome corner case where a libudev client crashes and
potentially leaves behind a directory in /dev/uevents/, I would recommend
mounting runfs [1] on /dev/uevents.  Runfs is a special FUSE filesystem I
wrote a while back that ensures that the files created in it by a
particular process get automatically unlinked when that process dies (it
was originally meant for holding PID files).

Any feedback on the above development plan is welcome, especially if a
simpler, more robust approach can be found.

Thanks,
Jude

[1] https://github.com/jcnelson/runfs
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Too many man pages, too much complicated : systemd

2015-04-06 Thread Jude Nelson
Should have said in the earlier email:  the list of contributors I gave
earlier is definitely not all-encompassing, nor was it meant to be (I was
trying to give an example of other people working towards a systemd-free
future, and those were the first few people that came to mind).  This is
why a wiki page with all contributors accounted for--not only developers,
but also testers, bug-hunters, integrators, editors, document-writers,
graphic artists, packagers, and so on.  We're all in this together :)

On Mon, Apr 6, 2015 at 3:23 PM, Jude Nelson  wrote:

>
>
> On Mon, Apr 6, 2015 at 11:07 AM, Martijn Dekkers <
> devuan-li...@dekkers.org.uk> wrote:
>
> [snip]
>
>> It really is a pity. The VUA and guys like Jude do awesome work bringing
>> the state-of-the-art forward when it comes to actually building working
>> technology that does not depend on systemd, whilst this list is quickly
>> just an echo chamber of pre-approved opinions. And the pre-approved
>> opinions are getting less by the day.
>>
>>
> I've seen at least two posts now where I've been held up as an example of
> doing something about systemd.  First, thank you for your kind words :)
>  Second, I can't take all the credit :)  Besides the VUA collective
> (Jaromil, Nextime, Hellekin, and others?), there's also:
>
> * Dima Krasner, who is working on LoginKit (
> https://git.devuan.org/pkgs-utopia-substitution/loginkit), as well as
> building Puppy Linux from Devuan, and getting lightdm to work without
> logind.
> * Isaac Dunham, who is working on libsysdev (
> https://github.com/idunham/libsysdev) and getting X.org to run without
> libudev.
> * Scooby, lepoitr, John Carline, and other anonymous contributors who are
> helping me test vdev on live hardware.
>
> I'd like to get a list together (perhaps on the wiki?) of the names or
> aliases of the people who are working on making Devuan possible, so we can
> give credit where credit is due.
>
> -Jude
>
>
>> On 6 April 2015 at 17:55, Steve Litt  wrote:
>>
>>> On Mon, 6 Apr 2015 11:46:45 +0300
>>> Martijn Dekkers  wrote:
>>>
>>> > > What really puzzles me is why if you love systemd that much you just
>>> > > continue arguing about systemd on the ML of a Debian fork
>>> > > specifically born to throw systemd away. Do you think you might be
>>> > > able to convince us that systemd is *good* and *beautiful* and
>>> > > *necessary*? I don't want to be saved, thanks ;)
>>> > >
>>> >
>>> > Looks to me like he isn't arguing for systemd, but he is just
>>> > discussing systems designs and implementation. Also looks to me like
>>> > he is simply keeping an open mind, and not getting swept away in hate
>>> > either way
>>>
>>> But to what point? Devuan was born in, OK, I'll use your
>>> characterization, hate, of systemd. Eliminating systemd is the
>>> cornerstone of Devuan. Sure, we're forming principles that accommodate
>>> our refusal to use systemd, and accommodate future software fiascos,
>>> but it's obvious that Devuan=NoSystemd.
>>>
>>> So what is the point, on this particular list, of keeping an open mind
>>> on the subject of systemd? I can see the point on the Manjaro list, or
>>> the Gentoo list, or the Saybayon list, or the OpenSuSE list. But on
>>> declared systemd-never lists like Devuan or Funtoo, or for that matter
>>> on declared systemd-forever lists like RedHat and Fedora, what's the
>>> point of being systemd agnostic?
>>>
>>> Systemd-agnosticism is appropriate in most venues. But not in venues
>>> whose very foundation is pro or anti systemd.
>>>
>>> SteveT
>>>
>>> Steve Litt
>>> Twenty Eight Tales of Troubleshooting
>>> http://www.troubleshooters.com/28
>>>
>>>
>>> ___
>>> Dng mailing list
>>> Dng@lists.dyne.org
>>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>>
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Too many man pages, too much complicated : systemd

2015-04-06 Thread Jude Nelson
On Mon, Apr 6, 2015 at 11:07 AM, Martijn Dekkers <
devuan-li...@dekkers.org.uk> wrote:

[snip]

> It really is a pity. The VUA and guys like Jude do awesome work bringing
> the state-of-the-art forward when it comes to actually building working
> technology that does not depend on systemd, whilst this list is quickly
> just an echo chamber of pre-approved opinions. And the pre-approved
> opinions are getting less by the day.
>
>
I've seen at least two posts now where I've been held up as an example of
doing something about systemd.  First, thank you for your kind words :)
 Second, I can't take all the credit :)  Besides the VUA collective
(Jaromil, Nextime, Hellekin, and others?), there's also:

* Dima Krasner, who is working on LoginKit (
https://git.devuan.org/pkgs-utopia-substitution/loginkit), as well as
building Puppy Linux from Devuan, and getting lightdm to work without
logind.
* Isaac Dunham, who is working on libsysdev (
https://github.com/idunham/libsysdev) and getting X.org to run without
libudev.
* Scooby, lepoitr, John Carline, and other anonymous contributors who are
helping me test vdev on live hardware.

I'd like to get a list together (perhaps on the wiki?) of the names or
aliases of the people who are working on making Devuan possible, so we can
give credit where credit is due.

-Jude


> On 6 April 2015 at 17:55, Steve Litt  wrote:
>
>> On Mon, 6 Apr 2015 11:46:45 +0300
>> Martijn Dekkers  wrote:
>>
>> > > What really puzzles me is why if you love systemd that much you just
>> > > continue arguing about systemd on the ML of a Debian fork
>> > > specifically born to throw systemd away. Do you think you might be
>> > > able to convince us that systemd is *good* and *beautiful* and
>> > > *necessary*? I don't want to be saved, thanks ;)
>> > >
>> >
>> > Looks to me like he isn't arguing for systemd, but he is just
>> > discussing systems designs and implementation. Also looks to me like
>> > he is simply keeping an open mind, and not getting swept away in hate
>> > either way
>>
>> But to what point? Devuan was born in, OK, I'll use your
>> characterization, hate, of systemd. Eliminating systemd is the
>> cornerstone of Devuan. Sure, we're forming principles that accommodate
>> our refusal to use systemd, and accommodate future software fiascos,
>> but it's obvious that Devuan=NoSystemd.
>>
>> So what is the point, on this particular list, of keeping an open mind
>> on the subject of systemd? I can see the point on the Manjaro list, or
>> the Gentoo list, or the Saybayon list, or the OpenSuSE list. But on
>> declared systemd-never lists like Devuan or Funtoo, or for that matter
>> on declared systemd-forever lists like RedHat and Fedora, what's the
>> point of being systemd agnostic?
>>
>> Systemd-agnosticism is appropriate in most venues. But not in venues
>> whose very foundation is pro or anti systemd.
>>
>> SteveT
>>
>> Steve Litt
>> Twenty Eight Tales of Troubleshooting
>> http://www.troubleshooters.com/28
>>
>>
>> ___
>> Dng mailing list
>> Dng@lists.dyne.org
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Too many man pages, too much complicated : systemd

2015-04-05 Thread Jude Nelson
If I ever write a desktop suite, it will store settings as a well-defined
directory tree with human-meaningful file names and contents instead of a
MySQL database or a large flat opaque file.

That's just me, though.

Jude

On Sun, Apr 5, 2015 at 7:37 PM, T.J. Duchene  wrote:

>
>
> > -Original Message-
> > From: Renaud (Ron) OLGIATI [mailto:ren...@olgiati-in-paraguay.org]
> > Sent: Saturday, April 4, 2015 5:34 PM
> > To: dng@lists.dyne.org
> > Subject: Re: [Dng] Too many man pages, too much complicated : systemd
> >
> > On Sun, 05 Apr 2015 00:11:55 +0200
> > toto titi  wrote:
> >
> > > Nearly as complex as a Microsoft operating system, look at that :
> > > http://www.freedesktop.org/software/systemd/man/
> >
> > Please, Sir, could we have a registry ?
> >
> > Cheers,
> >
> > Ron.
> > --
> [T.J. ] You already do have a  registry.
>
> It's called "gconf" and has been part of Gnome for the last decade.  KDE
> uses a MySQL database for many settings as well, so Gnome is not the only
> culprit.
>
> The basic idea of a database/registry is not a bad one.  It is actually
> very
> efficient for miscellaneous settings, or programming new features rapidly,
> but the flip-side is that flat files are easier to fix if something goes
> south.  The idea of a registry gets a bad rap because of the poor way that
> Microsoft implemented theirs with UUID codes that are hard to decipher, and
> the fact that Microsoft never provided a tool to clean up the database to
> prevent software rot.  Fortunately, the Linux equivalents are user account
> based rather than system wide and can easily be cloned, modified, or if
> necessary dumped.
>
> T.J.
>
>
>
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] What do you guys think about "Suggest" and "Recommends" dependency?

2015-04-02 Thread Jude Nelson
I'm all for it.  If there are a set of packages that usually get installed
together, we can create a metapackage for them.

-Jude

On Thu, Apr 2, 2015 at 6:36 PM, Franco Lanza  wrote:

> Personally on debian i was using from date
>
> APT:Install-Recommends "0";
> APT:Install-Suggests "0";
>
> in all my install apt.conf.
>
> I don't like apt downloading and installing things that are not required
> but just recommended or suggested, expecially in server or embedded
> envs, but also on my desktop.
>
> What do you think if we make this the default in devuan?
>
>
>
> --
>
> Franco (nextime) Lanza
> Lonate Pozzolo (VA) - Italy
> SIP://c...@casa.nexlab.it
> web: http://www.nexlab.net
>
> NO TCPA: http://www.no1984.org
> you can download my public key at:
> http://danex.nexlab.it/nextime.asc || Key Servers
> Key ID = D6132D50
> Key fingerprint = 66ED 5211 9D59 DA53 1DF7  4189 DFED F580 D613 2D50
> ---
> echo
> 16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D212153574F444E49572045535520454D20454B414D204F54204847554F4E452059415020544F4E4E4143205345544147204C4C4942snlbxq
> | dc
> ---
>
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] What about pulseaudio, avahi, ... ?

2015-04-01 Thread Jude Nelson
Unlike systemd, you can easily get a working desktop system without
PulseAudio, even on Debian.

IIRC, the only commonly-used program that requires PulseAudio is Skype, and
I've been able to get by even then by using apulse[1].

-Jude

[1] https://github.com/i-rinat/apulse

On Wed, Apr 1, 2015 at 3:25 PM, toto titi  wrote:

> Hi Guys,
> and thank you to all of you for this fork.
> Do you plan to get rid of pulseaudio and avahi as well, or do you just
> focus on systemd ?
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Wana give a try to vdev

2015-03-31 Thread Jude Nelson
Hi Didier,

Thank you for offering!  I haven't tried statically linking vdev or its
helper programs yet, but I don't see why it wouldn't work.  You'll need to
tweak the vdevd and vdevd helper program makefiles (in vdevd/Makefile and
vdevd/helpers/LINUX/Makefile, respectively) to add the -static directive to
gcc.  All of the helper programs only need libc.  vdevd needs libvdev
(which can be built with make -C libvdev), but libvdev only needs libc.

Let me know how it goes?  I'll add it to the tutorial I just sent out if it
works :)

Thanks,
Jude

On Tue, Mar 31, 2015 at 12:18 PM, Didier Kryn  wrote:

> Dear Jude,
>
> I would like to try your vdev. I plan to use a diskless embeded
> powerpc I have available for devel. I prefer that to using quemu and I want
> to keep my laptop functional h24.
>
> I would do it in an OS built from scratch with only 3 components:
> kernel version 2.6.29, busybox and vdev. Therefore I would like to compile
> vdev and link it statically from the source. Does it seem feasible?
>
> Didier
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] [vdev] vdev tutorial

2015-03-31 Thread Jude Nelson
Hey everyone,

A few people have asked me privately how to help test vdev, for which I am
very grateful :)  It inspired me to write up a tutorial and crash course to
testing and using vdev [1].  The instructions should work in the Vagrant
image (or in Debian testing/unstable, for that matter).

Any/all comments, feedback, and pull requests welcome :)

-Jude

[1]
https://git.devuan.org/pkgs-utopia-substitution/vdev/blob/master/how-to-test.md
Also available at
https://github.com/jcnelson/vdev/blob/master/how-to-test.md
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] [dng] vdev status update

2015-03-31 Thread Jude Nelson
Thankfully, the puppy should be fine :)  She only ate a few capsules, and
we caught her just after the fact, so we were able to get her proper
treatment before the toxicity could set in.  We get to take her home from
the vet either tonight or tomorrow.

-Jude

On Tue, Mar 31, 2015 at 3:15 AM, Archangel Amael 
wrote:

> Well how are the puppies?
> Hey everyone,
>
> I don't have as much to report this week as I usually do, since I spent
> half my weekend dealing with a pet medical emergency (TL;DR: ibuprofen is
> toxic to puppies, and puppies can chew through child-proof lids).
>
> I am happy to report that I was able to extract the code for libudev 219
> from systemd 219, and get it to compile independently.  The resulting
> library is ABI-compatible with systemd's (no real surprise).
>
> My next steps are working through a couple vdev bugs that Scooby helped me
> find, as well as get libudev to work without udevd.
>
> More next week,
> Jude
>
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [Dng] Any plans to provide xinit without the systemd hacks?

2015-03-30 Thread Jude Nelson
Hey Isaac,

So, I'm looking at startx here:
http://cgit.freedesktop.org/xorg/app/xinit/tree/startx.cpp

Where's the offending block of code?  Is it lines 191-200?

Looking at the commit history (
http://cgit.freedesktop.org/xorg/app/xinit/log/), it doesn't look like
startx sees many changes these days.  It should be easy to keep a separate
startx script around, if you don't want it starting X on your current tty.

-Jude

On Sat, Mar 28, 2015 at 11:26 AM, Isaac Dunham  wrote:

> startx always used to start a new X server on a new TTY; now it starts
> on the current vt.
>
> This is the result of a block of code in startx that forces "vtarg" to
> the equivalent of `tty`.
> The sole reason for this is that logind gets confused when something opens
> on a new vt.
> Will Devuan include an xinit package that doesn't do this?
>
> Thanks,
> Isaac Dunham
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[Dng] [dng] vdev status update

2015-03-30 Thread Jude Nelson
Hey everyone,

I don't have as much to report this week as I usually do, since I spent
half my weekend dealing with a pet medical emergency (TL;DR: ibuprofen is
toxic to puppies, and puppies can chew through child-proof lids).

I am happy to report that I was able to extract the code for libudev 219
from systemd 219, and get it to compile independently.  The resulting
library is ABI-compatible with systemd's (no real surprise).

My next steps are working through a couple vdev bugs that Scooby helped me
find, as well as get libudev to work without udevd.

More next week,
Jude
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


  1   2   3   >