Page MenuHomeVyOS Platform
Feed Advanced Search

Aug 21 2017

dmbaturin created T361: "make iso" fails with a "command not found" error if live-build is not installed.
Aug 21 2017, 10:24 PM

Aug 20 2017

dmbaturin closed T357: VyOS 1.1.x images no longer build with default ./configure options after the repo layout revamp as Resolved.

https://github.com/vyos/build-iso/commit/180d2aab0156401f699025fa05451155389cf9ad

Aug 20 2017, 4:30 PM · VyOS 1.1.x (1.1.8)
dmbaturin created T357: VyOS 1.1.x images no longer build with default ./configure options after the repo layout revamp.
Aug 20 2017, 2:17 AM · VyOS 1.1.x (1.1.8)

Aug 18 2017

dmbaturin closed T353: Move the Python library to the new, unified (in the future) package as Resolved.

https://github.com/vyos/vyos-1x/commit/8cc396c20398e01f4af76d386d87a38811cead06
https://github.com/vyos/vyatta-cfg/commit/e55d9affac8159b09b503fca4a364192a24eb52e
https://github.com/vyos/vyatta-cfg/commit/be1dfd64f53776d299651d5347041f17a805aba1

Aug 18 2017, 6:46 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin closed T352: Move module methods of the Python config library to a class as Resolved.

Looks like phabricator hasn't picked up those commits for some reason...

Aug 18 2017, 6:44 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin created T353: Move the Python library to the new, unified (in the future) package.
Aug 18 2017, 1:33 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)

Aug 17 2017

dmbaturin created T352: Move module methods of the Python config library to a class.
Aug 17 2017, 11:05 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)

Aug 16 2017

dmbaturin created T351: Rewrite the cron configuration script in Python.
Aug 16 2017, 1:28 PM · Rejected

Mar 4 2017

dmbaturin created T287: Add missingok to logrotate for ipsec.
Mar 4 2017, 3:11 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin created T286: Fix resolv-file configuration problem.
Mar 4 2017, 3:08 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin created T285: Add flag for DNSmasq to query all dns servers.
Mar 4 2017, 3:06 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)

Feb 21 2017

dmbaturin created T275: Add BGP as-override.
Feb 21 2017, 8:16 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc2)

Feb 17 2017

dmbaturin created T272: Add op mode command for generating remote side VPN configs .
Feb 17 2017, 8:05 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)

Feb 7 2017

dmbaturin added a comment to T266: Create image of VyOS 1.2.0 for Amazon Web Services.

Trying to use Debian Jessie fails because it doesn't have 3.18 kernel which is required for OverlayFS support.

I have no idea what you are doing, but: 1) overlayfs is used for the livecd union mount and NOT for config sessions 2) for config sessions, a userspace implementation of unionfs (unionfs-fuse) is used.

Feb 7 2017, 3:17 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1), AWS Support

Jan 30 2017

dmbaturin reassigned T256: Add VyOS IPv6 OSPFv3 routing configuration to Wiki from dmbaturin to dsummers.

What prevents you from adding it yourself by the way? The registration on wiki is open.

Jan 30 2017, 11:50 PM

Jan 17 2017

dmbaturin closed T250: Implement intuitive node sorting as Resolved.
Jan 17 2017, 6:42 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T250: Implement intuitive node sorting.

I think we can just reference it directly.

Jan 17 2017, 7:05 AM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T250: Implement intuitive node sorting.

I've just done a quick test of the BatString.numeric_compare, looks perfect.

Jan 17 2017, 6:19 AM · VyOS 2.0.x, VyConf

Jan 16 2017

dmbaturin closed T2: Make sure set/delete functions can be used without path validation as Resolved.

Already implemented in Config_tree.

Jan 16 2017, 9:39 AM · VyConf
dmbaturin added a comment to T28: Add auto provisioning.

This has nothing to do with vyconf. Please move it out of the project, and to vyos 1.2.0

Jan 16 2017, 9:39 AM · VyOS 1.5 Circinus

Jan 15 2017

dmbaturin closed T245: Add support for the old tag node syntax to the curly config parser as Resolved.
Jan 15 2017, 6:38 PM · VyOS 2.0.x, VyConf
dmbaturin closed T249: Add support for "inactive" and "ephemeral" node properties to the parser as Resolved.
Jan 15 2017, 6:36 PM · VyConf, VyOS 2.0.x

Jan 14 2017

dmbaturin closed T216: Decide on the wire protocol for VyConf as Resolved.

