Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Created December 12, 2014 08:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/b7234da3aa1a19c7fd68 to your computer and use it in GitHub Desktop.
Save anonymous/b7234da3aa1a19c7fd68 to your computer and use it in GitHub Desktop.
stdin
diff -pruN pkgutils-5.35.6/ChangeLog pkgutils-5.32.0_8/ChangeLog
--- pkgutils-5.35.6/ChangeLog 2014-03-24 05:16:55.000000000 +1100
+++ pkgutils-5.32.0_8/ChangeLog 2010-07-21 21:42:14.000000000 +1000
@@ -1,496 +1,95 @@
-commit bf4255e16b64eb26eeda62b610d24c111a2fe574
-Author: Juergen Daubert <jue@jue.li>
-Date: Sun Mar 23 19:15:46 2014 +0100
+commit 15d479f352d50f0785fd10151e525eaed44c2dc1
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Wed Jul 21 21:42:09 2010 +1000
- bump version to 5.35.6
+ add group var
-commit 598f7b4a053b29acb5a7d400abe579270dd7ae6d
-Author: Juergen Daubert <jue@jue.li>
-Date: Sun Mar 23 19:13:04 2014 +0100
+commit 9d85de0c59f40a0f36aa82ec7e9dfe4a2df9a77a
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Tue Jun 1 22:00:51 2010 +1000
- pkgadd.conf: allow update of /etc/ssl/cert.pem provided by core/ca-certificates
+ add pigz support for parallel compression to gzip
-commit 215882c2782fb13d52ede38e711340b3429c1040
-Author: Juergen Daubert <jue@jue.li>
-Date: Sun Mar 23 19:09:39 2014 +0100
+commit 54bcc73fea91f1b73a519154f4d0cc2167395073
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Tue May 25 22:53:26 2010 +1000
- pkgadd.conf: add rules for hwdb of eudev
+ fix footprint new to show
-commit e351466294c697439c83f7f90cb835cf5eeeaf22
-Author: Matt Housh <jaeger@morpheus.net>
-Date: Wed Mar 13 09:05:01 2013 -0500
+commit 0eb1a36a110628c56a33669c6d758eb79d58ca6b
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Tue May 25 22:46:17 2010 +1000
- pkgmk.conf: added commented MAKEFLAGS option
+ fix bug in new-files footprint
-commit 01ba62021b2ce74a473f3f7b3bf78452d8f9201f
-Author: Juergen Daubert <jue@jue.li>
-Date: Mon Jan 21 16:19:08 2013 +0100
+commit 9739f49fc96dcbce8ae39a96b5331d32c7f7dc74
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Tue May 25 22:35:27 2010 +1000
- Makefile: bump version to 5.35.4
+ add -im option to pkgmk
-commit d804a38febb135bb6a428f2f3685001a49acb1f7
-Author: Juergen Daubert <jue@jue.li>
-Date: Mon Jan 21 16:14:45 2013 +0100
+commit 59dc69e6e1f2bd2fd319c92632ec1e521645aabb
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 7 18:38:06 2010 +1100
- update copyright year to 2013
+ fix downloading of non archives as text allowed
-commit 7e53648a28795a24c1310f57b915291f88aac995
-Author: Juergen Daubert <jue@jue.li>
-Date: Mon Jan 21 16:09:17 2013 +0100
+commit 2679168e15a8a9b4cee1001b377aca02f1b3d0b0
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Oct 11 12:16:33 2009 +1100
- pkgmk.conf: if PKGMK_ARCH is unset we default to 64
+ remove text files downloaded and add tbz extraction support
-commit e691a2bfd4892cf9da5834b9022625c34a623c1e
-Author: Juergen Daubert <jue@jue.li>
-Date: Wed Nov 28 13:29:12 2012 +0100
+commit 216bdc106976e6d9a1d0f630c6498a75e39a3396
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sat Jul 4 13:46:44 2009 +1000
- bump version to 5.35.3
+ add mirror retry on failed mirrors
-commit a455d5533e1fa24564c4634182370bff5217dd13
-Author: Juergen Daubert <jue@jue.li>
-Date: Wed Nov 28 13:23:58 2012 +0100
+commit b6d8c9b75eea18402d85aaf7ae2aa1cda0d63579
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sat Jul 4 11:38:55 2009 +1000
- pkgmk: add support for plain tar, FS#603
+ fix mirror support to use %n for names in mirror urls
-commit 6d244ad0c04f92581dd38203bcad731a88f17d62
-Author: Matt Housh <jaeger@morpheus.net>
-Date: Tue Nov 27 10:17:18 2012 -0600
+commit 6d16ebf2c39acc4502b06915468ca4e2c9fbf1cf
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Jun 7 22:25:30 2009 +1000
- pkgmk, pkgmk.conf: updates for multilib
+ add in mirror support
-commit cb463301e39d7de125895b6eb4fffd66cd431a6f
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Mar 28 19:36:27 2012 +0200
+commit 6bcefda2f83750e9b0118853763835d3cb182898
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 19:30:03 2009 +1100
- Bumped version to 5.35.2.
+ Makefile: move man directory to /usr/share/man
-commit f30a8abd09ed6cb6db1446baae9538b30a072d1d
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Mar 27 20:28:18 2012 +0200
+commit d60f0b06e06166682fbeea6947d1d41a68b536f6
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 19:24:22 2009 +1100
- Switched to libarchive 3.x.
+ Makefile: bump version
-commit 508581b16b2615ad6cdb506eb86238aac96659c3
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Aug 31 19:23:15 2010 +0200
+commit 5395514acb219b53f90cc3ed48cbe4fd56469fc9
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 19:19:54 2009 +1100
- Bumped version to 5.35.1.
+ pkgmk.in: fix override variables so there is no trailing spaces if not set
-commit 77850c5a26df37018b37ba46076e32ad74bfe529
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Aug 31 19:22:12 2010 +0200
+commit 98be567d2c96db5b108950dfd37436bb4cf372c3
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 18:58:02 2009 +1100
- Documented PKGMK_IGNORE_NEW in pkgmk.conf.5.
+ pkgmk.in add recent changes
-commit c436c58ab0f70a7586e61321ccaced614d1da7c7
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Jun 26 18:46:59 2010 +0200
+commit bd2448f5079ed76c990601562b69b947789edff8
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 18:40:58 2009 +1100
- Bumped version to 5.35.0.
+ add in pkgutils-5.32.0-hvlinux.patch
-commit 50689e8a22c6e974f642dc6d1ee28b75634ce7c5
-Author: Juergen Daubert <jue@jue.li>
-Date: Sat May 29 16:30:15 2010 +0200
+commit 0896a5360d95be80eb821bdf6424ca0a69e400be
+Author: Danny Rawlins <monster.romster@gmail.com>
+Date: Sun Mar 8 18:38:57 2009 +1100
- Updated copyright notices to 2010.
-
-commit 56b9b9dab28a3779a6dc1ef97ec26df9cb634915
-Author: Johannes Winkelmann <jw@smts.ch>
-Date: Thu May 27 21:18:34 2010 +0200
-
- Bug #221: added error codes.
-
-commit 266200679b16c6a3adbdfa558d42419aa64a7edd
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Mon May 24 11:11:50 2010 +0200
-
- Fixed documentation to not only talk about pkg.tar.gz but also bz2 and xz.
-
-commit 163aacb1ff22837484088c1b41272684df7fc2f2
-Author: Johannes Winkelmann <jw@smts.ch>
-Date: Sun May 23 17:38:31 2010 +0200
-
- Bug #221: pkgmk optionally now only warns about new files in a footprint.
-
-commit 37c478ef8b53608ffa9cfdedac2f65a2287ac5b9
-Author: Juergen Daubert <jue@jue.li>
-Date: Fri May 21 20:03:48 2010 +0200
-
- Bug #581: Users may choose from gz/bz2/xz for the compression mode now.
-
-commit 780862a6ece30840523d91328f1945cf3edf2cfe
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue May 18 19:24:17 2010 +0200
-
- Be less strict about the package name suffix.
-
- Note that we never made sure that the string in PKG_EXT
- really is the final part of the filename.
-
-commit a09b143460d8671137445f05a8733be8f69c20ce
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sun May 16 12:35:34 2010 +0200
-
- Added support for bzip2- and xz-compressed packages.
-
-commit 4b4ad16b7f79fcb59bdbd4afe1129e759c741bc2
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed May 5 19:27:55 2010 +0200
-
- Get libarchive LDFLAGS for static linking from pkg-config.
-
-commit 5228efc2d634e5b75429b221ea4e09c20b5b4829
-Author: Andrew Brouwers <abrouwers@gmail.com>
-Date: Sat Mar 27 17:30:02 2010 +0100
-
- Added support for *.tbz2 and *.txz source entries in pkgmk.
-
-commit e74ba08d64663ed52813933a1a9e35a93ab384f0
-Author: Andrew Brouwers <abrouwers@gmail.com>
-Date: Sat Mar 27 17:29:04 2010 +0100
-
- Added support for *.rpm source entries in pkgmk.
-
-commit d1e01d50ac7775bae9663fe4cae36e3e469c31a8
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Jul 21 19:30:27 2009 +0200
-
- Bumped version to 5.34.2.
-
-commit e6c32c41e9cdd3c596c89cf8d1696ad952516c53
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Jul 21 19:29:43 2009 +0200
-
- Also accept *.tar.lzma source archives.
-
-commit 1593a50c02e33c4bd966bedb1878971c13a938be
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Mon Jul 20 19:25:18 2009 +0200
-
- Bumped version to 5.34.1.
-
-commit 698c42e2a069018285395a53e21f7c0dabfec88c
-Author: Juergen Daubert <jue@jue.li>
-Date: Thu Jul 16 20:53:41 2009 +0200
-
- Preserve file permissions and ownership when extracting distfiles.
-
-commit 3a97f4e76fbc247c91187296c612ce95ae08b678
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Jul 15 20:10:36 2009 +0200
-
- Bumped version to 5.34.0.
-
-commit de428c293b6157635965227c8f9f2296db83d54f
-Author: Juergen Daubert <jue@jue.li>
-Date: Wed Jul 15 20:01:53 2009 +0200
-
- Bug #360: Check whether files are writable early.
-
-commit 7b8b79b9c200c91b43c3ee8f0cf202f7a4021f79
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Jun 20 15:28:33 2009 +0200
-
- Use bsdtar instead of GNU tar to extract all handled archive formats.
-
-commit 0b4af85e50830c17b3496434b2dd6a83cd2210ee
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sun Jun 14 00:02:54 2009 +0200
-
- Only enable the tar and gzip modules when initialising libarchive.
-
- This means you will only be able to run pkgadd/pkginfo on gzipped tarballs
- but not on tarballs that were compressed with eg bzip2 or xz.
-
-commit b9913a29de27591584dad859dc429f42f6fa17fe
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Nov 4 20:17:18 2008 +0100
-
- Bumped version to 5.33.0.
-
-commit 7b3f9929cba16da56f011ba666ca336b1cad2b28
-Author: Juergen Daubert <jue@jue.li>
-Date: Sat Nov 1 18:17:44 2008 +0100
-
- Bug #336: Only accept http/https/ftp/file protocols in sources.
-
-commit 51c534c2bd638d6ef849bac15c6106a17a682b56
-Author: Juergen Daubert <jue@jue.li>
-Date: Sat Nov 1 18:09:20 2008 +0100
-
- Bug #347: wget options are configurable now.
-
-commit 92dbaab6a7ea34dc55308d12578453ec7e498295
-Author: Johannes Winkelmann <jw@smts.ch>
-Date: Tue Sep 30 20:59:37 2008 +0200
-
- pkgmk: add "extract only" functionality, previously suggested by Lucas Hazel and Danny Rawlins
-
-commit 140951a0685c5b159a75f86ebaf8a8703a3568ac
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sun Jun 22 11:53:58 2008 +0200
-
- Bug #287: Added a manpage for pkgmk.conf.
-
- Based on a patch by Danny Rawlins <monster.romster@gmail.com>.
-
-commit 765b5014db1cc1fd3278f0b425d586b6dce75ae1
-Author: Brett Goulder <predatorfreak@dcaf-security.org>
-Date: Fri Apr 11 18:48:57 2008 +0200
-
- Bug #241: Don't check SSL certificates.
-
- pkgmk's mechanism to check file integrity is .md5sum, so relying on
- proper SSL certificates for https connections isn't critical. This fixes
- transfers from https servers whose SSL certificates are self signed only.
-
- Original patch by Jose V Beneyto <sepen@users.sourceforge.net>.
-
-commit 6ae354d751e69982f46acf37fa83cd0679eb68b7
-Author: Lucas Hazel <lucas@die.net.au>
-Date: Fri Apr 11 18:18:09 2008 +0200
-
- Bug #244: Relative paths are supported now in pkgadd -r.
-
-commit c67507556d9eaa476ec142762f041fd9b254655d
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Mar 1 10:18:03 2008 +0100
-
- Bumped version to 5.32.0.
-
-commit 3c0fce38e98fa4d796c94bd301afd138e27ab40e
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Mar 1 10:17:07 2008 +0100
-
- Removed /etc/mail/cf from the UPGRADE rules in pkgadd.conf.
-
-commit d324dd089cd8d643a3d6616de11de178919e10e7
-Author: Johannes Weiner <hannes@saeurebad.de>
-Date: Mon Dec 3 18:37:50 2007 +0100
-
- Bug #204: Restore mtime for extracted files.
-
-commit 2d9e8fdf3f58dc8a0a5d0e198d2da32976b8b62c
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sun Dec 2 19:39:44 2007 +0100
-
- Bumped version to 5.31.0.
-
-commit 2dee8e17ce94c29744a8d097b2bf6b3165f52659
-Author: Matt Housh <jaeger@crux.nu>
-Date: Sun Dec 2 12:25:25 2007 -0600
-
- added PKGMK_SOURCE_MIRRORS support
-
-commit 86830d3c84fef2d68fee2def7a276caaa94d72f4
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Apr 21 12:31:09 2007 +0200
-
- Improved "dist" target.
-
-commit 6fe55c25a23b7ee2e84e3ad2d508196f3e5f82a3
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Apr 18 22:38:09 2007 +0200
-
- Updated copyright notices.
-
-commit 9a7adb608a4b3e207e2c80ebf316682e205c2cc6
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Apr 18 22:12:57 2007 +0200
-
- Don't mention libtar in README anymore.
-
-commit b3197f39a0ac2c23680450183442534e3a028cc4
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Apr 18 22:12:15 2007 +0200
-
- Bumped version to 5.30.0.
-
-commit e2a28799e48b911879eea3880f233f80ae38736f
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Apr 18 22:11:18 2007 +0200
-
- Removed NEWS.
-
- It's annoying to maintain, and we have ChangeLog.
-
-commit c9984aa86ec99c6dd8d47c2bf3d7a409a1c4fa48
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Apr 17 20:49:58 2007 +0200
-
- Moved archive initialization code to INIT_ARCHIVE.
-
-commit bfb5480be95ac565f1a057750429857385478be9
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sun Feb 25 13:51:10 2007 +0100
-
- bug #107: upgrade udev rules by default.
-
-commit 9fb2521b153582faf2d79e29f44421d34c2b6ae1
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Fri Dec 29 16:51:27 2006 +0100
-
- Removed some dead (and buggy) code.
-
-commit 2a62ed9ad2688a873bc7773b2c3cf818456aeabb
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Dec 6 21:17:49 2006 +0100
-
- Set ARCHIVE_EXTRACT_UNLINK when extracting archive entries.
-
-commit e83769cac3e8ccbe57b287467746c9c1a7254136
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Sat Dec 2 01:55:52 2006 +0100
-
- Fixed setting up the flags for archive_read_extract().
-
-commit 25efd91b9eec7755e4296591f531c923209dd1fa
-Author: Simone Rota <sip@crux.nu>
-Date: Sat Dec 2 01:43:19 2006 +0100
-
- preserve owner/permissions when extracting
-
-commit 80db05ef8d1a1ce7d7948a9d06732209f5f84fce
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Fri Nov 24 21:59:10 2006 +0100
-
- Fixed the permission lookup problem for hardlinks.
-
- We now do two runs over the archive, where the first one remembers
- permissions for hardlink targets, which are then looked up in the
- second run.
-
-commit 7f84e1cc9e8e7ae698e8b648f7dbba98a2753150
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Fri Nov 24 21:42:59 2006 +0100
-
- Prefer archive_entry_mode() over archive_entry_stat().
-
- If we're only interested in the mode, just call archive_entry_mode()
- instead of getting the whole stat struct.
-
-commit 632a66b648eb8a267a62d101c8e1182f1647017d
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Fri Nov 17 21:31:56 2006 +0100
-
- Removed the libtar archive and patches.
-
-commit fa6b0879f2c91662cdef26b598889b9834196805
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Nov 8 20:44:43 2006 +0100
-
- Some indentation fixes.
-
-commit 25f9975ca5d5010bd4f5cbfbb9faa1fed71b3db4
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Wed Nov 8 20:35:33 2006 +0100
-
- Use archive_errno() instead of errno for libarchive errors.
-
-commit c49e53c6c7e53e77fd7b171af0b43f6f2d19a8d7
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Wed Nov 8 20:28:54 2006 +0100
-
- Added .gitignore.
-
-commit c3434674df8af13a0eab79b6784e6086fa08731f
-Author: Matthias-Christian Ott <matthias.christian@tiscali.de>
-Date: Wed Nov 15 20:32:56 2006 +0100
-
- Switched from libtar to libarchive.
-
-commit 4f05762e7ed13822e8d48100d12533c0e3373be1
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Nov 14 22:22:53 2006 +0100
-
- Updated NEWS for the 5.21 release.
-
-commit d7fbaa09361f5b98a49ff0b3b179f2da5f574561
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Nov 14 22:13:16 2006 +0100
-
- Don't tar up the .git directory.
-
-commit 3309e1f843c1bf875965a7af8d904d29b8ba93b1
-Author: Tilman Sauerbeck <tilman@crux.nu>
-Date: Tue Nov 14 22:12:11 2006 +0100
-
- Generate ChangeLog from "git log".
-
-commit 376786d8722dcb1df0690be79d3c6b8c6274cf34
-Author: Matt Housh <jaeger@crux.nu>
-Date: Tue Nov 14 22:07:08 2006 +0100
-
- Enabled large file support.
-
-commit 14ab4111bddf38e32facfb586955d39e077d1fd5
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Sun Oct 1 11:42:46 2006 +0200
-
- added documentation for the INSTALL rules
-
-commit e727dae97daeeb05bf4747b4c91a3461ebd695d4
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Tue Sep 12 15:16:26 2006 +0200
-
- added an UPGRADE rule for /var/run/utmp. thanks to Anton Vorontsov.
-
-commit 22131995295a9db9be7b461cbcefe65d8ffe9df1
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Sun Aug 27 12:12:21 2006 +0200
-
- tell the user when we didn't install a file because an INSTALL rule kicked in
-
-commit 3e5b7ed9bbe9a9659486a9d4c51f3466d1e877ec
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Aug 25 12:54:15 2006 +0200
-
- added support for INSTALL rules. based on a patch by johannes. documentation needs to be updated.
-
-commit 1e0dfb6d09297f14827ed72e38dd48b4eb770e3f
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Thu Aug 24 16:17:55 2006 +0200
-
- prepared the code for the addition of the INSTALL rule
-
-commit b0bbde50af5aba136af13bb0f5e3869e101914df
-Author: Simone Rota <sip@crux.nu>
-Date: Sat Apr 29 10:01:53 2006 +0200
-
- pkgmk: optimize file detection for stripping. Thanks to aon and mark
-
-commit 4943d62183b446fb9316e1393d115425ac305292
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Apr 21 07:45:35 2006 +0200
-
- added an UPGRADE rule for crontabs
-
-commit 5401bd4576520efbe50d5f6eda4cc70788823879
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Apr 14 10:06:11 2006 +0200
-
- use the proper sentinel in the execl() call
-
-commit e55714dd079a329c915776594a06a71252c20474
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Apr 14 09:34:21 2006 +0200
-
- write warnings and errors to stderr instead of stdout
-
-commit e4b95a33c35b2fac56dd1015aa2d1eb6baf8c032
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Apr 14 09:33:50 2006 +0200
-
- put a note regarding the ChangeLog/NEWS move in the new ChangeLog, too
-
-commit aba8af68486e0bd6a271c19469f86b78cf37f0aa
-Author: Tilman Sauerbeck <tilman@code-monkey.de>
-Date: Fri Apr 14 09:23:55 2006 +0200
-
- moved ChangeLog to NEWS
-
-commit 9ac667e68d3e36eb99272eac57219002ee2318e6
-Author: Simone Rota <sip@crux.nu>
-Date: Fri Nov 11 23:40:48 2005 +0100
-
- Initial import
+ initial commit
diff -pruN pkgutils-5.35.6/.gitignore pkgutils-5.32.0_8/.gitignore
--- pkgutils-5.35.6/.gitignore 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/.gitignore 2010-07-21 21:42:09.000000000 +1000
@@ -1,7 +1,6 @@
.depend
*.o
*.8
-*.5
pkgadd
pkgmk
rejmerge
diff -pruN pkgutils-5.35.6/main.cc pkgutils-5.32.0_8/main.cc
--- pkgutils-5.35.6/main.cc 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/main.cc 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/Makefile pkgutils-5.32.0_8/Makefile
--- pkgutils-5.35.6/Makefile 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/Makefile 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,8 @@
# pkgutils
#
# Copyright (c) 2000-2005 by Per Liden <per@fukt.bth.se>
-# Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+# Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
+# Copyright (c) 2008-2010 by HV Linux (http://hvlinux.net)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,19 +23,17 @@
DESTDIR =
BINDIR = /usr/bin
-MANDIR = /usr/man
+MANDIR ?= /usr/share/man
ETCDIR = /etc
-VERSION = 5.35.6
+VERSION = 5.32.0_8
NAME = pkgutils-$(VERSION)
CXXFLAGS += -DNDEBUG
CXXFLAGS += -O2 -Wall -pedantic -D_GNU_SOURCE -DVERSION=\"$(VERSION)\" \
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-LIBARCHIVELIBS := $(shell pkg-config --libs --static libarchive)
-
-LDFLAGS += -static $(LIBARCHIVELIBS)
+LDFLAGS += -static -larchive -lz -lbz2
OBJECTS = main.o pkgutil.o pkgadd.o pkgrm.o pkginfo.o
diff -pruN pkgutils-5.35.6/pkgadd.8.in pkgutils-5.32.0_8/pkgadd.8.in
--- pkgutils-5.35.6/pkgadd.8.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgadd.8.in 2010-07-21 21:42:09.000000000 +1000
@@ -58,6 +58,6 @@ Configuration file.
.SH SEE ALSO
pkgrm(8), pkginfo(8), pkgmk(8), rejmerge(8)
.SH COPYRIGHT
-pkgadd (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+pkgadd (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2007 CRUX team (http://crux.nu).
pkgadd (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/pkgadd.cc pkgutils-5.32.0_8/pkgadd.cc
--- pkgutils-5.35.6/pkgadd.cc 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgadd.cc 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkgadd.conf pkgutils-5.32.0_8/pkgadd.conf
--- pkgutils-5.35.6/pkgadd.conf 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgadd.conf 2010-07-21 21:42:09.000000000 +1000
@@ -21,8 +21,5 @@ UPGRADE ^etc/rc\.d/net$ NO
UPGRADE ^etc/udev/rules.d/.*$ YES
UPGRADE ^etc/udev/rules.d/1.*$ NO
-UPGRADE ^etc/udev/hwdb.d/.*$ YES
-UPGRADE ^etc/udev/hwdb.bin$ YES
-UPGRADE ^etc/ssl/cert.pem$ YES
# End of file
diff -pruN pkgutils-5.35.6/pkgadd.h pkgutils-5.32.0_8/pkgadd.h
--- pkgutils-5.35.6/pkgadd.h 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgadd.h 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkginfo.8.in pkgutils-5.32.0_8/pkginfo.8.in
--- pkgutils-5.35.6/pkginfo.8.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkginfo.8.in 2010-07-21 21:42:09.000000000 +1000
@@ -37,6 +37,6 @@ Print help and exit.
.SH SEE ALSO
pkgadd(8), pkgrm(8), pkgmk(8), rejmerge(8)
.SH COPYRIGHT
-pkginfo (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+pkginfo (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2007 CRUX team (http://crux.nu).
pkginfo (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/pkginfo.cc pkgutils-5.32.0_8/pkginfo.cc
--- pkgutils-5.35.6/pkginfo.cc 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkginfo.cc 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkginfo.h pkgutils-5.32.0_8/pkginfo.h
--- pkgutils-5.35.6/pkginfo.h 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkginfo.h 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkgmk.8.in pkgutils-5.32.0_8/pkgmk.8.in
--- pkgutils-5.35.6/pkgmk.8.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgmk.8.in 2010-07-21 21:42:09.000000000 +1000
@@ -5,7 +5,7 @@ pkgmk \- make software package
\fBpkgmk [options]\fP
.SH DESCRIPTION
\fBpkgmk\fP is a \fIpackage management\fP utility, which makes
-a software package. A \fIpackage\fP is an archive of files (.pkg.tar.gz, .pkg.tar.bz2 or .pkg.tar.xz)
+a software package. A \fIpackage\fP is an archive of files (.pkg.tar.gz)
that can be installed using pkgadd(8).
To prepare to use pkgmk, you must write a file named \fIPkgfile\fP
@@ -17,6 +17,8 @@ times of the source files to decide if t
Global build configuration is stored in \fI/etc/pkgmk.conf\fP. This
file is read by pkgmk at startup.
+
+If you have a SMP system installing pigz will speed up package and man page compression.
.SH OPTIONS
.TP
.B "\-i, \-\-install"
@@ -34,6 +36,9 @@ Download missing source file(s).
.B "\-do, \-\-download\-only"
Do not build, only download missing source file(s).
.TP
+.B "\-eo, \-\-extract\-only"
+Do not build, only extract source file(s).
+.TP
.B "\-utd, \-\-up\-to\-date"
Do not build, only check if the package is up to date.
.TP
@@ -88,40 +93,9 @@ Global package make configuration.
.TP
.B "wget"
Used by pkgmk to download source code.
-.SH EXIT CODES
-.TP
-.B 0
-No error occured.
-.TP
-.B 1
-A general error has occured.
-.TP
-.B 2
-The Pkgfile is invalid.
-.TP
-.B 3
-The source or build directory is missing or is lacking read/write permissions.
-.TP
-.B 4
-An error occured during the download of source files.
-.TP
-.B 5
-An error occured during unpacking of source files.
-.TP
-.B 6
-An md5sum mismatch occured.
-.TP
-.B 7
-A footprint mismatch occured.
-.TP
-.B 8
-An error occured while running the build function.
-.TP
-.B 9
-An error occured while installing the package via pkgadd.
.SH SEE ALSO
-pkgmk.conf(5), pkgadd(8), pkgrm(8), pkginfo(8), rejmerge(8), wget(1)
+pkgadd(8), pkgrm(8), pkginfo(8), rejmerge(8), wget(1), pkgmk.conf(5)
.SH COPYRIGHT
-pkgmk (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+pkgmk (pkgutils) is Copyright (c) 2000-2005 Per Liden, Copyright (c) 2006-2007 CRUX team (http://crux.nu) and Copyright (c) 2008-2010 by HV Linux (http://hvlinux.net).
pkgmk (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/pkgmk.conf pkgutils-5.32.0_8/pkgmk.conf
--- pkgutils-5.35.6/pkgmk.conf 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgmk.conf 2010-07-21 21:42:09.000000000 +1000
@@ -2,25 +2,8 @@
# /etc/pkgmk.conf: pkgmk(8) configuration
#
-export CFLAGS="-O2 -march=x86-64 -pipe"
-export CXXFLAGS="${CFLAGS}"
-
-# export MAKEFLAGS="-j2"
-
-case ${PKGMK_ARCH} in
- "64"|"")
- ;;
- "32")
- export CFLAGS="${CFLAGS} -m32"
- export CXXFLAGS="${CXXFLAGS} -m32"
- export LDFLAGS="${LDFLAGS} -m32"
- export PKG_CONFIG_LIBDIR="/usr/lib32/pkgconfig"
- ;;
- *)
- echo "Unknown architecture selected! Exiting."
- exit 1
- ;;
-esac
+export CFLAGS="-O2 -march=i686 -pipe"
+export CXXFLAGS="-O2 -march=i686 -pipe"
# PKGMK_SOURCE_MIRRORS=()
# PKGMK_SOURCE_DIR="$PWD"
@@ -28,9 +11,7 @@ esac
# PKGMK_WORK_DIR="$PWD/work"
# PKGMK_DOWNLOAD="no"
# PKGMK_IGNORE_FOOTPRINT="no"
-# PKGMK_IGNORE_NEW="no"
+# PKGMK_IGNORE_FOOTPRINT_NEW="no"
# PKGMK_NO_STRIP="no"
-# PKGMK_WGET_OPTS=""
-# PKGMK_COMPRESSION_MODE="gz"
# End of file
diff -pruN pkgutils-5.35.6/pkgmk.conf.5.in pkgutils-5.32.0_8/pkgmk.conf.5.in
--- pkgutils-5.35.6/pkgmk.conf.5.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgmk.conf.5.in 2010-07-21 21:42:09.000000000 +1000
@@ -1,80 +1,63 @@
.TH pkgmk.conf 5 "" "pkgutils #VERSION#" ""
.SH NAME
-\fBpkgmk.conf\fP \- Configuration file for pkgmk.
+\fBpkgmk.conf\fR \- Configuration file for pkgmk.
.SH DESCRIPTION
\fBpkgmk.conf\fP configures pkgutils package make, pkgmk(8).
+.TP
.SH FILE FORMAT
-The file consists of a number of variable assignments of the form \fBoption\fP=\fBvalue\fP. Comments can be specified by putting a hash (#) symbol as the first character on the line.
+The file consists of comments and options with arguments. Each line which starts with a hash (#) symbol is ignored by the parser. Options and arguments are case sensitive and of the form \fBOption=Argument\fR.
.SH DIRECTIVES
.LP
-If some option is not used (commented out or not included in the configuration file at all) pkgmk will take a default action.
+When some option is not used (commented out or not included in the configuration file at all) pkgmk takes a default action.
.TP
-\fBexport CFLAGS='STRING'\fP
+\fBCFLAGS='STRING'\fR
Set C compiler options.
-.br
+.br
Default: none
.TP
-\fBexport CXXFLAGS='STRING'\fP
+\fBCXXFLAGS='STRING'\fR
Set C++ compiler options.
-.br
-Default: none
-.TP
-\fBexport MAKEFLAGS='STRING'\fP
-Set make options.
-.br
+.br
Default: none
.TP
-\fBPKGMK_SOURCE_MIRRORS=('STRING')\fP
-Set mirrors to check and download source archives from.
-.br
+\fBPKGMK_SOURCE_MIRRORS=('STRING')\fR
+Set mirrors to check and download from.
+.br
Default: none
.TP
-\fBPKGMK_SOURCE_DIR='STRING'\fP
-Set directory for downloaded source archives.
-.br
-Default: directory of Pkgfile.
+\fBPKGMK_SOURCE_DIR='STRING'\fR
+Set directory for downloaded files.
+.br
+Default: current directory of Pkgfile.
.TP
\fBPKGMK_PACKAGE_DIR='STRING'\fR
Set directory for built packages.
-.br
-Default: directory of Pkgfile.
+.br
+Default: current directory of Pkgfile.
.TP
-\fBPKGMK_WORK_DIR='STRING'\fP
+\fBPKGMK_WORK_DIR='STRING'\fR
Set directory for building packages.
-.br
-Default: '\fBfoo\fP/work', where \fBfoo\fP is the directory of the Pkgfile.
+.br
+Default: work directory of Pkgfile.
+.TP
+\fBPKGMK_DOWNLOAD='STRING'\fR
+Download if source is not found.
+.br
+Default: no
+.TP
+\fBPKGMK_IGNORE_FOOTPRINT='STRING'\fR
+Ignore footprint verification.
+.br
+Default: no
+.TP
+\fBPKGMK_NO_STRIP='STRING'\fR
+Don't strip binarys of symbols.
+.br
+Default: no
.TP
-\fBPKGMK_WGET_OPTS='STRING'\fP
-Additional options for wget(1), which is used by pkgmk to download all files.
-.br
-.TP
-\fBPKGMK_DOWNLOAD='STRING'\fP
-If set to 'yes', pkgmk will download the source archives if necessary.
-.br
-Default: 'no'
-.TP
-\fBPKGMK_IGNORE_FOOTPRINT='STRING'\fP
-If set to 'yes', pkgmk will not perform a footprint check of the built package.
-.br
-Default: 'no'
-.TP
-\fBPKGMK_IGNORE_NEW='STRING'\fP
-If set to 'yes', pkgmk will ignore new files in a footprint mismatch.
-.br
-Default: 'no'
-.TP
-\fBPKGMK_NO_STRIP='STRING'\fP
-If set to 'no', pkgmk will strip built binaries.
-.br
-Default: 'no'
-.TP
-\fBPKGMK_COMPRESSION_MODE='STRING'\fP
-Option to select the mode used to compress the packages. Valid strings are gz, bz2 and xz.
-.br
-Default: 'gz'
.SH SEE ALSO
-pkgmk(8)
+pkgmk(8), prt-get(8), prt-get.conf(5), wget(1).
.SH COPYRIGHT
-pkgmk (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+pkgmk (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2007 CRUX team (http://crux.nu).
pkgmk (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/pkgmk.in pkgutils-5.32.0_8/pkgmk.in
--- pkgutils-5.35.6/pkgmk.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgmk.in 2010-07-21 21:42:09.000000000 +1000
@@ -3,7 +3,8 @@
# pkgutils
#
# Copyright (c) 2000-2005 Per Liden
-# Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+# Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
+# Copyright (c) 2008-2010 by HV Linux (http://hvlinux.net)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,17 +22,36 @@
# USA.
#
-##
-# error codes
-E_GENERAL=1
-E_PKGFILE=2 # invalid Pkgfile
-E_DIR_PERM=3 # (source/build) directory missing or missing read/write permission
-E_DOWNLOAD=4 # error during download
-E_UNPACK=5 # error during unpacking of source file(s)
-E_MD5=6 # md5sum verification failed
-E_FOOTPRINT=7 # footprint check failure
-E_BUILD=8 # error while running 'build()'
-E_INSTALL=9 # error while installing the package via 'pkgadd'
+array() {
+ printf "%s" "${2}" | tr --delete '\n' | sed \
+ -e 's|[\t| ]\+| |g' | \
+ cut --delimiter=' ' --fields="${1}"
+}
+
+array_count() {
+ printf "%s" "${1}" | tr --delete '\n' | sed \
+ -e 's|[\t| ]\+| |g' \
+ -e 's|^ ||' \
+ -e 's| $||' | wc --words
+}
+
+array_remove() {
+ local ITEM ARRAY TOTAL ITEM_VALUE
+ ITEM="${1}"
+ ARRAY="${2}"
+ TOTAL="$(array_count "${ARRAY}")"
+ ITEM_VALUE="$(array "${ITEM}" "${ARRAY}")"
+ if [ "${TOTAL}" = '1' ]; then
+ # 1 item to remove with no spaces
+ printf "%s" "${ARRAY}" | sed -e "s|$ITEM_VALUE||"
+ elif [ "${ITEM}" = "${TOTAL}" ]; then
+ # last item in array to remove with leading space
+ printf "%s" "${ARRAY}" | sed -e "s| $ITEM_VALUE||"
+ else
+ # remove items with trailing space
+ printf "%s" "${ARRAY}" | sed -e "s|$ITEM_VALUE ||"
+ fi
+}
info() {
echo "=======> $1"
@@ -46,11 +66,13 @@ error() {
}
get_filename() {
- if [[ $1 =~ ^(http|https|ftp|file)://.*/(.+) ]]; then
- echo "$PKGMK_SOURCE_DIR/${BASH_REMATCH[2]}"
- else
- echo $1
+ local FILE="`echo $1 | sed 's|^.*://.*/||g'`"
+
+ if [ "$FILE" != "$1" ]; then
+ FILE="$PKGMK_SOURCE_DIR/$FILE"
fi
+
+ echo $FILE
}
get_basename() {
@@ -58,110 +80,198 @@ get_basename() {
echo $FILE
}
+get_scheme() {
+ local SCHEME="`echo $1 | sed 's|\(^.*\)://.*|\1|g'`"
+ echo $SCHEME
+}
+
+get_mirror_name() {
+ local NAME="`echo $1 | sed 's|^.*://||' | sed -e 's|/.*||'`"
+ echo $NAME
+}
+
+get_mirror_path() {
+ local URL="`echo $1 | sed "s|^.*://$2/||"`"
+ echo $URL
+}
+
check_pkgfile() {
if [ ! "$name" ]; then
error "Variable 'name' not specified in $PKGMK_PKGFILE."
- exit $E_PKGFILE
+ exit 1
elif [ ! "$version" ]; then
error "Variable 'version' not specified in $PKGMK_PKGFILE."
- exit $E_PKGFILE
+ exit 1
elif [ ! "$release" ]; then
error "Variable 'release' not specified in $PKGMK_PKGFILE."
- exit $E_PKGFILE
+ exit 1
elif [ "`type -t build`" != "function" ]; then
error "Function 'build' not specified in $PKGMK_PKGFILE."
- exit $E_PKGFILE
+ exit 1
fi
}
check_directory() {
- if [ ! -d $1 ]; then
- error "Directory '$1' does not exist."
- exit $E_DIR_PERM
- elif [ ! -w $1 ]; then
- error "Directory '$1' not writable."
- exit $E_DIR_PERM
- elif [ ! -x $1 ] || [ ! -r $1 ]; then
- error "Directory '$1' not readable."
- exit $E_DIR_PERM
- fi
-}
-
-check_file() {
- if [ -e $1 ] && [ ! -w $1 ]; then
- error "File '$1' is not writable."
+ local DIRECTORY="`echo $1 | sed -e "s|/$group$||"`"
+ if [ ! -d "$DIRECTORY" ]; then
+ error "Directory '$DIRECTORY' does not exist."
+ exit 1
+ elif [ ! -w "$DIRECTORY" ]; then
+ error "Directory '$DIRECTORY' not writable."
+ exit 1
+ elif [ ! -x "$DIRECTORY" ] || [ ! -r "$DIRECTORY" ]; then
+ error "Directory '$DIRECTORY' not readable."
exit 1
fi
+ if [ ! -d "$1" ]; then
+ mkdir "$1"
+ fi
}
download_file() {
- info "Downloading '$1'."
+ local FILE CURL_RETRY CURL_RETRY_DELAY IS_FTP FILE_SIZE NO_MIRROR_ERROR
+ IS_FTP='0'
+ FILE="${1}"
+ NO_MIRROR_ERROR="${2}"
+ info "Downloading '${FILE}'."
+
+ if [ ! -e "$(which curl)" ]; then
+ error "Command 'curl' not found."
+ exit 1
+ fi
- if [ ! "`type -p wget`" ]; then
- error "Command 'wget' not found."
- exit $E_GENERAL
+ # curl times out on ftp with error 28 and then tosses the data away
+ # this is a work around
+ [ -n "$(printf "${FILE}" | egrep '^ftp://')" ] && IS_FTP='1'
+
+ # if curl has more than 1 retrys it will toss out file on ftp
+ # protocol when ftp server does not close the connection
+ if [ "${IS_FTP}" = '1' ]; then
+ unset CURL_RETRY_DELAY
+ CURL_RETRY='--retry 0'
+ else
+ CURL_RETRY_DELAY=' --retry-delay 10'
+ CURL_RETRY='--retry 3'
fi
- LOCAL_FILENAME=`get_filename $1`
- LOCAL_FILENAME_PARTIAL="$LOCAL_FILENAME.partial"
- DOWNLOAD_OPTS="--passive-ftp --no-directories --tries=3 --waitretry=3 \
- --directory-prefix=$PKGMK_SOURCE_DIR \
- --output-document=$LOCAL_FILENAME_PARTIAL --no-check-certificate"
+ LOCAL_FILENAME="$(get_filename "${FILE}")"
+ LOCAL_FILENAME_PARTIAL="${LOCAL_FILENAME}.partial"
+ DOWNLOAD_OPTS="--fail --globoff --insecure \
+--location ${CURL_RETRY}${CURL_RETRY_DELAY} \
+--connect-timeout 120 --keepalive-time 10 --speed-limit 1k \
+--max-redirs 10 --output ${LOCAL_FILENAME_PARTIAL} "
- if [ -f "$LOCAL_FILENAME_PARTIAL" ]; then
- info "Partial download found, trying to resume"
- RESUME_CMD="-c"
+ if [ -f "${LOCAL_FILENAME_PARTIAL}" ]; then
+ info 'Partial download found, trying to resume'
+ RESUME_CMD='--continue-at - '
fi
- error=1
+ error='1'
- BASENAME=`get_basename $1`
+ BASENAME="$(get_basename "${FILE}")"
for REPO in ${PKGMK_SOURCE_MIRRORS[@]}; do
- REPO="`echo $REPO | sed 's|/$||'`"
- wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $REPO/$BASENAME
- error=$?
- if [ $error == 0 ]; then
+ REPO="$(echo $REPO | sed 's|/$||')"
+ echo "curl ${RESUME_CMD}${DOWNLOAD_OPTS}${REPO}/${BASENAME}"
+ curl ${RESUME_CMD}${DOWNLOAD_OPTS}${REPO}/${BASENAME}
+ error="$?"
+ if [ "${IS_FTP}" = '1' ] && [ "${error}" = '28' ]; then
+ break
+ fi
+ if [ "${error}" = '0' ]; then
break
fi
done
- if [ $error != 0 ]; then
+ if [ "${error}" != '0' ]; then
while true; do
- wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $1
- error=$?
- if [ $error != 0 ] && [ "$RESUME_CMD" ]; then
- info "Partial download failed, restarting"
- rm -f "$LOCAL_FILENAME_PARTIAL"
- RESUME_CMD=""
+ echo "curl ${RESUME_CMD}${DOWNLOAD_OPTS}${FILE}"
+ curl ${RESUME_CMD}${DOWNLOAD_OPTS}${FILE}
+ error="$?"
+ if [ "${IS_FTP}" = '1' ] && [ "${error}" != '28' ] && \
+ [ "${error}" != '0' ] && [ "${RESUME_CMD}" ]; then
+ info 'Partial download failed, restarting'
+ rm -f "${LOCAL_FILENAME_PARTIAL}"
+ RESUME_CMD=''
else
break
fi
done
fi
-
- if [ $error != 0 ]; then
- error "Downloading '$1' failed."
- exit $E_DOWNLOAD
+
+ if [ "${IS_FTP}" = '1' ] && [ "${error}" = '28' ] && [ -e "${FILE}" ]; then
+ error='0'
fi
- mv -f "$LOCAL_FILENAME_PARTIAL" "$LOCAL_FILENAME"
+ if [ "${NO_MIRROR_ERROR}" = 'no_mirror_error' ]; then
+ if [ "${error}" != '0' ]; then
+ warning "Downloading '${FILE}' from mirror failed, trying again."
+ fi
+ elif [ "${error}" != '0' ]; then
+ error "Downloading '${FILE}' failed."
+ exit 1
+ fi
+
+ if [ -e "${LOCAL_FILENAME_PARTIAL}" ]; then
+
+ # some mirrors return text when file does not exist so remove text file.
+ if [ "$(/usr/bin/file --brief --mime "${LOCAL_FILENAME_PARTIAL}" | grep 'text/plain')" ]; then
+ # if file is text and has archive extension it's wrong
+ case "${LOCAL_FILENAME_PARTIAL}" in
+ *.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz|*.tar.lzma|*.tar.xz|*.tar.lrzip|*.zip)
+ warning "Downloading '${FILE}' from mirror returned text, trying again."
+ rm "${LOCAL_FILENAME_PARTIAL}"
+ ;;
+ *)
+ # allow other files to be text like patch files
+ mv "${LOCAL_FILENAME_PARTIAL}" "${LOCAL_FILENAME}"
+ ;;
+ esac
+ else
+ mv "${LOCAL_FILENAME_PARTIAL}" "${LOCAL_FILENAME}"
+ fi
+ fi
}
download_source() {
- local FILE LOCAL_FILENAME
+ local DOWNLOAD_FILE FILE LOCAL_FILENAME SCHEME PKG_SOURCE_MIRRORS PKG_SOURCE_MIRROR MIRROR_NAME LOCAL_FILENAME
for FILE in ${source[@]}; do
- LOCAL_FILENAME=`get_filename $FILE`
- if [ ! -e $LOCAL_FILENAME ]; then
- if [ "$LOCAL_FILENAME" = "$FILE" ]; then
- error "Source file '$LOCAL_FILENAME' not found (can not be downloaded, URL not specified)."
- exit $E_DOWNLOAD
+ LOCAL_FILENAME="$(get_filename "${FILE}")"
+ if [ ! -e "${LOCAL_FILENAME}" ]; then
+ if [ "${LOCAL_FILENAME}" = "${FILE}" ]; then
+ error "Source file '${LOCAL_FILENAME}' not found (can not be downloaded, URL not specified)."
+ exit 1
else
- if [ "$PKGMK_DOWNLOAD" = "yes" ]; then
- download_file $FILE
+ if [ "${PKGMK_DOWNLOAD}" = 'yes' ]; then
+ SCHEME="$(get_scheme "${FILE}")"
+ if [ "${SCHEME}" = 'mirror' ]; then
+ unset MIRROR_NAME PKG_SOURCE_MIRRORS PKG_SOURCE_MIRROR MIRROR_TOTAL
+ MIRROR_NAME="$(get_mirror_name "${FILE}")"
+ if [ ! -e "/etc/ports/mirrors/${MIRROR_NAME}" ]; then
+ error "Error '/etc/ports/mirrors/${MIRROR_NAME}' does not exist."
+ fi
+
+ # start looping though mirror file
+ MIRROR_TOTAL=2
+ PKG_SOURCE_MIRRORS="$(cat "/etc/ports/mirrors/${MIRROR_NAME}" | xargs)"
+ LOCAL_FILENAME="$(get_filename "${FILE}")"
+ while [ "${MIRROR_TOTAL}" -gt '1' ] && [ ! -e "${LOCAL_FILENAME}" ]; do
+ MIRROR_TOTAL="$(array_count "${PKG_SOURCE_MIRRORS}")"
+ PKG_SOURCE_MIRROR="$(( $(perl -e "print int( rand( ${MIRROR_TOTAL} ) );") + 1))"
+ DOWNLOAD_FILE="$(array "${PKG_SOURCE_MIRROR}" "${PKG_SOURCE_MIRRORS}")$(get_mirror_path "${FILE}" "${MIRROR_NAME}")"
+ DOWNLOAD_FILE="$(echo "${DOWNLOAD_FILE}" | sed -e "s|%n|$name|")"
+ download_file "${DOWNLOAD_FILE}" 'no_mirror_error'
+
+ # remove failed mirror but this wont get parsed if file has been downloaded already
+ PKG_SOURCE_MIRRORS="$(array_remove "${PKG_SOURCE_MIRROR}" "${PKG_SOURCE_MIRRORS}")"
+ done
+
+ else
+ download_file "${FILE}"
+ fi
else
- error "Source file '$LOCAL_FILENAME' not found (use option -d to download)."
- exit $E_DOWNLOAD
+ error "Source file '${LOCAL_FILENAME}' not found (use option -d to download)."
+ exit 1
fi
fi
fi
@@ -172,10 +282,20 @@ unpack_source() {
local FILE LOCAL_FILENAME COMMAND
for FILE in ${source[@]}; do
- LOCAL_FILENAME=`get_filename $FILE`
+ LOCAL_FILENAME=$(get_filename "${FILE}")
case $LOCAL_FILENAME in
- *.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
- COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;;
+ *.tar.gz|*.tar.Z|*.tgz)
+ COMMAND="tar -C $SRC --use-compress-program=gzip -xf $LOCAL_FILENAME" ;;
+ *.tar.bz2|*.tbz)
+ COMMAND="tar -C $SRC --use-compress-program=bzip2 -xf $LOCAL_FILENAME" ;;
+ *.tar.lzma)
+ COMMAND="tar -C $SRC --use-compress-program=lzma -xf $LOCAL_FILENAME" ;;
+ *.tar.xz)
+ COMMAND="tar -C $SRC --use-compress-program=xz -xf $LOCAL_FILENAME" ;;
+ *.tar.lrzip)
+ COMMAND="tar -C $SRC --use-compress-program=lrzip -xf $LOCAL_FILENAME" ;;
+ *.zip)
+ COMMAND="unzip -qq -o -d $SRC $LOCAL_FILENAME" ;;
*)
COMMAND="cp $LOCAL_FILENAME $SRC" ;;
esac
@@ -189,20 +309,32 @@ unpack_source() {
rm -rf $PKGMK_WORK_DIR
fi
error "Building '$TARGET' failed."
- exit $E_UNPACK
+ exit 1
fi
done
}
make_md5sum() {
local FILE LOCAL_FILENAMES
-
- if [ "$source" ]; then
+
+ if [ "${source}" ]; then
for FILE in ${source[@]}; do
- LOCAL_FILENAMES="$LOCAL_FILENAMES `get_filename $FILE`"
+ LOCAL_FILENAMES="${LOCAL_FILENAMES} $(get_filename "${FILE}")"
done
- md5sum $LOCAL_FILENAMES | sed -e 's| .*/| |' | sort -k 2
+ md5sum ${LOCAL_FILENAMES} | sed -e 's| .*/| |' | sort -k 2 | uniq
+ fi
+}
+
+make_sha256sum() {
+ local FILE LOCAL_FILENAMES
+
+ if [ "${source}" ]; then
+ for FILE in ${source[@]}; do
+ LOCAL_FILENAMES="${LOCAL_FILENAMES} $(get_filename "${FILE}")"
+ done
+
+ sha256sum ${LOCAL_FILENAMES} | sed -e 's| .*/| |' | sort -k 2 | uniq
fi
}
@@ -212,54 +344,91 @@ make_footprint() {
sort -k 3
}
-check_md5sum() {
- local FILE="$PKGMK_WORK_DIR/.tmp"
+check_sum() {
+ local FILE="${PKGMK_WORK_DIR}/.tmp"
- cd $PKGMK_ROOT
+ cd "${PKGMK_ROOT}"
- if [ -f $PKGMK_MD5SUM ]; then
- make_md5sum > $FILE.md5sum
- sort -k 2 $PKGMK_MD5SUM > $FILE.md5sum.orig
- diff -w -t -U 0 $FILE.md5sum.orig $FILE.md5sum | \
+ if [ -f "${PKGMK_SHA256SUM}" ]; then
+ make_sha256sum > "${FILE}.sha256sum"
+ sort -k 2 "${PKGMK_SHA256SUM}" > "${FILE}.sha256sum.orig"
+ diff -w -t -U 0 "${FILE}.sha256sum.orig" "${FILE}.sha256sum" | \
sed '/^@@/d' | \
sed '/^+++/d' | \
sed '/^---/d' | \
sed 's/^+/NEW /g' | \
- sed 's/^-/MISSING /g' > $FILE.md5sum.diff
- if [ -s $FILE.md5sum.diff ]; then
- error "Md5sum mismatch found:"
- cat $FILE.md5sum.diff >&2
+ sed 's/^-/MISSING /g' > $FILE.sha256sum.diff
+ if [ -s "${FILE}.sha256sum.diff" ]; then
+ error 'Sha256sum mismatch found:'
+ cat "${FILE}.sha256sum.diff" >&2
+
+ if [ "${PKGMK_CHECK_SUM}" = 'yes' ]; then
+ error 'Sha256sum not ok.'
+ exit 1
+ fi
- if [ "$PKGMK_KEEP_WORK" = "no" ]; then
- rm -rf $PKGMK_WORK_DIR
+ error "Building '${TARGET}' failed."
+ exit 1
+ fi
+ else
+ if [ "${PKGMK_CHECK_SUM}" = 'yes' ]; then
+ if [ "${PKGMK_KEEP_WORK}" = 'no' ]; then
+ rm -rf "${PKGMK_WORK_DIR}"
+ fi
+ warning 'Sha256sum not found.'
+ exit 1
+ fi
+
+ warning 'Sha256sum not found.'
+ #warning 'Sha256sum not found, creating new.'
+ #make_sha256sum > "${PKGMK_SHA256SUM}"
+ fi
+
+ if [ -f "${PKGMK_MD5SUM}" ]; then
+ make_md5sum > "${FILE}.md5sum"
+ sort -k 2 "${PKGMK_MD5SUM}" > "${FILE}.md5sum.orig"
+ diff -w -t -U 0 "${FILE}.md5sum.orig" "${FILE}.md5sum" | \
+ sed '/^@@/d' | \
+ sed '/^+++/d' | \
+ sed '/^---/d' | \
+ sed 's/^+/NEW /g' | \
+ sed 's/^-/MISSING /g' > "${FILE}.md5sum.diff"
+ if [ -s "${FILE}.md5sum.diff" ]; then
+ error 'Md5sum mismatch found:'
+ cat "${FILE}.md5sum.diff" >&2
+
+ if [ "${PKGMK_KEEP_WORK}" = 'no' ]; then
+ rm -rf "${PKGMK_WORK_DIR}"
fi
- if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
+ if [ "${PKGMK_CHECK_SUM}" = "yes" ]; then
error "Md5sum not ok."
- exit $E_MD5
+ exit 1
fi
- error "Building '$TARGET' failed."
- exit $E_MD5
+ error "Building '${TARGET}' failed."
+ exit 1
fi
else
- if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
- if [ "$PKGMK_KEEP_WORK" = "no" ]; then
- rm -rf $PKGMK_WORK_DIR
+ if [ "${PKGMK_CHECK_SUM}" = 'yes' ]; then
+ if [ "${PKGMK_KEEP_WORK}" = 'no' ]; then
+ rm -rf "${PKGMK_WORK_DIR}"
fi
- info "Md5sum not found."
- exit $E_MD5
+ warning 'Md5sum not found.'
+ exit 1
fi
- warning "Md5sum not found, creating new."
- make_md5sum > $PKGMK_MD5SUM
+ error "Md5sum not found, proceed with caution. Use \"pkgmk -um\" to generate new md5sum."
+ exit 1
+ #warning 'Md5sum not found, creating new.'
+ #make_md5sum > "${PKGMK_MD5SUM}"
fi
- if [ "$PKGMK_CHECK_MD5SUM" = "yes" ]; then
- if [ "$PKGMK_KEEP_WORK" = "no" ]; then
- rm -rf $PKGMK_WORK_DIR
+ if [ "${PKGMK_CHECK_SUM}" = 'yes' ]; then
+ if [ "${PKGMK_KEEP_WORK}" = 'no' ]; then
+ rm -rf "${PKGMK_WORK_DIR}"
fi
- info "Md5sum ok."
+ info 'Checksums ok.'
exit 0
fi
}
@@ -296,7 +465,11 @@ compress_manpages() {
find . -type f -path "*/man/man*/*" | while read FILE; do
if [ "$FILE" = "${FILE%%.gz}" ]; then
- gzip -9 "$FILE"
+ if [ -f /usr/bin/pigz ]; then
+ pigz -9 "$FILE"
+ else
+ gzip -9 "$FILE"
+ fi
fi
done
@@ -314,6 +487,12 @@ compress_manpages() {
done
}
+remove_junkfiles() {
+ if [ -e $PKG/usr/share/info/dir ]; then
+ rm -rf $PKG/usr/share/info/dir
+ fi
+}
+
check_footprint() {
local FILE="$PKGMK_WORK_DIR/.tmp"
@@ -330,9 +509,9 @@ check_footprint() {
sed 's/^+/NEW /g' | \
sed 's/^-/MISSING /g' > $FILE.footprint.diff
if [ -s $FILE.footprint.diff ]; then
- if [ "$PKGMK_IGNORE_NEW" = "yes" ] && \
- [ -z "$(egrep -l ^MISSING $FILE.footprint.diff)" ] ; then
- info "New files found:"
+ if [ "$PKGMK_IGNORE_FOOTPRINT_NEW" = "yes" ] && \
+ [ -z "$(egrep --files-with-matches ^MISSING $FILE.footprint.diff)" ]; then
+ info "New files found:"
else
error "Footprint mismatch found:"
BUILD_SUCCESSFUL="no"
@@ -349,31 +528,32 @@ check_footprint() {
fi
}
-make_work_dir() {
- export PKG="$PKGMK_WORK_DIR/pkg"
- export SRC="$PKGMK_WORK_DIR/src"
- umask 022
+build_package() {
+ local BUILD_SUCCESSFUL UPPER_NAME
- cd $PKGMK_ROOT
- remove_work_dir
- mkdir -p $SRC $PKG
+ BUILD_SUCCESSFUL='no'
- if [ "$PKGMK_IGNORE_MD5SUM" = "no" ]; then
- check_md5sum
- fi
-}
+ UPPER_NAME="$(printf "${name}" | tr '+' '_' | tr '-' '_' | \
+ tr '[:lower:]' '[:upper:]')"
-remove_work_dir() {
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_CFLAGS")" ] && export CFLAGS+=" $(eval "echo \$PKGMK_${UPPER_NAME}_CFLAGS")"
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_CXXFLAGS")" ] && export CXXFLAGS+=" $(eval "echo \$PKGMK_${UPPER_NAME}_CXXFLAGS")"
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_FFLAGS")" ] && export FFLAGS+=" $(eval "echo \$PKGMK_${UPPER_NAME}_FFLAGS")"
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_LDFLAGS")" ] && export LDFLAGS+=" $(eval "echo \$PKGMK_${UPPER_NAME}_LDFLAGS")"
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_CC")" ] && export CC="$(eval "echo \$PKGMK_${UPPER_NAME}_CC")"
+ [ -n "$(eval "echo \$PKGMK_${UPPER_NAME}_CXX")" ] && export CXX="$(eval "echo \$PKGMK_${UPPER_NAME}_CXX")"
+
+ export PKG="${PKGMK_WORK_DIR}/pkg"
+ export SRC="${PKGMK_WORK_DIR}/src"
+ umask 022
+
+ cd $PKGMK_ROOT
rm -rf $PKGMK_WORK_DIR
-}
-
-
-build_package() {
- local BUILD_SUCCESSFUL="no"
- local COMPRESSION
+ mkdir -p $SRC $PKG
- check_file "$TARGET"
- make_work_dir
+ if [ "$PKGMK_IGNORE_SUM" = "no" ]; then
+ check_sum
+ fi
if [ "$UID" != "0" ]; then
warning "Packages should be built as root."
@@ -384,6 +564,11 @@ build_package() {
unpack_source
cd $SRC
+
+ if [ "$PKGMK_EXTRACT_ONLY" = "yes" ]; then
+ exit 0
+ fi
+
(set -e -x ; build)
if [ $? = 0 ]; then
@@ -393,16 +578,16 @@ build_package() {
compress_manpages
+ remove_junkfiles
+
cd $PKG
info "Build result:"
-
- case $PKGMK_COMPRESSION_MODE in
- gz) COMPRESSION="-z" ;;
- bz2) COMPRESSION="-j" ;;
- xz) COMPRESSION="-J" ;;
- esac
- bsdtar -c $COMPRESSION -f $TARGET * && bsdtar -t -v -f $TARGET
-
+ if [ -f /usr/bin/pigz ]; then
+ tar -cvv --use-compress-program=pigz -f $TARGET *
+ else
+ tar czvvf $TARGET *
+ fi
+
if [ $? = 0 ]; then
BUILD_SUCCESSFUL="yes"
@@ -415,7 +600,7 @@ build_package() {
fi
if [ "$PKGMK_KEEP_WORK" = "no" ]; then
- remove_work_dir
+ rm -rf $PKGMK_WORK_DIR
fi
if [ "$BUILD_SUCCESSFUL" = "yes" ]; then
@@ -490,7 +675,6 @@ update_footprint() {
exit 1
fi
- check_file "$PKGMK_FOOTPRINT"
make_footprint > $PKGMK_FOOTPRINT
touch $TARGET
@@ -519,8 +703,8 @@ interrupted() {
echo ""
error "Interrupted."
- if [ "$PKGMK_KEEP_WORK" = "no" ]; then
- rm -rf $PKGMK_WORK_DIR
+ if [ "${PKGMK_KEEP_WORK}" = 'no' ]; then
+ rm -rf "${PKGMK_WORK_DIR}"
fi
exit 1
@@ -538,10 +722,11 @@ print_help() {
echo " -utd, --up-to-date do not build, only check if package is up to date"
echo " -uf, --update-footprint update footprint using result from last build"
echo " -if, --ignore-footprint build package without checking footprint"
- echo " -in, --ignore-new build package, ignore new files in a footprint missmatch"
- echo " -um, --update-md5sum update md5sum"
- echo " -im, --ignore-md5sum build package without checking md5sum"
- echo " -cm, --check-md5sum do not build, only check md5sum"
+ echo " -in, --ignore-new build package, ignore new files in a footprint mismatch"
+
+ echo " -um, --update-md5sum update checksums"
+ echo " -im, --ignore-md5sum build package without checking checksums"
+ echo " -cm, --check-md5sum do not build, only check checksums"
echo " -ns, --no-strip do not strip executable binaries or libraries"
echo " -f, --force build package even if it appears to be up to date"
echo " -c, --clean remove package and downloaded files"
@@ -571,16 +756,16 @@ parse_options() {
PKGMK_UP_TO_DATE="yes" ;;
-uf|--update-footprint)
PKGMK_UPDATE_FOOTPRINT="yes" ;;
+ -in|--ignore-new)
+ PKGMK_IGNORE_FOOTPRINT_NEW="yes" ;;
-if|--ignore-footprint)
PKGMK_IGNORE_FOOTPRINT="yes" ;;
- -in|--ignore-new)
- PKGMK_IGNORE_NEW="yes" ;;
-um|--update-md5sum)
- PKGMK_UPDATE_MD5SUM="yes" ;;
+ PKGMK_UPDATE_SUM="yes" ;;
-im|--ignore-md5sum)
- PKGMK_IGNORE_MD5SUM="yes" ;;
+ PKGMK_IGNORE_SUM="yes" ;;
-cm|--check-md5sum)
- PKGMK_CHECK_MD5SUM="yes" ;;
+ PKGMK_CHECK_SUM="yes" ;;
-ns|--no-strip)
PKGMK_NO_STRIP="yes" ;;
-f|--force)
@@ -611,12 +796,6 @@ parse_options() {
}
main() {
- # multilib
- PKGMK_ARCH=64
- if [ -f ".32bit" ]; then
- PKGMK_ARCH=32
- fi
-
local FILE TARGET
parse_options "$@"
@@ -632,24 +811,24 @@ main() {
exit 1
fi
. $FILE
+
+ # group download directory code start
+ if [ $FILE = $PKGMK_PKGFILE ]; then
+ if [ -z "${group}" ]; then
+ group="${name}"
+ fi
+ fi
+ # group download directory code end
done
check_directory "$PKGMK_SOURCE_DIR"
check_directory "$PKGMK_PACKAGE_DIR"
- check_directory "`dirname $PKGMK_WORK_DIR`"
+ check_directory "$(dirname "${PKGMK_WORK_DIR}")"
check_pkgfile
-
- case $PKGMK_COMPRESSION_MODE in
- gz|bz2|xz)
- TARGET="$PKGMK_PACKAGE_DIR/$name#$version-$release.pkg.tar.$PKGMK_COMPRESSION_MODE"
- ;;
- *)
- error "Compression mode '$PKGMK_COMPRESSION_MODE' not supported"
- exit 1
- ;;
- esac
-
+
+ TARGET="$PKGMK_PACKAGE_DIR/$name#$version-$release.pkg.tar.gz"
+
if [ "$PKGMK_CLEAN" = "yes" ]; then
clean
exit 0
@@ -660,11 +839,12 @@ main() {
exit 0
fi
- if [ "$PKGMK_UPDATE_MD5SUM" = "yes" ]; then
+ if [ "${PKGMK_UPDATE_SUM}" = 'yes' ]; then
download_source
- check_file "$PKGMK_MD5SUM"
- make_md5sum > $PKGMK_MD5SUM
- info "Md5sum updated."
+ make_md5sum > "${PKGMK_MD5SUM}"
+ info 'Md5sum updated.'
+ make_sha256sum > "${PKGMK_SHA256SUM}"
+ info 'Sha256sum updated.'
exit 0
fi
@@ -675,10 +855,7 @@ main() {
if [ "$PKGMK_EXTRACT_ONLY" = "yes" ]; then
download_source
- make_work_dir
- info "Extracting sources of package '$name-$version'."
- unpack_source
- exit 0
+ build_package
fi
if [ "$PKGMK_UP_TO_DATE" = "yes" ]; then
@@ -690,7 +867,7 @@ main() {
exit 0
fi
- if [ "`build_needed`" = "no" ] && [ "$PKGMK_FORCE" = "no" ] && [ "$PKGMK_CHECK_MD5SUM" = "no" ]; then
+ if [ "`build_needed`" = "no" ] && [ "$PKGMK_FORCE" = "no" ] && [ "$PKGMK_CHECK_SUM" = "no" ]; then
info "Package '$TARGET' is up to date."
else
download_source
@@ -716,6 +893,7 @@ PKGMK_CONFFILE="/etc/pkgmk.conf"
PKGMK_PKGFILE="Pkgfile"
PKGMK_FOOTPRINT=".footprint"
PKGMK_MD5SUM=".md5sum"
+PKGMK_SHA256SUM=".sha256sum"
PKGMK_NOSTRIP=".nostrip"
PKGMK_SOURCE_MIRRORS=()
@@ -723,8 +901,6 @@ PKGMK_SOURCE_DIR="$PWD"
PKGMK_PACKAGE_DIR="$PWD"
PKGMK_WORK_DIR="$PWD/work"
-PKGMK_COMPRESSION_MODE="gz"
-
PKGMK_INSTALL="no"
PKGMK_RECURSIVE="no"
PKGMK_DOWNLOAD="no"
@@ -733,12 +909,12 @@ PKGMK_EXTRACT_ONLY="no"
PKGMK_UP_TO_DATE="no"
PKGMK_UPDATE_FOOTPRINT="no"
PKGMK_IGNORE_FOOTPRINT="no"
-PKGMK_IGNORE_NEW="no"
+PKGMK_IGNORE_FOOTPRINT_NEW="no"
PKGMK_FORCE="no"
PKGMK_KEEP_WORK="no"
-PKGMK_UPDATE_MD5SUM="no"
-PKGMK_IGNORE_MD5SUM="no"
-PKGMK_CHECK_MD5SUM="no"
+PKGMK_UPDATE_SUM="no"
+PKGMK_IGNORE_SUM="no"
+PKGMK_CHECK_SUM="no"
PKGMK_NO_STRIP="no"
PKGMK_CLEAN="no"
diff -pruN pkgutils-5.35.6/pkgrm.8.in pkgutils-5.32.0_8/pkgrm.8.in
--- pkgutils-5.35.6/pkgrm.8.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgrm.8.in 2010-07-21 21:42:09.000000000 +1000
@@ -23,6 +23,6 @@ Print help and exit.
.SH SEE ALSO
pkgadd(8), pkginfo(8), pkgmk(8), rejmerge(8)
.SH COPYRIGHT
-pkgrm (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+pkgrm (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2007 CRUX team (http://crux.nu).
pkgrm (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/pkgrm.cc pkgutils-5.32.0_8/pkgrm.cc
--- pkgutils-5.35.6/pkgrm.cc 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgrm.cc 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkgrm.h pkgutils-5.32.0_8/pkgrm.h
--- pkgutils-5.35.6/pkgrm.h 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgrm.h 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff -pruN pkgutils-5.35.6/pkgutil.cc pkgutils-5.32.0_8/pkgutil.cc
--- pkgutils-5.35.6/pkgutil.cc 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgutil.cc 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -44,12 +44,8 @@
#include <archive_entry.h>
#define INIT_ARCHIVE(ar) \
- archive_read_support_filter_gzip((ar)); \
- archive_read_support_filter_bzip2((ar)); \
- archive_read_support_filter_xz((ar)); \
- archive_read_support_format_tar((ar))
-
-#define DEFAULT_BYTES_PER_BLOCK (20 * 512)
+ archive_read_support_compression_all((ar)); \
+ archive_read_support_format_all((ar))
using __gnu_cxx::stdio_filebuf;
@@ -354,8 +350,8 @@ pair<string, pkgutil::pkginfo_t> pkgutil
INIT_ARCHIVE(archive);
if (archive_read_open_filename(archive,
- filename.c_str(),
- DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
+ const_cast<char*>(filename.c_str()),
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
throw runtime_error_with_errno("could not open " + filename, archive_errno(archive));
for (i = 0; archive_read_next_header(archive, &entry) ==
@@ -378,7 +374,7 @@ pair<string, pkgutil::pkginfo_t> pkgutil
throw runtime_error("could not read " + filename);
}
- archive_read_free(archive);
+ archive_read_finish(archive);
return result;
}
@@ -388,25 +384,22 @@ void pkgutil::pkg_install(const string&
struct archive* archive;
struct archive_entry* entry;
unsigned int i;
- char buf[PATH_MAX];
- string absroot;
archive = archive_read_new();
INIT_ARCHIVE(archive);
if (archive_read_open_filename(archive,
- filename.c_str(),
- DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
+ const_cast<char*>(filename.c_str()),
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
throw runtime_error_with_errno("could not open " + filename, archive_errno(archive));
chdir(root.c_str());
- absroot = getcwd(buf, sizeof(buf));
for (i = 0; archive_read_next_header(archive, &entry) ==
ARCHIVE_OK; ++i) {
string archive_filename = archive_entry_pathname(entry);
- string reject_dir = trim_filename(absroot + string("/") + string(PKG_REJECTED));
- string original_filename = trim_filename(absroot + string("/") + archive_filename);
+ string reject_dir = trim_filename(root + string("/") + string(PKG_REJECTED));
+ string original_filename = trim_filename(root + string("/") + archive_filename);
string real_filename = original_filename;
// Check if file is filtered out via INSTALL
@@ -469,7 +462,7 @@ void pkgutil::pkg_install(const string&
throw runtime_error("could not read " + filename);
}
- archive_read_free(archive);
+ archive_read_finish(archive);
}
void pkgutil::ldconfig() const
@@ -511,8 +504,8 @@ void pkgutil::pkg_footprint(string& file
INIT_ARCHIVE(archive);
if (archive_read_open_filename(archive,
- filename.c_str(),
- DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
+ const_cast<char*>(filename.c_str()),
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
throw runtime_error_with_errno("could not open " + filename, archive_errno(archive));
for (i = 0; archive_read_next_header(archive, &entry) ==
@@ -530,7 +523,7 @@ void pkgutil::pkg_footprint(string& file
throw runtime_error_with_errno("could not read " + filename, archive_errno(archive));
}
- archive_read_free(archive);
+ archive_read_finish(archive);
// Too bad, there doesn't seem to be a way to reuse our archive
// instance
@@ -538,8 +531,8 @@ void pkgutil::pkg_footprint(string& file
INIT_ARCHIVE(archive);
if (archive_read_open_filename(archive,
- filename.c_str(),
- DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
+ const_cast<char*>(filename.c_str()),
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK)
throw runtime_error_with_errno("could not open " + filename, archive_errno(archive));
for (i = 0; archive_read_next_header(archive, &entry) ==
@@ -612,7 +605,7 @@ void pkgutil::pkg_footprint(string& file
throw runtime_error("could not read " + filename);
}
- archive_read_free(archive);
+ archive_read_finish(archive);
}
void pkgutil::print_version() const
diff -pruN pkgutils-5.35.6/pkgutil.h pkgutils-5.32.0_8/pkgutil.h
--- pkgutils-5.35.6/pkgutil.h 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/pkgutil.h 2010-07-21 21:42:09.000000000 +1000
@@ -2,7 +2,7 @@
// pkgutils
//
// Copyright (c) 2000-2005 Per Liden
-// Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+// Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
#include <sys/types.h>
#include <dirent.h>
-#define PKG_EXT ".pkg.tar."
+#define PKG_EXT ".pkg.tar.gz"
#define PKG_DIR "var/lib/pkg"
#define PKG_DB "var/lib/pkg/db"
#define PKG_REJECTED "var/lib/pkg/rejected"
diff -pruN pkgutils-5.35.6/README pkgutils-5.32.0_8/README
--- pkgutils-5.35.6/README 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/README 2010-07-21 21:42:09.000000000 +1000
@@ -22,7 +22,7 @@ $ make DESTDIR=/some/other/path install
Copyright
---------
pkgutils is Copyright (c) 2000-2005 Per Liden and
-Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+Copyright (c) 2006-2007 CRUX team (http://crux.nu).
pkgutils is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/rejmerge.8.in pkgutils-5.32.0_8/rejmerge.8.in
--- pkgutils-5.35.6/rejmerge.8.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/rejmerge.8.in 2010-07-21 21:42:09.000000000 +1000
@@ -73,6 +73,6 @@ Directory where rejected files are store
.SH SEE ALSO
pkgadd(8), pkgrm(8), pkginfo(8), pkgmk(8)
.SH COPYRIGHT
-rejmerge (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2013 CRUX team (http://crux.nu).
+rejmerge (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2007 CRUX team (http://crux.nu).
rejmerge (pkgutils) is licensed through the GNU General Public License.
Read the COPYING file for the complete license.
diff -pruN pkgutils-5.35.6/rejmerge.in pkgutils-5.32.0_8/rejmerge.in
--- pkgutils-5.35.6/rejmerge.in 2014-03-24 05:15:46.000000000 +1100
+++ pkgutils-5.32.0_8/rejmerge.in 2010-07-21 21:42:09.000000000 +1000
@@ -3,7 +3,7 @@
# rejmerge (pkgutils)
#
# Copyright (c) 2000-2005 Per Liden
-# Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+# Copyright (c) 2006-2007 by CRUX team (http://crux.nu)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment