• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. Tom Elliott
    3. Best
    • Profile
    • Following 27
    • Followers 80
    • Topics 116
    • Posts 18,744
    • Best 2,566
    • Controversial 0
    • Groups 0

    Best posts made by Tom Elliott

    • Gratitudes

      I know I’ve been out of this for a little bit. I check in here or there, but just been extremely busy.

      I don’t want to stop contributing, I just am taking time for myself after my workly duties.

      I have to give a big gratitude and thanks for everyone here trying to help out whether by code, by helping the rest of the community, or documentation.

      @Sebastian-Roth I know you’re busy but you’ve kept the project rolling even with the minimal availability you have. Thank you.
      @george1421 I’m sure you’re busy, but I still see you posting and helping where possible and amenible. Thank you.
      @Wayne-Workman I know you’re helping where you can as well. (Of course I can’t exactly post everybody because I’ve been busy and honestly not keeping up with the forums as much as I probably should.)

      @everyone Thank you. Thank you for still believing in this project. We’re doing the best with what we have. Please understand in we’re lacking, it’s most likely unintentional. I know I’m just busy.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.3.5 and Client 0.11.11 Officially Released

      https://news.fogproject.org/fog-1-3-5-and-client-0-11-11-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.0 RC 11

      https://news.fogproject.org/fog-1-5-0-rc-11/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • Ubuntu is FOG's enemy

      TLDR; Rerun the fog installer if you have lost “Database Connectivity” to your fog server, or run the ALTER USER syntax shown below.

      So Ubuntu 16, among others I suppose, enable a “security updates” to be applied automatically as a “default” to things. Why, well it makes it simpler to ensure your Ubuntu systems are in compliance and patched for any potential exploits. This causes unknown and unexpected issues.

      I figured it’d be a safe thing to express that there could be problems (as many of you have already experienced) that when these updates go up (with or without your knowledge) it can break functionality in unexpected and inopportune ways.

      The quickest fix is to simply rerun the fog installer which should correct the problem.

      As a note, it seems this problem is specific only when the mysql account is the 'root' user AND the password is blank.

      The “fix” if you must do it manually is to open a terminal and obtain root:
      Super (Windows Key) + T then sudo -i (in most cases).

      From there, open mysql with mysql -u root

      NOTE: MySQL MUST be run with ROOT.

      Run:

      ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY ''; AND
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

      It’s okay if one of them fails. This is going to fix Most people’s issues.

      I would highly recommend removing the unattended-upgrades as many of these “sudden” issues came as a security patch ubuntu pushed out. By default Ubuntu typically set’s this for you as enabled and it can cause havoc on you as you (the admin) may not have “done” anything.

      To prevent this problem from happening in the future you could run:

      apt-get -y remove unattended-upgrades (AS Root again).

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG Activity - Status

      FOG is still actively being developed. It’s not necessarily readily apparent, but we can assure you things are still being worked on. These updates may not be communicated in a way that everybody just knows, but can easily be seen if one were to look at our repository site.

      Between our own schedules and lives, we can get very busy. We try to keep things updated and help out on the forums even during lull periods. This might mean we aren’t pushing an RC or release as frequently. It may mean we’re working on other things for the project, such as can be seen if looking at our github site.

      Our forums are heavily active, and this should point as an indicator to our “status” as well.

      If anybody would like to see an increase in developers donating their time to making this free software, consider donating either with monetary support or by spending personal time to help with development.

      FOG is an open source project - it’s even in the name. It is driven by people donating their time and resources. The releases of FOG revolve around when developers can spare a few hours throughout the week. Sometimes that will mean releases will be further, sometimes that will mean releases will be faster. That’s just the nature of our project, and many other open source projects.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • I'm away, but back?

      Hey everybody,

      I know you see me here on occasion from time to time. Life decisions have made it more difficult for me to do things I would normally be doing. Rest assured, I am still around, and while I’m not quite as active as I was in the past, it’s not because I don’t want to be.

      I had to move, and as part of that I have none of my normal development stuff readily available. Part of the move made me not have a laptop, until today.

      I need to setup my dev environment again, so it may take a little bit, but I will be back up.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • RE: Release plan for FOG

      That’s correct. The main reason fog is constantly moving forward is because the codebase is improved upon. Major bugs tend to be addressed for the next release. We don’t do an LTS because there’s really two main people working on fog in a consistent manor. Those two are @Joe-Schmitt and myself. Debian and Libreoffice have the team too be able to perform such a feat. Their product is Opensource but they have an employment team which can afford them that luxury. FOG has a team but we make no money and as such are required to work full time jobs. We work on FOG in our free time. I’ve had the ability to even work on it from work because we used the software.

      Maintaining many different versions is difficult. And we don’t have a support team. WYSIWYG and I think we’ve done pretty well on support, even if we don’t have the ability to do dedicated support for our product. 1.5 was a major step toward modernizing the GUI. 1.6 will vastly improve on this. It was only recently we kind of came up with a road map on how best to proceed. Of note, 1.5 will be maintained until 1.6 is released. 1.6 is focused on making he GUI much more modern. 1.7 will be focused mostly toward fixing and refactoring the FOG client. 1.8 will focus on making the FOS system more modular and usable. I don’t know yet for 1.9. 2.0 will bridge the gap for our rewrite based on the work from 1.5 and up. While we do plan to try to do backports where possible, it’s much easier to ask people to update to the latest version than it is to try to maintain many different versions with backports in mind. At least for what FOG does.

      I doubt this will appease anybody, but it’s what I think needs to be said. We are working hard and provide support for our product as best we can. The community makes fogs support system, I think, one of the best around. Add to that and you can almost always have a developer working side by side to help and fix issues as they come up, I don’t think it’s unfair to ask users to update to a specific version. Even if there are bugs, we will always try to correct what we can, when we can. (And normally it’s a pretty quick turn around).

      I’m not perfect and I’ll give you that. We don’t even have a test suite to know if things are working as intended. We have to rely on the community and suggestions are great, just understand our answers won’t always be what people want to hear.

      posted in Feature Request
      Tom ElliottT
      Tom Elliott
    • FOG 1.4.0 Officially Released

      https://news.fogproject.org/fog-1-4-0-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.4.4 Officially Released

      https://news.fogproject.org/fog-1-4-4-officially-released/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.0 RC 12 and FOG Client v0.11.13 Released

      https://news.fogproject.org/fog-1-5-0-rc-12/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.3 Officially Released

      https://news.fogproject.org/fog-1-5-3/

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • FOG 1.5.10.41 and forward

      https://news.fogproject.org/fog-1-5-10-41-officially-released/

      While this maybe spur of the moment, it should officially release 1.5.10 with all relevant bug/security fixes encapsulated (among a few other features.)

      This has brought a new methodology of releases in that bug/security releases should be done much more regularly.

      dev-branch, historically, was a place where new development occurred (hence its name) but over the last couple of years or so it’s mainly been a bug/security thing, not really a true development approach.

      This is OKAY, in my head. Why:

      Well we have the master branch which is the ‘baseline’ of a verions. We have the dev-branch, which allows us to work on bugs/security issues. We have the working branches for what will eventually become master. Working is our “dev branch” but keeps proper seperation of things in my opinion.

      Basically:
      master -> basis for dev-branch (which merges into stable on a regular cadence - still being worked out)
      working -> basis of forward development

      So we effectively have:
      production
      staging
      development well seperated.

      THis may mean on the regular automated releases, no announcement or news article will be created, and I think that’s okay.

      Hopefully exciting we have a release after 1.25 years 🙂

      Thank you!

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • Useful Scripts

      Hey all,

      I know this probably seems rather random, but this is just a place for me to put some of my scripts during programming for FOG.

      While these are specifically setup for my environment, simple edits can make them portable.

      If you all want to try your hand on these for your own projects, feel free.

      1. Copy to svn
        – All this does is take my files as I have edited them and copies them to my trunk directory for subversion/svn.
        – I call it copytosvn
        – The extra “trunk2” stuff you see is for btsync when that was running.
        – if I call it as copytosvn git it will do the same as for trunk, but to only the git. This was added due to sourceforge being down last year.
      #!/bin/bash
      dots() {
          local pad=$(printf "%0.1s" "."{1..60})
          printf " * %s%*.*s" "$1" 0 $((60-${#1})) "$pad"
      }
      errorStat() {
          if [ "$1" != 0 ]; then
              echo "Failed"
              exit 1
          fi
          echo "OK"
      }
      trunkUpdate() {
          cwd=`pwd`
          if [[ -z $1 || $1 == svn ]]; then
              cd /root/trunk
              dots "Updating SVN Directory"
              /usr/bin/svn update >/dev/null 2>&1
              cd /root/fogproject
          elif [[ $1 == git ]]; then
              dots "Updating GIT Directory"
              cd /root/fogproject
              /usr/bin/git checkout dev-branch >/dev/null 2>&1
              /usr/bin/git pull >/dev/null 2>&1
          fi
          errorStat $?
      }
      versionUpdate() {
          dots "Updating Version in File"
          trunkver=`git describe --tags | awk -F'-[^0-9]*' '{value=$2+$3+1; print value}'` >/dev/null 2>&1
          sed -i "s/define('FOG_VERSION'.*);/define('FOG_VERSION', '$trunkver');/g" /var/www/fog/lib/fog/system.class.php >/dev/null 2>&1
      //g" /var/www/fog/lib/fog/system.class.php >/dev/null 2>&1
          errorStat $?
      }
      copyFilesToTrunk() {
          dots "Copying files to trunk"
          for filename in `find /var/www/fog -type d`; do
              if [[ -z $1 || $1 == svn ]]; then
                  cp -r $filename/* /root/trunk/packages/web/${filename#/var/www/fog} >/dev/null 2>&1
              elif [[ $1 == git ]]; then
                  cp -r $filename/* /root/fogproject/packages/web/${filename#/var/www/fog} >/dev/null 2>&1
              fi
          done
          if [[ -z $1 || $1 == svn ]]; then
              rm -rf /root/trunk/packages/web/lib/fog/config.class.php >/dev/null 2>&1
              rm -rf /root/trunk/packages/web/management/other/cache/* >/dev/null 2>&1
              rm -rf /root/trunk/packages/web/management/other/ssl >/dev/null 2>&1
              rm -rf /root/trunk/packages/web/status/injectHosts.php >/dev/null 2>&1
              rm -rf /root/trunk2/* >/dev/null 2>&1
              cp -r /root/trunk/* /root/trunk2/ >/dev/null 2>&1
          elif [[ $1 == git ]]; then
              rm -rf /root/fogproject/packages/web/lib/fog/config.class.php >/dev/null 2>&1
              rm -rf /root/fogproject/packages/web/management/other/cache/* >/dev/null 2>&1
              rm -rf /root/fogproject/packages/web/management/other/ssl >/dev/null 2>&1
              rm -rf /root/fogproject/packages/web/status/injectHosts.php >/dev/null 2>&1
              rm -rf /root/trunk2/* >/dev/null 2>&1
              cp -r /root/fogproject/* /root/trunk2/ >/dev/null 2>&1
          fi
          errorStat $?
      }
      makefogtar() {
          dots "Creating FOG Tar File"
          rm -rf /opt/fog_trunk
          if [[ -z $1 || $1 == svn ]]; then
              cp -r /root/trunk /opt/fog_trunk
              find /opt/fog_trunk -name .svn -exec rm -rf {} \; >/dev/null 2>&1
          elif [[ $1 == git ]]; then
              cp -r /root/fogproject /opt/fog_trunk
              find /opt/fog_trunk -name .git -exec rm -rf {} \; >/dev/null 2>&1
          fi
          cd /opt
          tar -cjf /var/www/html/fog_trunk.tar.bz2 fog_trunk
          rm -rf /opt/fog_trunk
          cd $cwd
          unset cwd
          errorStat $?
      }
      trunkUpdate $1
      versionUpdate $1
      copyFilesToTrunk $1
      makefogtar $1
      
      1. Copy back trunk
        – Copies the file in the trunk folder back to the base folder. Useful if i’m making changes that seem to break things and just need to start fresh, or if something needs to be looked at as its broken, but known working in older version. Allows me to revert the folder and copy back the files in the trunk to the base so I can see things more clearly.
        – Create a backup of your original config.class.php in the root directory.
        – I named it copybacktrunk
      #!/bin/bash
      rm -rf /var/www/fog;cp -r ~/trunk/packages/web /var/www/fog; cp ~/config.class.php /var/www/fog/lib/fog/config.class.php;chown -R apache:apache /var/www/fog; chown -R 500:apache /var/www/fog/service/ipxe
      
      posted in General
      Tom ElliottT
      Tom Elliott
    • FOG 1.3.5 RC 11

      https://news.fogproject.org/fog-1-3-5-rc-11/

      I need people to test it and report please. A lot of work has gone into resizing and waiting to release an RC or Full version until the init’s are “working” seems a bit backward. The point of RC’s is to get the bugs worked out and get users testing things so we have more viable reports. I won’t release 1.3.5 if there’s still work that needs to go into the init scripts, but I should be able to release an RC so I can find out what else needs to be worked on.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • RE: Useful Scripts

      Build iPXE
      – Build’s the ipxe files and updates the trunk version via remote methods now.
      – I call it buildIpxe
      – Adding arguments just add iPXE arguments to build with extra args.
      For example: buildIpxe DEBUG=dhcp will build the ipxe files with the DEBUG=dhcp enabled on the built files.

      #!/bin/bash
      cwd=`pwd`
      cd /root/ipxe
      git pull
      cd /root/ipxe/src/
      make -j $(nproc) bin/ipxe.iso bin/{undionly,ipxe,intel,realtek}.{,k,kk}pxe bin/ipxe.lkrn EMBED=ipxescript $*
      scp -P 10002 /root/ipxe/src/bin/{undionly,ipxe,intel,realtek}.{,k,kk}pxe mastaweb:/root/trunk/packages/tftp/
      scp -P 10002 /root/ipxe/src/bin/ipxe.lkrn mastaweb:/root/trunk/packages/tftp/ipxe.krn
      scp -P 10002 /root/ipxe/src/bin/ipxe.iso mastaweb:/root/trunk/packages/tftp/ipxe.iso
      scp -P 10002 /root/ipxe/src/ipxescript mastaweb:/root/trunk/src/ipxe/src/ipxescript
      scp -P 10002 /root/ipxe/src/config/general.h mastaweb:/root/trunk/src/ipxe/src/config/general.h
      scp -P 10002 /root/ipxe/src/config/settings.h mastaweb:/root/trunk/src/ipxe/src/config/settings.h
      scp -P 10002 /root/ipxe/src/config/console.h mastaweb:/root/trunk/src/ipxe/src/config/console.h
      cd /root/ipxe-efi
      git pull
      cd /root/ipxe-efi/src/
      make -j $(nproc) bin-{i386,x86_64}-efi/{snp{,only},ipxe,intel,realtek}.efi EMBED=ipxescript $*
      scp -P 10002 /root/ipxe-efi/src/bin-i386-efi/{snp{,only},ipxe,intel,realtek}.efi mastaweb:/root/trunk/packages/tftp/i386-efi/
      scp -P 10002 /root/ipxe-efi/src/bin-x86_64-efi/{snp{,only},ipxe,intel,realtek}.efi mastaweb:/root/trunk/packages/tftp/
      scp -P 10002 /root/ipxe-efi/src/ipxescript mastaweb:/root/trunk/src/ipxe/src-efi/ipxescript
      scp -P 10002 /root/ipxe-efi/src/config/general.h mastaweb:/root/trunk/src/ipxe/src-efi/config/general.h
      scp -P 10002 /root/ipxe-efi/src/config/settings.h mastaweb:/root/trunk/src/ipxe/src-efi/config/settings.h
      scp -P 10002 /root/ipxe-efi/src/config/console.h mastaweb:/root/trunk/src/ipxe/src-efi/config/console.h
      cd $cwd
      unset cwd
      
      posted in General
      Tom ElliottT
      Tom Elliott
    • FOG Client 0.11.18 Officially Released

      https://news.fogproject.org/fog-client-0-11-18-officially-released/

      Thank you @Sebastian-Roth

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • RE: Useful Scripts

      Init redo
      – Allows me to redo the inits without having to do a full rebuild
      – I call it init_redo.sh
      – Takes one argument, for now. The argument will be the webroot to look for the ipxe files. If it is not set or cannot be found it will try to find the webroot under the more common locations"

      #!/bin/bash
      # Check for webroot
      if [ -n "$1" -a -e "$1" ]; then
          webroot="$1";
      elif [ -e "/srv/http/fog" ]; then
          webroot="/srv/http/fog";
      elif [ -e "/var/www/html/fog" ]; then
          webroot="/var/www/html/fog";
      elif [ -e "/var/www/fog" ]; then
          webroot="/var/www/fog";
      fi
      if [ ! -e "$webroot/service" ]; then
          echo "No service directory to work from"
          exit 1
      fi
      if [ ! -e "$webroot/service/ipxe" ]; then
          echo "No ipxe directory to work from"
          exit 1
      fi
      ipxeroot="$webroot/service/ipxe"
      currDirectory=`pwd`
      init64=''
      init32=''
      if [ ! -f "$ipxeroot/init.xz" -a ! -f "$ipxeroot/init" ]; then
          echo "No 64 bit init to process"
          init64='no'
      fi
      if [ ! -f "$ipxeroot/init_32.xz" -a ! -f "$ipxeroot/init_32" ]; then
          echo "No 32 bit init to process"
          init32='no'
      fi
      if [ -n "$init64" -a -n "$init32" ]; then
          echo "No init files to process"
          exit 1
      fi
      if [ ! -e "$ipxeroot/tmp" ]; then
          mkdir $ipxeroot/tmp >/dev/null 2>&1
      fi
      copyTrunkFiles() {
          svn up /root/trunk/ >/dev/null 2>&1
          cp -r /root/trunk/src/buildroot/package/fog/scripts/bin/* $ipxeroot/tmp/bin/ >/dev/null 2>&1
          cp -r /root/trunk/src/buildroot/package/fog/scripts/usr/* $ipxeroot/tmp/usr/ >/dev/null 2>&1
          cp -r /root/trunk/src/buildroot/package/fog/scripts/etc/* $ipxeroot/tmp/etc/ >/dev/null 2>&1
          cp -r /root/trunk/src/buildroot/system/skeleton/etc/* $ipxeroot/tmp/etc/ >/dev/null 2>&1
          errorStat $?
      }
      mountTmpFolder() {
          mount -o loop $ipxeroot/$1 $ipxeroot/tmp >/dev/null 2>&1
          if [ -z "$2" ]; then
              errorStat $?
          elif [ "$?" != "0" -a -f "$ipxeroot/$1" ]; then
              unmountTmpFolder "true"
              mountTmpFolder "$1"
          fi
      }
      unmountTmpFolder() {
          umount $ipxeroot/tmp >/dev/null 2>&1
          if [ -z "$1" ]; then
              errorStat $?
          fi
      }
      initFSCheck() {
          fsck.ext2 -a $ipxeroot/$1 >/dev/null 2>&1
          errorStat $?
      }
      recompressInit() {
          xz -9 -C crc32 >/dev/null 2>&1 < $ipxeroot/$1 > $ipxeroot/${1}.xz
          errorStat $?
      }
      decompressInit() {
          xz -d >/dev/null 2>&1 < $ipxeroot/${1}.xz > $ipxeroot/$1
          errorStat $?
      }
      errorStat() {
          if [ "$1" != "0" ]; then
              echo "Failed"
              exit 1
          fi
          echo "OK"
      }
      if [ -z "$init64" ]; then
          if [ -f "$ipxeroot/init.xz" -a ! -f "$ipxeroot/init" ]; then
              echo -n " * Decompressing 64 bit init..."
              decompressInit "init"
          else
              echo " * 64 bit init already extracted"
          fi
          echo -n " * Mounting 64 bit init..."
          mountTmpFolder "init" "yes"
          echo -n " * Copying trunk files..."
          copyTrunkFiles
          echo -n " * Unmounting init..."
          unmountTmpFolder
          echo -n " * Checking ext2 filesystem..."
          initFSCheck "init"
          echo -n " * Recompressing 64 bit Init..."
          recompressInit "init"
      fi
      if [ -z "$init_32" ]; then
          if [ -f "$ipxeroot/init_32.xz" -a ! -f "$ipxeroot/init_32" ]; then
              echo -n " * Decompressing 32 bit init..."
              decompressInit "init_32"
          else
              echo " * 32 bit init already extracted"
          fi
          echo -n " * Mounting 32 bit init..."
          mountTmpFolder "init_32" "yes"
          echo -n " * Copying trunk files..."
          copyTrunkFiles
          echo -n " * Unmounting init..."
          unmountTmpFolder
          echo -n " * Checking ext2 filesystem..."
          initFSCheck "init_32"
          echo -n " * Recompressing 32 bit Init..."
          recompressInit "init_32"
      fi
      
      posted in General
      Tom ElliottT
      Tom Elliott
    • RE: Useful Scripts

      Fog git sync
      – Syncs the git respository with the svn repository information
      – I call it foggitsync.sh
      – Only used to sync/merge the dev-branch information

      #!/bin/bash
      
      cd /root/fogproject
      # Sync SVN with git repo
      git checkout svn 
      git svn -A authors.txt rebase
      git commit -a --allow-empty-message -m ''
      # Merge changes from svn to dev-branch
      git checkout dev-branch
      git pull origin dev-branch
      git merge --strategy-option=theirs svn -m 'Merge svn with dev-branch'
      # Push changes to remote
      git push origin svn dev-branch
      
      posted in General
      Tom ElliottT
      Tom Elliott
    • RE: How does iPXE load fog files from the init.xz image

      @george1421 and that “something” is called S99fog

      posted in General
      Tom ElliottT
      Tom Elliott
    • FOG 1.3.0 Release Candidate 14

      Left blank purposely as news site is not working.

      Once the news site is updated and working we’ll update this with the link. This is more or less to let people know it is currently available.

      posted in Announcements
      Tom ElliottT
      Tom Elliott
    • 1
    • 2
    • 3
    • 4
    • 5
    • 128
    • 129
    • 1 / 129