Git Product home page Git Product logo

epm's Introduction

ESP Package Manager (EPM)

What is EPM?

EPM is a simple cross-platform tool that generates software and patch distributions in various formats from a list of files. Supported formats include:

  • AIX software packages ("installp")
  • AT&T software packages ("pkgadd"), used by Solaris and others
  • BSD packages ("pkg_create")
  • Compaq Tru64 UNIX ("setld")
  • Debian Package Manager ("dpkg")
  • HP-UX software packages ("swinstall")
  • IRIX software manager ("inst", "swmgr", or "tardist")
  • macOS software packages ("name.pkg")
  • Portable (installation and removal scripts with tar files)
  • Red Hat Package Manager ("rpm")
  • Slackware software packages ("name.tgz")

EPM also includes graphical "setup" and "uninstall" programs that can be provided with your distributions to make installation and removal of more than one package a snap. The installers can be customized with product logos, "readme" files, and click-wrap licenses as desired.

EPM is provided as free software under version 2 of the Apache License (ALv2).

How is this releated to the official EPM?

Starting with version 4.5.2, this is, in fact, the official EPM distribution.

How Do I Compile EPM?

See the file INSTALL.md for more info on that.

How Do I Use EPM?

Please look at the EPM manual. A preformatted copy is included with the source archive in the file doc/epm-book.html.

An example EPM software list file is provided with this distribution in the file epm.list.

Do I Have to Pay to Distribute Software Using EPM?

No! EPM is free software and any installations you create are unencumbered by licensing of any kind, not even the GPL or the ALv2.

What's New in EPM?

See the file CHANGES.md for change information.

Resources

The official home page for EPM is https://jimjag.github.io/epm/.

Report all problems and submit all patches/pull requests using the Github issue tracking pages at https://github.com/jimjag/epm/issues.

Legal Stuff

EPM is Copyright © 1999-2020 by Michael R Sweet. All rights reserved. EPM is Copyright © 2020 by Jim Jagielski. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

epm's People

Contributors

ardovm avatar damjanjovanovic avatar emthornber avatar jimjag avatar magnuswibeck-sato avatar michaelrsweet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

epm's Issues

make install errors

$ sudo make install
Installing EPM programs in /usr/local/bin
Installing EPM manpages in /usr/local/share/man/man1
make[1]: d: Command not found
/bin/sh: line 1: -c: command not found
/bin/sh: line 1: -c: command not found
/bin/sh: line 1: -c: command not found
/bin/sh: line 1: -c: command not found
make[1]: *** [Makefile:87: install] Error 127
make: *** [Makefile:163: install] Error 2

$ sudo make -n install
echo Installing EPM programs in /usr/local/bin
/usr/bin/install -c -d -m 755 /usr/local/bin
for file in epm epminstall mkepmlist; do
/usr/bin/install -c -c -m 755 $file /usr/local/bin;
done
(cd doc; make -ns install)
echo Installing EPM manpages in /usr/local/share/man/man1
d -m 755 /usr/local/share/man/man1
for file in epm.1 epminstall.1 mkepmlist. setup.1; do
-c -m 644 $file /usr/local/share/man/man1;
done
echo Installing EPM manpages in /usr/local/share/man/man5
d -m 755 /usr/local/share/man/man5
for file in epm.list.5 setup.types.5; do
-c -m 644 $file /usr/local/share/man/man5;
done
echo Installing EPM documentation in
d -m 755
for file in ./COPYING ./README.md epm-book.epub epm-book.html epm-book.pdf; do
-c -m 644 $file ;
done

rpm -bb --buildroot: unknown options

I have been using rpm on a x64 installation for a few years; recently I moved to an arm64 setup and as such did a clean (virtual) Fedora installation. Compiled and installed rpm 5.0.0 (tried some older versions as well) but get an error on the rpm -bb and --buildroot options. Any idea what I'm doing wrong?

I'm using:
epm -f rpm emma02 -v -v -k

...
Building RPM binary distribution...
/usr/bin/rpm -bb --buildroot "/media/psf/Home/workspace/emma_02/Linux build/linux-5.11-aarch64/buildroot" --target aarch64 linux-5.11-aarch64/emma02.spec
rpm: -bb: unknown option
Packaging failed!

Missing fakeroot should be a fatal error, not a warning

Hello,

following OpenOffice bug 128413 I would like to suggest that if epm is unable to ensure the file permissions in a generated Debian archive, it should consider it a fatal error rather than a warning.

