[alsa-devel] [PATCH] alsactl: Try to create state file directory

Takashi Iwai tiwai at suse.de
Mon Jun 8 15:22:41 CEST 2015


At Mon, 08 Jun 2015 15:03:21 +0200,
Takashi Iwai wrote:
> 
> At Mon, 8 Jun 2015 05:52:18 -0700,
> Dan Nicholson wrote:
> > 
> > On Jun 8, 2015 4:38 AM, "Takashi Iwai" <tiwai at suse.de> wrote:
> > >
> > > At Fri,  5 Jun 2015 15:00:47 -0700,
> > > Dan Nicholson wrote:
> > > >
> > > > Try to create the directory for the state file when saving so we don't
> > > > depend on it being created ahead of time. This only checks for failures
> > > > on existing directories and doesn't try to create the leading
> > > > directories or workaround any other errors. This should catch the common
> > > > case where /var/lib exists, but /var/lib/alsa doesn't.
> > >
> > > I don't think it's the role of alsactl.  It saves a file on the
> > > certain directory.  If it doesn't exist, it's a failure of the
> > > installed package.
> > 
> > Sure, that's understandable, but there's a couple reasons I think this is
> > helpful addition.
> > 
> > First, if no path is supplied, store will save to /var/lib/alsa. So, it's
> > not as of the user has supplied a path it didn't setup correctly. It would
> > be nice if alsactl worked out of the box without additional integration by
> > packagers.
> 
> For that, a safer way would be to create /var/lib/alsa in the
> installation.
> 
> > Second, my real motivation for fixing this is to support stateless type of
> > systems that come with a clean /var. At Endless we're using ostree. The OS
> > is composed by Debian packages, and indeed alsa-utils is setup to create
> > /var/lib/alsa on install. However, to use the same OS snapshot for all
> > users, the contents of /var are stripped since they represent local system
> > state. We can certainly add a method for creating the directory at runtime,
> > but we believe it's more robust to have the program manage its own state as
> > much as possible.
> 
> Why not specifying the proper directory via alsactl -f option for
> user?

Also, your patch seems to care only the top directory.  For example,
if alsactl is configured to use /var/lib/alsa/more/deep/dir, it won't
work.


thanks,

Takashi


More information about the Alsa-devel mailing list