Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
apk-tools
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
61
Issues
61
List
Boards
Labels
Service Desk
Milestones
Merge Requests
15
Merge Requests
15
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alpine
apk-tools
Commits
86436fce
Commit
86436fce
authored
Oct 05, 2017
by
Timo Teräs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
build and use bundled libfetch natively
parent
9dc6278c
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
61 additions
and
115 deletions
+61
-115
.gitignore
.gitignore
+2
-0
Make.rules
Make.rules
+40
-10
Makefile
Makefile
+3
-1
libfetch/Makefile
libfetch/Makefile
+8
-43
libfetch/common.c
libfetch/common.c
+1
-14
libfetch/fetch.c
libfetch/fetch.c
+0
-3
libfetch/file.c
libfetch/file.c
+0
-3
libfetch/ftp.c
libfetch/ftp.c
+0
-15
libfetch/http.c
libfetch/http.c
+0
-22
src/Makefile
src/Makefile
+7
-4
No files found.
.gitignore
View file @
86436fce
...
...
@@ -6,6 +6,8 @@ test/repos.out
test/repos.stamp
test/test*.out
test/test*.ok
libfetch/*err.h
*.a
*.o
*.d
*.cmd
...
...
Make.rules
View file @
86436fce
...
...
@@ -65,6 +65,7 @@ export FULL_VERSION RCS_FIND_IGNORE
CROSS_COMPILE ?=
CC := $(CROSS_COMPILE)gcc
AR := $(CROSS_COMPILE)ar
LD := $(CROSS_COMPILE)ld
INSTALL := install
INSTALLDIR := $(INSTALL) -d
...
...
@@ -76,7 +77,7 @@ CFLAGS_ALL += $(CFLAGS)
LDFLAGS ?= -g
LDFLAGS_ALL += $(LDFLAGS)
export CC LD INSTALL INSTALLDIR CFLAGS_ALL LDFLAGS_ALL
export CC
AR
LD INSTALL INSTALLDIR CFLAGS_ALL LDFLAGS_ALL
build :=
...
...
@@ -178,6 +179,10 @@ c_flags = -Wp,-MD,$(depfile) -Wp,-MT,$@ $(CPPFLAGS) \
$(CFLAGS_ALL) $(CFLAGS_EXTRA) $(CFLAGS_$(notdir $@))
ld_flags = $(LDFLAGS_ALL) $(LDFLAGS_EXTRA) $(LDFLAGS_$(notdir $@))
#####
# Generated targets
generate: $(addprefix $(obj)/,$(sort $(generate-y)))
#####
# Compile c-files.
quiet_cmd_cc_o_c = CC $@
...
...
@@ -193,41 +198,60 @@ endef
$(obj)/%.o: override local-target-prereqs=%
$(obj)/%.o: $(src)/%.c FORCE
$(obj)/%.o: $(src)/%.c FORCE
| generate
$(call if_changed_rule,cc_o_c)
#####
# Link static libraries
#
__arlibs := $(addprefix $(obj)/,$(sort $(libs-y)))
arobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(libs-y),$($(m)-objs))))
# link shared library
quiet_cmd_ar = AR $@
cmd_ar = $(AR) rcs $@ $(addprefix $(obj)/,$($(@F)-objs))
$(__arlibs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs))
$(__arlibs): $(obj)/%: $(arobjs) FORCE
$(call if_changed,ar)
targets += $(__arlibs) $(arobjs)
#####
# Link shared libraries
#
__shlibs := $(addprefix $(obj)/,$(sort $(shlibs-y)))
shobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(shlibs-y),$($(m)-objs))))
shobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(shlibs-y),$($(m)-objs))))
$(sort $(foreach m,$(shlibs-y),$($(m)-libs)))
# link shared library
quiet_cmd_shlib = LD -shared $@
cmd_shlib = $(CC) $(ld_flags) -shared -o $@ \
$(addprefix $(obj)/,$($(@F)-objs)) \
$(addprefix $(obj)/,$($(@F)-objs)) \
$($(@F)-libs) \
$(LIBS) $(LIBS_$(@F))
$(__shlibs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs))
$(__shlibs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs))
$($(*F)-libs)
$(__shlibs): $(obj)/%: $(shobjs) FORCE
$(call if_changed,shlib)
targets += $(__shlibs) $(shobjs)
#####
# Link programs
# Link an executable based on list of .o files, all plain c
# host-cmulti -> executable
__progs := $(addprefix $(obj)/,$(sort $(progs-y)))
cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(progs-y),$($(m)-objs))))
cobjs := $(addprefix $(obj)/,$(sort $(foreach m,$(progs-y),$($(m)-objs))))
$(sort $(foreach m,$(progs-y),$($(m)-libs)))
quiet_cmd_ld = LD $@
cmd_ld = $(CC) $(ld_flags) -o $@ \
$(addprefix $(obj)/,$($(@F)-objs)) \
$(addprefix $(obj)/,$($(@F)-objs))
$($(@F)-libs)
\
$(LIBS) $(LIBS_$(@F))
$(__progs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs))
$(__progs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs))
$($(*F)-libs)
$(__progs): $(obj)/%: $(cobjs) FORCE
$(call if_changed,ld)
...
...
@@ -263,18 +287,24 @@ endif
%/: FORCE
$(Q)$(MAKE) -f Make.rules build=$(build-dir) $(MAKECMDGOALS)
compile: $(targets)
compile:
generate
$(targets)
@:
install: $(targets) FORCE
generate:
clean: $(filter %/,$(targets))
ifeq ($(toplevelrun),yes)
$(Q)find . $(RCS_FIND_IGNORE) \
\( -name '*.[oas]' -o -name '.*.cmd' -o -name '.*.d' \) \
-type f -print | xargs rm -f
endif
$(Q)rm -rf $(addprefix $(obj)/,$(sort $(progs-y) $(progs-n) $(progs-) $(shlibs-y) $(shlibs-n) $(shlibs-)))
$(Q)rm -rf $(addprefix $(obj)/, \
$(sort $(progs-y) $(progs-n) $(progs-) \
$(shlibs-y) $(shlibs-n) $(shlibs-) \
$(libs-y) $(libs-n) $(libs-) \
$(generate-y) $(generate-n) $(generate-)))
ifeq ($(origin VERSION),command line)
DIST_VERSION=$(VERSION)
...
...
Makefile
View file @
86436fce
...
...
@@ -21,7 +21,7 @@ export DESTDIR SBINDIR LIBDIR CONFDIR MANDIR DOCDIR
##
# Top-level rules and targets
targets
:=
src/
targets
:=
libfetch/
src/
##
# Include all rules and stuff
...
...
@@ -41,3 +41,5 @@ check test: FORCE
static
:
$(Q)$(MAKE)
STATIC
=
y
src/
:
libfetch/
libfetch/Makefile
View file @
86436fce
# $NetBSD: Makefile,v 1.8 2016/10/27 10:05:38 joerg Exp $
CFLAGS_ALL
+=
-DINET6
-DWITH_SSL
-DFTP_COMBINE_CWDS
libs-y
+=
libfetch.a
libfetch.a-objs
:=
common.o fetch.o file.o ftp.o http.o
generate-y
+=
ftperr.h httperr.h
LIB
=
fetch
SRCS
=
fetch.c common.c ftp.c http.c file.c
DPSRCS
=
ftperr.h httperr.h
INCS
=
fetch.h
MAN
=
fetch.3
CLEANFILES
=
ftperr.h httperr.h
MKLINT
=
no
MKPIC
=
no
MKPROFILE
=
no
quiet_cmd_generr
=
GENERR
$@
cmd_generr
=
$(obj)
/errlist.sh
$(
basename
$
(
<F
))
_errlist
$(
shell
echo
$(
basename
$
(
<F
))
|
tr
a-z A-Z
)
$<
>
$@
.
include
<bsd.own.mk>
CPPFLAGS
+=
-I
.
CPPFLAGS
+=
-D_LARGEFILE_SOURCE
-D_LARGE_FILES
-D_FILE_OFFSET_BITS
=
64
FETCH_WITH_INET6
?=
no
FETCH_WITH_OPENSSL
?=
no
.if !empty(FETCH_WITH_INET6
:
M[yY][eE][sS])
CPPFLAGS
+=
-DINET6
.
endif
.if !empty(FETCH_WITH_OPENSSL
:
M[yY][eE][sS])
CPPFLAGS
+=
-DWITH_SSL
LDADD
=
-lssl
-lcrypto
.
endif
CPPFLAGS
+=
-DFTP_COMBINE_CWDS
WARNS
?=
4
ftp.o
:
ftperr.h
http.o
:
httperr.h
ftperr.h
:
${.CURDIR}/ftp.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh
sh
${
.CURDIR
}
/errlist.sh ftp_errlist FTP
\
${
.CURDIR
}
/ftp.errors
>
${
.TARGET
}
httperr.h
:
${.CURDIR}/http.errors ${.CURDIR}/Makefile ${.CURDIR}/errlist.sh
sh
${
.CURDIR
}
/errlist.sh http_errlist HTTP
\
${
.CURDIR
}
/http.errors
>
${
.TARGET
}
.
include
<bsd.lib.mk>
$(obj)/%err.h
:
$(obj)/%.errors
@
$(
call
echo-cmd,generr
)
$(cmd_generr)
;
$(cmd_generr)
libfetch/common.c
View file @
86436fce
...
...
@@ -33,32 +33,19 @@
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef NETBSD
#include <nbcompat.h>
#endif
#include <poll.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/uio.h>
#if HAVE_POLL_H
#include <poll.h>
#elif HAVE_SYS_POLL_H
#include <sys/poll.h>
#endif
#include <netinet/in.h>
#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
#if defined(HAVE_INTTYPES_H) || defined(NETBSD)
#include <inttypes.h>
#endif
#ifndef NETBSD
#include <nbcompat/netdb.h>
#else
#include <netdb.h>
#endif
#include <pwd.h>
#include <stdarg.h>
#include <stdlib.h>
...
...
libfetch/fetch.c
View file @
86436fce
...
...
@@ -33,9 +33,6 @@
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef NETBSD
#include <nbcompat.h>
#endif
#include <ctype.h>
#include <errno.h>
...
...
libfetch/file.c
View file @
86436fce
...
...
@@ -33,9 +33,6 @@
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef NETBSD
#include <nbcompat.h>
#endif
#include <sys/stat.h>
...
...
libfetch/ftp.c
View file @
86436fce
...
...
@@ -57,17 +57,9 @@
*
*/
#ifdef __linux__
/* Keep this down to Linux, it can create surprises else where. */
#define _GNU_SOURCE
#endif
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef NETBSD
#include <nbcompat.h>
#endif
#include <sys/types.h>
#include <sys/socket.h>
...
...
@@ -78,17 +70,10 @@
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#if defined(HAVE_INTTYPES_H) || defined(NETBSD)
#include <inttypes.h>
#endif
#include <stdarg.h>
#ifndef NETBSD
#include <nbcompat/netdb.h>
#include <nbcompat/stdio.h>
#else
#include <netdb.h>
#include <stdio.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <time.h>
...
...
libfetch/http.c
View file @
86436fce
...
...
@@ -63,24 +63,12 @@
* SUCH DAMAGE.
*/
#if defined(__linux__) || defined(__MINT__) || defined(__FreeBSD_kernel__)
/* Keep this down to Linux or MiNT, it can create surprises elsewhere. */
/*
__FreeBSD_kernel__ is defined for GNU/kFreeBSD.
See http://glibc-bsd.alioth.debian.org/porting/PORTING .
*/
#define _GNU_SOURCE
#endif
/* Needed for gmtime_r on Interix */
#define _REENTRANT
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef NETBSD
#include <nbcompat.h>
#endif
#include <sys/types.h>
#include <sys/socket.h>
...
...
@@ -89,11 +77,7 @@
#include <errno.h>
#include <locale.h>
#include <stdarg.h>
#ifndef NETBSD
#include <nbcompat/stdio.h>
#else
#include <stdio.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <time.h>
...
...
@@ -101,13 +85,7 @@
#include <netinet/in.h>
#include <netinet/tcp.h>
#ifndef NETBSD
#include <nbcompat/netdb.h>
#else
#include <netdb.h>
#endif
#include <arpa/inet.h>
#include "fetch.h"
...
...
src/Makefile
View file @
86436fce
...
...
@@ -7,8 +7,6 @@ OPENSSL_LIBS := $(shell $(PKG_CONFIG) --libs openssl)
ZLIB_CFLAGS
:=
$(
shell
$(PKG_CONFIG)
--cflags
zlib
)
ZLIB_LIBS
:=
$(
shell
$(PKG_CONFIG)
--libs
zlib
)
FETCH_LIBS
:=
$(
shell
$(CC)
-print-file-name
=
libfetch.a
)
# lua module
ifneq
($(LUAAPK),)
LUA_VERSION
?=
5.2
...
...
@@ -32,6 +30,7 @@ apk-objs := apk.o add.o del.o fix.o update.o info.o \
libapk.so-objs
:=
common.o database.o package.o archive.o
\
version.o io.o url.o gunzip.o blob.o hash.o print.o
\
commit.o solver.o
libapk.so-libs
:=
libfetch/libfetch.a
ifeq
($(TEST),y)
progs-y
+=
apk-test
...
...
@@ -42,6 +41,9 @@ ifeq ($(SHARED_LIBAPK),)
apk-objs
+=
$
(
libapk.so-objs
)
apk-test-objs
+=
$
(
libapk.so-objs
)
apk.so-objs
+=
$
(
libapk.so-objs
)
apk-libs
+=
$
(
libapk.so-libs
)
apk-test-libs
+=
$
(
libapk.so-libs
)
apk.so-libs
+=
$
(
libapk.so-libs
)
else
LIBAPK
:=
YesPlease
LIBS_apk
:=
-lapk
...
...
@@ -56,13 +58,14 @@ install-LIBAPK-y := $(INSTALLDIR) $(DESTDIR)$(LIBDIR) && \
$(INSTALL)
$
(
LIBAPK-y
)
$(DESTDIR)$(LIBDIR)
endif
CFLAGS_ALL
+=
-D_ATFILE_SOURCE
CFLAGS_ALL
+=
-D_ATFILE_SOURCE
-Ilibfetch
CFLAGS_apk.o
:=
-DAPK_VERSION
=
\"
$(FULL_VERSION)
\"
CFLAGS_apk-static.o
:=
-DAPK_VERSION
=
\"
$(FULL_VERSION)
\"
-DOPENSSL_NO_ENGINE
CFLAGS_apk-test.o
:=
-DAPK_VERSION
=
\"
$(FULL_VERSION)
\"
-DOPENSSL_NO_ENGINE
-DTEST_MODE
progs-$(STATIC)
+=
apk.static
apk.static-objs
:=
$(
filter-out
apk.o,
$
(
apk-objs
))
apk-static.o
apk.static-libs
:=
$
(
apk-libs
)
LDFLAGS_apk.static
:=
-static
LIBS_apk.static
:=
-Wl
,--as-needed
-ldl
-Wl
,--no-as-needed
LDFLAGS_apk
+=
-L
$(obj)
...
...
@@ -70,7 +73,7 @@ LDFLAGS_apk-test += -L$(obj)
CFLAGS_ALL
+=
$(OPENSSL_CFLAGS)
$(ZLIB_CFLAGS)
LIBS
:=
-Wl
,--as-needed
\
$(
FETCH_LIBS)
$(
OPENSSL_LIBS)
$(ZLIB_LIBS)
\
$(OPENSSL_LIBS)
$(ZLIB_LIBS)
\
-Wl
,--no-as-needed
$(obj)/apk
:
$(LIBAPK-y)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment