Yes, Wix is pretty flexible in that regard.

It looks like right now some config files are looking in the $HOME
directory and some are looking in the $APPDATA directory, so I think we
should examine thoroughly what is looking where and aim for consistency.

Geof


On Monday, May 9, 2016, Marcus Müller <marcus.muel...@ettus.com> wrote:

> Hi Geof,
>
> is there a chance to manually specify where the config files go in terms
> environment variables? I.e., tell the installer to put what is in
> PREFIX/etc into %APPDATA%?
>
> Best regards,
> Marcus
>
>
> On 09.05.2016 17:37, Geof Nieboer wrote:
>
> Tony, that's good news.
>
> The nice thing is that the environment variables can generally be made as
> relative paths, so I should be able include setting that automatically for
> everyone as part of the msi.  The $home directory is probably the best
> place as Windows doesn't want users changing files in the program files
> directory.
>
> Marcus,
>
> The way the scripts works is the first you describe, it makes a "staged
> install", during the build process, then Wix comes in and scans through
> that directory to create the installation image, including Python.  The key
> to making that work on the other end is the run_gr.bat file that used to
> set that particular environment prior to running any scripts. It sets the
> python path for instance... All based off the directory that the batch file
> is in ($installer_dir/bin)
>
> So any environment variables that gnuradio can use can be set there
> without impacting ( or being impacted by) the result of the system.
>
> Geof
>
> On Monday, May 9, 2016, Tony Richardson <richardson.t...@gmail.com> wrote:
>
>> Thanks Marcus.
>>
>> I just set the environment variable that you mentioned in the run_gr.bat
>> file that Geof mentioned and portaudio now works.  I realize it is not a
>> clean solution, but it is a working one.  I am happy.
>>
>> Tony
>>
>>
>>
>>
>>
>> On Mon, May 9, 2016 at 9:42 AM, Marcus Müller <marcus.muel...@ettus.com>
>> wrote:
>>
>>> Hi Tony,
>>>
>>> to be honest, I'll be rewriting GNU Radio's slightly dated and slightly
>>> ugly preference system, as it seems, so I'm not 100% giving up on this.
>>> So, I hope the spirit of the workaround was clear to you: you can always
>>> manually set this particular setting via python (instead of specifying it
>>> in a configuration file).
>>> The python module "detour" was just an attempt to make that a permanent
>>> feature of the flow graph. Instead, I could have just asked you to add it
>>> pretty far up in the generated top_block.py (or whatever your generated
>>> python file is called). There's also another way of specifying such
>>> settings – environment variables (which under windows are especially little
>>> fun to set...).
>>> You can (as documented in [1]) specify a setting as an environment
>>> variable; in your case, something like
>>>
>>> GR_CONF_audio_audio_module = portaudio
>>>
>>> I know you can configure environment variables *somewhere  *in windows,
>>> but I forget where – my Windows usage is just too rare.
>>>
>>> Best regards,
>>> Marcus
>>>
>>> [1] http://gnuradio.org/doc/doxygen/page_prefs.html
>>>
>>>
>>> On 09.05.2016 14:33, Tony Richardson wrote:
>>>
>>> There appear to be some problems with "python module"s in Windows GRC
>>> too.  I get an error that the editor can't find a particular file.  If I
>>> add the python block in GRC, then have it generate code and add the code to
>>> the corresponding Python file from an external editor - I can then run the
>>> top level Python file from a command prompt and it works!  (Appears to be
>>> using portaudio).
>>>
>>> If I try to execute from GRC it replaces my Python source with a file
>>> containing the line:
>>>
>>>    # this module will be imported in the into your flowgraph
>>>
>>> and will not run anymore.
>>>
>>> Thanks for your help, but I agree that it is time to give up.
>>>
>>> Tony
>>>
>>>
>>> On Mon, May 9, 2016 at 3:45 AM, Marcus Müller <marcus.muel...@ettus.com>
>>> wrote:
>>>
>>>> Hi Tony,
>>>>
>>>> > The lack of path separators is troubling.
>>>>
>>>> I couldn't agree more. But since that just means that the separator
>>>> get's "eaten" somewhere, and we don't know whether that happens when
>>>> generating these paths or just when printing, I'm still full of hope…
>>>>
>>>> The fact these directories don't exist on my machine (even with
>>>> appropriate separators) is more troubling.
>>>>
>>>> … my hopes being crushed.
>>>>
>>>> > Is there a way to override the default values?
>>>>
>>>> Yes, but not at runtime, I'm afraid: The "first" directory a program
>>>> looks into for configuration has to be hard-coded somewhere, and in the
>>>> case of GNU Radio, it's specified via the GR_PREFSDIR CMake Variable when
>>>> building GNU Radio.
>>>> That happens in the gnuradio/gnuradio/lib/constants.cc.in file, where
>>>> CMake expands the @GR_PREFSDIR@ macro.  The actual setting of that
>>>> variable happens in the main gnuradio/CMakeLists.txt, line 165
>>>>
>>>>    set(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/${GR_CONF_DIR}" CACHE PATH 
>>>> "System configuration directory" FORCE)
>>>>
>>>> so we learn that CMAKE_INSTALL_PREFIX was set to
>>>> C:gr-buildsrc-stage3staged_install, plus a few \, probably :D
>>>>
>>>> So that's essentially where I'd have to give up: That code was put
>>>> there during build, and I can't change it later.
>>>>
>>>> What I'll probably do is a bug report about GNU Radio, upon finding the
>>>> prefsdir path not to be a directory (in your case: not to exist at all)
>>>> giving up and not even trying to read any other paths. I might fix that by
>>>> allowing users to specify these directories as environment variables; that
>>>> would make sense to me, but as it kind of changes "logical" API, I'd like
>>>> to discuss this with a maintainer.
>>>>
>>>> I think I might come up with a workaround, however. Again, I haven't
>>>> tried this, especially not under windows, where the whole "launch an editor
>>>> and edit that file" aspect might fail, but *shrug*:
>>>>
>>>> In your GRC flow graph, add a "python module".
>>>> There, without indenting, add the following code
>>>>
>>>> from gnuradio import gr
>>>> p = gr.prefs()
>>>> p.set_string("audio","audio_module","portaudio")
>>>>
>>>> and close the editor. Basically, you're setting the configuration
>>>> option manually for the meantime.
>>>>
>>>> Best regards,
>>>> Marcus
>>>>
>>>>
>>>> On 09.05.2016 04:38, Tony Richardson wrote:
>>>>
>>>> The command:
>>>>
>>>>     gnuradio-config-info --prefsdir --sysconfdir
>>>>
>>>> returns
>>>>
>>>>       C:gr-buildsrc-stage3staged_installReleaseetc
>>>>       C:gr-buildsrc-stage3staged_installReleaseetcgnuradioconf.d
>>>>
>>>> The lack of path separators is troubling.  The fact these directories
>>>> don't exist on my machine (even with appropriate separators) is more
>>>> troubling.  I assume this is why config files in the installed etc
>>>> directory are not being read.  After using the Windows installer, I have
>>>> what appear to be corresponding directories here:
>>>>
>>>>       C:\Program Files\GNURadio-3.7\etc
>>>>       C:\Program Files\GNURadio-3.7\etc\gnuradio\conf.d
>>>>
>>>> I have a HOME environment variable defined in Windows, so I think GRC
>>>> is looking in $HOME/.gnuradio for a config.conf file.  Running GRC actually
>>>> creates a $HOME/.gnuradio directory and places some configuration files in
>>>> that directory, but doesn't appear to read from it.  I also tried putting a
>>>> config.conf file in the APPDATA/.gnuradio directory but it isn't being read
>>>> either.
>>>>
>>>> Is there a way to override the default values?
>>>>
>>>> Tony Richardson
>>>>
>>>> On Sat, May 7, 2016 at 9:05 AM, Marcus Müller <marcus.muel...@ettus.com
>>>> > wrote:
>>>>
>>>>> Sooo gnuradio-runtime/lib/prefs.cc:
>>>>>
>>>>>  77     // Find if there is a ~/.gnuradio/config.conf file and add this to
>>>>>  78     // the end of the file list to override any preferences in the
>>>>>  79     // installed path config files.
>>>>>  80     fs::path homedir = fs::path(gr::appdata_path());
>>>>>  81     homedir = homedir/".gnuradio/config.conf";
>>>>>  82     if(fs::exists(homedir)) {
>>>>>  83       fnames.push_back(homedir.string());
>>>>>  84     }
>>>>>  85
>>>>>
>>>>>
>>>>> This means that things in Users/youruser/Application
>>>>> Data/.gnuradio/config.conf *should* be read.
>>>>>
>>>>> I also tried changing the canvas size in the "c:/Program
>>>>> Files/GNURadio-3.7/etc/gnuradio/conf.d/grc.conf" file, which I think is
>>>>> supposed to be the system-wide file, but changes there have no effect
>>>>> either.
>>>>>
>>>>> Uh-oh.
>>>>>
>>>>> Can you execute a
>>>>>
>>>>> gnuradio-config-info --prefsdir --sysconfdir
>>>>>
>>>>> please?
>>>>>
>>>>> Back to topic:
>>>>>
>>>>> Is there a way for me to figure out what configuration files are being
>>>>> read?
>>>>>
>>>>>
>>>>> I'm really not experienced Windows debugger; under Unixes, I'd do run
>>>>> like (to trace all "stat" calls, ie. when the code above checks for the
>>>>> existence of config.conf)
>>>>>
>>>>> strace -e stat  -o '|grep config.conf'  gnuradio-config-info -v
>>>>>
>>>>>
>>>>> but I really don't know whether that even works in theory under
>>>>> Windows.
>>>>>
>>>>> I'm a bit worried about this line:
>>>>>
>>>>>  81     homedir = homedir/".gnuradio/config.conf";
>>>>>
>>>>> Because it implicitly assumes that the OS considers "/" as path
>>>>> separator between .gnuradio and config.conf. Boost might or might not fix
>>>>> that under windows. But it's probably OK.
>>>>>
>>>>> Best regards,
>>>>> Marcus
>>>>>
>>>>>
>>>>> On 07.05.2016 15:41, Marcus Müller wrote:
>>>>>
>>>>> The * is actually just an artifact of how that list is generated; it's
>>>>> written by CMake when gathering the enabled audio engines; When running
>>>>> cmake, you'll see something like
>>>>>
>>>>> -- ######################################################
>>>>> -- # Gnuradio enabled components
>>>>> -- ######################################################
>>>>> --   * python-support
>>>>> --   * testing-support
>>>>> [..]
>>>>> --   * gr-atsc
>>>>> --   * gr-audio
>>>>> --   * * alsa
>>>>> --   * * oss
>>>>> --   * * portaudio
>>>>> --   * gr-channels
>>>>> [...]
>>>>>
>>>>>
>>>>> And our beautiful hack to make alsa, oss, portaudio ... look like
>>>>> bullet points under gr-audio is actually to get these the name "* alsa", 
>>>>> "*
>>>>> oss" and so on :D. That doesn't break automatic "grep-ability" to let
>>>>> scripts check for any of these, and if you had something like
>>>>>
>>>>> gnuradio-config-info --enabled-components|sed s'/;/\n/g'
>>>>>
>>>>> it'd give you the "original" tree-ish looking structure.
>>>>>
>>>>> so, for now, that's totally ok.
>>>>>
>>>>> Is there a way for me to figure out what configuration files are being
>>>>> read?
>>>>>
>>>>> Hm, logging. Waaaaitasec. I'll have to look this up; will do later.
>>>>>
>>>>> Best regards,
>>>>> Marcus
>>>>>
>>>>>
>>>>> On 06.05.2016 14:55, Tony Richardson wrote:
>>>>>
>>>>> I think I'm making progress with your help Marcus.
>>>>>
>>>>> The output of "gnuradio-config-info --enabled-components" is:
>>>>>
>>>>> python-support;testing-support;volk;doxygen;sphinx;gnuradio-runtime;gr-ctrlport;gr-blocks;gnuradio-companion;gr-fec;gr-fft;gr-filter;gr-analog;gr-digital;gr-dtv;gr-atsc;gr-audio;*
>>>>> portaudio;*
>>>>> windows;gr-channels;gr-noaa;gr-pager;gr-qtgui;gr-trellis;gr-uhd;gr-utils;gr-video-sdl;gr-vocoder;gr-fcd;gr-wavelet;gr-wxgui;gr-zeromq
>>>>>
>>>>> What does the '*' before portaudio mean?
>>>>>
>>>>> I think you are also correct in that it appears my config.conf file is
>>>>> not being read.  GRC created a ~/.gnuradio directory and populated it with
>>>>> a grc.conf file and prefs directory.  I created a config.conf file in the
>>>>> same directory.  Adding the [grc] stanza seems to have no effect.  I also
>>>>> tried changing the canvas size in the "c:/Program
>>>>> Files/GNURadio-3.7/etc/gnuradio/conf.d/grc.conf" file, which I think is
>>>>> supposed to be the system-wide file, but changes there have no effect
>>>>> either.  Is there a way for me to figure out what configuration files are
>>>>> being read?
>>>>>
>>>>> Tony Richardson
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, May 6, 2016 at 3:14 AM, Marcus Müller <
>>>>> marcus.muel...@ettus.com> wrote:
>>>>>
>>>>>> Huh, can you verify portaudio is in the output of
>>>>>> "gnuradio-config-info --enabled-components" ?
>>>>>>
>>>>>> Can you add another section,
>>>>>>
>>>>>>
>>>>>> [audio_portaudio]
>>>>>> verbose = true
>>>>>>
>>>>>> Just to verify: you're using the "[..]" section headers correctly,
>>>>>> and the rest of the conf file looks ungarbled, right?
>>>>>>
>>>>>> We might be encountering a case where the config file simply isn't
>>>>>> read; as a quick test:
>>>>>> Close all gnuradio-companions, add
>>>>>>
>>>>>> [grc]
>>>>>> canvas_default_size = 100,100
>>>>>>
>>>>>> to that file, and open up the companion – your canvas size should now
>>>>>> be 100x100px. Is that the case?
>>>>>>
>>>>>> Best regards,
>>>>>> Marcus
>>>>>>
>>>>>>
>>>>>> On 06.05.2016 00:20, Tony Richardson wrote:
>>>>>>
>>>>>> Thanks, but I've tried that (setting "audio_module = portaudio").  It
>>>>>> doesn't appear to have the desired effect.
>>>>>>
>>>>>> Tony
>>>>>>
>>>>>> On Thu, May 5, 2016 at 4:26 PM, Marcus Müller <
>>>>>> marcus.muel...@ettus.com> wrote:
>>>>>>
>>>>>>> Sorry, not currently running any Windows VM, but in the spirit of
>>>>>>> giving you the info you need as fast as possible:
>>>>>>>
>>>>>>> Quick lecture of the audio sink/source factory tells me that under
>>>>>>> windows, by default the windows audio architecture is used.
>>>>>>> So to use portaudio instead, you need to have a GNU Radio config
>>>>>>> file (under unixoids, that's ~/.gnuradio/config.conf), and add
>>>>>>>
>>>>>>> [audio]
>>>>>>> audio_module= portaudio
>>>>>>>
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Marcus
>>>>>>>
>>>>>>> On 05.05.2016 22:59, Tony Richardson wrote:
>>>>>>>
>>>>>>> I'm using the pre-built Win64 binary of GNURadio listed on the
>>>>>>> gnuradio.org site.  The portaudio library was included as part of
>>>>>>> the Win64 build, but I can't seem to figure out how to use it instead of
>>>>>>> the default windows audio.  (I want an audio source and the windows 
>>>>>>> audio
>>>>>>> source does not work.)  I've tried putting "audio_module = portaudio" 
>>>>>>> (and
>>>>>>> "audio_module = audio_portaudio") in the config.conf file, but when I 
>>>>>>> run a
>>>>>>> simple flowgraph that includes an audio source and sink, I see:
>>>>>>>
>>>>>>> INFO: Audio source arch: windows
>>>>>>> INFO: Audio sink arch: windows
>>>>>>>
>>>>>>> in the console and there is no sound.  I assume the lines above are
>>>>>>> telling me that the windows audio devices are being used and not the
>>>>>>> desired portaudio devices.  I have tried leaving the device name in the
>>>>>>> audio source blank as well as trying "0" and "hw:0,0", but still see the
>>>>>>> messages above.  Can someone tell me how to configure audio for 
>>>>>>> portaudio
>>>>>>> or is it just not supported?
>>>>>>>
>>>>>>> Tony Richardson
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Discuss-gnuradio mailing 
>>>>>>> listDiscuss-gnuradio@gnu.orghttps://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Discuss-gnuradio mailing list
>>>>>>> Discuss-gnuradio@gnu.org
>>>>>>> <https://lists.gnu.org/mailman/listinfo/discuss-gnuradio>
>>>>>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to