Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a stub Mach-O implementation.
Landon Fuller committed 11 years ago
commit eb48e9da45d741cfd70bc945208cbf888974fb29
parent 9b9cb27
6 files changed +149 -38
modified libpkg/Makefile.am
@@ -23,6 +23,7 @@ libpkg_la_SOURCES= pkg.c \
			fetch.c \
			packing.c \
			pkg_add.c \
+
			pkg_arch.c \
			pkg_attributes.c \
			pkg_audit.c \
			pkg_checksum.c \
@@ -64,7 +65,7 @@ libpkg_la_SOURCES+= elfhints.c \
endif

if HAVE_MACHO_ABI
-
# TODO
+
libpkg_la_SOURCES+=	pkg_macho.c
endif

libpkg_la_CFLAGS=	$(pkg_common_cflags) -shared
added libpkg/pkg_arch.c
@@ -0,0 +1,75 @@
+
/*-
+
 * Copyright (c) 2014 Landon Fuller <landon@landonf.org>
+
 * Copyright (c) 2011-2012 Baptiste Daroussin <bapt@FreeBSD.org>
+
 * Copyright (c) 2012-2013 Matthew Seaman <matthew@FreeBSD.org>
+
 * All rights reserved.
+
 * 
+
 * Redistribution and use in source and binary forms, with or without
+
 * modification, are permitted provided that the following conditions
+
 * are met:
+
 * 1. Redistributions of source code must retain the above copyright
+
 *    notice, this list of conditions and the following disclaimer
+
 *    in this position and unchanged.
+
 * 2. Redistributions in binary form must reproduce the above copyright
+
 *    notice, this list of conditions and the following disclaimer in the
+
 *    documentation and/or other materials provided with the distribution.
+
 * 
+
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+
 * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 */
+

+
#ifdef HAVE_CONFIG_H
+
#include "pkg_config.h"
+
#endif
+

+
#include <bsd_compat.h>
+

+
#include "pkg.h"
+
#include "private/pkg.h"
+
#include "private/event.h"
+

+
int
+
pkg_suggest_arch(struct pkg *pkg, const char *arch, bool isdefault)
+
{
+
	bool iswildcard;
+

+
	iswildcard = (strchr(arch, '*') != NULL);
+

+
	if (iswildcard && isdefault)
+
		pkg_emit_developer_mode("Configuration error: arch \"%s\" "
+
		    "cannot use wildcards as default", arch);
+

+
	if (pkg->flags & (PKG_CONTAINS_ELF_OBJECTS|PKG_CONTAINS_STATIC_LIBS)) {
+
		if (iswildcard) {
+
			/* Definitely has to be arch specific */
+
			pkg_emit_developer_mode("Error: arch \"%s\" -- package "
+
			    "installs architecture specific files", arch);
+
		}
+
	} else {
+
		if (pkg->flags & PKG_CONTAINS_H_OR_LA) {
+
			if (iswildcard) {
+
				/* Could well be arch specific */
+
				pkg_emit_developer_mode("Warning: arch \"%s\" "
+
				    "-- package installs C/C++ headers or "
+
				    "libtool files,\n**** which are often "
+
				    "architecture specific", arch);
+
			}
+
		} else {
+
			/* Might be arch independent */
+
			if (!iswildcard)
+
				pkg_emit_developer_mode("Notice: arch \"%s\" -- "
+
				    "no architecture specific files found:\n"
+
				    "**** could this package use a wildcard "
+
				    "architecture?", arch);
+
		}
+
	}
+
	return (EPKG_OK);
+
}
modified libpkg/pkg_elf.c
@@ -974,40 +974,3 @@ pkg_get_myarch(char *dest, size_t sz)
}
#endif