Protobuf schema has been written.

Jan 14 2017, 6:46 PM · VyOS 2.0.x, VyConf
dmbaturin updated the task description for T255: Add curly config renderer.
Jan 14 2017, 8:36 AM · VyOS 2.0.x, VyConf
dmbaturin created T255: Add curly config renderer.
Jan 14 2017, 8:31 AM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V2: Should VyOS-specific shell be the login shell in VyOS 2.0?.

@jpbostic My idea for interacting with vyconf from outside the interactive shell is a bit different. The issue with 'vyshell -c "set interfaces ethernet eth0 disable' is that it needs to setup a session first, and store the session ID between commands, so either it will be limited to 'vyshell -c "configure; set interfaces ethernet eth0 address 192.0.2.1/24; set interfaces ethernet eth0 mtu 1400"' (i.e. long command strings in single call), or it will be dependent on specific environment setup, and from VyOS 1.x we already know how problematic it will be.

Jan 14 2017, 4:31 AM · VyOS 2.0.x

Jan 13 2017

dmbaturin created T254: Global node name validation in VyConf.
Jan 13 2017, 1:19 PM · VyOS 2.0.x, VyConf
dmbaturin added a project to T253: Config nodes containing spaces which have sub-nodes don't work: VyOS 1.1.x.
Jan 13 2017, 12:53 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc5)
dmbaturin added a comment to T253: Config nodes containing spaces which have sub-nodes don't work.

Worse, such config can be saved, but cannot be loaded afterwards because the formatter doesn't bother to quote such strings and you end up with a syntactically invalid config.

Jan 13 2017, 12:52 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc5)
dmbaturin assigned T231: Add a function from loading interface definitions from a directory to the Startup module to shon.
Jan 13 2017, 7:16 AM · VyConf, VyOS 2.0.x
dmbaturin added a comment to V2: Should VyOS-specific shell be the login shell in VyOS 2.0?.

@jpbostic I think @mickvav has a point here, making it configurable is relatively cheap (it's just a field in /etc/passwd after all, or a call to chsh). People who don't want it to be the deault like myself and service accounts for ansible etc. can just change the default.

Jan 13 2017, 7:15 AM · VyOS 2.0.x
dmbaturin updated subscribers of T222: Make jenkins build nightly builds again.

Once @tmartinson setups a physical server for us (I'd like to say thanks to him, by the way!), it will become a permanent place for the jenkins VM and build hosts where we can give access all maintainers without worrying about mixing Sentrium corporate stuff with it.

Jan 13 2017, 7:09 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1), VyOS 2.0.x

Jan 12 2017

dmbaturin created T251: Implement component dependency sorting.
Jan 12 2017, 2:08 AM · VyOS 2.0.x, VyConf

Jan 11 2017

dmbaturin updated the task description for T250: Implement intuitive node sorting.
Jan 11 2017, 9:39 PM · VyOS 2.0.x, VyConf
dmbaturin created T250: Implement intuitive node sorting.
Jan 11 2017, 9:39 PM · VyOS 2.0.x, VyConf
dmbaturin created T249: Add support for "inactive" and "ephemeral" node properties to the parser.
Jan 11 2017, 4:48 AM · VyConf, VyOS 2.0.x

Jan 9 2017

dmbaturin created T247: Rewrite the dnsmasq config script in python.
Jan 9 2017, 11:14 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin edited the description of V3: Tag node syntax for VyOS 2.0.
Jan 9 2017, 5:34 AM · VyOS 2.0.x, VyConf
dmbaturin created T245: Add support for the old tag node syntax to the curly config parser.
Jan 9 2017, 4:47 AM · VyOS 2.0.x, VyConf

Jan 8 2017

dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@tmartinson Well, you should change your vote then (votes are not final here, for the better I guess).

Jan 8 2017, 3:43 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@systo Just to make sure you are looking at it the right way, in the large it's actually less verbose than old syntax. The vif may not be the best example but firewall would make it apparent:

Jan 8 2017, 12:49 PM · VyOS 2.0.x, VyConf

Jan 5 2017

dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@rps An serious issue with "interfaces { eth0" is that when there is no parent subtree of all ethernet interfaces specifically, we don't know which script to call when something in "eth0" changes. We'd have to have one big script that handles the whole "interfaces" subtree, which is very problematic when it comes to adding new interface types. If eth* interfaces are children of the "ethernet" node and tun* interfaces are children of the "tunnel" node, it's easy to attach ethernet script to the "ethernet" node and "tunnel" script to the "tunnel" node, if we want to add "openvpn" later, we won't have to modify that large script to accomodate it

Jan 5 2017, 3:43 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@rps No, that's not the biggest challenge. Semicolon at the end of leaf nodes makes them unambiguous enough and easy to tell from tag nodes (this is especially bad with valueless nodes by the way, think "disable", colon wouldn't help there, but semicolon at the end does the job). The biggest challenge is that with "ethernet eth0" the parser must be fully stateful and capable of tracking which parent nodes it's already seen. "eth0", "eth1" etc. are really children of the same node called "ethernet", but in the config they appear separately. Consider this unusual but logically valid config:

