Author SHA1 Message Date
lw-everestlinux f029628842 Update 'src/glacier.conf' 2023-02-01 16:50:36 -05:00
lw-everestlinux a11e8330c0 Merge pull request 'Update 'src/glacier'' (#6) from lw-everestlinux-patch-1 into main
Reviewed-on: EverestLinux/glacier#6
2023-02-01 16:48:02 -05:00
lw-everestlinux df51893d22 Update 'src/glacier' 2023-02-01 16:47:48 -05:00
lw-everestlinux 13cb96df04 Merge pull request 'fix integrity check not being installed correctly' (#2) from unstable into main
Reviewed-on: EverestLinux/glacier#2
2023-01-27 10:28:55 -05:00
lw-everestlinux bd07427378 fix integrity check not being installed correctly 2023-01-27 10:27:23 -05:00
lw-everestlinux 4e84af0217 Merge pull request 'Merge unstable with main' (#1) from unstable into main
Reviewed-on: EverestLinux/glacier#1
2023-01-27 09:04:57 -05:00
lw-everestlinux b0d28489e9 add progress bar to tar 2023-01-27 09:03:47 -05:00
Liam Waldron d43995befa Glacier v 3.2.2 - New option: -li/local-install 2023-01-20 11:30:31 -05:00
Liam Waldron 8a9641be67 glacier-mkimg 0.0.1-rc2 2023-01-10 10:35:49 -05:00
Liam Waldron 9381aecd34 glacier-mkimg v0.0.1-rc1 2023-01-06 16:54:26 -05:00
lw-everestlinux 0da359f81b Clarify licensing 2023-01-03 08:48:10 -05:00
lw-everestlinux 1b94d281a6 Fix integrity checking 2022-12-12 19:30:53 -05:00
lw-everestlinux 974fe1f618 Fix build system 2022-12-09 10:51:47 -05:00
lw-everestlinux fa1162a88c Remove python dependency 2022-12-09 10:41:22 -05:00
lw-everestlinux a2b3ad34d4 Glacier v3.2.1 - Toggle integrity checking 2022-12-08 09:07:57 -05:00
lw-everestlinux 346b351ad0 Add tool for creating Everest images 2022-12-01 09:29:12 -05:00
lw-everestlinux 3b4c6f33cf Glacier v3.2.0 - Changes to package removal 2022-11-21 20:11:04 -05:00
lw-everestlinux f09d6d45ea Minor bug fixes 2022-11-08 09:03:07 -05:00
lw-everestlinux 5531e98595 Minor fixes in output 2022-11-08 08:45:19 -05:00
lw-everestlinux 0c342167f8 Minor bug fixes 2022-11-04 14:08:55 -04:00
lw-everestlinux 657cbd5e78 Minor bug fixes 2022-11-04 14:06:32 -04:00
lw-everestlinux 96a1c55008 Minor bug fixes in cleanup 2022-11-04 14:03:31 -04:00
lw-everestlinux 64e58daf40 v3.1.1 - Improved error handling and new build system 2022-11-03 12:36:39 -04:00
lw-everestlinux 1c62bd5b19 v3.1.1 - Improved error handling 2022-11-03 12:29:31 -04:00
lw-everestlinux d419e95f1c Update README 2022-11-03 08:52:55 -04:00
lw-everestlinux bc7b8df2e5 Glacier v3.1.0 - Integrity checking 2022-11-02 10:44:23 -04:00
lw-everestlinux 7705ecfb8a Glacier v3.1.0 - Integrity checking 2022-11-02 10:43:35 -04:00
lw-everestlinux 677d414a28 minor changes to help message 2022-10-28 13:44:43 -04:00
lw-everestlinux de2725a475 minor changes 2022-10-27 08:17:29 -04:00
lw-everestlinux f6fce7323d Glacier v3.0.1 - Post-operation hooks added 2022-10-26 12:14:23 -04:00
lw-everestlinux 65c2ad8146 Glacier v3.0.0 2022-10-25 16:38:18 -04:00
lw-everestlinux 2be842a411 Temporarily rolled back integrity checking 2022-09-06 13:57:54 -04:00
lw-everestlinux 5688b4753d v2.3.0 - package integrity checking 2022-09-06 13:54:31 -04:00
lw-everestlinux b5c28dd802 v2.3.0 - Package integrity checking 2022-09-06 12:44:28 -04:00
lw-everestlinux 0807a13286 v2.3.0 - Package integrity checking 2022-09-06 12:34:32 -04:00
lw-everestlinux 22e368c5fa Glacier v2.2.3 - Improved help message output 2022-08-26 18:50:39 -04:00
lw-everestlinux 3c4919cf0c Glacier v2.2.3 - Made the help message look nice and pretty 2022-08-26 18:45:25 -04:00
lw-everestlinux ebe5e3930e Add tarball for ELIF installation (actually fixed this time unlike last time) 2022-08-26 18:30:08 -04:00
lw-everestlinux 9c529d1ab2 Add 'REPORTING.md' 2022-08-17 16:19:07 -04:00
lw-everestlinux 3b3d5ab369 Add tarball for ELIF installation (fixed version) 2022-08-17 16:03:18 -04:00
lw-everestlinux 8c1f892e2c Add tarball for ELIF script 2022-08-17 15:50:09 -04:00
lw-everestlinux e117737527 Update 'install/INSTALL-GLACIER.sh' 2022-08-08 22:17:53 -04:00
lw-everestlinux 69a5f0444a Update 'README.md' 2022-08-08 22:09:41 -04:00
lw-everestlinux fd6e494314 Glacier v2.2.2 - minor bug fixes 2022-07-26 14:03:14 -04:00
lw-everestlinux 4d65c0fb9e Update 'scripts/glacier' 2022-07-23 16:55:18 -04:00
lw-everestlinux 57505be3a2 Update 'scripts/glacier' 2022-07-23 16:52:21 -04:00
lw-everestlinux 0f94ed93b6 Update 'scripts/glacier' 2022-07-23 16:46:54 -04:00
lw-everestlinux eeac5ed390 Update 'scripts/glacier' 2022-07-23 16:46:28 -04:00
lw-everestlinux b5faa209f2 v2.2.1 - Added new option: --showDebugInfo 2022-07-23 16:44:30 -04:00
lw-everestlinux 1682faa871 Update 'scripts/glacier' 2022-07-23 13:00:43 -04:00
lw-everestlinux aa0c1ff1ac Update 'scripts/glacier' 2022-07-23 12:57:54 -04:00
lw-everestlinux 863d361e98 Update 'README.md' 2022-07-14 14:42:49 -04:00
lw-everestlinux a09bbcaa6b Glacier v2.2 - Customizable download backend 2022-07-14 14:40:08 -04:00
lw-everestlinux 1e2e514b49 Update 'install/INSTALL-GLACIER.sh' 2022-06-24 18:00:09 -04:00
lw-everestlinux d5122b918b Update 'README.md' 2022-06-21 18:15:51 -04:00
lw-everestlinux cfd90804fe Update 'README.md' 2022-06-21 18:15:28 -04:00
lw-everestlinux 8749f46706 Update 'scripts/glacier.conf' 2022-06-21 18:14:13 -04:00
everest 5beabdbca4 Update README.md 2022-06-16 14:56:04 +00:00
everest faf8fe7ec8 Update glacier 2022-06-16 14:52:38 +00:00
everest efada985df Update glacier 2022-06-16 14:51:15 +00:00
everest 73daf1bfbb Update README.md 2022-06-13 17:24:11 +00:00
everest d751e25f59 Update glacier 2022-06-10 14:07:03 +00:00
everest 343a7c1285 Update glacier 2022-06-10 14:06:21 +00:00
everest a80d75b5ef Update glacier 2022-06-10 14:03:44 +00:00
everest f123f98fd6 Update README.md 2022-06-10 13:00:53 +00:00
everest 0b645bd629 Update glacier 2022-06-10 12:58:44 +00:00
everest 17cdc140bb Update glacier.conf 2022-06-10 12:55:32 +00:00
everest fdc4014672 Update README.md 2022-06-10 12:54:40 +00:00
everest 749b77dcd8 Update glacier 2022-06-09 14:05:35 +00:00
everest b4749dc30b Update glacier 2022-06-08 16:37:32 +00:00
everest 975ad4fcd2 Update glacier 2022-06-08 16:36:52 +00:00
everest de61a35eef Update glacier 2022-06-08 12:57:46 +00:00
everest 7caa78f3dd Update glacier 2022-06-08 12:54:50 +00:00
everest 089fe7d668 Update README.md 2022-06-08 12:54:36 +00:00
everest 2b062b9a3d Update glacier 2022-06-08 12:54:10 +00:00
everest b6aa112bd1 Update glacier 2022-06-08 12:01:20 +00:00
everest 5fe0e37d68 Update glacier 2022-06-08 11:56:31 +00:00
everest e7ae67d256 Update glacier 2022-06-07 14:43:25 +00:00
everest 34327f5d08 Update README.md 2022-06-06 17:13:26 +00:00
everest 014a8c82a9 Update hooks.sh 2022-06-06 14:59:08 +00:00
everest 983f98d1a0 Update glacier 2022-06-03 12:57:22 +00:00
everest 752ff88e76 Update glacier 2022-06-02 14:44:50 +00:00
everest b53666a47d Update glacier 2022-06-01 15:34:41 +00:00
everest 49475014da Update glacier 2022-06-01 15:32:04 +00:00
everest 2df34b663d Update README.md 2022-06-01 14:03:43 +00:00
everest 16657923ad Update README.md 2022-05-31 17:54:00 +00:00
everest 5336379812 Add files via upload 2022-05-31 13:20:51 +00:00
everest 683626ed85 Delete hooks.sh 2022-05-31 13:20:35 +00:00
everest 88d836f4ec Delete glacier.conf 2022-05-31 13:20:29 +00:00
everest b8dbfec436 Delete README.md 2022-05-31 13:20:22 +00:00
everest 91bd0a6806 Delete LICENSE 2022-05-31 13:20:14 +00:00
everest 8ef2dd8bf7 Delete scripts directory 2022-05-31 13:20:03 +00:00
everest 8118597e51 Delete install directory 2022-05-31 13:19:54 +00:00
everest 0c8862f7b0 Update README.md 2022-05-31 13:13:56 +00:00
everest 40ee42ce9b Update README.md 2022-05-27 18:20:06 +00:00
everest b2e8ec0b9e Update glacier-help.sh 2022-05-27 18:18:40 +00:00
everest de0f023009 Update README.md 2022-05-27 18:18:03 +00:00
everest 1af0eeccb1 Update glacier-remove.sh 2022-05-27 18:11:14 +00:00
everest c14ef72f62 Update glacier-update.sh 2022-05-27 18:10:27 +00:00
everest 797f942301 Update glacier-remove.sh 2022-05-27 18:10:12 +00:00
everest f5b99b1efe Update glacier-cache-clear.sh 2022-05-27 18:09:40 +00:00
everest f9fe4831e5 Update glacier-cache-install.sh 2022-05-27 18:09:12 +00:00
everest 58ad767e30 Update glacier-cache.sh 2022-05-27 18:08:54 +00:00
everest d38cf63cd1 Update glacier-install.sh 2022-05-27 18:07:04 +00:00
everest f6742f5a3e Update INSTALL-GLACIER.sh 2022-05-27 18:06:39 +00:00
everest 33d1d962b7 Create hooks.sh 2022-05-27 18:05:41 +00:00
everest 7e505404a6 Update README.md 2022-05-17 18:07:26 +00:00
everest 12cfa49d20 Update README.md 2022-05-17 14:14:28 +00:00
everest 110c8fcd21 Update README.md 2022-05-10 12:23:59 +00:00
everest f3778f7ea4 Update glacier-help.sh 2022-05-10 12:22:01 +00:00
everest 9e9f705fa3 Update glacier-cache.sh 2022-05-06 14:02:35 +00:00
everest ed024fdab0 Update glacier-update.sh 2022-05-06 14:02:09 +00:00
everest e0ce15a616 Update glacier-remove.sh 2022-05-06 14:01:47 +00:00
everest bcf274a714 Update glacier-install.sh 2022-05-06 14:01:25 +00:00
everest a82e25c980 Update glacier-help.sh 2022-05-06 11:51:19 +00:00
everest 2f21ad528f Update glacier-help.sh 2022-05-05 14:23:09 +00:00
everest 47f2dddd46 Update WGET-INSTALL.sh 2022-05-05 14:11:26 +00:00
everest 94154b0bf2 Delete multirepo-test 2022-05-04 14:50:52 +00:00
everest 09b3305b1b Update README.md 2022-05-03 21:25:48 +00:00
everest 0628947fcc Update glacier-cache-clear.sh 2022-05-03 21:25:04 +00:00
everest 637b4b50d1 Update glacier-cache.sh 2022-05-03 21:24:20 +00:00
everest 7deb3bbb60 Update glacier-update.sh 2022-05-03 21:23:53 +00:00
everest 114757443d Update glacier-remove.sh 2022-05-03 21:23:35 +00:00
everest a4627aa1ed Update glacier-install.sh 2022-05-03 20:46:49 +00:00
everest 9c8c686bf3 Add files via upload 2022-05-03 20:41:48 +00:00
everest c67ea416d3 Update glacier.conf 2022-05-03 20:41:17 +00:00
everest 167bfce674 Update glacier.conf 2022-05-03 17:30:23 +00:00
everest 1188467cd0 Update glacier-cache.sh 2022-05-03 16:54:09 +00:00
everest 6048a99fb2 Update glacier-update.sh 2022-05-03 15:40:50 +00:00
everest bdf412eab6 Update glacier-remove.sh 2022-05-03 15:39:18 +00:00
everest 0e616b6771 Update glacier-install.sh 2022-05-03 15:37:28 +00:00
everest 12bb41baae Update README.md 2022-05-03 15:33:27 +00:00
everest 37b2d829e3 Update glacier-help.sh 2022-05-02 16:53:21 +00:00
everest dd017d57d1 Update glacier-help.sh 2022-05-02 16:51:51 +00:00
everest c83c6a6cbc Update glacier-cache-clear.sh 2022-05-02 16:43:14 +00:00
everest 81b2247840 Update glacier-cache-install.sh 2022-05-02 16:42:39 +00:00
everest 3eaa78fc18 Update glacier-cache.sh 2022-05-02 16:42:08 +00:00
everest 9739ea56af Update glacier-query.sh 2022-05-02 16:41:49 +00:00
everest b134177b9e Update glacier-remove.sh 2022-05-02 16:41:34 +00:00
everest 4085450712 Update glacier-update.sh 2022-05-02 16:41:19 +00:00
everest b555f13f71 Update glacier-install.sh 2022-05-02 16:40:57 +00:00
everest af551c95ee Update README.md 2022-04-29 14:33:56 +00:00
everest 41191edda5 Update glacier-install.sh 2022-04-26 13:57:10 +00:00
everest 489f11e718 Update INSTALL-GLACIER.sh 2022-04-20 19:47:13 +00:00
everest 3101ad6d6e Update README.md 2022-04-20 19:44:53 +00:00
everest f65684c0fd Update glacier-query.sh 2022-04-20 19:44:06 +00:00
everest 143aa68687 Update glacier.conf 2022-04-20 19:41:19 +00:00
everest 1b446e7096 Update glacier-cache-clear.sh 2022-04-20 19:40:25 +00:00
everest 6b3ee3f6e5 Update glacier-cache-install.sh 2022-04-20 19:39:04 +00:00
everest b1ba7830a7 Update glacier-cache.sh 2022-04-20 19:36:05 +00:00
everest d64f208f1a Update glacier-update.sh 2022-04-20 19:31:16 +00:00
everest 61e3c1b9a3 Update glacier-update.sh 2022-04-20 19:30:40 +00:00
everest 4f92bbebcc Update glacier-remove.sh 2022-04-20 19:22:39 +00:00
everest b70d0070d0 Update glacier-install.sh 2022-04-20 19:13:05 +00:00
everest 40c11082bf Update README.md 2022-04-20 19:11:47 +00:00
everest 3d5c4e0cf3 Update glacier-install.sh 2022-04-20 19:10:13 +00:00
everest 6f2576170e Update glacier-install.sh 2022-04-20 19:05:26 +00:00
everest 65662a51e7 Update glacier-install.sh 2022-04-20 19:03:59 +00:00
everest 37cccd709b Update glacier-install.sh 2022-04-20 19:00:52 +00:00
everest 6c0a7ded21 Update glacier-install.sh 2022-04-20 19:00:36 +00:00
everest 1ff803c044 Update glacier-install.sh 2022-04-19 17:44:36 -04:00
everest 18cd53cbce Update glacier-install.sh 2022-04-19 21:20:32 +00:00
everest 480e8fe243 Update README.md 2022-04-13 14:34:02 +00:00
everest 7384bb3126 Update glacier-cache.sh 2022-04-12 20:46:59 +00:00
everest 4a6010ac0e Update glacier-update.sh 2022-04-12 20:46:13 +00:00
everest 6b2e9c9167 Update glacier-remove.sh 2022-04-12 20:43:51 +00:00
everest a9c50a2c69 Update glacier-install.sh 2022-04-12 20:41:35 +00:00
everest c122f5c616 Update glacier-install.sh 2022-04-12 20:39:37 +00:00
everest d3b7c2585a Update INSTALL-GLACIER.sh 2022-04-12 20:31:56 +00:00
everest a720c23349 Update INSTALL-GLACIER.sh 2022-04-12 16:44:06 +00:00
everest-linux 11ac289950 0.7rc 2022-04-12 16:42:14 +00:00
everest-linux e55679d379 0.7rc 2022-04-12 16:38:01 +00:00
everest ecae5c90ad Create WGET-INSTALL.sh 2022-04-08 16:51:33 +00:00
everest 3fc83bc766 Update glacier-update.sh 2022-04-08 16:02:42 +00:00
everest bac21d1925 Update glacier-remove.sh 2022-04-08 15:58:23 +00:00
everest 0b2d3e0e2f Update glacier-remove.sh 2022-04-05 15:08:08 +00:00
everest cdfba90742 Update glacier-cache-install.sh 2022-04-05 15:06:40 +00:00
everest de9dbf0918 Update glacier-query.sh 2022-04-05 15:05:07 +00:00
everest 66c7e0beb8 Update glacier-update.sh 2022-04-05 15:03:30 +00:00
everest c2355528c4 Update glacier-install.sh 2022-04-05 15:02:18 +00:00
everest ce6904a236 Update README.md 2022-04-05 15:00:49 +00:00
everest 241e1f543e Update UNINSTALL-GLACIER.sh 2022-04-05 13:49:32 +00:00
everest dbfa201253 Update INSTALL-GLACIER.sh 2022-04-05 13:47:19 +00:00
everest a8c1675e14 Update README.md 2022-03-31 13:10:53 +00:00
everest d545cef36d Update README.md 2022-03-30 12:45:08 +00:00
everest fea857a8e5 Update README.md 2022-03-30 12:34:29 +00:00
everest afeddfdeda Update glacier-cache-clear.sh 2022-03-29 16:19:26 +00:00
everest f27646242a Update glacier-cache-install.sh 2022-03-29 11:48:00 +00:00
everest f8ef09df29 Update glacier-cache.sh 2022-03-28 21:25:24 +00:00
everest 1c498e9553 Update INSTALL-GLACIER.sh 2022-03-28 21:21:53 +00:00
everest ea3ea66f2d Update glacier-help.sh 2022-03-28 21:18:44 +00:00
everest dfc44a179a Update README.md 2022-03-28 21:12:37 +00:00
everest b40e3e55cf Create glacier-cache-clear.sh 2022-03-28 21:11:21 +00:00
everest 0d6b9fcbc0 Create glacier-cache-install.sh 2022-03-28 21:09:56 +00:00
everest 85c3169139 Update glacier-update.sh 2022-03-28 21:04:33 +00:00
everest 5597383b6c Update glacier-install.sh 2022-03-28 21:03:37 +00:00
everest 1b7f0699e3 Create glacier-cache.sh 2022-03-28 21:03:16 +00:00
everest 3643b20cc1 Update UNINSTALL-GLACIER.sh 2022-03-28 20:53:09 +00:00
everest 5b451429ff Update INSTALL-GLACIER.sh 2022-03-28 20:50:37 +00:00
everest 99d6b8a9e4 Update README.md 2022-03-28 15:40:00 +00:00
everest 3dc076e7cd Update README.md 2022-03-28 15:39:34 +00:00
everest 89c8a66edf Update README.md 2022-03-28 15:28:14 +00:00
everest 5c3c31b70d Update glacier-remove.sh 2022-03-28 15:22:02 +00:00
everest 59cbc4c4b4 Update glacier-update.sh 2022-03-28 15:18:37 +00:00
everest 999da41b24 Update glacier-install.sh 2022-03-24 13:47:51 +00:00
everest d13c54df8d Update glacier-install.sh 2022-03-24 13:46:14 +00:00
everest 3532e3c0cd Update glacier-install.sh 2022-03-24 13:41:39 +00:00
everest 4c742b675d Update glacier-install.sh 2022-03-24 13:40:21 +00:00
everest 2f0161baac Update INSTALL-GLACIER.sh 2022-03-24 13:38:32 +00:00
everest 8d61a9b07e Update glacier-install.sh 2022-03-24 13:37:45 +00:00
everest ecfefffd87 Update README.md 2022-03-23 18:14:31 +00:00
everest 2c0dde990b Update README.md 2022-03-17 13:17:20 +00:00
everest 3668844cb6 Update README.md 2022-03-16 23:32:33 +00:00
everest 002ad51ee8 Update glacier-install.sh 2022-03-16 23:22:21 +00:00
everest 1f76be2199 Update glacier-install.sh 2022-03-16 23:20:22 +00:00
everest 544f1e00f1 Update glacier-install.sh 2022-03-16 23:18:09 +00:00
everest aab61f1bde Update glacier-install.sh 2022-03-16 23:15:22 +00:00
everest 65dc8a31ef Update README.md 2022-03-11 15:15:53 -05:00
everest 0b3d502f37 Update README.md 2022-03-11 15:15:27 -05:00
everest 3d753bcec3 Update README.md 2022-03-10 17:36:20 +00:00
everest 1ffb79e849 Update glacier-query.sh 2022-03-10 17:29:47 +00:00
everest d7bb7320a0 Update glacier-update.sh 2022-03-10 17:29:06 +00:00
everest a9f125a2ab Update glacier-remove.sh 2022-03-10 17:27:51 +00:00
everest 8a21e53041 Update glacier-install.sh 2022-03-10 17:23:12 +00:00
everest 2d466f47cb Update glacier-install.sh 2022-03-10 17:19:01 +00:00
everest 0311d859c9 Update UNINSTALL-GLACIER.sh 2022-03-10 17:09:10 +00:00
everest 554bf6724f Update UNINSTALL-GLACIER.sh 2022-03-10 16:54:52 +00:00
everest e3162699c0 Update UNINSTALL-GLACIER.sh 2022-03-09 22:42:58 +00:00
everest 5ab3b73ec0 Update UPDATE-GLACIER.sh 2022-03-09 22:42:35 +00:00
everest 25ae7889bb Update INSTALL-GLACIER.sh 2022-03-09 22:41:54 +00:00
everest f76856aa1d Create UNINSTALL-GLACIER.sh 2022-03-09 22:40:37 +00:00
everest f18c602dab Create UPDATE-GLACIER.sh 2022-03-09 22:39:53 +00:00
everest a3cc13e0ef release 0.1rc 2022-03-09 22:01:26 +00:00
everest 41b095a399 Delete glacier-install.sh 2022-03-09 22:00:09 +00:00
everest f49c641245 Add files via upload 2022-03-09 13:54:58 +00:00
everest 0c8967c637 Delete glacier-install.sh 2022-03-09 13:54:46 +00:00
everest cc1e89bf51 Add files via upload 2022-03-09 13:52:14 +00:00
everest 98406ad3b5 Delete glacier-install.sh 2022-03-09 13:49:49 +00:00
everest f23b755981 Add files via upload 2022-03-09 01:32:41 +00:00
everest cc916a54ed Delete glacier-install.sh 2022-03-09 01:32:28 +00:00
15 changed files with 1459 additions and 6 deletions

No files matched your search

View File
File renamed without changes.
+95
View File
@@ -0,0 +1,95 @@
+-----------------+
| [*] Glacier [*] |
+-----------------+
Manage packages on an Everest Linux system
+-----------------------+
| [?] About Glacier [?] |
+-----------------------+
Glacier's main goal is to combine the power of
source based packaging with the simplicity of
binary based packaging.
Glacier downloads source code from
https://git.everestlinux.org/EverestLinux/glacier-pkgs
and compiles it locally on your system.
+----------------------+
| [!] Dependencies [!] |
+----------------------+
Glacier requires the following programs to function:
- sh
- wget/curl (any program that can download files)
- tar
- make
- a c compiler (tested with gcc, although others should work)
- python (for integrity checking)
+----------------------------+
| [🠗] Installing Glacier [🠗] |
+----------------------------+
Obtain the source code:
$ git clone https://git.everestlinux.org/EverestLinux/glacier
$ cd glacier
Copy install.conf.def to install.conf
$ mv install.conf.def install.conf
Make necessary adjustments to install.conf, then run
build.sh as root.
# ./build.sh install # for first time installations
# ./build.sh update # for existing installations
+-----------------+
| [>_] Usage [>_] |
+-----------------+
# glacier install/-f
# glacier update/-u
# glacier remove/-x
$ glacier query/-q
# glacier cache/-c
# glacier cache-install/-ci
# glacier cache-clear/-cc
$ glacier --debuginfo
$ glacier -h/--help
$ glacier -v/--version
+------+
| News |
+------+
- 11/3/22 - Changing how packages are uninstalled
In Glacier's current state, it needs to download the package archive in order to remove it.
This is highly inefficient and presents its own risks.
In an upcoming update, the removal script will be retained on the system.
This method will be space efficient because:
a) Instruction scripts are mere kilobytes
b) For larger scripts, you will have the option of compressing them.
This feature is expected around 3.2.0.
+-----------+
| Licensing |
+-----------+
(C) 2021-2022 Everest Developers
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program.
If not, see <https://www.gnu.org/licenses/>.
-6
View File
@@ -1,6 +0,0 @@
# Glacier
Glacier is the package manager developed for Everest Linux. It automatically fetches a tarball, unzips it, and compiles it.
For Glacier to work properly, it needs the following directories to be made:
`/usr/local/lib/glacier/packages`
+72
View File
@@ -0,0 +1,72 @@
#!/bin/sh
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "must be run as root\n"
exit 1
fi
WORKING_DIR=$(pwd)
SRC_DIR=$(pwd)/../src
printf "parsing install.conf\n"
source $WORKING_DIR/install.conf
if [ "$?" != 0 ]; then
printf "install.conf not found\n"
exit 1
fi
case $1 in
install)
printf "installing executable\n"
mv -v $SRC_DIR/glacier $PREFIX/bin
if [ "$?" != 0 ]; then
mv -v $SRC_DIR/glacier $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead\n"
fi
$CC $SRC_DIR/int-check/main.c -o glacier-integrity-check
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX/bin
if [ "$?" != 0 ]; then
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead.\n"
fi
printf "installing configuration files\n"
mv -v $SRC_DIR/glacier.conf $CONFDIR
if [ "$?" != 0 ]; then
printf "$CONFDIR does not exist\n"
printf "this can be corrected by running:\n"
printf "# mkdir -v -pv $CONFDIR\n"
exit 1
fi
mkdir -v /opt/glacier
mkdir -v /opt/glacier/workspace
mkdir -v /var/log/glacier
mkdir -v /var/cache/glacier
mkdir -v /etc/glacier
mkdir -v /etc/glacier/pkginfo
mv -v $SRC_DIR/hooks $CONFDIR/glacier
mv -v $SRC_DIR/post-hooks $CONFDIR/glacier
mv -v $SRC_DIR/pre-hooks $CONFDIR/glacier
mv -v $SRC_DIR/hooks.sh $CONFDIR/glacier
mv -v $SRC_DIR/make.conf $CONFDIR
mv -v $SRC_DIR/glacier-integrity-check $PREFIX/bin
if [ "$?" != "0" ]; then
mv -v $SRC_DIR/glacier-integrity-check $PREFIX
printf "directory $PREFIX/bin does not exist, moving to $PREFIX instead\n"
fi
printf "finished installation\n"
exit 0
;;
update)
printf "updating executable\n"
rm -v $PREFIX/bin/glacier || rm -v $PREFIX/glacier
rm -v $PREFIX/bin/glacier-integrity-check || rm -v $PREFIX/glacier-integrity-check
mv -v $SRC_DIR/glacier $PREFIX/bin || mv -v $SRC_DIR/glacier $PREFIX
$CC $SRC_DIR/int-check/main.c -O2 -fstack-protector-strong -o $SRC_DIR/int-check/glacier-integrity-check
mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX/bin || mv -v $SRC_DIR/int-check/glacier-integrity-check $PREFIX
printf "finished updating\n"
exit 0
esac
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
# install.conf
# Installation prefix
# On Everest, this should be /usr, because /bin, /sbin, and /lib are all symlinks to /usr
PREFIX="/usr"
# System config directory
# On almost all systems, this should be /etc
CONFDIR="/etc"
# C Compiler to use
CC="gcc"
Executable
+490
View File
@@ -0,0 +1,490 @@
#!/bin/sh
# Glacier - manage installed packages on a Linux system
#
# This file is part of Glacier.
#
# Glacier is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# Glacier is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
. /etc/glacier/hooks
get_pkg() {
printf "$blue[ i ]$reset Downloading archive for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.tar.gz
done
find $2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package '$2' not found.\n"
exit 1
fi
printf "$blue[ i ]$reset Downloading checksum for package '$2'...\n"
for r in ${ALLOWED_REPOS[@]}; do
$GLACIER_DOWNLOAD_BACKEND $GREPO/${r}/$2.checksum
done
find $2.checksum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package checksum not found.\n"
exit 1
fi
}
int_check() {
if [ "$GLACIER_DO_INT_CHECK" = "true" ]; then
printf "$blue[ i ]$reset Checking package integrity...\n"
mv *.checksum local_sum
sha256sum *.tar.gz > pkg_sum
/usr/bin/glacier-integrity-check local_sum pkg_sum
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Integrity check failed.\n"
exit 1
fi
printf "$green[ $check ]$reset Integrity check passed.\n"
else
printf "$yellow[ ! ]$reset Skipping integrity check...\n"
fi
}
unpack_pkg() {
printf "$blue[ i ]$reset Unpacking $2.tar.gz...\n"
mkdir $2 && mv $2.tar.gz $2 && cd $2
pv $2.tar.gz | tar -xz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Could not unpack $2.tar.gz.\n"
cd .. && rm -rf $2
exit 1
fi
}
installpkg() {
printf "$blue[ i ]$reset Installing $2...\n"
sleep 1
chmod +x *
./INSTALL.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
mv $2-pkginfo.json /etc/glacier/pkginfo
}
updatepkg() {
printf "$blue[ i ]$reset Updating $2...\n"
sleep 1
chmod +x *
./UPDATE.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
}
removepkg() {
printf "$blue[ i ]$reset Removing $2...\n"
sleep 1
chmod +x *
/etc/glacier/pkginfo/$2.remove
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to remove $2.\n"
cd .. && rm -rf $2
exit 1
fi
rm /var/log/glacier/$2.timestamp
rm /etc/glacier/pkginfo/$2-pkginfo.json
}
installpkg_from_cache() {
printf "$blue[ i ]$reset Installing $2 from cache...\n"
sleep 1
cd /var/cache/glacier && cp $2.tar.gz /tmp && cd /tmp
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package does not exist in cache.\n"
exit 1
fi
unpack_pkg
install_pkg
}
clear_cache() {
printf "$blue[ i ]$reset Clearing cache...\n"
sleep 1
cd /var/cache/glacier && rm -rvf *
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Some items could not be cleared.\n"
exit 1
fi
}
#
# Show Glacier debugging info
#
debug_info() {
printf "$blue>> Glacier v3.3.0$reset\n"
printf ">> Checking for valid download backend...\n"
whereis wget
whereis curl
whereis aria2c
printf ">> Checking which download backend is in use...\n"
echo $GLACIER_DOWNLOAD_BACKEND
printf ">> Checking if all Glacier files are present...\n"
whereis glacier glacier.conf make.conf
ls /var/log | grep glacier
ls /var/cache | grep glacier
printf ">> If any files are missing, Glacier will not behave properly.\n"
printf ">> Checking if terminal can output unicode symbols...\n"
printf "$check\n"
printf "$error\n"
printf "$warning\n"
printf "$question\n"
printf "$red Red.$reset\n"
printf "$green Green.$reset\n"
printf "$yellow Yellow.$reset\n"
printf "$blue Blue.$reset\n"
printf "NOTE: If you use a custom colorscheme, colors will not match.\n"
printf ">> Checking if repositories are valid...\n"
echo $GREPO1
echo $GREPO2
echo $GREPO3
echo $GREPO4
echo $GREPO5
echo $GREPO6
echo $GREPO7
echo $GREPO8
printf ">> Checking which shell is in use...\n"
which $SHELL
printf "NOTE: If you use zsh, a percentage symbol may appear after some lines.\n"
printf ">> Gathered debug information.\n"
printf ">> To save this information to a file, run:\n"
printf ">> $ glacier --debuginfo > glacier.debug\n"
}
#
# Parses JSON from pkginfo files and outputs it
#
query() {
printf "$blue[ i ]$reset Showing information for package '$2'.\n"
printf "$blue>> Package name:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_name
printf "$blue>> Package version:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_version
printf "$blue>> Package description:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_description
printf "$blue>> Source tree size:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .src_tree_size
printf "$blue>> Size of installed files:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .exec_size
printf "$blue>> License:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .license
printf "$blue>> Installation date:$reset " && cat /var/log/glacier/$2.timestamp
}
#
# Will either keep removal script, update it with a new one, or delete it alltogether
#
cleanup_keep_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_update_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_del_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
#
# Execute pre and posr hooks from files
#
pre_hooks() {
source /etc/glacier/hooks
}
pre_op_hooks() {
printf "$blue[ i ]$reset Executing pre-operation hooks...\n"
/etc/glacier/pre-hooks
}
post_hooks() {
printf "$blue[ i ]$reset Executing post-operation hooks...\n"
/etc/glacier/post-hooks
}
search_for_local_pkg() {
printf "$blue[ i ]$reset Searching working directory for package $2...\n"
find $2.tar.gz
if [ "$?" != 0 ]; then
printf "$red[ $error ]$reset Package $2 not found.\n"
exit 1
fi
}
case $1 in
-h|--help)
printf "$blue[ * ] Glacier - Manage installed packages on the system$reset\n"
printf "usage: glacier [-f] [-u] [-x] [-q] [-c] [-ci] [-cc] [-li] [--debuginfo]\n"
printf "\n"
printf "$blue=== Information ===$reset\n"
printf "glacier {-h/--help} - Show this message and exit\n"
printf "glacier {-v/--version} - Show the version and exit\n"
printf "\n"
printf "$blue=== Operations ===$reset\n"
printf "glacier {-f/install} - Install a new package\n"
printf "glacier {-u/update} - Update an installed package\n"
printf "glacier {-x/remove} - Remove an installed package\n"
printf "glacier {-q/query} - Query an installed package\n"
printf "glacier {-c/cache} - Download a package to the cache\n"
printf "glacier {-ci/cache-install} - Install a package from the cache\n"
printf "glacier {-cc/cache-clear} - Clear the cache\n"
printf "glacier {-li/local-install} - Install a package from a local directory\n"
printf "\n"
printf "$blue=== Debugging ===$reset\n"
printf "glacier {--debuginfo} - Show debugging information\n"
printf "\n"
printf "$blue=== Licensing ===$reset\n"
printf "This program is free software: you can redistribute it and/or modify it\n"
printf "under the terms of the GNU General Public License as published by the\n"
printf "Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n"
exit 0
;;
-v|--version)
printf "${blue}Glacier v3.3.0${reset}\n"
exit 0
;;
-f|install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-u|update)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Updating package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
updatepkg "$@"
post_hooks "$@"
cleanup_update_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-x|remove)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Removing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
removepkg "$@"
post_hooks "$@"
cleanup_del_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-q|query)
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
query "$@"
exit 0
;;
-c|cache)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Caching package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
printf "\n"
get_pkg "$@"
int_check "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-ci|cache-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2' from cache.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
mv $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-cc|cache-clear)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
clear_cache "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
;;
-li|local-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Failed to commit to transaction - permission denied. Are you root?\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
search_for_local_pkg "$@"
printf "$blue[ i ]$reset Installing package '$2' from local file.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cp $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "$red[ $error ]$reset Aborting.\n"
exit 1
fi
;;
--debuginfo)
debug_info "$@"
exit 0
;;
-*|--*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
esac
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
+185
View File
@@ -0,0 +1,185 @@
#!/bin/sh
# glacier-mkimg - Generate a root filesystem image
#
# This file is part of Glacier.
#
# Glacier is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# Glacier is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
am_i_root() {
printf ">> Checking if user is root...\n"
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf ">> glacier-mkimg must be run as root.\n"
exit 1
fi
}
info() {
printf ">> Building root filesystem image with the following settings:\n"
printf "Image build location: /opt/everest\n"
printf "Packages to be installed:\n"
printf " - system-toolchain-bin\n"
printf " - busybox-base-bin\n"
printf " - glacier-base-bin\n"
printf " - make-base-bin\n"
}
init-env() {
mkdir -v /opt/everest
mkdir -v /opt/everest/{sources,toolchain,targetfs}
cd /opt/everest
}
get_skel() {
printf ">> Creating directory layout in /opt/everest...\n"
ROOT=/opt/everest/targetfs
mkdir -v $ROOT/{boot,dev,etc,home,mnt,opt,proc,root,srv,sys,tmp,var}
mkdir -v $ROOT/usr
mkdir -v $ROOT/usr/{bin,sbin,include,lib,lib64,libexec,local,sbin,share,src}
mkdir -v $ROOT/var/{cache,lib,local,lock,log,opt,run,spool,tmp,www}
mkdir -v $ROOT/var/cache/glacier
mkdir -v $ROOT/var/log/glacier
mkdir -v $ROOT/etc/glacier
mkdir -v $ROOT/etc/glacier/pkginfo
ln -sv $ROOT/usr/bin $ROOT/bin
ln -sv $ROOT/usr/lib $ROOT/lib
lv -sv $ROOT/usr/sbin $ROOT/sbin
ln -sv $ROOT/usr/lib64 $ROOT/lib64
printf ">> Finished.\n"
exit 0
}
prepare_for_pkg() {
printf ">> Preparing for package installation...\n"
glacier -c system-toolchain-bin
glacier -c busybox-base-bin
glacier -c glacier-base-bin
glacier -c make-base-bin
printf ">> Done.\n"
exit 0
}
install_pkg() {
printf ">> Installing packages...\n"
glacier -ci system-toolchain-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci busybox-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci glacier-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
glacier -ci make-base-bin
if [ "$?" != "0" ]; then
exit 1
fi
}
warn_about_cache() {
printf ">> WARNING: The cache was used for installing packages to the target.\n"
printf ">> It is recommended to run the following command to clean the cache:\n"
printf ">> glacier -cc\n"
exit 0
}
change_ownership() {
printf ">> Ensuring file ownership is correct...\n"
chown -Rv root:root /opt/everest/targetfs
chgrp -v 13 /opt/everest/targetfs/var/log/lastlog
printf ">> Done.\n"
}
create_img() {
printf ">> Creating filesystem image...\n"
install -dv /opt/everest/build
cd /opt/everest/targetfs
tar -cvf /opt/everest/build/everestlinux-RELEASE-img.tar *
zstd /opt/everest/build/everestlinux-RELEASE-img.tar
rm /opt/everest/build/everestlinux-${EVEREST_RELEASE}-img.tar
printf ">> Done.\n"
}
finish() {
printf ">> Build has finished.\n"
printf ">> Filesystem image is located in the following directory:\n"
printf ">> /opt/everest/build\n"
}
showhelp_big() {
printf "glacier-mkimg - easily compile an Everest Linux image\n"
printf "usage - glacier-mkimg [-h] [init] [-t] [-s] [-p] [-o] [-i]\n"
printf "\n"
printf "glacier-mkimg {init} initialize the environment\n"
printf "glacier-mkimg {-s} only download filesystem skeleton\n"
printf "glacier-mkimg {-p} only install packages to /opt/everest\n"
printf "glacier-mkimg {-o} only change ownership of /opt/everest\n"
printf "glacier-mkimg {-i} only create image\n"
printf "\n"
printf "If no option is passed, glacier-mkimg will perform all tasks\n"
printf "glacier-mkimg init must be run before anything else is done\n"
printf "\n"
printf "This program is free software.\n"
printf "See the GNU GPL version 3 for details.\n"
exit 0
}
case $1 in
-h|--help)
showhelp_big
;;
init)
am_i_root "$@"
init_env "$@"
exit 0
;;
-s)
get_skel "$@"
exit 0
;;
-p)
prepare_for_pkg "$@"
install_pkg "$@"
warn_about_cache "$@"
exit 0
;;
-o)
change_ownership "$@"
exit 0
;;
-i)
create_img "$@"
exit 0
;;
-*)
printf "usage: glacier-mkimg [-h] [init] [-s] [-p] [-o] [-i]\n"
exit 1
;;
*)
get_skel "$@"
prepare_for_pkg "$@"
install_pkg "$@"
warn_about_cache "$@"
change_ownership "$@"
create_img "$@"
finish
exit 0
;;
esac
printf "usage: glacier-mkimg [-h] [init] [-s] [-p] [-o] [-i]\n"
exit 1
+37
View File
@@ -0,0 +1,37 @@
# /etc/glacier.conf
# The settings stored in this file will be loaded when Glacier is called
# For more information on each of these options, see https://git.everest
#
# Repository Glacier will download programs from
export GREPO="https://git.everestlinux.org/EverestLinux/glacier-pkgs/raw/branch/main"
export ALLOWED_REPOS=("world" "galaxy" "universe" "multiverse")
# Define colors and unicode symbols to be used
export red="\033[1;31m"
export green="\033[1;32m"
export yellow="\033[1;33m"
export blue="\033[1;34m"
export reset="\033[m"
export check="\xE2\x9C\x93"
export error="\xE2\x9C\x95"
export warning="\x21"
export question="\x3F"
# Which backend Glacier will use to download files
# Selecting more than one backend will cause breakage
export GLACIER_DOWNLOAD_BACKEND="wget --quiet --show-progress"
#export GLACIER_DOWNLOAD_BACKEND="curl --output $2.tar.gz"
#export GLACIER_DOWNLOAD_BACKEND="aria2c"
# Enable/disable package integrity checking
# WARNING: Keeping this enabled is strongly recommended.
# This option ensures all packages from the repositories are genuine.
export GLACIER_DO_INT_CHECK="true"
#
# end /etc/glacier.conf
#
+430
View File
@@ -0,0 +1,430 @@
#!/bin/sh
# Glacier - manage installed packages on a Linux system
# This program is free software - you can distribute it
# under the terms of the GNU General Public License v3.0,
# or at your option, any later version.
# A copy of the GNU General Public License should have been
# recieved along with this program. If not, see
# <https://www.gnu.org/licenses>
source $(pwd)/glacier.conf
get_pkg() {
printf "$blue[ i ]$reset Downloading archive for package '$2'...\n"
$GLACIER_DOWNLOAD_BACKEND $GREPO1/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO2/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO3/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO4/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO5/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO6/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO7/$2.tar.gz || $GLACIER_DOWNLOAD_BACKEND $GREPO8/$2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package '$2' not found.\n"
exit 1
fi
$GLACIER_DOWNLOAD_BACKEND $GREPO1/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO2/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO3/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO4/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO5/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO6/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO7/$2.checksum || $GLACIER_DOWNLOAD_BACKEND $GREPO8/$2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package checksum not found.\n"
exit 1
fi
}
int_check() {
if [ "$GLACIER_DO_INT_CHECK" = "true" ]; then
printf "$blue[ i ]$reset Checking package integrity...\n"
/usr/bin/glacier-integrity-check
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Integrity check failed.\n"
exit 1
fi
printf "$green[ $check ]$reset Integrity check passed.\n"
else
printf "$yellow[ ! ]$reset Skipping integrity check...\n"
fi
}
unpack_pkg() {
printf "$blue[ i ]$reset Unpacking $2.tar.gz...\n"
mkdir $2 && mv $2.tar.gz $2 && cd $2
tar -xf $2.tar.gz
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Could not unpack $2.tar.gz.\n"
cd .. && rm -rf $2
exit 1
fi
}
installpkg() {
printf "$blue[ i ]$reset Installing $2...\n"
sleep 1
chmod +x *
./INSTALL.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
mv $2-pkginfo.json /etc/glacier/pkginfo
}
updatepkg() {
printf "$blue[ i ]$reset Updating $2...\n"
sleep 1
chmod +x *
./UPDATE.sh
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to update $2.\n"
cd .. && rm -rf $2
exit 1
fi
./$2.ts.sh
}
removepkg() {
printf "$blue[ i ]$reset Removing $2...\n"
sleep 1
chmod +x *
/etc/glacier/pkginfo/$2.remove
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Failed to remove $2.\n"
cd .. && rm -rf $2
exit 1
fi
rm /var/log/glacier/$2.timestamp
rm /etc/glacier/pkginfo/$2-pkginfo.json
}
installpkg_from_cache() {
printf "$blue[ i ]$reset Installing $2 from cache...\n"
sleep 1
cd /var/cache/glacier && cp $2.tar.gz /tmp && cd /tmp
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Package does not exist in cache.\n"
exit 1
fi
unpack_pkg
install_pkg
}
clear_cache() {
printf "$blue[ i ]$reset Clearing cache...\n"
sleep 1
cd /var/cache/glacier && rm -rvf *
if [ "$?" != "0" ]; then
printf "$red[ $error ]$reset Some items could not be cleared.\n"
exit 1
fi
}
#
# Show Glacier debugging info
#
debug_info() {
printf "$blue>> Glacier v3.2.0$reset\n"
printf ">> Checking for valid download backend...\n"
whereis wget
whereis curl
whereis aria2c
printf ">> Checking which download backend is in use...\n"
echo $GLACIER_DOWNLOAD_BACKEND
printf ">> Checking if all Glacier files are present...\n"
whereis glacier glacier.conf make.conf
ls /var/log | grep glacier
ls /var/cache | grep glacier
printf ">> If any files are missing, Glacier will not behave properly.\n"
printf ">> Checking if terminal can output unicode symbols...\n"
printf "$check\n"
printf "$error\n"
printf "$warning\n"
printf "$question\n"
printf "$red Red.$reset\n"
printf "$green Green.$reset\n"
printf "$yellow Yellow.$reset\n"
printf "$blue Blue.$reset\n"
printf "NOTE: If you use a custom colorscheme, colors will not match.\n"
printf ">> Checking if repositories are valid...\n"
echo $GREPO1
echo $GREPO2
echo $GREPO3
echo $GREPO4
echo $GREPO5
echo $GREPO6
echo $GREPO7
echo $GREPO8
printf ">> Checking which shell is in use...\n"
which $SHELL
printf "NOTE: If you use zsh, a percentage symbol may appear after some lines.\n"
printf ">> Gathered debug information.\n"
printf ">> To save this information to a file, run:\n"
printf ">> $ glacier --debuginfo > glacier.debug\n"
}
#
# Parses JSON from pkginfo files and outputs it
#
query() {
printf "$blue[ i ]$reset Showing information for package '$2'.\n"
printf "$blue>> Package name:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_name
printf "$blue>> Package version:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_version
printf "$blue>> Package description:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .package_description
printf "$blue>> Source tree size:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .src_tree_size
printf "$blue>> Size of installed files:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .exec_size
printf "$blue>> License:$reset " && cat /etc/glacier/pkginfo/$2-pkginfo.json | jq .license
printf "$blue>> Installation date:$reset " && cat /var/log/glacier/$2.timestamp
}
#
# Will either keep removal script, update it with a new one, or delete it alltogether
#
cleanup_keep_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_update_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
mv REMOVE.sh /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
cleanup_del_rm () {
printf "$blue[ i ]$reset Cleaning up...\n"
rm /etc/glacier/pkginfo/$2.remove
cd .. && rm -rf *.checksum *.tar.* $2
}
#
# Execute pre and posr hooks from files
#
pre_hooks() {
source /etc/glacier/hooks
}
pre_op_hooks() {
printf "$blue[ i ]$reset Executing pre-operation hooks...\n"
/etc/glacier/pre-hooks
}
post_hooks () {
printf "$blue[ i ]$reset Executing post-operation hooks...\n"
/etc/glacier/post-hooks
}
case $1 in
-h|--help)
printf "$blue[ * ] Glacier - Manage installed packages on the system$reset\n"
printf "usage: glacier [-f] [-u] [-x] [-q] [-c] [-ci] [-cc] [--debuginfo]\n"
printf "\n"
printf "$blue=== Information ===$reset\n"
printf "glacier {-h/--help} - Show this message and exit\n"
printf "glacier {-v/--version} - Show the version and exit\n"
printf "\n"
printf "$blue=== Operations ===$reset\n"
printf "glacier {-f/install} - Install a new package\n"
printf "glacier {-u/update} - Update an installed package\n"
printf "glacier {-x/remove} - Remove an installed package\n"
printf "glacier {-q/query} - Query an installed package\n"
printf "glacier {-c/cache} - Download a package to the cache\n"
printf "glacier {-ci/cache-install} - Install a package from the cache\n"
printf "glacier {-cc/cache-clear} - Clear the cache\n"
printf "\n"
printf "$blue=== Debugging ===$reset\n"
printf "glacier {--debuginfo} - Show debugging information\n"
printf "\n"
printf "$blue=== Licensing ===$reset\n"
printf "This program is free software: you can redistribute it and/or modify it\n"
printf "under the terms of the GNU General Public License as published by the\n"
printf "Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n"
exit 0
;;
-v|--version)
printf "${blue}Glacier v3.2.0${reset}\n"
exit 0
;;
-f|install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-u|update)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Updating package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
get_pkg "$@"
int_check "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
updatepkg "$@"
post_hooks "$@"
cleanup_update_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-x|remove)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Removing package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
removepkg "$@"
post_hooks "$@"
cleanup_del_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-q|query)
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
query "$@"
exit 0
;;
-c|cache)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Caching package '$2'.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
printf "\n"
get_pkg "$@"
int_check "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-ci|cache-install)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
if [ "$2" == "" ]; then
printf "$red[ $error ]$reset No package name was supplied.\n"
exit 1
fi
printf "$blue[ i ]$reset Installing package '$2' from cache.\n"
read -p "$(printf "$blue[ ? ]$reset Proceed with this operation? (y/n) ")" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
cd /var/cache/glacier
mv $2.tar.gz /opt/glacier/workspace
cd /opt/glacier/workspace
printf "\n"
pre_hooks "$@"
unpack_pkg "$@"
pre_op_hooks "$@"
installpkg "$@"
post_hooks "$@"
cleanup_keep_rm "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
elif [[ $REPLY =~ ^[Nn]$ ]]; then
printf "\n"
printf "${red}[ $error ]${reset} Aborting.\n"
exit 1
fi
;;
-cc|cache-clear)
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
printf "$red[ $error ]$reset Please run Glacier as root.\n"
exit 1
fi
clear_cache "$@"
printf "$green[ $check ]$reset Operation completed.\n"
exit 0
;;
--debuginfo)
debug_info "$@"
exit 0
;;
-*|--*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
*)
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
;;
esac
printf "$red[ $error ]$reset Unknown option, see 'glacier -h' for usage.\n"
exit 1
Executable
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
# Glacier Preloading Hooks
source /etc/make.conf
source /etc/glacier.conf
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
# This file is meant to maintain legacy support.
printf "This package uses the legacy hooks file (/etc/glacier/hooks.sh).\n"
printf ">>> This is not an error. <<<\n"
printf "If you are not the maintainer of this package, there is no manual intervention required.\n"
printf "If you are the maintainer of this package, please update your usrbuild.sh, usrupdate.sh, and usrremove.sh accordingly.\n"
source /etc/glacier/hooks && /etc/glacier/hooks
+72
View File
@@ -0,0 +1,72 @@
/* Copyright (C) 2022-2023 Everest Linux Developers
This file is part Glacier.
Glacier is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
Glacier is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Glacier. If not, see <https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include<string.h>
int main(int argc, char *argv[]) {
FILE *fp1;
FILE *fp2;
int cnt1 = 0;
int cnt2 = 0;
int flg = 0;
if (argc < 3) {
printf("not enough arguments\n");
return -1;
}
fp1 = fopen(argv[1],"r");
if (fp1 == NULL) {
printf("\n%s cannot open file \n",argv[1]);
return -1;
}
fseek(fp1,0,SEEK_END);
cnt1 = ftell(fp1);
fp2 = fopen(argv[2],"r");
if (fp2 == NULL) {
printf("\n%s cannot open file \n",argv[2]);
return -1;
}
fseek(fp2,0,SEEK_END);
cnt2 = ftell(fp2);
fseek(fp1,0,SEEK_SET);
fseek(fp2,0,SEEK_SET);
if (cnt1 != cnt2) {
return 1;
} else {
while ( ! feof(fp1)) {
if (fgetc(fp1) != fgetc(fp2)) {
flg = 1;
break;
}
}
if (flg) return 1;
else return 0;
}
fclose(fp1);
fclose(fp2);
return 0;
}
Executable
+40
View File
@@ -0,0 +1,40 @@
#
# make.conf - optimizations and flags for make
#
# Number of parallel makejobs. Change this number to your CPUs cores + threads.
# Example: 6 cores + 6 threads = 12
MAKEFLAGS="-j1"
# Build and compile flags for C and C++ programs.
# Disable these if packages are breaking.
# Using too many optimizations may break packages.
CFLAGS="-02"
CXXFLAGS="${CFLAGS}"
# Flag which treats all warnings as errors.
# Not recommended, as many packages with large codebases will refuse to compile.
#CFLAGS="-Werror"
# Prefix for installed packages. Most packages will follow this.
# Some packages may have their own prefix. For instance, appimages will install to /usr/share/appimages, and be symlinked to /bin.
PREFIX="/usr"
#PREFIX="/usr/local"
# CPU architecture. Most users will use x86_64.
# This setting should manually set itself. If it doesn't, set it manually.
# Note that some packages will not compile for other architectures.
# Example: ARCH="x86_64"
ARCH="${MACHTYPE}"
# Triplet for the target system.
# This should only be used if cross compiling.
# For reference, Everest's triplet is x86_64-linux-musl.
#TARGET="x86_64-linux-musl"
#TARGET="x86_64-pc-linux-gnu"
#TARGET="i386-linux-musl"
#TARGET="i386-pc-linux-gnu"
#
# end make.conf
#
Executable
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
# Glacier post-operation hooks
printf "No hooks to be executed.\n"
exit 1
Executable
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
# Hooks to be executed before performing an operation on a package
printf "No hooks to be executed.\n"
exit 0