-
int
-
pkg_suggest_arch(struct pkg *pkg, const char *arch, bool isdefault)
-
{
-
	bool iswildcard;
-

-
	iswildcard = (strchr(arch, '*') != NULL);
-

-
	if (iswildcard && isdefault)
-
		pkg_emit_developer_mode("Configuration error: arch \"%s\" "
-
		    "cannot use wildcards as default", arch);
-

-
	if (pkg->flags & (PKG_CONTAINS_ELF_OBJECTS|PKG_CONTAINS_STATIC_LIBS)) {
-
		if (iswildcard) {
-
			/* Definitely has to be arch specific */
-
			pkg_emit_developer_mode("Error: arch \"%s\" -- package "
-
			    "installs architecture specific files", arch);
-
		}
-
	} else {
-
		if (pkg->flags & PKG_CONTAINS_H_OR_LA) {
-
			if (iswildcard) {
-
				/* Could well be arch specific */
-
				pkg_emit_developer_mode("Warning: arch \"%s\" "
-
				    "-- package installs C/C++ headers or "
-
				    "libtool files,\n**** which are often "
-
				    "architecture specific", arch);
-
			}
-
		} else {
-
			/* Might be arch independent */
-
			if (!iswildcard)
-
				pkg_emit_developer_mode("Notice: arch \"%s\" -- "
-
				    "no architecture specific files found:\n"
-
				    "**** could this package use a wildcard "
-
				    "architecture?", arch);
-
		}
-
	}
-
	return (EPKG_OK);
-
}
added libpkg/pkg_macho.c
@@ -0,0 +1,66 @@
+
/*-
+
 * Copyright (c) 2014 Landon Fuller <landon@landonf.org>
+
 * Copyright (c) 2011-2012 Baptiste Daroussin <bapt@FreeBSD.org>
+
 * Copyright (c) 2012-2013 Matthew Seaman <matthew@FreeBSD.org>
+
 * All rights reserved.
+
 * 
+
 * Redistribution and use in source and binary forms, with or without
+
 * modification, are permitted provided that the following conditions
+
 * are met:
+
 * 1. Redistributions of source code must retain the above copyright
+
 *    notice, this list of conditions and the following disclaimer
+
 *    in this position and unchanged.
+
 * 2. Redistributions in binary form must reproduce the above copyright
+
 *    notice, this list of conditions and the following disclaimer in the
+
 *    documentation and/or other materials provided with the distribution.
+
 * 
+
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+
 * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 */
+

+
#ifdef HAVE_CONFIG_H
+
#include "pkg_config.h"
+
#endif
+

+
#include <bsd_compat.h>
+

+
#include "pkg.h"
+
#include "private/pkg.h"
+
#include "private/event.h"
+

+
int
+
pkg_analyse_files(struct pkgdb *db, struct pkg *pkg, const char *stage)
+
{
+
    // TODO
+
    return (EPKG_FATAL);
+
}
+

+

+
int
+
pkg_arch_to_legacy(const char *arch, char *dest, size_t sz)
+
{
+
    // TODO
+
	return (0);
+
}
+

+
int
+
pkg_get_myarch_legacy(char *dest, size_t sz)
+
{
+
    // TODO
+
	return (0);
+
}
+

+
int
+
pkg_get_myarch(char *dest, size_t sz)
+
{
+
    // TODO
+
	return (0);
+
}
modified src/Makefile.am
@@ -66,11 +66,14 @@ pkg_static_LDADD= $(top_builddir)/libpkg/libpkg_static.la \
			-lssl \
			-lcrypto \
			-lm
+

+
if HAVE_ELF_ABI
if LIBELF_BUNDLED
pkg_static_LDADD+=	$(top_builddir)/external/libelf_static.la
else
pkg_static_LDADD+=	-lelf
endif
+
endif

pkg_static_LDFLAGS=	-all-static
DYNPROG=		pkg
modified tests/Makefile.am
@@ -14,11 +14,14 @@ GENERIC_LDADD= $(top_builddir)/libpkg/libpkg_static.la \
		-lcrypto \
		-L/usr/local/lib \
		-latf-c
+

+
if HAVE_ELF_ABI
if LIBELF_BUNDLED
GENERIC_LDADD+=	$(top_builddir)/external/libelf_static.la
else
GENERIC_LDADD+=	-lelf
endif
+
endif

PUBLIC_INCS=	-I$(top_srcdir)/libpkg -DTESTING \
		-I/usr/local/include