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