Development moved to Github

We are currently in the process of moving development to Github! The main change is from using Bzr for version management, to Git. We’ll also move the issue tracker and wiki from Trac to Github as well to keep the code, issue tracker, and wiki all together!

Hopefully the move to Github will assist with people writing patches, as they can submit merge requests to easily get the changes in, with minimal effort on my behalf working out what’s changed and if it breaks things.

Head to https://github.com/GraseHotspot to see the repositories and start contributing!

3.7.7.6 Released

So somehow we missed the 3.7.6 release. And 3.7.7 didn’t make it out of dev as we found some bugs, so here I’ll try and summarise what has changed since 3.7.5!

  • Fixed the 4Gb limit on data limits. This required a whole new module for Freeradius, and we are very grateful to the Yfi Hotcakes project as we used a good portion of their code. See perl_modules for an idea of what code we used.
  • Fixed a security hole that could allow a user who knows the right details to login with no limits
  • Fixed some display bugs due to usernames being case insensitive
  • Fixed bug #93 (as well as other bugs)
  • Added pagination to session monitoring, and by default only show Active sessions (#84, #90)
  • Removed $ values from Data and Time limits (Vouchers will be in next version so you can sell properly instead of just having a price tied to a Mb/Minute value)
  • Allow customisation of Data, Time and Bandwidth options
  • Ability to lock and unlock users (#77)
  • Customise DHCP range (#85)
  • Fix bug #79 which is causing restarts every 5 minutes

Updates should be automatic unless you have disabled automatic updates. Please report all bugs to the mailing list or the bug tracker.

3.7.5 Release

 

After a few months of being without a proper computer, my new development machine has finally arrived. (I’ll post later what its specs ended up as). For some time now I’ve had people testing the dev versions for me, and so yesterday I pushed 3.7.5 to stable! 3.7.5 is a minor update, the changelog is below. (Just the 3.7.4-dev? changelogs, as 3.7.5 is 3.7.4-dev5 with the version number bumped)

  • Cron archive scripts allowed negative time value which allowed usage after using all allowed time
  • Fix Reports some more
  • Check if bogusnxdomains has returned ips
  • Shorten long “time” format from “days” to “d”
  • Updated German Translation (S. Schneeweiß)
  • Fixed bug preventing group table being created by newer MySQL servers
  • Fixed bug (#73) that prevented expired users from being deleted
  • Fixed bug (#50) Usermin menus broken
  • Fix UUCP timerange filter to allow more values
  • Added more contributors
  • Some smart caching of user details and settings to reduce database calls significantly (and page load times) ref #63
  • Fix report graphs (and filter out CoovaChilli User) Fixes #52
  • Major fix for archiving users

Updates should be automatic unless you have disabled automatic updates. Please report all bugs to the mailing list or the bug tracker.

 

 

Development Delay (Computer Died)

As you may have noticed, I’ve not posted the 3.7 release, however it has been released, back in January.
However, I was looking forward to announcing a 3.7 update soon which includes some massive improvements in database calls for the displaying users page. We went from >1000 database calls to a fixed 9 for display all the users, as well as a much faster loading time. However this release is going to be delayed now due to my computer dieing recently. Until I can replace my computer I’m very limited in what I can do. No work has been lost as everything is nicely backed up, and the hard drive is fine anyway. So now we need to wait until we can afford a replacement computer (really, just the inside components, CPU, RAM, Motherboard) and then I can transplant them into my old case and we’ll be roaring away.

This is really disappointing for me, as I’m 1/2 way through the paypal integration, so you can allow customers to purchase tickets via paypal and credit card.

This is the new computer we are hoping to buy from pccasegear.com. Case, Powersupply and HDD’s are extras but are things we wanted to purchase in the near future anyway (HDD’s will be in RAID1 array for backup purposes to replace a NAS that is no longer suitable).

Version 3.6 Released

Version 3.6 was released today. This release is just focussed on network settings. You can now change the server lan ip address, and network, as well as set your own DNS servers (or use OpenDNS with Family Shield).
Please take note, that for these changes we now have dnsmasq installed, which all the clients will use as the DNS server, and dnsmasq will do the queries to the servers you set. It WILL NOT use the dns servers from DHCP or /etc/resolv.conf, you will need to set the dns servers manually or it will default to OpenDNS Family Shield.

As part of this update, the coova-chilli package has been update, as have the grase-conf-squid3, grase-conf-freeradius, and we have a new package called grase-conf-dnsmasq that does the network settings for coova chilli and dnsmasq.

For anyone who has manually modified the coova chilli files (/etc/chilli/config) this will again overwrite your changes, but that’s ok as now you can make all the changes in the admin interface and they won’t be overwritten again! If there are any network settings in /etc/chilli/config that aren’t currently available that you need, just open a bug report and it’ll be added fairly easily.

Standard upgrade is “sudo apt-get update; sudo apt-get upgrade”

Version 3.5 Released!

Today Version 3.5 was released to the repository.
Main new feature is customisation of the portal login pages!!! Let me know what more can be customised and it will be!

Straight from the changelog:

grase-www-portal (3.5.1) purewhite; urgency=low

* Editing of machine accounts is now active and working (accounts no longer “locked”)

— Tim White Wed, 28 Sep 2011 11:53:41 +1000

grase-www-portal (3.5) natty; urgency=low

* Display group properties in edit and new user pages
* Customisation of login pages
* Some HTML5 changes for forms and inputs
* Fixes for expiry to support to the second not to midnight of the date
* Easy “unexpire” of an expired user. Fixes #14

Growth of GRASE Hotspot over last few months

Thank you to everyone who is using or assisting with the GRASE Hotspot!

I thought I’d give you a bit of a heads up as to what has been happening over the last few months.

Firstly, a large number of new features have been added this year, including new report graphs, dynamic groups, and internationalisation. So far we have a French translation done, and an Italian and Portuguese translation are in progress. We have also had some members of the community discuss assisting with development which will speed new feature requests up!

For those who don’t know the history of the GRASE Hotspot, it started development almost 4 years ago, and has been in active use for the last 2 years in a single location. Last year a major change in it’s development occurred which was the ability to deploy it quickly and easily using debian packages. This was a major break through and removed a lot of the extra “installation” code that was being maintained just to keep it up to date. We also moved from a SVN repository to using BZR to maintain our source code repository. The big step was at the end of last year (2010) we finally released the project into the community on sourceforge, finally allowing the community to use it.

Since that release things have moved very fast with more development happening faster than before. Feature requests have been filled sometimes in less than a week since it was requested. The large community has also enabled us to find bugs better and squash them with more devices to test on. In particular this is helping fix the iOS bug that was preventing iPhone and iPad users from logging in. (Anyone still experiencing this bug, please contact us).

As you can see in this image, the traffic to the website has been on the increase which shows that we are getting more and more exposure! (The drop at the end is because it’s the start of a new week when I saved this graph).

To assist with the growth of the community, I’ve now setup a mailing list for users and developers to all participate in. This will enable any email support that is occurring to benefit the entire community, especially when the same problem is experienced by a few people. I’d ask that support requests are directed to the mailing list now instead of directly to me. https://lists.sourceforge.net/lists/listinfo/grase-hotspot

For those who are wondering what is happening with the hotspot currently, here is what I am working on. Recurring limits, for example allowing a user to have 1hr per day. We are also hoping to have recurring data limits like 200Mb per day, however due to limitations in other software we rely on, it is not possible to guarantee exact limits, so the implementation will be to loosely enforce the data limits. I’m also going to start working on customisation of the login pages so that each location can display a more unique login page.

As I am a University student with a family to support, development will slow down over the next few weeks as I have Exams. (I have mostly finished the recurring time limit code, so that might be released during the exam period).

Lastly, I’d like to remind you that if this project has assisted you, to please consider donating ether some of your time or money to assist it’s development. Even if you aren’t a coder, working on better documentation, or doing translations are all ways you can assist. If you are a developer then working on new features. If you are just someone who benefits from it and don’t want to give time, your financial donations are always welcome as they allow me to develop while at University.

Thank you for being part of the GRASE Hotspot Community.

Tim

Caught by Max Int

So, MAX_INT caught me out. Of course, I couldn’t work out why everything worked fine on my machine, but on another machine the exact same code was returning a negative number! I should have clued on when I was told that values over 2Gb caused problems. But why wasn’t the problem showing on my machine? It’s actually really simple, I’m using a 64bit machine so my “intval” function in PHP has a higher limit than on a 32bit machine. A quick google, a “bigintval” function and everything is back to normal!

Improving Debian Compatability

As my main development box is Ubuntu, it’s hard to know if my packages will run on Debian. Obviously I don’t want to exclude any deb based Distro, but for now I don’t offer any guarantee’s that the packages will run on anything other than my machine. I will however do my best to ensure it does run on both Debian and Ubuntu.

Today I fixed a “bug” preventing it running on Debian Squeeze. Turns out there is a bug in the smarty package (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514305) which hasn’t been fixed in Squeeze yet. Quite simply, the path for the Smarty class is in a different place on Debian than Ubuntu. Ubuntu “fixed” the path to be inline with upstream Smarty, and didn’t get it fixed in Debian at the same time. The fix is in Debian unstable. So rather than forcing everyone who wants to use the Hotspot on Debian Unstable, I added an if statement on the class including code to check for the Debian path, and load from there, else load from the standard location for Ubuntu. Problem bypassed!

If you are using this package on Debian, please let me know anything that doesn’t work as expected so I can try and have the package working for everyone.

I also pushed another change today, that force’s the grase-conf-squid3 package to conflict with the squid package. Seems you can have both squid 2.7 and squid 3.1 installed at the same time. Unfortunately my config files are for squid3 (and there are reasons for using squid3 over 2.7), and for foolproof operation I need to ensure that squid3 is running. Simplest solution, make sure squid 2.7 is uninstalled. This also ensures the user doesn’t get confused if they are trying to customise any of it. So when you next update, if you have squid 2.7 installed, it will be removed.

Installation

While it is possible to install this from the source code (bzr), it’s not designed to be installed that way and will give you lots of trouble.
The reason it is package in .deb files is so that certain dependencies are met, and the configurations for all the pieces of required software is automatic.
Please read the installation instructions before installing.

Attempting to install from the source will not be supported unless you are building debian packages from the source and installing those. Without the debian packages, crucial steps will be missed.

If you wish to assist with porting it to another packaging system, please contact me and we can see if it satisfies the dependency resolution requirements as well as the setup steps.

Private