1 2007-09-28 Chris Lumens <clumens@redhat.com>
3 * pykickstart/parser.py (Packages.__str__): Fix output formatting for
4 package section header (#310211).
6 * tools/ksflatten: Add a script to flatten out a kickstart file
7 containing %includes into one kickstart file (katzj AT redhat DOT
10 2007-09-12 Chris Lumens <clumens@redhat.com>
12 * pykickstart.spec, setup.py: New version.
14 * pykickstart/parser.py (Script.__str__): Fix format string for
16 (Packages.__str__): Output %end after all the packages.
18 * pykickstart/commands/repo.py (F8_Repo.methodToRepo): Add a function
19 to convert a URL method string into a repo object (jkeating AT redhat
22 2007-09-10 Chris Lumens <clumens@redhat.com>
24 * Makefile, MANIFEST.in, pykickstart.spec: Add the kickstart
25 documentation from the Fedora wiki.
27 2007-09-04 Chris Lumens <clumens@redhat.com>
29 * pykickstart.spec, setup.py: New version.
31 * Makefile: Add a target to run pychecker so I can attempt to cut
32 down on all the stupid errors that I just fixed up.
34 * pykickstart/parser.py (Script.__str__, Packages.__str__): Add %end
35 token to the end of these sections.
37 * pykickstart/version.py (stringToVersion): string -> s.
39 * pykickstart/commands/bootloader.py (FC4_Bootloader): Call
40 superclass's __init__ method.
42 * pykickstart/commands/device.py (FC3_Device): self.deviceOpts ->
45 * pykickstart/commands/network.py: Don't pass self when calling
46 _populateParser outside of the overridden method.
47 (F8_NetworkData.__init__): Pass noipv4 and noipv6 to superclass.
49 * pykickstart/commands/raid.py (F7_Raid): Call superclass's
52 2007-09-03 Jeremy Katz <katzj@redhat.com>
54 * pykickstart.spec, setup.py: New version.
56 * pykickstart/parser.py (KickstartParser.__init__): Define currentdir
58 * pykickstart/commands/network.py (F8_Network._populateParser):
61 2007-08-31 Chris Lumens <clumens@redhat.com>
63 * pykickstart.spec, setup.py: New version.
65 2007-08-29 Chris Lumens <clumens@redhat.com>
67 * pykickstart/commands/network.py: ipv4= -> noipv4=, ipv6= -> noipv6=
68 on NetworkData objects.
70 * pykickstart/commands/network.py (F8_NetworkData, F8_Network): Add
71 the --ipv6= option to the network command.
72 * pykickstart/handlers/control.py: Use F8_NetworkData and F8_Network
75 * pykickstart/commands/network.py: Reorganize how the parser's
76 options are set up so there's much less duplication.
78 2007-08-24 Chris Lumens <clumens@redhat.com>
80 * pykickstart.spec, setup.py: New version.
82 * pykickstart/parser.py (KickstartParser._stateMachine): Add support
83 for the %end directive, and issue DeprecationWarnings if it's not
84 used. It will be a long time before the old syntax goes away, though.
85 (KickstartParser._stateMachine): We only need one script state.
87 * validator/ksvalidator: Don't leave downloaded ks files on the
88 system if pykickstart hits a traceback.
90 2007-08-23 Chris Lumens <clumens@redhat.com>
92 * pykickstart/commands/repo.py (F8_RepoData, F8_Repo): Add support
93 for the --priority, --includepkgs, and --excludepkgs options.
94 * pykickstart/handlers/control.py: Use F8_RepoData and F8_Repo for
97 2007-08-22 Chris Lumens <clumens@redhat.com>
99 * pykickstart/commands/reboot.py (FC6_Reboot.__str__): Fix newline at
100 end of output (#253562).
102 2007-08-13 Chris Lumens <clumens@redhat.com>
104 * pykickstart.spec, setup.py: New version.
106 * pykickstart/options.py (KSOption._check_string): Fix type checking
109 2007-08-09 Chris Lumens <clumens@redhat.com>
111 * pykickstart.spec, setup.py: New version.
113 * pykickstart/options.py (KSOption._check_string): Add a method to
114 check string values, since optparse will consume the next argument if
115 an argument that requires a value does not specify one (#251318).
117 * pykickstart/*, validator/ksvalidator, pykickstart.spec: Add license
118 boilerplate, clarify as GPLv2.
120 2007-08-02 Chris Lumens <clumens@redhat.com>
122 * pykickstart.spec, setup.py: New version.
124 * po/*: Update translation files.
126 2007-07-31 Chris Lumens <clumens@redhat.com>
128 * validator/ksvalidator: Don't traceback if there's not yet a
129 processedFile. preprocessKickstart is no longer in any class.
131 2007-07-20 Chris Lumens <clumens@redhat.com>
133 * pykickstart/commands/network.py: Change --class to --dhcpclass in
134 all parse methods (#248912).
136 2007-07-19 Chris Lumens <clumens@redhat.com>
138 * pykickstart.spec: Require rhpl (#248953). New release.
140 2007-07-17 Chris Lumens <clumens@redhat.com>
142 * pykickstart.spec, setup.py: New version.
144 2007-07-17 Chris Lumens <clumens@redhat.com>
146 * pykickstart/parser.py (_preprocessStateMachine, preprocessFromString,
147 preprocessKickstart): Don't take a "self" parameter since these
148 methods don't live in a class anymore.
150 2007-07-17 Chris Lumens <clumens@redhat.com>
152 * pykickstart.spec, setup.py: New version.
154 2007-07-16 Chris Lumens <clumens@redhat.com>
156 * pykickstart/parser.py (_preprocessStateMachine, preprocessFromString,
157 preprocessKickstart): Add methods that handle the %ksappend
158 directive. This is taken from anaconda.
159 * validator/ksvalidator: Run the kickstart file through
160 preprocessKickstart before parsing for real.
162 * pykickstart/commands/ignoredisk.py: Change destination of --disks
163 parameter to match what is expected.
165 2007-07-16 Chris Lumens <clumens@redhat.com>
167 * pykickstart.spec, setup.py: New version.
169 2007-07-16 Chris Lumens <clumens@redhat.com>
171 * pykickstart/commands/ignoredisk.py: RHEL4 supports --only-use too.
173 2007-07-11 Chris Lumens <clumens@redhat.com>
175 * pykickstart/commands/ignoredisk.py (F8_IgnoreDisk): Add support
176 for the --only-use argument.
177 * pykickstart/handlers/control.py: Use F8_IgnoreDisk for F8.
179 2007-07-10 Chris Lumens <clumens@redhat.com>
181 * pykickstart/commands/raid.py: Need to pass "self" as the first
182 argument to superclass methods (#246709).
184 2007-06-08 Chris Lumens <clumens@redhat.com>
186 * pykickstart.spec: Fix package review problems (#226334). Bump
189 2007-06-07 Chris Lumens <clumens@redhat.com>
191 * pykickstart/commands/rootpw.py (F8_RootPw): Add support for the
192 --lock and --plaintext options for rootpw (#240059).
193 * pykickstart/commands/user.py (F8_UserData, F8_User): Likewise for
195 * pykickstart/handlers/control.py: F8 uses the new rootpw and user
198 2007-06-05 Chris Lumens <clumens@redhat.com>
200 * pykickstart/version.py: Add support for F8.
201 * pykickstart/handlers/control.py: Likewise.
202 * pykickstart/handlers/f8.py: Likewise.
204 2007-06-04 Chris Lumens <clumens@redhat.com>
206 * pykickstart.spec, setup.py: New version.
208 2007-06-04 Chris Lumens <clumens@redhat.com>
210 * pykickstart/commands/method.py: Fix harddrive install method error
211 checking (#242492, patch from Andrew Edmunds
212 <andrew DOT edmunds AT yahoo.com.au>).
214 * pykickstart/base.py (KickstartCommand.__init__): Add currentLine
216 (BaseHandler.dispatcher): Set currentLine attribute on the command
218 * pykickstart/parser.py (KickstartParser.handleCommand): Set
219 currentLine attribute on the handler.
220 * pykickstart/commands/auth.py (FC3_Authconfig.parse): Use
221 currentLine instead of reassembling the list of arguments, since
222 otherwise we might miss quoting (#241657).
224 * pykickstart/parser.py (KickstartParser.readKickstart): Use urlopen
225 to open a kickstart file so includes can be given by a URL in addition
228 2007-05-18 Chris Lumens <clumens@redhat.com>
230 * pykickstart/commands/user.py (FC6_UserData.__str__): Fix typo in
231 outputting --iscrypted option.
233 2007-05-14 Chris Lumens <clumens@redhat.com>
235 * pykickstart.spec, setup.py: New version.
237 2007-04-24 Chris Lumens <clumens@redhat.com>
239 * pykickstart/version.py (stringToVersion): Better regexes for
240 splitting strings into family and version.
242 * pykickstart/version.py: Add support for RHEL3 (jlaska AT
244 * pykickstart/handlers/control.py: Likewise.
245 * pykickstart/handlers/rhel3.py: Likewise.
247 * pykickstart/commands/mouse.py: Initial support for RHEL3 commands
248 (jlaska AT redhat.com).
250 2007-04-13 Chris Lumens <clumens@redhat.com>
252 * pykickstart.spec, setup.py: This is pykickstart version 1.0.
254 * docs/programmers-guide: Update documentation.
256 2007-04-12 Chris Lumens <clumens@redhat.com>
258 * docs/programmers-guide: Update documentation.
260 * pykickstart/base.py (DeprecatedCommand): This should be an abstract
263 2007-03-30 Chris Lumens <clumens@redhat.com>
265 * pykickstart/parser.py (KickstartParser.readKickstart): Use
266 urlgrabber so %include files can be URLs (#234351).
268 2007-03-19 Chris Lumens <clumens@redhat.com>
270 * pykickstart.spec, setup.py: New version.
272 2007-03-16 Chris Lumens <clumens@redhat.com>
274 * pykickstart/commands/bootloader.py: Increase writePriority number
275 so this comes after upgrade/install.
277 2007-03-12 Chris Lumens <clumens@redhat.com>
279 * pykickstart/base.py (BaseHandler._setCommand): Treat class names as
280 unicode strings so lower() works in all locales (#231053).
282 2007-03-07 Chris Lumens <clumens@redhat.com>
284 * pykickstart.spec, setup.py: New version.
286 2007-03-07 Chris Lumens <clumens@redhat.com>
288 * pykickstart/commands/timezone.py: The timezone command didn't
289 understand --isUtc before FC6 (#231189).
291 * pykickstart/parser.py (KickstartParser._stateMachine): Recognize
292 %ksappend so ksvalidator works.
294 * po/: Update translation files.
296 2007-03-01 Chris Lumens <clumens@redhat.com>
298 * pykickstart/commands/bootloader.py, pykickstart/commands/clearpart.py,
299 pykickstart/commands/displaymode.py, pykickstart/commands/firewall.py,
300 pykickstart/commands/firstboot.py, pykickstart/commands/langsupport.py,
301 pykickstart/commands/logging.py, pykickstart/commands/reboot.py,
302 pykickstart/commands/selinux.py, pykickstart/commands/upgrade.py:
303 Don't set default values so a newly created kickstart handler object
304 will only have the values set by a caller.
306 2007-02-28 Chris Lumens <clumens@redhat.com>
308 * pykickstart/commands/updates.py: Added a new updates command for
309 grabbing updates.img files.
310 * pykickstart/commands/__init__.py: Pull in new command object.
311 * pykickstart/handlers/control.py: Add new command to F7 map.
313 * pykickstart/commands/raid.py (F7_Raid): Add support for RAID10.
315 2007-02-26 Chris Lumens <clumens@redhat.com>
317 * pykickstart.spec, setup.py: New version.
319 2007-02-26 Chris Lumens <clumens@redhat.com>
321 * pykickstart/commands/device.py (FC3_Device): Fix device command
322 syntax to match anaconda's documentation.
324 * pykickstart/commands/method.py: Add all the attributes that the
325 Method commands can set so __call__ works.
327 2007-02-21 Chris Lumens <clumens@redhat.com>
329 * pykickstart.spec, setup.py: New version.
331 2007-02-21 Chris Lumens <clumens@redhat.com>
333 * pykickstart/base (BaseHandler._registerCommands): Fix reference to
334 cMap and dMap in non-default case (#229505).
336 2007-02-20 Chris Lumens <clumens@redhat.com>
338 * pykickstart.spec, setup.py: New version.
340 2007-02-20 Chris Lumens <clumens@redhat.com>
342 * pykickstart/parser.py (Group): Added an object for dealing with
343 extended group syntax.
344 (Packages._processGroup): Add a new function to handle the extended
347 * pykickstart/constants.py: New group selection constants.
349 * pykickstart/handlers/control.py (dataMap): Add a mapping for data
352 * pykickstart/base.py (BaseHandler._registerCommands): Add attributes
353 on the handler for the data objects.
355 2007-02-19 Chris Lumens <clumens@redhat.com>
357 * pykickstart/base.py (BaseHandler.maskAllExcept): Renamed from
359 (BaseHandler.__init__): Accept a mapping argument in the format of
360 what's in pykickstart.handlers.control, for when you're overriding all
361 the handlers with your own versions.
363 * pykickstart/commands/langsupport.py (FC3_LangSupport.__str__): Add
366 * pykickstart/commands/reboot.py: Provide a default return value in
367 the __str__ methods to fix a traceback.
369 2007-02-19 Chris Lumens <clumens@redhat.com>
371 * pykickstart/commands/*.py: All command objects now have an
372 underscore between the version part and the name for ease of
374 * pykickstart/handlers/control.py (commandMap): Likewise.
376 * pykickstart/base.py (BaseHandler._setCommand): Strip version part
377 from name before creating the attribute.
379 * pykickstart/version.py (versionToString): Added a method to convert
380 version numbers back into strings, which is needed for the above
383 2007-02-19 Chris Lumens <clumens@redhat.com>
385 * pykickstart/base.py: Moved here from pykickstart/commands and adapt
388 * pykickstart/version.py: Accept short forms of version strings again
389 and adapt to new layout.
391 * pykickstart/commands/*.py: Broke each command out into its own file
392 and put all the versions of that command handler together. Idea and
393 mock up from Peter Jones (<pjones AT redhat.com>).
395 * pykickstart/handlers/*.py: Moved handlers into their own directory.
397 * pykickstart/handlers/control.py: Add a file laying out which
398 commands are supported by each version and exactly where they can be
399 found. This should help readability of the code quite a bit.
401 2007-02-14 Chris Lumens <clumens@redhat.com>
403 * pykickstart.spec, setup.py: New version.
405 2007-02-14 Chris Lumens <clumens@redhat.com>
407 * pykickstart/parser.py (KickstartParser.__init__): Don't need to
408 take a version argument since the Parser can get that from the
411 * validator/ksvalidator: KickstartParser no longer takes a version
414 * pykickstart/version.py (stringToVersion): Be more lenient in what
415 strings we accept to take into account RHEL variants.
417 2007-02-08 Chris Lumens <clumens@redhat.com>
419 * pykickstart/parser.py (KickstartParser._reset): Add a method to
420 reset the state machine state and call it from __init__. Also call it
421 from readKickstart and readKickstartFromString except in the special
422 case of included files. This allows calling the parser multiple times
423 with the same data objects for file inheritance/overriding.
425 2007-02-07 Chris Lumens <clumens@redhat.com>
427 * pykickstart.spec, setup.py: New version.
429 2007-02-06 Chris Lumens <clumens@redhat.com>
431 * pykickstart/commands/f7.py (F7Handler.Key.__str__): Add a newline.
432 * pykickstart/commands/rhel5.py (RHEL5Handler.Key.__str__): Likewise.
434 * pykickstart/constants.py: Add network bootproto constants (#197694).
435 * pykickstart/commands/fc3.py: Use new network constants.
436 * pykickstart/commands/fc4.py: Likewise.
437 * pykickstart/commands/fc6.py: Likewise.
438 * pykickstart/commands/rhel4.py: Likewise.
440 2007-02-01 Chris Lumens <clumens@redhat.com>
442 * pykickstart/commands/fc4.py: Fix tracebacks in subclass __str__
444 * pykickstart/commands/rhel4.py: Likewise.
446 2007-01-31 Chris Lumens <clumens@redhat.com>
448 * pykickstart.spec: Modified to more closely match the extras
449 packaging guidelines.
451 2007-01-25 Chris Lumens <clumens@redhat.com>
453 * pykickstart.spec, setup.py: New version.
455 2007-01-24 Chris Lumens <clumens@redhat.com>
457 * pykickstart/commands/fc3.py: Added.
458 * pykickstart/commands/fc4.py: Move basic commands and data back to
461 * pykickstart/commands/rhel4.py: Added.
463 * pykickstart/version.py: Add support for FC3 and RHEL4.
465 * pykickstart/commands/fc4.py (FC4Handler.__init__): Use
466 overrideCommand instead of registerCommand.
467 * pykickstart/commands/fc5.py (FC5Handler.__init__): Likewise.
468 * pykickstart/commands/fc6.py (FC6Handler.__init__): Likewise.
470 2007-01-24 Chris Lumens <clumens@redhat.com>
472 * pykickstart/commands/fc6.py (FC6Handler.Key): FC6 didn't support
474 * pykickstart/commands/f7.py (F7Handler.Key): The key command was
475 added just after FC6 came out.
477 * pykickstart/commands/rhel5.py: Added.
479 * pykickstart/version.py: Add support for RHEL5. Be more permissive
480 in what sorts of strings we map to version numbers. Fix pychecker
483 2007-01-19 Chris Lumens <clumens@redhat.com>
485 * pykickstart.spec, setup.py: New version.
487 2007-01-19 Chris Lumens <clumens@redhat.com>
489 * pykickstart/errors.py (KickstartVersionError): This should just
490 take a message like all the other exception classes.
491 * pykickstart/version.py: Pass a message to KickstartVersionError.
493 * pykickstart/commands/base.py (BaseHandler.__init__): Add a version
494 attribute so we no longer have to compare class names.
495 * pykickstart/commands/f7.py (F7Handler.__init__): Likewise.
496 * pykickstart/commands/fc4.py (FC4Handler.__init__): Likewise.
497 * pykickstart/commands/fc5.py (FC5Handler.__init__): Likewise.
498 * pykickstart/commands/fc6.py (FC6Handler.__init__): Likewise.
500 * pykickstart/parser.py (KickstartParser.__init__): Fix test for
501 matching version numbers now that handlers know what version they are.
503 2007-01-18 Chris Lumens <clumens@redhat.com>
505 * pykickstart/commands/fc4.py: KSOptionParser's lineno argument needs
507 * pykickstart/commands/fc5.py: Likewise.
508 * pykickstart/commands/fc6.py: Likewise.
510 2007-01-18 Chris Lumens <clumens@redhat.com>
512 * pykickstart/commands/base.py (BaseHandler.unregisterCommand): Add a
513 method to remove support for a command from a Handler instance.
515 * pykickstart/version.py: Add support for the F7 version.
516 * pykickstart/commands/f7.py: Add a devel version that removes the
517 deprecated langsupport and mouse commands.
519 * pykickstart/options.py (KSOptionParser.__init__): Move call to
520 superclass __init__ to where it belongs.
521 (KSOptionParser.check_values): Deprecated should be a flag, not a
524 * pykickstart/parser.py (Packages): Accept a --default argument to
525 specify that the default package set should be installed (#221305).
526 (KickstartParser.handlePackageHdr): Likewise.
527 (KickstartParser.__init__): KickstartParser needs to accept a version
530 * validator/ksvalidator: Pass the version to KickstartParser.
532 2007-01-17 Chris Lumens <clumens@redhat.com>
534 * pykickstart.spec, setup.py: New version.
536 2007-01-16 Chris Lumens <clumens@redhat.com>
538 * pykickstart/parser.py (KickstartParser.readKickstartFromString):
539 Add a method to read a kickstart file from a string, in addition to
540 the one that's already there for reading from a file.
542 2007-01-16 Chris Lumens <clumens@redhat.com>
544 * pykickstart.spec, setup.py: New version, finally.
546 2007-01-16 Chris Lumens <clumens@redhat.com>
548 * pykickstart/parser.py (Script.__str__): Write out --interpreter
549 since that's what the parser expects (#222877).
551 * pykickstart/commands/fc4.py: Fix exception error messages.
553 2007-01-15 Chris Lumens <clumens@redhat.com>
555 * pykickstart/commands/base.py (BaseHandler.empty): Add a method to
556 empty out the contents of the commands dict.
558 * pykickstart/commands/fc4.py (BaseHandler.Upgrade): Only set upgrade
559 if that's what the current command is.
560 (BaseHandler.RootPw): rootpw -> password
562 2007-01-15 Chris Lumens <clumens@redhat.com>
564 * pykickstart/version.py (returnClassForVersion): Take a default
566 (returnClassForVersion): Rename Version to Handler.
568 * pykickstart/parser.py: Rename kshandlers to handler.
570 * pykickstart/commands/base.py: Rename BaseVersion to BaseHandler,
571 registerHandler to registerCommand, and self.dispatcher to
573 * pykickstart/commands/fc4.py: Likewise.
574 * pykickstart/commands/fc5.py: Likewise.
575 * pykickstart/commands/fc6.py: Likewise.
577 2007-01-12 Chris Lumens <clumens@redhat.com>
579 * pykickstart/commands/base.py (BaseVersion.overrideHandler): Provide
580 a way to create a new instance of the handler and have it used. This
581 allows a shortcut for wiping out all the attributes on an instance.
582 (BaseVersion.__str__): Newline after the platform is written.
584 * pykickstart/commands/base.py (KickstartCommand.__init__): Add the
585 dispatcher setting back in.
587 2007-01-12 Chris Lumens <clumens@redhat.com>
589 * pykickstart/commands/base.py (BaseVersion._insertSorted): When a
590 subclass of BaseVersion registers a handler that already exists from a
591 class higher up the chain, remove the existing handler in favor of the
594 * pykickstart/commands/fc4.py: Put writePriority defaults in the
595 default arguments to command objects instead of in the calls to
596 creating them, as that didn't work for subclasses. Also change how
597 we handle default arguments that are lists.
598 * pykickstart/commands/fc5.py: Likewise.
599 * pykickstart/commands/fc6.py: Likewise.
601 2007-01-11 Chris Lumens <clumens@redhat.com>
603 * pykickstart/commands/fc5.py (RaidData, Raid): Make these classes
604 subclass the ones in FC4Version, to the extent that can be done.
605 * pykickstart/commands/fc6.py (NetworkData, Method, Monitor, Reboot):
608 * pykickstart/parser.py (Script.__str__): Fix Script printing.
610 * pykickstart/commands/fc6.py (FC6Version.Method): Fix test for opts
613 2007-01-10 Chris Lumens <clumens@redhat.com>
615 * pykickstart/commands/base.py (KickstartCommand.__init__): Add a
616 dispatcher setting so command classes can still access data classes.
617 (BaseVersion.registerHandler): Don't overwrite command classes with
618 an instance in the version object.
620 * pykickstart/commands/fc4.py: Data and command classes are now
621 nested inside the version class.
622 * pykickstart/commands/fc5.py: Likewise.
623 * pykickstart/commands/fc6.py: Likewise.
625 2007-01-10 Chris Lumens <clumens@redhat.com>
627 * pykickstart/version.py (makeVersion): Default to DEVEL.
629 * pykickstart/commands/fc4.py: Command -> KS for brevity.
630 * pykickstart/commands/fc5.py: Likewise.
631 * pykickstart/commands/fc6.py: Likewise.
633 2007-01-09 Chris Lumens <clumens@redhat.com>
635 * pykickstart/po/*: Updated translations.
637 * pykickstart/commands/*.py: Rename everything from Handler to
638 Version, as that seems to make more sense.
639 * pykickstart/options.py: Likewise.
640 * pykickstart/parser.py: Likewise.
641 * pykickstart/version.py: Likewise.
642 * ksvalidator/validator: Likewise.
644 2007-01-09 Chris Lumens <clumens@redhat.com>
646 * Merge in multiversion-branch (#189348).
648 2007-01-08 Chris Lumens <clumens@redhat.com>
652 * Merge from HEAD: Updated translations.
654 2007-01-03 Chris Lumens <clumens@redhat.com>
658 * pykickstart/commands/base.py (BaseHandler.hasHandler): Add a
659 convenience method to see if there's a handler for a given command.
661 2006-12-22 Chris Lumens <clumens@redhat.com>
665 * pykickstart/commands/base.py (KickstartCommand.__init__): Add a
666 writePriority parameter to control the order commands get written out
667 when __str__ methods are called.
668 (BaseHandler.__str__): Take writePriorities into account.
669 (BaseHandler.registerHandler): Insert command handlers into the
670 _writePriority dict in the correct order - first by priority, then
671 alphabetically within that priority.
673 * pykickstart/commands/fc4.py: Add new writePriority parameter.
674 * pykickstart/commands/fc6.py: Likewise.
676 2006-12-22 Chris Lumens <clumens@redhat.com>
680 * pykickstart/commands/fc6.py: Added multipath support back in.
682 * pykickstart/commands/base.py (BaseData): Added a superclass for all
683 those Kickstart*Data objects.
684 * pykickstart/commands/fc4.py: Use BaseData.
685 * pykickstart/commands/fc6.py: Likewise.
687 * pykickstart/commands/base.py: Clarify API for subclasses a little
688 bit. Make KickstartCommand.__str__ an abstract method. Add
689 DeprecatedCommand.__str__.
691 2006-12-20 Chris Lumens <clumens@redhat.com>
695 * pykickstart/commands/fc4.py (CommandReboot.__str__): Fix output
698 * Merge from HEAD: Updated translations.
700 2006-12-20 Chris Lumens <clumens@redhat.com>
704 * pykickstart/__init__.py: Clear this out.
706 * pykickstart/errors.py: Add __doc__ strings to all classes and
708 * pykickstart/options.py: Likewise.
709 * pykickstart/version.py: Likewise.
710 * pykickstart/commands/base.py: Likewise.
712 * pykickstart/parser.py: Add __doc__ strings to all classes and
713 public methods. Privatize attributes in KickstartParser that don't
716 * pykickstart/commands/fc4.py (FC4Handler.__init__): _registerHandler
717 is no longer private.
718 * pykickstart/commands/fc5.py (FC5Handler.__init__): Likewise.
719 * pykickstart/commands/fc6.py (FC6Handler.__init__): Likewise.
721 * docs/programmers-guide: Remove stuff that's now duplicated by
724 2006-12-20 Chris Lumens <clumens@redhat.com>
726 * po/nb.po: Update from rhel5-branch.
728 2006-12-19 Chris Lumens <clumens@redhat.com>
732 * pykickstart/commands/base.py (KickstartCommand.__call__): Add a
733 function to set all the attributes of a command object at once.
734 (BaseHandler._registerHandler): Don't need to do so much goofy stuff
735 to register a command handler anymore.
737 * pykickstart/version.py (returnClassForVersion): Add a function to
738 return the class matching a given kickstart syntax version. This does
739 not return an instance of that class.
741 * Makefile: Add pykickstart/commands/*.pyc to what gets cleaned.
743 * setup.py: Package up commands as well.
745 * test.py: This isn't needed anymore.
747 2006-12-19 Chris Lumens <clumens@redhat.com>
751 * pykickstart/commands/fc4.py: Add named arguments to __init__
752 functions for all command handlers.
753 * pykickstart/commands/fc6.py: Likewise.
755 * pykickstart/commands/fc4.py: Various minor fixes to default
756 arguments and __str__ methods throughout.
758 2006-12-15 Chris Lumens <clumens@redhat.com>
760 * pykickstart.spec, setup.py: Bump version (only translations have
761 changed since the last rebuild - #216620).
763 2006-12-12 Chris Lumens <clumens@redhat.com>
767 * pykickstart/commands/fc4.py (CommandLang): Add lang attribute.
769 * pykickstart/commands/fc5.py (FC5Handler): Import from the
772 2006-12-11 Chris Lumens <clumens@redhat.com>
776 * pykickstart/commands/fc4.py: Added first run at data and command
777 handling support for Fedora Core 4.
779 * pykickstart/commands/fc4.py (KickstartLogVolData,
780 KickstartNetworkData, KickstartPartData, KickstartRaidData,
781 KickstartVolGroupData, KickstartZFCPData): Add named arguments to
782 __init__ functions to make creating objects programatically easier.
783 * pykickstart/commands/fc6.py (KickstartDmRaidData,
784 KickstartIscsiData, KickstartRepoData, KickstartUserData): Likewise.
786 2006-12-11 Chris Lumens <clumens@redhat.com>
790 * validator/ksvalidator: Update to handle multiple versions.
792 * pykickstart/parser.py (Packages.add): Move Parser.addPackages here
793 since this seems like a sensible method for the Packages object to
796 * pykickstart/version.py (makeHandler): Add a function to create the
797 right handler for a given syntax version.
798 (stringToVersion): Add a function to convert string versions into
801 * pykickstart/commands/base.py: Need to import errors here.
803 2006-12-11 Chris Lumens <clumens@redhat.com>
807 * pykickstart/options.py (KSOptionParser.check_values): Use
808 self.lineno instead of lineno.
810 * pykickstart/parser.py: Set packages, scripts, and platform on the
813 * pykickstart/commands/base.py (BaseHandler.__init__): This looks
814 like the best place to add packages, scripts, and platform.
815 (BaseHandler.__str__): Write out the whole ks file, though we still
816 need to get commands in the right order.
818 * Merge from HEAD: Updated translations.
820 2006-12-08 Chris Lumens <clumens@redhat.com>
824 * pykickstart/data.py: Removed.
825 * pykickstart/handlers.py: Removed.
826 * pykickstart/writer.py: Removed.
828 * pykickstart/__init__.py: Updated.
829 * pykickstart/errors.py (KickstartVersionError): Add a new exception
830 that will be useful in the future.
831 * pykickstart/options.py: Don't need this import anymore.
832 * pykickstart/parser.py: Rework string representation in String.
833 Create a new Packages class, even though it's not in use yet. Hack in
834 changes to the parser to make it basically work for now.
835 * pykickstart/version.py: Added initial symbolic version numbers.
837 * pykickstart/commands/__init__.py: Added.
838 * pykickstart/commands/base.py: Added base classes useful for all
840 * pykickstart/commands/fc5.py: Added first run at data and command
841 handling support for Fedora Core 5 syntax. Most of this used to be
842 in data.py, handlers.py, and writer.py
843 * pykickstart/commands/fc6.py: Added first run at data and command
844 handling support for Fedora Core 6 syntax. Most of this used to be in
845 data.py, handlers.py, and writer.py
848 * test.py: Added quick test harness.
850 2006-12-05 Chris Lumens <clumens@redhat.com>
854 * pykickstart/options.py (KSOptionParser.check_values): Check
855 introduced and removed attributes.
856 (KSOption): Add introduced and removed attributes.
858 * validator/ksvalidator: Update to work with new file structure.
861 - po/pykickstart.pot: Updated (#216620).
862 - pykickstart/errors.py: Update string formats to make translation
864 - pykickstart/handlers.py: Likewise.
865 - pykickstart/options.py: Likewise.
866 - pykickstart/handlers.py (KickstartHandlers.doIscsi): Use required
868 - pykickstart/handlers.py (KickstartHandlers.deprecatedCommands):
869 Fix traceback (#218047, #218059).
870 - pykickstart/writer.py (KickstartWriter.doLogging): Add --level.
871 - pykickstart/writer.py (KickstartWriter.doRepo): Fix traceback
874 2006-12-05 Chris Lumens <clumens@redhat.com>
876 * pykickstart.spec, setup.py: Bump version.
878 2006-12-04 Chris Lumens <clumens@redhat.com>
880 * pykickstart/writer.py (KickstartWriter.doRepo): Fix traceback
883 2006-12-01 Chris Lumens <clumens@redhat.com>
885 * pykickstart.spec, setup.py: Bump version.
887 * pykickstart/parser.py (KickstartHandlers.deprecatedCommands): Fix
888 traceback (#218047, #218059).
890 2006-11-30 Chris Lumens <clumens@redhat.com>
892 * pykickstart.spec, setup.py: Bump version.
894 2006-11-21 Chris Lumens <clumens@redhat.com>
896 * po/pykickstart.pot: Updated (#216620).
898 * pykickstart/parser.py: Update string formats to make translation
901 2006-11-14 Chris Lumens <clumens@redhat.com>
903 * pykickstart/parser.py (KickstartHandlers.doIscsi): Use required
906 2006-11-09 Chris Lumens <clumens@redhat.com>
908 * pykickstart/writer.py (KickstartWriter.doLogging): Add --level.
910 2006-10-24 Chris Lumens <clumens@redhat.com>
915 - Makefile: Update to handle new release format.
916 - setup.py: New version.
917 - pykickstart.spec: Fix spec file to use %{?dist} in release.
918 - pykickstart/writer.py (KickstartWriter.doKey): Better way to
921 2006-10-24 Chris Lumens <clumens@redhat.com>
925 * pykickstart/__init__.py: Import new files by default.
926 * pykickstart/errors.py: Split out from parser.py.
927 * pykickstart/handlers.py: Split out from parser.py
928 * pykickstart/options.py: Split out from parser.py.
929 * pykickstart/parser.py: Updated for new files.
931 * validator/ksvalidator: Updated for new files.
933 2006-10-24 Chris Lumens <clumens@redhat.com>
935 * pykickstart.spec, setup.py: Bump version.
937 * Makefile: Fix for new Release format.
939 2006-10-17 Chris Lumens <clumens@redhat.com>
941 * pykickstart/writer.py: Add writer for key command.
943 2006-10-17 Jeremy Katz <katzj@redhat.com>
945 * pykickstart.spec, setup.py: Bump version.
947 * pykickstart/parser.py, pykickstart/constants.py: add --skip for key
949 2006-10-16 Jeremy Katz <katzj@redhat.com>
951 * pykickstart.spec, setup.py: Bump version.
953 * pykickstart/parser.py (KickstartHandlers.doKey): Support for
955 * pykickstart/data.py (KickstartData.__init__): Likewise.
957 2006-10-13 Bill Nottingham <notting@redhat.com>
959 * af.po, am.po, ar.po, be.po, bg.po, bn.po, cy.po, et.po,
960 eu_ES.po, fa.po, fi.po, he.po, hy.po, kn.po, ku.po, lo.po, lt.po,
961 lv.po, mk.po, my.po, nn.po, no.po, nso.po, ro.po, si.po, sq.po, th.po,
962 ur.po, vi.po, zu.po: Use a valid charset (#210720)
964 * pykickstart.spec, setup.py: Bump version
967 2006-09-29 Chris Lumens <clumens@redhat.com>
969 * pykickstart.spec, setup.py: Bump version
971 * pykickstart/parser.py (KickstartHandlers.doMethod): Fix traceback
974 2006-09-25 Chris Lumens <clumens@redhat.com>
976 * pykickstart.spec, setup.py: Bump version
978 * pykickstart/parser.py (KickstartHandlers.doMethod): Add support for
979 --biospart option (#207585).
980 * pykickstart/writer.py (KickstartWriter.doMethod): Likewise.
982 * pykickstart/writer.py (KickstartWriter.doIscsi): Output new syntax.
983 (KickstartWriter.doZFCP): Likewise.
984 (KickstartWriter.doIscsiName): Added.
986 2006-09-20 Jeremy Katz <katzj@redhat.com>
988 * pykickstart.spec, setup.py: Bump version
990 * pykickstart/parser.py (KickstartHandlers.doIscsi): New and
991 improved iscsi syntax. Also, allow multiple zfcp devs
992 * pykickstart/data.py: Likewise.
994 2006-07-13 Chris Lumens <clumens@redhat.com>
996 * pykickstart/data.py: Add noipv4 and noipv6 to KickstartNetworkData.
997 * pykickstart/parser.py (KickstartHandlers.doNetwork): Limit
998 bootproto choices to what anaconda can handle. Add support for
999 --noipv4 and --noipv6 options.
1000 * pykickstart/writer.py (KickstartWriter.doNetwork): Write out new
1003 2006-06-20 Chris Lumens <clumens@redhat.com>
1005 * pykickstart.spec, setup.py: Bump version.
1007 * pykickstart/writer.py (KickstartWriter.doIscsi): Add iscsi writer.
1009 2006-06-20 Jeremy Katz <katzj@redhat.com>
1011 * pykickstart/parser.py (KickstartHandlers.doIscsi): Initial iscsi
1012 support. This syntax is likely to change but this makes testing
1014 * pykickstart/data.py (KickstartData.__init__): Add iscsi data.
1016 2006-06-20 Chris Lumens <clumens@redhat.com>
1018 * pykickstart/parser (KickstartHandlers.doRaid): Handle a RAID device
1019 as an integer instead of a string (#176537).
1021 2006-06-16 Jeremy Katz <katzj@redhat.com>
1023 * pykickstart/parser.py (KickstartHandlers.doMethod): Handle nfs --opts
1025 2006-06-06 Chris Lumens <clumens@redhat.com>
1027 * pykickstart.spec: Fix BuildRequires (#194156).
1029 2006-05-25 Chris Lumens <clumens@redhat.com>
1031 * pykickstart.spec, setup.py: Bump version.
1033 2006-05-24 Chris Lumens <clumens@redhat.com>
1035 * pykickstart/writer.py (KickstartWriter): Change order of LVM-related
1036 functions (#193073).
1038 2006-05-23 Chris Lumens <clumens@redhat.com>
1040 * pykickstart.spec: Require urlgrabber now.
1042 * po/*: Update translation files.
1044 * pykickstart/parser.py (KickstartParser.handleCommand): Return a
1045 more useful error message on unknown command.
1047 * pykickstart/writer.py (KickstartWriter.doLogicalVolume): Fix typo.
1049 * validator/ksvalidator: Accept a URL in addition to a file name.
1051 2006-05-23 Chris Lumens <clumens@redhat.com>
1053 * pykickstart/writer.py (KickstartWriter.doPackages): Don't write out
1054 an empty packages section, since we may want this step to be
1055 interactive (#192851).
1057 2006-05-23 Chris Lumens <clumens@redhat.com>
1059 * pykickstart.spec, setup.py: Bump version.
1061 * pykickstart/writer.py (KickstartWriter.doFirewall): Rename --ports
1062 to match the parser.
1064 2006-05-17 Peter Jones <pjones@redhat.com>
1066 * pykickstart/parser.py: Add "multipath" command and doMultiPath
1068 * pykickstart/data.py: Add kickstartMpPathData and
1069 KickstartMultiPathData objects to handle multipath info, as well as
1070 KickstartData.mpaths .
1071 * pykickstart/writer.py: add doMultiPath
1072 * docs/programmers-guide: add completely useless documentation for
1073 multipath kickstart objects.
1075 2006-05-15 Chris Lumens <clumens@redhat.com>
1077 * pykickstart.spec, setup.py: Bump version.
1079 * pykickstart/data.py (KickstartNetworkData): Add MTU (#191328).
1080 * pykickstart/parser.py (KickstartHandlers.doNetwork): Likewise.
1081 * pykickstart/writer.py (KickstartWriter.doNetwork): Likweise.
1083 2006-05-10 Chris Lumens <clumens@redhat.com>
1085 * pykickstart/parser.py (KickstartHandlers.doTimezone): Accept
1086 --isUtc for backwards compatibility.
1088 2006-05-04 Chris Lumens <clumens@redhat.com>
1090 * pykickstart.spec, setup.py: Bump version.
1092 2006-04-25 Chris Lumens <clumens@redhat.com>
1094 * pykickstart/data.py (KickstartUserData): Added.
1095 (KickstartData): Added lists for services and users.
1096 * pykickstart/parser.py (KickstartParser.doServices,
1097 KickstartParser.doUser): Add new command handlers.
1098 Consolidate code to copy from option parsers to ksdata.
1099 * pykickstart/writer.py (KickstartWriter.doServices,
1100 KickstartParser.doUser): Add new command handlers.
1102 2006-04-24 Chris Lumens <clumens@redhat.com>
1104 * pykickstart/writer.py: More output formatting fixes.
1106 2006-04-19 Chris Lumens <clumens@redhat.com>
1108 * pykickstart/constants.py: Start CLEARPART_ constants at 0.
1110 2006-04-17 Chris Lumens <clumens@redhat.com>
1112 * pykickstart.spec, setup.py: Bump version.
1114 2006-04-13 Chris Lumens <clumens@redhat.com>
1116 * pykickstart/data.py (KickstartRepoData): Added.
1117 (KickstartRaidData): Initialize members to a list instead of string.
1118 (KickstartVolGroupData): Likewise.
1119 * pykickstart/parser.py (KickstartHandlers.doRepo): Add options.
1120 * pykickstart/writer.py (KickstartWriter.doRepo): Likewise.
1121 (KickstartWriter.doPackages): Reorder package output. Output header
1124 2006-04-11 Chris Lumens <clumens@redhat.com>
1126 * pykickstart/parser.py (KickstartParser.addPackages): Ignore
1127 whitespace before group names (#188095).
1129 2006-03-27 Chris Lumens <clumens@redhat.com>
1131 * pykickstart.spec, setup.py: Bump version.
1133 * pykickstart/data.py (KickstartData.__init__): Add support for the
1135 * pykickstart/writer.py (KickstartWriter.doLogging): Likewise.
1136 (KickstartWriter.doRepo): Stub out funtion for the future.
1137 * pykickstart/parser.py (KickstartHandlers.doLogging): Likewise.
1138 (KickstartHandlers.doRepo): Stub out function for the future.
1140 2006-03-27 Chris Lumens <clumens@redhat.com>
1142 * pykickstart.spec, setup.py: Bump version.
1144 * pykickstart/writer.py (KickstartWriter.doXConfig): Don't write out
1145 a blank xconfig line.
1147 2006-03-13 Chris Lumens <clumens@redhat.com>
1149 * pykickstart/writer.py (KickstartWriter.__init__): Reorder output
1152 2006-03-07 Chris Lumens <clumens@redhat.com>
1154 * pykickstart.spec, setup.py: Bump version.
1156 * pykickstart/parser.py (KickstartHandlers.doZeroMbr): Backwards
1157 compatibility support for options to zerombr.
1159 2006-02-24 Chris Lumens <clumens@redhat.com>
1161 * pykickstart.spec, setup.py: Bump version.
1163 * pykickstart/parser.py (KickstartHandlers.doIgnoreDisk): Get ksdata
1164 from the correct option parser variable (#182934).
1166 2006-02-17 Chris Lumens <clumens@redhat.com>
1168 * pykickstart.spec, setup.py: Bump version.
1170 2006-02-16 Chris Lumens <clumens@redhat.com>
1172 * docs/programmers-guide: Update documentation.
1174 * pykickstart/parser.py: Provide an option to not traceback if an
1175 included file is not present. This should have very limited
1176 usefulness. (#181760).
1177 * pykickstart/parser.py (KSOptionParser.check_values): Typos.
1179 2006-02-13 Chris Lumens <clumens@redhat.com>
1181 * pykickstart.spec, setup.py: Bump version.
1183 * pykickstart/parser.py: Don't trust ensure_value in complicated
1184 cases in callbacks, as it wasn't setting values.
1186 2006-02-13 Chris Lumens <clumens@redhat.com>
1188 * pykickstart.spec, setup.py: Bump version.
1190 * pykickstart/writer.py (KickstartWriter.doNetwork): --onboot
1191 requires a value (#180987).
1193 2006-02-10 Chris Lumens <clumens@redhat.com>
1195 * pykickstart/parser.py: Be more strict about commands that don't
1198 2006-02-09 Chris Lumens <clumens@redhat.com>
1200 * pykickstart.spec, setup.py: Bump version.
1202 * pykickstart/parser.py, pykickstart/writer.py: Fix pychecker
1205 * pykickstart/parser.py (KSOption): Condense all those option classes
1208 * pykickstart/parser.py (KickstartParser.readKickstart): Allow
1209 exceptions to not be fatal so ksvalidator can report multiple
1210 problems in one pass.
1211 (KickstartHandlers.deprecatedCommand): Add line number to message.
1212 (KSOptionParser.check_values): Make deprecated option message more
1215 * validator/ksvalidator: Default to not following include files and
1216 to not halting on the first error. Add options to change this
1219 2006-02-08 Chris Lumens <clumens@redhat.com>
1221 * pykickstart/parser.py (KickstartHandlers.doRaid): --level is not
1222 strictly required since we should be able to infer it from
1225 2006-02-01 Chris Lumens <clumens@redhat.com>
1227 * pykickstart.spec, setup.py: Bump version.
1229 * pykickstart/parser.py (KickstartHandlers.doVnc): No default port.
1231 2006-01-31 Chris Lumens <clumens@redhat.com>
1233 * pykickstart.spec, setup.py: Bump version.
1235 * pykickstart.py/writer.py (KickstartWriter.doDmRaid): Add an initial
1237 (KickstartWriter.doPartition): Handle None on partition size.
1239 2006-01-30 Chris Lumens <clumens@redhat.com>
1241 * pykickstart.spec, setup.py: Bump version.
1243 * pykickstart/parser.py (KickstartHandlers.doVnc): Fix connecting to
1244 a remote viewer. Deprecate --connect, and add --host and --port as
1245 the new preferred way (#179209).
1247 2006-01-19 Chris Lumens <clumens@redhat.com>
1249 * pykickstart.spec, setup.py: Bump version.
1251 2006-01-13 Chris Lumens <clumens@redhat.com>
1253 * pykickstart/constants.py: Add constants for the various
1254 reboot/shutdown actions.
1255 * pykickstart/data.py: Add support for --eject on reboot.
1256 * pykickstart/parser.py: Likewise.
1257 * pykickstart/writer.py: Likewise.
1259 2006-01-04 Chris Lumens <clumens@redhat.com>
1261 * pykickstart/data.py: Finish removing monitor information.
1262 * pykickstart/writer.py: Clean up output quoting a bit.
1264 2005-12-12 Chris Lumens <clumens@redhat.com>
1266 * pykickstart/data.py: Remove monitor information from xconfig.
1267 * pykickstart/parser.py: Remove monitor configuration from xconfig,
1268 move --noprobe option to monitor keyword.
1269 * pykickstart/writer.py: Likewise.
1271 2005-12-08 Chris Lumens <clumens@redhat.com>
1273 * pykickstart/data.py: Support bytesPerInode on RAID
1274 (Curtis Doty <Curtis at GreenKey.net> #175288).
1275 * pykickstart/parser.py: Likewise.
1276 * pykickstart/writer.py: Likewise.
1278 2005-11-03 Chris Lumens <clumens@redhat.com>
1280 * pykickstart.spec: Bump version.
1282 * pykickstart/data.py: Default to SELINUX_ENFORCING.
1283 anaconda expects partition sizes to start at None as --size=0 --grow
1284 is an acceptable combination (#172378).
1286 * pykickstart/parser.py: Don't call shlex.split on anything inside a
1289 2005-11-01 Chris Lumens <clumens@redhat.com>
1291 * pykickstart.spec: Bump version.
1293 * pykickstart/parser.py (KickstartHandlers.doVnc): --connect is not
1294 required as it may be provided to anaconda on the command line
1296 (KickstartHandlers.doNetwork): --onboot takes no options.
1297 * pykickstart/writer.py (doFirewall): Remove extra spaces. Write out
1298 --<service> options if ports are set.
1300 2005-10-28 Chris Lumens <clumens@redhat.com>
1302 * pykickstart/writer.py (KickstartWriter.doClearPart): Fix --all
1305 2005-10-28 Chris Lumens <clumens@redhat.com>
1307 * pykickstart.spec: Bump version.
1309 * docs/programmers-guide: Add documentation for error reporting.
1310 * pykickstart/parser.py: Add --resolvedeps and --includedeps as
1311 deprecated options to %packages. Pass line number to handlePackageHdr
1312 and handleScriptHdr.
1314 2005-10-24 Chris Lumens <clumens@redhat.com>
1316 * pykickstart.spec: Bump version.
1318 * pykickstart/parser.py: Report the line number on exceptions.
1319 * validator/ksvalidator: Added a stand-alone program to validate
1322 2005-10-19 Chris Lumens <clumens@redhat.com>
1324 * pykickstart.spec: Bump version.
1326 2005-10-18 Chris Lumens <clumens@redhat.com>
1328 * pykickstart/parser.py: Correct deprecated attribute so warnings are
1329 thrown when a deprecated option is seen, not when it's defined.
1331 2005-10-17 Chris Lumens <clumens@redhat.com>
1333 * docs/programmers-guide: Added documentation for extending and
1334 programming with pykickstart.
1336 2005-10-13 Chris Lumens <clumens@redhat.com>
1338 * pykickstart.spec: Correct python lib directory on 64-bit archs
1339 (#170621). Bump build.
1341 2005-10-07 Chris Lumens <clumens@redhat.com>
1343 * pykickstart/constants.py: Add types for scripts.
1344 * pykickstart/data.py: Collapse scripts into a single list.
1345 * pykickstart/parser.py: Likewise. Also, fix script printing.
1346 * pykickstart/writer.py: Likewise. Also, rename class to
1349 2005-10-06 Chris Lumens <clumens@redhat.com>
1351 * pykickstart/parser.py (DeprecatedOption): Add a "deprecated"
1352 attribute so options can be marked as such.
1353 (KickstartHandlers): Change how deprecated commands are printed. Add
1354 --card back to the xconfig command as a deprecated option.
1356 2005-10-05 Chris Lumens <clumens@redhat.com>
1358 * pykickstart/data.py: Rename classes to be consistent with the rest
1359 of the module. Add default bytesPerInode to partition objects.
1361 2005-10-05 Chris Lumens <clumens@redhat.com>
1363 * Imported contents from anaconda.