Jan 5 2017, 2:02 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@Merijn I'm still not sure why JunOS has that "unit" thing. To me it looks redundant, redundant ©. Though what we are discussing is "unit 0" vs "unit { 0" grammatic distinction, rather than specific syntax of ethernet interfaces.

Jan 5 2017, 1:27 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@tmartinson No, "vlan-id 99" is the old style. And, at that stage we don't know if it's ethernet or not.

Jan 5 2017, 12:59 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@Merijn Now that you remind me of it, I think "edit interfaces tunnel; copy tun10 to tun11" or similar should be possible regardless of the config syntax. No matter how it looks in the config, internally "tunnel" is a node with children "tun0", "tun1" and so on, and there's no reason why it shouldn't be possible to use it as edit level.

Jan 5 2017, 12:48 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@dsteinkopf Not sure, we'll have to devise some rules regarding line breaks, and past some number of leaf nodes inside we are back to the original aesthetic issue (and then there can be non-leaf nodes inside too!
On a fresh look today, I'm convinced that the old tag node formatting is aesthetically superior, so myself as a user of my own project I'm probably voting no, though as a developer I want to see how many people also think it's worth it.

Jan 5 2017, 12:26 PM · VyOS 2.0.x, VyConf
dmbaturin created V3: Tag node syntax for VyOS 2.0.
Jan 5 2017, 9:56 AM · VyOS 2.0.x, VyConf

Dec 31 2016

dmbaturin created V2: Should VyOS-specific shell be the login shell in VyOS 2.0?.
Dec 31 2016, 7:44 AM · VyOS 2.0.x

Dec 23 2016

dmbaturin reassigned T230: Add missing data access functions to the Reference_tree module, and tests for them from dmbaturin to philsummers.
Dec 23 2016, 1:18 AM · VyConf, VyOS 2.0.x
dmbaturin reassigned T224: Add node comment functionality to Config_tree from dmbaturin to philsummers.
Dec 23 2016, 1:18 AM · VyConf, VyOS 2.0.x
dmbaturin reassigned T226: Add "secret" and "hidden" properties to the reference tree from dmbaturin to philsummers.
Dec 23 2016, 1:17 AM · VyConf, VyOS 2.0.x
dmbaturin closed T230: Add missing data access functions to the Reference_tree module, and tests for them as Resolved.
Dec 23 2016, 1:16 AM · VyConf, VyOS 2.0.x

Dec 22 2016

dmbaturin created T231: Add a function from loading interface definitions from a directory to the Startup module.
Dec 22 2016, 8:22 PM · VyConf, VyOS 2.0.x
dmbaturin added projects to T230: Add missing data access functions to the Reference_tree module, and tests for them: VyOS 2.0.x, VyConf.
Dec 22 2016, 7:41 PM · VyConf, VyOS 2.0.x
dmbaturin updated the task description for T230: Add missing data access functions to the Reference_tree module, and tests for them.
Dec 22 2016, 7:34 PM · VyConf, VyOS 2.0.x
dmbaturin created T230: Add missing data access functions to the Reference_tree module, and tests for them.
Dec 22 2016, 7:34 PM · VyConf, VyOS 2.0.x
dmbaturin added a comment to T226: Add "secret" and "hidden" properties to the reference tree.

Yes, related. I was just talking to myself really, we get the CI back first, and then we can look into adding vyconf to it.

Dec 22 2016, 12:04 PM · VyConf, VyOS 2.0.x
dmbaturin added a comment to T222: Make jenkins build nightly builds again.

Our gateway is bad and we should feel bad. When jenkins migration to the new site is complete (we are migrating build hosts too), this should work again.

Dec 22 2016, 12:03 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1), VyOS 2.0.x
dmbaturin closed T226: Add "secret" and "hidden" properties to the reference tree as Resolved.

