July 21, 201015 yr I will update this OP based on tread discussions. OK, using WeboTech's enhanced Slackware package .tgz, the install process at boot time will be a simple installpkg.... that's simple enough. Consider for now, an enhanced .tgz is sitting there in /boot/packages. Now the system boots, and the Package Manager was loaded from /boot/extra. Package Manager now starts looking in /boot/packages ... what will it do? We need standards for: - determining if the package is disabled/enabled (I like .disabled) - determining dependencies (unRAID version, RAM, array info, and installed packages) (I like an .ini file, but could use the slackware dependencies file, but I've never relied on it and I'm not sure other devs do either)) - acting on dependencies (recursive calls) - logging activities - checking for upgrades? (info to do it from the .ini? I think I would not DO an upgrade, but just log the fact or provide some notification an upgrade is out there). The PM is not involved in event handling... it simply makes sure the proper event scripts/symlinks are put in the folders for the proper events when it initializes packages at bootup. Comments?
July 21, 201015 yr Is it really the package managers job to process stop events and distribute them to installed packages? Yes. The package manager has several jobs: - assist in getting packages onto the server, and updating them when needed (can be done manually for now) - install the packages at server boot (respecting disabled flags, etc) - run the event scripts for the packages If unRAID traversed a directory when events happen, then packages could hook themselves into the event processing.... but that requires unRAID to do processing, and we didn't like that. Instead, we expect unRAID to just call one script for the event. The "smarts" will be in that script, and the package manager will hook into it. At least that's the way I understand the discussion so far. >>> - run the event scripts for the packages Not on a normal basis. Only if that package has defined events and it is being re-installed via the front end. I actually thought the event definitions were pointers to scripts that would be installed in respective event directories. Sort of like how redhats chkconfig sets up the symlinks according to the chkconfig tool. My thought is the package manager manages packages, but it's up to the package to manage itself. global enable and disable is a boot time operand that each of the callouts checks for and determines if it should run. package enable/disable is via the package manager and if it is disabled it will never install anything to the event directories. emhttp's role is to run one script, with an argument upon event. The event script's role is to check global enable/disable status. If enabled, traverse through the event directory and run respective scripts. A package event should not be in those directories if it has been disabled via the package manager. the boot,start,stop,shut values in .ini should define what scripts as part of this package get placed into the respective event directory. There probably needs to be a set of digits to control the order. I keep considering the basic svsV way of installing events into the /etc/rc.d tree. i.e. [root@underlord rc.d]# find . -type d | sort ./init.d ./rc0.d ./rc1.d ./rc2.d ./rc3.d ./rc4.d ./rc5.d ./rc6.d The difference is we have named events. I would not want a package manager involved here. It's involvement is in install/uninstall. execution/triggering is via emhttp callouts. Design/defintion by the developer. Now if you really wanted the package manager to hook into these scripts. I'm ok with it, but I do not want to use it that way.
July 21, 201015 yr Author I started a new thread specific to event handling. http://lime-technology.com/forum/index.php?topic=7101.0 Lets keep this tread for discussing how a package manager processes the packages it finds in /boot/packages when the system boots.
May 3, 201115 yr How's the progress on this package manager? Would love a un/official package manager that isn't bundled into unMenu or anything else. It should be the one single package that is installed first, and any other plugins installed using the PM.
Archived
This topic is now archived and is closed to further replies.