Apparently, epm can predict in advance whether the permissions will be respected or not, because the warning seems to disappear when the condition are met.

If you agree on this, and you do not have time do dedicate to it, I can look into the code and prepare a pull request.

make install does not work on documentation.

Hi Jim,

I am building a package for arch. The Arch build tool is always executing make install including the installation of the documentation. I get Following error:

make[1]: [Makefile:86: install] Error 127 (ignore)

for file in epm.1 epminstall.1 mkepmlist. setup.1; do \
    -c -m 644 $file /home/legine/workspace/arch/epm/pkg/epm/usr/share/man/man1; \
done

After some further Analysis I figured that the makefile in doc does not state to use install. which seems to result in this rather messy situation.
epm-5.0.0/doc/Makefile:

[...]
Programs...
CC    =    cc
HTMLDOC    =    /usr/bin/echo
RM    =    /usr/bin/rm -f
[...]
# Install documentation
install:
	echo Installing EPM manpages in $(BUILDROOT)$(mandir)/man1
	$(INSTALL) -d -m 755 $(BUILDROOT)$(mandir)/man1

I tried adding

INSTALL = @INSTALL@

to Makefile.in, but no luck.

Any ideas?

The great relicensing ...

The commit, inter alia, renamed the file COPYING to LICENSE.

I tried to do make test and the lack of a file called 'COPYING' caused the tests to fail.

The files epm.list.in, and jimjag.patch all refer to COPYING which stops epm building the test package.

Also there are many places in doc/... files that refer to COPYING which ought to be corrected to avoid confusing Joe Public.

freebsd epm uses pkg_create, which does not exist anymore?

I tried to create a package with epm for FreeBSD. Unfortunately, epm creates something else as pkg expects nowadays.
pkg-create does not exist anymore.
When trying to create a package name boca (epm -vv -f native -a amd64 boca.amd64) I get this error:
/usr/sbin/pkg_create -p / -c freebsd-14.0-amd64/boca.amd64.comment -d freebsd-14.0-amd64/boca.amd64.descr -f freebsd-14.0-amd64/boca.amd64.plist freebsd-14.0-amd64/boca.amd64-3.3.2-freebsd-14.0-amd64.tbz
epm: Unable to execute "/usr/sbin/pkg_create" program: No such file or directory
Packaging failed!

This is what is available in freebsd-14.0-amd64
This is what epm creates:
drwxr-xr-x 3 root wheel 3 Dec 7 16:27 boca.amd64.buildroot
-rw-r--r-- 1 root wheel 355 Dec 8 14:23 boca.amd64.comment
-rw-r--r-- 1 root wheel 43 Dec 8 14:23 boca.amd64.descr
-rw-r--r-- 1 root wheel 657 Dec 8 14:23 boca.amd64.plist

pkg create expects something like this:
-rwxr-xr-x 1 root wheel 1820 Dec 7 23:51 +MANIFEST
drwxr-xr-x 3 root wheel 8 Dec 7 23:51 .
drwxr-xr-x 5 root wheel 7 Dec 8 03:08 ..
-rw-r--r-- 1 root wheel 312 Dec 7 16:08 LICENSE
-rwxr-xr-x 1 root wheel 55 Dec 7 16:08 pkg-deinstall
-rwxr-xr-x 1 root wheel 57 Dec 7 16:08 pkg-install
drwxr-xr-x 3 root wheel 3 Dec 7 16:08 usr

Or is there perhaps a pkg-create that I have to install from somewhere?

EPM_RPMARCH

First of all thank you very much for the maintenance.

I am experiencing an issue with building rpms with epm v5.0.0: When compiling the sources and using the binary as follows:

#> epm -g -f rpm -vvvvv --keep-files <product> <listfile>
Searching for product information...
Creating RPM distribution...
Creating spec file...
Copying temporary distribution files...
Directory linux-4.12-x86_64/<path>
...
Building RPM binary distribution...
/usr/bin/rpmbuild -bb --buildroot "<path/to/buildroot>" --buildarch x86_64 linux-4.12-x86_64/<product>.spec
rpmbuild: --buildarch: unknown option
Packaging failed!

I assume the configure script has some flaw, i.e. if I comment out lines 5259-5281 in configure

#       cat >>confdefs.h <<_ACEOF
##define EPM_RPMARCH "--buildarch "
#_ACEOF

the correct flag --target x86_64 is used for rpmbuild.

But maybe I am missing some subtile differences between the OS vendors. This was found on:

  • SUSE Linux Enterprise Server 12 SP5
  • RPM version 4.11.2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.