The officially official Devuan Forum!

You are not logged in.

#1 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-19 01:07:19

golinux wrote:

@thezeit . . . I sent you an email.  You might have it blocked

Replied and my email here is now updated.

I got caught in the forum's Tor filter on the first go & switched to an email address I never use.

#2 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-19 00:13:44

This pissed me off:
https://lists.debian.org/debian-devel/2 … 00181.html

> Is it worth interested parties reaching out to the Devuan project
> regarding person-power for sysvinit maintenance? As a derivative

I’m not sure, but I’d rather not, as a general case, unless there’s
one or more of theirs who’s willing to cooperate and able to keep
quality. Devuan is… questionable, when one’s used to all of Debian.

> distribution, I imagine their lives would become much harder if we did
> drop sysvinit; they would have to pay the cost of maintaining the

Several people have said they believe that to be the end of Devuan,
and I concur, from what I’ve read.

Now I want to kick their ass. I'm not one for mailing lists normally. My anti-social/don't-need-the-approval-of-the-group thing... but I'm glad I dove in on this one.

Is there a mailing list thread where people are talking about sysvinit script automation on our end? Admittedly my aversion to mailing lists has resulted in an inability to navigate the DNG. Is there a mailing list search engine by chance?

#3 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-18 17:57:11

@golinux - Absolutely. I'm primarily checking my thoughts for errors before going too far out on that limb, haha. I half expected someone to tell me, "You're wrong. Go away."

One of my lingering concerns was that the Tails remaster was going to become an incremental PITA as the systemd scope creep kept on. But now I'm thinking that if there's a common denominator here (package upgrades / distro remastering) that we can leverage each other's efforts and that issues will get detected/fixed more rapidly.

Is there a specific place where the huddle is happening for this? Or should I retreat to my remaster thread and play with the incendiary devices over there?

#4 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-18 17:30:48

It just hit me that attention on an automated converter could not only benefit package maintenance... it could also help people "un-systemd" their favorite distros and export clean images. Much like I'm doing with the Tails remaster.

The payoff there could be fairly wide.

My hesitation is in wondering how deep of a rabbit hole automatic conversion is when we're talking about doing it to scale. Everything looks great on paper!

#5 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-18 17:17:07

golinux wrote:

Yes. We already are aware of that. There will be a way forward.

Some passing thoughts:

- An automated converter could help keep the scope narrow (more focus on one thing)

- Even if it can't automate the conversion for everything it may be possible to automatically detect which ones need special attention to insert some kind of stub for specific packages with convoluted systemd-scope. (i.e. automation of the bulk would still be a payoff)

What I don't like about this whole thing is we're forced to keep up with "the ways of systemd". Interpreting archaic symbols depending on which way the crow flies and all that. I'm not seeing a way around it for as long as people are stupid though.

#6 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-18 16:24:59

Panopticon wrote:

Maybe something like a Lua script, ala conkyrc to conky.config ?

There's a Python-based converter from systemd to sysvinit here:
https://github.com/akhilvij/systemd-to- … -converter

It hasn't been updated in awhile so not sure how well it would track with modern systemd.

I was looking at doing something similar with the Tails porting since the scope is fairly narrow there. Something I'm concerned about though is apps/tools starting to expect the existence of systemd and invoking its methods directly. For instance I notice that in Tails network scripts they invoke systemd-related network management commands directly.

Since Tails is tailored it's permissible that they do that. But I wonder how long it'll be before this precedent of "one init system to rule them all" will carry to "one network manager to rule them all" and so on. I cringe at the idea of source upstream of Debian being written specifically to expect the existence of systemd tools such that even the downstream package maintainers lose their autonomy.

#7 Devuan » I captured the Devuan blockchain domains » 2018-10-17 02:37:22

thezeit
Replies: 0

So... as domain registries embark upon their everlasting quest to become parodies of themselves... singing along in merriment with the endorsement of their respective cultures... I thought it would be just dandy to go ahead and brutally capture some blockchain-based domains that require something stronger than "reasons" to seize.

