Code Monkey home page Code Monkey logo

energymech's Introduction

,-----------------------------------------------------------------.
|   ,-----; ,------,     ,-----; ,-------,    ,----,     ,  ,-.   |
|  /  ,---' |   ,.  \   /  ,---' |   ,--, \  /  ,-. \   /|  |  \  |
| |   |___  |   | \  \ |   |___  |   |__|  ;|   | `~'  / |  |   | |
| |   ,--'  |   |  |  ||   ,--'  |   |--; < |   | ,--./   `-'   | |
| |   |__,-,|   |  |  ||   |__,-,|   |  |  ||   | \  |\___.     | |
| |        ||   |  |  ||        ||   |  |  ||   `~'  |     \    | |
| |        ||   |  | / |        ||   |  | / |        |      |   | |
| `~~~~~`\/ `---'  `/  `~~~~~`\/ `---'  `/  `/~~~~~~'       |,--' |
|          ,---,    ,---,  ,-----;   ,----.    ,-.  ,--.          |
|          |    \  /    | /  ,---'  /  ,--'   /  |  |  |          |
|          |     \/     ||   |___  |   |     |   |__|  |          |
|          |   |\  /|   ||   ,--'  |   |     |   ,--.  |          |
|          |   | \/ |   ||   |__,-,|   |   /||   |  |  |          |
|          |   |    |   ||        ||   `--' ||   |  |  |          |
|          |   |    |   ||        ||        ||   |  | /           |
|          `---'    `---'`~~~~~`\/ `\___/~~~'`---'  `/            |
`-----------------------------------------------------------------'

Compiling?
~~~~~~~~~~
To compile the source:

1) git clone https://github.com/EnergyMech/energymech.git
-- If you don't have git you can still download the source:
    wget http://github.com/EnergyMech/energymech/archive/master.tar.gz
    tar xvf master.tar.gz

2) cd energymech
-- Since you are reading  this file,  you have most likely already
   come to this point.

3) ./configure
-- This script will prompt you for features to include or exclude,
   going with the default is not a bad idea.
-- If you want to cross compile export the prefix of your toolchain:
   export CROSS_COMPILE="armv7a-hardfloat-linux-gnueabi-"

4) make install
-- If you have a modern/more powerful machine you can try to compile
   the mech with  ``make mega'' or  ``make mega-install''.  This way
   produces a slightly more compact and efficient executable.
-- On a modern multi-core cpu, you can run make with the appropriate
   -j switch to shave off a few seconds of compile time.  (This will
   not work with ``make mega'' or ``mage mega-install''.
   For example:
     ``make -j4'' for a 4 core cpu system.

If  all  went  well  you  should  now  have  an executable  called
``energymech''.

---*---

Setup?
~~~~~~

Read the  sample.conf  file to  get  an idea of  the  config  file
commands and then try to make your own.  A basic setup doesnt need
much  more than NICK, SET ALTNICK, SET USERFILE,  JOIN and  SERVER
entries, the rest is mostly just tweaks of default values.

Quick steps:

1) cp sample.conf mech.conf

2) edit mech.conf
-- replace ''edit'' with your favourite text editor,  look through
   the file for sections to change,  you will have to remove lines
   in order to get the bot to work. Check the file completely!

3) make a userfile

   construct a temporary file (trick.conf) containing;
   ---------------------------------------------------------------
   set userfile whateveryouwanttonameit
   user + handle * *!*yourident@*.yourdomain.com 100 password
   save
   shutdown
   ---------------------------------------------------------------

   then 'run'  this file with  './energymech -f trick.conf'.  this
   will create a userfile  with the name  you chose ('mech.passwd'
   is a good descriptive name which I often use myself).

   re-use the filename  you selected in your  proper configuration
   file. and remember to 'rm -f mech.session' if you compiled your
   energymech with session support.

4) ./energymech

That should get you running. If you don't see your bot come on IRC
after a few minutes,  you should try running the bot in debug mode
to see what's going on with...

  ./energymech -d

If you get an 'Unknown option -d', you need to answer 'Y' to debug
support when running ./configure from the compiling section above.
Or run with ``./configure --with-debug''.

If you are unsure about if you configured everything correctly and
want to test the configuration, you can run:

  ./energymech -t

This will run the startup sequence in a normal way,  but will quit
right before the bot enters the main loop.

---*---

Updated Files?
~~~~~~~~~~~~~~
The main distribution site for the EnergyMech is:

   https://github.com/EnergyMech/energymech

Extra files for users of EnergyMech can be found at:

   https://github.com/EnergyMech/energymech-extra

Files, documentation and tips can be found at:

   http://www.energymech.net

---*---

THIS SOFTWARE IS PROVIDED AS IS. YOU ARE ENTIRELY ON YOUR OWN WHEN
IT COMES TO CONFIGURING AND USING IT.

---*---

proton, April 17th, 2018.

energymech's People

Contributors

joonicks avatar kroseneg avatar m-kress avatar madcamel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

energymech's Issues

FORGET command not working

The command "FORGET" isn't working. The bot is reporting this:
(Acura) .forget #channel
(February) Usage: FORGET channel
(Don't know why but word channel dissapear from this post if put between <> sign when I hit save ...)

Failed build on GCC 10 (-fno-common)

See https://bugs.gentoo.org/707122. Failed with GCC 9.2.0 using -fno-common which becomes default in GCC 10.

Log:

web.c:295:2: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Wunused-result]
  295 |  read(fd,src,sz);
      |  ^~~~~~~~~~~~~~~
x86_64-pc-linux-gnu-gcc  -O2 -pipe -march=native -fno-common -Wl,-O1 -Wl,--as-needed  -o energymech alias.o auth.o bounce.o chanban.o channel.o core.o ctcp.o debug.o dns.o dynamode.o function.o greet.o help.o irc.o kicksay.o main.o net.o net_chan.o note.o notify.o ons.o parse.o perl.o prot.o python.o redirect.o reset.o seen.o shit.o socket.o spy.o stats.o tcl.o telnet.o toybox.o trivia.o uptime.o user.o vars.o web.o  -lcrypt 
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: auth.o:(.bss+0x20): multiple definition of `redirect'; alias.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: bounce.o:(.bss+0x0): multiple definition of `redirect'; alias.o:(.bss+0x0): first defined here

