Re: Packing a C# project.

"Neil Munro" <[email protected]> Tue, 17 Jun 2008 23:42:35 +0100
Newsgroups gmane.comp.autopackage.devel
Message-ID <[email protected]>
2008/6/16 Isak Savo <[email protected]>:

> On Mon, Jun 16, 2008 at 2:16 PM, Neil Munro <[email protected]> wrote:
> >
> > 2008/6/16 Jan Niklas Hasse <[email protected]>:
> >>
> >> On Mon, Jun 16, 2008 at 1:45 PM, Neil Munro <[email protected]>
> wrote:
> >> >>
> >> >> echo '*' | import
> >> >
> >> > Uhm, what's does this step do?
> >>
> >> It imports all files inside $build_root inside your autopackage. See
> >> http://autopackage.org/developer-quickstart.html
> >
> > Woah not done the mkspec step yet. in fact does the mkapspec program not
> do
> > all this? I am trying to do the steps in order as they appear on the
> > website. In fact, the mkapspec program helped me build the autopackage,
> and
> > it installs fine, but does not run. At least I am further on than I was.
> > I've not gotten it to include the help.txt file and the program bombs out
> > with this error.
>
> It is important that you at least get yourself familiar with how
> autopackage works. We've written tons of documentation in various
> forms on the web and I strongly suggest you at least read the
> quickstart and maybe also the tutorial.
>
> It is a bit hard to explain how you should solve your problems if you
> don't see the big picture :)
>
> In a nutshell, here's what's required from an apspec-file:
>
> [BuildPrepare]
>  In this section, write whatever code that is needed to build the
> program and to "install" it into a fake location - The
>  install part is important, because the [imports] section expects
> stuff to be in the correct places by default (can be
>  worked around, but it's easier to do [BuildPrepare] good than to
> tweak [imports].
>  Essentially, stuff should be placed in the location pointed to by
> the $build_root environment variable.
>
> [Imports]
>  In this section, write calls to the "import" function to include the
> actual files in the resulting .package. If
>  [BuildPrepare] is written good, then all that is needed here is:
> echo '*' | import
>
> [Prepare]
>  Add dependency checks here (mkapspec can help you here!!)
>
> [Install]
>  Add code that installs the stuff that was imported earlier (in
> [Imports]). All paths in here are relative paths, equal to
>  what you see if you look at the directory structure in $build_root
>
> [Uninstall]
>  Use uninstallFromLog here. It's all you need unless you did
> something really weird in [Install]
>
> But please, read the documentation on the web.
>
> Here's what I suggest you do:
> 1) Read quickstart, understand the basic concepts
> 2) Write an install script like Jan Niklas suggested. It's important
> that it installs everything into its proper file hierarchy.
> 2.1) If you run the script like so: ./install-script
> /tmp/testing-warp-install you should be able to start warp from
> /tmp/testing-warp-install/bin/
> 2.2) If 2.1 fails, figure out what's wrong :)
> 3) Use mkapspec to create an apspec file (you hinted that you've
> already done this, if so, skip this step)
> 4) Run makepackage to create the actual package
> 5) Try to install it!
>
> -Isak


My understanding of reading the documentation, which I have been doing, just
completing sections as well as I can when I reach them.

Stage 1:

1) Binary relocatability, I believe I have done this.
2) Dependancy audit, there's only one, mono. I know this from guess work and
following the ldd thing on the website. However running it on the exe file
with the | grep NEEDED did not work. I assume because it's not an ELF
binary.

Stage 2:

1) Autopackage developer tools installed.

Stage 3:

1) Created the default.apspec.in file using the command line (from
template).

Stage 4:

1) Edited the file manually to place shortname, description, version number
etc into it.

Stage 5:

1) Created the install.sh file which is as above, it installs the help.txt
file.
2) Placed ./install.sh %build_root in the [PrepareBuild] section just above
preparebuild.
3) Left [BuildUnprepare] as it was.

Stage 6:

1) use echo '*' | import to import all files.
2) I assume I AM using prepareBuild so skip over the next section.

Stage 7:

1) I assume the only dependency considering I am writing in C# is mono.
2) This: http://trac.autopackage.org/wiki/PackagingMonoApps showed me an
example of how to get the rootname for mono. My installed version is 1.2.6,
so stuck with that.
3) Since help.txt is a data file in the [Install] section in addition to
installExe bin/* should I also add copyFile share/help.txt
%PREFIX/share/help.txt?

Stage 8:

1) Run makepackage in the root of the source directory.

Stage 9:

1) Install and test package.


Please find attached the default.apspec.in file which I have been working
on. At a guess it's only stage 7 I may be having issues with, if I am wrong,
well then I am wrong and have to go back a bit. But I'd rather have been
right.

---------------------------------------------------------------------
To unsubscribe, e-mail: autopackage-dev-unsubscribe-OfajU3CKLf1/[email protected]
For additional commands, e-mail: autopackage-dev-help-OfajU3CKLf1/[email protected]
default.apspec.in (application/octet-stream, 2.8 KB) - not displayed