So... I have devuan.bit and devuan.lib both set on redirects to devuan.org:
https://namecha.in/name/d/devuan

And yes it works. The OpenNIC resolvers (some of them!) will reply properly.

If you want me to set them to your nameservers instead of mine give me a shout. Right now that mountain of people that went out of their way to configure their systems to use blockchain DNS servers is totally bouncing off my server and going to yours.

Honorable mentions include:
https://namecha.in/name/d/torvalds
https://namecha.in/name/d/murdock
https://namecha.in/name/d/linustorvalds
https://namecha.in/name/d/ianmurdock

I might also possibly have control over debian.lib ... but ... nobody can prove it!

... unless they look at the record.
... then they might be able to prove it.

The world shall know what happened here.

#8 Re: Devuan » Your Rant Has Been Rendered... » 2018-10-17 01:47:05

If I keep waking up to reality I will never sleep again. Nice job, and on point.

Ha! Love it. And thanks.

I just found out today that sysvinit is on the skids in Buster:
https://dev1galaxy.org/viewtopic.php?id=2419

I think the normies are going to need a reminder that this is coming for all their mobile devices. It's going to be a situation of: The open source stuff is so bad it might as well be closed source.

#9 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-10-17 01:43:24

Thanks for the tips!

I'll give it a play. Come to think I haven't stress tested on all but one machine...

It flares up really bad when I use a screen recorder. Everything that was stable goes suddenly unstable. The graphics driver didn't even occur to me. I'll have a play on different hardwares before I go kicking Xfce too hard.

#10 Re: News & Announcements » Debian Buster release to partially drop non-systemd support » 2018-10-17 01:37:01

Boot Init Through Computer Hardware

Golden. In fact... I could find myself supporting that and proudly telling everyone what I'm working on!

Here's a thought: Would it be possible to make an init system that understood systemd's unit files but maintained it's scope to ONLY an init system? Or is the scope of the init files themselves too unwieldly?

Maybe I'm thinking too much in the frame of cryptocurrencies... but when a primary crypto starts to lose its way... almost invariably a "classic" version emerges that sticks to the original stated goals. It would be sort of a funny way to maintain upstream compatibility without using the ACTUAL systemd. The only problem I see here is it would invent a project (that people would have to use neurons for) dedicated to keeping up with the imaginations of Pwnering... (that's my official name for him).

The only other thought that doesn't require massive loads of manpower to brute force package maintenance is a dedicated init script converter from one init system to another. But... it would have to be like... flawless.

I'm spitballing here. Anything to lower the level of unnecessary pain this is going to cause.

#11 Re: Devuan » Your Rant Has Been Rendered... » 2018-10-03 18:09:33

sgage wrote:

I think maybe I'll just go back to reading books and writing letters and stuff. I'm an older gentleman - I remember how to do this.

As I started contemplating writing letters by hand... it occurred to me that I don't fully recall which way the loops are suppose to go with certain cursive letters. We should put this thought experiment out of our minds before I draw a crowd of people that might point and laugh at my horrible penmanship. smile

#12 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-10-03 18:00:28

I have been testing Xfce steadily under normal conditions since the last post.

I bumped into two major things:

- Xfce sometimes (rarely) will freeze completely. Not sure if that's Xfce itself or something else.

- When having windows that are redrawing their graphics on a background workspace the other workspaces can completely freak out graphically. Visual tearing appears and if you drag a window around it "wipes" the workspace back to how it should look. But as soon as a background window (on another workspace) redraws something it freaks again. This isn't always consistent behaviour and the odds of reproduce increase with the more windows that are open. This creates an issue of either not using background workspaces and/or limiting the number of open windows.

The last one almost makes my normal "power use" unworkable.

Any suggestions on an alternative window manager?

Ideally something that's as fast as Xfce without the visuals freaking under power use.

#13 Devuan » Your Rant Has Been Rendered... » 2018-09-29 19:40:35

thezeit
Replies: 5

So... when I initially appeared here... golinux had mentioned a rant would be fun to read.

I did you one better. A 40+ minute video scathing the Pwnering and friends.

