paeryn / openvg

Tools for exploring OpenVG
Other
11 stars 2 forks source link

correct openVG update procedure: how to? #9

Closed timtoe closed 8 years ago

timtoe commented 8 years ago

hello, please which is the correct update/upgrade procedure for openVG (Raspbian Jessie) once having installed an older openVG version, providing a clean deletion of older files which are no longer needed then after having updated?

paeryn commented 8 years ago

To uninstall run

sudo make uninstall

from the directory where you built the old version. That should delete the files that it had installed. Edit: Forgot to say you need to have root permission to uninstall, added sudo

timtoe commented 8 years ago

ok, and then remove the openVG folder after uninstall?

paeryn commented 8 years ago

If you don't want it any more then yes you can do with it whatever you want. The uninstall will remove the files that were copied to the system folders when it was installed, everything else is within the build directory.

timtoe commented 8 years ago

well - for safety reasons I didn't remove it and just installed anew over it. But don't know what went wrong - the demo is fine but there was a fatal error for git checkout windowsave and also now there is no new Dot(x, y, false) function available yet...(?)

paeryn commented 8 years ago

I assume you mean you got the following error:

fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

I've just noticed there's a mistake in the docs for how to checkout, it says

pi@raspberrypi ~ $ git clone git://github.com/paeryn/openvg
pi@raspberrypi ~ $ git checkout newfonts
pi@raspberrypi ~ $ cd openvg

You can't checkout until you change into the cloned directory (and it looks like I forgot to update the branch name), it should read

pi@raspberrypi ~ $ git clone git://github.com/paeryn/openvg
pi@raspberrypi ~ $ cd openvg
pi@raspberrypi ~ $ git checkout windowsave

I've just done a fresh clone & checkout and it works fine (with the correct instructions),

timtoe commented 8 years ago

so do I need again to uninstall completely, and then completely new install?

where is the old line

pi@raspberrypi ~ $ git checkout newfonts

"command not found, no such command"

in the new instuction

pi@raspberrypi ~ $ git clone git://github.com/paeryn/openvg
pi@raspberrypi ~ $ cd openvg
pi@raspberrypi ~ $ git checkout windowsave

and what about the Dot() function?

paeryn commented 8 years ago

Did you do a fresh git clone (or update your old version with git pull)? If not then your local copy won't have any of the changes made since the last time you did.

timtoe commented 8 years ago

I don' know anything about git or git clone or git pull... you wrote git clone, so I took git clone.

could you please provide a really really complete and gapless instruction which lists really really all of the commands needed for a complete new install? it's really puzzling me, to be honest

timtoe commented 8 years ago

this is what I did:

cd openvg
sudo make uninstall
cd ..

sudo apt-get install libjpeg8-dev indent libfreetype6-dev ttf-dejavu-core libpng12-dev libfontconfig1-dev
git clone git://github.com/paeryn/openvg
git checkout windowsave
cd openvg
make
sudo make install

cd client
make all
make test
timtoe commented 8 years ago

now what would be the correct complete instruction like?

paeryn commented 8 years ago

Two things wrong, one is you need to do the git checkout windowsave after the cd openvg, and two, git won't let you clone if the destination directory already exists (or isn't empty).

Normally you just need to do a git pull within the openvg directory to fetch any updates and merge with what you have (which, if you aren't modifying anything should go without a hitch). If you want to do a fresh clone then you need to do it into another directory or delete (or rename) the existing openvg directroy.

timtoe commented 8 years ago

you wrote that I can do with the old openvg directory what I want, so I just kept it . - you didn't write that is has to be removed compellingly!

so can you please provide the really complete, gapless, and failsafe instruction guide please?

paeryn commented 8 years ago

I don' know anything about git or git clone or git pull... you wrote git clone, so I took git clone.

could you please provide a really really complete and gapless instruction which lists really really all of the commands needed for a complete new install? it's really puzzling me, to be honest

A good time to look into git then. Since you are getting the code from a github repo and the instructions provided (which I assumed would have been followed previously) all mention using git to get the source code...

The commands are as were given (with the git checkout line after cd openvg), that assumes a clean setup (i.e. you haven't already got the library). The only thing if you are doing another clone is that the old directory has to be deleted / renamed / moved first as clone won't overwrite it. I didn't say the old version had to be deleted because if you update it with git properly you don't delete it.

git clone is used to make a fresh clone of a repository, if you are updating then you'd normally use git pull from within the existing openvg directory to get the latest version. If you made any changes to your local copy then it will try to merge the changes, and if there are conflicts it flags them up for you to sort out. Some people don't like to do deal with this, they prefer to just get a fresh clone. The only thing with getting a fresh clone is that you can't do it when a previous version's directory already exists (for the obvious reason that it would mess up the old version). You can rename the old directory, move it somewhere else or delete it depending on what you want.

The whole point of git (and Version Control Software in general) is that you don't keep all your old copies lying around, the VCS keeps track of all the versions and can re-generate any previous copy on demand.

timtoe commented 8 years ago

I am just a beginner, and all that Linux stuff is too much to read actually, so a simple installation command would be fine to have, with no need to understand everything what's happening then. But with a friend of mine (who also don't actually speak Linux) I got some help and this is my proposal for a bash installation script - would you agree to this?

echo "openVG_install.sh"
echo "starting openvg installation..."
cd /home/pi/openvg

sudo make uninstall
cd ..
if [ -e /home/pi/openvg.old/ ]; then
  rm -rf /home/pi/openvg.old/
fi
mv openvg openvg.old

# optionally uncomment/outcomment:
#sudo apt-get install libjpeg8-dev indent libfreetype6-dev ttf-dejavu-core libpng12-dev libfontconfig1-dev

git clone git://github.com/paeryn/openvg
cd openvg
git checkout windowsave
### git checkout newfonts ###  to be removed
make
sudo make install

cd client
make all
make test

cd /home/pi/

echo
echo "openvg installation finished!"
echo
echo "press Enter to quit"
read reply
exit
paeryn commented 8 years ago

That's a bit long-winded, you don't need to do the apt-get stuff each time (unless you are likely to have uninstalled any of those things in between).

Do remove the git checkout newfonts though, that will revert the library back to the older newfonts branch (you can only have one branch checked out at a time). You do need the windowsave one (otherwise it defaults the original master branch).

The clone gets all the information needed to be able to generate any of the branches. When you do a checkout git will change the files in the directory to match how they were in that branch. This is why it's not necessary to keep old copies yourself, git can always revert the code to how it was in any branch (and even down to a particular commit if you know which one you need). It becomes a bit more work if you make your own changes to the code, but git helps you there too.

timtoe commented 8 years ago

ok, I did it, thank you very much!