I'm creating this topic to get comments from developers, moderators and others on the updated PortableApps.com Format 0.91 and PortableApps.com Installer 0.91.0. Any discussion and contributions can take place here.
All existing bugs from the 0.90.0 release of the installer have been fixed in 0.91.0 based on testing. In particular, you should now be able to create installers on lower color depths on XP/Vista/7 and be able to create proper installers without distorted headers on Windows 2000 and within Wine. Bugs with preserving files have also been fixed.
A new interactive mode has been added that makes it easier to fix missing info:
Create default icons?
Enter App Name
License question
This 0.91 release represents our next big step to making the format open for all and automating it as much as possible. It's being promoted on the frontpage alongside our apps and is available for use by free and freeware publishers as well as commercial publishers by contacting us.
Comments and suggestions are always appreciated.
I've posted Skype Portable as a demo of the copy local files feature of the new installer here:
https://portableapps.com/node/19416
Sometimes, the impossible can become possible, if you're awesome!
Can you explain how this would work for updating applications that use the copy local files feature?
PortableApps.com Advocate
As you'd expect, you need to re-run the installer on a PC with the newer version. That's why we probably won't do big official releases around this but may make a list of launchers at some point.
Sometimes, the impossible can become possible, if you're awesome!
Would this remove the old install files? Also would it maintain the separate settings structure as do regular PAF apps?
PortableApps.com Advocate
All it's doing is importing the files to the right place for a launcher that a dev rights, so it depends on the app. This is just to get around the fact that you can't package some stuff. That's all. Otherwise, it's all up to the launcher and how the installer.ini is set regarding removing and preserving stuff.
Sometimes, the impossible can become possible, if you're awesome!
I posted an example that demonstrates the download abilities of the installer using the last chrome portable from mzzt. His launcher doesn't work for me, but I thought it was a useful example to demonstrate downloading and extracting an installer.
https://portableapps.com/node/19307#comment-119879
Sometimes, the impossible can become possible, if you're awesome!
My antivirus (Norton Internet Security) Detects /app/bin/makeheader.exe as Suspicious.MH690.A, which is a Heuristic Virus.
Norton has deemed the virus' risk rating as high.
Read up on Suspicious.MH690.A, here.
Please report this to Norton. Heuristics false positives are really common, but this is a unique piece of code written in Delphi, so it should be pretty easy for them to fix. Also, you could try unpacking it (it's compressed with UPX via the AppCompactor) if you want to verify that it's legit.
Sometimes, the impossible can become possible, if you're awesome!
The user should be allowed to specify where the Installer should be created especially If you are making an installer on the go. For instance I would like the installer created on the Desktop but the source folder is on the USB stick.
self.path = path if self.path == None else self.path
...will the newest format, in its Win7 compatibility, prevent Windows from asking "Did the installer complete successfully?" every time a portable app is closed? Not all of them do it, but some do, and it's kind of funny, being that NSIS is for installers, and PA makes what amount to "anti-installers", as I like to call them. Well, anything that confuses Windows amuses me, unless it winds up harmful, and this isn't.
Updates to all our apps are happening next week with this installer and recompiled with my Win7 patch (which is included in the PA.c Installer as well). Once all the launcher and installers are recompiled with it, the Windows 7 problem is gone.
Sometimes, the impossible can become possible, if you're awesome!
Hi I've been using portable apps for a few months now and my opinion is that I am so impressed that I've moved everything I can to a portable app. I hate installing anything if I can help it. I use the MOD though as I have so many apps (around 80) that I need the categories!
Anyway, I was just wondering, what is this Installer for exactly? I understand it's a dev tool, something I know little about, but are you trying to develop a way of allowing any fool, like me, turn any OS app into a portable app?
Keep up the good work,
Scott
Live for an ideal and leave no place in the mind for anything else.
This is just an installer creator app. You would still need to make a launcher for the application.
May the Shwartz be with you
My first impressions are quite positive. Easy to use, haven't hit any bugs yet, and I agree that the red sidebar graphic is awesome
Quamquam omniam nescio, nec nihil scio.
I have tested my Blender Portable 2.49 Developement Test 2 and it compiles perfectly with Installer 0.91.0 but errors on Installer 0.91.1. The log shows that there is an error on line 1651 of the PortableApps.comInstaller.nsi and yet it does not exist in the Blender Portable source folder for me to review?
Edit
I now see whats going wrong after looking at both packages:
0.91.0 has File /r "..\..\..\${APPID}Optional1\*.*"
0.91.1 has File /r "..\..\Optional1\*.*"
Dell XPS M1530 Laptop
Intel Core 2 Duo T9300 2.5GHz
4GB Ram
256MB GeForce 8600M GT
Are you attempting to do optional files manually by placing them at BlenderPortableOptional1? If so, that's not that way it's done anymore from 0.90 on up (but it would still work in 0.90 due to the way it was doing includes). You use the entries in installer.ini to select which files will be made optional now. If you want a hand with it, just let me know.
Sometimes, the impossible can become possible, if you're awesome!
When I looked at both of the versions of the package I realised that the APPID was no longer required and the folder was to be placed inside the Blender Portable folder and not outside as previous.
After that realisation it was all fine.
Dell XPS M1530 Laptop
Intel Core 2 Duo T9300 2.5GHz
4GB Ram
256MB GeForce 8600M GT
You need to use the installer.ini to mark the files. You shouldn't do it manually anymore. Otherwise other people can't recompile the installer when needed (like when we do releases and sign both the installer and launcher).
It's a little work up front to figure it out, but then you don't have to move files for subsequent releases, the installer does it all for you.
Sometimes, the impossible can become possible, if you're awesome!
I will check it when I get home from work tonight. Even though I don't need to update the Test I may still do so, so that anyone wanting to have a go at recompiling or even using it as reference can.
Edit
Yes everything works straight away and the daft thing is that I had it set like that in test 2. I should not of set the files up as I had done previously to create the installer. So I don't really need to update just yet. At least this is all cleared up now. Just holding out for some more tests on Blender Portable to see if I have missed anything.
Dell XPS M1530 Laptop
Intel Core 2 Duo T9300 2.5GHz
4GB Ram
256MB GeForce 8600M GT
....
Um..
Why did you do this in the new release?
My file used to be called
EclipsePortable_C_C++_Edition_Development_Test_8.paf.exe
Now it's...
EclipsePortable_C_CPlusPlus_Edition_Development_Test_8.paf.exe
???
What's with the new PlusPlus thing?
It was to do with URL encoding - take a look at this comment about Notepad++ - the "+" needed to be encoded as "%2B" in URLs, as with GET parameters, + = space. It's the same in searching.
So John very sensibly stripped pluses - which appears to have left you nonplussed
BTW, why is it EclipsePortable_etc? I'm not sure exactly what your AppID is, but it shouldn't be having spaces, which I guess is what you have? I would expect then that it would be trying to install to X:\PortableApps\EclipsePortable_C_CPlusPlus_Edition (not sure about that)?
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
Uhh...
no.
It just install regularly. In the X:\PortableApps\EclipsePortable by default. So I should do %2B instead of the + in my AppID?
You can still use + in AppIDs, mainly for legacy reasons (Notepad++Portable, for example). You can still use it. It just will be switched to 'Plus' in the setup filename.
Sometimes, the impossible can become possible, if you're awesome!
AppInfo.ini
The [Control] section says "Start is the command line to execute for the main application". When I wrote my launcher I expected to be able to pass options to it, e.g.
But it seems all I can put here is the name of the executable file, so I had to use another program here (AppNamePortableDebug.exe). Are there any plans to support command-line options here?
installer.ini
I'd like the [DownloadFiles] to be handled as an option so the user can decide whether or not to download the extra files. At the moment my installer offers a basic install plus an optional component for extra language files. It would be nice if a third option could be added to control whether or not to download the files specified in the [DownloadFiles] section.
It looks like the new plugin installer option in the 0.91.2 installer will solve my problem; I can make a plugin-type installer to handle this "third" option.
I'm having a problem extracting files into the correct folder after downloading. I'm downloading a zip file which contains a folder and the files I need are in that folder -
zipfile.zip\folder\files
or -
Gives the same result - App\AppName\destinationfolder\folder\files
What I want is - App\AppName\destinationfolder\files
What am I doing wrong?
EDIT:
I presume extracting from an EXE isn't working at the moment, as I can't get that happening either...
Paths from the zip are preserved when extracting. It's best to mimic an app's directory exactly within the App directory. In other words, use App\AppName\folder instead. If you need to move it, you can do so with custom code.
Only certain EXEs can be extracted. The ones you can do with 7-Zip itself. Often you can do some installers, but not all.
Sometimes, the impossible can become possible, if you're awesome!
Yeah, I tried using that path as well but I couldn't get the custom code rename to happen... is there an example I can look at somewhere?
The EXEs I'm trying to extract are all do-able with 7-Zip.
I'll keep at it, perhaps it's just one of those days Thanks for your help.
You need to do it post install with the post install custom code. You'll need to create the directories and then do Rename commands in NSIS. But I don't recommend it. Like I said, the official way is to mimic the directory structure of the app itself. There's no real reason to veer from it. If you need support, please post a new thread in app development. This is really for comments about the installer and format development, not installer support.
Some EXEs are extractable by 7-Zip front end but not the 7-Zip command line.
Sometimes, the impossible can become possible, if you're awesome!
Perhaps it would be more logical to have the Installer initiate a prompt to change the version number when it is in the wrong format (x.x.x.x)
Um...
It still deletes the Optional1 in the AppNamePortable folder.
It's supposed to. You're not supposed to be settings it up manually. You use installer.ini and it automatically handles it all for you.
Sometimes, the impossible can become possible, if you're awesome!
Hi John,
my USB stick is mounted as drive "B:" nowadays. When I install new apps or never versions I have to insert drive and main folder (B:\PortableApps) by hand.
When it was mounted as e.g. "F:" the installation path was "auto recognized".
Any ideas, why it won't work with drive "D:"?
Thanks for your great work guys,
x_ray
would imagine because B: is traditionally the second floppy drive in the system, did you change the letter your drive is mounted as or does it perhaps have two partitions, a small one that emulates a floppy disk to allow it to be booted from?
because I want to address my usb stick at home and work by using the same drive letter. B: isn't used most of the time and so it's the best choice for me without interferring other network drive mappings. Who needs floppy drives any more?
A and B have been ignored from the beginning as they are traditionally floppies and accessing a floppy slows down the detection of the platform (since it has to physically be accessed... slowly... even without a floppy in it). You're better off using X, Y, Z or something.
Sometimes, the impossible can become possible, if you're awesome!
Please add in the PortableApps.comInstaller.nsi file the line:
!define 'MUI_FINISHPAGE_TITLE_3LINES'
before of line:
!define MUI_FINISHPAGE_TEXT "$(finish)"
Please do this for which the space is insufficient for the text of the final page (The whole text does not appear), in some languages as: Spanish, international Spanish, etc.
The language selector displays the standard PortableApps.com Installer Icon. What about having it display the Applicationś icon?
I just think it would be nice.
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
Impossible with ordinary NSIS code (you can change the text or title, but not the icon), and ata the very least, difficult with nasty hacky stuff. I don't think it's worth the trouble of trying to work it out.
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
Would it be possible to integrate AppCompactor into the Installer so that the user can optionally compact the App directory prior to creating an Installer for it? Would eliminate the need to manually open AppCompactor, compact the program, then run installer.
If this is possible, it would be nice to select the options to compact the program using whichever settings are chosen, browse to program's directory for creation of an installer, review the settings that were chosen (AppID, Version, etc.) and then with one click, have the program compact the portable and then package it. All in one app.
Even for an app that uses AppCompactor, you do that once on the executable files. Then you might compile the installer a few times to test the installation process and a few other things.
The easiest thing to do is configure both AppCompactor and PortableApps.com Installer to be a "Send To" in Windows. Then you just have to right-click your AppNamePortable folder and send it to AppCompactor and then the installer.
Sometimes, the impossible can become possible, if you're awesome!
So setting up the "Send To" option would automatically add the path specified to the AppCompactor and Installer? That's pretty neat, I didn't know that. I will have to do that, thanks
Yup, they're both designed to accept the path Windows passes on the command line. Just drop a shortcut to both in your SendTo (varies by OS). I rename them to "- PortableApps.com Installer" etc so they come up first alphabetically in the Send To menu. Makes it nice and easy to compact and package.
Sometimes, the impossible can become possible, if you're awesome!
unknown variable/constant "{NAME}" detected, ignoring (LangString runwarning:1041)
I've confirmed and fixed this in my local code. I'm packaging up a new installer for release later today to remove the PreComponents warning, too, so I'll add this in. Thanks.
Sometimes, the impossible can become possible, if you're awesome!
PortableApps.com Format 0.91 (2009-06-24) does not mention any restrictions on the characters which can be used in DisplayVersion; it merely states "DisplayVersion is the user-friendly version that is generally used to describe the version. So, a released app may have a DisplayVersion of 2.4 Revision 2 but a PackageVersion of 2.4.0.2."
I am still working on my launcher so I added " (beta 1)" to the end of the DisplayVersion text and tried to package my app. Installer 0.91.7 appeared to go into an infinite loop. Its window showed "Generating installer code..." and the progress bar started moving. However after 10 minutes nothing else had appeared in the window though the progress bar had reached about 90% and the CPU load was still roughly 50%.
I terminated the process, removed the "(" and ")" from the DisplayVersion text and tried running the compiler again. This time the "Creating ...." line appeared about one second after the "Generating installer code..." line and the app was packaged within 22 seconds.
I think the specification needs to spell out which characters can be used in the DisplayVersion entry.
Hello,
I got an error after trying to package one apps
Processed 1 file, writing output:
Adding plug-ins initializing function... Done!
Error: could not resolve label "NONE" in function "PreWelcome"
Error - aborting creation process
What could be the source of this error and how to solve it ?
Thank you for help,
Have a nice day !
The problem is that you've either got CloseEXE in installer.ini set to something with a space in it, or more likely, the launcher you're running has a space in its filename. This is currently unsupported. If you want a temporary fix, go to PortableApps.comInstaller.nsi, line 755, which reads
StrCmp ${CHECKRUNNING} "NONE" SkipWelcome
. Change this toStrCmp "${CHECKRUNNING}" "NONE" SkipWelcome
and it will work. However, assuming that you hadn't created an installer.ini file with a CloseEXE setting, you should have no space in your launcher (and thus no space in App\AppInfo\appinfo:[Control]->Start).I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
It works perfectly....
Thanks for help !
I was wondering one thing about the PA.com Format.
Is there anything in the launcher that allow to define the language of an application (if it support it obviously) to the one configured in the Platform?
If not, is there any plan to do so?
The launcher or the app needs to check the environment variables set by the platform, many of our apps do this already. It's part of it all even though it isn't yet spelled out in the format spec.
Sometimes, the impossible can become possible, if you're awesome!
Since some users are installing PortableApps on multiple devices - say, a local (or local but external) hard drive, as well as a flash drive, maybe they have a backup of the suite on their phone as backup - some, but not all users are likely to have multiple installation environments going on at the same time. For one example, when I install Firefox, I install it three times. Folder for me on local hard drive. Folder for my wife on local hard drive. And then my flash drive. She has a flash drive as well, and if it's around, make it four times.
My suggestion is that when you're telling the installer where to install, perhaps in addition to the raw path, perhaps above, there could be a drop-down list of devices that the PortableApps.com Platform is installed in (StartPortableApps.exe is found on the drive's root, or a .ini file as a placeholder for the Suite being installed farther down). Select my external hard drive and it shows both Portable Firefox folders (and perhaps, the version number in those folders).
Then perhaps allow the end user to install to either folder - or, perhaps even both/all folders it found.
This would be a cool feature for if you're setting up a few flash drives to hand out at a party or meeting or something. Have half a dozen flash drives plugged into your system, and set them all up simultaneously.
Something very much like this should be in the works for hardware partners. They're gonna want an easy way to deploy the latest version of the apps to each drive. Maybe there's a faster way, when they're being built they get loaded or something, but it seems like that should be doable.
NSIS doesn't support installations to multiple locations. And it would be a nasty hack to get it to.
For partners, they build it once and use duplication machines to copy to all devices.
Sometimes, the impossible can become possible, if you're awesome!
Howdy John,
the file extraction doesn't work for me.
The download is ok but than I have to read in the installer details:
ERROR:(chrom_installer.exe>chrome7.z).
Its the same problem with all packages with download, but the JavaPortable package works...
OS: Vista 32bit
Do You have an idea?
Paid for Software more or less?
What You need is OSS!
We were on the same boat now, Mark.
I'm really confused if I did something wrong about the process of download.
I followed the instructions with the process but it seems that my work doesn't.I really don't know what did I do that makes it wrong.Does anyone willing to help me with this problem?I would be glad if there's any response on this.
thanks!
pears
[No links in signatures please, you can set it as your homepage though if you wish - mod SL]
Are you sure it's an extractable thing? Try opening it with the 7-Zip GUI first of all... but I've also heard it reported that the 7z CLI can't extract all that the GUI can, so
7zA.exe -l chrom_installer.exe
(can't remember if that's exactly what it is, something like that to list files inside it or maybe even -t or something for testing) is also worth trying.I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
Just thought I'd point out, at home, I have a couple portable apps from The Blog That Shall Not Be Named, and one of them impressed the hell out of me the other day. Did something the apps from here don't, and I couldn't believe that they added a feature to the PortableApps.com format, as opposed to just hijacking the logo and name.
The app started up, and a notification popped up telling me the version I'm running, the latest version, and gave me a clickable link to the newest version.
Part of me was troubled that they were calling home. What else was being transmitted, I wondered. But then I thought, if the portable apps vendor is trusted (as this one, the official one, is), it shouldn't be a concern.
More importantly, I wondered why that hack had such a cool feature when the official PortableApps didn't.
Maybe when the version of the Platform with the updater comes out, the format could be updated to include an update check?
To clarify: this is not a version update check, this is a portable version check. Nevermind this guy's on the updates like white on rice (had Notepad++ 5.5 and VLC 1.0.2 out the day the author published them), the updates link back to his blog, to the post with the newer version.
You can check the version from the menu by just leaving your mouse on an app for a second.
Simplifying daily life through technology
Not wanting to start a new topic, I ended up here by the link of topic 'PortableApps.com Format™ 1.0'
Anyway, I just came across some odd behavior of the PortableApps.comInstaller 1.03
I have set the installer.ini to 18 different languages and they all seem to work as long as the compiled installer can read the language environment variable.
But when I ran it straight from the desktop, as expected asks me what language I want to use. But only get a choice of 10 languages.
The installer.ini contains the following entries:
But when running the installer, the following languages aren't shown as an option:
Ps.:As well, as all (other) languages are written in the native language (like 'nederlands' for dutch). French is just shown as 'french', probably should be 'français'
Formerly Gringoloco
Windows XP Pro sp3 x32
As discussed, the languages your copy of Windows can't display are hidden. If there is an issue with a specific language not showing properly, that's an NSIS bug and we should address it with them.
Sometimes, the impossible can become possible, if you're awesome!
I am trying to build my own portable apps. Since the version 2.0 came out my new and updated apps that I create or update myself will not launch anymore from the menu.
Using the PortableApps.com Launcher creator tool I never get any error reports after making a launcher. But they do not work. Nothing gets launched when I click on the PortableApps.com menu icon of the application. Then when I go to the folder of the portableapp itself and click on the Launcher the app will correctly launch.
Does anyone have any idea what can cause this ?
Can you please take a look at the log text file I uploaded, and see if I did something wrong:
h#ttp://wikisend.com/download/536478/PortableApps.comLauncherGeneratorLog.txt]PortableApps.comLauncherGeneratorLog.txt
Remove the #
Could you post your AppnamePortable.ini from Appname/App/AppInfo/Launcher?
"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate
Hi Simeon, here it is:
The
[Launch]
section should at least, well, launch the program, provided the path is correct. Don't know if the other entries fit for that program, but that does not matter for now.Do you have changed "Appname" to the specific name in all places? (e.g. "IconsFromFilePortable.ini" in "IconsFromFilePortable\App\Appinfo\Launcher")
Or could you post the contents of your
appinfo.ini
as that is the file that is used by the menu to figure out, how the Launcher is named.You have nothing in
[FileWrite1]
and[LanguageFile]
. Do you really understand what you are doing?Try reading this example launcher.ini.
Previously known as kAlug.
I can only say that until the latest update to the P.A.F. platform my portable apps where working fine. Hardcore knowledge of technical details shouldn't be needed according to the description of PortableApps.com Launcher:
I am aware nothing is as simple as that in real live, but I AM attempting to understand everything better, including getting answered what is currently the cause of the apps not being launched.
It does say developers, publishers and technical users. You said "Hardcore knowledge of technical details shouldn't be needed according to the description of PortableApps.com Launcher", but yes, it is... that's why it says technical users... aka advanced users. It is not designed for regular end-users. I'm guessing you're a more non-technical user by the fact that you resurrected a 2 year old dead thread in the forum rather than start a new topic in the Development forum.
Please post the exact details of your app you are trying to portablize including your launcher.ini and appinfo.ini in a new topic. I see two blatant errors right off the bat in the appinfo.ini (your version number is missing an = which is the same as it missing and you have Start1 and Run1 which are unnecessary).
Sometimes, the impossible can become possible, if you're awesome!
John, I'm not going to go into that remark about my skills (I guess that was more the mod/admin speaking), but rather open a new thread for my questions. I will take the constructive approach; and I am sure that I can master creating a valid PAF installation.
Is the launcher filename
extractico.exe
? I'd guess it'sIconsFromFilePortable.exe
.Also, you only need
Icons
,Name1
,Start1
etc. when you have multiple menu items.Previously known as kAlug.