"Pwnering" is a trademarked pirated portmanteau of "Pwn" and "Poettering".

Warning! Mansplaining ahead!

https://www.youtube.com/watch?v=RkFNMEk0xn8

Critical Note: Don't rebut me too hard in front of the normies. Deflating my enormous ego is counterproductive to the mission.

#14 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-12 22:02:22

blinkdog wrote:

This is pretty cool stuff.

Do you have a repository where you are tracking this work?

I do not. I would like to but... I admittedly have an aversion to the possibility of repo tampering (e.g. Microsoft owning github now).

I've oft thought it would be amazing to have a git repo backed up by Freenet so that it's essentially tamperproof (i.e. mods only possible by people with crypto keys). Someone tried awhile back and there's some code floating around for it. I unfortunately might be a tad short on time to play with too many cool things like that. smile

#15 Re: Off-topic » Show your desktop (rebooted) » 2018-09-11 21:52:00

Psud0nym wrote:

...what algorithms are you using on that system smile

I call it "hack, saw, and polish".

My methodology hasn't caught on yet.

Maybe the more clever name would be "The Reverse Poettering".

#16 Re: Off-topic » A Well Deserved Pwnie Award » 2018-09-11 19:25:23

I was going to post on this very thing but did a search first. For that reason I'm necro-bumping.

I just ran into a bunch of intermittent problems and traced them all back to this man's creations...

I'm going to retrieve my staff of eternal banishment. That's how serious this is.

#17 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-10 13:56:48

And... it's alive!

loaded-with-browser-and-net.png

Weird Corner

Sometimes the security slider doesn't come up on the browser (onion on the left). Clearing the ~/.tor-browser folder and turning the browser back on fixed it.

The Scripts

I've omitted the surrounding remastering tools and am including the code bits to modify the rootfs.

These scripts presume your terminal is already cd'd to the base of the rootfs file system.

Excuse some of the naming conventions as I'm only including the relevant bits.

Host / DNS / Apt

NOTE: Apt sources here pointing to Debian repos until porting is fully complete. Repos are exclusive.

#! /bin/bash

#update hosts to filter dns requests
echo '#!/bin/sh

# Note: must run after /lib/live/config/0020-hostname since it
# otherwise will overwrite any hosts file generated at build time with
# a bloated one that also include the IPv6 host `::1 localhost`, which
# can lead to IPv6 traffic, which we block, which may lead to stuff
# breaking (for instance APTs tor+http transport).

echo "- setting up hosts file"
. /etc/live/config.d/hostname.conf

cat > /etc/hosts << EOF
127.0.0.1 localhost localhost.localdomain ${LIVE_HOSTNAME}
EOF' > ./lib/live/config/9000-hosts-file

#update dns resolver
echo "127.0.0.1 localhost localhost.localdomain amnesia" 		> ./etc/hosts
echo "nameserver 127.0.0.1" 						> ./etc/resolv.conf

#set permissions if not already set
chmod 644 ./etc/resolv.conf

#move the tails package updating file out of the way
mv ./etc/apt/apt.conf.d/80tails-additional-software ./etc/apt/

g_preapt="# /etc/apt/sources.list
deb tor+http://vwakviie2ienjx6t.onion/debian/ stretch main contrib
deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates main contrib
deb tor+http://vwakviie2ienjx6t.onion/debian/ sid main contrib"

echo "$g_preapt" > ./etc/apt/sources.list

Xfce Switch

Excuse some redundant logic. Cobbling out the other remastering work.

#! /bin/bash

#chroot mounts
for f in proc sys dev ; do mount --bind /$f ./$f ; done

mount -o nosuid,nodev -t tmpfs tmpfs ./dev/shm
mount -o nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 -t devpts devpts ./dev/pts

#do chroot
cat << EOF | chroot ./

function installuser() {
	adduser \$1 --gecos ",,,," --disabled-password
}

#
# update - install xfce & lightdm
#		

export DEBIAN_FRONTEND=noninteractive

apt-get update
apt-get install xfce4 lightdm -y
dpkg-reconfigure xfce4
update-alternatives --set x-session-manager /usr/bin/startxfce4
echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager
dpkg-reconfigure lightdm