Thanks! Unit tests pass.

Dec 22 2016, 1:43 AM · VyConf, VyOS 2.0.x

Dec 21 2016

dmbaturin closed T225: Add "inactive" and "ephemeral" fields to the node data in Config_tree as Resolved.

Unit tests pass for me too.

Dec 21 2016, 11:40 PM · VyConf, VyOS 2.0.x
dmbaturin closed T194: failed to parse tmpl [/protocols/static/route] as Resolved.
Dec 21 2016, 11:00 PM
dmbaturin closed T156: Fix 'show version' in current (lithium) dev builds as Resolved.

I made it return Unknown if the file in question doesn't exist, hope this fixed the issue.

Dec 21 2016, 10:32 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin closed T229: Make build system include packages from packages/* dir in the image as Resolved.

Seems to work. @hexes, please test and tell me if for you it doesn't.

Dec 21 2016, 9:50 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin created T229: Make build system include packages from packages/* dir in the image.
Dec 21 2016, 7:50 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin closed T213: Cant set protocols static routes with newer versions of vyos as Resolved.

Duplicate indeed.

Dec 21 2016, 7:00 PM

Dec 20 2016

dmbaturin created T226: Add "secret" and "hidden" properties to the reference tree.
Dec 20 2016, 12:59 PM · VyConf, VyOS 2.0.x
dmbaturin updated the task description for T225: Add "inactive" and "ephemeral" fields to the node data in Config_tree.
Dec 20 2016, 11:26 AM · VyConf, VyOS 2.0.x
dmbaturin created T225: Add "inactive" and "ephemeral" fields to the node data in Config_tree.
Dec 20 2016, 10:47 AM · VyConf, VyOS 2.0.x
dmbaturin closed T224: Add node comment functionality to Config_tree as Resolved.
Dec 20 2016, 10:17 AM · VyConf, VyOS 2.0.x
dmbaturin created T224: Add node comment functionality to Config_tree.
Dec 20 2016, 10:14 AM · VyConf, VyOS 2.0.x

Dec 17 2016

dmbaturin added a comment to Q50: Any hope for DPDK?.

Does openfastpath really work? Have you tried it? It all looks great, and if it works reliably, we indeed should integrate it.

Dec 17 2016, 12:19 PM · VyOS 1.2 Crux, VyOS 2.0.x
dmbaturin created T216: Decide on the wire protocol for VyConf.
Dec 17 2016, 10:45 AM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T214: replicate jessie build from source.

I moved the "task" part to T215.

Dec 17 2016, 7:52 AM · Invalid
dmbaturin created T215: Clarify the 1.1.x vs 1.2.0 build system differences in build-iso and vyos-build READMEs.
Dec 17 2016, 7:52 AM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)
dmbaturin added a project to T214: replicate jessie build from source: VyOS 1.2 Crux.

Hi Carl,

Dec 17 2016, 2:46 AM · Invalid

Dec 14 2016

dmbaturin changed the edit policy for T212: Use a special directory inside the appliance program_dir for validators.
Dec 14 2016, 11:18 AM · VyOS 2.0.x, VyConf
dmbaturin created T212: Use a special directory inside the appliance program_dir for validators.
Dec 14 2016, 11:17 AM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T28: Add auto provisioning.

Someone please remove the vyconf tag from this task, it has nothing to do with it. It can be added to 1.2.0 in fact!

Dec 14 2016, 11:06 AM · VyOS 1.5 Circinus
dmbaturin closed T210: Use TOML rather than JSON for the vyconfd.conf config as Resolved.

Looks like it works, and the tests pass.

Dec 14 2016, 11:02 AM · VyOS 2.0.x, VyConf
dmbaturin created T210: Use TOML rather than JSON for the vyconfd.conf config.
Dec 14 2016, 3:37 AM · VyOS 2.0.x, VyConf

Dec 5 2016

dmbaturin added a comment to T198: l2tpv3 instance not reconfigured when changing session-id or tunnel-id parameters .

@thomas.courbon I think we fixed a similar bug before, but it seems the fix wasn't quite complete...

Dec 5 2016, 11:20 AM · VyOS 1.1.x (1.1.8)
dmbaturin created T200: Automated config deployment from a removable drive at installation time.
Dec 5 2016, 5:32 AM · VyOS 1.5 Circinus

Nov 23 2016

dmbaturin added a comment to T194: failed to parse tmpl [/protocols/static/route].

@hexes Could you update the task and specify which image you use and which error you get in it?

Nov 23 2016, 5:56 PM
dmbaturin triaged T194: failed to parse tmpl [/protocols/static/route] as Unbreak Now! priority.
Nov 23 2016, 5:42 PM
dmbaturin added a project to T194: failed to parse tmpl [/protocols/static/route]: VyOS 1.1.x (1.1.8).
Nov 23 2016, 4:10 PM
dmbaturin claimed T194: failed to parse tmpl [/protocols/static/route].

Looks like a bug indeed.

Nov 23 2016, 4:10 PM

Nov 18 2016

dmbaturin created T192: Download links should include load balancer and a link to the mirror list.
Nov 18 2016, 3:27 PM · Rejected

Nov 10 2016

dmbaturin added a comment to T190: two factor authentication for OpenVPN remote VPN tunnels.

Hi Alex,

Nov 10 2016, 8:25 AM · VyOS 1.5 Circinus

Nov 6 2016

dmbaturin added a comment to T172: URGENT: Fix Quagga CVE-2016-1245.

@Alexis I wish, with this shortage of contributors, we were really in position to make specific plans regarding the timeframe. ;)
This also applies to the security updates issue. We really need a dedicated security watcher, but, sadly, no one wants to take up this role, so it's always done in a haphazard manner, which is a bad experience for both end users and developers, but that's what we've got.
In a few years of project life, the number of people committed to using VyOS in production grew, but the number of people committed to developing it almost did not, it's still just a few people who have to do everything, and, frankly, it's taxing. At this point, none of us can turn it into a full time job (the commercial support thing @syncer and I started may change it in the future and give some of the maintainers guaranteed N hours a week to spend on it, but it's still a very early stage).

Nov 6 2016, 12:05 AM · VyOS 1.1.x (1.1.8)

Nov 5 2016

dmbaturin added a comment to T172: URGENT: Fix Quagga CVE-2016-1245.

@Alexis By the way, if you are into the quagga source code, maybe you want to join the work on switching to the upstream or cumulus quagga and "forth-porting" vyatta changes to it?

Nov 5 2016, 11:22 PM · VyOS 1.1.x (1.1.8)
dmbaturin added a comment to T172: URGENT: Fix Quagga CVE-2016-1245.

@Alexis Please don't panic. This bug is only exploitable if RA handling is enabled in quagga, and by default it is not. Setting interface's IPv6 to autoconf doesn't enable it in zebra either.
I agree it should be included in 1.1.8, but it's not urgent. I suppose we'll build 1.1.8 some time next week anyway, there are other issues to be addressed.

Nov 5 2016, 11:18 PM · VyOS 1.1.x (1.1.8)

Oct 21 2016

dmbaturin created T178: Add support for pvlan-proxy-arp on vif sub-interfaces.
Oct 21 2016, 8:59 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc1)

Sep 26 2016

dmbaturin created T163: PGP key and verifying procedure (or a link to it) should be added to the website.
Sep 26 2016, 4:56 AM · Restricted Project

Sep 14 2016

dmbaturin added a comment to T151: Prepare generic presentation/talk.

Maybe really generic one should not reference specific companies, not sure.

Sep 14 2016, 8:50 PM · Invalid
dmbaturin closed T121: Add new mirror as Resolved.

I've added the mirror to the load balancer. Please add it to the wiki page: http://wiki.vyos.net/wiki/Mirrors
Also, what's your update interval?

Sep 14 2016, 8:46 PM · Mirrors

Sep 11 2016

dmbaturin added a comment to T142: DSA-3659-1.

Anything local should hardly be considered high priority, but the first one is remote. We definitely should include the fix in the 1.1.8

Sep 11 2016, 10:56 AM · VyOS 1.1.x (1.1.8)

Sep 9 2016

dmbaturin added a comment to T100: Create image for Google Compute Engine.

Hey, could you rename the task to make it more obvious what it's about. The default meaning of GCC is GNU Compiler Collection. ;)

Sep 9 2016, 3:41 PM · VyOS-1.2.0-GA, VyOS 1.2 Crux (VyOS 1.2.0-rc9), Google Cloud Platform Support

Sep 7 2016

dmbaturin created T145: Fix PXE boot in helium.
Sep 7 2016, 2:36 PM · VyOS 1.1.x (1.1.8)

Aug 31 2016

dmbaturin added a comment to T138: Cloud Auto VPN feature.

Looks like a worthy endeavor.

Aug 31 2016, 10:01 PM · vyConductor