SETPASS command make the bot crash every time

Every time I use the "setpass" command the bot crash. When the user don't have a pass already set. If I input the user passwd when I perform the USER + command than the bot is ok and isn't crashing. After that I can use the SETPASS command without any issue.

Here are what the debug looks like:
(in) {8} .setpass stali0n 1234
(to_user) {8} [Acura] new password for stali0n has been set
(sigsegv) trying to access (nil)
(sigsegv) Stack pointer: 0x7ffd4ac54820, Instruction pointer: 0x40e2e1
(sigsegv) sig_segv() = 0x406d97
(sigsegv) do_crash() = 0x406c58

I tried to set a pass manually into the userlist file (without encrypting it) and make the bot read the file obviously the bot isn't recognizing the password. So I tried to use the setpass again and here is the debug I had.

(add_user) handle = stali0n; pass = $6$6d1a$v9XIMfAniQIkDDGKNI1yOwy0wUsPI7V6cPjG8NoqMP6VJEtmCExmo433JWsK.3g/wMwLeWxfCnXUpAD.2p6Qp1; axs = 0
free(): invalid next size (fast)
(sigabrt)

Thank you,
Stali0N

error on make install

Using this master, ubuntu 18, following tutorial from this github

root@localhost:/energymech-master# make install
make -C src install
make[1]: Entering directory '/root/energymech-master/src'
gcc -pipe -g -o gencmd gencmd.c
./gencmd githash.h
./gencmd mcmd.h
./gencmd usercombo.h
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c alias.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c auth.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c bounce.c
gcc -pipe -g -Os -march=i586 -fomit-frame-pointer -c channel.c
channel.c:61:7: error: conflicting types for 'find_channel'
Chan *find_channel(const char *name, int anychannel)
^
In file included from channel.c:27:0:
h.h:142:10: note: previous declaration of 'find_channel' was here
LS Chan *find_channel(const char *, int) __attr(CORE_SEG, __regparm(2));
^
channel.c:80:7: error: conflicting types for 'find_channel_ac'
Chan *find_channel_ac(const char *name)
^
In file included from channel.c:27:0:
h.h:143:10: note: previous declaration of 'find_channel_ac' was here
LS Chan *find_channel_ac(const char *) __attr(CORE_SEG, __regparm(1));
^
channel.c:85:7: error: conflicting types for 'find_channel_ny'
Chan *find_channel_ny(const char *name)

Needs to be updated to Python 3. Documentation fix?

In Debian 11 specifically these versions of Python are deprecated: 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0

I was also unable to find in your documentation any reference to installing the following dependencies for TCL:

sudo apt install tcl tcl-dev
sudo apt install openssl libssl-dev

Unable to run the mech

ubuntu@darkbot:~/energymech-master$ ./energymech -t
EnergyMech 3.1p (src:257/29762), April 14th, 2018
Compiled on April 12th, 2021 at 5:54pm
Features: alias, bounce, chanban, dyn, sha, md5, net, netcfg, newbie, session, telnet, toybox
warning: configfile is readable by others
error: energymech home directory is writeable by others, exiting...
ubuntu@darkbot:~/energymech-master$ ./energymech -d
init: Unknown option -d
ubuntu@darkbot:~/energymech-master$ ./energymech 
EnergyMech 3.1p (src:257/29762), April 14th, 2018
Compiled on April 12th, 2021 at 5:54pm
Features: alias, bounce, chanban, dyn, sha, md5, net, netcfg, newbie, session, telnet, toybox
warning: configfile is readable by others
error: energymech home directory is writeable by others, exiting...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.