#
# create some users and potentially set the root password (DEBUGGING ONLY)
#

installuser "amnesia"

#echo "root":"toor" | chpasswd
echo "amnesia":"toor" | chpasswd

passwd -d amnesia

#
# Session start hook
#

echo '#! /bin/bash

# * /etc/live/config.d/username.conf : $LIVE_USERNAME
# * /var/lib/gdm3/tails.locale : \$TAILS_LOCALE_NAME, \$TAILS_XKBMODEL,
#   \$TAILS_XKBLAYOUT, \$TAILS_XKBVARIANT, \$TAILS_XKBOPTIONS, \$CODESET
# * /var/lib/gdm3/tails.password : \$TAILS_USER_PASSWORD
# * /var/lib/gdm3/tails.physical_security : \$TAILS_MACSPOOF_ENABLED

backupdir="\$( cd "\$( dirname "\${BASH_SOURCE[0]}" )" && pwd )"

echo "TAILS_MACSPOOF_ENABLED=yes" >  /var/lib/gdm3/tails.physical_security
echo "TAILS_NETCONF=obstacle" >> /var/lib/gdm3/tails.physical_security

echo "TAILS_LOCALE_NAME=\"en_US\"" >  /var/lib/gdm3/tails.locale
echo "TAILS_FORMATS=\"en_US\"" >> /var/lib/gdm3/tails.locale
echo "TAILS_XKBMODEL=\"pc105\"" >> /var/lib/gdm3/tails.locale
echo "TAILS_XKBLAYOUT=\"us\"" >> /var/lib/gdm3/tails.locale
echo "TAILS_XKBVARIANT=\"\"" >> /var/lib/gdm3/tails.locale
echo "TAILS_XKBOPTIONS=\"\"" >> /var/lib/gdm3/tails.locale

echo "TAILS_USER_PASSWORD=toor" > /var/lib/gdm3/tails.password

backup=\$PWD
cd \$backupdir
./Default
cd \$backup

{ nohup /usr/local/sbin/tails-tor-launcher & } &
' > ./etc/gdm3/PostLogin/DefaultPorted

chmod 755 ./etc/gdm3/PostLogin/DefaultPorted

#
# auto-login at lightdm greeter
#

echo '
autologin-user=amnesia
#autologin-user-timeout=0
session-setup-script=/etc/gdm3/PostLogin/DefaultPorted
' >> ./usr/share/lightdm/lightdm.conf.d/01_debian.conf

#
# patch gnome settings
#

sed -i 's/export_gnome_env/export_gnome_env_backup/g' ./usr/local/lib/tails-shell-library/gnome.sh

echo 'export_gnome_env() {
    . /etc/live/config.d/username.conf
}' >> ./usr/local/lib/tails-shell-library/gnome.sh

#
# patch tor launcher to wait for tor process before activating panel
#

sed -i 's/until pgrep -u "\${LIVE_USERNAME}" '\''^ibus-daemon'\''/until pgrep -f "\/usr\/bin\/tor"/g' ./usr/local/sbin/tails-tor-launcher

#
# patch network manager to no longer wait for the ibus
#

sed -i 's/if pgrep -u "\${LIVE_USERNAME}" '\''^ibus-daemon'\''/if pgrep -u "\${LIVE_USERNAME}" "bus-daemon"/g' ./etc/NetworkManager/dispatcher.d/01-wait-for-notification-recipient.sh
EOF

umount ./dev/shm
umount ./dev/pts
for f in proc sys dev ; umount ./$f ; done

Personal

Wow!

The UI is so fast now things are loading before I have time to think.

The Gnome UI would always stick and sometimes freeze with certain apps hitting certain points. Killing the apps with a fullscreen tty was the only way to get Gnome back in some cases. The majority of the rest of the time required alt+tab to unstick the Gnome windows. And with the latest Firefox Quantum.. when launched the browser would sit, and sit, and sit under Gnome until becoming responsive after a minute or two. It's now responsively almost immediately under Xfce.

