diff --git a/community-mod/rolling/2bwm-git/build b/community-mod/stable/2bwm/build similarity index 100% rename from community-mod/rolling/2bwm-git/build rename to community-mod/stable/2bwm/build diff --git a/community-mod/rolling/2bwm-git/checksums b/community-mod/stable/2bwm/checksums similarity index 100% rename from community-mod/rolling/2bwm-git/checksums rename to community-mod/stable/2bwm/checksums diff --git a/community-mod/rolling/2bwm-git/depends b/community-mod/stable/2bwm/depends similarity index 100% rename from community-mod/rolling/2bwm-git/depends rename to community-mod/stable/2bwm/depends diff --git a/community-mod/rolling/2bwm-git/sources b/community-mod/stable/2bwm/sources similarity index 100% rename from community-mod/rolling/2bwm-git/sources rename to community-mod/stable/2bwm/sources diff --git a/community-mod/rolling/2bwm-git/version b/community-mod/stable/2bwm/version similarity index 100% rename from community-mod/rolling/2bwm-git/version rename to community-mod/stable/2bwm/version diff --git a/community-mod/rolling/aria2-git/build b/community-mod/stable/aria2/build similarity index 100% rename from community-mod/rolling/aria2-git/build rename to community-mod/stable/aria2/build diff --git a/community-mod/rolling/aria2-git/checksums b/community-mod/stable/aria2/checksums similarity index 100% rename from community-mod/rolling/aria2-git/checksums rename to community-mod/stable/aria2/checksums diff --git a/community-mod/rolling/aria2-git/depends b/community-mod/stable/aria2/depends similarity index 100% rename from community-mod/rolling/aria2-git/depends rename to community-mod/stable/aria2/depends diff --git a/community-mod/rolling/aria2-git/sources b/community-mod/stable/aria2/sources similarity index 100% rename from community-mod/rolling/aria2-git/sources rename to community-mod/stable/aria2/sources diff --git a/community-mod/rolling/aria2-git/version b/community-mod/stable/aria2/version similarity index 100% rename from community-mod/rolling/aria2-git/version rename to community-mod/stable/aria2/version diff --git a/community-mod/rolling/axel-git/build b/community-mod/stable/axel/build similarity index 100% rename from community-mod/rolling/axel-git/build rename to community-mod/stable/axel/build diff --git a/community-mod/rolling/axel-git/checksums b/community-mod/stable/axel/checksums similarity index 100% rename from community-mod/rolling/axel-git/checksums rename to community-mod/stable/axel/checksums diff --git a/community-mod/rolling/axel-git/depends b/community-mod/stable/axel/depends similarity index 100% rename from community-mod/rolling/axel-git/depends rename to community-mod/stable/axel/depends diff --git a/community-mod/rolling/axel-git/sources b/community-mod/stable/axel/sources similarity index 100% rename from community-mod/rolling/axel-git/sources rename to community-mod/stable/axel/sources diff --git a/community-mod/rolling/axel-git/version b/community-mod/stable/axel/version similarity index 100% rename from community-mod/rolling/axel-git/version rename to community-mod/stable/axel/version diff --git a/community-mod/rolling/azpainter-git/build b/community-mod/stable/azpainter/build similarity index 100% rename from community-mod/rolling/azpainter-git/build rename to community-mod/stable/azpainter/build diff --git a/community-mod/rolling/azpainter-git/checksums b/community-mod/stable/azpainter/checksums similarity index 100% rename from community-mod/rolling/azpainter-git/checksums rename to community-mod/stable/azpainter/checksums diff --git a/community-mod/rolling/azpainter-git/depends b/community-mod/stable/azpainter/depends similarity index 100% rename from community-mod/rolling/azpainter-git/depends rename to community-mod/stable/azpainter/depends diff --git a/community-mod/rolling/azpainter-git/sources b/community-mod/stable/azpainter/sources similarity index 100% rename from community-mod/rolling/azpainter-git/sources rename to community-mod/stable/azpainter/sources diff --git a/community-mod/rolling/azpainter-git/version b/community-mod/stable/azpainter/version similarity index 100% rename from community-mod/rolling/azpainter-git/version rename to community-mod/stable/azpainter/version diff --git a/community-mod/rolling/berry-git/build b/community-mod/stable/berry/build similarity index 100% rename from community-mod/rolling/berry-git/build rename to community-mod/stable/berry/build diff --git a/community-mod/rolling/berry-git/checksums b/community-mod/stable/berry/checksums similarity index 100% rename from community-mod/rolling/berry-git/checksums rename to community-mod/stable/berry/checksums diff --git a/community-mod/rolling/berry-git/depends b/community-mod/stable/berry/depends similarity index 100% rename from community-mod/rolling/berry-git/depends rename to community-mod/stable/berry/depends diff --git a/community-mod/rolling/berry-git/sources b/community-mod/stable/berry/sources similarity index 100% rename from community-mod/rolling/berry-git/sources rename to community-mod/stable/berry/sources diff --git a/community-mod/rolling/berry-git/version b/community-mod/stable/berry/version similarity index 100% rename from community-mod/rolling/berry-git/version rename to community-mod/stable/berry/version diff --git a/community-mod/rolling/bitfetch-git/build b/community-mod/stable/bitfetch/build similarity index 100% rename from community-mod/rolling/bitfetch-git/build rename to community-mod/stable/bitfetch/build diff --git a/community-mod/rolling/bitfetch-git/checksums b/community-mod/stable/bitfetch/checksums similarity index 100% rename from community-mod/rolling/bitfetch-git/checksums rename to community-mod/stable/bitfetch/checksums diff --git a/community-mod/rolling/bitfetch-git/depends b/community-mod/stable/bitfetch/depends similarity index 100% rename from community-mod/rolling/bitfetch-git/depends rename to community-mod/stable/bitfetch/depends diff --git a/community-mod/rolling/bitfetch-git/sources b/community-mod/stable/bitfetch/sources similarity index 100% rename from community-mod/rolling/bitfetch-git/sources rename to community-mod/stable/bitfetch/sources diff --git a/community-mod/rolling/bitfetch-git/version b/community-mod/stable/bitfetch/version similarity index 100% rename from community-mod/rolling/bitfetch-git/version rename to community-mod/stable/bitfetch/version diff --git a/community-mod/rolling/boehm-gc-git/build b/community-mod/stable/boehm-gc/build similarity index 100% rename from community-mod/rolling/boehm-gc-git/build rename to community-mod/stable/boehm-gc/build diff --git a/community-mod/rolling/boehm-gc-git/checksums b/community-mod/stable/boehm-gc/checksums similarity index 100% rename from community-mod/rolling/boehm-gc-git/checksums rename to community-mod/stable/boehm-gc/checksums diff --git a/community-mod/rolling/boehm-gc-git/sources b/community-mod/stable/boehm-gc/sources similarity index 100% rename from community-mod/rolling/boehm-gc-git/sources rename to community-mod/stable/boehm-gc/sources diff --git a/community-mod/rolling/boehm-gc-git/version b/community-mod/stable/boehm-gc/version similarity index 100% rename from community-mod/rolling/boehm-gc-git/version rename to community-mod/stable/boehm-gc/version diff --git a/community-mod/rolling/brotli-git/build b/community-mod/stable/brotli/build similarity index 100% rename from community-mod/rolling/brotli-git/build rename to community-mod/stable/brotli/build diff --git a/community-mod/rolling/brotli-git/checksums b/community-mod/stable/brotli/checksums similarity index 100% rename from community-mod/rolling/brotli-git/checksums rename to community-mod/stable/brotli/checksums diff --git a/community-mod/rolling/brotli-git/depends b/community-mod/stable/brotli/depends similarity index 100% rename from community-mod/rolling/brotli-git/depends rename to community-mod/stable/brotli/depends diff --git a/community-mod/rolling/brotli-git/sources b/community-mod/stable/brotli/sources similarity index 100% rename from community-mod/rolling/brotli-git/sources rename to community-mod/stable/brotli/sources diff --git a/community-mod/rolling/brotli-git/version b/community-mod/stable/brotli/version similarity index 100% rename from community-mod/rolling/brotli-git/version rename to community-mod/stable/brotli/version diff --git a/community-mod/rolling/brownout-git/build b/community-mod/stable/brownout/build similarity index 100% rename from community-mod/rolling/brownout-git/build rename to community-mod/stable/brownout/build diff --git a/community-mod/rolling/brownout-git/checksums b/community-mod/stable/brownout/checksums similarity index 100% rename from community-mod/rolling/brownout-git/checksums rename to community-mod/stable/brownout/checksums diff --git a/community-mod/rolling/brownout-git/depends b/community-mod/stable/brownout/depends similarity index 100% rename from community-mod/rolling/brownout-git/depends rename to community-mod/stable/brownout/depends diff --git a/community-mod/rolling/brownout-git/sources b/community-mod/stable/brownout/sources similarity index 100% rename from community-mod/rolling/brownout-git/sources rename to community-mod/stable/brownout/sources diff --git a/community-mod/rolling/brownout-git/version b/community-mod/stable/brownout/version similarity index 100% rename from community-mod/rolling/brownout-git/version rename to community-mod/stable/brownout/version diff --git a/community-mod/rolling/bspwm-git/build b/community-mod/stable/bspwm/build similarity index 100% rename from community-mod/rolling/bspwm-git/build rename to community-mod/stable/bspwm/build diff --git a/community-mod/rolling/bspwm-git/checksums b/community-mod/stable/bspwm/checksums similarity index 100% rename from community-mod/rolling/bspwm-git/checksums rename to community-mod/stable/bspwm/checksums diff --git a/community-mod/rolling/bspwm-git/depends b/community-mod/stable/bspwm/depends similarity index 100% rename from community-mod/rolling/bspwm-git/depends rename to community-mod/stable/bspwm/depends diff --git a/community-mod/rolling/bspwm-git/sources b/community-mod/stable/bspwm/sources similarity index 100% rename from community-mod/rolling/bspwm-git/sources rename to community-mod/stable/bspwm/sources diff --git a/community-mod/rolling/bspwm-git/version b/community-mod/stable/bspwm/version similarity index 100% rename from community-mod/rolling/bspwm-git/version rename to community-mod/stable/bspwm/version diff --git a/community-mod/rolling/bubblewrap-git/build b/community-mod/stable/bubblewrap/build similarity index 100% rename from community-mod/rolling/bubblewrap-git/build rename to community-mod/stable/bubblewrap/build diff --git a/community-mod/rolling/bubblewrap-git/checksums b/community-mod/stable/bubblewrap/checksums similarity index 100% rename from community-mod/rolling/bubblewrap-git/checksums rename to community-mod/stable/bubblewrap/checksums diff --git a/community-mod/rolling/bubblewrap-git/depends b/community-mod/stable/bubblewrap/depends similarity index 100% rename from community-mod/rolling/bubblewrap-git/depends rename to community-mod/stable/bubblewrap/depends diff --git a/community-mod/rolling/bubblewrap-git/patches/realpath-workaround.patch b/community-mod/stable/bubblewrap/patches/realpath-workaround.patch similarity index 100% rename from community-mod/rolling/bubblewrap-git/patches/realpath-workaround.patch rename to community-mod/stable/bubblewrap/patches/realpath-workaround.patch diff --git a/community-mod/rolling/bubblewrap-git/sources b/community-mod/stable/bubblewrap/sources similarity index 100% rename from community-mod/rolling/bubblewrap-git/sources rename to community-mod/stable/bubblewrap/sources diff --git a/community-mod/rolling/bubblewrap-git/version b/community-mod/stable/bubblewrap/version similarity index 100% rename from community-mod/rolling/bubblewrap-git/version rename to community-mod/stable/bubblewrap/version diff --git a/community-mod/rolling/cjson-git/build b/community-mod/stable/cjson/build similarity index 100% rename from community-mod/rolling/cjson-git/build rename to community-mod/stable/cjson/build diff --git a/community-mod/rolling/cjson-git/checksums b/community-mod/stable/cjson/checksums similarity index 100% rename from community-mod/rolling/cjson-git/checksums rename to community-mod/stable/cjson/checksums diff --git a/community-mod/rolling/cjson-git/sources b/community-mod/stable/cjson/sources similarity index 100% rename from community-mod/rolling/cjson-git/sources rename to community-mod/stable/cjson/sources diff --git a/community-mod/rolling/cjson-git/version b/community-mod/stable/cjson/version similarity index 100% rename from community-mod/rolling/cjson-git/version rename to community-mod/stable/cjson/version diff --git a/community-mod/rolling/cloc-git/build b/community-mod/stable/cloc/build similarity index 100% rename from community-mod/rolling/cloc-git/build rename to community-mod/stable/cloc/build diff --git a/community-mod/rolling/cloc-git/checksums b/community-mod/stable/cloc/checksums similarity index 100% rename from community-mod/rolling/cloc-git/checksums rename to community-mod/stable/cloc/checksums diff --git a/community-mod/rolling/cloc-git/depends b/community-mod/stable/cloc/depends similarity index 100% rename from community-mod/rolling/cloc-git/depends rename to community-mod/stable/cloc/depends diff --git a/community-mod/rolling/cloc-git/sources b/community-mod/stable/cloc/sources similarity index 100% rename from community-mod/rolling/cloc-git/sources rename to community-mod/stable/cloc/sources diff --git a/community-mod/rolling/cloc-git/version b/community-mod/stable/cloc/version similarity index 100% rename from community-mod/rolling/cloc-git/version rename to community-mod/stable/cloc/version diff --git a/community-mod/rolling/cmus-git/build b/community-mod/stable/cmus/build similarity index 100% rename from community-mod/rolling/cmus-git/build rename to community-mod/stable/cmus/build diff --git a/community-mod/rolling/cmus-git/checksums b/community-mod/stable/cmus/checksums similarity index 100% rename from community-mod/rolling/cmus-git/checksums rename to community-mod/stable/cmus/checksums diff --git a/community-mod/rolling/cmus-git/depends b/community-mod/stable/cmus/depends similarity index 100% rename from community-mod/rolling/cmus-git/depends rename to community-mod/stable/cmus/depends diff --git a/community-mod/rolling/cmus-git/sources b/community-mod/stable/cmus/sources similarity index 100% rename from community-mod/rolling/cmus-git/sources rename to community-mod/stable/cmus/sources diff --git a/community-mod/rolling/cmus-git/version b/community-mod/stable/cmus/version similarity index 100% rename from community-mod/rolling/cmus-git/version rename to community-mod/stable/cmus/version diff --git a/community-mod/rolling/conky-git/build b/community-mod/stable/conky/build similarity index 100% rename from community-mod/rolling/conky-git/build rename to community-mod/stable/conky/build diff --git a/community-mod/rolling/conky-git/checksums b/community-mod/stable/conky/checksums similarity index 100% rename from community-mod/rolling/conky-git/checksums rename to community-mod/stable/conky/checksums diff --git a/community-mod/rolling/conky-git/depends b/community-mod/stable/conky/depends similarity index 100% rename from community-mod/rolling/conky-git/depends rename to community-mod/stable/conky/depends diff --git a/community-mod/rolling/conky-git/sources b/community-mod/stable/conky/sources similarity index 100% rename from community-mod/rolling/conky-git/sources rename to community-mod/stable/conky/sources diff --git a/community-mod/rolling/conky-git/version b/community-mod/stable/conky/version similarity index 100% rename from community-mod/rolling/conky-git/version rename to community-mod/stable/conky/version diff --git a/community-mod/rolling/cyrus-sasl-git/build b/community-mod/stable/cyrus-sasl/build similarity index 100% rename from community-mod/rolling/cyrus-sasl-git/build rename to community-mod/stable/cyrus-sasl/build diff --git a/community-mod/rolling/cyrus-sasl-git/checksums b/community-mod/stable/cyrus-sasl/checksums similarity index 100% rename from community-mod/rolling/cyrus-sasl-git/checksums rename to community-mod/stable/cyrus-sasl/checksums diff --git a/community-mod/rolling/cyrus-sasl-git/depends b/community-mod/stable/cyrus-sasl/depends similarity index 100% rename from community-mod/rolling/cyrus-sasl-git/depends rename to community-mod/stable/cyrus-sasl/depends diff --git a/community-mod/rolling/cyrus-sasl-git/sources b/community-mod/stable/cyrus-sasl/sources similarity index 100% rename from community-mod/rolling/cyrus-sasl-git/sources rename to community-mod/stable/cyrus-sasl/sources diff --git a/community-mod/rolling/cyrus-sasl-git/version b/community-mod/stable/cyrus-sasl/version similarity index 100% rename from community-mod/rolling/cyrus-sasl-git/version rename to community-mod/stable/cyrus-sasl/version diff --git a/community-mod/rolling/darkhttpd-git/build b/community-mod/stable/darkhttpd/build similarity index 100% rename from community-mod/rolling/darkhttpd-git/build rename to community-mod/stable/darkhttpd/build diff --git a/community-mod/rolling/darkhttpd-git/checksums b/community-mod/stable/darkhttpd/checksums similarity index 100% rename from community-mod/rolling/darkhttpd-git/checksums rename to community-mod/stable/darkhttpd/checksums diff --git a/community-mod/rolling/darkhttpd-git/sources b/community-mod/stable/darkhttpd/sources similarity index 100% rename from community-mod/rolling/darkhttpd-git/sources rename to community-mod/stable/darkhttpd/sources diff --git a/community-mod/rolling/darkhttpd-git/version b/community-mod/stable/darkhttpd/version similarity index 100% rename from community-mod/rolling/darkhttpd-git/version rename to community-mod/stable/darkhttpd/version diff --git a/community-mod/rolling/dvtm-git/build b/community-mod/stable/dvtm/build similarity index 100% rename from community-mod/rolling/dvtm-git/build rename to community-mod/stable/dvtm/build diff --git a/community-mod/rolling/dvtm-git/checksums b/community-mod/stable/dvtm/checksums similarity index 100% rename from community-mod/rolling/dvtm-git/checksums rename to community-mod/stable/dvtm/checksums diff --git a/community-mod/rolling/dvtm-git/depends b/community-mod/stable/dvtm/depends similarity index 100% rename from community-mod/rolling/dvtm-git/depends rename to community-mod/stable/dvtm/depends diff --git a/community-mod/rolling/dvtm-git/sources b/community-mod/stable/dvtm/sources similarity index 100% rename from community-mod/rolling/dvtm-git/sources rename to community-mod/stable/dvtm/sources diff --git a/community-mod/rolling/dvtm-git/version b/community-mod/stable/dvtm/version similarity index 100% rename from community-mod/rolling/dvtm-git/version rename to community-mod/stable/dvtm/version diff --git a/community-mod/rolling/es-git/build b/community-mod/stable/es/build similarity index 100% rename from community-mod/rolling/es-git/build rename to community-mod/stable/es/build diff --git a/community-mod/rolling/es-git/checksums b/community-mod/stable/es/checksums similarity index 100% rename from community-mod/rolling/es-git/checksums rename to community-mod/stable/es/checksums diff --git a/community-mod/rolling/es-git/patches/musl.patch b/community-mod/stable/es/patches/musl.patch similarity index 100% rename from community-mod/rolling/es-git/patches/musl.patch rename to community-mod/stable/es/patches/musl.patch diff --git a/community-mod/rolling/es-git/sources b/community-mod/stable/es/sources similarity index 100% rename from community-mod/rolling/es-git/sources rename to community-mod/stable/es/sources diff --git a/community-mod/rolling/es-git/version b/community-mod/stable/es/version similarity index 100% rename from community-mod/rolling/es-git/version rename to community-mod/stable/es/version diff --git a/community-mod/rolling/evtest-git/build b/community-mod/stable/evtest/build similarity index 100% rename from community-mod/rolling/evtest-git/build rename to community-mod/stable/evtest/build diff --git a/community-mod/rolling/evtest-git/checksums b/community-mod/stable/evtest/checksums similarity index 100% rename from community-mod/rolling/evtest-git/checksums rename to community-mod/stable/evtest/checksums diff --git a/community-mod/rolling/evtest-git/sources b/community-mod/stable/evtest/sources similarity index 100% rename from community-mod/rolling/evtest-git/sources rename to community-mod/stable/evtest/sources diff --git a/community-mod/rolling/evtest-git/version b/community-mod/stable/evtest/version similarity index 100% rename from community-mod/rolling/evtest-git/version rename to community-mod/stable/evtest/version diff --git a/community-mod/rolling/exfatprogs-git/build b/community-mod/stable/exfatprogs/build similarity index 100% rename from community-mod/rolling/exfatprogs-git/build rename to community-mod/stable/exfatprogs/build diff --git a/community-mod/rolling/exfatprogs-git/checksums b/community-mod/stable/exfatprogs/checksums similarity index 100% rename from community-mod/rolling/exfatprogs-git/checksums rename to community-mod/stable/exfatprogs/checksums diff --git a/community-mod/rolling/exfatprogs-git/depends b/community-mod/stable/exfatprogs/depends similarity index 100% rename from community-mod/rolling/exfatprogs-git/depends rename to community-mod/stable/exfatprogs/depends diff --git a/community-mod/rolling/exfatprogs-git/sources b/community-mod/stable/exfatprogs/sources similarity index 100% rename from community-mod/rolling/exfatprogs-git/sources rename to community-mod/stable/exfatprogs/sources diff --git a/community-mod/rolling/exfatprogs-git/version b/community-mod/stable/exfatprogs/version similarity index 100% rename from community-mod/rolling/exfatprogs-git/version rename to community-mod/stable/exfatprogs/version diff --git a/community-mod/rolling/extra-cmake-modules-git/build b/community-mod/stable/extra-cmake-modules/build similarity index 100% rename from community-mod/rolling/extra-cmake-modules-git/build rename to community-mod/stable/extra-cmake-modules/build diff --git a/community-mod/rolling/extra-cmake-modules-git/checksums b/community-mod/stable/extra-cmake-modules/checksums similarity index 100% rename from community-mod/rolling/extra-cmake-modules-git/checksums rename to community-mod/stable/extra-cmake-modules/checksums diff --git a/community-mod/rolling/extra-cmake-modules-git/depends b/community-mod/stable/extra-cmake-modules/depends similarity index 100% rename from community-mod/rolling/extra-cmake-modules-git/depends rename to community-mod/stable/extra-cmake-modules/depends diff --git a/community-mod/rolling/extra-cmake-modules-git/sources b/community-mod/stable/extra-cmake-modules/sources similarity index 100% rename from community-mod/rolling/extra-cmake-modules-git/sources rename to community-mod/stable/extra-cmake-modules/sources diff --git a/community-mod/rolling/extra-cmake-modules-git/version b/community-mod/stable/extra-cmake-modules/version similarity index 100% rename from community-mod/rolling/extra-cmake-modules-git/version rename to community-mod/stable/extra-cmake-modules/version diff --git a/community-mod/rolling/flashrom-git/build b/community-mod/stable/flashrom/build similarity index 100% rename from community-mod/rolling/flashrom-git/build rename to community-mod/stable/flashrom/build diff --git a/community-mod/rolling/flashrom-git/checksums b/community-mod/stable/flashrom/checksums similarity index 100% rename from community-mod/rolling/flashrom-git/checksums rename to community-mod/stable/flashrom/checksums diff --git a/community-mod/rolling/flashrom-git/depends b/community-mod/stable/flashrom/depends similarity index 100% rename from community-mod/rolling/flashrom-git/depends rename to community-mod/stable/flashrom/depends diff --git a/community-mod/rolling/flashrom-git/sources b/community-mod/stable/flashrom/sources similarity index 100% rename from community-mod/rolling/flashrom-git/sources rename to community-mod/stable/flashrom/sources diff --git a/community-mod/rolling/flashrom-git/version b/community-mod/stable/flashrom/version similarity index 100% rename from community-mod/rolling/flashrom-git/version rename to community-mod/stable/flashrom/version diff --git a/community-mod/rolling/fmt-git/build b/community-mod/stable/fmt/build similarity index 100% rename from community-mod/rolling/fmt-git/build rename to community-mod/stable/fmt/build diff --git a/community-mod/rolling/fmt-git/checksums b/community-mod/stable/fmt/checksums similarity index 100% rename from community-mod/rolling/fmt-git/checksums rename to community-mod/stable/fmt/checksums diff --git a/community-mod/rolling/fmt-git/sources b/community-mod/stable/fmt/sources similarity index 100% rename from community-mod/rolling/fmt-git/sources rename to community-mod/stable/fmt/sources diff --git a/community-mod/rolling/fmt-git/version b/community-mod/stable/fmt/version similarity index 100% rename from community-mod/rolling/fmt-git/version rename to community-mod/stable/fmt/version diff --git a/community-mod/rolling/fortune-git/build b/community-mod/stable/fortune/build similarity index 100% rename from community-mod/rolling/fortune-git/build rename to community-mod/stable/fortune/build diff --git a/community-mod/rolling/fortune-git/checksums b/community-mod/stable/fortune/checksums similarity index 100% rename from community-mod/rolling/fortune-git/checksums rename to community-mod/stable/fortune/checksums diff --git a/community-mod/rolling/fortune-git/files/kiss b/community-mod/stable/fortune/files/kiss similarity index 100% rename from community-mod/rolling/fortune-git/files/kiss rename to community-mod/stable/fortune/files/kiss diff --git a/community-mod/rolling/fortune-git/sources b/community-mod/stable/fortune/sources similarity index 100% rename from community-mod/rolling/fortune-git/sources rename to community-mod/stable/fortune/sources diff --git a/community-mod/rolling/fortune-git/version b/community-mod/stable/fortune/version similarity index 100% rename from community-mod/rolling/fortune-git/version rename to community-mod/stable/fortune/version diff --git a/community-mod/rolling/fuse-git/build b/community-mod/stable/fuse/build similarity index 100% rename from community-mod/rolling/fuse-git/build rename to community-mod/stable/fuse/build diff --git a/community-mod/rolling/fuse-git/checksums b/community-mod/stable/fuse/checksums similarity index 100% rename from community-mod/rolling/fuse-git/checksums rename to community-mod/stable/fuse/checksums diff --git a/community-mod/rolling/fuse-git/depends b/community-mod/stable/fuse/depends similarity index 100% rename from community-mod/rolling/fuse-git/depends rename to community-mod/stable/fuse/depends diff --git a/community-mod/rolling/fuse-git/sources b/community-mod/stable/fuse/sources similarity index 100% rename from community-mod/rolling/fuse-git/sources rename to community-mod/stable/fuse/sources diff --git a/community-mod/rolling/fuse-git/version b/community-mod/stable/fuse/version similarity index 100% rename from community-mod/rolling/fuse-git/version rename to community-mod/stable/fuse/version diff --git a/community-mod/rolling/fuse2-git/build b/community-mod/stable/fuse2/build similarity index 100% rename from community-mod/rolling/fuse2-git/build rename to community-mod/stable/fuse2/build diff --git a/community-mod/rolling/fuse2-git/checksums b/community-mod/stable/fuse2/checksums similarity index 100% rename from community-mod/rolling/fuse2-git/checksums rename to community-mod/stable/fuse2/checksums diff --git a/community-mod/rolling/fuse2-git/sources b/community-mod/stable/fuse2/sources similarity index 100% rename from community-mod/rolling/fuse2-git/sources rename to community-mod/stable/fuse2/sources diff --git a/community-mod/rolling/fuse2-git/version b/community-mod/stable/fuse2/version similarity index 100% rename from community-mod/rolling/fuse2-git/version rename to community-mod/stable/fuse2/version diff --git a/community-mod/rolling/ghostscript-git/build b/community-mod/stable/ghostscript/build similarity index 100% rename from community-mod/rolling/ghostscript-git/build rename to community-mod/stable/ghostscript/build diff --git a/community-mod/rolling/ghostscript-git/checksums b/community-mod/stable/ghostscript/checksums similarity index 100% rename from community-mod/rolling/ghostscript-git/checksums rename to community-mod/stable/ghostscript/checksums diff --git a/community-mod/rolling/ghostscript-git/sources b/community-mod/stable/ghostscript/sources similarity index 100% rename from community-mod/rolling/ghostscript-git/sources rename to community-mod/stable/ghostscript/sources diff --git a/community-mod/rolling/ghostscript-git/version b/community-mod/stable/ghostscript/version similarity index 100% rename from community-mod/rolling/ghostscript-git/version rename to community-mod/stable/ghostscript/version diff --git a/community-mod/rolling/giblib-git/build b/community-mod/stable/giblib/build similarity index 100% rename from community-mod/rolling/giblib-git/build rename to community-mod/stable/giblib/build diff --git a/community-mod/rolling/giblib-git/checksums b/community-mod/stable/giblib/checksums similarity index 100% rename from community-mod/rolling/giblib-git/checksums rename to community-mod/stable/giblib/checksums diff --git a/community-mod/rolling/giblib-git/depends b/community-mod/stable/giblib/depends similarity index 100% rename from community-mod/rolling/giblib-git/depends rename to community-mod/stable/giblib/depends diff --git a/community-mod/rolling/giblib-git/sources b/community-mod/stable/giblib/sources similarity index 100% rename from community-mod/rolling/giblib-git/sources rename to community-mod/stable/giblib/sources diff --git a/community-mod/rolling/giblib-git/version b/community-mod/stable/giblib/version similarity index 100% rename from community-mod/rolling/giblib-git/version rename to community-mod/stable/giblib/version diff --git a/community-mod/rolling/glew-git/build b/community-mod/stable/glew/build similarity index 100% rename from community-mod/rolling/glew-git/build rename to community-mod/stable/glew/build diff --git a/community-mod/rolling/glew-git/checksums b/community-mod/stable/glew/checksums similarity index 100% rename from community-mod/rolling/glew-git/checksums rename to community-mod/stable/glew/checksums diff --git a/community-mod/rolling/glew-git/depends b/community-mod/stable/glew/depends similarity index 100% rename from community-mod/rolling/glew-git/depends rename to community-mod/stable/glew/depends diff --git a/community-mod/rolling/glew-git/sources b/community-mod/stable/glew/sources similarity index 100% rename from community-mod/rolling/glew-git/sources rename to community-mod/stable/glew/sources diff --git a/community-mod/rolling/glew-git/version b/community-mod/stable/glew/version similarity index 100% rename from community-mod/rolling/glew-git/version rename to community-mod/stable/glew/version diff --git a/community-mod/rolling/glorytun-git/build b/community-mod/stable/glorytun/build similarity index 100% rename from community-mod/rolling/glorytun-git/build rename to community-mod/stable/glorytun/build diff --git a/community-mod/rolling/glorytun-git/checksums b/community-mod/stable/glorytun/checksums similarity index 100% rename from community-mod/rolling/glorytun-git/checksums rename to community-mod/stable/glorytun/checksums diff --git a/community-mod/rolling/glorytun-git/depends b/community-mod/stable/glorytun/depends similarity index 100% rename from community-mod/rolling/glorytun-git/depends rename to community-mod/stable/glorytun/depends diff --git a/community-mod/rolling/glorytun-git/sources b/community-mod/stable/glorytun/sources similarity index 100% rename from community-mod/rolling/glorytun-git/sources rename to community-mod/stable/glorytun/sources diff --git a/community-mod/rolling/glorytun-git/version b/community-mod/stable/glorytun/version similarity index 100% rename from community-mod/rolling/glorytun-git/version rename to community-mod/stable/glorytun/version diff --git a/community-mod/rolling/gumbo-parser-git/build b/community-mod/stable/gumbo-parser/build similarity index 100% rename from community-mod/rolling/gumbo-parser-git/build rename to community-mod/stable/gumbo-parser/build diff --git a/community-mod/rolling/gumbo-parser-git/checksums b/community-mod/stable/gumbo-parser/checksums similarity index 100% rename from community-mod/rolling/gumbo-parser-git/checksums rename to community-mod/stable/gumbo-parser/checksums diff --git a/community-mod/rolling/gumbo-parser-git/sources b/community-mod/stable/gumbo-parser/sources similarity index 100% rename from community-mod/rolling/gumbo-parser-git/sources rename to community-mod/stable/gumbo-parser/sources diff --git a/community-mod/rolling/gumbo-parser-git/version b/community-mod/stable/gumbo-parser/version similarity index 100% rename from community-mod/rolling/gumbo-parser-git/version rename to community-mod/stable/gumbo-parser/version diff --git a/community-mod/rolling/hack-git/build b/community-mod/stable/hack/build similarity index 100% rename from community-mod/rolling/hack-git/build rename to community-mod/stable/hack/build diff --git a/community-mod/rolling/hack-git/checksums b/community-mod/stable/hack/checksums similarity index 100% rename from community-mod/rolling/hack-git/checksums rename to community-mod/stable/hack/checksums diff --git a/community-mod/rolling/hack-git/post-install b/community-mod/stable/hack/post-install similarity index 100% rename from community-mod/rolling/hack-git/post-install rename to community-mod/stable/hack/post-install diff --git a/community-mod/rolling/hack-git/sources b/community-mod/stable/hack/sources similarity index 100% rename from community-mod/rolling/hack-git/sources rename to community-mod/stable/hack/sources diff --git a/community-mod/rolling/hack-git/version b/community-mod/stable/hack/version similarity index 100% rename from community-mod/rolling/hack-git/version rename to community-mod/stable/hack/version diff --git a/community-mod/rolling/harfbuzz-icu-git/build b/community-mod/stable/harfbuzz-icu/build similarity index 100% rename from community-mod/rolling/harfbuzz-icu-git/build rename to community-mod/stable/harfbuzz-icu/build diff --git a/community-mod/rolling/harfbuzz-icu-git/checksums b/community-mod/stable/harfbuzz-icu/checksums similarity index 100% rename from community-mod/rolling/harfbuzz-icu-git/checksums rename to community-mod/stable/harfbuzz-icu/checksums diff --git a/community-mod/rolling/harfbuzz-icu-git/depends b/community-mod/stable/harfbuzz-icu/depends similarity index 100% rename from community-mod/rolling/harfbuzz-icu-git/depends rename to community-mod/stable/harfbuzz-icu/depends diff --git a/community-mod/rolling/harfbuzz-icu-git/sources b/community-mod/stable/harfbuzz-icu/sources similarity index 100% rename from community-mod/rolling/harfbuzz-icu-git/sources rename to community-mod/stable/harfbuzz-icu/sources diff --git a/community-mod/rolling/harfbuzz-icu-git/version b/community-mod/stable/harfbuzz-icu/version similarity index 100% rename from community-mod/rolling/harfbuzz-icu-git/version rename to community-mod/stable/harfbuzz-icu/version diff --git a/community-mod/rolling/herbe-git/build b/community-mod/stable/herbe/build similarity index 100% rename from community-mod/rolling/herbe-git/build rename to community-mod/stable/herbe/build diff --git a/community-mod/rolling/herbe-git/checksums b/community-mod/stable/herbe/checksums similarity index 100% rename from community-mod/rolling/herbe-git/checksums rename to community-mod/stable/herbe/checksums diff --git a/community-mod/rolling/herbe-git/depends b/community-mod/stable/herbe/depends similarity index 100% rename from community-mod/rolling/herbe-git/depends rename to community-mod/stable/herbe/depends diff --git a/community-mod/rolling/herbe-git/sources b/community-mod/stable/herbe/sources similarity index 100% rename from community-mod/rolling/herbe-git/sources rename to community-mod/stable/herbe/sources diff --git a/community-mod/rolling/herbe-git/version b/community-mod/stable/herbe/version similarity index 100% rename from community-mod/rolling/herbe-git/version rename to community-mod/stable/herbe/version diff --git a/community-mod/rolling/hsetroot-git/build b/community-mod/stable/hsetroot/build similarity index 100% rename from community-mod/rolling/hsetroot-git/build rename to community-mod/stable/hsetroot/build diff --git a/community-mod/rolling/hsetroot-git/checksums b/community-mod/stable/hsetroot/checksums similarity index 100% rename from community-mod/rolling/hsetroot-git/checksums rename to community-mod/stable/hsetroot/checksums diff --git a/community-mod/rolling/hsetroot-git/depends b/community-mod/stable/hsetroot/depends similarity index 100% rename from community-mod/rolling/hsetroot-git/depends rename to community-mod/stable/hsetroot/depends diff --git a/community-mod/rolling/hsetroot-git/sources b/community-mod/stable/hsetroot/sources similarity index 100% rename from community-mod/rolling/hsetroot-git/sources rename to community-mod/stable/hsetroot/sources diff --git a/community-mod/rolling/hsetroot-git/version b/community-mod/stable/hsetroot/version similarity index 100% rename from community-mod/rolling/hsetroot-git/version rename to community-mod/stable/hsetroot/version diff --git a/community-mod/rolling/icu-git/build b/community-mod/stable/icu/build similarity index 100% rename from community-mod/rolling/icu-git/build rename to community-mod/stable/icu/build diff --git a/community-mod/rolling/icu-git/checksums b/community-mod/stable/icu/checksums similarity index 100% rename from community-mod/rolling/icu-git/checksums rename to community-mod/stable/icu/checksums diff --git a/community-mod/rolling/icu-git/sources b/community-mod/stable/icu/sources similarity index 100% rename from community-mod/rolling/icu-git/sources rename to community-mod/stable/icu/sources diff --git a/community-mod/rolling/icu-git/version b/community-mod/stable/icu/version similarity index 100% rename from community-mod/rolling/icu-git/version rename to community-mod/stable/icu/version diff --git a/community-mod/rolling/intel-media-driver-git/build b/community-mod/stable/intel-media-driver/build similarity index 100% rename from community-mod/rolling/intel-media-driver-git/build rename to community-mod/stable/intel-media-driver/build diff --git a/community-mod/rolling/intel-media-driver-git/checksums b/community-mod/stable/intel-media-driver/checksums similarity index 100% rename from community-mod/rolling/intel-media-driver-git/checksums rename to community-mod/stable/intel-media-driver/checksums diff --git a/community-mod/rolling/intel-media-driver-git/depends b/community-mod/stable/intel-media-driver/depends similarity index 100% rename from community-mod/rolling/intel-media-driver-git/depends rename to community-mod/stable/intel-media-driver/depends diff --git a/community-mod/rolling/intel-media-driver-git/sources b/community-mod/stable/intel-media-driver/sources similarity index 100% rename from community-mod/rolling/intel-media-driver-git/sources rename to community-mod/stable/intel-media-driver/sources diff --git a/community-mod/rolling/intel-media-driver-git/version b/community-mod/stable/intel-media-driver/version similarity index 100% rename from community-mod/rolling/intel-media-driver-git/version rename to community-mod/stable/intel-media-driver/version diff --git a/community-mod/rolling/ioping-git/build b/community-mod/stable/ioping/build similarity index 100% rename from community-mod/rolling/ioping-git/build rename to community-mod/stable/ioping/build diff --git a/community-mod/rolling/ioping-git/checksums b/community-mod/stable/ioping/checksums similarity index 100% rename from community-mod/rolling/ioping-git/checksums rename to community-mod/stable/ioping/checksums diff --git a/community-mod/rolling/ioping-git/sources b/community-mod/stable/ioping/sources similarity index 100% rename from community-mod/rolling/ioping-git/sources rename to community-mod/stable/ioping/sources diff --git a/community-mod/rolling/ioping-git/version b/community-mod/stable/ioping/version similarity index 100% rename from community-mod/rolling/ioping-git/version rename to community-mod/stable/ioping/version diff --git a/community-mod/rolling/iosevka-nerd-fonts-git/build b/community-mod/stable/iosevka-nerd-fonts/build similarity index 100% rename from community-mod/rolling/iosevka-nerd-fonts-git/build rename to community-mod/stable/iosevka-nerd-fonts/build diff --git a/community-mod/rolling/iosevka-nerd-fonts-git/checksums b/community-mod/stable/iosevka-nerd-fonts/checksums similarity index 100% rename from community-mod/rolling/iosevka-nerd-fonts-git/checksums rename to community-mod/stable/iosevka-nerd-fonts/checksums diff --git a/community-mod/rolling/iosevka-nerd-fonts-git/sources b/community-mod/stable/iosevka-nerd-fonts/sources similarity index 100% rename from community-mod/rolling/iosevka-nerd-fonts-git/sources rename to community-mod/stable/iosevka-nerd-fonts/sources diff --git a/community-mod/rolling/iosevka-nerd-fonts-git/version b/community-mod/stable/iosevka-nerd-fonts/version similarity index 100% rename from community-mod/rolling/iosevka-nerd-fonts-git/version rename to community-mod/stable/iosevka-nerd-fonts/version diff --git a/community-mod/rolling/iputils-git/build b/community-mod/stable/iputils/build similarity index 100% rename from community-mod/rolling/iputils-git/build rename to community-mod/stable/iputils/build diff --git a/community-mod/rolling/iputils-git/checksums b/community-mod/stable/iputils/checksums similarity index 100% rename from community-mod/rolling/iputils-git/checksums rename to community-mod/stable/iputils/checksums diff --git a/community-mod/rolling/iputils-git/depends b/community-mod/stable/iputils/depends similarity index 100% rename from community-mod/rolling/iputils-git/depends rename to community-mod/stable/iputils/depends diff --git a/community-mod/rolling/iputils-git/post-install b/community-mod/stable/iputils/post-install similarity index 100% rename from community-mod/rolling/iputils-git/post-install rename to community-mod/stable/iputils/post-install diff --git a/community-mod/rolling/iputils-git/sources b/community-mod/stable/iputils/sources similarity index 100% rename from community-mod/rolling/iputils-git/sources rename to community-mod/stable/iputils/sources diff --git a/community-mod/rolling/iputils-git/version b/community-mod/stable/iputils/version similarity index 100% rename from community-mod/rolling/iputils-git/version rename to community-mod/stable/iputils/version diff --git a/community-mod/rolling/irssi-git/build b/community-mod/stable/irssi/build similarity index 100% rename from community-mod/rolling/irssi-git/build rename to community-mod/stable/irssi/build diff --git a/community-mod/rolling/irssi-git/checksums b/community-mod/stable/irssi/checksums similarity index 100% rename from community-mod/rolling/irssi-git/checksums rename to community-mod/stable/irssi/checksums diff --git a/community-mod/rolling/irssi-git/depends b/community-mod/stable/irssi/depends similarity index 100% rename from community-mod/rolling/irssi-git/depends rename to community-mod/stable/irssi/depends diff --git a/community-mod/rolling/irssi-git/sources b/community-mod/stable/irssi/sources similarity index 100% rename from community-mod/rolling/irssi-git/sources rename to community-mod/stable/irssi/sources diff --git a/community-mod/rolling/irssi-git/version b/community-mod/stable/irssi/version similarity index 100% rename from community-mod/rolling/irssi-git/version rename to community-mod/stable/irssi/version diff --git a/community-mod/rolling/jbig2dec-git/build b/community-mod/stable/jbig2dec/build similarity index 100% rename from community-mod/rolling/jbig2dec-git/build rename to community-mod/stable/jbig2dec/build diff --git a/community-mod/rolling/jbig2dec-git/checksums b/community-mod/stable/jbig2dec/checksums similarity index 100% rename from community-mod/rolling/jbig2dec-git/checksums rename to community-mod/stable/jbig2dec/checksums diff --git a/community-mod/rolling/jbig2dec-git/depends b/community-mod/stable/jbig2dec/depends similarity index 100% rename from community-mod/rolling/jbig2dec-git/depends rename to community-mod/stable/jbig2dec/depends diff --git a/community-mod/rolling/jbig2dec-git/sources b/community-mod/stable/jbig2dec/sources similarity index 100% rename from community-mod/rolling/jbig2dec-git/sources rename to community-mod/stable/jbig2dec/sources diff --git a/community-mod/rolling/jbig2dec-git/version b/community-mod/stable/jbig2dec/version similarity index 100% rename from community-mod/rolling/jbig2dec-git/version rename to community-mod/stable/jbig2dec/version diff --git a/community-mod/rolling/jq-git/build b/community-mod/stable/jq/build similarity index 100% rename from community-mod/rolling/jq-git/build rename to community-mod/stable/jq/build diff --git a/community-mod/rolling/jq-git/checksums b/community-mod/stable/jq/checksums similarity index 100% rename from community-mod/rolling/jq-git/checksums rename to community-mod/stable/jq/checksums diff --git a/community-mod/rolling/jq-git/sources b/community-mod/stable/jq/sources similarity index 100% rename from community-mod/rolling/jq-git/sources rename to community-mod/stable/jq/sources diff --git a/community-mod/rolling/jq-git/version b/community-mod/stable/jq/version similarity index 100% rename from community-mod/rolling/jq-git/version rename to community-mod/stable/jq/version diff --git a/community-mod/rolling/json-c-git/build b/community-mod/stable/json-c/build similarity index 100% rename from community-mod/rolling/json-c-git/build rename to community-mod/stable/json-c/build diff --git a/community-mod/rolling/json-c-git/checksums b/community-mod/stable/json-c/checksums similarity index 100% rename from community-mod/rolling/json-c-git/checksums rename to community-mod/stable/json-c/checksums diff --git a/community-mod/rolling/json-c-git/depends b/community-mod/stable/json-c/depends similarity index 100% rename from community-mod/rolling/json-c-git/depends rename to community-mod/stable/json-c/depends diff --git a/community-mod/rolling/json-c-git/sources b/community-mod/stable/json-c/sources similarity index 100% rename from community-mod/rolling/json-c-git/sources rename to community-mod/stable/json-c/sources diff --git a/community-mod/rolling/json-c-git/version b/community-mod/stable/json-c/version similarity index 100% rename from community-mod/rolling/json-c-git/version rename to community-mod/stable/json-c/version diff --git a/community-mod/rolling/keyutils-git/build b/community-mod/stable/keyutils/build similarity index 100% rename from community-mod/rolling/keyutils-git/build rename to community-mod/stable/keyutils/build diff --git a/community-mod/rolling/keyutils-git/checksums b/community-mod/stable/keyutils/checksums similarity index 100% rename from community-mod/rolling/keyutils-git/checksums rename to community-mod/stable/keyutils/checksums diff --git a/community-mod/rolling/keyutils-git/sources b/community-mod/stable/keyutils/sources similarity index 100% rename from community-mod/rolling/keyutils-git/sources rename to community-mod/stable/keyutils/sources diff --git a/community-mod/rolling/keyutils-git/version b/community-mod/stable/keyutils/version similarity index 100% rename from community-mod/rolling/keyutils-git/version rename to community-mod/stable/keyutils/version diff --git a/community-mod/rolling/kirc-git/build b/community-mod/stable/kirc/build similarity index 100% rename from community-mod/rolling/kirc-git/build rename to community-mod/stable/kirc/build diff --git a/community-mod/rolling/kirc-git/checksums b/community-mod/stable/kirc/checksums similarity index 100% rename from community-mod/rolling/kirc-git/checksums rename to community-mod/stable/kirc/checksums diff --git a/community-mod/rolling/kirc-git/patches/channel.patch b/community-mod/stable/kirc/patches/channel.patch similarity index 100% rename from community-mod/rolling/kirc-git/patches/channel.patch rename to community-mod/stable/kirc/patches/channel.patch diff --git a/community-mod/rolling/kirc-git/sources b/community-mod/stable/kirc/sources similarity index 100% rename from community-mod/rolling/kirc-git/sources rename to community-mod/stable/kirc/sources diff --git a/community-mod/rolling/kirc-git/version b/community-mod/stable/kirc/version similarity index 100% rename from community-mod/rolling/kirc-git/version rename to community-mod/stable/kirc/version diff --git a/community-mod/rolling/lagrange-git/build b/community-mod/stable/lagrange/build similarity index 100% rename from community-mod/rolling/lagrange-git/build rename to community-mod/stable/lagrange/build diff --git a/community-mod/rolling/lagrange-git/checksums b/community-mod/stable/lagrange/checksums similarity index 100% rename from community-mod/rolling/lagrange-git/checksums rename to community-mod/stable/lagrange/checksums diff --git a/community-mod/rolling/lagrange-git/depends b/community-mod/stable/lagrange/depends similarity index 100% rename from community-mod/rolling/lagrange-git/depends rename to community-mod/stable/lagrange/depends diff --git a/community-mod/rolling/lagrange-git/sources b/community-mod/stable/lagrange/sources similarity index 100% rename from community-mod/rolling/lagrange-git/sources rename to community-mod/stable/lagrange/sources diff --git a/community-mod/rolling/lagrange-git/version b/community-mod/stable/lagrange/version similarity index 100% rename from community-mod/rolling/lagrange-git/version rename to community-mod/stable/lagrange/version diff --git a/community-mod/rolling/lariza-git/build b/community-mod/stable/lariza/build similarity index 100% rename from community-mod/rolling/lariza-git/build rename to community-mod/stable/lariza/build diff --git a/community-mod/rolling/lariza-git/checksums b/community-mod/stable/lariza/checksums similarity index 100% rename from community-mod/rolling/lariza-git/checksums rename to community-mod/stable/lariza/checksums diff --git a/community-mod/rolling/lariza-git/depends b/community-mod/stable/lariza/depends similarity index 100% rename from community-mod/rolling/lariza-git/depends rename to community-mod/stable/lariza/depends diff --git a/community-mod/rolling/lariza-git/sources b/community-mod/stable/lariza/sources similarity index 100% rename from community-mod/rolling/lariza-git/sources rename to community-mod/stable/lariza/sources diff --git a/community-mod/rolling/lariza-git/version b/community-mod/stable/lariza/version similarity index 100% rename from community-mod/rolling/lariza-git/version rename to community-mod/stable/lariza/version diff --git a/community-mod/rolling/libarchive-git/build b/community-mod/stable/libarchive/build similarity index 100% rename from community-mod/rolling/libarchive-git/build rename to community-mod/stable/libarchive/build diff --git a/community-mod/rolling/libarchive-git/checksums b/community-mod/stable/libarchive/checksums similarity index 100% rename from community-mod/rolling/libarchive-git/checksums rename to community-mod/stable/libarchive/checksums diff --git a/community-mod/rolling/libarchive-git/depends b/community-mod/stable/libarchive/depends similarity index 100% rename from community-mod/rolling/libarchive-git/depends rename to community-mod/stable/libarchive/depends diff --git a/community-mod/rolling/libarchive-git/sources b/community-mod/stable/libarchive/sources similarity index 100% rename from community-mod/rolling/libarchive-git/sources rename to community-mod/stable/libarchive/sources diff --git a/community-mod/rolling/libarchive-git/version b/community-mod/stable/libarchive/version similarity index 100% rename from community-mod/rolling/libarchive-git/version rename to community-mod/stable/libarchive/version diff --git a/community-mod/rolling/libconfig-git/build b/community-mod/stable/libconfig/build similarity index 100% rename from community-mod/rolling/libconfig-git/build rename to community-mod/stable/libconfig/build diff --git a/community-mod/rolling/libconfig-git/checksums b/community-mod/stable/libconfig/checksums similarity index 100% rename from community-mod/rolling/libconfig-git/checksums rename to community-mod/stable/libconfig/checksums diff --git a/community-mod/rolling/libconfig-git/sources b/community-mod/stable/libconfig/sources similarity index 100% rename from community-mod/rolling/libconfig-git/sources rename to community-mod/stable/libconfig/sources diff --git a/community-mod/rolling/libconfig-git/version b/community-mod/stable/libconfig/version similarity index 100% rename from community-mod/rolling/libconfig-git/version rename to community-mod/stable/libconfig/version diff --git a/community-mod/rolling/libevent-git/build b/community-mod/stable/libevent/build similarity index 100% rename from community-mod/rolling/libevent-git/build rename to community-mod/stable/libevent/build diff --git a/community-mod/rolling/libevent-git/checksums b/community-mod/stable/libevent/checksums similarity index 100% rename from community-mod/rolling/libevent-git/checksums rename to community-mod/stable/libevent/checksums diff --git a/community-mod/rolling/libevent-git/sources b/community-mod/stable/libevent/sources similarity index 100% rename from community-mod/rolling/libevent-git/sources rename to community-mod/stable/libevent/sources diff --git a/community-mod/rolling/libevent-git/version b/community-mod/stable/libevent/version similarity index 100% rename from community-mod/rolling/libevent-git/version rename to community-mod/stable/libevent/version diff --git a/community-mod/rolling/libexif-git/build b/community-mod/stable/libexif/build similarity index 100% rename from community-mod/rolling/libexif-git/build rename to community-mod/stable/libexif/build diff --git a/community-mod/rolling/libexif-git/checksums b/community-mod/stable/libexif/checksums similarity index 100% rename from community-mod/rolling/libexif-git/checksums rename to community-mod/stable/libexif/checksums diff --git a/community-mod/rolling/libexif-git/sources b/community-mod/stable/libexif/sources similarity index 100% rename from community-mod/rolling/libexif-git/sources rename to community-mod/stable/libexif/sources diff --git a/community-mod/rolling/libexif-git/version b/community-mod/stable/libexif/version similarity index 100% rename from community-mod/rolling/libexif-git/version rename to community-mod/stable/libexif/version diff --git a/community-mod/rolling/libnghttp2-git/build b/community-mod/stable/libnghttp2/build similarity index 100% rename from community-mod/rolling/libnghttp2-git/build rename to community-mod/stable/libnghttp2/build diff --git a/community-mod/rolling/libnghttp2-git/checksums b/community-mod/stable/libnghttp2/checksums similarity index 100% rename from community-mod/rolling/libnghttp2-git/checksums rename to community-mod/stable/libnghttp2/checksums diff --git a/community-mod/rolling/libnghttp2-git/sources b/community-mod/stable/libnghttp2/sources similarity index 100% rename from community-mod/rolling/libnghttp2-git/sources rename to community-mod/stable/libnghttp2/sources diff --git a/community-mod/rolling/libnghttp2-git/version b/community-mod/stable/libnghttp2/version similarity index 100% rename from community-mod/rolling/libnghttp2-git/version rename to community-mod/stable/libnghttp2/version diff --git a/community-mod/rolling/libnl-git/build b/community-mod/stable/libnl/build similarity index 100% rename from community-mod/rolling/libnl-git/build rename to community-mod/stable/libnl/build diff --git a/community-mod/rolling/libnl-git/checksums b/community-mod/stable/libnl/checksums similarity index 100% rename from community-mod/rolling/libnl-git/checksums rename to community-mod/stable/libnl/checksums diff --git a/community-mod/rolling/libnl-git/sources b/community-mod/stable/libnl/sources similarity index 100% rename from community-mod/rolling/libnl-git/sources rename to community-mod/stable/libnl/sources diff --git a/community-mod/rolling/libnl-git/version b/community-mod/stable/libnl/version similarity index 100% rename from community-mod/rolling/libnl-git/version rename to community-mod/stable/libnl/version diff --git a/community-mod/rolling/libpsl-git/build b/community-mod/stable/libpsl/build similarity index 100% rename from community-mod/rolling/libpsl-git/build rename to community-mod/stable/libpsl/build diff --git a/community-mod/rolling/libpsl-git/checksums b/community-mod/stable/libpsl/checksums similarity index 100% rename from community-mod/rolling/libpsl-git/checksums rename to community-mod/stable/libpsl/checksums diff --git a/community-mod/rolling/libpsl-git/depends b/community-mod/stable/libpsl/depends similarity index 100% rename from community-mod/rolling/libpsl-git/depends rename to community-mod/stable/libpsl/depends diff --git a/community-mod/rolling/libpsl-git/sources b/community-mod/stable/libpsl/sources similarity index 100% rename from community-mod/rolling/libpsl-git/sources rename to community-mod/stable/libpsl/sources diff --git a/community-mod/rolling/libpsl-git/version b/community-mod/stable/libpsl/version similarity index 100% rename from community-mod/rolling/libpsl-git/version rename to community-mod/stable/libpsl/version diff --git a/community-mod/rolling/libseccomp-git/build b/community-mod/stable/libseccomp/build similarity index 100% rename from community-mod/rolling/libseccomp-git/build rename to community-mod/stable/libseccomp/build diff --git a/community-mod/rolling/libseccomp-git/checksums b/community-mod/stable/libseccomp/checksums similarity index 100% rename from community-mod/rolling/libseccomp-git/checksums rename to community-mod/stable/libseccomp/checksums diff --git a/community-mod/rolling/libseccomp-git/depends b/community-mod/stable/libseccomp/depends similarity index 100% rename from community-mod/rolling/libseccomp-git/depends rename to community-mod/stable/libseccomp/depends diff --git a/community-mod/rolling/libseccomp-git/sources b/community-mod/stable/libseccomp/sources similarity index 100% rename from community-mod/rolling/libseccomp-git/sources rename to community-mod/stable/libseccomp/sources diff --git a/community-mod/rolling/libseccomp-git/version b/community-mod/stable/libseccomp/version similarity index 100% rename from community-mod/rolling/libseccomp-git/version rename to community-mod/stable/libseccomp/version diff --git a/community-mod/rolling/libsixel-git/build b/community-mod/stable/libsixel/build similarity index 100% rename from community-mod/rolling/libsixel-git/build rename to community-mod/stable/libsixel/build diff --git a/community-mod/rolling/libsixel-git/checksums b/community-mod/stable/libsixel/checksums similarity index 100% rename from community-mod/rolling/libsixel-git/checksums rename to community-mod/stable/libsixel/checksums diff --git a/community-mod/rolling/libsixel-git/depends b/community-mod/stable/libsixel/depends similarity index 100% rename from community-mod/rolling/libsixel-git/depends rename to community-mod/stable/libsixel/depends diff --git a/community-mod/rolling/libsixel-git/sources b/community-mod/stable/libsixel/sources similarity index 100% rename from community-mod/rolling/libsixel-git/sources rename to community-mod/stable/libsixel/sources diff --git a/community-mod/rolling/libsixel-git/version b/community-mod/stable/libsixel/version similarity index 100% rename from community-mod/rolling/libsixel-git/version rename to community-mod/stable/libsixel/version diff --git a/community-mod/rolling/libsodium-git/build b/community-mod/stable/libsodium/build similarity index 100% rename from community-mod/rolling/libsodium-git/build rename to community-mod/stable/libsodium/build diff --git a/community-mod/rolling/libsodium-git/checksums b/community-mod/stable/libsodium/checksums similarity index 100% rename from community-mod/rolling/libsodium-git/checksums rename to community-mod/stable/libsodium/checksums diff --git a/community-mod/rolling/libsodium-git/sources b/community-mod/stable/libsodium/sources similarity index 100% rename from community-mod/rolling/libsodium-git/sources rename to community-mod/stable/libsodium/sources diff --git a/community-mod/rolling/libsodium-git/version b/community-mod/stable/libsodium/version similarity index 100% rename from community-mod/rolling/libsodium-git/version rename to community-mod/stable/libsodium/version diff --git a/community-mod/rolling/libtermkey-git/build b/community-mod/stable/libtermkey/build similarity index 100% rename from community-mod/rolling/libtermkey-git/build rename to community-mod/stable/libtermkey/build diff --git a/community-mod/rolling/libtermkey-git/checksums b/community-mod/stable/libtermkey/checksums similarity index 100% rename from community-mod/rolling/libtermkey-git/checksums rename to community-mod/stable/libtermkey/checksums diff --git a/community-mod/rolling/libtermkey-git/depends b/community-mod/stable/libtermkey/depends similarity index 100% rename from community-mod/rolling/libtermkey-git/depends rename to community-mod/stable/libtermkey/depends diff --git a/community-mod/rolling/libtermkey-git/patches/static-no-libtool.patch b/community-mod/stable/libtermkey/patches/static-no-libtool.patch similarity index 100% rename from community-mod/rolling/libtermkey-git/patches/static-no-libtool.patch rename to community-mod/stable/libtermkey/patches/static-no-libtool.patch diff --git a/community-mod/rolling/libtermkey-git/sources b/community-mod/stable/libtermkey/sources similarity index 100% rename from community-mod/rolling/libtermkey-git/sources rename to community-mod/stable/libtermkey/sources diff --git a/community-mod/rolling/libtermkey-git/version b/community-mod/stable/libtermkey/version similarity index 100% rename from community-mod/rolling/libtermkey-git/version rename to community-mod/stable/libtermkey/version diff --git a/community-mod/rolling/libusb-git/build b/community-mod/stable/libusb/build similarity index 100% rename from community-mod/rolling/libusb-git/build rename to community-mod/stable/libusb/build diff --git a/community-mod/rolling/libusb-git/checksums b/community-mod/stable/libusb/checksums similarity index 100% rename from community-mod/rolling/libusb-git/checksums rename to community-mod/stable/libusb/checksums diff --git a/community-mod/rolling/libusb-git/sources b/community-mod/stable/libusb/sources similarity index 100% rename from community-mod/rolling/libusb-git/sources rename to community-mod/stable/libusb/sources diff --git a/community-mod/rolling/libusb-git/version b/community-mod/stable/libusb/version similarity index 100% rename from community-mod/rolling/libusb-git/version rename to community-mod/stable/libusb/version diff --git a/community-mod/rolling/libvncserver-git/build b/community-mod/stable/libvncserver/build similarity index 100% rename from community-mod/rolling/libvncserver-git/build rename to community-mod/stable/libvncserver/build diff --git a/community-mod/rolling/libvncserver-git/checksums b/community-mod/stable/libvncserver/checksums similarity index 100% rename from community-mod/rolling/libvncserver-git/checksums rename to community-mod/stable/libvncserver/checksums diff --git a/community-mod/rolling/libvncserver-git/depends b/community-mod/stable/libvncserver/depends similarity index 100% rename from community-mod/rolling/libvncserver-git/depends rename to community-mod/stable/libvncserver/depends diff --git a/community-mod/rolling/libvncserver-git/sources b/community-mod/stable/libvncserver/sources similarity index 100% rename from community-mod/rolling/libvncserver-git/sources rename to community-mod/stable/libvncserver/sources diff --git a/community-mod/rolling/libvncserver-git/version b/community-mod/stable/libvncserver/version similarity index 100% rename from community-mod/rolling/libvncserver-git/version rename to community-mod/stable/libvncserver/version diff --git a/community-mod/rolling/libyajl-git/build b/community-mod/stable/libyajl/build similarity index 100% rename from community-mod/rolling/libyajl-git/build rename to community-mod/stable/libyajl/build diff --git a/community-mod/rolling/libyajl-git/checksums b/community-mod/stable/libyajl/checksums similarity index 100% rename from community-mod/rolling/libyajl-git/checksums rename to community-mod/stable/libyajl/checksums diff --git a/community-mod/rolling/libyajl-git/sources b/community-mod/stable/libyajl/sources similarity index 100% rename from community-mod/rolling/libyajl-git/sources rename to community-mod/stable/libyajl/sources diff --git a/community-mod/rolling/libyajl-git/version b/community-mod/stable/libyajl/version similarity index 100% rename from community-mod/rolling/libyajl-git/version rename to community-mod/stable/libyajl/version diff --git a/community-mod/rolling/lld-git/build b/community-mod/stable/lld/build similarity index 100% rename from community-mod/rolling/lld-git/build rename to community-mod/stable/lld/build diff --git a/community-mod/rolling/lld-git/checksums b/community-mod/stable/lld/checksums similarity index 100% rename from community-mod/rolling/lld-git/checksums rename to community-mod/stable/lld/checksums diff --git a/community-mod/rolling/lld-git/depends b/community-mod/stable/lld/depends similarity index 100% rename from community-mod/rolling/lld-git/depends rename to community-mod/stable/lld/depends diff --git a/community-mod/rolling/lld-git/sources b/community-mod/stable/lld/sources similarity index 100% rename from community-mod/rolling/lld-git/sources rename to community-mod/stable/lld/sources diff --git a/community-mod/rolling/lld-git/version b/community-mod/stable/lld/version similarity index 100% rename from community-mod/rolling/lld-git/version rename to community-mod/stable/lld/version diff --git a/community-mod/rolling/lm-sensors-git/build b/community-mod/stable/lm-sensors/build similarity index 100% rename from community-mod/rolling/lm-sensors-git/build rename to community-mod/stable/lm-sensors/build diff --git a/community-mod/rolling/lm-sensors-git/checksums b/community-mod/stable/lm-sensors/checksums similarity index 100% rename from community-mod/rolling/lm-sensors-git/checksums rename to community-mod/stable/lm-sensors/checksums diff --git a/community-mod/rolling/lm-sensors-git/depends b/community-mod/stable/lm-sensors/depends similarity index 100% rename from community-mod/rolling/lm-sensors-git/depends rename to community-mod/stable/lm-sensors/depends diff --git a/community-mod/rolling/lm-sensors-git/sources b/community-mod/stable/lm-sensors/sources similarity index 100% rename from community-mod/rolling/lm-sensors-git/sources rename to community-mod/stable/lm-sensors/sources diff --git a/community-mod/rolling/lm-sensors-git/version b/community-mod/stable/lm-sensors/version similarity index 100% rename from community-mod/rolling/lm-sensors-git/version rename to community-mod/stable/lm-sensors/version diff --git a/community-mod/rolling/lmdb-git/build b/community-mod/stable/lmdb/build similarity index 100% rename from community-mod/rolling/lmdb-git/build rename to community-mod/stable/lmdb/build diff --git a/community-mod/rolling/lmdb-git/checksums b/community-mod/stable/lmdb/checksums similarity index 100% rename from community-mod/rolling/lmdb-git/checksums rename to community-mod/stable/lmdb/checksums diff --git a/community-mod/rolling/lmdb-git/sources b/community-mod/stable/lmdb/sources similarity index 100% rename from community-mod/rolling/lmdb-git/sources rename to community-mod/stable/lmdb/sources diff --git a/community-mod/rolling/lmdb-git/version b/community-mod/stable/lmdb/version similarity index 100% rename from community-mod/rolling/lmdb-git/version rename to community-mod/stable/lmdb/version diff --git a/community-mod/rolling/lsof-git/build b/community-mod/stable/lsof/build similarity index 100% rename from community-mod/rolling/lsof-git/build rename to community-mod/stable/lsof/build diff --git a/community-mod/rolling/lsof-git/checksums b/community-mod/stable/lsof/checksums similarity index 100% rename from community-mod/rolling/lsof-git/checksums rename to community-mod/stable/lsof/checksums diff --git a/community-mod/rolling/lsof-git/sources b/community-mod/stable/lsof/sources similarity index 100% rename from community-mod/rolling/lsof-git/sources rename to community-mod/stable/lsof/sources diff --git a/community-mod/rolling/lsof-git/version b/community-mod/stable/lsof/version similarity index 100% rename from community-mod/rolling/lsof-git/version rename to community-mod/stable/lsof/version diff --git a/community-mod/rolling/lz4-git/build b/community-mod/stable/lz4/build similarity index 100% rename from community-mod/rolling/lz4-git/build rename to community-mod/stable/lz4/build diff --git a/community-mod/rolling/lz4-git/checksums b/community-mod/stable/lz4/checksums similarity index 100% rename from community-mod/rolling/lz4-git/checksums rename to community-mod/stable/lz4/checksums diff --git a/community-mod/rolling/lz4-git/sources b/community-mod/stable/lz4/sources similarity index 100% rename from community-mod/rolling/lz4-git/sources rename to community-mod/stable/lz4/sources diff --git a/community-mod/rolling/lz4-git/version b/community-mod/stable/lz4/version similarity index 100% rename from community-mod/rolling/lz4-git/version rename to community-mod/stable/lz4/version diff --git a/community-mod/rolling/maim-git/build b/community-mod/stable/maim/build similarity index 100% rename from community-mod/rolling/maim-git/build rename to community-mod/stable/maim/build diff --git a/community-mod/rolling/maim-git/checksums b/community-mod/stable/maim/checksums similarity index 100% rename from community-mod/rolling/maim-git/checksums rename to community-mod/stable/maim/checksums diff --git a/community-mod/rolling/maim-git/depends b/community-mod/stable/maim/depends similarity index 100% rename from community-mod/rolling/maim-git/depends rename to community-mod/stable/maim/depends diff --git a/community-mod/rolling/maim-git/sources b/community-mod/stable/maim/sources similarity index 100% rename from community-mod/rolling/maim-git/sources rename to community-mod/stable/maim/sources diff --git a/community-mod/rolling/maim-git/version b/community-mod/stable/maim/version similarity index 100% rename from community-mod/rolling/maim-git/version rename to community-mod/stable/maim/version diff --git a/community-mod/rolling/mblaze-git/build b/community-mod/stable/mblaze/build similarity index 100% rename from community-mod/rolling/mblaze-git/build rename to community-mod/stable/mblaze/build diff --git a/community-mod/rolling/mblaze-git/checksums b/community-mod/stable/mblaze/checksums similarity index 100% rename from community-mod/rolling/mblaze-git/checksums rename to community-mod/stable/mblaze/checksums diff --git a/community-mod/rolling/mblaze-git/sources b/community-mod/stable/mblaze/sources similarity index 100% rename from community-mod/rolling/mblaze-git/sources rename to community-mod/stable/mblaze/sources diff --git a/community-mod/rolling/mblaze-git/version b/community-mod/stable/mblaze/version similarity index 100% rename from community-mod/rolling/mblaze-git/version rename to community-mod/stable/mblaze/version diff --git a/community-mod/rolling/mg-git/build b/community-mod/stable/mg/build similarity index 100% rename from community-mod/rolling/mg-git/build rename to community-mod/stable/mg/build diff --git a/community-mod/rolling/mg-git/checksums b/community-mod/stable/mg/checksums similarity index 100% rename from community-mod/rolling/mg-git/checksums rename to community-mod/stable/mg/checksums diff --git a/community-mod/rolling/mg-git/depends b/community-mod/stable/mg/depends similarity index 100% rename from community-mod/rolling/mg-git/depends rename to community-mod/stable/mg/depends diff --git a/community-mod/rolling/mg-git/sources b/community-mod/stable/mg/sources similarity index 100% rename from community-mod/rolling/mg-git/sources rename to community-mod/stable/mg/sources diff --git a/community-mod/rolling/mg-git/version b/community-mod/stable/mg/version similarity index 100% rename from community-mod/rolling/mg-git/version rename to community-mod/stable/mg/version diff --git a/community-mod/rolling/mksh-git/build b/community-mod/stable/mksh/build similarity index 100% rename from community-mod/rolling/mksh-git/build rename to community-mod/stable/mksh/build diff --git a/community-mod/rolling/mksh-git/checksums b/community-mod/stable/mksh/checksums similarity index 100% rename from community-mod/rolling/mksh-git/checksums rename to community-mod/stable/mksh/checksums diff --git a/community-mod/rolling/mksh-git/sources b/community-mod/stable/mksh/sources similarity index 100% rename from community-mod/rolling/mksh-git/sources rename to community-mod/stable/mksh/sources diff --git a/community-mod/rolling/mksh-git/version b/community-mod/stable/mksh/version similarity index 100% rename from community-mod/rolling/mksh-git/version rename to community-mod/stable/mksh/version diff --git a/community-mod/rolling/neofetch-git/build b/community-mod/stable/neofetch/build similarity index 100% rename from community-mod/rolling/neofetch-git/build rename to community-mod/stable/neofetch/build diff --git a/community-mod/rolling/neofetch-git/checksums b/community-mod/stable/neofetch/checksums similarity index 100% rename from community-mod/rolling/neofetch-git/checksums rename to community-mod/stable/neofetch/checksums diff --git a/community-mod/rolling/neofetch-git/depends b/community-mod/stable/neofetch/depends similarity index 100% rename from community-mod/rolling/neofetch-git/depends rename to community-mod/stable/neofetch/depends diff --git a/community-mod/rolling/neofetch-git/sources b/community-mod/stable/neofetch/sources similarity index 100% rename from community-mod/rolling/neofetch-git/sources rename to community-mod/stable/neofetch/sources diff --git a/community-mod/rolling/neofetch-git/version b/community-mod/stable/neofetch/version similarity index 100% rename from community-mod/rolling/neofetch-git/version rename to community-mod/stable/neofetch/version diff --git a/community-mod/rolling/neomutt-git/build b/community-mod/stable/neomutt/build similarity index 100% rename from community-mod/rolling/neomutt-git/build rename to community-mod/stable/neomutt/build diff --git a/community-mod/rolling/neomutt-git/checksums b/community-mod/stable/neomutt/checksums similarity index 100% rename from community-mod/rolling/neomutt-git/checksums rename to community-mod/stable/neomutt/checksums diff --git a/community-mod/rolling/neomutt-git/depends b/community-mod/stable/neomutt/depends similarity index 100% rename from community-mod/rolling/neomutt-git/depends rename to community-mod/stable/neomutt/depends diff --git a/community-mod/rolling/neomutt-git/files/neomutt.1 b/community-mod/stable/neomutt/files/neomutt.1 similarity index 100% rename from community-mod/rolling/neomutt-git/files/neomutt.1 rename to community-mod/stable/neomutt/files/neomutt.1 diff --git a/community-mod/rolling/neomutt-git/files/neomuttrc.5 b/community-mod/stable/neomutt/files/neomuttrc.5 similarity index 100% rename from community-mod/rolling/neomutt-git/files/neomuttrc.5 rename to community-mod/stable/neomutt/files/neomuttrc.5 diff --git a/community-mod/rolling/neomutt-git/post-install b/community-mod/stable/neomutt/post-install similarity index 100% rename from community-mod/rolling/neomutt-git/post-install rename to community-mod/stable/neomutt/post-install diff --git a/community-mod/rolling/neomutt-git/sources b/community-mod/stable/neomutt/sources similarity index 100% rename from community-mod/rolling/neomutt-git/sources rename to community-mod/stable/neomutt/sources diff --git a/community-mod/rolling/neomutt-git/version b/community-mod/stable/neomutt/version similarity index 100% rename from community-mod/rolling/neomutt-git/version rename to community-mod/stable/neomutt/version diff --git a/community-mod/rolling/neovim-git/build b/community-mod/stable/neovim/build similarity index 100% rename from community-mod/rolling/neovim-git/build rename to community-mod/stable/neovim/build diff --git a/community-mod/rolling/neovim-git/checksums b/community-mod/stable/neovim/checksums similarity index 100% rename from community-mod/rolling/neovim-git/checksums rename to community-mod/stable/neovim/checksums diff --git a/community-mod/rolling/neovim-git/depends b/community-mod/stable/neovim/depends similarity index 100% rename from community-mod/rolling/neovim-git/depends rename to community-mod/stable/neovim/depends diff --git a/community-mod/rolling/neovim-git/sources b/community-mod/stable/neovim/sources similarity index 100% rename from community-mod/rolling/neovim-git/sources rename to community-mod/stable/neovim/sources diff --git a/community-mod/rolling/neovim-git/version b/community-mod/stable/neovim/version similarity index 100% rename from community-mod/rolling/neovim-git/version rename to community-mod/stable/neovim/version diff --git a/community-mod/rolling/nvme-cli-git/build b/community-mod/stable/nvme-cli/build similarity index 100% rename from community-mod/rolling/nvme-cli-git/build rename to community-mod/stable/nvme-cli/build diff --git a/community-mod/rolling/nvme-cli-git/checksums b/community-mod/stable/nvme-cli/checksums similarity index 100% rename from community-mod/rolling/nvme-cli-git/checksums rename to community-mod/stable/nvme-cli/checksums diff --git a/community-mod/rolling/nvme-cli-git/depends b/community-mod/stable/nvme-cli/depends similarity index 100% rename from community-mod/rolling/nvme-cli-git/depends rename to community-mod/stable/nvme-cli/depends diff --git a/community-mod/rolling/nvme-cli-git/sources b/community-mod/stable/nvme-cli/sources similarity index 100% rename from community-mod/rolling/nvme-cli-git/sources rename to community-mod/stable/nvme-cli/sources diff --git a/community-mod/rolling/nvme-cli-git/version b/community-mod/stable/nvme-cli/version similarity index 100% rename from community-mod/rolling/nvme-cli-git/version rename to community-mod/stable/nvme-cli/version diff --git a/community-mod/rolling/oed-git/build b/community-mod/stable/oed/build similarity index 100% rename from community-mod/rolling/oed-git/build rename to community-mod/stable/oed/build diff --git a/community-mod/rolling/oed-git/checksums b/community-mod/stable/oed/checksums similarity index 100% rename from community-mod/rolling/oed-git/checksums rename to community-mod/stable/oed/checksums diff --git a/community-mod/rolling/oed-git/sources b/community-mod/stable/oed/sources similarity index 100% rename from community-mod/rolling/oed-git/sources rename to community-mod/stable/oed/sources diff --git a/community-mod/rolling/oed-git/version b/community-mod/stable/oed/version similarity index 100% rename from community-mod/rolling/oed-git/version rename to community-mod/stable/oed/version diff --git a/community-mod/rolling/oksh-git/build b/community-mod/stable/oksh/build similarity index 100% rename from community-mod/rolling/oksh-git/build rename to community-mod/stable/oksh/build diff --git a/community-mod/rolling/oksh-git/checksums b/community-mod/stable/oksh/checksums similarity index 100% rename from community-mod/rolling/oksh-git/checksums rename to community-mod/stable/oksh/checksums diff --git a/community-mod/rolling/oksh-git/depends b/community-mod/stable/oksh/depends similarity index 100% rename from community-mod/rolling/oksh-git/depends rename to community-mod/stable/oksh/depends diff --git a/community-mod/rolling/oksh-git/post-install b/community-mod/stable/oksh/post-install similarity index 100% rename from community-mod/rolling/oksh-git/post-install rename to community-mod/stable/oksh/post-install diff --git a/community-mod/rolling/oksh-git/sources b/community-mod/stable/oksh/sources similarity index 100% rename from community-mod/rolling/oksh-git/sources rename to community-mod/stable/oksh/sources diff --git a/community-mod/rolling/oksh-git/version b/community-mod/stable/oksh/version similarity index 100% rename from community-mod/rolling/oksh-git/version rename to community-mod/stable/oksh/version diff --git a/community-mod/rolling/openjpeg2-git/build b/community-mod/stable/openjpeg2/build similarity index 100% rename from community-mod/rolling/openjpeg2-git/build rename to community-mod/stable/openjpeg2/build diff --git a/community-mod/rolling/openjpeg2-git/checksums b/community-mod/stable/openjpeg2/checksums similarity index 100% rename from community-mod/rolling/openjpeg2-git/checksums rename to community-mod/stable/openjpeg2/checksums diff --git a/community-mod/rolling/openjpeg2-git/depends b/community-mod/stable/openjpeg2/depends similarity index 100% rename from community-mod/rolling/openjpeg2-git/depends rename to community-mod/stable/openjpeg2/depends diff --git a/community-mod/rolling/openjpeg2-git/sources b/community-mod/stable/openjpeg2/sources similarity index 100% rename from community-mod/rolling/openjpeg2-git/sources rename to community-mod/stable/openjpeg2/sources diff --git a/community-mod/rolling/openjpeg2-git/version b/community-mod/stable/openjpeg2/version similarity index 100% rename from community-mod/rolling/openjpeg2-git/version rename to community-mod/stable/openjpeg2/version diff --git a/community-mod/rolling/p11-kit-git/build b/community-mod/stable/p11-kit/build similarity index 100% rename from community-mod/rolling/p11-kit-git/build rename to community-mod/stable/p11-kit/build diff --git a/community-mod/rolling/p11-kit-git/checksums b/community-mod/stable/p11-kit/checksums similarity index 100% rename from community-mod/rolling/p11-kit-git/checksums rename to community-mod/stable/p11-kit/checksums diff --git a/community-mod/rolling/p11-kit-git/depends b/community-mod/stable/p11-kit/depends similarity index 100% rename from community-mod/rolling/p11-kit-git/depends rename to community-mod/stable/p11-kit/depends diff --git a/community-mod/rolling/p11-kit-git/sources b/community-mod/stable/p11-kit/sources similarity index 100% rename from community-mod/rolling/p11-kit-git/sources rename to community-mod/stable/p11-kit/sources diff --git a/community-mod/rolling/p11-kit-git/version b/community-mod/stable/p11-kit/version similarity index 100% rename from community-mod/rolling/p11-kit-git/version rename to community-mod/stable/p11-kit/version diff --git a/community-mod/rolling/pfetch-git/build b/community-mod/stable/pfetch/build similarity index 100% rename from community-mod/rolling/pfetch-git/build rename to community-mod/stable/pfetch/build diff --git a/community-mod/rolling/pfetch-git/checksums b/community-mod/stable/pfetch/checksums similarity index 100% rename from community-mod/rolling/pfetch-git/checksums rename to community-mod/stable/pfetch/checksums diff --git a/community-mod/rolling/pfetch-git/sources b/community-mod/stable/pfetch/sources similarity index 100% rename from community-mod/rolling/pfetch-git/sources rename to community-mod/stable/pfetch/sources diff --git a/community-mod/rolling/pfetch-git/version b/community-mod/stable/pfetch/version similarity index 100% rename from community-mod/rolling/pfetch-git/version rename to community-mod/stable/pfetch/version diff --git a/community-mod/rolling/pkcs11-helper-git/build b/community-mod/stable/pkcs11-helper/build similarity index 100% rename from community-mod/rolling/pkcs11-helper-git/build rename to community-mod/stable/pkcs11-helper/build diff --git a/community-mod/rolling/pkcs11-helper-git/checksums b/community-mod/stable/pkcs11-helper/checksums similarity index 100% rename from community-mod/rolling/pkcs11-helper-git/checksums rename to community-mod/stable/pkcs11-helper/checksums diff --git a/community-mod/rolling/pkcs11-helper-git/depends b/community-mod/stable/pkcs11-helper/depends similarity index 100% rename from community-mod/rolling/pkcs11-helper-git/depends rename to community-mod/stable/pkcs11-helper/depends diff --git a/community-mod/rolling/pkcs11-helper-git/sources b/community-mod/stable/pkcs11-helper/sources similarity index 100% rename from community-mod/rolling/pkcs11-helper-git/sources rename to community-mod/stable/pkcs11-helper/sources diff --git a/community-mod/rolling/pkcs11-helper-git/version b/community-mod/stable/pkcs11-helper/version similarity index 100% rename from community-mod/rolling/pkcs11-helper-git/version rename to community-mod/stable/pkcs11-helper/version diff --git a/community-mod/rolling/qpdf-git/build b/community-mod/stable/qpdf/build similarity index 100% rename from community-mod/rolling/qpdf-git/build rename to community-mod/stable/qpdf/build diff --git a/community-mod/rolling/qpdf-git/checksums b/community-mod/stable/qpdf/checksums similarity index 100% rename from community-mod/rolling/qpdf-git/checksums rename to community-mod/stable/qpdf/checksums diff --git a/community-mod/rolling/qpdf-git/depends b/community-mod/stable/qpdf/depends similarity index 100% rename from community-mod/rolling/qpdf-git/depends rename to community-mod/stable/qpdf/depends diff --git a/community-mod/rolling/qpdf-git/sources b/community-mod/stable/qpdf/sources similarity index 100% rename from community-mod/rolling/qpdf-git/sources rename to community-mod/stable/qpdf/sources diff --git a/community-mod/rolling/qpdf-git/version b/community-mod/stable/qpdf/version similarity index 100% rename from community-mod/rolling/qpdf-git/version rename to community-mod/stable/qpdf/version diff --git a/community-mod/rolling/radare2-git/build b/community-mod/stable/radare2/build similarity index 100% rename from community-mod/rolling/radare2-git/build rename to community-mod/stable/radare2/build diff --git a/community-mod/rolling/radare2-git/checksums b/community-mod/stable/radare2/checksums similarity index 100% rename from community-mod/rolling/radare2-git/checksums rename to community-mod/stable/radare2/checksums diff --git a/community-mod/rolling/radare2-git/sources b/community-mod/stable/radare2/sources similarity index 100% rename from community-mod/rolling/radare2-git/sources rename to community-mod/stable/radare2/sources diff --git a/community-mod/rolling/radare2-git/version b/community-mod/stable/radare2/version similarity index 100% rename from community-mod/rolling/radare2-git/version rename to community-mod/stable/radare2/version diff --git a/community-mod/rolling/rpcsvc-proto-git/build b/community-mod/stable/rpcsvc-proto/build similarity index 100% rename from community-mod/rolling/rpcsvc-proto-git/build rename to community-mod/stable/rpcsvc-proto/build diff --git a/community-mod/rolling/rpcsvc-proto-git/checksums b/community-mod/stable/rpcsvc-proto/checksums similarity index 100% rename from community-mod/rolling/rpcsvc-proto-git/checksums rename to community-mod/stable/rpcsvc-proto/checksums diff --git a/community-mod/rolling/rpcsvc-proto-git/sources b/community-mod/stable/rpcsvc-proto/sources similarity index 100% rename from community-mod/rolling/rpcsvc-proto-git/sources rename to community-mod/stable/rpcsvc-proto/sources diff --git a/community-mod/rolling/rpcsvc-proto-git/version b/community-mod/stable/rpcsvc-proto/version similarity index 100% rename from community-mod/rolling/rpcsvc-proto-git/version rename to community-mod/stable/rpcsvc-proto/version diff --git a/community-mod/rolling/sc-im-git/build b/community-mod/stable/sc-im/build similarity index 100% rename from community-mod/rolling/sc-im-git/build rename to community-mod/stable/sc-im/build diff --git a/community-mod/rolling/sc-im-git/checksums b/community-mod/stable/sc-im/checksums similarity index 100% rename from community-mod/rolling/sc-im-git/checksums rename to community-mod/stable/sc-im/checksums diff --git a/community-mod/rolling/sc-im-git/depends b/community-mod/stable/sc-im/depends similarity index 100% rename from community-mod/rolling/sc-im-git/depends rename to community-mod/stable/sc-im/depends diff --git a/community-mod/rolling/sc-im-git/sources b/community-mod/stable/sc-im/sources similarity index 100% rename from community-mod/rolling/sc-im-git/sources rename to community-mod/stable/sc-im/sources diff --git a/community-mod/rolling/sc-im-git/version b/community-mod/stable/sc-im/version similarity index 100% rename from community-mod/rolling/sc-im-git/version rename to community-mod/stable/sc-im/version diff --git a/community-mod/rolling/sc-git/build b/community-mod/stable/sc/build similarity index 100% rename from community-mod/rolling/sc-git/build rename to community-mod/stable/sc/build diff --git a/community-mod/rolling/sc-git/checksums b/community-mod/stable/sc/checksums similarity index 100% rename from community-mod/rolling/sc-git/checksums rename to community-mod/stable/sc/checksums diff --git a/community-mod/rolling/sc-git/depends b/community-mod/stable/sc/depends similarity index 100% rename from community-mod/rolling/sc-git/depends rename to community-mod/stable/sc/depends diff --git a/community-mod/rolling/sc-git/sources b/community-mod/stable/sc/sources similarity index 100% rename from community-mod/rolling/sc-git/sources rename to community-mod/stable/sc/sources diff --git a/community-mod/rolling/sc-git/version b/community-mod/stable/sc/version similarity index 100% rename from community-mod/rolling/sc-git/version rename to community-mod/stable/sc/version diff --git a/community-mod/rolling/scdoc-git/build b/community-mod/stable/scdoc/build similarity index 100% rename from community-mod/rolling/scdoc-git/build rename to community-mod/stable/scdoc/build diff --git a/community-mod/rolling/scdoc-git/checksums b/community-mod/stable/scdoc/checksums similarity index 100% rename from community-mod/rolling/scdoc-git/checksums rename to community-mod/stable/scdoc/checksums diff --git a/community-mod/rolling/scdoc-git/sources b/community-mod/stable/scdoc/sources similarity index 100% rename from community-mod/rolling/scdoc-git/sources rename to community-mod/stable/scdoc/sources diff --git a/community-mod/rolling/scdoc-git/version b/community-mod/stable/scdoc/version similarity index 100% rename from community-mod/rolling/scdoc-git/version rename to community-mod/stable/scdoc/version diff --git a/community-mod/rolling/scrot-git/build b/community-mod/stable/scrot/build similarity index 100% rename from community-mod/rolling/scrot-git/build rename to community-mod/stable/scrot/build diff --git a/community-mod/rolling/scrot-git/checksums b/community-mod/stable/scrot/checksums similarity index 100% rename from community-mod/rolling/scrot-git/checksums rename to community-mod/stable/scrot/checksums diff --git a/community-mod/rolling/scrot-git/depends b/community-mod/stable/scrot/depends similarity index 100% rename from community-mod/rolling/scrot-git/depends rename to community-mod/stable/scrot/depends diff --git a/community-mod/rolling/scrot-git/sources b/community-mod/stable/scrot/sources similarity index 100% rename from community-mod/rolling/scrot-git/sources rename to community-mod/stable/scrot/sources diff --git a/community-mod/rolling/scrot-git/version b/community-mod/stable/scrot/version similarity index 100% rename from community-mod/rolling/scrot-git/version rename to community-mod/stable/scrot/version diff --git a/community-mod/rolling/sdcv-git/build b/community-mod/stable/sdcv/build similarity index 100% rename from community-mod/rolling/sdcv-git/build rename to community-mod/stable/sdcv/build diff --git a/community-mod/rolling/sdcv-git/checksums b/community-mod/stable/sdcv/checksums similarity index 100% rename from community-mod/rolling/sdcv-git/checksums rename to community-mod/stable/sdcv/checksums diff --git a/community-mod/rolling/sdcv-git/depends b/community-mod/stable/sdcv/depends similarity index 100% rename from community-mod/rolling/sdcv-git/depends rename to community-mod/stable/sdcv/depends diff --git a/community-mod/rolling/sdcv-git/sources b/community-mod/stable/sdcv/sources similarity index 100% rename from community-mod/rolling/sdcv-git/sources rename to community-mod/stable/sdcv/sources diff --git a/community-mod/rolling/sdcv-git/version b/community-mod/stable/sdcv/version similarity index 100% rename from community-mod/rolling/sdcv-git/version rename to community-mod/stable/sdcv/version diff --git a/community-mod/rolling/seatd-git/build b/community-mod/stable/seatd/build similarity index 100% rename from community-mod/rolling/seatd-git/build rename to community-mod/stable/seatd/build diff --git a/community-mod/rolling/seatd-git/checksums b/community-mod/stable/seatd/checksums similarity index 100% rename from community-mod/rolling/seatd-git/checksums rename to community-mod/stable/seatd/checksums diff --git a/community-mod/rolling/seatd-git/depends b/community-mod/stable/seatd/depends similarity index 100% rename from community-mod/rolling/seatd-git/depends rename to community-mod/stable/seatd/depends diff --git a/community-mod/rolling/seatd-git/files/run b/community-mod/stable/seatd/files/run similarity index 100% rename from community-mod/rolling/seatd-git/files/run rename to community-mod/stable/seatd/files/run diff --git a/community-mod/rolling/seatd-git/sources b/community-mod/stable/seatd/sources similarity index 100% rename from community-mod/rolling/seatd-git/sources rename to community-mod/stable/seatd/sources diff --git a/community-mod/rolling/seatd-git/version b/community-mod/stable/seatd/version similarity index 100% rename from community-mod/rolling/seatd-git/version rename to community-mod/stable/seatd/version diff --git a/community-mod/rolling/secret-git/build b/community-mod/stable/secret/build similarity index 100% rename from community-mod/rolling/secret-git/build rename to community-mod/stable/secret/build diff --git a/community-mod/rolling/secret-git/checksums b/community-mod/stable/secret/checksums similarity index 100% rename from community-mod/rolling/secret-git/checksums rename to community-mod/stable/secret/checksums diff --git a/community-mod/rolling/secret-git/sources b/community-mod/stable/secret/sources similarity index 100% rename from community-mod/rolling/secret-git/sources rename to community-mod/stable/secret/sources diff --git a/community-mod/rolling/secret-git/version b/community-mod/stable/secret/version similarity index 100% rename from community-mod/rolling/secret-git/version rename to community-mod/stable/secret/version diff --git a/community-mod/rolling/sed-i-git/build b/community-mod/stable/sed-i/build similarity index 100% rename from community-mod/rolling/sed-i-git/build rename to community-mod/stable/sed-i/build diff --git a/community-mod/rolling/sed-i-git/checksums b/community-mod/stable/sed-i/checksums similarity index 100% rename from community-mod/rolling/sed-i-git/checksums rename to community-mod/stable/sed-i/checksums diff --git a/community-mod/rolling/sed-i-git/post-install b/community-mod/stable/sed-i/post-install similarity index 100% rename from community-mod/rolling/sed-i-git/post-install rename to community-mod/stable/sed-i/post-install diff --git a/community-mod/rolling/sed-i-git/sources b/community-mod/stable/sed-i/sources similarity index 100% rename from community-mod/rolling/sed-i-git/sources rename to community-mod/stable/sed-i/sources diff --git a/community-mod/rolling/sed-i-git/version b/community-mod/stable/sed-i/version similarity index 100% rename from community-mod/rolling/sed-i-git/version rename to community-mod/stable/sed-i/version diff --git a/community-mod/rolling/setroot-git/build b/community-mod/stable/setroot/build similarity index 100% rename from community-mod/rolling/setroot-git/build rename to community-mod/stable/setroot/build diff --git a/community-mod/rolling/setroot-git/checksums b/community-mod/stable/setroot/checksums similarity index 100% rename from community-mod/rolling/setroot-git/checksums rename to community-mod/stable/setroot/checksums diff --git a/community-mod/rolling/setroot-git/depends b/community-mod/stable/setroot/depends similarity index 100% rename from community-mod/rolling/setroot-git/depends rename to community-mod/stable/setroot/depends diff --git a/community-mod/rolling/setroot-git/sources b/community-mod/stable/setroot/sources similarity index 100% rename from community-mod/rolling/setroot-git/sources rename to community-mod/stable/setroot/sources diff --git a/community-mod/rolling/setroot-git/version b/community-mod/stable/setroot/version similarity index 100% rename from community-mod/rolling/setroot-git/version rename to community-mod/stable/setroot/version diff --git a/community-mod/rolling/slop-git/build b/community-mod/stable/slop/build similarity index 100% rename from community-mod/rolling/slop-git/build rename to community-mod/stable/slop/build diff --git a/community-mod/rolling/slop-git/checksums b/community-mod/stable/slop/checksums similarity index 100% rename from community-mod/rolling/slop-git/checksums rename to community-mod/stable/slop/checksums diff --git a/community-mod/rolling/slop-git/depends b/community-mod/stable/slop/depends similarity index 100% rename from community-mod/rolling/slop-git/depends rename to community-mod/stable/slop/depends diff --git a/community-mod/rolling/slop-git/sources b/community-mod/stable/slop/sources similarity index 100% rename from community-mod/rolling/slop-git/sources rename to community-mod/stable/slop/sources diff --git a/community-mod/rolling/slop-git/version b/community-mod/stable/slop/version similarity index 100% rename from community-mod/rolling/slop-git/version rename to community-mod/stable/slop/version diff --git a/community-mod/rolling/squashfs-tools-git/build b/community-mod/stable/squashfs-tools/build similarity index 100% rename from community-mod/rolling/squashfs-tools-git/build rename to community-mod/stable/squashfs-tools/build diff --git a/community-mod/rolling/squashfs-tools-git/checksums b/community-mod/stable/squashfs-tools/checksums similarity index 100% rename from community-mod/rolling/squashfs-tools-git/checksums rename to community-mod/stable/squashfs-tools/checksums diff --git a/community-mod/rolling/squashfs-tools-git/depends b/community-mod/stable/squashfs-tools/depends similarity index 100% rename from community-mod/rolling/squashfs-tools-git/depends rename to community-mod/stable/squashfs-tools/depends diff --git a/community-mod/rolling/squashfs-tools-git/sources b/community-mod/stable/squashfs-tools/sources similarity index 100% rename from community-mod/rolling/squashfs-tools-git/sources rename to community-mod/stable/squashfs-tools/sources diff --git a/community-mod/rolling/squashfs-tools-git/version b/community-mod/stable/squashfs-tools/version similarity index 100% rename from community-mod/rolling/squashfs-tools-git/version rename to community-mod/stable/squashfs-tools/version diff --git a/community-mod/rolling/sshfs-git/build b/community-mod/stable/sshfs/build similarity index 100% rename from community-mod/rolling/sshfs-git/build rename to community-mod/stable/sshfs/build diff --git a/community-mod/rolling/sshfs-git/checksums b/community-mod/stable/sshfs/checksums similarity index 100% rename from community-mod/rolling/sshfs-git/checksums rename to community-mod/stable/sshfs/checksums diff --git a/community-mod/rolling/sshfs-git/depends b/community-mod/stable/sshfs/depends similarity index 100% rename from community-mod/rolling/sshfs-git/depends rename to community-mod/stable/sshfs/depends diff --git a/community-mod/rolling/sshfs-git/sources b/community-mod/stable/sshfs/sources similarity index 100% rename from community-mod/rolling/sshfs-git/sources rename to community-mod/stable/sshfs/sources diff --git a/community-mod/rolling/sshfs-git/version b/community-mod/stable/sshfs/version similarity index 100% rename from community-mod/rolling/sshfs-git/version rename to community-mod/stable/sshfs/version diff --git a/community-mod/rolling/tig-git/build b/community-mod/stable/tig/build similarity index 100% rename from community-mod/rolling/tig-git/build rename to community-mod/stable/tig/build diff --git a/community-mod/rolling/tig-git/checksums b/community-mod/stable/tig/checksums similarity index 100% rename from community-mod/rolling/tig-git/checksums rename to community-mod/stable/tig/checksums diff --git a/community-mod/rolling/tig-git/depends b/community-mod/stable/tig/depends similarity index 100% rename from community-mod/rolling/tig-git/depends rename to community-mod/stable/tig/depends diff --git a/community-mod/rolling/tig-git/sources b/community-mod/stable/tig/sources similarity index 100% rename from community-mod/rolling/tig-git/sources rename to community-mod/stable/tig/sources diff --git a/community-mod/rolling/tig-git/version b/community-mod/stable/tig/version similarity index 100% rename from community-mod/rolling/tig-git/version rename to community-mod/stable/tig/version diff --git a/community-mod/rolling/tiv-git/build b/community-mod/stable/tiv/build similarity index 100% rename from community-mod/rolling/tiv-git/build rename to community-mod/stable/tiv/build diff --git a/community-mod/rolling/tiv-git/checksums b/community-mod/stable/tiv/checksums similarity index 100% rename from community-mod/rolling/tiv-git/checksums rename to community-mod/stable/tiv/checksums diff --git a/community-mod/rolling/tiv-git/depends b/community-mod/stable/tiv/depends similarity index 100% rename from community-mod/rolling/tiv-git/depends rename to community-mod/stable/tiv/depends diff --git a/community-mod/rolling/tiv-git/sources b/community-mod/stable/tiv/sources similarity index 100% rename from community-mod/rolling/tiv-git/sources rename to community-mod/stable/tiv/sources diff --git a/community-mod/rolling/tiv-git/version b/community-mod/stable/tiv/version similarity index 100% rename from community-mod/rolling/tiv-git/version rename to community-mod/stable/tiv/version diff --git a/community-mod/rolling/tmux-git/build b/community-mod/stable/tmux/build similarity index 100% rename from community-mod/rolling/tmux-git/build rename to community-mod/stable/tmux/build diff --git a/community-mod/rolling/tmux-git/checksums b/community-mod/stable/tmux/checksums similarity index 100% rename from community-mod/rolling/tmux-git/checksums rename to community-mod/stable/tmux/checksums diff --git a/community-mod/rolling/tmux-git/depends b/community-mod/stable/tmux/depends similarity index 100% rename from community-mod/rolling/tmux-git/depends rename to community-mod/stable/tmux/depends diff --git a/community-mod/rolling/tmux-git/sources b/community-mod/stable/tmux/sources similarity index 100% rename from community-mod/rolling/tmux-git/sources rename to community-mod/stable/tmux/sources diff --git a/community-mod/rolling/tmux-git/version b/community-mod/stable/tmux/version similarity index 100% rename from community-mod/rolling/tmux-git/version rename to community-mod/stable/tmux/version diff --git a/community-mod/rolling/transmission-git/build b/community-mod/stable/transmission/build similarity index 100% rename from community-mod/rolling/transmission-git/build rename to community-mod/stable/transmission/build diff --git a/community-mod/rolling/transmission-git/checksums b/community-mod/stable/transmission/checksums similarity index 100% rename from community-mod/rolling/transmission-git/checksums rename to community-mod/stable/transmission/checksums diff --git a/community-mod/rolling/transmission-git/depends b/community-mod/stable/transmission/depends similarity index 100% rename from community-mod/rolling/transmission-git/depends rename to community-mod/stable/transmission/depends diff --git a/community-mod/rolling/transmission-git/sources b/community-mod/stable/transmission/sources similarity index 100% rename from community-mod/rolling/transmission-git/sources rename to community-mod/stable/transmission/sources diff --git a/community-mod/rolling/transmission-git/version b/community-mod/stable/transmission/version similarity index 100% rename from community-mod/rolling/transmission-git/version rename to community-mod/stable/transmission/version diff --git a/community-mod/rolling/tty-clock-git/build b/community-mod/stable/tty-clock/build similarity index 100% rename from community-mod/rolling/tty-clock-git/build rename to community-mod/stable/tty-clock/build diff --git a/community-mod/rolling/tty-clock-git/checksums b/community-mod/stable/tty-clock/checksums similarity index 100% rename from community-mod/rolling/tty-clock-git/checksums rename to community-mod/stable/tty-clock/checksums diff --git a/community-mod/rolling/tty-clock-git/depends b/community-mod/stable/tty-clock/depends similarity index 100% rename from community-mod/rolling/tty-clock-git/depends rename to community-mod/stable/tty-clock/depends diff --git a/community-mod/rolling/tty-clock-git/sources b/community-mod/stable/tty-clock/sources similarity index 100% rename from community-mod/rolling/tty-clock-git/sources rename to community-mod/stable/tty-clock/sources diff --git a/community-mod/rolling/tty-clock-git/version b/community-mod/stable/tty-clock/version similarity index 100% rename from community-mod/rolling/tty-clock-git/version rename to community-mod/stable/tty-clock/version diff --git a/community-mod/rolling/uthash-git/build b/community-mod/stable/uthash/build similarity index 100% rename from community-mod/rolling/uthash-git/build rename to community-mod/stable/uthash/build diff --git a/community-mod/rolling/uthash-git/checksums b/community-mod/stable/uthash/checksums similarity index 100% rename from community-mod/rolling/uthash-git/checksums rename to community-mod/stable/uthash/checksums diff --git a/community-mod/rolling/uthash-git/sources b/community-mod/stable/uthash/sources similarity index 100% rename from community-mod/rolling/uthash-git/sources rename to community-mod/stable/uthash/sources diff --git a/community-mod/rolling/uthash-git/version b/community-mod/stable/uthash/version similarity index 100% rename from community-mod/rolling/uthash-git/version rename to community-mod/stable/uthash/version diff --git a/community-mod/rolling/wireguard-tools-git/build b/community-mod/stable/wireguard-tools/build similarity index 100% rename from community-mod/rolling/wireguard-tools-git/build rename to community-mod/stable/wireguard-tools/build diff --git a/community-mod/rolling/wireguard-tools-git/checksums b/community-mod/stable/wireguard-tools/checksums similarity index 100% rename from community-mod/rolling/wireguard-tools-git/checksums rename to community-mod/stable/wireguard-tools/checksums diff --git a/community-mod/rolling/wireguard-tools-git/sources b/community-mod/stable/wireguard-tools/sources similarity index 100% rename from community-mod/rolling/wireguard-tools-git/sources rename to community-mod/stable/wireguard-tools/sources diff --git a/community-mod/rolling/wireguard-tools-git/version b/community-mod/stable/wireguard-tools/version similarity index 100% rename from community-mod/rolling/wireguard-tools-git/version rename to community-mod/stable/wireguard-tools/version diff --git a/community-mod/rolling/xbg-git/build b/community-mod/stable/xbg/build similarity index 100% rename from community-mod/rolling/xbg-git/build rename to community-mod/stable/xbg/build diff --git a/community-mod/rolling/xbg-git/checksums b/community-mod/stable/xbg/checksums similarity index 100% rename from community-mod/rolling/xbg-git/checksums rename to community-mod/stable/xbg/checksums diff --git a/community-mod/rolling/xbg-git/depends b/community-mod/stable/xbg/depends similarity index 100% rename from community-mod/rolling/xbg-git/depends rename to community-mod/stable/xbg/depends diff --git a/community-mod/rolling/xbg-git/sources b/community-mod/stable/xbg/sources similarity index 100% rename from community-mod/rolling/xbg-git/sources rename to community-mod/stable/xbg/sources diff --git a/community-mod/rolling/xbg-git/version b/community-mod/stable/xbg/version similarity index 100% rename from community-mod/rolling/xbg-git/version rename to community-mod/stable/xbg/version diff --git a/community-mod/rolling/xcb-util-xrm-git/build b/community-mod/stable/xcb-util-xrm/build similarity index 100% rename from community-mod/rolling/xcb-util-xrm-git/build rename to community-mod/stable/xcb-util-xrm/build diff --git a/community-mod/rolling/xcb-util-xrm-git/checksums b/community-mod/stable/xcb-util-xrm/checksums similarity index 100% rename from community-mod/rolling/xcb-util-xrm-git/checksums rename to community-mod/stable/xcb-util-xrm/checksums diff --git a/community-mod/rolling/xcb-util-xrm-git/depends b/community-mod/stable/xcb-util-xrm/depends similarity index 100% rename from community-mod/rolling/xcb-util-xrm-git/depends rename to community-mod/stable/xcb-util-xrm/depends diff --git a/community-mod/rolling/xcb-util-xrm-git/sources b/community-mod/stable/xcb-util-xrm/sources similarity index 100% rename from community-mod/rolling/xcb-util-xrm-git/sources rename to community-mod/stable/xcb-util-xrm/sources diff --git a/community-mod/rolling/xcb-util-xrm-git/version b/community-mod/stable/xcb-util-xrm/version similarity index 100% rename from community-mod/rolling/xcb-util-xrm-git/version rename to community-mod/stable/xcb-util-xrm/version diff --git a/community-mod/rolling/xclip-git/build b/community-mod/stable/xclip/build similarity index 100% rename from community-mod/rolling/xclip-git/build rename to community-mod/stable/xclip/build diff --git a/community-mod/rolling/xclip-git/checksums b/community-mod/stable/xclip/checksums similarity index 100% rename from community-mod/rolling/xclip-git/checksums rename to community-mod/stable/xclip/checksums diff --git a/community-mod/rolling/xclip-git/depends b/community-mod/stable/xclip/depends similarity index 100% rename from community-mod/rolling/xclip-git/depends rename to community-mod/stable/xclip/depends diff --git a/community-mod/rolling/xclip-git/sources b/community-mod/stable/xclip/sources similarity index 100% rename from community-mod/rolling/xclip-git/sources rename to community-mod/stable/xclip/sources diff --git a/community-mod/rolling/xclip-git/version b/community-mod/stable/xclip/version similarity index 100% rename from community-mod/rolling/xclip-git/version rename to community-mod/stable/xclip/version diff --git a/community-mod/rolling/xdotool-git/build b/community-mod/stable/xdotool/build similarity index 100% rename from community-mod/rolling/xdotool-git/build rename to community-mod/stable/xdotool/build diff --git a/community-mod/rolling/xdotool-git/checksums b/community-mod/stable/xdotool/checksums similarity index 100% rename from community-mod/rolling/xdotool-git/checksums rename to community-mod/stable/xdotool/checksums diff --git a/community-mod/rolling/xdotool-git/depends b/community-mod/stable/xdotool/depends similarity index 100% rename from community-mod/rolling/xdotool-git/depends rename to community-mod/stable/xdotool/depends diff --git a/community-mod/rolling/xdotool-git/sources b/community-mod/stable/xdotool/sources similarity index 100% rename from community-mod/rolling/xdotool-git/sources rename to community-mod/stable/xdotool/sources diff --git a/community-mod/rolling/xdotool-git/version b/community-mod/stable/xdotool/version similarity index 100% rename from community-mod/rolling/xdotool-git/version rename to community-mod/stable/xdotool/version diff --git a/community-mod/rolling/xkb-switch-git/build b/community-mod/stable/xkb-switch/build similarity index 100% rename from community-mod/rolling/xkb-switch-git/build rename to community-mod/stable/xkb-switch/build diff --git a/community-mod/rolling/xkb-switch-git/checksums b/community-mod/stable/xkb-switch/checksums similarity index 100% rename from community-mod/rolling/xkb-switch-git/checksums rename to community-mod/stable/xkb-switch/checksums diff --git a/community-mod/rolling/xkb-switch-git/depends b/community-mod/stable/xkb-switch/depends similarity index 100% rename from community-mod/rolling/xkb-switch-git/depends rename to community-mod/stable/xkb-switch/depends diff --git a/community-mod/rolling/xkb-switch-git/sources b/community-mod/stable/xkb-switch/sources similarity index 100% rename from community-mod/rolling/xkb-switch-git/sources rename to community-mod/stable/xkb-switch/sources diff --git a/community-mod/rolling/xkb-switch-git/version b/community-mod/stable/xkb-switch/version similarity index 100% rename from community-mod/rolling/xkb-switch-git/version rename to community-mod/stable/xkb-switch/version diff --git a/community-mod/rolling/xwallpaper-git/build b/community-mod/stable/xwallpaper/build similarity index 100% rename from community-mod/rolling/xwallpaper-git/build rename to community-mod/stable/xwallpaper/build diff --git a/community-mod/rolling/xwallpaper-git/checksums b/community-mod/stable/xwallpaper/checksums similarity index 100% rename from community-mod/rolling/xwallpaper-git/checksums rename to community-mod/stable/xwallpaper/checksums diff --git a/community-mod/rolling/xwallpaper-git/depends b/community-mod/stable/xwallpaper/depends similarity index 100% rename from community-mod/rolling/xwallpaper-git/depends rename to community-mod/stable/xwallpaper/depends diff --git a/community-mod/rolling/xwallpaper-git/sources b/community-mod/stable/xwallpaper/sources similarity index 100% rename from community-mod/rolling/xwallpaper-git/sources rename to community-mod/stable/xwallpaper/sources diff --git a/community-mod/rolling/xwallpaper-git/version b/community-mod/stable/xwallpaper/version similarity index 100% rename from community-mod/rolling/xwallpaper-git/version rename to community-mod/stable/xwallpaper/version diff --git a/community-mod/rolling/xwm-git/build b/community-mod/stable/xwm/build similarity index 100% rename from community-mod/rolling/xwm-git/build rename to community-mod/stable/xwm/build diff --git a/community-mod/rolling/xwm-git/checksums b/community-mod/stable/xwm/checksums similarity index 100% rename from community-mod/rolling/xwm-git/checksums rename to community-mod/stable/xwm/checksums diff --git a/community-mod/rolling/xwm-git/depends b/community-mod/stable/xwm/depends similarity index 100% rename from community-mod/rolling/xwm-git/depends rename to community-mod/stable/xwm/depends diff --git a/community-mod/rolling/xwm-git/sources b/community-mod/stable/xwm/sources similarity index 100% rename from community-mod/rolling/xwm-git/sources rename to community-mod/stable/xwm/sources diff --git a/community-mod/rolling/xwm-git/version b/community-mod/stable/xwm/version similarity index 100% rename from community-mod/rolling/xwm-git/version rename to community-mod/stable/xwm/version diff --git a/mbase/snarf b/mbase/snarf new file mode 120000 index 0000000..7250101 --- /dev/null +++ b/mbase/snarf @@ -0,0 +1 @@ +../ports/snarf \ No newline at end of file diff --git a/mbase/xprompt b/mbase/xprompt deleted file mode 120000 index 5f11e02..0000000 --- a/mbase/xprompt +++ /dev/null @@ -1 +0,0 @@ -../ports/xprompt \ No newline at end of file diff --git a/mbase/xprompt-git b/mbase/xprompt-git new file mode 120000 index 0000000..f586a77 --- /dev/null +++ b/mbase/xprompt-git @@ -0,0 +1 @@ +../ports/xprompt-git \ No newline at end of file diff --git a/mbase/xwallpaper b/mbase/xwallpaper index 058c28c..be47d27 120000 --- a/mbase/xwallpaper +++ b/mbase/xwallpaper @@ -1 +1 @@ -../ports/xwallpaper \ No newline at end of file +../community-mod/stable/xwallpaper \ No newline at end of file diff --git a/ports/snarf/tmp/9menu b/ports/snarf/tmp/9menu deleted file mode 100755 index 74c4214..0000000 Binary files a/ports/snarf/tmp/9menu and /dev/null differ diff --git a/ports/snarf/tmp/9menu-1.10.shar b/ports/snarf/tmp/9menu-1.10.shar deleted file mode 100755 index 1c5c7f7..0000000 --- a/ports/snarf/tmp/9menu-1.10.shar +++ /dev/null @@ -1,1141 +0,0 @@ -#! /bin/sh -echo - 'README' -cat << 'EOF-README' > 'README' -Thu Mar 19 23:51:38 IST 2015 - -This is 9menu, a simple program that allows you to create X menus from the -shell, where each menu item will run a command. 9menu is intended for use -with 9wm, but can be used with any other window manager. - -The idea of a command line menu generator is from xmenu, but xmenu was -exclusively a pop-up menu, not what I wanted. - -The files are: - -README --- this file -9menu.1 --- man page for 9menu -9menu.c --- source code -Imakefile --- a contributed Imakefile, - from Bengt Kleberg -Makefile.noimake --- a simple makefile. - -Licence -======= - - 9menu is free software, and is Copyright (c) 1994 by David Hogan and - Arnold Robbins. Permission is granted to all sentient beings to use - this software, to make copies of it, and to distribute those copies, - provided that: - - (1) the copyright and licence notices are left intact - (2) the recipients are aware that it is free software - (3) any unapproved changes in functionality are either - (i) only distributed as patches - or (ii) distributed as a new program which is not called 9menu - and whose documentation gives credit where it is due - (4) the authors are not held responsible for any defects - or shortcomings in the software, or damages caused by it. - - There is no warranty for this software. Have a nice day. - --- -Arnold Robbins -arnold@skeeve.com -EOF-README -echo - '9menu.1' -cat << 'EOF-9menu.1' > '9menu.1' -.TH 9MENU 1 "Apr 16 2020" -.SH NAME -9menu \- create a menu to run commands -.SH SYNOPSIS -.B 9menu -[ -.BI \-bg " background-color" -] [ -.BI \-display " displayname" -] [ -.BI \-file " name" -] [ -.BI \-fg " foreground-color" -] [ -.BI \-font " fname" -] [ -.BI \-geometry " geom" -] [ -.B \-iconic -] [ -.BI \-label " name" -] [ -.B \-path -] [ -.B \-popdown -] [ -.B \-popup -] [ -.BI \-shell " prog" -] [ -.B \-teleport -] [ -.B \-version -] [ -.B \-warp -] -.IR menuitem [: command ] -\&... -.SH DESCRIPTION -.I 9menu -is a simple program that accepts a list of menu item and command -pairs on the command line. -It creates a window that consists of nothing but a menu. -When a particular item is selected, the corresponding command is executed. -.PP -Either -.B Button1 -or -.B Button3 -may be used to select an item. -Alternatively, the UP-ARROW and DOWN-ARROW cursor keys may be used to -highlight different items, with ENTER used to select the -highlighted item. -.PP -Menu items and commands are separated by a colon. The colon and command -are optional. If they are missing, then the menu item is assumed to be -a command that can be executed directly. -.PP -A menu item consisting of the word -.B exit -causes -.I 9menu -to exit when it is selected. -Otherwise, to stop -.I 9menu , -delete it using the window manager. -The -.B exit -menu item can be anywhere in the list, although by convention it is last. -If a command is supplied along with the -.B exit -item, that command is executed before -.I 9menu -exits. -.PP -If a menu item's command starts with the word -.BR exec , -.I 9menu -ceases operating after launching it. -.PP -.I 9menu -accepts the following command line options, -listed alphabetically: -.TP -.BI \-bg " background-color" -Set the background color to -.IR background-color . -By default, the background color is white. -.TP -.BI \-display " displayname" -Use the X display -.IR displayname , -instead of the default display. -.TP -.BI \-file " filename" -Read items to display from -.IR filename , -in addition to any other command line arguments. This is intended for use -with -.B #! -in scripts. -A -.I filename -of -.B - -causes -.I 9menu -to read items from standard input. -.TP -.BI \-fg " foreground-color" -Set the foreground color to -.IR foreground-color . -By default, the foreground color is black. -.TP -.BI \-font " fname" -Use the font -.IR fname , -instead of one of the default fonts built into -.IR 9wm . -.TP -.BI \-geometry " geom" -Use -.I geom -(a geometry in standard X format) as the geometry of the menu. -This is most useful for specifying the initial location of the menu. -Note that -.I 9menu -overrides the size part of the geometry specification. The window is -always just large enough to hold the menu. -.TP -.B \-iconic -Start up in the iconified state. -.TP -.BI \-label " name" -Change both the window and icon labels of the window to -.IR name . -The default label is the last component of the path used to run -.IR 9menu , -typically, -.BR 9menu . -.TP -.B \-path -Append the current directory to the command search path. -.TP -.B \-popdown -Once an item is selected, the menu window automatically iconifies itself. -.TP -.B \-popup -Act like a pop-up menu. Once a menu item is selected, -.I 9menu -exits. -This option overrides -.BR \-popdown . -.TP -.BI \-shell " prog" -Use -.I prog -as the shell to run commands, instead of -.BR /bin/sh . -A popular alternative shell is -.IR rc (1). -If the shell cannot be executed, -.I 9menu -then -.I silently -falls back to using -.BR /bin/sh . -.TP -.B \-teleport -Move the menu to where the mouse is when the menu is uniconified. -This option is particularly useful when combined with -.BR \-popdown . -.TP -.B \-version -This option prints the version of -.I 9menu -on the standard output, and then exits with an exit value of zero. -.TP -.B \-warp -Warp the mouse to the menu when the menu is uniconified. -After the selection is made, restore the mouse to where it was. -This option is particularly useful when combined with -.BR \-popdown . -.SH EXAMPLES -.ft B -.nf -9menu \-label Remotes xterm 'acme:ssh acme xterm' 'herman:ssh herman 9term' & -.sp -9menu \-label 'X progs' gv xdvi xeyes xneko exit & -.ft -.fi -.SH SEE ALSO -.IR sam (1), -.IR 9term (1), -.IR 9wm (1), -.IR rc (1). -.PP -.IR "The Plan 9 Programmer's Manual" . -.SH VERSION -This man page documents -.I 9menu -version 1.10. -.PP -Source code is available from -.BR ftp://ftp.freefriends.org/arnold/Source/9menu.shar.gz . -.PP -The code with full history is also available via Git from -.BR http://github.com/arnoldrobbins/9menu . -.SH BUGS -This program has grown to have too many options. -.SH AUTHORS -The initial idea for this program was by Arnold Robbins, after having -worked with John Mackin's GWM Blit emulation. -Matty Farrow wrote a version using libXg, from which some ideas were borrowed. -This code was written by David Hogan and Arnold Robbins. -Rich Salz motivated the -.B \-shell -option. -Christopher Platt motivated the -.B \-teleport -option. -John O'Donnell supplied the basic code for the -.B \-fg -and -.B \-bg -options. -Peter Seebach provided the base code for the -.B \-file -and -.B \-path -options. -Matthias Bauer made it work with the keyboard. -EOF-9menu.1 -echo - '9menu.c' -cat << 'EOF-9menu.c' > '9menu.c' -/* - * 9menu.c - * - * This program puts up a window that is just a menu, and executes - * commands that correspond to the items selected. - * - * Initial idea: Arnold Robbins - * Version using libXg: Matty Farrow (some ideas borrowed) - * This code by: David Hogan and Arnold Robbins - * - * Copyright (c), Arnold Robbins and David Hogan - * - * Arnold Robbins - * arnold@skeeve.com - * October, 1994 - * - * Code added to cause pop-up (unIconify) to move menu to mouse. - * Christopher Platt - * platt@coos.dartmouth.edu - * May, 1995 - * - * Said code moved to -teleport option, and -warp option added. - * Arnold Robbins - * June, 1995 - * - * Code added to allow -fg and -bg colors. - * John M. O'Donnell - * odonnell@stpaul.lampf.lanl.gov - * April, 1997 - * - * Code added for -file and -path options. - * Peter Seebach - * seebs@plethora.net - * October, 2001 - * - * Code added to allow up and down arrow keys to go up - * and down menu and RETURN to select an item. - * Matthias Bauer - * bauerm@immd1.informatik.uni-erlangen.de - * June, 2003 - * - * spawn() changed to do exec directly if -popup, based on - * suggestion from - * Andrew Stribblehill - * a.d.stribblehill@durham.ac.uk - * June, 2004 - * - * Allow "-" to mean read info from stdin. - * suggestion from - * Peter Bailey, by way of - * Andrew Stribblehill - * a.d.stribblehill@durham.ac.uk - * August, 2005 - * - * Fix compile warnings (getcwd and getting a key sym). - * Arnold Robbins - * January, 2015. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -char version[] = "9menu version 1.10"; - -Display *dpy; /* lovely X stuff */ -int screen; -Window root; -Window menuwin; -GC gc; -unsigned long black; -unsigned long white; -char *fgcname = NULL; -char *bgcname = NULL; -Colormap defcmap; -XColor color; -XFontStruct *font; -Atom wm_protocols; -Atom wm_delete_window; -int g_argc; /* for XSetWMProperties to use */ -char **g_argv; -int f_argc; /* for labels read from files */ -char **f_argv; -char *geometry = ""; -int savex, savey; -Window savewindow; - -char *fontlist[] = { /* default font list if no -font */ - "pelm.latin1.9", - "lucm.latin1.9", - "blit", - "9x15bold", - "9x15", - "lucidasanstypewriter-12", - "fixed", - NULL -}; - -/* the 9menu icon, for garish window managers */ -#define nine_menu_width 40 -#define nine_menu_height 40 -static unsigned char nine_menu_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, - 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0xe0, 0x01, 0x04, 0x00, 0x80, 0xe0, 0x00, 0xfc, 0xff, 0xff, 0xe0, - 0x01, 0xfc, 0xff, 0xff, 0x20, 0x03, 0x04, 0x00, 0x80, 0x00, 0x06, 0x04, - 0x00, 0x80, 0x00, 0x0c, 0xfc, 0xff, 0xff, 0x00, 0x08, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, - 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -/* Modify this to your liking */ -#define CONFIG_MENU_UP_KEY XK_Up -#define CONFIG_MENU_DOWN_KEY XK_Down -#define CONFIG_MENU_SELECT_KEY XK_Return - -char *progname; /* my name */ -char *displayname; /* X display */ -char *fontname; /* font */ -char *labelname; /* window and icon name */ -char *filename; /* file to read options or labels from */ -bool popup = false; /* true if we're a popup window */ -bool popdown = false; /* autohide after running a command */ -bool iconic = false; /* start iconified */ -bool teleport = false; /* teleport the menu */ -bool warp = false; /* warp the mouse */ - -char **labels; /* list of labels and commands */ -char **commands; -int numitems; - -char *shell = "/bin/sh"; /* default shell */ - -extern void usage(), run_menu(), spawn(char *com), ask_wm_for_delete(); -extern void reap(int sig), set_wm_hints(int wide, int high); -extern void redraw(int cur, int high, int wide); -extern void teleportmenu(int cur, int wide, int high); -extern void warpmouse(int cur, int wide, int high); -extern void restoremouse(); -extern void memory(char *msg); -extern int args(int argc, char **argv); - -/* memory --- print the out of memory message and die */ - -void -memory(char *s) -{ - fprintf(stderr, "%s: couldn't allocate memory for %s: %s\n", progname, s, strerror(errno)); - exit(1); -} - -/* args --- go through the argument list, set options */ - -int -args(int argc, char **argv) -{ - int i; - - if (argc == 0 || argv == NULL || argv[0][0] == '\0') - return -1; - - for (i = 0; i < argc && argv[i] != NULL; i++) { - if (strcmp(argv[i], "-display") == 0) { - displayname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-file") == 0) { - filename = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-font") == 0) { - fontname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-geometry") == 0) { - geometry = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-label") == 0) { - labelname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-shell") == 0) { - shell = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-popup") == 0) - popup = true; - else if (strcmp(argv[i], "-popdown") == 0) - popdown = true; - else if (strcmp(argv[i], "-fg") == 0) - fgcname = argv[++i]; - else if (strcmp(argv[i], "-bg") == 0) - bgcname = argv[++i]; - else if (strcmp(argv[i], "-iconic") == 0) - iconic = true; - else if (strcmp(argv[i], "-path") == 0) { - char pathbuf[MAXPATHLEN]; - char *s, *t; - - s = getenv("PATH"); - if (s != NULL) { - /* append current dir to PATH */ - char *cp = getcwd(pathbuf, MAXPATHLEN); - t = malloc(strlen(s) + strlen(pathbuf) + 7); - sprintf(t, "PATH=%s:%s", pathbuf, s); - putenv(t); - } - } else if (strcmp(argv[i], "-teleport") == 0) - teleport = true; - else if (strcmp(argv[i], "-warp") == 0) - warp = true; - else if (strcmp(argv[i], "-version") == 0) { - printf("%s\n", version); - exit(0); - } else if (argv[i][0] == '-') - usage(); - else - break; - } - return i; -} - -/* main --- crack arguments, set up X stuff, run the main menu loop */ - -int -main(int argc, char **argv) -{ - int i, j; - char *cp; - XGCValues gv; - unsigned long mask; - int nlabels = 0; - - g_argc = argc; - g_argv = argv; - - /* set default label name */ - if ((cp = strrchr(argv[0], '/')) == NULL) - labelname = argv[0]; - else - labelname = ++cp; - - ++argv; - --argc; - - /* and program name for diagnostics */ - progname = labelname; - - i = args(argc, argv); - - numitems = argc - i; - - if (numitems <= 0 && filename == NULL) - usage(); - - if (filename) { - /* Read options and labels from file */ - char fbuf[1024]; - FILE *fp; - - if (strcmp(filename, "-") == 0) { - fp = stdin; - } else { - fp = fopen(filename, "r"); - } - - if (fp == NULL) { - fprintf(stderr, "%s: couldn't open '%s': %s\n", progname, - filename, strerror(errno)); - exit(1); - } - - while (fgets(fbuf, sizeof fbuf, fp)) { - char *s = fbuf; - strtok(s, "\n"); - if (s[0] == '-') { - char *temp[3]; - temp[0] = s; - temp[1] = strchr(s, ' '); - if (temp[1]) { - *(temp[1]++) = '\0'; - s = malloc(strlen(temp[1]) + 1); - if (s == NULL) - memory("temporary argument"); - strcpy(s, temp[1]); - temp[1] = s; - } - temp[2] = 0; - args(temp[1] ? 2 : 1, temp); - continue; - } - if (s[0] == '#') - continue; - /* allow - in menu items to be escaped */ - if (s[0] == '\\') - ++s; - /* allocate space */ - if (f_argc < nlabels + 1) { - int k; - char **temp = malloc(sizeof(char *) * (f_argc + 5)); - if (temp == 0) - memory("temporary item"); - - for (k = 0; k < nlabels; k++) - temp[k] = f_argv[k]; - - free(f_argv); - f_argv = temp; - f_argc += 5; - } - f_argv[nlabels] = malloc(strlen(s) + 1); - if (f_argv[nlabels] == NULL) - memory("temporary text"); - strcpy(f_argv[nlabels], s); - ++nlabels; - } - } - - labels = (char **) malloc((numitems + nlabels) * sizeof(char *)); - commands = (char **) malloc((numitems + nlabels) * sizeof(char *)); - if (commands == NULL || labels == NULL) - memory("command and label arrays"); - - for (j = 0; j < numitems; j++) { - labels[j] = argv[i + j]; - if ((cp = strchr(labels[j], ':')) != NULL) { - *cp++ = '\0'; - commands[j] = cp; - } else - commands[j] = labels[j]; - } - - /* - * Now we no longer need i (our offset into argv) so we recycle it, - * while keeping the old value of j! - */ - for (i = 0; i < nlabels; i++) { - labels[j] = f_argv[i]; - if ((cp = strchr(labels[j], ':')) != NULL) { - *cp++ = '\0'; - commands[j] = cp; - } else - commands[j] = labels[j]; - ++j; - } - - /* And now we merge the totals */ - numitems += nlabels; - - dpy = XOpenDisplay(displayname); - if (dpy == NULL) { - fprintf(stderr, "%s: cannot open display", progname); - if (displayname != NULL) - fprintf(stderr, " %s", displayname); - fprintf(stderr, "\n"); - exit(1); - } - - screen = DefaultScreen(dpy); - root = RootWindow(dpy, screen); - - /* - * This used to be - * black = BlackPixel(dpy, screen); - * white = WhitePixel(dpy, screen); - */ - defcmap = DefaultColormap(dpy, screen); - if (fgcname == NULL - || XParseColor(dpy, defcmap, fgcname, &color) == 0 - || XAllocColor(dpy, defcmap, &color) == 0) - black = BlackPixel(dpy, screen); - else - black = color.pixel; - - if (bgcname == NULL - || XParseColor(dpy, defcmap, bgcname, &color) == 0 - || XAllocColor(dpy, defcmap, &color) == 0) - white = WhitePixel(dpy, screen); - else - white = color.pixel; - - /* try user's font first */ - if (fontname != NULL) { - font = XLoadQueryFont(dpy, fontname); - if (font == NULL) - fprintf(stderr, "%s: warning: can't load font %s\n", - progname, fontname); - } - - /* if no user font, try one of our default fonts */ - if (font == NULL) { - for (i = 0; fontlist[i] != NULL; i++) { - font = XLoadQueryFont(dpy, fontlist[i]); - if (font != NULL) - break; - } - } - - if (font == NULL) { - fprintf(stderr, "%s: fatal: cannot load a font\n", progname); - exit(1); - } - - gv.foreground = black^white; - gv.background = white; - gv.font = font->fid; - gv.function = GXxor; - gv.line_width = 0; - mask = GCForeground | GCBackground | GCFunction | GCFont | GCLineWidth; - gc = XCreateGC(dpy, root, mask, &gv); - - signal(SIGCHLD, reap); - - run_menu(); - - XCloseDisplay(dpy); - exit(0); -} - -/* spawn --- run a command */ - -void -spawn(char *com) -{ - int pid; - static char *sh_base = NULL; - - if (sh_base == NULL) { - sh_base = strrchr(shell, '/'); - if (sh_base != NULL) - sh_base++; - else - sh_base = shell; - } - - /* - * Since -popup means run command and exit, just - * fall straight into exec code. Thus only fork - * if not popup. - */ - if (! popup) { - if (strncmp(com, "exec ", 5) != 0) { - pid = fork(); - if (pid < 0) { - fprintf(stderr, "%s: can't fork: %s\n", progname, strerror(errno)); - return; - } else if (pid > 0) - return; - } else { - com += 5; - } - } - - close(ConnectionNumber(dpy)); - execl(shell, sh_base, "-c", com, NULL); - execl("/bin/sh", "sh", "-c", com, NULL); - _exit(1); -} - -/* reap --- collect dead children */ - -void -reap(int sig) -{ - (void) wait((int *) NULL); - signal(sig, reap); -} - -/* usage --- print a usage message and die */ - -void -usage() -{ - fprintf(stderr, "usage: %s [-display displayname] [-font fname] ", progname); - fprintf(stderr, "[-file filename] [-path]"); - fprintf(stderr, "[-geometry geom] [-shell shell] [-label name] "); - fprintf(stderr, "[-popup] [-popdown] [-iconic] [-teleport] "); - fprintf(stderr, "[-warp] [-version] menitem:command ...\n"); - exit(0); -} - -/* run_menu --- put up the window, execute selected commands */ - -void -run_menu() -{ - XEvent ev; - XClientMessageEvent *cmsg; - KeySym key; - int i, cur, old, wide, high, ico, dx, dy; - - dx = 0; - for (i = 0; i < numitems; i++) { - wide = XTextWidth(font, labels[i], strlen(labels[i])) + 4; - if (wide > dx) - dx = wide; - } - wide = dx; - - old = cur = -1; - - high = font->ascent + font->descent + 1; - dy = numitems * high; - - set_wm_hints(wide, dy); - - ask_wm_for_delete(); - -#define MenuMask (ButtonPressMask|ButtonReleaseMask\ - |LeaveWindowMask|PointerMotionMask|ButtonMotionMask\ - |ExposureMask|StructureNotifyMask|KeyPressMask) - - XSelectInput(dpy, menuwin, MenuMask); - - XMapWindow(dpy, menuwin); - - ico = 1; /* warp to first item */ - i = 0; /* save menu Item position */ - - for (;;) { - XNextEvent(dpy, &ev); - switch (ev.type) { - default: - fprintf(stderr, "%s: unknown ev.type %d\n", - progname, ev.type); - break; - case ButtonRelease: - /* allow button 1 or button 3 */ - if (ev.xbutton.button == Button2) - break; - i = ev.xbutton.y/high; - if (ev.xbutton.x < 0 || ev.xbutton.x > wide) - break; - else if (i < 0 || i >= numitems) - break; - if (warp) - restoremouse(); - if (strcmp(labels[i], "exit") == 0) { - if (commands[i] != labels[i]) { - spawn(commands[i]); - } - return; - } - spawn(commands[i]); - if (popup) - return; - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - if (popdown) - XIconifyWindow(dpy, menuwin, screen); - cur = -1; - break; - case ButtonPress: - case MotionNotify: - old = cur; - cur = ev.xbutton.y/high; - if (ev.xbutton.x < 0 || ev.xbutton.x > wide) - cur = -1; - else if (cur < 0 || cur >= numitems) - cur = -1; - if (cur == old) - break; - if (old >= 0 && old < numitems) - XFillRectangle(dpy, menuwin, gc, 0, old*high, wide, high); - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - break; - case KeyPress: - /* http://stackoverflow.com/questions/9838385/replace-of-xkeycodetokeysym */ - key = XkbKeycodeToKeysym(dpy, ev.xkey.keycode, 0, - ev.xkey.state & ShiftMask ? 1 : 0); - if (key != CONFIG_MENU_UP_KEY - && key != CONFIG_MENU_DOWN_KEY - && key != CONFIG_MENU_SELECT_KEY) - break; - - /* adjust i so mapping will work */ - if (key == CONFIG_MENU_UP_KEY) { - old = cur; - cur--; - i--; - } else if (key == CONFIG_MENU_DOWN_KEY) { - old = cur; - cur++; - i++; - } - - while (cur < 0) - cur += numitems; - - cur %= numitems; - - if (key == CONFIG_MENU_UP_KEY || key == CONFIG_MENU_DOWN_KEY) { - if (cur == old) - break; - if (old >= 0 && old < numitems && cur != -1) - XFillRectangle(dpy, menuwin, gc, 0, old*high, wide, high); - if (cur >= 0 && cur < numitems && cur != -1) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - break; - } - - if (warp) - restoremouse(); - if (key == CONFIG_MENU_SELECT_KEY) { - if (strcmp(labels[cur], "exit") == 0) { - if (commands[cur] != labels[cur]) { - spawn(commands[cur]); - } - return; - } - spawn(commands[cur]); - } - - if (popup) - return; - if (popdown) - XIconifyWindow(dpy, menuwin, screen); - break; - case LeaveNotify: - cur = old = -1; - XClearWindow(dpy, menuwin); - redraw(cur, high, wide); - break; - case ReparentNotify: - case ConfigureNotify: - /* - * ignore these, they come from XMoveWindow - * and are enabled by Struct.. - */ - break; - case UnmapNotify: - ico = 1; - XClearWindow(dpy, menuwin); - break; - case MapNotify: - if (ico) { - if (teleport) - teleportmenu(i, wide, high); - else if (warp) - warpmouse(i, wide, high); - } - XClearWindow(dpy, menuwin); - redraw(cur = i, high, wide); - ico = 0; - break; - case Expose: - XClearWindow(dpy, menuwin); - redraw(cur, high, wide); - break; - case ClientMessage: - cmsg = &ev.xclient; - if (cmsg->message_type == wm_protocols - && cmsg->data.l[0] == wm_delete_window) - return; - case MappingNotify: /* why do we get this? */ - break; - } - } -} - -/* set_wm_hints --- set all the window manager hints */ - -void -set_wm_hints(int wide, int high) -{ - Pixmap iconpixmap; - XWMHints *wmhints; - XSizeHints *sizehints; - XClassHint *classhints; - XTextProperty wname, iname; - - if ((sizehints = XAllocSizeHints()) == NULL) - memory("size hints"); - - if ((wmhints = XAllocWMHints()) == NULL) - memory("window manager hints"); - - if ((classhints = XAllocClassHint()) == NULL) - memory("class hints"); - - /* fill in hints in order to parse geometry spec */ - sizehints->width = sizehints->min_width = sizehints->max_width = wide; - sizehints->height = sizehints->min_height = sizehints->max_height = high; - sizehints->flags = USSize|PSize|PMinSize|PMaxSize; - if (XWMGeometry(dpy, screen, geometry, "", 1, sizehints, - &sizehints->x, &sizehints->y, - &sizehints->width, &sizehints->height, - &sizehints->win_gravity) & (XValue|YValue)) - sizehints->flags |= USPosition; - - /* override -geometry for size of window */ - sizehints->width = sizehints->min_width = sizehints->max_width = wide; - sizehints->height = sizehints->min_height = sizehints->max_height = high; - - if (XStringListToTextProperty(& labelname, 1, & wname) == 0) - memory("window name structure"); - - if (XStringListToTextProperty(& labelname, 1, & iname) == 0) - memory("icon name structure"); - - menuwin = XCreateSimpleWindow(dpy, root, sizehints->x, sizehints->y, - sizehints->width, sizehints->height, 1, black, white); - - iconpixmap = XCreateBitmapFromData(dpy, menuwin, - nine_menu_bits, - nine_menu_width, - nine_menu_height); - - wmhints->icon_pixmap = iconpixmap; - wmhints->input = False; /* no keyboard input */ - if (iconic) - wmhints->initial_state = IconicState; - else - wmhints->initial_state = NormalState; - - wmhints->flags = IconPixmapHint | StateHint | InputHint; - - classhints->res_name = progname; - classhints->res_class = "9menu"; - -#ifdef SET_PROPERTIES_MANUALLY - /* - * For some reason, XSetWMProperties (see below) is failing - * John O'Donnell replaces it with the following commands - * (this leaves out XSetWMClientMachine, - * and also environment variable checking from ClassHint) - */ - XSetWMName(dpy, menuwin, &wname); - XSetWMIconName(dpy, menuwin, &iname); - XSetCommand(dpy, menuwin, g_argv, g_argc); - XSetWMHints(dpy, menuwin, wmhints); - XSetClassHint(dpy, menuwin, classhints); - XSetWMNormalHints(dpy, menuwin, sizehints); -#else - XSetWMProperties(dpy, menuwin, & wname, & iname, - g_argv, g_argc, sizehints, wmhints, classhints); -#endif -} - -/* ask_wm_for_delete --- jump through hoops to ask WM to delete us */ - -void -ask_wm_for_delete() -{ - int status; - - wm_protocols = XInternAtom(dpy, "WM_PROTOCOLS", False); - wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - status = XSetWMProtocols(dpy, menuwin, & wm_delete_window, 1); - - if (status != True) - fprintf(stderr, "%s: could not ask for clean delete\n", - progname); -} - -/* redraw --- actually redraw the menu */ - -void -redraw(int cur, int high, int wide) -{ - int tx, ty, i; - - for (i = 0; i < numitems; i++) { - tx = (wide - XTextWidth(font, labels[i], strlen(labels[i]))) / 2; - ty = i*high + font->ascent + 1; - XDrawString(dpy, menuwin, gc, tx, ty, labels[i], strlen(labels[i])); - } - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); -} - -/* teleportmenu --- move the menu to the right place */ - -void -teleportmenu(int cur, int wide, int high) -{ - int x, y, dummy; - Window wdummy; - - if (XQueryPointer(dpy, menuwin, &wdummy, &wdummy, &x, &y, - &dummy, &dummy, &dummy)) - XMoveWindow(dpy, menuwin, x-wide/2, y-cur*high-high/2); -} - -/* warpmouse --- bring the mouse to the menu */ - -void -warpmouse(int cur, int wide, int high) -{ - int dummy; - Window wdummy; - int offset; - - /* move tip of pointer into middle of menu item */ - offset = (font->ascent + font->descent + 1) / 2; - offset += 6; /* fudge factor */ - - if (XQueryPointer(dpy, menuwin, &wdummy, &wdummy, &savex, &savey, - &dummy, &dummy, &dummy)) - XWarpPointer(dpy, None, menuwin, 0, 0, 0, 0, - wide/2, cur*high-high/2+offset); -} - -/* restoremouse --- put the mouse back where it was */ - -void -restoremouse() -{ - XWarpPointer(dpy, menuwin, root, 0, 0, 0, 0, - savex, savey); -} -EOF-9menu.c -echo - 'Imakefile' -cat << 'EOF-Imakefile' > 'Imakefile' - INCLUDES = -I$(TOP) - DEPLIBS = $(DEPXLIBONLY) -LOCAL_LIBRARIES = $(XLIBONLY) - DEFINES = -DSHAPE #-DDEBUG -DDEBUG_EV - SRCS = 9menu.c - OBJS = 9menu.o - -ComplexProgramTarget(9menu) -EOF-Imakefile -echo - 'Makefile.noimake' -cat << 'EOF-Makefile.noimake' > 'Makefile.noimake' -# Makefile for 9menu. -# -# Edit to taste -# -# Arnold Robbins -# arnold@skeeve.atl.ga.us - -CC = gcc -CFLAGS = -g -O -LIBS = -lX11 - -9menu: 9menu.c - $(CC) $(CFLAGS) 9menu.c $(LIBS) -o 9menu -EOF-Makefile.noimake diff --git a/ports/snarf/tmp/9menu.1 b/ports/snarf/tmp/9menu.1 deleted file mode 100644 index eb67067..0000000 --- a/ports/snarf/tmp/9menu.1 +++ /dev/null @@ -1,232 +0,0 @@ -.TH 9MENU 1 "Apr 16 2020" -.SH NAME -9menu \- create a menu to run commands -.SH SYNOPSIS -.B 9menu -[ -.BI \-bg " background-color" -] [ -.BI \-display " displayname" -] [ -.BI \-file " name" -] [ -.BI \-fg " foreground-color" -] [ -.BI \-font " fname" -] [ -.BI \-geometry " geom" -] [ -.B \-iconic -] [ -.BI \-label " name" -] [ -.B \-path -] [ -.B \-popdown -] [ -.B \-popup -] [ -.BI \-shell " prog" -] [ -.B \-teleport -] [ -.B \-version -] [ -.B \-warp -] -.IR menuitem [: command ] -\&... -.SH DESCRIPTION -.I 9menu -is a simple program that accepts a list of menu item and command -pairs on the command line. -It creates a window that consists of nothing but a menu. -When a particular item is selected, the corresponding command is executed. -.PP -Either -.B Button1 -or -.B Button3 -may be used to select an item. -Alternatively, the UP-ARROW and DOWN-ARROW cursor keys may be used to -highlight different items, with ENTER used to select the -highlighted item. -.PP -Menu items and commands are separated by a colon. The colon and command -are optional. If they are missing, then the menu item is assumed to be -a command that can be executed directly. -.PP -A menu item consisting of the word -.B exit -causes -.I 9menu -to exit when it is selected. -Otherwise, to stop -.I 9menu , -delete it using the window manager. -The -.B exit -menu item can be anywhere in the list, although by convention it is last. -If a command is supplied along with the -.B exit -item, that command is executed before -.I 9menu -exits. -.PP -If a menu item's command starts with the word -.BR exec , -.I 9menu -ceases operating after launching it. -.PP -.I 9menu -accepts the following command line options, -listed alphabetically: -.TP -.BI \-bg " background-color" -Set the background color to -.IR background-color . -By default, the background color is white. -.TP -.BI \-display " displayname" -Use the X display -.IR displayname , -instead of the default display. -.TP -.BI \-file " filename" -Read items to display from -.IR filename , -in addition to any other command line arguments. This is intended for use -with -.B #! -in scripts. -A -.I filename -of -.B - -causes -.I 9menu -to read items from standard input. -.TP -.BI \-fg " foreground-color" -Set the foreground color to -.IR foreground-color . -By default, the foreground color is black. -.TP -.BI \-font " fname" -Use the font -.IR fname , -instead of one of the default fonts built into -.IR 9wm . -.TP -.BI \-geometry " geom" -Use -.I geom -(a geometry in standard X format) as the geometry of the menu. -This is most useful for specifying the initial location of the menu. -Note that -.I 9menu -overrides the size part of the geometry specification. The window is -always just large enough to hold the menu. -.TP -.B \-iconic -Start up in the iconified state. -.TP -.BI \-label " name" -Change both the window and icon labels of the window to -.IR name . -The default label is the last component of the path used to run -.IR 9menu , -typically, -.BR 9menu . -.TP -.B \-path -Append the current directory to the command search path. -.TP -.B \-popdown -Once an item is selected, the menu window automatically iconifies itself. -.TP -.B \-popup -Act like a pop-up menu. Once a menu item is selected, -.I 9menu -exits. -This option overrides -.BR \-popdown . -.TP -.BI \-shell " prog" -Use -.I prog -as the shell to run commands, instead of -.BR /bin/sh . -A popular alternative shell is -.IR rc (1). -If the shell cannot be executed, -.I 9menu -then -.I silently -falls back to using -.BR /bin/sh . -.TP -.B \-teleport -Move the menu to where the mouse is when the menu is uniconified. -This option is particularly useful when combined with -.BR \-popdown . -.TP -.B \-version -This option prints the version of -.I 9menu -on the standard output, and then exits with an exit value of zero. -.TP -.B \-warp -Warp the mouse to the menu when the menu is uniconified. -After the selection is made, restore the mouse to where it was. -This option is particularly useful when combined with -.BR \-popdown . -.SH EXAMPLES -.ft B -.nf -9menu \-label Remotes xterm 'acme:ssh acme xterm' 'herman:ssh herman 9term' & -.sp -9menu \-label 'X progs' gv xdvi xeyes xneko exit & -.ft -.fi -.SH SEE ALSO -.IR sam (1), -.IR 9term (1), -.IR 9wm (1), -.IR rc (1). -.PP -.IR "The Plan 9 Programmer's Manual" . -.SH VERSION -This man page documents -.I 9menu -version 1.10. -.PP -Source code is available from -.BR ftp://ftp.freefriends.org/arnold/Source/9menu.shar.gz . -.PP -The code with full history is also available via Git from -.BR http://github.com/arnoldrobbins/9menu . -.SH BUGS -This program has grown to have too many options. -.SH AUTHORS -The initial idea for this program was by Arnold Robbins, after having -worked with John Mackin's GWM Blit emulation. -Matty Farrow wrote a version using libXg, from which some ideas were borrowed. -This code was written by David Hogan and Arnold Robbins. -Rich Salz motivated the -.B \-shell -option. -Christopher Platt motivated the -.B \-teleport -option. -John O'Donnell supplied the basic code for the -.B \-fg -and -.B \-bg -options. -Peter Seebach provided the base code for the -.B \-file -and -.B \-path -options. -Matthias Bauer made it work with the keyboard. diff --git a/ports/snarf/tmp/9menu.c b/ports/snarf/tmp/9menu.c deleted file mode 100644 index db2097a..0000000 --- a/ports/snarf/tmp/9menu.c +++ /dev/null @@ -1,832 +0,0 @@ -/* - * 9menu.c - * - * This program puts up a window that is just a menu, and executes - * commands that correspond to the items selected. - * - * Initial idea: Arnold Robbins - * Version using libXg: Matty Farrow (some ideas borrowed) - * This code by: David Hogan and Arnold Robbins - * - * Copyright (c), Arnold Robbins and David Hogan - * - * Arnold Robbins - * arnold@skeeve.com - * October, 1994 - * - * Code added to cause pop-up (unIconify) to move menu to mouse. - * Christopher Platt - * platt@coos.dartmouth.edu - * May, 1995 - * - * Said code moved to -teleport option, and -warp option added. - * Arnold Robbins - * June, 1995 - * - * Code added to allow -fg and -bg colors. - * John M. O'Donnell - * odonnell@stpaul.lampf.lanl.gov - * April, 1997 - * - * Code added for -file and -path options. - * Peter Seebach - * seebs@plethora.net - * October, 2001 - * - * Code added to allow up and down arrow keys to go up - * and down menu and RETURN to select an item. - * Matthias Bauer - * bauerm@immd1.informatik.uni-erlangen.de - * June, 2003 - * - * spawn() changed to do exec directly if -popup, based on - * suggestion from - * Andrew Stribblehill - * a.d.stribblehill@durham.ac.uk - * June, 2004 - * - * Allow "-" to mean read info from stdin. - * suggestion from - * Peter Bailey, by way of - * Andrew Stribblehill - * a.d.stribblehill@durham.ac.uk - * August, 2005 - * - * Fix compile warnings (getcwd and getting a key sym). - * Arnold Robbins - * January, 2015. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -char version[] = "9menu version 1.10"; - -Display *dpy; /* lovely X stuff */ -int screen; -Window root; -Window menuwin; -GC gc; -unsigned long black; -unsigned long white; -char *fgcname = NULL; -char *bgcname = NULL; -Colormap defcmap; -XColor color; -XFontStruct *font; -Atom wm_protocols; -Atom wm_delete_window; -int g_argc; /* for XSetWMProperties to use */ -char **g_argv; -int f_argc; /* for labels read from files */ -char **f_argv; -char *geometry = ""; -int savex, savey; -Window savewindow; - -char *fontlist[] = { /* default font list if no -font */ - "pelm.latin1.9", - "lucm.latin1.9", - "blit", - "9x15bold", - "9x15", - "lucidasanstypewriter-12", - "fixed", - NULL -}; - -/* the 9menu icon, for garish window managers */ -#define nine_menu_width 40 -#define nine_menu_height 40 -static unsigned char nine_menu_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, - 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0xe0, 0x01, 0x04, 0x00, 0x80, 0xe0, 0x00, 0xfc, 0xff, 0xff, 0xe0, - 0x01, 0xfc, 0xff, 0xff, 0x20, 0x03, 0x04, 0x00, 0x80, 0x00, 0x06, 0x04, - 0x00, 0x80, 0x00, 0x0c, 0xfc, 0xff, 0xff, 0x00, 0x08, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, - 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, - 0x00, 0x80, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, - 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, - 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -/* Modify this to your liking */ -#define CONFIG_MENU_UP_KEY XK_Up -#define CONFIG_MENU_DOWN_KEY XK_Down -#define CONFIG_MENU_SELECT_KEY XK_Return - -char *progname; /* my name */ -char *displayname; /* X display */ -char *fontname; /* font */ -char *labelname; /* window and icon name */ -char *filename; /* file to read options or labels from */ -bool popup = false; /* true if we're a popup window */ -bool popdown = false; /* autohide after running a command */ -bool iconic = false; /* start iconified */ -bool teleport = false; /* teleport the menu */ -bool warp = false; /* warp the mouse */ - -char **labels; /* list of labels and commands */ -char **commands; -int numitems; - -char *shell = "/bin/sh"; /* default shell */ - -extern void usage(), run_menu(), spawn(char *com), ask_wm_for_delete(); -extern void reap(int sig), set_wm_hints(int wide, int high); -extern void redraw(int cur, int high, int wide); -extern void teleportmenu(int cur, int wide, int high); -extern void warpmouse(int cur, int wide, int high); -extern void restoremouse(); -extern void memory(char *msg); -extern int args(int argc, char **argv); - -/* memory --- print the out of memory message and die */ - -void -memory(char *s) -{ - fprintf(stderr, "%s: couldn't allocate memory for %s: %s\n", progname, s, strerror(errno)); - exit(1); -} - -/* args --- go through the argument list, set options */ - -int -args(int argc, char **argv) -{ - int i; - - if (argc == 0 || argv == NULL || argv[0][0] == '\0') - return -1; - - for (i = 0; i < argc && argv[i] != NULL; i++) { - if (strcmp(argv[i], "-display") == 0) { - displayname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-file") == 0) { - filename = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-font") == 0) { - fontname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-geometry") == 0) { - geometry = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-label") == 0) { - labelname = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-shell") == 0) { - shell = argv[i+1]; - i++; - } else if (strcmp(argv[i], "-popup") == 0) - popup = true; - else if (strcmp(argv[i], "-popdown") == 0) - popdown = true; - else if (strcmp(argv[i], "-fg") == 0) - fgcname = argv[++i]; - else if (strcmp(argv[i], "-bg") == 0) - bgcname = argv[++i]; - else if (strcmp(argv[i], "-iconic") == 0) - iconic = true; - else if (strcmp(argv[i], "-path") == 0) { - char pathbuf[MAXPATHLEN]; - char *s, *t; - - s = getenv("PATH"); - if (s != NULL) { - /* append current dir to PATH */ - char *cp = getcwd(pathbuf, MAXPATHLEN); - t = malloc(strlen(s) + strlen(pathbuf) + 7); - sprintf(t, "PATH=%s:%s", pathbuf, s); - putenv(t); - } - } else if (strcmp(argv[i], "-teleport") == 0) - teleport = true; - else if (strcmp(argv[i], "-warp") == 0) - warp = true; - else if (strcmp(argv[i], "-version") == 0) { - printf("%s\n", version); - exit(0); - } else if (argv[i][0] == '-') - usage(); - else - break; - } - return i; -} - -/* main --- crack arguments, set up X stuff, run the main menu loop */ - -int -main(int argc, char **argv) -{ - int i, j; - char *cp; - XGCValues gv; - unsigned long mask; - int nlabels = 0; - - g_argc = argc; - g_argv = argv; - - /* set default label name */ - if ((cp = strrchr(argv[0], '/')) == NULL) - labelname = argv[0]; - else - labelname = ++cp; - - ++argv; - --argc; - - /* and program name for diagnostics */ - progname = labelname; - - i = args(argc, argv); - - numitems = argc - i; - - if (numitems <= 0 && filename == NULL) - usage(); - - if (filename) { - /* Read options and labels from file */ - char fbuf[1024]; - FILE *fp; - - if (strcmp(filename, "-") == 0) { - fp = stdin; - } else { - fp = fopen(filename, "r"); - } - - if (fp == NULL) { - fprintf(stderr, "%s: couldn't open '%s': %s\n", progname, - filename, strerror(errno)); - exit(1); - } - - while (fgets(fbuf, sizeof fbuf, fp)) { - char *s = fbuf; - strtok(s, "\n"); - if (s[0] == '-') { - char *temp[3]; - temp[0] = s; - temp[1] = strchr(s, ' '); - if (temp[1]) { - *(temp[1]++) = '\0'; - s = malloc(strlen(temp[1]) + 1); - if (s == NULL) - memory("temporary argument"); - strcpy(s, temp[1]); - temp[1] = s; - } - temp[2] = 0; - args(temp[1] ? 2 : 1, temp); - continue; - } - if (s[0] == '#') - continue; - /* allow - in menu items to be escaped */ - if (s[0] == '\\') - ++s; - /* allocate space */ - if (f_argc < nlabels + 1) { - int k; - char **temp = malloc(sizeof(char *) * (f_argc + 5)); - if (temp == 0) - memory("temporary item"); - - for (k = 0; k < nlabels; k++) - temp[k] = f_argv[k]; - - free(f_argv); - f_argv = temp; - f_argc += 5; - } - f_argv[nlabels] = malloc(strlen(s) + 1); - if (f_argv[nlabels] == NULL) - memory("temporary text"); - strcpy(f_argv[nlabels], s); - ++nlabels; - } - } - - labels = (char **) malloc((numitems + nlabels) * sizeof(char *)); - commands = (char **) malloc((numitems + nlabels) * sizeof(char *)); - if (commands == NULL || labels == NULL) - memory("command and label arrays"); - - for (j = 0; j < numitems; j++) { - labels[j] = argv[i + j]; - if ((cp = strchr(labels[j], ':')) != NULL) { - *cp++ = '\0'; - commands[j] = cp; - } else - commands[j] = labels[j]; - } - - /* - * Now we no longer need i (our offset into argv) so we recycle it, - * while keeping the old value of j! - */ - for (i = 0; i < nlabels; i++) { - labels[j] = f_argv[i]; - if ((cp = strchr(labels[j], ':')) != NULL) { - *cp++ = '\0'; - commands[j] = cp; - } else - commands[j] = labels[j]; - ++j; - } - - /* And now we merge the totals */ - numitems += nlabels; - - dpy = XOpenDisplay(displayname); - if (dpy == NULL) { - fprintf(stderr, "%s: cannot open display", progname); - if (displayname != NULL) - fprintf(stderr, " %s", displayname); - fprintf(stderr, "\n"); - exit(1); - } - - screen = DefaultScreen(dpy); - root = RootWindow(dpy, screen); - - /* - * This used to be - * black = BlackPixel(dpy, screen); - * white = WhitePixel(dpy, screen); - */ - defcmap = DefaultColormap(dpy, screen); - if (fgcname == NULL - || XParseColor(dpy, defcmap, fgcname, &color) == 0 - || XAllocColor(dpy, defcmap, &color) == 0) - black = BlackPixel(dpy, screen); - else - black = color.pixel; - - if (bgcname == NULL - || XParseColor(dpy, defcmap, bgcname, &color) == 0 - || XAllocColor(dpy, defcmap, &color) == 0) - white = WhitePixel(dpy, screen); - else - white = color.pixel; - - /* try user's font first */ - if (fontname != NULL) { - font = XLoadQueryFont(dpy, fontname); - if (font == NULL) - fprintf(stderr, "%s: warning: can't load font %s\n", - progname, fontname); - } - - /* if no user font, try one of our default fonts */ - if (font == NULL) { - for (i = 0; fontlist[i] != NULL; i++) { - font = XLoadQueryFont(dpy, fontlist[i]); - if (font != NULL) - break; - } - } - - if (font == NULL) { - fprintf(stderr, "%s: fatal: cannot load a font\n", progname); - exit(1); - } - - gv.foreground = black^white; - gv.background = white; - gv.font = font->fid; - gv.function = GXxor; - gv.line_width = 0; - mask = GCForeground | GCBackground | GCFunction | GCFont | GCLineWidth; - gc = XCreateGC(dpy, root, mask, &gv); - - signal(SIGCHLD, reap); - - run_menu(); - - XCloseDisplay(dpy); - exit(0); -} - -/* spawn --- run a command */ - -void -spawn(char *com) -{ - int pid; - static char *sh_base = NULL; - - if (sh_base == NULL) { - sh_base = strrchr(shell, '/'); - if (sh_base != NULL) - sh_base++; - else - sh_base = shell; - } - - /* - * Since -popup means run command and exit, just - * fall straight into exec code. Thus only fork - * if not popup. - */ - if (! popup) { - if (strncmp(com, "exec ", 5) != 0) { - pid = fork(); - if (pid < 0) { - fprintf(stderr, "%s: can't fork: %s\n", progname, strerror(errno)); - return; - } else if (pid > 0) - return; - } else { - com += 5; - } - } - - close(ConnectionNumber(dpy)); - execl(shell, sh_base, "-c", com, NULL); - execl("/bin/sh", "sh", "-c", com, NULL); - _exit(1); -} - -/* reap --- collect dead children */ - -void -reap(int sig) -{ - (void) wait((int *) NULL); - signal(sig, reap); -} - -/* usage --- print a usage message and die */ - -void -usage() -{ - fprintf(stderr, "usage: %s [-display displayname] [-font fname] ", progname); - fprintf(stderr, "[-file filename] [-path]"); - fprintf(stderr, "[-geometry geom] [-shell shell] [-label name] "); - fprintf(stderr, "[-popup] [-popdown] [-iconic] [-teleport] "); - fprintf(stderr, "[-warp] [-version] menitem:command ...\n"); - exit(0); -} - -/* run_menu --- put up the window, execute selected commands */ - -void -run_menu() -{ - XEvent ev; - XClientMessageEvent *cmsg; - KeySym key; - int i, cur, old, wide, high, ico, dx, dy; - - dx = 0; - for (i = 0; i < numitems; i++) { - wide = XTextWidth(font, labels[i], strlen(labels[i])) + 4; - if (wide > dx) - dx = wide; - } - wide = dx; - - old = cur = -1; - - high = font->ascent + font->descent + 1; - dy = numitems * high; - - set_wm_hints(wide, dy); - - ask_wm_for_delete(); - -#define MenuMask (ButtonPressMask|ButtonReleaseMask\ - |LeaveWindowMask|PointerMotionMask|ButtonMotionMask\ - |ExposureMask|StructureNotifyMask|KeyPressMask) - - XSelectInput(dpy, menuwin, MenuMask); - - XMapWindow(dpy, menuwin); - - ico = 1; /* warp to first item */ - i = 0; /* save menu Item position */ - - for (;;) { - XNextEvent(dpy, &ev); - switch (ev.type) { - default: - fprintf(stderr, "%s: unknown ev.type %d\n", - progname, ev.type); - break; - case ButtonRelease: - /* allow button 1 or button 3 */ - if (ev.xbutton.button == Button2) - break; - i = ev.xbutton.y/high; - if (ev.xbutton.x < 0 || ev.xbutton.x > wide) - break; - else if (i < 0 || i >= numitems) - break; - if (warp) - restoremouse(); - if (strcmp(labels[i], "exit") == 0) { - if (commands[i] != labels[i]) { - spawn(commands[i]); - } - return; - } - spawn(commands[i]); - if (popup) - return; - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - if (popdown) - XIconifyWindow(dpy, menuwin, screen); - cur = -1; - break; - case ButtonPress: - case MotionNotify: - old = cur; - cur = ev.xbutton.y/high; - if (ev.xbutton.x < 0 || ev.xbutton.x > wide) - cur = -1; - else if (cur < 0 || cur >= numitems) - cur = -1; - if (cur == old) - break; - if (old >= 0 && old < numitems) - XFillRectangle(dpy, menuwin, gc, 0, old*high, wide, high); - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - break; - case KeyPress: - /* http://stackoverflow.com/questions/9838385/replace-of-xkeycodetokeysym */ - key = XkbKeycodeToKeysym(dpy, ev.xkey.keycode, 0, - ev.xkey.state & ShiftMask ? 1 : 0); - if (key != CONFIG_MENU_UP_KEY - && key != CONFIG_MENU_DOWN_KEY - && key != CONFIG_MENU_SELECT_KEY) - break; - - /* adjust i so mapping will work */ - if (key == CONFIG_MENU_UP_KEY) { - old = cur; - cur--; - i--; - } else if (key == CONFIG_MENU_DOWN_KEY) { - old = cur; - cur++; - i++; - } - - while (cur < 0) - cur += numitems; - - cur %= numitems; - - if (key == CONFIG_MENU_UP_KEY || key == CONFIG_MENU_DOWN_KEY) { - if (cur == old) - break; - if (old >= 0 && old < numitems && cur != -1) - XFillRectangle(dpy, menuwin, gc, 0, old*high, wide, high); - if (cur >= 0 && cur < numitems && cur != -1) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); - break; - } - - if (warp) - restoremouse(); - if (key == CONFIG_MENU_SELECT_KEY) { - if (strcmp(labels[cur], "exit") == 0) { - if (commands[cur] != labels[cur]) { - spawn(commands[cur]); - } - return; - } - spawn(commands[cur]); - } - - if (popup) - return; - if (popdown) - XIconifyWindow(dpy, menuwin, screen); - break; - case LeaveNotify: - cur = old = -1; - XClearWindow(dpy, menuwin); - redraw(cur, high, wide); - break; - case ReparentNotify: - case ConfigureNotify: - /* - * ignore these, they come from XMoveWindow - * and are enabled by Struct.. - */ - break; - case UnmapNotify: - ico = 1; - XClearWindow(dpy, menuwin); - break; - case MapNotify: - if (ico) { - if (teleport) - teleportmenu(i, wide, high); - else if (warp) - warpmouse(i, wide, high); - } - XClearWindow(dpy, menuwin); - redraw(cur = i, high, wide); - ico = 0; - break; - case Expose: - XClearWindow(dpy, menuwin); - redraw(cur, high, wide); - break; - case ClientMessage: - cmsg = &ev.xclient; - if (cmsg->message_type == wm_protocols - && cmsg->data.l[0] == wm_delete_window) - return; - case MappingNotify: /* why do we get this? */ - break; - } - } -} - -/* set_wm_hints --- set all the window manager hints */ - -void -set_wm_hints(int wide, int high) -{ - Pixmap iconpixmap; - XWMHints *wmhints; - XSizeHints *sizehints; - XClassHint *classhints; - XTextProperty wname, iname; - - if ((sizehints = XAllocSizeHints()) == NULL) - memory("size hints"); - - if ((wmhints = XAllocWMHints()) == NULL) - memory("window manager hints"); - - if ((classhints = XAllocClassHint()) == NULL) - memory("class hints"); - - /* fill in hints in order to parse geometry spec */ - sizehints->width = sizehints->min_width = sizehints->max_width = wide; - sizehints->height = sizehints->min_height = sizehints->max_height = high; - sizehints->flags = USSize|PSize|PMinSize|PMaxSize; - if (XWMGeometry(dpy, screen, geometry, "", 1, sizehints, - &sizehints->x, &sizehints->y, - &sizehints->width, &sizehints->height, - &sizehints->win_gravity) & (XValue|YValue)) - sizehints->flags |= USPosition; - - /* override -geometry for size of window */ - sizehints->width = sizehints->min_width = sizehints->max_width = wide; - sizehints->height = sizehints->min_height = sizehints->max_height = high; - - if (XStringListToTextProperty(& labelname, 1, & wname) == 0) - memory("window name structure"); - - if (XStringListToTextProperty(& labelname, 1, & iname) == 0) - memory("icon name structure"); - - menuwin = XCreateSimpleWindow(dpy, root, sizehints->x, sizehints->y, - sizehints->width, sizehints->height, 1, black, white); - - iconpixmap = XCreateBitmapFromData(dpy, menuwin, - nine_menu_bits, - nine_menu_width, - nine_menu_height); - - wmhints->icon_pixmap = iconpixmap; - wmhints->input = False; /* no keyboard input */ - if (iconic) - wmhints->initial_state = IconicState; - else - wmhints->initial_state = NormalState; - - wmhints->flags = IconPixmapHint | StateHint | InputHint; - - classhints->res_name = progname; - classhints->res_class = "9menu"; - -#ifdef SET_PROPERTIES_MANUALLY - /* - * For some reason, XSetWMProperties (see below) is failing - * John O'Donnell replaces it with the following commands - * (this leaves out XSetWMClientMachine, - * and also environment variable checking from ClassHint) - */ - XSetWMName(dpy, menuwin, &wname); - XSetWMIconName(dpy, menuwin, &iname); - XSetCommand(dpy, menuwin, g_argv, g_argc); - XSetWMHints(dpy, menuwin, wmhints); - XSetClassHint(dpy, menuwin, classhints); - XSetWMNormalHints(dpy, menuwin, sizehints); -#else - XSetWMProperties(dpy, menuwin, & wname, & iname, - g_argv, g_argc, sizehints, wmhints, classhints); -#endif -} - -/* ask_wm_for_delete --- jump through hoops to ask WM to delete us */ - -void -ask_wm_for_delete() -{ - int status; - - wm_protocols = XInternAtom(dpy, "WM_PROTOCOLS", False); - wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - status = XSetWMProtocols(dpy, menuwin, & wm_delete_window, 1); - - if (status != True) - fprintf(stderr, "%s: could not ask for clean delete\n", - progname); -} - -/* redraw --- actually redraw the menu */ - -void -redraw(int cur, int high, int wide) -{ - int tx, ty, i; - - for (i = 0; i < numitems; i++) { - tx = (wide - XTextWidth(font, labels[i], strlen(labels[i]))) / 2; - ty = i*high + font->ascent + 1; - XDrawString(dpy, menuwin, gc, tx, ty, labels[i], strlen(labels[i])); - } - if (cur >= 0 && cur < numitems) - XFillRectangle(dpy, menuwin, gc, 0, cur*high, wide, high); -} - -/* teleportmenu --- move the menu to the right place */ - -void -teleportmenu(int cur, int wide, int high) -{ - int x, y, dummy; - Window wdummy; - - if (XQueryPointer(dpy, menuwin, &wdummy, &wdummy, &x, &y, - &dummy, &dummy, &dummy)) - XMoveWindow(dpy, menuwin, x-wide/2, y-cur*high-high/2); -} - -/* warpmouse --- bring the mouse to the menu */ - -void -warpmouse(int cur, int wide, int high) -{ - int dummy; - Window wdummy; - int offset; - - /* move tip of pointer into middle of menu item */ - offset = (font->ascent + font->descent + 1) / 2; - offset += 6; /* fudge factor */ - - if (XQueryPointer(dpy, menuwin, &wdummy, &wdummy, &savex, &savey, - &dummy, &dummy, &dummy)) - XWarpPointer(dpy, None, menuwin, 0, 0, 0, 0, - wide/2, cur*high-high/2+offset); -} - -/* restoremouse --- put the mouse back where it was */ - -void -restoremouse() -{ - XWarpPointer(dpy, menuwin, root, 0, 0, 0, 0, - savex, savey); -} diff --git a/ports/snarf/tmp/Imakefile b/ports/snarf/tmp/Imakefile deleted file mode 100644 index 5a42a12..0000000 --- a/ports/snarf/tmp/Imakefile +++ /dev/null @@ -1,8 +0,0 @@ - INCLUDES = -I$(TOP) - DEPLIBS = $(DEPXLIBONLY) -LOCAL_LIBRARIES = $(XLIBONLY) - DEFINES = -DSHAPE #-DDEBUG -DDEBUG_EV - SRCS = 9menu.c - OBJS = 9menu.o - -ComplexProgramTarget(9menu) diff --git a/ports/snarf/tmp/Makefile b/ports/snarf/tmp/Makefile deleted file mode 100644 index 3c74f8b..0000000 --- a/ports/snarf/tmp/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Makefile for 9menu. -# -# Edit to taste -# -# Arnold Robbins -# arnold@skeeve.atl.ga.us - -CC = gcc -CFLAGS = -g -O -LIBS = -lX11 - -9menu: 9menu.c - $(CC) $(CFLAGS) 9menu.c $(LIBS) -o 9menu diff --git a/ports/snarf/tmp/README b/ports/snarf/tmp/README deleted file mode 100644 index 6107ca3..0000000 --- a/ports/snarf/tmp/README +++ /dev/null @@ -1,40 +0,0 @@ -Thu Mar 19 23:51:38 IST 2015 - -This is 9menu, a simple program that allows you to create X menus from the -shell, where each menu item will run a command. 9menu is intended for use -with 9wm, but can be used with any other window manager. - -The idea of a command line menu generator is from xmenu, but xmenu was -exclusively a pop-up menu, not what I wanted. - -The files are: - -README --- this file -9menu.1 --- man page for 9menu -9menu.c --- source code -Imakefile --- a contributed Imakefile, - from Bengt Kleberg -Makefile.noimake --- a simple makefile. - -Licence -======= - - 9menu is free software, and is Copyright (c) 1994 by David Hogan and - Arnold Robbins. Permission is granted to all sentient beings to use - this software, to make copies of it, and to distribute those copies, - provided that: - - (1) the copyright and licence notices are left intact - (2) the recipients are aware that it is free software - (3) any unapproved changes in functionality are either - (i) only distributed as patches - or (ii) distributed as a new program which is not called 9menu - and whose documentation gives credit where it is due - (4) the authors are not held responsible for any defects - or shortcomings in the software, or damages caused by it. - - There is no warranty for this software. Have a nice day. - --- -Arnold Robbins -arnold@skeeve.com