Something that's really been bugging me under Tails is that Gnome would just outright crash and the whole display would reset. This was happening loosely under Tails 2~ when being prompted by Thunderbird. They had a help ticket open for it and were "deferring to upstream" to fix the problem... hoping it would be fixed by the time Debian Stretch arrived. Guess what? It's worse under Stretch. Now Gnome crashes more often with more apps more frequently.

I've actually had people get annoyed with Tails and stop using it because of how "sticky" the UI was. I became accustomed to it because I liked the other rootfs hardening. Now with the system moving like lightning... I'm the slowest link in the chain! And yes... we're going to pretend that metaphor makes sense.

#18 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-08 23:42:29

Tor network settings panel now works.

net-settings.png

At boot you're automatically dropped into the amnesia user with root credentials of "toor".

And as soon as a network interface connection is detected the Tor network launcher fires.

A few odd chinks in the Tails design

- The tor starter in the network manager waits for an "ibus" process which is completely absent in Xfce. I had to tweak their sleepy loop to corect for this.

- A "localectl" systemd service is used to initialize the locales at session start. Will need to kick that out at some point.

- The gnome environment settings hook presumes a gnome-shell pid will be there and the network launcher fails to start if the environment code is left in its default form. I disabled the gnome references and she came right up.

At this point...

I need to streamline my tweaks into my remastering process. I have a bunch of manual edits I need to automate.

Once that's done this image should be functional. It's still systemd-dependent but removing Gnome qualifies as an upgrade.

#19 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-08 15:33:07

Have you ever wondered what Tails would look like in Xfce?

Me too!

first-inside.png

Tails 3.9 complete with the latest Tor Browser based on Firefox Quantum.

Please hold your applause until the end.

#20 Re: Off-topic » Show your desktop (rebooted) » 2018-09-08 13:13:10

I finished upgrading to my new hacker resistant model.

proxy.duckduckgo.com.jpg

#21 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-08 12:51:11

I think I figured out how this song & dance is going to go.

At /etc/gdm3/PostLogin/Default is a script. It does most of the work when first logging on.

The script itself is almost straight Linux other than it expects a few script files to potentially be created by Gnome.

It handles setting up the default user, hardening the settings, if root login should be allowed, etc...

There's a "gotcha" one level beneath that though. It calls some Tails scripts elsewhere that handle the network setup. And you guessed it! They're using systemctl & NetworkManager. It doesn't look like they're invoking anything heavily and/or sprawling though. Most of it is MAC testing with panic fallback that'll disable the network entirely.

And the other minor "gotcha" below that is it sends desktop notifications with gnome envionment settings. They use the standard notification mechanism and were pretty clean about containing the gnome environment settings to a single file. So if the gnome environment settings end up being a problem I could probably just trample that file.

So right now the first phase idea is as follows:

- Install lightdm
- Setup a lightdm greeter script that takes a few inputs
- Have that script prepare some files for the script at /etc/gdm3/PostLogin/Default and invoke
- Possibly work out kinks in desktop notificiation

The above should hypothetically get Tails ported away from Gnome and closer to lightdm.

Once the above is done then some additional steps would need to happen to knock systemd out:

- A /sbin/systemctl script may be needed to intercept systemd requests and translate them to sysvinit service requests
- Most systemd unit files will need to be ported to sysvinit scripts (automatically?)
- The rest of the Devuan migration steps would then apply here.

The final baker would probably do the above in reverse due to potential package orphaning problems. But for development & working out the kinks I'm thinking this has to be done in forward order. e.g. start by trying to get lightdm to forward to their existing scripts with systemd in place and work out desktop notifications that expect a gnome environment. Once tails is working in lightdm then the jump won't be so drastic.

#22 Re: Installation » Intel Management Engine module in Devuan ASCII » 2018-09-08 01:17:50

Altoid wrote:

Unless you have a sure-fire way of recovering from a failed BIOS flash, you have to assume that you will brick it. There's many of us in that boat.

Do you have any experience with the BIOS reset switches on some of the boards?

When looking at EPROM recovery it was noted that some boards have a separate "factory backup" copy of the BIOS embedded in the board such that changing a jumper and powering the board on is suppose to recover the factory BIOS.

I would be willing to even settle for that as an industry norm as it would allow tinkering with considerably less hazard.

#23 Re: DIY » Porting Tails OS to Devuan / Disclosure & Discussion Thread » 2018-09-08 01:06:33

fsmithred wrote:

I don't think Tails includes an installer, but you could install refractainstaller and install from the live session.

I've never heard of refractainstaller before. I will have to check that out.

Would you believe me if I said I already have an early migration test up and running?

Tails uses an overlay filesystem and prompts for some configuration options immediately at the login session. So you can either disable or enable root access at that prompt, etc... The problem with taking a live snapshot after passing that screen is you can't get back to it, lol! Although I've never tried sneaking around it by attempting to switch full-screen ttys there.

So, I have it booting in QEMU.

- Outer layer (normally formatted as an ISO type) as an ext4
- The internal file system (normally formatted as a squashfs type) as an ext4.

It's way easier to work on and do boot tests with now.

Just have to remember to umount the internal one before running QEMU or it'll drop into busybox.

Screenshot (hosted by a free image service):
login-nogreeter.png

The greeter got trampled. This is the switch to xcfe with the ASCII migration method.

I will need to check into how they've hooked the greeter to see if I can restore it.

In regards to their systemd unit files I have a script that hypothetically should allow them to be converted to sysvinit recursively. Not every bit of systemd functionality can be automatically ported with it but it doesn't look like Tails is using anything advanced in that regard. Just basic "restart this service if it dies" sort of thing.

I'm ALMOST starting to have fun. wink

#24 Re: Installation » Intel Management Engine module in Devuan ASCII » 2018-09-07 14:25:21

I keep thinking Coreboot needs to become the norm for more systems.

I really like the work the puri.sm guys are doing in this regard: https://puri.sm/learn/intel-me/

Blanking the Intel ME at boot (like they are) seems like the bigger hammer to neutralize Intel problems. Hypothetically with the ME still in place... a kernel model wouldn't even necessarily be needed to exploit it (think bad opcodes that could trigger the ME).

I had a buddy with a bunch of rigs he wanted to Coreboot but he put that on pause when he realized he could brick the boards. I'm almost to the point of getting two inexpensive boards of every kind. Noah's Ark style.

#25 Other Issues » Possible static IP configuration problem in Devuan ASCII installer » 2018-09-07 13:02:53

thezeit
Replies: 0

I looked at the offiical bug reporting system. I have an allergy to email based and locally installed reporting tools.

I try not to press for features (that's work!) but a ticket-style helpdesk system would help enormously.

The Possible Installer Static IP Problem

I can't confirm this right now because it came up with the remote provisioning that was setup for us.

The conditions were this:

- A KVM with remote access and its own dedicated access IP
- The KVM was attached to a box that should have its own assigned static IP
- The initial state was the Devuan installer welcome screen

The process I followed was:

- Proceed through installer as normal
- Installer automatically tries DHCP and failed
- Installer asks for static IP, subnet, etc...
- I made an error here and gave it the KVM's static IP (the host forgot to give me the dedicated one for the box)
- The drives were then formatted
- The automated package fetcher could not reach the internet to add packages
- I backed up and changed the static IP and then proceeded as normal.
- The automated package fetcher still could not reach the internet.
- I quit trying and proceeded with minimal base system install with reboot.
- At terminal prompt I login and inspect the network settings.
- The network settings were are all set to the static IP of the KVM (and not the new one I corrected with when I backed up)

My presumption is:

- The first static IP you set in the installer is the one you have to live with.
- If you back up and try to correct the IP it won't take and you'll need to correct manually from the terminal.

The only alternative explanation would be that it's somehow magically binding itself to the KVM's IP and ignoring the manual static settings altogether. I'm doubting this though. After correcting the network files manually from the terminal it ran like a champ.

Proposed Solution

Inspect ASCII installer to determine if static IPs can be retroactively corrected if user makes a mistake the first time.

Board footer

Forum Software